Nothing Special   »   [go: up one dir, main page]

KR100195716B1 - A variable length decoder - Google Patents

A variable length decoder Download PDF

Info

Publication number
KR100195716B1
KR100195716B1 KR1019950061380A KR19950061380A KR100195716B1 KR 100195716 B1 KR100195716 B1 KR 100195716B1 KR 1019950061380 A KR1019950061380 A KR 1019950061380A KR 19950061380 A KR19950061380 A KR 19950061380A KR 100195716 B1 KR100195716 B1 KR 100195716B1
Authority
KR
South Korea
Prior art keywords
variable length
code
output
length decoder
input
Prior art date
Application number
KR1019950061380A
Other languages
Korean (ko)
Other versions
KR970057933A (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 KR1019950061380A priority Critical patent/KR100195716B1/en
Publication of KR970057933A publication Critical patent/KR970057933A/en
Application granted granted Critical
Publication of KR100195716B1 publication Critical patent/KR100195716B1/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 가변 길이 복호기에 관한 것으로, 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이로 잘라서 출력하는 가변 길이 복호기 코아(20)와; 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 또는 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부(23); 상기 제로검출부(23)의 제어신호에 따라 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 일부만을 출력하는 코드 다중화기(24); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택신호를 출력하는 제어부(25) 및; 상기 제로검출부(23)에서 출력된 제어신호에 따라 상기 코드 다중화기(24)에서 입력된 가변길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 입력정보는 상기 가변길이 복호기 코아(20)로 입력하고, 헤더 정보는 상기 제어부(25)로 입력하는 한편, (런, 레벨) 값은 버퍼(27)를 통해 줄-길이 복호기(29)로 cffur하는 테이블부(30)를 포함하여 구성되며, 가변 길이 복호기 코아의 출력단이 갖는 팬아웃을 현저하게 줄일 수 있을 쁜만 아니라 가변길이 복호화를 빠르게 수행할 수 있고, PLA 테이블의 크기를 줄일 수 있는 것이다. .The present invention relates to a variable length decoder, comprising: a variable length decoder core (20) for barrel-shifting a variable length coded bit string by the length of a variable length code and cutting the variable length code into a maximum length of the variable length code; A zero detector (23) for checking whether a predetermined constant bit of the variable length code output from the variable length decoder core (20) is 0 or 1 and outputting a control signal according to the result; A code multiplexer (24) for outputting only a part of the variable length code output from the variable length decoder core (20) according to the control signal of the zero detector (23); A control unit 25 for receiving a variable length code and header information output from the variable length decoder core 20 and outputting a table selection signal; The variable length code input from the code multiplexer 24 is decoded through each PLA table according to the control signal output from the zero detection unit 23, and each of the table selection signals input from the control unit 25 is decoded. By selecting any one of the values decoded through the PLA table, input information of a variable length code is input to the variable length decoder core 20, and header information is input to the controller 25, while (run, level) The value comprises a table portion 30 cffur through the buffer 27 to the line-length decoder 29, which not only can significantly reduce the fanout of the output stage of the variable length decoder core, but also variable length decoding. Can be done quickly, and the size of the PLA table can be reduced. .

Description

가변 길이의 복호기Variable length decoder

제1도는 영상 부호화기의 개략적인 블록도.1 is a schematic block diagram of an image encoder.

제2도는 영상 복호화기의 개략적인 블록도.2 is a schematic block diagram of an image decoder.

제3도는 종래의 가변 길이 복호기의 개략적인 블록도.3 is a schematic block diagram of a conventional variable length decoder.

제4도는 본 발명에 따른 가변길이 복호기의 개략적인 블록도이다.4 is a schematic block diagram of a variable length decoder according to the present invention.

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

20 : 가변길이 복호기 코아 23 : 제로 검출부20: variable length decoder core 23: zero detection unit

24 : 코드 다중화기 25 : 제어부24: code multiplexer 25: control unit

27 : 버퍼 29 : 줄-길이 복호기27: buffer 29: line-length decoder

30 : 테이블부30: table part

본 발명은 영상 부호화기의 가변길이 부호기에 의해 가변길이 부호화되어 전송된 비트 스트림을 가변 길이 복호화하는 가변길이 복호기에 관한 것으로, 특히 가변 길이 복호화하는 속도를 향상시킨 가변 길이 복호기에 관한 것이다.The present invention relates to a variable length decoder for variable length decoding a bit stream that is variable length coded and transmitted by a variable length encoder of an image encoder, and more particularly, to a variable length decoder having an improved speed of variable length decoding.

현대 사회를 일컬어 정보화 사회라고 하는 바, 처리해야 하는 정보의 양이 나날이 늘어나는 추세이므로, 기존의 전송대역을 효과적으로 이용하기 위해서는 데이터를 압축하여야 한다.The modern society is also called an information society. Since the amount of information to be processed is increasing day by day, data must be compressed to effectively use the existing transmission band.

특히, 디지탈 영상신호의 경우에는 정보량이 매우 방대하기 때문에 정보의 저장과 검색, 전송등을 보다 효율적으로 하기 위해서는 영상 데이터를 압축하는 것이 필수적이다.In particular, in the case of digital video signals, since the amount of information is very large, it is essential to compress the video data in order to more efficiently store, retrieve, and transmit information.

이러한 이유에서 영상 데이터에 대한 압축 기법들이 많이 개발되어 왔으며, 이러한 영상 데이터 압축을 한마디로 요약하면 영상이 갖는 공간적, 시간적 중복성, 통계적 중복성을 제거함으로써 영상을 표시하는데 필요한 데이터량을 줄이는 것이다.For this reason, many compression techniques for image data have been developed. To summarize the compression of image data, the amount of data required to display an image is reduced by eliminating spatial, temporal redundancy, and statistical redundancy.

상기와 같은 영상 데이터 압축 기법은 정보의 손실 여부에 따라 손실 부호화와 무손실 부호화 기법으로 나눌 수 있으며, 정지영상에 존재하는 공간적 중복성을 제거하기 위한 프레임내(intraframe) 부호화와 동영상에 존재하는 시간적 중복성을 제거하기 위한 프레임간(interframe) 부호화로 나눌 수 있다.The image data compression method can be classified into loss coding and lossless coding according to whether information is lost or not, and intraframe coding and temporal redundancy present in a video to remove spatial redundancy present in still images. It can be divided into interframe encoding to remove.

상기 공간적 중복성을 제거하기 위한 프레임내 부호화는 변화부호화의 일정인 이산여현변환부호화(DCT) 및 양자화를 예로 들수 있으며, 상기 시간적 중복성을 제거하기 위한 프레임간 부호화의 일예로는 시간적으로 인접한 두 화면간의 움직임을 추정하여 보상함으로써 시간적인 중복성을 제거하는 움직임 추정 보상 부호화(motion estimation/compensation coding)를 들 수 있다.Intra-frame coding to remove spatial redundancy includes discrete cosine transform coding (DCT) and quantization, which are constants of change encoding, and an example of inter-frame coding to remove the temporal redundancy, includes two temporally adjacent screens. Motion estimation / compensation coding, which removes temporal redundancy by estimating and compensating for motion, may be used.

그리고, 상기 이산여현부호화(DCT)와 양자화 과정을 거친 계수값들을 엔트로피 부호화하여 통계적 중복성(statistical redundancy)을 제거하는 것이다.In addition, by performing entropy coding on coefficient values that have undergone the discrete cosine coding (DCT) and quantization, statistical redundancy is removed.

즉 상기 엔트로피 부호화는 양자화된 화소의 발생빈도가 다르게 분포되어 있으며 그들의 엔트로피가 B보다 작다면 Bbpp 보다 작은 코드가 존재한다는 통계적 특성을 이용하여 비트 발생율을 최소로 감축시키기 위한 무손실 부호화 알고리즘을 말한다.That is, the entropy coding refers to a lossless coding algorithm for minimizing the bit generation rate by using a statistical property that a frequency of occurrence of quantized pixels is distributed differently and if their entropy is smaller than B, a code smaller than Bbpp exists.

이러한 엔트로피 부호화 기법에는 허프만 부호화 기법을 이용한 가변 길이 부호화(Variable Lengh Coding :VLC) 기법, 줄길이 부호화(Run Lengh Coding : RLC) 기법 및, 비트 프레인 부호화(Bit Plane Coding : BPC) 기법 등 여러 가지가 있으나 가변 길이 부호화 및 줄길이 부호화 기법이 가장 널리 이용되고 있다.These entropy coding techniques include Variable Lengh Coding (VLC), Run Lengh Coding (RLC), and Bit Plane Coding (BPC). However, variable length coding and line length coding are the most widely used.

상기 가변 길이 부호화는 부호화되는 심볼의 확률적 분포에 따라 자주 발생되는 심볼에는 작은 비트를 할당하고 발생빈도가 낮은 심볼에 대해서는 많은 비트를 할당함으로써, 전체적으로 비트 발생율을 최소화하는 기법이다.The variable length coding is a technique of minimizing the bit generation rate by allocating small bits to frequently generated symbols and many bits to low frequency symbols according to the probability distribution of the encoded symbols.

이러한 가변 길이 부호화에는 여러 가지 종류가 있으나 구현이 용이한 허프만 부호화가 가장 널리 사용되고 있다.There are many kinds of such variable length coding, but Huffman coding that is easy to implement is most widely used.

또한, 상기 줄길이 부호화는 주로 이산여현부호화(DCT)와 같은 변환 부호화의 압축 효율을 증가시키기 위해 사용되는 것으로, 변환된 DCT 계수들은 일반적으로 대부분의 에너지가 낮은 주파수에 집중되고 높은 주파수 성분들은 거의 0에 가까운 값을 갖게 됨에 따라 지그-재그 주사(zig-zag scan)를 하여 가능한 한 긴 0의 1차원 데이터 열로 만든 다음 계속되는 0의 개수와 바로 연속되는 0이 아닌 계수값으로 구성된 2차원 심볼을 만드는 것이다.In addition, the line length coding is mainly used to increase the compression efficiency of transform coding such as Discrete Cosine Coding (DCT). The transformed DCT coefficients are generally concentrated at a low energy frequency and high frequency components are almost As it has a value close to zero, it performs a zig-zag scan to produce as long a zero-dimensional data column as possible, and then generates a two-dimensional symbol consisting of a continuous number of zeros and a non-zero coefficient value immediately following it. To make.

한편, 제1도는 일반적인 영상 부호화기의 구성을 개략적으로 나타낸 블록도로서 H.261, MPEG-1, MPEG-2 등의 많은 표준화된 부호기에서 사용되는 것이다.FIG. 1 is a block diagram schematically showing the configuration of a general video encoder and is used in many standardized encoders such as H.261, MPEG-1, and MPEG-2.

즉, 이산여현변환부(DCT)(1)에서는 픽셀간의 상관성을 제거하기 위하여 프레임간 차 영상을 예로 들면 8x8 픽셀의 블록으로 이산여현변환하여 이산여현변환 계수를 출력하고 양자화기(2)에서는 상기 이산여현변환부(11)에서 출력되는 프레임간 차 영상의 이산여현변환 계수를 소정의 양자화간격으로 양자화하여 출력한다.That is, the discrete cosine transforming unit (DCT) 1 outputs a discrete cosine transform coefficient by performing a discrete cosine transform on a block of 8x8 pixels, for example, to remove the correlation between pixels. The discrete cosine transform coefficients of the inter-frame difference image output from the discrete cosine transforming unit 11 are quantized at a predetermined quantization interval and output.

상기 양자화기(2)에서 양자화된 DCT 계수는 지그-재그 스캐닝 과정을 거쳐 1차원 데이터 열로 변환되어 줄길이 부호기(3)로 입력되고 상기 줄길이 부호기(3)는 지그-재그 스캐닝 과정을 통해 출력된 데이터열을 계속되는 0의 개수와 바로 연속되는 0이 아닌 계수값으로 구성된 (런, 레벨)의2차원으로 만든다.The DCT coefficients quantized by the quantizer 2 are converted into a one-dimensional data string through a zig-zag scanning process, input to a line length encoder 3, and the line length encoder 3 is output through a zig-zag scanning process. The resulting data stream is a two-dimensional (run, level) consisting of a continuous number of zeros and a non-zero coefficient value immediately following it.

그리고, 상기 줄길이 부호기(3)에서 줄길이 부호화된 데이터는 가변 길이 부호기(4)에서 허프만 테이블에 의해 가변 길이 부호화된 다음 비디오 버퍼(도시하지 않음)로 출력되는 것이다.The length coded data in the length coder 3 is variable length coded by the Huffman table in the variable length coder 4 and then output to a video buffer (not shown).

이때, DCT 계수중 DC 계수와 AC 계수를 구분하여 다른 방법으로 부호화한다. 보통 각 블록의 DC 값은 주변 블록의 DC값과 많은 상관성이 있으므로 이전 블록의 DC 값은 주변 블록의 DC 값과 많은 상관성이 있으므로 이전 블록의 DC값과 차리를 구하여 그 차이값을 부호화하고, 첫 번째 블록의 DC는 DC값의 가변범위의 중간값인 128과의 차이를 구하여 부호화한다. 이렇게 구해진 DC의 차이값들은 일차원 가변 길이 부호화를 통하여 부호화하게 되는 것이다.At this time, the DC coefficient and the AC coefficient among the DCT coefficients are distinguished and encoded in another method. Usually, since DC value of each block has much correlation with DC value of neighboring block, DC value of previous block has much correlation with DC value of neighboring block. Therefore, the difference value is encoded by calculating the difference with DC value of previous block. The DC of the first block is encoded by obtaining a difference from 128 which is an intermediate value of the variable range of the DC value. The DC difference values thus obtained are encoded through one-dimensional variable length coding.

즉, 상기 DC 계수는 DC 크기(dct_dc_size)와 DC 차이(dct_dc-differential)로 나누어져 가변 길이 부호화 되는데, DC 크기(dct_dc_size)가 0이면 그냥 DC 크기 (dct_dc_size)의 코드만 전송되고, 0이 아니면 그 뒤에 DC 크기(dct_dc_size)의 비트 수 만큼 DC 차이 (dct_dc-differential)값을 전송하는 것이다.That is, the DC coefficient is divided into DC size (dct_dc_size) and DC difference (dct_dc-differential) to be variable length coded. If DC size (dct_dc_size) is 0, only a code of DC size (dct_dc_size) is transmitted. After that, the DC difference (dct_dc-differential) is transmitted by the number of bits of the DC size (dct_dc_size).

또한, AC는 DCT 영역에서 DC 계수 부근의 AC 계수값이 0이 아닐 확률이 높고, DC에서 떨어질수록 0이 발생할 확률이 높다는 점을 이용하여 보다 더 효과적인 데이터 압축을 위해 계수들을 재정렬하는데, 주로 지그-재그 주사를 통하여 1차원으로 정렬한다. 여기서 0이 연속적으로 나타나는 개수(zero-run)와 0이 아닌 계수들의 값(level)을 (런, 레벨)의 2차원으로 표현한다.AC also reorders the coefficients for more efficient data compression by taking advantage of the fact that the AC coefficient near the DC coefficient in the DCT region is not zero, and that falling from DC has a higher probability of zero. -Align in one dimension by means of a zag scan. Here, zero-run and zero-level coefficients are expressed in two dimensions (run and level).

예를 들어, 지그-재그 스캔이 되어 30,2,0,0,-8,0,0,0,9...와 같이 정열된 DCT 계수는 줄길이 부호기(6)를 통하여 (0, 30), (0, 2), (2, -8), (3, 9)... 와 같이 표현된다.For example, a zig-zag scan results in aligned DCT coefficients such as 30,2,0,0, -8,0,0,0,9 ... ), (0, 2), (2, -8), (3, 9) ...

그리고 지그-재그 주사된 계수들이 어떤 위치 이후에 계속해서 끝까지 발생할 경우는 블록의 끝을 나타내는 EOB(end of block) 부호를 추가한다.And if the zig-zag scanned coefficients continue to end after some position, add an end of block (EOB) sign indicating the end of the block.

이와 같이, 줄길이 부호화된 데이터는 허프만 테이블에 의해 가변 길이 부호화되는 것이다.In this way, the line length coded data is variable length coded by the Huffman table.

또한, 인터코딘(intering)에서 전송해야할 계수가 없는 경우 이를 skipped macroblock 이라 하는데 이러한 skipped macroblock 블록이 몇 개나 계속되는지를 나타내는 정보 데이터와, 각 매크로블럭이 속해 있는 블록들이 코딩이 됐는가를 나타내는 정보 데이터들도 상기 비디오 버퍼(도시하지 않음)를 통해 복호기로 전송되는 것이다.In addition, when there are no coefficients to be transmitted in intercode, this is called skipped macroblock. Information data indicating how many skipped macroblock blocks are continued, and information data indicating whether the blocks to which the macroblock belongs is coded. It is transmitted to the decoder through the video buffer (not shown).

한편, 상기와 같은 압축과정을 통해 전송된 영상 데이터는 영상 복호기에서 원래의 데이터로 복원되며, 이러한 영상 복호기는 상기 영상 부호기를 역으로 구현하면 되는 것이다.On the other hand, the video data transmitted through the compression process as described above is restored to the original data in the video decoder, such a video decoder is to implement the video encoder in reverse.

즉, 제2도는 일반적인 영상 복호기의 개략적인 블럭도로서, 부호화된 데이터상 데이터에 대해 가변 길이 복호화를 수행하여 출력하는 가변 길이 복호기(5)와 상기 가변 길이 복호기(5)에서 출력된 영상 데이터에 대해 줄 길이 복호화를 수행하는 줄길이 복호기(6); 상기 줄길이 복호기(6)에서 출력된 데이터를 역으로 스캔하여 8x8 주파수 계수 블록을 출력하는 역스캐닝부(7); 상기 역스캐닝부(7)에서 출력된 8x8 주파수 계수 블럭에 대해 역 양자화를 수행하여 출력하는 역 양자화기(8); 상기 역 양자화기(8)에서 출력된 8x8 주파수 계수 블럭에 대해 DCT를 역으로 수행하여 8x8 화소 블럭을 출력하는 역이산여현변환부(9)를 포함하여 구성되어 있다.That is, FIG. 2 is a schematic block diagram of a general image decoder, and includes a variable length decoder 5 for performing variable length decoding on the encoded data and outputting the image data output from the variable length decoder 5. A line length decoder 6 for performing line length decoding on the line; An inverse scanning unit 7 which scans the data output from the line length decoder 6 in reverse and outputs an 8x8 frequency coefficient block; An inverse quantizer 8 for performing inverse quantization on the 8x8 frequency coefficient block output from the inverse scanning unit 7 and outputting the inverse quantizer; And an inverse discrete cosine transform section 9 for performing an inverse DCT on the 8x8 frequency coefficient block output from the inverse quantizer 8 and outputting an 8x8 pixel block.

상기와 같은영상 복호기에 있어서, 가변 길이 복호기(5)는 부호화된 비트 스트림으로부터 가변 길이 부호화된 DCT 계수를 뽑아서 가변 길이 부호화를 역으로 수행한 다음 줄길이 복호기(6)로 출력하고, 상기 줄길이 복호기(6)는 상기 가변 길이 복호기(5)에서 출력된 데이터에 대해 줄 길이 복호화를 수행하여 역스캐닝부(7)로 출력하는 것이다.In the video decoder as described above, the variable length decoder 5 performs variable length coding in reverse by extracting the variable length coded DCT coefficients from the coded bit stream, and then outputs the result to the line length decoder 6, and the line length. The decoder 6 performs line length decoding on the data output from the variable length decoder 5 and outputs it to the inverse scanning unit 7.

즉, 상기 줄길이 복호기(6)로 입력되는 데이터 기본적으로 런(run)과 레벨(level)을 갖게 되며 건은 0의 길이를 나타내고 레벨(level)은 런(run) 길이 만큼의 0 후에 이어지는 값이다.That is, the data input to the line length decoder 6 basically has a run and a level, and the gun represents a length of zero, and the level is a value following the zero as much as the run length. to be.

그리고 역스캐닝부(7)는 상기 줄길이 복호기(6)에서 출력된 일차원 DCT 계수를 스캐닝 방법에 따라 다시 2차원으로 바꿔주는 작업을 하는 것이다.In addition, the inverse scanning unit 7 converts the one-dimensional DCT coefficients output from the line length decoder 6 into two dimensions again according to the scanning method.

상기와 같이 2차원으로 출력된 DCT 계수는 역 양자화기(8)에서 역 양자화되어 실제의 DCT 계수값으로 복원된 다음, 역이산여현변환부(9)에서 역 이산여현 변환되어 8x8 화소 블럭으로 출력되는 것이다.The DCT coefficients output in two dimensions as described above are inversely quantized by the inverse quantizer 8 to be restored to the actual DCT coefficient values, and then inverse discrete cosine transformed by the inverse discrete cosine transforming unit 9 to be output as an 8x8 pixel block. Will be.

이때, 제1도에 도시된 가변 길이 부호기(4)는 코드 테이블에서 소스 심볼(source symbol)을 찾아서 여기에 해당하는 비트열을 생섬함에 따라 간단하게 수행할 수 있는 반면에, 상기 제2도에 가변 길이 복호기(5)에 의해 수행되는 가변 길이 복호화 과정은 매우 어렵다.In this case, the variable length encoder 4 shown in FIG. 1 can be easily performed by finding a source symbol in a code table and generating a corresponding bit string. The variable length decoding process performed by the variable length decoder 5 is very difficult.

즉, 가변 길이 부호화된 비트열은 순차적이므로 하나의 가변 길이 코드가 복호화된 다음에야 다음 가변 길이 코드를 복호화할 수 있으므로 파이프 라인이나 병열 처리가 곤란하다.That is, since the variable length coded bit string is sequential, the next variable length code can be decoded only after one variable length code is decoded, so that pipeline or parallel processing is difficult.

또한 가변 길이 부호화된 비트열은 각 가변 길이 워드의 길이가 다르므로 비트열의 입력 속도를 일정하게 하면 출력 속도가 가변적이되고, 출력 속도를 일정하게 하면 비트열의 입력 속도가 가변적인 된다. 따라서, 처리 속도의 차이에 따른 버퍼 제어나 스톨(stall) 처리가 필요하다.In addition, since the variable length coded bit strings have different lengths of the variable length words, when the input speed of the bit string is constant, the output speed is variable, and when the output speed is constant, the input speed of the bit string is variable. Therefore, buffer control or stall processing according to the difference in processing speed is required.

한편, 가변 길이 코드의 스트림을 복호화하는 장치는 크게 순차적 복호화와 병열 복호화로 나눌 수 있는데, 특히 순차적 복호화는 비트열을 앞에서부터 차례대로 복호화하는 방법으로서 정속 입력 구조, 정속 출력 구조, 가변 입/출력 구조로 나눌 수 있다.On the other hand, the apparatus for decoding a stream of variable length code can be largely divided into sequential decoding and parallel decoding. In particular, sequential decoding is a method of decoding a bit sequence sequentially from the front, and is a constant speed input structure, a constant speed output structure, a variable input / output It can be divided into structures.

그중 정속 출력 구조의 가변 길이 복호기는 Bell Core 의 M,T Sum이 제안한 구조로 입력 비트열을 가변 길이 코드의 최대 길이 (17비트)만큼 잘라서 ROM/PLA(Read Only Memory / Programmable Logic Array) 테이블에 입력하여 가변 길이 코드를 찾은 후 찾은 가변 길이 코드의 길이 만큼 배럴 시프터(barrel shifter)로 시프트 시킨 후 다음코드 워드를 찾는 방식이다.(Bell Core, U,S,A Patent no 5173695, 5245338)Among them, the variable length decoder of the constant speed output structure is proposed by M, T Sum of Bell Core, and the input bit string is cut by the maximum length (17 bits) of the variable length code and read into the ROM / PLA (Read Only Memory / Programmable Logic Array) table. After finding the variable length code by inputting, it shifts the barrel shifter by the length of the variable length code found and then finds the next code word. (Bell Core, U, S, A Patent no 5173695, 5245338)

상기와 같은 방식의 가변 길이 복호기는 제3도에 도시된 바와 같이, 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이(17비트)로 잘라서 출력하는 가변 길이 복호기 코아(20)와; 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 체이블 선택신호를 출력하는 제어부(25) 및: 상기 가변 길이 복호기 코아(20)에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 동시에 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보는 상기 가변 길이 복호기 코아(20)로 입력하고, 헤더 정보는 상기 제어부(25)로 입력하는 한편 (런, 레벨)값은 버퍼(27)을 xd해 줄-길이 복호기(29)로 출력하는 테이블부(30)를 포함하여 구성되어 있다.As shown in FIG. 3, the variable length decoder of the above-described method has a variable length that barrel-shifts the variable length coded bit string by the length of the variable length code and cuts it to the maximum length (17 bits) of the variable length code. A decoder core 20; A controller 25 for receiving a variable length code and header information output from the variable length decoder core 20 and outputting a cable select signal; each variable length code input from the variable length decoder core 20 Simultaneously decoding through a table and selecting any one of the values decoded through each PLA table according to the table selection signal input from the controller 25, the length information of the variable length code is sent to the variable length decoder core 20. And a table unit 30 for inputting header information to the control unit 25 and a (run, level) value for outputting the buffer 27 to the line-length decoder 29 for xd. .

즉, 가변 길이 복호기 코아(20)는 시스템 복호기(도시하지 않음)을 통해 출력된 비트열을 가면 길이 코드의 최대 길이(17비트)만을 잘라서 출력하며, 이때 상기테이블부(30)로부터 입력된 가변 길이코드의 길이 만큼 배럴 시프트시킨 다음 다시 가변 길이 코드의 최대 길이(17비트)만큼 잘라서 출력하는 것을 반복한다.That is, the variable length decoder core 20 cuts and outputs only the maximum length (17 bits) of the length code when the bit string output through the system decoder (not shown) is output, and the variable input from the table unit 30 is output. The barrel is shifted by the length of the length code and then cut and output by the maximum length (17 bits) of the variable length code.

그리고 상기 제어부(25)는 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드 및 테이블부(30)에서 출력된 6비트의 헤더 정보를 입력받아 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드가 상기 테이블부(30)의 각 PLA 테이블 중 어느 PLA 테이블에 해당하는지를 알아내어 해당하는 PLA 테이블을 선택하도록 3비트의 테이블 선택신호를 상기 테이블부(30)로 출력하는 것이다.The control unit 25 receives the 17-bit variable length code output from the variable length decoder core 20 and the 6-bit header information output from the table unit 30 and receives the variable length decoder core 20 from the variable length decoder core 20. It is to find out which PLA table among the PLA tables of the table unit 30 corresponds to the output variable length code, and outputs a 3-bit table selection signal to the table unit 30 to select the corresponding PLA table.

그리고 테이블부(30)는 상기 가변 길이 복호기 코아(20)에서 입력된 17비트의 가변 길이 코드를 각 PLA 테이블을 통해 동시에 복호화하고, 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 것중 어느 한 값을 선택하여 출력한다.The table unit 30 simultaneously decodes the 17-bit variable length code inputted from the variable length decoder core 20 through each PLA table, and sets up each PLA table according to the table selection signal inputted from the control unit 25. Select and output one of the decrypted values.

이때, 상기 테이블부(30)의 각 PLA 테이블을 통해 복호화된 값이 가변 길이 코드의 길이 정보(5비트)이면 상기 가변 길이 복호기 코아(20)로 입력하고 헤더 정보(6비트)이면 상기 제어부(25)로 입력하는 한편 (런, 레벨) 값이면 버퍼(27)를 통해 줄-길이 복호기(29)로 출력하는 것이다.In this case, if the value decoded through each PLA table of the table unit 30 is the length information (5 bits) of the variable length code, it is input to the variable length decoder core 20, and if the header information (6 bits), the controller ( 25) and (run, level) values are output to the line-length decoder 29 through the buffer 27.

이때, 상기 PLA 테이블은 MBA, MTYPE, DC, MVD, CBP, TOEFF 등 크게 6개의 테이블로 이루어지며, 각 테이블 마다 2비트에서 최대 17비트를 받아서 길이 정보를 출력한다.At this time, the PLA table is composed of six tables such as MBA, MTYPE, DC, MVD, CBP, TOEFF, etc., and receives length information from 2 bits up to 17 bits and outputs length information.

그리고 헤더 정보는 MBA, MTYPE, DC, MVD, CBP 등의 테이블에서 출력되며, 매트로 블럭의 헤더를 디코딩한 값이다.The header information is output from a table of MBA, MTYPE, DC, MVD, CBP, etc., and is a value obtained by decoding a header of a macro block.

그리고 TOEFF 테이블에서는 길이와 함께(런, 레벨) 값을 출력하는데 입력 비트 수도 크지만 출력시키는 비트 수도 크고 테이블이 가지고 있는 코드들의 수도 227개나 되므로 가장 큰 크기를 갖는다.In the TOEFF table, the number of input bits is large, but the number of bits to output is large and the number of codes in the table is 227.

이와 같은 종래의 가변 길이 복호기에 있어서 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드가 상기 테이블부(30)의 각 PLA 테이클을 통과할 때 발생되는 자연시간과 상기 각 PLA 테이블을 통해 출력된 갑을 다중화(MULTI PLEXING)할 때 발생되는 지연시간이 클 뿐만 아니라, 가변 길이 코드가 모든 PLA 테이블에 입력이 되기 때문에 각 PLA 테이블로 입력되는 가변 길이 코드에 너무나 많은 팬아웃(FANOUT)이 걸리게 된다.In the conventional variable length decoder, the variable length code output from the variable length decoder core 20 passes through each PLA table of the table unit 30 and the natural time generated through each PLA table. In addition to the large delay that occurs when MULTI PLEXING is output, the variable length code is inputted to all PLA tables, so that too many fanouts are applied to the variable length codes inputted to each PLA table. do.

따라서, 각 PLA 테이블을 구동하는 출력 게이트들이 상당히 큰 시간 지연을 갖는 문제점이 있었다.Thus, there was a problem that the output gates driving each PLA table had a considerably large time delay.

특히, 가변 길이 코드의 상위 8비트는 거의 모든 테이블에 입력이 되므로, 이 부분에서 팬아웃(fanout)이 큰 문제점이 있었다.In particular, since the upper 8 bits of the variable length code are input to almost all tables, there is a big problem with fanout in this part.

따라서, 본 발명은 상기와 같은 종래의 제 문제점을 해소하여, 가변 길이 복호기 코아의 출력단의 팬아웃을 현저하게 줄일 수 있을 뿐만 아니라 가변 길이 복호화 속도를 향상시킨 가변길이 복호기를 제공하는데 그 목적이 있다.Accordingly, an object of the present invention is to provide a variable length decoder which not only reduces the fanout of the output stage of the variable length decoder core but also improves the variable length decoding speed by solving the above-described problems. .

이러한 목적을 달성하기 위한 본 발명에 따른 가변 길이 복호기는, 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이로 잘라서 출력하는 가변 길이 복호기 코아와; 상기 가변 길이 복호기 코아에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 또는 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부; 상기 제로검출부의 제어신호에 따라 상기 가변 길이 복호기 코아에서 출력된 가변 길이 코드의 일부만을 출력하는 코드 다중화기; 상기 가변 길이 복호기 코아에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택신호를 출력하는 제어부 및; 상기 제로검출부에서 출력된 제어신호에 따라 상기 코드 다중화기에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보는 상기 가변 길이 복호기 코아로 입력하고, 헤더 정보는 상기 제어부로 입력하는 한편, (런, 레벨) 값은 버퍼를 통해 줄-길이 복호기로 출력하는 테이블부를 포함하여 구성된 것을 특징으로 한다.The variable length decoder according to the present invention for achieving the above object comprises: a variable length decoder core for barrel-shifting the variable length coded bit string by the length of the variable length code and cutting the variable length code into a maximum length of the variable length code; A zero detection unit which checks whether a predetermined constant bit of the variable length code output from the variable length decoder core is 0 or 1 and outputs a control signal according to the result; A code multiplexer for outputting only a part of the variable length code output from the variable length decoder core according to the control signal of the zero detector; A controller for receiving a variable length code and header information output from the variable length decoder core and outputting a table selection signal; The variable length code input from the code multiplexer is decoded through each PLA table according to the control signal output from the zero detection unit, and any one of values decoded through each PLA table according to the table selection signal input from the control unit. Selecting a value, the length information of the variable length code is input to the variable length decoder core, the header information is input to the controller, and the (run, level) value includes a table unit for outputting to the line-length decoder through a buffer. Characterized in that configured.

이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the present invention.

제4도는 본 발명에 따른 길이 복호기의 개략적인 구성도로서, 본 발명에 따른 가변 길이 복호기는, 가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트시켜 가변 길이 코드의 최대 길이(17비트)로 잘라서 출력하는 가변 길이 복호기 코아(20)와; 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 또는 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부(23); 상기 제로검출부(23)의 제어신호에 따라 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 일부만을 출력하는 코드 다중화기(24); 상기 가변길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택신호를 출력하는 제어부(25) 및; 상기 제로검출부(23)에서 출력된 제어신호에 따라 상기 코드 다중화기(24)에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 덥어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변 길이 코드의 길이 정보는 상기 가변 길이 복호기 코아(20)로 입력하고, 헤더 정보는 상기 제어부(25)로 입력하는 한편, (런, 레벨) 값은 버퍼(27)를 통해 줄-길이 복호기(29)로 출력하는 테이블부(30)를 포함하여 구성되어 있다.FIG. 4 is a schematic configuration diagram of a length decoder according to the present invention. The variable length decoder according to the present invention barrel-shifts a variable length coded bit string by the length of a variable length code (17 bits). A variable length decoder core 20 which is cut out and outputted into a; A zero detector (23) for checking whether a predetermined constant bit of the variable length code output from the variable length decoder core (20) is 0 or 1 and outputting a control signal according to the result; A code multiplexer (24) for outputting only a part of the variable length code output from the variable length decoder core (20) according to the control signal of the zero detector (23); A control unit 25 for receiving a variable length code and header information output from the variable length decoder core 20 and outputting a table selection signal; The variable length code input from the code multiplexer 24 is decoded through each PLA table according to the control signal output from the zero detector 23, and according to the table selection signal input from the controller 25. By selecting any one of the values decoded through the PLA table, the length information of the variable length code is input to the variable length decoder core 20, and the header information is input to the controller 25, while (run, level) The value is configured to include a table portion 30 which outputs to the line-length decoder 29 via the buffer 27.

이때, 상기 제로검출부(23)는, 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중 상위 8비트를 검사하여 상위 4비트가 모두 0인 경우에는 1의 제어신호를 출력하고, 상위 8비트가 모두 0인 경우에는 10의 제어신호를 출력하며, 상위 4비트가 모두 1인 경우에는 11의 제어신호를 출력하고, 이상을 제외한 나머지 경우에는 0의 제어신호를 출력하도록 되어 있다.At this time, the zero detecting unit 23 checks the upper 8 bits of the 17-bit variable length code output from the variable length decoder core 20 and outputs a control signal of 1 when the upper 4 bits are all 0. When the upper 8 bits are all 0, 10 control signals are output. When the upper 4 bits are all 1, 11 control signals are output. Otherwise, the control signals of 0 are output. .

그리고, 상기 코드 다중화기(24)는 상기 제로검출부(23)로부터 1 또는 11의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 [12 : 4]의 9비트를 출력하고, 상기 제로검출부(23)로부터 10의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 하위 9비트를 출력하며, 상기 제로검출부(23)로부터 0의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중 상위 9비트를 출력하도록 되어 있다.When the control signal of 1 or 11 is inputted from the zero detector 23, the code multiplexer 24 selects [12: 4] of the 17 bits of the variable length code output from the variable length decoder core 20. When 9 bits are output and 10 control signals are input from the zero detector 23, the lower 9 bits are output from the 17 bits of the variable length code output from the variable length decoder core 20, and the zero detector 23 is output. When a control signal of 0 is inputted from the control unit, the upper 9 bits of the 17-bit variable length code output from the variable length decoder core 20 are output.

그리고, 테이블부(30)는 5비트의 런(run)값과 6비트의 레벨(level)값을 출력하도록 되어 있는 한편, 헤더 정보를 레벨 경로를 통해 상기 제어부(25)로 입력하도록 되어 있다.The table unit 30 is configured to output a run value of 5 bits and a level value of 6 bits, while inputting header information to the controller 25 via a level path.

상기와 같이 구성된 본 발명에 따른 가변 길이 복호화기의 작용 및 효과를 상세히 설명하면 다음과 같다.Referring to the operation and effects of the variable length decoder according to the present invention configured as described above in detail as follows.

가변 길이 복호기 코아(20)는 시스템 복호기(도시하지 않음)을 통해 시스템 복호화된 비트 스트림을 가변 길이 코드의 최대 길이(17비트)만큼 잘라서 출력한다.The variable length decoder core 20 cuts and outputs the system-decoded bit stream by the maximum length (17 bits) of the variable length code through a system decoder (not shown).

그리고, 테이블부(30)로부터 입력된 가변 길이 코드의 길이 만큼 배럴 시프트 시킨 다음 다시 가변 길이 코드의 최대 길이(17비트) 만큼 잘라서 출력하는 것을 반복한다.Then, the barrel is shifted by the length of the variable length code inputted from the table unit 30, and then cut and output by the maximum length (17 bits) of the variable length code again.

