KR100468742B1 - 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법 - Google Patents

이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법 Download PDF

Info

Publication number
KR100468742B1
KR100468742B1 KR10-2002-0036069A KR20020036069A KR100468742B1 KR 100468742 B1 KR100468742 B1 KR 100468742B1 KR 20020036069 A KR20020036069 A KR 20020036069A KR 100468742 B1 KR100468742 B1 KR 100468742B1
Authority
KR
South Korea
Prior art keywords
code
symbol
jpeg
huffman table
bit
Prior art date
Application number
KR10-2002-0036069A
Other languages
English (en)
Other versions
KR20040001013A (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 KR10-2002-0036069A priority Critical patent/KR100468742B1/ko
Priority to US10/406,489 priority patent/US6798365B2/en
Publication of KR20040001013A publication Critical patent/KR20040001013A/ko
Application granted granted Critical
Publication of KR100468742B1 publication Critical patent/KR100468742B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • 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

Landscapes

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

Abstract

이진 검색(binary search) 기법을 이용한 효율적인 JPEG 허프만 테이블 디코더(JPEG Huffman table Decoder) 및 그 방법이 개시된다. 상기 JPEG 허프만 테이블 디코더는 이진 검색을 기반으로 하는 심벌 매칭을 수행한 후, 상기 심벌에 대한 코드 북 상의 어드레스를 계산한다. 그 결과, 전체 symbol 탐색에 필요한 비교 시간이 크게 단축되고, 이에 요구되는 메모리 양이 절반 이하로 줄어들게 된다.

Description

이진 검색 기법을 이용한 JPEG 허프만 테이블 디코더 및 그 방법{JPEG Huffman table decoder and method thereof based on binary search technique}
본 발명은 JPEG(Joint Photographic Expert Group) 디코딩 장치 및 방법에 관한 것으로, 특히 이진 검색(binary search) 기법을 이용한 효율적인 JPEG 허프만 테이블 디코더(Huffman table decoder) 및 그 방법에 관한 것이다.
JPEG 디코더는 JPEG 헤더(header) 부분과 허프만 테이블(huffman table)에 따라서 압축된 영상(image)을 디코딩 한다. 영상의 크기가 커질수록 허프만 테이블의 성능에 의해서 JPEG 디코더의 전체 성능이 달라지게 된다. JPEG 허프만 테이블은 런-타임에서 결정되는(run-time configurable) 특징을 가진다. 그렇기 때문에 JPEG 허프만 테이블 디코더는 런-타임에서 구성된 테이블의 심벌들(symbols)과 대상 코드 스트림(code stream)을 2 비트씩 서로 비교하는 방식으로 디코딩을 수행한다.
그러나, 이 같은 디코딩 방식은 심벌이 고정되어 있지 않기 때문에, 결선 로직(hard-wired logic)으로 구성할 수 없는 한계를 가진다. 그리고, 16 비트 심벌이 전체 심벌의 절반이 넘는 JPEG의 경우에는 한 심벌에 대해 최대 8번의 비교를 수행해야 하는 단점을 가진다. 뿐만 아니라, 상기 방식은 2 비트 비교 방식을 지원하기위해서 복잡하고 커다란 중간 탐색 트리(tree)를 필요로 하는 문제점을 가진다.
따라서 본 발명이 이루고자하는 기술적 과제는, 심벌 전체를 탐색하는 데 필요한 비교 시간을 줄일 수 있는 JPEG 허프만 테이블 디코더 및 그 방법을 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 기존의 중간탐색 트리에 비해서 현저히 적은 양의 메모리를 필요로 하는 JPEG 허프만 테이블 디코더 및 그 방법을 제공하는데 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 도면의 간단한 설명이 제공된다.
도 1은 이진 검색 기법을 이용한, 본 발명의 바람직한 실시예에 따른 JPEG 허프만 테이블 디코더의 블록도이다.
도 2는 JPEG 헤더에서 정의된 베이스 라인(baseline)용 디폴트 허프만 테이블의 일 예를 보여주는 도면이다.
도 3은 도 1에 도시된 심벌 매칭부의 상세 블록도이다.
도 4는 도 3에 도시된 비교기의 2-set 비교 동작을 설명하기 위한 도면이다.
도 5는 도 3에 도시된 비교기의 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 바람직한 실시예에 따른 이진 검색 기법을 이용한 JPEG 허프만 테이블 디코딩 방법을 보여주는 흐름도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
100 : JPEG 허프만 테이블 디코더 110 : 전처리부
120 : 심벌 매칭부 121 : MAX 레지스터
122 : 오프셋 레지스터 124 : 멀티플렉서
125 : 비교기 126 : 쉬프터
127 : 덧셈기 130 : 후처리부
140 : 코드 북 메모리
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 JPEG 허프만 테이블 디코더는, 전처리부, 심벌 매칭부, 및 후처리부를 포함한다. 코드 북 메모리에는 코드 북 데이터가 저장된다. 전처리부는 JPEG 코드 스트림을 받아들인다. 심벌 매칭부는 이진 검색을 기반으로 하는 심벌 매칭을 수행하고, 매칭된 상기 심벌에 대한 상기 코드북 메모리 상의 어드레스를 계산한다. 후처리부는 상기 심벌의 레벨을 계산하여 출력한다.
바람직한 실시예에 있어서, 상기 심벌 매칭부는 제 1 및 제 2 레지스터, 비교기, 쉬프터, 및 덧셈기를 포함한다. 제 1 레지스터에는 상기 JPEG 코드 스트림과 비교 될 기준 코드들이 저장된다. 제 2 레지스터에는 상기 제 1 레지스터에 저장되어 있는 상기 기준 코드들의 위치 정보가 저장된다. 비교기는, 상기 이진 검색을 기반으로 하여 상기 JPEG 코드 스트림과 상기 기준 코드들을 비교하고, 상기 비교결과에 응답해서 해당 심벌이 몇 비트 코드인지를 판별한다. 쉬프터는 상기 심벌에 대한 배럴 쉬프팅을 수행한다. 덧셈기는, 상기 쉬프터의 출력 데이터와, 상기 제 2 레지스터에 저장되어 있는 상기 기준 코드들의 어드레스를 이용하여, 상기 심벌에 대한 상기 코드북 상의 어드레스를 계산한다.
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 JPEG 허프만 테이블 디코딩 방법은, (a) JPEG 코드 스트림을 받아들이는 단계; (b) 이진 검색을 기반으로 하는 심벌 매칭을 수행하여, 상기 심벌의 비트 수를 결정하는 단계; (c) 상기 심벌 매칭 결과에 따른 배럴 쉬프팅을 수행하는 단계; (d) 원하는 심벌이 저장된 코드 북 메모리의 어드레스를 발생하는 단계; 및 (e) 상기 심벌의 레벨을 계산하여 출력하는 단계를 포함하는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의해 달성되는 목적을 충분히 이해하기 위해서는, 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 이진 검색 기법을 이용한, 본 발명의 바람직한 실시예에 따른 JPEG 허프만 테이블 디코더(100)의 블록도이다. 도 1을 참조하면, JPEG 허프만 테이블 디코더(100)는 전처리부(pre-processing unit ; 110), 심벌 매칭부(symbol matching unit ; 120), 후처리부(post-processing unit ; 130), 및 코드 북메모리(code book memory ; 140)로 구성된다.
코드 북 메모리(140)는 런-타임시 마이크로-프로세서 유닛(MicroProcessor Unit, 이하 MCU라 칭함)에서 구성되는 코드 북(code book) 데이터를 저장하는 기능을 수행한다. 전처리부(110)는, JPEG 코드 스트림 메모리(JPEG code stream memory ; 10)로부터 제공되는 압축된 데이터 스트림, 즉 JPEG 코드 스트림(JPEG code stream)을 16 비트 단위로 계속 읽어 들인다. 심벌 매칭부(120)는 읽혀진 코드 스트림에 대한 이진 검색(binary search)을 수행하고, 심벌 매칭(symbol matching)에 따른 16 비트 이내의 배럴 쉬프트(barrel shift) 기능을 수행함으로써, 원하는 심벌에 대한 코드북 상의 어드레스를 계산해 낸다. 후처리부(130)는 코드 북 메모리(140)의 상기 어드레스에서 페치(fetch)한 (run, class)값과, 전처리부(110)에 남아 있는 차분 코드(difference code)를 받아들여 (run, level) 값을 구한다. 그리고, 런-랭스 디코딩(Run-Length Decoding, 이하 RLD라 칭함)된 순서에 의거하여 64개의 데이터를 차례로 버퍼(20)에 저장한다. 이 같은 일련의 데이터 처리 과정은 코드 스트림이 끝날 때까지 반복된다. 그리고, 후처리부(130)는 마커(8개의 비트에 1이 반복된 후, 이어지는 8 비트의 값이 모두 0이 아닌 데이터)를 만났을 때, 상기 마커의 처리를 위해 인터럽트(interrupt)를 발생시켜 MCU(micro-processor unit ; 30)에게 제어권을 넘겨준다.
코드 북 메모리(140)에 저장되는 코드 북 데이터는, JPEG 헤더(header)를 디코딩 하는 외부 MCU(30)에 의해서 런-타임에 구성된다. 외부 MCU(30)는 JPEG 헤더에 기술되어 있는 허프만 테이블 기술부(huffman table descriptor)를 디코딩 하는JPEG 헤더 디코더로서, 영상 데이터 중간에 삽입된 마커(marker)를 처리하는 용도로 사용된다.
코드 북 메모리(140)는 컴포넌트(component)당 256×8의 크기를 갖는 RAM(random access memory)으로 구성된다. 코드 북 메모리(140)는 JPEG 디폴트 허프만 테이블(JPEG default Huffman table)만을 지원하는 경우, 휘도 신호(luminance), 색차 신호(chrominance)에 대해 각각 512×8의 크기를 가지는 RAM으로 구성된다.
도 2는 JPEG 헤더에서 정의된 베이스 라인(baseline)용 디폴트 허프만 테이블의 일 예를 보여주는 도면이다. 도 2를 참조하면, 코드 북은 하단에 도시된 코드 스트림 "01 02 03 00 04 … F9 FA"를 차례로 RAM의 연속된 어드레스에 저장시켜 주는 것에 의해 완성된다.
도 3은 도 1에 도시된 심벌 매칭부(120)의 상세 블록도이다. 도 3을 참조하면, 심벌 매칭부(120)는 MAX 레지스터(121), 오프셋 레지스터(122), 멀티플렉서(124), 비교기(125), 쉬프터(126) 및 덧셈기(127)로 구성되어, 이진 검색을 기반으로 한 심벌 매칭 및 어드레스 발생 기능을 수행한다.
MAX 레지스터(121)에는 허프만 테이블에 정의되어 있는 1 내지 16 비트 심벌들 각각에 대해 동일한 비트를 가지는 코드들 중 가장 마지막의 코드, 즉 가장 큰 값을 가지는 MAX 코드들이 저장된다. 여기서, 정렬된 어레이 구조의 최대 값(MAX)이 비교를 위한 대표 값으로서 사용되었으나, 경우에 따라서는 최대 값(MAX) 대신에 최소 값(MIN)이 사용될 수도 있다.
오프셋 레지스터(122)에는 MAX 레지스터(121)에 저장되어 있는 MAX 코드들이 코드 북 메모리(140)의 어느 곳에 위치하는지에 대한 정보가 저장된다.
전처리부(110)로부터 입력되는 16 비트의 코드 스트림은 left-adjusted 형태로 구성된다. 멀티플렉서(124)는 전처리부(110)로부터 입력되는 16 비트의 코드 스트림 중 좌측 8 비트의 데이터(codeH)를 비교기(125)로 출력하되, 상기 데이터(codeH)가 모두 1인 경우, 상기 데이터(codeH) 대신 0의 값이 8개 연속된 프리 코드 데이터(pre_code)를 비교기(125)로 출력한다. 이와 같은 데이터의 재구성 과정은 심벌 매칭부(120) 대신 전처리부(110)에서 수행될 수 있도록 회로를 구성할 수도 있다.
비교기(125)는, 멀티플렉서(124)로부터 입력되는 8 비트의 데이터(codeH 또는 pre_code)와, 전처리부(110)로부터 입력되는 16 비트의 코드 스트림 중 우측 8 비트의 데이터(codeL)를 받아들이고, 이들 두 데이터를 이어 붙여 구성된 16 비트의 데이터와, MAX 레지스터(121)에 순차적으로 정의되어 있는 MAX 코드들을 비교한다. 그리고, 비교 결과를 근거로 하여 해당 코드가 몇 비트 코드인지를 판별한다. 비교기(125)는 회로의 최적화를 위해서 1의 보수 덧셈기(1's complement's adder)로 구현된다.
쉬프터(126)는 배럴 쉬프터(Barrel shifter)로 구성되어, 비교기(125)로부터 입력되는 left-adjusted 심벌을 right-adjusted 심벌로 변환해 준다.
덧셈기(127)는 쉬프터(126)로부터 입력되는 데이터와, 오프셋 레지스터(122)에 저장되어 있는 MAX 코드들의 어드레스를 이용하여, 원하는 심벌에 대한 코드북메모리(140) 상의 어드레스(Address)를 발생한다. 상기 덧셈기(127)는 8 비트 덧셈기로 구성되며, 비교기(125)를 1의 보수 덧셈기로 구현할 때 발생되는 1 만큼의 차이를 보상해 줄 수 있도록 1의 보수 덧셈기로 구현된다.
잘 알려져 있는 바와 같이, JPEG의 허프만 테이블은 올림 차순(increasing order)으로 정렬된 어레이(array)로 구성된다. 따라서, 비교기(125)는 이 같은 허프만 테이블의 특징을 이용하여 이진 검색 기법을 기반으로 하는 비교를 수행한다. 그 과정은 다음과 같다.
먼저, 비교기(125)는 전처리부(110)로부터 코드 스트림이 입력되면, 입력된 코드 스트림을 8 비트 MAX 코드와 비교한다. 비교 결과, 해당 코드가 8 비트 MAX 코드 보다 작을 경우, 비교기(125)는 상기 코드를 4 비트 MAX 코드와 비교한다. 그리고, 해당 코드가 8 비트 MAX 코드 보다 클 경우, 상기 코드를 12 비트 MAX 코드와 비교해 나간다. 이와 같은 이진 검색을 기반으로 하는 비교에 의하면, 최대 5 사이클 이내에서 16 비트 코드의 비교를 모두 완료할 수 있게 된다.
앞에서 설명한 바와 같이, 이진 검색은 정렬된 연속 리스트 내에서 원하는 항목을 빠르게 검색해 낸다. 이 방법은, 찾고자하는 키를 리스트의 앞이나 끝에서부터 순차적으로 비교하는 것이 아니라, 가운데에 위치해 있는 항목과 먼저 비교한다. 그런 다음, 가운데 있는 값과의 비교 결과에 따라서 다음의 세 가지 중 하나를 선택하게 된다.
첫째, 찾고자 하는 키가 비교 대상보다 작고, 검색해야 할 데이터가 더 남아있으면, 비교 대상보다 작은 쪽에 남아있는 절반의 부분에 대해서 이진 검색을 계속 수행한다. 둘째, 찾고자 하는 키가 비교 대상과 같으면, 검색하고자 하는 값이 바로 그 비교 대상이 되므로, 검색을 중단한다. 셋째, 찾고자 하는 키가 비교 대상보다 크고, 검색해야 할 데이터가 더 남아있으면, 비교대상 보다 큰 쪽에 남아 있는 절반의 부분에 대해서 이진 검색을 계속 수행한다.
이진 검색은 원하는 키가 찾아지거나, 차례로 검색될 잔여 그룹이 아주 작아질 때까지, 그 데이터를 포함하고 있는 절반의 리스트의 가운데 항목과 비교하는 과정을 되풀이한다. 이 과정은 소정의 범위에 속하는 데이터에 대해서만 검색을 수행하기 때문에, 리스트의 앞이나 끝에서부터 순차적으로 비교할 때 보다 검색 사이클이 줄어들게 된다.
더 나아가, 본 발명에 따른 비교기(125)는 JPEG 디코더에 요구되는 MIPS(million instructions per second) 수준으로 비교 사이클을 더 줄일 수 있다. 이를 위해 상기 비교기(125)는 MAX 레지스터(121)를 2개 이상의 집합(set)으로 분할하고, 분할된 집합들을 동시에 비교하는 2-set 비교를 수행한다. 이 방법 역시 이진 검색 기법을 기반으로 한다.
도 4는 도 3에 도시된 비교기(125)의 2-set 비교 동작을 설명하기 위한 도면으로서, 비교에 사용되는 MAX 집합들은 도 3에 도시된 MAX 레지스터(121)에 저장되어 있는 MAX 집합들을 예를 들어 설명한다.
도 4를 참조하면, 비교기(125)는 2-set 비교시 전처리부(110)로부터 입력된 코드 스트림을 (5, 8) MAX 집합과 먼저 비교한다. 비교 결과, 상기 코드 스트림이 (5, 8) MAX 집합의 범위 내에 속하면, 비교기(125)는 상기 코드 스트림을 (6, 7)MAX 집합과 비교한다. 비교 결과, 만약 상기 비트 스트림이 6 비트 MAX 코드 보다 크고 7 비트 MAX 코드보다 작다면, 비교기(125)는 상기 비트 스트림을 7 비트 코드로 결정한다.
이 같은 2-set 비교를 수행 할 경우, 비교에 필요한 사이클은 총 3 사이클 이내가 된다. 이 때 수행되는 비교는 (5, 8), (11, 14), (15, 16) MAX 집합의 순서로 이루어지게 된다.
이와 같은 동작을 수행하는 비교기(125)는 심벌 매칭부(120) 내에 1 개가 구비될 수도 있고, 2 개 이상 구비될 수도 있다. 비교기가 2 개 이상 사용될 경우, 심벌 매칭부(120)는 쓰일 확률이 높은 2 비트 코드의 비교를 위한 전용 비교기를 별도로 구비함으로써, MIPS 수치를 더욱 높일 수 있다.
회로의 최적화를 위해서, 본 발명에 의한 비교기(125) 회로는 1의 보수 덧셈기(1's complement's adder)로 구현되며, 상기 비교기(125)는 다음의 조건을 만족하여야 한다.
첫째, 비교 대상이 되는 코드는 left-adjusted 형태를 만족하는 1 내지 16 비트의 가변 길이 코드이어야 한다. 둘째, 심벌의 유효 길이를 넘어선 나머지 비트들에 의해서 비교 결과가 바뀌어서는 안 된다. 즉, 비교될 심벌이 n 비트의 길이를 가질 때, 입력된 코드의 나머지 (16-n) 비트들은 다음 심벌 또는 차분 값(difference) 정보를 나타내므로, 상기 나머지 비트들에 의해서 현재 심벌의 비교 결과가 영향을 받아서는 안 된다. 예를 들어, 비교기를 2의 보수 덧셈기(2's complement adder)로 구현할 경우, 캐리(carry)가 발생되어 16 비트 전체가 비교치에 영향을 미치게 된다. 따라서, 본 발명에서는 비교기(125)를 1의 보수 덧셈기로 구현하여 캐리의 발생을 방지한다. 그리고, 비교기(125)를 1의 보수 덧셈기로 구현함에 의해 발생되는 1 만큼의 차이는, 비교기(125) 하단에 연결된 덧셈기(127)를 1의 보수 덧셈기로 구현함으로써 보정한다.
도 5는 도 3에 도시된 비교기(125)의 동작을 설명하기 위한 도면이다. 도 5를 참조하면, 비교기(125)는 입력된 코드 스트림에 1의 보수를 취한 값에 n 비트(n<=16)의 MAX 값을 더한 후, 캐리의 발생 여부를 확인한다. 덧셈 후, 만일 캐리가 발생하게 되면, 해당 코드는 MAX보다 작은 값을 가지는 것으로 판단한다. 그리고, 캐리가 발생하지 않으면, 코드가 MAX보다 크거나 같은 값을 가지는 것으로 판단한다. 그리고, n 비트의 비교시, 비교기(125)의 비교 결과의 좌측 n 비트가 모두 '1'이 되면, 상기 코드는 MAX와 같은 값을 가지는 것으로 판단한다.
이 때, MAX 레지스터의 집합을 2 이상으로 구성할 경우, 8 비트 MAX 값과의 비교는 반드시 첫 번째 사이클에서 이루어져야만 하고, 1 내지 16 비트 코드에 대한 2-set 비교시 수행 사이클을 줄이기 위한 최적의 위치는 (5, 10)이 된다.
도 6은 본 발명의 바람직한 실시예에 따른 이진 검색 기법을 이용한 JPEG 허프만 테이블 디코딩 방법을 보여주는 흐름도이다.
도 6을 참조하면, 본 발명에 따른 JPEG 허프만 테이블 디코더(100)는, 먼저 전처리부(110)를 통해 16 비트의 JPEG 코드 스트림을 입력받는다(1100 단계).
그리고, 심벌 매칭부(120)를 통해 심벌 매칭을 수행한다(1210 단계). 1210 단계에서 수행되는 심벌 매칭은 이진 검색 기법을 기반으로 하며, 상기 검색에 의해서 심벌의 비트 수가 결정된다. 이 때, 전처리부(110)로부터 입력된 코드 스트림의 좌측 8 비트(CodeH)에 1의 값이 연속될 경우, 상기 코드가 마커(marker)가 아니라면, JPEG 코드의 특성상 반드시 8개의 0이 삽입되어야만 한다. 따라서, 8개의 0을 쉬프트 아웃(shift out)시킨 후, 코드 스트림의 우측 8 비트(CodeL)를 이어 붙인 16 비트에 대해 비교를 계속하게 된다.
이어서, 1210 단계에서 수행된 심벌 매칭 결과에 따른 배럴 쉬프팅을 수행하고(1220 단계), (run, class)가 저장된 코드 북 메모리(140)의 어드레스를 발생한다(1230 단계).
원하는 심벌에 대한 코드북 메모리(140) 상의 어드레스를 구하는 방법은 아래 「수학식 1」과 같다.
「수학식 1」
MAX 코드의 어드레스 - (MAX 심벌 값 - 심벌 값)
심벌 매칭부(120)에 구비된 덧셈기(127)는, 「수학식 1」과 같이 MAX 심벌과 대상 심벌과의 상대적인 위치를 계산한 후, MAX 심벌의 절대 주소에서 상기 계산된 상대 위치를 빼 줌으로써, (run, class)가 저장된 코드 북 메모리(140)의 어드레스를 구하게 된다.
이어서, 후처리부(130)는 코드북 메모리(140)로부터 페치 된 (run, class) 값과, 전처리부(110)에 남아 있는 차분값 코드를 이용하여 (run. level) 값을 구한 후(1310 단계), RLD 순서에 따라 64 비트의 데이터를 차례로 출력한다(1320 단계). 이 같은 일련의 과정은 코드 스트림이 끝날 때 까지 반복된다.
앞에서 설명한 바와 같이, 본 발명에 의한 이진 검색 기법을 이용한 JPEG 허프만 테이블 디코더 및 그 방법에 의하면, 전체 심벌 탐색에 필요한 비교 시간이 크게 단축되며, 이에 요구되는 메모리 양은 중간 탐색 트리에 비해 절반 이하로 줄어들게 된다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 이진 검색 기법을 이용한 JPEG 허프만 테이블 디코더 및 그 방법은, 전체 심벌 탐색에 필요한 비교 시간을 크게 줄일 수 있고, 이에 요구되는 메모리 양을 절반 이하로 줄일 수 있는 장점이 있다.

Claims (16)

  1. 코드 북 데이터가 저장된 코드 북 메모리;
    JPEG 코드 스트림을 받아들이는 전처리부;
    이진 검색을 기반으로 하는 심벌 매칭을 수행하고, 매칭된 상기 심벌에 대한상기 코드북 메모리 상의 어드레스를 계산하는 심벌 매칭부; 및
    상기 심벌의 레벨을 계산하여 출력하는 후처리부를 포함하는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  2. 제 1 항에 있어서, 상기 심벌 매칭부는
    상기 JPEG 코드 스트림과 비교 될 기준 코드들이 저장된 제 1 레지스터;
    상기 제 1 레지스터에 저장되어 있는 상기 기준 코드들의 위치 정보를 저장하는 제 2 레지스터;
    상기 이진 검색을 기반으로 하여 상기 JPEG 코드 스트림과 상기 기준 코드들을 비교하고, 상기 비교 결과에 응답해서 해당 심벌이 몇 비트 코드인지를 판별하는 비교기;
    상기 심벌에 대한 배럴 쉬프팅을 수행하는 쉬프터; 및
    상기 쉬프터의 출력 데이터와, 상기 제 2 레지스터에 저장되어 있는 상기 기준 코드들의 어드레스를 이용하여, 상기 심벌에 대한 상기 코드북 상의 어드레스를 계산하는 덧셈기를 포함하는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  3. 제 2 항에 있어서,
    상기 기준 코드는, 허프만 테이블에 정의되어 있는 1 내지 16 비트 심벌들과 동일한 비트를 가지는 코드들 중 가장 큰 값을 가지는 코드들인 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  4. 제 2 항에 있어서,
    상기 기준 코드는, 허프만 테이블에 정의되어 있는 1 내지 16 비트 심벌들과 동일한 비트를 가지는 코드들 중 가장 작은 값을 가지는 코드들인 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  5. 제 1 항에 있어서,
    상기 전처리부로부터 입력되는 상기 JPEG 코드 스트림은 left-adjusted 형태인 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  6. 제 2 항에 있어서,
    상기 쉬프터는 상기 비교기로부터 출력되는 left-adjusted 형태의 상기 심벌을 right-adjusted 형태로 변환하는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  7. 제 2 항에 있어서,
    상기 비교기는 1의 보수 덧셈기인 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  8. 제 7 항에 있어서,
    상기 덧셈기는, 상기 1의 보수 덧셈기로 구현된 상기 비교기로부터 발생되는 1 만큼의 차이 값을 보상해 주기 위해서, 1의 보수 덧셈기로 구현되는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  9. 제 2 항에 있어서,
    상기 덧셈기는, 상기 기준 코드와 대상 심벌과의 상대적인 위치를 계산한 후, 상기 기준 코드의 절대 주소에서 상기 계산된 상대 위치를 빼 줌으로써, 상기 심벌에 대한 상기 코드북 상의 어드레스를 계산하는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  10. 제 2 항에 있어서,
    상기 심벌 매칭부는, 상기 전처리부로부터 입력되는 상기 JPEG 코드 스트림 중 좌측 8 비트의 데이터가 모두 1인 경우, 상기 데이터 대신 0의 값이 8개 연속된 프리 코드 데이터를 상기 비교기로 출력하는 멀티플렉서를 더 포함하는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  11. 제 2 항에 있어서,
    상기 제 1 레지스터는, 디코딩 속도를 높이기 위해서 적어도 둘 이상의 집합으로 분할되는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  12. 제 2 항에 있어서,
    상기 심벌 매칭부는, 디코딩 속도를 높이기 위해서 상기 비교기를 적어도 둘 이상 구비하는 것을 특징으로 하는 JPEG 허프만 테이블 디코더.
  13. (a) JPEG 코드 스트림을 받아들이는 단계;
    (b) 이진 검색을 기반으로 하는 심벌 매칭을 수행하여, 상기 심벌의 비트 수를 결정하는 단계;
    (c) 상기 심벌 매칭 결과에 따른 배럴 쉬프팅을 수행하는 단계;
    (d) 원하는 심벌이 저장된 코드 북 메모리의 어드레스를 발생하는 단계; 및
    (e) 상기 심벌의 레벨을 계산하여 출력하는 단계를 포함하는 것을 특징으로 하는 JPEG 허프만 테이블 디코딩 방법.
  14. 제 13 항에 있어서,
    상기 (d) 단계는, 대상 심벌과 기준 코드와의 상대적인 위치를 계산한 후, 상기 기준 코드의 절대 주소에서 상기 계산된 상대 위치를 빼 줌으로써, 상기 어드레스를 계산하는 것을 특징으로 하는 JPEG 허프만 테이블 디코딩 방법.
  15. 제 14 항에 있어서,
    상기 기준 코드는, 허프만 테이블에 정의되어 있는 1 내지 16 비트 심벌들과 동일한 비트를 가지는 코드들 중 가장 큰 값을 가지는 코드들인 것을 특징으로 하는 JPEG 허프만 테이블 디코딩 방법.
  16. 제 14 항에 있어서,
    상기 기준 코드는, 허프만 테이블에 정의되어 있는 1 내지 16 비트 심벌들과 동일한 비트를 가지는 코드들 중 가장 작은 값을 가지는 코드들인 것을 특징으로 하는 JPEG 허프만 테이블 디코딩 방법.
KR10-2002-0036069A 2002-06-26 2002-06-26 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법 KR100468742B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0036069A KR100468742B1 (ko) 2002-06-26 2002-06-26 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법
US10/406,489 US6798365B2 (en) 2002-06-26 2003-04-04 JPEG Huffman table decoder and method thereof based on binary search technique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0036069A KR100468742B1 (ko) 2002-06-26 2002-06-26 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법

Publications (2)

Publication Number Publication Date
KR20040001013A KR20040001013A (ko) 2004-01-07
KR100468742B1 true KR100468742B1 (ko) 2005-01-29

Family

ID=29774948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0036069A KR100468742B1 (ko) 2002-06-26 2002-06-26 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법

Country Status (2)

Country Link
US (1) US6798365B2 (ko)
KR (1) KR100468742B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4728860B2 (ja) * 2006-03-29 2011-07-20 株式会社東芝 情報検索装置
US8260070B1 (en) 2006-10-03 2012-09-04 Adobe Systems Incorporated Method and system to generate a compressed image utilizing custom probability tables
US8849051B2 (en) * 2007-09-17 2014-09-30 Nvidia Corporation Decoding variable length codes in JPEG applications
US8073270B2 (en) * 2008-09-16 2011-12-06 Silicon Motion, Inc. Image decoding apparatus and method
TWI343192B (en) * 2009-06-12 2011-06-01 Ind Tech Res Inst Decoding method
CN101998122B (zh) * 2010-12-13 2012-05-02 山东大学 Jpeg图像中范式霍夫曼的硬件解码方法及装置
CN113852556B (zh) * 2021-08-31 2023-04-14 天翼数字生活科技有限公司 一种路由信息压缩与检索方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000333020A (ja) * 1999-05-20 2000-11-30 Matsushita Electric Ind Co Ltd 2値画像符号化方法、2値画像符号化装置および記録媒体
JP2001069355A (ja) * 1999-08-26 2001-03-16 Matsushita Electric Ind Co Ltd 二値画像符号化装置および方法ならびに情報記録媒体
KR20020065211A (ko) * 2001-02-06 2002-08-13 삼성전자 주식회사 고속 허프만 디코딩 방법 및 장치
KR20030016859A (ko) * 2001-08-22 2003-03-03 한국전자통신연구원 허프만 부호의 복호화 방법
KR20030071327A (ko) * 2002-02-28 2003-09-03 삼성전자주식회사 개선된 허프만 디코딩 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69424315T2 (de) * 1994-02-25 2000-11-30 Ibm Vorrichtung und verfahren zum abbilden von bits
US5818877A (en) * 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
US6121905A (en) * 1998-05-11 2000-09-19 Oak Technology, Inc. Method and apparatus for decoding JPEG symbols
US6650261B2 (en) * 2001-09-06 2003-11-18 Xerox Corporation Sliding window compression method utilizing defined match locations

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000333020A (ja) * 1999-05-20 2000-11-30 Matsushita Electric Ind Co Ltd 2値画像符号化方法、2値画像符号化装置および記録媒体
JP2001069355A (ja) * 1999-08-26 2001-03-16 Matsushita Electric Ind Co Ltd 二値画像符号化装置および方法ならびに情報記録媒体
KR20020065211A (ko) * 2001-02-06 2002-08-13 삼성전자 주식회사 고속 허프만 디코딩 방법 및 장치
KR20030016859A (ko) * 2001-08-22 2003-03-03 한국전자통신연구원 허프만 부호의 복호화 방법
KR20030071327A (ko) * 2002-02-28 2003-09-03 삼성전자주식회사 개선된 허프만 디코딩 방법 및 장치

Also Published As

Publication number Publication date
US20040001013A1 (en) 2004-01-01
US6798365B2 (en) 2004-09-28
KR20040001013A (ko) 2004-01-07

Similar Documents

Publication Publication Date Title
US7538696B2 (en) System and method for Huffman decoding within a compression engine
KR100950607B1 (ko) 허프만 코딩
US6876317B2 (en) Method of context based adaptive binary arithmetic decoding with two part symbol decoding
US7119723B1 (en) Decoding variable length codes while using optimal resources
US8094048B2 (en) Method of decoding syntax element in context-based adaptive binary arithmetic coding decoder and decoding device therefor
JP2007508653A (ja) 高速テーブルルックアップ用メモリおよび低消費電力機構
US7650322B2 (en) Method and apparatus for mapping the primary operational sequences of an algorithm in a compute unit having an internal random access memory
US6332152B1 (en) Arithmetic unit and data processing unit
WO2006073993A2 (en) Fast compact decoder for huffman codes
JP3189876B2 (ja) 可変長符号復号化回路
KR100486251B1 (ko) 가변 길이 코드 복호화 장치 및 방법
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
KR100468742B1 (ko) 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법
JP5973507B2 (ja) 命令を圧縮する方法及び圧縮された命令を実行するプロセッサ
WO2017171611A1 (en) Variable-sized symbol entropy-based data compression
US7068192B1 (en) System and method for encoding and decoding variable-length data
US7830281B2 (en) Variable-length code decoding apparatus, variable-length code decoding method, and program
US6130631A (en) Method and apparatus utilizing a simplified content-addressable memory for JPEG decoding
US7728745B2 (en) Variable length code decoding apparatus and method with variation in timing of extracting bit string to be decoded depending on code word
KR20050010918A (ko) 가변길이 복호화를 위한 방법 및 시스템, 및 코드워드들의지역화를 위한 장치
JP6363581B2 (ja) 入力ブロックのスキャンと同時にソート済みシンボル・リストを維持するハードウェア・データ圧縮器
US6144321A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
US6133859A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
JP5201052B2 (ja) 可変長符号の復号高速化装置
US20180316938A1 (en) Method and apparatus for k-th order exp-golomb binarization

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

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 16