KR19990081316A - Table structure of variable length code and parallel decoding device and method - Google Patents

Table structure of variable length code and parallel decoding device and method Download PDF

Info

Publication number
KR19990081316A
KR19990081316A KR1019980015176A KR19980015176A KR19990081316A KR 19990081316 A KR19990081316 A KR 19990081316A KR 1019980015176 A KR1019980015176 A KR 1019980015176A KR 19980015176 A KR19980015176 A KR 19980015176A KR 19990081316 A KR19990081316 A KR 19990081316A
Authority
KR
South Korea
Prior art keywords
code
variable length
decoding
group
codes
Prior art date
Application number
KR1019980015176A
Other languages
Korean (ko)
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 KR1019980015176A priority Critical patent/KR19990081316A/en
Publication of KR19990081316A publication Critical patent/KR19990081316A/en

Links

Abstract

본 발명은 MPEG과 같은 가변길이코드(VLC) 코딩된 디지탈 데이타를 디코딩하기 위한 코드테이블의 구조와 이 코드테이블을 작성하는 방법 및 이 코드테이블을 이용해서 가변길이코드를 병렬 디코딩하는 장치와 그 방법에 관한 것이다.The present invention relates to a structure of a code table for decoding variable length code (VLC) coded digital data such as MPEG, a method of creating the code table, an apparatus for parallel decoding of variable length code using the code table, and a method thereof. It is about.

종래의 가변길이코드 디코더는 한번에 한코드밖에 디코딩하지 못하기 때문에 HDTV 디코더 등에 적용할 경우 주변블럭(IDCT/움직임 보상기)과의 동작속도의 차이를 극복하기 어렵고 또 여기에 맞춰서 동작속도를 낮출 수 없다.Since the conventional variable length code decoder can decode only one code at a time, it is difficult to overcome the difference in the operation speed with the peripheral block (IDCT / motion compensator) when applied to an HDTV decoder, etc., and the operation speed can not be lowered accordingly. .

본 발명은 가변길이코드의 연속하는 출현빈도수를 기준으로 출현빈도수가 높은순으로 재배치하여 이 것을 가변길이코드의 그룹코드로 대표하도록 하고, 이 그룹코드가 출현하면 그 그룹코드가 포함(대표)하는 적어도 2개 이상의 가변길이코드를 동시에 디코딩함으로써 고속 병렬처리를 가능하게 한 가변길이 코드의 테이블 구조 및 병렬 디코딩 장치와 그 방법을 제공한다.The present invention rearranges the frequency of occurrence of the variable length code in order of high frequency, and represents the group code of the variable length code. When the group code appears, the group code is included (represented). Provided are a table structure, a parallel decoding apparatus, and a method of variable length code, which enable high-speed parallel processing by decoding at least two or more variable length codes simultaneously.

Description

가변길이코드의 테이블 구조 및 병렬 디코딩 장치와 방법Table structure of variable length code and parallel decoding device and method

본 발명은 MPEG과 같은 가변길이코드(VLC) 코딩된 디지탈 데이타를 디코딩하기 위한 코드테이블의 구조와 이 코드테이블을 작성하는 방법 및 이 코드테이블을 이용해서 가변길이코드를 병렬 디코딩하는 장치와 그 방법에 관한 것이다.The present invention relates to a structure of a code table for decoding variable length code (VLC) coded digital data such as MPEG, a method of creating the code table, an apparatus for parallel decoding of variable length code using the code table, and a method thereof. It is about.

종래에 가변길이코드는 고속 데이타 전송시스템에서 널리 사용되고 있는데, 일반적으로 하프만코드라고도 불리며, 데이타의 통계적 특성을 이용한 최적의 코딩 기법의 하나이다.Conventionally, variable length codes are widely used in high-speed data transmission systems, and are generally called half-man codes, and are one of optimal coding techniques using statistical characteristics of data.

