KR102279101B1 - 이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램 - Google Patents
이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR102279101B1 KR102279101B1 KR1020167017077A KR20167017077A KR102279101B1 KR 102279101 B1 KR102279101 B1 KR 102279101B1 KR 1020167017077 A KR1020167017077 A KR 1020167017077A KR 20167017077 A KR20167017077 A KR 20167017077A KR 102279101 B1 KR102279101 B1 KR 102279101B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- transform
- permutation
- operations
- data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N19/45—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
본 발명은 블록들로 컷팅되는 적어도 하나의 이미지(ICj)를 인코딩하는 방법에 관한 것이다. 본 발명에 따르면, 인코딩 방법은 인코딩될 현재의 블록(Bu)에 대해: 적어도 하나의 예측 변수 블록(BPopt)에 의해 현재의 블록을 예측하는 단계(C3); 예측 변수 블록과 현재의 블록 사이의 차이를 나타내는 잔여 데이터 블록을 결정하는 단계(C4); 각각 복수의 치환 연산(OP0, OP1,.., OPm,..., OPK - 1)(여기서 0≤m≤K-1 및 0≤m*≤K-1), 및 복수의 변환 연산(OT0, OT1,..., OTn,..., OTL - 1)(여기서 0≤n≤L-1 및 0≤n*≤L-1) 중에서의 치환 연산(OPm *) 및 변환 연산(OTn *)을 포함하는 수학적 연산들의 쌍을 미리 결정된 기준에 따라 선택하는 단계(C5); 이러한 선택된 쌍의 치환 연산(OPm *)을 결정된 잔여 블록의 데이터에 적용하는 단계(C6); 이러한 선택된 쌍의 변환 연산(OTn *)을 치환된 데이터에 적용하는 단계(C7); 및 이러한 적용된 변환 연산으로부터 얻어지는 이러한 데이터를 인코딩하는 단계(C9)를 구현한다.
Description
본 발명은 일반적으로 이미지 처리의 분야에 관한 것으로, 보다 정확하게는 디지털 이미지 및 디지털 이미지 시퀀스의 인코딩 및 디코딩에 관한 것이다.
디지털 이미지의 인코딩/디코딩은 특히:
- 동일한 카메라로부터의 그리고 시간 맞춰 서로 계속되는 이미지들(2D 인코딩/디코딩),
- 상이한 시점을 따라 배향되는 상이한 카메라로부터의 이미지들(3D 인코딩/디코딩),
- 텍스처 및 깊이의 상응하는 성분들(3D 인코딩/디코딩),
등을 포함하는 적어도 하나의 영상 시퀀스로부터의 이미지에 적용된다.
본 발명은 2D 또는 3D 이미지의 인코딩/디코딩과 유사한 방식으로 적용된다.
본 발명은 배타적으로는 아니지만, 특히 현재의 AVC 및 HEVC 영상 인코더 및 현재의 AVC 및 HEVC 영상 인코더의 확장(MVC, 3D-AVC, MV-HEVC, 3D-HEVC 등)으로 구현되는 영상 인코딩, 그리고 상응하는 디코딩에 적용될 수 있다.
현재의 영상 인코더(MPEG, H.264, HEVC 등)는 블록에 의한 영상 시퀀스의 표현을 사용한다. 이미지는 블록으로 컷팅되며, 블록은 재귀적으로 다시 작은 조각으로 컷팅될 수 있다. 그 다음 각각의 블록은 인트라 이미지(intra-image) 또는 인터 이미지(inter-image) 예측에 의해 인코딩된다. 따라서, 일부 이미지는 공간적 예측(인트라 예측)에 의해 인코딩되며, 다른 이미지는 또한 당업자에게 알려진 모션 보정을 사용하여 하나 이상의 인코딩된-디코딩된 참조 이미지에 대하여 일시적 예측(인터 예측)에 의해 인코딩된다.
잔여 블록은 본래 블록 마이너스 예측에 상응하는 또한 예측 잔여물로 지칭되는 각각의 블록마다 인코딩된다. 잔여 블록은 변환의 수학적 연산을 사용하여 변환되며, 그 다음 양자화 예를 들어, 스칼라 타입의 수학적 연산을 사용하여 양자화된다. 계수는 양자화 단계의 끝부분에서 얻어진다. 그것은 그 다음 선택되었던 인코딩의 모드에 따른 판독 순서로 스캐닝된다. HEVC 표준에서, 예를 들어, 판독 순서는 행해지는 예측에 의존하고 "수평", "수직" 또는 "대각선" 순서로 수행될 수 있다.
앞서 언급한 스캔의 끝부분에서, 계수의 1차원 리스트가 얻어진다. 이러한 리스트의 계수는 그 다음, 손실 없이 계수들을 인코딩하는 것이 목적인 엔트로피 인코딩에 의해 비트의 형태로 인코딩된다.
앞서 언급한 변환의 수학적 연산에 대하여, 블록 변환은 이하의 3개의 중요한 기준을 충족시키므로, 가장 많이 사용된다:
- 이들이 블록 변환이므로, 서로와 관계 없이 블록을 조작하는 것이 용이하며,
- 블록 변환은 주파수 영역에서 정보를 압축하는데 효과적이며, 속도 감소의 연산이 작동되며,
- 블록 변환은 제한된 알고리즘 복잡성을 보장하는 빠른 알고리즘을 사용하여 구현된다.
영상 인코딩의 분야에서, 이산 코사인 변환인, (영어 약어로) DCT, 또는 이산 사인 변환인, (영어 약어로) DST가 그것들의 실행 속도에 바람직하다. 특히, 그것들은 소수의 연산으로 분리 가능한 방식으로 구현되고 고정 소수점 프로세서에서의 처리에 양호하게 적합한 구현을 갖는다.
엔트로피 인코딩 후에 얻어지는 비트는 디코더로 송신되는 것으로 의도되는 신호 또는 데이터 스트림에 포함된다.
그 자체로 알려진 방식으로, 그러한 신호는:
- 앞서 언급한 리스트에 포함되는 양자화된 계수,
- 사용되는 인코딩의 모드를 나타내는 정보로서, 특히:
예측의 모드(인트라 예측, 인터 예측, 어떤 정보도 디코더로 송신되지 않는 예측을 행하는 디폴트 예측("스킵"));
예측의 타입을 지정하는 정보(배향, 참조 이미지 등);
블록 컷팅의 타입;
변환의 타입 예를 들어, DCT 4x4, DCT 8x8 등
필요하다면, 모션 정보;
등인 정보를 포함한다.
스트림이 디코더에 의해 수신되었으면, 디코딩은 한 이미지씩, 그리고 각각의 이미지에 대해, 한 블록씩 행해진다. 각각의 블록의 경우, 스트림의 상응하는 요소들이 판독된다. 블록의 계수의 역양자화 및 역변환이 디코딩된 예측 잔여물을 생성하도록 수행된다. 그 다음, 블록의 예측이 계산되고 블록이 디코딩된 예측 잔여물에 예측을 추가함으로써 재건된다.
이제 막 설명하였던 통상적 인코딩/디코딩 기법은 확실히 인코딩 성능의 개선을 가능하게 한다. 영상 맥락에 따르면, 이는 특히:
- 이미지를 송신하는데 사용되는 주어진 네트워크 속도(rate)에 대한 이미지의 품질의 개선,
- 이전에 설정된 이미지 품질 기준에 대한 이미지 송신 속도의 감소를 가능하게 한다.
그러나, 그러한 인코딩 성능은 현재 최적화되어 있지 않고 특히 당업자에게 널리 알려진 기준들인 속도/왜곡(rate/distortion) 비용을 최소화하는 것 또는 최고 효과성/복잡성 중간물의 선택의 관점에서 볼 때 추가로 개선되어야 한다.
본 발명의 목적들 중 하나는 앞서 언급한 종래 기술의 문제점들을 극복하는 것이다.
이러한 목적으로, 본 발명의 하나의 목적은 블록들로 컷팅되는 적어도 하나의 이미지를 인코딩하는 방법에 관한 것이다.
본 발명에 따른 인코딩하는 방법은 인코딩될 현재의 블록에 대해:
- 적어도 하나의 예측 변수 블록을 사용하여 현재의 블록을 예측하는 단계,
- 예측 변수 블록과 현재의 블록 사이의 차이를 나타내는 잔여 데이터 블록을 결정하는 단계,
- 복수의 치환 연산 및 복수의 변환 연산 중으로부터의 치환 연산 및 변환 연산을 포함하는 수학적 연산들의 쌍을 미리 결정된 기준에 따라 선택하는 단계,
- 선택된 쌍의 치환 연산을 결정된 잔여 블록의 데이터에 적용하는 단계,
- 선택된 쌍의 변환 연산을 치환된 데이터에 적용하는 단계,
- 적용된 변환 연산으로부터의 데이터를 인코딩하는 단계를 구현하는 것을 특징으로 한다.
그러한 구성은 효과성/복잡성 중간물의 더 양호한 선택을 통해 디코더로 송신될 데이터 신호의 압축 성능을 상당히 개선하는 이점을 갖는다. 즉, 인코딩 성능은 인코딩 단계들의 구현의 단순함 및 디코딩의 제한된 복잡성 둘 다를 통해 종래 기술에서 얻어지는 성능보다 더 양호하다.
하나의 특정 실시예에 따르면, 복수의 변환 연산은 이산 사인 변환을 포함한다.
DST 변환의 선택은 유리하게는 인코딩 성능을 최적화할 뿐만 아니라, 계산 리소스들을 감소시키는 것도 가능하게 한다.
제1 변형예에 따르면, 이용 가능한 복수의 변환 연산 중으로부터 DST 변환의 선택은 인코딩에서 부과되며, 이는 변환을 선택하는 단계를 단순화한다.
제2 변형예에 따르면, 복수의 변환 연산은 DST 변환인 단일 변환 연산을 포함한다. 이러한 제2 변형예는 물론, DST 변환과 연관되는 인덱스가 디코더에 이미 이용 가능한 경우에, 인코더가 DST 변환과 연관되는 인덱스를 디코더로 반드시 송신하도록 강제되지 않는 이점을 갖는다. 따라서, 인코딩 정보를 시그널링(signaling)하는 비용은 이로써 효과적으로 감소된다.
다른 특정 실시예에 따르면, 미리 결정된 기준은 인코딩될 현재의 블록의 속도-왜곡 비용의 최소화이다.
그러한 기준의 선택은 치환-변환 쌍의 선택을 최적화한다.
다른 특정 실시예에 따르면, 선택되는 치환 연산은 이러한 잔여 블록의 데이터를 이항하는 연산에 따라 결정된 잔여 블록의 데이터를 점진적으로 이동시키는 것으로 구성된다.
이러한 타입의 치환은 계산하는 관점에 볼 때 특히 단순하다는 이점을 갖는다.
다양한 앞서 언급한 실시예 또는 특징은 앞서 정의된 바와 같은 인코딩하는 방법의 단계들에 독립적으로 또는 서로와의 조합으로 추가될 수 있다.
본 발명은 또한 블록들로 컷팅되는 적어도 하나의 이미지를 인코딩하는 디바이스에 관한 것이다.
그러한 인코딩 디바이스는 인코딩될 현재의 블록에 대해:
- 적어도 하나의 예측 변수 블록을 사용하여 현재의 블록을 예측하는 모듈,
- 예측 변수 블록과 현재의 블록 사이의 차이를 나타내는 잔여 데이터 블록을 결정하는 모듈,
- 복수의 치환 연산 및 복수의 변환 연산 중으로부터의 치환 연산 및 변환 연산을 포함하는 수학적 연산들의 쌍을 미리 결정된 기준에 따라 선택하는 모듈,
- 선택된 쌍의 치환 연산을 결정된 잔여 블록의 데이터에 적용하는 치환 모듈,
- 선택된 쌍의 변환 연산을 치환된 데이터에 적용하는 변환 모듈,
- 변환 모듈에 의해 전달되는 데이터를 인코딩하는 인코딩 모듈을 포함하는 것을 특징으로 한다.
그러한 인코딩 디바이스는 특히 앞서 언급한 인코딩하는 방법을 구현할 수 있다.
본 발명은 또한 블록들로 컷팅되는 적어도 하나의 이미지를 나타내는 데이터 신호를 디코딩하는 방법에 관한 것이다.
그러한 디코딩하는 방법은 디코딩될 현재의 블록에 대해:
- 디코딩될 현재의 블록과 연관되는 현재의 잔여 블록을 나타내는 데이터를 데이터 신호에서 결정하는 단계,
- 디코딩될 현재의 블록의 적어도 하나의 예측 변수 블록을 결정하는 단계,
- 변환 연산 및 치환 연산을 포함하는 수학적 연산들의 쌍을 결정하는 단계,
- 연산들의 결정된 쌍의 변환 연산을 현재의 잔여 블록을 나타내는 데이터에 적용하는 단계,
- 결정된 쌍의 치환 연산을 변환 연산을 적용하는 단계의 결과로서 얻어지는 데이터에 적용하는 단계,
- 결정된 예측 변수 블록 및 적용되는 치환 연산으로부터의 데이터를 사용하여 현재의 블록을 재건하는 단계를 포함하는 것을 특징으로 한다.
하나의 특정 실시예에 따르면, 수학적 연산들의 쌍을 결정하는 단계는:
- 디코딩될 현재의 블록의 인코딩에서 선택되는 치환 및 변환 연산들의 쌍을 나타내는 정보를 데이터 신호에서 판독하는 단계,
- 판독되는 정보와 연관되는 쌍의 치환 및 변환 연산들의 역치환 및 변환 연산들을 결정하는 단계를 구현한다.
그러한 일 실시예는 송신되는 치환 및 변환 연산들의 쌍을 시그널링하는 데이터의 양이 감소되며, 이는 인코딩에서 선택되었던 치환 및 변환 연산들의 쌍을 디코더 그 자체가 회수하는 것을 가능하게 하지 않는 결과를 가질 때, 구현된다.
다른 특정 실시예에 따르면, 수학적 연산들의 쌍을 결정하는 단계는:
- 현재의 잔여 블록을 나타내는 데이터에 치환 연산이 뒤따르는 변환 연산을 포함하는 수학적 연산들의 복수의 쌍을 적용하는 단계로서, 변환 및 치환 연산들은 미리 결정된 복수의 변환 연산 및 미리 결정된 복수의 치환 연산 중으로부터 선택되는 단계,
- 적용되는 복수의 쌍으로부터 복수의 블록을 재건하는 단계,
- 복수의 재건된 블록에 적용되는 일관성의 기준을 최대화함으로써 복수의 재건된 블록 중으로부터의 재건된 블록을 선택하는 단계로 구성된다.
다른 그러한 실시예는 디코더가 그 자체로 인코딩에서 선택되었던 치환 및 변환 연산들의 쌍을 회수할 수 있을 때, 구현된다.
이러한 다른 실시예는 인코딩에서 선택되었던 치환 연산의 인덱스 및/또는 변환 연산의 인덱스가 디코더에서 수신되는 데이터 신호로 반드시 송신되는 것은 아니므로, 이전의 실시예에서 얻어지는 시그널링하는 비용보다 시그널링하는 비용의 더 큰 감소를 가능하게 한다.
다른 특정 실시예에 따르면, 결정되거나 선택된 변환 연산은 이산 사인 변환이다.
다른 특정 실시예에 따르면, 연산들의 결정된 쌍의 치환 연산은 이러한 데이터를 이항하는 연산에 따라 결정된 쌍의 변환 연산을 적용하는 단계의 결과로서 얻어지는 데이터를 점진적으로 이동시키는 것으로 구성된다.
다양한 앞서 언급한 실시예 또는 특징은 앞서 정의된 바와 같은 디코딩하는 방법의 단계들에 독립적으로 또는 서로와의 조합으로 추가될 수 있다.
상응하여, 본 발명은 또한 블록들로 컷팅되는 적어도 하나의 이미지를 나타내는 데이터 신호를 디코딩하는 디바이스에 관한 것이다.
그러한 디코딩 디바이스는 디코딩될 현재의 블록에 대해:
- 디코딩될 현재의 블록과 연관되는 현재의 잔여 블록을 나타내는 데이터를 데이터 신호에서 결정하는 모듈,
- 디코딩될 현재의 블록의 적어도 하나의 예측 변수 블록을 결정하는 모듈,
- 변환 연산 및 치환 연산을 포함하는 수학적 연산들의 쌍을 결정하는 모듈,
- 결정된 쌍의 변환 연산을 현재의 잔여 블록을 나타내는 데이터에 적용하는 변환 모듈,
- 결정된 쌍의 치환 연산을 변환된 데이터에 적용하는 치환 모듈,
- 결정된 예측 변수 블록 및 치환 모듈에 의해 전달되는 데이터를 사용하여 현재의 블록을 재건하는 예측 모듈을 포함하는 것을 특징으로 한다.
그러한 디코딩 디바이스는 특히 앞서 언급한 디코딩하는 방법을 구현할 수 있다.
본 발명은 또한 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때, 본 발명에 따른 인코딩하고 디코딩하는 방법들 중 하나를 구현하는 명령어들을 포함하는 컴퓨터 프로그램에 관한 것이다.
이러한 프로그램은 임의의 프로그래밍 언어를 사용하고, 부분적으로 컴파일된 형태와 같이 소스 코드, 목적 코드, 또는 소스 코드와 목적 코드 사이의 중간 코드의 형태, 또는 임의의 다른 바람직한 형태일 수 있다.
본 발명은 또한 컴퓨터 프로그램이 기록되는 컴퓨터에 의해 판독 가능한 기록 매체를 목적으로 하며, 이러한 프로그램은 상술한 바와 같이 본 발명에 따른 인코딩하거나 디코딩하는 방법들 중 하나를 구현하는데 적절한 명령어들을 포함한다.
본 발명은 또한 컴퓨터 프로그램이 기록되는 컴퓨터에 의해 판독 가능한 기록 매체를 목적으로 하며, 이러한 프로그램은 상술한 바와 같이 본 발명에 따른 인코딩하거나 디코딩하는 방법을 구현하는데 적절한 명령어들을 포함한다.
기록 매체는 프로그램을 저장할 수 있는 임의의 엔티티 또는 디바이스일 수 있다. 예를 들어, 매체는 ROM 예를 들어, CD ROM 또는 마이크로 전자 회로 ROM, 또는 자기 기록 수단 예를 들어, USB 스틱 또는 하드 디스크와 같은 저장 수단을 포함할 수 있다.
두 번째로, 기록 매체는 무선으로 또는 다른 수단에 의해 전기 또는 광 케이블을 통하여 전달될 수 있는 전기 또는 광 신호와 같은 송신 가능 매체일 수 있다. 본 발명에 따른 프로그램은 특히, 인터넷 타입 네트워크 상에 다운로드될 수 있다.
대안적으로, 기록 매체는 프로그램을 포함하는 집적 회로일 수 있으며, 이러한 회로는 앞서 언급한 인코딩하거나 디코딩하는 방법을 실행시키거나 이것의 실행에 사용되는데 적절하다.
디코딩하는 방법, 인코딩 디바이스, 디코딩 디바이스, 컴퓨터 프로그램들 및 앞서 언급한 상응하는 기록 매체는 본 발명에 따른 인코딩하는 방법에 의해 부여되는 이점들과 적어도 동일한 이점들을 갖는다.
다른 특징들 및 이점들이 도면들을 참조하여 설명하는 바람직한 실시예를 읽을 때에 나타날 것이다:
- 도 1은 본 발명에 따른 인코딩하는 방법의 단계들을 나타낸다.
- 도 2는 본 발명에 따른 인코딩 디바이스의 일 실시예를 나타낸다.
- 도 3a는 4x4 블록의 경우에 사용되는 다양한 치환-변환 쌍을 포함하는 표를 나타낸다.
- 도 3b 및 도 3c는 8x8 블록의 경우에 사용되는 다양한 치환-변환 쌍을 포함하는 표를 나타낸다.
- 도 4는 본 발명에 따른 디코딩 디바이스의 일 실시예를 나타낸다.
- 도 5는 본 발명에 따른 디코딩하는 방법의 주요 단계들을 나타낸다.
- 도 6a는 도 5의 디코딩하는 방법에서 구현되는 치환 및 변환 연산들의 쌍을 결정하는 단계의 제1 실시예를 나타낸다.
- 도 6b는 도 5의 디코딩하는 방법에서 구현되는 치환 및 변환 연산들의 쌍을 결정하는 단계의 제2 실시예를 나타낸다.
- 도 1은 본 발명에 따른 인코딩하는 방법의 단계들을 나타낸다.
- 도 2는 본 발명에 따른 인코딩 디바이스의 일 실시예를 나타낸다.
- 도 3a는 4x4 블록의 경우에 사용되는 다양한 치환-변환 쌍을 포함하는 표를 나타낸다.
- 도 3b 및 도 3c는 8x8 블록의 경우에 사용되는 다양한 치환-변환 쌍을 포함하는 표를 나타낸다.
- 도 4는 본 발명에 따른 디코딩 디바이스의 일 실시예를 나타낸다.
- 도 5는 본 발명에 따른 디코딩하는 방법의 주요 단계들을 나타낸다.
- 도 6a는 도 5의 디코딩하는 방법에서 구현되는 치환 및 변환 연산들의 쌍을 결정하는 단계의 제1 실시예를 나타낸다.
- 도 6b는 도 5의 디코딩하는 방법에서 구현되는 치환 및 변환 연산들의 쌍을 결정하는 단계의 제2 실시예를 나타낸다.
본 발명에 따른 인코딩하는 방법이 예를 들어, HEVC 표준에 순응하는 인코딩에 의해 얻어지는 2진 스트림과 유사한 2진 스트림의 이미지 또는 이미지들의 시퀀스를 인코딩하는데 사용되는 본 발명의 일 실시예를 이제 설명할 것이다.
이러한 실시예에서, 본 발명에 따른 인코딩하는 방법은 예를 들어, 초기에 HEVC 표준에 순응하는 인코더로의 변경에 의한 소프트웨어 또는 하드웨어로 구현된다. 본 발명에 따른 인코딩하는 방법은 도 1에 나타내어지는 바와 같이 단계들(C1 내지 C15)을 포함하는 알고리즘의 형태로 나타내어진다.
본 발명의 실시예에 따르면, 본 발명에 따른 인코딩하는 방법은 도 2에 나타내어지는 인코딩 디바이스(CO)로 구현된다.
도 2에 도시된 바와 같이, 그러한 인코딩 디바이스는 버퍼 메모리(MT_CO)를 포함하는 메모리(MEM_CO), 예를 들어, 마이크로프로세서(μP)가 구비되고 본 발명에 따른 인코딩하는 방법을 구현하는 컴퓨터 프로그램(PG_CO)에 의해 제어되는 처리부(UT_CO)를 포함한다. 초기화에서, 컴퓨터 프로그램(PG_CO)의 코드 명령어들은 예를 들어, 처리부(UT_CO)의 프로세서에 의해 실행되기 전에, RAM 메모리(나타내어지지 않음)로 로딩된다.
도 1에 나타내어지는 인코딩하는 방법은 인코딩될 이미지들의 시퀀스(SQ)의 임의의 현재의 이미지에 적용된다.
도 1에 나타내어지는 단계(C1) 중에서, 그 자체로 알려진 방식으로, 이미지들(IC1, ..., ICj,..., ICN) (1≤j≤N)의 시퀀스(SQ)에 속하는 현재의 이미지(ICj)는 64x64, 32x32 또는 16x16 픽셀들인 크기의 전형적인 값들인, 주어진 크기의 복수의 블록(B1, B2, ..., Bu,..., BS) (1≤u≤S)으로 분할된다. 그러한 분할 단계는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 분할 소프트웨어 모듈(MP_CO)에 의해 구현된다.
본 발명의 의미 내에서, "블록"이란 용어가 (영어 용어에서) "코딩 단위"를 의미한다는 점이 주목되어야 한다. 후자 전문 용어는 예를 들어, 문서 "ITU-T 귄장 H.265 / 표준 ISO/IEC 23008-2(ITU-T Recommendation H.265 / Standard ISO/IEC 23008-2)”에서의 HEVC 표준에 특히 사용된다.
특히, 그러한 코딩 단위는 또한 블록들, 매크로블록들 또는 다른 기하학적 형상들을 나타내는 픽셀들의 세트들로 불리는 직사각형 또는 정사각형 형상의 픽셀들의 세트들을 함께 그룹화한다.
바람직하게는 본 발명에서, 인코딩될 블록들은 특히 2의 배수 거듭제곱 예를 들어, 타입 4x4 및 8x8의 크기이다. 그러나, 본 발명은 또한 크기 MxM(M=16, 32 또는 64)의 블록들에 보다 일반적으로 적용된다. PxM 및 MxP 블록들이 또한 사용 가능하며, P 및 M이 설정된 2, 4, 8, 16, 32 및 64에서 P 및 M의 값을 취한다.
이러한 블록들(B1, B2, ..., Bu,..., BS)은 예를 들어, 래스터(raster) 스캔 타입인 미리 결정된 스캐닝 순서에 따라 인코딩되는 것으로 의도된다. 이는 블록들이 좌측에서 우측으로, 그 다음 하향으로 차례로 인코딩되는 것을 의미한다.
다른 타입들의 스캐닝이 물론 가능하다. 따라서, 슬라이스들로 불리는 다수의 하위 이미지로 이미지(ICj)를 컷팅하고 이러한 타입의 컷팅을 각각의 하위 이미지에 독립적으로 적용하는 것이 가능하다. 또한, 상술한 바와 같이, 행들의 연속이 아닌 열들의 연속을 인코딩하는 것이 가능하다. 또한, 어느 방향으로도 행들 또는 열들을 스캐닝하는 것이 가능하다.
각각의 블록은 하위 블록들 자체가 재분할할 수 있는 하위 블록들로 그 자체가 추가로 분할될 수 있다.
도 1에 나타내어지는 단계(C2) 중에서, 인코더(CO)는 예를 들어, 제1 블록(B1)과 같은 이미지(ICj)의 인코딩될 제1 블록(Bu)을 현재의 블록으로 선택한다.
도 1에 나타내어지는 단계(C3) 중에서, 현재의 블록(Bu)의 예측은 인트라 및/또는 인터 예측의 알려진 기법들에 의해 수행된다. 이러한 목적으로, 블록(Bu)은 복수의 미리 결정된 예측 모드 중으로부터 선택되는 예측 모드에 따라 적어도 하나의 예측 변수 블록에 대하여 예측된다.
그러한 예측 변수 블록은 예를 들어, 이미 인코딩되었거나, 인코딩된 다음 디코딩되었거나, 디코딩되지 않았던 픽셀들의 블록이다. 그러한 예측 변수 블록은 도 2에 나타내어지는 바와 같은 인코더(CO)의 버퍼 메모리(MT_CO)에 앞서 저장된다.
예측 단계(C3)의 끝부분에서, 최적의 예측 변수 블록(BPopt)은 이러한 미리 결정된 예측 모드들이 예를 들어, 당업자에게 널리 알려진 속도-왜곡 기준을 최소화함으로써 경합하여 배치된 후에 얻어진다. 블록(BPopt)은 현재의 블록(Bu)의 근사치로서 고려된다. 이러한 예측과 관련하는 정보 아이템들은 디코더로 송신될 신호 또는 데이터 스트림에 포함되는 것으로 의도된다. 그러한 정보 아이템들은 특히 예측의 타입(인터 또는 인트라), 그리고 적용 가능한 경우, 선택되는 예측 모드, 현재의 블록이 재분할되었으면 현재의 블록의 분할의 타입, 참조 이미지 인덱스 및 인터 예측 모드가 선택되었던 경우에 사용되는 모션 벡터를 포함한다. 이러한 정보 아이템들은 인코더(CO)에 의해 압축된다.
도 1에 나타내어지는 단계(C4) 중에서, 현재의 블록(Bu)과 관련하는 데이터는 예측 변수 블록(BPopt)의 데이터와 비교된다. 보다 정확하게는 이러한 단계 중에서, 얻어지는 예측 변수 블록(BPopt)과 현재의 블록(Bu) 사이의 차이가 통상적으로 계산된다.
잔여 블록(Bru)으로 불리는 잔여 데이터의 세트가 그 다음 단계(C4)의 끝부분에서 얻어진다.
단계들(C3 및 C4)은 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 예측 인코딩 소프트웨어 모듈(PRED_CO)에 의해 구현된다.
도 1에 나타내어지는 단계(C5) 중에서, 치환 연산(OPm *) 및 변환 연산(OTn *)을 포함하는 수학적 연산들의 쌍이 복수의 치환 연산(OP0, OP1,.., OPm,..., OPK -1)(여기서 0≤m≤K-1 및 0≤m*≤K-1), 및 복수의 변환 연산(OT0, OT1,..., OTn,..., OTL -1)(여기서 0≤n≤L-1 및 0≤n*≤L-1) 중으로부터 미리 결정된 기준에 따라 선택된다. 복수의 치환 및 변환 연산은 도 2의 인코더(CO)의 전용 메모리(MD_CO)에 저장된다.
그러한 단계(C5)는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 계산 소프트웨어 모듈(CAL_CO)에 의해 구현된다.
복수의 변환 연산(OT0, OT1,..., OTn,..., OTL - 1)은 하나 이상의 1D 변환을 포함한다.
1D 변환은 크기 M의 벡터들을 연산하는 크기 MxM의 이산 변환을 의미한다. 이러한 목적으로:
- 제1 변환 연산은 크기 MxM의 블록 상에 한 벡터씩 적용되며,
- 이항 연산은 변환된 블록 상에 적용되며,
- 제2 변환 연산은 또한 벡터 마다 이항 후에 얻어지는 블록 상에 적용된다.
이러한 1D 변환은 이산 사인(DST) 또는 이산 코사인(DCT) 변환들이라는 점에서 3각법 형태로 표현되는 기반들에 기초한다. 바람직하게는, 복수의 변환(OT0, OT1,..., OTn,..., OTL - 1)에 속하는 변환들은 문서 "DCT-II 변환과 DCT-VI 변환과 DST-VII 변환 사이의 관계(Relationship between DCT-II, DCT-VI, and DST-VII transforms)", Reznik ICASSP 2013에 설명된 DCT II, III 및 IV 변환들 및 DST IV, VI 및 VII 변환들이다.
이들 중에서, DCT II, III, 및 DST VII 및 IV 변환들은 주파수 영역에서 잔여 신호 압축을 행하는 그것들의 능력으로 인해 특히 유용하다.
그러한 변환들은 예를 들어, 크기 4x4, 8x8 등이다.
변형예로서, 사용되는 변환들은 교호일 수 있으며 즉, 제1 타입의 변환 및 제2 타입의 변환이 데이터가 본 설명에 후술할 것인 바와 같이 이전에 치환되었던 현재의 잔여 블록(Bru)의 행들 및 열들 상에 각각 적용된다.
이러한 변형예에 따르면, 앞서 언급한 변환들은 직사각형일 수도 있다. 직사각형 형상의 현재의 잔여 블록(Bru)의 경우, 행 변환은 열 변환과 상이한 크기를 가질 것이다.
행 변환 및 열 변환의 조합이 현재의 잔여 블록(Bru)에 직접 적용될 수 있다는 점이 주목되어야 한다.
영상 인코딩/디코딩의 분야에서, 고정 소수점 프로세서들 상에서 가능한 구현을 행하는 것의 목적으로, 그러한 변환들은 근사화되며 즉, 실제 값들이 유리수들에 의해 근사화된다. 그러므로, 변환들은 엄밀한 의미에서 정확하게 회수되지 않고 오히려 근사화된 형태로 회수된다.
따라서 예를 들어, 크기 4의 DST VII 변환의 경우에, 크기 4의 DST VII 변환은 이하의 식에 따라 표현될 수 있다:
이하의 계수들의 4x4 행렬이 그 다음 얻어지며, i는 열들을 따라 전개되고 k는 행들을 따라 전개된다:
0.2280 0.4285 0.5774 0.6565
0.5774 0.5774 0.0000 0.5774
0.6565 0.2280 0.5774 0.4285
0.4285 0.6565 0.5774 0.2280
위의 이러한 계수값들은 가능한 유효 고정 소수점 구현을 만드는 이하의 방식으로 분수들의 형태로 나타내어질 수도 있다:
29/128 55/128 74/128 84/128
74/128 74/128 0 -74/128
84/128 -29/128 -74/128 55/128
55/128 -84/128 74/128 -29/128
복수의 치환 연산(OP0, OP1,..., OPm,..., OPK - 1)은 하나 이상의 치환 연산을 포함한다. 본 발명의 의미 내에서, 일 예가 이하에 나타내어지는 치환 연산은 1들 및 0들 만을 포함하는 행렬의 형태로 정의된다. 이하에 나타내어진 예에서, 그러한 치환 행렬은 각각의 인덱스들 I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15의 연속적인 계수들 예를 들어, 크기 4x4의 블록에 대한 16개의 세트(EEN) 에 적용된다.
위의 치환 연산의 끝부분에서, 치환된 인덱스들 I3, I2, I1, I0, I7, I6, I5, I4, I11, I10, I9, I8, I15, I14, I13, I12의 세트(ESO)가 얻어진다. 그러한 치환 연산은 인덱스들의 레디렉션(redirection)만을 포함하므로, 도 2의 인코더(CO)의 계산 복잡성을 만들어내지 않는 이점을 갖는다.
앞서 언급한 단계(C5) 중에서 보다 정확하게는, 선택은 인코딩될 현재의 블록(Bu)의 인코딩 성능을 최적화하는 사용될 치환-변환 쌍에 행해진다. 그러한 선택은 수개의 방식으로 행해질 수 있다.
일 실시예에 따르면, 단계(C5)에 사용되는 선택의 미리 결정된 기준은 양자화된 샘플들의 송신 비용으로 양자화 후에 왜곡의 가중치를 측정하는 것으로 구성되는 당업자에게 널리 알려진 속도-왜곡 기준이다. 전형적으로, 고려되는 치환(OPm) - 변환(OTn) 쌍의 경우, 기준(Jm,n)은 이하의 방식으로 표현된다:
- Lambda는 송신 속도 제약을 제어하는 라그랑주(Lagrangian) 가중치 연산자이며,
- ()t는 이항 행렬 연산자이며,
- OT-1 n은 역변환을 나타내며,
- R()은 양자화된 값들을 송신하는데 필요한 속도를 계산하는 함수이다.
함수(R)은 정보 아이템들의 완전한 인코딩에 의해 즉, 양자화되고 인코딩된 값들을 송신하는데 필요한 정보 아이템들을 카운팅하는 것을 통하여, 또는 예를 들어, 양자화된 값들의 절댓값들의 합의 계산 또는 제로로 양자화되는 값들의 카운트에 기반할 수 있는 속도의 추정에 의해 얻어질 수 있다.
Jm,n에 대해 얻어지는 다양한 값 사이의 비교를 따라서, 도 2에서의 계산 모듈(CAL_CO)에 의해 계산되는 최저값이 보유된다. 그러한 값은 Jm *,n*으로 표시되고 고려되는 치환(OPm *) - 변환(OTn *) 연산들의 쌍과 연관된다.
본 발명의 단순화된 실시예에서, 복수의 치환 연산은 예를 들어, 2개의 치환(OP0 및 OP1)을 포함하는 반면에, 복수의 변환 연산은 단일 변환(OT0) 예를 들어, DST VII를 포함한다. 이러한 목적으로 앞서 언급한 단계(C5) 중에서, 2개만의 속도-왜곡 기준 즉:
- 치환(OP0) 및 변환(OT0)에 의존하는 기준(J0,0),
- 및 치환(OP1) 및 변환(OT0)에 의존하는 기준(J1,0)이 계산된다.
도 2의 계산 모듈(CAL_CO)은 2개의 기준(J0,0 및 J1,0)을 비교하고, 최저값을 갖는 것을 보유하고, 인덱스(m*,n*)을 이러한 값과 연관시킨다. 따라서, J0,0<J1,0이면, 그 때 m*,n*=0이며, 그렇지 않으면 m*,n*=1이다.
앞서 언급한 선택 단계(C5)의 실시예의 하나의 변형예에 따르면, 앞서 언급한 선택 단계(C5)는 앞서 언급한 예측 단계(C3) 동안의 최적의 예측 변수 블록(Bopt)에 대한 탐색과 함께 수행될 수 있다. 보다 정확하게는 고려되는 각각의 예측 모드의 경우, 하나의 치환-변환 쌍은 앞서 언급한 속도-왜곡 기준(Jm,n)을 최소화하는 것으로 결정된다. 이러한 방식으로, 기준(Jm,n)의 추정 동안의 속도 정보 아이템들은 예측 모드의 송신을 고려한다. 따라서, 모든 예측/치환-변환 조합들은 속도-왜곡 기준을 최소화하는 것을 보유하기 위해 값이 구해진다.
그러한 변형예는 현재의 블록의 다양한 가능한 크기를 고려함으로써 더 확장될 수 있다. 현재의 블록의 하위 블록들로의 분할의 유용성은 이용 가능 치환-변환 쌍들을 고려함으로써 속도-왜곡 기준을 고려하여 결정될 수 있다.
변환-치환 쌍들의 예들은 도 3a, 도 3b 및 도 3c를 참조하여 나타내어진다.
도 3a의 예에서, 표(T1)은 크기 4x4의 현재의 잔여 블록(Bru) 및 연속적인 픽셀 인덱스들(I0 내지 I15)에 적용되는 것으로 의도되는 변환-치환 쌍들을 포함한다.
도 3b 및 도 3c의 예에서, 표(T2)는 크기 8x8의 현재의 잔여 블록(Bru) 및 연속적인 픽셀 인덱스들(I0 내지 I63)에 적용되는 것으로 의도되는 변환-치환 쌍들을 포함한다.
도 3a를 참조하면, 표(T1)은 예를 들어, 28번의 치환(P0 내지 P27)을 포함한다. "픽셀 인덱스"로 칭해지는 표(T1)의 제1 열은 현재의 잔여 블록(Bru)에서 (0과 15 사이의) 고려되는 픽셀 인덱스 번호를 나타낸다. 그 다음의 열들은 각각 특정 치환(P0 내지 P27)과 연관되며, 치환(P0)은 픽셀 인덱스들의 순서에 어떤 영향도 갖지 않으므로, "항등식" 치환으로 칭해진다. 주어진 치환의 경우, "픽셀 인덱스" 열에 의해 나타내어지는 각각의 픽셀 인덱스는 선택된 열의 상응하는 값에 의해 나타내어지는 픽셀 인덱스 번호로 대체된다.
각각의 열(P0 내지 P27)은 고려되는 치환에 따른 특정 DST 또는 DCT 변환과 연관되며, 이러한 특정 변환은 표(T1)의 마지막 행에 나타내어진다.
도 3b 및 도 3c를 참조하면, 표(T2)는 예를 들어, 29번의 치환(P0 내지 P28)을 포함한다. "픽셀 인덱스"로 칭해지는 표(T2)의 제1 열은 현재의 잔여 블록(Bru)에서 (0과 63 사이의) 고려되는 픽셀 인덱스 번호를 나타낸다. 그 다음의 열들은 각각 특정 치환(P0 내지 P28)과 연관되며, 치환(P0)은 픽셀 인덱스들의 순서에 어떤 영향도 갖지 않으므로, "항등식" 치환으로 칭해진다. 주어진 치환의 경우, "픽셀 인덱스" 열에 의해 나타내어지는 각각의 픽셀 인덱스는 선택된 열의 상응하는 값에 의해 나타내어지는 픽셀 인덱스 번호로 대체된다.
도 3b 및 도 3c의 예에서, 각각의 치환은 동일한 DCT 변환과 연관된다.
표들(T1 및 T2)에 나타내어지는 치환들은 학습에 의해 수립된다. 이러한 목적으로, 치환들은 단순한 기하학적 변환들: 열들/행들의 순서 도치, 블록들의 이동, 행들 또는 열들의 이동으로부터 유도된다.
일부 치환은 인터-픽셀 관계가 변경되지 않을 때, 고려되는 변환들이 약간 영향을 받는다는 의미로 구현의 일부 치환의 단순함을 위해 결정되며 즉, 치환 후에, 각각의 픽셀은 치환 전의 각각의 픽셀의 이웃하는 것들에 근접하게 유지된다. 바람직한 치환은 예를 들어, 픽셀 블록의 데이터를 미리 결정된 방향으로 점진적으로 이동시키는 이항 연산자이다. 다른 치환들이 예상된다.
예를 들어, 도 3a에 나타내어지는 표(T1)에서:
- 치환(P1)은 픽셀 블록의 미러 연산자이며, 픽셀 인덱스들은 수직 대칭에 의해 서로에 대하여 도치되며,
- 치환(P4)은 잔여 블록(Bru)을 분할하는 45° 각도에 대하여 이항 즉, 대각선 대칭에 의해 픽셀 인덱스들을 도치하는 것을 가능하게 한다.
다양한 치환이 잔여 블록들의 고유 특성들의 연구를 통해 학습되었다. 픽셀 당 평균 잔여물의 발광량에 따르면, 픽셀들은 특정 변환과 호환되도록 재순서화된다. DCT가 일정한 휘도의 프로파일을 갖는 인코딩 잔여물들에 적절한 것 즉, 잔여 블록이 픽셀 당 비교적 균일한 휘도를 갖는 것이 종래 기술에 알려져 있다. DST는 블록의 상단(예를 들어, 도 3a에서의 인덱스들(I0 내지 I3))에 그리고 좌측(예를 들어, 도 3a에서의 인덱스들(I0 내지 I12)) 상에 위치되는 픽셀들에서 더 적은 휘도를 갖는 잔여 블록들에 적절한 프로파일을 갖는다.
따라서, 특히 도 3a의 표(T1)에서, 치환들은 마지막 행에 나타내어지는 변환에 따라 수립된다.
"항등식" 치환(P0)은 잔여 블록(Bru)이 연관된 변환과 호환되는 형상을 가질 때, 보유되는 치환들 중 일부를 형성한다. 다른 한편으로는, 잔여 블록이 연관된 변환과 호환되지 않을 때, 그 때 앞서 언급한 속도-왜곡 기준(Jm,n)은 치환(P0) 이외의 치환으로 훨씬 더 작은 값을 가질 것이다.
치환-변환 쌍들의 다른 구성들이 물론 가능하고 일부를 본 설명에서 나중에 언급할 것이다.
도 1에 나타내어지는 단계(C6) 중에서, 선택된 연산들의 이러한 쌍의 치환 연산(OPm*)이 치환된 블록(Bpu)을 생성하기 위해 현재의 잔여 블록(Bru)의 데이터에 적용된다.
단계(C6)는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 바와 같은 치환 소프트웨어 모듈(MPER_CO)에 의해 구현된다.
도 1에 나타내어지는 단계(C7) 중에서, 선택된 연산들의 이러한 쌍의 변환 연산(OTn*)이 변환된 블록(Btu)을 생성하기 위해 치환된 블록(Bpu)의 데이터에 적용된다.
단계(C7)는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 바와 같은 변환 소프트웨어 모듈(MT_CO)에 의해 구현된다.
변환 연산(OTn *)은 이하의 형태로 공간적 영역에서 주파수 영역으로 치환된 블록(Bpu)을 변환하는 것으로 구성된다:
여기서:
- B 및 A는 앞서 제공된 군들로부터의 1D 변환들을 나타낸다.
변환의 결과가 이하의 수학적으로 동등한 형태로 기록될 수도 있다는 점을 주목해야 한다:
X=Sx
여기서:
- X 및 x는 그 때 벡터들의 형태로 나타나며,
- S는 x에 포함되는 요소의 수의 제곱을 포함하는 변환 행렬을 나타낸다. 행렬(S)는 1D 행렬들(B 및 A)의 일반화된 곱으로서 기록된다. 즉, 행렬(S)는 블록들에 의한 행렬(A)의 반복 및 행렬(B)의 항에 의한 행렬들(A) 각각의 곱셈에 의해 구성되는 MxM 행렬(M은 1D 변환들의 크기임)을 구성함으로써 형성된다. 이하에 예시되는 바와 같이, 경우 M=4에 대해, 타입 16x16의 행렬(S)이 그 때 얻어진다:
바람직한 실시예에서, 이러한 행렬(S)은 DST를 나타내는 행렬이다.
여기서, Pm은 픽셀 위치들의 도치의 효과를 갖는 x의 인덱스들의 치환 행렬을 나타낸다.
도 1에 나타내어지는 단계(C8) 중에서, 변환된 블록(Btu)은 예를 들어, 스칼라 또는 벡터 양자화와 같은 통상적 양자화 연산에 따라 양자화된다. 양자화된 계수들의 블록(Bqu)이 그 다음 얻어진다. 그러한 단계는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 바와 같은 양자화 소프트웨어 모듈(MQ_CO)에 의해 수행된다.
도 1에 나타내어지는 단계(C9) 중에서, 양자화된 계수들의 블록(Bqu)의 데이터가 인코딩된다. 바람직한 실시예에서, 수행되는 인코딩은 이와 같이 알려져 있는 연산 또는 허프먼(Huffman) 엔트로피 인코딩이다. 단계(C9)는 그 때:
- 이러한 현재의 블록과 연관되는 심볼 또는 심볼들을 판독하는 단계,
- 비트들과 같은 디지털 정보를 판독되는 심볼(들)과 연관시키는 단계로 구성된다.
그러한 엔트로피 인코딩 단계는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 엔트로피 인코딩 소프트웨어 모듈(MCE)에 의해 구현된다. 엔트로피 인코딩 모듈(MCE)은 예를 들어, CABAC(영어로 "컨텍스트 적응형 2진 연산 코더") 타입이다. 그것은 이와 같이 알려져 있는 허프먼 인코더일 수도 있다.
이러한 단계(C9) 중에서, 앞서 언급한 단계(C5)에서 보유되는 기준(Jm *,n*)의 인덱스(m*,n*)이 선택적으로 인코딩된다. 그러한 단계는 디코더가 이러한 정보를 회수할 수 없을 때, 필요하다.
m*,n*이 디코더로 송신되어야 한다면, m*,n*은 그 때 예를 들어, 고정 길이 2진 코드로 표현된다.
예를 들어, 치환-변환 쌍들의 4개의 값: 0, 1, 2, 3이 시그널링되어야 한다면,
- 값 0은 예를 들어, 코드 00과 연관되며,
- 값 1은 예를 들어, 코드 01과 연관되며,
- 값 2는 예를 들어, 코드 10과 연관되며,
- 값 3은 예를 들어, 코드 11과 연관된다.
변형예로서, 인덱스(m*,n*)은 가변 길이 코드를 사용하여 표현될 수 있다.
예를 들어, 시그널링될 치환-변환 쌍들의 4개의 값: 0, 1, 2, 3의 경우에:
- 값 0는 예를 들어, 코드 0과 연관되며,
- 값 1은 예를 들어, 코드 10과 연관되며,
- 값 2는 예를 들어, 코드 110과 연관되며,
- 값 3은 예를 들어, 코드 111과 연관된다.
바람직한 실시예에 따르면, 인덱스(m*,n*)의 송신은 2개의 표시기:
- 위의 코드들의 제1 비트를 시그널링하는 플래그,
- 및 2진 형태로 덜 개연적인 치환-변환 쌍들을 나타내는 상호 보완적 신택스(syntax) 요소로 분리된다.
플래그는 유리하게는 보유되는 쌍 번호의 인코딩으로부터 분리되는 연산 인코더를 사용하여 인코딩된다. CABAC 인코더는 바람직하게는 현재의 블록의 재분할의 크기에 따라 특정 맥락으로 사용된다. 따라서, 이러한 플래그가 주어진 상태에서 매우 흔하게 채용될 때 즉, 이러한 플래그의 '0' 또는 '1'일 확률이 매우 높을 때, 이러한 플래그의 비용의 상당한 감소를 얻는 것이 가능하다.
따라서, 이러한 바람직한 모드에 따르면:
- 값 0은 예를 들어, 0으로 설정되는 플래그와 연관되며,
- 값 1은 예를 들어, 1로 설정되는 플래그, 및 보수 0와 연관되며,
- 값 2는 예를 들어, 1로 설정되는 플래그, 및 보수 10과 연관되며,
- 값 3은 예를 들어, 1로 설정되는 플래그, 및 보수 11과 연관된다.
다른 바람직한 실시예에 따르면, 인덱스(m*,n*)은 플래그에 의해서만 송신된다. 이러한 바람직한 모드는 단일 변환 예를 들어, DST가 적용되고 2개의 치환 연산(OP0 및 OP1)이 DST와의 조합으로 적용될 수 있는 경우에 적용 가능하다. 앞서 언급한 단계(C5)에서 선택되는 치환-변환 쌍(SOP0 또는 SOP1)은 그 때 1 비트로 시그널링될 것이다. 예로서 주어진 관례에 따르면:
- 쌍(SOP0)의 선택은 '1'로 설정되는 1 비트로 나타내어지며,
- 쌍(SOP1)의 선택은 '0'으로 설정되는 1 비트로 나타내어진다.
이러한 바람직한 실시예에서, CABAC 인코더는 바람직하게는 현재의 블록의 재분할의 크기에 따라 특정 맥락으로 사용된다. 따라서, 이러한 플래그가 주어진 상태에서 매우 흔하게 채용될 때 즉, 이러한 플래그의 '0' 또는 '1'일 확률이 매우 높을 때, 이러한 플래그의 비용의 상당한 감소를 얻는 것이 가능하다.
2개보다 더 많은 치환-변환 쌍이 선택될 수 있는 경우에, 고정 또는 가변 길이 코드가 사용될 것이다.
다른 가능한 실시예에 따르면, 단계(C9) 중에서, 인덱스(m*,n*)의 값의 부분적 인코딩이 수행된다. 본 설명에서 나중에 설명할 것인 바와 같이, 그러한 일 실시예는 디코더가 그 자체로 인덱스(m*,n*) 중 모두 또는 일부를 회수할 수 있을 때, 가능하다.
변형예로서, 이러한 다른 실시예는 상술한 바람직한 실시예에서 구현되는 시그널링과 결합될 수도 있다.
예로서 주어진 특정 구성에 따르면:
- 단일 변환(S) 예를 들어, DST가 적용되고 치환 연산(OP0)이 DST와의 조합으로 적용되는 경우에, 앞서 언급한 단계(C5)에서 선택되는 치환-변환 쌍(SOP0)은 그 때 '0'으로 설정되는 1 비트로 시그널링될 것이며,
- 단일 변환(S) 예를 들어, DST가 적용되고 다수의 치환 연산이 DST와의 조합으로 적용될 수 있는 경우에, 앞서 언급한 단계(C5)에서 선택되는 치환-변환 쌍은 그 때 '1'로 설정되는 1 비트로 시그널링될 것이다.
인코딩 단계(C9)의 끝부분에서, 양자화된 계수들의 블록(Bqu)의 인코딩된 데이터의 세트 및 선택적으로 인코딩되는 인덱스(m*,n*)의 전체 또는 하나의 부분을 포함하는 신호 또는 데이터 스트림(F)이 그 때 전달된다. 그러한 스트림은 그 때 통신 네트워크(나타내어지지 않음)를 통하여 원격 단말기로 송신된다. 이는 도 4에 나타내어지는 디코더(DO)를 포함한다. 그 자체로 알려진 방식으로, 스트림(F)는 예측의 타입(인터 또는 인트라), 그리고 적용 가능한 경우, 선택되는 예측 모드, 블록이 분할되었으면 블록의 분할의 타입, 참조 이미지 인덱스 및 인터 예측 모드에 사용되는 모션 벡터와 같은 인코더(CO)에 의해 인코딩되는 일부 정보를 더 포함한다.
도 1에 나타내어지는 단계(C10) 중에서, 블록(Bqu)은 통상적 역양자화 연산에 따라 역양자화되며, 통상적 역양자화 연산은 단계(C8)에서 수행되는 양자화의 반대 연산이다. 역양자화된 계수들의 블록(BDtu)이 그 다음 얻어진다.
그러한 역양자화 단계는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 바와 같은 역양자화 소프트웨어 모듈(MQ-1_CO)에 의해 수행된다.
도 1에 나타내어지는 단계(C11) 중에서, 변환 연산(OTn *)의 반대인 변환 연산(OT-1 n*)은 디코딩된 치환된 블록(BDpu)을 생성하기 위해 역양자화된 계수들의 블록(BDtu)의 데이터에 적용된다.
단계(C11)는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 바와 같은 변환 소프트웨어 모듈(MT-1_CO)에 의해 구현된다.
도 1에 나타내어지는 단계(C12) 중에서, 치환 연산(OPm *)의 반대인 치환 연산(OP-1 m*)이 디코딩된 잔여 블록(BDru)을 생성하기 위해 디코딩된 치환된 블록(BDpu)의 데이터에 적용된다.
단계(C12)는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 바와 같은 치환 소프트웨어 모듈(MPER-1_CO)에 의해 구현된다.
도 1에 나타내어지는 단계(C13) 중에서, 디코딩된 블록(BDu)은 디코딩된 잔여 블록(BDru)을 앞서 언급한 단계(C3)에서 얻어지는 예측 변수 블록(BPopt)에 추가함으로써 구성된다. 이러한 마지막 블록이 본 설명에서 나중에 설명할 이미지(ICj)를 디코딩하는 방법의 끝부분에서 얻어지는 디코딩된 블록과 동일하다는 점이 주목될 것이다. 디코딩된 블록(BDu)은 그 다음 인코딩될 그 다음의 블록에 대한 예측 변수 블록으로서 인코더(CO)에 의해 사용되기 위해 도 2에서의 버퍼 메모리(MT_CO)에 저장된다.
그러한 단계는 모듈이 처리부(UT_CO)의 마이크로프로세서(μP)에 의해 제어되는 도 2에 나타내어지는 역예측 인코딩 소프트웨어 모듈(PRED-1_CO)에 의해 구현된다.
도 1에 나타내어지는 단계(C14) 중에서, 인코더(CO)는 이제 막 인코딩되었던 현재의 블록(Bu)이 이미지(ICj)의 마지막 블록인지 여부를 검사한다.
현재의 블록이 이미지(ICj)의 마지막 블록이면, 도 1에 나타내어지는 그 다음의 단계(C15) 중에서, 인코딩하는 방법이 종료된다.
그러한 경우가 아니라면, 인코딩될 그 다음의 블록을 선택하는 단계(C2)가 앞서 언급한 래스터 스캔 스캐닝 순서에 따라 반복되며, 그 다음 단계들(C3 내지 C14)이 이러한 선택되는 그 다음의 블록에 대해 반복된다.
이제 막 상술하였던 인코딩 단계들이 고려되는 현재의 이미지(ICj)의 인코딩될 모든 블록들(B1, B2, ..., Bu,..., BS)에 대해 구현된다.
치환-변환 쌍들의 특정 구성들
치환-변환 쌍들의 다른 가능한 구성들이 부가 예들로서 이하에 이제 언급될 것이다.
일 실시예에 따르면, 특히 도 3a 내지 도 3c와 관련하여 앞서 제공된 치환들 및 변환들의 세트를 사용하는 것보다 오히려, 이러한 세트가 제한되는 것이 제공된다.
따라서 크기 4x4의 블록들의 경우, 예를 들어, 치환-변환 쌍의 수에 따른 다양한 중간물이 이하에 제공된다.
이러한 목적으로, 사용될 다수의 상이한 치환-변환 쌍을 한정하는 1+Y 모드가 결정된다.
Y=0의 경우, 1+0 모드는 하나의 변환 및 하나의 "항등식" 치환(P0)을 포함하는 쌍을 한정한다.
Y>0의 경우, 1+Y 모드는 복수의 변환 및 복수의 치환의 조합으로부터 형성되는 다수의 쌍을 한정한다.
예로서:
- Y=1의 경우, 1+1 모드는 2개의 가능한 변환 및 치환 쌍을 한정하는 모드이며, 2개의 상이한 변환: 하나의 "항등식" 치환(P0) 및 하나의 DST 변환으로 형성되는 하나의 쌍 및 하나의 "항등식" 치환(P0) 및 하나의 DCT 변환으로 형성되는 다른 쌍이 제공되며,
- Y=2의 경우, 1+2 모드는 3개의 가능한 변환 및 치환 쌍을 한정하는 모드이며, 2개의 상이한 변환 및 3개의 상이한 치환(P0, P1, P2)이 이하의 3개의 치환-변환 쌍: P0-DST, P1-DST, P2-DCT을 구성하도록 제공된다.
앞서 언급한 1+0, 1+1 및 1+2 모드들은 사용될 변환의 수를 감소시키기 위해 복잡한 다양한 중간물을 제공하여, 최고 치환-변환 쌍을 선택하기 위한 인코딩 동안의 검사될 쌍의 수를 감소시킨다.
따라서 1+1 모드에서, 도 1에 나타내어지는 선택 단계(C5) 중에서, DCT 및 DST 변환들만이 단일의 가능한 치환만이 제공되므로, 속도-왜곡 기준(Jm,n)에 따라 비교될 필요가 있다.
1+2 모드에서, 앞서 언급한 선택 단계(C5) 중에서, 3개의 속도-왜곡 기준만이 3개의 치환-변환 쌍만이 그러한 모드에 있으므로, 비교될 필요가 있다.
치환들의 저장은 치환-변환 쌍의 수가 제한되는 경우에 감소될 수도 있다.
인코더(CO)에서 이용 가능하게 되는 치환-변환 쌍의 수 및 블록들의 크기에 따른 중간물들의 세트가 이하에 나타내어진다.
P0+dst 모드 즉, 순전히 dst 접근법이 예를 들어, DCT와 같은 다른 변환들에 기반하여 치환-변환 쌍들의 세트와 경합하여 배치된다.
따라서, 현재의 블록의 인코딩은 인코더(CO)에 복수의 상이한 치환-변환 쌍을 제공함으로써 효과적으로 개선된다.
또한, 치환-변환 쌍들의 크기들을 조합하는 것이 가능하다. 예를 들어, 복잡성 및 품질의 매우 양호한 중간물이 4x4 블록들에 대해 1+2 모드 및 8x8 블록들에 대해 1+8 모드를 보유함으로써 달성될 수 있다. 인코더(CO)는 그 다음 속도-왜곡 기준을 최소화함으로써 크기 8x8에 대해 동일한 제공되는 것들 중으로부터 최고 4x4 변환을 선택한다. 조합된 선택은 현재의 블록의 분할을 선택할 때 행해질 수 있다. 예로서, 이하의 조합들은 주어진 이미지 품질에 대한 송신 속도를 감소시키는 면에서 조합들의 연관된 성능들과 함께 이하에 제공된다:
특히, 1.09%의 속도의 감소가 4x4 블록들에 대한 1+2 모드 및 8x8 블록들에 대한 1+8 모드를 사용하는 조합 6을 사용하여 얻어진다. 이러한 속도의 감소는 영상 인코딩 특히, 낮은 복잡성의 기법에 대해 매우 상당하다.
도 2에서의 인코더(CO)가 기준(Jm *,n*)의 인덱스(m*,n*)의 전체를 송신하는데 필요하지 않은 경우, 증가된 인코딩 성능들은 이하에 나타내어진 바와 같이 얻어진다:
디코딩부의
상세한 설명
디코딩하는 방법이 HEVC 표준에 초기에 순응하는 디코더에 대한 변경들에 의해 소프트웨어 또는 하드웨어로 구현되는 본 발명에 따른 디코딩하는 방법의 일 실시예를 이제 설명할 것이다. 본 발명에 따른 디코딩하는 방법은 도 5에 나타내어지는 바와 같이 단계들(D1 내지 D12)을 포함하는 알고리즘의 형태로 나타내어진다.
도 4에 도시된 바와 같이, 본 발명의 이러한 실시예에 따른 디코더(DO)는 버퍼 메모리(MT_DO)를 포함하는 메모리(MEM_DO), 예를 들어, 마이크로프로세서(μP)가 구비되고 본 발명에 따른 디코딩하는 방법을 구현하는 컴퓨터 프로그램(PG_DO)에 의해 제어되는 처리부(UT_DO)를 포함한다. 초기화 시에, 컴퓨터 프로그램(PG_DO)의 코드 명령어들은 예를 들어, 처리부(UT_DO)의 프로세서에 의해 실행되기 전에, RAM 메모리로 로딩된다.
도 5에 나타내어지는 디코딩하는 방법은 디코딩될 이미지들의 시퀀스(SQ)의 임의의 현재의 이미지에 적용된다.
이러한 목적으로, 디코딩될 현재의 이미지(ICj)를 나타내는 정보 아이템들은 도 1의 인코딩하는 방법의 결과로서 전달되는 디코더에서 수신되는 신호 또는 데이터 스트림(F)에서 식별된다.
도 5를 참조하면, 단계(D1) 중에서, 양자화된 잔여물들(Bq1, Bq2,..., Bqu, ...BqS) (1≤u≤S)는 도 1의 인코딩하는 방법에 따른 앞서 언급한 래스터 스캔 스캐닝에 따라 이전에 인코딩된 블록들(B1, B2, ..., Bu,..., BS)과 연관되는 이러한 스트림(F)에서 식별된다.
그러한 신원 확인 단계는 도 4에 나타내어지는 바와 같은 스트림 분석 신원 확인 모듈(MI_DO)에 의해 구현되며, 이러한 모듈은 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어된다.
이러한 양자화된 잔여물들(Bq1, Bq2, ..., Bqu,..., BqS)은 미리 결정된 스캐닝 순서에 따라 디코딩되는 것으로 의도되며, 미리 결정된 스캐닝 순서는 예를 들어, 순차적이며 즉, 이러한 잔여물들은 이러한 잔여물들이 인코딩되었던 래스터 스캔 순서에 따라 차례로 디코딩되는 것으로 의도된다.
이제 막 상술했던 스캐닝의 타입 이외의 스캐닝의 타입들이 물론 가능하고 예들이 앞서 언급되었던 인코딩에서 선택되는 스캐닝 순서에 의존한다.
바람직하게는 본 발명에서, 디코딩될 블록들은 특히 2의 배수 거듭제곱 예를 들어, 4x4 및 8x8인 크기이다. 그러나, 본 발명은 또한 크기 MxM(M=16, 32 또는 64)의 블록들에 보다 일반적으로 적용된다. PxM 및 MxP 블록들이 또한 사용 가능하며, P 및 M이 설정된 2, 4, 8, 16, 32 및 64에서 P 및 M의 값을 취한다.
각각의 블록은 하위 블록들 자체가 재분할할 수 있는 하위 블록들로 그 자체가 추가로 분할될 수 있다.
도 5에 나타내어지는 단계(D2) 중에서, 도 4의 디코더(DO)는 제1 양자화된 잔여 블록(Bqu)을 현재의 블록으로 선택한다.
도 5에 나타내어지는 단계(D3) 중에서, 디코딩될 현재의 블록(Bu)의 예측은 인트라 및/또는 인터 예측의 알려진 기법들에 의해 수행된다. 이러한 목적으로, 디코딩될 블록(Bu)은 복수의 미리 결정된 예측 모드 중으로부터 선택되는 예측 모드에 따라 적어도 하나의 예측 변수 블록에 대하여 예측된다.
특히, 선택되는 예측 모드는 도 2의 인코더(CO)가 도 4의 디코더(DO)로 이러한 모드를 시그널링했던 경우에 스트림(F)에서 직접 판독된다.
그러한 예측 변수 블록은 예를 들어, 이미 디코딩되거나 디코딩되지 않았던 픽셀들의 블록이다. 그러한 예측 변수 블록은 도 4에 나타내어지는 바와 같이 디코더(DO)의 버퍼 메모리(MT_DO)에 앞서 저장된다.
예측 단계(D3)의 끝부분에서, 선택되는 예측 모드에 순응하는 최적 예측 변수 블록(BPopt)이 얻어진다. 블록(BPopt)은 디코딩될 현재의 블록(Bu)의 근사치이다. 이러한 예측과 관련하는 정보 아이템들은 데이터 스트림(F)에서 판독된다. 그러한 정보 아이템들은 특히 예측의 타입(인터 또는 인트라), 현재의 블록이 재분할되었으면 현재의 블록의 분할의 타입, 참조 이미지 인덱스 및 인터 예측 모드가 선택되었던 경우에 사용되는 모션 벡터를 포함한다. 이러한 정보 아이템들은 통상적 방식으로 나중에 디코딩될 것이다.
단계(D3)는 모듈이 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어되는 도 4에 나타내어지는 예측 디코딩 소프트웨어 모듈(PRED_DO)에 의해 구현된다.
도 5에 나타내어지는 단계(D4) 중에서, 양자화된 잔여 블록(Bqu)의 데이터는 디코딩된 양자화된 잔여 블록(BDqu)을 생성하기 위해 디코딩된다. 바람직한 실시예에서, 수행되는 디코딩은 이와 같이 알려져 있는 연산 또는 허프먼 엔트로피 디코딩이다. 단계(D4)는 그 때:
- 디코딩될 이러한 현재의 블록과 연관되는 심볼 또는 심볼들을 판독하는 단계,
- 비트들과 같은 디지털 정보를 판독되는 심볼(들)과 연관시키는 단계로 구성된다.
그러한 엔트로피 디코딩 단계는 모듈이 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어되는 도 4에 나타내어지는 엔트로피 디코딩 소프트웨어 모듈(MDE)에 의해 구현된다. 엔트로피 디코딩 모듈(MDE)은 예를 들어, CABAC 타입이다. 그것은 이와 같이 알려져 있는 허프먼 디코더일 수도 있다.
도 5에 나타내어지는 단계(D5) 중에서, 양자화된 잔여 블록(Bqu)은 통상적 역양자화 연산에 따라 역양자화되며, 통상적 역양자화 연산은 도 1의 단계(C7)에서 수행되는 양자화 연산의 반대 연산이다. 디코딩된 역양자화된 블록(BDtu)이 그 다음 얻어진다.
그러한 역양자화 단계는 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어되는 도 4에 나타내어지는 바와 같은 역양자화 소프트웨어 모듈(MQ-1_DO)에 의해 수행된다.
도 5에 나타내어지는 단계(D6) 중에서, 변환(OTn *) 및 치환(OPm *) 연산들 각각의 반대 연산들인, 변환 연산(OT-1 n*) 및 치환 연산(OP-1 m*)을 포함하는 수학적 연산들의 쌍이 결정되며, 이러한 쌍은 도 1의 앞서 언급한 선택 단계(C5)에서 보유되는 미리 결정된 기준(Jm *,n*)에 순응한다.
그러한 단계(D6)는 모듈이 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어되는 도 4에 나타내어지는 결정 소프트웨어 모듈(MDT_DO)에 의해 구현된다.
도 6a에 나타내어지는 바와 같이, 앞서 언급한 단계(C5)에서 보유되는 기준(Jm*,n*)의 인덱스(m*,n*)가 도 1의 인코딩 단계(C9)의 결과로서 인덱스(m*,n*)의 전체로 스트림(F)으로 송신되었던 경우에, 결정 단계(D6)는:
- 도 6a에 나타내어지는 하위 단계(D610) 중에서, 판독되는 인덱스와 연관되는 치환(OPm *) 및 변환(OTn *) 연산들의 쌍을 회수하기 위해 데이터 신호(F)에서 이러한 인덱스를 판독하는 단계,
- 도 6a에 나타내어지는 하위 단계(D611) 중에서, 판독되는 인덱스와 연관되는 쌍의 치환(OPm *) 및 변환(OTn *) 연산들의 역치환(OP-1 m*) 및 변환(OT-1 n*) 연산들을 결정하는 단계로 구성된다.
그러한 단계들은 도 4의 디코더(DO)가 그 자체로 인덱스(m*,n*)의 전체를 회수할 수 없을 때, 필요하다.
하위 단계들(D610 및 D611)은 도 4에 나타내어지는 소프트웨어 하위 모듈(SMDT1_DO)에 의해 구현된다.
이러한 단계(D6) 중에서, 인덱스(m*,n*)는 디코딩된다.
보다 정확하게는, 디코더(DO)는 기준(Jm *,n*)과 연관되는 치환-변환 쌍의 값을 회수하고 상응하는 역치환-역변환을 치환-변환 쌍의 값과 연관시키기 위해 예를 들어, 고정 길이 2진 코드를 판독한다.
예를 들어, 앞서 언급한 단계(C9)와 관련하여 설명했던 바와 같이, 치환-변환 쌍들의 4개의 값: 0, 1, 2, 3이 스트림(F)으로 시그널링될 것 같은 경우에,
- 디코더(DO)가 코드 00을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 0을 할당하며,
- 디코더(DO)가 코드 01을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 1을 할당하며,
- 디코더(DO)가 코드 10을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 2를 할당하며,
- 디코더(DO)가 코드 11을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 3을 할당한다.
앞서 언급한 단계(C9)와 관련하여 설명했던 변형예에서, 디코더(DO)에 의해 판독되도록 의도되는 인덱스(m*,n*)는 가변 길이 코드를 사용하여 표현된다.
예를 들어, 앞서 언급한 단계(C9)와 관련하여 설명했던 바와 같이, 치환-변환 쌍들의 4개의 값: 0, 1, 2, 3이 스트림(F)으로 시그널링될 것 같은 경우에,
- 디코더(DO)가 코드 0을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 0을 할당하며,
- 디코더(DO)가 코드 10을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 1을 할당하며,
- 디코더(DO)가 코드 110을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 2를 할당하며,
- 디코더(DO)가 코드 111을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 3을 할당한다.
앞서 언급한 단계(C9)와 관련하여 설명하는 바람직한 실시예에 따르면, 디코더(DO)에 의해 판독되는 것으로 의도되는 인덱스(m*,n*)는 2개의 표시기:
- 인코딩에서 선택되는 치환-변환 쌍(OPm *, OTn *)과 연관되는 코드의 제1 비트를 시그널링하는 플래그, 및
- 2진 형태로 덜 개연적인 치환-변환 쌍들을 나타내는 상호 보완적 신택스 요소를 포함한다.
예를 들어, 앞서 언급한 단계(C9)와 관련하여 설명했던 바와 같이, 치환-변환 쌍들의 4개의 값: 0, 1, 2, 3이 스트림(F)으로 시그널링될 것 같은 경우에,
- 디코더(DO)가 플래그 '0'을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm*,n*)과 연관되었던 치환-변환 쌍에 값 0을 할당하며,
- 디코더(DO)가 플래그 '1' 및 2진 보수 '0'을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 1을 할당하며,
- 디코더(DO)가 플래그 '1' 및 2진 보수 '10'을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 2를 할당하며,
- 디코더(DO)가 플래그 '1' 및 2진 보수 '11'을 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍에 값 3을 할당한다.
앞서 언급한 단계(C9)와 관련하여 설명하는 다른 바람직한 실시예에 따르면, 디코더(DO)에 의해 판독되는 것으로 의도되는 인덱스(m*,n*)는 하나의 플래그만으로 구성된다. 이러한 다른 바람직한 모드는 단일 변환 예를 들어, DST가 코딩에서 적용되고 2개의 치환 연산(OP0 및 OP1)이 DST와의 조합으로 적용될 것 같은 경우에 적용 가능하다.
이러한 목적으로,
- 디코더(DO)가 '1'로 설정되는 비트를 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm*,n*)과 연관되었던 치환-변환 쌍(SOP0)에 이러한 비트의 값을 할당하며,
- 디코더(DO)가 '0'으로 설정되는 비트를 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍(SOP1)에 이러한 비트의 값을 할당한다.
2개보다 더 많은 치환-변환 쌍이 스트림(F)으로 시그널링될 것 같은 경우에, 디코더(DO)는 고정 또는 가변 길이 코드를 판독하는데 적절하다.
앞서 언급한 단계(C9)와 관련하여 설명하는 다른 가능한 실시예에 따르면, 인덱스(m*,n*)는 스트림(F)으로 시그널링되지 않거나 인덱스(m*,n*)의 일부만이 스트림(F)으로 시그널링된다.
도 6b에 나타내어지는 바와 같이, 앞서 언급한 단계(C5)에서 보유되는 기준(Jm*,n*)의 인덱스(m*,n*)가 도 1의 인코딩 단계(C9)의 결과로서 스트림(F)으로 송신되지 않았던 경우에, 결정 단계(D6)는:
- 도 6b에 나타내어지는 하위 단계(D620) 중에서, 디코딩된 역양자화된 블록(BDtu)을 나타내는 데이터에 치환 연산이 뒤따르는 변환 연산을 포함하는 수학적 연산들의 복수의 쌍을 적용하는 단계로서, 이러한 변환 및 치환 연산들은 도 4의 디코더(DO)의 메모리(MT_DO)에서 이용 가능한 미리 결정된 복수의 변환 연산(OT-1 0, OT-1 1,..., OT- 1 n,..., OT-1 L- 1)(여기서 0≤n≤L-1) 및 미리 결정된 복수의 치환 연산(OP-1 0, OP- 1 1,..., OP- 1 m,..., OP-1 K- 1)(여기서 0≤m≤K-1) 중으로부터 각각 선택되는 단계,
- 도 6b에 나타내어지는 하위 단계(D621) 중에서, 적용되는 이러한 복수의 쌍으로부터 복수의 블록을 재건하는 단계,
- 도 6b에 나타내어지는 하위 단계(D622) 중에서, 복수의 재건된 블록에 적용되는 일관성의 기준을 최대화함으로써 복수의 재건된 블록 중으로부터 재건된 블록을 선택하는 단계로 구성된다.
하위 단계(D622)의 끝부분에서, 선택되는 재건된 블록과 연관되는 변환 및 치환 연산들의 쌍이 그 다음 식별된다.
하위 단계들(D620 내지 D622)은 도 4의 디코더(DO)가 그 자체로 인덱스(m*,n*)의 전체를 회수할 수 있을 때, 구현된다.
그러한 하위 단계들은 도 4에 나타내어지는 소프트웨어 하위 모듈(SMDT2_DO)에 의해 구현된다.
앞서 언급한 일관성의 기준은 재건된 블록의 인근에 대하여 고려되는 재건된 블록의 픽셀들의 일관성을 측정하는 것으로 구성된다. 일관성 측정은 차이들의 절댓값들의 합을 계산함으로써 재건된 블록의 픽셀들과 재건된 블록의 이웃하는 것 사이의 연속성의 측정일 수 있다.
예로서 주어지고 앞서 언급한 단계(C9)와 관련하여 설명했던 다른 특정 구성에 따르면:
- 단일 변환 예를 들어, DST가 인코딩 또는 디코딩에 적용될 것 같고 치환 연산(OP0)이 DST와의 조합으로 적용되는 경우에, 디코더(DO)가 '0'으로 설정되는 비트를 판독하면, 디코더(DO)는 인코딩에서, 기준(Jm *,n*)과 연관되었던 치환-변환 쌍(SOP0)에 이러한 비트의 값을 할당하며,
- 단일 변환 예를 들어, DST가 적용될 것 같고 다수의 치환 연산이 DST와의 조합으로 적용될 수 있는 경우에, 디코더(DO)가 '1'로 설정되는 비트를 판독하면, 디코더(DO)는 디코딩에 적용될 것 같은 복수의 가능한 치환-변환 쌍에 이러한 비트의 값을 할당하고, 예를 들어, 일관성 측정들을 사용하여 어느 것이 실제로 시그널링되었던 쌍인지를 그 자체로 추론한다.
복수의 역치환 연산(OP-1 0, OP- 1 1,..., OP- 1 m,..., OP-1 K- 1)은 예들이 인코딩하는 방법의 위의 설명에 인용되었던 복수의 치환 연산(OP0, OP1,..., OPm,..., OPK - 1)의 반대에 상응한다.
복수의 변환 연산(OT-1 0, OT- 1 1,..., OT- 1 n,..., OT-1 L- 1)은 예들이 인코딩하는 방법의 위의 설명에 인용되었던 복수의 변환 연산(OT0, OT1,.., OTn,..., OTL - 1)의 반대에 상응한다. 도 5에 나타내어지는 단계(D7) 중에서, 변환 연산(OTn *)의 반대인 변환 연산(OT-1 n*)은 디코딩된 치환된 블록(BDpu)을 생성하기 위해 역양자화된 계수들(BDtu)의 블록의 데이터에 적용된다.
단계(D7)는 모듈이 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어되는 도 4에 나타내어지는 바와 같은 변환 소프트웨어 모듈(MT-1_DO)에 의해 구현된다.
도 5에 나타내어지는 단계(D8) 중에서, 치환 연산(OPm *)의 반대인 치환 연산(OP-1 m*)이 디코딩된 잔여 블록(BDru)을 생성하기 위해 디코딩된 치환된 블록(BDpu)의 데이터에 적용된다.
단계(D8)는 모듈이 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어되는 도 4에 나타내어지는 바와 같은 치환 소프트웨어 모듈(MPER-1_DO)에 의해 구현된다.
도 5에 나타내어지는 단계(D9) 중에서, 현재의 블록(Bu)은 단계(D3)에서 얻어지는 예측 변수 블록(BPopt)을 디코딩된 현재의 잔여 블록(BDru)에 추가함으로써 재건된다.
이러한 단계(D9)는 모듈이 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어되는 도 4에 나타내어지는 역예측 소프트웨어 모듈(PRED-1_DO)에 의해 구현된다.
디코딩된 블록(BDu)은 그 다음 얻어지고 디코딩될 그 다음의 블록에 대한 예측 변수 블록으로서 디코더(DO)에 의해 사용되기 위해 도 4에서의 버퍼 메모리(MT_DO)에 저장된다.
도 5에 나타내어지는 단계(D10) 중에서, 이러한 디코딩된 블록(BDu)은 현재의 디코딩된 이미지(IDCj)에 기록된다. 그러한 단계는 도 4에 나타내어지는 바와 같은 이미지 재건 소프트웨어 모듈(URI)에 의해 구현되며, 이러한 모듈은 처리부(UT_DO)의 마이크로프로세서(μP)에 의해 제어된다.
도 5에 나타내어지는 단계(D11) 중에서, 디코더(DO)는 이제 막 디코딩되었던 현재의 블록(BDu)이 스트림(F)에 포함되는 마지막 블록인지 여부를 검사한다.
그러한 경우라면, 도 5에 나타내어지는 단계(D12) 중에서, 디코딩하는 방법이 종료된다.
그러한 경우가 아니라면, 단계(D2) 중에서, 앞서 언급한 래스터 스캔 스캐닝 순서에 따라 디코딩될 그 다음의 잔여 블록의 선택이 수행된다.
이제 막 상술하였던 디코딩 단계들이 고려되는 현재의 이미지(ICj)의 디코딩될 모든 블록들(B1, B2, ..., Bu,..., BS)에 대해 구현된다.
상술하였던 실시예들이 단순히 지시적인 것으로 주어졌고 결코 제한적이지 않고, 많은 변경들이 그러나, 본 발명의 범위로부터 벗어나지 않는 범위 내에서 당업자에 의해 용이하게 행해질 수 있다는 것은 말할 필요도 없다.
따라서, 크기 4x4 또는 8x8의 현재의 블록들에 적용되는 것 대신에, 본 발명에 따른 인코딩하고/하거나 디코딩하는 방법은 예를 들어, 16x16 및 32x32와 같은 상이한 가능한 크기들을 갖는 현재의 블록들에 적용될 수도 있다.
Claims (13)
- 블록들로 컷팅되는 적어도 하나의 이미지(ICj)를 인코딩하는 방법으로서, 인코딩될 현재의 블록(Bu)에 대해:
- 적어도 하나의 예측 변수 블록(BPopt)을 사용하여 상기 현재의 블록을 예측하는 단계(C3),
- 상기 예측 변수 블록과 상기 현재의 블록 사이의 차이를 나타내는 잔여 데이터 블록을 결정하는 단계(C4),
- 복수의 치환 연산(OP0, OP1,.., OPm,..., OPK - 1)(여기서 0≤m≤K-1 및 0≤m*≤K-1), 및 복수의 변환 연산(OT0, OT1,..., OTn,..., OTL - 1)(여기서 0≤n≤L-1 및 0≤n*≤L-1) 중으로부터의 치환 연산(OPm *) 및 변환 연산(OTn *)을 포함하는 수학적 연산들의 쌍을 미리 결정된 기준에 따라 선택하는 단계(C5),
- 상기 선택된 쌍의 상기 치환 연산(OPm *)을 상기 결정된 잔여 블록의 데이터에 적용하는 단계(C6),
- 상기 선택된 쌍의 상기 변환 연산(OTn *)을 상기 치환된 데이터에 적용하는 단계(C7),
- 상기 적용된 변환 연산으로부터의 상기 데이터를 인코딩하는 단계(C9)를 포함하는 것을 특징으로 하는 인코딩하는 방법. - 제1항에 있어서,
상기 복수의 변환 연산(OT0, OT1,..., OTn,..., OTL - 1)은 이산 사인 변환을 포함하는, 인코딩하는 방법. - 제1항에 있어서,
상기 미리 결정된 기준은 상기 인코딩될 현재의 블록의 속도-왜곡(rate-distortion) 비용의 최소화인, 인코딩하는 방법. - 제1항에 있어서,
상기 선택되는 치환 연산은 상기 잔여 블록의 상기 데이터를 이항하는 연산에 따라 상기 결정된 잔여 블록의 상기 데이터를 점진적으로 이동시키는 것으로 구성되는, 인코딩하는 방법. - 블록들로 컷팅되는 적어도 하나의 이미지(ICj)를 인코딩하는 디바이스(CO)로서, 인코딩될 현재의 블록에 대해:
- 적어도 하나의 예측 변수 블록(BPopt)을 사용하여 상기 현재의 블록을 예측하는 수단(PRED_CO),
- 상기 예측 변수 블록과 상기 현재의 블록 사이의 차이를 나타내는 잔여 데이터 블록을 결정하는 수단(PRED_CO),
- 복수의 치환 연산(OP0, OP1,.., OPm,..., OPK - 1)(여기서 0≤m≤K-1 및 0≤m*≤K-1), 및 복수의 변환 연산(OT0, OT1,..., OTn,..., OTL - 1)(여기서 0≤n≤L-1 및 0≤n*≤L-1) 중으로부터의 치환 연산(OPm *) 및 변환 연산(OTn *)을 포함하는 수학적 연산들의 쌍을 미리 결정된 기준에 따라 선택하는 수단(CAL_CO),
- 상기 선택된 쌍의 상기 치환 연산(OPm *)을 상기 결정된 잔여 블록의 데이터에 적용하는 치환 수단(MPER_CO),
- 상기 선택된 쌍의 상기 변환 연산(OTn *)을 상기 치환된 데이터에 적용하는 변환 수단(MT_CO),
- 상기 변환 수단(MT_CO)에 의해 전달되는 상기 데이터를 인코딩하는 인코딩 수단(MCE)을 포함하는, 인코딩하는 디바이스(CO). - 컴퓨터 프로그램을 저장하고 있는 비-일시적 컴퓨터-판독가능 저장 매체로서,
상기 컴퓨터 프로그램은, 상기 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 제1항 내지 제4항 중 어느 한 항에 따른 인코딩하는 방법의 단계들을 실행하기 위한 프로그램 코드 명령어들을 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체. - 블록들로 컷팅되는 적어도 하나의 이미지(ICj)를 나타내는 데이터 신호(F)를 디코딩하는 방법으로서, 디코딩될 현재의 블록(Bu)에 대해:
- 상기 디코딩될 현재의 블록과 연관되는 현재의 잔여 블록을 나타내는 데이터를 상기 데이터 신호에서 결정하는 단계(D1),
- 상기 디코딩될 현재의 블록의 적어도 하나의 예측 변수 블록(BPopt)을 결정하는 단계(D3),
- 변환 연산(OT-1 n*) 및 치환 연산(OP-1 m*)을 포함하는 수학적 연산들의 쌍을 결정하는 단계(D6),
- 연산들의 상기 결정된 쌍의 상기 변환 연산(OT-1 n*)을 현재의 잔여 블록을 나타내는 상기 데이터에 적용하는 단계(D7),
- 상기 결정된 쌍의 상기 치환 연산(OP-1 m*)을 상기 변환 연산을 적용하는 단계의 결과로서 얻어지는 상기 데이터에 적용하는 단계(D8),
- 상기 결정된 예측 변수 블록 및 상기 적용되는 치환 연산으로부터의 상기 데이터를 사용하여 상기 현재의 블록(Bu)을 재건하는 단계(D9)를 포함하는 것을 특징으로 하는 디코딩하는 방법. - 제7항에 있어서,
상기 수학적 연산들의 쌍을 결정하는 단계(D6)는:
- 상기 디코딩될 현재의 블록의 인코딩에서 선택되는 치환 및 변환 연산들의 쌍을 나타내는 정보를 상기 데이터 신호에서 판독하는 단계(D610),
- 상기 판독되는 정보와 연관되는 쌍의 상기 치환 및 변환 연산들의 역치환 및 변환 연산들을 결정하는 단계(D611)를 구현하는, 디코딩하는 방법. - 제7항에 있어서,
상기 수학적 연산들의 쌍을 결정하는 단계(D6)는:
- 상기 현재의 잔여 블록을 나타내는 상기 데이터에 치환 연산이 뒤따르는 변환 연산을 포함하는 수학적 연산들의 복수의 쌍을 적용하는 단계(D620)로서, 상기 변환 및 치환 연산들은 미리 결정된 복수의 변환 연산(OT-1 0, OT- 1 1,..., OT-1 n,..., OT-1 L- 1)(여기서 0≤n≤L-1) 및 미리 결정된 복수의 치환 연산(OP-1 0, OP-1 1,..., OP- 1 m,..., OP-1 K- 1)(여기서 0≤m≤K-1) 중으로부터 선택되는 단계,
- 상기 적용되는 복수의 쌍으로부터 복수의 블록을 재건하는 단계(D621),
- 상기 복수의 재건된 블록에 적용되는 일관성의 기준을 최대화함으로써 상기 복수의 재건된 블록 중으로부터의 재건된 블록을 선택하는 단계(D622)로 구성되는, 디코딩하는 방법. - 제8항에 있어서,
상기 결정되거나 선택된 변환 연산은 이산 사인 변환인, 디코딩하는 방법. - 제7항에 있어서,
연산들의 상기 결정된 쌍의 상기 치환 연산은 상기 얻어지는 데이터를 이항하는 연산에 따라 상기 결정된 쌍의 상기 변환 연산을 적용하는 단계의 결과로서 얻어지는 상기 데이터를 점진적으로 이동시키는 것으로 구성되는, 디코딩하는 방법. - 블록들로 컷팅되는 적어도 하나의 이미지(ICj)를 나타내는 데이터 신호(F)를 디코딩하는 디바이스(DO)로서, 디코딩될 현재의 블록에 대해:
- 상기 디코딩될 현재의 블록과 연관되는 현재의 잔여 블록을 나타내는 데이터를 상기 데이터 신호에서 결정하는 수단(MI_DO),
- 상기 디코딩될 현재의 블록의 적어도 하나의 예측 변수 블록(BPopt)을 결정하는 수단(PRED_DO),
- 변환 연산(OT-1 n*) 및 치환 연산(OP-1 m*)을 포함하는 수학적 연산들의 쌍을 결정하는 수단(MDT_DO),
- 상기 결정된 쌍의 상기 변환 연산(OT-1 n*)을 상기 현재의 잔여 블록을 나타내는 상기 데이터에 적용하는 변환 수단(MT-1_DO),
- 상기 결정된 쌍의 상기 치환 연산(OP-1 m*)을 상기 변환된 데이터에 적용하는 치환 수단(MPER-1_DO),
- 상기 결정된 예측 변수 블록 및 상기 치환 수단(MPER-1_DO)에 의해 전달되는 상기 데이터를 사용하여 상기 현재의 블록(Bu)을 재건하는 예측 수단(PRED-1_DO)을 포함하는 디코딩하는 디바이스(DO). - 컴퓨터 프로그램을 저장하고 있는 비-일시적 컴퓨터-판독가능 저장 매체로서,
상기 컴퓨터 프로그램은, 상기 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 제7항 내지 제11항 중 어느 한 항에 따른 디코딩하는 방법의 단계들을 실행하기 위한 프로그램 코드 명령어들을 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020217021840A KR102391402B1 (ko) | 2013-11-29 | 2014-11-27 | 이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1361822A FR3014278A1 (fr) | 2013-11-29 | 2013-11-29 | Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants |
FR1361822 | 2013-11-29 | ||
PCT/FR2014/053069 WO2015079179A1 (fr) | 2013-11-29 | 2014-11-27 | Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217021840A Division KR102391402B1 (ko) | 2013-11-29 | 2014-11-27 | 이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160091392A KR20160091392A (ko) | 2016-08-02 |
KR102279101B1 true KR102279101B1 (ko) | 2021-07-16 |
Family
ID=50729526
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167017077A KR102279101B1 (ko) | 2013-11-29 | 2014-11-27 | 이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램 |
KR1020217021840A KR102391402B1 (ko) | 2013-11-29 | 2014-11-27 | 이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217021840A KR102391402B1 (ko) | 2013-11-29 | 2014-11-27 | 이미지를 인코딩하고 디코딩하기 위한 방법, 이미지를 인코딩하고 디코딩하기 위한 디바이스 및 상응하는 컴퓨터 프로그램 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10616586B2 (ko) |
EP (1) | EP3075155B1 (ko) |
KR (2) | KR102279101B1 (ko) |
CN (1) | CN105794208B (ko) |
BR (1) | BR112016011972B1 (ko) |
ES (1) | ES2721023T3 (ko) |
FR (1) | FR3014278A1 (ko) |
WO (1) | WO2015079179A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015172337A1 (en) * | 2014-05-14 | 2015-11-19 | Mediatek Singapore Pte. Ltd. | Alternative transforms for data compression |
FR3038196A1 (fr) * | 2015-06-29 | 2016-12-30 | B<>Com | Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes |
FR3040578A1 (fr) * | 2015-08-31 | 2017-03-03 | Orange | Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants |
FR3044507A1 (fr) * | 2015-11-30 | 2017-06-02 | Orange | Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants |
FR3068558A1 (fr) * | 2017-07-05 | 2019-01-04 | Orange | Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012105128A (ja) | 2010-11-11 | 2012-05-31 | Mitsubishi Electric Corp | 画像符号化装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376280B2 (en) * | 2002-07-14 | 2008-05-20 | Apple Inc | Video encoding and decoding |
US7496196B2 (en) * | 2004-06-30 | 2009-02-24 | Intel Corporation | Method apparatus and system of performing one or more encryption and/or decryption operations |
WO2007081177A1 (en) * | 2006-01-12 | 2007-07-19 | Lg Electronics Inc. | Processing multiview video |
FR2899744A1 (fr) * | 2006-04-07 | 2007-10-12 | France Telecom | Procede et dispositif de codage et de decodage d'une image, notamment d'une sequence d'images video, signal correspondant et produit programme d'ordinateur |
KR101675116B1 (ko) * | 2009-08-06 | 2016-11-10 | 삼성전자 주식회사 | 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
JP5590133B2 (ja) * | 2010-09-30 | 2014-09-17 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム |
KR20130049524A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
US10257520B2 (en) * | 2012-06-26 | 2019-04-09 | Velos Media, Llc | Modified coding for transform skipping |
-
2013
- 2013-11-29 FR FR1361822A patent/FR3014278A1/fr active Pending
-
2014
- 2014-11-27 CN CN201480064962.1A patent/CN105794208B/zh active Active
- 2014-11-27 KR KR1020167017077A patent/KR102279101B1/ko active IP Right Grant
- 2014-11-27 WO PCT/FR2014/053069 patent/WO2015079179A1/fr active Application Filing
- 2014-11-27 EP EP14814981.8A patent/EP3075155B1/fr active Active
- 2014-11-27 ES ES14814981T patent/ES2721023T3/es active Active
- 2014-11-27 BR BR112016011972-0A patent/BR112016011972B1/pt active IP Right Grant
- 2014-11-27 US US15/100,550 patent/US10616586B2/en active Active
- 2014-11-27 KR KR1020217021840A patent/KR102391402B1/ko active IP Right Grant
-
2020
- 2020-02-24 US US16/799,149 patent/US11350106B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012105128A (ja) | 2010-11-11 | 2012-05-31 | Mitsubishi Electric Corp | 画像符号化装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105794208A (zh) | 2016-07-20 |
US20160309158A1 (en) | 2016-10-20 |
CN105794208B (zh) | 2019-02-22 |
BR112016011972B1 (pt) | 2023-03-21 |
US20200195933A1 (en) | 2020-06-18 |
KR20210090738A (ko) | 2021-07-20 |
ES2721023T3 (es) | 2019-07-26 |
WO2015079179A1 (fr) | 2015-06-04 |
EP3075155B1 (fr) | 2019-02-06 |
EP3075155A1 (fr) | 2016-10-05 |
US10616586B2 (en) | 2020-04-07 |
KR102391402B1 (ko) | 2022-04-26 |
BR112016011972A2 (ko) | 2017-08-08 |
US11350106B2 (en) | 2022-05-31 |
FR3014278A1 (fr) | 2015-06-05 |
KR20160091392A (ko) | 2016-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11350121B2 (en) | Method for generating prediction block in AMVP mode | |
US10674146B2 (en) | Method and device for coding residual signal in video coding system | |
US8654855B2 (en) | Apparatus for decoding motion information in merge mode | |
KR101316060B1 (ko) | 인터 예측 부호화된 동영상 복호화 방법 | |
KR101550723B1 (ko) | 영상 부호화/복호화 방법 및 그 장치 | |
CN108055541B (zh) | 用于编码和解码图像的方法、编码和解码设备 | |
US10075725B2 (en) | Device and method for image encoding and decoding | |
US20180213224A1 (en) | Intra prediction method and device in video coding system | |
US20130003855A1 (en) | Processing method and device for video signals | |
US11350106B2 (en) | Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs | |
KR102459940B1 (ko) | 레지듀얼 코딩 방법 및 그 장치 | |
KR102548881B1 (ko) | 영상 변환 부호화/복호화 방법 및 장치 | |
US10694187B2 (en) | Method and device for deriving block structure in video coding system | |
KR20130067280A (ko) | 인터 예측 부호화된 동영상 복호화 방법 | |
US10778985B2 (en) | Method and apparatus for intra prediction in video coding system | |
US10911784B2 (en) | Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto | |
KR20220038121A (ko) | 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치 | |
JP2018107580A (ja) | 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム | |
US10469872B2 (en) | Video encoding and decoding device and method including a texture block prediction with a group of pixel blocks each representing a predetermined texture | |
KR20200108083A (ko) | 움직임 벡터에 기반한 영상 코딩 방법 및 그 장치 | |
AU2020375518B2 (en) | Image coding method based on transform, and device therefor | |
KR20210060498A (ko) | 변환 계수 코딩 방법 및 장치 | |
RU2811986C2 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
RU2803184C1 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
RU2812248C2 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |