KR100581077B1 - Method for storing macroblock decoding information in a image decoder - Google Patents

Method for storing macroblock decoding information in a image decoder Download PDF

Info

Publication number
KR100581077B1
KR100581077B1 KR1020040044058A KR20040044058A KR100581077B1 KR 100581077 B1 KR100581077 B1 KR 100581077B1 KR 1020040044058 A KR1020040044058 A KR 1020040044058A KR 20040044058 A KR20040044058 A KR 20040044058A KR 100581077 B1 KR100581077 B1 KR 100581077B1
Authority
KR
South Korea
Prior art keywords
macroblock
decoding
decoding information
storage area
decoded
Prior art date
Application number
KR1020040044058A
Other languages
Korean (ko)
Other versions
KR20050066951A (en
Inventor
이미영
박성모
김승철
조한진
Original Assignee
한국전자통신연구원
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20050066951A publication Critical patent/KR20050066951A/en
Application granted granted Critical
Publication of KR100581077B1 publication Critical patent/KR100581077B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

1. 청구범위에 기재된 발명이 속하는 기술분야1. TECHNICAL FIELD OF THE INVENTION

본 발명은 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법에 관한 것임.The present invention relates to a method for storing macroblock decoding information for video decoding in a video decoder.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

본 발명은, 복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서 위(upper)쪽에 위치하는 매크로블록과 좌(left)측에 위치하는 매크로블록에 대한 복호정보만을 이용하여 복호하는 영상 복호기(예를 들면, H.264 복호기 등)의 복호 특성을 이용하여, 위(upper) 영역으로 참조될 복호정보와 좌(left) 영역으로 참조될 복호정보에 대해서만 저장영역을 할당하고, 래스터 스캔 순서에 따라 복호해가면서 현재 매크로블록을 기준으로 저장영역에 저장되어 있는 복호정보를 업데이트함으로써, 복호과정에서의 복호정보 저장을 위한 메모리(저장영역) 할당을 최소화할 수 있게 하는, 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법을 제공하는데 그 목적이 있음.According to the present invention, among the macroblocks already decoded based on the current macroblock MB to be decoded, the macroblock located on the upper side and the macroblock positioned on the left side on the raster scan. Decoding information to be referred to the upper region and decoding information to be referred to the left region using the decoding characteristics of an image decoder (for example, an H.264 decoder, etc.) that is decoded using only the decoding information of Allocate a storage area only for, and update the decoding information stored in the storage area based on the current macroblock while decoding in the raster scan order, thereby allocating memory (storage area) for storing the decoding information during the decoding process. It is an object of the present invention to provide a method for storing macroblock decoding information for video decoding in a video decoder, which can be minimized.

3. 발명의 해결 방법의 요지3. Summary of the Solution of the Invention

본 발명은, 복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서의 위(upper)쪽에 위치하는 매크로블록과 좌(left)측에 위치하는 매크로블록에 대한 복호정보를 이용하여 복호하는 영상 복호기에서의 매크로블록 복호정보 저장 방법에 있어서, 상기 영상 복호기의 복호 대상이 되는 현재 매크로블록에 대하여 해당 슬라이스 번호와 매크로블록 위치에 따른 복호정보 저장영역의 데이터값의 유효성에 따라 복호정보 저장영역의 데이터를 업데이트하는 저장영역 전처리 단계; 및 상기 영상 복호기에 의하여 상기 현재 매크로블록이 복호되면, 상기 복호정보 저장영역 중에서 좌(left) 저장영역(좌 영역)의 복호정보를 이용하여 위(upper) 저장영역(위 영역)을 업데이트하고, 상기 복호된 현재 매크로블록에 대한 복호정보를 상기 좌 영역에 저장하는 복호정보 저장 단계를 포함함.According to the present invention, among macroblocks already decoded on the basis of the current macroblock (MB) to be decoded, the macroblock located on the upper side on the raster scan and the macro located on the left side A method for storing macroblock decoding information in a video decoder that decodes using decoding information for a block, the method comprising: storing a decoding information storage area according to a slice number and a macroblock position for a current macroblock to be decoded by the video decoder; A storage area preprocessing step of updating data of the decoding information storage area according to the validity of the data value; And if the current macroblock is decoded by the video decoder, updates an upper storage area (upper area) using decoding information of a left storage area (left area) of the decoded information storage area. And decoding information storing the decoded information on the decoded current macroblock in the left area.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 영상 복호기에서의 복호정보 저장 등에 이용됨.The present invention is used for storage of decoding information in a video decoder.

영상복호기, H.264 복호기, 매크로블록, 래스터 스캔, 슬라이스, 복호정보, 저장영역, 좌 저장영역, 위 저장영역Image decoder, H.264 decoder, macroblock, raster scan, slice, decoding information, storage area, left storage area, upper storage area

Description

영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법{Method for storing macroblock decoding information in a image decoder} Method for storing macroblock decoding information for image decoding in image decoder             

도 1 은 종래의 H.264 복호기의 구성 예시도,1 is an exemplary configuration diagram of a conventional H.264 decoder;

도 2a 및 도 2b 는 본 발명에 적용되는 래스터 스캔 방법과 매크로블록 번호 부여 방법에 대한 일실시예 설명도,2A and 2B are diagrams illustrating an embodiment of a raster scan method and a macroblock numbering method applied to the present invention;

도 3 은 본 발명에 따른 현재 매크로블록의 복호에 참조되는 주변 영역에 대한 설명도,3 is an explanatory diagram of a peripheral region referred to in decoding of a current macroblock according to the present invention;

도 4 는 본 발명에 따른 H.264 복호기의 복호 특성을 이용한 복호정보 저장영역 할당 방법에 대한 일실시예 설명도,4 is a diagram illustrating an embodiment of a method for allocating a decoding information storage area using decoding characteristics of an H.264 decoder according to the present invention;

도 5 는 본 발명에 따른 복호정보 저장영역의 크기에 대한 일실시예 설명도,5 is a diagram illustrating an embodiment of a size of a decoding information storage area according to the present invention;

도 6 은 본 발명에 따른 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법에 대한 일실시예 흐름도,6 is a flowchart illustrating a method for storing macroblock decoding information for video decoding in a video decoder according to the present invention;

도 7 은 본 발명에 따른 복호정보 저장 방법에 대한 일실시예 설명도,7 is an explanatory diagram of an embodiment of a decoding information storing method according to the present invention;

도 8 은 본 발명에 따른 복호정보 저장영역 전처리 방법에 대한 일실시예 설명도이다.8 is a diagram illustrating an embodiment of a method for preprocessing a decoding information storage area according to the present invention.

* 도면의 주요 부분에 대한 부호 설명* Explanation of symbols on the main parts of the drawing

101: 복호 제어부 102: VLC 복호부101: decoding control unit 102: VLC decoding unit

103: 텍스쳐 복호부 104: 디블로킹 필터103: texture decoder 104: deblocking filter

본 발명은, 영상 복호기에서의 매크로블록 복호정보 저장 방법에 관한 것으로, 더욱 상세하게는 복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서의 위(upper)쪽에 위치하는 매크로블록과 좌(left)측에 위치하는 매크로블록에 대한 복호정보만을 이용하여 복호하는 영상 복호기(예를 들면, H.264 복호기 등)의 복호 특성을 이용하여, 위(upper) 영역으로 참조될 복호정보와 좌(left) 영역으로 참조될 복호정보에 대해서만 저장영역을 할당하고, 래스터 스캔 순서에 따라 복호해가면서 현재 매크로블록을 기준으로 저장영역에 저장되어 있는 복호정보를 업데이트하는, 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법에 관한 것이다.The present invention relates to a method for storing macroblock decoding information in an image decoder. More particularly, the present invention relates to a method of storing macroblock decoding information on a raster scan among macroblocks already decoded based on a current macroblock (MB) to be decoded. By using the decoding characteristics of the video decoder (for example, the H.264 decoder) that decodes using only the decoding information for the macroblock located on the (upper) side and the macroblock located on the left side, The storage area is allocated only for the decoded information to be referred to as the upper region and the decoded information to be referred to as the left region, and the decoded information stored in the storage area based on the current macroblock is decoded in the raster scan order. The present invention relates to a method for storing macroblock decoding information for video decoding in a video decoder.

H. 264 권고안을 따르는 부호기는 임의 형상 슬라이스 구성이 가능하며, 또한 슬라이스의 전송 순서가 래스터(raster) 스캔 순서를 따르지 않을 수 있어 복호기 측의 복호 순서가 정해져 있지 않다. 따라서, 보통은 이에 대하여 화면 전체의 복호정보를 저장하는 방법을 사용하여 대응하고 있다.The encoder conforming to the H. 264 recommendation can be configured in any shape slice, and the order of slice transmission may not follow the raster scan order, so the decoding order on the decoder side is not determined. Therefore, this is usually done by using a method of storing decoding information of the entire screen.

그러나, 화면 전체 영역에 대한 복호정보를 저장하는 방법은 화면 크기가 커질 경우, 상당량의 저장영역을 필요로 하게 된다. 더구나 기존의 MPEG4 및 H.263 등 기존의 영상 압축 알고리즘에서의 최소 복호 단위가 8×8 단위였던 것에 반해, H.264에서는 최소 4×4 단위마다 복호정보가 다를 수 있어, 화면 전체에 대한 복호정보 저장을 위해서는 더욱 더 방대한 저장영역을 필요로 하게 된다.However, the method of storing the decoding information for the entire screen area requires a considerable amount of storage area when the screen size is increased. Furthermore, while the minimum decoding unit in the existing video compression algorithms such as MPEG4 and H.263 was 8 × 8 units, in H.264, the decoding information may be different for at least 4 × 4 units, thereby decoding the entire screen. In order to store information, more and more storage space is needed.

예를 들어, CIF 화면에 대해서 복호정보를 매크로블록(MB) 단위로 저장할 때, 화면 전체를 위해서는 (352/16)×(288/16) = 22×18 개의 저장영역을 필요로 하고, 8×8 복호 단위당 정보를 저장할 때에는 (352/8)×(288/8) = 44×36 개의 저장영역을 필요로 하는 데 반해, 4×4 복호 단위 당 기록을 위해서는 (352/4)×( 288/4)=88×72 개의 저장영역이 필요하게 된다.For example, when decoding information is stored in units of macroblocks (MB) for a CIF screen, (352/16) × (288/16) = 22 × 18 storage areas are required for the whole screen, and 8 × (352/8) x (288/8) = 44 x 36 storage areas for storing information per decoding unit, while (352/4) x (288 / for recording per 4 x 4 decoding units) 4) = 88 x 72 storage areas are required.

따라서, H.264 복호기 개발에서 이러한 방대한 저장영역은 상당한 메모리 영역 부담을 초래하여 이를 최소화시킬 필요가 있다.Therefore, in the development of the H.264 decoder, such a large storage area causes a significant memory area burden and needs to be minimized.