즉, 데이타의 통계적 특성이 알려졌을때 데이타가 자주 발생될수록 짧은 코드워드를 할당하고 발생빈도가 작을수록 긴 코드워드를 할당하며, 모든 가능한 데이타에 대하여 이러한 방법으로 적당한 코드워드가 할당되면 평균 코드워드 길이는 원 데이타의 평균 코드워드 길이보다 짧아지기 때문에 데이타의 통계적 특성이 알려진 경우에 손실없이 효과적으로 부호화하는데 널리쓰이고 있다.In other words, when the statistical characteristics of the data are known, shorter datawords are assigned as the data is frequently generated, and longer codewords are assigned as the frequency of occurrence is small.Average codeword is allocated when appropriate codewords are allocated in this way to all possible data. Since the length is shorter than the average codeword length of the original data, it is widely used for effective coding without loss when the statistical properties of the data are known.

특히 MPEG1,MPEG2 또는 HDTV분야에서 압축율을 높이기 위하여 채택하고 있으며, 점차 빠른 속도의 가변길이코드 디코더가 필요하게 됨에 따라 한번에 한비트씩을 디코딩하는 방법인 비트열 트리 베이스드 아키텍쳐(BIT SREIAL TREE-BASED ARCHITECTURE)보다는 한번에 코드하나를 디코딩하는 심볼열(SYMBOL-SERIAL) 프로그래머블 로직 어레이-베이스드 아키텍쳐(PLA-BASED ARCHITECTURE)가 제안되고 있다.In particular, it is adopted to increase the compression rate in MPEG1, MPEG2 or HDTV field, and it is required to decode bit by bit at the same time as a variable speed code decoder of high speed is needed. SLAMBOL-SERIAL programmable logic array-based architecture (PLA-BASED ARCHITECTURE) that decodes one code at a time is proposed.

도1은 이러한 종래의 심볼단위 코딩/디코딩 기법을 이용하는 가변길이코드 디코더의 간단한 예를 나타낸다.Fig. 1 shows a simple example of a variable length code decoder using this conventional symbol unit coding / decoding technique.

입력버퍼(100)는 데이타 채널을 통해서 수신된 가변길이워드의 직렬 비트 스트림을 저장하고, 인터페이스부(101)는 래치와 배럴쉬프터로 이루어져서 상기 입력버퍼(100)와 디코더부(102) 사이를 인터페이스한다.The input buffer 100 stores a serial bit stream of a variable length word received through a data channel, and the interface unit 101 includes a latch and a barrel shifter to interface between the input buffer 100 and the decoder unit 102. do.

디코더부(102)는 래치와 배럴쉬프터로 이루어지며 도면에서는 외부에 도시하였으나 디코딩을 위한 VLC테이블(103)를 포함한다.The decoder unit 102 includes a latch and a barrel shifter and includes a VLC table 103 for decoding although illustrated externally.

VLC테이블(103)는 코드워드테이블(105)과 코드워드 길이테이블(106), 디코드워드 테이블(107)를 포함하여 코드워드를 출력한다.The VLC table 103 includes a codeword table 105, a codeword length table 106, and a decodeword table 107 to output a codeword.

디코더부(102)는 연속적인 가변길이 코드워드를 가산기(104)의 캐리출력에 따른 코드구분을 통해서 계속적인 스트림으로 디코드하고 또 리드신호에 따라 고정된 고정길이 코드워드를 대응 출력하는 것이다.The decoder unit 102 decodes the continuous variable length codeword into a continuous stream through the code division according to the carry output of the adder 104 and correspondingly outputs a fixed length codeword fixed according to the read signal.

그러나, 이러한 종래의 심볼열 가변길이코드 디코더를 HDTV와 같은 고성능 시스템에 적용할 때는 다음과 같은 문제점을 야기시킨다.However, when the conventional symbol string variable length code decoder is applied to a high performance system such as HDTV, the following problems are caused.

HDTV비디오 디코더는 크게 가변길이 디코더,움직임 보상기와 역이산여현변환블럭(IDCT Block)으로 구성되는데 IDCT블럭과 움직임 보상기에 대해서는 여러가지 병렬처리기법이 알려져 있어서 병렬처리 하드웨어를 구성할 수 있기 때문에 동작속도를 쉽게 낮출 수 있지만, 가변길이코드 디코더는 종래의 기술로는 한번에 한코드밖에 디코딩하지 못하기 때문에 동작속도를 낮출 수 없다.HDTV video decoder is composed of variable length decoder, motion compensator and inverse discrete cosine transform block (IDCT Block). There are various parallel processing techniques for IDCT block and motion compensator. Although it can be easily lowered, the variable length code decoder cannot lower the operation speed because the conventional technology can decode only one code at a time.

특히 HDTV신호를 받아서 NTSC TV나 SDTV형식에 맞춰 출력을 주는 다운컨버터(Downconverter)의 경우에 이 동작속도의 차이는 더욱 커지게 된다.Especially in the case of a downconverter that receives HDTV signals and outputs them in accordance with NTSC TV or SDTV format, the difference in the operation speed becomes larger.

즉, IDCT블럭이나 움직임 보상기 모두 NTSC TV 해상도나 SDTV 해상도로 줄어든 이미지에 대해서 연산을 수행하는데 비하여 가변길이코드 디코더는 HDTV신호를 직접처리해야 하므로 훨씬 높은 동작속도가 요구된다.That is, both the IDCT block and the motion compensator perform the operation on the image reduced to NTSC TV resolution or SDTV resolution, so the variable length code decoder needs to process the HDTV signal directly, requiring much higher operation speed.

그러므로, HDTV디코더나 다운컨버터를 하나의 칩으로 구현할 경우 가변길이 코드 디코더만을 위해서 특별히 높은 클럭을 사용해야 하므로 전력소비가 높아지고, 구현이 어려우며 칩의 동작 안정성이 나빠진다.Therefore, when the HDTV decoder or downconverter is implemented as a single chip, a high clock must be used specifically for the variable length code decoder, resulting in high power consumption, difficulty in implementation, and poor chip operation stability.

본 발명은 여러개의 짧은 가변길이코드를 묶어서 하나의 코드로 만들고 이 것을 그룹코드로 명명하여 기존의 디코딩 테이블에 추가함으로써, 한번에 여러개의 코드가 디코딩되도록 한다.The present invention bundles several short variable length codes into a single code and names them as group codes and adds them to an existing decoding table so that multiple codes are decoded at once.

즉, 본 발명은 가변길이코드의 연속하는 출현빈도수를 기준으로 출현빈도수가 높은순으로 재배치하여 이 것을 가변길이코드의 그룹코드로 대표하도록 하고, 이 그룹코드가 출현하면 그 그룹코드가 포함(대표)하는 적어도 2개 이상의 가변길이코드를 동시에 디코딩함으로써 고속 병렬처리를 가능하게 한 가변길이 코드의 테이블 구조 및 병렬 디코딩 장치와 그 방법을 제공한다.That is, the present invention rearranges the frequency of occurrence of the variable length code in the order of high frequency of occurrence and represents it as a group code of the variable length code, and when the group code appears, the group code is included. The present invention provides a table structure, a parallel decoding apparatus, and a method of variable length code, which enable high-speed parallel processing by simultaneously decoding at least two or more variable length codes.

도1은 종래의 가변길이코드 디코더의 블록 구성도1 is a block diagram of a conventional variable length code decoder

도2는 본 발명의 가변길이코드 디코더의 블록 구성도2 is a block diagram of a variable length code decoder of the present invention.

도3은 본 발명의 가변길이코드 테이블 구조의 일예를 나타낸 도면3 is a view showing an example of a variable length code table structure of the present invention;

본 발명에서는 일반적으로 짧은 가변길이코드가 디코딩하는데 걸리는 시간이 길이가 긴 가변길이코드의 디코딩시간보다 짧은데 착안하여 여러개의 짧은 코드로 재정의된 새로운 가변길이코드(그룹코드)를 구성하고 이 그룹코드의 길이가 한번에 디코딩될 수 있는 가장 긴 가변길이코드의 길이보다 짧다면 기존의 동작속도에 영향을 전혀 주지않고 디코딩 능력을 향상시킬 수 있다는데 근거한다.In the present invention, a short variable length code generally takes shorter decoding time than a long variable length code to construct a new variable length code (group code) that is redefined into several short codes. If the length is shorter than the length of the longest variable length code that can be decoded at one time, the decoding performance can be improved without affecting the existing operation speed.

즉, 여러개의 짧은 가변길이코드의 열을 검색하여 이 가변길이코드의 열이 반복 출현하는 빈도수를 실험적/통계적으로 미리 구하고, 이 구해진 가변길이코드의 열을 그룹코드라는 새로운 코드형태로 묶어서 그 가변길이코드의 열을 대표하는 코드로 정의하고, 이 재정의된 그룹코드의 길이와 한번에 디코딩할 수 있는 가장 긴 코드의 길이를 비교하여 그룹코드화 여부를 결정하여 이 그룹코드화된 테이블구조를 기존의 디코딩테이블에 추가한 상태로 재작성된 디코딩테이블로부터 가변길이코드를 디코딩한다.In other words, by searching several strings of short variable length codes, experimentally / statistically preliminarily obtain the frequency of repeated occurrences of the variable length code columns, and grouping the obtained variable length code columns into a new code form called group code. Define a code representing the column of length codes, compare the length of this redefined group code with the length of the longest code that can be decoded at the same time, and decide whether to group. The variable length code is decoded from the recoded decoding table in the state of adding to.

이와같이 그룹코드가 추가되면 디코딩 테이블의 크기가 증가하고 또 기존의 가변길이코드 여러개를 묶어서 하나의 코드로 만들때 새로 만들어질 수 있는 코드의 갯수가 매우 많아지게 되므로 모든 조합 가능한 경우의 코드를 모두 기존의 테이블에 추가하는 것은 적절하지 못하다.When the group code is added in this way, the size of the decoding table increases and the number of codes that can be newly created when a plurality of existing variable length codes are bundled into one code becomes very large. Adding to the table is not appropriate.

그러므로 본 발명에서는 디코딩 테이블의 크기에 대한 제한이 주어진다는 점을 감안하여 주어진 제한조건내에서 최대의 성능향상을 가져올 수 있는 코드들의 조합을 찾아서 디코딩 테이블에 추가한다.Therefore, in the present invention, given a limitation on the size of the decoding table, a combination of codes that can bring the maximum performance improvement within the given constraint is found and added to the decoding table.

도2는 이러한 본 발명의 그룹코드를 이용한 가변길이코드 디코더의 블럭 구성도이며, 도3은 작성된 본 발명의 코드테이블 구조의 일예를 나타낸다.Fig. 2 is a block diagram of a variable length code decoder using the group code of the present invention, and Fig. 3 shows an example of the code table structure of the present invention.

먼저, 도2의 디코더 구현을 위해서 도3의 코드테이블을 작성하는 방법을 설명하면 다음과 같다.First, a method of creating the code table of FIG. 3 to implement the decoder of FIG. 2 will be described.

제 1 단계: 기존의 코드들에 대한 통계적 특성을 토대로 새로운 코드를 만들 수 있는 후보코드들을 선정하여 이들을 개별후보코드라고 명명하고 이 개별후보코드들의 출현빈도수가 높은 순으로 배열한다.The first step is to select candidate codes that can make a new code based on the statistical characteristics of the existing codes, name them individual candidate codes, and arrange them in order of high frequency.

이 것은 통계적 특성을 토대로 한다는 것이므로 실혐에 의해서 출현빈도수를 알아내고 그 출현 빈도수가 높은 순서로 재배열함을 의미한다.Since this is based on statistical characteristics, it means that the frequency of occurrence is determined by the demonstration and rearranged in the order of appearance frequency.

제 2 단계: 하나로 묶을 수 있는 코드의 갯수(Ncode)를 '2'로 정한다.Step 2: Set the number of codes that can be bundled together (Ncode) as '2'.

