KR100235487B1 - Half-pel compensator of a motion compensator - Google Patents
Half-pel compensator of a motion compensator Download PDFInfo
- Publication number
- KR100235487B1 KR100235487B1 KR1019970040979A KR19970040979A KR100235487B1 KR 100235487 B1 KR100235487 B1 KR 100235487B1 KR 1019970040979 A KR1019970040979 A KR 1019970040979A KR 19970040979 A KR19970040979 A KR 19970040979A KR 100235487 B1 KR100235487 B1 KR 100235487B1
- Authority
- KR
- South Korea
- Prior art keywords
- pixel
- line
- vertical
- compensator
- pixel data
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 움직임 보상장치의 반화소 보상기에 관한 것으로서, n×n 블럭단위로 움직임 보상하는데 있어서, 수평라인으로 n+1 화소 데이터를 병렬 입력받아 수평축 반화소 플래그(H_half_flag)에 따라 수평축 반화소 보상 계산하여 보상된 n 화소 데이터 혹은 원래 입력된 n 화소 데이터를 선택적으로 출력하는 수평축 반화소 보상부(632)와; 상기 수평축 반화소 보상부(632)로부터 제공된 n 화소 데이터를 입력받아 수직라인 선택신호(Line_sel)에 따라 디멀티플렉싱하여 기수 라인 n 화소들 혹은 우수 라인 n 화소들을 번갈아 출력하는 수직라인 스위칭부(634); 상기 수직라인 스위칭부(634)로부터 제공된 우수 라인 n 화소 데이터와 기수 라인 n 화소 데이터를 이용하여 수직축 반화소 보상을 계산하여 상기 수직축 반화소 플래그(V_half_flag)에 따라 상기 수직라인 스위칭부(634)로부터 제공된 기수 라인 n 화소 혹은 수직축 반화소 보상된 n 화소 데이터를 택일적으로 출력하는 수직축 반화소 보상부(636); 및 수직 라인 선택신호(Line_sel)에 따라 상기 우수 라인 n 화소 혹은 상기 수직축 반화소 보상부(636)로부터 출력된 n 화소 데이터를 선택적으로 병렬 출력하는 다중화부(638)를 포함하여 구성된다. 본 발명은 수평축 반화소 플래그 및. 수직축 반화소 플래그 신호에 따라 블럭단위로 반화소 보상을 효율적으로 처리할 수 있으며, 그 하드웨어를 간단히 구현할 수 있는 효과가 있다.The present invention relates to a half-pixel compensator of a motion compensator, wherein, in motion compensation in n × n block units, horizontal axis half-pixel compensation is performed according to a horizontal half-pixel flag (H_half_flag) by receiving n + 1 pixel data in parallel on a horizontal line. A horizontal half-pixel compensator 632 for selectively outputting the calculated n pixel data or the originally input n pixel data; The vertical line switching unit 634 which receives the n pixel data provided from the horizontal half-pixel compensation unit 632 and demultiplexes the odd line n pixels or the even line n pixels according to the vertical line selection signal Line_sel. ; The vertical line half pixel compensation is calculated by using the even line n pixel data and the odd line n pixel data provided from the vertical line switching unit 634, and the vertical line switching unit 634 according to the vertical half pixel flag V_half_flag. A vertical half pixel compensator 636 for alternatively outputting the provided odd line n pixels or vertical axis half pixel compensated n pixel data; And a multiplexer 638 for selectively outputting the even line n pixels or the n pixel data output from the vertical half-pixel compensator 636 according to a vertical line selection signal Line_sel. The present invention relates to a horizontal half-pixel flag. According to the vertical half-pixel flag signal, half-pixel compensation can be efficiently processed in units of blocks, and the hardware can be easily implemented.
Description
본 발명은 영상 복호화기(video decoder)에서 역 이산여현변환(IDCT: Inverse Discrete Cosine Transform)된 영상 데이터와 움직임 벡터(MV: Motion Vector)를 이용하여 움직임 보상(MC: Motion Compensation)하는 움직임 보상 장치의 수평축 및 수직축 반화소 보상을 수행하는 반화소 보상기에 관한 것이다.The present invention provides a motion compensation apparatus for performing motion compensation (MC) using video data obtained by inverse discrete cosine transform (IDCT) and a motion vector (MV) in a video decoder. It relates to a half-pixel compensator for performing the horizontal and vertical axis half-pixel compensation of.
일반적으로 동영상 압축 방법으로, 특히 MPEG-2 영상 압축 기법의 시간 방향의 중복성은 이동보상형 예측기법(motion compensated prediction)으로 제거하며, 이동보상 예측을 위한 움직임 추정과 보상은 현재 입력되는 영상의 기준 매크로블럭과 과거 영상의 검색영역내에서 기준 매크로블럭과의 각 대응 매크로블럭을 비교하여 각 화소의 차이를 구하고, 그 중 가장 작은 값을 가지는 대응 매크로블럭에 대한 상대적인 위치를 움직임 벡터(MV)로 생성한다. 움직임 벡터를 추정하는 과정은 정화소(integer-pel) 단위의 움직임 벡터(MV)를 추정하는 단계와, 반화소(half-pel) 단위의 움직임 벡터를 추정하는 과정으로 이루어진다.In general, the video compression method, in particular, the temporal redundancy in the MPEG-2 image compression technique is removed by motion compensated prediction, and motion estimation and compensation for the motion compensation prediction are based on the current input image. Compare each macroblock with the reference macroblock in the search area of the macroblock and the past image to find the difference between each pixel, and place the relative position of the corresponding macroblock having the smallest value as the motion vector (MV). Create The process of estimating a motion vector includes estimating a motion vector (MV) in units of integer-pels and estimating a motion vector in units of half-pels.
부호기에서는 상기 움직임 벡터를 부호화하여 전송하고, 그 대응 매크로블럭과 기준 메크로블럭간의 각 화소의 차이를 이산여현변환(DCT), 양자화(Q), 및 가변길이 부호화(VLC) 과정을 거쳐서 전송하는 것이다. 복호기에서는 전송된 움직임 벡터를 가지고 움직임 보상을 수행하여 원래 영상을 복원한다.The encoder encodes and transmits the motion vector, and transmits the difference between each pixel between the corresponding macroblock and the reference macroblock through a discrete cosine transform (DCT), quantization (Q), and variable length coding (VLC) processes. . The decoder restores the original image by performing motion compensation with the transmitted motion vector.
도 1 은 일반적인 MPEG-2 영상 복호화기의 구성도로서, 영상 복호화기는 영상 부호화기(도시하지 않음)로부터 전송된 부호화된 비트 스트림은 버퍼(10)를 통해 버퍼링된 비트 스트림으로 출력되고, 역다중화 및 가변길이 복호블록(20)은 버퍼링된 비트 스트림을 입력받아 역다중화 및 가변길이 복호화(VLD: Variable Length Decoding)를 수행하여 양자화 레벨(Quantization Level), 이산여현변환 모드(DCT mode), 및 움직임 보상에 관한 정보를 출력한다. 역양자화 블록(30)은 상기 역다중화 및 가변길이 복호블록(20)으로부터 제공된 양자화 레벨에 따라 가변길이 복호화된 영상 데이터를 역양자화시키고, 역 이산여현 변환블록(40)은 상기 역다중화 및 가변길이 복호블록(20)으로부터 출력된 이산여현변환 모드 정보(필드 DCT 모드 인지 프레임 DCT 모드 인지에 대한 정보)에 따라 역양자화된 영상 데이터에 대해 역이산여현변환을 수행한다. 움직임 보상 블록(50)은 상기 역다중화 및 가변길이 복호블록(20)으로부터 제공된 움직임 보상정보(움직임 벡터(MV) 및 각종 플래그(flag))에 따라 상기 역 이산여현 변환블록(40)으로부터 역 이산여현변환된 영상 데이터를 입력받아 움직임 보상을 수행한다. 선택 블록(60)은 인트라 프레임(intra frame)인 경우는 상기 역 이산여현 변환블록(40)으로부터 제공된 영상 데이터를 선택하여 출력하고, 인터 프레임(inter frame)인 경우는 상기 움직임 보상블록(50)으로부터 제공된 움직임 보상된 영상 데이터를 선택하여 출력한다.1 is a block diagram of a typical MPEG-2 video decoder, in which an encoded bit stream transmitted from an image encoder (not shown) is output as a buffered bit stream through a
영상 복호화기(video decoder)에서 움직임 보상 블록(50)은 연산량과 데이터량이 많아서, 이에 따른 하드웨어 복잡성이 문제시 되고 있는 바, 하드웨어 복잡도를 줄이면서 효율적으로 움직임 보상 처리할 수 있어야만 한다. 특히, 반화소 추정된 블록을 위해 반화소 보상을 처리할 수 있는 장치가 필요하다.Since the
이에, 본 발명은 상기한 바와 같은 필요성을 충족시키기 위해 안출된 것으로, 수평축 반화소 플래그 신호 및 수직축 반화소 플래그 신호에 따라 블럭단위로 반화소 보상을 처리하는 움직임 보상 장치의 반화소 보상기를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to meet the necessity as described above, and provides a half-pixel compensator of a motion compensation device for processing half-pixel compensation in units of blocks according to a horizontal half-pixel flag signal and a vertical half-pixel flag signal. The purpose is.
상기와 같은 목적을 달성하기 위한 본 발명은 n×n 블럭단위로 움직임 보상을 하는 움직임 보상 장치에 있어서, 블럭의 수평라인으로 n+1 화소 데이터(블럭화소 n개와 블럭의 마지막 화소에 인접한 화소 1개)를 병렬 입력받아 수평축 반화소 플래그(H_half_flag)에 따라 수평축 반화소 보상 계산하여 보상된 n 화소 데이터 혹은 원래 입력된 블럭의 n 화소 데이터를 선택적으로 병렬 출력하는 수평축 반화소 보상부, 상기 수평축 반화소 보상부로부터 제공된 n 화소 데이터를 입력받아 수직라인 선택신호(Line_sel)에 따라 디멀티플렉싱하여 기수 라인 n 화소들 혹은 우수 라인 n 화소들을 번갈아 병렬 출력하는 수직라인 스위칭부, 상기 수직라인 스위칭부로부터 제공된 우수 라인 n 화소 데이터와 기수 라인 n 화소 데이터를 이용하여 수직축 반화소 보상을 계산하고, 상기 수직축 반화소 플래그(V_half_flag)에 따라 상기 수직라인 스위칭부로부터 제공된 기수 라인 n 화소 혹은 수직축 반화소 보상된 n 화소 데이터를 택일적으로 병렬 출력하는 수직축 반화소 보상부, 및 수직 라인 선택신호(Line_sel)에 따라 상기 우수 라인 n 화소 혹은 상기 수직축 반화소 보상부로부터 출력된 n 화소 데이터를 선택적으로 병렬 출력하는 다중화부를 포함하여 구성되어 있다.In order to achieve the above object, the present invention provides a motion compensation apparatus for performing motion compensation in units of n × n blocks, wherein n + 1 pixel data (n blocks of pixels and one pixel adjacent to the last pixel of the block) are arranged in a horizontal line of the block. Horizontal half-pixel compensation unit for selectively outputting the compensated n pixel data or the n pixel data of the originally input block by calculating horizontal half pixel compensation according to the horizontal half pixel flag (H_half_flag), and the horizontal half half A vertical line switching unit which receives n pixel data provided from the pixel compensator and demultiplexes the odd line n pixels or even line n pixels in parallel according to a vertical line selection signal Line_sel, and is provided from the vertical line switching unit Calculate vertical half-pixel compensation using even line n pixel data and odd line n pixel data A vertical half pixel compensation unit for selectively outputting the odd line n pixels or vertical half pixel compensated n pixel data provided from the vertical line switching unit according to the vertical half pixel flag V_half_flag, and a vertical line selection signal And a multiplexer for selectively outputting n-pixel data output from the even line n pixels or the vertical axis half-pixel compensator in parallel according to (Line_sel).
도 1 은 일반적인 MPEG-2 영상 복호화기의 개념 블록도,1 is a conceptual block diagram of a typical MPEG-2 video decoder;
도 2 는 본 발명에 따른 반화소 보상기가 포함된 움직임 보상장치의 전체 구성도,2 is an overall configuration diagram of a motion compensation device including a half-pixel compensator according to the present invention;
도 3 은 본 발명에 따른 움직임 보상장치의 반화소 보상기에 대한 블록도,3 is a block diagram of a half-pixel compensator of a motion compensation device according to the present invention;
도 4 는 본 발명의 작용을 설명하기 위한 매크로블록의 구조도,4 is a structural diagram of a macroblock for explaining the operation of the present invention;
도 5 는 도 3의 수직축 반화소 보상을 설명하기 위한 타이밍도이다.FIG. 5 is a timing diagram for describing the vertical half-pixel compensation of FIG. 3.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
100: 움직임 보상 제어부 200: 메모리 제어부100: motion compensation controller 200: memory controller
300: 메모리 400: 버스 제어부300: memory 400: bus control unit
500: 공통 버스 600: 움직임 보상부500: common bus 600: motion compensation unit
610: 입력 버퍼 630: 반화소 보상부610: input buffer 630: half-pixel compensation unit
632: 수평축 반화소 보상부 634: 수직 라인 스위칭부632: horizontal axis half-pixel compensation unit 634: vertical line switching unit
636: 수직축 반화소 보상부 638: 다중화부636: vertical axis half-pixel compensation unit 638: multiplexer
650: 합산부 670: 출력 버퍼650: summer 670: output buffer
A1∼A8, C1∼C8: 가산기 B1∼B8, D1∼D8: 나눗셈기A1 to A8, C1 to C8: Adders B1 to B8, D1 to D8: Dividers
MUX1∼MUX24: 2-1 멀티플렉서 DEMUX1∼DEMUX8: 1-2 디멀티플렉서MUX1 to MUX24: 2-1 Multiplexer DEMUX1 to DEMUX8: 1-2 Demultiplexer
ODD1∼ODD8: 기수 라인용 버퍼 EVN1∼EVN8: 우수 라인용 버퍼ODD1-ODD8: odd line buffer EVN1-EVN8: even line buffer
이하, 첨부된 도면을 참조하여 본 발명에 대해 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail with respect to the present invention.
우선 본 발명의 이해를 돕기 위하여 움직임 보상 장치에 대한 전체 구성도를 도 2를 참조하여 설명하고자 한다. 도 2의 움직임 보상 장치는 본 발명자에 의해 제안되어 대한 민국 특허 출원 제 97-11852∼97-11854, 97-11861 호에 기재되어 있으며, 본 장치는 하드웨어의 복잡도를 줄이고, 외부 연결 칩과의 원할한 작용을 위해 블럭(block)단위로 움직임 보상을 수행하도록 되어 있다.First, an overall configuration diagram of a motion compensation device will be described with reference to FIG. 2 to help understanding of the present invention. The motion compensation device of FIG. 2 is proposed by the present inventors and described in Korean Patent Application Nos. 97-11852 to 97-11854, 97-11861, which reduce the complexity of the hardware and the desired connection with externally connected chips. It is designed to perform motion compensation on a block basis for one action.
도 2 는 본 발명에 따른 움직임 반화소 보상기를 포함한 움직임 보상 장치의 전체 구성도로서, 움직임 보상 장치는 움직임 보상 제어부(100)와, 메모리 제어부(200), 메모리(300), 버스 제어부(400), 공통 버스(500), 및 움직임 보상부(600)로 구성되어 있고, 상기 움직임 보상부(600)는 입력 버퍼(610)와, 반화소 보상부(630), 합산부(650), 및 출력버퍼(670)로 구성되어 있다.2 is an overall configuration diagram of a motion compensation device including a motion half-pixel compensator according to the present invention, wherein the motion compensation device includes a
움직임 보상 제어부(100)는 가변길이 복호블록(도 1 참조: 20)으로부터 움직임 벡터(MV)와 각종 플래그(flag)를 입력받아 움직임 보상 과정을 제어하기 위해 타이밍을 조절하고, 여러가지 제어신호들을 발생하여 제공한다. 메모리 제어부(200)는 가변길이 복호블록(도 1 참조: 20)으로부터 움직임 벡터(MV)와 플래그(flag)를 입력받아 상기 메모리(300)의 리드/라이트 어드레스 신호 및 메모리 제어 신호를 발생한다. 메모리(300)는 상기 메모리 제어부(200)로부터의 어드레스 신호에 따라 보상된 픽셀 데이터를 읽거나 쓰는 역할을 하며, 네 개분의 프레임(I-픽쳐, B-픽쳐, P-픽쳐등)을 저장하도록 되어 있다.The
공통 버스(500)는 상기 버스 제어부(400)의 버스 제어신호에 따라 상기 메모리(300)와 움직임 보상부(600) 상호간의 입출력 데이터를 전송하며, 이 공통 버스(500)의 크기(size)는 12픽셀(pel)이다. 움직임 보상부(600)는 상기 움직임 보상 제어부(100)의 움직임 보상 제어신호에 따라 상기 공통 버스(500)로부터 입력된 픽셀 데이터와 역 이산여현변환블럭(도 1 참조: 40)으로부터 입력된 IDCT 변환된 픽셀 데이터를 이용하여 움직임 보상을 수행한다.The
여기서, 움직임 보상부(600)의 내부에 입력버퍼(610)와 출력버퍼(670)를 구비한 이유는 상기 메모리(300)와 움직임 보상부(600)의 동작 속도가 다르기 때문이다. 구체적으로는 상기 메모리(300)는 81MHz 로 동작하고, 움직임 보상부(600)는 54MHz 로 동작하기 때문이다.The reason why the
입력버퍼(610)는 블럭의 시작을 알리는 신호(block_start)에 따라 상기 메모리(300)로부터의 12 픽셀단위의 화소 데이터를 상기 공통 버스(500)를 통해 입력받아 인터페이싱을 수행한 후, 9 픽셀 단위로 변환하여 출력한다. 입력 버퍼(610)는 블록단위로 데이터를 처리하도록 구현할 수 있다.The
반화소 보상부(630)는 반화소 보상에 관한 제어 신호에 따라 상기 입력버퍼(610)로부터의 9 픽셀 데이터를 수평축 반화소 보상 혹은 수직축 반화소 보상을 수행하여, 최종적으로 반화소 보상하지 않은 (정화소,정화소), 수평축 반화소 보상만 처리한 (반화소,정화소), 수직축 반화소 보상만 처리한 (정화소, 반화소), 혹은 수평축과 수직축 반화소 보상을 모두 처리한 (반화소, 반화소)를 2 픽셀 단위로 출력한다.The
합산부(650)는 블럭단위로 필드 DCT 인지 프레임 DCT 인지를 알리는 신호(dct_type) 및 움직임 보상 형태가 수행되었는 지를 알리는 신호(mc_type)등에 따라 상기 반화소 보상부(630)로부터의 2 픽셀 데이터와 역이산여현변환부(도 1 참조: 40)의 2 픽셀 데이터를 합산하여 DPCM 복원시킨 후 2픽셀 단위로 출력한다.The
출력버퍼(670)는 상기 합산부(650)의 출력 2 픽셀 데이터를 상기 메모리(300)에 저장하기 위해 상기 공통 버스(500)로 12 픽셀 단위로 출력한다. 이때, 출력 버퍼(670)는 픽셀 데이터를 매크로블록 단위로 처리하도록 구현할 수 있다.The
도 3 은 본 발명에 따른 움직임 보상장치의 반화소 보상기에 대한 블록도로서, 본 발명의 반화소 보상기(630)는 수평축 반화소 보상부(632)와, 수직라인 스위칭부(635), 수직축 반화소 보상부(636), 및 다중화부(638)로 구성되어 있다. 8×8블럭 단위로 수평축 반화소 보상 또는 수직축 반화소 보상을 수행한다.3 is a block diagram of a half-pixel compensator of a motion compensator according to the present invention. The half-
수평축 반화소 보상부(632)는 수평라인으로 9 화소 데이터(P0∼P8)를 병렬 입력받아 이웃한 2개 화소값을 가산하는 8개의 가산기(A1∼A8)와, 상기 가산기(A1∼A8)의 합산값을 2로 나누어 평균값을 구하는 8개의 나눗셈기(B1∼B8), 및 수평축 반화소 플래그(H_half_flag)에 따라 상기 8개의 나눗셈기(B1∼B8)로부터 출력된 수평축 반화소 보상된 8 화소 데이터 혹은 원래 입력된 8 화소 데이터(P0∼P7)를 선택적으로 출력하는 8개의 2-1 멀티플렉서(MUX1∼MUX8)가 병렬 연결되어 있다.The horizontal half-
수직라인 스위칭부(634)는 상기 수평축 반화소 보상부(632)로부터 제공된 8 화소 데이터를 병렬 입력받아 수직라인 선택신호(Line_sel)에 따라 디멀티플렉싱하여 기수 라인 8 화소들 혹은 우수 라인 8 화소들을 번갈아 출력한다. 즉, 수직라인 스위칭부(635)는 2클럭을 주기로 하여 0,1 을 반복적으로 발생하는 수직 라인 선택 신호(Line_sel)로 제공받아 8화소 데이터를 디멀티플렉싱하는 8개의 1입력-2출력 디멀티플렉서(DEMUX1∼DEMUX8)와, 상기 각 디멀티플렉서(DEMUX1∼DEMUX8)로부터 출력된 기수 라인 화소 데이터를 래치하는 8개의 기수 라인용 버퍼(ODD1∼ODD8) 및, 상기 각 디멀티플렉서(DEMUX1∼DEMUX8)로부터 출력된 우수 라인 화소 데이터를 래치하는 8개의 우수 라인용 버퍼(EVN1∼EVN8)로 구성되어 있다. 그리고, 상기 기수 라인용 버퍼(ODD1∼ODD8)와 우수 라인용 버퍼(EVN1∼EVN8)는 2클럭을 주기로 처음 반주기동안은 로우(Low)로 발생되고 나머지 반주기동안은 하이(High)로 발생되는 인에이블 신호를 제공받고, 상기 기수 라인용 버퍼(ODD1∼ODD8)는 인에이블 신호의 로우상태에서 인에이블되어 입력된 데이터를 래치하여 출력하고, 상기 우수 라인용 버퍼(EVN1∼EVN8)는 인에이블 신호의 하이상태에서 인에이블되어 입력된 데이터를 래치하여 출력한다.The vertical
수직축 반화소 보상부(636)는 상기 수직라인 스위칭부(634)로부터 제공된 우수 라인 8 화소 데이터와 기수 라인 8 화소 데이터를 각각 입력받아 수직축으로 이웃한 2개 화소값을 가산하는 8개의 가산기(C1∼C8)와, 상기 가산기(C1∼C8)의 합산값을 2로 나누어 평균값을 구하는 8개의 나눗셈기(D1∼D8)가 병렬로 구성되어 있고, 상기 수직축 반화소 플래그(V_half_flag)에 따라 상기 수직라인 스위칭부(634)로부터 제공된 상기 기수 라인 8 화소 데이터 혹은 상기 나눗셈기(D1∼D8)로부터 제공된 수직축 반화소 보상된 8 화소 데이터를 선택하여 병렬 출력한다.The vertical half-
다중화부(638)는 수직라인 선택신호(Line_sel)에 따라 상기 수직라인 스위칭부(634)의 우수 라인 8 화소 혹은 상기 수직축 반화소 보상부(636)로부터 출력된 8 화소 데이터를 선택적으로 출력하는 8개의 2입력 1출력 멀티플렉서(MUX17∼MUX24)가 병렬로 구성되어 있다.The
이하, 상기와 같은 구성을 갖는 본 발명의 반화소 보상 장치에 대한 작용 및 효과를 자세히 설명하기로 한다.Hereinafter, the operation and effect of the half-pixel compensation device of the present invention having the configuration as described above will be described in detail.
도 4는 매크로블록 구조도면으로, 4:2:0 매크로블록 구조도를 도시하였다. (a)는 16×16 휘도신호(Y)에 대한 포맷도이고, (b)와(c)는 8×8 색차신호(Cb, Cr)에 대한 포맷도이다. 휘도 성분(Y)에 대해 대응되는 색차 성분의 비율에 따라 결정된 매크로블록구조는 4:2:0인 경우 Y 는 8×8 블럭 4개, Cb와 Cr은 8×8 블럭을 각각 1개씩 갖는다. 4:2:2의 경우 Cb와 Cr 은 8×8 블럭을 각각 2개씩 갖으며, 4:4:4의 경우 Cb와 Cr은 8×8 블록을 각각 4개씩 갖는다. 원칙적으로 매크로블럭단위로 이동보상예측, DCT 변환, 양자화 스텝 사이즈의 조정이 이루어지며, 각 블럭단위로 부호화된 데이터에 대한 전송여부를 매크로블럭단위로 판정한다.4 is a macroblock structure diagram, which shows a 4: 2: 0 macroblock structure diagram. (a) is a format diagram for the 16x16 luminance signal Y, and (b) and (c) are format diagrams for the 8x8 color difference signals Cb and Cr. The macroblock structure determined according to the ratio of the corresponding chrominance component to the luminance component Y is 4: 2: 0, where Y has four 8x8 blocks, and Cb and Cr each have one 8x8 block. In the case of 4: 2: 2, Cb and Cr each have two 8x8 blocks, and in 4: 4: 4, Cb and Cr each have four 8x8 blocks. In principle, the motion compensation prediction, the DCT conversion, and the quantization step size are adjusted in units of macroblocks, and whether the data encoded in each block unit is transmitted is determined in units of macroblocks.
본 발명의 실시예는 4:2:0 매크로블럭을 8×8블럭 단위로 반화소 보상 처리하는 것에 대해 설명하고자 한다.An embodiment of the present invention will be described for half-pixel compensation processing of a 4: 2: 0 macroblock in 8 × 8 block units.
도 4를 참조하면, (a)의 휘도 신호 16×16 블럭은 32개의 작은 박스로 구분되어 있으며, 각 박스에는 기수라인 4개 화소와 우수라인 4개 화소가 포함되어 있다. (b)와 (C)의 색차 신호 8×8 블럭 역시 32개의 작은 박스로 구분되어 있으며, 각 박스에는 라인별로 2개 화소가 포함되어 있다.Referring to FIG. 4, the luminance signal 16x16 block of (a) is divided into 32 small boxes, and each box includes four odd-numbered lines and four even-numbered lines. The color difference signal 8x8 blocks in (b) and (C) are also divided into 32 small boxes, and each box includes two pixels for each line.
도 4를 참조하면, (a)의 휘도 신호 16×16 블럭은 32개의 작은 박스로 구분되어 있으며, 각 박스에는 기수라인 4개 화소와 우수라인 4개 화소가 포함되어 있다. (b)와 (C)의 색차 신호 8×8 블럭 역시 32개의 작은 박스로 구분되어 있으며, 각 박스에는 라인별로 2개 화소가 포함되어 있다.Referring to FIG. 4, the luminance signal 16x16 block of (a) is divided into 32 small boxes, and each box includes four odd-numbered lines and four even-numbered lines. The color difference signal 8x8 blocks in (b) and (C) are also divided into 32 small boxes, and each box includes two pixels for each line.
휘도 신호는 수평축으로 9화소 단위로 입력되어 반화소 보상되고, 색차 신호는 수평축으로 5화소 단위로 입력되어 반화소 보상된다. 이는 4:2:0 의 경우 8×8 블럭단위의 휘도신호에 대한 색차 신호블록은 4×4블럭에 해당하기 때문이며, 만약, 4:4:4 의 경우라면, 색차 신호 역시 8×8블럭단위로 반화소 보상처리 되어야 한다.The luminance signal is input in units of 9 pixels on the horizontal axis and half pixel compensated, and the color difference signal is input in units of 5 pixels on the horizontal axis and half pixel compensated. This is because the chrominance signal block for a luminance signal of 8 × 8 block units corresponds to 4 × 4 blocks in the case of 4: 2: 0. If 4: 4: 4, the chrominance signal block also uses 8 × 8 blocks. The half-pixel compensation must be done.
반화소 보상처리 되기 위해 입력되는 한 블럭은 점선으로 나타낸 화소들로서, 원래 8×8 화소 블럭에다가 수직열로 P8 이 추가되고, 수평라인으로 L9 이 추가되어 평균값을 구하는 데 이용된다.One block to be input for half-pixel compensation is pixels indicated by dotted lines. P8 is added to a vertical column and L9 is added to a horizontal line to obtain an average value.
상기 수평축 반화소 보상부(632)는 수평라인으로 9 화소 데이터(P0∼P8)를 병렬 입력받아 이웃한 2개 화소값을 가산한 후, 가산된 값을 2로 나누어 평균값을 구하여 정화소에 대한 반화소값을 구한다. 즉, 정화소 P0과 P1에 대한 반화소 P0.5, 정화소 P1과 P2에 대한 반화소 P1.5 등을 구하는 등 수평축 반화소값을 구하여 8개의 반화소값을 병렬 출력한다. 그리고 나서, 8개의 멀티플렉서(MUX1∼MUX8)는 수평축 반화소 플래그(H_half_flag)에 따라 플래그값이 "0"이면 입력된 블럭의 정화소 데이터(P0∼P7)를 선택하고, 플래그값이 "1"이면 상기 반화소 보상된 8 화소 데이터(P0.5, P1.5,…)를 선택하여 출력한다.The horizontal half-
상기 수직라인 스위칭부(634)는 2클럭 주기로 '0','1'을 반복하여 발생하는 수직라인 선택신호(Line_sel)에 따라 입력된 데이터를 디멀티플렉싱하는 데, 수직라인 선택신호가 '0'일 때는 기수 라인용 버퍼(ODD1∼ODD8)의 입력선과 스위칭연결하고, '1'일 때는 우수 라인용 버퍼(EVN1∼EVN8)의 입력선과 스위칭연결 한다. 그리고, 상기 기수 라인용 버퍼(ODD1∼ODD8)는 인에이블 신호(ENA)의 로우상태에서 인에이블되어 입력된 기수라인 화소를 래치하여 출력하고, 상기 우수 라인용 버퍼(EVN1∼EVN8)은 인에이블 신호(ENA)의 하이상태에서 인에이블되어 입력된 우수라인 화소를 래치하여 출력한다.The vertical
상기 수직축 반화소 보상부(636)는 상기 기수 라인용 버퍼(ODD1∼ODD8)의 화소와 상기 우수 라인용 버퍼(EVN1∼EVN8)의 화소를 각각 입력받아 수직축으로 이웃한 2개 화소값을 가산한 후, 가산된 값을 2로 나누어서 수직축 반화소 보상된 8 화소 데이터값을 구한다. 그리고 나서, 수직축 반화소 플래그(V_half_flag)에 따라 플래그값이 "0"이면 상기 기수 라인용 버퍼(ODD1∼ODD8)로부터 출력된 데이터를 선택하고, 플래그값이 "1"이면 상기 나눗셈기(D1∼D8)로부터 출력된 수직축 반화소 보상된 8 화소 데이터를 선택하여 병렬 출력한다.The vertical half-
여기서, 상기 수직축 반화소 보상의 과정에 대한 이해를 돕기 위해 도 5 를 참조하여 기수 라인용 버퍼(ODD1)와 우수 라인용 버퍼(EVN1)의 입출력 상태를 살펴보면 다음과 같다. 도 5 의 타이밍도는 도 4의 수직라인 스위칭부(634) 및 수직축 반화소 보상부(636)에 대한 입출력 상태를 보인 것이다.Here, the input / output states of the odd-numbered line buffer ODD1 and the even-numbered line buffer EVN1 will be described with reference to FIG. 5 to help understand the process of vertical half-pixel compensation. 5 is a diagram illustrating input and output states of the vertical
도 5의 (a)는 클럭 신호이고, (b)는 수직라인 스위칭부(634, 도 4 참조)의 제 1 디멀티플렉서(DEMUX1)의 입력 데이터(700)이고, (c)는 수직라인 스위칭부(634)의 제 1 디멀티플렉서(DEMUX1)를 위한 수직라인 선택신호(Line_sel)이고, (d)는 수직라인 선택신호(Line_sel)가 '0'일 때 제 1 디멀티플렉서(DEMUX1)의 출력 데이터(701)이고, (e)는 수직라인 선택신호(Line_sel)가 '1'일 때 제 1 디멀티플렉서(DEMUX1)의 출력 데이터(702)이며, (f)는 수직라인 스위칭부(634)의 기수라인용 버퍼(ODD1) 및 우수라인용 버퍼(EVN1)를 위한 인에이블 신호(ENA)이고, (g)는 기수라인용 버퍼(ODD1)의 출력 데이터(703)이고, (h)는 우수 라인용 버퍼(EVN1)의 출력 데이터(704)이고, (i)는 수직축 반화소 보상부(636)의 가산기(C1)의 출력 데이터값(705)이다.(A) of FIG. 5 is a clock signal, (b) is input data 700 of the first demultiplexer DEMUX1 of the vertical line switching unit 634 (see FIG. 4), and (c) is a vertical line switching unit ( A vertical line selection signal Line_sel for the first demultiplexer DEMUX1 of 634, (d) is output data 701 of the first demultiplexer DEMUX1 when the vertical line selection signal Line_sel is '0'. , (e) is
도 4에서와 같이 블럭의 라인별로 구별하여 첫번째 수직라인은 L1이고, 두번째 수직라인은 L2등으로 나타내었으며, 반화소 보상기(630)의 수평축 반화소 보상부(632)로 입력되는 형태는 첫번째 클럭(CLK1)에서 블럭의 첫번째 수직라인 L1 의 화소 데이터들(P0∼P8)이 병렬로 입력되고, 두번째 클럭(CLK2)에서 블럭의 두번째 수직라인 L2 의 화소데이터들(P0∼P8)이 병렬로 입력된다.As shown in FIG. 4, the first vertical line is L1, the second vertical line is represented by L2, and the like, and is input to the horizontal half-
여기서, 도 5는 각 수직라인의 첫번째 열(P0)과 두번째 열(P1) 화소들에 대해 수직축 반화소 처리하는 것을 설명하기위해 L1 라인의 P0열과 P1열의 화소값에 대해 수평축 반화소 처리된 데이터값을 ℓ1, L2 라인의 P0열과 P1열의 화소값에 대해 수평축 반화소 처리된 데이터값을 ℓ2, L3 라인의 P0열과 P1열의 화소값에 대해 수평축 반화소 처리된 데이터값을 ℓ3 등으로 정한다. 이들 ℓ1,ℓ2,ℓ3,…,ℓ9 등은 클럭에 동기되어 상기 수직라인 스위칭부(634)의 제 1 디멀티플렉서(DEMUX1)로 입력된다. 그리고, 도 5의 (b)에서와 같이 한블럭의 수직축 데이터가 입력된 후 1클럭 지연 후에 다시 다음 블럭의 수직축 데이터(ℓ'1,ℓ'2,…)가 입력되도록 하여 데이터의 충돌을 방지하도록 한다.Here, FIG. 5 is a horizontal half-pixel-processed data of pixel values of columns P0 and P1 of the L1 line to explain the vertical half-pixel processing for the pixels of the first column P0 and the second column P1 of each vertical line. The values are horizontally half-pixel-processed for the pixel values of the P0 and P1 columns of the lines L1 and L2, and the horizontally half-pixelated data values of the pixel values of the P0 and P1 columns of the lines L3 and L3 are set to L3 and the like. These 1, 1, 2, 3,... , 9, etc. are input to the first demultiplexer DEMUX1 of the vertical
우선, 첫번째 클럭(CLK1)에서 제 1 디멀티플렉서(DEMUX1)는 수직라인 선택신호(Line_sel) '0'에 따라 제 1 기수 라인용 버퍼(ODD1)로 스위칭되고, 두번째 클럭(CLK2)에서 제 1 디멀티플렉서(DEMUX1)는 수직라인 선택신호(Line_sel) '1'에 따라 제 1 우수 라인용 버퍼(EVN1)로 스위칭되는 등 동일한 동작이 반복수행된다. 이 때 수직라인 선택신호(Line_sel)는 도 5의 (c)와 같이, 데이터 입력이 시작되는 클럭으로부터 2클럭 주기로 한 클럭마다 '0'과 '1'을 반복하여 발생된다. 따라서, 제 1 디멀티플렉서(DEMUX1)의 0번라인 출력 데이터 즉, 제 1 기수 라인용 버퍼(ODD1)로 입력되는 데이터는 도 5의 (d)와 같이 ℓ1, ℓ3, ℓ5, ℓ7, ℓ9 이 출력되고, 하나의 데이터는 2클럭주기동안 유지된다. 그리고, 제 1 디멀티플렉서(DEMUX1)의 1번라인 출력 데이터 즉, 제 1 우수 라인용 버퍼(EVN1)로 입력되는 데이터는 도 5의 (e)와 같이 ℓ2, ℓ4, ℓ6, ℓ8 이 출력되고, 하나의 데이터는 2클럭주기동안 유지되며, (d)와 비교하여 한 클럭 지연된 후 출력이 시작된다.First, at the first clock CLK1, the first demultiplexer DEMUX1 is switched to the first odd-numbered line buffer ODD1 according to the vertical line select signal Line_sel '0', and at the second clock CLK2, the first demultiplexer The same operation is repeatedly performed as the DEMUX1 is switched to the first even line buffer EVN1 according to the vertical line selection signal Line_sel '1'. At this time, as shown in (c) of FIG. 5, the vertical line selection signal Line_sel is generated by repeating '0' and '1' every clock by two clock cycles from the clock at which data input starts. Therefore, as for the output data of
이제, 상기 기수 라인용 버퍼(ODD1)와 우수 라인용 버퍼(EVN1)의 인에이블 신호는 도 5의 (f)와 같이 2클럭을 한 주기로 처음 반주기동안은 로우(Low)로 발생되고 나머지 반주기동안은 하이(High)로 발생된다. 이때 상기 기수 라인용 버퍼(ODD1)는 (f)의 인에이블 신호의 로우상태에서 인에이블되어 입력된 데이터를 래치하여 출력하고, 출력 데이터는 도 5의 (g)와 같이 입력 시점으로부터 한 클럭 지연된 후 ℓ1, ℓ3, ℓ5, ℓ7, ℓ9 이 출력되고, 하나의 데이터는 2클럭주기동안 유지된다. 그리고, 상기 우수 라인용 버퍼(EVN1)는 (f)의 인에이블 신호의 하이상태에서 인에이블되어 입력된 데이터를 래치하여 출력하고, 출력 데이터는 도 5의 (h)와 같이 입력 시점으로부터 한 클럭 지연된 후 ℓ2, ℓ4, ℓ6, ℓ8 이 출력되고, 하나의 데이터는 2클럭주기동안 유지된다.Now, the enable signal of the odd-numbered line buffer (ODD1) and the even-numbered line buffer (EVN1) is generated at a low period during the first half period as two clocks as shown in FIG. Is generated high. At this time, the odd-numbered line buffer ODD1 latches and outputs the input data which is enabled in the low state of the enable signal of (f), and the output data is delayed by one clock from the input time as shown in (g) of FIG. 5. Then, l1, l3, l5, l7, l9 are output, and one data is held for two clock cycles. The even line buffer EVN1 latches and outputs the input data which is enabled and input in the high state of the enable signal of (f), and the output data is clocked from an input time point as shown in (h) of FIG. 5. After the delay, L2, L4, L6 and L8 are output and one data is held for two clock cycles.
따라서, 상기 수직축 반화소 보상부(636)의 가산기(C1)는 상기 기수 라인용 버퍼(ODD1)와 상기 우수 라인용 버퍼(EVN1)로부터 출력된 데이터를 입력받아 한 클럭동안 가산하여 출력하며, 그 결과는 도 5의 (i)에서 보는 바와 같이, ℓ1+ℓ2, ℓ2+ℓ3, ℓ3+ℓ4, ℓ4+ℓ5, ℓ5+ℓ6, ℓ6+ℓ7, ℓ7+ℓ8, ℓ8+ℓ9 이 출력된다.Therefore, the adder C1 of the vertical half-
이제, 제 9 멀티플렉서(MUX9)는 상기 가산기(C1)의 출력 데이터를 2로 나눈 결과 즉, 평균값을 입력받고, 상기 기수 라인용 버퍼(ODD1)의 출력 데이터를 입력받아 수직축 반화소 플래그(V_half_flag)신호에 따라 플래그가 '1'이면 평균값을 선택하고, '0'이면 기수 라인 데이터를 선택하여 출력한다.Now, the ninth multiplexer MUX9 receives a result obtained by dividing the output data of the adder C1 by 2, that is, an average value, and receives the output data of the odd-numbered buffer ODD1 to receive a vertical half-pixel flag V_half_flag. According to the signal, if the flag is '1', the average value is selected. If the flag is '0', the odd line data is selected and output.
그리고, 다중화부(638)의 제 17 멀티플렉서(MUX17)는 상기 제 9 멀티플렉서(MUX9)의 출력 데이터를 입력받고 상기 우수 라인용 버퍼(EVN1)의 출력 데이터를 입력받아 수직축 라인 선택 신호(Line_sel)에 따라 '0'이면 제 9 멀티플렉서(MUX9)의 출력데이터를 선택하고, '1' 이면 상기 우수 라인용 버퍼(EVN1)의 출력 데이터를 선택하여 출력한다. 즉, 수직축 반화소 플래그 신호(V_half_flag)가 '1'일 때는 반화소 보상된 평균값이 출력되고, 수직축 반화소 플래그 신호(V_half_flag)가 '0'인 경우에는 2클럭 주기중 첫번째 클럭에서는 기수라인 데이터가 출력되고, 두번째 클럭에서는 우수라인 데이터가 출력된다.The seventeenth multiplexer MUX17 of the
지금까지의 설명은 P0과 P1열을 수직축 반화소 보상 처리하는 것에 대해서만 설명하였으나. 나머지 열에 대해서도 동일한 작용이 일어남을 알수 있을 것이다.The description so far has described only the vertical half-pixel compensation of P0 and P1 columns. You can see that the same happens for the rest of the heat.
이렇게 상기 다중화부(638)로부터 최종 출력된 데이터는 반화소 보상하지 않은 (정화소,정화소), 수평축 반화소 보상만 처리한 (반화소,정화소), 수직축 반화소 보상만 처리한 (정화소, 반화소), 혹은 수평축과 수직축 반화소 보상을 모두 처리한 (반화소, 반화소) 중의 어느 하나에 해당한다.In this way, the final output data from the
이상에서 서술한 바와 같이 본 발명에 따르면 움직임 보상을 수행함에 있어서 수평축 반화소 플래그 및. 수직축 반화소 플래그 신호에 따라 블럭단위로 반화소 보상을 병렬처리하여 효율적이며, 그 하드웨어를 간단히 구현할 수 있는 효과가 있다.As described above, according to the present invention, the horizontal axis half-pixel flag and. According to the vertical half-pixel flag signal, the half-pixel compensation is processed in parallel in units of blocks so that the hardware can be easily implemented.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970040979A KR100235487B1 (en) | 1997-08-26 | 1997-08-26 | Half-pel compensator of a motion compensator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970040979A KR100235487B1 (en) | 1997-08-26 | 1997-08-26 | Half-pel compensator of a motion compensator |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990017897A KR19990017897A (en) | 1999-03-15 |
KR100235487B1 true KR100235487B1 (en) | 1999-12-15 |
Family
ID=19518611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970040979A KR100235487B1 (en) | 1997-08-26 | 1997-08-26 | Half-pel compensator of a motion compensator |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100235487B1 (en) |
-
1997
- 1997-08-26 KR KR1019970040979A patent/KR100235487B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990017897A (en) | 1999-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5510842A (en) | Parallel architecture for a high definition television video decoder having multiple independent frame memories | |
KR100239260B1 (en) | Picture decoder | |
JP3395166B2 (en) | Integrated video decoding system, frame buffer, encoded stream processing method, frame buffer allocation method, and storage medium | |
KR100192270B1 (en) | The video decoding circuit in hdtv | |
US5963222A (en) | Multi-format reduced memory MPEG decoder with hybrid memory address generation | |
EP0592351B1 (en) | Image decoder | |
JPH08130745A (en) | Decoding system, decoder and decoding circuit | |
KR100201981B1 (en) | The memory control apparatus and image decoder using that | |
US20160007025A1 (en) | Picture encoding device, picture decoding device, and picture communication system | |
JP2000270332A (en) | Method and device for encoding dynamic picture | |
US5754243A (en) | Letter-box transformation device | |
KR0151210B1 (en) | Motion compensation control apparatus for mpeg | |
US6985528B2 (en) | Apparatus and method for encoding and decoding moving picture using wavelet transformation and motion estimation | |
KR100204475B1 (en) | An improved frame reordering appatus | |
JPH11298903A (en) | Digital image decoding device/method and supply medium thereof | |
KR100235487B1 (en) | Half-pel compensator of a motion compensator | |
KR950006769B1 (en) | Motion vector detecting method and motion compensating apparatus of hdtv | |
KR100243476B1 (en) | Half-pixel compensator of a motion compensator | |
KR100235484B1 (en) | Half-pel compensator of a motion compensator | |
US20060227874A1 (en) | System, method, and apparatus for DC coefficient transformation | |
KR100255794B1 (en) | First in first out buffer in motion compensator | |
KR100255793B1 (en) | Combine circuit of compensating for p-picture and b-picture in a motion compensator | |
KR0128885B1 (en) | The half-pixel motion compensation device | |
KR100269426B1 (en) | Motion compensator having an improved frame memory | |
JPH11308620A (en) | Image decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120903 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20130902 Year of fee payment: 15 |
|
LAPS | Lapse due to unpaid annual fee |