그리고, 제어부(25)는 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드 및 테이블부(30)에서 출력된 헤더 정보를 입력받아 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드가 테이블부(30)의 각 PLA 테이블 중 어느 PLA 테이블에 해당하는 지를 알아내어 해당하는 PLA 테이블을 선택하도록 3비트의 테이블 선택신호를 테이블부(30)로 출력한다.The controller 25 receives the 17-bit variable length code output from the variable length decoder core 20 and the header information output from the table unit 30, and outputs the variable output from the variable length decoder core 20. It finds out which PLA table among the PLA tables of the table unit 30, and outputs a 3-bit table selection signal to the table unit 30 to select the corresponding PLA table.

한편, 제로검출부(23)는, 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중 상위 8비트를 검사하여 상위 4비트가 모두 0인 경우에는 1의 제어신호를 출력하고, 상위 8비트가 모두 0인 경우에는 10의 제어신호를 출력하며, 상위 4비트가 모두 1인 경우에는 11의 제어신호를 출력하고, 이상을 제외한 나머지 경우에는 0의 제어신호를 출력한다.On the other hand, the zero detection unit 23 checks the upper 8 bits of the 17-bit variable length code output from the variable-length decoder core 20, and outputs a control signal of 1 when the upper 4 bits are all 0, If the upper 8 bits are all 0, 10 control signals are output. If the upper 4 bits are all 1, 11 control signals are output. If the upper 4 bits are all 1, the control signals of 0 are output.

그리고, 상기 코드 다중화기(24)는 상기 제로검출부(23)로부터 1 또는 11의 제어 신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 [12 : 4]의 9비트를 출력하고, 상기 제로검출부(23)로부터 10의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 하위 9비트를 출력하며, 상기 제로검출부(23)로부터 0의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중 상위 9비트를 출력한다.When the control signal of 1 or 11 is inputted from the zero detector 23, the code multiplexer 24 selects [12: 4] from among the 17 bits of the variable length code output from the variable length decoder core 20. When 9 bits are output and 10 control signals are input from the zero detector 23, the lower 9 bits are output from the 17 bits of the variable length code output from the variable length decoder core 20, and the zero detector 23 is output. When a control signal of 0 is input from the N-th output signal, the upper 9 bits of the 17-bit variable length code output from the variable length decoder core 20 are output.

그리고, 테이블부(30)는 상기 제로검출부(23)에서 출력된 제어신호에 따라 상기 코드 다중화기(24)에서 입력된 9비트의 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어는 한 값을 선택하여 가변 길이 코드의 길이 정보(5비트)는 상기 가변 길이 복호기 코아(20)로 입력하고, 헤더 정보(6비트)는 상기 제어부(25)로 입력하는 한편, 런(RUN : 5비트), 레벨(LEVEL : 7비트)값은 버퍼(27)를 통해 줄-길이 복호기(29)로 출력하는 것이다.In addition, the table unit 30 decodes the 9-bit variable length code input from the code multiplexer 24 through each PLA table according to the control signal output from the zero detection unit 23 and controls the control unit ( According to the table selection signal input in step 25), one of the values decoded through each PLA table is selected, and the length information (5 bits) of the variable length code is input to the variable length decoder core 20, and the header information ( 6 bits) are inputted to the controller 25, while run (RUN: 5 bits) and level (LEVEL: 7 bits) values are output to the line-length decoder 29 through the buffer 27.

이때, 상기 PLA 테이블은 MBA, MTYPE, DC,MVD, CBP, TCOEFF 등 크게 6개의 테이블로 이루어지며, 각 테이블 마다 2비트에서 최대 17비트를 받아서 길이 정보를 출력한다.At this time, the PLA table is composed of six tables such as MBA, MTYPE, DC, MVD, CBP, TCOEFF, etc., and receives length information from 2 bits up to 17 bits and outputs length information.

그리고, 헤더 정보는 MBA, MTYPE, DC, MVD, CBP 등의 테이블에서 출력되며, 매크로 블럭의 헤더를 디코딩한 값이다.The header information is output from a table such as MBA, MTYPE, DC, MVD, CBP, etc., and is a value obtained by decoding a header of a macro block.

그리고, TCOEFF 테이블에서는 길이와 함께 런, 레벨 값을 출력한다.In the TCOEFF table, run and level values are output along with the length.

이때, 상기 테이블부(30)는 5비트의 런(run)값과 7비트의 레벨(level)값을 출력하도록 되어 있는 한편, 상기 MBA 등의 각 PLA 테이블에서 출력되는 매크로 블럭의 헤더를 디코딩한 값은 상기 레벨의 경로를 통해 상기 제어부(25)로 입력하도록 되어 있다.At this time, the table unit 30 is configured to output a run value of 5 bits and a level value of 7 bits, while decoding the header of the macro block output from each PLA table such as the MBA. A value is input to the controller 25 via the path of the level.

이상에서 살펴본 바와 같이 본 발명에 따르면, 가변 길이 복호기 코아의 출력단의 팬아웃을 현저하게 줄일 수 있을 뿐만 아니라 가변 길이 복호화를 빠르게 수행할 수 있고, PLA 테이블의 크기를 줄일 수 있는 것이다.As described above, according to the present invention, not only the fanout of the output stage of the variable length decoder core can be significantly reduced, but also the variable length decoding can be performed quickly, and the size of the PLA table can be reduced.

Claims (7)

가변 길이 부호화된 비트열을 가변 길이 코드의 길이 만큼 배럴 시프트 시켜 가변 길이 코드의 최대 길이로 잘라서 출력하는 가변 길이 복호기 코아(20)와; 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 상위 일정 비트가 0인지 또는 1인지를 검사하여 그 결과에 따라 제어신호를 출력하는 제로검출부(23); 상기 제로 검출부(23)의 제어신호에 따라 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드의 일부만을 출력하는 코드 다중화기(24); 상기 가변 길이 복호기 코아(20)에서 출력된 가변 길이 코드 및 헤더 정보를 입력받아 테이블 선택신호를 출력하는 제어부(25); 상기 제로검출부(23)에서 출력된 제어신호에 따라 상기 코드 다중화기(24)에서 입력된 가변 길이 코드를 각 PLA 테이블을 통해 복호화함과 더불어 상기 제어부(25)에서 입력된 테이블 선택신호에 따라 각 PLA 테이블을 통해 복호화된 값중 어느 한 값을 선택하여 가변길이 코드의 길이 정보는 상기 가변길이 복호기 코아(20)로 입력하고, 헤어 정보는 상기 제어부(25)로 입력하는 한편, (런, 레벨) 값은 버퍼(27)를 통해 줄-길이 복호기(29)로 출력하는 테이블부(30)를 포함하여 구성된 가변길이 복호기.A variable length decoder core 20 for barrel-shifting the variable length coded bit string by the length of the variable length code and cutting the variable length code into a maximum length of the variable length code; A zero detector (23) for checking whether a predetermined constant bit of the variable length code output from the variable length decoder core (20) is 0 or 1 and outputting a control signal according to the result; A code multiplexer (24) for outputting only a part of the variable length code output from the variable length decoder core (20) according to the control signal of the zero detector (23); A controller 25 for receiving a variable length code and header information output from the variable length decoder core 20 and outputting a table selection signal; The variable length code input from the code multiplexer 24 is decoded through each PLA table according to the control signal output from the zero detection unit 23, and the table selection signal input from the control unit 25 is decoded. By selecting any one of the values decoded through the PLA table, the length information of the variable length code is input to the variable length decoder core 20, and the hair information is input to the controller 25, while (run, level) A variable length decoder configured to include a table 30 for outputting a value to a line-length decoder 29 through a buffer 27. 제1항에 있어서, 상기 제로검출부(23)는, 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중 상위 8비트를 검사하여 상위 4비트가 모두 0인 경우에는 1의 제어신호를 출력하고, 상위 8비트가 모두 0인 경우에는 10의 제어신호를 출력하며, 상위 4비트가 모두 1인 경우에는 11의 제어신호를 출력하고, 이상을 제외한 나머지 경우에는 0의 제어신호를 출력하도록 된 것을 특징으로 하는 가변길이 복호기.The zero-detector 23 checks the upper 8 bits of the 17-bit variable length codes output from the variable length decoder core 20, and controls 1 if the upper 4 bits are all zeros. Outputs a signal, outputs 10 control signals if the upper 8 bits are all 0, outputs 11 control signals if all the upper 4 bits are 1, and outputs a control signal of 0 for all but the above. Variable length decoder, characterized in that the output. 제1항에 있어서, 상기 코드 다중화기(24)는, 상기 제로검출부(23)로부터 1 또는 11의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 [12 : 4]의 9비트를 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.The variable multiplexer of claim 1, wherein the code multiplexer (24) is selected from the 17-bit variable length code output from the variable length decoder core (20) when a control signal of 1 or 11 is input from the zero detector (23). 12: 4] A variable length decoder characterized in that for outputting 9 bits. 제1항에 있어서, 상기 코드 다중화기(24)는, 상기 제로검출부(23)로부터 10의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중에서 하위 9비트를 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.2. The code multiplexer 24 according to claim 1, wherein the code multiplexer 24 receives the lower 9 bits of the 17-bit variable length code output from the variable-length decoder core 20 when 10 control signals are input from the zero detector 23. Variable length decoder, characterized in that for outputting. 제1항에 있어서, 상기 코드 다중화기(24)는, 상기 제로 검출부(23)로부터 0의 제어신호가 입력되면 상기 가변 길이 복호기 코아(20)에서 출력된 17비트의 가변 길이 코드중 상위 9비트를 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.2. The code multiplexer 24 according to claim 1, wherein the code multiplexer 24, when zero control signal is input from the zero detector 23, is the upper 9 bits of the 17-bit variable length code output from the variable length decoder core 20. Variable length decoder, characterized in that for outputting. 제1항에 있어서, 상기 테이블(30)는, 5비트의 런값과 7비트의 레벨값을 출력하도록 된 것을 특징으로 하는 가변 길이 복호기.The variable length decoder according to claim 1, wherein the table (30) outputs a 5-bit run value and a 7-bit level value. 제1항에 있어서, 상기 테이블부(30)는, 헤더 정보를 레벨의 경로를 통해 상기 제어부(25)로 입력하도록 된 것을 특징으로 하는 가변 길이 복호기.The variable length decoder of claim 1, wherein the table unit (30) inputs header information to the control unit (25) through a path of a level.
KR1019950061380A 1995-12-28 1995-12-28 A variable length decoder KR100195716B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950061380A KR100195716B1 (en) 1995-12-28 1995-12-28 A variable length decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950061380A KR100195716B1 (en) 1995-12-28 1995-12-28 A variable length decoder

Publications (2)

Publication Number Publication Date
KR970057933A KR970057933A (en) 1997-07-31
KR100195716B1 true KR100195716B1 (en) 1999-06-15

Family

ID=19445889

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950061380A KR100195716B1 (en) 1995-12-28 1995-12-28 A variable length decoder

Country Status (1)

Country Link
KR (1) KR100195716B1 (en)

Also Published As

Publication number Publication date
KR970057933A (en) 1997-07-31

Similar Documents

Publication Publication Date Title
KR100468844B1 (en) Optimal scanning method for transform coefficients in image and video coding/decoding
EP0850540B1 (en) Transmission and reception of encoded video pictures
KR100718134B1 (en) Method and apparatus of encoding/decoding video data using bitrate adaptive binary arithmetic coding
US6055272A (en) Run length encoder
KR20010110629A (en) Method and system for compressing motion image information
US7158684B2 (en) Entropy coding scheme for video coding
US20060233447A1 (en) Image data decoding apparatus and method
JP2000506715A (en) Dual speed variable length decoder and decoding architecture for MPEG-2 video data
KR101710619B1 (en) Method and apparatus for successively encoding/decoding image
KR100801967B1 (en) Encoder and decoder for Context-based Adaptive Variable Length Coding, methods for encoding and decoding the same, and a moving picture transmission system using the same
KR100195717B1 (en) A variable length decoder
KR100195715B1 (en) A variable length decoder
KR100195716B1 (en) A variable length decoder
KR0154011B1 (en) Variable length decoder
KR100195722B1 (en) A variable length decoder
KR100195720B1 (en) A state controller for variable length decoder
KR100210389B1 (en) A run length encoder
KR100285592B1 (en) Image signal encoding method and apparatus
KR100204483B1 (en) A level value generator of a run length encoder
JPH09154133A (en) Image encoder and variable length coding method
KR100195726B1 (en) A circuit for initially driving run-length decoder
KR100204482B1 (en) A run length generator of a run length encoder
KR100251310B1 (en) Transmission signal generator of run length coder
KR100221310B1 (en) A transfer signal generator of a run length encoder
KR100251312B1 (en) Run value generator of run length coder

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

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee