KR0156134B1 - Motion vector decoder of hdtv - Google Patents

Motion vector decoder of hdtv

Info

Publication number
KR0156134B1
KR0156134B1 KR1019940036313A KR19940036313A KR0156134B1 KR 0156134 B1 KR0156134 B1 KR 0156134B1 KR 1019940036313 A KR1019940036313 A KR 1019940036313A KR 19940036313 A KR19940036313 A KR 19940036313A KR 0156134 B1 KR0156134 B1 KR 0156134B1
Authority
KR
South Korea
Prior art keywords
motion vector
decoder
code
output
value
Prior art date
Application number
KR1019940036313A
Other languages
Korean (ko)
Other versions
KR960028461A (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 이헌조
Priority to KR1019940036313A priority Critical patent/KR0156134B1/en
Publication of KR960028461A publication Critical patent/KR960028461A/en
Application granted granted Critical
Publication of KR0156134B1 publication Critical patent/KR0156134B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • 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
    • H04N7/00Television systems
    • H04N7/015High-definition television systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 움직임 벡터 디코더에서 사용되는 개별 구성블럭을 간단하게 구현할 수 있도록 한 HDTV의 움직임 벡터 디코더에 관한 것이다.The present invention relates to a motion vector decoder of an HDTV, which enables simple implementation of individual component blocks used in the motion vector decoder.

종래의 HDTV의 움직임 벡터 디코더는 각 블럭들의 구현을 위하여 곱셈기 및 멀티플렉서 및 비교기등이 다수 필요하였으며, 이에 따라 하드웨어가 복잡해지는 단점이 있었던 점을 감안하여 본 발명은 디퍼런셜 움직임 벡터 디코더는 변형된 움직임 코드 테이블을 이용하여 입력되는 움직임 벡터에 해당하는 코드로 부터 디퍼런셜 움직임 벡터를 발생하도록 하고, 움직임 벡터 예측부는 움직임 벡터 인덱스에 따라 이전 매크로 블럭의 움직임 벡터가 저장되며 예측 움직임 벡터를 출력하도록 하며, 리미터로 상기 디퍼런셜 움직임 벡터 디코더의 출력과 움직임 벡터 예측부의 출력의 가산값이 움직임 벡터의 범위를 벗어날 경우 움직임 벡터의 MSB 6비트는 항상 5번째 LSB비트와 같도록 하여 움직임 벡터의 범위값으로 리미트함으로써 종래와 같이 복잡한 가산기나 멀티플렉서를 사용하지 않고 보다 간단한 구성으로 움직임 벡터 디코더를 구성할 수 있도록 한 것이다.In the conventional HDTV motion vector decoder, a multiplier, a multiplexer, and a comparator are required for the implementation of each block, and accordingly, the differential motion vector decoder is a modified motion code in consideration of the disadvantage of complicated hardware. A differential motion vector is generated from a code corresponding to an input motion vector using a table. The motion vector predictor stores a motion vector of a previous macro block according to a motion vector index and outputs a predicted motion vector. If the sum of the output of the differential motion vector decoder and the output of the motion vector predictor is out of the range of the motion vector, the MSB 6 bits of the motion vector are always the same as the fifth LSB bit, thereby limiting to the range of the motion vector. As complex addition This makes it possible to construct a motion vector decoder with a simpler configuration without using a device or a multiplexer.

Description

에이치디티브이(HDTV)의 움직임 벡터 디코더HDTV's motion vector decoder

제1도는 일반적인 HDTV의 움직임 벡터 디코더의 블럭 구성도.1 is a block diagram of a motion vector decoder of a general HDTV.

제2도는 제1도의 디퍼런셜 움직임 벡터 디코더의 블럭 구성도.2 is a block diagram of the differential motion vector decoder of FIG.

제3도는 제1도의 리미터를 구현하기 위한 플로우 차트.3 is a flow chart for implementing the limiter of FIG.

제4도는 제3도에 따른 리미터의 블럭 구성도.4 is a block diagram of a limiter according to FIG.

제5도는 본 발명에 따른 디퍼런셜 움직임 벡터 디코더의 블럭 구성도.5 is a block diagram of a differential motion vector decoder according to the present invention.

제6도는 제5도 각부의 타이밍도.6 is a timing diagram of each part of FIG. 5;

제7도는 본 발명에 다른 리미터의 블럭 구성도.7 is a block diagram of a limiter according to the present invention.

제8도 (a),(b)는 본 발명에 따른 움직임 벡터 저장부의 블럭 구성도.8 (a) and 8 (b) are block diagrams of a motion vector storage unit according to the present invention.

제9도는 본 발명에 따른 f코드와 움직임 벡터 범위와의 관계를 나타낸 표.9 is a table showing the relationship between the f code and the motion vector range according to the present invention.

제10도는 본 발명에 따른 변형된 움직임 코드 테이블을 나타낸 도면이다.10 is a diagram illustrating a modified motion code table according to the present invention.

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

1 : 디퍼런셜 움직임 벡터 디코더 2 : 가산기1: differential motion vector decoder 2: adder

3 : 리미터 4 : 움직임 벡터 저장부3: limiter 4: motion vector storage

11 : 변형된 움직임 코드 테이블 12 : 배럴 쉬프터11: deformed motion code table 12: barrel shifter

13 : 가산기 14-16 : 반전기13: adder 14-16: inverter

17 : 앤드 게이트 21 : 사인 선택기17: AND gate 21: sine selector

31 : 움직임 벡터 예측 레지스터 31a-31g : 레지스터31: motion vector prediction register 31a-31g: register

32, 33 : 쉬프터32, 33: shifter

본 발명은 HDTV 디코더에 관한 것으로서, 더욱 상세하게는 움직임 벡터(Motion Vector)에 해당하는 코드로 부터 움직임 벡터를 디코딩하는 HDTV의 움직임 벡터 디코더에 관한 것이다.The present invention relates to an HDTV decoder, and more particularly, to a motion vector decoder of an HDTV that decodes a motion vector from a code corresponding to a motion vector.

일반적으로 HDTV 디코더는 MPEG2의 코딩방식으로 데이타를 압축하여 영상정보를 전송하는데 영상을 16×16의 매크로 블럭 단위로 계수(Coefficient) 움직임 벡터를 코딩하여 전송한다.In general, an HDTV decoder transmits image information by compressing data using a coding scheme of MPEG2. The HDTV decoder codes and transmits a coefficient motion vector in units of 16 × 16 macroblocks.

움직임 벡터는 전 매크로 블럭의 움직임 벡터와의 차이를 보내어 디코더에서 전 매크로 블럭의 움직임 벡터와 현재에 디코딩된 디퍼런셜(Differential) 움직임 벡터와 더하여 움직임 벡터를 재구성(Reconstruction) 하며, 이러한 일반적인 움직임 벡터 디코더는 제1도에 도시한 바와 같다.The motion vector sends a difference from the motion vector of the previous macro block so that the decoder reconstructs the motion vector in addition to the motion vector of the previous macro block and the differential motion vector currently decoded. As shown in FIG.

이는 디퍼런셜 움직임 벡터 디코더(1), 가산기(2), 리미터(3), 움직임 벡터 저장부(4)로 구성되며, f코드는 움직임 벡터의 범위(Range)를 나타내는 신호로 움직임 벡터의 코드의 길이에 관계되며, 움직임 벡터에 해당하는 코드가 입력되면 디퍼런셜 움직임 벡터 디코더(1)에서 디퍼런셜 움직임 벡터(mvd)를 디코딩하여 이전 매크로 블럭의 움직임 벡터를 저장하고 있는 움직임 벡터 저장부(4)에서 읽어낸 예측 움직임 벡터(pmv)와 가산기(2)에서 가산하여 mv'를 만들고 리미터(3)에서 f코드의 값에 따라 리미트해주어 최종적으로 움직임 벡터인 mv를 출력하게 된다.It consists of a differential motion vector decoder (1), an adder (2), a limiter (3), and a motion vector storage unit (4). The f code is a signal representing a range of the motion vector and the length of the code of the motion vector. When the code corresponding to the motion vector is input, the differential motion vector decoder 1 decodes the differential motion vector mvd and reads it from the motion vector storage unit 4 storing the motion vector of the previous macro block. Mv 'is added by adding the predicted motion vector pmv and the adder 2, and the limiter 3 limits the value according to the value of f code to finally output the motion vector mv.

그리고 상기 디퍼런셜 움직임 벡터 디코더(1)는 제2도에 도시한 바와 같이, f코드가 1이며 움직임 코드(Motion Code : 이하, mc라 칭함)가 0인가를 알기 위한 비교기(COMP1),(COMP2) 및 노아 게이트(NOR1)의 출력이 딜레이(D1)를 거쳐 멀티플렉서(MUX1)의 선택단자(5)로 입력된다.As shown in FIG. 2, the differential motion vector decoder 1 has a comparator COMP1 and COMP2 to know whether the f code is 1 and the motion code (hereinafter referred to as mc) is 0. FIG. And an output of the NOR gate NOR1 is input to the selection terminal 5 of the multiplexer MUX1 through the delay D1.

또한, mc값은 그 값이 음수일 경우 곱셈기(M1)에서 -1을 곱하여 멀티플렉서(MUX2)의 입력단자(0)로 입력되고 양수일 경우는 직접 상기 멀티플렉서(MUX2)의 입력단자(1)로 입력된다.In addition, the mc value is multiplied by -1 in the multiplier M1 when the value is negative, and is input to the input terminal 0 of the multiplexer MUX2. When the value is positive, the mc value is directly input to the input terminal 1 of the multiplexer MUX2. do.

그리고 상기 mc값은 mc의 사인(Sign)을 알기 위한 비교기(COMP3)를 통하여 상기 멀티플렉서(MUX2)의 선택단자(S)로 입력되어 상기 선택단자(S)의 값에 따라 상기 입력단자(0),(1)의 값이 멀티플렉서(MUX2)의 출력값으로 출력되며, 상기 멀티플렉서(MUX2)의 출력은 가산기(A1)에서 -1이 가산되고 곱셈기(M1)에서 f코드 값과 곱하여진 후 딜레이(D3)를 통하여 움직임 나머지(Motion Residual : 이하, mr이라 칭함)값과 가산기(A2)에서 가산된다.The mc value is inputted to the selection terminal S of the multiplexer MUX2 through a comparator COMP3 to determine the sign of mc, and thus the input terminal 0 according to the value of the selection terminal S. The value of (1) is output as the output value of the multiplexer (MUX2), and the output of the multiplexer (MUX2) is added by -1 in the adder (A1) and multiplied by the f code value in the multiplier (M1) and then delayed (D3). Is added by the adder A2 and the Motion Residual value.

그리고 상기 가산기(A2)의 출력은 가산기(A3)를 통하여 1이 가산된 후, 그 값이 음수일 경우는 곱셈기(M3)를 통하여 -1이 곱해진후 멀티플렉서(MUX3)의 입력단자(0)로 입력되고 상기 가산기(A3)의 출력이 양수일 경우에는 직접 상기 멀티플렉서(MUX3)의 입력단자(1)로 입력되어 선택단자(S)에 입력되는 사인값에 따라 상기 입력단자(0),(1)의 값이 출력된다.When the output of the adder A2 is added with 1 through the adder A3, and if the value is negative, -1 is multiplied by the multiplier M3 and then input to the input terminal 0 of the multiplexer MUX3. When the output of the adder A3 is positive, the input terminals 0 and 1 are directly input to the input terminal 1 of the multiplexer MUX3 according to a sine value input to the selection terminal S. The value of is output.

또한, 상기 mc값은 딜레이(D2)를 통하여 상기 멀티플렉서(MUX1)의 입력단자(0)로 입력되고 상기 멀티플렉서(MUX3)의 출력값은 상기 멀티플렉서(MUX1)의 입력단자(1)로 입력되어 상기 딜레이(D1)를 통하여 입력되는 선택단자(S)의 값에 따라 디퍼런셜 움직임 벡터(mvd) 값이 출력되게 된다.In addition, the mc value is input to the input terminal (0) of the multiplexer (MUX1) through the delay (D2) and the output value of the multiplexer (MUX3) is input to the input terminal (1) of the multiplexer (MUX1) to the delay The differential motion vector mvd is output according to the value of the selection terminal S input through D1.

상기에서 상기 곱셈기(M1) 및 비교기(COMP3)에서 가산기(A3)까지의 동작은 mvd = (|mc|-1)*f+mr+1을 계산하는 과정으로 종래의 디퍼런셜 움직임 벡터 디코더(1)는 상기와 같이 곱셈기 및 멀티플렉서가 많이 필요하였다.The operation of the multiplier M1 and the comparator COMP3 to the adder A3 is performed by calculating mvd = (| mc | -1) * f + mr + 1, and the conventional differential motion vector decoder 1 As described above, many multipliers and multiplexers were required.

또한, 상기 리미터(3)는 제3도의 플로우 차트와 같이 가산기(2)의 출력(mv')이 움직임 벡터의 범위값의 최저값(Low) 보다 작은가 및 움직임 벡터의 범위값의 최대값(High)보다 큰가를 판별하여 최저값보다 작으면 mv'에 움직임 벡터의 범위값을 가산하여 움직임 벡터값으로 출력하고 최대값보다 크면 mv'에서 움직임 벡터의 범위값을 감산하여 움직임 벡터값으로 출력하는 것으로, 이를 하드웨어로 구현한 것이 제4도이다.In addition, the limiter 3 determines whether the output mv 'of the adder 2 is smaller than the low of the range value of the motion vector and the maximum value of the range of the motion vector as shown in the flowchart of FIG. If the value is smaller than the minimum value, the range value of the motion vector is added to mv 'and output as a motion vector value. If the value is larger than the maximum value, the range value of the motion vector is subtracted from mv' and output as a motion vector value. 4 is implemented in hardware.

이는 가산기(2)의 출력(mv')과 움직임 벡터의 범위값의 최저값 및 최대값을 비교하기 위한 비교기(COMP4),(COMP5)와, mv'이 움직임 벡터의 최저값 보다 작으면 움직임 벡터의 범위값을 가산하는 가산기(A4)와, mv'가 움직임 벡터의 최대값보다 크면 움직임 벡터의 범위값을 mv'에서 감산하는 가산기(A5)와, 상기 비교기(COMP4),(COMP5)의 출력에 따라 가산기 (A4),(A5)의 출력을 선택하기 위한 멀티플렉서(MUX4)로 구성되며, 상기 비교기(COMP4),(COMP5) 및 가산기(A4),(A5)는 10비트 비교기 및 가산기이며, 상기 멀티플렉서(MUX4)는 10비트 3:1 멀티플렉서이다.This means that the comparator COMP4 and COMP5 for comparing the output value mv 'of the adder 2 with the minimum and maximum values of the range of the motion vector and the range of the motion vector if mv' is smaller than the minimum value of the motion vector. An adder A4 for adding a value, an adder A5 for subtracting a range value of a motion vector from mv 'if mv' is greater than the maximum value of the motion vector, and the outputs of the comparators COMP4 and COMP5. Comprising a multiplexer (MUX4) for selecting the output of the adders (A4), (A5), the comparators (COMP4), (COMP5) and adders (A4), (A5) are 10-bit comparator and adder, the multiplexer (MUX4) is a 10-bit 3: 1 multiplexer.

즉, 상기와 같이 종래의 움직임 벡터 디코더는 각 블럭들의 구현을 위하여 곱셈기 및 멀티플렉서 및 비교기등이 다수 필요하였으며, 이에 따라 하드 웨어가 복잡해지는 단점이 있었다.That is, the conventional motion vector decoder requires a multiplier, a multiplexer, a comparator, etc. to implement each block as described above, and thus has a disadvantage in that hardware is complicated.

본 발명은 상기의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 종래의 각 블럭의 하드웨어 구성을 위한 알고리즘을 변경하여 보다 간단한 구성으로 각 블럭을 구현할 수 있도록 한 HDTV의 움직임 벡터 디코더를 제공함에 있다.The present invention has been made to solve the above problems, and an object of the present invention is to provide a motion vector decoder of HDTV that can implement each block with a simpler configuration by changing the algorithm for the hardware configuration of each conventional block. .

이러한 목적을 달성하기 위한 본 발명의 특징은 변형된 움직임 코드 테이블을 이용하여 입력되는 움직임 벡터에 해당하는 코드로 부터 디퍼런셜 움직임 벡터를 발생하는 디퍼런셜 움직임 벡터 디코더와, 움직임 벡터 인덱스에 따라 이전 매크로 블럭의 움직임 벡터를 저장하고 출력하는 움직임 벡터 저장부와, 상기 디퍼런셜 움직임 벡터 디코더의 출력과 움직임 벡터 저장부의 출력을 가산하는 가산기와, 상기 가산기의 출력이 기 설정된 움직임 벡터의 범위를 벗어날 경우 f코드값에 따라 움직임 벡터의 범위 값으로 리미트하는 리미터로 구성되는 HDTV의 움직임 벡터 디코더에 있다.According to an aspect of the present invention, there is provided a differential motion vector decoder for generating a differential motion vector from a code corresponding to an input motion vector using a modified motion code table, and a previous macro block according to a motion vector index. A motion vector storage unit for storing and outputting a motion vector, an adder for adding the output of the differential motion vector decoder and the output of the motion vector storage unit, and an output value of the adder if the output of the adder is out of a range of a predetermined motion vector. In the motion vector decoder of the HDTV consisting of a limiter to limit the range of the motion vector accordingly.

이하, 본 발명의 바람직한 일실시예를 첨부도면을 참조로 하여 상세히 설명한다.Hereinafter, with reference to the accompanying drawings, a preferred embodiment of the present invention will be described in detail.

제5도는 본 발명에 따른 디퍼런셜 움직임 벡터 디코더의 상세 구성도를 도시한 것으로, 종래 mvd = ((|mc|-1)*f) + mr +1로 계산하는 것을 움직임 코드 테이블의 출력의 원래 값인 움직임 코드가 아닌 변형된 움직임코드(mc') = |mc|-1로 테이블(제10도 참조)을 구성하여 회로를 간단히 하였으며, 이는 다음과 같다.5 is a detailed block diagram of the differential motion vector decoder according to the present invention, where conventional calculation of mvd = ((| mc | -1) * f) + mr +1 is the original value of the output of the motion code table. The circuit was simplified by constructing a table (see FIG. 10) with a modified motion code (mc ') = | mc | -1 rather than a motion code.

우선, 움직임 벡터에 해당하는 코드의 입력을 mc'로 변환하는 변형된 움직임 코드 테이블(11)과, 상기 변형된 움직임 코드 테이블(11)에서 출력되는 사인(Sign), 제로신호, mc'을 각각 딜레이하는 딜레이(D11),(D12),(D13)와, 상기 움직임 벡터에 해당하는 코드로 부터 mr값이 입력되고 상기 딜레이(D13)의 출력인 mc'값 및 f코드값의 입력에 따라 mc'*f+mr값을 계산하는 배럴 쉬프터(12)와, 상기 배럴 쉬프터(12)의 출력값이 양수일 경우 1을 가산하는 가산기(13)와, 상기 배럴 쉬프터(12)의 출력이 음수일 경우 배럴 쉬프터(12)의 출력을 반전하는 반전기(14)와, 상기 딜레이(D11)의 출력 값인 사인값에 따라 상기 반전기(14) 및 가산기(13)의 출력을 선택하여 출력하는 멀티플렉서(MUX11)와, 상기 딜레이(D11)의 출력을 반전하여 사인 값으로 출력하는 반전기(15)와, 상기 멀티플렉서(MUX11)의 출력과 상기 딜레이(D12)의 반전기(16)에 의한 반전출력을 논리곱하여 디퍼런셜 움직임 벡터(mvd) 값으로 출력하는 앤드 게이트(17)로 구성된다.First, a modified motion code table 11 for converting an input of a code corresponding to a motion vector into mc 'and a sign, zero signal, and mc' outputted from the modified motion code table 11 are respectively. Mc is inputted from the delays D11, D12, and D13 to be delayed, and the code corresponding to the motion vector, and mc 'and f's code values, which are outputs of the delay D13, are input. A barrel shifter 12 for calculating a value of '* f + mr', an adder 13 for adding 1 when the output value of the barrel shifter 12 is positive, and a barrel output when the output of the barrel shifter 12 is negative Inverter 14 for inverting the output of the shifter 12 and a multiplexer MUX11 for selecting and outputting the outputs of the inverter 14 and the adder 13 according to a sine value which is an output value of the delay D11. And an inverter 15 for inverting the output of the delay D11 and outputting a sine value, and the multiplexer MUX11. And AND gates 17 which multiply the output of the output by the inverter 16 of the delay D12 and output the differential motion vector mvd.

상기와 같이 구성된 디퍼런셜 움직임 벡터 디코더의 동작은 다음과 같다. 우선, 움직임 벡터에 해당하는 코드는 변형된 움직임 코드 테이블(11)에서 mc'로 변환되는데 이 변형된 움직임 코드 테이블(11)은 조합 로직(Combinational Logic)으로 구성되어 있으며, 변형된 움직임 코드 테이블(11)은 -16에서 +16까지의 테이블 값을 가지고 있다.The operation of the differential motion vector decoder configured as described above is as follows. First, the code corresponding to the motion vector is converted from the transformed motion code table 11 to mc '. The transformed motion code table 11 is composed of combinatorial logic. The transformed motion code table ( 11) has table values from -16 to +16.

그리고 상기 변형된 움직임 코드 테이블(11)은 mc'와 mc'의 사인 및 mc' 값이 0일때 1로 출력하는 제로신호를 출력한다.The modified motion code table 11 outputs a zero signal that is output as 1 when the sine and mc 'values of mc' and mc 'are 0.

그리고 mc'가 0이 아니거나 f코드가 1보다 클때는 mr이 mc' 다음에 코드로 따라오는데 딜레이를 맞추어 주기 위하여 (D11-D13)을 둔 것이다. 그리고 배럴 쉬프터(12)는 mc'와 mr로 부터 mc'*f +mr를 처리하는 부분으로, f는 2의 멱수이므로 쉬프트함으로써 *f처리가 되는데 f는 f코드에 의해 결정되므로 f코드값을 배럴 쉬프터(12)의 쉬프트양으로 입력하는데 f코드가 6이하일때 움직임 벡터의 범위는 -512부터 511까지의 값을 가지므로 10비트로 움직임 벡터를 표현할 수 있다.If mc 'is not 0 or f is greater than 1, then mr follows mc' to the code to match the delay (D11-D13). The barrel shifter 12 processes mc '* f + mr from mc' and mr. Since f is a power of 2, * f processing is performed by shifting. F is determined by f code. When the f-code is 6 or less, the input of the barrel shifter 12 is shifted, and since the range of the motion vector ranges from -512 to 511, the motion vector can be represented by 10 bits.

f코드가 6일 때는 mc'가 5비트가 되고 mr는 5비트가 되므로 MSB 5비트는 mc를 변환한 mc'가 되게 하고 LSB 5비트는 mr로 들어온 5비트로 구성하면 되므로 배럴 쉬프터(12)의 쉬프트 양은 0이 된다.If the f code is 6, mc 'becomes 5 bits and mr becomes 5 bits. Therefore, MSB 5 bits should be mc' converted to mc, and LSB 5 bits should be composed of 5 bits that enter mr. The shift amount is zero.

이와 같이 f코드가 바뀜에 따라 나머지의 비트수 및 배럴 쉬프터(12)의 쉬프트양은 다음표와 같이 된다.Thus, as the f-code changes, the remaining number of bits and the shift amount of the barrel shifter 12 are as shown in the following table.

예를 들어 f코드가 4일때 mc가 10로 바이너리 01010이고 mr가 6으로 바이너리 110일 때 mc'는 |10|-1=9가 된다.For example, if f is 4, mc is 10, binary 01010, and mr is 6, binary 110, mc 'becomes | 10 | -1 = 9.

mc'와 mr가 결합하여 7비트인 1001110이 배럴 쉬프터(12)의 MSB 부터 입력되면 배럴쉬프터(12)에서 2만큼 쉬프트되어 001001110의 9비트출력을 내놓는데 이 값은 mc'*f+mr의 결과인 78이다.When mc 'and mr are combined and 7 bits 1001110 is inputted from the MSB of the barrel shifter 12, it is shifted by 2 in the barrel shifter 12 to give a 9-bit output of 001001110, which is the value of mc' * f + mr. The result is 78.

배럴 쉬프터(12)에서 출력된 9비트값은 mc'가 양수인가 음수인가에 따라 다르게 처리되는데 양수일 경우 가산기(13)을 통하여 1이 가산되어 출력되고 음수일 경우 1을 더한 후 -부호를 붙여서 출력한다.The 9-bit value output from the barrel shifter 12 is handled differently depending on whether mc 'is positive or negative. If it is positive, 1 is added through the adder 13, and if negative, 1 is added and -signed to output. do.

어떤 양수에 1을 더한 후 음수를 취하는 것은 모든 비트를 반전시키는 것과 같은 결과이므로 mc'가 음수일 경우 배럴 쉬프터(12)의 출력을 반전기(14)를 통하여 반전시켜서 출력한다.Taking a negative number after adding 1 to a positive number is the same as inverting all bits. When mc 'is negative, the output of the barrel shifter 12 is inverted through the inverter 14 and output.

그리고 멀티플렉서(MUX11)는 딜레이(D11)에 의해 딜레이된 사인값에 의해 선택되는데 사인값이 1이면 mc'는 양수이고 0이면 음수가 된다.The multiplexer MUX11 is selected by the sine value delayed by the delay D11. When the sine value is 1, mc 'is positive and 0 is negative.

상기 멀티플렉서(MUX11)의 출력은 앤드 게이트(17)에서 상기 딜레이(D12)의 출력을 반전시킨 신호와 앤딩되어 출력되며, 출력된 9비트신호는 mvd의 LSB 9비트가 되고 사인 비트인 MSB 1비트는 딜레이된 사인신호를 반전기(15)를 통하여 반전시켜서 출력한다.The output of the multiplexer MUX11 is output by being ended with the signal inverting the output of the delay D12 at the AND gate 17. The output 9-bit signal is LSB 9 bits of mvd and is a MSB 1 bit which is a sine bit. Inverts the delayed sinusoidal signal through the inverter 15 and outputs the inverted signal.

제6도는 상기 디퍼런셜 움직임 벡터 디코더의 동작 타이밍을 나타낸 것으로, 코드는 mc'와 mr에 해당하는 코드인 mc'1, mc'2, ...과 mr1, mr2, ...로 입력되고 출력되는 mvd는 mc'에 1클럭 딜레이되어 출력된다.6 is an operation timing of the differential motion vector decoder, and codes are input and output to mc'1, mc'2, ... and mr1, mr2, ... corresponding to mc 'and mr. mvd is output by one clock delay at mc '.

mc'3는 mc'가 0일 때의 코드로 mc'3에 해당하는 mr는 입력되지 않는다. 이때도 mvd의 출력은 mc'3에 1클럭 딜레이 되어 0값을 출력한다.mc'3 is the code when mc 'is 0. mr corresponding to mc'3 is not input. At this time, the output of mvd is delayed 1 clock to mc'3 and outputs 0 value.

한편, 리미터(3)는 가산기(2)에서 출력된 mv'가 범위를 벗어나면 즉, 하이보다 크거나 로우보다 작으면 범위값을 빼주거나 더해주어 범위안의 값인 mv로 바꾸어주는 역할을 하며, 제9도의 표는 f코드에 따른 움직임 벡터의 범위를 나타낸 것으로, min은 로우를 나타내고 max는 하이값을 나타낸다.The limiter 3 subtracts or adds a range value when the mv 'output from the adder 2 is out of a range, that is, greater than or less than a low, and converts the value into mv, which is a value within the range. The table of 9 degrees shows the range of the motion vector according to the f code, where min is low and max is high.

f코드가 1일 때는 4비트만 디코딩되고 상위 6비트는 0 또는 1로 고정되는 데 범위를 넘어가면 4번째 비트에서 캐리가 발생하여 5번째 비트가 상위 비트와 다른 B000001 xxxx이 된다. 이때, 하이보다 큰 값일 경우는 이값에서 32를 빼주어야하는데 이는 -32(B1111100000)를 더해주는 것과 같으므로 결국 mv는 B111111xxxx로 된다.When the f code is 1, only 4 bits are decoded and the upper 6 bits are fixed to 0 or 1. If the range is exceeded, a carry occurs at the 4th bit, and the 5th bit becomes B000001 xxxx different from the higher bit. At this time, if the value is higher than high, 32 should be subtracted from this value, which is equivalent to adding -32 (B1111100000), so mv becomes B111111xxxx.

그러므로 LSB 4비트는 어떤 경우에도 변화하지 않고 MSB 6비트는 항상 5번째 LSB와 같게 해주면 범위 제한이 된다.Therefore, the LSB 4 bits do not change in any case and the MSB 6 bits are always the same as the 5th LSB to limit the range.

이와 같이 f코드가 1보다 클때에도 제8도의 표에서와 같이 MSB를 셋팅하여 주면 된다.Thus, even when f code is larger than 1, MSB can be set as shown in the table of FIG.

제7도는 본 발명에 따른 리미터의 상세 구성도를 도시한 것으로, f코드에 의해 움직임 벡터의 MSB에 셋팅될 가산기(2)의 출력(mv')의 사인을 선택하는 멀티플렉서(MUX12)와, f코드에 따른 선택신호(S10-S14)를 발생하는 사인 선택기(21)와, 상기 사인 선택기(21)의 선택신호(S10-S14)의 출력에 따라 mv'을 출력할 것인지 사인을 셋팅할 것인지를 선택하여 출력하여 움직임 벡터를 생성하는 멀티플렉서(MUX13-MUX17)로 구성된다.7 shows a detailed block diagram of the limiter according to the present invention. The multiplexer MUX12 selects the sine of the output mv 'of the adder 2 to be set in the MSB of the motion vector by f code, and f Whether to output mv 'or set the sine according to the output of the sine selector 21 generating the selection signals S10-S14 according to the code and the selection signals S10-S14 of the sine selector 21; It consists of multiplexers (MUX13-MUX17) that select and output the motion vectors.

그리고 상기와 같이 구성된 리미터는 f코드에 의해 MSB에 셋팅될 mv'의 사인을 멀티플렉서(MUX12)에서 선택하고 사인 선택기(21)에서 f코드에 따라 셋팅될 MSB를 선택해주면 멀티플렉서(MUX13-MUX17)에서 mv'를 통과시킬 것인지 사인을 셋팅할 것인지를 선택하여 출력함으로써 움직임 벡터를 생성하게 된다.The limiter configured as described above selects the mv 'sine to be set in the MSB by the f code in the multiplexer (MUX12), and selects the MSB to be set according to the f code in the sine selector 21 in the multiplexer (MUX13-MUX17). By selecting and outputting whether to pass mv 'or setting the sine, a motion vector is generated.

그리고 다음 표는 상기 사인 선택기(21)에서 발생되는 선택신호를 f코드에 따라 나타낸 것이다.The following table shows the selection signal generated by the sine selector 21 according to the f code.

제8도 (a),(b)는 본 발명에 따른 움직임 벡터 저장부의 블럭 구성도를 도시한 것으로, 움직임 벡터 저장부는 움직임 벡터 예측 레지스터(31)로 구성되며, 이는 움직임 벡터의 인덱스인 r, s, t에 따라 나뉘어지는 8개의 레지스터(31a-31h)와, 움직임 벡터 포맷이 필드이고 픽춰 구조(Structure)가 프레임 픽춰일때 수직 움직임 벡터를 레지스터(31a-31h)에 저장 및 출력할때 2를 곱하고 나누어주기 위한 쉬프터(32),(33)로 구성된다.8 (a) and 8 (b) show a block diagram of a motion vector storage unit according to the present invention. The motion vector storage unit is composed of a motion vector prediction register 31, which is an index of a motion vector r, 8 registers 31a-31h divided according to s, t, and 2 when storing and outputting a vertical motion vector in registers 31a-31h when the motion vector format is a field and the picture structure is a frame picture. It consists of shifters 32, 33 for multiplying and dividing.

상기 r, s, t는 움직임 벡터의 인덱스로서 r은 움직임 벡터의 입력순서를 나타내고, s는 포워드(Forward), 백워드(Backward)를 나타내고, t는 수평, 수직을 나타낸다.R, s, and t are indices of the motion vectors, r represents the input sequence of the motion vectors, s represents forward and backward, and t represents horizontal and vertical.

그리고 상기 움직임 벡터 예측 레지스터(31)는 듀얼 포트 램과 같이 리드와 라이트를 독립적으로 할 수 있게 되어 있으며, 각각의 레지스터(31a-31h)의 선택은 r, s, t에 의해 결정되며, 쉬프터(32)는 mv 포맷이 필드이고 픽춰 구조가 프레임 픽춰일때 수직 움직임 벡터를 레지스터(31a-31h)에 저장할 때 2를 곱하기 위한 것이고, 쉬프터(33)는 레지스터 (31a-31h)에서 읽을 때 2로 나누어주기 위한 것이다.The motion vector prediction register 31 can read and write independently like a dual port RAM, and the selection of each of the registers 31a-31h is determined by r, s, and t. 32) is to multiply by 2 when storing the vertical motion vector in registers 31a-31h when the mv format is a field and the picture structure is a frame picture, and the shifter 33 is divided by 2 when reading from the registers 31a-31h. It is to give.

이상에서 살펴본 바와 같이 본 발명은 HDTV의 움직임 벡터 디코더를 구성하는 각 블럭들의 하드웨어 구성을 간단히 하기 위하여 각 블럭을 구현하기 위한 알고리즘을 변경하여 종래와 같이 복잡한 가산기나 멀티플렉서를 사용하지 않고도 보다 간단히 움직임 벡터 디코더를 구성할 수 있게 되는 효과가 있다.As described above, the present invention changes the algorithm for implementing each block to simplify the hardware configuration of the blocks constituting the motion vector decoder of the HDTV. Thus, the motion vector is simplified without using a complicated adder or multiplexer as in the prior art. There is an effect that the decoder can be configured.

Claims (4)

변형된 움직임 코드 테이블을 이용하여 입력되는 움직임 벡터에 해당하는 코드로 부터 디퍼런셜 움직임 벡터를 발생하는 디퍼런셜 움직임 벡터 디코더와, 움직임 벡터의 인덱스에 따라 이전 매크로 블럭의 움직임 벡터를 저장 및 출력하는 움직임 벡터 저장부와, 상기 디퍼런셜 움직임 벡터 디코더의 출력과 움직임 벡터 저장부의 출력을 가산하는 가산기와, 상기 가산기의 출력이 기 설정된 움직임 벡터의 범위를 벗어날 경우 f코드값에 따라 움직임 벡터의 범위값으로 리미트하는 리미터로 구성됨을 특징으로 하는 HDTV의 움직임 벡터 디코더.A differential motion vector decoder for generating a differential motion vector from a code corresponding to an input motion vector using the modified motion code table, and a motion vector storage for storing and outputting a motion vector of a previous macro block according to the index of the motion vector. And an adder for adding the output of the differential motion vector decoder and the output of the motion vector storage unit, and a limiter for limiting the range of the motion vector according to the f code value when the output of the adder is out of the range of a preset motion vector. The motion vector decoder of the HDTV, characterized in that consisting of. 제1항에 있어서, 상기 변형된 움직임 코드 테이블은 입력되는 움직임 코드값에 절대값을 취한 후 '1'을 감산한 값을 움직임 코드로 하고, 입력되는 움직임 코드 값 중 제로(0)값 및 부호를 표시하도록 한 것을 특징으로 하는 HDTV의 움직임 벡터 디코더.The motion code table of claim 1, wherein the modified motion code table takes an absolute value to an input motion code value and subtracts '1' as a motion code, and a zero (0) value and a sign among the input motion code values. The motion vector decoder of the HDTV, characterized in that to display. 제1항에 있어서, 상기 움직임 벡터 저장부는 움직임 벡터 인덱스에 따라 이전 매크로 블럭의 움직임 벡터가 저장되는 복수개의 레지스터와, 움직임 벡터 포맷이 필드이고 픽춰구조가 프레임 픽춰일 때 수직움직임 벡터를 상기 각 레지스터에 저장 및 출력할 때 그를 곱하고 나누어 주기 위한 제1, 제2쉬프터로 구성됨을 특징으로 하는 HDTV의 움직임 벡터 디코더.The register of claim 1, wherein the motion vector storage unit comprises a plurality of registers storing a motion vector of a previous macro block according to a motion vector index, and a vertical motion vector when the motion vector format is a field and the picture structure is a frame picture. And a first shifter and a second shifter for multiplying and dividing when storing and outputting the motion vector decoder. 제1항에 있어서, 상기 리미터는 f코드값에 따라 움직임 벡터의 설정된 상위 비트까지를 동일값으로 변경하는 것을 특징으로 하는 HDTV의 움직임 벡터 디코더.The motion vector decoder of claim 1, wherein the limiter changes up to a set higher bit of the motion vector to the same value according to an f code value.
KR1019940036313A 1994-12-23 1994-12-23 Motion vector decoder of hdtv KR0156134B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940036313A KR0156134B1 (en) 1994-12-23 1994-12-23 Motion vector decoder of hdtv

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940036313A KR0156134B1 (en) 1994-12-23 1994-12-23 Motion vector decoder of hdtv

Publications (2)

Publication Number Publication Date
KR960028461A KR960028461A (en) 1996-07-22
KR0156134B1 true KR0156134B1 (en) 1998-11-16

Family

ID=19403158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940036313A KR0156134B1 (en) 1994-12-23 1994-12-23 Motion vector decoder of hdtv

Country Status (1)

Country Link
KR (1) KR0156134B1 (en)

Also Published As

Publication number Publication date
KR960028461A (en) 1996-07-22

Similar Documents

Publication Publication Date Title
JP3227292B2 (en) Encoding device, encoding method, decoding device, decoding method, encoding / decoding device, and encoding / decoding method
US5563813A (en) Area/time-efficient motion estimation micro core
US4430721A (en) Arithmetic circuits for digital filters
US6408102B1 (en) Encoding/decoding device
US6148034A (en) Apparatus and method for determining video encoding motion compensation vectors
US8364741B2 (en) Motion-compensating device with booth multiplier that reduces power consumption without increasing the circuit size
GB2149538A (en) Digital multiplier
GB2247330A (en) Absolute value arithmetic circuit
US6215823B1 (en) Motion vector decoder
US9332256B2 (en) Methods of coding binary values
KR0156134B1 (en) Motion vector decoder of hdtv
JP5086675B2 (en) Filter calculator and motion compensation device
EP0597733A1 (en) Image encoding device
KR100241069B1 (en) Calculating the average of four integer numbers rounded away from zero in a single instruction cycle
JP2007316844A (en) Filter processor, multiplier and motion compensation processor
JPH11103257A (en) Arithmetic encoding/decoding device
KR0178746B1 (en) Half pixel processing unit of macroblock
JP2008532335A (en) Image interpolation method and pixel interpolation device
US5432726A (en) Arithmetic unit for quantization/inverse quantigation
KR100264957B1 (en) Calculating the average of two integer numbers rounded away from zero in a single instruction cycle
KR0151113B1 (en) Mpeg moving vector decoder
KR0151451B1 (en) Moving vector decoder
JP3074958B2 (en) Serial multiplier with addition function
JP2816295B2 (en) Discrete cosine transform method and discrete cosine transform circuit
JP4155102B2 (en) Pixel value calculation device, moving image encoding device, and moving image decoding device

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

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee