KR20100122450A - A method and an apparatus for processing a video signal - Google Patents
A method and an apparatus for processing a video signal Download PDFInfo
- Publication number
- KR20100122450A KR20100122450A KR1020100043470A KR20100043470A KR20100122450A KR 20100122450 A KR20100122450 A KR 20100122450A KR 1020100043470 A KR1020100043470 A KR 1020100043470A KR 20100043470 A KR20100043470 A KR 20100043470A KR 20100122450 A KR20100122450 A KR 20100122450A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- macroblock
- current
- intra prediction
- prediction mode
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
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
현재 매크로 블록의 매크로 블록 타입이 인트라 믹스드인 경우, 상기 현재 매크로 블록의 파티션에 대한 블록 타입 식별 정보를 획득하여 상기 현재 매크로 블록의 파티션에 대한 블록 타입을 특정하고, 상기 현재 매크로 블록의 파티션에 대한 블록 타입에 따라 상기 현재 매크로 블록의 인트라 예측 모드를 획득함으로써 상기 현재 매크로 블록을 예측할 수 있다. 16x16 보다 큰 매크로 블록의 경우, 다양한 블록 타입을 적응적으로 이용함으로써 매크로 블록 타입을 코딩함에 필요한 비트수를 줄일 수 있어 코딩의 효율성을 향상시킬 수 있다.If the macro block type of the current macro block is intra mixed, the block type identification information of the partition of the current macro block is obtained by specifying block type identification information of the partition of the current macro block, and the block type of the partition of the current macro block is specified. The current macroblock may be predicted by obtaining an intra prediction mode of the current macroblock according to the block type. In the case of macro blocks larger than 16 × 16, the number of bits required for coding the macro block type can be reduced by adaptively using various block types, thereby improving coding efficiency.
Description
본 발명은 인트라 또는 인터 예측 및 블록 단위 부호화에 관한 방법과 장치에 관한 것이다.The present invention relates to a method and apparatus for intra or inter prediction and block unit coding.
영상 신호의 압축률을 높이기 위해 시간적 중복성과 공간적 중복성을 제거하는 방법 즉, 인트라 또는 인터 예측을 수행하며, 직교 변환 및 벡터 양자화 등의 기술을 이용한다.In order to increase the compression rate of an image signal, a method of removing temporal redundancy and spatial redundancy, that is, intra or inter prediction is performed, and techniques such as orthogonal transform and vector quantization are used.
본 발명의 목적은 인트라 예측을 이용하여 비디오 신호를 효율적으로 처리하고자 함에 있다.An object of the present invention is to efficiently process a video signal using intra prediction.
본 발명의 또 다른 목적은 출력 영역에 속하지 아니하는 영역을 코딩함에 필요한 비트수를 줄이고자 함에 있다.Another object of the present invention is to reduce the number of bits required for coding an area not belonging to an output area.
상기 목적을 달성하기 위하여 본 발명은 16x16 보다 큰 매크로 블록인 경우 I 슬라이스의 매크로 블록 타입을 정의하고, 그에 따른 상기 매크로 블록의 예측 블록의 크기 및 인트라 예측 모드를 획득하는 방법을 제시한다.In order to achieve the above object, the present invention provides a method for defining a macroblock type of an I slice when a macroblock larger than 16 × 16 and obtaining a size and an intra prediction mode of a prediction block of the macroblock accordingly.
본 발명은 슬라이스 타입에 따라 경계 매크로 블록의 매크로 블록 타입을 정의하고, I 슬라이스의 경계 매크로 블록에 대해서는 예측 블록의 크기 및 인트라 예측 모드를 결정하는 방법을 제시하고, P 슬라이스 또는 B 슬라이스의 경계 매크로 블록에 대해서는 스킵 모드를 이용한 인터 예측 방법을 제시한다.The present invention defines a macroblock type of the boundary macroblock according to the slice type, and proposes a method for determining the size of the prediction block and the intra prediction mode for the boundary macroblock of the I slice, and the boundary macro of the P slice or the B slice. For the block, an inter prediction method using a skip mode is presented.
본 발명에 따르면, 비디오 영상의 크기가 커짐에 따라 16x16 보다 큰 매크로 블록을 적응적으로 이용함으로써 매크로 블록 타입을 코딩함에 필요한 비트수를 줄일 수 있어 코딩의 효율성을 향상시킬 수 있다. I 슬라이스의 매크로 블록의 경우에도 서브 매크로 블록 단위로 코딩함으로써, 예측의 정확성을 높일 수 있으며, 동시에 상기 매크로 블록의 예측 블록의 크기를 변환 크기 정보에 기초하여 결정함으로써, 매크로 블록 타입을 코딩함에 필요한 비트수를 줄일 수 있어 코딩의 효율성도 향상시킬 수 있다. 경계 매크로 블록에 대한 매크로 블록 타입, 인트라 예측 모드, 모션 정보 등을 별도로 전송하지 아니하고 디코더에서 유도하거나 결정하도록 함으로써, 상기 매크로 블록 타입, 인트라 예측 모드, 모션 정보 등을 코딩함에 필요한 비트수를 줄일 수 있다.According to the present invention, as the size of a video image increases, the number of bits required for coding a macroblock type can be reduced by adaptively using a macroblock larger than 16 × 16, thereby improving coding efficiency. Even in the case of macroblocks of I slices, the prediction accuracy can be improved by coding in units of sub-macroblocks, and at the same time, the size of the prediction block of the macroblocks is determined based on the transform size information. By reducing the number of bits, coding efficiency can be improved. By deciding or determining the macro block type, intra prediction mode, motion information, etc. for the boundary macro block without separately transmitting, the number of bits required for coding the macro block type, intra prediction mode, motion information, etc. can be reduced. have.
도 1은 비디오 신호 디코딩 장치의 개략적인 블록도이다.
도 2는 매크로 블록 타입 및 변환 크기 정보를 이용하여 매크로 블록을 디코딩하는 장치를 도시한 것이다.
도 3은 매크로 블록 타입 및 변환 크기 정보를 이용하여 매크로 블록을 디코딩하는 과정을 도시한 블록도이다.
도 4는 매크로 블록이 32x32인 경우, P 매크로 블록 및 B 매크로 블록의 서브 매크로 블록 타입을 도시한 테이블이다.
도 5는 매크로 블록이 32x32인 경우, 인트라 매크로 블록 타입의 일 실시예를 도시한 것이다.
도 6은 매크로 블록 타입 정보 및 블록 타입 지시 정보를 이용하여 서브 매크로 블록을 디코딩하는 방법을 도시한 블록도 이다.
도 7은 블록 타입 지시 정보를 이용하여 서브 매크로 블록 타입을 결정하는 방법의 일 실시예를 도시한 블록도이다.
도 8은 매크로 블록이 인트라 모드로 코딩되는 경우, 매크로 블록의 인트라 예측 모드를 획득하는 방법을 도시한 블록도이다.
도 9는 경계 매크로 블록 및 경계 서브 매크로 블록을 도시한 것이다.
도 10은 I슬라이스의 경우, 경계 매크로 블록 내의 서브 매크로 블록을 디코딩하는 방법을 도시한 블록도이다.
도 11은 넌-경계 서브 매크로 블록의 인트라 예측 모드를 설정하는 방법의 일실시예를 도시한 것이다.
도 12는 P 슬라이스 또는 B 슬라이스의 경우, 경계 매크로 블록 내의 서브 매크로 블록을 디코딩하는 방법을 도시한 블록도이다.
도 13은 P 슬라이스 또는 B 슬라이스 내의 경계 매크로 블록의 위치에 따라 매크로 블록 타입을 결정하는 방법을 도시한 것이다.1 is a schematic block diagram of a video signal decoding apparatus.
2 illustrates an apparatus for decoding a macro block using macro block type and transform size information.
3 is a block diagram illustrating a process of decoding a macro block using macro block type and transform size information.
4 is a table showing sub macroblock types of P macroblock and B macroblock when the macroblock is 32x32.
5 illustrates an embodiment of an intra macro block type when the macro block is 32x32.
6 is a block diagram illustrating a method of decoding a sub macroblock using macroblock type information and block type indication information.
7 is a block diagram illustrating an embodiment of a method of determining a sub macroblock type using block type indication information.
8 is a block diagram illustrating a method of obtaining an intra prediction mode of a macro block when the macro block is coded in the intra mode.
9 illustrates a boundary macro block and a boundary sub macro block.
FIG. 10 is a block diagram illustrating a method of decoding a sub macro block in a boundary macro block in the case of an I slice.
11 illustrates one embodiment of a method for setting an intra prediction mode of a non-boundary sub macro block.
12 is a block diagram illustrating a method of decoding a sub macro block within a boundary macro block in the case of a P slice or a B slice.
FIG. 13 illustrates a method of determining a macroblock type according to a position of a boundary macroblock in a P slice or a B slice.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms or words used in the specification and claims should not be construed as having a conventional or dictionary meaning, and the inventors should properly explain the concept of terms in order to best explain their own invention. Based on the principle that can be defined, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.
먼저, 매크로 블록에 대해서 살펴보기로 한다. 매크로 블록은 비디오 프레임을 처리하기 위한 기본 단위로서, 16x16 화소로 이루어진 영역으로 정의할 수 있다. 그러나, 비디오 영상의 크기가 커짐에 따라 16x16 보다 큰 영역으로 정의될 수도 있다. 예를 들어, 매크로 블록은 32x32, 또는 64x64 화소로 이루어진 영역으로 정의할 수 있다. 이 경우, 16x16 보다 큰 매크로 블록은 종래보다 해상도가 큰 비디오 프레임을 처리하기 위한 기본 단위가 될 수 있다.First, the macro block will be described. The macro block is a basic unit for processing a video frame and may be defined as an area composed of 16 × 16 pixels. However, as the size of the video image increases, it may be defined as an area larger than 16 × 16. For example, the macro block may be defined as an area consisting of 32x32 or 64x64 pixels. In this case, a macroblock larger than 16 × 16 may be a basic unit for processing a video frame having a larger resolution than that of the prior art.
16x16 보다 큰 매크로 블록은 비디오 영상의 해상도에 따라 적응적으로 이용될 수 있다. 예를 들어, 비디오 영상의 해상도가 VGA이하인 경우에는 매크로 블록의 크기를 16x16으로 설정할 수 있으며, 이에 따라 매크로 블록의 파티션으로서 16x8, 8x16, 8x8, 4x8, 8x4, 4x4 크기의 블록들이 사용될 수 있다. 해상도가 VGA 이상 1080P 이하인 경우에는 매크로 블록의 크기를 32x32으로 설정할 수 있으며, 이에 따라 32x16, 16x32, 16x16, 16x8, 8x16, 8x8 크기의 블록들이 사용될 수 있고, 해상도가 1080P 이상 4Kx2K 이하인 경우에는 매크로 블록의 크기를 64x64으로 설정할 수 있으며, 64x32, 32x64, 32x32, 32x16, 16x32, 16x16 크기의 블록들이 사용될 수 있다. 다만, 인코더에서는 비디오 영상의 해상도에 따라 16x16 매크로 블록 또는 16x16 보다 큰 매크로 블록 가운데서 최적의 매크로 블록의 크기를 결정할 수 있다. 상기 결정된 매크로 블록의 크기 정보는 슬라이스 레벨이나 시퀀스 레벨에서 디코더로 전송될 수 있으며, 이에 따라 매크로 블록의 크기를 적응적으로 이용할 수 있다.Macro blocks larger than 16 × 16 may be adaptively used depending on the resolution of the video image. For example, when the resolution of the video image is less than or equal to VGA, the size of the macro block may be set to 16x16. Accordingly, blocks of size 16x8, 8x16, 8x8, 4x8, 8x4, and 4x4 may be used as partitions of the macroblock. If the resolution is VGA or higher than 1080P or less, the size of the macro block can be set to 32x32. Thus, 32x16, 16x32, 16x16, 16x8, 8x16, and 8x8 sized blocks can be used, and if the resolution is 1080P or higher and 4Kx2K or lower, The size of can be set to 64x64, and 64x32, 32x64, 32x32, 32x16, 16x32, and 16x16 blocks can be used. However, the encoder may determine an optimal macroblock size among 16x16 macroblocks or macroblocks larger than 16x16 according to the resolution of the video image. The determined size information of the macroblock may be transmitted to the decoder at the slice level or the sequence level, and thus the size of the macroblock may be adaptively used.
매크로 블록의 크기에 따른 매크로 블록 타입에 대해서 살펴보기로 한다. 매크로 블록 타입은 매크로 블록의 예측 모드에 따라, 즉, 인트라 모드인지 인터 모드인지 여부에 따라 각각 정의될 수 있다. 매크로 블록은 일정 크기의 블록 단위로 예측되며, 이하 예측 블록의 크기 정보는 상기 일정 크기의 블록 단위와 동일한 의미로 사용될 수 있다. 매크로 블록 타입은 예측 블록의 크기 정보를 포함할 수 있으며, 인터 예측을 수행하는 매크로 블록 타입은 참조 방향에 대한 정보도 포함할 수 있다.The macro block type according to the size of the macro block will be described. The macroblock type may be defined according to the prediction mode of the macroblock, that is, whether it is intra mode or inter mode. The macro block is predicted in units of a predetermined size, and the size information of the predicted block may be used as the same meaning as the unit of the predetermined size. The macro block type may include size information of the prediction block, and the macro block type for performing inter prediction may also include information about a reference direction.
구체적으로 살펴보면, 인트라 모드로 코딩된 매크로 블록은 16x16화소, 8x8화소, 4x4화소의 블록 단위로 코딩될 수 있다. 인터 모드로 코딩된 매크로 블록은 모션 보상을 위해 16x16화소, 16x8화소, 8x16화소 8x8화소가 매크로 블록 타입으로 사용되며, 8x8화소가 사용될 경우 8x4화소, 4x8화소, 4x4화소가 서브 매크로 블록 타입으로 사용될 수 있다.Specifically, the macro block coded in the intra mode may be coded in block units of 16x16 pixels, 8x8 pixels, and 4x4 pixels. The macro block coded in inter mode is used as the macro block type for 16x16 pixels, 16x8 pixels, 8x16 pixels and 8x8 pixels for motion compensation, and 8x4 pixels, 4x8 pixels, and 4x4 pixels are used as sub macro block types when 8x8 pixels are used. Can be.
이하, 16x16 보다 큰 매크로 블록에 따른 매크로 블록 타입을 정의하고자 한다. 비디오 영상의 크기가 커짐에 따라 상대적으로 크기가 작은 매크로 블록 타입은 사용빈도가 감소할 것인바, 이러한 매크로 블록 타입에 대한 정보를 제거할 수 있고, 그에 따라 매크로 블록 타입에 할당된 비트수를 줄일 수 있다. 예를 들어, 비디오 영상의 해상도가 VGA이하인 경우라면 앞서 설명한 매크로 블록 타입을 이용할 수 있다. 그러나, 해상도가 VGA 이상 1080P 이하인 경우라면, 8x8화소보다 작은 매크로 블록 타입은 이용하지 아니할 수 있다. 즉, 인트라 모드로 코딩된 매크로 블록은 16x16화소, 8x8화소의 블록 단위로 코딩될 수 있으며, 인터 모드로 코딩된 매크로 블록은 16x16화소, 16x8화소, 8x16화소 8x8화소가 매크로 블록 타입으로 이용될 수 있다. 이 경우 서브 매크로 블록 타입으로 8x4화소, 4x8화소, 4x4화소가 이용되지 않을 수 있다. 해상도가 1080P 이상 4Kx2K 이하인 경우라면, 16x16화소보다 작은 매크로 블록 타입은 이용하지 아니할 수 있다. 즉, 인트라 모드로 코딩된 블록 및 인터 모드로 코딩된 블록에 대해서는 16x16화소가 매크로 블록 타입으로 이용될 수 있다.Hereinafter, a macro block type according to a macro block larger than 16 × 16 will be defined. As the size of the video image increases, the relatively small size of the macroblock type will reduce the frequency of use. Therefore, information about the macroblock type can be removed, thereby reducing the number of bits allocated to the macroblock type. Can be. For example, if the resolution of the video image is less than or equal to VGA, the macro block type described above may be used. However, if the resolution is VGA or more and 1080P or less, a macroblock type smaller than 8x8 pixels may not be used. That is, the macro block coded in the intra mode may be coded in block units of 16x16 pixels and 8x8 pixels, and in the macro block coded in the inter mode, 16x16 pixels, 16x8 pixels, and 8x16 pixels 8x8 pixels may be used as the macro block type. have. In this case, 8x4 pixels, 4x8 pixels, and 4x4 pixels may not be used as the sub macroblock type. If the resolution is 1080P or more and 4Kx2K or less, a macroblock type smaller than 16x16 pixels may not be used. That is, 16x16 pixels may be used as a macroblock type for blocks coded in an intra mode and blocks coded in an inter mode.
마찬가지로 인코더에서는 비디오 영상의 해상도에 따라 최적의 매크로 블록 타입을 결정할 수 있고, 상기 결정된 매크로 블록 타입 정보는 슬라이스 레벨이나 시퀀스 레벨에서 디코더로 전송될 수 있으며, 이에 따라 매크로 블록 타입을 적응적으로 이용할 수 있다.Similarly, the encoder can determine the optimal macroblock type according to the resolution of the video image, and the determined macroblock type information can be transmitted to the decoder at the slice level or the sequence level, thereby adaptively using the macroblock type. have.
도 1은 비디오 신호 디코딩 장치의 개략적인 블록도이다. 1 is a schematic block diagram of a video signal decoding apparatus.
도 1을 참조하면, 본 발명의 비디오 신호 디코딩 장치는 엔트로피 디코딩부(110), 역양자화부(120), 역변환부(125), 디블록킹 필터링부(130), 복호 픽쳐 저장부(140), 인터 예측부(150), 인트라 예측부(160)를 포함한다. Referring to FIG. 1, the video signal decoding apparatus of the present invention includes an
엔트로피 코딩부(110)는 비디오 신호 비트스트림을 엔트로피 디코딩하여 각 매크로 블록의 변환 계수, 모션 벡터, 참조 픽쳐 인덱스 등을 추출한다. 역양자화부(120)는 엔트로피 디코딩된 변환 계수를 역양자화하고, 역변환부(125)는 역양자화된 변환 계수를 이용하여 원래의 화소값을 복원한다. 디블록킹 필터링부(130)는 블록 왜곡 현상을 감소시키기 위해 각각의 코딩된 매크로 블록에 적용된다. 필터링을 거친 픽쳐는 출력되거나 참조 픽쳐로 이용하기 위해 복호 픽쳐 저장부(140)에 저장된다. 인터 예측부(150)는 복호 픽쳐 저장부(140)에 저장된 참조 픽쳐와 엔트로피 디코딩부(110)로부터 전달받은 인터 예측 정보(참조 픽쳐 인덱스, 모션 벡터 등)를 이용하여 현재 픽쳐를 예측할 수 있다. 구체적으로 살펴보면, 비디오 신호로부터 현재 블록에 인접한 블록(이하, 이웃 블록이라 함.)의 모션 벡터를 추출하고, 상기 이웃 블록으로부터 상기 현재 블록의 모션 벡터 예측값을 획득할 수 있다. 상기 이웃 블록이라 함은 현재 블록의 좌측, 상단, 우측 상단의 블록을 포함할 수 있다. 예를 들어, 상기 이웃 블록들의 모션 벡터의 수평 성분과 수직 성분 각각의 중앙값을 사용하여 현재 블록의 모션 벡터 예측값을 획득하는 것으로 설정할 수 있다. 또는, 현재 블록의 좌측 블록이 하나 이상의 인터 모드로 코딩된 예측 블록을 가지는 경우에는 그 중 가장 상단에 위치한 예측 블록의 모션 벡터를 이용하여 현재 블록의 모션 벡터의 예측값을 획득하는 것으로 설정할 수도 있다. 현재 블록의 상단 블록이 하나 이상의 인터 모드로 코딩된 예측 블록을 가지는 경우에는 그 중 가장 좌측에 위치한 예측 블록의 모션 벡터를 이용하여 현재 블록의 모션 벡터의 예측값을 획득하는 것으로 설정할 수도 있다. 이웃 블록 중 현재 블록의 상단, 우측 상단의 블록이 픽쳐 또는 슬라이스의 경계 밖에 위치할 경우, 좌측 블록의 모션 벡터를 현재 블록의 모션 벡터의 예측값으로 설정할 수 있다. 이웃 블록 중 현재 블록과 참조 픽쳐 인덱스가 같은 블록이 하나만 있는 경우에는 그 블록의 모션 벡터를 예측에 사용하는 것으로 설정할 수 있다.The
매크로 블록 타입에 따른 매크로 블록의 파티션에 기초하여 모션 벡터의 예측값을 획득할 수도 있다. 예를 들어, 현재 매크로 블록 타입에 따른 상기 현재 매크로 블록의 파티션이 8x16 인 경우, 상기 현재 매크로 블록의 파티션의 인덱스가 0이면, 상기 현재 매크로 블록의 좌측 블록을, 현재 블록의 인덱스가 1이면, 현재 블록의 우측 상단 블록을 예측에 사용하는 것으로 설정할 수 있다. 현재 매크로 블록 타입에 따른 매크로 블록의 파티션이 16x8 인 경우, 상기 매크로 블록의 파티션의 인덱스가 0이면, 현재 블록의 상단 블록을, 상기 매크로 블록의 파티션의 인덱스가 1이면, 현재 블록의 좌측 블록을 예측에 사용하는 것으로 설정할 수 있다. A prediction value of the motion vector may be obtained based on a partition of the macro block according to the macro block type. For example, when the partition of the current macroblock according to the current macroblock type is 8x16, if the index of the partition of the current macroblock is 0, the left block of the current macroblock, if the index of the current block is 1, It can be set to use the upper right block of the current block for prediction. If the partition of the macro block according to the current macro block type is 16x8, if the index of the partition of the macro block is 0, the upper block of the current block, if the index of the partition of the macro block is 1, the left block of the current block Can be set to use for prediction.
현재 블록의 모션 벡터 예측값을 획득함에 있어서, 이웃 블록으로부터 추출가능한 여러 가지의 모션 벡터를 모션 벡터 예측값의 후보자로 정의할 수 있다. 상기 모션 벡터 예측값의 후보자는 상기 설명한 바와 같이 이웃 블록 중 어느 하나의 블록의 모션 벡터, 이웃 블록의 모션 벡터들의 중앙값 또는 평균값 등을 포함할 수 있으며, 이웃 블록의 모션 벡터의 빈도수를 고려하여 상기 모션 벡터의 예측값의 후보자를 결정할 수도 있으나, 이에 한정되지 아니한다. 그에 따라 인코더에서는 모션 벡터 예측값의 후보자 중 현재 블록의 모션 벡터 예측값으로 가장 효율성이 좋은 모션 벡터를 선택하고, 상기 선택된 모션 벡터 정보를 디코더로 전송할 수 있다. 상기 선택된 모션 벡터 정보는 슬라이스 레벨 또는 매크로 블록 레벨에서 획득될 수 있다. 상기 모션 벡터 예측값의 후보자를 인덱스를 이용하여 정의할 수도 있으며, 상기 선택된 모션 벡터 정보는 상기 인덱스를 포함할 수 있다. In obtaining the motion vector prediction value of the current block, various motion vectors extractable from the neighboring block may be defined as candidates for the motion vector prediction value. As described above, the candidate of the motion vector prediction value may include a motion vector of one of the neighboring blocks, a median or an average value of the motion vectors of the neighboring blocks, and the motion in consideration of the frequency of the motion vector of the neighboring block. The candidate of the predicted value of the vector may be determined, but is not limited thereto. Accordingly, the encoder may select the most efficient motion vector as the motion vector prediction value of the current block among candidates of the motion vector prediction value, and transmit the selected motion vector information to the decoder. The selected motion vector information may be obtained at a slice level or a macro block level. Candidates of the motion vector prediction value may be defined using an index, and the selected motion vector information may include the index.
현재 블록의 모션 벡터와 모션 벡터 예측값간의 차분 벡터만을 부호화함으로써 부호화해야 할 비트량을 줄일 수 있다. 상기 획득된 모션 벡터 예측값과 비디오 신호로부터 추출되는 차분 벡터를 이용하여 현재 블록의 모션을 보상한다. 또한, 이러한 모션 보상은 하나의 참조 픽쳐를 이용하여 수행될 수도 있고, 복수의 픽쳐를 이용하여 수행될 수도 있다.By encoding only the difference vector between the motion vector of the current block and the motion vector prediction value, the amount of bits to be encoded can be reduced. The motion of the current block is compensated by using the obtained motion vector prediction value and the difference vector extracted from the video signal. In addition, such motion compensation may be performed using one reference picture or may be performed using a plurality of pictures.
예를 들어, 매크로 블록이 16x16 인 경우, 인터 예측을 위해 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4까지 총 7종류의 파티션이 사용될 수 있다. 이들은 매크로 블록 타입 또는 서브 매크로 블록 타입으로 계층화하여 표시될 수 있다. 구체적으로 예측 블록의 크기는 매크로 블록 타입으로 표시될 수 있으며, 16x16, 16x8, 8x16, 8x8 중 하나가 선택될 수 있다. 만일 8x8 이 선택되면, 서브 매크로 블록 타입으로 8x8, 8x4, 4x8, 4x4 중 하나의 파티션이 선택될 수 있다.For example, when the macroblock is 16x16, a total of seven partitions up to 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, and 4x4 may be used for inter prediction. These may be displayed hierarchically by macro block type or sub macro block type. In more detail, the size of the prediction block may be represented by a macro block type, and one of 16x16, 16x8, 8x16, and 8x8 may be selected. If 8x8 is selected, one of 8x8, 8x4, 4x8, and 4x4 partitions may be selected as the sub macroblock type.
예측 블록마다 참조 픽쳐 인덱스와 모션 벡터를 코딩할 수 있다. 또는, 참조 픽쳐 인덱스는 매크로 블록마다, 모션 벡터는 예측 블록마다 코딩할 수도 있다. 서브 매크로 블록에서도 매크로 블록과 동일하게 코딩 방식을 결정할 수 있다. 상기 언급한 인터 예측에 관련된 내용은 이하 인터 예측을 수행하는 경우에 동일하게 적용될 수 있음을 이해하여야 한다. A reference picture index and a motion vector may be coded for each prediction block. Alternatively, the reference picture index may be coded for each macro block and the motion vector for each prediction block. In the sub macro block, the coding scheme may be determined in the same manner as the macro block. It should be understood that the above-described content related to inter prediction may be equally applied to the following inter prediction.
스킵 매크로 블록은 스킵 모드로 코딩된 매크로 블록을 의미할 수 있으며, 이는 현재 매크로 블록을 복원함에 있어서, 현재 매크로 블록에 대한 정보, 즉, 모션 벡터, 참조 픽쳐 인덱스, 및 레지듀얼 데이터를 가지지 아니하고, 이전에 코딩된 참조 픽쳐 내의 매크로 블록의 화소값을 그대로 이용하는 방식으로 정의할 수 있다. 스킵 매크로 블록 코딩함에 있어서, 모션 벡터를 이용한 모션 보상이 수반될 수 있으며, 상기 모션 벡터는 이웃 블록을 이용하여 유도될 수 있다. 이웃 블록으로부터 상기 모션 벡터를 유도하는 방법은 앞서 설명한 모션 벡터 유도 방법을 동일하게 적용할 수 있다. 이하, B 스킵 매크로 블록의 모션 벡터 및 참조 픽쳐 인덱스를 유도하는 방법에 대해서 살펴보기로 한다. List1 참조 픽쳐 중 가장 작은 참조 인덱스를 가지는 픽쳐를 앵커 픽쳐라고 정의할 수 있다. 그리고, 상기 현재 블록과 같은 공간 위치에 있는 앵커 픽쳐의 블록을 앵커 블록이라고 정의할 수 있다.The skip macro block may mean a macro block coded in a skip mode, and when reconstructing the current macro block, the skip macro block does not have information about the current macro block, that is, motion vector, reference picture index, and residual data, The pixel value of the macro block in the previously coded reference picture may be defined as it is. In skip macroblock coding, motion compensation using a motion vector may be involved, and the motion vector may be derived using a neighboring block. The method of deriving the motion vector from the neighboring block may apply the same method of the motion vector derivation described above. Hereinafter, a method of deriving a motion vector and a reference picture index of a B skip macro block will be described. A picture having the smallest reference index among List1 reference pictures may be defined as an anchor picture. The block of the anchor picture at the same spatial location as the current block may be defined as an anchor block.
예를 들어, 상기 앵커 블록의 모션 정보를 이용하여 현재 블록의 모션 정보를 예측할 수 있다. 상기 앵커 블록의 List0 방향의 모션 벡터를 mvCol 이라 정의할 수 있다. 이때, 상기 앵커 블록의 List0 방향의 모션 벡터가 없고, List1 방향의 모션 벡터가 있다면 List1 방향의 모션 벡터를 mvCol 로 할 수 있다. 여기서, B 픽쳐의 경우, 임의의 두 장을 참조 픽쳐로 사용할 수 있는데, 이 때 이용되는 예측을 List0 예측, List1 예측이라 한다. 예를 들어, List0 예측은 포워드 방향에 대한 예측을, List1 예측은 백워드 방향에 대한 예측을 의미할 수 있다.For example, the motion information of the current block may be predicted using the motion information of the anchor block. The motion vector in the List0 direction of the anchor block may be defined as mvCol. At this time, if there is no motion vector in the List0 direction of the anchor block and there is a motion vector in the List1 direction, the motion vector in the List1 direction may be mvCol. Here, in the case of the B picture, any two sheets may be used as reference pictures, and the prediction used at this time is called List0 prediction or List1 prediction. For example, List0 prediction may mean prediction for the forward direction, and List1 prediction may mean prediction for the backward direction.
현재 블록의 List0 참조 픽쳐는 상기 mvCol 이 참조하는 픽쳐가 되고, List1 참조 픽쳐는 앵커 픽쳐가 된다. 만일, 상기 앵커 블록이 모션 정보를 가지지 않는 경우(예를 들어, 인트라 모드로 코딩된 경우) 모션 벡터의 크기는 0이 되고, List0 참조 픽쳐는 참조 픽쳐 인덱스가 -1이 된다.The List0 reference picture of the current block becomes the picture referenced by the mvCol, and the List1 reference picture becomes the anchor picture. If the anchor block does not have motion information (eg, coded in an intra mode), the size of the motion vector is 0, and the reference picture index of the List0 reference picture is -1.
또한, 모션 벡터 mvCol로부터 List0의 모션 벡터 mvL0와 List1의 모션 벡터 mvL1을 구할 수 있다. 참조 픽쳐, 현재 픽쳐, 그리고 앵커 픽쳐 사이에서 모션의 속도가 일정하다고 가정하면, mvL0 와 mvL1의 크기는 참조 픽쳐, 현재 픽쳐, 앵커 픽쳐의 시간 간격에 비례하게 된다. 따라서, 참조 픽쳐와 현재 픽쳐의 간격, 그리고 참조 픽쳐와 앵커 픽쳐의 간격을 이용해서 mvL0와 mvL1을 구할 수 있다. 구체적으로 살펴보면, 앵커 블록의 List0 참조 인덱스가 장기 참조 픽쳐를 참조하고 있는 경우에는 다음 수학식 1과 같이 구할 수 있다.Further, the motion vector mvL0 of List0 and the motion vector mvL1 of List1 can be obtained from the motion vector mvCol. Assuming that the velocity of motion is constant between the reference picture, the current picture, and the anchor picture, the sizes of mvL0 and mvL1 are proportional to the time intervals of the reference picture, the current picture, and the anchor picture. Therefore, mvL0 and mvL1 can be obtained using the distance between the reference picture and the current picture and the distance between the reference picture and the anchor picture. In detail, when the List0 reference index of the anchor block refers to the long-term reference picture, it may be obtained as in
앵커 블록의 List0 참조 인덱스가 장기 참조 픽쳐를 참조하고 있지 않은 경우에는 다음 수학식 2와 같이 구할 수 있다.When the List0 reference index of the anchor block does not refer to the long-term reference picture, it can be obtained as in
한편, 공간 방향의 모션 정보 상관도를 이용하여 현재 블록의 모션 정보를 예측할 수도 있다. 이 경우, 상기 앵커 픽쳐와 앵커 블록이 모션 정보를 유도하는데 사용될 수 있다. Meanwhile, the motion information of the current block may be predicted using the motion information correlation in the spatial direction. In this case, the anchor picture and the anchor block may be used to derive motion information.
먼저, 현재 슬라이스의 예측 모드를 식별하게 된다. 예를 들어, 현재 슬라이스의 슬라이스 타입이 B 슬라이스인 경우, B 스킵 모드가 이용될 수 있다. 그리고, 현재 블록의 이웃 블록들의 모션 정보를 획득할 수 있다. 예를 들어, 현재 블록의 좌측에 있는 블록을 이웃 블록 A, 상측에 있는 블록을 이웃 블록 B, 우측 상위에 있는 블록을 이웃 블록 C라 하면, 상기 이웃 블록 A,B,C의 모션 정보를 획득할 수 있다. 상기 이웃 블록들의 모션 정보를 이용하여 현재 블록의 List0 또는 List1 방향에 대한 참조 픽쳐 인덱스를 유도할 수 있다. 그리고, 상기 현재 블록의 참조 픽쳐 인덱스에 기초하여 제 1 변수를 유도할 수 있다. 상기 제 1 변수는 현재 블록의 모션 벡터를 임의의 값으로 예측하기 위해 이용되는 변수를 의미할 수 있다. 예를 들어, 현재 블록의 List0 또는 List1 방향에 대한 참조 픽쳐 인덱스는 상기 이웃 블록들의 참조 픽쳐 인덱스들 중에서 가장 작은 값으로 유도될 수 있다. 이 경우, 다음 수학식 3이 이용될 수 있다.First, the prediction mode of the current slice is identified. For example, when the slice type of the current slice is a B slice, the B skip mode may be used. In addition, motion information of neighboring blocks of the current block may be obtained. For example, if the block on the left of the current block is the neighbor block A, the block on the upper side is the neighbor block B, and the block on the upper right is the neighbor block C, motion information of the neighbor blocks A, B, and C is obtained. can do. The reference picture index of the List0 or List1 direction of the current block may be derived using the motion information of the neighboring blocks. The first variable may be derived based on the reference picture index of the current block. The first variable may mean a variable used to predict the motion vector of the current block with an arbitrary value. For example, the reference picture index for the List0 or List1 direction of the current block may be derived to the smallest value among the reference picture indexes of the neighboring blocks. In this case,
구체적 예로, MinPositive(0,1) = 0 이 된다. 즉, 두 개의 유효한 인덱스가 존재하는 경우 작은 값을 얻을 수 있다. 또는 MinPositive(-1,0) = 0 이 된다. 즉, 하나의 유효한 인덱스가 존재하는 경우 유효한 인덱스 값인 큰 값을 얻을 수 있다. 또는 MinPositive(-1,-1) = -1 이 된다. 즉, 두 개가 모두 유효하지 않은 인덱스인 경우, 예를 들어, 두 개의 이웃 블록이 모두 인트라 모드로 코딩된 블록이거나 두 개의 이웃 블록을 이용할 수 없는 경우에는 큰 값인 -1 값을 얻게 된다. 결국, 결과값이 유효하지 않은 값이 나오려면 하나라도 유효한 값이 있으면 안된다.As a concrete example, MinPositive (0,1) = 0. That is, if two valid indexes exist, a small value can be obtained. Or MinPositive (-1,0) = 0. That is, when one valid index exists, a large value that is a valid index value can be obtained. Or MinPositive (-1, -1) = -1. That is, when both are invalid indexes, for example, when two neighboring blocks are both coded in an intra mode or two neighboring blocks are not available, a large value of -1 is obtained. As a result, there must be no valid value for the result to be invalid.
먼저, 상기 제 1 변수의 초기값으로, 상기 제 1 변수를 0으로 셋팅할 수 있다. 또한, 상기 유도된 List0 또는 List1 방향에 대한 참조 픽쳐 인덱스가 모두 0보다 작을 경우, 상기 현재 블록의 List0 또는 List1 방향에 대한 참조 픽쳐 인덱스는 0으로 셋팅될 수 있다. 그리고, 상기 제 1 변수는, 상기 현재 블록의 참조 픽쳐가 존재하지 않음을 나타내기 위한 값으로 셋팅될 수 있다. 이 때, 상기 유도된 List0 또는 List1 방향에 대한 참조 픽쳐 인덱스가 모두 0보다 작은 경우란, 예를 들면, 상기 이웃 블록이 인트라 모드로 코딩된 블록일 경우, 또는 상기 이웃 블록이 이용가능하지 않게 되는 경우를 의미할 수 있다. 이러한 경우, 상기 제 1 변수를 1로 셋팅함으로서 현재 블록의 모션 벡터를 0으로 셋팅할 수 있게 된다.First, the first variable may be set to 0 as an initial value of the first variable. In addition, when the derived reference picture indexes for the List0 or List1 direction are all less than zero, the reference picture index for the List0 or List1 direction of the current block may be set to zero. The first variable may be set to a value indicating that a reference picture of the current block does not exist. In this case, when the derived reference picture indices for the List0 or List1 directions are all less than 0, for example, when the neighboring block is a block coded in an intra mode or the neighboring block becomes unavailable. It may mean a case. In this case, by setting the first variable to 1, the motion vector of the current block can be set to 0.
본 실시예에서는 3개의 이웃 블록을 이용하게 되므로, 결국 3개의 이웃 블록 모두가 인트라 모드로 코딩된 블록이거나 이용할 수 없는 경우, 현재 블록의 참조 픽쳐 인덱스가 유효하지 않은 -1 값을 가질 수 있게 된다. 따라서, 현재 블록의 참조 픽쳐 인덱스가 모두 유효하지 않은 경우 상기 제 1 변수가 1로 셋팅될 수 있다. 즉, 현재 블록이 사용할 참조 픽쳐가 존재하지 않는 경우에 상기 제 1 변수가 1로 셋팅될 수 있다.Since three neighboring blocks are used in the present embodiment, when all three neighboring blocks are blocks coded or unavailable in intra mode, the reference picture index of the current block may have an invalid value of -1. . Therefore, when all of the reference picture indices of the current block are invalid, the first variable may be set to one. That is, the first variable may be set to 1 when there is no reference picture to be used by the current block.
앵커 픽쳐 내의 앵커 블록의 모션 정보를 이용하여 제 2 변수를 유도할 수 있다. 상기 제 2 변수는 현재 블록의 모션 벡터를 임의의 값으로 예측하기 위해 이용되는 변수를 의미할 수 있다. 예를 들어, 앵커 블록의 모션 정보가 일정한 조건을 만족하는 경우에 상기 제 2 변수를 1로 셋팅할 수 있다. 그리고, 상기 제 2 변수가 1로 셋팅되는 경우, 현재 블록의 List0 또는 List1 방향에 대한 모션 벡터를 0으로 셋팅할 수 있게 된다. 상기 일정한 조건은 다음과 같을 수 있다. 첫째, List1 방향에 대한 참조 픽쳐 중 가장 작은 참조 인덱스를 가지는 픽쳐가 단기 참조 픽쳐이어야 한다. 둘째, 앵커 블록의 참조하는 픽쳐의 참조 인덱스가 0 이어야 한다. 셋째, 앵커 블록의 모션 벡터의 수평 성분, 수직 성분 크기가 ±1 화소 이하이어야 한다. 이처럼, 상기 일정한 조건을 모두 만족하는 경우에 모션이 거의 없는 영상에 가깝다고 판단하여 현재 블록의 모션 벡터를 0으로 셋팅하는 것이다.The second variable may be derived by using motion information of the anchor block in the anchor picture. The second variable may mean a variable used to predict the motion vector of the current block with an arbitrary value. For example, when the motion information of the anchor block satisfies a predetermined condition, the second variable may be set to one. When the second variable is set to 1, the motion vector for the List0 or List1 direction of the current block can be set to 0. The constant condition may be as follows. First, the picture having the smallest reference index among the reference pictures for the List1 direction should be a short-term reference picture. Second, the reference index of the reference picture of the anchor block should be zero. Third, the horizontal component and vertical component size of the motion vector of the anchor block should be ± 1 pixel or less. As such, when all of the above predetermined conditions are satisfied, the motion vector of the current block is set to 0 by determining that the image is close to the image having little motion.
상기 유도된 제 1 변수와 제 2 변수에 기초하여 현재 블록의 모션 정보를 예측할 수 있다. 예를 들어, 상기 제 1 변수가 1로 셋팅될 경우, 현재 블록의 List0 또는 List1 방향에 대한 모션 벡터를 0으로 셋팅할 수 있다. 또한, 상기 제 2 변수를 1로 셋팅할 경우, 현재 블록의 List0 또는 List1 방향에 대한 모션 벡터를 0으로 셋팅할 수 있게 된다. 여기서, 0 또는 1로 셋팅하는 것은 일 실시예일 뿐이며, 상기 제 1 변수 또는 상기 제 2 변수는 다른 일정한 값으로 셋팅하여 이용할 수도 있다. The motion information of the current block may be predicted based on the derived first variable and the second variable. For example, when the first variable is set to 1, the motion vector for List0 or List1 direction of the current block may be set to 0. In addition, when the second variable is set to 1, the motion vector for the List0 or List1 direction of the current block can be set to 0. Here, setting to 0 or 1 is only an example, and the first variable or the second variable may be set to another constant value.
상기 일정한 조건을 만족하지 않는 경우에는 현재 픽쳐내의 이웃 블록들의 모션 정보로부터 현재 블록의 모션 정보를 유도할 수 있다. 예를 들어, 모션 벡터의 경우, 상기 스킵 매크로 블록의 모션 벡터 유도 방법이 동일하게 적용될 수 있다. If the predetermined condition is not satisfied, motion information of the current block may be derived from motion information of neighboring blocks in the current picture. For example, in the case of a motion vector, the motion vector derivation method of the skip macro block may be equally applied.
참조 픽쳐 인덱스는 좌측, 상단, 우측 상단에 위치한 모션 벡터의 참조 픽쳐 인덱스 가운데 최소값을 계산하고, 이를 현재 블록의 참조 픽쳐 인덱스로 할 수 있다. 상기 설명한 스킵 모드에 관련된 내용은 이하 현재 블록이 스킵 모드로 코딩되는 경우에 동일하게 적용될 수 있음을 이해하여야 한다.The reference picture index may calculate a minimum value among the reference picture indexes of the motion vectors located at the left, the top, and the upper right, and may use this as the reference picture index of the current block. It should be understood that the contents related to the skip mode described above may be equally applied to the case where the current block is coded in the skip mode.
인트라 예측부(160)는 현재 픽쳐내의 복원된 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 상기 현재 픽쳐내의 복원된 픽셀은 디블록킹 필터링이 적용되지 아니한 픽셀일 수 있다. 상기 예측된 현재 픽쳐와 역변환부로부터 나온 레지듀얼이 더해져서 원래 픽쳐를 복원한다. 인트라 모드에 대해서 자세히 살펴보면, H.264/AVC에서 인트라 예측을 수행하는 블록 단위로 4x4화소, 8x8화소, 16x16화소가 사용될 수 있다. 인트라 4x4 예측은 현재 인트라 4x4 블록을 기준으로 좌측 블록내의 우측 4화소, 상단 블록내의 하단 4화소, 좌측 상단 블록내의 우측 하단 1화소, 우측 상단 블록내의 좌측 하단 1화소를 사용하여 예측 블록내의 4x4화소의 예측값을 획득한다. 이 경우 인트라 예측 모드는 H.264/AVC에서의 9가지 예측 방향 중 가장 적절한 예측 방향을 4x4화소 블록마다 1개씩 선택하고, 선택된 예측 방향에 기초하여 4x4화소의 블록 단위로 예측을 수행한다. 인트라 8x8 예측은 상기 인트라 4x4와 동일한 방식으로 예측을 수행할 수 있다. 인트라 16x16 예측은 현재 매크로 블록을 기준으로 상단 매크로 블록의 하단 16화소, 좌측 매크로 블록의 우측 16화소로부터 수직 예측, 수평 예측, 평균치 예측, 평면 예측의 4가지 방법 중에서 하나를 선택해서 예측을 수행한다.The
이하, 앞서 설명한 매크로 블록 타입을 결정하는 구체적인 방법에 대해서 도 2, 도 3 및 도 4를 참조하여 살펴보기로 한다.Hereinafter, a detailed method of determining the macro block type described above will be described with reference to FIGS. 2, 3, and 4.
도 2는 매크로 블록 타입 및 변환 크기 정보를 이용하여 매크로 블록을 디코딩하는 장치를 도시한 것이다.2 illustrates an apparatus for decoding a macro block using macro block type and transform size information.
도 2를 참조하면, 매크로 블록 타입 결정부(200)는 현재 디코딩되는 매크로 블록의 매크로 블록 타입을 인코더부터 전송된 비트스트림으로부터 획득할 수 있다. 이하, 도 3을 참조하여 매크로 블록이 32x32인 경우를 예로 들어 설명하기로 한다.Referring to FIG. 2, the macro
도 3은 매크로 블록 타입 및 변환 크기 정보를 이용하여 매크로 블록을 디코딩하는 과정을 도시한 블록도이다.3 is a block diagram illustrating a process of decoding a macro block using macro block type and transform size information.
도 3을 참조하면, 매크로 블록에 대한 스킵 매크로 블록 지시 정보를 획득할 수 있다(S300). 상기 스킵 모드 지시 정보라 함은 매크로 블록이 스킵 모드로 코딩되어 있는지 여부를 지시하는 정보일 수 있다. 예를 들어, 상기 스킵 모드 지시 정보가 1인 경우 상기 매크로 블록은 스킵 모드로 코딩됨을 의미할 수 있고, 상기 스킵 모드 지시 정보가 0인 경우 상기 매크로 블록은 스킵 모드로 코딩되지 않음을 의미할 수 있다. 상기 스킵 모드 지시 정보에 따라 상기 매크로 블록이 스킵 모드로 코딩되지 아니한 경우에는 매크로 블록 타입을 획득할 수 있다(S310). I 슬라이스인 경우, 상기 매크로 블록 타입에 따라 상기 매크로 블록은 32x32화소, 16x16화소, 또는 8x8화소의 블록 단위로 인트라 예측될 수 있다.Referring to FIG. 3, skip macro block indication information on a macro block may be obtained (S300). The skip mode indication information may be information indicating whether a macro block is coded in a skip mode. For example, when the skip mode indication information is 1, it may mean that the macro block is coded in a skip mode. When the skip mode indication information is 0, it may mean that the macro block is not coded in a skip mode. have. When the macroblock is not coded in the skip mode according to the skip mode indication information, a macroblock type may be obtained (S310). In the case of an I slice, the macro block may be intra predicted in blocks of 32x32 pixels, 16x16 pixels, or 8x8 pixels according to the macroblock type.
또는, P 매크로 블록 및 B 매크로 블록과 마찬가지로 서브 매크로 블록 타입을 정의할 수 있으며, 상기 매크로 블록 타입에 기초하여 상기 서브 매크로 블록 타입을 획득할 수 있다(S320).Alternatively, like the P macroblock and the B macroblock, a sub macroblock type may be defined, and the submacroblock type may be obtained based on the macroblock type (S320).
예를 들어, 상기 매크로 블록 타입이 16x16인 경우, 서브 매크로 블록 타입을 획득할 수 있다. 상기 서브 매크로 블록 타입은 예측 모드 정보와 예측 블록 크기 정보를 포함할 수 있다. 따라서, 상기 서브 매크로 블록 타입에 따라 서브 매크로 블록은 16x16화소, 8x8화소, 또는 4x4화소의 블록 단위로 인트라 예측될 수 있다. 상기 서브 매크로 블록 타입은 예측 모드 정보만을 포함할 수도 있다. 즉, 상기 서브 매크로 블록 타입은 상기 서브 매크로 블록이 인트라 모드로 예측되는지 여부만을 나타낼 수 있다. 이하, 서브 매크로 블록 타입이 예측 모드 정보만을 포함하는 경우, 서브 매크로 블록의 예측 블록의 크기 정보 및 인트라 예측 모드를 획득하는 방법에 대해서 살펴보기로 한다.For example, when the macroblock type is 16 × 16, a sub macroblock type may be obtained. The sub macroblock type may include prediction mode information and prediction block size information. Therefore, according to the sub macroblock type, the sub macroblock may be intra predicted in units of blocks of 16x16 pixels, 8x8 pixels, or 4x4 pixels. The sub macroblock type may include only prediction mode information. That is, the sub macroblock type may indicate only whether the sub macroblock is predicted in the intra mode. Hereinafter, when the sub macroblock type includes only prediction mode information, a method of obtaining size information of the prediction block of the sub macroblock and the intra prediction mode will be described.
인트라 예측부(210)는 예측 블록 크기 결정부(220) 및 인트라 예측 모드 획득부(230)를 포함할 수 있다. 상기 예측 블록 크기 결정부(220)는 상기 서브 매크로 블록 타입에 따라 상기 서브 매크로 블록이 인트라 모드로 예측됨을 나타내는 경우, 변환 크기 정보를 이용하여 예측 블록의 크기 정보를 결정할 수 있다. 상기 인트라 예측 모드 획득부(230)는 상기 서브 매크로 블록의 인트라 예측 모드를 인코더로부터 전송된 비트스트림으로부터 획득할 수 있다(S330).The
예를 들어, 상기 서브 매크로 블록 타입에 따라 상기 서브 매크로 블록이 인트라 모드로 예측되는 경우, 상기 서브 매크로 블록에 대한 변환 크기 정보를 획득할 수 있다. 상기 변환 크기 정보라 함은 변환 계수 복호 및 영상 생성 과정을 수행하는 블록 단위를 지시하는 정보일 수 있다. 상기 변환 크기 정보가 4x4화소 블록 단위로 변환 계수 복호 및 영상 생성 과정을 수행함을 지시하는 경우, 상기 서브 매크로 블록의 예측 블록의 크기 정보는 4x4화소로 결정될 수 있고, 상기 서브 매크로 블록은 4x4화소의 블록 단위로 인트라 예측될 수 있다. 상기 변환 크기 정보가 8x8화소, 또는 16x16화소인 경우에도 동일한 방식이 적용될 수 있다.For example, when the sub macro block is predicted in the intra mode according to the sub macro block type, transform size information about the sub macro block may be obtained. The transform size information may be information indicating a block unit for performing transform coefficient decoding and image generation. When the transform size information indicates to perform transform coefficient decoding and image generation in units of 4x4 pixel blocks, the size information of the prediction block of the sub macroblock may be determined to be 4x4 pixels, and the sub macroblock may be determined to be 4x4 pixels. Intra prediction may be performed on a block basis. The same scheme can be applied to the case where the converted size information is 8x8 pixels or 16x16 pixels.
상기 서브 매크로 블록 타입에 따라 상기 서브 매크로 블록이 인트라 모드로 예측되는 경우, 인트라 예측 모드 참조 정보에 기초하여 상기 서브 매크로 블록의 인트라 예측 모드를 획득할 수 있다. 상기 인트라 예측 모드 참조 정보라 함은 예측 블록을 기준으로 이웃하는 블록의 인트라 예측 모드로부터 상기 예측 블록의 인트라 예측 모드가 유도되는지를 지시하는 정보를 의미할 수 있다.When the sub macro block is predicted to the intra mode according to the sub macro block type, an intra prediction mode of the sub macro block may be obtained based on intra prediction mode reference information. The intra prediction mode reference information may refer to information indicating whether an intra prediction mode of the prediction block is derived from an intra prediction mode of a neighboring block based on the prediction block.
예를 들어, 상기 서브 매크로 블록 타입에 따라 상기 서브 매크로 블록이 인트라 모드로 예측되는 경우, 상기 인트라 예측 모드 참조 정보를 획득할 수 있다. 상기 인트라 예측 모드 참조 정보가 이웃 블록의 인트라 예측 모드로부터 예측 블록의 인트라 예측 모드가 유도됨을 지시하는 경우, 상기 예측 블록을 기준으로 좌측 블록 및 우측 블록의 인트라 예측 모드를 이용하여 상기 서브 매크로 블록내의 예측 블록에 대한 인트라 예측 모드를 유도할 수 있다. 상기 유도된 인트라 예측 모드는 좌측 블록의 인트라 예측 모드와 우측 블록의 인트라 예측 모드 중에서 최소값으로 유도될 수 있다. 상기 인트라 예측 모드 참조 정보가 이웃 블록의 인트라 예측 모드로부터 예측 블록의 인트라 예측 모드가 유도되지 아니함을 지시하는 경우, 상기 서브 매크로 블록내의 예측 블록에 대한 인트라 예측 모드를 파싱할 수 있다. 앞서 설명한 예측 블록의 크기 정보 및 인트라 예측 모드를 획득하는 방법은 이하 인트라 모드로 코딩되는 블록에 대해서 동일하게 적용될 수 있다.For example, when the sub macro block is predicted in the intra mode according to the sub macro block type, the intra prediction mode reference information may be obtained. When the intra prediction mode reference information indicates that the intra prediction mode of the prediction block is derived from the intra prediction mode of the neighboring block, the intra prediction mode in the sub-macro block may be used by using the intra prediction modes of the left block and the right block with respect to the prediction block. The intra prediction mode for the prediction block can be derived. The derived intra prediction mode may be derived as a minimum value between the intra prediction mode of the left block and the intra prediction mode of the right block. When the intra prediction mode reference information indicates that the intra prediction mode of the prediction block is not derived from the intra prediction mode of the neighboring block, the intra prediction mode for the prediction block in the sub macro block may be parsed. The above-described method of obtaining the size information of the prediction block and the intra prediction mode may be equally applied to the block coded in the intra mode.
상기 예측 블록의 크기 정보, 인트라 예측 모드, 및 서브 매크로 블록의 이웃 블록내의 픽셀값을 이용하여 상기 서브 매크로 블록을 예측할 수 있다(S350). 복원부(250)는 예측된 매크로 블록과 인코더로부터 전송된 레지듀얼을 더하여 매크로 블록을 복원할 수 있다. 상기 레지듀얼은 본래 매크로 블록의 픽셀값과 예측된 매크로 블록의 픽셀값간의 차분값으로 정의할 수 있다. The sub macroblock may be predicted using the size information of the prediction block, the intra prediction mode, and pixel values in the neighboring block of the sub macroblock (S350). The
인터 예측부(240)는 상기 서브 매크로 블록 타입 정보에 따라 상기 서브 매크로 블록이 인터 모드로 코딩된 경우, 상기 서브 매크로 블록의 모션 정보를 획득할 수 있다(S340). When the sub macroblock is coded in the inter mode according to the sub macro block type information, the
예를 들어, 상기 서브 매크로 블록 타입은 도 4와 같이 정의할 수 있다. 도 4는 매크로 블록이 32x32인 경우, P 매크로 블록 및 B 매크로 블록의 서브 매크로 블록 타입의 일 실시예를 도시한 테이블이다. 도 4를 참조하면, 상기 서브 매크로 블록 타입이 P_L0_16X8인 경우, 상기 서브 매크로 블록은 2개의 서브 매크로 블록의 파티션을 가지며, 16X8화소의 블록 단위로 인터 예측될 수 있다. 즉, 상기 서브 매크로 블록의 파티션별로 모션 벡터 및 참조 픽쳐 인덱스를 획득할 수 있다. 상기 모션 벡터 및 참조 픽쳐 인덱스를 이용하여 상기 서브 매크로 블록을 예측할 수 있다(S350). 복원부(250)는 예측된 매크로 블록과 인코더로부터 전송된 레지듀얼을 더하여 매크로 블록을 복원할 수 있다.For example, the sub macro block type may be defined as shown in FIG. 4. FIG. 4 is a table illustrating an embodiment of a sub macroblock type of a P macroblock and a B macroblock when the macroblock is 32x32. Referring to FIG. 4, when the sub macroblock type is P_L0_16X8, the sub macroblock may have partitions of two submacroblocks and may be inter predicted in units of blocks of 16 × 8 pixels. That is, a motion vector and a reference picture index may be obtained for each partition of the sub macroblock. The sub macroblock may be predicted using the motion vector and the reference picture index (S350). The
상기 스킵 모드 지시 정보에 따라 상기 매크로 블록이 스킵 모드로 코딩되는 경우에는 참조 픽쳐 및 참조 블록으로부터 모션 정보를 유도하여 상기 매크로 블록을 예측할 수 있다(S350).When the macroblock is coded in the skip mode according to the skip mode indication information, the macroblock may be predicted by deriving motion information from the reference picture and the reference block (S350).
이하, 도 5를 참조하여 16x16 보다 큰 매크로 블록에 대한 매크로 블록 타입을 살펴보기로 한다.Hereinafter, a macro block type for a macro block larger than 16 × 16 will be described with reference to FIG. 5.
도 5는 매크로 블록이 32x32인 경우 매크로 블록 타입의 일 실시예를 도시한 것이다.5 illustrates an embodiment of a macro block type when the macro block is 32x32.
도 5(a)를 참조하면, 매크로 블록이 32x32인 경우, 상기 매크로 블록은 32x32화소, 16x16화소, 또는 8x8화소의 블록 단위로 인트라 예측될 수 있다. 상기 매크로 블록 타입이 인트라 32x32인 경우, 상기 매크로 블록을 기준으로 상단 매크로 블록의 하단 32화소, 좌측 매크로 블록의 우측 32화소로부터 수직 예측, 수평 예측, 평균치 예측, 평면 예측의 4가지 모드 중에서 하나를 획득해서 예측할 수 있다. 상기 매크로 블록 타입이 인트라 16x16인 경우에는 상기 매크로 블록내의 16x16 블록을 기준으로 좌측 블록내의 우측 16화소, 상단 블록내의 하단 16화소, 좌측 상단 블록내의 우측 하단 1화소, 우측 상단 블록내의 좌측 하단 1화소를 사용하여 16x16화소의 예측값을 획득할 수 있다. 이 경우 인트라 예측 모드는 H.264/AVC에서의 9가지 모드 중 가장 적절한 인트라 예측 모드를 16x16화소 블록마다 1개씩 획득할 수 있다. 상기 획득된 인트라 예측 모드에 기초하여 16x16화소의 블록 단위로 예측할 수 있다. 상기 매크로 블록 타입이 인트라 8x8인 경우, 앞서 설명한 인트라 16x16와 동일한 방법으로 예측할 수 있다.Referring to FIG. 5A, when the macroblock is 32x32, the macroblock may be intra predicted in units of 32x32 pixels, 16x16 pixels, or 8x8 pixels. When the macroblock type is intra 32x32, one of four modes of vertical prediction, horizontal prediction, average prediction, and plane prediction is selected from the lower 32 pixels of the upper macro block and the right 32 pixels of the left macro block based on the macro block. Can be obtained and predicted. If the macro block type is intra 16x16, the 16 pixels on the right side in the left block, the bottom 16 pixels in the top block, the bottom right 1 pixel in the top left block, and the bottom left 1 pixel in the top right block are based on the 16x16 blocks in the macro block. Can be used to obtain the prediction value of 16x16 pixels. In this case, the intra prediction mode may acquire one of the most suitable intra prediction modes of every 16 × 16 pixel block among the nine modes in H.264 / AVC. The prediction may be performed in units of 16x16 pixels based on the obtained intra prediction mode. If the macroblock type is intra 8x8, it can be predicted in the same manner as the intra 16x16 described above.
도 5(b)를 참조하면, 매크로 블록이 32x32인 경우, 상기 매크로 블록은 32x32화소, 16x16화소, 또는 8x8화소 이외에 4x4화소의 블록 단위로 인트라 예측될 수도 있으며, 이 경우 앞서 설명한 인트라 16x16와 동일한 방법으로 예측할 수 있다.Referring to FIG. 5B, when the macroblock is 32x32, the macroblock may be intra predicted in blocks of 4x4 pixels other than 32x32 pixels, 16x16 pixels, or 8x8 pixels, and in this case, the same as the intra 16x16 described above. It can be predicted by the method.
도 5(c)를 참조하면, 매크로 블록이 32x32인 경우, 상기 매크로 블록 타입은 인트라 32x32, 인트라 16x16, 또는 인트라 8x8 이외에 인트라 믹스드(I_mixed)를 포함할 수 있다. 상기 매크로 블록 타입이 인트라 믹스드인 경우, 상기 매크로 블록의 파티션에 대한 블록 타입 정보를 획득할 수 있고, 이에 따라 인트라 8x8 또는 인트라 4x4의 블록 단위로 적응적으로 인트라 예측될 수 있다. 상기 매크로 블록의 파티션은 일정한 크기로 분할된 매크로 블록내의 블록을 의미하며, 이는 서브 매크로 블록을 의미할 수도 있다.Referring to FIG. 5C, when the macroblock is 32x32, the macroblock type may include intra mixed in addition to intra 32x32, intra 16x16, or intra 8x8. When the macro block type is intra mixed, block type information about a partition of the macro block may be obtained, and accordingly, intra prediction may be adaptively performed in an intra 8x8 or intra 4x4 block unit. The partition of the macro block means a block in the macro block divided into a predetermined size, which may mean a sub macro block.
도 5(d)를 참조하여, 인트라 믹스드(I_mixed)의 다른 실시예를 살펴보기로 한다. 매크로 블록이 32x32인 경우, I 슬라이스의 매크로 블록 타입으로 인트라 32x32 및 인트라 믹스드를 정의할 수 있다. 상기 매크로 블록 타입이 인트라 믹스드인 경우, 상기 매크로 블록의 파티션에 대하여 인트라 16x16, 인트라 8x8 또는 인트라 4x4의 블록 단위로 적응적으로 인트라 예측될 수 있다. 따라서, 도 5(c)에서와 달리 매크로 블록 타입으로 인트라 16x16 및 인트라 8x8를 이용하지 아니할 수 있다.Referring to FIG. 5 (d), another embodiment of intra_mixed will be described. If the macroblock is 32x32, intra 32x32 and intra mixed can be defined as the macroblock type of the I slice. When the macro block type is intra mixed, intra prediction may be adaptively performed in blocks of intra 16x16, intra 8x8, or intra 4x4 with respect to a partition of the macroblock. Therefore, unlike in FIG. 5C, intra 16x16 and intra 8x8 may not be used as the macro block type.
이하, I 슬라이스의 매크로 블록 타입을 인트라 NxN (N은 16보다 큰 정수) 및 인트라 믹스드로 정의한 경우, 매크로 블록을 디코딩하는 방법에 대해서 도 6 내지 도 8을 참조하여 살펴보기로 한다.Hereinafter, when a macro block type of an I slice is defined as intra NxN (N is an integer greater than 16) and intra mixed, a method of decoding a macro block will be described with reference to FIGS. 6 to 8.
도 6은 매크로 블록 타입 및 블록 타입 식별 정보를 이용하여 매크로 블록을 디코딩하는 방법을 도시한 블록도이다.6 is a block diagram illustrating a method of decoding a macro block using macro block type and block type identification information.
매크로 블록 레이어에서 현재 매크로 블록에 대한 매크로 블록 타입을 획득할 수 있다(S600). 상기 매크로 블록 타입이 인트라 믹스드인 경우, 상기 현재 매크로 블록의 파티션에 대하여 블록 타입 식별 정보를 획득할 수 있다(S610). 상기 매크로 블록의 파티션은 일정한 크기로 분할된 매크로 블록내의 블록을 의미한다. 예를 들어, 매크로 블록이 32x32 인 경우, 상기 매크로 블록의 파티션은 4개의 16x16 블록으로 설정할 수 있다. 상기 블록 타입 식별 정보를 이용하여 현재 매크로 블록의 파티션에 대한 블록 타입을 결정할 수 있으며(S620), 이는 도 7을 참조하여 살펴보기로 한다.A macroblock type for the current macroblock may be acquired in the macroblock layer (S600). If the macro block type is intra mixed, block type identification information may be obtained with respect to a partition of the current macro block (S610). The partition of the macro block means a block in the macro block divided into a predetermined size. For example, when the macroblock is 32x32, the partition of the macroblock may be set to four 16x16 blocks. The block type for the partition of the current macroblock may be determined using the block type identification information (S620), which will be described with reference to FIG. 7.
도 7은 블록 타입 식별 정보를 이용하여 매크로 블록의 파티션에 대한 블록 타입을 결정하는 방법의 일 실시예를 도시한 블록도이다.FIG. 7 is a block diagram illustrating an embodiment of a method of determining a block type for a partition of a macro block using block type identification information.
도 7을 참조하면, 매크로 블록의 파티션에 대하여 제 1 블록 타입 식별 정보를 획득할 수 있다(S700). 상기 제 1 블록 타입 식별 정보는 상기 매크로 블록의 파티션에 대한 블록 타입이 인트라 4x4인지 여부를 지시하는 정보를 의미할 수 있다. 상기 제 1 블록 타입 식별 정보에 따라 상기 매크로 블록의 파티션에 대한 블록 타입이 인트라 4x4인 경우에는 상기 매크로 블록의 파티션은 4x4화소의 블록 단위로 인트라 예측될 수 있다(S720). 상기 제 1 블록 타입 정보에 따라 상기 매크로 블록의 파티션에 대한 블록 타입이 인트라 4x4가 아닌 경우에는 제 2 블록 타입 식별 정보를 획득할 수 있다(S710). 상기 제 2 블록 타입 식별 정보는 상기 매크로 블록의 파티션에 대한 블록 타입이 인트라 8x8인지 여부를 지시하는 정보를 의미할 수 있다. 상기 제 2 블록 타입 식별 정보에 따라 상기 매크로 블록의 파티션에 대한 블록 타입이 인트라 8x8인 경우에는 상기 매크로 블록의 파티션은 8x8화소의 블록 단위로 인트라 예측될 수 있다(S740). 상기 제 2 블록 타입 식별 정보에 따라 상기 매크로 블록의 파티션에 대한 블록 타입이 인트라 8x8가 아닌 경우에는 상기 매크로 블록의 파티션은 16x16화소의 블록 단위로 인트라 예측될 수 있다(S730).Referring to FIG. 7, first block type identification information may be obtained for a partition of a macro block (S700). The first block type identification information may mean information indicating whether a block type for a partition of the macroblock is intra 4x4. When the block type of the partition of the macroblock is intra 4x4 according to the first block type identification information, the partition of the macroblock may be intra predicted in units of blocks of 4x4 pixels (S720). If the block type of the partition of the macroblock is not intra 4x4 according to the first block type information, second block type identification information may be obtained (S710). The second block type identification information may refer to information indicating whether a block type of a partition of the macroblock is intra 8x8. When the block type of the partition of the macroblock is intra 8x8 according to the second block type identification information, the partition of the macroblock may be intra predicted in units of blocks of 8x8 pixels (S740). If the block type of the partition of the macroblock is not intra 8x8 according to the second block type identification information, the partition of the macroblock may be intra predicted in units of blocks of 16x16 pixels (S730).
도 6을 참조하면, 상기 현재 매크로 블록의 파티션에 대한 인트라 예측 모드를 획득할 수 있다(S630). 상기 현재 매크로 블록의 파티션에 대한 인트라 예측 모드는 앞서 살펴본 바와 같이 인트라 예측 모드 참조 정보에 기초하여 이웃 블록의 인트라 예측 모드로부터 유도되거나, 비트스트림으로부터 파싱할 수 있다. 예를 들어, 상기 현재 매크로 블록의 파티션이 16x16이고 상기 현재 매크로 블록의 파티션에 대한 블록 타입이 인트라 4x4인 경우, 상기 현재 매크로 블록의 파티션내의 4x4 블록 단위로 인트라 예측 모드를 획득할 수 있다.Referring to FIG. 6, an intra prediction mode for a partition of the current macroblock may be obtained (S630). As described above, the intra prediction mode for the partition of the current macroblock may be derived from the intra prediction mode of the neighboring block or parsed from the bitstream based on the intra prediction mode reference information. For example, when the partition of the current macroblock is 16x16 and the block type for the partition of the current macroblock is intra 4x4, the intra prediction mode may be acquired in units of 4x4 blocks in the partition of the current macroblock.
다만, 상기 현재 매크로 블록의 매크로 블록 타입이 인트라 믹스가 아닌 경우에는 상기 매크로 블록 타입에 기초하여 상기 현재 매크로 블록을 예측할 수 있다(S650). 이 경우, 상기 매크로 블록 타입은 인트라 예측 모드 및 CBP 정보를 포함할 수 있다. 따라서,상기 매크로 블록 타입에 따른 인트라 예측 모드 및 이웃 블록의 픽셀을 이용하여 상기 현재 매크로 블록의 픽셀값을 예측할 수 있다. 상기 이웃 블록은 상기 현재 매크로 블록에 이전에 복원된 블록을 의미할 수 있다. 예를 들어, 상기 현재 매크로 블록을 기준으로 좌측에 위치한 블록과 상단에 위치한 블록을 의미할 수 있다. 상기 이웃 블록의 픽셀은 디블록킹 필터링이 적용되지 아니한 복원된 픽셀일 수 있다.However, when the macroblock type of the current macroblock is not an intra mix, the current macroblock may be predicted based on the macroblock type (S650). In this case, the macro block type may include an intra prediction mode and CBP information. Accordingly, the pixel value of the current macroblock may be predicted using the intra prediction mode according to the macroblock type and the pixels of the neighboring block. The neighboring block may mean a block previously restored to the current macro block. For example, it may mean a block located on the left side and a block located on the upper side based on the current macro block. The pixel of the neighboring block may be a reconstructed pixel to which deblocking filtering is not applied.
다만, 상기 매크로 블록 타입이 인트라 예측 모드 및 CBP 정보를 포함하지 않는 경우에는 별도로 상기 인트라 예측 모드 및 블록 패턴 정보를 획득할 수 있으며, 이는 도 8을 참조하여 살펴보기로 한다.However, when the macro block type does not include the intra prediction mode and the CBP information, the intra prediction mode and the block pattern information may be separately obtained, which will be described with reference to FIG. 8.
도 8은 매크로 블록이 인트라 모드로 코딩되는 경우, 매크로 블록의 인트라 예측 모드를 획득하는 방법을 도시한 블록도이다.8 is a block diagram illustrating a method of obtaining an intra prediction mode of a macro block when the macro block is coded in the intra mode.
도 8을 참조하면, 현재 매크로 블록의 매크로 블록 타입을 획득할 수 있다(S800). 상기 매크로 블록 타입에 따라 상기 현재 매크로 블록이 인트라 모드로 예측되는 경우에는 상기 현재 매크로 블록에 대한 인트라 예측 모드 참조 정보를 획득할 수 있다(S810). 예를 들어, 상기 현재 매크로 블록이 인트라 모드로 예측되는 경우는 상기 매크로 블록 타입이 인트라 NxN 또는 인트라 믹스드인 경우일 수 있다. 상기 인트라 예측 모드 참조 정보는 상기 현재 매크로 블록의 예측 블록 단위로 획득될 수 있다. 상기 인트라 예측 모드 참조 정보가 이웃 블록의 인트라 예측 모드로부터 예측 블록의 인트라 예측 모드가 유도됨을 지시하는 경우, 상기 예측 블록을 기준으로 좌측 블록 및 우측 블록의 인트라 예측 모드를 이용하여 상기 예측 블록에 대한 인트라 예측 모드를 유도할 수 있다(S820). 상기 유도된 인트라 예측 모드는 좌측 블록의 인트라 예측 모드와 우측 블록의 인트라 예측 모드 중에서 최소값으로 유도될 수 있다. 상기 인트라 예측 모드 참조 정보가 이웃 블록의 인트라 예측 모드로부터 예측 블록의 인트라 예측 모드가 유도되지 아니함을 지시하는 경우, 상기 예측 블록에 대한 인트라 예측 모드를 비트스트림으로부터 파싱할 수 있다(S840). 상기 인트라 예측 모드 및 이웃 블록의 픽셀을 이용하여 상기 예측 블록의 픽셀을 예측할 수 있다(S830). 상기 이웃 블록은 상기 예측 블록에 이전에 복원된 블록을 의미할 수 있다. 예를 들어, 상기 예측 블록을 기준으로 좌측에 위치한 블록과 상단에 위치한 블록을 의미할 수 있다. 상기 이웃 블록의 픽셀은 디블록킹 필터링이 적용되지 아니한 복원된 픽셀일 수 있다. Referring to FIG. 8, a macroblock type of a current macroblock may be obtained (S800). When the current macroblock is predicted to the intra mode according to the macroblock type, intra prediction mode reference information about the current macroblock may be obtained (S810). For example, when the current macroblock is predicted to be an intra mode, the macroblock type may be intra NxN or intra mixed. The intra prediction mode reference information may be obtained in units of prediction blocks of the current macro block. When the intra prediction mode reference information indicates that the intra prediction mode of the prediction block is derived from the intra prediction mode of the neighboring block, the intra prediction mode of the left block and the right block based on the prediction block is used for the prediction block. An intra prediction mode may be derived (S820). The derived intra prediction mode may be derived as a minimum value between the intra prediction mode of the left block and the intra prediction mode of the right block. When the intra prediction mode reference information indicates that the intra prediction mode of the prediction block is not derived from the intra prediction mode of the neighboring block, the intra prediction mode for the prediction block may be parsed from the bitstream (S840). A pixel of the prediction block may be predicted using the intra prediction mode and the pixels of the neighboring block (S830). The neighboring block may mean a block previously restored to the prediction block. For example, it may mean a block located on the left side and a block located on the upper side based on the prediction block. The pixel of the neighboring block may be a reconstructed pixel to which deblocking filtering is not applied.
상기 매크로 블록 타입에 따라 상기 현재 매크로 블록이 인터 모드로 예측되는 경우, 상기 현재 매크로 블록에 대한 모션 정보를 획득하고(S850), 상기 모션 정보를 이용하여 상기 현재 매크로 블록을 인터 모드로 예측할 수 있다(S860).When the current macro block is predicted in the inter mode according to the macro block type, motion information on the current macro block may be obtained (S850), and the current macro block may be predicted in the inter mode using the motion information. (S860).
이하, 매크로 블록이 경계 매크로 블록에 해당하는 경우 상기 매크로 블록의 매크로 블록 타입을 결정하는 방법에 대해서 살펴보기로 한다.Hereinafter, a method of determining a macroblock type of the macroblock when the macroblock corresponds to a boundary macroblock will be described.
도 9는 경계 매크로 블록 및 경계 서브 매크로 블록을 도시한 것이다.9 illustrates a boundary macro block and a boundary sub macro block.
도 9를 참조하면, 코딩 영역(coded region)은 디코딩 프로세스에 의해 출력된 프레임을 의미할 수 있다. 출력 영역(output region)은 상기 코딩 영역내에 특정된 사각형 영역을 의미할 수 있고, 좁게는 코딩 영역에서 실제로 디스플레이되는 영역으로 볼 수도 있다. 경계 매크로 블록이라 함은 상기 출력 영역에 속하지 않는 영역을 포함한 매크로 블록을 의미할 수 있고, 넌-경계 매크로 블록이라 함은 상기 출력 영역에 속한 영역만을 포함한 매크로 블록을 의미할 수 있다. 경계 서브 매크로 블록은 상기 경계 매크로 블록내의 서브 매크로 블록으로서, 상기 출력 영역에 속한 영역을 포함한 서브 매크로 블록을 의미할 수 있다. 반대로, 넌-경계 서브 매크로 블록은 상기 경계 매크로 블록내에서 상기 경계 서브 매크로 블록을 제외한 나머지 서브 매크로 블록을 의미할 수 있다. 즉, 상기 경계 매크로 블록내의 서브 매크로 블록으로서, 상기 출력 영역에 속한 영역을 포함하지 않는 서브 매크로 블록을 의미할 수 있다.Referring to FIG. 9, a coded region may refer to a frame output by a decoding process. The output region may refer to a rectangular region specified within the coding region, and may be narrowly viewed as an area actually displayed in the coding region. The boundary macro block may mean a macro block including an area that does not belong to the output area, and the non-bound macro block may mean a macro block including only an area belonging to the output area. The boundary sub macro block is a sub macro block in the boundary macro block and may mean a sub macro block including an area belonging to the output area. On the contrary, the non-boundary sub macro block may refer to the remaining sub macro block except for the boundary sub macro block in the boundary macro block. That is, the sub macro block in the boundary macro block may mean a sub macro block that does not include an area belonging to the output area.
도 10은 I슬라이스의 경우, 경계 매크로 블록내의 서브 매크로 블록을 디코딩하는 방법을 도시한 블록도이다.FIG. 10 is a block diagram illustrating a method of decoding a sub macro block in a boundary macro block in the case of an I slice.
도 10을 참조하면, 영상 시퀀스에 대한 프레임 오프셋 정보를 획득할 수 있다(S1000). 상기 프레임 오프셋 정보라 함은 영상 시퀀스의 픽쳐내의 샘플들로서, 프레임내의 특정 영역에 속한 샘플들을 특정하는 정보를 의미할 수 있다. 또는, 상기 출력 영역에 속한 샘플을 특정하는 정보를 의미할 수 있다. 상기 프레임 오프셋 정보를 이용하여 프레임내의 경계 매크로 블록을 특정할 수 있다(S1010). 상기 프레임 오프셋 정보에 따라 현재 매크로 블록이 경계 매크로 블록에 해당하는 경우, 상기 현재 매크로 블록의 매크로 블록 타입은 인트라 믹스드로 설정할 수 있다(S1020). 이 경우, 상기 프레임 오프셋 정보에 기초하여 상기 현재 매크로 블록의 파티션이 경계 서브 매크로 블록인지를 특정할 수 있다. 상기 현재 매크로 블록의 파티션이 경계 서브 매크로 블록인 경우에는 도 7에서 살명한 바와 같이 블록 타입 식별 정보를 이용하여 경계 서브 매크로 블록 타입을 결정할 수 있으며(S1050), 상기 경계 서브 매크로 블록 타입에 따라 상기 경계 서브 매크로 블록의 인트라 예측 모드를 획득할 수 있다(S1060). 상기 인트라 예측 모드 및 상기 경계 서브 매크로 블록의 이웃 블록내 픽셀값을 이용하여 상기 경계 서브 매크로 블록의 픽셀값을 예측할 수 있다(S1040). 그러나, 상기 현재 서브 매크로 블록이 넌-경계 서브 매크로 블록인 경우에는 상기 현재 서브 매크로 블록은 일정 크기의 블록 단위로 인트라 예측될 수 있다. 예를 들어, 상기 현재 매크로 블록이 32x32인 경우, 상기 현재 서브 매크로 블록의 블록 타입은 인트라 16x16으로 설정할 수 있다. 또한, 상기 현재 서브 매크로 블록이 휘도 계수를 가지는지 여부를 나타내는 CBP(Coded Block Pattern) 정보는 0으로 설정할 수 있다.Referring to FIG. 10, frame offset information of an image sequence may be obtained (S1000). The frame offset information is samples in a picture of an image sequence and may mean information for specifying samples belonging to a specific region in a frame. Alternatively, this may mean information for specifying a sample belonging to the output area. The boundary macroblock in the frame may be specified using the frame offset information (S1010). When the current macroblock corresponds to a boundary macroblock according to the frame offset information, the macroblock type of the current macroblock may be set to intra mixed (S1020). In this case, it may be specified whether a partition of the current macroblock is a boundary submacroblock based on the frame offset information. If the partition of the current macro block is a boundary sub macro block, as shown in FIG. 7, the boundary sub macro block type may be determined using block type identification information (S1050). An intra prediction mode of the boundary sub macro block may be obtained (S1060). The pixel value of the boundary sub macroblock may be predicted using the intra prediction mode and pixel values in the neighboring block of the boundary sub macroblock (S1040). However, when the current sub macro block is a non-boundary sub macro block, the current sub macro block may be intra predicted in units of blocks of a predetermined size. For example, when the current macroblock is 32x32, the block type of the current sub macroblock may be set to intra 16x16. In addition, CBP (Coded Block Pattern) information indicating whether the current sub-macroblock has a luminance coefficient may be set to zero.
한편, 상기 현재 서브 매크로 블록이 넌-경계 서브 매크로 블록인 경우에는 상기 현재 서브 매크로 블록의 인트라 예측 모드를 별도로 획득하지 아니하고, 상기 현재 서브 매크로 블록의 위치 정보에 기초하여 9가지 인트라 예측 모드 중에서 가장 효율적인 모드를 상기 현재 서브 매크로 블록의 인트라 예측 모드로 설정할 수 있다(S1030). 상기 현재 서브 매크로 블록은 현재 프레임내에서 좌측, 우측, 상단, 하단, 좌측 상단, 좌측 하단, 우측 상단, 또는 우측 하단에 위치할 수 있으며, 상기 위치에 따른 상기 현재 서브 매크로 블록의 이웃 블록을 고려하여 인트라 예측 모드를 결정할 수 있다. 상기 이웃 블록은 상기 현재 서브 매크로 블록에 인접한 블록으로서, 상기 현재 서브 매크로 블록에 앞서 복원된 픽셀값을 가지는 블록을 의미할 수 있다. 구체적인 실시예는 도 11을 참조하여 살펴보기로 한다. 상기 인트라 예측 모드 및 상기 넌-경계 서브 매크로 블록의 이웃 블록내 픽셀값을 이용하여 상기 넌-경계 서브 매크로 블록의 픽셀값을 예측할 수 있다(S1040).On the other hand, when the current sub-macroblock is a non-boundary sub-macroblock, the intra prediction mode of the current sub-macroblock is not obtained separately, and among the nine intra prediction modes based on the position information of the current sub-macroblock. An efficient mode may be set as an intra prediction mode of the current sub macro block (S1030). The current sub macro block may be located at the left, right, top, bottom, top left, bottom left, top right, or bottom right in the current frame, and considers a neighboring block of the current sub macro block according to the position. Intra prediction mode may be determined. The neighboring block is a block adjacent to the current sub macro block and may mean a block having a pixel value reconstructed prior to the current sub macro block. A detailed embodiment will be described with reference to FIG. 11. A pixel value of the non-boundary sub macroblock may be predicted using the intra prediction mode and pixel values in a neighboring block of the non-boundary sub macroblock (S1040).
도 11은 넌-경계 서브 매크로 블록의 인트라 예측 모드를 설정하는 방법의 일실시예를 도시한 것이다.11 illustrates one embodiment of a method for setting an intra prediction mode of a non-boundary sub macro block.
도 11(a)를 참조하면, 넌-경계 서브 매크로 블록이 프레임내의 우측에 위치하는 경우, 상기 넌-경계 서브 매크로 블록의 좌측 서브 매크로 블록은 복원된 픽셀값을 가지는 바, 9가지 인트라 예측 모드 중에서 수평 예측를 이용하여 상기 넌-경계 서브 매크로 블록을 예측함이 효율적일 수 있다.Referring to FIG. 11A, when the non-boundary sub macroblock is located at the right side of the frame, the left sub-macro block of the non-boundary sub macroblock has a reconstructed pixel value, and thus, nine intra prediction modes. It may be efficient to predict the non-boundary sub macroblock using horizontal prediction.
도 11(b)를 참조하면, 넌-경계 서브 매크로 블록이 프레임내의 하단에 위치하는 경우, 9가지 인트라 예측 모드 중에서 수직 예측을 이용하여 상기 넌-경계 서브 매크로 블록을 예측함이 효율적일 수 있다.Referring to FIG. 11B, when the non-boundary sub macroblock is located at the bottom of the frame, it may be efficient to predict the non-boundary sub macroblock using vertical prediction among nine intra prediction modes.
도 11(c)를 참조하면, 넌-경계 서브 매크로 블록이 프레임내의 우측 하단에 위치하는 경우, 수직 예측 및 수평 예측을 이용하여 상기 넌-경계 서브 매크로 블록을 예측할 수 있다. 즉, 인덱스가 1인 넌-경계 서브 매크로 블록은 인덱스가 0인 경계 서브 매크로 블록이 좌측에 위치하는 바, 수평 예측을 인트라 예측 모드로 설정할 수 있다. 인덱스가 2인 넌-경계 서브 매크로 블록은 인덱스가 0인 경계 서브 매크로 블록이 상단에 위치하는 바, 수직 예측을 인트라 예측 모드로 설정할 수 있고, 인덱스가 3인 넌-경계 서브 매크로 블록은 인덱스가 1인 넌-경계 서브 매크로 블록이 상단에 위치하는 바, 수직 예측을 인트라 예측 모드로 설정할 수 있다. 그 밖의 경우에는 넌-경계 서브 매크로 블록의 인트라 예측 모드를 평균 예측으로 설정할 수 있다.Referring to FIG. 11C, when the non-boundary sub macroblock is located at the lower right side of the frame, the non-boundary sub macroblock may be predicted using vertical prediction and horizontal prediction. That is, the non-boundary sub-macroblock having an index of 1 has a boundary submacroblock having an index of 0 on the left side, so that horizontal prediction may be set to an intra prediction mode. A non-boundary sub macroblock with an index of 2 has a boundary sub macroblock with an index of 0 at the top, so that vertical prediction can be set to intra prediction mode, and a non-boundary sub macroblock with an index of 3 has an index of Since a non-boundary sub macroblock of 1 is located at the top, vertical prediction may be set to an intra prediction mode. In other cases, the intra prediction mode of the non-boundary sub macro block may be set as the average prediction.
상기 설정된 인트라 예측 모드 및 상기 넌-경계 서브 매크로 블록의 이웃 블록의 복원된 픽셀값을 이용하여 상기 넌-경계 서브 매크로 블록의 픽셀값을 예측할 수 있다(S1030).The pixel value of the non-boundary sub macroblock may be predicted using the set intra prediction mode and the reconstructed pixel value of the neighboring block of the non-boundary sub macroblock (S1030).
도 12는 P/B슬라이스의 경우, 경계 매크로 블록내의 서브 매크로 블록을 디코딩하는 방법을 도시한 블록도이다.12 is a block diagram illustrating a method of decoding a sub macro block in a boundary macro block in case of a P / B slice.
도 12를 참조하면, 영상 시퀀스에 대한 프레임 오프셋 정보를 획득할 수 있다(S1200). 앞서 설명한 바와 같이 상기 프레임 오프셋 정보를 이용하여 프레임내의 경계 매크로 블록을 특정할 수 있다(S1205). Referring to FIG. 12, frame offset information of an image sequence may be obtained (S1200). As described above, the boundary macroblock in the frame may be specified using the frame offset information (S1205).
상기 프레임 오프셋 정보에 따라 현재 매크로 블록이 넌-경계 매크로 블록에 해당하는 경우, 슬라이스 헤더에서 스킵 모드 지시 정보를 획득할 수 있다(S1210). 상기 스킵 모드 지시 정보에 따라 상기 현재 매크로 블록이 스킵 모드로 코딩되는 경우에는 모션 정보, 참조 픽쳐 인덱스 등을 획득하지 아니하며, 참조 블록으로부터 모션 정보 및 참조 픽쳐 인덱스를 유도할 수 있다(S1215). 상기 유도된 모션 정보 및 참조 픽쳐 인덱스를 이용하여 상기 현재 매크로 블록을 예측할 수 있다(S1230). 상기 스킵 모드 지시 정보에 따라 상기 현재 매크로 블록이 스킵 모드로 코딩되지 아니하는 경우에는 매크로 블록 레이어에서 매크로 블록 타입을 획득할 수 있다(S1220). 상기 매크로 블록 타입에 따른 상기 현재 매크로 블록의 파티션에 대하여 모션 정보를 획득할 수 있고(S1225), 상기 모션 정보에 기초하여 상기 현재 매크로 블록을 예측할 수 있다(S1230). If the current macroblock corresponds to a non-boundary macroblock according to the frame offset information, skip mode indication information may be obtained from the slice header (S1210). When the current macroblock is coded in the skip mode according to the skip mode indication information, the motion information and the reference picture index may not be obtained, and the motion information and the reference picture index may be derived from the reference block (S1215). The current macroblock may be predicted using the derived motion information and the reference picture index (S1230). When the current macroblock is not coded in the skip mode according to the skip mode indication information, a macroblock type may be obtained from a macroblock layer (S1220). Motion information may be obtained for a partition of the current macroblock according to the macroblock type (S1225), and the current macroblock may be predicted based on the motion information (S1230).
상기 프레임 오프셋 정보에 따라 현재 매크로 블록이 경계 매크로 블록에 해당하는 경우, 상기 현재 매크로 블록의 매크로 블록 타입 정보는 디코더로 전송되지 아니하며, 슬라이스 타입을 고려하여 설정될 수 있다(S1235). 상기 현재 매크로 블록의 매크로 블록 타입 정보는 상기 현재 매크로 블록의 파티션 정보를 포함하며, 상기 현재 매크로 블록의 파티션 정보는 인터 예측을 수행하는 블록 단위를 의미할 수 있다. When the current macroblock corresponds to a boundary macroblock according to the frame offset information, the macroblock type information of the current macroblock is not transmitted to the decoder and may be set in consideration of the slice type (S1235). The macroblock type information of the current macroblock may include partition information of the current macroblock, and the partition information of the current macroblock may mean a block unit for performing inter prediction.
상기 현재 매크로 블록이 32x32인 경우를 예로 들어 설명하면, 슬라이스 타입이 P슬라이스인 경우에는 P_16x16, P_32x16, 또는 P_16x32로 설정될 수 있고, 슬라이스 타입이 B슬라이스인 경우에는 B_16x16, B_32x16, 또는 B_16x32로 설정될 수 있다. 추가적으로, 경계 매크로 블록의 위치를 고려하여 상기 현재 매크로 블록의 매크로 블록 타입을 결정할 수도 있으며, 이는 도 13을 참조하여 설명하기로 한다.For example, when the current macroblock is 32x32, the slice type may be set to P_16x16, P_32x16, or P_16x32 when the slice type is P slice, and set to B_16x16, B_32x16, or B_16x32 when the slice type is B slice. Can be. Additionally, the macroblock type of the current macroblock may be determined in consideration of the position of the boundary macroblock, which will be described with reference to FIG. 13.
도 13은 P/B슬라이스내의 경계 매크로 블록의 위치에 따라 매크로 블록 타입을 결정하는 방법을 도시한 것이다.FIG. 13 illustrates a method of determining a macro block type according to a position of a boundary macro block in a P / B slice.
도 13(a)를 참조하면, 경계 매크로 블록이 프레임내의 좌측 또는 우측에 위치하는 경우, 상기 경계 매크로 블록의 매크로 블록 타입은 슬라이스 타입을 고려하여 P_16x32 또는 B_16x32로 설정될 수 있다.Referring to FIG. 13A, when the boundary macroblock is located at the left or right side of the frame, the macroblock type of the boundary macroblock may be set to P_16x32 or B_16x32 in consideration of the slice type.
도 13(b)를 참조하면, 경계 매크로 블록이 프레임내의 상단 또는 하단에 위치하는 경우, 상기 경계 매크로 블록의 매크로 블록 타입은 슬라이스 타입을 고려하여 P_32x16 또는 B_32x16으로 설정될 수 있다.Referring to FIG. 13B, when the boundary macroblock is located at the top or bottom of the frame, the macroblock type of the boundary macroblock may be set to P_32x16 or B_32x16 in consideration of the slice type.
상기 현재 매크로 블록이 상기 경계 매크로 블록에 해당하는 경우, 상기 프레임 오프셋 정보를 이용하여 상기 현재 매크로 블록의 파티션에 대하여 경계 서브 매크로 블록인지 여부를 특정할 수 있다(S1240). 상기 현재 매크로 블록의 파티션은 현재 서브 매크로 블록과 동일한 의미로 해석될 수도 있다. 상기 현재 매크로 블록의 파티션이 경계 서브 매크로 블록인 경우에는 서브 매크로 블록 레이어에서 상기 현재 매크로 블록의 파티션에 대한 블록 타입을 획득하고(S1245), 상기 블록 타입에 기초하여 상기 현재 매크로 블록의 파티션에 대한 모션 정보를 획득할 수 있다(S1250). 상기 획득된 모션 정보를 이용하여 상기 현재 매크로 블록의 파티션을 예측할 수 있다(S1255).If the current macroblock corresponds to the boundary macroblock, it may be specified whether the partition of the current macroblock is a boundary submacroblock using the frame offset information (S1240). The partition of the current macroblock may be interpreted as the same meaning as the current submacroblock. If the partition of the current macroblock is a boundary sub-macroblock, a block type for the partition of the current macroblock is obtained in the sub-macroblock layer (S1245), and based on the block type, for a partition of the current macroblock. Motion information may be obtained (S1250). The partition of the current macroblock may be predicted using the obtained motion information (S1255).
상기 현재 매크로 블록의 파티션이 넌-경계 서브 매크로 블록인 경우에는 상기 현재 매크로 블록의 파티션은 스킵 모드를 이용하여 코딩되는 것으로 설정할 수 있다(S1260). 따라서, 상기 현재 매크로 블록의 파티션은 참조 블록으로부터 모션 정보를 유도하고, 상기 유도된 모션 정보에 기초하여 인터 예측을 수행할 수 있다(S1265).If the partition of the current macro block is a non-boundary sub macro block, the partition of the current macro block may be set to be coded using a skip mode (S1260). Accordingly, the partition of the current macroblock may derive motion information from a reference block and perform inter prediction based on the derived motion information (S1265).
본 발명은 비디오 신호를 인코딩하고 디코딩하는 데 적용될 수 있다.The present invention can be applied to encode and decode video signals.
Claims (11)
상기 현재 매크로 블록 타입이 인트라 믹스드인 경우, 상기 현재 매크로 블록의 파티션에 대한 블록 타입 식별 정보를 획득하는 단계;
상기 블록 타입 식별 정보에 기초하여 상기 현재 매크로 블록의 파티션의 블록 타입을 특정하는 단계;
상기 현재 매크로 블록의 파티션의 블록 타입에 따라 상기 현재 매크로 블록의 인트라 예측 모드를 획득하는 단계; 및
상기 인트라 예측 모드 및 이웃 블록의 픽셀값을 이용하여 상기 현재 매크로 블록을 예측하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.Obtaining a macro block type of a current macro block;
If the current macroblock type is intra mixed, obtaining block type identification information on a partition of the current macroblock;
Specifying a block type of a partition of the current macro block based on the block type identification information;
Acquiring an intra prediction mode of the current macro block according to a block type of a partition of the current macro block; And
Predicting the current macroblock using the intra prediction mode and pixel values of a neighboring block.
상기 현재 매크로 블록의 파티션의 블록 타입에 기초하여 인트라 예측 모드 참조 정보를 획득하는 단계를 더 포함하되,
상기 인트라 예측 모드 참조 정보라 함은 예측 블록을 기준으로 이웃하는 블록의 인트라 예측 모드로부터 상기 예측 블록의 인트라 예측 모드가 유도되는지를 지시하는 정보인 것을 특징으로 하는 비디오 신호 처리 방법.The method of claim 1, wherein the obtaining of the intra prediction mode
Acquiring intra prediction mode reference information based on a block type of a partition of the current macro block,
The intra prediction mode reference information is information indicating whether an intra prediction mode of the prediction block is derived from an intra prediction mode of a neighboring block based on the prediction block.
상기 프레임 오프셋 정보를 이용하여 현재 매크로 블록이 경계 매크로 블록에 해당하는 여부를 특정하되, 경계 매크로 블록이라 함은 상기 출력 영역에 속하지 않는 영역을 포함한 매크로 블록인 단계;
상기 프레임 오프셋 정보에 따라 상기 현재 매크로 블록이 경계 매크로 블록에 해당하는 경우, 슬라이스 타입을 고려하여 상기 현재 매크로 블록의 매크로 블록 타입을 유도하는 단계를 포함하되,
상기 출력 영역은 상기 코딩 영역 내에 특정된 사각형 영역이며, 상기 코딩 영역은 디코딩 프로세스에 의해 출력된 프레임인 것을 특징으로 하는 비디오 신호 처리 방법.Acquiring frame offset information for an image sequence, wherein the frame offset information is samples in a picture of the image sequence and is information for specifying samples belonging to a specific region in a frame;
Specifying whether a current macroblock corresponds to a boundary macroblock by using the frame offset information, wherein the boundary macroblock is a macroblock including an area not belonging to the output area;
If the current macroblock corresponds to a boundary macroblock according to the frame offset information, deriving a macroblock type of the current macroblock in consideration of a slice type;
The output region is a rectangular region specified within the coding region, and the coding region is a frame output by a decoding process.
상기 넌-경계 서브 매크로 블록은 상기 경계 매크로 블록의 서브 매크로 블록으로서, 상기 출력 영역에 속한 영역을 포함하지 않는 서브 매크로 블록이며, 상기 인트라 예측 모드는 수평 예측, 수직 예측, 평균 예측을 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.The method of claim 7, wherein when the current macroblock is coded in the intra mode according to the macroblock type, deriving the size information, the CBP information, and the intra prediction mode of the prediction block for the non-boundary sub macroblock. Include more,
The non-boundary sub macro block is a sub macro block of the boundary macro block, which is a sub macro block that does not include an area belonging to the output area, and the intra prediction mode includes horizontal prediction, vertical prediction, and average prediction. A video signal processing method.
8. The method of claim 7, wherein the non-boundary sub macroblock is coded in a skip mode when the current macroblock is coded in an inter mode according to the macroblock type.
Priority Applications (12)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/778,327 US9113168B2 (en) | 2009-05-12 | 2010-05-12 | Method and apparatus of processing a video signal |
| PCT/KR2010/003006 WO2010131903A2 (en) | 2009-05-12 | 2010-05-12 | Method and apparatus for processing a video signal |
| US14/694,280 US9819954B2 (en) | 2009-05-12 | 2015-04-23 | Method and apparatus for decoding a video signal |
| US15/730,229 US10306252B2 (en) | 2009-05-12 | 2017-10-11 | Method and apparatus for decoding a video signal |
| US16/380,345 US10880563B2 (en) | 2009-05-12 | 2019-04-10 | Method and apparatus for decoding a video signal |
| US17/107,083 US11240520B2 (en) | 2009-05-12 | 2020-11-30 | Method and apparatus for decoding a video signal |
| US17/563,914 US11665360B2 (en) | 2009-05-12 | 2021-12-28 | Method and apparatus for decoding a video signal |
| US18/136,170 US11930201B2 (en) | 2009-05-12 | 2023-04-18 | Method and apparatus for decoding a video signal |
| US18/435,754 US12389023B2 (en) | 2009-05-12 | 2024-02-07 | Method and apparatus for decoding a video signal |
| US19/188,232 US12439069B2 (en) | 2009-05-12 | 2025-04-24 | Method and apparatus for decoding a video signal |
| US19/189,562 US12464153B2 (en) | 2009-05-12 | 2025-04-25 | Method and apparatus for decoding a video signal |
| US19/354,565 US20260039851A1 (en) | 2009-05-12 | 2025-10-09 | Method and apparatus for decoding a video signal |
Applications Claiming Priority (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17763809P | 2009-05-12 | 2009-05-12 | |
| US61/177,638 | 2009-05-12 | ||
| US22625209P | 2009-07-16 | 2009-07-16 | |
| US61/226,252 | 2009-07-16 | ||
| US25631809P | 2009-10-30 | 2009-10-30 | |
| US61/256,318 | 2009-10-30 | ||
| US26136009P | 2009-11-15 | 2009-11-15 | |
| US61/261,360 | 2009-11-15 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020170063952A Division KR101775533B1 (en) | 2009-05-12 | 2017-05-24 | A method and an apparatus for processing a video signal |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20100122450A true KR20100122450A (en) | 2010-11-22 |
| KR101742992B1 KR101742992B1 (en) | 2017-06-02 |
Family
ID=43407388
Family Applications (7)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020100043470A Active KR101742992B1 (en) | 2009-05-12 | 2010-05-10 | A method and an apparatus for processing a video signal |
| KR1020170063952A Active KR101775533B1 (en) | 2009-05-12 | 2017-05-24 | A method and an apparatus for processing a video signal |
| KR1020170109981A Active KR101821217B1 (en) | 2009-05-12 | 2017-08-30 | A method and an apparatus for processing a video signal |
| KR1020180005837A Active KR101931950B1 (en) | 2009-05-12 | 2018-01-17 | A method and an apparatus for processing a video signal |
| KR1020180163070A Active KR101984605B1 (en) | 2009-05-12 | 2018-12-17 | A method and an apparatus for processing a video signal |
| KR1020190059980A Active KR102037327B1 (en) | 2009-05-12 | 2019-05-22 | A method and an apparatus for processing a video signal |
| KR1020190131338A Active KR102168120B1 (en) | 2009-05-12 | 2019-10-22 | A method and an apparatus for processing a video signal |
Family Applications After (6)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020170063952A Active KR101775533B1 (en) | 2009-05-12 | 2017-05-24 | A method and an apparatus for processing a video signal |
| KR1020170109981A Active KR101821217B1 (en) | 2009-05-12 | 2017-08-30 | A method and an apparatus for processing a video signal |
| KR1020180005837A Active KR101931950B1 (en) | 2009-05-12 | 2018-01-17 | A method and an apparatus for processing a video signal |
| KR1020180163070A Active KR101984605B1 (en) | 2009-05-12 | 2018-12-17 | A method and an apparatus for processing a video signal |
| KR1020190059980A Active KR102037327B1 (en) | 2009-05-12 | 2019-05-22 | A method and an apparatus for processing a video signal |
| KR1020190131338A Active KR102168120B1 (en) | 2009-05-12 | 2019-10-22 | A method and an apparatus for processing a video signal |
Country Status (1)
| Country | Link |
|---|---|
| KR (7) | KR101742992B1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013005962A3 (en) * | 2011-07-01 | 2013-03-14 | 삼성전자 주식회사 | Video encoding method with intra prediction using checking process for unified reference possibility, video decoding method and device thereof |
| KR20140092756A (en) * | 2011-11-02 | 2014-07-24 | 파나소닉 주식회사 | Video coding method, video coder, video decoding method, video decoder, and video codec |
| WO2017043949A1 (en) * | 2015-09-11 | 2017-03-16 | 주식회사 케이티 | Method and device for processing video signal |
| US10939119B2 (en) | 2011-11-09 | 2021-03-02 | Sk Telecom Co., Ltd. | Method and apparatus for encoding and decoding video using skip mode |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010131903A2 (en) | 2009-05-12 | 2010-11-18 | Lg Electronics Inc. | Method and apparatus for processing a video signal |
| KR101742992B1 (en) * | 2009-05-12 | 2017-06-02 | 엘지전자 주식회사 | A method and an apparatus for processing a video signal |
| CN119946255A (en) * | 2018-03-29 | 2025-05-06 | 世宗大学校产学协力团 | Method and apparatus for encoding/decoding an image |
| WO2021047633A1 (en) * | 2019-09-13 | 2021-03-18 | Beijing Bytedance Network Technology Co., Ltd. | Skip mode signaling |
| KR102798899B1 (en) * | 2019-11-05 | 2025-04-23 | 엘지전자 주식회사 | Image information processing method and device for image/video coding |
| WO2022266971A1 (en) * | 2021-06-24 | 2022-12-29 | Oppo广东移动通信有限公司 | Encoding method, decoding method, encoder, decoder and computer storage medium |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101742992B1 (en) * | 2009-05-12 | 2017-06-02 | 엘지전자 주식회사 | A method and an apparatus for processing a video signal |
-
2010
- 2010-05-10 KR KR1020100043470A patent/KR101742992B1/en active Active
-
2017
- 2017-05-24 KR KR1020170063952A patent/KR101775533B1/en active Active
- 2017-08-30 KR KR1020170109981A patent/KR101821217B1/en active Active
-
2018
- 2018-01-17 KR KR1020180005837A patent/KR101931950B1/en active Active
- 2018-12-17 KR KR1020180163070A patent/KR101984605B1/en active Active
-
2019
- 2019-05-22 KR KR1020190059980A patent/KR102037327B1/en active Active
- 2019-10-22 KR KR1020190131338A patent/KR102168120B1/en active Active
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9578329B2 (en) | 2011-07-01 | 2017-02-21 | Samsung Electronics Co., Ltd. | Video encoding method with intra prediction using checking process for unified reference possibility, video decoding method and device thereof |
| WO2013005962A3 (en) * | 2011-07-01 | 2013-03-14 | 삼성전자 주식회사 | Video encoding method with intra prediction using checking process for unified reference possibility, video decoding method and device thereof |
| KR20140093200A (en) * | 2011-07-01 | 2014-07-25 | 삼성전자주식회사 | Method and apparatus for video encoding with intra prediction by unification of availability check, method and apparatus for video decoding with intra prediction by unification of availability check |
| AU2012278478B2 (en) * | 2011-07-01 | 2015-09-24 | Samsung Electronics Co., Ltd. | Video encoding method with intra prediction using checking process for unified reference possibility, video decoding method and device thereof |
| KR20200103121A (en) * | 2011-11-02 | 2020-09-01 | 타지반 투 엘엘씨 | Video coding method, video coder, video decoding method, video decoder, and video codec |
| KR20190133279A (en) * | 2011-11-02 | 2019-12-02 | 타지반 투 엘엘씨 | Video coding method, video coder, video decoding method, video decoder, and video codec |
| KR20140092756A (en) * | 2011-11-02 | 2014-07-24 | 파나소닉 주식회사 | Video coding method, video coder, video decoding method, video decoder, and video codec |
| US10939119B2 (en) | 2011-11-09 | 2021-03-02 | Sk Telecom Co., Ltd. | Method and apparatus for encoding and decoding video using skip mode |
| US11425392B2 (en) | 2011-11-09 | 2022-08-23 | Sk Telecom Co., Ltd. | Method and apparatus for encoding and decoding video using skip mode |
| WO2017043949A1 (en) * | 2015-09-11 | 2017-03-16 | 주식회사 케이티 | Method and device for processing video signal |
| GB2557544A (en) * | 2015-09-11 | 2018-06-20 | Kt Corp | Method and device for processing video signal |
| US10554969B2 (en) | 2015-09-11 | 2020-02-04 | Kt Corporation | Method and device for processing video signal |
| GB2557544B (en) * | 2015-09-11 | 2021-12-01 | Kt Corp | Method and device for processing video signal |
| US11297311B2 (en) | 2015-09-11 | 2022-04-05 | Kt Corporation | Method and device for processing video signal |
| US12143566B2 (en) | 2015-09-11 | 2024-11-12 | Kt Corporation | Method and device for processing video signal |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101821217B1 (en) | 2018-01-23 |
| KR101984605B1 (en) | 2019-05-31 |
| KR20190058427A (en) | 2019-05-29 |
| KR20180136925A (en) | 2018-12-26 |
| KR101775533B1 (en) | 2017-09-06 |
| KR102168120B1 (en) | 2020-10-20 |
| KR20170102846A (en) | 2017-09-12 |
| KR102037327B1 (en) | 2019-10-28 |
| KR101742992B1 (en) | 2017-06-02 |
| KR20190122617A (en) | 2019-10-30 |
| KR20170061649A (en) | 2017-06-05 |
| KR20180009373A (en) | 2018-01-26 |
| KR101931950B1 (en) | 2018-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102436983B1 (en) | Method and apparatus for processing a video signal | |
| KR102037327B1 (en) | A method and an apparatus for processing a video signal | |
| KR101269116B1 (en) | Decoding method of inter coded moving picture | |
| KR101452859B1 (en) | Method and apparatus for encoding and decoding motion vector | |
| KR102081945B1 (en) | Method and apparatus for processing a video signal | |
| KR20180018591A (en) | Apparatus for decoding an image | |
| KR101691553B1 (en) | Method and apparatus for decoding image | |
| KR101882949B1 (en) | Method and apparatus for encoding image, and computer-readable medium | |
| KR102333745B1 (en) | Method and apparatus for processing a video signal | |
| KR101783965B1 (en) | Method and apparatus for decoding image | |
| KR101617796B1 (en) | Method and apparatus for decoding image | |
| KR101477545B1 (en) | Method for decoding motion vector | |
| KR101477546B1 (en) | Apparatus for decoding motion vector | |
| KR101606812B1 (en) | Method and apparatus for decoding image | |
| KR20130062960A (en) | Method for decoding motion vector |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20100510 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20150508 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20100510 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20160205 Patent event code: PE09021S01D |
|
| E90F | Notification of reason for final refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Final Notice of Reason for Refusal Patent event date: 20160907 Patent event code: PE09021S02D |
|
| 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: 20170224 |
|
| A107 | Divisional application of patent | ||
| PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20170524 Patent event code: PA01071R01D |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20170529 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20170530 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| PR1001 | Payment of annual fee |
Payment date: 20200414 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20240409 Start annual number: 8 End annual number: 8 |