KR102096407B1 - A method and an apparatus for decoding a video signal - Google Patents
A method and an apparatus for decoding a video signal Download PDFInfo
- Publication number
- KR102096407B1 KR102096407B1 KR1020190073421A KR20190073421A KR102096407B1 KR 102096407 B1 KR102096407 B1 KR 102096407B1 KR 1020190073421 A KR1020190073421 A KR 1020190073421A KR 20190073421 A KR20190073421 A KR 20190073421A KR 102096407 B1 KR102096407 B1 KR 102096407B1
- Authority
- KR
- South Korea
- Prior art keywords
- transform
- block
- current block
- size
- prediction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000006243 chemical reaction Methods 0.000 claims description 58
- 230000009466 transformation Effects 0.000 claims description 23
- 230000003044 adaptive effect Effects 0.000 description 24
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000011426 transformation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/46—Embedding additional information in the video signal during the compression process
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
본 발명은, 비디오 신호로부터 현재 매크로블록의 변환 크기 플래그 획득하는 단계; 상기 변환 크기 플래그에 대응되는 제 1 변환 블록에 대해, 상기 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수(non-zero transform coefficient)의 개수를 확인하는 단계; 상기 제 1 변환 블록 내에서 0이 아닌 변환계수의 개수가 가장 많은 픽셀의 위치를 우선순위로 하여 상기 제 1 변환 블록의 스캔 오더를 변경하는 단계; 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 상기 제 1 변환 블록의 변경된 스캔 오더를 상기 제 2 변환 블록의 초기화된 스캔 오더로 설정하는 단계; 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀의 위치를 우선순위로 하여 상기 제 2 변환 블록의 스캔 오더를 변경하는 단계; 및 상기 변경된 스캔 오더에 따라 배열된 변환 계수를 디코딩하는 단계를 포함하되, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 상기 변환 크기 플래그에 대응되는 크기를 가지고, 상기 현재 매크로블록에 포함되는 것을 특징으로 하는 비디오 신호의 디코딩 방법을 제공한다.The present invention comprises the steps of obtaining a transform size flag of a current macroblock from a video signal; Checking a number of non-zero transform coefficients at each pixel position in the first transform block for a first transform block corresponding to the transform size flag; Changing a scan order of the first transform block by setting a position of a pixel having the highest number of non-zero transform coefficients in the first transform block as a priority; Determining the number of non-zero transform coefficients at each pixel position in the second transform block, and setting the changed scan order of the first transform block to an initialized scan order of the second transform block; Add the number of non-zero transform coefficients at each pixel position in the first transform block and the number of non-zero transform coefficients at each pixel position in the second transform block, and prioritize the position of the pixel with the largest number. Changing the scan order of the second transform block to? And decoding a transform coefficient arranged according to the changed scan order, wherein the first transform block and the second transform block have a size corresponding to the transform size flag and are included in the current macroblock. It provides a method for decoding a video signal characterized in that.
Description
본 발명은 비디오 신호의 디코딩 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for decoding a video signal.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하는 일련의 신호 처리 기술을 의미한다. 압축 부호화의 대상에는 음성, 영상, 문자 등의 대상이 존재하며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 영상 압축이라고 일컫는다. 비디오 영상의 일반적인 특징은 공간적 중복성, 시간적 중복성을 지니고 있는 점에 특징이 있다.Compression coding refers to a series of signal processing technologies that transmit digitized information over a communication line or store it in a form suitable for a storage medium. There are objects such as voice, video, and text in the object of compression encoding, and a technique for performing compression encoding on an image is called video video compression. The general feature of the video image is that it has spatial redundancy and temporal redundancy.
이와 같이 공간적 중복성 및 시간적 중복성을 충분히 제거하지 않으면, 비디오 신호를 부호화하는 데 있어서 압축률이 낮아질 뿐만 아니라, 공간적 중복성 및 시간적 중복성을 과도하게 제거하는 경우, 비디오 신호를 디코딩하는 데 있어서 필요한 정보를 생성하지 못하기 때문에 복원율이 나빠지는 문제점이 있었다.If the spatial redundancy and temporal redundancy are not sufficiently removed, the compression rate in encoding a video signal is lowered, and when the spatial redundancy and temporal redundancy are excessively removed, information necessary for decoding the video signal is not generated. There was a problem in that the restoration rate deteriorated because it could not.
본 발명은, 비디오 신호로부터 현재 매크로블록의 변환 크기 플래그 획득하는 단계; 상기 변환 크기 플래그에 대응되는 제 1 변환 블록에 대해, 상기 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수(non-zero transform coefficient)의 개수를 확인하는 단계; 상기 제 1 변환 블록 내에서 0이 아닌 변환계수의 개수가 가장 많은 픽셀의 위치를 우선순위로 하여 상기 제 1 변환 블록의 스캔 오더를 변경하는 단계; 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 상기 제 1 변환 블록의 변경된 스캔 오더를 상기 제 2 변환 블록의 초기화된 스캔 오더로 설정하는 단계; 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀의 위치를 우선순위로 하여 상기 제 2 변환 블록의 스캔 오더를 변경하는 단계; 및 상기 변경된 스캔 오더에 따라 배열된 변환 계수를 디코딩하는 단계를 포함하되, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 상기 변환 크기 플래그에 대응되는 크기를 가지고, 상기 현재 매크로블록에 포함되는 것을 특징으로 하는 비디오 신호의 디코딩 방법을 제공한다.The present invention comprises the steps of obtaining a transform size flag of a current macroblock from a video signal; Checking a number of non-zero transform coefficients at each pixel position in the first transform block for a first transform block corresponding to the transform size flag; Changing a scan order of the first transform block by setting a position of a pixel having the highest number of non-zero transform coefficients in the first transform block as a priority; Determining the number of non-zero transform coefficients at each pixel position in the second transform block, and setting the changed scan order of the first transform block to an initialized scan order of the second transform block; Add the number of non-zero transform coefficients at each pixel position in the first transform block and the number of non-zero transform coefficients at each pixel position in the second transform block, and prioritize the position of the pixel with the largest number. Changing the scan order of the second transform block to? And decoding a transform coefficient arranged according to the changed scan order, wherein the first transform block and the second transform block have a size corresponding to the transform size flag and are included in the current macroblock. It provides a method for decoding a video signal characterized in that.
또한, 본 발명은, 상기 현재 매크로블록 내 각 변환 블록에 대해 스캔 오더를 초기화할지 여부를 나타내는 스캔 오더 초기화 플래그 정보를 획득하는 단계를 더 포함하되, 상기 스캔 오더 초기화 플래그 정보가 각 변환 블록에 대해 스캔 오더를 초기화할 것을 지시하는 경우, 상기 제 2 변환 블록의 초기화된 스캔 오더가 상기 제 1 변환 블록의 변경된 스캔 오더로 설정되는 것을 특징으로 한다.In addition, the present invention further includes the step of obtaining scan order initialization flag information indicating whether to initialize a scan order for each transform block in the current macroblock, wherein the scan order initialization flag information is for each transform block. When instructing to initialize the scan order, it is characterized in that the initialized scan order of the second transform block is set as the changed scan order of the first transform block.
또한, 본 발명에서, 상기 변환 크기 플래그 정보는 복수개인 것을 특징으로 한다.In addition, in the present invention, the conversion size flag information is characterized in that a plurality.
또한, 본 발명에서, 상기 변환 크기 플래그 정보는 16x16 블록 단위로 변환 과정을 수행하는지 아니면 그보다 작은 블록 단위로 변환 과정을 수행하는지 여부를 나타내는 제 1 변환 크기 플래그 정보와, 8x8 블록 단위로 변환 과정을 수행하는지 아니면 4x4 블록 단위로 변환 과정을 수행하는지 여부를 나타내는 제 2 변환 크기 플래그 정보를 포함하는 것을 특징으로 한다.In addition, in the present invention, the conversion size flag information includes first conversion size flag information indicating whether the conversion process is performed in units of 16x16 blocks or smaller block units, and the conversion process in units of 8x8 blocks. It is characterized in that it includes second transform size flag information indicating whether to perform or perform a transform process in units of 4x4 blocks.
또한, 본 발명에서, 상기 제 1 변환 크기 플래그 정보가 16x16 블록 단위보다 작은 블록 단위로 변환 과정을 수행할 것을 나타내고, 상기 제 2 변환 크기 플래그 정보가 8x8 블록 단위로 변환 과정을 수행할 것을 나타내는 경우, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 8x8 크기의 블록에 대응되는 것을 특징으로 한다.Further, in the present invention, when the first conversion size flag information indicates that the conversion process is performed in block units smaller than 16x16 block units, and the second conversion size flag information indicates that the conversion process is performed in 8x8 block units , The first transform block and the second transform block correspond to blocks of 8x8 size.
또한, 본 발명은, 상기 비디오 신호로부터 변환 타입을 나타내는 변환 타입 플래그 정보를 획득하는 단계를 더 포함하되, 상기 변환 계수를 디코딩하는 단계는, 상기 변환 타입 플래그 정보에 기초하여 이산 여현 변환(DCT) 또는 카루넨-루브 변환(KLT)을 이용하는 것을 특징으로 한다.In addition, the present invention further comprises the step of obtaining transform type flag information indicating a transform type from the video signal, wherein decoding the transform coefficient comprises: discrete cosine transform (DCT) based on the transform type flag information. Or it is characterized by using the Karenen-Lube transform (KLT).
또한, 본 발명에서, 상기 변환 타입 플래그 정보가 카루넨-루브 변환(KLT)을 이용할 것을 나타내고 상기 현재 매크로블록의 블록 타입이 인트라 블록을 나타내는 경우, 카루넨-루브 변환(KLT)을 이용하여 상기 변환 계수를 디코딩하는 것을 특징으로 한다.In addition, in the present invention, when the conversion type flag information indicates to use the Karenen-Lube conversion (KLT) and the block type of the current macroblock indicates an intra block, the Karinen-Lube conversion (KLT) is used to And decoding the transform coefficients.
또한, 본 발명은, 비디오 신호로부터 현재 매크로블록의 변환 크기 플래그를 획득하는 엔트로피 디코딩부; 상기 변환 크기 플래그에 대응되는 제 1 변환 블록에 대해, 상기 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수(non-zero transform coefficient)의 개수를 확인하고, 상기 제 1 변환 블록 내에서 0이 아닌 변환계수의 개수가 가장 많은 픽셀의 위치를 우선순위로 하여 상기 제 1 변환 블록의 스캔 오더를 변경하는 제 1 스캔 오더 변경부; 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 상기 제 1 변환 블록의 변경된 스캔 오더를 상기 제 2 변환 블록의 초기화된 스캔 오더로 설정하고, 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀의 위치를 우선순위로 하여 상기 제 2 변환 블록의 스캔 오더를 변경하는 제 2 스캔 오더 변경부; 및 상기 변경된 스캔 오더에 따라 배열된 변환 계수를 디코딩하는 변환 디코딩부를 포함하되, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 상기 변환 크기 플래그에 대응되는 크기를 가지고, 상기 현재 매크로블록에 포함되는 것을 특징으로 하는 비디오 신호의 디코딩 장치를 제공한다.In addition, the present invention, the entropy decoding unit for obtaining a transform size flag of the current macroblock from the video signal; For the first transform block corresponding to the transform size flag, the number of non-zero transform coefficients at each pixel position in the first transform block is checked, and 0 in the first transform block A first scan order changing unit for changing a scan order of the first transform block by setting a position of a pixel having the largest number of transform coefficients as a priority; Determine the number of non-zero transform coefficients at each pixel position in the second transform block, set the changed scan order of the first transform block to the initialized scan order of the second transform block, and within the first transform block The number of non-zero transform coefficients at each pixel position and the number of non-zero transform coefficients at each pixel position in the second transform block are added, and the position of the pixel having the largest number is prioritized. A second scan order changing unit for changing the scan order of the block; And a transform decoding unit for decoding transform coefficients arranged according to the changed scan order, wherein the first transform block and the second transform block have a size corresponding to the transform size flag, and are included in the current macroblock. It provides a video signal decoding apparatus characterized in that.
본 발명은 변환 과정에서 이용되는 단위 블록의 크기를 다양하게 정의함으로써 코딩 효율을 향상시킬 수 있다.The present invention can improve coding efficiency by variously defining the size of a unit block used in a conversion process.
또한, 본 발명은 변환 과정에서 이용되는 단위 블록의 크기를 나타내는 플래그 정보를 정의함으로써 코딩 효율을 향상시킬 수 있다.In addition, the present invention can improve coding efficiency by defining flag information indicating the size of a unit block used in a conversion process.
또한, 본 발명은 변환 타입을 나타내는 플래그를 정의하고, 그에 따라 이산여현변환(Discrete Cosine Transform, 이하 'DCT'라 함) 또는 카루넨-루브 변환(Karhunen-Loeve Transform, 이하 'KLT'라 함)을 사용함으로써 코딩 효율을 향상시킬 수 있다.In addition, the present invention defines a flag indicating a transform type, and accordingly a discrete cosine transform (hereinafter referred to as 'DCT') or a Karenen-Loeve transform (hereinafter referred to as 'KLT') By using, coding efficiency can be improved.
또한, 본 발명은 매크로블록의 예측 모드에 따라 DCT 또는 KLT를 사용함으로써 코딩 효율을 향상시킬 수 있다.In addition, the present invention can improve coding efficiency by using DCT or KLT according to the prediction mode of the macroblock.
또한, 본 발명은 변환 과정에서 이용되는 단위 블록의 크기를 레지듀얼 블록의 크기보다 작거나 같도록 설정하여 적응적으로 이용함으로써 코딩 효율을 향상시킬 수 있다.In addition, the present invention can improve coding efficiency by adaptively setting the size of the unit block used in the conversion process to be smaller than or equal to the size of the residual block.
또한, 본 발명은 인트라 예측 모드로 코딩된 매크로블록의 각 변환 블록마다 다른 변환 커널(transform kernel)을 사용함으로써 코딩 효율을 향상시킬 수 있다.In addition, the present invention can improve coding efficiency by using a different transform kernel for each transform block of a macroblock coded in intra prediction mode.
또한, 본 발명은 매크로블록의 각 변환 블록마다 스캐닝 오더(scanning order)를 업데이트함으로써 코딩 효율을 향상시킬 수 있다.In addition, the present invention can improve coding efficiency by updating a scanning order for each transform block of a macroblock.
또한, 본 발명은 0이 아닌 변환계수레벨의 포함 여부를 나타내는 정보의 중복성을 제거함으로써 코딩 효율을 향상시킬 수 있다.In addition, the present invention can improve coding efficiency by removing redundancy of information indicating whether a non-zero transform coefficient level is included.
상기 발명들은 16x16 매크로블록보다 큰 매크로블록 기반의 인코딩 및 디코딩 과정에서 사용될 경우 코딩 효율을 더욱 향상시킬 수 있다.The above inventions can further improve coding efficiency when used in a macroblock-based encoding and decoding process that is larger than a 16x16 macroblock.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호 디코딩 장치의 개략적인 블록도를 나타낸다.
도 2, 도 3A 및 도 3B는 본 발명이 적용되는 실시예들로서, 플래그 정보에 기초하여 변환 과정에서 이용되는 단위 블록의 크기를 결정하는 과정을 나타낸다.
도 4는 본 발명이 적용되는 실시예로서, 변환 타입을 나타내는 플래그 또는 매크로블록의 예측 모드에 기초하여 변환 방법(DCT 또는 KLT)을 결정하는 과정을 설명하기 위한 흐름도이다.
도 5는 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 적용하는 새로운 모드 기반형 변환(Mode Dependent Directional Transform)을 설명하기 위한 개략적인 블록도를 나타낸다.
도 6은 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 사용하는 구체적인 예를 나타낸다.
도 7은 본 발명이 적용되는 실시예로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 흐름도를 나타낸다.
도 8A 내지 도 8D는 본 발명이 적용되는 실시예들로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 구체적인 예를 나타낸다.1 is an embodiment to which the present invention is applied, and shows a schematic block diagram of a video signal decoding apparatus.
2, 3A and 3B are embodiments to which the present invention is applied, and show a process of determining the size of a unit block used in a conversion process based on flag information.
4 is an embodiment to which the present invention is applied, and is a flowchart illustrating a process of determining a transform method (DCT or KLT) based on a prediction mode of a flag or macroblock indicating a transform type.
5 is an embodiment to which the present invention is applied, and shows a schematic block diagram for explaining a new Mode Dependent Directional Transform that applies a different transform kernel according to the location of a transform block.
6 is an embodiment to which the present invention is applied, and shows a specific example of using a different transform kernel according to the location of the transform block.
7 is an embodiment to which the present invention is applied, and shows a flowchart for explaining a process of rearranging a scan order for each transform block.
8A to 8D are embodiments to which the present invention is applied, and show a specific example for explaining the process of rearranging the scan order for each transform block.
비디오 신호의 비트열 구성을 살펴보면, 동영상 부호화 처리 그 자체를 다루는 VCL(Video Coding Layer, 비디오 부호화 계층)과 부호화된 정보를 전송하고 저장하는 하위 시스템과의 사이에 있는 NAL(Network Abstraction Layer, 네트워크 추상 계층)이라는 분리된 계층 구조로 정의되어 있다. 부호화 과정의 출력은 VCL 데이터이고 전송하거나 저장하기 전에 NAL 단위로 맵핑된다. 각 NAL 단위는 압축된 비디오 데이터 또는 헤더 정보에 해당하는 데이터인 RBSP(Raw Byte Sequence Payload, 동영상 압축의 결과데이터)를 포함한다.Looking at the configuration of a bit stream of a video signal, a Network Abstraction Layer (NAL) between a video coding layer (VCL) that deals with video encoding processing itself and a subsystem that transmits and stores encoded information is a network abstraction layer. Hierarchy). The output of the encoding process is VCL data and is mapped in NAL units before transmission or storage. Each NAL unit includes compressed video data or RBSP (Raw Byte Sequence Payload), which is data corresponding to header information.
NAL 단위는 기본적으로 NAL헤더와 RBSP의 두 부분으로 구성된다. NAL 헤더에는 그 NAL 단위의 참조 픽쳐가 되는 슬라이스가 포함되어 있는지 여부를 나타내는 플래그 정보(nal_ref_idc)와 NAL 단위의 종류를 나타내는 식별자(nal_unit_type)가 포함되어 있다. RBSP 에는 압축된 원본의 데이터를 저장하며, RBSP 의 길이를 8비트의 배수로 표현하기 위해 RBSP 의 마지막에 RBSP 채워넣기 비트(RBSP trailing bit)를 첨가한다. 이러한 NAL 단위의 종류에는 IDR (Instantaneous Decoding Refresh, 순간 복호 리프레쉬) 픽쳐, SPS (Sequence Parameter Set, 시퀀스 파라미터 세트), PPS (Picture Parameter Set, 픽쳐 파라미터 세트), SEI (Supplemental Enhancement Information, 보충적 부가정보) 등이 있다.The NAL unit basically consists of two parts: the NAL header and the RBSP. The NAL header includes flag information (nal_ref_idc) indicating whether a slice serving as a reference picture of the NAL unit is included, and an identifier (nal_unit_type) indicating the type of the NAL unit. In the RBSP, the compressed original data is stored, and the RBSP trailing bit is added to the end of the RBSP to express the length of the RBSP in multiples of 8 bits. These types of NAL units include IDR (Instantaneous Decoding Refresh) pictures, SPS (Sequence Parameter Set), PPS (Picture Parameter Set, Picture Parameter Set), SEI (Supplemental Enhancement Information, Supplementary Supplementary Information) And so on.
또한, 규격에서는 대상 제품을 적당한 비용으로 구현 가능하도록 여러 가지 프로파일 및 레벨로 제약하고 있는데, 복호기는 해당 프로파일과 레벨에서 정해진 제약을 만족시켜야 한다. 이처럼 복호기가 어떤 압축 영상의 범위까지 대응할 수 있는지 그 기능 또는 파라미터를 나타내기 위해 프로파일과 레벨이라는 두 가지의 개념이 정의되었다. 비트스트림이 어떤 프로파일에 기초하는 것인가는 프로파일 식별자(profile_idc)로 식별할 수 있다. 프로파일 식별자란, 비트스트림이 기반을 둔 프로파일을 나타내는 플래그를 의미한다. 예를 들어, H.264/AVC 에서는 프로파일 식별자가 66 이면 베이스라인 프로파일에 기초함을 의미하고, 77 이면 메인 프로파일에 기초함을 의미하며, 88 이면 확장 프로파일에 기초함을 의미한다. 상기 프로파일 식별자는 시퀀스 파라미터 세트에 포함될 수 있다.In addition, in the standard, the target product is restricted to various profiles and levels so that it can be implemented at a reasonable cost, and the decoder must satisfy the constraints specified in the profile and level. In this way, two concepts of profile and level have been defined to indicate the function or parameter of the range of the compressed image to which the decoder can respond. Which profile the bitstream is based on can be identified by a profile identifier (profile_idc). The profile identifier means a flag indicating a profile on which the bitstream is based. For example, in H.264 / AVC, a profile identifier of 66 means based on a baseline profile, 77 means based on a main profile, and 88 means based on an extended profile. The profile identifier may be included in the sequence parameter set.
시퀀스 파라미터 세트란, 프로파일, 레벨 등 시퀀스 전체의 부호화에 걸쳐있는 정보가 포함되어 있는 헤더 정보를 말한다. 압축된 동영상 전체, 즉 시퀀스는 반드시 시퀀스 헤더로부터 시작하여야 하므로 헤더 정보에 상당하는 시퀀스 파라미터 세트는 그 파라미터 세트를 참조하는 데이터보다 먼저 복호기에 도착하여야 한다. 결국, 시퀀스 파라미터 세트 RBSP 는 동영상 압축의 결과 데이터에 대한 헤더 정보로써의 역할을 한다. 비트스트림이 입력되면, 먼저 프로파일 식별자는 입력된 비트스트림이 복수개의 프로파일 중에서 어떤 프로파일에 기초하는 것인지를 식별하게 된다. The sequence parameter set refers to header information including information that spans the entire sequence, such as profile and level. Since the entire compressed video, that is, the sequence must start from the sequence header, the sequence parameter set corresponding to the header information must arrive at the decoder before the data referring to the parameter set. As a result, the sequence parameter set RBSP serves as header information for data resulting from video compression. When a bitstream is input, first, the profile identifier identifies which profile the input bitstream is based on among a plurality of profiles.
도 1은 본 발명이 적용되는 비디오 신호 디코딩 장치의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a video signal decoding apparatus to which the present invention is applied.
도 1을 참조하면, 상기 디코딩 장치는 크게 엔트로피 디코딩부(100), 역양자화부(200), 역변환부(300), 인트라 예측부(400), 디블록킹 필터부(500), 복호 픽쳐 버퍼부(600), 인터 예측부(700) 등을 포함할 수 있다. 상기 역변환부(300)는 변환 크기 결정부(310), 스캔 오더 초기화부(320), 스캔 오더 변경부(330) 및 변환 디코딩부(340)을 포함한다.Referring to FIG. 1, the decoding apparatus is largely an
먼저, 디코딩 장치에서는 수신된 비디오 영상을 복호하기 위하여 NAL 단위로 파싱을 수행한다. 일반적으로 하나 또는 그 이상의 시퀀스 파라미터 셋과 픽쳐 파라미터 셋이 슬라이스 헤더와 슬라이스 데이터가 디코딩되기 전에 디코더로 전송된다. 이 때 NAL 헤더 영역 또는 NAL 헤더의 확장 영역에는 여러 가지 속성 정보가 포함될 수 있다.First, the decoding apparatus parses the received video image in units of NAL. Generally, one or more sequence parameter sets and picture parameter sets are transmitted to the decoder before the slice header and slice data are decoded. At this time, various attribute information may be included in the NAL header region or the extended region of the NAL header.
파싱된 비트스트림은 엔트로피 디코딩부(100)를 통하여 엔트로피 디코딩되고, 각 매크로브록의 계수, 움직임 벡터 등이 추출된다. 역양자화부(200)에서는 엔트로피 디코딩된 데이터들에 일정한 상수를 곱하여 변환 계수값을 획득하고, 역변환부(300)에서는 상기 변환 계수값을 역변환하여 화소값을 복원하게 된다. 이때, 상기 변환 크기 결정부(310)에서는 변환 크기 관련 정보를 획득하여 변환 크기를 결정할 수 있다. 예를 들어, 적응적 변환 크기 플래그 정보, 또는 변환 크기 플래그 정보 등을 획득할 수 있다. 이는 도 2, 도 3A 및 도 3B에서 보다 상세히 설명하도록 한다. 상기 스캔 오더 초기화부(320)는 역양자화된 변환 계수들에 대한 스캔 오더를 초기화하고, 상기 스캔 오더 변경부(330)는 0이 아닌 변환 계수의 개수에 기초하여 각 블록에 적합한 스캔 오더로 변경 또는 업데이트한다. 상기 변환 디코딩부(340)는 상기 변경 또는 업데이트된 스캔 오더에 기초하여 상기 변환 계수들을 디코딩한다. 한편, 인코딩 장치에서는 이러한 변환 과정을 통해 상기 변환 계수값의 개수를 줄일수록 압축 효과를 높일 수 있으며, 화면 내 중요 데이터들이 변환 과정을 통해 일부의 계수에 집중적으로 분포할 수 있도록 함으로 보다 압축 효과를 높일 수 있다. 따라서, 본 발명에서는 이러한 변환 과정의 실시예들을 설명할 것이다.The parsed bitstream is entropy decoded through the
그리고, 상기 복원된 화소값을 이용하여 인트라 예측부(400)에서는 현재 픽쳐 내의 디코딩된 샘플로부터 인트라 예측(intra prediction)을 수행하게 된다. 상기 인트라 예측부(400)에서는 현재 픽쳐 내에서 현재 블록의 주변 블록의 픽셀을 이용하여 현재 블록을 예측하는데, 보다 정확한 예측을 수행할 수 있다면 화질을 향상시킬 수 있을 뿐만 아니라 코딩 효율을 향상시킬 수 있게 된다.Then, the
디블록킹 필터부(500)에서는 블록 왜곡 현상을 감소시키기 위해 각각의 코딩된 매크로블록에 적용된다. 필터는 블록의 가장자리를 부드럽게 하여 디코딩된 프레임의 화질을 향상시킨다. 필터링 과정의 선택은 경계 세기(boundary strenth)와 경계 주위의 이미지 샘플의 변화(gradient)에 의해 좌우된다. 필터링을 거친 픽쳐들은 출력되거나 참조 픽쳐로 이용하기 위해 복호 픽쳐 버퍼부(600)에 저장된다. The
복호 픽쳐 버퍼부(Decoded Picture Buffer unit)(600)에서는 인터 예측(inter prediction)을 수행하기 위해서 이전에 코딩된 픽쳐들을 저장하거나 개방하는 역할 등을 수행할 수 있다. 이 때 복호 픽쳐 버퍼부(600)에 저장하거나 개방하기 위해서 각 픽쳐의 디코딩 순서를 나타내는 정보(frame_num)와 픽쳐의 출력 순서를 나타내는 정보(Picture Order Count, POC)를 이용하게 된다. 이렇게 관리되는 참조 픽쳐들은 인터 예측부(700)에서 이용될 수 있다.The decoded
상기 인터 예측부(700)에서는 엔트로피 디코딩부(100)로부터 전송된 정보들을 이용하여 현재 블록의 움직임을 보상한다. 비디오 신호로부터 현재 블록에 이웃하는 블록들의 움직임 벡터를 추출하고, 상기 현재 블록의 움직임 벡터 예측값을 획득한다. 상기 획득된 움직임 벡터 예측값과 상기 비디오 신호로부터 추출되는 차분 벡터를 이용하여 현재 블록의 움직임을 보상한다. 또한, 이러한 움직임 보상은 하나의 참조 픽쳐를 이용하여 수행될 수도 있고, 복수의 픽쳐를 이용하여 수행될 수도 있다. The
디코딩 장치는 예측 모드 정보에 따라 인터 예측 또는 인트라 예측 과정을 통해 생성된 예측값(predictor)을 획득한다. 그리고, 비디오 신호로부터 추출된 레지듀얼과 상기 획득된 예측값을 더함으로써 현재 픽쳐를 복원할 수 있다. 여기서, 레지듀얼(residual)이라 함은 원 신호와 예측 신호 간의 차이를 나타내고, 상기 신호는 시퀀스 단위, 픽쳐 단위, 슬라이스 단위, 매크로블록 단위, 서브블록 단위 또는 픽셀 단위가 될 수 있으며, 본 명세서 내에서 그 단위는 각 디코딩 과정에 적절한 단위로 해석될 수 있다.The decoding apparatus acquires a predicted value generated through an inter prediction or intra prediction process according to the prediction mode information. Then, the current picture may be reconstructed by adding the residual extracted from the video signal and the obtained prediction value. Here, residual refers to a difference between an original signal and a prediction signal, and the signal may be a sequence unit, a picture unit, a slice unit, a macroblock unit, a subblock unit, or a pixel unit, and within the specification The unit in can be interpreted as a unit suitable for each decoding process.
또한, 본 발명은 보다 확장된 해상도를 갖는 비디오 신호의 처리를 위해 이용될 수 있다. 즉, 확장된 해상도를 갖는 비디오 신호의 처리를 위해 확장된 크기(size)의 매크로블록을 정의할 수 있다. 예를 들어, 16x16,16x8, 8x16 8x8, 8x4, 4x8, 4x4 크기의 매크로블록뿐만 아니라, 32x32, 64x32, 32x64, 64x64 등의 크기를 갖는 매크로블록을 이용할 수 있다. 매크로블록의 크기는 비디오 신호의 해상도에 따라 적응적으로 결정될 수 있다. 예를 들어, 비디오 신호의 해상도가 VGA(640x480, 4:3) 이하인 경우에는 16x16 크기의 매크로블록을 이용할 수 있고, VGA 이상 1080P 이하인 경우에는 32x32 크기의 매크로블록을 이용할 수 있고, 나아가 1080P 이상 4kx2k 이하인 경우에는 64x64 크기의 매크로블록을 이용할 수 있다. In addition, the present invention can be used for the processing of video signals with more extended resolution. That is, an extended size macroblock can be defined for processing a video signal having an extended resolution. For example, 16x16, 16x8, 8x16 8x8, 8x4, 4x8, and 4x4 macroblocks, as well as macroblocks having sizes of 32x32, 64x32, 32x64, and 64x64 may be used. The size of the macroblock can be adaptively determined according to the resolution of the video signal. For example, if the resolution of the video signal is VGA (640x480, 4: 3) or less, a macroblock of 16x16 size can be used, and if VGA or more is 1080P or less, a macroblock of 32x32 size can be used, and further, 1080P or more and 4kx2k In the following cases, a macroblock having a size of 64x64 may be used.
도 2, 도 3A 및 도 3B는 본 발명이 적용되는 실시예들로서, 플래그 정보에 기초하여 변환 과정에서 이용되는 단위 블록의 크기를 결정하는 과정을 나타낸다.2, 3A and 3B are embodiments to which the present invention is applied, and show a process of determining the size of a unit block used in a conversion process based on flag information.
인코딩 장치 및 디코딩 장치에서 사용되는 변환 기법 중에는 블록 기반 변환 방법과 이미지 기반 변환 방법이 있다. 상기 블록 기반 변환 방법으로는 이산 여현 변환(Discrete Cosine Transform, 이하 'DCT'라 함), 카루넨-루브 변환(Karhuhen-Loeve Transform, 이하 'KLT'라 함) 등이 있다. 여기서, 이산 여현 변환(DCT)이란 공간 도메인(spatial domain) 상의 신호를 2차원 주파수 성분으로 분해(변환)하는 것을 나타낸다. 블록 내에서 좌측상단으로 갈수록 낮은 주파수 성분을 가지고, 우측하단으로 갈수록 높은 주파수 성분을 갖는 패턴을 이룬다. 예를 들어, 64개의 2차원의 주파수 성분 중 가장 좌측상단에 존재하는 1개만이 직류성분(DC : Direct Current)으로 주파수가 0인 성분이며, 나머지는 교류성분(AC : Alternate Current) 으로 낮은 주파수 성분부터 높은 주파수 성분까지 63개로 구성된다. 이산 여현 변환(DCT)을 수행한다는 것은 원 비디오 신호의 블록에 포함된 기저성분(64개의 기본 패턴 성분)들 각각의 크기를 구하는 것이며, 이 크기는 이산 여현 변환 계수이다.Among the conversion techniques used in the encoding device and the decoding device, there are a block-based conversion method and an image-based conversion method. Examples of the block-based transform method include a discrete cosine transform (hereinafter referred to as 'DCT') and a Karen-Loeve transform (hereinafter referred to as 'KLT'). Here, the discrete cosine transform (DCT) decomposes (converts) a signal on a spatial domain into a two-dimensional frequency component. In the block, a pattern having a lower frequency component toward the upper left and a higher frequency component toward the lower right forms a pattern. For example, of the 64 two-dimensional frequency components, only one present in the upper left corner is a component having a frequency of 0 as a direct current (DC) component, and the rest is a low frequency as an alternating current (AC). It consists of 63 components, from components to high frequency components. Performing discrete cosine transform (DCT) is to obtain the size of each of the base components (64 basic pattern components) included in the block of the original video signal, which is a discrete cosine transform coefficient.
또한, 이산 여현 변환(DCT)은 단순히 원 비디오 신호 성분으로 표현하기 위하여 사용되는 변환으로, 역변환시 주파수 성분으로부터 원래의 영상신호로 완전히 복원된다. 즉, 영상의 표현 방법만을 바꾸는 것으로, 중복된 정보를 포함해 원 영상에 포함된 모든 정보를 모두 보존한다. 원 영상을 이산 여현 변환(DCT)하는 경우, 원영상의 진폭분포와 달리 이산 여현 변환(DCT) 계수는 0 근처의 값에 몰려서 존재하게 되므로 이를 이용하여 높은 압축효과를 얻을 수 있게 된다.In addition, the discrete cosine transform (DCT) is a transform used to simply express the original video signal component, and is completely restored from the frequency component to the original image signal during inverse transform. That is, by changing only the expression method of the image, all information included in the original image, including the duplicated information, is preserved. When the original image is subjected to discrete cosine transform (DCT), unlike the amplitude distribution of the original image, the discrete cosine transform (DCT) coefficients are concentrated at values near 0, so that a high compression effect can be obtained.
한편, 카루넨-루브 변환(KLT)은 다차원(N차원)의 특징 벡터(feature vector)로 이루어진 데이터에 대해서, 최대한 원본 정보를 유지하면서 낮은 차원(K차원)으로 차원을 축소시켜 데이터를 처리하는 방법 중 하나이다. 즉, 데이터의 특징을 잘 나타내는 고유의 성분들을 추출하고 이 값들 중 특징 성분이 높은 값들만을 취함으로써 차원을 줄이고 원본 정보와의 차이를 최소화하는 것이다. 예를 들어, 인트라 블록의 인코딩 또는 디코딩시 이용되는 예측 모드에 따라 카루넨-루브 변환(KLT) 방법을 이용할 수 있으며, 스캐닝 오더 방법도 상기 예측 모드에 따라 다르게 적용함으로써 코딩 효율을 높일 수 있다.On the other hand, Karenen-Lube transform (KLT) processes data by reducing the dimension to the lower dimension (K-dimension) while maintaining the original information as much as possible with respect to data composed of multidimensional (N-dimension) feature vectors. It is one of the methods. That is, by extracting intrinsic components that represent the characteristics of the data well and taking only those values of which the feature component is high, the dimension is reduced and the difference from the original information is minimized. For example, the Karenen-Lube transform (KLT) method may be used according to a prediction mode used when encoding or decoding an intra block, and the coding efficiency may be improved by applying a scanning order method differently according to the prediction mode.
본 발명의 일실시예로서, 하나의 매크로블록에 대해 변환 과정에서 이용되는 단위 블록의 크기(이하, '변환 크기'라 한다)를 적응적으로 설정할 수 있다. 예를 들어, 해상도가 큰 비디오 신호를 처리하는 경우, 변환 크기를 상기 비디오 신호의 해상도에 적합하도록 결정할 수 있다. 구체적 예로, XGA(eXtended Graphics Array, 1024x768, 4:3) 해상도를 갖는 비디오 신호에서 32x32 크기의 매크로블록을 이용하는 경우, 변환 크기를 16x16으로 설정할 수 있다. 이때, 32x32 매크로블록에 대해 16x16 변환 크기만을 이용하여 변환 과정을 수행할 수 있으며, 또는 32x32, 32x16, 16x32, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 중 적어도 하나의 변환 크기를 이용하여 변환 과정을 수행할 수 있다. 즉, 하나의 매크로블록에 대해 단 하나의 변환 크기만을 이용할 수도 있고, 복수개의 변환 크기를 이용할 수도 있다. As an embodiment of the present invention, the size of a unit block used in a conversion process (hereinafter, referred to as “conversion size”) may be adaptively set for one macroblock. For example, when processing a video signal having a large resolution, the conversion size may be determined to be suitable for the resolution of the video signal. As a specific example, when a macroblock having a size of 32x32 is used in a video signal having an XGA (eXtended Graphics Array, 1024x768, 4: 3) resolution, the conversion size may be set to 16x16. In this case, the conversion process may be performed using only the 16x16 conversion size for the 32x32 macroblock, or by using at least one conversion size of 32x32, 32x16, 16x32, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 The conversion process can be performed. That is, only one transform size may be used for one macroblock, or a plurality of transform sizes may be used.
또한, 본 발명에서는, 블록마다 적절한 변환 크기를 설정 가능하게 하는 적응적 변환 크기 플래그 정보(adaptive transform size flag information)를 정의할 수 있다. 상기 적응적 변환 크기 플래그 정보는 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되는지 여부를 나타내는 정보로 정의될 수도 있다. 여기서, 코딩 유닛은 픽쳐, 슬라이스, 매크로블록, 서브블록, 변환 블록, 블록, 픽셀 등을 의미할 수 있다. 즉, 제 1 코딩 유닛의 상기 적응적 변환 크기 플래그 정보가 참이면, 제 2 코딩 유닛마다 상기 적응적 변환 크기 플래그 정보가 획득될 수 있다. 이때, 상기 제 2 코딩 유닛은 상기 제 1 코딩 유닛에 포함되는 서브 블록을 나타낸다. 그리고, 상기 적응적 변환 크기 플래그 정보는 변환부 또는 역변환부(300)에서 획득될 수 있으며, 구체적으로 변환 크기 결정부(310)에서 획득될 수 있다. 또한, 상기 적응적 변환 크기 플래그 정보는 현재 변환 유닛의 크기를 최소 변환 크기 및 최대 변환 크기 중 적어도 하나와 비교함으로써 획득될 수 있다. 예를 들어, 현재 변환 유닛의 크기가 최소 변환 크기보다 크고 최대 변환 크기보다 작거나 같은 경우에 상기 적응적 변환 크기 플래그 정보가 획득될 수 있다. 상기 적응적 변환 크기 플래그 정보에 기초하여 변환 유닛의 크기가 결정되고, 그에 따라 변환 과정이 수행될 것이다. 또는 상기 적응적 변환 크기 플래그 정보에 기초하여 코딩블록 플래그 정보(coded_block_flag)를 획득할 수 있다. 여기서, 코딩블록 플래그 정보(coded_block_flag)는 변환 유닛이 0이 아닌 변환계수레벨을 포함하는지 여부를 나타낸다.In addition, in the present invention, adaptive transform size flag information that can set an appropriate transform size for each block can be defined. The adaptive transform size flag information may be defined as information indicating whether a coding unit is divided into coding units having half sizes in horizontal and vertical directions. Here, the coding unit may mean a picture, slice, macroblock, subblock, transform block, block, pixel, or the like. That is, if the adaptive transform size flag information of the first coding unit is true, the adaptive transform size flag information can be obtained for each second coding unit. At this time, the second coding unit indicates a sub-block included in the first coding unit. In addition, the adaptive transform size flag information may be obtained by the transform unit or the inverse transform unit 300, and may be specifically obtained by the transform
예를 들어, 상기 제 1 코딩 유닛의 크기가 128x128이면, 상기 제 2 코딩 유닛은 64x64 크기를 갖는 4개의 서브 블록들을 나타낼 수 있다. 그리고, 만약 상기 적응적 변환 크기 플래그 정보가 존재하지 않는다면, 현재 블록의 변환 크기와 최소 변환 크기를 비교함으로써 보다 상기 적응적 변환 크기 플래그 정보를 유도할 수 있다. 예를 들어, 현재 블록의 변환 크기가 최소 변환 크기보다 크다면, 상기 적응적 변환 크기 플래그 정보는 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되는 것을 나타낼 것이고, 현재 블록의 변환 크기가 최소 변환 크기보다 크지 않다면 상기 적응적 변환 크기 플래그 정보는 상기 적응적 변환 크기 플래그 정보는 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되지 않을 것을 나타낼 것이다. 즉, 현재 블록의 변환 크기가 최소 변환 크기보다 크다면, 상기 적응적 변환 크기 플래그 정보는 '1'로 유도되어, 각 서브 블록마다 상기 적응적 변환 크기 플래그 정보를 확인할 것이다. 그리고, 현재 블록의 변환 크기가 최소 변환 크기보다 크지 않다면 상기 적응적 변환 크기 플래그 정보는 '0'으로 유도되어, 현재 블록의 변환 크기가 적용될 것이다.For example, if the size of the first coding unit is 128x128, the second coding unit may represent four sub-blocks having a size of 64x64. And, if the adaptive transform size flag information does not exist, the adaptive transform size flag information may be derived more by comparing the transform size of the current block with the minimum transform size. For example, if the transform size of the current block is greater than the minimum transform size, the adaptive transform size flag information will indicate that the coding unit is divided into coding units having half size in the horizontal and vertical directions, and If the transform size is not greater than the minimum transform size, the adaptive transform size flag information will indicate that the adaptive transform size flag information is not split into coding units having a half size in the horizontal and vertical directions. That is, if the transform size of the current block is larger than the minimum transform size, the adaptive transform size flag information is derived as '1', and the adaptive transform size flag information will be checked for each sub-block. And, if the transform size of the current block is not greater than the minimum transform size, the adaptive transform size flag information is derived as '0', so that the transform size of the current block will be applied.
구체적 예로, 상기 적응적 변환 크기 플래그 정보를 split_transform_unit_flag 라 하자. 도 2를 참조하면, 현재 매크로블록(블록 A)의 크기가 128x128일 때, split_transform_unit_flag에 따라 128x128, 64x64, 32x32, 16x16, 8x8, 4x4 변환 크기 중 적어도 하나가 선택될 수 있다. 현재 매크로블록(블록 A) 레벨에서 상기 split_transform_unit_flag가 추출되고, 상기 split_transform_unit_flag가 '0'의 값을 나타내면 128x128 변환 크기가 적용되고, 상기 split_transform_unit_flag가 '1'의 값을 나타내면 상기 128x128 현재 매크로블록 내 64x64 크기의 4개의 서브 블록들에 대해 각각 상기 split_transform_unit_flag를 획득할 수 있다. 그리고, 64x64 크기의 서브 블록(블록 B) 레벨에서 획득된 split_transform_unit_flag가 '0'의 값을 나타내면 64x64 변환 크기가 적용되고, 상기 split_transform_unit_flag가 '1'의 값을 나타내면 다시 상기 64x64 서브 블록 내 32x32 크기의 4개의 서브 블록들에 대해 각각 상기 split_transform_unit_flag를 획득할 수 있다. 마찬가지로 이하의 서브 블록들에 대해서도 상기와 같은 과정이 동일하게 적용될 수 있다.As a specific example, let's say the adaptive transform size flag information is split_transform_unit_flag. Referring to FIG. 2, when the size of the current macroblock (block A) is 128x128, at least one of 128x128, 64x64, 32x32, 16x16, 8x8, and 4x4 transform sizes may be selected according to split_transform_unit_flag. If the split_transform_unit_flag is extracted at the current macroblock (block A) level, and the split_transform_unit_flag represents a value of '0', a 128x128 transform size is applied, and when the split_transform_unit_flag represents a value of '1', the size of 64x64 in the 128x128 current macroblock The split_transform_unit_flag may be obtained for each of the 4 sub-blocks. And, if the split_transform_unit_flag obtained at the level of the sub-block (block B) having a size of 64x64 represents a value of '0', a 64x64 transform size is applied, and when the split_transform_unit_flag represents a value of '1', the size of 32x32 in the 64x64 sub-block is again The split_transform_unit_flag may be obtained for each of four sub-blocks. Similarly, the same process can be applied to the following sub-blocks.
또한, 본 발명에서는, 상기 변환 크기를 나타내는 플래그 정보를 정의할 수 있다. 예를 들어, 도 3A 및 도 3B를 참조하면, transform_16x16_size_flag 및 transform_8x8_size_flag 에 따라 16x16, 8x8, 4x4 변환 크기 중 하나가 선택될 수 있다. 여기서, transform_16x16_size_flag 는 16x16 블록 단위로 변환 과정을 수행하는지 아니면 그보다 작은 블록 단위로 변환 과정을 수행하는지 여부를 나타내고, 매크로블록 레벨에서 획득될 수 있다. 그리고, transform_8x8_size_flag 는 8x8 블록 단위로 변환 과정을 수행하는지 아니면 4x4 블록 단위로 변환 과정을 수행하는지 여부를 나타내고, 서브 매크로블록 레벨에서 획득될 수 있다. 도 3A를 참조하면, transform_16x16_size_flag 가 '1'을 나타내면, 16x16 블록 단위로 변환 과정을 수행하고, '0'을 나타내면, transform_8x8_size_flag 를 확인한다. 상기 transform_8x8_size_flag 가 '1'을 나타내면, 8x8 블록 단위로 변환 과정을 수행하고, '0'을 나타내면, 4x4 블록 단위로 변환 과정을 수행한다.Further, in the present invention, flag information indicating the conversion size can be defined. For example, referring to FIGS. 3A and 3B, one of 16x16, 8x8, and 4x4 transform sizes may be selected according to transform_16x16_size_flag and transform_8x8_size_flag. Here, transform_16x16_size_flag indicates whether a transformation process is performed in 16x16 block units or a smaller block unit, and may be obtained at a macroblock level. And, transform_8x8_size_flag indicates whether the transformation process is performed in units of 8x8 blocks or the transformation process in units of 4x4 blocks, and can be obtained at the sub macroblock level. Referring to FIG. 3A, when transform_16x16_size_flag indicates '1', a transformation process is performed in units of 16x16 blocks, and when '0' is indicated, transform_8x8_size_flag is checked. If transform_8x8_size_flag indicates '1', the transform process is performed in 8x8 block units. If '0' is indicated, a transform process is performed in 4x4 block units.
마찬가지로, 도 3B를 참조하면, transform_8x8_size_flag 가 '0'을 나타내면, 4x4 블록 단위로 변환 과정을 수행하고, '1'을 나타내면, transform_16x16_size_flag 를 확인한다. 상기 transform_16x16_size_flag 가 '1'을 나타내면, 16x16 블록 단위로 변환 과정을 수행하고, '0'을 나타내면, 8x8 블록 단위로 변환 과정을 수행한다. Similarly, referring to FIG. 3B, when transform_8x8_size_flag represents '0', a transformation process is performed in units of 4x4 blocks, and if '1' is represented, transform_16x16_size_flag is checked. If the transform_16x16_size_flag indicates '1', the transform process is performed in units of 16x16 blocks, and if it indicates '0', the transform process is performed in units of 8x8 blocks.
본 발명이 적용되는 다른 실시예로서, 매크로블록의 크기에 따라 사용 가능한 변환 크기를 미리 설정해놓은 경우 디코딩 장치는 상기 변환 크기를 나타내는 플래그 정보를 수신하지 않고 디코딩 장치 내에서 유도할 수 있다. 예를 들어, 매크로블록의 크기가 32x32 일 때 8x8 변환 크기를 이용하지 않는다고 설정해 놓은 경우, transform_8x8_size_flag 가 '0'을 나타낸다면 4x4 블록 단위로 변환 과정을 수행하고, transform_8x8_size_flag 가 '1'을 나타낸다면 16x16 블록 단위로 변환 과정을 수행할 것이다. 이때, transform_16x16_size_flag 는 '1'로 유도될 것이다. 마찬가지로, 매크로블록의 크기가 8x8 일 경우, transform_8x8_size_flag 가 '0'을 나타낸다면 4x4 블록 단위로 변환 과정을 수행하고, transform_8x8_size_flag 가 '1'을 나타낸다면 8x8 블록 단위로 변환 과정을 수행할 것이다. 이때, transform_16x16_size_flag 는 '0'으로 유도될 것이다.As another embodiment to which the present invention is applied, when a usable transform size is set in advance according to the size of a macroblock, the decoding apparatus may derive within the decoding apparatus without receiving flag information indicating the transform size. For example, when the size of the macroblock is set to not use the 8x8 transform size when the size of the macroblock is 32x32, if transform_8x8_size_flag represents '0', the transformation process is performed in units of 4x4 blocks, and if transform_8x8_size_flag represents '1', 16x16 The conversion process will be performed in block units. At this time, transform_16x16_size_flag will be derived as '1'. Similarly, when the size of the macroblock is 8x8, if transform_8x8_size_flag represents '0', the transformation process is performed in units of 4x4 blocks, and if transform_8x8_size_flag represents '1', the transformation process will be performed in units of 8x8 blocks. At this time, transform_16x16_size_flag will be derived as '0'.
다른 실시예로, 8x8 변환 크기는 인트라 8x8 블록에만 이용된다고 하면, 인트라 8x8 블록과 인트라 16x16 블록을 식별하기 위해 transform_16x16_size_flag 만 전송되고, transform_8x8_size_flag 는 디코딩 장치에서 '1'로 유도될 것이다. 또는 4x4 변환 크기가 인트라 8x8 블록에만 이용된다고 하면, 인트라 8x8 블록과 인트라 16x16 블록을 식별하기 위해 transform_16x16_size_flag 만 전송되고, transform_8x8_size_flag 는 서브 매크로블록 타입에 따라 디코딩 장치에서 '0' E또는 '1'로 유도될 것이다.In another embodiment, if the 8x8 transform size is used only for the intra 8x8 block, only transform_16x16_size_flag is transmitted to identify the intra 8x8 block and the intra 16x16 block, and transform_8x8_size_flag will be derived as '1' in the decoding apparatus. Or, if the 4x4 transform size is used only for the intra 8x8 block, only transform_16x16_size_flag is transmitted to identify the intra 8x8 block and the intra 16x16 block, and transform_8x8_size_flag is derived to '0' E or '1' in the decoding apparatus according to the sub macroblock type. Will be.
상기에서 설명한 바와 같이, 변환 크기, 매크로블록 크기, 변환 크기를 나타내는 플래그 정보 등은 일실시예에 불과할 뿐이고, 32x32, 32x16, 16x32, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 및 32x32 이상의 크기도 모두 적용할 수 있을 것이다. 또한, 도 2, 도 3A 및 도 3B에서의 2개의 플래그 정보 조합도 일실시예에 해당하고, 하나의 플래그 정보에 의해 변환 크기를 나타낼 수 있으며, 또한 복수개의 플래그 정보를 조합하여 다양한 실시예들을 설정할 수도 있을 것이다.As described above, the transform size, macroblock size, flag information indicating the transform size, etc. are only examples, and 32x32, 32x16, 16x32, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 and 32x32 or more All sizes will be applicable. In addition, the combination of two flag information in FIGS. 2, 3A, and 3B corresponds to an embodiment, and may indicate a conversion size by one flag information, and also combines a plurality of flag information to provide various embodiments. You can also set
도 4는 본 발명이 적용되는 실시예로서, 변환 타입을 나타내는 플래그 또는 매크로블록의 예측 모드에 기초하여 변환 방법(DCT 또는 KLT)을 결정하는 과정을 설명하기 위한 흐름도이다.4 is an embodiment to which the present invention is applied, and is a flowchart illustrating a process of determining a transform method (DCT or KLT) based on a prediction mode of a flag or macroblock indicating a transform type.
상기 도 2, 도 3A 및 도 3B에서 살펴본 것처럼, 코딩 효율 향상을 위해 비디오 신호의 처리시 다양한 변환 방법(DCT, KLT 등)이 적용될 수 있다. 예를 들어, 인코딩 장치는 각 슬라이스에 대해 DCT 또는 KLT 등을 적용하여 왜곡률 최적화(Rate-Distortion optimization)가 되는 변환 방법을 결정할 수 있다. 결정된 변환 방법은 구문 요소로 코딩되어 전송될 수 있고, 매크로블록 레이어, 슬라이스 헤더 또는 픽쳐 파라미터 셋 정보 내에서 정의될 수 있다. 구체적 예로, 인코딩 장치는 먼저 슬라이스에 대해 DCT를 적용하고 왜곡률 비용(RD cost)을 계산한 다음, KLT를 적용하고 왜곡률 비용(RD cost)을 계산한다. KLT의 왜곡률 비용(RD cost)이 DCT의 왜곡률 비용(RD cost)보다 작다면 상기 슬라이스에 대한 변환 방법으로 KLT가 선택되고, 이를 구문 요소로 코딩하여 전송한다. 여기서, 상기 구문 요소는 변환 타입을 나타내는 플래그 정보를 의미할 수 있다. 2, 3A and 3B, various conversion methods (DCT, KLT, etc.) may be applied when processing a video signal to improve coding efficiency. For example, the encoding apparatus may determine a transformation method to be rate-distortion optimization by applying DCT or KLT to each slice. The determined transform method may be coded and transmitted as a syntax element, and may be defined in a macroblock layer, slice header, or picture parameter set information. As a specific example, the encoding apparatus first applies DCT to the slice, calculates the distortion cost (RD cost), then applies KLT and calculates the distortion cost (RD cost). If the distortion cost (RD cost) of the KLT is smaller than the distortion cost (RD cost) of the DCT, the KLT is selected as a transform method for the slice, and it is coded as a syntax element and transmitted. Here, the syntax element may mean flag information indicating a conversion type.
예를 들어, 도 4를 참조하면, 먼저 변환 타입을 나타내는 변환 타입 플래그 정보를 획득하고(S410), 상기 변환 타입 플래그 정보(transform_type_flag)가 '0'을 나타내면 DCT가 적용되고(S420), 상기 변환 타입 플래그 정보가 '1'을 나타내면 매크로블록의 타입에 기초하여 DCT 또는 KLT가 적용될 수 있다(S430). 매크로블록의 타입이 인트라 블록을 나타내면 KLT가 적용되고(S450), 인트라 블록이 아니면 DCT가 적용될 수 있다(S440). 이렇게 변환된 데이터들은 양자화 과정을 거치게 된다(S460). 이처럼, 본 발명에서는 매크로블록의 예측 모드에 기초하여 각 예측 모드마다 적절한 변환 방법이 이용될 수 있다. For example, referring to FIG. 4, first, transformation type flag information indicating a transformation type is acquired (S410), and when the transformation type flag information (transform_type_flag) represents '0', DCT is applied (S420), and the transformation is performed. If the type flag information indicates '1', DCT or KLT may be applied based on the type of the macroblock (S430). If the type of the macroblock indicates an intra block, KLT is applied (S450), and if it is not an intra block, DCT may be applied (S440). The transformed data is subjected to a quantization process (S460). As described above, in the present invention, an appropriate transformation method may be used for each prediction mode based on the prediction mode of the macroblock.
도 5는 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 적용하는 새로운 모드 기반형 변환(Mode Dependent Directional Transform)을 설명하기 위한 개략적인 블록도를 나타낸다.5 is an embodiment to which the present invention is applied, and shows a schematic block diagram for explaining a new Mode Dependent Directional Transform that applies a different transform kernel according to the location of the transform block.
모드 기반형 변환(Mode Dependent Directional Transform)이란, 인트라 블록의 코딩에서 사용되는 예측 모드에 따라 KLT에 기반을 둔 변환 방법을 사용하고, 스캐닝 오더 또한 각 예측 모드에 따라 다르게 적용하여 코딩 효율을 향상시키는 기술을 말한다. 상기 도 5를 참조하면, 예측부에서는 각 모드에 따른 예측 신호를 전송하고, 변환부에서는 원 신호와 상기 예측 신호와의 차이를 나타내는 레지듀얼 신호를 수신하고 상기 레지듀얼 신호를 변환하여 변환 계수를 생성한다. 이때, 상기 변환부에서는 각 모드에 따른 레지듀얼 신호에 대해 별개의 변환 커널(transform kernel)을 적용할 수 있다. 이처럼, 인트라 블록의 각 예측 모드에 따라 생성된 변환 계수들은 양자화부를 통하여 양자화된다. 또한, 모드 기반형 변환에서는 수평 변환과 수직 변환에 대한 별개의 변환 커널을 이용할 수 있다.Mode Dependent Directional Transform is a KLT-based transformation method according to the prediction mode used in the coding of intra blocks, and the scanning order is also applied differently for each prediction mode to improve coding efficiency. Speak technology. Referring to FIG. 5, the prediction unit transmits a prediction signal according to each mode, and the transformation unit receives a residual signal indicating a difference between the original signal and the prediction signal, and converts the residual signal to convert the transform coefficients. To create. At this time, the transform unit may apply a separate transform kernel to the residual signal according to each mode. As such, transform coefficients generated according to each prediction mode of the intra block are quantized through a quantization unit. In addition, in the mode-based transform, separate transform kernels for horizontal transform and vertical transform can be used.
도 6은 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 사용하는 구체적인 예를 나타낸다.6 is an embodiment to which the present invention is applied, and shows a specific example of using a different transform kernel according to the location of the transform block.
본 발명의 실시예로서, 변환 크기는 예측 블록의 크기보다 작거나 같을 수 있다. 예를 들어, 32x32 블록의 경우 변환 크기는 32x32, 16x16, 8x8, 4x4 가 될 수 있고, 16x16 블록의 경우 변환 크기는 16x16, 8x8, 4x4 가 될 수 있고, 8x8 블록의 경우 변환 크기는 8x8, 4x4 가 될 수 있으며, 4x4 블록의 경우 변환 크기는 4x4 만 될 수 있다.As an embodiment of the present invention, the transform size may be smaller than or equal to the size of the prediction block. For example, for 32x32 blocks, the conversion size can be 32x32, 16x16, 8x8, 4x4, for 16x16 blocks, the conversion size can be 16x16, 8x8, 4x4, and for 8x8 blocks, the conversion size is 8x8, 4x4 , And for 4x4 blocks, the transformation size can be only 4x4.
또한, 16x16 블록에 대해 변환 크기 8x8을 적용하는 경우, 4개의 변환 블록에 대해 동일한 변환 커널을 적용할 수 있다. 또는 상기 도 6을 참조하면, 각 변환 블록의 위치에 따라 각기 다른 변환 커널을 적용할 수도 있다. 이 경우, 4개의 변환 커널이 필요할 것이다.In addition, when 8x8 transform size is applied to a 16x16 block, the same transform kernel can be applied to 4 transform blocks. Alternatively, referring to FIG. 6, different transform kernels may be applied according to the location of each transform block. In this case, you will need 4 conversion kernels.
도 7은 본 발명이 적용되는 실시예로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 흐름도를 나타낸다.7 is an embodiment to which the present invention is applied, and shows a flowchart for explaining a process of rearranging a scan order for each transform block.
스캔 오더라 함은 변환 계수를 일차원 형태로 배열하기 위한 순서를 의미하며, 낮은 주파수의 계수는 앞쪽에 높은 주파수의 계수는 뒤쪽에 위치하게 된다. 변환 계수 디코딩 과정은 4x4 휘도 레지듀얼 블록, 8x8 휘도 레지듀얼 블록, 인트라 16x16 예측 모드인 휘도 샘플, 그리고 색차 샘플 등에 적용될 수 있다. 또한, 앞서 살펴본 바와 같이 변환 크기가 더 커진다면 그 대상 블록 또는 샘플도 그에 따라 커질 수 있다. 예를 들어, 16x16 휘도 레지듀얼 블록, 32x32 휘도 레지듀얼 블록, 인트라 32x32 예측 모드인 휘도 샘플, 그리고 색차 샘플 등에 변환 계수 디코딩 과정이 적용될 수 있다.The scan order means the order for arranging the transform coefficients in a one-dimensional form, and the low frequency coefficient is located in the front and the high frequency coefficient is located in the back. The transform coefficient decoding process may be applied to a 4x4 luminance residual block, an 8x8 luminance residual block, an intra 16x16 prediction mode luminance sample, and a color difference sample. In addition, as described above, if the transform size becomes larger, the target block or sample may be increased accordingly. For example, a transform coefficient decoding process may be applied to a 16x16 luminance residual block, a 32x32 luminance residual block, an intra 32x32 prediction mode luminance sample, and a color difference sample.
구체적 예로, 상기 도 2, 도 3A 및 도 3B에서 설명한 transform_16x16_size_flag 및 transform_8x8_size_flag 에 따라, 상기 플래그 정보들이 16x16 블록 단위로 변환 과정을 수행할 것을 나타내는 경우, 16x16 휘도 레지듀얼 블록에 대해 변환 계수 디코딩 과정이 적용될 수 있다. 또는 상기 플래그 정보들이 8x8 블록 단위로 변환 과정을 수행할 것을 나타내는 경우, 8x8 휘도 레지듀얼 블록에 대해 변환 계수 디코딩 과정이 적용될 수 있다.As a specific example, in accordance with transform_16x16_size_flag and transform_8x8_size_flag described in FIGS. 2, 3A, and 3B, when the flag information indicates that the transformation process is to be performed in units of 16x16 blocks, a transformation coefficient decoding process is applied to a 16x16 luminance residual block You can. Alternatively, when the flag information indicates that the conversion process is to be performed in units of 8x8 blocks, a conversion coefficient decoding process may be applied to an 8x8 luminance residual block.
본 발명의 일실시예로, 8x8 휘도 레지듀얼 블록에 대해 변환 계수 디코딩 과정이 적용되는 경우, 먼저 8x8 휘도 레지듀얼 블록 내 64개의 값이 스캔 오더에 따라 초기값으로 설정된다. 여기서, 상기 64개의 초기값은 변환 계수를 나타내고, 스캔 오더는 지그재그 스캔을 의미할 수 있다. 그리고, 상기 변환 계수들은 변경된 스캔 오더에 따라 재배열함으로써 런렝스(run-length) 코딩시 비트수를 줄일 수 있다. 여기서, 변경된 스캔 오더는 0이 아닌 변환 계수의 개수를 계산하여 그 개수가 가장 많은 픽셀 위치를 우선순위로 설정하는 것을 의미한다. 0이 아닌 변환 계수의 개수는 매 매크로블록, 또는 매 변환 블록마다 계산하여 업데이트될 수 있다. In an embodiment of the present invention, when a transform coefficient decoding process is applied to an 8x8 luminance residual block, 64 values in the 8x8 luminance residual block are first set as initial values according to the scan order. Here, the 64 initial values represent conversion coefficients, and the scan order may mean a zigzag scan. In addition, the transform coefficients can be rearranged according to the changed scan order to reduce the number of bits in run-length coding. Here, the changed scan order means that the number of non-zero transform coefficients is calculated and the pixel position having the largest number is set as a priority. The number of non-zero transform coefficients may be calculated and updated every macroblock, or every transform block.
예를 들어, 도 7을 참조하면, 먼저 매크로블록 내 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 카운트한다(S710). 그리고, 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수가 가장 많은 픽셀 위치를 우선순위로 하여 스캔 오더를 변경할 수 있다(S720). 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 제 1 변환 블록의 변경된 스캔 오더를 제 2 변환 블록의 초기화된 스캔 오더로 이용할 수 있다(S730). 여기서, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 하나의 매크로블록 내 분할된 블록을 나타내며, 예를 들어, 현재 매크로블록이 8x8 매크로블록이고, 상기 현재 매크로블록 내 4x4 휘도 레지듀얼 블록 단위로 변환 계수 디코딩 과정이 적용되는 경우, 상단 좌측 4x4 블록을 제 1 변환 블록, 상단 우측 4x4 블록을 제 2 변환 블록, 하단 좌측 4x4 블록을 제 3 변환 블록, 하단 우측 4x4 블록을 제 4 변환 블록이라 정의할 수 있다. 이러한 서브블록들의 순서는 본 실시예에 한정되지 않는다. 그리고, 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀 위치를 우선순위로 하여 제 2 변환 블록의 스캔 오더를 변경할 수 있다(S740). 이와 같이 스캔 오더의 업데이트 과정을 통해 코딩 효율을 향상시킬 수 있다. 이에 대한 구체적인 실시예는 도 8A 내지 도 8D에서 상세히 설명하도록 한다.For example, referring to FIG. 7, first, the number of non-zero transform coefficients is counted at each pixel position in the first transform block in the macroblock (S710). In addition, the scan order may be changed by setting a pixel position having the highest number of non-zero transform coefficients as a priority at each pixel position in the first transform block (S720). The number of non-zero transform coefficients may be determined at each pixel position in the second transform block, and the changed scan order of the first transform block may be used as an initialized scan order of the second transform block (S730). Here, the first transform block and the second transform block indicate a divided block in one macroblock, for example, the current macroblock is an 8x8 macroblock, and 4x4 luminance residual blocks in the current macroblock When the transform coefficient decoding process is applied, the upper left 4x4 block is defined as the first transform block, the upper right 4x4 block is the second transform block, the lower left 4x4 block is the third transform block, and the lower right 4x4 block is the fourth transform block. can do. The order of these sub-blocks is not limited to this embodiment. Then, the number of non-zero transform coefficients at each pixel position in the first transform block and the number of non-zero transform coefficients at each pixel position in the second transform block are added, and the pixel position having the largest number is given priority. The scan order of the second transform block may be changed as a priority (S740). As described above, coding efficiency can be improved through the update process of the scan order. A detailed embodiment of this will be described in detail in FIGS. 8A to 8D.
또한, 상기 스캔 오더의 업데이트 과정은 매 매크로블록 또는 매 변환 블록 또는 매 블록마다 수행될 수 있다. 그리고, 상기 스캔 오더의 업데이트 과정 이후 스캔 오더의 초기화를 수행하는데, 이를 나타내는 플래그 정보를 정의할 수 있다. 예를 들어, 스캔 오더 초기화 플래그 정보가 '1'을 나타내면 매 매크로블록 또는 매 변환 블록에 대해 스캔 오더를 초기화하고, '0'을 나타내면 다시 상기 스캔 오더의 업데이트 과정을 수행하게 된다. In addition, the update process of the scan order may be performed every macroblock or every transform block or every block. In addition, after the update process of the scan order, initialization of the scan order is performed, flag information indicating this may be defined. For example, if the scan order initialization flag information indicates '1', the scan order is initialized for every macroblock or every transform block, and if it indicates '0', the update process of the scan order is performed again.
도 8A 내지 도 8D는 본 발명이 적용되는 실시예들로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 구체적인 예를 나타낸다.8A to 8D are embodiments to which the present invention is applied, and show a specific example for explaining the process of rearranging the scan order for each transform block.
본 실시예에서는 현재 매크로블록이 32x32 매크로블록이고, 상기 현재 매크로블록 내 16x16 블록 단위로 변환 계수 디코딩 과정이 적용되는 경우, 상단 좌측 16x16 블록을 제1블록, 상단 우측 16x16 블록을 제2블록, 하단 좌측 16x16 블록을 제3블록, 하단 우측 16x16 블록을 제4블록이라 정의할 수 있다. 여기서, 상기 제1블록 내지 제4블록은 변환 블록을 의미할 수 있다. 그리고, 회색 블록은 0이 아닌 변환 계수를 포함하고 있음을 나타내며, 회색 블록 내 숫자는 스캔 오더를 나타낸다.In the present embodiment, when the current macroblock is a 32x32 macroblock and the conversion coefficient decoding process is applied in units of 16x16 blocks in the current macroblock, the upper left 16x16 block is the first block, the upper right 16x16 block is the second block, and the lower block The left 16x16 block can be defined as the third block and the lower right 16x16 block as the fourth block. Here, the first block to the fourth block may mean a transform block. And, the gray block indicates that it contains non-zero transform coefficients, and the number in the gray block indicates the scan order.
도 8A를 참조하면, 먼저 제1블록 내 0이 아닌 변환 계수를 카운트하면 총 4개의 회색 픽셀 내에 0이 아닌 변환 계수가 존재함을 알 수 있다. 초기화된 스캔 오더는 지그재그 스캔 오더에 따르며, 여기서 상기 초기화된 스캔 오더는 지그재그 스캔 오더에 한정되지 않는다. 0이 아닌 변환 계수가 존재하는 회색 픽셀을 기준으로 지그재그 스캔 오더를 적용할 경우, 상기 도 8A에 나타난 바와 같이 업데이트된 스캔 오더를 획득할 수 있다.Referring to FIG. 8A, when the non-zero transform coefficients are first counted in the first block, it can be seen that non-zero transform coefficients exist in a total of four gray pixels. The initialized scan order follows a zigzag scan order, where the initialized scan order is not limited to a zigzag scan order. When a zigzag scan order is applied based on a gray pixel having a non-zero conversion coefficient, an updated scan order can be obtained as shown in FIG. 8A.
그리고, 도 8B를 참조하면, 먼저 제2블록 내 0이 아닌 변환 계수를 카운트하고 상기 제1블록 내 0이 아닌 변환 계수의 개수와 합하여 최종적으로 누적된 0이 아닌 변환 계수의 개수를 카운트할 수 있다. 그리고, 제2블록의 초기화된 스캔 오더는 이전 제1블록에서 최종 업데이트된 스캔 오더가 이용된다. 마찬가지로, 누적된 0이 아닌 변환 계수의 개수 중 가장 많은 개수를 가지는 픽셀 위치를 기준으로 스캔 오더를 변경할 수 있다.And, referring to FIG. 8B, first, the non-zero transform coefficients in the second block may be counted and summed with the number of non-zero transform coefficients in the first block to finally count the accumulated non-zero transform coefficients. have. In addition, the scan order last updated in the previous first block is used as the initialized scan order of the second block. Likewise, the scan order can be changed based on the pixel position having the largest number of accumulated non-zero transform coefficients.
그리고, 도 8C를 참조하면, 먼저 제3블록 내 0이 아닌 변환 계수를 카운트하고 상기 제2블록에서 누적된 0이 아닌 변환 계수의 개수와 합하여 최종적으로 누적된 0이 아닌 변환 계수의 개수를 카운트할 수 있다. 그리고, 제3블록의 초기화된 스캔 오더는 이전 제2블록에서 최종 업데이트된 스캔 오더가 이용된다. 마찬가지로, 최종적으로 누적된 0이 아닌 변환 계수의 개수 중 가장 많은 개수를 가지는 픽셀 위치를 우선순위로 하여 스캔 오더를 변경할 수 있다.Then, referring to FIG. 8C, first, the non-zero transform coefficients in the third block are counted, and the number of non-zero transform coefficients accumulated in the second block is finally counted to count the non-zero transform coefficients accumulated in the second block. can do. In addition, the scan order last updated in the previous second block is used as the initialized scan order of the third block. Likewise, the scan order may be changed by setting the pixel position having the largest number among the number of non-zero transform coefficients accumulated as a priority.
마찬가지로, 도 8D를 참조하면, 먼저 제4블록 내 0이 아닌 변환 계수를 카운트하고 상기 제3블록에서 누적된 0이 아닌 변환 계수의 개수와 합하여 최종적으로 누적된 0이 아닌 변환 계수의 개수를 카운트할 수 있다. 그리고, 제4블록의 초기화된 스캔 오더는 이전 제3블록에서 최종 업데이트된 스캔 오더가 이용된다. 마찬가지로, 최종적으로 누적된 0이 아닌 변환 계수의 개수 중 가장 많은 개수를 가지는 픽셀 위치를 우선순위로 하여 스캔 오더를 변경할 수 있다.Similarly, referring to FIG. 8D, first, a count of non-zero transform coefficients in the fourth block is added, and the number of non-zero transform coefficients accumulated in the third block is finally counted. can do. And, the initialized scan order of the fourth block uses the last updated scan order from the previous third block. Likewise, the scan order may be changed by setting the pixel position having the largest number among the number of non-zero transform coefficients accumulated as a priority.
이처럼 각 서브 블록마다 스캔 오더를 업데이트함으로써 보다 코딩 효율을 향상시킬 수 있다. 그리고, 매 슬라이스마다 스캔 오더를 초기화하지 않고 스캔 오더가 다시 초기화되는지 여부를 나타내는 플래그 정보를 슬라이스 헤더에서 정의할 수 있다.As described above, coding efficiency can be further improved by updating the scan order for each sub-block. In addition, flag information indicating whether the scan order is re-initialized without initializing the scan order for each slice may be defined in the slice header.
이렇게 업데이트된 스캔 오더에 따라 1차원 배열된 변환 계수들은 디코딩된다.The transform coefficients that are one-dimensionally arranged according to the updated scan order are decoded.
한편, 상기 도 2, 도 3A 및 도 3B에서 설명한 바와 같이, 해상도가 큰 비디오 신호를 처리하는 경우, 변환 크기를 상기 비디오 신호의 해상도에 적합하도록 결정할 수 있다. 이때, 0이 아닌 변환계수레벨을 포함하는지 나타내는 정보들의 중복 전송을 방지할 필요가 있다. 예를 들어, 코딩블록 플래그 정보(coded_block_flag)는 0이 아닌 변환계수레벨을 포함하는지 여부를 나타내고, 상기 코딩블록 플래그 정보(coded_block_flag)가 '0'이면 0이 아닌 변환계수레벨을 포함하지 않고, '1'이면 적어도 하나의 0이 아닌 변환계수레벨을 포함하고 있음을 나타낸다. 다른 플래그 정보로, 블록패턴정보(coded_block_pattern)는 4개의 8X8 휘도 블록 및 이와 관련된 색차 블록이 0이 아닌 변환계수레벨을 포함하는지 여부를 나타낸다. 상기 블록패턴정보(coded_block_pattern)는 매크로블록 레이어에서 현재 매크로블록의 예측 모드가 인트라 16X16 예측모드가 아니면 추출된다. 여기서, 블록 패턴 정보란, 레지듀얼의 존재 여부를 알려주는 일종의 대표 비트 플래그로서, 16x16, 8×8 또는 4x4 휘도 블록의 레지듀얼 존재 여부를 나타낼 수 있다. 예를 들어, 현재 매크로블록이 존재하면 이를 4등분하여 좌측 상단 블록을 0번째 비트, 우측 상단 블록을 1번째 비트, 좌측 하단 블록을 2번째 비트, 우측 하단 블록을 3번째 비트로 설정하여 각 블록마다 레지듀얼의 존재 여부를 표현할 수 있다. 블록 패턴 정보는 6비트로 표현되는데, 위에서 살펴본 바와 같이 휘도 블록은 0~3번째 비트로 표현되고 색차 블록은 2비트(AC와 DC)로 표현된다. Meanwhile, as described with reference to FIGS. 2, 3A, and 3B, when processing a video signal having a large resolution, the conversion size may be determined to be suitable for the resolution of the video signal. At this time, it is necessary to prevent redundant transmission of information indicating whether a non-zero conversion coefficient level is included. For example, the coding block flag information (coded_block_flag) indicates whether a non-zero transform coefficient level is included, and if the coded block flag information (coded_block_flag) is' 0 ', the non-zero transform coefficient level is not included, and the' 1 'indicates that at least one non-zero transform coefficient level is included. As other flag information, the block pattern information (coded_block_pattern) indicates whether four 8X8 luminance blocks and related color difference blocks include non-zero transform coefficient levels. The block pattern information (coded_block_pattern) is extracted when the prediction mode of the current macroblock in the macroblock layer is not the intra 16X16 prediction mode. Here, the block pattern information is a representative bit flag indicating whether a residual is present, and may indicate whether a residual of 16x16, 8x8 or 4x4 luminance blocks is present. For example, if there is a current macroblock, divide it into 4 equal parts, set the upper left block to the 0th bit, the upper right block to the 1st bit, the lower left block to the 2nd bit, and the lower right block to the 3rd bit. The existence of residual can be expressed. The block pattern information is represented by 6 bits, as described above, the luminance block is represented by 0 to 3rd bit, and the color difference block is represented by 2 bits (AC and DC).
예를 들어, 현재 매크로블록의 크기가 16x16 이고, 16x16 블록 단위로 변환 계수 디코딩 과정이 적용되면, 상기 블록패턴정보(coded_block_pattern)의 휘도 성분은 1비트로 줄이고, 상기 코딩블록 플래그 정보(coded_block_flag)는 전송하지 않을 수 있다. 다른 예로, 현재 매크로블록의 크기가 16x16 이고, 16x8 / 8x16 블록 단위로 변환 계수 디코딩 과정이 적용되면, 상기 블록패턴정보(coded_block_pattern)의 휘도 성분은 2비트로 줄이고, 상기 코딩블록 플래그 정보(coded_block_flag)는 전송하지 않을 수 있다. 다른 예로, 현재 매크로블록의 크기가 32x32 이고, 16x16 블록 단위로 변환 계수 디코딩 과정이 적용되면, 상기 블록패턴정보(coded_block_pattern)의 휘도 성분은 4비트를 쓰고, 상기 코딩블록 플래그 정보(coded_block_flag)는 전송하지 않을 수 있다.For example, if the size of the current macroblock is 16x16 and the conversion coefficient decoding process is applied in units of 16x16 blocks, the luminance component of the block pattern information (coded_block_pattern) is reduced to 1 bit, and the coding block flag information (coded_block_flag) is transmitted. You may not. As another example, if the size of the current macroblock is 16x16, and a transformation coefficient decoding process is applied in units of 16x8 / 8x16 blocks, the luminance component of the block pattern information (coded_block_pattern) is reduced to 2 bits, and the coding block flag information (coded_block_flag) is It may not be transmitted. As another example, if the size of the current macroblock is 32x32 and the conversion coefficient decoding process is applied in units of 16x16 blocks, the luminance component of the block pattern information (coded_block_pattern) is written in 4 bits, and the coded block flag information (coded_block_flag) is transmitted. You may not.
한편, 상기 코딩블록 플래그 정보(coded_block_flag)는 적응적 변환 크기 플래그 정보에 기초하여 획득될 수 있다. 상기 적응적 변환 크기 플래그 정보는 상기 도 2에서 상세히 설명한 바 있다. 상기 적응적 변환 크기 플래그 정보는 현재 변환 유닛의 크기를 최소 변환 크기 및 최대 변환 크기 중 적어도 하나와 비교함으로써 획득될 수 있다. 상기 적응적 변환 크기 플래그 정보가, 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되는 것을 나타내는 경우, 변환 유닛의 크기가 결정되고, 그에 따라 변환 과정이 수행될 것이다. 또는 상기 적응적 변환 크기 플래그 정보가, 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되지 않음을 나타내는 경우, 상기 코딩블록 플래그 정보(coded_block_flag)가 획득될 수 있다.Meanwhile, the coding block flag information (coded_block_flag) may be obtained based on adaptive transform size flag information. The adaptive transform size flag information has been described in detail in FIG. 2. The adaptive transform size flag information may be obtained by comparing the size of the current transform unit with at least one of a minimum transform size and a maximum transform size. When the adaptive transform size flag information indicates that the coding unit is divided into coding units having half sizes in the horizontal and vertical directions, the size of the transform unit is determined, and a conversion process will be performed accordingly. Alternatively, if the adaptive transform size flag information indicates that the coding unit is not divided into coding units having half sizes in the horizontal and vertical directions, the coding block flag information (coded_block_flag) may be obtained.
이상에서 설명한 바와 같이, 본 발명이 적용되는 디코딩/인코딩 장치는 DMB(Digital Multimedia Broadcasting)과 같은 멀티미디어 방송 송/수신 장치에 구비되어, 비디오 신호 및 데이터 신호 등을 복호화하는데 사용될 수 있다. 또한 상기 멀티미디어 방송 송/수신 장치는 이동통신 단말기를 포함할 수 있다.As described above, the decoding / encoding device to which the present invention is applied is provided in a multimedia broadcast transmission / reception device such as Digital Multimedia Broadcasting (DMB), and can be used to decode video signals and data signals. In addition, the multimedia broadcast transmission / reception device may include a mobile communication terminal.
또한, 본 발명이 적용되는 디코딩/인코딩 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등도 포함한다. 또한, 상기 인코딩 방법에 의해 생성된 비트스트림은 컴퓨터가 읽을 수 있는 기록 매체에 저장되거나, 유/무선 통신망을 이용해 전송될 수 있다.In addition, the decoding / encoding method to which the present invention is applied may be produced as a program for execution on a computer and stored in a computer-readable recording medium, and computer-readable multimedia data having a data structure according to the present invention It can be stored in a recording medium. The computer-readable recording medium includes all kinds of storage devices in which data readable by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. In addition, the bitstream generated by the encoding method may be stored in a computer readable recording medium or transmitted using a wired / wireless communication network.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.The preferred embodiments of the present invention described above have been disclosed for purposes of illustration, and those skilled in the art can improve and change various other embodiments within the technical spirit and the technical scope of the present invention disclosed in the appended claims. , Replacement or addition will be possible.
Claims (9)
예측 모드 정보에 따라 인터 예측 또는 인트라 예측을 이용하여 현재 블록의 예측값을 획득하는 단계;
제1 변환 또는 제2 변환을 수행하여 상기 현재 블록의 레지듀얼 정보를 획득하는 단계; 및
상기 예측값 및 상기 레지듀얼 정보에 기초하여 상기 현재 블록을 복원하는 단계를 포함하되,
상기 레지듀얼 정보를 획득하는 단계는,
변환 타입을 나타내는 변환 타입 정보를 획득하는 것과,
상기 변환 타입 정보가 0의 값을 나타내거나 또는 상기 현재 블록에 인트라 예측이 이용되지 않는 경우, 상기 제1 변환을 수행하는 것과,
상기 변환 타입 정보가 1의 값을 나타내고 상기 현재 블록에 인트라 예측이 이용되는 경우, 상기 제2 변환을 수행하는 것을 포함하는,
비디오 신호의 디코딩 방법. A method for decoding a video signal in a decoding device,
Obtaining a prediction value of a current block using inter prediction or intra prediction according to prediction mode information;
Obtaining residual information of the current block by performing a first transform or a second transform; And
Restoring the current block based on the prediction value and the residual information,
The step of obtaining the residual information,
Obtaining conversion type information indicating a conversion type,
Performing the first transform when the transform type information indicates a value of 0 or intra prediction is not used in the current block;
Performing the second transform when the transform type information indicates a value of 1 and intra prediction is used for the current block,
Methods of decoding video signals.
상기 제1 변환 또는 상기 제2 변환은 4x4, 8x8, 또는 16x16의 변환 커널 크기를 가지는, 비디오 신호의 디코딩 방법.The method according to claim 1,
The first transform or the second transform has a transform kernel size of 4x4, 8x8, or 16x16.
상기 제1 변환은 이산 코사인 변환(discrete cosine transform, DCT)에 해당하고, 상기 제2 변환은 카루넨-루브 변환(Karhuhen-Loeve Transform, KLT)에 해당하는, 비디오 신호의 디코딩 방법. The method according to claim 1,
The first transform corresponds to a discrete cosine transform (DCT), and the second transform corresponds to a Karhuhen-Loeve Transform (KLT).
예측 모드 정보에 따라 인터 예측 또는 인트라 예측을 이용하여 현재 블록의 예측값을 획득하고, 제1 변환 또는 제2 변환을 수행하여 상기 현재 블록의 레지듀얼 정보를 획득하고, 상기 예측값 및 상기 레지듀얼 정보에 기초하여 상기 현재 블록을 복원하도록 구성되며,
상기 레지듀얼 정보를 획득하는 것은,
변환 타입을 나타내는 변환 타입 정보를 획득하는 것과,
상기 변환 타입 정보가 0의 값을 나타내거나 또는 상기 현재 블록에 인트라 예측이 이용되지 않는 경우, 상기 제1 변환을 수행하는 것과,
상기 변환 타입 정보가 1의 값을 나타내고 상기 현재 블록에 인트라 예측이 이용되는 경우, 상기 제2 변환을 수행하는 것을 포함하는,
비디오 신호의 디코딩 장치.A decoding device for decoding a video signal, the decoding device comprising:
According to prediction mode information, a prediction value of a current block is obtained using inter prediction or intra prediction, and residual information of the current block is obtained by performing a first transformation or a second transformation, and the prediction value and the residual information are It is configured to restore the current block on the basis,
Acquiring the residual information,
Obtaining conversion type information indicating a conversion type,
Performing the first transform when the transform type information indicates a value of 0 or intra prediction is not used in the current block;
Performing the second transform when the transform type information indicates a value of 1 and intra prediction is used for the current block,
Device for decoding video signals.
상기 제1 변환 또는 상기 제2 변환은 4x4, 8x8, 또는 16x16의 변환 커널 크기를 가지는, 비디오 신호의 디코딩 장치.The method according to claim 4,
The first transform or the second transform has a transform kernel size of 4x4, 8x8, or 16x16, the apparatus for decoding a video signal.
상기 제1 변환은 이산 코사인 변환(discrete cosine transform, DCT) 에 해당하고, 상기 제2 변환은 카루넨-루브 변환(Karhuhen-Loeve Transform, KLT)에 해당하는, 비디오 신호의 디코딩 장치.The method according to claim 4,
The first transform corresponds to a discrete cosine transform (DCT), and the second transform corresponds to a Karhuhen-Loeve Transform (KLT).
인터 예측 또는 인트라 예측을 이용하여 현재 블록의 예측값을 획득하는 단계;
상기 예측값에 기초하여 상기 현재 블록의 레지듀얼 정보를 획득하는 단계; 및
상기 레지듀얼 정보에 기초하여 제1 변환 또는 제2 변환을 수행하여 상기 현재 블록을 인코딩하는 단계를 포함하되,
상기 현재 블록을 인코딩하는 단계는,
변환 타입을 나타내는 변환 타입 정보를 획득하는 것과,
상기 변환 타입 정보가 0의 값을 나타내거나 또는 상기 현재 블록에 인트라 예측이 이용되지 않는 경우, 상기 제1 변환을 수행하는 것과,
상기 변환 타입 정보가 1의 값을 나타내고 상기 현재 블록에 인트라 예측이 이용되는 경우, 상기 제2 변환을 수행하는 것을 포함하는,
비디오 신호의 인코딩 방법.A method of encoding a video signal in an encoding device, the method comprising:
Obtaining a prediction value of a current block using inter prediction or intra prediction;
Obtaining residual information of the current block based on the predicted value; And
And encoding the current block by performing a first transform or a second transform based on the residual information,
Encoding the current block,
Obtaining conversion type information indicating a conversion type,
Performing the first transform when the transform type information indicates a value of 0 or intra prediction is not used in the current block;
Performing the second transform when the transform type information indicates a value of 1 and intra prediction is used for the current block,
Video signal encoding method.
인터 예측 또는 인트라 예측을 이용하여 현재 블록의 예측값을 획득하고, 상기 예측값에 기초하여 상기 현재 블록의 레지듀얼 정보를 획득하고, 상기 레지듀얼 정보에 기초하여 제1 변환 또는 제2 변환을 수행하여 상기 현재 블록을 인코딩하도록 구성되며,
상기 현재 블록을 인코딩하는 것은,
변환 타입을 나타내는 변환 타입 정보를 획득하는 것과,
상기 변환 타입 정보가 0의 값을 나타내거나 또는 상기 현재 블록에 인트라 예측이 이용되지 않는 경우, 상기 제1 변환을 수행하는 것과,
상기 변환 타입 정보가 1의 값을 나타내고 상기 현재 블록에 인트라 예측이 이용되는 경우, 상기 제2 변환을 수행하는 것을 포함하는,
비디오 신호의 인코딩 장치.An encoding device for encoding a video signal, the encoding device comprising:
The inter prediction or intra prediction is used to obtain the prediction value of the current block, the residual information of the current block is obtained based on the prediction value, and the first transformation or the second transformation is performed based on the residual information to perform the first transformation or the second transformation. Configured to encode the current block,
Encoding the current block,
Obtaining conversion type information indicating a conversion type,
Performing the first transform when the transform type information indicates a value of 0 or intra prediction is not used in the current block;
Performing the second transform when the transform type information indicates a value of 1 and intra prediction is used for the current block,
Device for encoding video signals.
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18483409P | 2009-06-07 | 2009-06-07 | |
US61/184,834 | 2009-06-07 | ||
US25784409P | 2009-11-04 | 2009-11-04 | |
US61/257,844 | 2009-11-04 | ||
US28832309P | 2009-12-20 | 2009-12-20 | |
US61/288,323 | 2009-12-20 | ||
US29025009P | 2009-12-28 | 2009-12-28 | |
US29025109P | 2009-12-28 | 2009-12-28 | |
US61/290,251 | 2009-12-28 | ||
US61/290,250 | 2009-12-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170161466A Division KR101994216B1 (en) | 2009-06-07 | 2017-11-29 | A method and an apparatus for decoding a video signal |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200036864A Division KR102213876B1 (en) | 2009-06-07 | 2020-03-26 | A method and an apparatus for decoding a video signal |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190075031A KR20190075031A (en) | 2019-06-28 |
KR102096407B1 true KR102096407B1 (en) | 2020-04-02 |
Family
ID=60922207
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170161466A Active KR101994216B1 (en) | 2009-06-07 | 2017-11-29 | A method and an apparatus for decoding a video signal |
KR1020190073421A Active KR102096407B1 (en) | 2009-06-07 | 2019-06-20 | A method and an apparatus for decoding a video signal |
KR1020200036864A Active KR102213876B1 (en) | 2009-06-07 | 2020-03-26 | A method and an apparatus for decoding a video signal |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170161466A Active KR101994216B1 (en) | 2009-06-07 | 2017-11-29 | A method and an apparatus for decoding a video signal |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200036864A Active KR102213876B1 (en) | 2009-06-07 | 2020-03-26 | A method and an apparatus for decoding a video signal |
Country Status (1)
Country | Link |
---|---|
KR (3) | KR101994216B1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
HUE063012T2 (en) | 2018-06-03 | 2023-12-28 | Lg Electronics Inc | Method and device for processing a video signal using a reduced transform |
US12177484B2 (en) | 2019-02-06 | 2024-12-24 | Lg Electronics Inc. | Method and device for processing video signal using reduced transform |
KR102310900B1 (en) * | 2019-07-02 | 2021-10-12 | 한국전력공사 | Diagnostic apparatus for facilities of power transmission using unmaned aerial vehicle and method thereof |
US20220150518A1 (en) * | 2020-11-11 | 2022-05-12 | Tencent America LLC | Method and apparatus for video coding |
WO2024152003A1 (en) * | 2023-01-13 | 2024-07-18 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and apparatus for transform training and coding |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5241395A (en) * | 1989-08-07 | 1993-08-31 | Bell Communications Research, Inc. | Adaptive transform coding using variable block size |
-
2017
- 2017-11-29 KR KR1020170161466A patent/KR101994216B1/en active Active
-
2019
- 2019-06-20 KR KR1020190073421A patent/KR102096407B1/en active Active
-
2020
- 2020-03-26 KR KR1020200036864A patent/KR102213876B1/en active Active
Non-Patent Citations (1)
Title |
---|
Test Model under Consideration. JCT-VC of ITU-T and ISO/IEC. JCTVC-A205 draft002. May. 24, 2010, pp.1-113 |
Also Published As
Publication number | Publication date |
---|---|
KR20200035388A (en) | 2020-04-03 |
KR20170134300A (en) | 2017-12-06 |
KR101994216B1 (en) | 2019-06-28 |
KR102213876B1 (en) | 2021-02-05 |
KR20190075031A (en) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101805531B1 (en) | A method and an apparatus for decoding a video signal | |
KR102462009B1 (en) | Method for image encoding and computer readable redording meduim thereof | |
US12120352B2 (en) | Method and apparatus for decoding a video signal | |
JP6316487B2 (en) | Encoder, decoder, method, and program | |
JP6820115B2 (en) | A recording medium on which an image coding device, an image decoding device, an image coding method, an image decoding method, and a coded bit stream are recorded. | |
KR102096407B1 (en) | A method and an apparatus for decoding a video signal | |
CA3000998C (en) | Image encoding device, image decoding device, image encoding method, and image decoding method | |
JP5964422B2 (en) | Video encoding method and apparatus using offset adjustment by pixel classification, and video decoding method and apparatus | |
JP2018174570A (en) | Video decoding method | |
WO2022066869A1 (en) | Residual and coefficients coding for video coding | |
JP2024024091A (en) | Video coding method and device based on conversion | |
AU2024204748A1 (en) | A method for video coding | |
KR101926017B1 (en) | Method and apparatus for video encoding and decoding dependent on hierarchical structure of coding unit | |
KR20190053830A (en) | A method and an apparatus for decoding a video signal | |
US20250016375A1 (en) | Method and apparatus for decoding a video signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20190620 Patent event code: PA01071R01D Filing date: 20171129 Application number text: 1020170161466 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20190717 Comment text: Request for Examination of Application Patent event code: PA02011R04I Patent event date: 20190620 Comment text: Divisional Application of Patent |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190830 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20191226 |
|
PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20200326 Patent event code: PA01071R01D Filing date: 20171129 Application number text: 1020170161466 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20200327 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20200330 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20240207 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20250210 Start annual number: 6 End annual number: 6 |