KR20080017764A - Method and apparatus for decoding macroblock data in h.264/avc - Google Patents
Method and apparatus for decoding macroblock data in h.264/avc Download PDFInfo
- Publication number
- KR20080017764A KR20080017764A KR1020060079363A KR20060079363A KR20080017764A KR 20080017764 A KR20080017764 A KR 20080017764A KR 1020060079363 A KR1020060079363 A KR 1020060079363A KR 20060079363 A KR20060079363 A KR 20060079363A KR 20080017764 A KR20080017764 A KR 20080017764A
- Authority
- KR
- South Korea
- Prior art keywords
- macroblock
- current
- data
- block
- decoding
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
도 1은 본 발명의 일 실시예에 따른 디코딩장치의 블록도,1 is a block diagram of a decoding apparatus according to an embodiment of the present invention;
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 이웃정보제어부의 동작 설명에 제공되는 도면,2A and 2B are views provided to explain an operation of a neighbor information controller according to an embodiment of the present invention;
도 3은 현재 블록이 가장자리 블록이 아닌 경우에 이웃블록을 선택하는 방법의 설명에 제공되는 도면,3 is a view provided to explain a method of selecting a neighboring block when the current block is not an edge block;
도 4는 현재 블록이 가장자리 블록이면서, 현재 매크로블록이 mbaff가 아닌 경우에 이웃블록을 선택하는 방법의 설명에 제공되는 도면, 4 is a view provided to explain a method of selecting a neighboring block when the current block is an edge block and the current macroblock is not mbaff;
도 5는 현재 매크로블록이 mbaff이고, 현재 매크로블록과 이웃 매클로블록의 픽쳐 모드가 동일한 경우에 이웃블록을 선택하는 방법의 설명에 제공되는 도면,5 is a diagram provided to explain a method of selecting a neighboring block when a current macroblock is mbaff and a picture mode of a current macroblock and a neighboring macroblock is the same;
도 6은 현재 매크로블록이 mbaff이고, 현재 매크로블록은 프레임 모드이고 이웃 매크로블록은 필드모드인 경우 이웃블록을 선택하는 방법의 설명에 제공되는 도면,6 is a diagram provided to explain a method of selecting a neighboring block when a current macroblock is mbaff, a current macroblock is a frame mode, and a neighboring macroblock is a field mode;
도 7은 현재 매크로블록이 mbaff이고, 현재 매크로블록은 필드 모드이고 이웃 매크로블록은 프레임 모드인 경우 이웃블록을 선택하는 방법의 설명에 제공되는 도면,7 is a diagram provided to explain a method of selecting a neighboring block when a current macroblock is mbaff, a current macroblock is a field mode, and a neighboring macroblock is a frame mode;
도 8은 현재 매크로블록이 mbaff이고, 현재 매크로블록이 매크로블록 페어의 Top 매크로블록인 경우 이웃블록 B를 구하는 방법의 설명에 제공되는 도면,8 is a diagram provided to explain a method of obtaining a neighboring block B when the current macroblock is mbaff and the current macroblock is a Top macroblock of a macroblock pair;
도 9는 현재 매크로블록이 mbaff이고, 현재 매크로블록이 매크로블록 페어의 Bottom 매크로블록인 경우 이웃블록 B를 구하는 방법의 설명에 제공되는 도면, 그리고9 is a diagram provided to explain a method of obtaining a neighboring block B when the current macroblock is mbaff and the current macroblock is a Bottom macroblock of a macroblock pair, and
도 10은 도 1의 버퍼부에 저장되는 데이터를 설명하는데 제공되는 도면이다.FIG. 10 is a view provided to explain data stored in a buffer unit of FIG. 1.
본 발명은, H.264/AVC 표준으로 압축한 비디오 디코더장치 중 비트스트림에서 매크로블록(Macroblock)을 디코딩하는 과정에 필요한 이웃 정보를 효율적으로 관리하고 검색하는 H.264/AVC에서 매크로블록 데이터의 디코딩 방법 및 디코딩 장치에 관한 것이다.The present invention provides a method of macroblock data in H.264 / AVC that efficiently manages and retrieves neighbor information necessary for decoding a macroblock in a bitstream among video decoder devices compressed to the H.264 / AVC standard. The present invention relates to a decoding method and a decoding apparatus.
H.264/AVC는 비트 스트림(Bit Stream)내에 심볼(Symbol)을 나타내는 비트 수를 줄이기 위해 VLC(Variable Length Coding) 테이블 선택, CABAC(Context Adaptive Binary Arithmetic Coding) 모델 선택 등 많은 단계에서 이웃 정보를 이용한다. H.264 / AVC uses neighbor information at many stages, such as selecting a Variable Length Coding (VLC) table and selecting a Context Adaptive Binary Arithmetic Coding (CABAC) model to reduce the number of bits representing a symbol in the bit stream. I use it.
H.264/AVC 표준은 16×16 매크로블록(MB: Macro Block), 8×8 luma(Luminance, 휘도신호) 블록, 4×4 luma 블록, 4×4 chroma(Chrominance, 색신호) 블록, 파티션(partition)의 주변 블록 혹은 주변 파티션을 구하는 방법에 대해 각각 상세히 설명하고 있다. 이하 H.264/AVC에 관한 표준인 ISO/IEC 14496-10의 네 번째 버전을 기준으로 설명한다.H.264 / AVC standards include 16 × 16 Macro Blocks (MB), 8 × 8 luma (Luminance) blocks, 4 × 4 luma blocks, 4 × 4 chroma (Chrominance) blocks, and partitions ( Each section describes how to obtain the neighboring blocks or partitions of a partition. The following description is based on the fourth version of ISO / IEC 14496-10, which is a standard for H.264 / AVC.
표준에서는 현재의 매크로블록에 대한 N 방향에 대한 이웃 블록과의 위치 차(Difference of luma location) (xD, yD)를 다음의 표 1과 같이 정의하고 있다. 여기서, N 방향은 방향 A, B, C, D를 포함한다. 표 1을 통해 그 방향을 알 수 있듯이, A는 현재 매크로블록의 좌측방향, B는 상측방향, C는 우상측 방향, D는 좌상측 방향이다. 구하고자 하는 주변 정보 모드가 매크로블록, 블록, 또는 파티션인지에 따라 (xD, yD)로부터 이웃 블록의 위치(xN, yN)을 계산하는 방법을 규정하고 있다. The standard defines a difference of luma location (xD, yD) with neighboring blocks in the N direction with respect to the current macroblock as shown in Table 1 below. Here, the N direction includes directions A, B, C, and D. As shown in Table 1, A is the left direction of the current macroblock, B is the upper direction, C is the upper right direction, and D is the upper left direction. It defines a method of calculating the position (xN, yN) of the neighboring block from (xD, yD) according to whether the peripheral information mode to be obtained is a macroblock, a block, or a partition.
이웃 블록의 위치(xN, yN)이 정해지면, 현재 프레임의 MBAFF(MacroBlock-Adaptive Frame/Field)/PAFF(Picture Adaptive Frame/Field) 여부, 현재 매크로 블록이 필드(Field) 구조인지 여부, 매크로블록이 매크로블록페어(macroblock pair)에서 탑(Top) 매크로블록인가의 여부에 따라 매크로블록 정보 mbAddrN과 매크로블록 내에서 위치 정보 (xW, yW)가 유도되며 (xW, yW)로부터 해당하는 블록 혹은 파티션의 인덱스(index) 정보를 구할 수 있다.Once the position of the neighboring block (xN, yN) is determined, whether the current frame is a MacroBlock-Adaptive Frame / Field (MBAFF) or Picture Adaptive Frame / Field (PAFF), whether the current macroblock is a field structure, or a macroblock. Depending on whether the macroblock pair is a top macroblock, location information (xW, yW) is derived from the macroblock information mbAddrN and the macroblock, and the corresponding block or partition from (xW, yW). You can get index information of.
이와 같은 종래의 이웃 정보 검출 방법은 다양한 경우를 총망라한 방법으로 필요하지 않는 계산을 수행하고 또 복잡하다. 또 다음 매크로블록의 심볼을 디코딩하기 위해 저장해야 하는 현재 매크로 블록의 데이터에 대해 언급하지 않고 있다. Such a conventional neighbor information detection method is complicated and performs calculations that are not necessary in various ways. It also does not mention the data in the current macroblock that must be stored in order to decode the symbols of the next macroblock.
본 발명의 목적은, H.264/AVC 표준으로 압축된 비트스트림에서 매크로블록(Macroblock)을 디코딩하는 과정에 필요한 이웃 정보를 효율적으로 관리하고 검색하는, H.264/AVC에서 매크로블록 데이터의 디코딩 방법 및 디코딩 장치를 제공함에 있다.SUMMARY OF THE INVENTION An object of the present invention is to decode macroblock data in H.264 / AVC, which efficiently manages and retrieves neighbor information required for decoding a macroblock in a bitstream compressed with the H.264 / AVC standard. A method and a decoding apparatus are provided.
상기 목적을 달성하기 위해 본 발명에 따른 H.264/AVC에서 매크로블록 데이터의 디코딩 방법은 H.264/AVC 표준으로 압축된 비트스트림(Bit stream)을 수신하는 단계, 상기 수신된 비트스트림에 의해 형성되는 4×4 블록을 포함하는 현재 매크로블록(MB: Macroblock)의 각 블록의 디코딩과정에서, 인덱스 (x, y)인 현재 블록의 디코딩을 위해 필요한 이웃블록 A 및 이웃블록 B 중 적어도 하나에 대한 데이터를, 기 디코딩되어 저장된 매크로블록 데이터 중에서 추출하는 단계 및 상기 추출된 데이터를 기초로, 상기 수신된 비트스트림로부터 상기 현재 블록에 대한 디코딩을 수행하여 상기 현재 매크로블록 데이터를 파싱(parsing)하는 단계를 포함한다.In order to achieve the above object, a method of decoding macroblock data in H.264 / AVC according to the present invention comprises: receiving a bitstream compressed by the H.264 / AVC standard, by the received bitstream In the decoding process of each block of the current macroblock (MB: Macroblock) including the formed 4x4 block, at least one of the neighboring block A and the neighboring block B necessary for decoding the current block having the index (x, y). Extracting data from the pre-decoded and stored macroblock data, and parsing the current macroblock data by performing decoding on the current block from the received bitstream based on the extracted data. Steps.
이하에서는, 도면을 참조하여 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the drawings.
도 1은 본 발명의 일 실시예에 따른 디코딩 장치의 블록도이다. 1 is a block diagram of a decoding apparatus according to an embodiment of the present invention.
본 발명의 디코딩장치(100)는 H.264/AVC 표준으로 압축된 영상신호인 비트 스트림(bit stream)을 수신하여 소정의 이웃정보를 기초로 데이터를 디코딩하여 출력한다. 본 발명의 디코딩장치(100)는 H.264/AVC 표준으로 압축된 비트스트림에서 심볼(symbol)을 디코딩하는 과정에 필요한 이웃 정보를 효율적으로 관리하고 검색한다. The
본 발명에 대한 이하의 설명에 있어, 따로 설명되지 않은 부분은 H.264/AVC에 관한 표준인 ISO/IEC 14496-10에 의해 보충될 수 있다.In the following description of the invention, parts not described otherwise may be supplemented by ISO / IEC 14496-10, which is a standard for H.264 / AVC.
H.264/AVC는 방향에 따라 A, B, C, D 총 4개의 이웃 정보를 정의하고, 압축하는 픽쳐(picture)의 모드, 매크로블록(MB: Macroblock) 모드, 블록 위치에 따라 이웃 정보를 선택한다. 그리고 매크로 블록의 데이터 일부를 시간적으로 후에 오는 다음 매크로 블록의 심볼을 디코딩하기 위해 저장한다. 본 발명의 디코딩장치(100)는 매크로블록에 포함된 데이터 중 필요한 데이터만을 효율적으로 저장하고 간단히 이웃 정보를 선택할 수 있다. 나아가, 디코딩장치(100)는 매크로 블록 내 모든 블록의 데이터를 저장하는 것이 아니라 필요한 블록에 대해서만 데이터를 저장하여 버퍼 사이즈를 줄인다.H.264 / AVC defines four neighbor information, A, B, C, and D, depending on the direction, and the neighbor information according to the picture mode, macroblock (MB) mode, and block position to compress. Choose. A portion of the data of the macro block is then stored for decoding the symbols of the next macro block that comes later in time. The
도 1을 참조하면, 디코딩장치(100)는 입력되는 비트스트림에서 매크로블록 데이터를 디코딩하는 MB데이터파서부(MB data parser)(110), MB데이터파서부(110) 에서 필요한 이웃 정보를 처리하는 이웃정보제어부(130), 이웃 정보를 저장하는 버퍼(Buffer)부(150)를 포함한다.Referring to FIG. 1, the
MB데이터파서부(110)는 H.264/AVC 표준으로 압축되어 입력되는 비트스트림에서 현재 매크로블록(currMB: current Macroblock) 데이터를 디코딩한다. MB데이터파서부(110)는 4×4 블록을 포함하는 현재 매크로블록에 포함된 각 블록의 디코딩 과정에서 이웃하는 블록(이하 '이웃 블록'이라 함)의 정보가 필요한 경우, 이웃정보제어부(130)에 이웃 블록의 데이터를 요청한다. MB데이터파서부(110)가 요청하는 이웃블록에 대한 정보는, H.264 /AVC 에서 비트스트림에서 데이터를 디코딩하기 위해 4×4 블록 크기의 이웃 매크로블록에 대한 정보를 요청하는 것과 비교된다. The
이웃정보제어부(130)는 MB데이터파서부(110)에서 요청하는 데이터 타입과 현재 블록 인덱스(Index)에 근거하여 버퍼부(150)에서 현재 블록의 이웃 블록에 대한 정보인 '이웃 정보'를 읽어 MB데이터파서부(110)에 전송한다. 이웃정보제어부(130)는 H.264 /AVC 에서 제시하는 이웃블록 A, B, C, D 중에서 이웃블록 A와 B에 대한 정보만을 MB데이터파서부(110)에 전송한다. 이에 대하여는 아래에서 자세히 설명한다.The
또한, 이웃정보제어부(130)는 MB데이터파서부(110)가 현재 매크로블록을 디코딩한 데이터에서, 이후에 입력되는 매크로 블록 데이터의 디코딩을 위해 필요한 데이터를 추출하여 버퍼부(150)에 저장한다. In addition, the
버퍼부(150)는 이웃정보에 대응되는 이웃블록의 데이터를 저장한다. 버퍼부(150)는 이웃정보제어부(130)의 요청에 따라 이웃정보를 이웃정보제어부(130)로 제공한다. 버퍼부(150)는 이웃정보를 저장함에 있어, 이웃 매크로블록의 모든 데이터를 저장하지 않고, 한개 매크로블록의 최하측 열과 최우측 행의 데이터만을 저장한다. 버퍼부(150)는 이웃 블록을 선택하기 위해 필요한 파라미터인 현재 픽쳐 모드, 매크로블록 모드 등도 함께 저장하고 있다. The
이웃정보제어부(130)가 MB데이터파서부(110)에서 요청하는 데이터 타입과 블록 인덱스(Index)에 근거하여 버퍼부(150)로부터 이웃정보를 선택하는 방법을 다음의 도 2를 참조하여 설명한다. 그리고 도 2의 설명에 기초하여 버퍼부(150)의 동작을 아래에서 다시 설명한다.A method of selecting the neighbor information from the
도 2는 본 발명의 일 실시예에 따른 이웃정보제어부의 동작 설명에 제공되는 도면이다. 2 is a view provided to explain the operation of the neighbor information control unit according to an embodiment of the present invention.
도 2의 (a)는 현재 매크로블록에 포함된 임의의 블록의 A방향(좌측 방향) 이웃블록을 구하는 방법에 관한 것이며, 도 2의 (b)는 현재 매크로블록에 포함된 임의의 블록의 B방향(상측 방향) 이웃블록을 구하는 방법에 관한 것이다. 도 2에서 이웃블록 A와 B에 대해서만 도시하고 있는 것은, MB데이터파서부(110)가 실제로 비트스트림으로부터 매크로블록 데이터를 파서함에 있어, 이웃블록 C 또는 D에 대한 정보가 필요 없음에서 기인하며, 이러한 내용이 표준에서 제시되지 않고 있다. 따라서 이웃정보제어부(130)는 표준에 따라 매크로블록 데이터를 파서할 경우 발생할 수 있는 불필요로 한 데이터의 버퍼링 문제 및 불필요한 계산과정을 수행해야 하는 문제를 기본적으로 해결한다. 2 (a) relates to a method of obtaining a neighboring block in the A direction (left direction) of any block included in the current macroblock, and FIG. 2 (b) shows B of any block included in the current macroblock. It relates to a method for obtaining a neighboring block in an upward direction. In FIG. 2, only the neighboring blocks A and B are shown because the
이하에서, '현재 블록' 또는 '이웃블록'이라 함은 4×4 휘도신호(luma)블록 또는 색신호(chroma)블록을 의미하고, 매크로블록은 16×16(16개의 블록포함) 휘도신호 또는 색신호 블록, 매크로블록 페어(pair)는 16×32(두 개의 매크로블록 포함) 휘도신호 또는 색신호 블록을 나타낸다. 이하의 설명에서는 '블록'또는, '4×4 블록'을 동일한 의미로 사용한다.Hereinafter, the term 'current block' or 'neighborhood block' means a 4 × 4 luma block or a color signal (chroma) block, and the macroblock is a 16 × 16 (including 16 blocks) luminance signal or color signal. A block and macroblock pair represents a 16 × 32 (including two macroblock) luminance signal or color signal block. In the following description, "block" or "4x4 block" is used in the same sense.
또한, MB데이터파서부(110)가 매크로블록 번호가 mb인 현재 매크로블록(이하 '현재 매크로블록 mb'라 함)에 포함된 인덱스 (x, y)인 블록의 디코딩을 위해 이웃정보제어부(130)에 그 이웃블록에 대한 정보를 요청한 경우, 인덱스 (x, y)인 블록을 '현재 블록'이라 한다. x, y는 4×4 블록을 포함하는 매크로블록에서 현재 블록의 블록 인덱스이다. Also, the
mba는 현재 블록의 이웃블록 A를 포함하는 매크로블록의 번호이고, mbb는 현재 블록의 이웃블록 B를 포함하는 매크로블록의 번호이다. mba is the number of the macroblock including the neighboring block A of the current block, and mbb is the number of the macroblock including the neighboring block B of the current block.
xa, ya는 이웃 블록 A가 포함된 매크로블록에서 이웃블록 A의 블록 인덱스, 그리고 xb, yb는 이웃 블록 B가 포함된 매크로블록에서 이웃블록 B의 블록 인덱스이다. 따라서 x, y, xa, ya, xb, yb는 0에서 3까지의 정수가 해당한다. 도 2에서의 모든 연산은 정수(Integer) 연산이다. 여기서, 정수연산이란 각 단계의 연산 결과에서 정수만을 취함을 말한다. 예를 들어 y가 3이고, mb가 5인 경우 y/2+(mb%2)ㅧ2는 1+1ㅧ2=3 이 된다. %는 나눈 나머지 값을 구하는 것으로, 5%2=1 이 된다. xa and ya are block indexes of the neighboring block A in the macroblock including the neighboring block A, and xb and yb are block indexes of the neighboring block B in the macroblock including the neighboring block B. Thus, x, y, xa, ya, xb, and yb correspond to integers from 0 to 3. All operations in FIG. 2 are integer operations. In this case, the integer operation means that only an integer is taken from the operation result of each step. For example, if y is 3 and mb is 5, y / 2 + (mb% 2) ㅧ 2 is 1 + 1 ㅧ 2 = 3. % Is the remainder divided by 5% 2 = 1.
Mode[]는 해당 매크로블록의 픽쳐 모드로서, 인터레이스드(Interlaced) 방식에 따른 필드(Field)모드와 프로그레시브(Progressive)방식에 따른 프레임(Frame) 모드가 있다. mbaff 압축방법에 따를 경우, Mode[mb]는 현재 매크로블록의 모드이 며, mode[mb-2]는 매크로블록의 번호 mb-2인 매크로블록, 즉 현재 매크로블록의 바로 좌측 매크로블록의 모드가 해당할 것이다. Mode[mb-2N]은 매크로블록의 번호 mb-2N인 매크로블록의 픽쳐 모드이다. 여기서, N은 매크로블록 단위로 계산된 픽쳐의 폭(PicWidthInMbs)으로서, 하나의 픽쳐의 매크로블록 열은 N 개의 매크로블록을 포함한다. 다시 말해, N은 이미지의 폭(width)을 16으로 나눠 올림한 수이다.Mode [] is a picture mode of the macroblock, and includes a field mode according to an interlaced method and a frame mode according to a progressive method. According to the mbaff compression method, Mode [mb] is the mode of the current macroblock, and mode [mb-2] is the macroblock number mb-2 of the macroblock, that is, the mode of the macroblock immediately to the left of the current macroblock. something to do. Mode [mb-2N] is a picture mode of a macroblock having the macroblock number mb-2N. Here, N is a width (PicWidthInMbs) of a picture calculated in units of macroblocks, and a macroblock column of one picture includes N macroblocks. In other words, N is the number divided by 16 divided by the width of the image.
도 2를 참조하면, 현재 매크로블록에 포함된 블록의 이웃블록 A 또는 B를 결정함에 있어, 먼저 현재 블록이 현재 매크로블록 mb의 가장자리 블록(Boundary block)인지 여부를 결정한다. 여기서, 가장자리 블록은 해당 매크로블록의 가장 좌측 블록 행(제1행)과 가장 위 블록 열(제1열)에 속하는 블록이다. Referring to FIG. 2, in determining a neighboring block A or B of a block included in a current macroblock, it is first determined whether the current block is an edge block of the current macroblock mb. Here, the edge block is a block belonging to the leftmost block row (first row) and the highest block column (first column) of the macroblock.
이웃 블록을 결정함에 있어, 현재 블록의 좌상점(또는 좌상화소)을 기준으로 현재 블록의 필드(field) 또는 프레임(frame) 모드(mode)에 따라 픽쳐(Picture)의 화소를 재 정렬했을 때 바로 좌측의 화소를 포함하는 블록을 이웃 블록 A, 바로 윗 화소를 포함하는 블록을 이웃 블록 B로 결정한다. 즉, 현재 매크로블록이 필드 모드로서 탑(Top) 필드에 해당한다면 현재 프레임의 Top 필드 영상 데이터에서 이웃 화소가 선택되고, 현재 매크로블록이 바텀(Bottom) 필드이면 Bottom 필드 영상 데이터에서 이웃화소가 선택되며, 프레임 모드인 경우에는 현재 프레임을 프로그레시브 모드로 고려할 때 인접하는 화소를 포함하는 블록이 이웃 블록이다. 이러한 결정하는 방법은 본 발명에서 이웃블록을 결정하는 모든 경우에 적용된다. In determining the neighboring block, when the pixels of the picture are rearranged according to the field or frame mode of the current block with respect to the upper left point (or the upper left pixel) of the current block, The block including the pixel on the left side is determined as the neighboring block A, and the block including the pixel immediately above the neighboring block B. That is, if the current macroblock corresponds to the top field as the field mode, the neighboring pixel is selected from the top field image data of the current frame, and if the current macroblock is the bottom field, the neighboring pixel is selected from the bottom field image data. In the frame mode, when the current frame is considered to be a progressive mode, a block including adjacent pixels is a neighboring block. This method of determining applies to all cases of determining neighboring blocks in the present invention.
도 2의 경우 1(즉, 가장자리 블록이 아닌 경우, 논 바운드리 블록(Non Boundary block)인 경우)에서, 다른 사항을 고려할 필요 없이 현재 블록의 좌상점 화소의 바로 좌측 화소를 포함하는 블록이 이웃 블록 A, 현재 블록의 좌상점 화소의 바로 위 화소를 포함하는 블록이 이웃 블록 B이다. 따라서 이웃블록 A가 포함된 매크로블록은 현재 매크로블록 mb이고, 이웃블록 A의 인덱스는 (x-1, y)가 되고, 이웃블록 B의 인덱스는 (x, y-1)이 된다. 여기서, 경우 1의 설명을 위해 다음의 도 3을 참조한다. In
도 3은 현재 블록이 가장자리 블록이 아닌 경우에 이웃블록을 선택하는 방법의 설명에 제공되는 도면이다. 3 is a diagram provided to explain a method of selecting a neighboring block when the current block is not an edge block.
도 3에서, 가장 작은 단위 사각형은 4×4 블록을 나타내고, 매크로블록의 휘도신호(luma) 성분은 총 16개(4×4) 블록을 포함한다. 픽쳐가 4:2:0 컬러 포맷일 경우, 한 개의 매크로블록에 대한 색신호(Chrominance) 성분은 4개(2×2) 블록으로 구성된다. In FIG. 3, the smallest unit rectangle represents a 4x4 block, and the luminance signal luma component of the macroblock includes 16 blocks (4x4) in total. When the picture is in 4: 2: 0 color format, the chroma signal component for one macroblock is composed of four (2x2) blocks.
현재 매크로블록에서 휘도신호(luma) 성분의 2번째 행(310), 3번째 행(320), 가장 우측의 블록 행(column)(330) 및 색신호(chroma)의 2번째(340) 블록 행에 대한 이웃 블록 A는 동일한 매크로블록에 속하는 바로 좌측의 블록이 선택된다. 화살표는 현재 블록의 이웃블록을 지시하고, 굵은 선으로 표시된 부분이 이웃블록이다. 유사하게 현재 매크로블록에서 휘도신호(luma)의 2번째 열(350), 3번째 열(360), 가장 하단의 블록 열(370), 색신호(chroma)의 2번째 열(380)에 대한 이웃 블록 B는 동일한 매크로블록에 속하는 바로 위의 블록이 선택된다.In the current macroblock, the
다시 도 2를 참조하여 설명한다. This will be described again with reference to FIG. 2.
현재 블록이 가장자리 블록이나, 현재 매크로블록이 mbaff에 의한 것인 아닌 경우(경우 2), 이웃 블록 A가 속하는 매크로블록의 번호 mba는 mb-1가 되고, 이웃 블록 A의 인덱스 (xa, ya)는 (3, y)가 된다. 이웃 블록 B가 속하는 매크로블록의 번호 mbb는 mb-N이 되고, 이웃 블록 B의 인덱스 (xb, yb)는 (x, 3)이 된다. If the current block is an edge block or the current macroblock is not due to mbaff (case 2), the number mba of the macroblock to which neighboring block A belongs is mb-1, and the index of the neighboring block A (xa, ya) Becomes (3, y). The number mbb of the macroblock to which the neighboring block B belongs is mb-N, and the index (xb, yb) of the neighboring block B is (x, 3).
또한, 현재 블록이 가장자리 블록이고 현재 매크로블록이 mbaff에 의한 것이라 하더라도, 현재 매크로블록과 이웃 매클로블록의 픽쳐 모드가 동일한 경우의 이웃블록 A를 구하는 경우(경우 2), 이웃 블록 A가 속하는 매크로블록의 번호 mba는 mb-2가 되고, 이웃 블록 A의 인덱스 (xa, ya)는 (3, y)가 된다. Further, even if the current block is an edge block and the current macroblock is caused by mbaff, when the neighboring block A is obtained when the current macroblock and the neighboring macroblock have the same picture mode (case 2), the macro to which the neighboring block A belongs is obtained. The number mba of the block becomes mb-2, and the index (xa, ya) of the neighboring block A becomes (3, y).
여기서, 경우 2의 설명을 위해 다음의 도 4 및 도 5를 참조한다. Here, reference is made to FIGS. 4 and 5 below for description of
도 4는 현재 블록이 가장자리 블록이면서, 현재 매크로블록이 mbaff가 아닌 경우에 이웃블록을 선택하는 방법의 설명에 제공되는 도면이고, 도 5는 현재 매크로블록이 mbaff이고, 현재 매크로블록과 이웃 매클로블록의 픽쳐 모드가 동일한 경우에 이웃블록을 선택하는 방법의 설명에 제공되는 도면이다. FIG. 4 is a diagram provided to explain a method of selecting a neighboring block when the current block is an edge block and the current macroblock is not mbaff, and FIG. 5 is a current macroblock as a mbaff, and a current macroblock and a neighbor macro. It is a figure provided for description of the method of selecting a neighboring block when the picture mode of a block is the same.
도 4와 같이 현재 매크로블록이 mbaff가 아닌 경우 이웃 매크로블록도 mbaff가 아니다. 도 4의 (a)에서, 현재 매크로블록의 가장 좌측 행의 블록들(410a, 410b)에 대한 이웃블록 A는, 현재 매크로블록의 좌측 매크로블록(mb-1)의 최우측 행의 블록들(420a,420b)이 되고, 도 4의 (b)에서 현재 매크로블록의 가장 윗열의 블록들(430a,430b)에 대한 이웃블록 B는 현재 매크로블록의 상측 매크로블록(mb-N) 의 가장 아래 열의 블록들(440a,440b)이 된다. If the current macroblock is not mbaff, as shown in FIG. 4, the neighboring macroblock is not mbaff. In (a) of FIG. 4, the neighboring block A for the
도 5는, 현재 매크로블록이 mbaff이고 필드모드이며, 이웃 매크로블록의 픽쳐모드도 필드모드인 경우로서, 현재 매크로블록 페어의 각 매크로블록(510a, 520a)의 가장 좌측 행의 블록들에 대한 이웃블록 A는, 각 현재 매크로블록의 좌측 매크로블록(530a,540a)의 최우측 행의 블록들이 된다. FIG. 5 illustrates a case in which the current macroblock is mbaff and is in field mode, and the picture mode of the neighboring macroblock is also in field mode, and neighbors to the blocks of the leftmost row of each macroblock 510a and 520a of the current macroblock pair. Block A becomes the blocks of the rightmost row of the left macroblocks 530a and 540a of each current macroblock.
다시 도 2를 참조하여, 현재 매크로블록이 mbaff에 의한 것이며, 현재 매크로블록과 이웃 매클로블록의 픽쳐 모드가 서로 다른 경우에 이웃블록 A를 구하는 방법을 설명한다. Referring to FIG. 2 again, a method of obtaining a neighboring block A when the current macroblock is due to mbaff and the picture modes of the current macroblock and the neighboring macroblock are different from each other will be described.
먼저, 도 2의 (a)를 참조하여 이웃블록 A를 구함에 있어, 현재 매크로블록이 프레임 모드이고, 이웃 매크로블록이 필드모드인 경우(경우 3)이다. 다시 말해, Mode[mb] = frame이고, Mode[mb-2] = field인 경우이다. First, referring to (a) of FIG. 2, the neighboring block A is obtained when the current macroblock is in frame mode and the neighboring macroblock is in field mode (case 3). In other words, Mode [mb] = frame and Mode [mb-2] = field.
경우 3에서, 이웃블록 A가 속하는 매크로블록 mba는 mb-2-(mb%2)가 된다. 그리고 이웃 블록 A의 인덱스 (xa, ya)는 다음의 수학식 1과 같다. In
경우 3의 예를 도 6을 참조하여 설명한다. An example of
도 6은 현재 매크로블록이 mbaff이고, 현재 매크로블은 프레임 모드이고 이 웃 매크로블록은 필드모드인 경우 이웃블록을 선택하는 방법의 설명에 제공되는 도면이다. FIG. 6 is a diagram provided to explain a method of selecting a neighboring block when a current macroblock is mbaff, a current macroble is a frame mode, and a neighboring macroblock is a field mode.
도 6을 참조하면, 현재 매크로블록 페어(610a,620a)는 Top 매크로블록(610a)과 Bottom 매크로블록(620a)으로 구성된다. 현재 매크로블록 페어(610a,620a)가 프레임 모드이므로, 현재 Top 매크로블록(610a)과 현재 Bottom 매크로블록(620a)의 가장 좌측 행의 각 블록들의 좌상점은 모두 Top 필드의 화소가 된다. 그리고 이웃 매크로블록은 필드모드이므로 이웃 매크로블록 페어(630a,640a) 중 이웃 Top 매크로블록(630a)가 Top 필드 화소를 포함한다. 따라서 현재 Top 매크로블록(610a)과 현재 Bottom 매크로블록(620a)의 가장 좌측 행의 각 블록들의 이웃블록 A는 이웃 매크로블록 페어(630a,640a) 중 Top 필드에 해당하는 Top 매크로필드(630a)에서 구해진다. 이를 수식으로 표현하면 도 2 및 앞의 수학식 1과 같다.Referring to FIG. 6, the
다시 도 2의 (a)를 참조하여 이웃블록 A를 구함에 있어, 현재 매크로블록이 필드 모드이고, 이웃 매크로블록이 프레임모드인 경우(경우 4)이다. 다시 말해, Mode[mb] = field이고, Mode[mb-2] = frame인 경우이다. Referring to (a) of FIG. 2 again, the neighboring block A is obtained when the current macroblock is the field mode and the neighboring macroblock is the frame mode (case 4). In other words, Mode [mb] = field and Mode [mb-2] = frame.
경우 4에서, 이웃블록 A가 속하는 매크로블록 mba는 mb-2-(mb%2)+(y/2)가 된다. 그리고 이웃 블록 A의 인덱스 (xa, ya)는 다음의 수학식 2와 같다. In Case 4, the macroblock mba to which the neighboring block A belongs is mb-2- (mb% 2) + (y / 2). And the index (xa, ya) of the neighboring block A is shown in the following equation (2).
if , if ,
else, else,
경우 4의 예를 도 7을 참조하여 설명한다. An example of case 4 will be described with reference to FIG. 7.
도 7은 현재 매크로블록이 mbaff이고, 현재 매크로블은 필드 모드이고 이웃 매크로블록은 프레임 모드인 경우 이웃블록을 선택하는 방법의 설명에 제공되는 도면이다. FIG. 7 is a diagram provided to explain a method of selecting a neighboring block when a current macroblock is mbaff, a current macroble is a field mode, and a neighboring macroblock is a frame mode.
도 7을 참조하면, 현재 매크로블록 페어(710a,720a)는 Top 매크로블록(710a)과 Bottom 매크로블록(720a)로 구성된다. 현재 매크로블록 페어(710a,720a)가 필드 모드이므로, 현재 Top 매크로블록(710a)의 가장 좌측 행의 각 블록들의 좌상점은 모두 Top 필드의 화소가 된다. 반대로 현재 Bottom 매크로블록(720a)의 가장 좌측 행의 각 블록들의 좌상점은 모두 Bottom 필드의 화소가 된다. 그리고 이웃 매크로블록 페어는 프레임 모드이므로, 이웃 매크로블록 페어의 매크로블록(730a,740a)은 각각 Top 필드 화소와 Bottom 필드 화소를 모두 포함한다. 따라서 현재 Top 매크로블록(710a)의 가장 좌측 행의 각 블록들의 이웃블록 A는 이웃 매크로블록 페어(730a,740a) 중 대응되는 Top 필드화소를 포함하는 매크로필드에서 구해진다. Referring to FIG. 7, the
또한, 현재 Bottom 매크로블록(720a)의 가장 좌측 행의 각 블록들의 이웃블록 A는 이웃 매크로블록 페어(730a,740a) 중 대응되는 Bottom 필드화소를 포함하는 매크로필드에서 구해진다. 도 7은 이러한 사항을 표시하고 있으며, 이를 수식으로 표현하면 수학식 2와 같게 된다.In addition, the neighbor block A of each block in the leftmost row of the
이번에는 도 2의 (b)를 참조하여 경우 1 및 2가 아닌 경우에서 이웃블록 B를 구하는 방법을 설명한다. 이웃블록 B를 구하는 방법은 크게 현재 매크로블록이 매크로블록 페어의 Top 매크로블록인지 Bottom 매크로블록인지에 따라 달라진다. This time, a method of obtaining a neighboring block B in cases other than
먼저, 이웃블록 B를 구하는 현재 매크로블록이 매크로블록 페어의 Top 매크로블록인 경우(경우 5)를 설명한다. 경우 5는 다시 현재 매크로블록 페어와 상측 매크로블록 페어가 모두 필드 모드인 경우(경우 5-1)와 그렇지 않은 경우(경우 5-2)로 다시 나누어진다. 다시 말해, Mode[mb] = field이고, Mode[mb-2N] = field인 경우와 그렇지 않은 경우이다. First, a case in which the current macroblock for which the neighboring block B is obtained is the top macroblock of the macroblock pair (case 5) will be described. Case 5 is further subdivided into cases in which both the current macroblock pair and the upper macroblock pair are in field mode (case 5-1) and otherwise (case 5-2). In other words, Mode [mb] = field, Mode [mb-2N] = field, and when it is not.
경우 5-1에서, 이웃블록 B가 속하는 매크로블록 mbb는 mb-2N 이 된다. 경우 5-2에서는, 이웃블록 B가 속하는 매크로블록 mbb는 mb-2N+1 이 된다. 그리고 이웃 블록 B의 인덱스 (xb, yb)는 모두 (x, 3)이 된다. In case 5-1, the macroblock mbb to which the neighboring block B belongs is mb-2N. In case 5-2, the macroblock mbb to which the neighboring block B belongs is mb-
경우 5의 예를 도 8을 참조하여 설명한다. An example of case 5 will be described with reference to FIG. 8.
도 8은 현재 매크로블록이 mbaff이고, 현재 매크로블록이 매크로블록 페어의 Top 매크로블록인 경우 이웃블록 B를 구하는 방법의 설명에 제공되는 도면이다. 8 is a diagram provided to explain a method of obtaining a neighboring block B when the current macroblock is mbaff and the current macroblock is a top macroblock of a macroblock pair.
도 8의 (a)는 현재 매크로블록 페어와 상측 매크로블록 페어가 모두 필드 모드인 경우(경우 5-1)이고, 도 8의 (b)는 현재 매크로블록 페어와 상측 매크로블록 페어가 모두 프레임 모드인 경우(경우 5-2)이다.FIG. 8A illustrates a case in which both the current macroblock pair and the upper macroblock pair are in the field mode (case 5-1), and FIG. 8B illustrates both the current macroblock pair and the upper macroblock pair in frame mode. (Case 5-2).
도 8의 (a)를 참조하면, 현재 매크로블록 페어가 필드 모드이므로 이웃블록 B를 구하고자 하는 Top 매크로블록(830a, 830b)의 최상측 열의 각 블록의 좌상점은 Top 필드 화소에 대응된다. 그리고 상측 매크로블록 페어(810, 820)도 필드모드이므로, Top 필드 화소에 대응되는 것은 상측 Top 매크로블록(810a, 810b)이다. 따라서 Top 매크로블록(830a, 830b)의 최상측 열의 각 블록의 이웃블록 B는 상측 Top 매크로블록(810a, 810b)에서 구해야 하므로, 이웃블록 B가 속하는 매크로블록 mbb는 mb-2N가 되고, 이웃 블록 B의 인덱스 (xb, yb)는 (x, 3)이 된다. Referring to FIG. 8A, since the current macroblock pair is in field mode, the upper left point of each block of the uppermost column of the top macroblocks 830a and 830b for which the neighbor block B is to be obtained corresponds to the top field pixel. Since the upper macroblock pairs 810 and 820 are also in the field mode, the upper top macroblocks 810a and 810b correspond to the top field pixels. Therefore, since the neighboring block B of each block of the top row of the top macroblocks 830a and 830b should be obtained from the upper top macroblocks 810a and 810b, the macroblock mbb to which the neighboring block B belongs becomes mb-2N and the neighboring block. The index (xb, yb) of B becomes (x, 3).
도 8의 (b)를 참조하면, 현재 매크로블록 페어가 프레임 모드이므로 이웃블록 B를 구하고자 하는 Top 매크로블록(860a, 860b)의 최상측 열의 각 블록의 좌상점은 Top 필드 화소에 대응된다. 그리고 상측 매크로블록 페어(840, 850)도 필드모드이므로, Top 필드 화소에 대응되는 것은 상측 Top 매크로블록(840a, 840b) 및 상측 Bottom 매크로브록(850a, 850b)에 모두 존재한다. 따라서 Top 매크로블록(860a, 860b)의 최상측 열의 각 블록의 이웃블록 B인 바로 상측 블록은 상측 Bottom 매크로블록(850a, 850b)에서 구해야 하므로, 이웃블록 B가 속하는 매크로블록 mbb는 mb-2N+1 이 되고, 이웃 블록 B의 인덱스 (xb, yb)는 (x, 3)이 된다. Referring to FIG. 8B, since the current macroblock pair is in frame mode, the upper left point of each block of the top column of the top macroblocks 860a and 860b for which the neighbor block B is to be obtained corresponds to the top field pixel. Since the upper macroblock pairs 840 and 850 are also in the field mode, corresponding to the top field pixels are present in both the upper top macroblocks 840a and 840b and the
마지막으로, 이웃블록 B를 구하는 방법 중, 현재 매크로블록이 현재 매크로블록 페어의 Bottom 매크로블록인 경우(경우 6)를 도 2의 (b)를 기초로 설명한다. Finally, in the method of obtaining the neighboring block B, the case in which the current macroblock is the bottom macroblock of the current macroblock pair (case 6) will be described based on FIG.
경우 6은, 현재 매크로블록이 mbaff 신택스(syntax) 구조이며, 현재 매크로블록 페어의 Bottom 매크로블록인 경우이다. 이웃블록 B를 구하고자 하는 현재 매크로블록이 Bottom 매크로블록인 경우, 현재 매크로블록의 픽쳐 모드가 중요하다. 즉, 현재 매크로블록의 픽쳐모드가 프레임 모드인 경우(경우 6-1)과 필드 모드인 경우(경우 6-2)에 따라 이웃 상측 매크로블록 mbb가 달라진다. Case 6 is a case in which the current macroblock has an mbaff syntax structure and is a Bottom macroblock of the current macroblock pair. If the current macroblock for which the neighbor block B is to be obtained is a bottom macroblock, the picture mode of the current macroblock is important. That is, the neighboring upper macroblock mbb is different according to the case where the picture mode of the current macroblock is the frame mode (case 6-1) and the field mode (case 6-2).
경우 6-1과 같이 현재 매크로블록이 프레임 모드인 경우, 이웃 블록 B를 포함하는 매크로블록은 현재 매크로블록 페어의 Top 매크로블록이 된다. When the current macroblock is in frame mode as in case 6-1, the macroblock including the neighboring block B becomes the top macroblock of the current macroblock pair.
경우 6-2와 같이 현재 매크로블록이 필드 모드인 경우 현재 매크로블록은 Bottom 필드 화소에 대응되므로, 이웃 블록 B는 경우 6-1과 같이 현재 매크로블록 페어의 Top 매크로블록에서 구할 수 없고, 상측 매크로블록 페어의 Bottom 매크로블록에서 구해야 한다. As in case 6-2, if the current macroblock is in field mode, the current macroblock corresponds to the bottom field pixel. Therefore, neighboring block B cannot be obtained from the top macroblock of the current macroblock pair as in case 6-1. It must be obtained from the bottom macroblock of the block pair.
따라서 경우 6-1에서, 이웃블록 B가 속하는 매크로블록 mbb는 mb-1 이 된다. 경우 6-2에서는, 이웃블록 B가 속하는 매크로블록 mbb는 mb-2N 이 된다. 그리고 이웃 블록 B의 인덱스 (xb, yb)는 모두 (x, 3)이 된다. Therefore, in case 6-1, the macroblock mbb to which the neighboring block B belongs is mb-1. In case 6-2, the macroblock mbb to which the neighboring block B belongs is mb-2N. The indexes (xb, yb) of the neighboring block B are all (x, 3).
경우 6의 예를 도 9를 참조하여 설명한다. An example of case 6 will be described with reference to FIG.
도 9는 현재 매크로블록이 mbaff이고, 현재 매크로블록이 매크로블록 페어의 Bottom 매크로블록인 경우 이웃블록 B를 구하는 방법의 설명에 제공되는 도면이다. FIG. 9 is a diagram provided to explain a method of obtaining a neighboring block B when the current macroblock is mbaff and the current macroblock is a bottom macroblock of a macroblock pair.
도 9의 (a)는 현재 매크로블록이 프레임 모드인 경우(경우 6-1)이고, 도 9의 (b)는 현재 매크로블록이 필드 모드인 경우(경우 6-2)이다.FIG. 9A illustrates a case in which the current macroblock is in frame mode (case 6-1), and FIG. 9B illustrates a case in which the current macroblock is in field mode (case 6-2).
도 9의 (a)를 참조하면, 현재 매크로블록이 프레임 모드이므로 이웃블록 B를 구하고자 하는 Bottom 매크로블록(930a, 930b)의 최상측 열의 각 블록의 좌상점은 Top 필드 화소에 대응된다. 그리고 현재 매크로블록 페어의 Top 매크로블록(920a, 920b)의 최하측 열의 각 블록이 구하고자 하는 이웃블록 B가 된다. Referring to FIG. 9A, since the current macroblock is a frame mode, the upper left point of each block of the uppermost column of the
도 9의 (b)를 참조하면, 현재 매크로블록이 필드 모드이므로 이웃블록 B를 구하고자 하는 Bottom 매크로블록(960a, 960b)의 최상측 열의 각 블록의 좌상점은 Bottom 필드 화소에 대응된다. 현재 매크로블록 페어의 Top 매크로블록(950a, 950b)는 Top 필드 화소에 대응되는 것이므로, 여기서는 이웃블록 B를 구할 수 없다. 따라서 상측 Bottom 매크로블록(930a, 930b)에서 이웃블록 B를 구해야 하므로, 도 9의 (b)와 같이 이웃블록 B가 속하는 매크로블록 mbb는 mb-2N 이 되고, 이웃 블록 B의 인덱스 (xb, yb)는 (x, 3)이 된다.Referring to FIG. 9B, since the current macroblock is a field mode, the upper left point of each block of the uppermost column of the
이상으로, 도 2를 기초로 본 발명에 따라 이웃블록 A 및 B를 구하는 방법을 설명하였으며, 이를 기초로 이웃정보제어부(130)와 버퍼부(150)의 동작을 다시 설명한다. In the above, the method for obtaining neighboring blocks A and B according to the present invention has been described with reference to FIG. 2, and the operation of the
이웃정보제어부(130)는, 도 2를 이용하여, 현재 매크로블록의 번호(mb)와 픽쳐모드, 이웃블록을 구하고자 하는 블록의 번호와 이웃하는 매크로블록의 모드를 가지고 해당하는 매크로 블록과 블록 번호를 쉽게 구할 수 있다. The
또한, 도 3 내지 도 9를 살펴보면, 현재 매크로블록의 가장자리 블록에 대해 이웃블록으로 선택되는 블록은 각각 매크로블록의 최우측 행과 최하측 열에 포함된 블록임을 알 수 있다. 3 to 9, it can be seen that blocks selected as neighboring blocks for the edge block of the current macroblock are blocks included in the rightmost row and the bottommost column of the macroblock, respectively.
따라서 버퍼부(150)는 MB데이터파서부(110)의 출력 중, 각 매크로블록의 최우측 행과 최하측 열에 해당하는 데이터만을 저장한다. 또한, 이웃블록 A, B는 최대 2번째 상위 매크로 블록 내에 속하므로, 버퍼부(150)는 최대 2N 개의 매크로블록에 대한 데이터를 저장한다. 즉, 효율적인 버퍼부(150)의 크기는 2N이며, 버퍼부(150)에 저장될 매크로블록의 데이터는 최우측 행과 최하측 열에 포함된 블록들 의 데이터만을 저장하게 된다. 다음의 도 10은 버퍼부(150)에 저장되는 데이터를 보인다. Therefore, the
도 10은 도 1의 버퍼부에 저장되는 데이터를 설명하는데 제공되는 도면이다. FIG. 10 is a view provided to explain data stored in a buffer unit of FIG. 1.
도 10의 (a) 내지 (c)의 매트릭스는 하나의 픽쳐로서, 가로방향으로 N개의 매크로블록을 포함한다.The matrixes of FIGS. 10A to 10C are one picture and include N macroblocks in the horizontal direction.
도 10의 (a)는 mbaff syntax 값이 '0'(즉, mbaff가 아닌 경우)일 때, (b)는 mbaff syntax 값이 '1'이며, 현재 디코딩하고 있는 매크로블록이 Top 매크로블록인 경우일 때, 그리고 (c)는 mbaff syntax 값이 '1'이며, 현재 디코딩하고 있는 매크로블록이 Bottom 매크로블록인 경우일 때 버퍼부(150)에 저장된 전체 데이터를 굵은 선으로 표시하고 있다. (A) of FIG. 10 illustrates a case where the mbaff syntax value is '0' (that is, not mbaff), and (b) indicates that the mbaff syntax value is '1', and the macroblock currently being decoded is the Top macroblock. And (c) indicates that when the mbaff syntax value is '1' and the macroblock currently being decoded is a bottom macroblock, the entire data stored in the
도 10을 참조할 경우, 버퍼부(150)는 현재 매크로블록의 디코딩이 완료될 경우, 매크로블록 번호 mb+1 인 매크로블록(다음 단계로 디코딩될 매크로블록)의 디코딩을 위해, 최대로 매크로블록 번호 mb-2N+1 부터 mb 까지의 매크로블록에 대응되는 데이터를 버퍼링하고, 매크로블록 번호 mb-2N+1 이전의 매크로블록 데이터를 삭제할 수 있다. 따라서 버퍼부(150)는 보다 적은 용량의 메모리를 사용하여 MB데이터파서부(110)가 디코딩하는데 필요한 데이터를 버퍼링할 수 있는 것이다.Referring to FIG. 10, when the decoding of the current macroblock is completed, the
본 발명은 방법, 디바이스 및 시스템으로 구현될 수 있다. 또한 본 발명이 컴퓨터 소프트웨어로 구현될 때는, 본 발명의 구성요소는 필요한 동작의 수행에 필요한 코드 세그먼트(code segment)로 대치될 수 있다. 프로그램이나 코드 세그먼트 는 마이크로프로세서에 의해 처리될 수 있는 매체에 저장될 수 있으며, 전송매체나 통신 네트워크를 통하여 반송파(carrier waves)와 결합된 컴퓨터 데이터로서 전송될 수 있다.The invention can be implemented in methods, devices and systems. In addition, when the present invention is implemented in computer software, the components of the present invention may be replaced with code segments necessary for performing necessary operations. The program or code segment may be stored in a medium that can be processed by a microprocessor and transmitted as computer data coupled with carrier waves via a transmission medium or communication network.
마이크로프로세서에 의해 처리될 수 있는 매체는 전자회로, 반도체 메모리 소자, 롬(ROM), 플래시(Flash) 메모리, EEPROM(Electrically Erasable Programmable Read-Only Memory), 플로피 디스크(Floppy Disk), 광학적 디스크, 하드(Hard) 디스크, 광섬유, 무선 네트워크 등과 같이 정보를 전달하고 저장할 수 있는 것을 포함한다. 또한, 컴퓨터 데이터는 전기적 네트워크 채널, 광섬유, 전자기장, 무선 네트워크 등을 통해 전송될 수 있는 데이터를 포함한다. The media that can be processed by the microprocessor include electronic circuits, semiconductor memory devices, ROMs, flash memory, electrically erasable programmable read-only memory (EEPROM), floppy disks, optical disks, and hard disks. (Hard) Includes the ability to transmit and store information such as disks, fiber optics, wireless networks, and the like. Computer data also includes data that can be transmitted over electrical network channels, optical fibers, electromagnetic fields, wireless networks, and the like.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the above-described specific embodiment, the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be individually understood from the technical spirit or the prospect of the present invention.
이상에서 상세히 설명한 바와 같이 본 발명에 따른 이웃 블록정보 저장 및 검색방법에 의하면, H.264/AVC 표준으로 압축된 비트스트림에서 매크로블록(Macroblock)을 디코딩하는 과정에 필요한 이웃 정보를 효율적으로 관리하고 검 색할 수 있다. As described in detail above, according to the method of storing and retrieving neighboring block information according to the present invention, it is possible to efficiently manage neighboring information necessary for decoding a macroblock in a bitstream compressed by the H.264 / AVC standard. You can search.
본 발명의 방법은, 비트스트림으로부터 매크로블록 데이터를 파싱(Parsing)하는데 필요한 데이터만을 버퍼링하도록 함으로써 버퍼를 효율적으로 관리할 수 있다. 다시 말해, 본 발명은 매크로블록 데이터를 파싱하는데 있어, 이웃블록 A, B, C, D가 모두 필요한 것이 아님을 밝히고, 이웃블록 A와 B만으로 매크로블록 데이터를 버퍼링하고 관리할 수 있게 한다. The method of the present invention can efficiently manage the buffers by buffering only the data necessary for parsing the macroblock data from the bitstream. In other words, the present invention reveals that neighboring blocks A, B, C, and D are not all necessary for parsing macroblock data, and buffer and manage macroblock data using only neighboring blocks A and B.
본 발명에 의해 제안된 간단한 검색 알고리즘에 기초하여 보다 효율적이고 개선된 디코딩 성능을 기대할 수 있다.Based on the simple search algorithm proposed by the present invention, more efficient and improved decoding performance can be expected.
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060079363A KR101325795B1 (en) | 2006-08-22 | 2006-08-22 | Method and Apparatus for Decoding Macroblock Data in H.264/AVC |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060079363A KR101325795B1 (en) | 2006-08-22 | 2006-08-22 | Method and Apparatus for Decoding Macroblock Data in H.264/AVC |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080017764A true KR20080017764A (en) | 2008-02-27 |
KR101325795B1 KR101325795B1 (en) | 2013-11-05 |
Family
ID=39385033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060079363A KR101325795B1 (en) | 2006-08-22 | 2006-08-22 | Method and Apparatus for Decoding Macroblock Data in H.264/AVC |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101325795B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101709754B1 (en) | 2016-05-16 | 2017-02-23 | 베니트엠 주식회사 | VAPOR SPLITTER and METHOD FOR ADJUSTING VAPOR SPLIT RATIO |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1009913A (en) * | 1910-06-29 | 1911-11-28 | Francis J W Maguire | Clamp. |
KR100647295B1 (en) * | 2004-11-10 | 2006-11-23 | 삼성전자주식회사 | Neighbor information processing apparatus and method in the video decoder and recording medium storing a program to implement thereof |
KR101104828B1 (en) * | 2004-12-09 | 2012-01-16 | 삼성전자주식회사 | Motion vector operation apparatus and method thereof |
-
2006
- 2006-08-22 KR KR1020060079363A patent/KR101325795B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR101325795B1 (en) | 2013-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210076051A1 (en) | Coding apparatus, coding method, decoding apparatus, and decoding method | |
US11647190B2 (en) | Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and program | |
US10110899B2 (en) | Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program | |
US9838714B2 (en) | Apparatus and method for encoding and decoding moving picture using adaptive scanning | |
US20170280162A1 (en) | Constrained block-level optimization and signaling for video coding tools | |
KR101534416B1 (en) | Video coding using intra-prediction | |
EP2820845B1 (en) | Scan-based sliding window in context derivation for transform coefficient coding | |
US9813716B2 (en) | Video encoder and video encoding method | |
CN110650343B (en) | Image encoding and decoding method and device, electronic equipment and system | |
EP1879401A1 (en) | Dynamic image encoding method, dynamic image decoding method, and device thereof | |
EP3080988B1 (en) | Parameter derivation for entropy coding of a syntax element | |
WO2012154847A1 (en) | Filtering blockiness artifacts for video coding | |
CN115022634A (en) | Method, device and medium for dividing blocks | |
CN113647104A (en) | Inter prediction in geometric partitioning with adaptive region number | |
US20090304078A1 (en) | Variable length decoder and animation decoder therewith | |
JP5346584B2 (en) | Decoding device, decoding method, decoding program, and integrated circuit | |
JP2014096638A (en) | Image encoder, image encoding method, image encoding program, image decoder, image decoding method and image decoding program | |
US20220279179A1 (en) | Method and device for high-level image segmentation and image encoding/decoding | |
JP2024023856A (en) | Image processing apparatus and method | |
US10531125B2 (en) | Video compression method and video compressor | |
KR101325795B1 (en) | Method and Apparatus for Decoding Macroblock Data in H.264/AVC | |
US20060227876A1 (en) | System, method, and apparatus for AC coefficient prediction | |
JP2018125882A (en) | Image encoding device, image encoding method and program, image decoding device, and image decoding method and program | |
CN109587502B (en) | Method, device, equipment and computer readable storage medium for intra-frame compression | |
US9219926B2 (en) | Image encoding apparatus, image encoding method and program, image decoding apparatus, image decoding method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |