KR20190044472A - Apparatus and Method for Video Encoding or Decoding - Google Patents
Apparatus and Method for Video Encoding or Decoding Download PDFInfo
- Publication number
- KR20190044472A KR20190044472A KR1020180001860A KR20180001860A KR20190044472A KR 20190044472 A KR20190044472 A KR 20190044472A KR 1020180001860 A KR1020180001860 A KR 1020180001860A KR 20180001860 A KR20180001860 A KR 20180001860A KR 20190044472 A KR20190044472 A KR 20190044472A
- Authority
- KR
- South Korea
- Prior art keywords
- scan pattern
- block
- current block
- transform coefficients
- scan
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000006870 function Effects 0.000 claims description 6
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000013139 quantization Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 8
- 230000011664 signaling Effects 0.000 description 8
- 238000005192 partition Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009466 transformation 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/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/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/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/184—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 bits, e.g. of the compressed video stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, 변환 계수들에 대해 수행되는 스캐닝 기법들에 관한 것이다. The present invention relates to image encoding or decoding for efficiently encoding an image. More particularly, to scanning techniques performed on transform coefficients.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다. The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.
HEVC 표준은 변환 계수들의 블록을 부호화하는 데 이용되는 세 가지 형태의 스캔 패턴을 지원한다. 도 1은 정사각형(8×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다. 도 1의 (a)는 대각(up-right diagonal) 스캔 패턴, (b) 수평(horizontal) 스캔 패턴, (c)는 수직(vertical) 스캔 패턴을 보인다. 도 1에 보인 바와 같이, 계수 블록 내 서브 블록들에 대한 스캔 순서는 각 서브 블록 내 계수들에 대한 스캔 순서와 동일한 형태이다. 예를 들어, 수평 스캔 패턴의 경우, 서브 블록들의 스캔 순서도 수평 방향이고, 각 서브 블록 내 계수들의 스캔 순서도 수평 방향이다. 다만, 실제 비트스트림에 실리는 순서는 스캔 패턴의 역순이다.The HEVC standard supports three types of scan patterns that are used to encode blocks of transform coefficients. 1 is a diagram showing exemplary scan patterns used for encoding a square (8x8) coefficient block. 1 (a) shows an up-right diagonal scan pattern, (b) a horizontal scan pattern, and (c) shows a vertical scan pattern. As shown in FIG. 1, the scan order for the sub-blocks in the coefficient block is the same as the scan order for the coefficients in each sub-block. For example, in the case of a horizontal scan pattern, the scan sequence of the sub-blocks is also the horizontal direction, and the scan sequence of the coefficients in each sub-block is also the horizontal direction. However, the sequence in the actual bit stream is the reverse of the scan pattern.
HEVC 표준에서는, 비-제로 계수들의 위치를 효율적으로 시그널링하기 위해, 몇몇 신택스 엘리먼트들이 이용된다. 예컨대, sub-block significant flag는 계수 블록에 대한 스캔 패턴 상 마지막 비-제로 계수(즉, 마지막 유효 계수)가 존재하는 마지막 유효 서브 블록에 선행하는 4×4 서브 블록들에 대해 표현되는 플래그로서, 해당 서브 블록 내 모든 계수들이 제로이면 "0", 하나 이상의 비-제로 계수가 존재하면 "1"로 표시된다. DC 성분이 포함된 좌상귀 서브 블록에 대해서는 sub-block significant flag가 시그널링되지 않는다. In the HEVC standard, several syntax elements are used to efficiently signal the location of non-zero coefficients. For example, a sub-block significant flag is a flag expressed for 4x4 subblocks preceding the last valid subblock where the last non-zero coefficient on the scan pattern for the coefficient block (i.e., the last significant coefficient) Quot; 0 " if all coefficients in the subblock are zero, and " 1 " if there is more than one nonzero coefficient. Sub-block significant flags are not signaled for left-ordered subblocks containing DC components.
도 2처럼 16×16 계수 블록에 3개의 비-제로 계수들이 존재하는 경우를 고려하자. 도 2에서, 회색으로 마킹된 픽셀은 비-제로 계수(즉, 유효 계수)를, 검정색으로 마킹된 픽셀은 스캔 패턴상 마지막 비-제로 계수(즉, 마지막 유효 계수)를 의미하며, 그 이외의 픽셀들은 모두 제로 값을 가지는 계수들을 의미한다. 대각 스캔 패턴의 경우에, 8개의 서브 블록(도 3의 (a)에 진하게 표시된 서브 블록들)에 대해 sub-block significant flag가 시그널링되어야 하며, 따라서 8비트가 소요된다. 수평 스캔 패턴의 경우, 2개의 서브 블록(도 3의 (b)에 진하게 표시된 서브 블록들)에 대해 sub-block significant flag가 시그널링되어야 하며, 따라서 2비트가 소요된다. 이와 같이, 주어진 계수 블록에 대해, sub-block significant flag가 시그널링되어야 하는 서브 블록들의 수가 스캔 패턴에 따라 달라지기 때문에, 계수 블록의 스캔 패턴을 알기 전에는 계수들의 관련 신택스 엘리먼트들의 파싱이 불가능하다. Consider the case where there are three non-zero coefficients in the 16x16 coefficient block as in Fig. In FIG. 2, the gray marked pixels represent non-zero coefficients (i.e., effective coefficients), the black marked pixels represent the last non-zero coefficients on the scan pattern (i.e., the last effective coefficients) Pixels are all coefficients having a zero value. In the case of a diagonal scan pattern, a sub-block significant flag must be signaled for eight subblocks (subblocks marked in FIG. 3 (a)), thus 8 bits are required. In the case of a horizontal scan pattern, a sub-block significant flag should be signaled for two subblocks (subblocks highlighted in FIG. 3 (b)), thus requiring two bits. Thus, for a given coefficient block, since the number of subblocks to which a sub-block significant flag is to be signaled depends on the scan pattern, it is not possible to parse the related syntax elements of the coefficients before knowing the scan pattern of the coefficient block.
HEVC에서는, 주어진 블록이 인터 예측 방식으로 부호화된 경우에는 해당 블록과 관련된 변환 계수들의 블록은 대각 스캔 패턴으로 스캐닝된다.In HEVC, when a given block is coded in an inter prediction scheme, the block of transform coefficients associated with the block is scanned in a diagonal scan pattern.
일부 인트라 코딩 모드는 종종, 블록의 좌측 수직 에지 또는 블록의 상측 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시킨다. 따라서, 다수의 경우에 있어서, 가로축 방향의 모드로 예측되는 블록의 계수들은 수직 스캔 패턴으로 스캔되는 것이 유리하고, 세로축 방향의 모드로 예측되는 블록의 계수들은 수평 스캔 패턴으로 스캔되는 것이 유리하다. 이를 고려하여, HEVC에서는, 일부 인트라 예측 모드(모드 번호 6 내지 14)에 대해 수직 스캔 패턴을 사용하고, 다른 일부 인트라 예측 모드(모드 번호 22 내지 30)까지는 수평 스캔 패턴을 사용하며, 나머지 인트라 예측 모드들에서는 대각 스캔 패턴을 사용한다. 즉, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에는 인트라 예측 모드에 따라 상기 세 가지 스캔 패턴 중 하나를 선택하여 해당 블록의 계수들을 스캐닝하게 된다.Some intra coding modes often generate distributions of significant coefficients biased toward the left vertical edge of the block or towards the top edge of the block. Therefore, in many cases, it is advantageous that the coefficients of the block predicted in the horizontal axis mode are scanned in the vertical scan pattern, and the coefficients of the block predicted in the vertical axis mode are scanned in the horizontal scan pattern. In consideration of this, in the HEVC, a vertical scan pattern is used for some intra prediction modes (
이와 같이, HEVC에서는, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에, 해당 인트라 예측 모드가 무엇이냐에 따라 해당 블록과 관련된 계수 블록의 스캔 패턴이 정해진다. 더욱이, 어떠한 인트라 예측 모드가 사용되었는지를 시그널링함에 있어서, 사용된 인트라 예측 모드의 번호(혹은 인덱스) 자체가 시그널링 되지 않고, MPM 인덱스 값이나 non-MPM 인덱스 값의 형태로 인트라 예측 모드가 시그널링 된다. 따라서, 해당 블록의 MPM 및 non-MPM 구성 정보를 알아야 해당 블록의 실제 인트라 예측 모드를 알 수 있으며, 해당 블록의 MPM 및 non-MPM 정보를 알기 위해서는 주변 블록의 인트라 예측 모드를 알아야 하고, 그 주변 블록의 인트라 예측 모드를 알기 위해서는 그 주변 블록의 주변 블록 정보를 알아야 한다. As described above, in the HEVC, when a given block is coded in the intra prediction mode, the scan pattern of the coefficient block related to the block is determined according to the intra prediction mode. Furthermore, in signaling which intra prediction mode is used, the intra prediction mode number is signaled in the form of an MPM index value or a non-MPM index value without signaling the number (or index) of the intra prediction mode used. Therefore, it is necessary to know the MPM and non-MPM configuration information of the corresponding block to know the actual intra prediction mode of the corresponding block. In order to know the MPM and non-MPM information of the corresponding block, In order to know the intra prediction mode of the block, the neighboring block information of the neighboring block must be known.
이상에서 설명한 바와 같이, 주어진 블록의 스캔 패턴을 알기 전에는 해당 블록과 관련된 변환 계수들에 관한 신택스 엘리먼트들의 파싱이 불가능한데, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에는, 영상 복호화 장치는 해당 블록의 인트라 예측 모드를 결정하기 전까지는 신택스 엘리먼트들의 파싱이 불가능하다. 즉, 주어진 블록의 주변 블록, 그 주변 블록의 주변 블록들의 인트라 예측 모드를 결정하기 전까지 변환 계수들에 관한 신택스 엘리먼트들의 파싱이 지연된다. As described above, before the scan pattern of a given block is known, it is impossible to parse the syntax elements related to the transform coefficients related to the block. When a given block is coded by the intra prediction method, The syntax elements can not be parsed until the intra prediction mode is determined. That is, the parsing of the syntax elements related to the transform coefficients is delayed until the intra-prediction mode of the neighboring block of the given block or the neighboring block of the neighboring block is determined.
본 발명은 위에서 설명한 단점을 제거할 수 있는 스캔 패턴의 결정 기법들을 제공하는 데 그 목적이 있다.It is an object of the present invention to provide scan pattern determination techniques capable of eliminating the disadvantages described above.
본 발명의 일 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서, 현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계; 상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 포함하는 방법을 제공한다. According to an aspect of the present invention, there is provided a method of determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the method comprising: determining whether a current block is coded in an intra- ; Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And if the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients, and if the current block is a horizontally long rectangle, a horizontal scan pattern is used as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
본 발명의 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서, 메모리 및 다음과 같은 단계들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는 장치를 제공한다. 상기 하나 이상의 프로세서들은, 현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계; 상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 수행하도록 구성된다. According to another aspect of the present invention there is provided an apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the apparatus comprising a memory and one or more processors configured to perform the following steps. Wherein the one or more processors determine whether a current block is coded in an intra prediction or an inter prediction; Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And if the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients, and if the current block is a horizontally long rectangle, a horizontal scan pattern is used as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
본 발명의 또 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서, 상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계를 포함하는 방법을 제공한다. According to another aspect of the present invention, there is provided a method of determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the method comprising parsing a syntax element indicating a position of a last valid coefficient in a block of the transform coefficients ; Determining whether a position of the last significant coefficient is greater than a preset threshold value; Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a preset threshold value do.
본 발명의 또 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서, 메모리 및 다음과 같은 단계들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는 장치를 제공한다. 상기 하나 이상의 프로세서들은, 상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계를 수행하도록 구성된다.According to another aspect of the present invention there is provided an apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process, the apparatus comprising a memory and one or more processors configured to perform the following steps . The one or more processors parsing a syntax element indicating a location of a last significant coefficient within a block of transform coefficients; Determining whether a position of the last significant coefficient is greater than a preset threshold value; Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And And determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a predetermined threshold value.
도 1은 정사각형(8×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다.
도 2는 3개의 비-제로 계수들이 존재하는 16×16 계수 블록의 일례를 도시한 도면이다.
도 3은 도 2의 16×16 계수 블록에 대해 유효한 서브 블록인지 여부를 시그널링해야 하는 서브 블록들의 개수를 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 블록도이다.
도 5는 QTBT 구조를 이용한 블록 분할의 예시도이다.
도 6은 복수의 인트라 예측 모드에 대한 예시를 나타낸다.
도 7은 현재 블록의 주변블록에 대한 예시도이다.
도 8은 비정사각형(8×16 혹은 16×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다.
도 9는 도 4의 영상 부호화 장치에서 사용되는 엔트로피 부호화부의 일 예를 도시하는 블록도이다.
도 10은 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치를 도시한 것이다.
도 11은 도 10의 영상 복호화 장치에서 사용되는 엔트로피 복호화부의 일 예를 도시하는 블록도이다.
도 12는 본 발명의 일 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다.
도 13은 본 발명의 다른 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다.1 is a diagram showing exemplary scan patterns used for encoding a square (8x8) coefficient block.
Figure 2 is an illustration of an example of a 16x16 coefficient block in which there are three non-zero coefficients.
FIG. 3 is a view for explaining the number of subblocks to be signaled whether a subblock is valid for the 16 × 16 coefficient block of FIG.
4 is a block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
5 is an illustration of block partitioning using a QTBT structure.
6 shows an example of a plurality of intra prediction modes.
7 is an exemplary view of neighboring blocks of the current block.
Fig. 8 is a diagram showing exemplary scan patterns used for encoding non-square (8 x 16 or 16 x 8) coefficient blocks.
9 is a block diagram showing an example of an entropy encoding unit used in the image encoding apparatus of FIG.
10 illustrates an image decoding apparatus capable of implementing the techniques of the present disclosure.
11 is a block diagram showing an example of an entropy decoding unit used in the video decoding apparatus of FIG.
12 is a flowchart illustrating a method of determining a scan pattern by the image decoding apparatus according to an embodiment of the present invention.
13 is a flowchart illustrating a method of determining a scan pattern by an image decoding apparatus according to another embodiment of the present invention.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that, in adding the identification codes to the constituent elements of the respective drawings, the same constituent elements are denoted by the same reference symbols as possible even if they are displayed on different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
이하에서 개시된 일부 스캐닝 기법은, 가로로 긴 직사각형 블록은, (참조 픽셀로부터 가까울수록 인트라 예측이 정교할 것이므로) 세로축 방향의 인트라 예측 모드로 부호화되는 경향이 강하고, 세로로 긴 직사각형 블록은 가로축 방향의 인트라 예측 모드로 부호화되는 경향이 강하다는 경험에 착안한다. 또한, 세로축 방향의 인트라 예측 모드는 종종 상측 수평 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시키고, 가로축 방향의 인트라 예측 모드는 좌측 수직 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시킨다는 점에 주목한다. 따라서, 가로로 긴 직사각형의 변환 계수들의 블록은 수평 스캔 패턴으로 스캐닝되는 것이 유리하고, 세로로 긴 직사각형의 변환 계수들의 블록은 수직 스캔 패턴으로 스캐닝되는 것이 유리하다고 볼 수 있다. 이에, 개시된 일부 스캐닝 기법에서는, 인트라 예측된 블록의 변환 계수들의 블록에 대한 스캔 패턴을 결정함에서, 스캔 패턴을 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지)에 연관시킨다. 즉, 현재 블록의 형태에 따라 스캔 패턴을 결정한다.In some scanning techniques described below, a horizontally long rectangular block has a strong tendency to be encoded in the intra-prediction mode in the vertical axis direction (since the intra-prediction is more accurate from the reference pixel), and the vertically long rectangular block has a strong It is noted that there is a strong tendency to be encoded in the intra prediction mode. Note also that the intra-prediction mode in the vertical axis generates distributions of the effective coefficients, which are often biased towards the upper horizontal edge, while the intra-prediction mode in the horizontal direction generates distributions of the effective coefficients biased towards the left vertical edge . Accordingly, it is advantageous that the block of transversal rectangular rectangular transform coefficients is advantageously scanned in the horizontal scan pattern, and the block of vertically long rectangle transform coefficients is scanned in the vertical scan pattern. Accordingly, in some scanning techniques, in determining a scan pattern for a block of transform coefficients of an intra-predicted block, the scan pattern may be in the form of a block (e.g., a horizontally long rectangle, a vertically long rectangle, . That is, the scan pattern is determined according to the type of the current block.
이하에서 개시된 다른 일부 스캐닝 기법은 복수의 가용 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서 실제 적용된 스캔 패턴을 명시적으로 시그널링하는 것이다. 예컨대, 복수의 가용 스캔 패턴들을 적용한 결과들을 압축 및/또는 영상 품질 측면에서 비교함으로써 영상 부호화 장치에서 바람직한 스캔 패턴을 결정할 수 있다. 영상 부호화 장치에 의해 선택된 스캔 패턴은 비트스트림 내의 인덱스로서(예를 들어, 블록 레벨 신택스로서) 영상 복호화 장치에 전달될 수 있다. Some other scanning techniques described below are to explicitly signal the actually applied scan pattern among a plurality of available scan patterns (e.g., diagonal, horizontal, and vertical scan patterns). For example, by comparing the results of applying the plurality of available scan patterns in terms of compression and / or image quality, a desired scan pattern can be determined in the image encoding apparatus. The scan pattern selected by the image encoding apparatus may be transmitted to the image decoding apparatus as an index in the bitstream (for example, as a block level syntax).
본 개시의 스캐닝 기법들에 따르면, 현재 블록에 연관된 양자화된 변환 계수들을 스캔하는 데에 사용되는 스캔 패턴은 현재 블록에 적용된 인트라 예측 모드(그에 따라, 이전에 복호화된 데이터 블록)에 관한 의존성을 더이상 가지지 않는다. 따라서, 스캔 패턴을 인트라 예측 모드와 연관시킴으로써 발생하는 계수에 관한 신택스 엘리먼트들의 파싱의 지연 문제가 해결된다. 또한, 복호화 장치는 인트라 예측 모드의 결정 프로세스와 스캔 패턴에 따른 2차원 변환 계수들의 블록의 재구성 프로세스를 병렬적으로 수행할 수 있다. According to the scanning techniques of the present disclosure, the scan pattern used to scan the quantized transform coefficients associated with the current block is no longer dependent on the intra prediction mode applied to the current block (and thus the previously decoded data block) Do not have. Thus, the problem of delaying the parsing of the syntax elements with respect to the coefficients arising by associating the scan pattern with the intra-prediction mode is solved. In addition, the decoding apparatus can perform a process of determining the intra prediction mode and a process of reconstructing a block of two-dimensional transform coefficients according to a scan pattern in parallel.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 블록도이다.4 is a block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
영상 부호화 장치는 블록 분할부(410), 예측부(420), 감산기(430), 변환부(440), 양자화부(445), 엔트로피 부호화부(450), 역양자화부(460), 역변환부(465), 가산기(470), 필터부(480) 및 메모리(490)를 포함한다. 영상 부호화 장치는 각 구성요소는 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image encoding apparatus includes a
블록 분할부(410)는 영상을 구성하는 각 픽처(picture)를 복수의 CTU(Coding Tree Unit)으로 분할한 이후에, CTU를 트리 구조(tree structure)를 이용하여 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU (coding unit)가 된다. 트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 이러한 QT 구조 및 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT) 구조를 혼용한 QTBT (QuadTree plus BinaryTree) 구조가 사용될 수 있다. 즉, CTU를 다수의 CU로 분할하기 위해 QTBT를 사용할 수 있다.The
QTBT (QuadTree plus BinaryTree) 구조에서, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달 할 때까지 반복 될 수 있다. 쿼드트리의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 크지 않은 경우, BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있다. 예컨대, 일부 예시에서, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. 또한, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태로는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태를 포함할 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태를 포함할 수도 있다.In a QTBT (QuadTree plus BinaryTree) structure, a CTU can be first divided into a QT structure. The quadtree partitioning can be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT. If the leaf node of the quadtree is not greater than the maximum block size (MaxBTSize) of the root node allowed in BT, it can be further partitioned into a BT structure. In BT, there may be a plurality of split types. For example, in some examples, there may be two types: a symmetric horizontal splitting and a vertically splitting type (i.e., symmetric vertical splitting) that divides a block of the node into two blocks of equal size horizontally. In addition, there may be additional types for dividing the block of the node into two asymmetric blocks. In the asymmetric form, the block of the node may be divided into two rectangular blocks having a size ratio of 1: 3, or the block of the corresponding node may be divided into diagonal directions.
도 5은 QTBT 구조를 이용한 블록 분할의 예시도이다. 도 5의 (a)는 QTBT 구조에 의해 블록이 분할되는 예시이고, (b)는 이를 트리구조로 표현한 것이다. 도 5에서 실선은 QT 구조에 의한 분할을, 점선은 BT 구조에 의한 분할을 나타낸다. 또한, 도 5의 (b)에서 layer 표기와 관련하여, 괄호가 없는 것은 QT의 레이어를, 괄호가 있는 것은 BT의 레이어를 나타낸다. 점선으로 표현된 BT 구조에서 숫자는 분할 타입 정보를 나타낸다.5 is an illustration of block partitioning using a QTBT structure. FIG. 5A is an example in which a block is divided by a QTBT structure, and FIG. 5B is a tree structure thereof. In FIG. 5, the solid line represents the division by the QT structure, and the dotted line represents the division by the BT structure. 5 (b), the absence of parentheses indicates a layer of QT, and the presence of parentheses indicates a layer of BT. In the BT structure represented by the dotted line, the numbers represent the division type information.
블록 분할부(410)가 QTBT 구조에 의해 CTU를 분할하여 생성하는 분할 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다. The partition information generated by the
이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBT의 리프 노드)에 해당하는 블록을 '현재 블록'이라 칭한다.Hereinafter, a block corresponding to a CU to be encoded or decoded (i.e., a leaf node of QTBT) is referred to as a 'current block'.
예측부(420)는 현재 블록을 예측하여 예측블록을 생성한다. 예측부(420)는 인트라 예측부(422)와 인터 예측부(424)를 포함한다. The
인트라 예측부(422)는 현재 블록이 포함된 현재 픽처 내에서 현재 블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재 블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측 모드가 존재하며, 각 예측 모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다. 특히, 인트라 예측부(422)는 현재 블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(422)는 여러 인트라 예측 모드들을 사용하여 현재 블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(422)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다. The
도 6은 복수의 인트라 예측 모드에 대한 예시를 나타낸다. 6 shows an example of a plurality of intra prediction modes.
도 6에 보인 바와 같이, 복수의 인트라 예측 모드는 2개의 비방향성 모드(planar 모드 및 DC 모드)와 65개의 방향성 모드를 포함할 수 있다.As shown in FIG. 6, the plurality of intraprediction modes may include two non-directional modes (planar mode and DC mode) and 65 directional modes.
인트라 예측부(422)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재 블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다.The
한편, 인트라 예측부(422)는, 복수의 인트라 예측 모드 중 어느 모드가 현재 블록의 인트라 예측 모드로 사용되었는지를 지시하는 인트라 예측 모드 정보를 효율적으로 부호화하기 위해, 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드로서 가능성이 높은 일부의 모드를 MPM(most probable mode)으로 결정할 수 있다. 그리고, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보를 생성하여 엔트로피 부호화부(450)로 전달한다. 일반적으로, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 엔트로피 부호화부(450)로 전달한다. 반면 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않은 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 엔트로피 부호화부(450)로 전달한다. In order to efficiently encode the intra prediction mode information indicating which of the plurality of intra prediction modes is used as the intra prediction mode of the current block, the
이하에서는, MPM 리스트를 구성하는 방법을 설명한다. 여기서는, 6개의 MPM으로 MPM 리스트를 구성하는 것을 예로 설명하나, 본 발명이 이에 한정되는 것은 아니며 MPM 리스트에 포함되는 MPM의 개수는 3개 내지 10개의 범위 내에서 선택될 수 있다.Hereinafter, a method of constructing the MPM list will be described. Here, the MPM list is constructed by six MPMs, but the present invention is not limited thereto. The number of MPMs included in the MPM list can be selected within a range of three to ten.
먼저, 현재 블록의 주변 블록들의 인트라 예측 모드를 이용하여 MPM 리스트를 구성한다. 주변 블록은, 예컨대 도 7에 도시된 바와 같이, 현재 블록의 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL) 중에서 전부 또는 일부를 포함할 수 있다. First, an MPM list is constructed using an intra prediction mode of neighboring blocks of the current block. The neighboring blocks are all or part of the left block L, the upper block A, the lower left block BL, the upper right block AR and the upper left block AL of the current block, for example, as shown in Fig. . ≪ / RTI >
이 주변 블록들의 인트라 예측 모드가 MPM 리스트에 포함된다. 여기서, 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순서로 유효한 블록의 인트라 예측 모드가 MPM 리스트에 포함되고, 이 주변 블록들의 인트라 예측 모드들에 planar 모드 및 DC 모드를 추가하여 후보를 구성한다. 또는, 좌측블록(L), 상단블록(A), planar 모드, DC 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다. 또는, 좌측블록(L), 상단블록(A), planar 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL), DC 모드의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다.The intra prediction modes of these neighboring blocks are included in the MPM list. Here, the intra prediction modes of the valid blocks in the order of the left block L, the upper block A, the lower left block BL, the upper right block AR and the upper left block AL are included in the MPM list, The candidates are constructed by adding the planar mode and the DC mode to the intra prediction modes of the blocks. Alternatively, a mode effective in the order of the left block L, the upper block A, the planar mode, the DC mode, the lower left block BL, the upper right block AR, and the upper left block AL may be added to the MPM list have. Alternatively, a mode effective in order of the left block L, the upper block A, the planar mode, the lower left block BL, the upper right block AR, the upper left block AL, and the DC mode may be added to the MPM list have.
MPM 리스트에는 서로 다른 인트라 예측 모드만이 포함된다. 즉, 중복된 모드(duplicated mode)가 존재하는 경우 그 중 하나의 모드만이 MPM 리스트에 포함된다.The MPM list includes only different intra prediction modes. That is, when there is a duplicated mode, only one mode is included in the MPM list.
만약, 리스트 내의 MPM의 개수가 기결정된 개수(예컨대, 6)보다 작은 경우에는, 리스트 내의 방향성 모드들에 -1 또는 +1을 가산하여 MPM을 유도할 수도 있다. 또한, 리스트 내의 MPM의 개수가 기결정된 개수보다 작은 경우에는, 수직 모드(vertical mode), 수직 모드(horizontal mode), 대각선 모드(diagonal mode) 등의 순서로 부족한 개수만큼의 모드를 MPM 리스트에 추가할 수도 있다.If the number of MPMs in the list is less than the predetermined number (e.g., 6), the MPM may be derived by adding -1 or +1 to the directional modes in the list. If the number of MPMs in the list is smaller than the predetermined number, a number of modes are added to the MPM list in the order of vertical mode, horizontal mode, and diagonal mode. You may.
인터 예측부(424)는 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재 블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재 블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재 블록과 참조 픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다.The
감산기(430)는 현재 블록으로부터 인트라 예측부(422) 또는 인터 예측부(424)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.The
변환부(440)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(440)는 잔차 블록 내의 잔차 신호들을 현재 블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브블록을 분할하고 서브블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다. The transforming
양자화부(445)는 변환부(440)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 엔트로피 부호화부(450)로 출력한다.The
역양자화부(460)는 양자화부(445)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(465)는 역양자화부(460)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.The
가산부(470)는 복원된 잔차블록과 예측부(420)에 의해 생성된 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.The
필터부(480)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(490)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The
엔트로피 부호화부(450)는 양자화된 변환 계수들을 CABAC 등의 엔트로피 부호화 방식을 사용하여 부호화하여 비트스트림을 생성한다. 또한, 엔트로피 부호화부(450)는 모션 벡터 정보 및 영상 복호화 장치에서 영상 데이터를 복호화할 때 유용한 다양한 신택스 엘리먼트들을 엔트로피 부호화할 수도 있다. 신택스 엘리먼트들은, 이를테면, 블록 분할 정보, 예측 타입에 대한 정보, 인트라 예측정보, 인터 예측정보 등을 포함할 수 있다. 또한, 신택스 엘리먼트들은 특정 계수들이 유효한지 (예를 들어, 비-제로인지) 여부를 나타내는 유효 계수 플래그 및 특정 계수가 마지막 유효 계수인지 여부를 나타내는 마지막 유효 계수 플래그를 갖는 유효도 맵을 포함할 수도 있다.The
양자화된 변환 계수들의 블록(즉, 계수 블록)을 엔트로피 코딩하기 위해, 스캐닝 프로세스가 일반적으로 수행되어 계수 블록 내의 계수들의 2차원 어레이가, 특정 스캔 패턴에 따라, 변환 계수들의 순서화된 1차원 어레이로 처리되도록 한다. 이러한 스캐닝 프로세스는 복수의 가용 스캔 패턴 중 하나를 이용하여 계수 블록에 대해 수행된다. 변환 계수들이 스캐닝되었다면, 엔트로피 부호화부(450)는 엔트로피 부호화를 계수들의 1차원 어레이에 적용한다. 스캐닝은 유효(즉, 비-제로) 계수들의 포지션들을 부호화하기 위해, 유효(즉, 비제로) 계수들의 레벨들을 부호화하기 위해, 그리고 유효 계수들의 부호들을 부호화하기 위해 적용될 수도 있다.In order to entropy code a block of quantized transform coefficients (i.e., coefficient block), a scanning process is generally performed such that a two-dimensional array of coefficients in the coefficient block is transformed into an ordered one-dimensional array of transform coefficients . This scanning process is performed on the coefficient block using one of a plurality of available scan patterns. If the transform coefficients have been scanned, the
본 개시에서는 엔트로피 부호화부(450)가 스캐닝을 수행하는 것으로 설명하고 있으나, 다른 예들에서는 다른 처리 유닛들(예컨대, 양자화부(460))이 본 개시의 스캐닝 기법들을 수행할 수도 있다는 점을 유의한다.Note that although the present disclosure describes the
도 8은 비정사각형(8×16 혹은 16×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다. 이들 스캔 패턴은 대각선 패턴(도 8의 (a)), 수직 스캔 패턴(도 8의 (b)), 및 수평 스캔 패턴(도 8의 (c))을 포함한다. 예시된 스캔 패턴들은 각각의 계수 블록 의 좌상귀 계수에서 시작하고 우하귀 계수에서 끝난다. 또한, 예시된 스캔 패턴들에서, 계수 블록 내 4×4 서브 블록들 및 각 서브 블록 내 계수들에 대해서 동일한 형태의 스캔 형태를 보인다.Fig. 8 is a diagram showing exemplary scan patterns used for encoding non-square (8 x 16 or 16 x 8) coefficient blocks. These scan patterns include a diagonal pattern (FIG. 8A), a vertical scan pattern (FIG. 8B), and a horizontal scan pattern (FIG. 8C). The illustrated scan patterns start at the left index coefficient of each coefficient block and end at the right edge coefficient. Also, in the illustrated scan patterns, the 4x4 sub-blocks in the coefficient block and the intra-sub-block coefficients have the same scan form.
도 9은 도 4의 영상 부호화 장치에서 사용되는 엔트로피 부호화부의 일 예를 도시하는 블록도이다. 도 9에 도시된 바와 같이, 엔트로피 부호화부는 스캔 패턴 선택부(910), 스캔부(920), 엔트로피 부호화 엔진(930), 및 스캔 패턴 메모리(940)를 포함할 수 있다. 도 9에는 엔트로피 부호화부의 기능적인 측면에서 구분된 콤포넌트들(910~940)이 도시되어 있지만, 이들 콤포넌트들(910~940)은 서로 고도로 통합될 수도 있음에 유의한다. 9 is a block diagram showing an example of an entropy encoding unit used in the image encoding apparatus of FIG. 9, the entropy encoding unit may include a scan
스캔 패턴 선택부(910)는 가용 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서, 유효도 맵 스캔 및 계수 레벨 스캔을 위해 스캔부(920)에 의해 사용될, 스캔 패턴을 선택한다. 몇몇 예시들에서, 스캔 패턴 선택부(910)는 가용한 스캔 패턴들을 적용한 결과들을 압축 및/또는 영상 품질 측면에서 비교함으로써, 바람직한 스캔 패턴을 결정할 수 있다. 몇몇 예시들에서, 스캔 패턴 선택부(910)는 예측 타입, 블록 사이즈, 변환 여부, 또는 부호화된 영상의 다른 특징들에 기초하여, 복수의 가용한 스캔 패턴들에서 하나의 스캔 패턴을 선택할 수도 있다. 스캔 메모리(940)는 특정 상황들에 대해 어떤 스캔 패턴을 사용할지를 정의하는 명령들, 테이블 및/또는 데이터를 저장할 수도 있다. 예컨대, 부호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캐닝)일 수 있다. 일부 실시예에서, 계수 블록 내 마지막 유효 계수의 위치가 기설정된 임계 위치(예컨대, 계수 블록의 크기의 절반)보다 크지 않은 경우에, 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)이 선택될 수 있다. 일부 실시예에서, 부호화하고자 하는 현재 블록이 인트라 예측된 경우, 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 하나의 스캔 패턴이 선택될 수 있다.The scan
스캔부(920)는 스캔 패턴 선택부(910)로부터 스캔 패턴을 수신하며, 수신된 스캔 패턴을 변환 계수들의 블록에 적용하여 변환 계수들의 블록으로부터 계수들의 1차원 어레이를 생성한다. The
엔트로피 부호화 엔진(930)은 엔트로피 부호화 프로세스를 스캐닝된 계수들에 적용하여 비트스트림을 생성할 수 있다. 엔트로피 부호화 프로세스는 계수들이 1차원 어레이로 스캐닝된 후에 적용될 수도 있다. 다른 예들에서는, 계수들은 스캔 패턴을 사용하여 2차원 어레이(즉, 계수 블록) 내에서 직접적으로 처리될 수도 있다. 변환 계수 데이터에 추가하여, 비트스트림 내의 부호화된 영상을 복호화하는 데에 유용한 움직임벡터 데이터 및 다양한 신택스 엘리먼트들이 비트스트림 내에 부호화될 수 있다. The
추가적으로, 엔트로피 부호화부는 엔트로피 부호화 프로세스에서 사용되는 스캔 패턴을 나타내는 시그널링을 비트스트림 내에 제공할 수도 있다. 예컨대, 스캔 패턴은 비트스트림 내의 인덱스로서(예를 들어, 블록 레벨 신택스로서) 영상 복호화 장치에 전달될 수도 있다. 특정 상황들에 대해 어떤 스캔 패턴을 사용할지가 미리 설정되어 있다면, 비트스트림 내에 시그널링을 제공할 필요성이 존재하지 않을 수도 있다. Additionally, the entropy encoding unit may provide signaling in the bitstream indicating the scan pattern used in the entropy encoding process. For example, the scan pattern may be passed to the image decoding device as an index in the bitstream (e.g., as block level syntax). If it is predetermined which scan patterns to use for certain situations, there may not be a need to provide signaling in the bitstream.
이하에서는 영상 복호화 장치에 대해 설명한다.Hereinafter, a video decoding apparatus will be described.
도 10는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치를 도시한 것이다.10 illustrates an image decoding apparatus capable of implementing the techniques of the present disclosure.
영상 복호화 장치는 엔트로피 복호화부(1010), 역양자화부(1020), 역변환부(1030), 예측부(1040), 가산기(1050), 필터부(1060) 및 메모리(1070)를 포함한다. 도 4의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image decoding apparatus includes an
엔트로피 복호화부(1010)는 영상 부호화 장치가 생성한 비트스트림에 CABAC 등의 엔트로피 복호화 프로세스를 적용하여, 현재 블록의 양자화된 변환 계수들의 1차원 어레이를 재구성할 수 있다. 또한, 엔트로피 복호화부(1010)는 엔트로피 복호화 프로세스를 적용하여 비트스트림 내에 부호화된 영상을 복호화하는 데에 유용한 움직임벡터 데이터, 및 다양한 신택스 엘리먼트들을 재생성할 수도 있다. The
엔트로피 복호화부(1010)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)과 같은 하이 레벨 신택스(high level syntax)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조(예컨대, QTBT 구조)를 이용하여 분할한다. The
엔트로피 복호화부(1010)는 트리 구조의 분할을 통해 복호화하고자 하는 현재 블록(현재 블록)을 결정하게 되면, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. When the current block (current block) to be decoded is determined through the division of the tree structure, the
예측 타입 정보가 인트라 예측을 지시하는 경우, 엔트로피 복호화부(1010)는 현재 블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 먼저, 엔트로피 복호화부(1010)는 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보(즉, MPM 플래그)를 추출한다. 또한, 일반적으로, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 추출하고, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않음을 지시하는 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 추출한다. When the prediction type information indicates intra prediction, the
한편, 엔트로피 복호화부(1010)는 현재 블록의 양자화된 변환 계수들의 1차원 어레이를, 영상 부호화 장치의 엔트로피 부호화부(460)에 의해 사용된 스캔 패턴을 미러링하는 스캔 패턴(즉, 역 스캔 패턴)을 사용하여 스캔하여, 다시 2차원 블록 포맷의 양자화된 변환 계수들의 블록(즉, 계수 블록)으로 재변환할 수 있다. The
엔트로피 복호화부(1010)는 부호화된 비트스트림 내의 시그널링에 기초하여 스캔 패턴을 결정할 수도 있다. 예를 들어, 엔트로피 복호화부(1010)는 스캔 패턴을 명백하게 시그널링하는 신택스 엘리먼트를 수신할 수도 있다. 또한, 몇몇 실시예들에서, 엔트로피 복호화부(1010)는, 시그널링 없이, 스캔 패턴을 추론하는 것이 가능할 수도 있다. 스캔 패턴의 추론은 예측 타입, 블록 사이즈, 변환 유무 등의 부호화된 영상의 다른 특징들에 기초할 수도 있다. 일부 예시에서, 영상 부호화 장치로부터 시그널링된 계수 블록 내 마지막 유효 계수의 위치가 기설정된 임계값(예컨대, 계수 블록의 크기의 절반)보다 큰 경우에, 엔트로피 복호화부(1010)는 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)을 사용할 수 있다. 일부 예시에서, 복호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캔)일 수 있다. 일부 예시에서, 복호화하고자 하는 현재 블록이 인트라 예측된 경우, 스캔 패턴은 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 추론될 수 있다.The
엔트로피 복호화부(1010)는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다. The
역양자화부(1020)는 양자화된 변환계수들을 역양자화하고 역변환부(1030)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재 블록에 대한 잔차블록을 생성한다.The
예측부(1040)는 인트라 예측부(1042) 및 인터 예측부(1044)를 포함한다. 인트라 예측부(1042)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(1044)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화된다.The
인트라 예측부(1042)는 엔트로피 복호화부(1010)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재 블록 주변의 참조 픽셀들을 이용하여 현재 블록을 예측한다. The
현재 블록의 인트라 예측 모드를 결정하기 위해, 인트라 예측부(1042)는 현재 블록의 주변 블록으로부터 기 결정된 개수의 MPM들을 포함하는 MPM 리스트를 구성한다. MPM 리스트를 구성하는 방법은 도 4의 인트라 예측부(422)와 동일하다. To determine the intra prediction mode of the current block, the
일반적으로, 인트라 예측의 모드 정보(즉, MPM 플래그)가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우에는, 인트라 예측부(1042)는 MPM 리스트 내의 MPM들 중 제1 인트라 식별정보에 의해 지시되는 MPM을 현재 블록의 인트라 예측 모드로 선택한다. 반면, 모드 정보가 현재 블록의 인트라 예측 모드가 MPM으로부터 선택되지 않음을 지시하는 경우, 제2 인트라 식별정보를 이용하여 MPM 리스트 내의 MPM들을 제외한 나머지 인트라 예측 모드들 중에서 현재 블록의 인트라 예측 모드를 결정한다. In general, when the intra prediction mode information (i.e., the MPM flag) indicates that the intra prediction mode of the current block is selected from the MPM, the
인터 예측부(1044)는 엔트로피 복호화부(1010)로부터 추출된 신택스 요소를 이용하여 현재 블록의 움직임정보를 결정하고, 결정된 움직임정보를 이용하여 현재 블록을 예측한다.The
가산기(1050)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.The
필터부(1060)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(1070)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 복호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The
도 11은 도 10의 영상 복호화 장치에서 사용되는 엔트로피 복호화부(1010)의 일 예를 도시하는 블록도이다. 도 11에 도시된 바와 같이, 엔트로피 복호화부는 스캔 패턴 선택부(1110), 스캔부(1120), 엔트로피 복호화 엔진(1130), 및 스캔 패턴 메모리(1140)를 포함할 수 있다. 도 11에는 엔트로피 복호화부의 기능적인 측면에서 구분된 콤포넌트들(1110~1140)이 도시되어 있지만, 이들 콤포넌트들(1110~1140)은 서로 고도로 통합될 수도 있음에 유의한다.11 is a block diagram showing an example of an
엔트로피 복호화 엔진(1130)은 엔트로피 복호화 프로세스, 예를 들어, CABAC 프로세스를 비트스트림에 적용하여 변환 계수들의 1차원 어레이를 재구성할 수 있다. 잔차 변환 계수 데이터에 추가하여, 엔트로피 복호화 엔진(1130)은 비트스트림에 엔트로피 복호화를 적용하여 비트스트림 내에 부호화된 영상을 복호화하는 데에 유용한 다양한 신택스 엘리먼트들을 재구성할 수도 있다.
스캔 패턴 선택부(1110)는 가용한 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서, 스캔부(1120)에 의해 사용될, 스캔 패턴을 선택한다. 몇몇 예시들에서, 스캔 패턴 선택부(1110)는 비트스트림 내의 시그널링에 기초하여 스캔 패턴을 결정할 수 있다. 예를 들어, 스캔 패턴 선택부(1110)는 스캔 패턴을 명시적으로 시그널링하는 신택스 엘리먼트(예컨대, 인덱스)을 엔트로피 복호화 엔진로부터 수신할 수도 있다. 몇몇 예시들에서, 스캔 패턴 선택부(1110)는, 시그널링의 수신 없이, 스캔 패턴을 추론할 수 있다. 스캔 패턴은 예측 타입, 블록 사이즈, 변환 여부, 또는 부호화된 영상의 다른 특징들에 기초할 수도 있다. 일부 실시예에서, 복호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캔)일 수 있다. 일부 실시예에서, 복호화하고자 하는 현재 블록이 인트라 예측된 경우, 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 추론될 수 있다. 스캔 패턴 메모리(1140)는 스캔 패턴을 정의하는 명령들, 테이블 및/또는 데이터를 저장할 수도 있다.The scan
스캔부(1120)는 스캔 패턴 선택부(1110)로부터 스캔 패턴을 수신하며, 수신된 스캔 패턴을 적용하여 변환 계수들의 1차원 어레이로부터 2차원 변환 계수의 블록을 생성한다. The scan unit 1120 receives a scan pattern from the scan
도 12는 본 발명의 일 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다. 도 12에 예시된 방법은 예를 들어, 도 10의 영상 복호화 장치의 엔트로피 복호화부(1010)에 의해 수행될 수도 있다. 다른 예들에서, 영상 복호화 장치의 하나 이상의 다른 유닛들이 추가적으로 본 개시의 기법들을 수행하는 데 관여할 수도 있다.12 is a flowchart illustrating a method of determining a scan pattern by the image decoding apparatus according to an embodiment of the present invention. The method illustrated in FIG. 12 may be performed, for example, by the
사전 단계로서, 영상 복호화 장치는, 영상 부호화 장치로부터 수신한 비트스트림을 엔트로피 복호화하여, 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재 블록을 결정할 수 있다. As a preliminary step, the video decoding apparatus entropy-decodes the bitstream received from the video encoding apparatus, extracts information related to the block division, and determines a current block to be decoded.
영상 복호화 장치는, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 판단하기 위해, 비트스트림으로부터 예측 타입에 대한 정보를 추출한다(S1210). The video decoding apparatus extracts information on the prediction type from the bitstream to determine whether the current block is intra-predicted or inter-predicted (S1210).
예측 타입에 대한 정보가 인터 예측되었다고 지시하는 경우에(S1210의 ‘아니오’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250). If it is determined that the information on the predictive type is inter-predicted (No in S1210), the image decoding apparatus determines the diagonal scan pattern as a scan pattern to be applied to the transform coefficients of the current block (S1250).
예측 타입에 대한 정보가 인트라 예측되었다고 지시하는 경우에(S1210의 ‘예’), 영상 복호화 장치는 현재 블록의 너비 및 높이가 각각 임계값(th)보다 작은지 여부를 더 판단한다(S1220). 현재 블록의 너비 및 높이 중 적어도 하나가 임계값보다 작지 않은 경우에(S1220의 ‘아니오’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250). 현재 블록의 너비 및 높이가 각각 임계값보다 작은 경우에(S1220의 ‘예’), 영상 복호화 장치는 현재 블록의 너비와 높이가 서로 동일한지 여부(즉, 현재 블록이 정사각형인지 여부)를 더 판단한다(S1230). If it is determined that the prediction type information is intra-predicted (Yes in S1210), the video decoding apparatus determines whether the width and height of the current block are smaller than the threshold value th (S1220). If at least one of the width and the height of the current block is not smaller than the threshold value (NO at S1220), the image decoding apparatus determines the diagonal scan pattern as a scan pattern to be applied to the transform coefficients of the current block (S1250) . If the width and height of the current block are respectively less than the threshold value (Yes in S1220), the image decoding apparatus judges whether the width and height of the current block are the same (i.e., whether the current block is a square) (S1230).
현재 블록의 너비와 높이가 동일한 경우에(즉, 현재 블록이 정사각형인 경우에; S1230의 ‘예’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250).If the width and height of the current block are the same (i.e., the current block is a square, YES in S1230), the image decoding apparatus determines a scan pattern to be applied to the transform coefficients of the current block (S1250).
현재 블록의 너비와 높이가 동일하지 않은 경우에(즉, 현재 블록이 정사각형이 아닌 경우에; S1230의 ‘아니오’), 영상 복호화 장치는 현재 블록의 높이가 너비보다 큰지 여부(즉, 현재 블록이 세로로 긴 직사각형인지 여부; S1240)를 더 판단한다. If the width and height of the current block are not equal to each other (i.e., the current block is not a square), the image decoding apparatus determines whether the height of the current block is greater than the width S1240) is further determined.
현재 블록의 높이가 너비보다 큰 경우에(즉, 현재 블록이 세로로 긴 직사각형인 경우에; S1240의 ‘예’), 영상 복호화 장치는 수직 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1260).If the current block height is greater than the width (i.e., if the current block is a vertically long rectangle; " Yes " in S1240), the image decoding apparatus sets the vertical scan pattern to a scan pattern (S1260).
현재 블록의 높이가 너비보다 작은 경우에(즉, 현재 블록이 가로로 긴 직사각형인 경우에; S1240의 ‘아니오’), 영상 복호화 장치는 수평 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1270).If the height of the current block is smaller than the width (i.e., if the current block is a horizontally elongated rectangle; " NO " in S1240), the image decoding apparatus adds a horizontal scan pattern to a scan pattern (S1270).
영상 복호화 장치는 결정된 스캔 패턴에 기초하여, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱한다.The video decoding apparatus determines, based on the determined scan pattern, syntax elements relating to positions of valid coefficients (e.g., valid (i.e., non-zero) coefficients on transform coefficients, syntax elements on levels of valid coefficients , And / or syntax elements for the signs of significant coefficients).
영상 복호화 장치는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다. The video decoding apparatus may be configured to generate syntax elements (e.g., valid (i.e., non-zero)) for transform coefficients based on a determined scan pattern to reconstruct a block of 2-dimensional quantized transform coefficients (i.e., Syntax elements for the positions of coefficients, syntax elements for the levels of significant coefficients, and / or syntax elements for the signs of significant coefficients).
도 13는 본 발명의 다른 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다. 본 실시예의 스캔 패턴 결정 방식은, 변환 계수들의 블록 내에서 스캔 패턴에 따른 마지막 유효 계수의 위치가 변환 블록 내 좌상귀 픽셀 (0,0) 위치에 충분히 가까우면 기설정된 디폴트 스캔 패턴을 사용하고, 반대로 (0,0)에서 멀리 떨어진 경우에는, 복수의 가용 스캔 패턴 중 영상 부호화 장치에 의해 선택된 스캔 패턴이 명시적으로 시그널링되는 방식이다. 13 is a flowchart illustrating a method of determining a scan pattern by an image decoding apparatus according to another embodiment of the present invention. The scan pattern determination method of this embodiment uses a predetermined default scan pattern if the position of the last valid coefficient according to the scan pattern in the block of transform coefficients is sufficiently close to the position of the left offset pixel (0,0) in the transform block, (0, 0), the scan pattern selected by the image encoding apparatus among the plurality of available scan patterns is explicitly signaled.
영상 복호화 장치는, 비트스트림으로부터, 계수 블록 내에서 스캔 패턴에 따른 마지막 유효 계수의 위치를 가리키는 정보를 추출한다. 마지막 유효 계수는 변수들 last_significant_coeff_x 및 last_significant_coeff_y에 의해 식별될 수 있다(S1310).The video decoding apparatus extracts, from the bit stream, information indicating the position of the last valid coefficient according to the scan pattern in the coefficient block. The last effective coefficient may be identified by the variables last_significant_coeff_x and last_significant_coeff_y (S1310).
영상 복호화 장치는 마지막 유효 계수의 위치가 기설정된 임계 위치(혹은 임계값)보다 큰지 여부를 판단한다(S1320). 상기 임계 위치는 현재 블록의 너비와 높이의 함수일 수 있으며, 현재 블록의 너비와 높이와 무관한 특정 상수일 수도 있다. 예를 들어, last_significant_coeff_x에 관련된 임계값은 "현재 블록의 너비/2"이고, last_signicant_coeff_y에 관련된 임계값은 "현재 블록의 높이/2"일 수 있다.The video decoding apparatus determines whether the position of the last valid coefficient is larger than a preset threshold position (S1320). The critical position may be a function of the width and height of the current block and may be a specific constant independent of the width and height of the current block. For example, the threshold associated with last_significant_coeff_x may be "width of current block / 2" and the threshold associated with last_signicant_coeff_y may be "height of current block / 2".
마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않은 경우에(S1320의 ‘아니오’), 영상 복호화 장치는 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1350).If the position of the last effective coefficient is not larger than the preset threshold value (NO in S1320), the image decoding apparatus sets the scan pattern (for example, diagonal scanning) set as the default to the scan pattern (S1350).
마지막 유효 계수의 위치가 기설정된 임계값보다 큰 경우에(S1320의 ‘예’), 영상 복호화 장치는 스캔 패턴 후보들의 세트 중에서 인코더에 의해 선택된 스캔 패턴을 가리키는 신택스 엘리먼트를 파싱한다(S1330). 영상 복호화 장치는 신택스 엘리먼트가 가리키는 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다. 신택스 엘리먼트는 스캔 패턴 후보들의 세트에서 선택된 스캔 패턴의 인덱스 값을 포함할 수 있다. 스캔 패턴을 표현하는 이진화 방법에는 TU(truncated unary) 코딩이 사용될 수 있다. 예를 들어, diagonal 스캐닝에 대해서는 “0”으로 표현하고, vertical 스캐닝에 대해서는 “10”으로 표현하며, horizontal 스캐닝에 대해서는 “11”로 표현 가능하다. 다른 예시로서, 스캔 패턴이 4개인 경우에, 각 스캔 패턴들은 2 bits의 FL(fixed length) 코드로 표현 가능하다. 또 다른 예시로서, 스캔 패턴이 2개인 경우에, 각 스캔 패턴들은 1bit의 FL(fixed length) 코드로 표현 가능하다. If the position of the last valid coefficient is larger than a predetermined threshold (YES in S1320), the image decoding apparatus parses a syntax element indicating a scan pattern selected by the encoder among the set of scan pattern candidates (S1330). The image decoding apparatus determines the scan pattern indicated by the syntax element as a scan pattern to be applied to the transform coefficients of the current block. The syntax element may include an index value of a scan pattern selected from a set of scan pattern candidates. TU (truncated unary) coding may be used for the binarization method of representing the scan pattern. For example, diagonal scanning can be expressed as "0", vertical scanning can be expressed as "10", and horizontal scanning can be expressed as "11". As another example, when there are four scan patterns, each scan pattern can be represented by a fixed length (FL) code of 2 bits. As another example, when there are two scan patterns, each scan pattern can be represented by a fixed length (FL) code of 1 bit.
영상 복호화 장치는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, S1330 또는 S1350 단계에서 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다. The image decoding apparatus generates syntax elements (e.g., valid (i. E., Valid (i. E., Valid (i. E., The coefficient block)) for the transform coefficients based on the scan pattern determined in step S1330 or S1350 to reconstruct a block of two- , Syntax elements for the positions of the coefficients, syntax elements for the levels of significant coefficients, and / or syntax elements for the signs of the significant coefficients).
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present embodiment, and various modifications and changes may be made to those skilled in the art without departing from the essential characteristics of the embodiments. Therefore, the present embodiments are to be construed as illustrative rather than restrictive, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.
Claims (12)
현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계;
상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및
상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계;
를 포함하는, 방법.A method for determining a scan pattern to be applied to transform coefficients of a current block in a video decoding process,
Determining whether a current block is coded in an intra prediction mode or an inter prediction mode;
Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And
If the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients. If the current block is a horizontally long rectangle, a horizontal scan pattern is determined as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients;
/ RTI >
상기 현재 블록의 너비 및 높이를 각각 기설정된 임계값과 비교하는 과정; 및
상기 현재 블록의 너비 및 높이가 각각 기설정된 임계값보다 작지 않으면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 포함하는, 방법.The method according to claim 1,
Comparing a width and a height of the current block with predetermined threshold values, respectively; And
Determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients if the width and height of the current block are not less than a predetermined threshold, respectively.
상기 현재 블록이 인터 예측 방식으로 부호화된 경우에,
대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 포함하는, 방법.The method according to claim 1,
When the current block is coded by the inter prediction method,
Determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
메모리; 및
하나 이상의 프로세서들을 포함하며,
상기 하나 이상의 프로세서들은,
현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계;
상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및
상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 수행하도록 구성된 것을 특징으로 하는, 장치.An apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process,
Memory; And
Comprising one or more processors,
The one or more processors,
Determining whether a current block is coded in an intra prediction mode or an inter prediction mode;
Comparing a width and a height of the current block with each other when the current block is coded in an intra prediction mode; And
If the current block is a vertically long rectangle, a vertical scan pattern is determined as a scan pattern to be applied to the transform coefficients. If the current block is a horizontally long rectangle, a horizontal scan pattern is determined as a scan pattern to be applied to the transform coefficients And if the block of transform coefficients is square, determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients.
상기 하나 이상의 프로세서들은,
상기 현재 블록의 너비 및 높이를 각각 기설정된 임계값과 비교하는 과정; 및
상기 현재 블록의 너비 및 높이가 각각 기설정된 임계값보다 작지 않으면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 수행하도록 구성된 것을 특징으로 하는, 장치.5. The method of claim 4,
The one or more processors,
Comparing a width and a height of the current block with predetermined threshold values, respectively; And
And to determine a diagonal scan pattern as a scan pattern to be applied to the transform coefficients if the width and height of the current block are not less than predetermined threshold values respectively.
상기 하나 이상의 프로세서들은,
상기 현재 블록이 인터 예측 방식으로 부호화된 경우에, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 수행하도록 구성된 것을 특징으로 하는, 장치.5. The method of claim 4,
The one or more processors,
And a step of determining a diagonal scan pattern as a scan pattern to be applied to the transform coefficients when the current block is coded by the inter prediction method.
상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계;
상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계;
상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및
상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계;
을 포함하는 것을 특징으로 하는, 방법.A method for determining a scan pattern to be applied to transform coefficients of a current block in a video decoding process,
Parsing a syntax element indicating a location of a last significant coefficient within the block of transform coefficients;
Determining whether a position of the last significant coefficient is greater than a preset threshold value;
Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And
Determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a preset threshold value;
≪ / RTI >
상기 기설정된 임계값은,
상기 변환 계수의 크기의 함수인 것을 특징으로 하는, 방법.8. The method of claim 7,
The predetermined threshold value may be a predetermined threshold value,
And a function of the magnitude of the transform coefficients.
상기 디폴트로 설정된 스캔 패턴은,
대각 스캔 패턴인 것을 특징으로 하는, 방법.8. The method of claim 7,
The scan pattern set to the default,
Gt; is a diagonal scan pattern. ≪ / RTI >
명령어들을 저장하는 메모리; 및
하나 이상의 프로세서들을 포함하며,
상기 명령어들은 상기 하나 이상의 프로세서들에 의해 수행되는 경우에, 상기 장치로 하여금
상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계;
상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계;
상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및
상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계;
를 수행하도록 구성된 것을 특징으로 하는, 장치.An apparatus for determining a scan pattern to be applied to transform coefficients of a current block in an image decoding process,
A memory for storing instructions; And
Comprising one or more processors,
Wherein the instructions, when performed by the one or more processors,
Parsing a syntax element indicating a location of a last significant coefficient within the block of transform coefficients;
Determining whether a position of the last significant coefficient is greater than a preset threshold value;
Parsing a syntax element indicating a scan pattern for a one-dimensional array of the transform coefficients from a plurality of available scan patterns if the position of the last effective coefficient is greater than a predetermined threshold; And
Determining a scan pattern set as a default among the plurality of available scan patterns as a scan pattern for the one-dimensional array of the transform coefficients if the position of the last effective coefficient is not greater than a preset threshold value;
And to perform the processing.
상기 기설정된 임계값은,
상기 변환 계수의 크기의 함수인 것을 특징으로 하는, 장치.11. The method of claim 10,
The predetermined threshold value may be a predetermined threshold value,
Is a function of the magnitude of the transform coefficients.
상기 디폴트로 설정된 스캔 패턴은,
대각 스캔 패턴인 것을 특징으로 하는, 장치.11. The method of claim 10,
The scan pattern set to the default,
Wherein the device is a diagonal scan pattern.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2018/012477 WO2019078693A1 (en) | 2017-10-20 | 2018-10-22 | Apparatus and method for image encoding or decoding |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170136811 | 2017-10-20 | ||
KR20170136811 | 2017-10-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190044472A true KR20190044472A (en) | 2019-04-30 |
KR102628530B1 KR102628530B1 (en) | 2024-01-24 |
Family
ID=66285884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180001860A KR102628530B1 (en) | 2017-10-20 | 2018-01-05 | Apparatus and Method for Video Encoding or Decoding |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102628530B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150003319A (en) * | 2012-04-16 | 2015-01-08 | 퀄컴 인코포레이티드 | Coefficient groups and coefficient coding for coefficient scans |
KR101569259B1 (en) * | 2010-10-22 | 2015-11-13 | 퀄컴 인코포레이티드 | Adaptive scanning of transform coefficients for video coding |
KR20160121462A (en) * | 2011-01-13 | 2016-10-19 | 삼성전자주식회사 | Method and appratus for encoding video using selective scan mode, method and appratus for decoding video using selective scan mode |
-
2018
- 2018-01-05 KR KR1020180001860A patent/KR102628530B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101569259B1 (en) * | 2010-10-22 | 2015-11-13 | 퀄컴 인코포레이티드 | Adaptive scanning of transform coefficients for video coding |
KR20160121462A (en) * | 2011-01-13 | 2016-10-19 | 삼성전자주식회사 | Method and appratus for encoding video using selective scan mode, method and appratus for decoding video using selective scan mode |
KR20150003319A (en) * | 2012-04-16 | 2015-01-08 | 퀄컴 인코포레이티드 | Coefficient groups and coefficient coding for coefficient scans |
Also Published As
Publication number | Publication date |
---|---|
KR102628530B1 (en) | 2024-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020211775A1 (en) | Methods and apparatuses for coding video data with adaptive secondary transform signaling depending on tb level syntax | |
KR102081350B1 (en) | Intra-prediction method, and encoder and decoder using same | |
JP2022113848A (en) | Video signal processing method and device using secondary conversion | |
JP7293376B2 (en) | Intra-prediction-based video signal processing method and apparatus | |
WO2020211777A1 (en) | Methods and apparatuses for coding video data with secondary transform | |
KR20200110214A (en) | Method and apparatus for intra prediction in which prediction unit is divided into sub-units | |
KR20200110220A (en) | Method and apparatus for efficiently coding residual block | |
US20210274164A1 (en) | Inter-prediction method and video decoding apparatus using the same | |
US12022082B2 (en) | Method for reconstructing residual blocks of chroma blocks, and video decoding apparatus | |
KR20200113173A (en) | Method and Apparatus for Intra Prediction Based on Deriving Prediction Mode | |
KR20220118351A (en) | Method for generating prediction block using weighted sum of intra prediction signal and inter prediction signal and apparatus using the same | |
KR102628530B1 (en) | Apparatus and Method for Video Encoding or Decoding | |
CN114521326A (en) | Video signal processing method and apparatus using scaling | |
KR20200073124A (en) | Filtering method and apparatus | |
US11956427B2 (en) | Method of restoration in subblock units, and video decoding apparatus | |
KR20240045089A (en) | Method and Apparatus for Video Coding Based on Non-separable Primary Transform | |
KR20210025507A (en) | Video Encoding and Decoding Using Differential Coding | |
KR20210037506A (en) | Method and apparatus for reconstructing residual block of chroma block | |
KR20200136299A (en) | Method and apparatus for deriving reference samples | |
KR20220071129A (en) | Method for Encoding and Decoding Video Using Adaptive Reference Sample Selection | |
KR20230005506A (en) | Video Encoding And Decoding Method Using Transform Coefficients Sign Bit Hiding | |
KR20240078343A (en) | Method and Apparatus for Video Encoding and Decoding for Predicting and Modifying Split Structure of Coding Tree Unit | |
KR20200110237A (en) | Method and Apparatus for Video Decoder Using Differential Coding | |
KR20200132762A (en) | Method and apparatus for reconstructing chroma block | |
KR20200112623A (en) | Method for reconstructing in unit of sub-block and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) |