제 3 단계: 상기의 개별후보코드의 리스트에서 Ncode개의 코드를 골라서 새로운 그룹 후보코드를 만든다.Step 3: A new group candidate code is generated by selecting Ncode codes from the list of individual candidate codes.

이 것이 그룹 후보코드가 되는 것은 그룹코드로 디코딩하는 경우가 개별코드로 디코딩하는 경우보다 짧은 시간이 소요되는지의 여부를 검증하기 이전에 배열된 그룹코드이기 때문이다.This is because the group candidate code is a group code arranged before verifying whether decoding with a group code takes a shorter time than decoding with an individual code.

제 4 단계: 상기 제 3 단계에서 만들어진 그룹 후보코드의 길이를 한번에 디코딩될 수 있는 최대 코드길이와 비교하여 그룹 후보코드의 길이가 한번에 디코딩될 수 있는 최대 코드길이를 넘지않으면 이 것을 유효한 그룹코드로 정의하고 이 것을 기존의 디코딩 테이블에 추가하여 실제 디코딩시의 성능향상의 정도를 측정한다.Fourth step: comparing the length of the group candidate code generated in the third step with the maximum code length that can be decoded at one time, and if the length of the group candidate code does not exceed the maximum code length that can be decoded at one time, it is a valid group code. Define and add it to the existing decoding table to measure the degree of performance improvement in actual decoding.

제 5 단계: Ncode개의 코드로 만들 수 있는 모든 코드의 조합에 대한 성능 향상을 측정하고, 이 측정이 종료되었으면 다음 단계로 넘어가고, 그렇지 않으면 상기 단계를 반복수행한다.Step 5: Measure the performance improvement for all code combinations that can be made with Ncode codes, and if this measurement is finished, go to the next step, otherwise repeat the above steps.

제 6 단계: 상기 제 5 단계까지 실행한 결과를 토대로 하여 유효한 그룹코드들의 성능향상이 가장 높은 순서로 유효한 그룹코드들을 재배열하여 그룹코드 리스트를 작성한다.Step 6: A group code list is created by rearranging the valid group codes in the order of the highest performance improvement of the valid group codes based on the result of the execution up to the fifth step.

제 7 단계: 상기 제 6 단계에서 작성된 그룹코드 리스트의 가장 높은 순위에 있는 그룹코드를 디코딩 테이블에 추가하였을 경우에 디코딩 테이블의 크기와 동작속도를 예측한다.Step 7: When the group code in the highest rank of the group code list created in step 6 is added to the decoding table, the size and operation speed of the decoding table are predicted.

제 8 단계: 그룹코드를 디코딩 테이블에 추가하였을 경우에 디코딩 테이블의 크기나 동작속도 등의 제한조건을 만족하는지를 검사하여 만족하면 디코딩 테이블에 상기 제 7 단계에서 선택된 그룹코드를 추가하고 그룹코드의 리스트에서 현 단계에서 추가된 그룹코드를 제거한 다음 제 9 단계로 이행하고, 만족하지 못하면 지금까지 만들어진 디코딩 테이블을 출력한다.Step 8: When the group code is added to the decoding table, it is checked whether it satisfies the constraints such as the size and operation speed of the decoding table. Removes the group code added in the current step and then proceeds to the ninth step.

제 9 단계: 상기 그룹코드 리스트에 남아있는 코드가 있는지를 검사하여 암아있는 코드가 있으면 제 7 단계로부터 재수행하여 그 다음 순번의 그룹코드에 대한 검증을 실행하고, 남아있는 그룹코드가 없으면 Ncode를 '1'증가시킨다.Step 9: If there is any remaining code in the group code list, if there is any cryptic code, the process is repeated from step 7 to verify the next group code, and if there is no remaining code, Ncode ' 1 'increase.

그리고, 새로 만들어진 Ncode가 개별 후보코드들의 총 갯수보다 작거나 같으면 상기 제 3 단계로부터 반복수행하여 그 다음(Ncode=3)의 개별 후보코드의 연속하는 열 즉, 하나로 묶을 수 있는 코드의 갯수가 3개인 개별 후보코드를 골라서 새로운 그룹 후보코드를 만들고 이 것에 대한 검증을 실행한다.If the newly generated Ncode is less than or equal to the total number of individual candidate codes, the process is repeated from the third step and the next (Ncode = 3) consecutive columns of individual candidate codes, that is, the number of codes that can be bundled together are 3 Select individual individual candidate codes to generate new group candidate codes and verify them.

