KR20170134324A - METHODS FOR ENCODING DIGITAL IMAGES AND RELATED DECODING METHODS, DEVICES, AND COMPUTER PROGRAMS - Google Patents
METHODS FOR ENCODING DIGITAL IMAGES AND RELATED DECODING METHODS, DEVICES, AND COMPUTER PROGRAMS Download PDFInfo
- Publication number
- KR20170134324A KR20170134324A KR1020177021825A KR20177021825A KR20170134324A KR 20170134324 A KR20170134324 A KR 20170134324A KR 1020177021825 A KR1020177021825 A KR 1020177021825A KR 20177021825 A KR20177021825 A KR 20177021825A KR 20170134324 A KR20170134324 A KR 20170134324A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- sub
- vector
- coefficients
- transformed
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- 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
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- 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/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/18—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 a set of transform coefficients
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
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)
Abstract
디지털 이미지의 인코딩 방법이 개시되며, 상기 이미지(lk)는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고, 상기 방법은 미리결정된 사이즈들의 현재 블록(x)에 대해 구현되는 다음의 단계들:
-
현재 블록을 변환된 블록으로 변환하는 단계(T2) ― 상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하며, 제 1 서브-스텝은 현재 블록에 그리고 제 2 서브-스텝은 제 1 서브-스텝으로부터 발생하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및
-
변환된 블록의 계수들을 양자화(T4) 및 인코딩(T5)하는 단계를 포함하며,
-
상기 변환하는 단계는 상기 변환 서브-스텝들 ― 상기 서브-스텝은 현재 블록과 중간 블록 중 소위 변환될 블록인 블록에 적용됨 ― 중 적어도 하나의 변환 서브-스텝에 앞서, 변환될 블록에서 적어도 하나의 제 1 및 적어도 하나의 제 2 별개의 벡터들을 형성하기 위한 예비 서브-스텝(T20, T23)을 더 포함하며, 이러한 벡터는 변환될 블록의 사이즈들 중 하나와 동일한 길이의, 변환될 블록의 인접 계수들, 개별적으로는 픽셀들의 시퀀스의 계수들, 개별적으로는 픽셀들을 포함하고; 그리고
-
상기 적어도 하나의 변환 서브-스텝은 상기 적어도 하나의 제 1 벡터에 제 1 변환(L0, C0)을 그리고 상기 블록의 상기 적어도 하나의 제 2 벡터에 제 1 변환과 별개인 적어도 하나의 제 2 변환(L1, C1)을 적용하는 단계를 포함한다.A method of encoding a digital image is disclosed, wherein the image (lk) is divided into a plurality of blocks of pixels processed in a predetermined order, the method comprising the following steps implemented for a current block (x) of predetermined sizes :
- transforming the current block into a transformed block (T2), the block comprising coefficients, the step implementing two consecutive transforming sub-steps, the first sub- Wherein the sub-step is applied to an intermediate block resulting from the first sub-step, the intermediate block comprising coefficients, and
- quantizing (T4) and encoding (T5) the coefficients of the transformed block,
Wherein the transforming step is performed prior to at least one transforming sub-step of transforming sub-steps, wherein the sub-step is applied to a block that is a so-called transformed block of a current block and an intermediate block, Further comprising spare sub-steps (T20, T23) for forming a first and at least one second distinct vector of blocks to be transformed, said vector having a length equal to one of the sizes of blocks to be transformed, Neighboring coefficients, individually the coefficients of the sequence of pixels, individually including pixels; And
- the at least one transform sub-step comprises applying a first transform (L0, C0) to the at least one first vector and applying at least one second transform to the at least one second vector of the block And applying transforms (L1, C1).
Description
본 발명의 분야는 신호 압축, 특히, 픽셀들의 블록들로 분할되는 디지털 이미지 또는 디지털 이미지들의 시퀀스의 분야에 관한 것이다.The field of the invention is in the field of signal compression, and in particular the field of digital images or sequences of digital images, which are divided into blocks of pixels.
디지털 이미지들의 인코딩/디코딩은, 특히, 다음을 포함하는 적어도 하나의 비디오 시퀀스로부터의 이미지들에 적용된다:The encoding / decoding of digital images is particularly applied to images from at least one video sequence comprising:
- 동일한 카메라로부터의, 그리고 시간적으로 서로 계속되는 이미지들(타입-2D 인코딩/디코딩),- images from the same camera and temporally following each other (type-2D encoding / decoding),
- 상이한 뷰들에 따라 배향된 상이한 카메라들로부터의 이미지들(3D-타입 인코딩/디코딩),- images (3D-type encoding / decoding) from different cameras oriented according to different views,
- 대응하는 텍스처 및 깊이의 컴포넌트들(3D-타입 인코딩/디코딩), - corresponding texture and depth components (3D-type encoding / decoding),
- 등.- Etc.
본 발명은 이미지들의 2D-타입 또는 3D-타입 인코딩/디코딩에 유사한 방식으로 적용된다. The present invention is applied in a similar manner to 2D-type or 3D-type encoding / decoding of images.
본 발명은, 특히, 현재 AVC(Advanced Video Coding) 및 HEVC(High Efficiency Video Coding) 비디오 인코더들과 그들의 확장들(MVC, 3D-AVC, MV-HEVC, 3D-HEVC 등)에서 구현되는 비디오 인코딩, 그리고 대응하는 디코딩에 적용(그러나, 배타적으로 적용되는 것은 아님)될 수 있다.In particular, the present invention relates to a method and apparatus for video encoding that is currently implemented in Advanced Video Coding (AVC) and High Efficiency Video Coding (HEVC) video encoders and their extensions (MVC, 3D-AVC, MV-HEVC, 3D- And may be applied (but not exclusively) to the corresponding decoding.
디지털 이미지의 통상적인 압축 방식이 고려되며, 이 통상적인 압축 방식에서, 이미지는 픽셀들의 블록들로 분할된다. 일반적으로, 초기 코딩 유닛을 구성하는 코딩될 현재 블록은 미리결정된 커팅 모드에 따라 가변 개수의 서브-블록들로 커팅된다. 도 1과 관련하여, 본 발명자들은 디지털 이미지들(I1, I1, Ik, IK)의 시퀀스(K는 넌-제로 정수임)를 고려한다. 문서 "ISO/IEC 23008-2:2013 - 이종 환경들에서의 고효율 코딩 및 미디어 전달 -- 파트 2: 고효율 비디오 코딩 ≫(국제 표준화 기구, 2013년 11월 공개)에서 특정된 HEVC 용어에 따른 CTU(Coding Tree Unit)들로 이미지(lk)가 커팅된다. 표준 인코더들은 통상적으로 규칙적 파티셔닝을 제공하며, 이 규칙적 파티셔닝은 고정된 사이즈의 CU들("코딩 유닛(Coding Unit)들"의 경우)로서 알려진 정사각형 또는 직사각형 블록들에 기반한다. 파티셔닝은 초기의 파티셔닝되지 않은 인코딩 유닛으로부터 항상 수행되고, 최종 파티셔닝이 계산되며, 이후, 이 중성 단위(neutral basis)로부터 시그널링된다. HEVC 표준에 의해 허가되는 파티셔닝의 예들은 도 2와 관련하여 제시된다. Conventional compression schemes for digital images are contemplated, in which the image is divided into blocks of pixels. In general, the current block to be coded constituting the initial coding unit is cut into a variable number of sub-blocks according to a predetermined cutting mode. With reference to Fig. 1, the present inventors consider a sequence of digital images (I1, I1, Ik, IK) (K is a non-zero integer). CTUs according to the HEVC terminology specified in the document "ISO / IEC 23008-2: 2013 - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding» (International Organization for Standardization, published in November 2013) The standard encoders typically provide regular partitioning, which is known as fixed-size CUs (in the case of "Coding Units"). The partitioning is always performed from the initial non-partitioned encoding unit, the final partitioning is computed, and thereafter is signaled from this neutral basis. The partitioning allowed by the HEVC standard Examples are presented in connection with FIG.
각각의 CU는, 비-배타적 방식으로 예측, 나머지 계산, 변환, 양자화 및 엔트로픽 코딩을 포함하는 오퍼레이션들의 시퀀스로 구성되는 인코딩 또는 디코딩 오퍼레이션을 겪을 것이다. 이러한 오퍼레이션들의 시퀀스는 종래 기술로부터 알려져 있으며, 도 3과 관련하여 제시된다.Each CU will undergo encoding or decoding operations consisting of a sequence of operations including prediction, remainder calculation, transform, quantization and entropic coding in a non-exclusive manner. The sequence of such operations is known from the prior art and is presented in connection with FIG.
프로세싱될 제 1 블록 CTU가 현재 블록(b)으로서 선택된다. 예컨대, 이것은 (사전식 순서로) 제 1 블록이다. 이 블록은 N×N 픽셀들을 포함하며, N은 넌-제로 정수인데, 예컨대, HEVC 표준에 따라 64와 동일하다.The first block CTU to be processed is selected as the current block b. For example, this is the first block (in lexicographic order). This block contains NxN pixels, where N is a non-zero integer, e.g., equal to 64 according to the HEVC standard.
1 내지 L로 번호가 매겨지는 가능한 PU 블록들로의 L번의 파티셔닝들이 있으며, 블록(b)에 대해 사용되는 파티셔닝은 파티셔닝 번호(l)에 대응한다는 것이 가정된다. 예컨대, "쿼드 트리"-타입 커팅의 규칙적 모드에 따라, 사이즈 4x4, 8x8, 16x16, 및 32x32의 서브-블록들로 4번의 가능한 파티셔닝들이 있을 수 있다. 이전에 언급된 바와 같이, 일부 PU 블록들은 직사각형일 수 있다.There are L partitionings to possible PU blocks numbered from 1 to L, and it is assumed that the partitioning used for block (b) corresponds to partitioning number (1). For example, there may be four possible partitions with sub-blocks of size 4x4, 8x8, 16x16, and 32x32, depending on the regular mode of "quadtree" -type cutting. As noted previously, some PU blocks may be rectangular.
단계(E1) 동안, 오리지널 블록(b)의 예측(Pr)이 결정된다. 그것은 알려진 수단에 의해, 통상적으로 모션 보상(이전에 디코딩된 레퍼런스 이미지로부터 비롯되는 블록)에 의해 또는 인트라 예측(ID 이미지에서 현재 블록에 바로 인접하는 디코딩된 픽셀들로부터 구성되는 블록)에 의해 구성되는 예측 블록이다. P에 관련된 예측 정보는 비트 스트림(TB) 또는 압축 파일(FC)로 인코딩된다. 여기서, K개의 가능한 예측 모드들(m1, m2, ..., mK)(K는 넌-제로 정수임)이 있다고 가정된다. 예컨대, 현재 블록(b)에 대해 선택된 예측 모드는 모드(mk)이다. 일부 예측 모드들은 인트라-타입 예측과 연관되고, 다른 예측 모드들은 인터(INTER)-타입 예측과 연관되며, 다른 예측 모드들은 병합(MERGE)-타입 예측과 연관된다.During the step E1, the prediction Pr of the original block b is determined. It may be a block or block that is constructed by known means, typically by motion compensation (a block originating from a previously decoded reference image) or by intra prediction (a block composed of decoded pixels immediately adjacent to a current block in an ID image) Prediction block. The prediction information related to P is encoded into a bit stream (TB) or a compressed file (FC). Here, it is assumed that there are K possible prediction modes (m1, m2, ..., mK) (K is a non-zero integer). For example, the prediction mode selected for current block b is mode mk. Some prediction modes are associated with intra-type prediction, other prediction modes are associated with INTER-type prediction, and other prediction modes are associated with MERGE-type prediction.
단계(E2) 동안, 오리지널 나머지(R)는 현재 블록(b)에서 현재 블록(b)의 예측(Pr)으로부터 R = b-Pr의 차감에 의해 형성된다.During step E2, the original remainder R is formed by subtracting R = b-Pr from the prediction Pr of the current block b in the current block b.
단계(E3) 동안, 나머지(R)는 RT로 불리는 변환된 나머지 블록으로 DCT-타입 변환에 의해 변환되거나, 또는 웨이브릿들로 변환되며, 둘 모두는 기술분야의 당업자들에게 알려져 있고, 특히, DCT 및 웨이브릿 변환용 JPEG2000에 대한 JPEG/MPEG 표준들에서 구현된다.During step E3, the remainder (R) is transformed into DCT-type transforms, or wavelet transforms, into transformed residual blocks called RT, both of which are known to those skilled in the art, And JPEG / MPEG standards for JPEG2000 for DCT and wavelet transforms.
E4에서, 변환된 나머지(RT)는 통상적인 양자화 수단, 예컨대, 스칼라 또는 벡터에 의해, 양자화된 나머지 블록(RQ)으로 양자화되며, 이 양자화된 나머지 블록(RQ)은 이 나머지 블록(RQ)이 포함하는 픽셀들의 개수, 예컨대 Nb(Nb는 넌-제로 정수임)만큼의 계수들을 포함한다. 최신 기술에서 알려진 방식으로, 이들 계수들은, 단차원 벡터 RQ [i](인덱스(i)는 0 내지 Nb-1에서 변함)를 구성하기 위하여 미리결정된 순서로 스캐닝된다. 인덱스(i)는 계수 RQ [i]의 주파수로 불린다. 통상적으로, 이들 계수들은 주파수의 오름차순으로, 예컨대, JPEG 고정 이미지 인코딩 표준으로부터 알려져 있는 지그재그 경로에 따라 스캐닝된다.In E4, the transformed residual (RT) is quantized into a residual quantized block (RQ) by a conventional quantization means such as a scalar or a vector, and the quantized residual block (RQ) (Nb is a non-zero integer) of the number of included pixels, e.g., Nb. In a manner known in the state of the art, these coefficients are scanned in a predetermined order to construct a one-dimensional vector RQ [i] (index (i) varies from 0 to Nb-1). The index (i) is called the frequency of the coefficient RQ [i]. Typically, these coefficients are scanned in ascending order of frequency, e.g., according to a zigzag path known from the JPEG fixed image encoding standard.
단계(E5) 동안, 나머지 블록(RQ)의 계수들의 진폭 정보는, 예컨대 Huffman 인코딩 기술 또는 산술 인코딩 기술에 따라, 엔트로픽 코딩에 의해 인코딩된다. 본원에서, 진폭에 의한 것은, 계수의 절대 값으로 여겨진다. 통상적으로, 계수가 넌-제로라는 사실을 표현하는 정보를 각각의 계수에 대해 인코딩하는 것이 가능하다. 이후, 각각의 넌-제로 계수에 대해, 진폭에 관련된 정보의 하나 또는 그 초과의 피스들이 인코딩된다. 인코딩된 진폭들(CA)이 획득된다. 일반적으로, 넌-제로 계수들의 부호들은 단순히 비트 0 또는 1로 코딩되며, 각각의 값은 주어진 극성에 대응한다. 그러한 인코딩은 효율적인 성능들을 제공하는데, 그 이유는 변환으로 인해, 인코딩될 진폭들의 값들이 대체로 0과 동일하기 때문이다.During step E5, the amplitude information of the coefficients of the remaining block RQ is encoded by entropy coding, for example, according to the Huffman encoding technique or the arithmetic encoding technique. Here, by amplitude, is regarded as the absolute value of the coefficient. Typically, it is possible to encode information representative of the fact that the coefficients are non-zero for each coefficient. Thereafter, for each non-zero coefficient, one or more pieces of information related to the amplitude are encoded. The encoded amplitudes CA are obtained. In general, the signs of the non-zero coefficients are simply coded to
선행 단계들(E1 내지 E5)은 현재 블록(b)의 가능한 l번의 파티셔닝들에 대해 반복된다. 파티셔닝 l의 경우, 현재 블록(b)의 서브-블록들 CU 각각은 위에서 설명된 바와 같이 프로세싱되며, 예측 타입(인터 또는 인트라)은 각각의 CU에 대해 허가된다. 다시 말해서, 서브-블록 CU의 서브-블록들 PU는 전부, 동일한 예측 타입을 겪는다.The preceding steps E1 to E5 are repeated for a possible 1 number of partitions of the current block b. In the case of partitioning 1, each of the sub-blocks CU of the current block b is processed as described above, and a prediction type (inter or intra) is granted for each CU. In other words, all the sub-blocks PU of the sub-block CU undergo the same prediction type.
예컨대, 가능한 파티셔닝 I 각각에 대한 코딩된 데이터는 레이트-왜곡 기준에 따라 경쟁되고, 이러한 기준에 따라 최상의 결과를 획득하는 파티셔닝이 최종적으로 채택된다.For example, the coded data for each possible partitioning I is competing according to a rate-distortion criterion, and the partitioning to obtain the best results according to these criteria is finally adopted.
이미지 I1의 다른 블록들은, 시퀀스의 후속 이미지들에 대해서와 동일한 방식으로 프로세싱된다. The other blocks of image I1 are processed in the same manner as for the subsequent images of the sequence.
변환 단계는 이러한 비디오 코딩 방식에서 중대한 역할을 수행하는데, 실제로, 그것은 양자화 오퍼레이션 전에 정보를 집중시킨다. 따라서, 인코딩 전의 잔여 픽셀들의 세트는, 동일한 정보를 표현하는 넌-제로 주파수의 주파수들로 또한 호칭되는 적은 수의 변환된 계수들로 표현된다.The transformation step plays a critical role in this video coding scheme, in fact, it focuses the information before the quantization operation. Thus, the set of residual pixels before encoding is represented by a small number of transformed coefficients, also referred to as frequencies of non-zero frequency, representing the same information.
따라서, 많은 수의 계수들을 송신하는 대신에, 픽셀들의 블록을 신뢰가능하게 재구축하기 위해 단지 적은 수만이 필요할 것이다.Thus, instead of transmitting a large number of coefficients, only a small number will be needed to reliably reconstruct the block of pixels.
변환의 효율성은 일반적으로, 코딩 이득의 형태로 또한 주어지는 에너지 집중 기준에 따라 측정되는데, 이는, 주어진 비트 레이트에 대한, 공간 도메인보다는 변환된 도메인에서 코딩이 이루어질 때의 왜곡의 감소(평균 제곱 에러에 의해 표현됨)를 표현한다.The efficiency of the transform is generally measured in accordance with an energy concentration criterion also given in the form of a coding gain, which is a reduction in distortion when a coding is done in a transformed domain rather than a spatial domain, for a given bit rate ). ≪ / RTI >
는 변환된 도메인에서 수행된 양자화 이후의 평균 제곱 에러를 나타내고, 는 공간 도메인에서의 동일한 정밀도를 갖는 양자화에 대한 제곱 에러, 즉, 프로세싱 전의 잔여를 나타낸다. Represents the mean squared error after quantization performed in the transformed domain, Represents the squared error for the quantization with the same precision in the spatial domain, i. E., The residual before processing.
이러한 표기법들에 따라, 이후 코딩 이득이 다음과 같이 표현된다:According to these notations, the following coding gain is expressed as: < RTI ID = 0.0 >
일반적으로 이러한 이득은 dB 단위로 표현된다.Generally, this gain is expressed in dB.
변환들의 사용에 의한 왜곡에서 실현되는 이득은 또한 비트 레이트의 이득으로 전사(transcribe)될 수 있는데, 높은 비트 레이트에서, 6.02의 값으로 나눈 dB 단위 이득은, 픽셀 당 비트로 표현되는 실제의 비트 레이트 경제성을 근사화하는 것을 가능하게 한다.The gain realized in the distortion due to the use of the transforms can also be transcribed with the gain of the bit rate, at a high bit rate, the gain in dB divided by the value of 6.02 is the actual bit rate economical / RTI >
이미지 및 비디오 인코딩에서, 가장 많이 사용되는 변환들은 선형, 직교, 또는 준-직교 변환들(4x4, 8x8 등)이다. 선형 변환은 후속하는 바와 같이 매트릭스로 표현될 수 있다. 직교 변환은, 역변환 매트릭스가 직접 변환 매트릭스의 전치(transposition)라는 사실을 특징적인 특성으로 갖는다. 따라서, 이러한 변환은 다음의 특성을 갖는다:In image and video encoding, the most commonly used transforms are linear, orthogonal, or quasi-orthogonal transforms (4x4, 8x8, etc.). The linear transformation can be represented as a matrix as follows. The orthogonal transformation has characteristic features that the inverse transformation matrix is a transposition of the direct transformation matrix. Thus, this transformation has the following characteristics:
여기서, A는 직접 변환이 있는 매트릭스이고, I는 아이덴티티 매트릭스이고, 그리고 c는 수치 값이다. c가 1인 경우, 매트릭스 A는 정규 직교이다. 자신의 인버스(inverse)가 곱해진 준-직교 매트릭스는 하나의 팩터 내의 아이덴티티 매트릭스에 가까운 근사한 양을 갖는다.Where A is a matrix with direct transforms, I is an identity matrix, and c is a numerical value. When c is 1, the matrix A is normal orthogonal. The quasi-orthogonal matrix multiplied by its inverse has an approximate amount close to the identity matrix in one factor.
가장 많이 사용되는 변환들은 코사인 베이스들에 기반한다. 따라서, 대부분의 이미지 및 비디오 압축 표준들에 DCT가 존재한다. 최근, HEVC 표준이 또한, 4x4 사이즈 블록들의 경우에서의 특정 나머지들의 코딩을 위해 DST(Discrete Sine Transform)를 도입했다.The most commonly used transforms are based on cosine bases. Thus, there is DCT in most image and video compression standards. Recently, the HEVC standard has also introduced DST (Discrete Sine Transform) for coding of certain remainders in the case of 4x4 size blocks.
사실, 이러한 변환들의 근사들이 사용되며, 계산들은 정수들로 수행된다. 일반적으로, 변환 베이스들은 주어진 정밀도(일반적으로 8 비트)를 갖는 가장 가까운 정수로 근사화된다.In fact, approximations of these transforms are used, and calculations are performed with integers. In general, the transform bases are approximated to the nearest integer with a given precision (typically 8 bits).
예로서, 도 4a 및 도 4b와 관련하여, 4x4 사이즈의 HEVC 표준 블록들에 의해 사용되는 변환들이 제시된다.By way of example, with reference to Figures 4A and 4B, transforms used by HEVC standard blocks of size 4x4 are presented.
이들은 DCT 및 DST 변환들이다. 이러한 테이블에서 제시되는 값들은 준-정규 직교 변환들을 복원하기 위해 128로 나눠질 것이다.These are DCT and DST transforms. The values presented in this table will be divided by 128 to restore quasi-normal orthogonal transformations.
실제로, 픽셀들의 블록은 다음의 오퍼레이션들에 의해 변환된다:In practice, the block of pixels is transformed by the following operations:
A는 사이즈 N×N의 변환 매트릭스를 나타내고, x는 잔여 픽셀들 또는 변환될 픽셀들(공간 도메인)을 표현하고, X는 변환된 도메인(주파수 도메인으로 호칭됨)의 블록이고, 그리고 t는 전치 오퍼레이터이다.A represents a transform matrix of size N x N, x represents residual pixels or pixels to be transformed (spatial domain), X is a block of transformed domain (called frequency domain) It is an operator.
공간 도메인의 블록이 다음과 같이(여기서는 4x4로) 기입된다:The blocks of the spatial domain are written as follows (in this case 4x4):
변환된 도메인의 픽셀들의 블록은 다음과 같은 형태를 취한다:The block of pixels of the transformed domain takes the form:
매트릭스 A는 이러한 경우에 4x4 매트릭스의 형태를 취하며, 계수들은 도 4a 및 도 4b의 테이블들에 제시된 것들과 동일하다.Matrix A takes the form of a 4x4 matrix in this case, and the coefficients are the same as those shown in the tables of Figures 4a and 4b.
따라서, 위에 제시된 수학식은 다음과 같이 진행된다.Therefore, the above equation is proceeded as follows.
· 블록 x가 전치된다.· Block x is transposed.
· 따라서, 매트릭스 A는 픽셀들의 라인들에 적용된다.· Thus, the matrix A is applied to the lines of pixels.
· 그 후, 결과 가 전치된다.· After that, the result .
· 그 후, 매트릭스 A의 적용은 이러한 결과에 기반한다.· The application of matrix A is then based on these results.
이들 오퍼레이션들의 조합은 이후, 라인들을 변환한 후 컬럼들을 변환할 것이다.The combination of these operations will then convert the lines and then convert the columns.
코딩 관점에서 등가이지만 수학적 관점에서는 상이한 기입이 다음을 수행하는 것으로 이루어진다:From a coding standpoint, but equally mathematically, the different entries are made by doing the following:
이러한 경우에서, 컬럼들이 먼저 변환된다.In this case, the columns are first converted.
인용된 종래 기술에서 설명된 바와 같이, 라인들마다의 변환들은 상이할 수 있다. 전술한 공식들은, 예컨대, 컬럼들을 먼저 오퍼레이팅(operate)한 후 라인들을 오퍼레이팅하기를 원한다면, 이러한 경우까지 확장될 수 있다:As described in the cited prior art, the transforms per line may be different. The above formulas can be extended to this case if, for example, the operator wishes to operate the lines after first operating the columns:
L은 라인-특정 변환이고, C는 컬럼-특정 변환이다.L is a line-specific conversion, and C is a column-specific conversion.
라인들을 미리 오퍼레이팅하기 위해, 다음의 수학식이 기입될 수 있다:To pre-operate the lines, the following equation can be written: < RTI ID = 0.0 >
이들 마지막 2개의 공식들을 또한 픽셀들의 직사각형 블록들을 프로세싱하는 것을 가능하며, 따라서, 제 1 단계에서 8×8 컬럼 변환이 4×8 블록을 오퍼레이팅할 수 있고, 제 2 단계에서, 변환된 계수들을 최종적으로 획득하기 위해, 4×4 라인 변환이 결과적인 블록을 오퍼레이팅할 것이다.These last two formulas are also possible to process rectangular blocks of pixels, so that in the first step an 8x8 column transform can operate a 4x8 block, and in a second step, , A 4x4 line transform will operate the resulting block.
따라서, 전과 동일한 방식으로 기입된다:Thus, it is written in the same way as before:
라인-컬럼으로 또는 라인-컬럼 방향으로 2개의 별개의 변환들이 이루어진다는 것이 확인될 수 있다. 따라서, 공간 신호가 라인 벡터들, 그 후에 컬럼들 또는 컬럼들, 그리고 그 후에 라인들에 의해 역상관된다.It can be ascertained that two separate transformations are made to the line-column or to the line-column direction. Thus, the spatial signal is de-correlated by the line vectors, then the columns or columns, and then the lines.
역상관은 실제로 변환에서 중요한 양상이다. 양호한 역상관을 보장하는 것은 양호한 코딩 이득을 획득하는 것을 가능하게 한다.Inverse correlation is in fact an important aspect of transformation. Ensuring good reverse correlation makes it possible to obtain good coding gain.
위에서 제시된 변환 오퍼레이션들은 라인, 그 후에 컬럼 역상관 또는 컬럼, 그리고 그 후에 라인 역상관에 의해 개별적으로 수행된다. 이들은 소위 분리가능한 변환들이다.The conversion operations presented above are performed separately by line, then column inverse correlation or column, and then by line inverse correlation. These are so-called separable transformations.
결과적으로, 분리가능한 변환들은 공간 도메인의 픽셀들의 완전한 역상관, 특히 x0 및 x5와 같은 대각선 엘리먼트들의 역상관을 허용하지 않는다.As a result, the separable transforms do not allow complete decorrelation of pixels in the spatial domain, in particular decorrelation of diagonal elements such as x0 and x5.
완전한 역상관을 가능하게 하기 위해, 비-분리가능한 변환을 수행하는 것이 가능하다. 이를 수행하기 위해, 본 발명자들은 아래의 오퍼레이터를 적용한다:In order to enable full downconversion, it is possible to perform a non-separable conversion. To do this, the inventors apply the following operators:
Ans는 수행될 비-분리가능한 프로세싱을 나타내며, 유리하게는 정규 직교 또는 준-정규 직교로서 선택되며, 그 후에, 및 는 벡터들로 형성된 공간 도메인에서 각각 프로세싱된 픽셀들이다. 따라서, 4x4 블록의 경우, 및 는 아래의 형태를 취한다:A ns denotes the non-separable processing to be performed and is advantageously chosen as normal orthonormal or quasi-normal orthonormal, And Are the pixels processed individually in the spatial domain formed of vectors. Therefore, in the case of a 4x4 block, And Takes the following form:
따라서, Ans는 이 예에서, 16x16의 사이즈를 갖고, 더 일반적으로는 N2 픽셀들로 구성된 NxN 사이즈 블록에 대해 N2xN2의 사이즈를 갖는다.Thus, A is ns in this example, has a size of 16x16, more commonly has a size of N 2 xN 2 for the NxN block size consisting of N 2 pixels.
이러한 방식으로, 비-분리가능한 변환 Ans는 대각선 상관들을 포함한, 공간 도메인의 픽셀들 간의 모든 상관들을 정면으로 프로세싱할 수 있다. 예컨대, 4x4 블록의 경우, 픽셀 x0과 x5 간의 직접적 상관이 감소된다.In this way, the non-separable transform A ns can process all correlations between pixels in the spatial domain, including diagonal correlations, frontally. For example, in the case of a 4x4 block, the direct correlation between pixels x0 and x5 is reduced.
결과적으로, 비-분리가능한 변환들은 압축에서 더 효율적이지만, 그럼에도 불구하고 비-분리가능한 변환들은 특정 수의 단점들을 갖는다:As a result, non-separable transforms are more efficient in compression, but non-separable transformations nonetheless have a certain number of disadvantages:
● 비-분리가능한 변환들이 사이즈 N2xN2의 변환들이므로, 분리가능한 변환을 수행하는 2개의 매트릭스들에 대해 요구되는 2xN2 값들과 비교하여, N4 값들이 저장되어야 한다. 이는 이미지/비디오 인코더/디코더를 구현하는 비용에 영향을 주는데, 이를 위한 고속 메모리들은 고비용이다.● non-separable, so the conversion to convert the size of N 2 xN 2, as compared with 2xN two values required for the two matrix for performing a separable transform, N 4 values have to be stored. This affects the cost of implementing an image / video encoder / decoder, which is expensive for high speed memories.
● 변환 알고리즘은 증가된 사이즈의 벡터를 핸들링하기 위한 상당히 더 큰 수의 오퍼레이션들을 요구한다.● The transformation algorithm requires a significantly larger number of operations to handle the increased size of the vector.
그러므로, 분리가능한 변환들과 비교하여, 비-분리가능한 변환들은 도 5의 테이블에 도시된 바와 같은 훨씬 더 높은 복잡성을 요구한다. 이러한 테이블에서, 분리가능하지 않은(Nsep) 그리고 분리가능한(Sep) 변환들의 구현들과 관련된 오퍼레이션들 및 메모리의 양들이 4x4 및 8x8 블록들의 프로세싱에 대해 각각 리스트된다.Thus, compared to separable transforms, the non-separable transformations require much higher complexity as shown in the table of FIG. In this table, operations and amounts of memory associated with implementations of non-separable (Nsep) and separable (Sep) transforms are listed for processing of 4x4 and 8x8 blocks, respectively.
확인될 수 있는 바와 같이, 비-분리가능한 변환들은, 분리가능한 변환들과 비교하여, ROM 및 많은 오퍼레이션들에서 상당한 영향을 미친다. 특히, 오퍼레이션들의 관점에서, 복잡성 비율은 사이즈 MxM의 블록에 대해 M/2보다 더 크다.As can be seen, non-separable transforms have a significant impact on the ROM and many operations as compared to separable transforms. In particular, in terms of operations, the complexity ratio is greater than M / 2 for a block of size MxM.
부가하여, 번호 US2013/0003828 하에 공개된 특허 출원은, 블록에 대해 선택된 예측 모드, 예컨대 특정 방향의 인트라-방향 예측 모드에 기반하여 이러한 블록의 컬럼들 및 라인들에 연속적으로 적용될 변환들의 타입들을 선택하는 이미지 인코딩 방법을 개시한다. 더 정확하게, 이 방법은 제 1 선형 변환을 현재 블록의 라인들에 연관시키고(예컨대, DCT), 제 1 선형 변환과 별개인 제 2 선형 변환을 제 1 변환에 의해 변환된 블록의 컬럼들에 연관시킨다.In addition, a patent application published under number US2013 / 0003828 selects the types of transformations to be applied successively to the columns and lines of this block based on the prediction mode selected for the block, e.g., the intra-directional prediction mode of the particular direction A method of encoding an image is disclosed. More precisely, the method associates a first linear transformation to the lines of the current block (e.g., DCT) and associates a second linear transformation, distinct from the first linear transformation, to the columns of the transformed block by the first transformation .
장점은, 블록의 라인들의 세트 및 컬럼들의 세트가 반드시 동일한 통계적 특성들을 갖는 것은 아니라는 사실에 적응하는 것이다.The advantage is to adapt to the fact that the set of lines and the set of columns of the block do not necessarily have the same statistical properties.
종래 기술의 단점들은 아래와 같다:Disadvantages of the prior art are:
● 비-분리가능한 변환의 경우, 알고리즘 복잡성이 상당히 중요하다. 그러므로, 매우 높거나 심지어 상당한 구현 비용을 요구한다.● For non-separable transformations, the algorithm complexity is very important. Therefore, it requires a very high or even substantial implementation cost.
● 분리가능한 변환들의 경우, 분리가능한 변환들은 라인들 또는 컬럼들에 대해 동일하게 수행되는데, 특히, 각각의 컬럼들 또는 라인들의 세트가 각각 동일한 통계를 공유한다고 묵시적으로 가정된다. 분리가능한 변환들은 현재 인코더들에서 가장 많이 사용되는 변환들인데, 그 이유는 분리가능한 변환들이 압축 효율과 인코딩 비용 간의 절충을 제공하기 때문이다. 그러나, 분리가능한 변환들은 비-분리가능한 변환들의 압축 성능들에 도달하지는 못한다.● For separable transforms, separable transforms are performed identically for the lines or columns, and in particular, it is implicitly assumed that each column or set of lines each share the same statistics. Detachable transforms are the most commonly used transforms in current encoders because separable transforms provide a trade-off between compression efficiency and encoding cost. However, separable transforms do not reach the compressive capabilities of non-separable transforms.
본 발명은 실제로 상황을 개선한다.The present invention actually improves the situation.
본 발명의 목적은 특히, 종래 기술의 이러한 단점들을 극복하는 것이다.The object of the present invention is, in particular, to overcome these shortcomings of the prior art.
더 정확하게, 본 발명의 목적은, 계산 및 메모리 자원들의 상당한 증가를 요구하지 않으면서, 디지털 이미지 인코더의 압축 성능을 개선하는 솔루션을 제안하는 것이다.More precisely, it is an object of the present invention to propose a solution that improves the compression performance of a digital image encoder, without requiring a significant increase in computation and memory resources.
이러한 목적들 뿐만 아니라 이하에서 나타나게 될 다른 목적들은 디지털 이미지를 인코딩하기 위한 방법에 의해 달성되고, 상기 이미지는 정의된 순서로 프로세싱되는 픽셀들의 복수의 블록들로 분할되고, 상기 방법은 미리결정된 사이즈들을 갖는 현재의 블록에 대해 구현되는 다음의 단계들을 포함한다:These objects as well as other objects which will appear below are achieved by a method for encoding a digital image, the image being divided into a plurality of blocks of pixels to be processed in a defined order, the method comprising the steps of: The following steps being implemented for the current block having:
- 현재의 블록을 변환된 블록으로 변환하는 단계 ― 상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하고, 제 1 서브-스텝은 현재의 블록에 적용되고, 제 2 서브-스텝은 제 1 서브-스텝으로부터 기인하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및- Transforming a current block into a transformed block, the block comprising coefficients, the step implementing two consecutive transforming sub-steps, wherein the first sub-step is applied to the current block, Wherein the sub-step is applied to an intermediate block resulting from the first sub-step, the intermediate block comprising coefficients, and
- 변환된 블록의 계수들을 양자화하고 인코딩하는 단계.- Quantizing and encoding the coefficients of the transformed block.
본 발명에 따르면, 현재의 블록과 중간 블록 중에서 변환될 블록에 적용되는, 상기 변환 서브-스텝들 중 적어도 하나 이전에, 방법은, 변환될 블록에서 적어도 제 1 및 제 2 별개의 벡터들을 형성하는 예비 단계를 포함하고, 그러한 벡터는 변환될 블록의 사이즈들 중 하나와 동일한 길이의 시퀀스의 픽셀들, 개별적으로 인접 계수들을 포함하고, 상기 적어도 서브-스텝은 상기 적어도 하나의 제 1 벡터에 제 1 변환을 적용하고, 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환을 상기 블록의 상기 적어도 하나의 제 2 벡터에 적용하는 단계를 포함한다.According to the present invention, before at least one of said transforming sub-steps, which is applied to a block to be transformed, between a current block and an intermediate block, the method comprises forming at least first and second distinct vectors in a block to be transformed Wherein the vector comprises a sequence of pixels of a length equal to one of the sizes of the block to be transformed, individually adjacent coefficients, and wherein the at least sub- Applying a transform and applying at least one second transform different from the first transform to the at least one second vector of the block.
본 발명에 따르면, 현재의 블록에 적용되는 분리가능한 변환의 2개의 연속적인 단계들 중 적어도 하나는 현재의 블록의 라인, 개별적으로 컬럼의 사이즈와 동일한 사이즈를 갖고 현재의 블록의 이웃하는 엘리먼트들의 시퀀스로부터 형성되는 별개의 벡터들에 적용되는 적어도 2개의 별개의 변환들을 구현한다.According to the present invention, at least one of two consecutive steps of a detachable transformation applied to a current block is a line of the current block, having a size that is individually equal to the size of the column, and the sequence of neighboring elements of the current block Lt; RTI ID = 0.0 > of the < / RTI >
따라서, 본 발명은, 현재의 블록에서의 2개의 벡터들에 대한 상이한 프로세싱을 제공하는, 공간 도메인에서의 현재의 블록의 픽셀들을 주파수 도메인에서의 계수들로 변환하는 것에 의한 이미지 코딩의 완전히 신규하고 창의적인 접근법에 따른다.Thus, the present invention provides a completely novel and novel method of image coding by transforming the pixels of the current block in the spatial domain into coefficients in the frequency domain, providing different processing for the two vectors in the current block It follows a creative approach.
코딩될 이미지의 동일한 블록의 라인들 또는 컬럼들의 세트에 의해 공유된 공통 통계들의 감소 가설에 기반하는 종래 기술에 반하여, 본 발명은, 블록과 별개이고 동일한 사이즈의 2개의 벡터들이 적절한 선형변환을 요구하는 상이한 통계적인 특성들을 가질 수 있다는 사실을 고려한다.In contrast to the prior art based on the hypothesis of reduction of common statistics shared by lines or columns of the same block of an image to be coded, the present invention is based on the assumption that two vectors of the same size, separate from the block, Which may have different statistical properties.
본 발명은 종래 기술과 동일한 알고리즘 복잡성을 제시하지만, 코딩 성능을 개선하는 것, 즉, 주어진 비트 레이트에 대해 코딩된 이미지 시퀀스의 품질을 개선하는 것, 또는 주어진 품질에 대해 인코딩 비트 레이트를 낮추는 것을 가능하게 한다.The present invention presents the same algorithm complexity as the prior art, but it is possible to improve the coding performance, i.e. to improve the quality of the coded image sequence for a given bit rate, or to lower the encoding bit rate for a given quality .
본 발명의 유리한 특징에 따르면, 방법은, 적어도, 현재의 블록의 적어도 하나의 코딩 파라미터에 기반하여, 상기 벡터들에 적용될 상기 적어도 2개의 별개의 변환들을 결정하기 위한 사전 단계를 더 포함한다.According to an advantageous characteristic of the invention, the method further comprises a preliminary step of determining, based at least on the at least one coding parameter of the current block, said at least two distinct transforms to be applied to said vectors.
코딩 파라미터와 변환들의 선정을 연관시키는 것의 장점은 당해 파라미터에 의해 유도되는 블록의 통계적인 변동들에 적응한다는 것이다. 예컨대, 고려되는 인코딩 파라미터는 블록 사이즈, 또는 그에 적용되는 예측 모드이다.The advantage of associating the selection of transforms with the coding parameters is that they adapt to the statistical variations of the block induced by the parameter in question. For example, the encoding parameter considered is the block size, or a prediction mode applied thereto.
예컨대, 예비 실험들은 적어도 2개의 선형변환들과 고려 하의 코딩 파라미터를 연관시키기 위해 사용된다. 장점은 인코더가 더 복잡하게 되지 않는다는 것이다.For example, preliminary experiments are used to associate coding parameters under consideration with at least two linear transformations. The advantage is that the encoder does not become more complicated.
본 발명의 다른 양상에 따르면, 결정 단계는 메모리에 저장된 정보를 판독하는 단계를 포함하고, 상기 정보는 적어도 코딩 파라미터, 제 1 변환의 식별자, 블록 또는 중간 블록의 제 1 벡터의 적어도 하나의 식별자, 제 1 변환과 별개인 적어도 하나의 제 2 변환의 식별자, 및 상기 블록의 적어도 하나의 제 2 벡터 식별자를 포함한다.According to another aspect of the invention, the determining step comprises reading the information stored in the memory, said information comprising at least a coding parameter, an identifier of the first transform, at least one identifier of the first vector of the block or intermediate block, An identifier of at least one second transform different from the first transform, and at least one second vector identifier of the block.
장점은 부가적인 정보가 비트 스트림에서 시그널링되지 않고, 메모리에 저장된 데이터가 디코더 측 상에 복제된다는 것이다.The advantage is that the additional information is not signaled in the bitstream, and the data stored in the memory is replicated on the decoder side.
예컨대, 메모리는 데이터베이스에 따라 체계화된다. 데이터베이스에서의 엔트리는 벡터 식별자들에 적용될 식별자들을 코딩 파라미터 변환과 연관시킨다.For example, the memory is organized according to the database. An entry in the database associates the identifiers to be applied to the vector identifiers with a coding parameter transformation.
본 발명의 일 양상에 따르면, 상기 변환 단계는 중간, 개별적으로 변환된 블록에서의 변환된 벡터들의 계수들을 재배열하는 서브-스텝을 포함한다.According to one aspect of the present invention, the transforming step includes a sub-step of rearranging the coefficients of the transformed vectors in the intermediate, individually transformed block.
변환될 블록에서 형성된 벡터들에 대한 선형변환들의 적용 후에, 획득된 계수들은 계수들의 블록을 형성하기 위해 재배열된다. 예컨대, 제 1 변환된 벡터의 계수들은 블록의 제 1 라인, 개별적으로 제 1 컬럼 상에 배치된다. 이러한 특정 실시예는 간단하고 인코더에 거의 영향을 미치지 않는다는 장점을 갖는다.After application of the linear transformations on the vectors formed in the block to be transformed, the obtained coefficients are rearranged to form a block of coefficients. For example, the coefficients of the first transformed vector are placed on the first line of the block, individually on the first column. This particular embodiment has the advantage that it is simple and has little effect on the encoder.
본 발명의 또 다른 양상에 따르면, 인코딩 방법은,According to another aspect of the present invention,
- 복수의 미리결정된 모드들 중에서 선택된 예측의 모드에 따라 사전에 프로세싱된 적어도 하나의 블록으로부터 현재의 블록의 값들을 예측하는 단계,Predicting values of the current block from at least one block previously processed according to a mode of prediction selected from a plurality of predetermined modes,
- 현재의 블록의 오리지널 값들로부터 예측된 값들을 감산함으로써 잔여 블록을 계산하는 단계Calculating a residual block by subtracting the predicted values from the original values of the current block
를 더 포함한다..
본 발명에 따르면, 변환 단계가 잔여의 현재의 블록에 적용되고, 상기 적어도 하나의 코딩 파라미터는 현재의 블록의 예측 모드이다.According to the present invention, a transform step is applied to the residual current block, and said at least one coding parameter is a prediction mode of the current block.
예측의 모드가 그 자체로 잔여 블록의 통계적인 특성들을 표현하고, 이러한 것이 그러한 코딩 파라미터의 특정 값과 선형변환들의 특정 선정을 연관시키는 것과 관련된다는 것이 발견되었다.It has been found that the mode of prediction by itself represents the statistical properties of the residual block, and this relates to associating a particular selection of linear transformations with a particular value of such coding parameters.
본 발명의 다른 양상에 따르면, 방법은 상기 적어도 하나의 제 1 변환 및 상기 적어도 하나의 제 2 변환의 식별 정보 코딩의 단계를 포함한다.According to another aspect of the invention, the method comprises the step of coding said identification of said at least one first transformation and said at least one second transformation.
사용된 선형 변환들에 관한 정보는 비트 스트림에서 송신된다. 이 실시예의 장점은, 이것이 각각의 프로세싱된 블록에 대한 인코더에 의한 변환들의 동적 결정들에 적합하다는 것이다. Information about the linear transformations used is sent in the bit stream. An advantage of this embodiment is that it is suitable for dynamic determinations of transformations by the encoder for each processed block.
또 다른 양상에 따르면, 제 1 변환은 블록의 컬럼의 사이즈들에 대해 각각 라인의 사이즈와 동일한 사이즈들을 갖는 벡터들의 제 1 서브-세트에 적용되며, 상기 적어도 하나의 제 2 변환은 상기 블록의 컬럼의 사이즈들에 대해 각각 블록의 라인의 사이즈들과 동일한 사이즈들의 벡터들의 제 2 서브-세트에 적용된다. According to another aspect, a first transform is applied to a first sub-set of vectors having sizes equal to the size of a line for each of the column sizes of the block, and the at least one second transform is applied to a column of the block Lt; RTI ID = 0.0 > of the < / RTI > vectors of sizes equal to the sizes of the lines of the block, respectively.
예컨대, 변환 서브-스텝 마다 라인들 또는 컬럼들의 각각의 변환들인 2개의 변환들이 구현된다. 이 2개의 변환들은 예컨대 현재 블록의 예측 모드와 연관된다. 이 실시예는, 벡터 식별자들과 변환 식별자들 사이의 연관들을 저장하는 비용과 압축 성능 사이의 타협을 달성한다. For example, two transforms are implemented for each transform sub-step, which are transforms of each of the lines or columns. These two transforms are associated, for example, with the prediction mode of the current block. This embodiment achieves a compromise between compression performance and the cost of storing associations between vector identifiers and conversion identifiers.
본 발명의 또 다른 양상에 따르면, 상기 적어도 하나의 변환 서브-스텝은 그 블록에 형성된 블록의 라인의 사이즈, 또는 컬럼의 사이즈와 동일한 사이즈의 벡터 마다 별개의 변환을 구현한다. According to another aspect of the present invention, the at least one transform sub-step implements a separate transform for each vector of the same size as the size of the line of the block formed in the block, or the size of the column.
이 실시예의 장점은, 프로세싱될 블록의 각각의 벡터의 통계치들에 정밀하게 적응될 수 있고 그리고 품질 및/또는 압축의 측면에서 인코더의 성능들을 향상시킬 수 있게 만든다는 것이다. An advantage of this embodiment is that it can be precisely adapted to the statistics of each vector of the block to be processed and makes it possible to improve the performance of the encoder in terms of quality and / or compression.
본 발명의 다른 양상에 따르면, 형성된 벡터들은 다음을 포함하는 그룹에 속한다: According to another aspect of the invention, the formed vectors belong to a group comprising:
- 현재 블록의 라인의 각각의 계수들의 형성된 픽셀들의 "라인" 벡터들; - "Line" vectors of formed pixels of respective coefficients of a line of a current block;
- 현재 블록의 컬럼의 각각의 계수들의 형성된 픽셀들의 "컬럼" 벡터들;- "Column" vectors of formed pixels of each coefficient of a column of the current block;
- 블록의 적어도 2개의 라인들로부터 현재 블록에 인접하는 인접 픽셀들 또는 계수들에 의해 형성된 블록의 라인의 길이와 동일한 길이의 벡터들;- Vectors having a length equal to the length of a line of a block formed by adjacent pixels or coefficients adjacent to the current block from at least two lines of the block;
- 블록의 적어도 2개의 컬럼들로부터 현재 블록에 인접하는 인접 픽셀들 또는 계수들에 의해 형성된 블록의 컬럼의 길이와 동일한 길이의 벡터들.- Vectors of length equal to the length of a column of blocks formed by adjacent pixels or coefficients adjacent to the current block from at least two columns of the block.
형성된 벡터들은 인코더의 복잡성을 증가시키지 않기 위해 현재 블록의 라인들 또는 컬럼들과 동일한 사이즈이다. The formed vectors are the same size as the lines or columns of the current block so as not to increase the complexity of the encoder.
본 발명에 따른 벡터는 반드시 배타적으로 동일한 라인의 엘리먼트들로만 형성되어야 하는 것은 아니다. 비-선형 벡터들은 유리하게 이웃 라인들로부터 기인하는 블록의 이웃 엘리먼트들로부터 형성될 수 있는데, 이는 고려된 블록의 인접 엘리먼트들, 즉, 오프-라인과 컬럼들 사이의 특정 상관들의 장점을 취할 수 있게 만든다. 이 경우는 특히 대각선 각도 예측 모드들에 대해 존재하는데, 이 모드들의 경우 인코딩될 블록들은 대각선 패턴들을 갖는다. The vector according to the present invention is not necessarily exclusively formed with elements of the same line. The non-linear vectors may advantageously be formed from neighboring elements of a block originating from neighboring lines, which may take advantage of certain elements of the considered block, i.e., off-line and columns . This case exists especially for diagonal angle prediction modes, in which the blocks to be encoded have diagonal patterns.
그의 다양한 실시예들에 방금 설명된 방법은 유리하게, 현재 블록에 대해 구현될 수 있는 미리결정된 사이즈의 다음의 유닛들을 포함하는 본 발명에 따라 디지털 이미지를 인코딩하기 위한 디바이스에 의해 구현될 수 있다. The method just described in its various embodiments may advantageously be implemented by a device for encoding a digital image in accordance with the present invention that includes the following units of a predetermined size that may be implemented for the current block.
- 현재 블록을 변환된 블록으로 변환하는 것(상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하는데, 이 단계들 중 제 1 서브-스텝은 현재 블록에 적용되고 제 2 서브-스텝은 제 1 서브-스텝으로부터 결과로 나타나는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함), 및- Converting the current block into a transformed block, said block comprising coefficients, said step implementing two consecutive transforming sub-steps, wherein a first sub-step is applied to the current block, Two sub-steps are applied to the intermediate block resulting from the first sub-step, the intermediate block comprising coefficients), and
- 변환된 블록의 계수들을 양자화하고 인코딩하는 것. - Quantizing and encoding the coefficients of the transformed block.
이러한 디바이스는, 이 디바이스가 현재 블록과 중간 블록 사이에서 소위 변형될 블록이라 지칭되는 블록 내에 적어도 하나의 제 1 및 제 2 별개의 벡터들을 형성하는 유닛을 포함한다는 점에서 특별한데, 여기서 이러한 벡터는 변형될 블록의 사이즈들 중 하나와 동일한 길이의 시퀀스의 인접 계수들인 픽셀들을 포함하고, 그리고 상기 적어도 하나의 서브-스텝은 상기 적어도 하나의 제 1 벡터로의 제 1 변환 및 상기 블록의 상기 적어도 하나의 제 2 벡터로의 (상기 제 1 변환과는 별개의) 적어도 하나의 제 2 변환을 적용하는 것을 포함한다. Such a device is special in that it includes a unit that forms at least one first and second separate vectors in a block referred to as the so-called deformable block between the current block and the intermediate block, Wherein the at least one sub-step includes a first transform to the at least one first vector and the at least one sub-step to the at least one sub-step of the block, the pixels being neighboring coefficients of a sequence of length equal to one of the sizes of a block to be transformed, And applying at least one second transform (separate from the first transform) to a second vector of the second vector.
상관적으로, 본 발명은 또한 상기 이미지를 대표하는 인코딩된 데이터를 포함하는 비트 스트림으로부터 디지털 이미지를 디코딩하기 위한 방법에 관한 것인데, 상기 이미지는 정의된 순서로 프로세싱된 복수의 픽셀들의 블록들로 분할되며, 상기 방법은 소위 현재 블록인 블록에 대해 구현되는 다음의 단계들을 포함한다: Correspondingly, the invention also relates to a method for decoding a digital image from a bitstream comprising encoded data representing said image, said image being divided into blocks of a plurality of pixels processed in a defined order , The method comprises the following steps implemented for a so-called current block:
- 비트 스트림에서 판독된 데이터로부터 변형된 현재 블록의 계수들을 디코딩하는 단계;- Decoding coefficients of the transformed current block from the data read in the bitstream;
- 디코딩된 계수들을 역양자화하는 단계;- Dequantizing the decoded coefficients;
- 현재 변환된 블록을 역변환하는 단계(상기 단계는 2개의 연속적인 역변환 서브-스텝들을 구현하는데, 이 단계들 중 제 1 서브-단계는 현재 블록에 적용되고 제 2 서브-단계는 제 1 서브-단계로부터 결과로 나타나는 중간 블록에 적용됨). - Transforming the current transformed block, wherein the step implements two consecutive inverse transform sub-steps, wherein the first sub-step is applied to the current block and the second sub- ≪ / RTI >
본 발명에 따른 디코딩 방법은:A decoding method according to the present invention comprises:
- 상기 적어도 하나의 역변환 서브-스텝이, 현재 변환된 블록 및 중간 블록으로부터, 소위 프로세싱될 블록으로 지칭되는 블록에 적용되며, 이는 프로세싱될 블록의 하나의 라인 또는 하나의 컬럼의 길이와 동일한 길이의 적어도 제 1 벡터에 제 1 역변환을 적용하고 그리고 하나의 라인 또는 하나의 컬럼의 길이와 동일한 길이의 상기 블록의 적어도 하나의 제 2 벡터에 제 1 역변환과는 별개의 적어도 하나의 제 2 역변환을 적용하는 단계를 각각 포함한다는 점; 및- The at least one inverse transform sub-step is applied to a block, referred to as the so-called to-be-processed block, from the currently transformed block and the intermediate block, which is at least equal to the length of one line or one column of the block to be processed Applying a first inverse transform to the first vector and applying at least one second inverse transform different from the first inverse transform to at least one second vector of the block of length equal to the length of one line or one column Respectively; And
- 추가로, 프로세싱된 벡터들로부터 라인인 각각의 컬럼의 길이들과 동일한 길이들의 인접 픽셀들인 각각의 인접 계수들의 시퀀스들을 포지셔닝함으로써 프로세싱된 블록을 형성하는 서브-스텝을 포함한다는 점에서 특별하다. - Further comprising a sub-step of forming a processed block by positioning the sequences of respective contiguous coefficients that are adjacent pixels of lengths equal to the lengths of each column that is a line from the processed vectors.
본 발명의 일 양상에 따르면, 이 방법은 현재 블록의 적어도 하나의 코딩 파라미터에 적어도 기반하여 프로세싱될 블록의 상기 제 1 및 제 2 벡터들에 적용될 상기 적어도 2개의 별개의 변환들을 결정하기 위한 사전 단계를 더 포함한다. According to an aspect of the invention, the method includes a pre-step for determining the at least two distinct transforms to be applied to the first and second vectors of a block to be processed based on at least one coding parameter of a current block, .
다른 양상에 따르면, 결정 단계는 적어도 하나의 제 1 변환 및 상기 적어도 하나의 제 2 변환의 식별 정보를 대표하는 코딩된 데이터의 비트 스트림에서의 판독을 포함한다.According to another aspect, the determining step includes reading in a bitstream of coded data representing at least one first transform and identification information of the at least one second transform.
본 발명의 또 다른 양상에 따르면, 결정 단계는 프로세싱될 블록에서 제 1 및 제 2 벡터들을 형성하는 이전 서브 스텝을 더 포함한다.According to another aspect of the present invention, the determining step further comprises a previous sub-step of forming the first and second vectors in the block to be processed.
본 발명의 또 다른 양상에 따르면, 결정 단계는 메모리에 저장된 판독 정보를 포함하고, 상기 정보는 적어도, 코딩 파라미터, 제 1 역변환의 식별자, 제 1 벡터의 적어도 하나의 식별자, 제 1 변환의 식별자와는 별개인 적어도 하나의 제 2 변환의 식별자, 및 프로세싱될 블록의 적어도 하나의 제 2 벡터 식별자를 포함한다. According to another aspect of the present invention, a determination step includes reading information stored in a memory, the information including at least a coding parameter, an identifier of a first inverse transformation, at least one identifier of a first vector, Comprises an identifier of at least one second transformation that is distinct and at least one second vector identifier of the block to be processed.
본 발명의 다른 양상에 따르면, 역변환 단계는, 변환의 상기 적어도 하나의 서브 스텝 이전에, 상기 제 1 및 제 2 벡터들에서 프로세싱될 블록의 인접 계수들의 시퀀스들을 재배열하는 서브-스텝을 더 포함하고, 이러한 시퀀스는 프로세싱될 블록의 사이즈 중 하나의 사이즈와 동일한 길이를 갖는다.According to another aspect of the present invention, the inverse transform step further includes a sub-step of rearranging the sequences of adjacent coefficients of the block to be processed in the first and second vectors before the at least one sub-step of the transform , And this sequence has a length equal to the size of one of the sizes of the blocks to be processed.
따라서, 본 발명에 따른 디코딩 방법은 방금 설명된 코딩 방법의 오퍼레이션에 대한 인버스 오퍼레이션(inverse operation)들을 구현한다.Thus, the decoding method according to the present invention implements inverse operations on the operation of the coding method just described.
특히:Especially:
역변환의 서브-스텝들은 코딩 방법에 의해 구현된 변환의 오퍼레이션들과 인버스인 오퍼레이션들에 대응한다. 그들은 코딩의 역방향 순서로 서로 수행한다. The sub-steps of the inverse transform correspond to the operations of the transform implemented by the coding method and the inverse operations. They perform each other in reverse order of coding.
프로세싱된 벡터들로부터 도출된 인접 계수들인 각각의 인접 픽셀들의 시퀀스들로부터 프로세싱된 블록을 형성하기 위한 서브-스텝은 코딩 방법에 의해 구현되는, 변환될 벡터들을 형성하는 오퍼레이션의 인버스 오퍼레이션에 대응한다. The sub-steps for forming a processed block from the sequences of each adjacent pixels that are adjacent coefficients derived from the processed vectors correspond to the inverse operation of the operations forming the vectors to be transformed, which are implemented by the coding method.
상기 제 1 및 제 2 벡터들에서 프로세싱될 블록의 인접 계수들의 시퀀스들을 재배열하는 서브-스텝은 코딩 방법에 의해 구현되는 변환된 블록에서 변환된 벡터들의 계수들을 재배열하는 오퍼레이션의 인버스 오퍼레이션에 대응한다. The sub-step of rearranging the sequences of adjacent coefficients of the block to be processed in the first and second vectors corresponds to the inverse operation of the operation of rearranging the coefficients of the transformed vectors in the transformed block implemented by the coding method do.
그 상이한 실시예들에서 방금 설명된 방법은 상기 이미지를 대표하는 인코딩된 데이터를 포함하는 비트 스트림으로부터 디지털 이미지를 디코딩하기 위한 디바이스에 의해 유리하게 구현되고, 상기 이미지는 정의된 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고, 상기 디바이스는 미리 결정된 사이즈들의 블록, 소위 현재 블록에 대해 구현될 수 있는 다음의 유닛들을 포함한다: The method just described in the different embodiments is advantageously implemented by a device for decoding a digital image from a bitstream containing encoded data representative of the image, And the device includes the following units that can be implemented for blocks of predetermined sizes, the so-called current block:
비트 스트림에서 판독된 데이터로부터 변환된 현재 블록의 계수들을 디코딩하기 위한 유닛; A unit for decoding the coefficients of the current block transformed from the data read in the bitstream;
디코딩된 계수들을 역양자화하기 위한 유닛; A unit for dequantizing the decoded coefficients;
상기 현재 변환된 블록을 역변환하기 위한 유닛 ― 상기 유닛은 2개의 연속적인 역변환 서브-유닛들을 구현하고, 제 1 서브-유닛은 현재 블록에 적용되고, 제 2 서브-유닛은 제 1 서브-유닛으로부터 결과로 나타나는 중간 블록에 적용됨 ― ; Unit for inversely transforming the current transformed block, the unit implementing two successive inverse transform sub-units, wherein the first sub-unit is applied to the current block and the second sub-unit is transformed from the first sub- Applied to the resulting intermediate block -;
본 발명에 따르면, 디바이스는 그가:According to the present invention,
- 현재 변환된 블록 및 중간 블록으로부터, 프로세싱될 블록으로 지칭되는 블록의 적어도 하나의 역변환 서브-유닛이, 프로세싱될 블록의 하나의 라인 또는 하나의 칼럼의 길이와 동일한 길이의 적어도 제 1 벡터에 제 1 역변환을 적용하고, 그리고 처리될 상기 블록의, 하나의 라인 또는 하나의 칼럼의 길이와 동일한 길이의 상기 블록의 적어도 하나의 제 2 벡터에 제 1 역변환과 별개인 적어도 하나의 제 2 역변환을 적용하는 것을 포함한다는 점; 및- At least one inverse transform sub-unit of a block, referred to as the block to be processed, from the current transformed block and the intermediate block is transformed into at least a first vector of a length equal to the length of one line or one column of the block to be processed, Apply at least one second inverse transformation different from the first inverse transformation to at least one second vector of the block of length equal to the length of one line or one column of the block to be processed ; And
- 역변환 유닛이 프로세싱된 벡터들로부터, 칼럼인 각각의 라인의 길이와 동일한 길이들의 인접 계수들인 각각의 인접 픽셀들의 시퀀스들을 포지셔닝함으로써, 프로세싱된 블록의 역형성 서브-유닛을 더 포함한다는 점에서 특별하다.- Unit in that the inverse transform unit further comprises an inversed sub-unit of the processed block by positioning, from the processed vectors, the sequences of each contiguous pixels that are contiguous coefficients of length equal to the length of each line that is a column .
본 발명은 또한 디지털 이미지의 인코딩된 데이터를 포함하는 비트 스트림을 반송하는 신호에 관한 것으로, 상기 이미지는 픽셀들의 블록들로 분할된다. 이러한 신호는 그가 현재 블록에 대해:The invention also relates to a signal carrying a bit stream comprising encoded data of a digital image, the image being divided into blocks of pixels. These signals tell him about the current block:
변환 블록으로의 현재 블록의 변환의 2개의 연속적인 서브-스텝들을 포함하는 변환된 블록으로의 현재 블록의 변환 단계 동안 현재 블록의 코딩 동안에 구현되는, 서로로부터 별개인 적어도 제 1 및 제 2 변환의 식별 정보를 대표하는 코딩된 데이터 ― 적어도 하나의 제 1 벡터에 제 1 변환을 적용하는 단계 및 현재 블록 및 중간 블록 중에서, 변환될 블록으로 지칭되는 블록의 적어도 제 2 벡터에 제 1 변환과 별개인 적어도 하나의 제 2 변환을 적용하는 단계를 포함함 ― ; At least first and second transforms, which are implemented during the coding of the current block during the transforming step of the current block into transformed blocks comprising two consecutive sub-steps of transforming the current block into transform blocks, Applying coded data representative of identification information to a first vector of at least one of the current block and the intermediate block, and applying, to at least a second vector of blocks referred to as a block to be transformed, Applying at least one second transformation;
인접 픽셀들 또는 인접 계수들의 시퀀스로부터, 변환될 블록에 형성된 적어도 제 1 및 제 2 벡터들을 대표하는 코딩된 데이터 ― 상기 시퀀스는 변환될 블록의 사이즈들 중 하나와 동일한 길이를 가짐 ― 를 포함한다는 점에서 특별하다. Coded data representative of at least first and second vectors formed in a block to be transformed from a sequence of adjacent pixels or adjacent coefficients, said sequence having a length equal to one of the sizes of blocks to be transformed It is special in.
본 발명은 또한, 본 발명에 따른 디지털 이미지를 코딩하기 위한 디바이스 및 본 발명에 따른 디지털 이미지를 디코딩하기 위한 디바이스를 포함하는 컴퓨터 단말에 관한 것이다.The invention also relates to a computer terminal comprising a device for coding a digital image according to the invention and a device for decoding a digital image according to the invention.
본 발명은 또한, 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 위에서 설명된 디지털 이미지를 인코딩하기 위한 방법의 단계들을 구현하기 위한 명령들을 포함하는 컴퓨터 프로그램에 관한 것이다.The invention also relates to a computer program comprising instructions for implementing the steps of a method for encoding a digital image as described above when the computer program is executed by a processor.
본 발명은 또한, 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 위에서 설명된 디지털 이미지를 디코딩하기 위한 방법의 단계들을 구현하기 위한 명령들을 포함하는 컴퓨터 프로그램에 관한 것이다.The invention also relates to a computer program comprising instructions for implementing the steps of a method for decoding a digital image as described above when the computer program is executed by a processor.
이들 프로그램들은 임의의 프로그래밍 언어를 사용할 수 있다. 그들은 통신 네트워크로부터 다운로딩되고 그리고/또는 컴퓨터-판독가능 매체 상에 레코딩될 수 있다.These programs can use any programming language. They may be downloaded from a communication network and / or recorded on a computer-readable medium.
마지막으로, 본 발명은, 프로세서에 의해 판독가능하고, 본 발명에 따른, 디지털 이미지의 인코딩 디바이스와 그리고 디지털 이미지를 디코딩하기 위한 디바이스와 통합되거나 또는 통합되지 않으며, 선택적으로 제거가능하고, 위에서 설명된 인코딩 방법을 구현하는 컴퓨터 프로그램 및 디코딩 방법을 구현하는 컴퓨터 프로그램을 각각 저장하는 기록 매체들에 관한 것이다.Finally, the present invention relates to an image processing apparatus, which is readable by a processor and which, in accordance with the present invention, is not integrated or integrated with an encoding device for a digital image and a device for decoding a digital image, A computer program embodying the encoding method, and a computer program embodying the decoding method, respectively.
본 발명의 다른 특징들 및 장점들은, 첨부된 도면들과 함께 오직 예시적이고 비제한적인 예의 방식으로 주어진 본 발명의 하나의 특정 실시예의 다음의 설명을 읽을 때 명백해질 것이다:
- 도 1(이미 설명됨)은 종래 기술에 따라 인코딩될 디지털 이미지들의 시퀀스 및 이러한 이미지들의 블록들로의 분할을 개략적으로 예시한다;
- 도 2(이미 설명됨)는 종래 기술에 따라 블록을 서브-블록으로 파티셔닝할 다양한 확률들을 도시한다;
- 도 3(이미 설명됨)은 종래 기술에 따라 디지털 이미지를 인코딩하는 방법의 단계들을 개략적으로 도시한다;
- 도 4a 및 도 4b(이미 설명됨)는 종래 기술에 따라 근사화된 주파수 변환들의 2개의 예들을 도시한다;
- 도 5(이미 설명됨)는 분리가능한 변환 복잡성 측정들 및 분리불가능한 변환들의 비교 테이블을 도시한다;
- 도 6은 본 발명의 실시예에 따른 디지털 이미지의 인코딩 방법의 단계들을 개략적으로 도시한다;
- 도 7a는 현재 블록의 엘리먼트들을 예시한다;
- 도 7b, 도 7c 및 도 7d는 본 발명에 따라, 도 7a의 현재 블록의 엘리먼트들로부터 "행들" 및 "컬럼들" 벡터들을 형성하는 예들을 예시한다;
- 도 8a는 현재 블록의 픽셀들에서 에너지 값들의 추정의 제 1 예를 도시하고, 도 8b는 추정된 에너지 레벨들로부터 블록에서 결정된 균일 지역들을 도시한다;
- 도 9a는 현재 블록의 픽셀들에서 에너지 값들의 추정의 제 2 예를 도시하고, 도 9b는 추정된 에너지 레벨들로부터 블록에서 결정된 균일 지역들을 도시한다;
- 도 10은 본 발명의 제 2 실시예에 따라 벡터들을 형성하고 형성된 벡터들을 변환하는 단계들을 설명한다;
- 도 11은 종래 기술에 비해 이러한 제 2 실시예에 따른 인코딩 방법에 의해 획득되는 압축 이득들을 도시한다;
- 도 12는 본 발명의 제 3 실시예에 따라 벡터들을 형성하고 형성된 벡터들을 변환하는 단계들을 설명한다;
- 도 13은 종래 기술에 비해 이러한 제 3 실시예에 따른 인코딩 방법에 의해 획득되는 압축 이득들을 도시한다;
- 도 14는 본 발명의 실시예에 따라 디지털 이미지를 디코딩하기 위한 방법의 단계들을 개략적으로 도시한다;
- 도 15는 본 발명의 일 실시예에 따른 디지털 이미지의 코딩 디바이스 및 디지털 이미지를 디코딩하기 위한 디바이스의 단순화된 구조의 예를 도시한다.Other features and advantages of the present invention will become apparent upon reading the following description of one specific embodiment of the invention given by way of example only and non-limiting example with the accompanying drawings:
Figure 1 (already described) schematically illustrates a sequence of digital images to be encoded according to the prior art and the division of these images into blocks;
Figure 2 (already described) shows various probabilities for partitioning a block into sub-blocks according to the prior art;
Figure 3 (already described) schematically shows the steps of a method for encoding a digital image according to the prior art;
4A and 4B (already described) show two examples of approximated frequency transforms according to the prior art;
Figure 5 (already described) shows a comparison table of separable transform complexity measurements and non-separable transforms;
6 schematically shows the steps of a digital image encoding method according to an embodiment of the present invention;
Figure 7A illustrates the elements of the current block;
7B, 7C and 7D illustrate examples of forming "rows" and "columns" vectors from the elements of the current block of FIG. 7A, in accordance with the present invention;
8A shows a first example of estimation of energy values in the pixels of the current block, FIG. 8B shows the uniform regions determined in the block from the estimated energy levels; FIG.
- Figure 9A shows a second example of estimation of energy values in the pixels of the current block, Figure 9B shows the uniform regions determined in the block from the estimated energy levels;
10 illustrates steps for forming vectors and transforming formed vectors according to a second embodiment of the present invention;
Figure 11 shows the compression gains obtained by the encoding method according to this second embodiment compared to the prior art;
12 illustrates steps of forming vectors and transforming formed vectors according to a third embodiment of the present invention;
13 shows compression gains obtained by the encoding method according to this third embodiment compared to the prior art;
Figure 14 schematically shows the steps of a method for decoding a digital image according to an embodiment of the present invention;
15 shows an example of a simplified structure of a coding device for a digital image and a device for decoding a digital image according to an embodiment of the present invention.
본 발명의 일반적인 원리는 코딩될 블록의, 각각 컬럼인 라인의 사이즈와 동일한 사이즈의 상이한 벡터들로의 별개의 변환들의 적용에 의존한다.The general principles of the present invention rely on the application of separate transforms to different vectors of the same size as the size of the line, each column of the block to be coded.
이는, M개의 이미지들 I1, I2, ... IM의 시퀀스로 구성된 오리지널 비디오를 고려하며, M은 도 1과 관련하여 도시된 것과 같은 넌-제로 정수이다. 이미지들은 인코더에 의해 인코딩되고, 인코딩된 데이터는 통신 네트워크를 통해 디코더에 송신되는 비트 스트림 TB 또는 예컨대, 하드 디스크 상에 저장될 압축된 파일 FC에 삽입된다. 디코더는 인코딩된 데이터를 추출하고, 그 다음, 데이터는 인코더 및 디코더에 공지된 미리결정된 순서로, 예컨대, 시간 순서 I1, 그 다음 I2, ... 등으로 디코더에 의해 수신 및 디코딩되고, 순서는 실시예에 따라 상이할 수 있다.Consider this an original video consisting of a sequence of M images I1, I2, ... IM, where M is a non-zero integer such as shown in relation to FIG. The images are encoded by the encoder and the encoded data is inserted into a bitstream TB that is sent to the decoder over a communications network or a compressed file FC to be stored on, for example, a hard disk. The decoder extracts the encoded data and then the data is received and decoded by the decoder in a predetermined order known to the encoder and decoder, e.g., time sequence I1, then I2, ..., etc., May vary depending on the embodiment.
도 6과 관련하여, 이제, 본 발명의 실시예에 따른 인코딩 방법의 단계들을 고려한다.With reference now to Fig. 6, now consider the steps of the encoding method according to an embodiment of the present invention.
단계(T0) 동안, 프로세싱될 블록, 소위 현재 블록 x가 선택된다. 예컨대, 이는 블록 CTU를 파티셔닝함으로써 획득되는 CU, 정사각형 또는 직사각형 블록이다.During the step T0, the block to be processed, the so-called current block x, is selected. For example, this is a CU, square, or rectangular block obtained by partitioning the block CTU.
아래에서, 이러한 블록의 사이즈들은 높이 H 및 폭 W이고, 이들은 넌-제로 정수들인 것으로 고려된다. 예시적인 예로서, WxH = 4X4 블록인 특수한 경우를 고려한다.Below, the sizes of these blocks are height H and width W, which are considered non-zero integers. As an illustrative example, consider a special case where WxH = 4X4 blocks.
현재 블록 x에 변환을 적용하는 변환 단계(T2)를 고려하자. 현재 블록을 변환하는 단계(T2)는 분리가능하고, 선형 변환의 2개의 서브-스텝들, 즉,Consider the transformation step (T2) of applying the transform to the current block x. The step of transforming the current block T2 is separable and consists of two sub-steps of linear transformation,
- WxH 계수들을 포함하는 중간 블록 XI를 제공하기 위해, 사이즈 W를 갖는 블록 x의 벡터들 VI0 내지 VIH에 선형 변환이 적용되는 제 1 서브-스텝(T21); - a first sub-step (T21) in which a linear transformation is applied to vectors VI0 to VIH of block x with size W to provide an intermediate block XI comprising WxH coefficients;
- 변환된 블록 X를 제공하기 위해, 사이즈 H를 갖는 블록 XI의 벡터들 Vc0 내지 VcW-1에 선형 변환이 적용되는 제 2 서브-스텝(T24)- a second sub-step (T24) in which a linear transformation is applied to vectors Vc0 through VcW-1 of block XI with size H to provide a transformed block X,
으로 구현된다..
본 발명에 따르면, 제 1 서브-스텝은 블록 x의 벡터들 Vc0 내지 VcW-1에, 그리고 제 2 서브-스텝은 블록 XI의 벡터들 VI0 내지 VIH-1에 동등하게 잘 적용될 수 있음을 주목한다.It is noted that according to the invention, the first sub-step can be applied equally well to the vectors Vc0 to VcW-1 of the block x and the second sub-step is applied to the vectors VI0 to VIH-1 of the block XI .
직사각형 블록들을 프로세싱하기 위해, 라인들 및 컬럼들 상에 상이한 사이즈들의 변환들이 작용되는 것으로 이해된다.It is understood that different sizes of transformations are applied on the lines and columns to process the rectangular blocks.
본 발명에 따르면, 2개의 변환 서브-스텝들(T21, T24) 중 적어도 하나는 적어도 2개의 별개의 선형 변환으로부터 구현되는데, 하나는 픽셀들 x의 블록에 또는 계수들 XI의 중간 블록에 형성되고 블록의 라인과 동일한 사이즈의 적어도 하나의 제 1 벡터에 적용되고, 다른 하나는 동일한 블록에 형성되고 블록의 라인과 동일한 사이즈의 적어도 하나의 제 2 벡터에 적용된다. 2개의 별개의 선형 변환들을 사용한 서브-스텝(들)의 완료 시에, T22, T25에서 사이즈 MxN의 블록 XI, X에서 재배열된 계수들을 갖는 변환된 벡터들을 획득한다. According to the invention, at least one of the two transforming sub-steps T21, T24 is implemented from at least two distinct linear transformations, one being formed in the block of pixels x or in the middle block of coefficients XI Is applied to at least one first vector of the same size as the line of the block and the other is applied to at least one second vector of the same size as the line of the block formed in the same block. At the completion of the sub-step (s) using two distinct linear transformations, transformed vectors with the rearranged coefficients at block XI, X of size MxN at T22, T25 are obtained.
이와 관련하여, 블록에서 계수들을 재배열하는 상이한 방식들이 존재하고, 인코더에 의해 사용되는 방식은 디코더에 알려져야 함을 주목한다. 이러한 목적으로, 이러한 계수들의 재배열 모드를 표현하는 정보는 인코딩되고 비트 스트림에서 디코더에 송신될 수 있다.In this regard, it should be noted that there are different ways of rearranging the coefficients in the block, and the manner used by the encoder should be known to the decoder. To this end, information representing a rearrangement mode of these coefficients may be encoded and transmitted to the decoder in a bitstream.
대안적으로, 미리 결정된 재배열 규칙들이 인코더 및 디코더에 의해 공유될 것이다.Alternatively, predetermined reordering rules may be shared by the encoder and decoder.
따라서, 변환 T2는, T3에서 스캐닝 순서에 의해 스캐닝되고, T4에서 양자화되고 T5에서 코딩될 준비가 된 변환된 계수들을 포함하는 블록 X를 생성한다. 단계들(T3 및 T4)는 상호교환될 수 있음을 주목한다.Thus, the transform T2 generates a block X that is scanned by the scanning order at T3, quantized at T4, and transformed coefficients ready to be coded at T5. Note that steps T3 and T4 may be interchanged.
현재 블록의 프로세싱의 완료 시에, 사전에 정의된 코딩 스캐닝 순서가 주어지면, 현재 블록 x가 인코딩 유닛에 의해 프로세싱될 마지막 블록인지 여부를 T6에서 테스트한다. 마지막 블록이라면, 인코딩 유닛은 자신의 프로세싱을 완료하였고, 인코딩된 데이터는 비트 스트림 TB로 삽입된다. 마지막 블록이 아니라면, 다음 단계는 다음 블록을 선택하는 단계(T0)이다. 이러한 블록은 프로세싱될 현재 블록이 되고, 다음 단계는 현재 블록에 적용될 변환들을 결정하는 예측 단계(T1)(이미 설명됨)이다.At the completion of the processing of the current block, if a predefined coding scanning order is given, it is tested at T6 whether the current block x is the last block to be processed by the encoding unit. If it is the last block, the encoding unit has completed its processing and the encoded data is inserted into the bitstream TB. If it is not the last block, the next step is to select the next block (T0). This block becomes the current block to be processed, and the next step is the prediction step T1 (already described) for determining the transformations to be applied to the current block.
그 다음, 비트 스트림 TB는 디코더에 송신될 수 있다.The bit stream TB may then be transmitted to the decoder.
변환들(T1)을 결정하는 스텝(T1) 및 변환하는 스텝(T2), 특히, 벡터들을 형성하는 서브-스텝들(T20, T23), 변환들을 형성된 벡터들에 적용하는 서브-스텝들(T21, T24) 및 변환된 계수들을 블록으로 배열하는 서브-스텝들(T22, T25)의 다양한 실시예들이 이제 상세히 설명될 것이다.Steps Tl and T2 for determining transitions T1 and T2, in particular sub-steps T20 and T23 for forming vectors, sub-steps T21 < RTI ID = 0.0 & , T24) and sub-steps (T22, T25) of arranging the transformed coefficients into blocks will now be described in detail.
본 발명의 제 1 실시예에 따라, 상기 적어도 2개의 변환들은 제 1 변환 서브-스텝(T21) 동안에 구현된다.According to a first embodiment of the present invention, said at least two transforms are implemented during a first transform sub-step (T21).
예컨대, 제 1 서브-스텝(T21)이 현재 블록(x)의 라인의 사이즈와 동일한 사이즈의 벡터들에 대해 변환들을 구현하고, 제 2 서브-스텝(T24)이 중간 블록(Xl)의 엘리먼트들로부터 형성되고 컬럼의 사이즈와 동일한 사이즈의 벡터들에 대해 적어도 하나의 변환을 구현한다고 가정된다.For example, if the first sub-step T21 implements transforms for vectors of the same size as the line size of the current block x and the second sub-step T24 implements transforms for the elements of the intermediate block Xl And implement at least one transformation on vectors of the same size as the size of the column.
이러한 경우에, 상기 방법은 현재 블록(x)의 픽셀들로부터 길이(W)의 H개의 벡터들(Vl0-VlH-1)을 형성하는 예비 스텝(T20)을 구현한다. In this case, the method implements a preliminary step T20 to form H vectors (Vl0-VlH-1) of length W from the pixels of the current block (x).
이롭게도, 이들 벡터들은 현재 블록의 각각의 엘리먼트가 단일 벡터에서 사용되도록 형성된다. Advantageously, these vectors are formed such that each element of the current block is used in a single vector.
도 7a와 관련하여, 우리는 예로서 사이즈 4x4 의 현재 블록(x)을 고려한다. 이것은 16개의 계수들(x0 내지 x15)을 포함한다.With reference to Figure 7A, we consider the current block (x) of size 4x4 as an example. It contains 16 coefficients (x0 to x15).
도 7b와 관련하여, 블록(x)의 라인들로부터 형성된 벡터들(Vl0 내지 Vl3)의 제 1 예가 도시된다. 이러한 타입의 벡터(Vlh)는 현재 블록(x)의 라인 번호(h)에 대응한다.7B, a first example of vectors VlO to Vl3 formed from the lines of block x is shown. This type of vector (Vlh) corresponds to the line number (h) of the current block (x).
도 7d와 관련하여, 블록(x)의, 쌍들 간에 이웃하는 4개의 엘리먼트들로부터 형성된 벡터들(V'i0 내지 V'l3)의 제 2 예가 도시된다. 이들 아이템들은 동일한 라인에서 비롯되지 않는다. 예컨대, 벡터(Vl'0)는, 제 1 라인의 엘리먼트(x0)와 이웃하는, 블록의 제 1 라인의 3개의 연속적인 엘리먼트들(x0, x1, x2) 및 블록의 제 2 라인의 1개의 엘리먼트(x4)를 포함한다.7D, a second example of vectors (V'i0 to V'11) formed from four elements neighboring between pairs of block (x) is shown. These items do not originate from the same line. For example, the vector (Vl'0) includes three consecutive elements (x0, x1, x2) of the first line of the block adjacent to the element (x0) of the first line and one Element x4.
라인의 사이즈와 동일한 사이즈의 이러한 타입의 벡터가 블록에 존재하는 텍스처 불연속성을 모니터링하고 벡터의 엘리먼트들 간의 상관을 더 양호하게 이용하는데 이롭게 사용될 수 있다는 것이 이해된다.It is appreciated that this type of vector of the same size as the size of the line can be advantageously used to monitor the texture discontinuities present in the block and better utilize the correlation between the elements of the vector.
이어서, 본 발명에 따른 코딩 방법은 형성된 벡터들(Vl0 내지 HIV-1)에 적용될 적어도 2개의 별개의 선형 변환들(L0, L1), 형성된 적어도 벡터(Vlh1)에 적용될 적어도 하나의 제 1 변환(L0) 및 적어도 다른 벡터(Vlh2r)에 적용될 적어도 하나의 제 2 변환(L1)을 결정하는 스텝(T2)을 구현하고, h1, h2는 0과 H-1 간의 정수들이고, h1 ≠ h2이다.The coding method according to the invention then comprises at least two separate linear transforms (L0, L1) to be applied to the formed vectors (V10 to HIV-1), at least one first transform L0) and at least one second transform (L1) to be applied to at least another vector (Vlh2r), wherein h1, h2 are integers between 0 and H-1, and h1 ≠ h2.
구별되는 변환들은 DCT 또는 DST 타입 또는 인코딩을 위한 임의의 다른 유효 선형 변환일 수 있다. 따라서, 최적의 변환들은 상관, 즉, KLT("Karhunen-Loeve Transform")에 사용되거나, 2011 년에 컨퍼런스 DCC("Data Compression Conference")의 회보에 공개된 "Robust learning of 2D separable transforms for next generation video coding"란 명칭의 Sezer 등에 의해 기사에 제공된 비트 레이트 왜곡 기준으로 최적화될 수 있다.The transformations to be distinguished may be a DCT or DST type or any other effective linear transform for encoding. Thus, optimal transforms can be used for correlation, i.e., KLT ("Karhunen-Loeve Transform"), or "Robust learning of 2D separable transforms for next generation" published in the conference DCC quot; video coding "by Sezer et al.
이롭게도, 예컨대, 블록 사이즈 또는 또한 선택된 인트라 예측 모드와 같이, 현재 블록의 적어도 하나의 인코딩 파라미터에 기반하여 상기 적어도 2개의 선형 변환들이 결정된다.Advantageously, the at least two linear transformations are determined based on at least one encoding parameter of the current block, for example a block size or also a selected intra prediction mode.
예컨대, 이전에 오프라인에서 실시된 실험들은 특정 인트라 예측 모드에 적응된 적어도 2개의 선형 변환들을 식별하였고, 획득된 연관성을 메모리에 저장한다. For example, previously conducted offline experiments identified at least two linear transformations adapted to a particular intra prediction mode and stored the acquired associations in memory.
이롭게도, 코딩 파라미터 값과 연관된 선형 변환들의 식별자들은 코더 메모리에 저장된다. 이것은, 예컨대, 인코딩 파라미터를 연관시키는 엔트리들, 이를테면, 예컨대, 이전에 언급된 인트라 예측 모드, 제 1 변환의 식별자, 제 1 변환이 적용될 중간 블록 또는 블록의 적어도 하나의 식별자 또는 인덱스 벡터 ― 제 2 변환의 식별자, 제 2 변환이 적용될 상기 블록의 적어도 하나의 식별자 또는 제 2 벡터의 인덱스와 별개임 ― , 및 적어도 하나의 제 2 변환의 식별자를 포함하는 데이터베이스(BD1)이다.Advantageously, the identifiers of the linear transformations associated with the coding parameter values are stored in the coder memory. This may be accomplished, for example, by means of entries relating the encoding parameters, such as, for example, the previously mentioned intra prediction mode, the identifier of the first transformation, the identifier or index vector of the intermediate block or block to which the first transformation is to be applied, The identifier of the transform, the identity of the transform, the identity of the at least one identifier of the block to which the second transform is applied or the index of the second vector, and the identifier of the at least one second transform.
도 8a와 관련하여, 주어진 인트라 예측 모드, 이러한 경우에, 표준 HEVC에 따른 예측 모드 넘버 26으로부터, 사이즈 8x8의 잔여 블록들에서 픽셀 당 평균 에너지 값들이 추정되었다. 그러한 추정은 오프라인에서 이루어진다.8A, from the prediction mode number 26 according to the standard intra-prediction mode, in this case, the standard HEVC, average energy values per pixel in the remaining blocks of size 8x8 were estimated. Such an estimate is made offline.
픽셀 당 에너지가 2개(또는 그 초과의) 별개의 지역들로의 커팅을 정당화시킬 수평 스트라이프 패턴을 갖는다는 것이 주목된다.It is noted that the energy per pixel has a horizontal stripe pattern that justifies cutting into two (or more) distinct regions.
도 8b에 관련하여, 2개의 지역들(R1, R2)이 도시된다:With reference to Figure 8b, two regions R1 and R2 are shown:
제 1 지역(R1)은 일정한 패턴을 갖는 첫 번째 3개의 라인들로 구성된다; The first region R1 is composed of the first three lines with a certain pattern;
제 2 지역(R2)은 제 1 컬럼 상에서 더 많은 마킹된 불연속성으로 인해 더 적은 일정한 프로파일을 갖는 마지막 5개의 라인들로 구성된다. The second region R2 consists of the last five lines with a less constant profile due to the more marked discontinuities on the first column.
이롭게도, 2개의 변환들(L1, L2)이 결정되었고, 하나는 지역(R1)의 라인 벡터들에 적용되고, 다른 것은 지역(R2)의 라인 벡터들에 적용된다.Advantageously, two transforms L1 and L2 have been determined, one applied to the line vectors of region R1 and the other applied to the line vectors of region R2.
따라서, 이러한 예측 모드에 따라, 인코더는 각각 하나의 지역을 공유하는 2개의 <<라인>> 변환들에 파티션을 적용한다. Thus, in accordance with this prediction mode, the encoder applies a partition to two " line " transforms each sharing one region.
명백하게 동질적인 지역(R1)에 대해, KLT에 관하여 정의된 변환 또는 DCT-타입 변환이 선택되었다. DCT가 연속하는 패턴들의 변환에 적절하기 때문에, 이것이 적합한 것으로 고려될 수 있다. For an apparently homogeneous region (R1), a transformation or DCT-type transformation defined for KLT was chosen. Since the DCT is suitable for transforming successive patterns, this may be considered suitable.
지역(R2)에 대해, 제 1 컬럼에서 더 큰 불연속성을 고려할 수 있는 변환, 예컨대, DST, 또는 KLT에 관하여 정의된 변환이 선택된다. DCT가 초기 불연속성을 갖는 패턴들의 변환에 적절하기 때문에, 이것은 적합한 것으로 고려될 수 있다. 지역(R2)에 대해, 좌측 에지 상의 제 1 픽셀의 평균 에너지가 다른 픽셀 에너지들의 값과 상당히 상이한 값을 갖는다는 것이 주목된다.For region R2, a transformation is selected that is capable of taking into account a larger discontinuity in the first column, e.g., DST, or KLT. Since DCT is suitable for transforming patterns with initial discontinuities, this can be considered suitable. It is noted that for region R2, the average energy of the first pixel on the left edge has a value that is significantly different from the values of the other pixel energies.
메모리 제약 없이, 가능하게는 라인들만큼 많이 더 많은 지역들이 정의될 것이고, 더 큰 메모리 점유 공간을 희생하여 8개의 변환들이 사용될 것이다.Without memory constraints, possibly as many more areas as the lines will be defined, and eight conversions will be used at the expense of a larger memory footprint.
메모리 점유 제약을 고려하는 것은 감소된 효율성과 제한된 성능 감소로 이어진다.Taking memory occupancy constraints leads to reduced efficiency and limited performance reduction.
도 8a 및 8b의 예에 따른, 예측 모드(26)와 연관된 입력, 라인 벡터들(vl0 내지 vl2)에 대한 변환(L0) 및 컬럼 벡터들(vl3 내지 vl7)에 대한 변환(L1).A transformation L0 for the line vectors vl0 to vl2 and a transformation L1 for the column vectors vl3 to vl7, in accordance with the example of Figures 8A and 8B.
도 9a와 관련하여, 주어진 코딩 모드, 이러한 경우에, HEVC 표준에 의해 정의된 예측 모드(19)로부터 사이즈 8x8의 블록들의 오프라인 사전-분석에 의해 획득된 잔여 신호에 대해 획득된, 픽셀 당, 평균 에너지가 이제 제공된다. 이러한 예측 모드는 거의 -53°의 각도를 갖고, 상부로부터 하부로 대각선 예측을 수행한다. With respect to FIG. 9A, a given coding mode, in this case, is obtained for the residual signal obtained by offline pre-analysis of blocks of size 8x8 from the prediction mode 19 defined by the HEVC standard, Energy is now provided. This prediction mode has an angle of approximately -53 degrees and performs diagonal prediction from top to bottom.
픽셀들 간의 에너지 변동들은 도 9b에 도시된 3개의 구역들(R'1, R'2, R'3)을 설명한다. 그들은 지역들(R'1, R'2 및 R'3)과 연관되고 그들 각각의 통계에 적응된 3개의 별개의 변환들에 의해 그들을 프로세싱하기 위해 커팅되어야 한다. The energy variations between the pixels illustrate the three zones R'1, R'2, R'3 shown in FIG. 9B. They must be cut to process them by three separate transformations associated with the regions (R'1, R'2 and R'3) and adapted to their respective statistics.
이러한 예에서, 형성된 지역들이 블록의 하나 또는 그 초과의 라인들에 대응하지 않는다는 것이 보인다. 본 발명에 따라, 이웃하는 엘리먼트들로부터, 라인의 사이즈와 동일한 사이즈들의 벡터들을 형성하는 것에 관심이 있고, 반면 그들 모두는 고려되는 지역들의 경계들에 따라 동일한 라인에 반드시 속하지는 않는다. 예컨대, 도 9a에 도시된 벡터(Vlh1)는 지역(R'1)에 대응한다.In this example, it is seen that the regions formed do not correspond to one or more lines of the block. In accordance with the present invention, from neighboring elements, it is of interest to form vectors of sizes equal to the size of the line, while all of them do not necessarily belong to the same line depending on the boundaries of the considered regions. For example, the vector Vlh1 shown in Fig. 9A corresponds to the region R'1.
제 1 양상에 따르면, 데이터베이스(BD1)의 입력은 예측 모드(19), 변환 L'0의 식별자, 변환 L'0가 적용되어야 하는 지역 R'1에서 형성된 벡터(들)의 식별자, 변환 L'1의 식별자, 변환 L'2가 적용되어야 하는 지역 R'2에서 형성된 벡터(들)의 식별자, 변환 L'3의 식별자, 변환 L'3이 적용되어야 하는 지역 R'3에서 형성된 벡터(들)의 식별자와 연관된다.According to a first aspect, the input of the database BD1 comprises a prediction mode 19, an identifier of the transform L'0, an identifier of the vector (s) formed in the region R'1 to which the transform L'0 should be applied, 1, the identifier of the vector (s) formed in region R'2 to which transform L'2 should apply, the identifier of transform L'3, the vector (s) formed in region R'3, Lt; / RTI >
그에 따라서, 코딩 방법은, 데이터베이스(BD1) 내의 대응하는 엔트리를 판독함으로써, 하나의 라인의 사이즈들과 동일한 사이즈들의 벡터들을 어떻게 형성할지를 결정하고, 사용된 예측 모드에 기반하여 그 벡터들에 적용될 변환들을 결정한다.Accordingly, the coding method determines how to form vectors of sizes equal to the sizes of one line by reading the corresponding entries in the database BD1, and based on the used prediction mode, Lt; / RTI >
다른 양상에 따르면, 코딩 방법은 예측 모드 INTRA 넘버 19 및 직전에 제시되었던 패턴 지역 R'1, R'2, R'3에 기반하여 예측의 종료 시에 현재의 블록에 대한 픽셀 나머지들의 값들 간의 상관을 추가적으로 계산한다.According to another aspect, the coding method is based on the prediction mode INTRA number 19 and the pattern areas R'1, R'2, R'3, which were presented immediately before, at the end of prediction, the correlation between the values of the pixel residuals for the current block Lt; / RTI >
그 2개의 양들 간의 높은 상관, 다시 말해, 세팅된 상관 임계치 위의 상관의 경우에서, 인코더는 3개의 변환들 L'0, L'1, L'2를 사용하도록 결정한다.In the case of a high correlation between the two quantities, i. E. In the case of a correlation on a set correlation threshold, the encoder decides to use three transforms L'0, L'1, L'2.
인코더는 상이한 구역들에 적응된 3개의 변환들을 그 구역들에 적응된 변환들과 함께 적용한다. 예컨대, KLT의 관점에서의 적응이 수행된다.The encoder applies the three transforms adapted for the different zones together with the transformations adapted to the zones. For example, adaptation in terms of KLT is performed.
그것은 INTRA 예측 모드 넘버 19와 연관된 패턴 표시자를 대표하는 비트 스트림 코딩된 정보에 디코더를 삽입함으로써 이러한 선택을 표시한다.It indicates this selection by inserting a decoder into the bitstream coded information representing the pattern indicator associated with the INTRA prediction mode number 19.
이러한 실시예에 따르면, 데이터베이스(BD1)는 동일한 인코딩 파라미터에 대응하는 다수의 엔트리들을 잠재적으로 포함하고, 각각의 엔트리는 상이한 벡터들 및 상이한 변환들과 연관된 별개의 패턴 표시자를 포함한다는 것이 이해된다.According to this embodiment, it is understood that the database BDl potentially includes a plurality of entries corresponding to the same encoding parameter, and each entry includes a distinct pattern indicator associated with different vectors and different transitions.
인코더에 의해 선택된 예측 모드 정보 및 패턴의 수신 시에, 디코더는 자신의 데이터베이스(BD2)에서, 블록에서 형성될 벡터들의 식별자들 및 그 벡터들에 적용될 변환들의 식별자들을 판독한다. 그 후, 디코더는 인코더에서 수행된 변환들의 역변환들을 수행한다.Upon receiving the prediction mode information and the pattern selected by the encoder, the decoder reads in its database (BD2) the identifiers of the vectors to be formed in the block and the identifiers of the transformations to be applied to the vectors. The decoder then performs the inversions of the transformations performed in the encoder.
대안적으로, 선형 변환들은 인코딩될 현재의 블록의 사전-분석에 의해 동적으로 결정된다. 예컨대, 이러한 사전-분석은 그라디언트의 추정을 사용하여 알려진 윤곽 분석 기법들을 구현한다. 그 후, 윤곽 검출은 적어도 2개의 지역들의 특징들, 예컨대 그 지역들의 텍스처의 동질성에 의존하여, 그 적어도 2개의 지역들을 결정하고 그 지역들에 변환 타입들을 할당하도록 활용된다. 이러한 경우에서, 결정된 선형 변환들의 식별자들 및 관련 벡터들의 식별자들은 비트 스트림에서 시그널링되고 디코더에 송신된다.Alternatively, the linear transforms are determined dynamically by pre-analysis of the current block to be encoded. For example, such pre-analysis implements known outline analysis techniques using estimates of the gradient. The contour detection is then utilized to determine the at least two regions and assign the transformation types to the regions, depending on the characteristics of the at least two regions, e.g., the texture homogeneity of the regions. In this case, the identifiers of the determined linear transformations and the identifiers of the associated vectors are signaled in the bitstream and transmitted to the decoder.
대안적으로, 그러한 윤곽 분석은, 예컨대 현재의 블록과 관련된 다음의 블록 내의 윤곽 배향에 따라, 이미 프로세싱되고 현재의 블록에 대한 연속성 가정과 함께 결합되는 하나 또는 그 초과의 이웃한 블록들에 대해 수행된다.Alternatively, such outline analysis may be performed on one or more neighboring blocks that are already processed and combined with the continuity assumptions for the current block, e.g., according to the outline orientation in the next block associated with the current block .
윤곽 연속성 결정이 이루어진 경우, 그 후, 현재의 블록의 지역들은 이미 프로세싱된 이웃한 블록의 지역들에 기반하여 결정된다.If the contour continuity determination is made, then the regions of the current block are then determined based on the regions of the neighboring block that have already been processed.
이러한 경우에서, 인코더는 영향받은 이웃한 블록에 대한 상속 모드를 대표하는 코딩된 정보에 기반하여 지역들, 즉 사용될 벡터들 및 변환들이 상속되어야 하는 이웃한 블록을 디코더에게 시그널링한다. 디코더는 일단 디코딩되면 동일한 이웃한 블록에 대해 동일한 윤곽 분석을 구현하여 그 분석으로부터 벡터들, 즉 사용될 변환들을 추론하도록 요구될 것이 이해되어야 한다.In this case, the encoder signals the decoders based on the coded information representative of the inheritance mode for the affected neighboring block, i.e., the neighboring blocks into which the vectors to be used and transforms should be inherited. It should be appreciated that once a decoder has been decoded, it is required to implement the same outline analysis for the same neighboring block to deduce vectors, that is, transformations to be used, from the analysis.
본 발명의 실시예 변동에 따르면, 상기 적어도 2개의 별개의 선형 변환들은 제 2 변환 서브-스텝(T31) 동안 구현된다.According to an embodiment variation of the present invention, the at least two distinct linear transformations are implemented during the second transform sub-step T31.
이러한 경우에서, 현재의 블록의 컬럼들의 사이즈와 동일한 사이즈 H의 벡터들은 중간 블록 XI의 계수들로부터, 제 1 변환 서브-스텝(T30)에 후속하는 (T11)에서 형성된다. 길이 H의 W개의 벡터들 Vc0 내지 VcW-1이 획득된다.In this case, vectors of size H equal to the size of the columns of the current block are formed from the coefficients of the intermediate block XI at (T11) following the first transform sub-step T30. W vectors Vc0 through VcW-1 of length H are obtained.
위에서와 같이, 사이즈 H의 벡터들의 수개의 타입들이 형성될 수 있다.As above, several types of vectors of size H can be formed.
도 7c와 관련하여, 벡터 VCW는 블록의 컬럼 넘버 w에 대응한다.With reference to Figure 7C, the vector VCW corresponds to the column number w of the block.
도 7e와 관련하여, 벡터 Vc'w는 2개의 인접한 컬럼들로부터의 엘리먼트들을 포함한다.With reference to Figure 7E, the vector Vc'w includes elements from two adjacent columns.
결정하는 단계(T'2)는 형성된 벡터들 Vc0 내지 VcW-1에 적용될 적어도 2개의 별개의 선형 변환들 C0, C1을 제공한다.The determining step T'2 provides at least two distinct linear transforms C0, C1 to be applied to the formed vectors Vc0 through VcW-1.
벡터들 VI0 내지 VIH-1을 형성하고 위에서 제시된 선형 변환들 Li를 결정하는 단계들의 다양한 실시예들은 벡터들 Vc0 내지 VcW-1을 형성하고 선형 변환들 Cj를 결정하는 단계들로 전치될 수 있으며, 그들이 중간 블록 XI에 대해 구현된다는 것을 유념한다.Various embodiments of the steps of forming the vectors VI0 through VIH-1 and determining the linear transformations Li presented above may be transposed into steps of forming the vectors Vc0 through VcW-1 and determining the linear transformations Cj, Note that they are implemented for intermediate block XI.
유리하게, 본 발명의 원리는 2개의 변환 서브-스텝들(T30 및 T31)에서 구현된다. 이러한 경우에서, 인코딩 방법은, 현재의 블록 X로부터 사이즈 W의 벡터들 VI0 내지 VIH-1을 형성하는 제 1 단계(T10), 벡터들 VI0 내지 VIH-1에 적용될 변환들 L0, L1을 결정하는 제 1 단계(T20), 중간 블록 XI로부터 사이즈 H의 벡터들 Vc0 내지 VcW-1을 형성하는 제 2 단계(T11), 및 벡터들 Vc0 내지 VcW-1에 적용될 변환들 C0, C1을 결정하는 제 2 단계(T21)를 구현한다.Advantageously, the principles of the present invention are implemented in two transform sub-steps T30 and T31. In this case, the encoding method comprises a first step (T10) of forming vectors VI0 through VIH-1 of size W from the current block X, transforms L0, L1 to be applied to vectors VI0 through VIH-1 A second step T11 for forming vectors Vc0 through VcW-1 of size H from the intermediate block XI and a second step T11 for determining transforms C0 and C1 to be applied to the vectors Vc0 through VcW- The second step (T21) is implemented.
하나의 장점은 2개의 변환 서브-스텝들에 대해, 형성된 상이한 벡터들의 통계적 특징들을 더 양호하게 활용하는 것이다. 물론, 다른 한편으로, 이러한 실시예는 더 많은 수의 변환들을 저장하는 것을 요구한다.One advantage is to better utilize the statistical features of the different vectors formed for the two transforming sub-steps. Of course, on the other hand, this embodiment requires storing a greater number of transforms.
도 10과 관련하여, 본 발명의 제 2 실시예에 따른 디지털 이미지를 인코딩하는 방법이 이제 예시된다.Referring now to Fig. 10, a method for encoding a digital image according to a second embodiment of the present invention is now illustrated.
이러한 실시예에 따르면, 본 발명은, H 라인 변환들 L0 내지 LH-1 및 W 컬럼 변환들 C0 내지 CW-1을 고려한다. 다시 말해서, 사이즈 W의 벡터들 Vl0 내지 VlH-1이 (T'20)에서 형성되었는지 또는 사이즈 H의 벡터들 Vc0 내지 VcW-1이 (T'23)에서 형성되었는지 여부에 관계없이, 형성된 각각의 벡터에 특정적인 선형 변환은 현재의 블록에 적용된다.According to this embodiment, the present invention considers H-line transforms L0 to LH-1 and W column transforms C0 to CW-1. In other words, regardless of whether the vectors Vl0 to VlH-1 of size W were formed at (T'20) or whether the vectors Vc0 to VcW-1 of size H were formed at (T'23) The vector - specific linear transformation is applied to the current block.
예시적인 예로서, 4X4 블록의 경우를 고려해본다.As an illustrative example, consider the case of a 4x4 block.
단계(T'21) 동안 변환된 신호 X1은 다음의 오퍼레이션들의 연접에 의해 획득된다:The converted signal X1 during step T'21 is obtained by concatenation of the following operations:
L0, L1, L2 및 L3은 라인 변환들을 표현하고, 따라서 이러한 실시예에서는 사이즈 4x4의 행렬이며, 이는, 특히 사용된 변환들이 DCT/DST-타입이면 문헌에 알려진 바와 같은 버터플라이 분해에 기반하여 고속 알고리즘으로서 잠재적으로 구현될 수 있다.L 0 , L 1 , L 2 and L 3 represent line transforms, and thus in this embodiment, are a matrix of size 4x4, which is a DCT / DST-type, As a high-speed algorithm.
따라서, 16개의 변환된 계수들(X10 ... X15)은 초기 블록x의 16(x0 ... x15)개의 픽셀들로부터 획득될 수 있다. 이들이, 예를 들어, 선형 변환 Li에 의해 변환된 각각의 벡터 Vli가 블록 Xl의 라인 i를 형성하는 것을 도왔다는 것을 고려함으로써, 블록 Xl을 형성하도록 T'22에서 재배열된다.Thus, the 16 transformed coefficients X10 ... X15 can be obtained from the 16 (x0 ... x15) pixels of the initial block x. They are rearranged at T'22 to form a block Xl, for example, by considering that each vector Vli converted by the linear transformation Li helped form the line i of the block Xl.
컬럼 변환이 다음과 같이 유사하게 T'24에 적용된다:The column transformation is similarly applied to T'24 as follows:
C0, C1, C2 및 C3은 컬럼 변환들을 나타내고, 따라서 이 실시예에서 사이즈 4×4의 매트릭스들이며, 이는, 특히 사용된 변환들이 DCT/DST-타입인 경우, 문헌에 공지된 바와 같이 버터플라이 분해에 기반하여, 고속 알고리즘으로서 잠재적으로 구현될 수 있다.C 0 , C 1 , C 2, and C 3 represent column transforms, and thus are matrices of size 4 × 4 in this embodiment, which is especially useful when the transformations used are DCT / DST- Based on the same butterfly decomposition, it can potentially be implemented as a fast algorithm.
따라서, 바로 위에 나타내어졌던 블록 4x4의 실시예에서, 8개의 변환들이 제공되었다.Thus, in the embodiment of block 4x4 which was just above, eight transforms were provided.
이 실시예의 장점은, 각각의 라인 및 각각의 컬럼이 그들 자신의 통계를 개별적으로 제공한다는 사실을 고려한 것이다. 압축 성능이 개선된다. The advantage of this embodiment is that it takes into account the fact that each line and each column individually provides their own statistics. Compression performance is improved.
도 11과 관련하여, 사이즈 4×4의 블록에 대해, HEVC에서 INTRA 코딩의 특정한 경우에, 다수의 변환을 사용함으로써 제공되는 이득이 도시되어 있다.Referring to Fig. 11, for a block of size 4x4, the gain provided by using multiple transforms in the specific case of INTRA coding in HEVC is shown.
이 콘텍스트에서, HEVC는 사이즈 4×4의 블록들에 대해, 타입 DST VII의 라인 및 컬럼 변환을 사용하며, 이 변환은 신호의 소형화의 면에서 최상의 결과들을 나타내었다.In this context, the HEVC uses line and column transforms of type DST VII for blocks of size 4x4, which showed the best results in signal miniaturization.
이는 인트라 예측 번호 18의 콘텍스트에서 발생한다. 이 예측은 대각선이다. 변환의 성능을 평가하기 위해서, 우리는 그의 코딩 이득, 즉, 신호의 에너지와 변환된 계수들의 기하학적 평균 간의 비를 측정한다. This occurs in the context of intra prediction number 18. This prediction is diagonal. To evaluate the performance of the transform, we measure its coding gain, that is, the ratio between the energy of the signal and the geometric mean of the transformed coefficients.
도 11의 테이블과 관련하여, 우리는 HEVC에서 사용되는 DST, 이미지/비디오 인코딩에서 일반적으로 사용되는 DCT, KLT의 의미에서 최적의 분리가능한 변환(테이블에서 Sep로 지정됨) 및 KLT의 의미에서 최적화된, 본 발명에 따른 변환들의 세트(테이블에서 mSEP로 지정됨)와 함께 획득되는 성능들을 나타낸다.With reference to the table of FIG. 11, we have shown that the DSTs used in the HEVC, the DCTs commonly used in image / video encoding, the optimal separable conversion in the sense of KLT (designated Sep in the table) , And the set of transforms (designated as mSEP in the table) according to the present invention.
KLT의 의미에서 최적화는 최상의 코딩 이득을 제공하는 라인들 및 컬럼들 변환들을 찾는 것에 있다. 종래 기술에 따르면, KLT 변환들은, 변환될 벡터들의 픽셀들 대 픽셀들 상관들을 고려하고 기껏해야 이러한 픽셀들을 상관해제시키는 변환을 결정함으로써 획득된다. 따라서, 픽셀의 자기상관 매트릭스가 결정되고, 그런다음 대각선화가 수행된다: 상관해제를 생성하는 적절한 벡터들은 변환 KLT를 형성한다.In the sense of KLT, optimization is to find the lines and columns transformations that provide the best coding gain. According to the prior art, KLT transforms are obtained by considering the pixel-to-pixel correlations of the vectors to be transformed and at most by determining a transform that de-correlates these pixels. Thus, the autocorrelation matrix of the pixel is determined, and then diagonalization is performed: The appropriate vectors to generate the correlation release form the transform KLT.
이들 결과들은 본 발명을 이용하여 개선된 성능을 보여주거나 또는 종래 기술의 방법들에 비해 상당한 이득이 주목된다.These results demonstrate improved performance using the present invention or considerable advantages over prior art methods.
도 12와 관련하여, 발명의 제 3 실시예에 따른 디지털 이미지를 인코딩하기 위한 방법이 이제 예시된다.Referring now to Fig. 12, a method for encoding a digital image according to a third embodiment of the invention is now illustrated.
본 실시예에 따르면, 픽셀들 x의 블록으로부터 T''20에서 "라인" 벡터들로 형성되고, 2 개의 별개의 라인들 변환들이 제 1 서브-스텝 T''21 동안에 그들에 적용된다. 획득된 계수들은 중간 블록 Xl을 형성하기 위해 T''22에 재배열되고, "컬럼" 벡터들은 T''23에서 형성되고 2개의 별개의 컬럼들 변환들이 제 2 변환 서브-스텝 T "24 동안 이들에 적용된다. 변환된 계수들은 변환된 블록 X를 형성하기 위해 T''25에서 재배열된다.According to the present embodiment, from the block of pixels x is formed "line" vectors at T''20, and two separate line transforms are applied to them during the first sub-step T''21. The obtained coefficients are rearranged to T''22 to form intermediate block Xl, while the "column" vectors are formed at T''23 and two distinct column transforms are formed during the second transform sub- The transformed coefficients are rearranged at T''25 to form the transformed block X. [
따라서, 제 1 서브-스텝 T''21에 의해 구현된 라인 변환은 제 1 라인에 대한 변환을 다른 것들을 위해 사용된 것과 구분하며, 사이즈 4×4의 블록에 대해 다음과 같이 표현될 수 있다.Thus, the line transform implemented by the first sub-step T''21 distinguishes the transform for the first line from that used for others, and for a block of size 4x4 it can be expressed as:
그래서 우리는 이제, 이전의 4가 아닌 2개의 변환들(L0과 L1)만을 갖는다.So we now have only two transforms (L0 and L1), not the previous four.
컬럼들의 경우, 유사하게 진행될 수 있으며, 즉, 컬럼들(예를 들어, 다음 컬럼들 중 첫 번째 것)을 구분하기 위해 단지 2개의 변환들만 유지한다. 또한 일 실시예에서는, 컬럼들의 세트에 대해 하나의 변환만 유지하거나, 또는 다른 실시예에서 제 1 실시예에서 개요가 설명된 바와 같이 4개의 별개의 변환들 보유하는 것도 가능하다.In the case of columns, it can proceed in a similar fashion, i.e., only keeps two transforms to distinguish columns (e.g., the first of the following columns). It is also possible in one embodiment to maintain only one transformation for a set of columns, or in another embodiment, to retain four distinct transformations as outlined in the first embodiment.
따라서, 변환들의 저장과 관련된 충격은 상당히 감소된다. Thus, the impact associated with storing transforms is significantly reduced.
메모리 감소를 위한 제 3 실시예에 의해 획득된 성능을 예시하기 위해, 블록들 4x4에 의해 달성되는 코딩 이득들이 HEVC의 인트라 모드의 예측 18에 대해 다시 예시된다. To illustrate the performance obtained by the third embodiment for memory reduction, the coding gains achieved by blocks 4x4 are again illustrated for prediction 18 of the intra mode of the HEVC.
2개의 별개의 변환들이 라인들 및 컬럼들에 대해 유지된다. 따라서, 우리는 제 1 실시예에 나타내어진 것과 같이 8개 대신 총 4개의 변환들을 갖는다(구성 4Sep를 주목한다). Two separate transforms are maintained for the lines and columns. Thus, we have a total of four transforms instead of eight as shown in the first embodiment (note configuration 4Sep).
대안으로, 2개의 별개의 변환들이 라인들에 대해 유지되고 컬럼들에 대해서는 1개의 변환만이 유지된다(컬럼들의 경우, 우리는 최신 기술에 가깝다). 따라서, 우리는 제 1 실시예에 나타내어진 것과 같이 8 대신 총 3개의 변환들을 갖는다(구성 3Sep를 주목한다). Alternatively, two separate transforms are maintained for the lines and only one transformation is maintained for the columns (in the case of the columns, we are close to the state of the art). Thus, we have a total of three transforms instead of 8 as shown in the first embodiment (note configuration 3Sep).
그 결과들이 도 13의 테이블에 도시된다.The results are shown in the table of FIG.
따라서, 메모리가 감소된 이들 버전들은 사용되는 메모리의 절반 또는 그 미만으로 8개의 변환들(mSep)을 갖는 버전에 의해 획득된 결과들에 더 가까워질 수 있다는 것이 명백하다. 최신 기술의 변환들과 관련하여 압축 면에서 상당한 이점이 남아있다.It is therefore evident that these versions with reduced memory can be closer to the results obtained by the version with 8 transforms (mSep) in half or less of the memory used. There are significant advantages in terms of compression with regard to the latest technology transformations.
도 14와 관련하여, 우리는 이제 본 발명의 실시예에 따른 디코딩 방법의 스텝들을 고려한다. With reference to FIG. 14, we now consider the steps of a decoding method according to an embodiment of the present invention.
우리는, 비트 스트림(TB)이 본 발명에 따른 디코딩 방법을 구현하는 디코딩 디바이스에 의해 수신되었다고 가정한다. We assume that the bitstream (TB) has been received by a decoding device that implements the decoding method according to the present invention.
D0에서, 우리는 먼저 현재 블록(C')으로서 프로세싱될 첫 번째 블록을 선택한다. 예컨대, 이는 첫 번째 블록(사전식 순서로)이다. 이 블록은 MxN 픽셀들을 포함하며, 여기서 M 및 N은 비-제로 정수들이다. At D0, we first select the first block to be processed as the current block C '. For example, this is the first block (in lexicographic order). This block contains MxN pixels, where M and N are non-zero integers.
인코딩 프로세스에 대해 설명된 바와 같이, 고려되는 블록(C')은 블록 CTU 또는 블록 CTU를 컷팅함으로써 획득된 서브-블록 CU 또는 블록 또는 현재 블록으로부터 현재 블록으로의 예측을 감산함으로써 획득된 나머지-서브 블록일 수 있다. As discussed for the encoding process, the considered block C 'is the sub-block CU obtained by cutting the block CTU or block CTU, or the remainder-block CU obtained by subtracting the block or current block from the current block, Block.
스텝(D1)에서, 현재 블록(C')에 관한 코딩된 데이터가 판독되어 디코딩된다. D2에서, 현재 블록(C')에 관한 디코딩된 데이터는 역양자화된다. 우리는 역양자화된 계수들의 벡터 DQ[k]를 획득하며, k는 0 내지 MxN-1의 정수이다. In step D1, the coded data on the current block C 'is read and decoded. At D2, the decoded data for the current block C 'is dequantized. We obtain the vector DQ [k] of dequantized coefficients, where k is an integer from 0 to MxN-1.
스텝(D3) 동안, 벡터(DQ)의 계수들은 변환된 블록(X')에 배열된다. 이는 인코딩 방법들에 의해 구현된 코스(T3)의 인버스 오퍼레이션이다. During step D3, the coefficients of the vector DQ are arranged in the transformed block X '. This is the inverse operation of the course T3 implemented by the encoding methods.
D4에서, 역변환의 연속적인 서브-스텝들(D51, D54) 동안 현재 블록(X')에 적용될 변환들이 결정된다. 본 발명에 따라, 그들 중 하나는 적어도 2개의 별개의 선형 변환들을 구현한다. 이들 변환들은 본 발명에 따른 코딩 방법에 의해 사용된 것의 역인 것으로 이해될 것이다. At D4, the transforms to be applied to the current block X 'are determined during successive sub-steps D51 and D54 of the inverse transformation. According to the invention, one of them implements at least two distinct linear transformations. These transforms will be understood to be the reverse of those used by the coding method according to the present invention.
디코더에서, 컬럼 각각의 라인의 것과 동일한 사이즈의 벡터들에 적용될 역변환들은 다양한 방식들로 결정될 수 있으며, 그 중 다음이 예로서 언급될 수 있다 :In the decoder, the inverse transforms to be applied to the vectors of the same size as the respective lines of the columns may be determined in various manners, of which the following may be mentioned as examples:
- 식별 정보에서 적어도 하나의 제 1 변환 및 하나의 제 2 변환의 비트 스트림(TB)을 판독함으로써;- By reading a bit stream (TB) of at least one first transform and one second transform in the identification information;
- 로컬 또는 원격 메모리에서 인코더에 의해 사용되는 변환들의 식별 정보를 판독함으로써;- By reading the identification information of the transformations used by the encoder in local or remote memory;
유리하게는, 제 1 및 제 2 변환의 선정은 현재 블록의 인코딩 파라미터, 예컨대, 그의 사이즈 또는 그의 예측 모드와 연관될 수 있다. Advantageously, the selection of the first and second transforms may be associated with an encoding parameter of the current block, e.g., its size or its prediction mode.
본 발명의 일 실시예에 따라, 적용될 변환들은 메모리, 예컨대, 인코딩 파라미터와 연관된 데이터베이스(BD2)의 엔트리, 블록 또는 중간 블록의 제 1 벡터의 적어도 하나의 식별자에 대한 제 1 변환의 식별자, 상기 블록의 제 2 벡터의 적어도 하나의 식별자에 대한 (제 1 변환과 별개의) 적어도 하나의 제 2 변환의 식별자를 판독함으로써 획득된다. According to one embodiment of the present invention, the transforms to be applied include a memory, for example an entry of a database BD2 associated with an encoding parameter, an identifier of a first transform for at least one identifier of a first vector of a block or intermediate block, Is obtained by reading the identifier of at least one second transformation (separate from the first transformation) for at least one identifier of the second vector of the first vector of the second vector.
유리하게는, D4 동안, 우리는, 벡터들이 인코더에서, 현재 블록에서 어떻게 형성되었는지를 또한 결정했다. 예컨대, 벡터 식별자는 사이즈(MxN)의 블록에 형성된 알려진 타입의 벡터에 대응한다. Advantageously during D4, we also determined how vectors were formed in the current block in the encoder. For example, the vector identifier corresponds to a vector of known type formed in a block of size MxN.
디코더는, 인코더와 동일한 방식으로 벡터들을 어떻게 형성할지를 알 필요가 있다는 것이 이해될 것이다. 여러 타입들의 컬럼 또는 라인 벡터들이 형성될 수 있다. 적용될 다양한 변환들에 대해 우리가 설명한 것과 유사하게, 다음을 포함하는 여러 실시예들이 고려된다 :It will be appreciated that the decoder needs to know how to form the vectors in the same way as the encoder. Several types of column or line vectors may be formed. Similar to what we have described for the various transforms to be applied, several embodiments are contemplated including:
- 디코더는 로컬로 벡터를 형성하기 위한, 인코더와 동일한 규칙들을 갖는다. 예컨대, 이들 규칙들은 메모리에 저장된다;- Decoders have the same rules as encoders for locally forming vectors. For example, these rules are stored in memory;
- 유리하게는, 디코더는, 현재 블록에서 사이즈(H)의 W 벡터 및 사이즈(W)의 H 벡터의 형성을 가능하게 하는 표시들인, 인코딩 파라미터와 연관된 엔트리들을 포함하는 데이터베이스에 저장된 정보에 액세스한다. 이 데이터베이스는 인코더 및 디코더의 레벨에서 복제된다. - Advantageously, the decoder accesses information stored in a database that includes entries associated with the encoding parameters, which are indications that allow the formation of a W vector of size (H) and an H vector of size (W) in the current block. This database is replicated at the level of the encoder and decoder.
- 디코더는 인코더에 의해 형성된 벡터의 타입을 대표하는 정보를 비트 스트림으로부터 추출한다. 이러한 변동은 형성되는 벡터의 타입이 인코더의 레벨에서 구현되는 현재 블록의 콘텐츠의 사전-분석에 기반하여 동적으로 선정될 때 특히 유리하다. - The decoder extracts information representative of the type of vector formed by the encoder from the bitstream. This variation is particularly advantageous when the type of vector being formed is dynamically selected based on pre-analysis of the contents of the current block implemented at the level of the encoder.
이 스텝의 완료 시에, 우리는 이에 따라, 선형 변환 식별자와 연관된 벡터들의 수, 인덱스들 및 타입들을 알게 된다. At the completion of this step, we then know the number, indices and types of vectors associated with the linear transform identifier.
하기의 설명에서, 인코딩 동안, 제 1 서브-스텝은 라인의 것과 동일한 사이즈의 벡터들의 적어도 2개의 변환들을 구현하고, 제 2 서브-스텝은 컬럼의 것과 동일한 사이즈의 벡터들 상에서 하나 또는 여러개의 변환들을 구현한다고 가정한다. In the following description, during encoding, the first sub-step implements at least two transforms of vectors of the same size as the line, and the second sub-step implements one or more transforms .
디코딩 시에, 인버스 오퍼레이션들은 인코딩 동안 수행된 것의 역순서로 수행될 것이다. 이 예시적인 실시예에서, 역변환의 제 1 서브-스텝(D51)은 이에 따라 컬럼의 것과 동일한 사이즈의 벡터들에 적용된다. Upon decoding, the inverse operations will be performed in reverse order to that performed during encoding. In this exemplary embodiment, the first sub-step D51 of the inverse transformation is applied to vectors of the same size as that of the column accordingly.
스텝(D50) 동안, 블록(X')의 하나의 컬럼의 것과 동일한 길이의 계수들을 갖는 벡터들이 블록(X')에 형성된다. 이는, 인코딩 방법에 의해 구현된 블록(X)에서의 변환된 벡터들의 계수들의 배열 오퍼레이션(T25)의 인버스 오퍼레이션이다. During step D50, vectors having coefficients of the same length as those of one column of block X 'are formed in block X'. This is the inverse operation of the array operation (T25) of the coefficients of the transformed vectors in block X implemented by the encoding method.
예컨대, 인코더 측 상에서, 스텝(T24)의 선형 변환(C0, C1 또는 Cj)에 의해 변환된 컬럼 벡터(Vcj)의 계수들은 단순히 블록(X)의 컬럼(j)에 포지셔닝되어 있다. 디코딩 방법의 스텝(D50)에서, 반대로, 컬럼의 것과 동일한 길이의 벡터(V'cj)는 블록(X')의 컬럼(j)의 계수들로부터 형성된다. 따라서, 이 예에서, X'의 컬럼은 코딩 방법에 의해 연관된 벡터(vcj)에 적용된 선형 변환으로부터의 계수들을 포함한다는 것이 이해된다. 이 간단한 경우에서, 스텝(D50)은 이후, 블록(X')의 컬럼들로부터 "컬럼" 벡터들(V'cj)을 형성하는 것으로 단순히 구성된다. For example, on the encoder side, the coefficients of the column vector Vcj transformed by the linear transformation C0, C1 or Cj of step T24 are simply positioned in the column j of the block X. In step D50 of the decoding method, conversely, a vector V'cj of the same length as the column is formed from the coefficients of column j of block X '. Thus, in this example, it is understood that the column of X 'includes coefficients from a linear transformation applied to the associated vector (vcj) by the coding method. In this simple case, step D50 is then simply configured to form the "column" vectors V'cj from the columns of block X '.
유리하게는, 스텝(D50)은 결정 스텝(D4) 동안 획득된 이러한 재배열에 관한 정보에 기반한다. 예컨대, 선형 변환(C0-1)의 엔트리에서의 컬럼(cj0) 및 선형 변환(C1-1)의 엔트리에서의 컬럼(cj1)을 연관시키는 것인 재배열은 미리결정된 재배열의 타입을 대표하는 정보에 의해 표시되거나 벡터 식별자들을 각각의 선형 변환과 연관시킨다. Advantageously, step D50 is based on information about this rearrangement obtained during decision step D4. For example, the reordering, which relates column cj0 in the entry of the linear transformation (C0- 1 ) and column (cj1) in the entry of the linear transformation (Cl- 1 ) Or associates vector identifiers with respective linear transforms.
이러한 벡터 식별자들은 유리하게는, 하나의 타입의 벡터 및 벡터 인덱스를 포함한다. 예컨대, 고려되는 벡터의 타입은 컬럼 타입이며 형성될 벡터는 번호(j)인데, 즉 블록의 컬럼(j)에 대응하는 것이다. These vector identifiers advantageously include one type of vector and a vector index. For example, the type of vector considered is the column type and the vector to be formed is number (j), which corresponds to column (j) of the block.
D51에서, 선형 역변환들(C0-1, C1-1)은, D50에서 형성된 벡터들(V'cj0, V'cj1), 예컨대, 이들이 직교하거나 고속 알고리즘을 사용하는 경우 치환 형성된 컬럼들(cj0, cj)에 적용된다. In D51, linear inverse transform (-1 C0, C1 -1) is the vector formed from D50 (V'cj0, V'cj1), for example, when they are perpendicular or use the fast algorithm of the formed substitution column (cj0, cj).
벡터들(v'cj0, v'cj1)이 획득된다. Vectors v'cj0, v'cj1 are obtained.
스텝(D52) 동안, 프로세싱된 벡터들(v'cj0, v'cj1)의 계수들은 중간 블록(X'l)을 형성하도록 포지셔닝된다. 이를 위해, 우리는 대향하는 오퍼레이션으로 진행하기 이전에, 인코더 측 상의 벡터들의 형성에 상대적인 그리고 스텝(D4)에서 결정된 벡터들의 식별 정보를 이용한다. During step D52, the coefficients of the processed vectors v'cj0, v'cj1 are positioned to form the intermediate block X'1. To this end, we use identification information of the vectors relative to the formation of the vectors on the encoder side and determined in step D4, before proceeding to the opposed operation.
예컨대, 벡터들이 컬럼 벡터들인 경우, 식별 정보는 컬럼 인덱스를 포함하고 벡터들의 엘리먼트들은 대응하는 컬럼에 배치된다. For example, if the vectors are column vectors, the identification information includes a column index and the elements of the vectors are arranged in corresponding columns.
벡터들이 선형이 아닌 경우, 비선형 벡터의 타입을 식별하는 식별 정보가 디코더에 알려지며, 이 디코더는 블록(MxN)에 엘리먼트들을 포지셔닝할 수 있다. 예컨대, 인코더 측 상에서 블록(X'l)에 형성된 벡터(vcj)가 벡터(vc0)에 대응하는 인덱스를 갖는, 도 7e와 관련하여 설명된 것들의 타입으로 이루어졌음을, 결정된 것을 식별하는 정보가 표시하는 경우, 계수들은 X'1, X'0, X'4, X'8에 배치될 것이다. If the vectors are not linear, identification information identifying the type of nonlinear vector is known to the decoder, which can position the elements in block MxN. For example, the information identifying that the vector vcj formed on block Xl on the encoder side is of the type described with respect to Figure 7e, with an index corresponding to vector vc0, If indicated, the coefficients will be placed at X'1, X'0, X'4, X'8.
역변환(D54)의 제 2 서브-스텝을 거치기 전에, 결과적인 중간 블록(X'l)이 그 후 형성 스텝(D53)에서 구현되며, 이 형성 스텝은, 스텝(D50)과 유사하지만, D4에 의해 획득된 재배열 정보로부터 블록(X'l)에서 벡터(V'li)를 형성하고, 이를, D4에서 또한 결정된 선형 변환들(LO-1 및 L1-1) 중 하나에 연관시킨다. The resulting intermediate block X'1 is implemented in the subsequent forming step D53 and the forming step is similar to the step D50 before passing through the second sub-step of the inverse transformation D54, forming a vector (V'li) in the block (X'l) from the obtained information by rearranging, and associates this end, in one of the linear transformation also determined at D4 (-1 LO and L1 -1).
D54에서, 역변환들은 이들이 직교이거나 고속 알고리즘을 사용하는 경우, 치환된 형태로 적용되고, 라인의 것과 동일한 사이즈의 벡터들(V'li0, V'li1)을 생성한다. 본 발명에 따른 디코더에 의해 구현되는 오퍼레이션들은 최신 기술에 의해 사용된 것들과 유사하며: 따라서, 복잡성은 변환들을 수행하기 위해 변경되지 않는다. In D54, the inverse transforms are applied in a permuted form, if they are orthogonal or using fast algorithms, to produce vectors (V'li0, V'li1) of the same size as the line. Operations implemented by the decoder according to the present invention are similar to those used by the state of the art: therefore, complexity is not changed to perform transformations.
D55에서, 획득된 벡터들은 픽셀들의 블록(x')을 형성하도록 포지셔닝된다. 이는 본 발명에 따른 코딩 방법에서 구현되는 T20 벡터들을 형성하는 것의 인버스 오퍼레이션이다. At D55, the obtained vectors are positioned to form a block (x ') of pixels. This is the inverse operation of forming T20 vectors implemented in the coding method according to the present invention.
D6에서, 획득된 블록(x')으로부터 디코딩된 이미지의 픽셀들 블록은 재구성되고 이 블록은 디코딩되는 ID 픽처(picture)로 적분된다. 블록(x')이 나머지 블록이면, 미리 프로세싱된 레퍼런스 이미지로부터 획득된 현재 블록의 예측은 상기 블록에 부가될 것이다.At D6, a block of pixels of the decoded image from the obtained block (x ') is reconstructed and the block is integrated with the ID picture to be decoded. If block (x ') is the remaining block, a prediction of the current block obtained from the pre-processed reference image will be added to the block.
단계(D7) 동안, 미리 정의된 라우트 순서가 제공되면, 현재 블록이 디코딩 유닛에 의해 프로세싱될 마지막 블록인지를 테스트한다. 만약 그렇다면, 디코딩 프로세스는 자신의 프로세싱을 완료한다. 만약 그렇지 않다면, 다음 단계는 다음 블록(D0)을 선택하는 단계이고 선택된 다음 블록에 대해 위에서 설명된 디코딩 단계들(D1 내지 D7)이 반복된다.During step D7, if a predefined route order is provided, it is tested whether the current block is the last block to be processed by the decoding unit. If so, the decoding process completes its processing. If not, the next step is to select the next block D0 and the decoding steps D1 to D7 described above for the next selected block are repeated.
방금 설명된 본 발명이 소프트웨어 및/또는 하드웨어 컴포넌트들을 사용하여 구현될 수 있다는 것이 주목될 것이다. 이런 맥락에서, 본 문헌에 사용된 용어들 "모듈" 및 "엔티티"는 관련된 모듈 또는 엔티티에 대해 설명된 기능들을 구현할 수 있는, 소프트웨어 컴포넌트 또는 하드웨어 컴포넌트 또는 심지어 하드웨어 및/또는 소프트웨어의 세트일 수 있다.It will be noted that the invention just described can be implemented using software and / or hardware components. In this context, the terms "module" and "entity " used in this document may be a software component or a hardware component or even a set of hardware and / or software capable of implementing the described functions for the associated module or entity .
도 15에 관련하여, 본 발명에 따른 디지털 이미지의 인코딩 디바이스(100)의 간략화된 구조의 예가 이제 제시된다. 디바이스(100)는 도 6과 관련하여 막 설명된 본 발명에 따른 인코딩 방법을 구현한다.Referring now to Fig. 15, an example of a simplified structure of a digital
예컨대, 디바이스(100)는 프로세서(μ1)가 장착되고, 그리고 메모리(130)에 저장되고 본 발명에 따른 방법을 구현하는 컴퓨터 프로그램(Pg1)(120)에 의해 구동되는 프로세싱 유닛(110)을 포함한다.For example, the processing unit 110 that is driven by the
초기화 시, 컴퓨터 프로그램 코드 명령들(Pg1)(120)은 예컨대, 프로세싱 유닛(110)의 프로세서에 의해 실행되기 전에 RAM에 로딩된다. 프로세싱 유닛(110)의 프로세서는 컴퓨터 프로그램(120)의 명령들에 따라, 위에서 설명된 방법 단계들을 구현한다.At initialization, computer program code instructions (Pg 1 ) 120 are loaded into RAM, for example, before being executed by the processor of the processing unit 110. The processor of the processing unit 110 implements the above-described method steps in accordance with the instructions of the
본 발명의 이 실시예에서, 디바이스(100)는 현재 블록을 중간 블록으로 변환하기 위한 제 1 서브-유닛(TR1) 및 중간 블록을 변환 블록으로 변환하기 위한 제 2 서브-유닛(TR2)을 포함하는, 현재 블록을 변환된 블록(X)으로 변환하기 위한 적어도 하나의 유닛(TRANS), 변환된 블록을 양자화하기 위한 유닛(QUANT), 양자화된 블록을 코딩하기 위한 유닛(COD) 및 인코딩된 데이터를 비트 스트림(TB)에 삽입하기 위한 유닛(INSERT)을 포함한다.In this embodiment of the invention, the
본 발명에 따라, 변환은, 상기 변환 서브-유닛들 중 적어도 하나 및 블록 내에 획득된 계수들을 배열하기 위한 서브-유닛(ARR) 이전에 구현되도록 적응되는, 현재 블록과 중간 블록 중 상기 블록들 중 하나의 엘리먼트들(픽셀들, 각각 계수들)로부터 적어도 2개의 벡터들을 형성하기 위한 적어도 하나의 서브-유닛(FORM)을 포함한다. 디바이스는 또한, 적어도 현재 블록의 코딩 파라미터에 기반하여 상기 벡터들에 적용될 적어도 2개의 별개의 변환들을 결정하기 위한 유닛(DET)을 포함한다.In accordance with the present invention, the transform is a transform between at least one of the transforming sub-units and a sub-unit (ARR) for arranging the coefficients obtained in the block, And at least one sub-unit FORM for forming at least two vectors from one element (pixels, coefficients each). The device also includes a unit (DET) for determining at least two distinct transforms to be applied to the vectors based on at least the coding parameters of the current block.
유리하게, 디바이스(100)는 인코딩 파라미터와, 블록 또는 중간 블록의 벡터의 적어도 하나의 식별자를 가지는 제 1 변환의 식별자, 상기 블록의 제 2 벡터의 적어도 하나의 식별자를 가지는 제 1 변환과 별개의 적어도 하나의 제 2 변환의 식별자를 연관시키는 엔트리들을 포함하는 테이블을 저장하기 위한 메모리, 예컨대 유닛(BD1)을 더 포함한다.Advantageously, the
이들 유닛들은 프로세싱 유닛(110)의 프로세서(μ1)에 의해 제어된다.
These units are controlled by the
유리하게, 그런 디바이스(100)는 사용자 단말(TU)에 통합될 수 있다. 그 다음으로, 디바이스(100)는 적어도 단말(TU)의 다음 모듈과 협력하도록 배열된다:Advantageously, such a
- 비트 스트림(TB) 또는 압축된 파일(FC)이 원격통신 네트워크를 통하여 디코딩 디바이스에 송신되는 데이터를 전송 및 수신하기 위한 E/R 모듈; - An E / R module for transmitting and receiving data to be transmitted to the decoding device via a telecommunication network with a bit stream (TB) or a compressed file (FC);
예컨대, 디코딩 디바이스(200)는 프로세서(μ2)가 장착되고, 그리고 메모리(230)에 저장되고 도 14에 관련하여 막 설명된 본 발명에 따른 디코딩 방법을 구현하는 컴퓨터 프로그램(Pg2)(220)에 의해 구동되는 프로세싱 유닛(210)을 포함한다.For example, the
초기화 시, 컴퓨터 프로그램 코드 명령들(Pg2)(220)은 예컨대, 프로세싱 유닛(210)의 프로세서에 의해 실행되기 전에 RAM에 로딩된다. 프로세싱 유닛(210)의 프로세서는 컴퓨터 프로그램(220)의 명령들에 따라, 위에서 설명된 방법 단계들을 구현한다.At initialization, the computer program code instructions (Pg2) 220 are loaded into the RAM, for example, before being executed by the processor of the processing unit 210. [ The processor of the processing unit 210 implements the above-described method steps in accordance with the instructions of the
본 발명의 이 실시예에서, 디바이스(200)는 비트 스트림에서 판독된 데이터로부터 변환된 현재 블록의 계수들을 디코딩하기 위한 적어도 하나의 유닛(DEC), 디코딩된 계수들을 역양자화(dequantize)하기 위한 유닛(DEQUANT), 2개의 연속적인 역변환 서브-유닛들을 구현하도록 적응된, 변환된 현재 블록을 역변환하기 위한 유닛(TRAN-1)을 포함하고, 제 1 서브유닛(TR1-1)은 현재 변환된 블록에 적용되고, 제 2 서브유닛(TR2-1)은 제 1 서브-유닛으로부터 발생하는 중간 블록에 적용된다. 본 발명에 따라, 서브-유닛들(TR1-1, TR2-1) 중 적어도 하나는 변환된 현재 블록과 중간 블록 중에서 소위 프로세싱될 블록에 대해, 서로 별개인 적어도 제 1 및 제 2 선형 변환을 구현한다.In this embodiment of the invention, the
본 발명에 따라, 역변환 유닛은 프로세싱된 블록의 제 1 및 제 2 변환들에 의해 프로세싱되는 벡터들의 계수들을 재배열하도록 적응된 서브-유닛(FORM-1)을 더 포함한다.According to the present invention, the inverse transform unit further comprises a sub-unit (FORM- 1 ) adapted to rearrange coefficients of the vectors processed by the first and second transformations of the processed block.
유리하게, 디바이스는 또한 프로세싱될 블록의 계수들로부터 적어도 2개의 벡터들을 형성하기 위한 유닛(ARR-1) ― 상기 벡터들은 제 1 및 제 2 선형 변환들이 적용될 현재 블록의 사이즈들 중 하나와 동일한 길이를 가짐 ― 및 적어도 현재 블록의 코딩 파라미터에 기반하여 상기 벡터들에 적용될 적어도 2개의 별개의 선형 변환들을 결정하기 위한 유닛(DET)을 포함한다.Advantageously, the device further comprises a unit (ARR-1) for forming at least two vectors from the coefficients of the block to be processed, said vectors having a length equal to one of the sizes of the current block to which the first and second linear transformations are to be applied And a unit (DET) for determining at least two distinct linear transformations to be applied to the vectors based on at least the coding parameters of the current block.
이들 유닛들은 프로세싱 유닛(210)의 프로세서(μ2)에 의해 제어된다.These units are controlled by the
유리하게, 그런 디바이스(200)는 사용자 단말(TU)에 통합될 수 있다. 그 다음으로, 디바이스(200)는 적어도 단말(TU)의 다음 모듈과 협력하도록 배열된다:Advantageously, such a
- 비트 스트림(TB) 또는 압축된 파일(FC)이 원격통신 네트워크로부터 수신되는 데이터를 전송 및 수신하기 위한 모듈(E/R); - A module (E / R) for transmitting and receiving data received from the telecommunication network by a bit stream (TB) or a compressed file (FC);
- 디코딩된 디지털 이미지 또는 일련의 디코딩된 이미지들을 사용자에게 제시하는 이미지들을 생성하기 위한 디바이스(DISP), 예컨대 단말 모니터.- A device (DISP), e.g., a terminal monitor, for generating images that present a decoded digital image or a series of decoded images to a user.
유리하게, 사용자 단말(TU)은 본 발명에 따른 인코딩 디바이스 및 디코딩 디바이스 둘 모두를 포함할 수 있다.Advantageously, the user terminal (TU) may comprise both an encoding device and a decoding device according to the invention.
위에서 설명된 실시예들이 순수하게 예시적이고 비-제한적인 예로써 주어지고, 많은 수정들이 본 발명의 범위에서 벗어남이 없이 당업자들에 의해 쉽게 이루어질 수 있다는 것은 말할 필요도 없다.It is needless to say that the embodiments described above are given as purely illustrative and non-limiting examples, and that many modifications can be readily made by those skilled in the art without departing from the scope of the present invention.
Claims (17)
상기 이미지는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
상기 방법은 미리결정된 사이즈들의 현재 블록에 대해 구현되는 단계들을 포함하며,
상기 단계들은,
- 상기 현재 블록을 변환된 블록으로 변환하는 단계(T2) ― 상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하며, 제 1 서브-스텝(T21)은 상기 현재 블록에 그리고 제 2 서브-스텝(T24)은 상기 제 1 서브-스텝으로부터 발생하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및
- 상기 변환된 블록의 계수들을 양자화(T4) 및 인코딩(T5)하는 단계를 포함하고,
- 상기 변환하는 단계는 상기 변환 서브-스텝들 ― 상기 서브-스텝은 상기 현재 블록과 상기 중간 블록 중 소위 변환될 블록인 블록에 적용됨 ― 중 적어도 하나의 변환 서브-스텝에 앞서, 상기 변환될 블록에서 적어도 제 1 및 제 2 별개의 벡터들을 형성하기 위한 예비 서브-스텝(T20, T23)을 더 포함하며, 상기 벡터는 상기 픽셀들 또는 픽셀들의 시퀀스의 계수들 또는 상기 변환될 블록의 사이즈들 중 하나와 동일한 길이인, 상기 변환될 블록의 인접 계수들을 포함하고; 그리고
- 상기 적어도 하나의 변환 서브-스텝은 상기 적어도 하나의 제 1 벡터에 제 1 변환(L0, C0)을 그리고 상기 블록의 상기 적어도 하나의 제 2 벡터에 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환(L1, C1)을 적용하는 단계를 포함하는,
디지털 이미지를 인코딩하기 위한 방법.CLAIMS 1. A method for encoding a digital image,
The image is divided into a plurality of blocks of pixels processed in a predetermined order,
The method includes steps that are implemented for a current block of predetermined sizes,
The steps,
- transforming the current block into a transformed block (T2), the block comprising coefficients, the step implementing two consecutive transforming sub-steps, wherein the first sub-step (T21) Block and a second sub-step (T24) is applied to an intermediate block resulting from the first sub-step, the intermediate block comprising coefficients, and
- quantizing (T4) and encoding (T5) the coefficients of the transformed block,
Wherein the transforming step is performed prior to at least one transforming sub-step among the transforming sub-steps, wherein the sub-step is applied to a block that is a so-called transformed block among the current block and the intermediate block, Further comprising spare sub-steps (T20, T23) for forming at least first and second discrete vectors in said vector, said vector being a coefficient of a sequence of pixels or of a pixel, The adjacent coefficients of the block to be transformed, which are the same length as one; And
- said at least one transform sub-step comprises applying a first transform (L0, C0) to said at least one first vector and applying to said at least one second vector of said block at least one 2 transforms (L1, C1).
A method for encoding a digital image.
적어도 상기 현재 블록의 코딩 파라미터에 기반하여, 상기 벡터들에 적용될 적어도 2개의 별개의 변환들을 결정하기 위한 예비 단계(T1)를 더 포함하는,
디지털 이미지를 인코딩하기 위한 방법.The method according to claim 1,
Further comprising a preliminary step (T1) for determining, based at least on the coding parameters of the current block, at least two distinct transforms to be applied to the vectors,
A method for encoding a digital image.
결정하는 단계(T2)는 메모리에 저장된 정보를 판독하는 단계를 포함하고,
상기 정보는 적어도 상기 코딩 파라미터, 상기 제 1 변환의 식별자, 상기 블록 또는 상기 중간 블록의 제 1 벡터의 적어도 하나의 식별자, 상기 블록의 제 1 및 적어도 하나의 제 2 벡터 식별자와 별개인, 적어도 하나의 제 2 변환의 식별자를 포함하는,
디지털 이미지를 인코딩하기 위한 방법.3. The method according to claim 1 or 2,
The determining step (T2) comprises reading the information stored in the memory,
Wherein the information comprises at least one of a coding parameter, an identifier of the first transform, at least one identifier of the first vector of the block or the intermediate block, at least one identifier different from the first and at least one second vector identifier of the block, Lt; RTI ID = 0.0 > a < / RTI >
A method for encoding a digital image.
상기 변환하는 단계는 상기 중간 블록(XI), 개별적으로는 상기 변환된 블록(X)에서 변환된 벡터들의 계수들을 재배열하는 서브-스텝(T22, T25)을 포함하는,
디지털 이미지를 인코딩하기 위한 방법.4. The method according to any one of claims 1 to 3,
Wherein the transforming comprises sub-steps (T22, T25) for rearranging the coefficients of the transformed vectors in the intermediate block (XI), individually the transformed block (X)
A method for encoding a digital image.
- 복수의 미리결정된 모드들 중에서 선택된 예측 모드에 따라 이전에 프로세싱된 적어도 하나의 블록으로부터 상기 현재 블록의 값들을 예측하는 단계,
- 예측된 값들을 상기 현재 블록의 원래 값들로부터 차감함으로써 잔여 블록을 계산하는 단계를 포함하며,
상기 변환하는 단계(T2)는 잔여 현재 블록에 적용되고, 상기 적어도 하나의 코딩 파라미터는 상기 현재 블록의 예측 모드인,
디지털 이미지를 인코딩하기 위한 방법.5. The method according to any one of claims 1 to 4,
- predicting values of the current block from at least one block previously processed according to a prediction mode selected from among a plurality of predetermined modes,
Calculating residual blocks by subtracting the predicted values from the original values of the current block,
Wherein the transforming step (T2) is applied to a residual current block, and the at least one coding parameter is a prediction mode of the current block,
A method for encoding a digital image.
상기 적어도 하나의 제 1 변환 및 상기 적어도 하나의 제 2 변환의 식별 정보 코딩 단계를 포함하는,
디지털 이미지를 인코딩하기 위한 방법.6. The method according to any one of claims 1 to 5,
The identification information coding step of the at least one first transformation and the at least one second transformation,
A method for encoding a digital image.
상기 제 1 변환은 라인의 사이즈와 동일한, 개별적으로는 상기 블록의 컬럼의 사이즈와 동일한 사이즈의 벡터들의 제 1 서브-세트에 적용되고, 상기 적어도 하나의 제 2 변환은 상기 블록의 라인의 사이즈와 동일한, 개별적으로는 상기 블록의 컬럼의 사이즈와 동일한 사이즈의 벡터들의 제 2 서브-세트에 적용되는,
디지털 이미지를 인코딩하기 위한 방법.7. The method according to any one of claims 1 to 6,
Wherein the first transformation is applied to a first sub-set of vectors equal in size to the line, and individually of a size equal to the size of the column of the block, and wherein the at least one second transformation comprises: The same applies to a second sub-set of vectors of the same size, individually the same size as the column of the block,
A method for encoding a digital image.
상기 적어도 하나의 변환 서브-스텝은 상기 블록의 라인의 사이즈와 동일한, 개별적으로는 상기 블록으로 형성된 컬럼의 사이즈와 동일한 사이즈의 벡터마다 별개의 변환을 구현하는,
디지털 이미지를 인코딩하기 위한 방법.7. The method according to any one of claims 1 to 6,
Wherein the at least one transform sub-step implements separate transforms for each vector of the same size as the size of the line of the block,
A method for encoding a digital image.
상기 이미지(lk)는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
상기 디바이스는 미리결정된 사이즈들의 현재 블록(x)에 대해 구현될 수 있는 유닛들을 포함하며,
상기 유닛들은,
- 상기 현재 블록을 변환된 블록으로 변환하는 유닛(TRANS) ― 상기 블록은 계수들을 포함하고, 상기 유닛은 2개의 연속적인 변환 서브- 유닛을 구현하며, 제 1 서브- 유닛(TR1)은 상기 현재 블록에 그리고 제 2 서브- 유닛(TR2)은 상기 제 1 서브- 유닛으로부터 발생하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및
- 상기 변환된 블록의 계수들을 양자화(QUANT) 및 인코딩(COD)하는 유닛을 포함하고,
- 상기 변환하는 유닛은 상기 현재 블록 및 상기 중간 블록으로부터 소위 변환될 블록인 블록에서 적어도 제 1 및 제 2 별개의 벡터들을 형성하기 위한 서브-유닛(FORM)을 더 포함하며, 상기 벡터는 픽셀들, 개별적으로는 인접 픽셀들의 시퀀스의 계수들, 개별적으로는 상기 변환될 블록의 사이즈들 중 하나와 동일한 길이의 변환 블록의 인접 계수들을 포함하고, 상기 서브-유닛은 상기 변환 서브-유닛들(TR1, TR2) 중 적어도 하나에 앞서 구현될 수 있고; 그리고
- 상기 적어도 하나의 변환 서브-유닛은 상기 적어도 하나의 제 1 벡터에 제 1 변환을 그리고 상기 블록의 상기 적어도 하나의 제 2 벡터에 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환을 적용하는 것을 포함하는,
디지털 이미지를 인코딩하기 위한 디바이스(100).A device (100) for encoding a digital image,
The image lk is divided into a plurality of blocks of pixels processed in a predetermined order,
The device includes units that can be implemented for a current block (x) of predetermined sizes,
The units,
A unit (TRANS) for converting the current block into a transformed block, the block comprising coefficients, the unit implementing two successive transform sub-units, the first sub-unit (TR1) Unit and a second sub-unit TR2 is applied to an intermediate block originating from said first sub-unit, said intermediate block comprising coefficients, and
- a unit for quantizing (QUANT) and encoding (COD) the coefficients of the transformed block,
- said converting unit further comprises a sub-unit (FORM) for forming at least first and second separate vectors in said current block and said block being a so-called block to be transformed from said intermediate block, , The coefficients of the sequence of adjacent pixels individually, and the adjacent coefficients of the transform block, of the same length as one of the sizes of the blocks to be transformed individually, and said sub-units (TR1 , TR2); < / RTI > And
The at least one transform sub-unit applies a first transform to the at least one first vector and at least one second transform separate from the first transform to the at least one second vector of the block Including,
A device (100) for encoding a digital image.
상기 이미지(lk)는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
상기 방법은 소위 변환된 블록(X')인 블록에 대해 구현되는 단계들을 포함하며,
상기 단계들은,
- 상기 비트 스트림에서 판독된 데이터로부터, 현재 변환된 블록의 계수들을 디코딩하는 단계(D1);
- 디코딩된 계수들을 역양자화하는 단계(D2);
- 상기 현재 변환된 블록을 역변환하는 단계(D5) ― 상기 단계는 2개의 연속적인 역변환 서브-스텝들을 구현하며, 제 1 서브-스텝(D51)은 상기 현재 블록에 그리고 제 2 서브-스텝(D54)은 상기 제 1 서브-스텝으로부터 발생하는 중간 블록에 적용됨 ― 를 포함하고,
- 상기 적어도 하나의 역변환 서브-스텝은 상기 현재 변환된 블록(X') 및 상기 중간 블록(X'l)으로부터의 소위 프로세싱될 블록인 블록에 적용되며, 상기 역변환하는 단계는, 상기 프로세싱될 블록의 하나의 라인 또는 하나의 컬럼의 길이와 동일한 길이의 적어도 하나의 제 1 벡터(V'cj0, V'li0)에 제 1 역변환(C0-1, L0-1)을 그리고 하나의 라인 또는 하나의 컬럼의 길이와 각각 동일한 길이의 상기 블록의 적어도 하나의 제 2 벡터(V'cj1, V'li1)에 상기 제 1 역변환과 별개인 적어도 하나의 제 2 역변환(C1-1, L1-1)을 적용하는 것을 포함하고; 그리고
- 상기 역변환하는 단계는 프로세싱된 벡터들(v'cj0, v'cj1, v'li0, v'li1)로부터 컬럼, 개별적으로는 라인의 길이와 동일한 길이들의 인접 픽셀들, 개별적으로는 인접 계수들의 시퀀스들을 포지셔닝함으로써, 프로세싱된 블록(X'1, x')을 형성하는 서브-스텝(D52, D55)를 더 포함하는,
디지털 이미지를 디코딩하기 위한 방법.CLAIMS 1. A method for decoding a digital image from a bit stream (TB) comprising encoded data representing a digital image,
The image lk is divided into a plurality of blocks of pixels processed in a predetermined order,
The method includes steps that are implemented for a block that is a so-called transformed block (X '),
The steps,
- decoding (D1) the coefficients of the current transformed block from the data read in the bitstream;
- dequantizing the decoded coefficients (D2);
(D5), which inversely transforms the current transformed block, wherein the step implements two consecutive inverse transform sub-steps, wherein a first sub-step (D51) is performed on the current block and a second sub-step ) Applied to the intermediate block resulting from the first sub-step,
- the at least one inverse transform sub-step is applied to a block which is a so-called to-be-processed block from the currently transformed block (X ') and the intermediate block (X'1) (C0 -1 , L0 -1 ) to at least one first vector (V'cj0, V'li0) of the same length as the length of one line of one column or one column At least one second inverse transform (C1 -1 , L1 -1 ) different from the first inverse transform is applied to at least one second vector (V'cj1, V'li1) of the block having a length equal to the length of the column, ≪ / RTI > And
- said inverse transforming step comprises the steps of: extracting from the processed vectors (v'cj0, v'cj1, v'li0, v'li1) a column, individually adjacent pixels of length equal to the length of the line, Further comprising sub-steps (D52, D55) for forming the processed block (X'1, x ') by positioning the sequences.
A method for decoding a digital image.
적어도 상기 현재 블록의 코딩 파라미터에 기반하여, 상기 벡터들에 적용될 적어도 2개의 별개의 변환들(C0-1, C1-1, L0-1, L1-1)을 결정하기 위한 예비 단계(D4)를 더 포함하는,
디지털 이미지를 디코딩하기 위한 방법.11. The method of claim 10,
At least on the basis of the coding parameter of the current block, at least two separate transformation applied to the vector pre-step for determining the (-1 C0, C1 -1, -1 L0, L1 -1) (D4) Further included,
A method for decoding a digital image.
상기 역변환하는 단계는 상기 적어도 하나의 변환 서브-스텝에 앞서, 상기 제 1 벡터 및 제 2 벡터(V'cj0, V'cj1, V'li0, V'li1)에서 프로세싱될 블록의 인접 계수들의 시퀀스들을 재정렬하는 서브-스텝(D50, D53)을 더 포함하며,
상기 시퀀스는 상기 프로세싱될 블록의 사이즈 중 하나와 동일한 길이를 갖는,
디지털 이미지를 디코딩하기 위한 방법.The method according to claim 10 or 11,
Wherein said inverse transforming step comprises prior to said at least one transforming sub-step, a sequence of adjacent coefficients of a block to be processed in said first vector and said second vector (V'cj0, V'cj1, V'li0, V'li1) Further comprising sub-steps (D50, D53)
The sequence having a length equal to one of the sizes of the blocks to be processed,
A method for decoding a digital image.
상기 이미지는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
상기 디바이스는 소위 현재 블록인 미리결정된 사이즈들의 블록에 대해 구현될 수 있는 유닛들을 포함하며,
상기 유닛들은,
- 상기 비트 스트림에서 판독된 데이터로부터, 현재 변환된 블록의 계수들을 디코딩하는 유닛(DECOD);
- 디코딩된 계수들을 역양자화하는 유닛(DEQUANT);
- 상기 현재 변환된 블록을 역변환하는 유닛(TRANS-1) ― 상기 유닛은 2개의 연속적인 역변환 서브-유닛들을 구현할 수 있으며, 제 1 서브-유닛은 상기 현재 블록에 그리고 제 2 서브-유닛은 상기 제 1 서브-유닛으로부터 발생하는 중간 블록에 적용됨 ― 을 포함하고,
- 상기 현재 변환된 블록 및 상기 중간 블록으로부터의 소위 프로세싱될 블록인 블록(X', Xl)의 상기 적어도 하나의 역변환 서브-유닛은, 상기 프로세싱될 블록의 컬럼의, 개별적으로는 라인의 길이와 동일한 길이의, 상기 프로세싱될 블록의 계수들의 적어도 하나의 제 1 벡터(V'cj0, V'li0)에 제 1 역변환(C0-1, L0-1)을 그리고 상기 프로세싱될 블록의 컬럼의, 개별적으로는 라인의 길이와 동일한 길이의 픽셀들, 개별적으로는 상기 프로세싱될 블록의 계수들의 적어도 하나의 제 2 벡터(V'cj1, V'li1)에 상기 제 1 역변환과 별개인 적어도 하나의 제 2 역변환(C1-1, L1-1)을 적용하는 것을 포함하고; 그리고
- 상기 역변환 유닛(D5)은 프로세싱된 벡터들(v'cj0, v'cj1, v'li0, v'li1)로부터 컬럼, 개별적으로는 라인의 길이와 동일한 길이들의 각각의 인접 픽셀들, 개별적으로는 인접 계수들의 시퀀스들을 포지셔닝함으로써, 프로세싱된 블록(X'1, x')을 형성하는 서브-유닛(D52, D55)을 더 포함하는,
디지털 이미지를 디코딩하기 위한 디바이스(200).A device (200) for decoding said digital image from a bit stream (TB) comprising encoded data representing a digital image,
The image is divided into a plurality of blocks of pixels processed in a predetermined order,
The device includes units that can be implemented for blocks of predetermined sizes which are so-called current blocks,
The units,
A unit (DECOD) for decoding the coefficients of the current transformed block from the data read in the bitstream;
A unit (DEQUANT) for dequantizing the decoded coefficients;
- a unit for inversely transforming the currently transformed block (TRANS -1 ) - the unit may implement two consecutive inverse transform sub-units, the first sub-unit for the current block and the second sub- Applied to an intermediate block originating from the first sub-unit,
- the at least one inverse transform sub-unit of blocks (X ', Xl) being the so-called to-be-processed block from the currently transformed block and the intermediate block, respectively, of the columns of the block to be processed, (C0 -1 , L0 -1 ) to at least one first vector (V'cj0, V'li0) of the coefficients of the block to be processed of the same length, and a first inverse (V'cj1, V'li1) of at least one of the coefficients of the block to be processed, the length of which is equal to the length of the line, and at least one second Applying an inverse transform (C1- l , L1- l ); And
- said inverse transform unit D5 comprises a column from the processed vectors (v'cj0, v'cj1, v'li0, v'li1), each adjacent pixel of length equal to the length of the line individually, Further comprising a sub-unit (D52, D55) forming a processed block (X'1, x ') by positioning the sequences of contiguous coefficients.
A device (200) for decoding a digital image.
상기 이미지는 픽셀들의 블록들로 분할되고, 현재 블록에 대해,
- 상기 현재 블록을 변환된 블록으로 변환하는 단계(T2) 동안 상기 현재 블록의 코딩 동안 구현되는, 서로 별개인 적어도 하나의 제 1 변환 및 적어도 하나의 제 2 변환의 식별 정보를 나타내는 코딩된 데이터 ― 상기 단계(T2)는 상기 현재 블록을 변환된 블록으로 변환하기 위한 2개의 연속적인 서브-스텝들(T21, T24)을 구현하며, 적어도 하나의 변환 서브-스텝은 적어도 하나의 제 1 벡터(vlh0, vcw0)에 제 1 변환(L0, C0)을 그리고 상기 현재 블록 및 상기 중간 블록(x, Xl) 중에서 소위 변환될 블록인 블록의 적어도 하나의 제 2 벡터(vlh1, vcw1)에 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환(L1, C1)을 적용하는 것을 포함함 ―, 및
- 상기 변환될 블록으로 형성된 적어도 상기 제 1 벡터 및 상기 제 2 벡터를 나타내는 코딩된 데이터를 포함하며, 상기 벡터는 상기 변환될 블록의 사이즈들 중 하나와 동일한 길이를 갖는, 상기 변환될 블록의 인접 계수들, 개별적으로는 인접 픽셀들의 시퀀스를 포함하는,
신호.As a signal carrying a bit stream (TB) comprising coded data of a digital image,
The image is divided into blocks of pixels, and for the current block,
- coded data representing at least one first transformation and at least one second transformation identification that are distinct during coding of the current block during the step of transforming the current block into a transformed block (T2) Wherein the step (T2) implements two consecutive sub-steps (T21, T24) for transforming the current block into a transformed block, the at least one transforming sub-step comprising at least one first vector (vlh1, vcw1) of a block that is a so-called block to be transformed among the current block and the intermediate block (x, Xl) to the first vector (vlh1, vcwl) And applying at least one second transformation (L1, C1) that is distinct from the first transformation
- coded data representing at least the first vector and the second vector formed of the block to be transformed, the vector having a length equal to one of the sizes of the block to be transformed, The coefficients, individually including a sequence of adjacent pixels,
signal.
제 9 항에 따른 디지털 이미지를 인코딩하기 위한 디바이스(100) 및 제 13 항에 따른 디지털 이미지를 디코딩하기 위한 디바이스(200)를 포함하는,
사용자 단말(UT).As a user terminal (UT)
A device (100) for encoding a digital image according to claim 9 and a device (200) for decoding a digital image according to claim 13,
A user terminal (UT).
프로세서에 의해 실행될 때, 제 1 항 내지 제 8 항 중 어느 한 항에 따른 디지털 이미지를 인코딩하기 위한 방법을 구현하기 위한 명령들을 포함하는,
컴퓨터 프로그램(Pg1).As the computer program Pg1,
Comprising instructions for implementing a method for encoding a digital image according to any one of claims 1 to 8 when executed by a processor,
Computer program (Pg1).
프로세서에 의해 실행될 때, 제 10 항 내지 제 12 항 중 어느 한 항에 따른 디지털 이미지를 디코딩하기 위한 방법을 구현하기 위한 명령들을 포함하는,
컴퓨터 프로그램(Pg1).As the computer program Pg2,
13. A computer-readable medium having stored thereon instructions for implementing a method for decoding a digital image according to any one of claims 10 to 12, when executed by a processor,
Computer program (Pg1).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1550984 | 2015-02-06 | ||
FR1550984A FR3032583B1 (en) | 2015-02-06 | 2015-02-06 | METHOD OF ENCODING DIGITAL IMAGE, DECODING METHOD, DEVICES, AND COMPUTER PROGRAMS |
PCT/FR2016/050246 WO2016124867A1 (en) | 2015-02-06 | 2016-02-05 | Method for encoding a digital image and associated decoding method, devices and computer programs |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170134324A true KR20170134324A (en) | 2017-12-06 |
Family
ID=54065939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177021825A KR20170134324A (en) | 2015-02-06 | 2016-02-05 | METHODS FOR ENCODING DIGITAL IMAGES AND RELATED DECODING METHODS, DEVICES, AND COMPUTER PROGRAMS |
Country Status (7)
Country | Link |
---|---|
US (1) | US20180020216A1 (en) |
EP (1) | EP3254467A1 (en) |
JP (1) | JP2018509070A (en) |
KR (1) | KR20170134324A (en) |
CN (1) | CN107409228A (en) |
FR (1) | FR3032583B1 (en) |
WO (1) | WO2016124867A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3044507A1 (en) * | 2015-11-30 | 2017-06-02 | Orange | IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS |
US11095893B2 (en) * | 2016-10-12 | 2021-08-17 | Qualcomm Incorporated | Primary transform and secondary transform in video coding |
CN116847081A (en) | 2018-04-01 | 2023-10-03 | Lg电子株式会社 | Image decoding apparatus, image encoding apparatus, and apparatus for transmitting video signal |
CN113055683B (en) * | 2019-06-24 | 2022-11-01 | 杭州海康威视数字技术股份有限公司 | Encoding and decoding method, device and equipment |
US11064194B2 (en) | 2019-10-31 | 2021-07-13 | Western Digital Technologies, Inc. | Encoding digital videos using controllers of data storage devices |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4226172B2 (en) * | 1998-11-24 | 2009-02-18 | 株式会社ハイニックスセミコンダクター | Video compression encoding apparatus and decoding apparatus using adaptive conversion method and method thereof |
JP2005167655A (en) * | 2003-12-03 | 2005-06-23 | Matsushita Electric Ind Co Ltd | Conversion coding method and conversion decoding method |
US9661338B2 (en) * | 2010-07-09 | 2017-05-23 | Qualcomm Incorporated | Coding syntax elements for adaptive scans of transform coefficients for video coding |
AU2012277160B2 (en) * | 2011-06-27 | 2016-12-15 | Sun Patent Trust | Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device |
WO2013003777A1 (en) * | 2011-06-29 | 2013-01-03 | General Instrument Corporation | Methods and system for using a scan coding pattern during intra coding |
CN107835414B (en) * | 2011-10-18 | 2020-11-06 | 株式会社Kt | Video signal decoding method |
KR20130050149A (en) * | 2011-11-07 | 2013-05-15 | 오수미 | Method for generating prediction block in inter prediction mode |
-
2015
- 2015-02-06 FR FR1550984A patent/FR3032583B1/en not_active Expired - Fee Related
-
2016
- 2016-02-05 WO PCT/FR2016/050246 patent/WO2016124867A1/en active Application Filing
- 2016-02-05 JP JP2017541692A patent/JP2018509070A/en active Pending
- 2016-02-05 KR KR1020177021825A patent/KR20170134324A/en unknown
- 2016-02-05 CN CN201680016832.XA patent/CN107409228A/en active Pending
- 2016-02-05 US US15/549,298 patent/US20180020216A1/en not_active Abandoned
- 2016-02-05 EP EP16714466.6A patent/EP3254467A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
FR3032583A1 (en) | 2016-08-12 |
US20180020216A1 (en) | 2018-01-18 |
CN107409228A (en) | 2017-11-28 |
FR3032583B1 (en) | 2018-03-02 |
WO2016124867A1 (en) | 2016-08-11 |
EP3254467A1 (en) | 2017-12-13 |
JP2018509070A (en) | 2018-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9661354B2 (en) | Method and apparatus for encoding/decoding image | |
KR20170134324A (en) | METHODS FOR ENCODING DIGITAL IMAGES AND RELATED DECODING METHODS, DEVICES, AND COMPUTER PROGRAMS | |
CN107710763B (en) | Method, decoding method and device for encoding digital image | |
US11350106B2 (en) | Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs | |
US10911784B2 (en) | Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto | |
EP3512201A1 (en) | Image decoding method and apparatus relying on intra prediction in image coding system | |
KR102447425B1 (en) | Method, coding method, devices, and associated computer programs for decoding a digital image | |
CN108432254B (en) | Image encoding and decoding method, apparatus and computer storage medium | |
RU2646308C1 (en) | Method of video signal decoding |