도 1 은 종래의 H.264 복호기의 구성 예시도이다. 도면에서 복호 제어부(101)는 H.264 복호기가 입력되는 비트 스트림으로부터 원래의 영상을 재생하도록, H.264 복호기의 전반적인 복호 과정을 제어한다.1 is an exemplary configuration diagram of a conventional H.264 decoder. In the figure, the decoding control unit 101 controls the overall decoding process of the H.264 decoder to reproduce the original video from the bit stream into which the H.264 decoder is input.

MPEG4, H.263에 이어 발표된 H.264 권고안은 압축 효율을 증가시키고, 또한 복호된 영상의 화질을 개선시킨 영상 압축 알고리즘이다. The H.264 Recommendation, published after MPEG4 and H.263, is a video compression algorithm that increases compression efficiency and improves the quality of decoded video.

H. 264 권고안을 따르는 복호기는 매크로블록(MB) 내부의 최소 4×4 블록을 복호 단위로 한다. H. 264 권고안을 따르는 복호기에서는 주변 매크로블록의 복호 정보를 참조하여 현재 매크로블록을 복호하는 방법이 여러 부분에서 사용된다. 이들 중 디블로킹 필터(De-blocking filter)(104)에서 슬라이스 경계를 따지지 않는 모드가 설정된 경우를 제외한 모든 경우에서 이미 복호가 완료된 주변 블록 중 현재 슬라이스와 동일한 슬라이스에 속한 블록의 정보만을 참조하는 방법이 사용된다.Decoder conforming to the H. 264 Recommendation shall have at least 4x4 blocks inside the macroblock (MB) in decoding units. In the decoder following the H. 264 Recommendation, the method of decoding the current macroblock by referring to the decoding information of the neighboring macroblock is used in various parts. In all cases except for the case in which the deblocking filter 104 is not bounded with the slice boundary, only the information of the block belonging to the same slice as the current slice among the neighboring blocks already decoded is referred to. This is used.

한편, 주변 매크로블록의 복호정보를 참조하는 부분에는 가변장 코딩(VLC: Variable Length Coding) 복호부(102), 텍스쳐(texture) 복호부(103), 디블로킹 필터(de-blocking filter) 부분(104)이 있다. 여기서, 슬라이스 경계를 따지지 않는 모드가 설정된 경우의 디블로킹 필터(de-blocking filter)(104)에서만 슬라이스 경계를 따지지 않고 주변 블록을 참조하도록 되어 있다.Meanwhile, a variable length coding (VLC) decoding unit 102, a texture decoding unit 103, and a de-blocking filter portion (VLC) may be used to refer to decoding information of a neighboring macroblock. 104). Here, only the de-blocking filter 104 in the case where the mode that does not slice the slice boundary is set so as to refer to the neighboring block without picking the slice boundary.

VLC 복호부(102)는 H.264에서 엔트로피 모드(entropy mode)로 UVLC가 설정된 경우에 사용되며, 해당 4×4의 residual 값을 복호하기 위해 주변 블록(4×4 블록)의 none-zero residual 픽셀 수를 참조한다.The VLC decoder 102 is used when UVLC is set to entropy mode in H.264, and none-zero residual of the neighboring block (4 × 4 block) to decode the residual value of the corresponding 4 × 4. See pixel count.

텍스쳐(Texture) 복호부(103)의 경우에는, 도 1에 도시된 바와 같이, 두 가지로 나눌 수 있다. 인터 모션 보상(Intermotion compensation) 동작을 통하여 시간적으로 전(前), 후(後) 화면으로부터 참조 화면을 가져와 부호화하는 인터 매크로블록(inter MB)과 인트라 예측 및 보상(intra prediction & compensation) 동작을 통하여 현재 화면 내의 주변 블록을 참조하는 인트라 매크로블록(intra MB)으로 나눌 수 있다. 이 두 가지 방법은 모두 주변 블록의 복호 결과를 사용한다.In the case of the texture decoder 103, the texture decoder 103 may be divided into two types. Through inter prediction and intra prediction & compensation operation, the inter macroblock (Intra MB), which takes a reference picture from before and after pictures in time and encodes it through intermotion compensation. It may be divided into intra macroblocks referring to neighboring blocks in the current screen. Both these methods use the decoding result of neighboring blocks.

먼저, 인터 매크로블록(Inter MB)에 속하는 복호 블록은 16×16, 16×8, 8× 16, 8×8, 8×4, 4×8, 4×4의 형태가 가능하며, 각 복호 블록 별로 전, 후 화면으로 참조를 위해 가져올 영역을 표시하는 움직임 벡터(MV: motion vector)를 갖는다. 이 움직임 벡터(MV)값은 각 블록마다 결정된 움직임 벡터 차이값(MV difference)과 움직임 벡터 예측값(MV predictor)의 합이며, 움직임 벡터 예측값(MV predictor)은 주변 블록의 움직임 벡터(MV) 결과를 참조하여 결정된다.First, a decoding block belonging to an inter macro block (Inter MB) may be in the form of 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8, 4 × 4, and each decoding block. It has a motion vector (MV) indicating an area to be imported for reference to the before and after screens. The motion vector (MV) value is the sum of the motion vector difference value (MV difference) and the motion vector predictor value (MV predictor) determined for each block, and the motion vector predictor value (MV predictor) calculates the motion vector (MV) result of the neighboring blocks. Determined by reference.

인트라 매크로블록(Intra MB)의 복호 블록은 16×16, 4×4 의 형태가 가능하며, 각 복호 블록 별로 인트라 예측 모드(IPREDMODE: intra prediction mode)가 다르다. 여기서, 인트라 예측 모드(IPREDMODE)는 주변 블록의 인트라 예측 모드(IPREDMODE)의 결과를 참조하여 결정된다.The decoding block of the intra macroblock (Intra MB) may be in the form of 16 × 16 and 4 × 4, and the intra prediction mode (IPREDMODE) is different for each decoding block. Here, the intra prediction mode IPREDMODE is determined by referring to the result of the intra prediction mode IPREDMODE of the neighboring block.

한편, 도1의 디블로킹 필터(De-blocking filter)(104)에서 주변 블록의 매크로블록 타입(MB_TYPE), 양자화 파라미터(QP: quantization parameter), 부호 블록 패턴(CBP: coded block pattern), 기준 프레임 번호(REFFRNR: reference frame number), 움직임 벡터(MV) 등을 참조하는데, 슬라이스 경계를 따지는 모드와 그렇지 않은 모드가 존재한다.Meanwhile, in the de-blocking filter 104 of FIG. 1, a macroblock type (MB_TYPE), a quantization parameter (QP), a coded block pattern (CBP), and a reference frame of a neighboring block are included. Reference frame number (REFFRNR), motion vector (MV), etc. There are modes for delimiting slice boundaries and modes that do not.

슬라이스는 화면을 이루는 구성 요소로서, H. 264 권고안에서는 임의 형태의 슬라이스 구성을 지원한다. 또한, 슬라이스의 순서 또한 제한하지 않고 있다. 다만, 슬라이스를 구성하는 매크로블록(MB)은 래스터 스캔(raster scan)상 앞쪽에 위치한 매크로블록(MB)이 먼저 복호되도록 제한되어 있을 뿐이다.Slices are the building blocks of the picture. The H.264 Recommendations support any form of slice construction. Also, the order of slices is not limited. However, the macroblock MB constituting the slice is only limited so that the macroblock MB located in front of the raster scan is decoded first.

이와 같은 구조는 매크로블록(MB) 복호 순서에서 일정한 규칙이 없는 것이 보통이며, 통상적으로 이와 같은 상황에서는 복호정보의 저장은 화면 전체 영역에 대해 모두 저장하는 방식을 사용하였다.Such a structure generally does not have a predetermined rule in the macroblock (MB) decoding order. In general, in this situation, the decoding information is stored in the entire screen area.

즉, 위에서 본 바와 같이, H.264 권고안에서 슬라이스 구성에 일정한 규칙이 없으며, 또한 매크로블록(MB)의 복호 순서도 정해져 있지 않기 때문에 일반적인 종래 기술에서는 복호정보의 저장영역을 화면 전체로 하여 기록하는 방법을 사용하고 있는데, 이는 H.264 복호기의 구현시 상당한 저장영역의 할당을 필요로 하기 때문에 구현상 큰 부담이 된다는 문제점이 있었다.That is, as described above, in the H.264 recommendation, since there is no fixed rule in the slice configuration and the decoding order of the macroblocks (MB) is not determined, in the conventional prior art, a method for recording the entire storage area of the decoded information as a whole screen is recorded. This is a problem that the implementation of the H.264 decoder requires a considerable amount of storage space, which is a big burden on the implementation.

본 발명은, 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서 위(upper)쪽에 위치하는 매크로블록과 좌(left)측에 위치하는 매크로블록에 대한 복호정보만을 이용하여 복호하는 영상 복호기(예를 들면, H.264 복호기 등)의 복호 특성을 이용하여, 위(upper) 영역으로 참조될 복호정보와 좌(left) 영역으로 참조될 복호정보에 대해서만 저장영역을 할당하고, 래스터 스캔 순서에 따라 복호해가면서 현재 매크로블록을 기준으로 저장영역에 저장되어 있는 복호정보를 업데이트함으로써, 복호과정에서의 복호정보 저장을 위한 메모리(저장영역) 할당을 최소화할 수 있게 하는, 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, and is located on the raster scan (upper) of the macro blocks already decoded based on the current macroblock (MB) to be decoded. Decoding to be referred to the upper region by using the decoding characteristics of the video decoder (for example, the H.264 decoder) that decodes using only the decoding information of the block and the macroblock located on the left side. In the decoding process, the storage area is allocated only for the information and the decoding information to be referred to as the left area, and the decoding information stored in the storage area is updated based on the current macroblock while decoding in the raster scan order. A method for storing macroblock decoding information for video decoding in a video decoder, which can minimize memory (storage area) allocation for decoding information storage. The purpose is to provide.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. In addition, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기의 목적을 달성하기 위한 본 발명은, 복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서의 위(upper)쪽에 위치하는 매크로블록과 좌(left)측에 위치하는 매크로블록에 대한 복호정보를 이용하여 복호하는 영상 복호기에서의 매크로블록 복호정보 저장 방법에 있어서, 상기 영상 복호기의 복호 대상이 되는 현재 매크로블록에 대하여 해당 슬라이스 번호와 매크로블록 위치에 따른 복호정보 저장영역의 데이터값의 유효성에 따라 복호정보 저장영역의 데이터를 업데이트하는 저장영역 전처리 단계; 및 상기 영상 복호기에 의하여 상기 현재 매크로블록이 복호되면, 상기 복호정보 저장영역 중에서 좌(left) 저장영역(좌 영역)의 복호정보를 이용하여 위(upper) 저장영역(위 영역)을 업데이트하고, 상기 복호된 현재 매크로블록에 대한 복호정보를 상기 좌 영역에 저장하는 복호정보 저장 단계를 포함한다.According to the present invention for achieving the above object, the macroblock and the left (upper) on the raster scan (raster scan) of the already decoded macroblocks based on the current macroblock (MB) to be decoded ( A method for storing macroblock decoding information in a video decoder which decodes by using decoding information on a macroblock positioned on the left side, the slice number and the macroblock position of a current macroblock to be decoded by the video decoder A storage area preprocessing step of updating the data of the decoding information storage area according to the validity of the data value of the decoding information storage area according to the present invention; And if the current macroblock is decoded by the video decoder, updates an upper storage area (upper area) using decoding information of a left storage area (left area) of the decoded information storage area. And decoding information storing the decoded information on the decoded current macroblock in the left area.

삭제delete

본 발명에서는 H. 264 중 주변 복호정보를 참조하는 경우 중 한 가지(즉, 슬라이스 경계를 따지지 않고 주변 블록 정보를 참조하는 모드에서의 de-blocking filter)를 제외하고, 동일한 슬라이스 내의 정보만을 참조하는 점과 한 슬라이스 내에서는 래스터 스캔(raster scan)상 앞쪽에 위치하는 매크로블록(MB)이 먼저 복호되어야 한다는 제한을 이용하여 슬라이스 경계를 따져 참조되는 모든 복호정보에 대한 저장영역을 현재 매크로블록(MB)을 기준으로 위쪽(upper)에 위치한 블록에 대한 저장영역(위 영역)과 좌측(left)에 위치한 저장영역(좌 영역)으로 축소한다.According to the present invention, only one information in the same slice is referred to except for one case (i.e., a de-blocking filter in a mode of referring to neighboring block information without determining slice boundaries) of H.264. Within the point and one slice, the storage area for all the decoded information referenced by the slice boundary is delimited by the restriction that the macroblock (MB) located in front of the raster scan must be decoded first. ), It is reduced to the storage area (upper area) and the storage area (left area) located on the left side for the block located on the upper side.

즉, H. 264 권고안을 따르는 복호기는 매크로블록(MB: Macro Block: 16×16 픽셀) 내부의 최소 4×4 픽셀 단위로 복호를 수행한다. 이러한 복호 과정 중, 현재 블록의 복호를 위해 주변 블록의 복호정보를 이용하게 되는데, 이러한 과정을 크게 두 부분으로 분류하여 생각하면, 현재 블록과 동일한 슬라이스(slice)에 속하는 주변 블록의 정보만을 이용하는 부분과 슬라이스에 상관없이 참조하는 부분으로 나눌 수 있다. 복호과정 중 디블로킹 필터(de-blocking filter)에서 슬라이스 경계를 따 지지 않는 모드가 설정된 경우를 제외하고는 모든 경우에 있어서 동일한 슬라이스 내의 정보만을 참조한다.In other words, a decoder that conforms to the H. 264 Recommendation performs decoding in units of at least 4x4 pixels within a Macro Block (16x16 pixels). During the decoding process, the decoding information of the neighboring block is used for decoding the current block. When the process is classified into two parts, the part using only the information of the neighboring block belonging to the same slice as the current block is used. It can be divided into parts to be referred to regardless of and slice. In all cases, only the information in the same slice is referred to except for the case in which the deblocking filter does not open slice boundaries.

또한, H. 264 권고안에서는 임의 형태의 슬라이스 구성을 지원하며, 또한 슬라이스 간의 순서도 가변적이다. In addition, the H. 264 Recommendation supports some form of slice configuration, and the order between slices is also variable.

따라서, 본 발명은, 복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서의 위(upper)쪽에 위치하는 매크로블록과 좌(left)측에 위치하는 매크로블록에 대한 복호정보만을 이용하여 복호하는 영상 복호기(예를 들면, H.264 복호기 등)의 복호 특성을 이용하여, 위(upper) 영역으로 참조될 복호정보와 좌(left) 영역으로 참조될 복호정보에 대해서만 저장영역을 할당하고, 래스터 스캔 순서에 따라 복호해가면서 현재 매크로블록을 기준으로 저장영역에 저장되어 있는 복호정보를 업데이트하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법에 관한 것이다.Accordingly, the present invention is located on the left side and the macroblock located on the upper side of the raster scan among the macroblocks already decoded based on the current macroblock MB to be decoded. Reference the decoding information to the upper region and the left region by using the decoding characteristics of an image decoder (for example, an H.264 decoder) that decodes using only the decoding information for the macroblock. A method of storing macroblock decoding information for video decoding in a video decoder which allocates a storage area only for decoding information to be decoded and updates decoding information stored in the storage area on the basis of the current macroblock while decoding according to raster scan order. It is about.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

먼저, 도 1을 참조하여, 본 발명에 따른 영상 복호기에서의 영상 복호를 위 한 매크로블록 복호정보 저장 방법에 대한 전반적인 설명을 하기로 한다. First, referring to FIG. 1, a general description of a method for storing macroblock decoding information for video decoding in a video decoder according to the present invention will be described.

H. 264에서 복호에 사용되는 복호정보에는, 가변장 코딩(VLC: Variable Length Coding) 복호부(102)에서 사용되는 NZ_COEFF_Y(none zero coefficients for luminance), NZ_COEFF_U, NZ_COEFF_V(none zero coefficients for U and V)와, 텍스쳐(Texture) 복호부(103)에서 사용되는 수평 움직임 벡터(MVX: horizontal motion vector), 수직 움직임 벡터(MVY: vertical motion vector), 인트라 예측 모드(IPREDMODE: intra prediction mode)와, 슬라이스 경계를 따지는 모드에서의 디블로킹 필터(de-blocking filter)(104)를 위한 매크로블록 타입(MB_TYPE), 양자화 파라미터(QP: quantization parameter), 부호 블록 패턴(CBP: coded block pattern), 기준 프레임 번호(REFFRNR: reference frame number), 수평 움직임 벡터(MVX), 수직 움직임 벡터(MVY) 등이 있다.The decoding information used for decoding in H. 264 includes NZ_COEFF_Y (none zero coefficients for luminance), NZ_COEFF_U, NZ_COEFF_V (none zero coefficients for U and V) used in the variable length coding (VLC) decoding unit 102. ), A horizontal motion vector (MVX), a vertical motion vector (MVY), an intra prediction mode (IPREDMODE), and a slice used in the texture decoder 103 Macroblock type (MB_TYPE), quantization parameter (QP), coded block pattern (CBP), reference frame number for de-blocking filter 104 in demarcation mode (REFFRNR: reference frame number), horizontal motion vector (MVX), vertical motion vector (MVY), and the like.

그 밖에, 텍스쳐(Texture) 복호부(103)에서 구속 인트라 예측 플래그(constrained intra prediction flag)가 설정된 모드에서는 인트라 예측(intra prediction)에 참조될 주변 블록을 오직 인트라 매크로블록(intra MB)으로 제한시키므로 주변 블록의 인트라 매크로블록(intra MB) 여부를 기록하는 부분도 있을 수 있다.In addition, in the mode in which the constrained intra prediction flag is set in the texture decoder 103, the neighboring block to be referred to the intra prediction is limited to only the intra macroblock. There may also be a part for recording whether an intra macroblock (intra MB) of the neighboring block.

위에서 열거한 복호정보는 H.264의 권고안에서 정한 복호 단위의 차이에 따라 필요한 영역이 다르다. 예를 들어, VLC 복호부(102)는 4×4 블록 단위로 복호를 수행하므로, 참조할 주변 블록의 단위도 4×4가 된다. 그러나, 매크로블록 타입(MB_TYPE)과 같은 경우는 매크로블록(MB)마다 하나의 정보로 고정되어 있는 정보이 므로, 참조할 주변 블록의 단위가 16×16이 된다.The decoded information listed above varies depending on the difference in the decoding units specified in the H.264 Recommendation. For example, since the VLC decoder 102 performs decoding in units of 4 × 4 blocks, the unit of the neighboring block to be referred to also becomes 4 × 4. However, in the case of the macroblock type MB_TYPE, since the information is fixed to one information for each macroblock MB, the unit of the neighboring block to be referred to is 16x16.

이를 기준으로, 위에서 열거한 복호정보들을 분류하면, 4×4 블록마다 하나의 저장영역이 필요한 것은 NZ_COEFF_Y, NZ_COEFF_U, NZ_COEFF_V, 수평 움직임 벡터(MVX), 수직 움직임 벡터(MVY), 인트라 예측 모드(IPREDMODE), 기준 프레임 번호(REFFRNR) 등이고, 16×16마다 하나의 저장영역이 필요한 것은 매크로블록 타입(MB_TYPE), 양자화 파라미터(QP), 부호 블록 패턴(CBP), 인트라 매크로블록(INTRA_MB) 등이다.Based on this, if the above-mentioned decoded information is classified, one storage area is required for each 4 × 4 block is NZ_COEFF_Y, NZ_COEFF_U, NZ_COEFF_V, horizontal motion vector (MVX), vertical motion vector (MVY), and intra prediction mode (IPREDMODE). ), A reference frame number (REFFRNR), and one storage area required for each 16x16 are a macroblock type MB_TYPE, a quantization parameter QP, a code block pattern CBP, an intra macroblock INTRA_MB, and the like.

본 발명에 따른 복호정보 저장 방법은 임의의 하나의 슬라이스에 대한 복호정보 저장을 위한 것이며, 도 4에서 처럼 복호정보 참조에 이용되는 주변 매크로블록(MB)의 위치는 A, B, C, E 영역이므로, 현재 매크로블록(MB)을 기준으로 위(upper) 영역 정보와 좌(left) 영역 정보만을 참조한다.Decoding information storage method according to the present invention is for storing the decoding information for any one slice, the location of the neighboring macroblock (MB) used for decoding information reference as shown in Figure 4 A, B, C, E region Therefore, only the upper region information and the left region information are referred to based on the current macroblock MB.

복호 제어부(101)는 크게 복호정보 저장영역 전처리 과정과 복호정보를 저장/업데이트하는 과정을 수행한다. 복호정보 저장영역 전처리 과정은 H.264 매크로블록(MB) 단위 복호부가 새로운 매크로블록(MB)에 대하여 복호를 시작하기 전에, 새로운 매크로블록(MB)의 슬라이스 번호나 매크로블록(MB)의 번호(위치)에 따라 저장영역(메모리)의 데이터 값을 이에 적합하게 업데이트시키는 과정이다. 예를 들어, 저장영역 내의 복호정보가 슬라이스 번호가 2번인 복호정보인 경우, 새로운 매크로블록(MB)의 슬라이스 번호가 3번이면 저장영역 내의 모든 정보가 무의미하므로 리셋시키는 것이다.The decoding control unit 101 largely performs a decoding information storage area preprocessing process and stores / updates decoding information. The decoding information storage area preprocessing process includes a slice number of a new macroblock (MB) or a number of macroblocks (MB) before the H.264 macroblock (MB) unit decoder starts decoding a new macroblock (MB). Location) to update the data value of the storage area (memory) accordingly. For example, when the decoding information in the storage area is the decoding information with the slice number 2, if the slice number of the new macroblock MB is 3, all the information in the storage area is meaningless and is reset.

한편, 복호정보 저장/업데이트 과정은 H.264의 매크로블록(MB) 단위 복호기 의 복호 결과를 받아 복호정보 저장영역에 저장하고, 기존에 저장되어 있는 복호정보를 업데이트하는 과정이다. 여기서, 매크로블록(MB) 단위 복호기의 결과는 위에서 밝힌 NZ_COEFF_Y 등을 말한다.On the other hand, the decoding information storage / update process is a process of receiving the decoding result of the macroblock (MB) unit decoder of H.264 and storing the decoding result in the decoding information storage area, and updating the existing decoding information. Here, the result of the macroblock (MB) unit decoder refers to NZ_COEFF_Y and the like described above.

한편, 복호정보 저장영역(212)은 실제 복호정보를 저장할 메모리(memory)에 해당되며, 이 영역의 데이터(data)는 복호정보 저장영역 전처리 과정과 복호정보를 저장/업데이트 과정을 통하여 업데이트되며, 이에 저장되는 복호정보는 H.264 매크로블록(MB) 단위 복호기에 사용된다.Meanwhile, the decoding information storage area 212 corresponds to a memory for storing the actual decoding information, and the data of this area is updated through the decoding information storage area preprocessing process and the storage / update process. The decoding information stored therein is used for the H.264 macroblock (MB) unit decoder.

도 2a 및 도 2b 는 본 발명에 적용되는 래스터 스캔 방법과 매크로블록 번호 부여 방법에 대한 일실시예 설명도로서, 도 2a는 래스터 스캔(Raster scan)의 방법을 나타내고, 도 2b는 한 화면 내에서 매크로블록(MB)의 번호를 부여하는 방법(즉, mbx, mby 부여 방법)을 나타낸다.2A and 2B are diagrams illustrating an example of a raster scan method and a macroblock numbering method applied to the present invention. FIG. 2A shows a raster scan method, and FIG. 2B shows a single screen. A method of assigning a number of macro blocks MB (ie, mbx, mby assigning method) is shown.

어느 한 화면에 대하여 복호를 시작하기 전에, 현재 화면 내의 모든 매크로블록(MB)에 대한 슬라이스 번호는 정해 있다고 가정한다. Before starting decoding for one picture, it is assumed that slice numbers for all macroblocks (MB) in the current picture are determined.

복호 순서는 슬라이스 번호가 작은 슬라이스로부터 시작하고, 동일한 슬라이스 내에서는 도 2a에 도시된 바와 같은 래스터 스캔(raster scan)상에서 앞에 위치한 매크로블록(MB)부터 차례로 복호한다.The decoding order starts from the slice with the smallest slice number, and decodes sequentially from the macroblock MB located in front of the raster scan in the same slice as shown in Fig. 2A.

한편, 한 화면 내에서 매크로블록(MB)의 번호를 부여하는 방법(즉, mbx, mby 부여 방법)은 도 2b에 도시된 바와 같으며, 각각의 매크로블록의 주소(즉, 위치)는 (mbx, mby)(예를 들면, (0,0), (1,0) 등)와 같은 MB번호로 나타낸다.Meanwhile, a method of assigning a number of macroblocks (MB) in one screen (that is, a method of assigning mbx and mby) is shown in FIG. 2B, and the address (ie, location) of each macroblock is (mbx). , mby) (for example, (0,0), (1,0), etc.).

도 3 은 본 발명에 따른 현재 매크로블록의 복호에 참조되는 주변 영역에 대 한 설명도이다.3 is an explanatory diagram of a peripheral region referred to in decoding a current macroblock according to the present invention.

도 3에 도시된 바와 같은 경우에 있어서, 복호되고 있는 현재의 매크로블록('현재 매크로블록')이 'F'라면, 그 현재 매크로블록(MB)('F')을 복호하는데에 있어서 참조되는 주변 영역(즉, 주변 매크로블록)은 'A', 'B', 'C'에 해당하는 위(upper) 영역과 'E'에 해당하는 좌(left) 영역이다.In the case as shown in Fig. 3, if the current macroblock being decoded ('current macroblock') is 'F', it is referred to in decoding the current macroblock MB ('F'). The peripheral area (ie, the peripheral macroblock) is an upper area corresponding to 'A', 'B', and 'C' and a left area corresponding to 'E'.

한편, 만약에 복호되고 있는 현재 매크로블록이 'G'라면, 그 현재 매크로블록(MB)('G')을 복호하는데에 있어서 참조되는 주변 영역(즉, 주변 매크로블록)은 'B', 'C', 'D'에 해당하는 위(upper) 영역과 'F'에 해당하는 좌(left) 영역이다.On the other hand, if the current macroblock being decoded is' G ', the peripheral region (i.e., the peripheral macroblock) referred to in decoding the current macroblock MB (' G ') is' B', ' The upper region corresponding to C 'and' D 'and the left region corresponding to' F '.

도 4 는 본 발명에 따른 H.264 복호기의 복호특성을 이용한 복호정보 저장영역 할당 방법에 대한 일실시예 설명도로서, "400"은 복호 대상이 되는 매크로블록과 복호과정에 참조되는 주변 매크로블록, "410", "420"은 복호정보 저장영역(메모리)을 나타낸다.4 is a diagram illustrating an embodiment of a method for allocating a decoding information storage area using decoding characteristics of an H.264 decoder according to the present invention, in which “400” denotes a macroblock to be decoded and a neighboring macroblock referred to in a decoding process. , "410", and "420" represent a decoding information storage area (memory).

본 발명은, 복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서의 위(upper)쪽에 위치하는 슬라이스번호가 같은 매크로블록과 좌(left)측에 위치하는 슬라이스 번호가 같은 매크로블록에 대한 복호정보만을 이용하여 복호하는 영상 복호기(예를 들면, H.264 복호기 등)의 복호 특성을 이용하여, 위(upper) 영역으로 참조될 복호정보와 좌(left) 영역으로 참조될 복호정보에 대해서만 저장영역을 할당하는 것이다.According to the present invention, a macroblock having the same slice number located on an upper side on a raster scan and a left side among macroblocks already decoded based on the current macroblock MB to be decoded. Decoded information to be referred to the upper region and left by using the decoding characteristics of an image decoder (e.g., an H.264 decoder) that decodes using only decoding information for a macroblock having the same slice number. The storage area is allocated only for the decoding information to be referred to as the (left) area.

현재 복호 대상이 되는 매크로블록(403)을 c3라 할 때, u1, u2, u3, c1, c2는 슬라이스 번호가 같은 매크로블록을 나타내며, x로 표시되어 있는 매크로블록들 은 c3와 슬라이스 번호가 다른 매크로블록임을 나타낸다.When the macroblock 403 to be decoded is called c3, u1, u2, u3, c1, and c2 represent macroblocks having the same slice number, and macroblocks indicated by x have different slice numbers from c3. Indicates a macroblock.

c3를 현재 매크로블록(403)이라 할 때, 래스터 스캔(raster scan)상에서의 위(upper)쪽에 위치하는 슬라이스번호가 같은 매크로블록들(401)과 좌(left)측에 위치하는 매크로블록(402)에 대한 복호정보만이 이용된다. 다만, "401"의 위(upper) 영역도 c3와 슬라이스 번호가 달라 참조 대상이 되지 않는다.When c3 is called the current macroblock 403, the macroblocks 401 located at the left side and the macroblocks 402 having the same slice number located at the upper side on the raster scan are located at the left side. Only the decoding information for) is used. However, the upper region of "401" is also different from c3 and the slice number is not a reference object.

즉, 한 슬라이스 내의 매크로블록(MB)은 래스터(raster) 스캔 방법(도 2a 참조)을 따르므로, 현재 복호되고 있는 매크로블록(MB)(403)의 mbx 값이 만약 "5"라면, 위(upper) 영역 중에서 주소 4번지(mbx=4)부터의 매크로블록에 대한 복호정보는 복호에 사용될 가능성이 있지만, 0 ~ 3번지까지(mbx=0 ~ mbx=3)는 복호에 참조될 수 있는 영역이 아니므로 이 영역에 대한 복호정보를 저장할 필요는 없다.That is, since the macroblock MB in one slice follows the raster scanning method (see Fig. 2A), if the mbx value of the currently decoded macroblock (MB) 403 is "5", the above ( Decoding information for the macroblock from address 4 (mbx = 4) in the upper region may be used for decoding, but areas 0 to 3 (mbx = 0 to mbx = 3) may be referred to for decoding. It is not necessary to store the decoding information for this area.

그 다음 행(row)(즉, c1, c2 등이 있는 행)의 0 ~ 3번지(mbx=0 ~ mbx=3)까지는 현재 행(row)(즉, c1, c2 등이 있는 행)이 위(upper) 영역으로 참조될 수 있을 때, 즉 현재 행(row) 다음의 행(row)에 해당하는 매크로블록(MB)이 복호 대상이 될 때 참조되는 영역이다.From 0 to 3 (mbx = 0 to mbx = 3) of the next row (ie, rows with c1, c2, etc.), the current row (ie, rows with c1, c2, etc.) When a macroblock MB corresponding to a row after a current row is to be decoded, it is an area that can be referred to as an upper region.

따라서, 위에서 설명한 바와 같이, 참조 영역으로 사용될 수 있는 영역에 대한 복호정보만 저장하고 있으면 충분하기 때문에, "410", "420" 같은 크기의 저장 영역만이 할당되면 된다.Therefore, as described above, since it is sufficient to store only the decoding information for the area that can be used as the reference area, only storage areas having sizes such as "410" and "420" need to be allocated.

"421" 영역이 현재 매크로블록(MB)의 위(upper) 영역에 대한 복호정보를 저장할 공간이고, "422" 영역은 현재 행(row)(즉, 현재 복호 대상이 되는 매크로블록이 있는 행)에 속하는 매크로블록(MB)의 복호정보를 저장하는 영역이다. The area "421" is a space for storing decoding information about an upper area of the current macroblock MB, and the area "422" is a current row (that is, a row with a macroblock to be decoded). This area stores decoding information of a macroblock (MB) belonging to.

한편, 래스터 스캔(raster scan)이 도면의 화살표 방향(404)으로 진행될 때, 주소(mbx, mby)가 (5, 2)인 매크로블록c2를 복호화한 후에는 주소(mbx, mby)가 (6, 2)인 매크로블록을 복호화하게 된다. 래스터 스캔 방향을 따라 복호하는 과정에서 복호정보 저장영역 내에 저장되는 복호정보는 업데이트되나, 복호정보를 저장하기 위하여 할당된 저장영역은 위에서 설명한 크기의 영역만 있으면 된다.On the other hand, when the raster scan proceeds in the direction of the arrow 404 in the figure, the address (mbx, mby) becomes (6) after decoding the macroblock c2 whose address (mbx, mby) is (5, 2). , 2) to decode the macroblock. The decoding information stored in the decoding information storage area is updated in the process of decoding in the raster scan direction, but the storage area allocated for storing the decoding information only needs to have the size described above.

도 5 는 본 발명에 따른 복호정보 저장영역의 크기에 대한 일실시예 설명도이다.5 is a diagram for explaining an embodiment of a size of a decoding information storage area according to the present invention.

복호정보 저장영역의 크기는 화면 크기와 복호정보의 특성에 따라 결정된다. 위에서 언급한대로 복호정보는 16×16, 4×4 단위의 정보로 나눌 수 있어서, 각각은 저장해야 하는 영역의 크기가 다르다. The size of the decoding information storage area is determined according to the screen size and the characteristics of the decoding information. As mentioned above, the decoding information can be divided into 16x16 and 4x4 units, so that the size of the area to be stored is different.

도 5에 도시된 바와 같이, 위(upper) 영역의 저장영역 크기와 관련하여, 16×16 단위로 존재하는 정보에 대해서는 {((영상프레임 폭(pic_width) - 1)/16 + 1}개의 영역(501)이 필요하며, 4×4 단위로 존재하는 정보에 대해서는 {(pic_width - 1)/16 + 1}×4개의 영역(511)이 필요하다.As shown in FIG. 5, with respect to the storage area size of the upper area, {((pic_width) −1) / 16 + 1} areas for information existing in units of 16 × 16. 501 is required and {(pic_width−1) / 16 + 1} × 4 areas 511 are required for information existing in units of 4 × 4.

한편, 좌(left) 영역의 저장영역의 크기와 관련하여, 16×16 단위로 존재하는 정보에 대해서는 1개의 영역(502)을, 4×4 단위로 존재하는 정보에 대해서는 7개의 영역(512)을 할당한다. 7개의 영역은 도 5에 도시된 바와 같이 u0, u1, u2, u3 등 위(upper) 영역으로의 업데이트를 위한 저장영역과 좌 영역의 정보로 사용된 l0, l1, l2 가 있다.On the other hand, in relation to the size of the storage area of the left area, one area 502 is provided for information existing in units of 16 × 16, and seven areas 512 are provided for information existing in units of 4 × 4. Allocate As shown in FIG. 5, the seven areas include a storage area for updating to an upper area such as u0, u1, u2, u3, and l0, l1, l2 used as information on the left area.

도 6 은 본 발명에 따른 영상 복호기에서의 영상 복호를 위한 매크로블록 복 호정보 저장 방법에 대한 일실시예 흐름도이다.6 is a flowchart illustrating a method of storing macroblock decoding information for video decoding in a video decoder according to the present invention.

먼저, 영상 복호기에서의 복호 제어부는 복호하고자 하는 현재 매크로블록(MB)의 슬라이스번호와 예상 슬라이스번호를 비교하여 복호정보 저장영역에 저장되어 있는 데이터(즉, 복호정보)가 유효한지를 판단한다(601). 여기서, 직접 슬라이스 번호를 비교하지 않고, 복호 대상이 되는 현재 매크로블록의 슬라이스 번호가 예상 슬라이스 번호와 동일한지 여부를 나타내는 매크로블록의 유효성 식별 제어정보(Mb_available)를 이용할 수도 있다.First, the decoding controller in the video decoder compares the slice number of the current macroblock MB to be decoded with the expected slice number to determine whether data (ie, decoding information) stored in the decoding information storage area is valid (601). ). Here, the validity identification control information (Mb_available) of the macroblock indicating whether the slice number of the current macroblock to be decoded is equal to the expected slice number may be used without directly comparing the slice numbers.

만약, 슬라이스 번호가 상이하여, 복호정보 저장영역에 저장되어 있는 데이터(즉, 복호정보)가 유효하지 않으면, 복호 제어부는 복호정보 저장영역 데이터 및 예상 매크로블록의 번호(next_mbx, next_mby)를 리셋(reset)하고, 예상 슬라이스번호를 업데이트한다(603). If the slice numbers are different and the data stored in the decoding information storage area (that is, the decoding information) is not valid, the decoding control unit resets the decoding information storage area data and the expected macroblock number (next_mbx, next_mby) ( reset) and update the expected slice number (603).

만약, 슬라이스 번호가 동일하여, 복호정보 저장영역에 저장되어 있는 데이터(즉, 복호정보)가 유효하면, 복호 제어부는 현재 매크로블록(MB)의 번호(mbx, mby)와 예상 매크로블록(MB)의 번호(next_mbx, next_mby)를 비교하여, 저장영역 데이터 및 예상 매크로블록의 번호(next_mbx, next_mby)를 업데이트한다(602). 이에 대한 상세한 설명은 도 8에서 하기로 한다.If the slice numbers are the same and the data stored in the decoding information storage area (that is, the decoding information) is valid, the decoding control unit may determine the number (mbx, mby) and the expected macroblock (MB) of the current macroblock (MB). The numbers next_mbx and next_mby are compared, and the storage area data and the numbers of the expected macroblocks next_mbx and next_mby are updated (602). Detailed description thereof will be provided with reference to FIG. 8.

이후, 복호 제어부가 복호기들로부터 현재 매크로블록(MB)에 대한 복호정보를 받으면(604), 복호 제어부는 좌 영역에 있는 복호정보를 이용하여, 위 영역 중에서 현재 매크로블록과 동일한 행(row)의 바로 전 열(column)의 매크로블록(mbx-1, mby)에 대한 복호정보를 업데이트하고(605), 현재 매크로블록(MB)에 대한 복호정보를 좌 영역에 저장한다(606). 그리고 나서, 예상 매크로블록의 번호(next_mbx, next_mby)를 업데이트한다(607). 이에 대한 상세한 설명은 도 7에서 하기로 한다.Then, when the decoding control unit receives decoding information for the current macroblock (MB) from the decoders (604), the decoding control unit uses the decoding information in the left region to determine the same row as the current macroblock in the above region. The decoding information for the macroblocks (mbx-1, mby) of the immediately preceding column is updated (605), and the decoding information for the current macroblock (MB) is stored in the left region (606). Then, the expected macroblock number (next_mbx, next_mby) is updated (607). Detailed description thereof will be provided with reference to FIG. 7.

요컨대, "60"은 H.264 복호기에 의하여 복호가 이루어지기 전에 수행되는 전처리 과정(도 8 참조), "61"은 복호가 된 후 현재 매크로블록에 대한 복호정보를 저장하는 과정(도 7 참조)을 나타내는데, 모든 매크로블록에 대하여 복호가 될 때까지 이와 같은 과정이 반복적으로 수행된다.In short, "60" is a preprocessing process performed before decoding by the H.264 decoder (see FIG. 8), and "61" is a process of storing decoding information for the current macroblock after decoding (see FIG. 7). This process is repeated until all the macroblocks are decoded.

도 7 은 본 발명에 따른 복호정보 저장 방법에 대한 일실시예 설명도로서, "700"은 복호 대상이 되는 매크로블록과 복호과정에 참조되는 주변 매크로블록, "710"은 매크로블록의 유효성 식별 제어정보(Mb_available), "720"과 "730"은 복호정보 저장영역을 나타낸다.7 is a diagram illustrating an embodiment of a method for storing decoding information according to the present invention, in which "700" is a macroblock to be decoded, a neighboring macroblock referred to in a decoding process, and "710" is a control for identifying validity of a macroblock. Information (Mb_available), "720" and "730" represent a decoding information storage area.

먼저, 복호정보 저장/업데이트 방법을 전반적으로 설명하면, 다음과 같다.First, a general description of the decoding information storage / update method is as follows.

복호정보 저장/업데이트 방법은 위(upper)영역 업데이트 단계, 좌(left)영역 업데이트 단계, 복호정보 저장영역 접근을 위한 제어정보 업데이트 단계와 같이, 크게 세가지로 나눌 수 있다.The decoding information storage / update method can be classified into three types, such as an upper region updating step, a left region updating step, and a control information updating step for accessing the decoding information storage area.

본 발명에 따른 복호 제어부(101)는 현재 매크로블록(MB)의 복호정보 결과를 복호정보 저장영역으로 저장하는 것인데, 기본적으로 그 동작 과정은 현재 매크로블록(MB) 정보를 좌(left) 영역으로 업데이트하고. 좌(left) 영역의 값은 후에 위(upper) 영역으로 업데이트하는 것이다.The decoding control unit 101 according to the present invention stores the decoding information result of the current macroblock (MB) as a decoding information storage area. Basically, the operation process includes the current macroblock (MB) information as a left area. To update. The value of the left area is to update to the upper area later.

즉, 현재 매크로블록(MB)의 복호정보값은 다음 매크로블록(MB)이 래스터 스캔(raster scan)상 바로 다음의 매크로블록(MB)일 경우 좌(left)영역 정보로 이용되고, 또한 결국 현재 매크로블록(MB)의 행(row)에 해당하는 모든 매크로블록이 복호된 후 다음 행(row)에서는 현재 복호정보가 위(upper) 정보로 이용되기 때문에, 현재 매크로블록(MB) 정보 → 좌(left) 영역 → 위(upper) 영역으로 업데이트 되는 것이다. That is, the decoding information value of the current macroblock MB is used as left region information when the next macroblock MB is the next macroblock MB on the raster scan. After all the macroblocks corresponding to the row of the macroblock MB are decoded, the current decoding information is used as the upper information in the next row, so that the current macroblock (MB) information → left ( Left area → is updated to upper area.

한편, 복호정보 저장영역 접근을 위한 제어정보 업데이트 단계는 현재 정보 저장영역에 기록되어 있는 매크로블록(MB)이 공통적으로 속한 슬라이스 번호를 저장하고, 또 위(upper) 영역 메모리 중 현재 복호된 매크로블록(MB) 번호에 "1"을 더하여 다음 매크로블록(MB)에서 사용할 주소로 업데이트하는 과정이다. 도 7의 예상 슬라이스 번호(Prev_slice_nr), 예상 매크로블록 번호(next_mbx, next_mby)가 이에 해당하며, 이는 복호정보 저장영역 전처리 과정에서 이용된다.On the other hand, the control information update step for accessing the decoding information storage area stores the slice number to which the macroblock MB currently recorded in the current information storage area commonly belongs, and the currently decoded macroblock in the upper area memory. The process of updating to the address to be used in the next macroblock (MB) by adding "1" to the (MB) number. The predicted slice number Prev_slice_nr and the predicted macroblock number next_mbx and next_mby of FIG. 7 correspond to this, and are used in the decoding information storage area preprocessing process.

이하, 도 7에 따라 구체적으로 설명하면, 다음과 같다.Hereinafter, the concrete description will be given with reference to FIG. 7.

도 7의 "700"에서의, "1", "2", "3"은 매크로블록의 슬라이스 번호를 나타내며, "710"에서의 "1"은 "700"에서 슬라이스 번호가 "3"인 매크로블록에 대한 복호정보로서 해당 데이터가 유효함을 나타내고, "0"은 슬라이스 번호가 "3"이 아닌 매크로로 블록에 대한 복호정보로서 해당 데이터가 유효하지 않음을 나타낸다. "720"과 "730"에서의 x는 현재 매크로로 블록과 슬라이스 번호가 다름을 나타내고 u, c는 현재 매크로블록과 슬라이스번호가 같음을 나타낸다.In "700" of FIG. 7, "1", "2", and "3" represent slice numbers of macroblocks, and "1" in "710" is a macro with slice number "3" in "700". The corresponding data is valid as the decoding information for the block, and "0" indicates that the corresponding data is not valid as the decoding information for the block with a macro whose slice number is not "3". X at " 720 " and " 730 " indicates that the block and slice number are different in the current macro, and u and c indicate that the slice number is the same as the current macroblock.

현재 매크로블록(MB)은 그 번호가 mbx=5, mby=2로서 예상 번호 next_mbx=5, next_mby=2와 같으며, 그 위치는 도 7에서 "701"영역이다.The current macroblock MB has a number of mbx = 5 and mby = 2, which is equal to the expected number next_mbx = 5 and next_mby = 2, and its position is the area “701” in FIG.

저장 방법은 먼저 좌(left) 영역의 데이터를 위(upper) 영역으로 옮겨 저장한다(721).The storage method first moves the data in the left area to the upper area and stores the data in the upper area (721).

도 7에서 info16×16_up, info16×16_left는 16×16 단위로 존재하는 복호정보 저장영역(720)을 나타내며, info4×4_up, info4×4_left는 4×4 단위로 존재하는 복호정보 저장영역(730)을 나타낸다.In FIG. 7, info16 × 16_up and info16 × 16_left indicate a decoding information storage area 720 that exists in 16 × 16 units, and info4 × 4_up and info4 × 4_left indicate a decoding information storage area 730 that exists in 4 × 4 units. Indicates.

매크로블록의 유효성 식별 제어정보(Mb_available)는 좀 더 편리하게 메모리 영역을 사용하기 위해 덧붙여 사용할 수 있는 요소로서, 정보 영역의 해당 주소가 해당 슬라이스에 속하는지 여부를 나타내주는 것인데, 이를 사용하지 않고 화면 전체에 기록된 슬라이스 번호를 통해 비교하여 사용할 수도 있지만, 이를 사용하면 좀 더 편리하다.The validity control information (Mb_available) of the macroblock is an element that can be additionally used to use the memory area more conveniently. It indicates whether the corresponding address of the information area belongs to the slice. It can be used to compare through the slice number recorded in the whole, but it is more convenient to use it.

좌(left) 영역의 데이터를 위(upper) 영역으로 저장하는 단계(721, 731)가 끝나면, 현재 매크로블록(MB)(701)의 정보값을 좌(left) 영역으로 저장한다(722, 732).After the steps 721 and 731 of storing the data of the left area to the upper area are completed, the information value of the current macroblock (MB) 701 is stored to the left area (722 and 732). ).

좌(left) 영역으로 옮기는 과정은 도 7에 도시된 바와 같이, u0, u1, u2, u3, l0, l1, l2 위치에 해당하는 복호정보를 info4×4_left로 옮겨주면 된다(732).As shown in FIG. 7, the decoding process corresponding to the positions u0, u1, u2, u3, l0, l1, and l2 may be moved to info4 × 4_left as shown in FIG. 7.

저장영역 제어정보 업데이트는 현재 매크로블록(MB) 번호 바로 다음의 매크로블록(MB) 번호로 next_mbx, next_mby를 설정한다. 즉, 도 7에 도시된 바와 같은 예에서는 next_mbx 값을 "5"에서 "6"으로 변경한다(여기서는 next_mby는 변하지 않는 예임). 예상 슬라이스 번호(Prev_slice_nr)는 복호정보 저장영역 전처리 과정에서 사용하기 위해 기록하는 것으로서, 이는 현재 복호되고 있는 슬라이스 번호를 나타내는데, 도 7의 경우 "3"이 된다.The storage area control information update sets next_mbx and next_mby as the macroblock (MB) number immediately after the current macroblock (MB) number. That is, in the example as shown in FIG. 7, the next_mbx value is changed from "5" to "6" (next_mby is an example in which it does not change). The expected slice number Prev_slice_nr is recorded for use in the decoding information storage area preprocessing process, which indicates the slice number currently being decoded, which is "3" in FIG.

도 8 은 본 발명에 따른 복호정보 저장영역 전처리 방법에 대한 일실시예 설명도로서, "800"는 각 매크로블록의 해당 슬라이스번호, "810"은 복호 대상이 되는 매크로블록과 복호과정에 참조되는 주변 매크로블록, "820"은 매크로블록의 유효성 식별 제어정보(Mb_available), "830" 및 "840"은 복호정보 저장영역을 나타낸다.8 is a diagram illustrating an embodiment of a method for preprocessing a decoding information storage area according to the present invention, in which “800” is a corresponding slice number of each macroblock, and “810” is referred to a macroblock to be decoded and a decoding process. A neighboring macroblock, "820", represents validity identification control information (Mb_available), "830", and "840" of a macroblock, indicating a decoding information storage area.

복호 제어부(101)가 수행하는 복호정보 저장영역 전처리는, 복호 대상으로서 새로운 슬라이스 번호에 속하는 매크로블록(MB)이 들어오면, 이전(以前) 슬라이스에 해당하는 모든 매크로블록(MB)이 복호되어 더이상 저장영역 상의 모든 데이터가 필요하지 않게 되었다는 의미이므로 저장영역 데이터를 모두 리셋(reset)하는 것이다. 또한, 이 경우, next_mbx와 next_mby도 리셋(reset)하고, 예상 슬라이스 번호는 업데이트하게 된다.In the decoding information storage area preprocessing performed by the decoding control unit 101, when a macroblock (MB) belonging to a new slice number is entered as the decoding target, all the macroblocks (MB) corresponding to the previous slice are decoded and no longer present. This means that all data on the storage area is no longer needed, so all data on the storage area is reset. In this case, next_mbx and next_mby are also reset, and the expected slice number is updated.

하지만, 복호 대상으로서 동일한 슬라이스 번호 내에 있는 새로운 매크로블록(MB)이 들어왔을 경우에는, 그 새로운 매크로블록의 MB 번호와 next_mbx, next_mby에 기록된 매크로블록(MB) 번호(즉, 예상 MB 번호)를 비교한다.However, when a new macroblock (MB) in the same slice number as the decoding target is received, the MB number of the new macroblock and the macroblock (MB) number recorded in next_mbx and next_mby (that is, the expected MB number) are input. Compare.

비교 결과, 만약 새로운 매크로블록(MB) 번호와 예상 MB 번호(next_mbx, next_mby)가 같으면, 복호정보 저장영역 전처리 과정을 끝내고 H.264 복호기의 복호 과정이 실행되게 한다.As a result of the comparison, if the new macroblock (MB) number and the expected MB number (next_mbx, next_mby) are the same, the decoding information storage area preprocessing is completed and the decoding process of the H.264 decoder is executed.

비교 결과, 만약 새로운 매크로블록(MB) 번호(mbx, mby)가 예상 MB 번호(next_mbx, next_mby)보다 작으면, 한 슬라이스 내의 매크로블록(MB) 복호 순서는 래스터 스캔(raster scan)을 따른다는 제한에 위반되므로 에러임을 알린다.As a result of the comparison, if the new macroblock (MB) number (mbx, mby) is smaller than the expected MB number (next_mbx, next_mby), the macroblock (MB) decoding order within one slice is limited to follow the raster scan. This is an error because it violates.

비교 결과, 만약 새로운 매크로블록의 mby가 next_mby + 1 보다 더 클 경우(즉, 매크로블록의 mby가 next_mby + 2이상일 경우로서, mbx가 next_mbx와 동일한지여부는 불문)에는, 위(upper) 영역에 기록된 내용이 새로운 매크로블록(MB)의 위(upper) 영역이 아니라 그보다 더 위(upper) 영역이 되어, 위(upper) 영역 참조에 쓰일 수 없으므로, 새로운 MB의 복호를 위해 쓰일 참조 정보가 존재하지 않는 상황이며, 이러한 경우 모든 복호정보 저장영역을 리셋하고, 해당 슬라이스 번호에 대하여 복호과정을 반복한다.As a result of the comparison, if mby of the new macroblock is greater than next_mby + 1 (that is, if mby of the macroblock is greater than next_mby + 2, regardless of whether mbx is equal to next_mbx), the upper region Since the recorded contents are not in the upper region of the new macroblock (MB) but in the upper region and cannot be used to refer to the upper region, there is reference information to be used for decoding the new MB. In this case, all decoding information storage areas are reset, and the decoding process is repeated for the slice number.

비교 결과, 만약 새로운 매크로블록의 mby는 next_mby와 같고, mbx가 next_mbx보다 큰 경우는 도 8에 도시된 바와 같이 전처리 과정을 수행한다. 도 8에서 복호하고자 하는 새로운 매크로블록(812)의 위치는 mbx=8, mby=2이고, 제어정보로서의 예정된 매크로블록(811)의 위치는 next_mbx=6, next_mby=2이다. 이 경우, 좌(left) 영역의 데이터를 위(upper) 영역으로 옮기고(831), info16×16_up [next_mbx ~ (mbx-2)] 영역(832)은 다른 슬라이스의 정보이므로 정보를 저장할 필요는 없다. 이를 간편하게 알 수 있도록, 제어정보로서 매크로블록의 참조 가능여부를 나타내는 매크로블록의 유효성 식별 제어정보(mb_available)를 사용하는데, [next_mbx ~ (mbx-2)]영역에 대한 mb_available_up를 나타내는 mb_available_up [next_mbx ~ (mbx-2)] 영역(821)에 '0'을 설정한다. 여기서, mb_available에는 위(upper) 영역 매크로블록의 유효성을 나타내는 mb_available_up와 좌(left) 영역 매크로블록의 유효성을 나타내는 mb_available_left 가 있다As a result of the comparison, if mby of the new macroblock is equal to next_mby, and mbx is larger than next_mbx, the preprocessing process is performed as shown in FIG. In FIG. 8, the positions of the new macroblock 812 to be decoded are mbx = 8 and mby = 2, and the positions of the predetermined macroblock 811 as the control information are next_mbx = 6 and next_mby = 2. In this case, the data of the left region is moved to the upper region (831), and the info16x16_up [next_mbx to (mbx-2)] region 832 is information of another slice, so it is not necessary to store information. . For simplicity, the control information (mb_available) of the macroblock indicating whether or not the macroblock can be referred to is used as the control information. The mb_available_up representing the mb_available_up for the [next_mbx ~ (mbx-2)] area is used. (mbx-2)] area 021 is set. Here, mb_available includes mb_available_up indicating the validity of the upper region macroblock and mb_available_left indicating the validity of the left region macroblock.

그리고 나서, 새로운 매크로블록(MB)(812)의 좌(left) 영역 데이터 역시 다 른 슬라이스 내의 정보이므로 mb_available_left을 '0'으로 설정하고, info16×16_left은 사용하지 않을 데이터이므로 저장하지 않아도 된다. 이후에 next_mbx = mbx, next_mby = mby로 설정하여, 후에 복호정보 저장/업데이트 과정에서 사용할 수 있도록 한다.Then, since left region data of the new macroblock (MB) 812 is also information in another slice, mb_available_left is set to '0' and info16 × 16_left is not used, and thus it is not necessary to store it. After that, set next_mbx = mbx and next_mby = mby so that it can be used later in the process of storing / updating decoding information.

비교 결과, 만약 mby가 next_mby + 1과 같을 경우는, 바로 전에 복호된 매크로블록(MB) 이후에는 동일한 행(row) 상에는 동일한 슬라이스 번호를 갖는 매크로블록(MB)이 없는 것을 의미하며, 이를 간단히 표현하기 위해 mb_available_up [next_mbx ~ (pic_width-1)/16]의 영역을 '0'으로 설정한다. 여기서, (pic_width-1)/16 은 위(upper) 저장영역의 마지막 주소를 나타낸다. As a result of the comparison, if mby is equal to next_mby + 1, it means that there is no macroblock MB having the same slice number on the same row after the immediately decoded macroblock MB. To do this, set the area of mb_available_up [next_mbx ~ (pic_width-1) / 16] to '0'. Here, (pic_width-1) / 16 represents the last address of the upper storage area.

가장 바로 전에 복호된 MB 정보는 좌(left) 영역에 있으므로 이를 위(upper) 영역으로 저장하고 mb_available_up [next_mbx-1]을 '1'로 설정한다. 또한, 새로운 MB 전까지는, 즉 위(upper) 영역 중 mb_available_up [0 ~ mbx-2]까지의 영역은, 동일한 슬라이스에 속하는 매크로블록(MB)이 존재하지 않음을 뜻하므로 이 영역을 '0'으로 설정하고, 또 좌(left) 영역 mb_avaiable_left도 '0'으로 설정한다. 마직막으로 next_mbx, next_mby를 현재 mbx, mby로 설정하고 H.264 MB 단위 복호기의 복호부가 복호 저장영역을 사용할 수 있도록 종료한다. 여기서, [0 ~ mbx-2]는 MB번호가 "0"부터 "mbx-2"까지라는 의미이다.Since the most recently decoded MB information is in the left region, it is stored as an upper region and mb_available_up [next_mbx-1] is set to '1'. In addition, until the new MB, that is, the area of mb_available_up [0 to mbx-2] of the upper area means that there is no macroblock (MB) belonging to the same slice, so this area is set to '0'. The left region mb_avaiable_left is also set to '0'. Finally, next_mbx and next_mby are set to the current mbx and mby, and the decoder of the H.264 MB unit decoder ends so that the decoding storage can be used. Here, [0 to mbx-2] means that the MB number is from "0" to "mbx-2".

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기 로 한다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily carried out by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

상기와 같은 본 발명은, 복호하고자 하는 현재 매크로블록(MB)을 기준으로 위(upper)에 위치한 매크로블록에 대한 저장영역(위 영역)과 좌측(left)에 위치한 매크로블록에 대한 저장영역(좌 영역)만을 이용함으로써, 복호정보의 저장영역을 현저하게 감소시킬 수 있으며, 또한 이로 인하여 복호기 구현시 자원(Resource)을 상당히 절약시킬 수 있는 효과가 있다.In the present invention as described above, the storage area (upper region) for the macroblock located on the upper side (upper) and the storage area for the macroblock located on the left side (left) on the basis of the current macroblock MB to be decoded (left). By using only the area), the storage area of the decoded information can be remarkably reduced, and thus, the resource can be considerably saved when the decoder is implemented.

또한, 본 발명은, 화면 크기가 커짐에 따라 화면 전체 영역에 대하여 복호정보를 저장하는 경우에 있어서, 화면의 가로 방향 뿐만 아니라 화면의 세로 방향에 대해서도 이에 대응하여 메모리 할당 크기를 증가시켜야 하는 기존의 복호정보 저장 방법과 달리, 화면의 가로 크기에만 영향을 받게 함으로써 자원 절약 효과를 더욱 증대시키는 효과가 있다.In addition, according to the present invention, when decoding information is stored in the entire screen area as the screen size increases, the memory allocation size of the screen should be increased correspondingly not only in the horizontal direction of the screen but also in the vertical direction of the screen. Unlike the decoding information storage method, only the horizontal size of the screen is affected, thereby further increasing the resource saving effect.

한편, 상기와 같은 본 발명의 효과를 흔히 사용되는 영상 포맷인 CIF(Common Intermediate Format)(352×288 픽셀)을 예로 들어 설명하면, 다음과 같다. On the other hand, the effects of the present invention as described above will be described by taking CIF (Common Intermediate Format) (352 × 288 pixels), which is a commonly used image format, as follows.

4×4 단위로 정보의 기록이 필요한 복호정보는 화면 전체에 대한 복호정보를 기록하기 위해서 (352/4)×(288/4) = 88×72개, 즉 6336개의 저장영역을 필요로 하는 기존의 복호기와 달리, 본 발명에서는 복호정보의 특성상 최소 4×4 블록마다 복호정보가 다를 수 있는 경우, 위(upper) 영역을 위해서는 (화면 가로 방향 4×4 block 수)만큼의 저장영역이 필요하고, 좌(left) 성분을 위해서는 {(좌 MB의 세로 방향 4×4 block 수, 즉 4) + (좌 MB의 가로 방향 4×4 block 수 - 1, 즉 3)}의 저장영역 만을 필요로 함으로써, 즉 95개(88 + 7개)의 저장영역만을 필요로 함으로써, 자원(resource) 절약의 효과가 매우 크다.Decoded information requiring information recording in units of 4 × 4 requires (352/4) × (288/4) = 88 × 72, or 6336 storage areas in order to record decoding information for the entire screen. Unlike the decoder of the present invention, in the present invention, when the decoding information may be different for at least 4 × 4 blocks due to the nature of the decoding information, a storage area corresponding to the number of 4 × 4 blocks in the horizontal direction of the screen is required for the upper area. For the left component, only the storage area of {(the number of 4 × 4 blocks in the left MB, ie, 4) + (the number of 4 × 4 blocks in the left MB, ie, 3) of the left MB is required. In other words, since only 95 (88 + 7) storage areas are required, the effect of resource saving is very large.

Claims (9)

복호하고자 하는 현재 매크로블록(MB)을 기준으로 이미 복호화된 매크로 블록들 중에서 래스터 스캔(raster scan)상에서의 위(upper)쪽에 위치하는 매크로블록과 좌(left)측에 위치하는 매크로블록에 대한 복호정보를 이용하여 복호하는 영상 복호기에서의 매크로블록 복호정보 저장 방법에 있어서,Decoding for the macroblock located on the upper side and the macroblock located on the left side of the raster scan among the macroblocks already decoded based on the current macroblock (MB) to be decoded. A method for storing macroblock decoding information in a video decoder that decodes using information, 상기 영상 복호기의 복호 대상이 되는 현재 매크로블록에 대하여 해당 슬라이스 번호와 매크로블록 위치에 따른 복호정보 저장영역의 데이터값의 유효성에 따라 복호정보 저장영역의 데이터를 업데이트하는 저장영역 전처리 단계; 및A storage area preprocessing step of updating data of the decoding information storage area according to the validity of the data value of the decoding information storage area according to the slice number and the macroblock position for the current macroblock to be decoded by the video decoder; And 상기 영상 복호기에 의하여 상기 현재 매크로블록이 복호되면, 상기 복호정보 저장영역 중에서 좌(left) 저장영역(좌 영역)의 복호정보를 이용하여 위(upper) 저장영역(위 영역)을 업데이트하고, 상기 복호된 현재 매크로블록에 대한 복호정보를 상기 좌 영역에 저장하는 복호정보 저장 단계When the current macroblock is decoded by the video decoder, an upper storage area (upper area) is updated by using decoding information of a left storage area (left area) of the decoding information storage area, and Decoding information storage step of storing the decoding information for the decoded current macroblock in the left area 를 포함하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.Macroblock decoding information storage method for image decoding in a video decoder comprising a. 제 1 항에 있어서,The method of claim 1, 상기 저장영역 전처리 단계는,The storage area preprocessing step, 상기 현재 매크로블록의 슬라이스번호가 예상 슬라이스번호(Prev_slice_nr)와 동일한지를 확인하는 슬라이스번호 확인 단계;A slice number checking step of checking whether a slice number of the current macroblock is equal to an expected slice number Prev_slice_nr; 상기 슬라이스번호 확인 결과, 슬라이스 번호가 상이하면 저장영역의 데이터와 예상 매크로블록의 번호(next_mbx, next_mby)(이하, 예상 MB 번호라 함)를 리셋(reset)하고 예상 슬라이스 번호를 업데이트하며, 슬라이스 번호가 동일하면 상기 현재 매크로블록의 번호(mbx, mby)와 예상 MB 번호(next_mbx, next_mby)를 비교하는 MB번호 비교 단계;As a result of checking the slice number, if the slice number is different, the data of the storage area and the number of the expected macroblocks (next_mbx, next_mby) (hereinafter referred to as the expected MB number) are reset and the expected slice number is updated. Comparing the number of the current macroblock (mbx, mby) and the expected MB number (next_mbx, next_mby) if the same is equal to each other; 상기 MB번호 비교 결과, 상기 현재 매크로블록의 번호(mbx, mby)와 예상 MB 번호(next_mbx, next_mby)가 같으면, 상기 영상 복호기가 상기 현재 매크로블록에 대하여 복호를 수행할 수 있도록 복호정보 저장영역 전처리 과정을 종료하는 단계;As a result of comparing the MB number, if the number (mbx, mby) and the expected MB number (next_mbx, next_mby) of the current macroblock are the same, the decoding information storage area preprocessing allows the image decoder to perform decoding on the current macroblock. Terminating the process; 상기 MB번호 비교 결과, 상기 현재 매크로블록의 번호(mbx, mby)가 예상 MB 번호(next_mbx, next_mby)보다 작으면 에러임을 출력하고, 상기 현재 매크로블록의 mby가 "next_mby + 1"보다 더 크면 정보저장영역을 리셋하는 단계;As a result of comparing the MB number, if the number (mbx, mby) of the current macroblock is smaller than the expected MB number (next_mbx, next_mby), an error is output. If mby of the current macroblock is larger than "next_mby + 1", the information is displayed. Resetting the storage area; 상기 MB번호 비교 결과, 만약 상기 현재 매크로블록의 mby가 next_mby와 같고 mbx가 next_mbx보다 크면, 상기 좌 영역의 데이터로 위 영역을 업데이트하고, 위영역 중 next_mbx부터 (mbx-2)까지의 영역은 정보를 저장하지 않으며, 상기 현재 매크로블록의 좌 영역은 업데이트하지 않으며, 예상 MB 번호(next_mbx, next_mby)를 상기 현재 매크로블록의 번호(mbx, mby)로 재설정하는 단계; 및As a result of comparing the MB number, if mby of the current macroblock is equal to next_mby and mbx is larger than next_mbx, the upper region is updated with data of the left region, and the region from next_mbx to (mbx-2) of the upper region is information. Not storing the current macroblock and not updating the left region of the current macroblock, and resetting an expected MB number (next_mbx, next_mby) to the number (mbx, mby) of the current macroblock; And 상기 MB번호 비교 결과, 만약 현재 매크로블록의 mby가 next_mby + 1과 같을 경우는, 좌 영역에 있는 바로 전에 복호된 매크로블록의 복호정보로 위 영역을 업데이트하고, 위 영역 중 [0 ~ mbx-2]까지의 영역(MB번호가 "0"부터 "mbx-2"까지의 영역)과 좌 영역은 업데이트하지 않으며, 예상 MB 번호(next_mbx, next_mby)를 상기 현재 매크로블록의 번호(mbx, mby)로 재설정하는 단계As a result of comparing the MB numbers, if mby of the current macroblock is equal to next_mby + 1, the above region is updated with the decoding information of the immediately decoded macroblock in the left region, and [0 to mbx-2 of the above region]. ] Area (MB number is "0" to "mbx-2") and the left area are not updated, and the expected MB number (next_mbx, next_mby) is converted into the number (mbx, mby) of the current macroblock. Steps to reset 를 포함하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.Macroblock decoding information storage method for image decoding in a video decoder comprising a. 제 2 항에 있어서,The method of claim 2, 상기 슬라이스번호 확인 단계에서의 슬라이스번호 동일여부 확인 과정은,The process of checking whether the slice number is the same in the slice number checking step is 상기 현재 매크로블록의 슬라이스 번호가 예상 슬라이스 번호와 동일한지 여부를 나타내는 매크로블록의 유효성 식별 제어정보(Mb_available)를 이용하는 것을 특징으로 하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.And a macroblock validity identification control information (Mb_available) indicating whether a slice number of the current macroblock is equal to an expected slice number. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 복호정보 저장 단계는,The decoding information storage step, 상기 영상 복호기에 의하여 현재 매크로블록이 복호되면, 상기 복호정보 저장영역 중에서 좌 영역에 있는 복호정보를 이용하여 위 영역 중에서 상기 복호된 현재 매크로블록과 동일한 행(row)의 바로 전 열(column)의 매크로블록(MB번호가 (mbx-1, mby)에 해당하는 매크로블록)에 대한 복호정보를 업데이트하는 위영역 업데이트 단계;If the current macroblock is decoded by the video decoder, the first column of the same row as the decoded current macroblock in the above region is decoded by using the decoded information in the left region of the decoded information storage region. An upper region updating step of updating decoding information for a macroblock (macroblock whose MB number corresponds to (mbx-1, mby)); 상기 복호된 현재 매크로블록에 대한 복호정보를 상기 좌 영역에 저장하는 좌영역 업데이트 단계; 및A left region updating step of storing decoding information on the decoded current macroblock in the left region; And 예상 MB 번호(next_mbx, next_mby)를 업데이트하는 제어정보 업데이트 단계Control information update step to update the expected MB number (next_mbx, next_mby) 를 포함하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.Macroblock decoding information storage method for image decoding in a video decoder comprising a. 제 4 항에 있어서,The method of claim 4, wherein 상기 복호정보 저장영역은,The decoding information storage area, 복호 대상이 되는 현재 매크로블록을 기준으로 복호과정에서 위 영역으로 참조될 복호정보와 좌 영역으로 참조될 복호정보를 분리 저장하기 위하여, 저장영역이 위 영역과 좌 영역으로 분리되어 있는 것을 특징으로 하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.The storage area is divided into the upper area and the left area in order to separately store the decoding information to be referred to the upper area and the decoding information to be referred to the left area in the decoding process based on the current macroblock to be decoded. A method of storing macroblock decoding information for video decoding in a video decoder. 제 5 항에 있어서,The method of claim 5, wherein 상기 복호정보 저장영역은, The decoding information storage area, 16×16 단위로 존재하는 복호정보에 대해서는, 위 영역으로는 {(영상프레임 폭(pic_width) - 1)/16 + 1}개, 좌 영역으로는 1개의 영역이 할당되어 있는 것을 특징으로 하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.Regarding the decoding information existing in units of 16 × 16, {(picture_width-1) / 16 + 1} pieces are allocated to the above area, and 1 area is allocated to the left area. A method of storing macroblock decoding information for video decoding in a decoder. 제 5 항에 있어서,The method of claim 5, wherein 상기 복호정보 저장영역은, The decoding information storage area, 4×4 단위로 존재하는 복호정보에 대해서는, 위 영역으로는 {영상프레임 폭(pic_width)/16 + 1}개, 좌 영역으로는 7개의 영역이 할당되어 있는 것을 특징으로 하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.Regarding the decoding information existing in units of 4 × 4, {pic_width / 16 + 1} pieces are allocated in the above area, and 7 areas are allocated in the left area. Macroblock decoding information storage method for decoding. 제 5 항에 있어서,The method of claim 5, wherein 상기 위 영역은,The above area, 상기 현재 매크로블록을 기준으로 동일한 행(row)에서 좌측 열에 있는 매크로블록에 대한 복호정보와 바로 전 행(row)에서 상기 현재 매크로블록과 동일한 열을 포함하여 우측 열에 있는 매크로블록에 대한 복호정보를 저장하고 있고; Decoding information for the macroblock in the right column, including the same column as the current macroblock in the immediately preceding row, and the decoding information for the macroblock in the same row, based on the current macroblock. Storing; 상기 좌 영역은, The left area is, 상기 현재 매크로블록에 대한 복호정보를 저장하고 있는 것을 특징으로 하는 영상 복호기에서의 영상 복호를 위한 매크로블록 복호정보 저장 방법.The macroblock decoding information storage method for video decoding in the video decoder, characterized in that for storing the decoding information for the current macroblock. 삭제delete
KR1020040044058A 2003-12-26 2004-06-15 Method for storing macroblock decoding information in a image decoder KR100581077B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020030097874 2003-12-26
KR20030097874 2003-12-26

Publications (2)

Publication Number Publication Date
KR20050066951A KR20050066951A (en) 2005-06-30
KR100581077B1 true KR100581077B1 (en) 2006-05-22

Family

ID=37257941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040044058A KR100581077B1 (en) 2003-12-26 2004-06-15 Method for storing macroblock decoding information in a image decoder

Country Status (1)

Country Link
KR (1) KR100581077B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277713B1 (en) 2007-02-08 2013-06-24 삼성전자주식회사 Apparatus and method for video encoding
KR101118591B1 (en) * 2008-12-11 2012-02-27 한국전자통신연구원 Transcoder

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980042130A (en) * 1996-11-06 1998-08-17 니시무로타이조 Decoded image display apparatus and display memory control method thereof
KR20010082933A (en) * 2000-02-22 2001-08-31 송문섭 Method and apparatus for updating motion vector memory
KR20030073830A (en) * 2002-03-13 2003-09-19 주식회사 하이닉스반도체 Method for Assigning Frame Memory to Compensate Movement of Half-Pel
KR20030089774A (en) * 2002-05-18 2003-11-28 엘지전자 주식회사 Recording method for dc/ac coefficient of video decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980042130A (en) * 1996-11-06 1998-08-17 니시무로타이조 Decoded image display apparatus and display memory control method thereof
KR20010082933A (en) * 2000-02-22 2001-08-31 송문섭 Method and apparatus for updating motion vector memory
KR20030073830A (en) * 2002-03-13 2003-09-19 주식회사 하이닉스반도체 Method for Assigning Frame Memory to Compensate Movement of Half-Pel
KR20030089774A (en) * 2002-05-18 2003-11-28 엘지전자 주식회사 Recording method for dc/ac coefficient of video decoder

Also Published As

Publication number Publication date
KR20050066951A (en) 2005-06-30

Similar Documents

Publication Publication Date Title
AU2021200773B2 (en) Decoding device and decoding method
KR101581100B1 (en) Method for managing a reference picture list, and apparatus using same
CN116866565A (en) Image encoding/decoding method, storage medium, and image data transmission method
KR20190038371A (en) Method and apparatus for encoding/decoding image and recording medium for storing bitstream
US20230262253A1 (en) Method for encoding/decoding video signal and device therefor
US11184611B2 (en) Method for encoding/decoding image signal and apparatus therefor
US11463695B2 (en) Method for encoding/decoding image signal, and device for same
US11259043B2 (en) Image signal encoding/decoding method, and apparatus therefor based on deriving merge candidates
JP7441314B2 (en) Methods, apparatus, and systems for encoding and decoding blocks of video samples
KR102619997B1 (en) Method for encodign/decodign video signal and apparatus therefor
US20240056571A1 (en) Image signal encoding/decoding method and apparatus therefor
CN116320418A (en) Video signal encoding/decoding method and apparatus therefor
US20240040118A1 (en) Image signal encoding/decoding method and device therefor
KR100581077B1 (en) Method for storing macroblock decoding information in a image decoder
US20230091844A1 (en) Method for encoding/decoding image signal, and device for same
JP6974377B2 (en) Image decoder, image decoding method and program
KR20210082092A (en) Video encoding/decoding method and apparatus
JP2022524815A (en) Implementation-efficient partition-based intra-encoding concept
CN114930814A (en) Image encoding/decoding method and apparatus
TW202247663A (en) Method, apparatus and system for encoding and decoding a transformed block of video samples
CN113924773A (en) Image encoding/decoding method and apparatus, and recording medium for storing bit stream

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: 20130424

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150508

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160607

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170410

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190319

Year of fee payment: 14