그러나, 새로 만들어진 Ncode가 개별 후보코드들의 총 갯수보다 크다면 더이상의 그룹화가 필요하지 않으므로 지금까지 만들어진 디코딩 테이블을 출력하고 모든 과정을 종료한다.However, if the newly created Ncode is larger than the total number of individual candidate codes, no further grouping is required, so the decoding table thus produced is output and all processes are completed.

위와같은 일련의 단계를 거쳐서 도3에 나타낸 바와같은 새로운 구조의 가변길이코드 디코딩 테이블이 작성되었다.Through the above series of steps, a variable length code decoding table having a new structure as shown in Fig. 3 was created.

도3의 디코딩 테이블은 출현빈도수가 높은 코드의 열(비트스트림) 즉, 적어도 2개의 심볼이 하나의 그룹코드로 대표되어 묶이는 형태의 그룹코드 테이블과 기존의 심볼단위 디코딩 테이블이 병합된 형태가 된다.The decoding table of FIG. 3 is a form of a string (bitstream) of a high frequency code, that is, a group code table in which at least two symbols are represented by one group code and a group of a conventional symbol unit decoding table are merged. .

이러한 디코딩 테이블을 이용해서 가변길이코드를 디코딩하는 방법은 입력 비트스트림을 검색하여 그룹코드가 출현하면 그룹코드테이블의 대표코드로 디코딩하여 디코딩된 코드워드를 출력하고, 그렇지 않으면 기존의 심볼단위 디코딩 테이블을 참조하여 심볼단위로 디코딩된 코드워드를 출력하는 것이다.In the method of decoding variable length codes using the decoding table, the input bitstream is searched, and when the group code appears, the decoded codeword is output by decoding the representative code of the group code table, otherwise the existing symbol unit decoding table is output. The codeword decoded in symbol units is output with reference to FIG.

이러한 그룹/심볼코드의 병합 디코딩 장치는 도2에 도시한 바와같이, 기존의 심볼열(symbol-serial) 디코더에서 새로 만들어진 디코딩 테이블(도3)로 기존의 디코딩테이블을 교체하고 한번에 디코딩될 수 있는 최대 갯수의 코드를 받아들일 수 있는 다입력포트버퍼(multi-input port buffer:206)를 출력버퍼로 추가함으로써 병렬 가변길이 디코더를 구성한 것이다.Such a group / symbol coded decoding apparatus can replace the existing decoding table with a newly created decoding table (FIG. 3) in the existing symbol-serial decoder as shown in FIG. The parallel variable-length decoder is configured by adding a multi-input port buffer (206) that can accept the maximum number of codes as an output buffer.

입력버퍼(201)는 데이타 채널을 통해서 수신된 가변길이워드의 직렬 비트 스트림을 저장하고, 제 2 쉬프터(202)는 상기 입력버퍼(201)와 제 1 쉬프터(203) 사이를 인터페이스한다.An input buffer 201 stores a serial bit stream of a variable length word received through a data channel, and a second shifter 202 interfaces between the input buffer 201 and the first shifter 203.

출력 레지스터(204)는 쉬프터 출력을 래치하여 그룹코드 심볼디코더(205)와 그룹코드 길이디코더(207)에 입력하며, 그룹코드길이 정보는 가산기(208)와 어큐뮬레이터(acc:209)의 연산을 통해서 입력비트스트림으로부터의 코드슬라이스에 이용된다.The output register 204 latches the shifter output and inputs it to the group code symbol decoder 205 and the group code length decoder 207, and the group code length information is calculated through the operation of the adder 208 and the accumulator (acc: 209). Used for code slices from the input bitstream.

