KR20100081553A - Method of buffering a pixel and buffer system - Google Patents
Method of buffering a pixel and buffer system Download PDFInfo
- Publication number
- KR20100081553A KR20100081553A KR1020090000844A KR20090000844A KR20100081553A KR 20100081553 A KR20100081553 A KR 20100081553A KR 1020090000844 A KR1020090000844 A KR 1020090000844A KR 20090000844 A KR20090000844 A KR 20090000844A KR 20100081553 A KR20100081553 A KR 20100081553A
- Authority
- KR
- South Korea
- Prior art keywords
- macroblock
- buffer
- pixels
- current
- frame
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/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/172—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 picture, frame or field
-
- 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/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명은 영상의 부호화/복호화 방법에 관한 것이며, 보다 상세하게는 영상의 부호화/복호화 과정에서 영상에 포함된 픽셀의 버퍼링 방법 및 버퍼 시스템, 그리고 상기 버퍼 시스템을 포함하는 영상의 복호화 장치에 관한 것이다.The present invention relates to a method of encoding / decoding an image, and more particularly, to a buffering method and a buffer system of pixels included in an image during an encoding / decoding process of an image, and an image decoding apparatus including the buffer system. .
H.264는 매우 높은 데이터 압축률을 가지는 디지털 비디오 코덱 표준으로, 기존의 표준과 비교했을 때, 절반 이하의 비트레이트에서 비슷하거나 더 좋은 화질을 얻을 수 있도록 개발되었으며 다양한 시스템과 다양한 종류의 네트워크 등에서 작동할 수 있다. H.264 is a digital video codec standard that has a very high data compression rate. It was developed to achieve similar or better picture quality at less than half the bitrate compared to the existing standard, and works on various systems and various kinds of networks. can do.
카메라가 움직이거나 움직임이 있는 영상에서 격행 주사 프레임(interlaced frame) 내의 이웃하는 두 행은 같은 패리티의 필드(field) 내의 이웃하는 두 행에 비해 낮은 상관관계를 가질 수 있다. 이러한 경우, 각각의 필드를 분리하여 부호화하는 방법이 효율적일 수 있다. Two neighboring rows in an interlaced frame may have a lower correlation than two neighboring rows in a field of the same parity in the camera moving or moving image. In this case, a method of separating and encoding each field may be efficient.
H.264의 MBAFF(Macro Block Adaptive Field/Frame) 부호화 기술은 매크로블록을 단위로 프레임 모드 또는 필드 모드로 부호화한다. 구체적으로, MBAFF 부호 화 기술은 2개의 필드를 모아서 단일 프레임으로 부호화하는 프레임 모드 또는 2개의 필드를 분리하여 각각의 분리된 필드로 부호화하는 필드 모드를 선택적으로 이용할 수 있다. 이는 종래의 픽처(picture) 단위의 프레임/필드 부호화에 비해 매우 성능이 뛰어나다.The H.264 MBAFF (Macro Block Adaptive Field / Frame) encoding technique encodes macroblocks in frame mode or field mode. In detail, the MBAFF encoding technique may selectively use a frame mode in which two fields are collected and encoded into a single frame, or a field mode in which two fields are separated and encoded into each separated field. This is very superior to conventional frame / field coding in picture units.
본 발명이 해결하고자 하는 과제는 현재 매크로블록에 포함된 픽셀들에 대한 복호화 과정에서 이웃 픽셀을 참조하기 위해 소요되는 연산량을 줄일 수 있는 픽셀의 버퍼링 방법, 버퍼 시스템 및 상기 버퍼 시스템을 포함하는 영상의 복호화 장치를 제공하는데 있다. An object of the present invention is to provide a buffering method of a pixel, a buffer system, and an image including the buffer system, which can reduce the amount of computation required to refer to neighboring pixels in the decoding process for pixels included in a current macroblock. It is to provide a decoding device.
상기 과제를 해결하기 위한 본 발명에 따른 픽셀의 버퍼링 방법은 현재 매크로블록(macroblock)에 포함된 복수의 픽셀(pixel)들을 복호화하는 단계; 상기 현재 매크로블록이 필드(field) 단위로 부호화되었는지 또는 프레임(frame) 단위로 부호화되었는지 판단하는 단계; 및 상기 판단 결과를 참조하여 상기 복수의 픽셀들을 프레임 단위로 버퍼링하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of buffering pixels, the method comprising: decoding a plurality of pixels included in a current macroblock; Determining whether the current macroblock is encoded in a field unit or a frame unit; And buffering the plurality of pixels in units of frames with reference to the determination result.
픽셀의 버퍼링 방법은 매크로블록 쌍(pair)을 저장하는 버퍼에서 상기 현재 매크로블록이 탑(top) 매크로블록인 경우의 저장 위치를 기준 위치로 결정하는 단계를 더 포함할 수 있다. 상기 복수의 픽셀들을 버퍼링하는 단계는, 상기 판단 결과를 참조하여 상기 기준 위치에 대한 상기 복수의 픽셀들의 저장 위치를 결정하는 단계; 및 상기 결정된 저장 위치에 상기 복수의 픽셀들을 프레임 단위로 저장하는 단계를 포함할 수 있다. The method for buffering pixels may further include determining a storage position when the current macroblock is a top macroblock as a reference position in a buffer for storing a macroblock pair. The buffering of the plurality of pixels may include determining a storage location of the plurality of pixels with respect to the reference position with reference to the determination result; And storing the plurality of pixels in units of frames at the determined storage location.
상기 현재 매크로블록이 필드 단위로 부호화되었는지 또는 프레임 단위로 부호화되었는지 판단하는 단계는, 상기 현재 매크로블록이 필드 단위로 부호화된 필 드 매크로블록인지 판단하는 단계; 상기 현재 매크로블록이 상기 필드 매크로블록인 경우에 상기 현재 매크로블록이 탑 라인(line)들만을 포함하는 탑 필드 매크로블록인지 또는 바텀 라인들만을 포함하는 바텀(bottom) 필드 매크로블록인지 판단하는 단계; 및 상기 현재 매크로블록이 필드 매크로블록이 아닌 경우에 상기 현재 매크로블록이 탑 프레임 매크로블록인지 또는 바텀 프레임 매크로블록인지 판단하는 단계를 포함할 수 있다. 픽셀의 버퍼링 방법은 상기 버퍼에서 상기 복수의 픽셀들에 이웃하는 픽셀의 저장 위치를 결정하는 단계를 더 포함할 수 있다.Determining whether the current macroblock is coded on a field basis or on a frame basis may include: determining whether the current macroblock is a field macroblock coded on a field basis; When the current macroblock is the field macroblock, determining whether the current macroblock is a top field macroblock including only top lines or a bottom field macroblock including only bottom lines; And if the current macroblock is not a field macroblock, determining whether the current macroblock is a top frame macroblock or a bottom frame macroblock. The method of buffering pixels may further include determining a storage position of a pixel neighboring the plurality of pixels in the buffer.
또한, 상기 과제를 해결하기 위한 본 발명에 따른 버퍼 시스템은 매크로블록 쌍을 저장하고, 필드 단위 또는 프레임 단위로 부호화된 현재 매크로블록에 포함된 복수의 픽셀들을 프레임 단위로 저장하는 현재 매크로블록 버퍼; 및 상기 현재 매크로블록 버퍼에 공간적으로 이웃하고, 상기 복수의 픽셀들에 이웃하는 이웃 픽셀들을 저장하는 참조 매크로블록 버퍼를 포함한다.In addition, a buffer system according to the present invention for solving the above problems is a current macroblock buffer for storing a pair of macroblocks, and stores a plurality of pixels included in the current macroblock encoded in a field unit or a frame unit in a frame unit; And a reference macroblock buffer spatially neighboring the current macroblock buffer and storing neighboring pixels neighboring the plurality of pixels.
또한, 상기 과제를 해결하기 위한 본 발명에 따른 영상의 복호화 장치는 프레임 모드 또는 필드 모드로 부호화된, 영상의 매크로블록을 복호화하는 가변장 복호화부; 상기 복호화된 매크로블록을 버퍼링하는 방식을 제어하는 버퍼링 제어부; 상기 제어된 버퍼링 방식에 따라 상기 복호화된 매크로블록을 프레임 단위로 저장하는 프레임 매크로블록 버퍼; 상기 복호화된 매크로블록에 대하여 상기 프레임 매크로블록 버퍼에 저장된 값을 참조하여 움직임 보상 및 인트라 예측을 수행하는 움직임 보상/인트라 예측부; 및 상기 복호화된 매크로블록에 대하여 상기 프레임 매크로블록 버퍼에 저장된 값을 참조하여 역변환/역양자화를 수행하는 역변환/역양자 화부를 포함한다.In addition, an apparatus for decoding an image according to the present invention for solving the above problems is a variable-length decoding unit for decoding a macroblock of the image, encoded in the frame mode or field mode; A buffering control unit controlling a method of buffering the decoded macroblock; A frame macroblock buffer for storing the decoded macroblocks on a frame basis according to the controlled buffering scheme; A motion compensation / intra prediction unit for performing motion compensation and intra prediction on the decoded macroblock with reference to a value stored in the frame macroblock buffer; And an inverse transform / inverse quantizer for performing inverse transform / inverse quantization on the decoded macroblock by referring to a value stored in the frame macroblock buffer.
본 발명에 따르면, 필드 단위 또는 프레임 단위로 부호화된 현재 매크로블록을 복호화한 결과를 프레임 단위로 버퍼링함으로써, 현재 복호화하고자 하는 픽셀에 이웃하는 픽셀을 획득하기 위한 별도의 연산을 거치지 않아도 된다. 이로써, 종래에 비하여 빠른 시간 내에 이웃 픽셀을 획득할 수 있으므로, 복호화 장치의 로드를 줄일 수 있다.According to the present invention, by buffering the result of decoding the current macroblock encoded in the field unit or the frame unit in the frame unit, a separate operation for acquiring a pixel neighboring the pixel to be currently decoded does not need to be performed. As a result, neighboring pixels can be obtained in a shorter time as compared with the related art, thereby reducing the load on the decoding apparatus.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다. With respect to the embodiments of the present invention disclosed in the text, specific structural to functional descriptions are merely illustrated for the purpose of describing embodiments of the present invention, embodiments of the present invention may be implemented in various forms and It should not be construed as limited to the embodiments described in.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, with reference to the accompanying drawings, it will be described in detail an embodiment of the present invention. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.
도 1은 MBAFF 부호화 기술을 이용하지 않는 경우의 현재 매크로블록과 이웃(neighbor) 매크로블록들을 나타낸다.1 shows current macroblocks and neighbor macroblocks when MBAFF encoding is not used.
도 1을 참조하면, 9개의 매크로블록이 도시되었고, 각각의 매크로블록은 16X16개의 픽셀들을 포함한다. 여기서, CurrMbAddr은 현재 매크로블록의 주소를 나타내고, mbAddrA는 현재 매크로블록의 좌측에 위치하는 매크로블록의 주소를 나 타내며, mbAddrB는 현재 매크로블록의 상부에 위치하는 매크로블록의 주소를 나타낸다. 또한, mbAddrC는 현재 매크로블록의 우측 상부에 위치하는 매크로블록의 주소를 나타내고, mbAddrD는 현재 매크로블록의 좌측 상부에 위치하는 매크로블록의 주소를 나타낸다. Referring to FIG. 1, nine macroblocks are shown, each containing 16 × 16 pixels. Here, CurrMbAddr represents the address of the current macroblock, mbAddrA represents the address of the macroblock located to the left of the current macroblock, and mbAddrB represents the address of the macroblock located above the current macroblock. In addition, mbAddrC represents the address of the macroblock located in the upper right of the current macroblock, and mbAddrD represents the address of the macroblock located in the upper left of the current macroblock.
현재 매크로블록(CurrMbAddr)에 포함된 복수의 픽셀들에 대한 부호화/복호화 과정에서 현재 매크로블록(CurrMbAddr)에 이웃하는 픽셀들을 참조한다. 구체적으로, 현재 매크로블록(CurrMbAddr)에 포함된 픽셀들에 대한 인트라 예측(intra prediction), 디블록킹 필터링(deblocking filtering) 등의 연산을 실행할 때 이웃 매크로블록들(mbAddrA, mbAddrB, mbAddrC, mbAddrD)에 포함된 픽셀들을 참조한다. In the encoding / decoding process of the plurality of pixels included in the current macroblock CurrMbAddr, the pixels neighboring the current macroblock CurrMbAddr are referred to. Specifically, when performing operations such as intra prediction and deblocking filtering on pixels included in the current macroblock CurrMbAddr, the neighboring macroblocks mbAddrA, mbAddrB, mbAddrC, and mbAddrD) are executed. Reference included pixels.
MBAFF 부호화 기술을 이용하지 않는 경우에는 현재 매크로블록(CurrMbAddr)에 공간적으로 인접한 매크로블록들이 이웃 매크로블록들(mbAddrA, mbAddrB, mbAddrC, mbAddrD)에 해당하므로 이웃 매크로블록에 포함된 참조 픽셀을 구하기 위한 별도의 계산 과정을 거치지 않아도 된다. When the MBAFF encoding technique is not used, the macroblocks spatially adjacent to the current macroblock CurrMbAddr correspond to neighboring macroblocks mbAddrA, mbAddrB, mbAddrC, and mbAddrD, so that separate pixels for obtaining reference pixels included in neighboring macroblocks are obtained. You do not have to go through the calculation process.
도 2는 MBAFF 부호화 기술을 이용하는 경우의 현재 매크로블록 쌍(pair)과 이웃 매크로블록 쌍들을 나타낸다.2 shows a current macroblock pair and neighboring macroblock pairs when using the MBAFF encoding technique.
도 2를 참조하면, 9개의 매크로블록 쌍이 도시되었고, 각각의 매크로블록 쌍은 16X32개의 픽셀들을 포함한다. 각각의 매크로블록 쌍에서 상부에 위치하는 매크로블록은 탑(top) 매크로블록이고, 하부에 위치하는 매크로블록은 바텀(bottom) 매크로블록이다. 여기서, CurrMbAddr은 현재 매크로블록의 주소를 나타내고, mbAddrA는 현재 매크로블록의 좌측에 위치하는 매크로블록 쌍에서 탑 매크로블록의 주소를 나타내며, mbAddrB는 현재 매크로블록의 상부에 위치하는 매크로블록 쌍에서 탑 매크로블록의 주소를 나타낸다. 또한, mbAddrC는 현재 매크로블록의 우측 상부에 위치하는 매크로블록 쌍에서 탑 매크로블록의 주소를 나타내고, mbAddrD는 현재 매크로블록의 좌측 상부에 위치하는 매크로블록 쌍에서 탑 매크로블록의 주소를 나타낸다. Referring to FIG. 2, nine macroblock pairs are shown, each macroblock pair comprising 16 × 32 pixels. The upper macroblock in each pair of macroblocks is the top macroblock, and the lower macroblock is a bottom macroblock. Here, CurrMbAddr represents the address of the current macroblock, mbAddrA represents the address of the top macroblock in the macroblock pair located to the left of the current macroblock, and mbAddrB represents the top macro in the macroblock pair located above the current macroblock. Represents the address of a block. In addition, mbAddrC represents the address of the top macroblock in the macroblock pair located at the upper right of the current macroblock, and mbAddrD represents the address of the top macroblock in the macroblock pair located at the upper left of the current macroblock.
현재 매크로블록(CurrMbAddr)이 현재 매크로블록 쌍에서 탑 매크로블록인지 바텀 매크로블록인지에 관계없이, 현재 매크로블록(CurrMbAddr)에 포함된 픽셀들에 대한 인트라 예측, 디블록킹 필터링 등의 연산을 실행할 때 이웃 매크로블록들(mbAddrA, mbAddrB, mbAddrC, mbAddrD)에 포함된 픽셀들을 참조한다. Regardless of whether the current macroblock (CurrMbAddr) is a top macroblock or a bottom macroblock in a current macroblock pair, neighbors when performing operations such as intra prediction and deblocking filtering on pixels included in the current macroblock (CurrMbAddr) Reference is made to pixels included in the macroblocks mbAddrA, mbAddrB, mbAddrC, and mbAddrD.
MBAFF 부호화 기술을 이용하는 경우에는 현재 매크로블록(CurrMbAddr)에 공간적으로 인접한 매크로블록들이 반드시 이웃 매크로블록들(mbAddrA, mbAddrB, mbAddrC, mbAddrD)에 해당한다고 보장할 수 없으므로 이웃 매크로블록에 포함된 참조 픽셀을 구하기 위한 별도의 계산 과정을 거쳐야 한다. 그러나, 종래 기술에 따르면 각각의 참조 픽셀을 구하기 위해서는 모든 이웃 매크로블록에 포함된 이웃 픽셀들을 수식을 이용하여 계산해야 하는바, 연산량이 매우 크다. 특히, HD(high definition)급 영상의 경우 오버헤드가 더욱 크다.In the case of using the MBAFF encoding technique, macroblocks spatially adjacent to the current macroblock CurrMbAddr cannot be guaranteed to correspond to neighboring macroblocks mbAddrA, mbAddrB, mbAddrC, and mbAddrD. You have to go through a separate calculation process. However, according to the related art, in order to obtain each reference pixel, it is necessary to calculate neighboring pixels included in all neighboring macroblocks using a formula, and thus a large amount of calculation is required. In particular, in the case of a high definition (HD) class image, the overhead is greater.
도 3은 본 발명의 일 실시예에 따른 영상의 복호화 장치를 나타내는 블록도이다.3 is a block diagram illustrating an apparatus for decoding an image according to an embodiment of the present invention.
도 3을 참조하면, 영상의 복호화 장치(10)는 가변장 복호화부(variable length decoding unit, 11), 움직임 보상/인트라 예측부(motion compensation/intra prediction unit, 12), 역변환/역양자화부(inverse transformation/inverse quantization unit, 13), 루프 필터(loop filter, 14), 프레임 매크로블록 버퍼(frame macroblock buffer, 15), 프레임 버퍼(frame buffer, 16) 및 버퍼링 제어부(buffering controller, 17)를 포함한다.Referring to FIG. 3, the
가변장 복호화부(11)는 영상의 부호화 결과인 비트스트림을 복호화한다. 움직임 보상/인트라 예측부(12)는 가변장 복호화부(11)에서 복호화된 결과에 대하여 프레임 매크로블록 버퍼(15)에 저장된 값을 참조하여 움직임 보상 및 인트라 예측을 수행한다. 역변환/역양자화부(13)는 가변장 복호화부(11)에서 복호화된 결과를 주파수 도메인에서 시간 도메인으로 역변환하고, 역양자화하며, 역변환/역양자화된 결과를 프레임 매크로블록 버퍼(15)에 제공한다. The
루프 필터(14)는 프레임 매크로블록 버퍼(15)에 저장된 매크로블록에 대해 디블록킹 필터링을 수행한다. 프레임 매크로블록 버퍼(15)는 프레임 모드 또는 필드 모드로 부호화된 픽셀들을 포함하는 매크로블록을 프레임 단위로 저장한다. 프레임 버퍼(16)는 최종적으로 복호화된 프레임을 저장한다.The
버퍼링 제어부(17)는 가변장 복호화부(11)에서 복호화된 결과를 기초로 하여 프레임 매크로블록 버퍼(15)에 복호화된 결과를 버퍼링하는 방식을 제어한다. 버퍼링 제어부(17)의 구체적인 동작에 대해서는 이하에서 도 5를 참조하여 설명하기로 한다.The
도 4는 도 3의 프레임 매크로블록 버퍼의 일 예를 나타낸다.4 illustrates an example of the frame macroblock buffer of FIG. 3.
이하에서는, 도 3 및 4를 참조하여 프레임 매크로블록 버퍼(15)의 구조에 대 하여 상술하기로 한다.Hereinafter, the structure of the
프레임 매크로블록 버퍼(15)는 적어도 두 개의 버퍼를 포함하는 버퍼 시스템으로 구현된다. 이하에서는 도 4에 도시된 바와 같이 프레임 매크로블록 버퍼(15)는 3개의 버퍼, 즉, 제1 내지 제3 버퍼(151, 152, 153)를 포함하는 경우를 예로 하여 설명하기로 한다. The
제1 내지 제3 버퍼(151, 152, 153) 각각은 두 개의 매크로블록들, 즉, 하나의 매크로블록 쌍을 저장한다. 다시 말해, 제1 내지 제3 버퍼(151, 152, 153) 각각은 16X32개의 픽셀들을 포함한다. 그러므로, 제1 내지 제3 버퍼(151, 152, 153) 각각의 스트라이드(stride)는 16이고, 프레임 매크로블록 버퍼(15)의 전체 스트라이드는 48(=16X3)이다.Each of the first to
또한, 제1 내지 제3 버퍼(151, 152, 153) 각각에 저장되는 매크로블록은 탑 라인(line)과 바텀 라인이 반복적으로 위치하는 프레임 매크로블록이다. 따라서, 프레임 매크로블록 버퍼(15)에 저장되는 매크로블록이 프레임 단위로 부호화된 프레임 매크로블록인 경우에는 탑 매크로블록인지 바텀 매크로블록인지에 따라 제1 내지 제3 버퍼(151, 152, 153)에 그대로 저장할 수 있다. 한편, 프레임 매크로블록 버퍼(15)에 저장되는 매크로블록이 필드 단위로 부호화된 필드 매크로블록인 경우에는 이를 프레임 매크로블록으로 저장하기 위한 연산 과정을 거쳐야 한다. 이에 대해서는 후술하기로 한다.In addition, the macroblocks stored in each of the first to
도 5는 도 3의 버퍼링 제어부를 상세하게 나타내는 블록도이다.FIG. 5 is a detailed block diagram illustrating the buffering controller of FIG. 3.
이하에서는 도 3 내지 5를 참조하여 버퍼링 제어부의 동작에 대하여 상술하 기로 한다. 버퍼링 제어부(17)는 기준 위치 결정부(171), 부호화 모드 결정부(172) 및 저장 위치 결정부(173)를 포함한다.Hereinafter, the operation of the buffering controller will be described in detail with reference to FIGS. 3 to 5. The buffering
기준 위치 결정부(171)는 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치와 좌측 매크로블록의 저장 위치를 결정한다. 여기서, 현재 탑 매크로블록의 저장 위치를 현재 매크로블록에 포함된 픽셀들의 저장을 위한 기준 위치로 설정한다. The
도 6은 도 5의 기준 위치 결정부의 동작을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart for describing an operation of a reference position determiner of FIG. 5.
이하에서는 도 5 및 6을 참조하여 기준 위치 결정부의 동작을 상술하기로 한다.Hereinafter, the operation of the reference position determiner will be described in detail with reference to FIGS. 5 and 6.
610 단계에서, 기준 위치 결정부(171)는 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치를 결정한다. 여기서, 현재 탑 매크로블록의 저장 위치는 현재 탑 매크로블록의 주소(Topaddr)와 프레임 매크로블록 버퍼(15)에 포함된 버퍼들의 개수(N)를 기초로 결정할 수 있다. In
보다 상세하게는, 현재 탑 매크로블록의 주소(Topaddr)는 매크로블록의 주소(Mbaddr)에 대해 쉬프트(shift) 연산을 하여 결정하는데, 구체적으로, Topaddr = (Mbaddr>>1) << 1을 이용하여 현재 탑 매크로블록의 주소를 결정할 수 있다. 여기서, ">>1"은 오른쪽으로 1 비트만큼 쉬프트 연산을 하는 것을 나타내고, "<<1"은 왼쪽으로 1 비트만큼 쉬프트 연산을 하는 것을 나타낸다. 예를 들어, 매크로블록의 주소(Mbaddr)는 0(=000), 1(=001), 2(=010), 3(=011), 4(=100), 5(=101)…일 수 있다. 매크로블록의 주소(Mbaddr)가 001인 경우에 (001)>>1을 하면 000이 되고, (000)<<1을 하면 000이 되므로, 이 때의 탑 매크로블록의 주소는 0이 된다. 또한, 매크로블록의 주소(Mbaddr)가 010인 경우에 (010)>>1을 하면 001이 되고, (001)<<1을 하면 010이 되므로, 이 때의 탑 매크로블록의 주소는 2가 된다. 이와 같이 각각의 매크로블록(Mbaddr)에 대해 쉬프트 연산을 수행하면, 현재 탑 매크로블록의 주소(Topaddr)를 0, 2, 4..로 결정할 수 있다. More specifically, the address of the current top macroblock (Topaddr) is determined by performing a shift operation on the address of the macroblock (Mbaddr), specifically, using Topaddr = (Mbaddr >> 1) << 1 To determine the address of the current top macroblock. Here, " >> 1 " indicates shifting by 1 bit to the right, and " << 1 " indicates shifting by 1 bit to the left. For example, the address Mbaddr of a macroblock is 0 (= 000), 1 (= 001), 2 (= 010), 3 (= 011), 4 (= 100), 5 (= 101). Can be. When the macroblock address Mbaddr is 001, (001) >> 1 is 000, and (000) << 1 is 000. Therefore, the top macroblock address is 0 at this time. In the case where the macroblock address (Mbaddr) is 010, if (010) >> 1 is set to 001, and if (001) << 1 is set to 010, then the top macroblock has an address of 2. . As such, when the shift operation is performed on each macroblock Mbaddr, an address Topaddr of the current top macroblock may be determined as 0, 2, and 4.
한편, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치는 Topaddr/2 & (N-1)을 이용하여 결정할 수 있다. 현재 탑 매크로블록의 주소(Topaddr)는 0, 2, 4…이므로, 현재 탑 매크로블록의 주소(Topaddr)를 2로 나누면 0, 1, 2가 된다. Meanwhile, the storage location of the current top macroblock in the
도 4의 예에서 프레임 매크로블록 버퍼(15)는 3개의 버퍼들을 포함하고 있는바 N은 3이므로, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치는 Topaddr & 2를 이용하여 결정할 수 있다. 따라서, 현재 탑 매크로블록의 주소에 따라 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치는 0, 1, 2 중의 하나일 수 있다. 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치가 0인 경우에 현재 탑 매크로블록은 제1 버퍼(151)에 저장된다. 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치가 1인 경우에 현재 탑 매크로블록은 제2 버퍼(152)에 저장된다. 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치가 2인 경우에 현재 탑 매크로블록은 제3 버퍼(153)에 저장된다.In the example of FIG. 4, since the
620 단계에서, 기준 위치 결정부(171)는 프레임 매크로블록 버퍼(15)에서 현 재 탑 매크로블록의 저장 위치가 0인지 여부를 판단한다. 판단 결과, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치가 0인 경우 630 단계를 수행하고, 그렇지 않은 경우에는 640 단계를 수행한다. In
630 단계에서, 기준 위치 결정부(171)는 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 좌측에 이웃하는 좌측 매크로블록의 저장 위치를 (N-1)로 결정한다. 도 4의 예에서, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치가 0이므로, 현재 탑 매크로블록이 제1 버퍼(151)에 위치한다. 이 경우, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 좌측에 이웃하는 좌측 매크로블록의 저장 위치는 2이므로, 좌측 매크로블록은 제3 버퍼(153)에 저장된다.In
640 단계에서, 기준 위치 결정부(171)는 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 좌측에 이웃하는 좌측 매크로블록의 저장 위치를 (Topaddr/2 & (N-1))-1로 결정한다. 도 4의 예에서, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치가 1인 경우에, 현재 탑 매크로블록은 제2 버퍼(152)에 위치한다. 이 경우, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 좌측에 이웃하는 좌측 매크로블록의 저장 위치는 0이므로, 좌측 매크로블록은 제1 버퍼(151)에 저장된다. 또한, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치가 2인 경우에, 현재 탑 매크로블록은 제3 버퍼(153)에 위치한다. 이 경우, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 좌측에 이웃하는 좌측 매크로블록의 저장 위치는 1이므로, 좌측 매크로블록은 제2 버퍼(152)에 저장된다. In
이와 같이, 현재 탑 매크로블록이 프레임 매크로블록 버퍼(15)에서 가장 좌측 버퍼에 저장되는 경우에, 현재 탑 매크로블록의 좌측에 이웃하는 좌측 매크로블록을 가장 우측 버퍼에 저장한다. 그러나, 그 외의 경우에는, 즉, 현재 탑 매크로블록이 프레임 매크로블록 버퍼(15)에서 가장 좌측 버퍼에 저장되는 경우를 제외하면, 현재 탑 매크로블록의 좌측에 이웃하는 좌측 매크로블록을 현재 탑 매크로블록이 저장되는 버퍼의 바로 좌측에 위치하는 버퍼에 저장한다. As such, when the current top macroblock is stored in the leftmost buffer in the
다시 도 5를 참조하면, 부호화 모드 결정부(172)는 현재 매크로블록이 필드 모드로 부호화되었는지 또는 프레임 모드로 부호화되었는지 결정한다. 현재 매크로블록이 필드 모드로 부호화된 경우에는 현재 매크로블록은 탑 필드 또는 바텀 필드만을 포함하고, 현재 매크로블록이 프레임 모드로 부호화된 경우에는 현재 매크로블록은 탑 필드 및 바텀 필드를 포함한다.Referring back to FIG. 5, the
저장 위치 결정부(173)는 기준 위치 결정부(171)에서 결정된 기준 위치와 부호화 모드 결정부(172)에서 결정된 부호화 모드를 기초로 프레임 매크로블록 버퍼(15)에서 현재 매크로블록의 저장 위치를 결정한다. 예를 들어, 현재 탑 매크로블록의 주소를 2라고 하면, 프레임 매크로블록 버퍼(15)에서 현재 탑 매크로블록의 저장 위치, 즉, 기준 위치는 1이므로, 도 4의 예에서 제2 버퍼(152)의 상부가 현재 탑 매크로블록의 저장 위치이다. The
먼저, 현재 매크로블록이 필드 모드로 부호화된 경우에 저장 위치 결정부(173)는 현재 매크로블록이 탑 필드 매크로블록인지 또는 바텀 필드 매크로블록인지 판단한다. First, when the current macroblock is encoded in the field mode, the
현재 매크로블록이 탑 필드 매크로블록인 경우에 저장 위치 결정부(173)는 프레임 매크로블록 버퍼의 스트라이드를 2배로 설정한다. 이로써, 현재 탑 매크로블록에 포함된 픽셀들의 저장 위치는, 프레임 매크로블록 버퍼(15)에서 상기 기준 위치에서의 탑 라인들로 결정된다. 그러므로, 상술한 예와 같이 기준 위치가 1인 경우에 현재 탑 매크로블록에 포함된 픽셀들의 저장 위치는 제2 버퍼(152)의 상부의 탑 라인들이다.When the current macroblock is a top field macroblock, the
한편, 현재 매크로블록이 바텀 필드 매크로블록인 경우에 저장 위치 결정부(173)는 상기 기준 위치에서 버퍼의 스트라이드만큼 픽셀 위치를 아래로 이동하고, 프레임 매크로블록 버퍼의 스트라이드를 2배로 설정한다. 이로써, 현재 바텀 매크로블록에 포함된 픽셀들의 저장 위치는, 프레임 매크로블록 버퍼에서 상기 기준 위치에서의 바텀 라인들로 결정된다. 그러므로, 상술한 예와 같이 기준 위치가 1인 경우에 현재 바텀 매크로블록에 포함된 픽셀들의 저장 위치는 제2 버퍼(152)의 상부의 바텀 라인들이다.On the other hand, when the current macroblock is a bottom field macroblock, the
다음으로, 현재 매크로블록이 프레임 모드로 부호화된 경우에 저장 위치 결정부(173)는 현재 매크로블록이 탑 매크로블록인지 또는 바텀 매크로블록인지 판단한다. Next, when the current macroblock is encoded in the frame mode, the
현재 매크로블록이 탑 매크로블록인 경우에 저장 위치 결정부(173)는 상기 기준 위치를 현재 매크로블록의 저장 위치로 결정한다. 그러므로, 상술한 예와 같이 기준 위치가 1인 경우에 현재 탑 매크로블록에 포함된 픽셀들의 저장 위치는 제2 버퍼(152)의 상부이다. 한편, 현재 매크로블록이 바텀 매크로블록인 경우에 저 장 위치 결정부(173)는 상기 기준 위치로부터 매크로블록에 포함된 라인의 수와 버퍼의 스트라이드의 곱만큼 픽셀 위치를 아래로 이동된 위치를 현재 매크로블록의 저장 위치로 결정한다. 그러므로, 상술한 예와 같이 기준 위치가 1인 경우에 현재 바텀 매크로블록에 포함된 픽셀들의 저장 위치는 제2 버퍼(152)의 하부이다.When the current macroblock is the top macroblock, the
도 7은 도 4의 프레임 매크로블록 버퍼를 이차원적으로 배열한 일 예를 나타낸다.FIG. 7 illustrates an example of two-dimensional arrangement of the frame macroblock buffer of FIG. 4.
도 7을 참조하면, 71은 현재 매크로블록에 포함된 픽셀들을 저장하는 버퍼를 나타내고, 72는 현재 매크로블록의 좌측에 위치하는 좌측 매크로블록에 포함된 픽셀들을 저장하는 버퍼를 나타낸다. 73은 현재 매크로블록의 상부에 위치하는 상부 매크로블록에 포함된 픽셀들을 저장하는 버퍼를 나타내고, 74는 현재 매크로블록의 우측 상부에 위치하는 우측 상부 매크로블록에 포함된 픽셀들을 저장하는 버퍼를 나타내며, 75는 현재 매크로블록의 좌측 상부에 위치하는 좌측 상부 매크로블록에 포함된 픽셀들을 저장하는 버퍼를 나타낸다. Referring to FIG. 7, 71 represents a buffer for storing pixels included in a current macroblock, and 72 represents a buffer for storing pixels included in a left macroblock positioned to the left of the current macroblock. 73 denotes a buffer for storing pixels included in an upper macroblock positioned above the current macroblock, 74 denotes a buffer for storing pixels included in an upper right macroblock positioned above the right side of the current macroblock, 75 denotes a buffer that stores the pixels included in the upper left macroblock located at the upper left of the current macroblock.
이하에서는, 편의상 현재 매크로블록을 저장하는 버퍼(71)는 도 4의 제2 버퍼(152)에 대응되고, 좌측 매크로블록에 포함된 픽셀들을 저장하는 버퍼(72)는 도 4의 제1 버퍼(151)에 대응되는 경우를 예로 하여 설명한다. Hereinafter, for convenience, the
도 4에 도시된 바와 같이, 프레임 매크로블록 버퍼(15)는 일차원적인 구조를 가질 수 있다. 그러나, 현재 매크로블록에 포함된 복수의 픽셀들에 대한 복호화 과정에서 이웃하는 픽셀들을 참조하는 것이 요구되는데, 도 2에서 설명한 바와 같이 MBAFF 기술을 이용하는 경우에 공간적으로 이웃하는 픽셀이 현재 매크로블록에 대한 이웃 픽셀이라고 보장할 수 없다. 따라서, 본 발명의 일 실시예에서는, 프레임 매크로블록 버퍼에 프레임 단위로 매크로블록을 저장하고, 프레임 매크로블록 버퍼에 포함된 버퍼들을 이차원적으로 배열한다. 이로써, 이웃 픽셀을 획득하기 위해 개별적으로 연산을 하지 않아도, 프레임 매크로블록에서 현재 매크로블록에 공간적으로 이웃하는 픽셀을 이웃 픽셀로 참조할 수 있다.As shown in FIG. 4, the
보다 상세하게는, 도 3의 움직임 보상/인트라 예측부(12)는 현재 매크로블록에 대하여 인트라 예측을 수행하기 위해, H.264 스펙에 따라 현재 매크로블록의 상부에 위치하는 2줄의 픽셀들을 참조한다. 따라서, 이 경우에 상부 버퍼는 적어도 2줄의 픽셀들을 저장한다. 또한, 도 3의 루프 필터(14)는 현재 매크로블록에 대해 디블록킹 필터링을 수행하기 위해, H.264 스펙에 따라 현재 매크로블록의 상부에 위치하는 8줄의 픽셀들을 참조한다. 따라서, 이 경우에 상부 버퍼는 적어도 8줄의 픽셀들을 저장한다. More specifically, the motion compensation /
도 8는 본 발명의 일 실시예에 따른 픽셀의 버퍼링 방법을 나타내는 흐름도이다.8 is a flowchart illustrating a method of buffering pixels according to an embodiment of the present invention.
도 8을 참조하면, 810 단계에서, 가변장 복호화부(12)는 현재 매크로블록에 포함된 복수의 픽셀들을 복호화한다. Referring to FIG. 8, in
820 단계에서, 기준 위치 결정부(171)는 프레임 매크로블록 버퍼에서 현재 탑 매크로블록의 저장 위치와 좌측 매크로블록의 저장 위치를 결정한다. 여기서, 현재 탑 매크로블록의 저장 위치를 현재 매크로블록에 포함된 픽셀들의 저장을 위한 기준 위치로 설정한다. 구체적으로 현재 탑 매크로블록의 저장 위치와 좌측 매 크로블록의 저장 위치를 결정하는 방법에 대해서는 도 5를 참조하여 상술하였다. 여기서, 810 단계와 820 단계의 순서는 변경될 수 있다.In
830 단계에서, 부호화 모드 결정부(172)는 현재 매크로블록이 필드 모드로 부호화되었는지 판단한다. 판단 결과, 현재 매크로블록이 필드 모드로 부호화된 경우에 현재 매크로블록은 탑 라인 또는 바텀 라인만을 포함하고, 이 경우 840 단계를 수행한다. 한편, 현재 매크로블록이 프레임 모드로 부호화된 경우에 현재 매크로블록은 탑 라인 및 바텀 라인을 포함하고, 이 경우 880 단계를 수행한다.In
840 단계에서, 저장 위치 결정부(173)는 현재 매크로블록이 탑 라인만을 포함하는 탑 필드 매크로블록인지 여부를 판단한다. 판단 결과, 현재 매크로블록이 탑 필드 매크로블록인 경우 850 단계를 수행하고, 현재 매크로블록이 바텀 라인만을 포함하는 바텀 필드 매크로블록인 경우 860 단계를 수행한다.In
850 단계에서, 현재 매크로블록이 탑 필드 매크로블록이므로 저장 위치 결정부(173)는 프레임 매크로블록 버퍼의 스트라이드를 2배로 설정한다. 따라서, 현재 탑 필드 매크로블록에 포함된 픽셀들은 프레임 매크로블록 버퍼의 해당 버퍼에서 탑 라인의 위치에 각각 저장된다.In
855 단계에서, 프레임 매크로블록 버퍼(15)는 현재 탑 필드 매크로블록을 결정된 위치에 저장하고, 상기 결정된 위치에서 현재 탑 매크로블록에 포함된 복수의 픽셀들에 이웃하는 픽셀을 획득한다. 구체적으로, 현재 탑 매크로블록에 포함된 복수의 픽셀들의 좌측에 이웃하는 좌측 픽셀은 좌측 매크로블록이 저장된 버퍼의 우측 가장 자리로 결정한다. 또한, 현재 탑 매크로블록에 포함된 복수의 픽셀들의 상부에 이웃하는 상부 픽셀은, 현재 매크로블록을 저장하는 버퍼의 상부에 위치하는 업 버퍼의 최하단으로 결정한다. 또한, 현재 탑 매크로블록에 포함된 복수의 픽셀들의 우측 상부에 이웃하는 우측 상부 픽셀은 업 버퍼의 우측 가장 자리에서 1칸 오른쪽(즉, + 1)의 위치로 결정한다. 이 경우, 프레임 매크로블록 버퍼의 스트라이드는 2배로 변경되고, 업 버퍼의 스트라이드도 2배로 변경된다. In
860 단계에서, 저장 위치 결정부(173)는 현재 매크로블록이 바텀 필드 매크로블록이므로 기준 위치에서 프레임 매크로블록 버퍼의 스트라이드만큼 픽셀 위치를 아래로 이동한다. In
865 단계에서, 저장 위치 결정부(173)는 프레임 매크로블록 버퍼의 스트라이드를 2배로 설정한다. 따라서, 현재 바텀 필드 매크로블록에 포함된 픽셀들은 프레임 매크로블록 버퍼의 해당 버퍼에서 바텀 라인의 위치에 각각 저장된다. In
870 단계에서, 프레임 매크로블록 버퍼(15)는 현재 바텀 매크로블록을 결정된 위치에 저장하고, 상기 결정된 위치에서 현재 바텀 매크로블록에 포함된 복수의 픽셀들에 이웃하는 픽셀을 획득한다. 구체적으로, 현재 바텀 매크로블록에 포함된 복수의 픽셀들의 좌측에 이웃하는 좌측 픽셀은 좌측 매크로블록이 저장된 버퍼의 우측 가장 자리로 결정한다. 또한, 현재 바텀 매크로블록에 포함된 복수의 픽셀들의 상부에 이웃하는 상부 픽셀은, 현재 매크로블록을 저장하는 버퍼의 상부에 위치하는 업 버퍼의 최하단에서 1줄 위로 결정한다. 또한, 현재 매크로블록에 포함된 복수의 픽셀들의 우측 상부에 이웃하는 우측 상부 픽셀은 업 버퍼의 우측 가장 자리에서 1칸 오른쪽의(즉, +1) 위치로 결정한다. 이 경우, 프레임 매크로블록 버퍼 의 스트라이드는 2배로 변경되고, 업 버퍼의 스트라이드도 2배로 변경된다. In
880 단계에서, 저장 위치 결정부(173)는 현재 매크로블록이 탑 프레임 매크로블록인지 여부를 판단한다. 판단 결과, 현재 매크로블록이 탑 매크로블록인 경우는 885 단계를 수행하고, 현재 매크로블록이 바텀 매크로블록인 경우는 890 단계를 수행한다. In
885 단계에서, 프레임 매크로블록 버퍼(15)는 현재 탑 매크로블록에 포함된 픽셀들을 상기 기준 위치에 저장하고, 상기 기준 위치에서 현재 탑 매크로블록에 포함된 복수의 픽셀들에 이웃하는 픽셀을 획득한다. 구체적으로, 현재 탑 매크로블록에 포함된 복수의 픽셀들의 좌측에 이웃하는 좌측 픽셀은 좌측 매크로블록이 저장된 버퍼의 우측 가장 자리로 결정한다. 또한, 현재 탑 매크로블록에 포함된 복수의 픽셀들의 상부에 이웃하는 상부 픽셀은 업 버퍼의 최하단으로 결정한다. 또한, 현재 탑 매크로블록에 포함된 복수의 픽셀들의 우측 상부에 이웃하는 우측 상부 픽셀은 업 버퍼의 우측 가장 자리에서 1칸 오른쪽(즉, + 1)의 위치로 결정한다. 이 경우, 프레임 매크로블록 버퍼의 스트라이드는 변경되지 않는다.In
890 단계에서, 저장 위치 결정부(183)는 현재 매크로블록이 바텀 프레임 매크로블록이므로, 상기 기준 위치에서 매크로블록의 라인 수와 프레임 매크로블록 버퍼의 스트라이드의 곱만큼 픽셀 위치를 아래로 이동한다.In
895 단계에서, 프레임 매크로블록 버퍼(15)는 현재 바텀 매크로블록에 포함된 픽셀들을 결정된 위치에 저장하고, 상기 결정된 위치에서 현재 바텀 매크로블록에 포함된 복수의 픽셀들에 이웃하는 픽셀을 획득한다. 구체적으로, 현재 바텀 매 크로블록에 포함된 복수의 픽셀들의 좌측에 이웃하는 좌측 픽셀은 좌측 매크로블록이 저장된 버퍼의 우측 가장 자리로 결정한다. 또한, 현재 바텀 매크로블록에 포함된 복수의 픽셀들의 상부에 이웃하는 상부 픽셀은 현재 버퍼에서 프레임 매크로블록 버퍼의 스트라이드만큼 위쪽으로 결정한다. 이 경우, 현재 바텀 매크로블록에 포함된 복수의 픽셀들의 우측 상부에 이웃하는 우측 상부 픽셀은 존재하지 않는다. 이 경우, 프레임 매크로블록 버퍼의 스트라이드는 변경되지 않는다.In
이와 같이, 본 발명의 일 실시예에 따르면 현재 매크로블록을 복호화하고, 현재 매크로블록의 부호화 모드를 판단하여, 판단된 부호화 모드를 기초로 하여 현재 매크로블록에 포함된 픽셀들을 버퍼에 저장한다. 현재 매크로블록의 부호화 모드가 프레임 모드인 경우에는 현재 매크로블록에 포함된 픽셀들은 그대로 버퍼에 저장한다. 한편, 현재 매크로블록의 부호화 모드가 필드 모드인 경우에는 버퍼의 스트라이드를 두 배로 설정하여, 현재 매크로블록에 블록에 포함된 탑 라인들 또는 바텀 라인들을 버퍼의 탑 라인의 위치 또는 바텀 라인의 위치에 각각 저장한다. As described above, according to an embodiment of the present invention, the current macroblock is decoded, the encoding mode of the current macroblock is determined, and the pixels included in the current macroblock are stored in the buffer based on the determined encoding mode. When the encoding mode of the current macroblock is the frame mode, the pixels included in the current macroblock are stored in the buffer as it is. On the other hand, if the encoding mode of the current macroblock is the field mode, the stride of the buffer is set to twice, and the top lines or the bottom lines included in the block in the current macroblock are positioned at the top line position or the bottom line position of the buffer. Save each.
매크로블록의 부호화 모드에 관계 없이 매크로블록에 포함된 픽셀들을 프레임 단위로 버퍼링함으로써, 이웃 매크로블록에 포함된 픽셀들을 참조할 때 별도의 연산 과정을 거치지 않고 공간적으로 이웃하는 버퍼에 위치하는 픽셀을 참조할 수 있다. Regardless of the encoding mode of the macroblock, by buffering the pixels included in the macroblock in units of frames, when referring to the pixels included in the neighboring macroblocks, the pixels located in the spatially neighboring buffers are processed without any additional processing. can do.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. As described above, although the present invention has been described by way of limited embodiments and drawings, the present invention is not limited to the above-described embodiments, which can be modified by those skilled in the art to which the present invention pertains. Modifications are possible. Accordingly, the spirit of the invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications will fall within the scope of the invention.
도 1은 MBAFF 부호화 기술을 이용하지 않는 경우의 현재 매크로블록과 이웃(neighbor) 매크로블록들을 나타낸다.1 shows current macroblocks and neighbor macroblocks when MBAFF encoding is not used.
도 2는 MBAFF 부호화 기술을 이용하는 경우의 현재 매크로블록 쌍(pair)과 이웃 매크로블록 쌍들을 나타낸다.2 shows a current macroblock pair and neighboring macroblock pairs when using the MBAFF encoding technique.
도 3은 본 발명의 일 실시예에 따른 영상의 복호화 장치를 나타내는 블록도이다.3 is a block diagram illustrating an apparatus for decoding an image according to an embodiment of the present invention.
도 4는 도 3의 프레임 매크로블록 버퍼의 일 예를 나타낸다.4 illustrates an example of the frame macroblock buffer of FIG. 3.
도 5는 도 3의 버퍼링 제어부를 상세하게 나타내는 블록도이다.FIG. 5 is a detailed block diagram illustrating the buffering controller of FIG. 3.
도 6은 도 3의 기준 위치 결정부의 동작을 설명하기 위한 흐름도이다.6 is a flowchart for describing an operation of a reference position determiner of FIG. 3.
도 7은 도 4의 프레임 매크로블록 버퍼를 이차원적으로 배열한 일 예를 나타낸다.FIG. 7 illustrates an example of two-dimensional arrangement of the frame macroblock buffer of FIG. 4.
도 8는 본 발명의 일 실시예에 따른 픽셀의 버퍼링 방법을 나타내는 흐름도이다.8 is a flowchart illustrating a method of buffering pixels according to an embodiment of the present invention.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090000844A KR101060492B1 (en) | 2009-01-06 | 2009-01-06 | Pixel buffering method and buffer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090000844A KR101060492B1 (en) | 2009-01-06 | 2009-01-06 | Pixel buffering method and buffer system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100081553A true KR20100081553A (en) | 2010-07-15 |
KR101060492B1 KR101060492B1 (en) | 2011-08-30 |
Family
ID=42641946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090000844A KR101060492B1 (en) | 2009-01-06 | 2009-01-06 | Pixel buffering method and buffer system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101060492B1 (en) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100668302B1 (en) | 2004-07-28 | 2007-01-12 | 삼성전자주식회사 | Memory mapping apparatus and method for video decoer/encoder |
-
2009
- 2009-01-06 KR KR1020090000844A patent/KR101060492B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR101060492B1 (en) | 2011-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11889107B2 (en) | Image encoding method and image decoding method | |
JP6766195B2 (en) | Encoding device, decoding device, coding method, decoding method, and program | |
US10728576B2 (en) | Intra-prediction method using filtering, and apparatus using the method | |
DK2684362T3 (en) | Video encoding and decoding | |
JP6719379B2 (en) | Innovations in block vector prediction and estimation of reconstructed sample values in overlapping areas | |
RU2571572C2 (en) | Video encoding and decoding | |
JP5049009B2 (en) | Bitplane coding and decoding for macroblock field / frame coding type information | |
CN100534194C (en) | Methods and apparatus for video intraprediction encoding and decoding | |
CN107277539B (en) | Method and apparatus for reducing line cache in context adaptive entropy decoding | |
KR100750137B1 (en) | Method and apparatus for encoding and decoding image | |
TWI527440B (en) | Low-complexity support of multiple layers for hevc extensions in video coding | |
JP4908180B2 (en) | Video encoding device | |
CN104205838A (en) | Method and apparatus of scalable video coding | |
CN104396249A (en) | Method and apparatus of bi-directional prediction for scalable video coding | |
TW201444350A (en) | Square block prediction | |
CN113228651A (en) | Quantization matrix encoding/decoding method and apparatus, and recording medium storing bit stream | |
JP2023528609A (en) | Encoding/decoding method, apparatus and device | |
KR101060492B1 (en) | Pixel buffering method and buffer system | |
KR20130055317A (en) | Apparatus and method for encoding/decoding of video using block merging selecting candidate block in consecutive order | |
JP4926912B2 (en) | Video encoding apparatus and method | |
JP2022522826A (en) | Intra prediction method and equipment, computer readable storage medium | |
JPWO2019017327A1 (en) | Moving picture coding apparatus, moving picture coding method, and recording medium storing moving picture coding program | |
KR20130055318A (en) | Apparatus and method for encoding/decoding of video using block merging based on limited candidate block | |
KR20160147203A (en) | Method and apparautus for encoding and decoding image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140703 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151207 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160701 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170703 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |