KR100847077B1 - 허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체 - Google Patents

허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체 Download PDF

Info

Publication number
KR100847077B1
KR100847077B1 KR1020060073128A KR20060073128A KR100847077B1 KR 100847077 B1 KR100847077 B1 KR 100847077B1 KR 1020060073128 A KR1020060073128 A KR 1020060073128A KR 20060073128 A KR20060073128 A KR 20060073128A KR 100847077 B1 KR100847077 B1 KR 100847077B1
Authority
KR
South Korea
Prior art keywords
symbol
flag
value
huffman table
denormalized
Prior art date
Application number
KR1020060073128A
Other languages
English (en)
Other versions
KR20080012087A (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 KR1020060073128A priority Critical patent/KR100847077B1/ko
Publication of KR20080012087A publication Critical patent/KR20080012087A/ko
Application granted granted Critical
Publication of KR100847077B1 publication Critical patent/KR100847077B1/ko

Links

Images

Classifications

    • 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
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

허프만 복호화 동작시 클럭 사이클 수를 줄일 수 있는 허프만 복호화 방법은 선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드로부터 정규화된 제1 심볼 및 제2 심볼로 이루어지는 한쌍의 심볼을 구하는 단계와, 상기 선택된 허프만 테이블에 미리 저장된 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계를 포함한다. 종래 정규화된 한쌍의 심볼들을 비정규화하는 과정에서 제한 비트 적용 및 부호 비트 적용시 필요한 비교 연산과 분기 연산을 줄일 수 있고 한 쌍의 심볼들을 각각 병렬적으로 비정규화함으로서 허프만 복호화 동작시 클럭 사이클 수를 줄일 수 있다.

Description

허프만 부호화 방법 및 이를 구현하기 위한 프로그램이 기록된 기록 매체{HUFFMAN DECODING METHOD AND RECORD MEDIA RECORED PROGRAM FOR REALIZING THE SAME}
도 1 및 도 2는 종래의 MP3에서의 정규화된 2-D 심볼 x, y 값으로부터 최종 2-D 심볼 x, y를 산출하는 허프만 디코딩 과정을 설명하기 위한 개념도이다.
도 3은 도 1 및 도 2의 허프만 디코딩 과정을 설명하기 위한 순서도이다.
도 4는 허프만 테이블에 저장된 허프만 테이블 번호별로 할당된 제한 비트(linbit) 값을 나타낸 도표이다.
도 5는 본 발명의 일실시예에 따른 허프만 디코딩 방법을 설명하는 순서도이다.
도 6은 허프만 테이블에 저장된 주소(address)의 형식을 나타낸다.
도 7은 도 3의 허프만 디코딩시 데이터가 심볼을 포함하는 경우 허프만 테이블에 저장된 데이터의 형식을 나타낸다.
도 8은 본 발명의 일실시예에 따른 허프만 디코딩시 데이터가 심볼을 포함하는 경우의 데이터의 형식을 나타낸다.
도 9은 본 발명의 일실시예에 따른 허프만 디코딩시 데이터가 주소 정보를 포함하는 경우의 데이터의 형식을 나타낸다.
도 10은 제한 비트 플래그, 부호 비트 플래그 및 상태 플래그에 따라 처리되는 동작을 미리 정의한 도표를 나타낸다.
본 발명은 허프만 복호화 방법에 관한 것으로, 더욱 상세하게는 MP3 방식에 적용할 수 있는 허프만 복호화 방법에 관한 것이다.
허프만 부호화는 높은 발생 빈도를 가지는 심볼(symbol)은 짧은 길이를 가지는 코드 워드(code word)-인코딩된 데이터 비트-를 할당하고, 낮은 발생 빈도를 가지는 심볼은 긴 길이를 가지는 코드 워드를 할당하여 부호화한다. 즉, 가장 빈번하게 발생되는 심볼은 가장 짧은 길이를 가지는 코드 워드로 부호화된다.
여러 가지 압축 알고리즘 중에서 허프만 부호화는 데이터의 통계적인 중복성을 제거하기 위한 방법으로 동영상과 정지 영상 등 비디오 압축 및 오디오 압축 분야에서 많이 사용되어왔다.
특히, MPEG(Moving Picture Experts Group)1 오디오 압축 방식 중 압축율이 가장 높은 계층 3의 MP3(MPEG1 Audio layer-3) 방식에서는 더 좋은 데이터 압축을 위해 양자화된 샘플을 코드화 할 때, 엔트로피 코딩(Entropy coding)의 하나인 허프만 코드(Huffman code)를 사용한다.
MP3 방식에 허프만 부호화를 적용할 경우, 양자화된 오디오 샘플값은 0 내지 15의 값을 가지는 4 비트의 심볼로 정규화(normalrization)되어 부호화된다.
구체적으로, MP3 방식에서는, 양자화된 샘플값을 허프만 부호화할 경우 양자화된 오디오 샘플값이 고주파에서 '0'(zero)의 연속값을 가지는 경우에는 런 랭쓰 코딩(run length coding)으로 부호화되고, 양자화된 오디오 샘플값의 크기가 '1'을 넘지 않는 값을 가지는 경우에는 4-D (Dimensional) 심볼(v, w, x, y)(또는 quadruple mode 심볼)로 부호화되고, 나머지 크기를 가지는 양자화된 오디오 샘플들은 2-D(Dimensional) 심볼(x, y)(또는 pair mode 심볼)로 부호화된다. 이때, 런 랭쓰 코딩(run length coding)으로 부호화된 심볼 [x, y]는 [0,0]을 가지고, 4-D (Dimensional) 심볼 [v, w, x, y]는 각각은 0 또는 1의 값을 가지며, 2-D(Dimensional) 심볼 [x, y]는 0 내지 15의 값을 가진다.
종래의 MP3 방식에서는 양자화된 샘플값을 허프만 디코딩할 경우에는 먼저 허프만 테이블을 이용하여 입력 비트스트림의 코드워드로부터 정규화된 0 내지 15의 값을 가지는 한쌍의 2-D 심볼 [x, y]를 구한후, 2-D 심볼 [x, y]를 비정규화(denormalization)하여 최종 심볼을 구한다.
즉, 상기 15 이하의 값을 가지도록 4비트로 정규화된 2-D 심볼 [x, y]를 구한 후, 다시 원래의 오디오 신호의 크기에 맞도록 각 허프만 테이블에 저장된 제한 비트(linbit)값을 이용하여 상기 정규화된 2-D 심볼 [x, y]을 비정규화(denormalization)하여 최종 2-D 심볼 [x, y]를 구한다.
도 1 및 도 2는 종래의 MP3에서의 정규화된 2-D 심볼 x, y 값으로부터 최종 2-D 심볼 x, y를 산출하는 허프만 디코딩 과정을 설명하기 위한 개념도이고, 도 3은 도 1 및 도 2의 허프만 디코딩 과정을 설명하기 위한 순서도이다. 도 4는 허프 만 테이블에 저장된 허프만 테이블 번호별로 할당된 제한 비트(linbit) 값을 나타낸 도표이다. 도 1은 허프만 테이블 번호가 23이고, 제한 비트(linbit)값이 13이며, 정규화된 2-D 심볼 [x, y] 값이 [4, 15]인 경우이고, 도 2는 허프만 테이블 번호가 27이고, 제한 비트(linbit)값이 7이며, 정규화된 2-D 심볼 [x, y] 값이 [15, 15]인 경우이다.
도 3을 참조하면, 먼저, 소정의 허프만 테이블 번호로부터 허프만 테이블을 선택하고(단계 301), 상기 선택된 허프만 테이블을 이용하여 입력 비트스트림으로부터 정규화된 2-D 심볼 x, y를 구한다.
먼저, 상기 정규화된 2-D 심볼 중 x에 대해 단계 105 내지 단계 115를 통하여 최종 심볼 x를 구하고, 순차적으로 그 다음에 상기 정규화된 2-D 심볼 중 y에 대해 단계 317 내지 단계 327를 통하여 최종 심볼 y를 구한다.
구체적으로, 정규화된 심볼 x값이 15인지 여부를 판단하여 제한 비트(linbit)를 사용하여 비정규화를 수행할지 여부를 판단한다(단계 305).
제한 비트값은 정규화된 샘플 x가 15로 양자화된 경우 또는 정규화된 샘플 y가 15로 양자화된 경우 샘플 x 및 y를 비정규화하여 최종 심볼 [x, y] 값을 생성시키기 위하여 사용된다. 제한 비트값은 정규화된 샘플 x 또는 y가 15 미만으로 양자화된 경우에는 사용되지 않는다. 제한 비트(linbit)는 도 4에 도시된 바와 같이 허프만 테이블 마다 고유의 제한 비트값을 가지고 있으며, 제한 비트 값의 범위는 0 내지 13이다.
상기 단계 305의 판단 결과, 정규화된 심볼 x값이 15인 경우에는 상기 선택 된 허프만 테이블로부터 제한 비트(linbit)값 linbit_x을 읽어온 후(단계 307), 입력 비트 스트림 중 코드 워드 이후에 존재하는 비트들 중 상기 제한 비트값(linbit_x)만큼의 비트값을 읽어와 더해준다(단계 309). 도 2의 경우, 정규화된 심볼 x값이 15이므로 입력 비트스트림의 코드 워드(구간 C0, '0011') 이후의 비트들 중 도 4의 27번 허프만 테이블에 저장된 제한 비트(linbit)값인 7비트 만큼(T21부터 T22까지의 구간 C1에 상응하는 비트들 '111111') 읽어와 제한 비트값 127을 더해준다(x=15 + 127). 여기서, 허프만 테이블에는 코드 워드 '0011'에 2-D 심볼 [x=15, y=15]이 할당되어 저장되어 있다.
정규화된 심볼 x값이 15가 아닌 경우-즉 정규화된 심볼 x값이 15보다 작은 경우-에는 제한 비트(linbit)값을 읽어오지 않고 바로 단계 311을 수행한다.
도 1의 경우, 정규화된 심볼 x값이 4로서 정규화된 심볼 x값이 15가 아닌 경우이므로 허프만 테이블로부터 제한 비트(linbit)값을 읽어오지 않는다.
그 다음, x 값이 0인지 아닌지 판단하여 x에 대해 부호 비트(sign bit)를 적용할지 여부를 판단한다(단계 311). 상기 판단 결과, x 값이 0이 아닌 경우에는 x의 부호 비트를 적용하기 위하여 x의 부호 비트에 해당되는 1 비트값을 입력 비트스트림으로부터 읽어온다(단계 313). 상기 판단 결과, x 값이 0인 경우에는 단계 315를 수행한다.
도 1에 도시된 바와 같이, 정규화된 심볼 x값이 4이므로 입력 비트스트림으로부터 제한 비트(linbit)값을 읽어오지 않고 입력 비트스트림의 코드 워드 이후에 존재하는 1 비트(T11부터 1비트인 구간 B1)를 부호 비트로 읽어온다. 부호 비트값 이 '0'인 경우 양수이고, '1'인 경우 음수이다. 도 2에 도시된 바와 같이, 정규화된 심볼 x값이 15이므로 입력 비트스트림의 코드 워드(구간 C0) 이후의 비트들로부터 7 비트만큼의 제한 비트(linbit)값을 읽어온 후 제한 비트가 끝난 이후의 1비트(T22부터 1비트인 구간 C2)를 부호 비트로 읽어온다.
상기 제한 비트값 및 부호 비트를 이용하여 최종 심볼 x를 산출한다(단계 315). 도 1의 경우 최종 심볼 x는 부호 비트값이 '0'이므로 양수이고 제한 비트값이 없으므로 4의 값을 갖는다. 도 2의 경우 최종 심볼 x는 부호 비트값이 '1'이므로 음수이고, 제한 비트값이 127 이므로 -(15 + 127), 즉 -142의 값을 가진다.
그 다음, 다시 정규화된 심볼 y에 대해 최종 심볼 y를 구한다.
정규화된 심볼 y값이 15인지 여부를 판단하여 제한 비트(linbit)를 적용할지 여부를 판단한다(단계 317). 판단 결과, 정규화된 심볼 y값이 15인 경우에는 상기 선택된 허프만 테이블로부터 제한 비트(linbit)값 linbit_y을 읽어온 후(단계 119), 입력 비트 스트림의 코드 워드 이후의 비트들 중 상기 제한 비트값(linbit_y)만큼의 비트값을 읽어와 더해준다(단계 321).
도 1의 경우, 정규화된 심볼 y값이 15이므로 입력 비트스트림의 코드 워드(구간 B0, '000001001') 이후의 비트들 중 도 4의 23번 허프만 테이블에 저장된 제한 비트(linbit)값인 13개만큼의 비트들(T12부터 T13까지의 구간 B2 '0000111111110')을 읽어와 더해준다(y=15+510).
여기서, 허프만 테이블에는 코드 워드 '000001001'에 2-D 심볼 [x=4, y=15]이 쌍으로 할당되어 저장되어 있다. 상기 읽어들인 13 비트('0000111111110')의 십 진수 값은 510이다.
정규화된 심볼 y값이 15가 아닌 경우에는 제한 비트(linbit)값을 읽어오지 않고 바로 단계 123을 수행한다. 도 2의 경우, 정규화된 심볼 y값이 15이므로 입력 비트스트림의 코드 워드 이후의 비트들 중 27번 허프만 테이블에 저장된 제한 비트(linbit)값인 7개만큼의 비트들(T23부터 T24까지의 구간 C3 '0001111')을 읽어와 더해준다(y=15+15). 상기 읽어들인 7비트('0001111')의 십진수 값은 15이다.
그 다음, y 값이 0인지 아닌지 판단하여 y에 대해 부호 비트(sign bit)를 적용할지 여부를 판단한다(단계 323). 상기 판단 결과, y 값이 0이 아닌 경우에는 y의 부호 비트를 적용하기 위하여 y의 부호 비트에 해당되는 1 비트값을 입력 비트스트림으로부터 읽어온다(단계 325). 도 1에 도시된 바와 같이, 정규화된 심볼 y값이 15이므로 입력 비트스트림으로부터 먼저 제한 비트(linbit)값을 읽어온 후 T13부터 1비트(구간 B3)를 부호 비트로 읽어온다. 도 2에 도시된 바와 같이, 정규화된 심볼 y값이 15이므로 입력 비트스트림으로부터 먼저 제한 비트(linbit)값을 읽어온 후 T24부터 1비트(구간 C4)를 부호 비트로 읽어온다.
제한 비트값 및 부호 비트를 참조하여 최종 심볼 y를 산출한다(단계 127). 도 1의 경우 최종 심볼 y는 부호 비트값이 '1'이므로 음수이고 제한 비트값이 510 이므로 -(15 + 510), 즉 -525의 값을 가진다.
도 2의 경우 최종 심볼 y는 부호 비트값이 '1'이므로 음수이고, 제한 비트값이 15 이므로 -(15 + 15), 즉 -30의 값을 가진다.
상기 종래의 정규화된 2-D 심볼 x, y를 비정규화하여 복호화할 경우 정규화 된 심볼 x 및 정규화된 심볼 y 각각에 대해 순차적으로 디코딩을 수행하므로 정규화된 2-D 심볼 x, y를 복호화하는데 많은 클럭 사이클이 필요하고 복호화 시간이 많이 걸리며, 그 결과 MP3 오디오 파일의 검색 속도가 저하되는 단점이 있다.
또한, 정규화된 2-D 심볼 x, y를 비정규화할 경우 비교 동작을 처리하는 부분(단계 305, 311, 317, 323) 및 분기 동작을 처리하는 부분은 허프만 디코딩시 매번 발생하는데, 허프만 디코딩시마다 매번 허프만 테이블로부터 제한 비트값을 읽어서 비교 연산 및 분기 연산을 수행하여야하고, 부호 비트 체크가 불필요함에도 매번 부호 비트를 체크해야하는 단점이 있다.
따라서, 본 발명의 일 목적은 허프만 복호화 동작시 클럭 사이클 수를 줄일 수 있는 허프만 디코딩 방법 및 이를 수행하는 프로그램을 기록한 기록매체를 제공하는 것이다.
상술한 본 발명의 일 목적을 달성하기 위한 본 발명의 일측면에 따른 허프만 복호화 방법은 선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드로부터 정규화된 제1 심볼 및 제2 심볼로 이루어지는 한쌍의 심볼을 구하는 단계; 및 상기 선택된 허프만 테이블에 미리 저장된 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계를 포함한다. 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최 종 한쌍의 심볼을 구하는 단계는 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제1 심볼을 구하는 단계; 및 상기 선택된 허프만 테이블에 미리 저장된 상기 제2 심볼에 대한 제한 비트 플래그 및 상기 제2 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제2 심볼을 구하는 단계를 포함할 수 있다. 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제1 심볼을 구하는 단계는 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그가 제1 상태를 가지는 경우 상기 선택된 허프만 테이블에 미리 저장된 제한 비트값을 읽어들여 상기 입력 비트 스트림의 코드 워드 이후 비트들 중 상기 제한 비트값의 개수 만큼의 비트들을 읽어들여 상기 정규화된 제1 심볼값에 상기 읽어들인 비트들의 값을 더하는 단계; 및 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 부호 플래그에 따라 상기 비정규화된 제1 심볼의 부호를 결정하는 단계를 포함할 수 있다. 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제1 심볼을 구하는 단계는 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그가 제2 상태를 가지는 경우 상기 정규화된 제1 심볼값을 유지하는 단계를 더 포함할 수 있다. 상기 상태 플래그는 상기 정규화된 제1 심볼 및 제2 심볼이 각각 영의 값을 가지는 경우 제2 상태로 설정될 수 있다. 상기 상태 플래그가 상기 제2 상태값을 가지는 경우 상기 최종 한쌍의 심볼값은 모두 영의 값을 가질 수 있다. 상기 선택된 허프만 테이블은 상기 정규화된 제1 및 제2 심볼, 상기 제1 심볼의 제한 비트 플래그, 상기 제1 심볼의 부호 플래그, 상기 제2 심볼의 제한 비트 플래그, 상기 제2 심볼의 부호 플래그, 상태 플래그 및 상기 제1 및 제2 심볼에 대한 제한 비트값를 포함할 수 있다. 상기 선택된 허프만 테이블에 미리 저장된 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼은 병렬적으로 비정규화될 수 있다.
본 발명의 다른 측면에 따른 허프만 복호화 방법은 선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드로부터 정규화된 제1 심볼 및 제2 심볼로 이루어지는 한쌍의 심볼을 구하는 단계; 및 상기 선택된 허프만 테이블에 미리 저장된 상태 플래그, 상기 제1 심볼에 대한 제한 비트 플래그, 상기 제1 심볼에 대한 부호 플래그, 상기 제2 심볼에 대한 제한 비트 플래그, 상기 제2 심볼에 대한 부호 플래그 및 상기 제1 및 제2 심볼에 대한 제한 비트값에 기초하여 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 상기 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계를 포함한다. 상기 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼은 병렬적으로 비정규화될 수 있다.
본 발명의 다른 목적을 달성하기 위한 본 발명의 일측면에 따른 기록 매체는 상기의 허프만 복호화 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 포함한다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 일실시예에 따른 허프만 디코딩 방법은 소정 값 이하의 정규화된 값을 가지는 양자화된 오디오 샘플값을 비정규화시켜 복호화하는 오디오 디코딩 장치- 예를 들어 MP3-에 적용할 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 5는 본 발명의 일실시예에 따른 허프만 디코딩 방법을 설명하는 순서도이다. 도 6은 허프만 테이블에 저장된 주소(address)의 형식을 나타내고, 도 7은 도 3의 허프만 디코딩시 데이터가 심볼을 포함하는 경우 허프만 테이블에 저장된 데이터의 형식을 나타내며, 도 8은 본 발명의 일실시예에 따른 허프만 디코딩시 데이터가 심볼을 포함하는 경우의 데이터의 형식을 나타내며, 도 9은 본 발명의 일실시예에 따른 허프만 디코딩시 데이터가 주소 정보를 포함하는 경우의 데이터의 형식을 나타낸다.
도 7을 참조하면, 허프만 테이블에 저장되는 주소는 9비트의 세그먼트(segment) (또는 페이지(page)) 정보 및 3비트의 오프셋(offset) 정보를 포함한 다.
본 발명의 일실시예에 따른 허프만 테이블에 저장된 도 8의 데이터의 형식을 살펴보면, 도 7의 데이터 형식과는 달리 데이터에 심볼 x, y (또는 v, w, x, y)과 함께 각 허프만 테이블당 제한 비트(linbit)값, 제한 비트(linbit) 플래그, 부호 비트(sign bit) 플래그 및 상태 플래그를 추가적으로 삽입하여 허프만 테이블에 미리 저장한다.
도 8을 참조하면, 본 발명의 일실시예에 따른 허프만 테이블에 저장되는 데이터가 심볼을 포함하는 경우에는, 상기 데이터는 하위 8비트(D0 내지 D7)에 할당된 2-D 심볼 (또는 pair mode 심볼) x, y(또는 4-D 심볼(또는 quadruple mode 심볼) v, w, x, y), D8 내지 D11에 할당된 각 허프만 테이블당 제한 비트(linbit)값, D12에 할당된 상태 플래그(status flag), D13에 할당된 y의 부호 플래그(signbit_y flag), D14에 할당된 y의 제한 비트 플래그(linbit_y flag), D15에 할당된 x의 부호 플래그(signbit_s flag), D16에 할당된 x의 제한 비트 플래그(linbit_x flag), D17에 할당된 A/D 플래그, D18 및 D19에 할당된 부가 비트(more bit)를 포함한다.
A/D 플래그는 데이터에 주소가 저장되었는지 심볼이 저장되었는지를 나타낸다. 허프만 테이블에 저장되는 데이터가 2-D 심볼(또는 4-D 심볼)을 포함하는 경우에는 부가 비트(more bit)는 '00', '01', '10' 값 중 하나를 가질 수 있다. 부가 비트에 대한 자세한 설명은 후술한다. 허프만 테이블에 저장되는 데이터가 도 9와 같이 주소(Next Address)를 포함하는 경우에는 부가 비트는 '11' 값을 가진다. 상태 플래그는 심볼 x, y가 모두 0인 경우에 '0'의 값을 가지고, 그 외의 경우는 '1' 을 가진다. 상태 플래그는 '1' 로 설정된 경우 2-D 심볼 [x, y]값은 비정규화된다. y의 부호 플래그(signbit_y flag)가 '1'인 경우 y는 음수, '0'인 경우 y는 양수임을 나타낸다. x의 부호 플래그(signbit_s flag)는 '1' 인 경우 x는 음수, '0' 인 경우 x는 양수임을 나타낸다. x의 제한 비트 플래그(linbit_x flag)는 '1' 인 경우 입력 비트 스트림의 코드 워드 이후의 비트들 중 상기 x의 제한 비트값의 개수 만큼의 비트들을 읽어들여 정규화된 x값에 더하여 심볼 x를 비정규화하고, '0' 인 경우 x에는 제한 비트값에 대한 처리를 수행하지 않는다. y의 제한 비트 플래그(linbit_y flag)는 '1' 인 경우 입력 비트 스트림의 코드 워드 이후의 비트들 중 상기 y의 제한 비트값의 개수만큼의 비트들을 읽어들여 정규화된 y값에 더하여 심볼 y를 비정규화하고 '0' 인 경우 y에는 제한 비트값에 대한 처리를 수행하지 않는다.
2-D 심볼 x, y (또는 4-D 심볼 v, w, x, y)가 저장되는 위치는 20비트 중 반드시 하위 8비트로 한정되는 것은 아니며, 상위 8비트에 저장될 수도 있고, 20비트 중 임의의 위치에 저장될 수도 있음은 물론이다. 또한, 각 허프만 테이블당 제한 비트값, 상태 플래그(status flag), y의 부호 플래그(signbit_y flag), y의 제한 비트 플래그(linbit_y flag), x의 부호 플래그(signbit_s flag), x의 제한 비트 플래그(linbit_x flag), A/D 플래그, 부가 비트(more bit)의 배치 순서 및 위치도 변경이 가능함은 물론이다.
도 9를 참조하면, 허프만 테이블에 저장되는 데이터가 주소를 포함하는 경우에는, 상기 데이터는 부가 비트(D18, D19), A/D 비트(D17), 다음 점프할 주소(D8 내지 D16), '0' 으로 채워진 영역(D0 내지 D7)을 포함한다.
기존의 도 7의 데이터 형식을 사용할 경우에는 도 3의 비교 동작을 처리하는 부분(단계 305, 311, 317, 323) 및 분기 동작을 처리하는 부분을 수행하기 위하여 매번 허프만 테이블로부터 제한 비트값을 읽어서 비교 연산 및 분기 연산을 수행하여야하고, 심볼 x 및 y의 부호값을 결정하기 위하여 심볼 x 및/또는 y가 '0'이 아닌지를 매번 체크해야하고 부호 비트를 읽어서 비교 연산 및 분기 연산을 수행하여야 하는 단점이 있었다. 그러나, 본 발명의 일실시예에 따르면, 도 8의 데이터의 형식에 따라 제한 비트(linbit) 플래그, 부호 비트(sign bit) 플래그 및 상태 플래그에 따른 동작을 도 10의 도표와 같이 미리 정의해놓음으로써 제한 비트(linbit) 플래그, 부호 비트(sign bit) 플래그 및 상태 플래그에만 기초하여 정규화된 2-D 심볼 (또는 pair mode 심볼) [x, y]를 비정규화(denormalization)하여 최종 심볼[x, y]을 구함으로써 클럭 사이클 수를 줄일 수 있다.
또한, 도 3과 같이 심볼 x 및 y에 대하여 각각 순차적으로 비정규화(denormalization)하는 것이 아니라 도 5에 도시된 바와 같이 심볼 x 및 y에 대하여 병렬적으로 비정규화 과정을 수행함으로써 클럭 사이클을 줄일 수 있다.
이하, 도 5 내지 도 9를 참조하여, 본 발명의 일실시예에 따른 허프만 디코딩 방법을 설명한다.
본 발명의 일실시예에 따른 허프만 디코딩 방법은 소정의 허프만 테이블 번호로부터 허프만 테이블을 선택하고(단계 501), 상기 선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드(codeword)로부터 0 내지 15의 값을 갖도록 4비 트로 정규화된 2-D 심볼 (또는 pair mode 심볼) [x, y]를 구한후(단계 503), 다시 원래의 오디오 신호의 크기에 맞도록 제한 비트(linbit)값을 이용하여 상기 정규화된 2-D 심볼 [x, y]를 비정규화(denormalization)하여 최종 심볼[x, y]을 구한다(도 5의 단계 505 내지 단계 515).
구체적으로, 소정의 허프만 테이블 번호에 상응하는 허프만 테이블을 이용하여 입력 비트 스트림의 코드 워드로부터 적어도 하나의 비트(1개, 2개 또는 3개 등 가변개수의 비트)를 읽어가면서, 상기 읽은 비트값에 기초하여 결정된 메모리의 주소값에 상응하는 위치에 저장된 데이터에 포함된 심볼쌍이 상기 소정의 허프만 테이블 번호에 상응하는 허프만 테이블에 저장된 심볼쌍과 일치할 때까지 계속 읽어나간다. 계속 읽어나가는 도중 일치하는 심볼쌍이 찾아지면 상기 일치하는 심볼쌍이 상기 정규화된 2-D 심볼 x, y로 구해진다.
도 5의 단계 501 내지 단계 503에서는 정규화된 한쌍의 심볼을 구하는 과정을 나타낸다. 상기 한쌍의 심볼 중 한 개의 심볼을 허프만 디코딩하는 방법은 본 출원인이 출원한 특허출원번호 10-2005-0109795(발명의 명칭 "가변 트리를 이용한 허프만 복호화 방법 및 장치") 에 자세히 설명되어 있다. 도 7 내지 도 9의 부가 비트는 상기 특허출원번호 10-2005-0109795에 개시된 가변 트리 검색 방법을 이용한 허프만 디코딩 동작 중에 검색에 사용된 코드 워드의 비트가 더 많을 경우를 체크하는 부가 정보이다. 예를 들어, 도 1의 입력 비트 스트림 중 코드 워드인 '000001001'는 [x,y]=[4,15]인 한 쌍의 심볼을 가진다. 이때, 코드 워드를 가변 트리를 이용한 검색에 의해 구하는 과정에서 코드 워드를 '1-3-3-3' 개의 비트를 통 해, 즉 '0 000 010 01x' 순서대로 찾아서 심볼을 구했을 때, "x"로 표기된 한 비트를 더 가져와서 찾았기 때문에 다음 심볼을 찾기 위해서는 "x"부터 시작해야하므로 한 비트를 더 가져왔다는 의미로 부가 비트 = "01" 로 허프만 테이블에 저장된다. 즉, 부가 비트는 심볼을 찾았을 때 사용된 비트가 더 사용된 경우 이를 반환해주기 위한 비트 수를 나타낸다.
본 발명은 정규화된 2-D 심볼 x, y 값이 구해진 상태에서 상기 구해진 2-D 심볼 x, y 값을 비정규화시켜 최종 심볼 x, y를 구하는 과정을 개선한 것이다. 따라서, 정규화된 2-D 심볼 x, y 값을 구하는 구체적인 과정에 대해서는 상기 특허출원번호 10-2005-0109795에 개시된 내용을 참조하도록 하고, 자세한 설명은 생략한다.
다시, 도 5를 참조하여 2-D 심볼 [x, y]를 비정규화(denormalization)하여 최종 심볼[x, y]을 구하는 과정을 설명한다.
도 8의 데이터의 상태 플래그가 '1' 인지 여부를 체크하여(단계 505) '0' 인 경우 최종 심볼값으로 x=0, y=0으로 산출한다. 상태 플래그가 '1' 인 경우에는 2-D 심볼 [x, y]에 대해 병렬적으로 단계 503에서 구해진 2-D 심볼 [x, y]를 비정규화한다. 즉, 상태 플래그가 '1' 인 경우에는 단계 503에서 구해진 2-D 심볼 [x, y]에 대하여 제한 비트값을 더하는 과정 및 부호값을 결정하는 과정인 단계 507 내지 단계 523을 수행하여 비정규화한다. 상태 플래그는 단계 503에서 구해진 x, y값에 의하여 x=0, y=0인 경우 '0' 으로 간단히 설정된다.
도 8의 허프만 테이블에 저장된 데이터에서 x의 제한 비트 플래그를 체크하 여(단계 507) x의 제한 비트 플래그가 '1'의 값을 가지는 경우 D8 내지 D11의 제한 비트값을 읽어들여 입력 비트 스트림의 코드 워드 이후의 비트들 중 상기 제한 비트값의 개수 만큼의 비트들을 읽어들여 단계 503에서 구해진 x 값에 더하고, x의 제한 비트 플래그가 '0'의 값을 가지는 경우에는 단계 503에서 구해진 x값을 그대로 유지한다(단계 509).
도 8의 허프만 테이블에 저장된 데이터에서 x의 부호 플래그를 체크하여(단계 511) 부호 플래그가 '1'의 값을 가지는 경우에는 단계 509에서 구해진 심볼 x값의 부호를 음수로 결정하고, 부호 플래그가 '1'의 값을 가지는 경우에는 단계 509에서 구해진 심볼 x값의 부호를 양수로 결정한다(단계 513).
단계 517 내지 단계 523은 단계 507 내지 단계 513과 병렬적으로 수행된다.
도 8의 허프만 테이블에 저장된 데이터에서 y의 제한 비트 플래그를 체크하여(단계 517) y의 제한 비트 플래그가 '1'의 값을 가지는 경우 D8 내지 D11의 제한 비트값을 읽어들여 입력 비트 스트림의 코드 워드 이후의 비트들 중 상기 제한 비트값의 개수 만큼의 비트들을 읽어들여 단계 503에서 구해진 y 값에 더하고, y의 제한 비트 플래그가 '0'의 값을 가지는 경우에는 단계 503에서 구해진 y값을 그대로 유지한다(단계 519).
도 8의 허프만 테이블에 저장된 데이터에서 y의 부호 플래그를 체크하여(단계 521) 부호 플래그가 '1'의 값을 가지는 경우에는 단계 519에서 구해진 심볼 y값의 부호를 음수로 결정하고, 부호 플래그가 '0'의 값을 가지는 경우에는 단계 519에서 구해진 심볼 y값의 부호를 양수로 결정한다(단계 523).
그 다음, 단계 509 및 단계 519에서 구해진 x, y값에 상기 단계 513 및 단계 523에서 결정된 심볼 x, y의 부호를 붙여서 최종 심볼값 x, y를 구한다(단계 515).
도 8의 데이터의 x의 제한 비트(linbit) 플래그(D16), y의 제한 비트(linbit) 플래그(D14), x의 부호 비트(sign bit) 플래그 (D15), y의 부호 비트(sign bit) 플래그(D13) 및 상태 플래그(D12)에 따른 연산 동작은 도 10과 같이 미리 정의해둔다.
도 10을 참조하면, 플래그 상태 X는 don't care를 의미하고, 심볼을 나타내는 소문자 x, y는 단계 503에서 구한 심볼값 x, y를 나타내고, 심볼을 나타내는 대문자 X는 최종 심볼값 x를 나타내고, 심볼을 나타내는 대문자 Y는 최종 심볼값 y를 나타내고, getbit(1)은 도 8의 데이터 형식에서 x 또는 y의 부호 플래그에 따라 심볼 x 또는 y의 부호를 결정하는 연산을 나타내고, linbit는 D8 내지 D11의 제한 비트값을 나타낸다.
예를 들어, D16 D15 D14 D13 D12가 '01001'인 경우에는 상태 플래그와 x의 부호 플래그만 '1'이므로 최종 심볼값 x는 단계 503에서 구한 심볼 x값에 음수를 붙여서 산출하고(X=getbit(1)*x), 최종 심볼값 y는 단계 503에서 구한 y값과 동일한 값을 가진다(Y=y).
예를 들어, D16 D15 D14 D13 D12가 '00111'인 경우에는 상태 플래그, y의 제한 비트 플래그 및 y의 부호 플래그만 '1'이므로 최종 심볼값 x는 단계 503에서 구한 y값과 동일한 값을 가지고(X=x), 최종 심볼값 x는 입력 비트 스트림의 코드 워드 이후의 비트들 중 도 8의 제한 비트값(D11 내지 D8)의 개수 만큼의 비트들을 읽 어들여 단계 503에서 구한 심볼 y값에 더한후(y+getbit(linbit)) 음수를 붙여서 산출한다(getbit(1)*(y+getbit(linbit))).
도 11은 종래 도 3의 허프만 디코딩 방법에 따라 최종 심볼 [x, y]를 구하는 경우 소요되는 클럭 사이클을 나타내는 타이밍도이고, 도 12는 본 발명의 일실시예에 따른 도 5의 허프만 디코딩 방법에 따라 최종 심볼 [x, y]를 구하는 경우 소요되는 클럭 사이클을 나타내는 타이밍도이다. 도 11 및 도 12에서는 도 2에서와 같이 허프만 테이블 번호가 27이고, 제한 비트(linbit)값이 7이며, 정규화된 2-D 심볼 [x, y] 값이 [15, 15]인 경우를 예로 들어 설명한다. 단계 a1 내지 a13, 단계 b1 내지 b11, 단계 c1 내지 c18의 각 단계는 1개의 클럭 사이클에 수행된다고 가정하였다.
도 11에 도시된 바와 같이 종래의 도 3의 허프만 디코딩 과정을 수행하는 경우 24 클럭이 소요되었으나, 도 12에 도시된 바와 같이, 본 발명의 일실시예에 따른 도 5의 허프만 디코딩을 수행하는 경우 8 클럭만이 소요되었음을 알 수 있다.
본 발명의 일실시예에 따르면, 도 8의 데이터의 형식에 따라 제한 비트(linbit) 플래그, 부호 비트(sign bit) 플래그 및 상태 플래그에 따른 동작을 도 10의 도표와 같이 미리 정의해놓음으로써 제한 비트(linbit) 플래그, 부호 비트(sign bit) 플래그 및 상태 플래그에만 기초하여 정규화된 2-D 심볼 (또는 pair mode 심볼) [x, y]를 비정규화(denormalization)하여 최종 심볼[x, y]을 구함으로써 클럭 사이클 수를 줄일 수 있다.
상기와 같은 허프만 복호화 방법에 따르면, 허프만 테이블에 정규화된 한 쌍의 심볼들 각각에 대한 제한 비트 플래그와 부호 플래그, 상태 플래그 및 제한 비트값을 미리 저장해 놓은 후 한 쌍의 심볼들 각각에 대한 제한 비트 플래그와 부호 플래그, 상태 플래그 및 제한 비트값에 기초하여 정규화된 한 쌍의 심볼들을 비정규화하여 최종 한 쌍의 심볼을 구한다.
따라서, 종래 정규화된 한쌍의 심볼들을 비정규화하는 과정에서 제한 비트 적용 및 부호 비트 적용시 필요한 비교 연산과 분기 연산을 줄일 수 있으므로 허프만 복호화 동작시 클럭 사이클 수를 줄일 수 있다.
또한, 한 쌍의 심볼들을 각각 병렬적으로 비정규화함으로서 클럭 사이클 수를 줄일 수 있다.
또한, 허프만 복호화시 제한 비트 플래그, 부호 비트 플래그 및 상태 플래그에 따른 처리해야할 연산을 미리 정의해놓음으로써 제한 비트 플래그, 부호 비트 플래그 및 상태 플래그에만 기초하여 정규화된 한 쌍의 심볼을 비정규화(denormalization)하여 최종 한 쌍의 심볼을 구함으로써 클럭 사이클 수를 줄일 수 있다.
또한, 상기 허프만 복호화 방법을 MP3 방식에 적용할 경우 MP3 오디오 파일의 검색 속도를 향상시킬 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이 다.

Claims (19)

  1. 선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드로부터 정규화된 제1 심볼 및 제2 심볼로 이루어지는 한쌍의 심볼을 구하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한 쌍의 심볼을 구하는 단계를 포함하는 것을 특징으로 하는 허프만 복호화 방법.
  2. 제1항에 있어서, 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계는
    상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제1 심볼을 구하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상기 제2 심볼에 대한 제한 비트 플래그 및 상기 제2 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제2 심볼을 구하는 단계를 포함하는 것을 특징으로 하는 허프만 복호화 방법.
  3. 제2항에 있어서, 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비 정규화된 제1 심볼을 구하는 단계는
    상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그가 제1 상태를 가지는 경우 상기 선택된 허프만 테이블에 미리 저장된 제한 비트값을 읽어들여 상기 입력 비트 스트림의 코드 워드 이후 비트들 중 상기 제한 비트값의 개수 만큼의 비트들을 읽어들여 상기 정규화된 제1 심볼값에 상기 읽어들인 비트들의 값을 더하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 부호 플래그에 따라 상기 비정규화된 제1 심볼의 부호를 결정하는 단계를 포함하는 것을 특징으로 하는 허프만 복호화 방법.
  4. 제3항에 있어서, 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제1 심볼을 구하는 단계는
    상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그가 제2 상태를 가지는 경우 상기 정규화된 제1 심볼값을 유지하는 단계를 더 포함하는 것을 특징으로 하는 허프만 복호화 방법.
  5. 제1항에 있어서, 상기 상태 플래그는 상기 정규화된 제1 심볼 및 제2 심볼이 각각 영의 값을 가지는 경우 제2 상태로 설정되는 것을 특징으로 하는 허프만 복호화 방법.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제5항에 있어서, 상기 상태 플래그가 상기 제2 상태값을 가지는 경우 상기 최종 한쌍의 심볼값은 모두 영의 값을 갖는 것을 특징으로 하는 허프만 복호화 방법.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 선택된 허프만 테이블은 상기 정규화된 제1 및 제2 심볼, 상기 제1 심볼의 제한 비트 플래그, 상기 제1 심볼의 부호 플래그, 상기 제2 심볼의 제한 비트 플래그, 상기 제2 심볼의 부호 플래그, 상태 플래그 및 상기 제1 및 제2 심볼에 대한 제한 비트값를 포함하는 것을 특징으로 하는 허프만 복호화 방법.
  8. 제1항에 있어서, 상기 선택된 허프만 테이블에 미리 저장된 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼은 병렬적으로 비정규화되는 것을 특징으로 하는 허프만 복호화 방법.
  9. 제1항에 있어서, 상기 허프만 복호화 방법은 MP3(MPEG1 Audio layer-3) 방식에 사용되는 것을 특징으로 하는 허프만 복호화 방법.
  10. 선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드로부터 정규화된 제1 심볼 및 제2 심볼로 이루어지는 한쌍의 심볼을 구하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상태 플래그, 상기 제1 심볼에 대한 제한 비트 플래그, 상기 제1 심볼에 대한 부호 플래그, 상기 제2 심볼에 대한 제한 비트 플래그, 상기 제2 심볼에 대한 부호 플래그 및 상기 제1 및 제2 심볼에 대한 제한 비트값에 기초하여 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 상기 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계를 포함하는 것을 특징으로 하는 허프만 복호화 방법.
  11. 제10항에 있어서, 상기 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼은 병렬적으로 비정규화되는 것을 특징으로 하는 허프만 복호화 방법.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제10항에 있어서, 상기 허프만 복호화 방법은 MP3(MPEG1 Audio layer-3) 방식에 사용되는 것을 특징으로 하는 허프만 복호화 방법.
  13. 허프만 복호화 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 기록되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,
    선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드로부터 정규화된 제1 심볼 및 제2 심볼로 이루어지는 한쌍의 심볼을 구하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상태 플래그가 제1 상태값을 가지는 경우 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계를 수행하는 프로그램을 기록한 기록 매체.
  14. 제13항에 있어서, 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계는
    상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제1 심볼을 구하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상기 제2 심볼에 대한 제한 비트 플래그 및 상기 제2 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제2 심볼을 구하는 단계를 포함하는 것을 특징으로 하는 기록 매체.
  15. 제14항에 있어서, 상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그 및 상기 제1 심볼에 대한 부호 플래그에 기초하여 상기 비정규화된 제1 심볼을 구하는 단계는
    상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 제한 비트 플래그가 제1 상태를 가지는 경우 상기 선택된 허프만 테이블에 미리 저장된 제한 비트값을 읽어들여 상기 입력 비트 스트림의 코드 워드 이후 비트들 중 상기 제한 비트값의 개수만큼의 비트들을 읽어들여 상기 정규화된 제1 심볼값에 상기 읽어들 인 비트들의 값을 더하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상기 제1 심볼에 대한 부호 플래그에 따라 상기 비정규화된 제1 심볼의 부호를 결정하는 단계를 포함하는 것을 특징으로 하는 기록 매체.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제13항에 있어서, 상기 허프만 복호화 방법은 MP3(MPEG1 Audio layer-3) 방식에 사용되는 것을 특징으로 하는 기록 매체.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    허프만 복호화 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 기록되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,
    선택된 허프만 테이블을 이용하여 입력 비트스트림의 코드 워드로부터 정규화된 제1 심볼 및 제2 심볼로 이루어지는 한 쌍의 심볼을 구하는 단계; 및
    상기 선택된 허프만 테이블에 미리 저장된 상태 플래그, 상기 제1 심볼에 대한 제한 비트 플래그, 상기 제1 심볼에 대한 부호 플래그, 상기 제2 심볼에 대한 제한 비트 플래그, 상기 제2 심볼에 대한 부호 플래그 및 상기 제1 및 제2 심볼에 대한 제한 비트값에 기초하여 상기 제1 심볼 및 상기 제2 심볼을 비정규화하여 상기 비정규화된 제1 심볼 및 제2 심볼로 이루어지는 최종 한쌍의 심볼을 구하는 단계를 수행하는 프로그램을 기록한 기록 매체.
  18. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제17항에 있어서, 상기 허프만 복호화 방법은 MP3(MPEG1 Audio layer-3) 방식에 사용되는 것을 특징으로 하는 기록 매체.
KR1020060073128A 2006-08-02 2006-08-02 허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체 KR100847077B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060073128A KR100847077B1 (ko) 2006-08-02 2006-08-02 허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060073128A KR100847077B1 (ko) 2006-08-02 2006-08-02 허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체

Publications (2)

Publication Number Publication Date
KR20080012087A KR20080012087A (ko) 2008-02-11
KR100847077B1 true KR100847077B1 (ko) 2008-07-17

Family

ID=39340456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060073128A KR100847077B1 (ko) 2006-08-02 2006-08-02 허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체

Country Status (1)

Country Link
KR (1) KR100847077B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818364A (en) 1996-06-19 1998-10-06 Hewlett-Packard Company High bit-rate huffman decoding
KR0151042B1 (ko) * 1995-05-15 1998-10-15 김광호 신호압축부호화방법 및 장치
KR100269804B1 (ko) 1993-06-23 2000-10-16 전주범 가변 길이 부호화 영상 신호의 병렬 복호화 장치(apparatus for parallel decoding of variable length enchded image signals)
JP2002198822A (ja) 2000-12-27 2002-07-12 Nec Corp データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100269804B1 (ko) 1993-06-23 2000-10-16 전주범 가변 길이 부호화 영상 신호의 병렬 복호화 장치(apparatus for parallel decoding of variable length enchded image signals)
KR0151042B1 (ko) * 1995-05-15 1998-10-15 김광호 신호압축부호화방법 및 장치
US5818364A (en) 1996-06-19 1998-10-06 Hewlett-Packard Company High bit-rate huffman decoding
JP2002198822A (ja) 2000-12-27 2002-07-12 Nec Corp データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体

Also Published As

Publication number Publication date
KR20080012087A (ko) 2008-02-11

Similar Documents

Publication Publication Date Title
US10033405B2 (en) Data compression systems and method
EP2123053B1 (en) Generating a data stream and identifying positions within a data stream
EP2289245B1 (en) Method and apparatus for generating or cutting or changing a frame based bit stream format file including at least one header section, and a corresponding data structure
CZ300954B6 (cs) Zarízení a zpusob pro kódování digitálního informacního signálu, zarízení pro dekódování a nosic záznamu
JP2007508753A (ja) データ圧縮システム及び方法
JP2007508753A5 (ko)
JP2007514971A5 (ko)
CN111061722B (zh) 一种数据压缩、数据解压缩方法、装置及设备
US7940807B2 (en) Methods, decoder circuits and computer program products for processing MPEG audio frames
KR100847077B1 (ko) 허프만 부호화 방법 및 이를 구현하기 위한 프로그램이기록된 기록 매체
US7205915B2 (en) Method of decoding variable length prefix codes
JP2001084707A (ja) 可変長符号の復号方法、復号装置及び可変長符号の復号プログラムを記録したコンピュータ読み取り可能な記録媒体
CN103312338B (zh) 用于解码的设备和方法
JPH07199996A (ja) 波形データ符号化装置、波形データ符号化方法、波形データ復号装置、及び波形データ符号化/復号装置
JP2006287862A (ja) 復号化装置
US6411226B1 (en) Huffman decoder with reduced memory size
CN108335706B (zh) 一种多媒体文件的无缝播放方法、终端设备及存储介质
JP3236758B2 (ja) 可変長データのcrc演算装置
CN113595557B (zh) 一种数据处理的方法和装置
US7724159B2 (en) System, method, and/or apparatus for digital signal sorting
JP2007274051A (ja) バイト列探索器及び探索方法
JP3565147B2 (ja) 復号装置
CN107547906B (zh) 一种jpeg图像解码的方法与装置
US20140159928A1 (en) Decoding apparatus, encoding apparatus, decoding method, and encoding method
US20180081596A1 (en) Data processing apparatus and data processing method

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180627

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190625

Year of fee payment: 12