본 발명의 가변길이 코드의 테이블 구조 및 병렬 디코딩 장치와 방법은 기존의 심볼열 가변길이 디코더를 심볼-병렬 가변길이 디코더로 쉽게 변환시킬 수 있는 기법을 제공한다.The variable length code table structure and parallel decoding apparatus and method provide a technique for easily converting a conventional symbol string variable length decoder into a symbol-parallel variable length decoder.

또한, 새로운 디코딩 테이블을 효율적으로 구성할 수 있는 방법도 제시하였으며, 본 발명은 기존의 디코딩테이블에 있던 길이가 다른 코드간의 디코딩 시간차를 이용하기 때문에 기존의 심볼열 가변길이코드 디코더의 동작속도를 저하시키지 않으면서 더 높은 디코딩 성능을 확보할 수 있다.In addition, a method for efficiently constructing a new decoding table has been presented, and the present invention reduces the operation speed of a conventional symbol string variable length code decoder because the decoding time difference between codes having different lengths in the existing decoding table is used. Higher decoding performance can be attained without making a difference.

또한, 종래의 심볼열 가변길이코드 디코더에 비해서 동등한 최장지연시간을 가지면서도 더 높은 성능을 가지게 함으로써 같은 성능이 요구된다면 더 낮은 클럭을 사용할 수 있기 때문에 전력소비나 칩의 동작 안정성면에서 잇점을 가진다.In addition, compared to the conventional symbol string variable length code decoders, they have an equivalent longest delay time and have higher performance, and thus, a lower clock can be used if the same performance is required, which is advantageous in terms of power consumption and chip operation stability.

또한, 주변에 연결되는 블럭들의 클럭속도에 맞춰서 가변길이 코드의 디코딩 성능을 조절할 수 있기 때문에 여러개의 기능블럭을 하나의 칩으로 집적해서 구현할 때 효과적이다.In addition, the decoding performance of the variable-length code can be adjusted according to the clock speeds of blocks connected to the surroundings, which is effective when implementing multiple functional blocks in one chip.

Claims (4)

가변길이 코딩된 데이타를 디코딩하기 위하여, 적어도 2개의 가변길이코드의 연속하는 출현빈도수가 높은 순서로 상기 적어도 2개의 가변길이코드를 하나의 대표하는 코드로 묶어서 배열한 것을 특징으로 하는 가변길이 코드의 테이블 구조.In order to decode variable-length coded data, the variable-length code is characterized by arranging the at least two variable-length codes in one representative code and arranged in order of successive frequency of at least two variable-length codes. Table structure. 제 1 항에 있어서, 상기의 가변길이코드 테이블은 심볼단위의 디코딩테이블가 병합된 구조인 것을 특징으로 하는 가변길이 코드의 테이블 구조.The variable length code table structure of claim 1, wherein the variable length code table has a structure in which a decoding table in a symbol unit is merged. 가변길이코드의 통계적 특성을 토대로 가변길이코드의 출현빈도수를 검색하여 그 빈도수가 높은 순서로 가변길이코드를 배열하는 단계와, 상기 배열된 가변길이코드의 반복하는 적어도 2개를 하나의 코드로 묶어서 그룹코드로 재배열하는 단계와, 상기 그룹코드를 가변길이코드 디코딩 테이블에 추가하고 그 디코딩성능을 측정하여 디코딩성능이 높은순으로 그룹코드를 재배열하는 단계와, 상기 재배열된 그룹코드들에 대하여 디코딩성능을 측정하여 소정의 조건에 만족하는 그룹코드들에 대해서 가변길이코드 디코딩 테이블로 작성하는 단계로 이루어짐을 특징으로 하는 가변길이 코드의 테이블 작성방법.Retrieving the frequency of occurrence of the variable length code based on the statistical characteristics of the variable length code, arranging the variable length codes in the order of high frequency, and combining at least two repeating of the arranged variable length codes into one code Rearranging the group codes into a group code, adding the group codes to the variable length code decoding table, measuring the decoding performance thereof, and rearranging the group codes in the order of high decoding performance; And measuring the decoding performance of the variable length code table for the group codes satisfying a predetermined condition. 데이타 채널을 통해 수신된 가변길이워드의 직렬 비트스트림을 저장하는 수단과, 상기 저장수단에 저장된 비트스트림을 가변길이코드워드 단위로 슬라이싱 처리하는 수단과, 상기 슬라이싱처리된 가변길이코드워드의 디코딩을 위해서 그 심볼의 적어도 2개가 연속하는 출현빈도수에 따라 그룹화하여 그룹코드로서 디코딩정보를 기억하고 있는 수단과, 상기 슬라이싱 처리된 가변길이코드워드에 대하여 상기 기억수단의 그룹코드 대응여부를 검색하여 해당하는 경우 그룹코드로서 디코딩하고 그렇지 않은 경우 심볼단위 코드로서 디코딩하는 수단으로 이루어짐을 특징으로 하는 가변길이 코드의 병렬 디코딩 장치.Means for storing a serial bitstream of a variable length word received through a data channel, means for slicing the bitstream stored in the storage means in units of variable length codewords, and decoding the sliced variable length codewords. Means for storing decoding information as a group code by grouping at least two of the symbols according to successive frequency numbers, and searching for whether the slicing variable length codeword corresponds to the group code of the storage means. And a means for decoding as a group code if not and if not, as a symbol unit code.
KR1019980015176A 1998-04-28 1998-04-28 Table structure of variable length code and parallel decoding device and method KR19990081316A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980015176A KR19990081316A (en) 1998-04-28 1998-04-28 Table structure of variable length code and parallel decoding device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980015176A KR19990081316A (en) 1998-04-28 1998-04-28 Table structure of variable length code and parallel decoding device and method

Publications (1)

Publication Number Publication Date
KR19990081316A true KR19990081316A (en) 1999-11-15

Family

ID=65890810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980015176A KR19990081316A (en) 1998-04-28 1998-04-28 Table structure of variable length code and parallel decoding device and method

Country Status (1)

Country Link
KR (1) KR19990081316A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100975063B1 (en) * 2003-12-30 2010-08-11 삼성전자주식회사 Apparatus for decoding variable length coded bitstream, and method thereof, and recording medium storing a program to execute thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100975063B1 (en) * 2003-12-30 2010-08-11 삼성전자주식회사 Apparatus for decoding variable length coded bitstream, and method thereof, and recording medium storing a program to execute thereof

Similar Documents

Publication Publication Date Title
US5225832A (en) High speed variable length decoder
US6587057B2 (en) High performance memory efficient variable-length coding decoder
KR100924907B1 (en) Improved variable length decoder
US20040240559A1 (en) Context adaptive binary arithmetic code decoding engine
US7397963B2 (en) Method and apparatus for storing bitplanes of coefficients in a reduced size memory
US7365659B1 (en) Method of context adaptive binary arithmetic coding and coding apparatus using the same
KR960012741A (en) Apparatus and method for encoding and decoding data
JPH06104767A (en) Variable length code decoder
US5280349A (en) HDTV decoder
US7006697B1 (en) Parallel block MQ arithmetic image compression of wavelet transform coefficients
JPH088755A (en) High-speed variable-length decoder
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
KR102123620B1 (en) Method and apparatus for entropy encoding or entropy decoding of video signals for large-scale parallel processing
US7088869B2 (en) 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays
EP0715414B1 (en) Variable-length encoder and decoding system
US6094151A (en) Apparatus and method for finite state machine coding of information selecting most probable state subintervals
US20050238242A1 (en) Method for block sequential processing
US20030068091A1 (en) Context model access to memory based on run and skip counts and context model skipping
US7205915B2 (en) Method of decoding variable length prefix codes
JPH0750593A (en) Decoding method for serial data and encoder
US5638069A (en) High throughput variable length decoder and apparatus comprising such decoder
CN101093998B (en) Decoding method and device
CN111818335A (en) Entropy coding method and device and electronic equipment
CN1251414C (en) Length-changeable decoding system and method
Rudberg et al. New approaches to high speed Huffman decoding

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination