KR100982666B1 - 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법 - Google Patents

컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법 Download PDF

Info

Publication number
KR100982666B1
KR100982666B1 KR1020080089481A KR20080089481A KR100982666B1 KR 100982666 B1 KR100982666 B1 KR 100982666B1 KR 1020080089481 A KR1020080089481 A KR 1020080089481A KR 20080089481 A KR20080089481 A KR 20080089481A KR 100982666 B1 KR100982666 B1 KR 100982666B1
Authority
KR
South Korea
Prior art keywords
decoding
information
decoding information
index
address
Prior art date
Application number
KR1020080089481A
Other languages
English (en)
Other versions
KR20100030509A (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 KR1020080089481A priority Critical patent/KR100982666B1/ko
Priority to US12/368,814 priority patent/US20100074542A1/en
Publication of KR20100030509A publication Critical patent/KR20100030509A/ko
Application granted granted Critical
Publication of KR100982666B1 publication Critical patent/KR100982666B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Landscapes

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

Abstract

본 발명은 최소 메모리 액세스에 기반한 동영상 압축 표준인 H.264의 컨텍스트 기반 적응적 가변길이 코딩(CAVLC : Context Adapative Variable Length Coding)의 디코딩 장치 및 그 장치에서의 컨텍스트 기반 적응적 가변길이 코딩의 디코딩을 위한 테이블 탐색 방법에 관한 것으로서, 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치는 제1 디코딩 정보(TrailingOnes) 및 제2 디코딩 정보(TotalCoefficient)의 컨텍스트 기반 적응적 가변길이 코딩 테이블을 2단계의 테이블로 재구성하여 미리 저장하고, 입력된 비트 스트림에 상기 리딩 제로 개수를 제외한 나머지 비트가 존재하는지에 따라 상기 2단계의 테이블에 저장된 정보를 이용하여 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보의 디코딩을 위한 테이블 탐색을 수행함으로써, 반복적인 메모리 액세스를 2번의 메모리 액세스로 감소시킬 수 있으므로 전체적인 디코딩 속도를 향상시킬 수 있다.
H.264, 디코딩 장치, 컨텍스트 기반 적응적 가변길이 코딩(CAVLC), 리딩 제로(leading zero), 인덱스 테이블, 주소 테이블, TrailingOnes, TotalCoefficient.

Description

컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법{Apparatus for decoding and Table search mathod for decoding of Context Adapative Variable Length Coding}
본 발명은 동영상 압축 표준인 H.264의 컨텍스트 기반 적응적 가변길이 코딩의 디코딩에 관한 것으로서, 특히 최소 메모리 액세스에 기반한 컨텍스트 기반 적응적 가변길이 코딩(CAVLC : Context Adapative Variable Length Coding)의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2006-S-026-02, 과제명: MPCore 플랫폼 기반 다중 포맷 멀티미디어 SoC].
동영상 압축 표준인 H.264는 MPEG-4 비쥬얼(Visual)보다는 좁은 범위를 갖고 주로 효율적이고 강인한 부호화의 사각형 비디오 화면의 전송을 지원하기 위해 설계된 동영상 압축의 새로운 표준으로 매우 높은 압축률과 신뢰성 있는 전송을 가능 하게 하므로 현재 전세계에서 차세대 동영상 압축 기술로 평가받고 있다. 특히, 위성 디지털 멀티미디어 방송(DMB : Digital Multimedia Broadcasting)등 차세대 서비스와 접목되면서 고화질의 영상압축, 인터넷이나 케이블 모뎀에서의 영상전달, 디지털 데이터 방송, 차세대 휴대전화 등에 있어서 그 응용이 기대되고 있다.
H.264 인코딩 방식은 크게 컨텍스트 기반 적응적 가변 길이 코딩(Context Adapative Variable Length Coding 이하, CAVLC라 칭함), 컨텍스트 기반 적응적 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding 이하, CABAC라 칭함)으로 분류되며, 현재 H.264 베이스라인 프로파일(Baseline Profile)에서는 CAVLC을 사용하고 있으며, 메인 프로파일(Main Profile)에서는 CAVLC와 CABAC를 모두 사용하고 있다.
CAVLC 디코딩은 크게 3단계로 구분되는데, 그 첫 번째 단계는 4×4 블록에 대하여 'TrailingOnes'와 'TotalCoefficient'를 구하고, 두 번째 단계는 'Total_Zero'를 구한다. 마지막으로 세 번째 단계는 'Run-Before'를 계산하여 인코딩 이전의 4×4 블록 데이터를 복원한다. 이러한 디코딩 과정은 기본적으로 테이블 탐색에 기반을 두고 있다. 즉, 'TrailingOnes'와 'TotalCoefficient', 'Total_Zero', 'Run_Before' 값은 표준에서 정의된 가변길이 코드(Variable Length Code 이하, VLC라 칭함) 테이블의 형태로 저장된다. 각 디코딩 과정에서 디코더는 VLC 테이블에 저장되어 있는 코드워드의 길이만큼 인코딩된 비트를 읽은 후 VLC 테이블에 길이와 짝으로 저장되어 있는 코드 값을 읽어 와서 앞서 읽어 들인 인코딩된 비트 값과 비교하고, 코드의 길이와 코드 값이 정확히 일치하는 코드를 찾을 때 까지 상기 과정을 반복한다.
일반적으로 CAVLC 테이블 탐색 방법은 CAVLC 테이블의 비트열의 길이와 코드값을 각각의 배열로 저장하고, 길이 및 코드 값에 대한 배열 생성이 완료되면, 상기 일반적인 CAVLC 테이블 탐색 방법은 CAVLC 테이블에 포함된 각각의 비트열에 대응하는 길이 및 코드값을 상기 배열에서 참조하여 이를 입력 비트 스트림과 비교함으로써 디코딩 계수를 결정한다.
그러나 이와 같은 종래의 디코딩 방법은 입력 비트 스트림과 일치하는 비트열을 찾을 때까지 반복적으로 배열에 저장된 길이 및 코드 값을 참조해야 하므로 반복적인 메모리 액세스가 발생하여 디코딩 속도가 저하되는 문제점이 있다.
본 발명의 해결하고자 하는 과제는 빠른 디코딩을 위하여 메모리 액세스를 최소화하는 새로운 제1 디코딩 정보(TrailingOnes(T1s))와 제2 디코딩 정보(TotalCoefficient(Tc))의 적응적 가변길이 코딩의 디코딩을 하기 위한 장치 및 테이블 탐색 방법을 제공함에 있다.
또한, 본 발명의 해결하고자 하는 과제는 제1 디코딩 정보(TrailingOnes(T1s))와 제2 디코딩 정보(TotalCoefficient(Tc))의 CAVLC 테이블을 리딩 제로(leading zero)의 개수 및 리딩 제로(leading zero)까지의 비트열을 제외한 나머지 코드값에 따라 재구성하여 테이블 사이즈를 줄이고 메모리 액세스를 2번으로 줄이기 위한 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법을 제공함에 있다.
상기 이러한 본 발명의 목적들을 달성하기 위한 방법은, 컨텍스트 기반 적응적 가변길이 코딩의 디코딩을 위한 테이블을 탐색하는 방법으로서, 제1 디코딩 정보(TrailingOnes) 및 제2 디코딩 정보(TotalCoefficient)의 컨텍스트 기반 적응적 가변길이 코딩 테이블을 2단계의 테이블로 재구성하여 미리 저장하는 단계; 및 입력된 비트 스트림에 리딩 제로 개수를 제외한 나머지 비트가 존재하는지에 따라 상기 2단계의 테이블에 저장된 정보를 이용하여 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보의 디코딩을 위한 테이블 탐색을 수행하는 단계를 포함하는 것을 특징으로 한다.
상기 본 발명의 목적들을 달성하기 위한 적응적 가변길이 코딩의 디코딩 장치는, 제1 디코딩 정보(TrailingOnes) 및 제2 디코딩 정보(TotalCoefficient)의 컨텍스트 기반 적응적 가변길이 코딩 테이블을 2단계의 테이블로 재구성하는 제어부; 상기 제어부에 의해 활성화되어 상기 입력된 비트 스트림이 상기 리딩 제로 개수를 제외한 나머지 비트의 존재 여부에 따라 상기 2단계의 테이블에 저장된 정보를 이용하여 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보의 디코딩을 위한 테이블 탐색을 수행하는 시프터; 및 상기 컨텍스트 기반 적응적 가변길이 코딩 테이블 및 상기 재구성된 2단계의 테이블을 저장하는 메모리를 포함하는 것을 특징으로 한다.
따라서 본 발명은 2단계의 테이블을 재구성하여 테이블 탐색을 수행함으로써 기존의 테이블 탐색 과정에서 발생하는 반복적인 메모리 액세스를 2번의 메모리 액세스로 감소시킬 수 있으므로 전체적인 디코딩 속도를 향상시킬 수 있고, 전력 소모를 감소시킬 수 있으며, 기존의 디코딩 장치보다 메모리 사이즈를 줄일 수 있는 효과가 있다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한 다. 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명의 실시예에서는 루마(Luma)와 크로마(Chroma) 각각에 대하여 제1 디코딩 정보(TrailingOnes(T1s))와 제2 디코딩 정보(TotalCoefficient(Tc)) 값을 디코딩하는 방법을 적용하여 설명하기로 한다. 우선, 설명의 편의를 위해 H.264 표준의 TrailingOnes와 TotalCoefficient CAVLC 테이블의 일예를 간략하게 설명하기로 한다.
H.264 표준의 TrailingOnes와 TotalCoefficient CAVLC 테이블은 예를 들어 하기 <표 1>와 같이 나타낼 수 있으며, TrailingOnes와 TotalCoefficient 값(코드값)들에 대응하여 루마(Luma)(0≤nC<2, 2nC<4, 4≤nC<8)와 크로마(Chroma)(nC==-1)의 비트열들이 설정될 수 있다. 여기서 nC==-1일 때의 재구성된 TrailingOnes와 TotalCoefficient CAVLC 테이블은 예를 들어 하기 <표 2>에 나타낸 바와 같다.
상기 CAVLC 테이블에 포함된 비트열의 길이 및 코드값은 첨부된 도 1의 'lentab[4][17]' 및 'codtab[4][17]'와 같이 저장될 수 있다. 여기서 각 행렬의 행 인덱스 및 열 인덱스는 각각 TrailingOnes 값과 TotalCoefficient 값과 대응한다.
TrailingOnes
(coeff_token)
TotalCoeff
(coeff_token)
0≤nC<2 2≤nC<4 4≤nC<8 8≤nC nC==-1
0 0 1 11 1111 0000 11 01
0 1 0001 01 0010 11 0011 11 0000 00 0001 11
1 1 01 10 1110 0000 01 1
0 2 0000 0111 0001 11 0010 11 0001 00 0001 00
1 2 0001 00 0011 1 0111 1 0001 01 0001 10
2 2 001 011 1101 0001 10 001
0 3 0000 0011 1 0000 111 0010 00 0010 00 0000 11
1 3 0000 0110 0010 10 0110 0 0010 01 0000 011
2 3 0000 101 0010 01 0110 0 0010 10 0000 010
3 3 0001 1 0101 1100 0010 11 0001 01
0 4 0000 0001 11 0000 0111 0001 111 0011 00 0000 10
1 4 0000 0010 0 0001 10 0101 0 0011 01 0000 0011
2 4 0000 0101 0001 01 0101 1 0011 10 0000 0010
3 4 0000 11 0100 1011 0011 11 0000 000
0 5 0000 0000 111 0000 0100 0001 011 0100 00 -
1 5 0000 0001 10 0000 110 0100 0 0100 01 -
2 5 0000 0010 1 0000 101 0100 1 0100 10 -
3 5 0000 100 0011 0 1010 0100 11 -
0 6 0000 0000 0111 1 0000 0011 1 0001 001 0101 00 -
1 6 0000 0000 110 0000 0110 0011 10 0101 01 -
2 6 0000 0001 01 0000 0101 0011 01 0101 10 -
3 6 0000 0100 00010 00 1001 0101 11 -
0 7 0000 0000 0101 1 0000 0001 111 0001 000 0110 00 -
1 7 0000 0000 0111 0 0000 0011 0 0010 10 0110 01 -
2 7 0000 0000 101 0000 00101 0010 01 0110 10 -
3 7 0000 0010 0 001 00 1000 0110 11 -
0 8 0000 0000 0100 0 0000 0001 011 0000 1111 0111 00 -
1 8 0000 0000 0101 0 0000 001 110 0001 110 0111 01 -
2 8 0000 0000 0110 1 0000 001 101 0001 101 0111 10 -
3 8 0000 0001 00 0000 100 0110 1 0111 11 -
0 9 0000 0000 0011 11 0000 0000 1111 0000 1011 1000 00 -
1 9 0000 0000 0011 10 0000 0001 010 0000 1110 1000 01 -
2 9 0000 0000 0100 1 0000 0001 001 0001 010 1000 10 -
TotalCoefficient TrailingOnes
0 1 2 3
0 01 - - -
1 0001 11 1
2 0001 00 0001 10 001
3 0000 11 0000 111 0000 010 0001 01
4 0000 10 0000 0011 0000 0010 0000 0000
그러면 본 발명의 실시예에 따른 디코딩 장치 및 그 장치에서의 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 방법에 대해 설명하기로 한다. 이하, 본 발명이 실시예에서는 nC==-1 테이블 즉, 크로마(Chroma)의 경우 TrailingOnes와 TotalCoefficient 값을 디코딩하는 방법만을 설명하며, 0≤nC<2, 2≤nC<4, 4≤nC<8 8≤nC 테이블 즉, 루마(Luma)의 경우는 크로마(Chroma)의 경우와 동일한 방법을 적용하여 디코딩될 수 있으므로 본 발명의 실시예에서는 그 구체적인 설명을 생략하기로 한다.
우선, 컨텍스트 기반 적응적 가변길이 코딩의 디코딩을 위한 디코딩 장치의 구조를 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 2는 본 발명의 실시예에 디코딩 장치의 구조를 도시한 도면이다.
상기 도 2를 참조하면, 디코딩 장치는 제어부(110), 시프터(120), 버퍼(130) 및 메모리(140)를 포함하여 구성될 수 있다.
제어부(110)는 시프터(120)를 활성화하여 테이블 탐색 동작을 제어하고, 시프터(120)에서 필요한 입력 데이터를 저장하고, 버퍼(130)를 제어하여 버퍼(130)에 저장된 데이터의 비트 스트림을 출력한다. 또한, 제어부(110)는 상기 <표 2>에 설정된 테이블을 리딩 제로(leading zero)의 개수에 따라 재구성하여 2단계의 테이블 즉, 인덱스 테이블(T1_Tc_chroma_index-table) 및 주소 테이블(T1_Tc_chroma_vlc_table)을 디코딩 수행 전에 미리 설정한다. 이러한 2단계의 테이블은 제어부(110)에 미리 설정한 프로그램에 의해 설정될 수도 있지만, 사용자가 직접 상기 2단계의 테이블을 설정하여 메모리(140)에 저장할 수도 있다. 이하, 설명에서는 제어부(110)에서 2단계의 테이블을 설정하는 것으로 설명하기로 한다.
시프터(120)는 입력된 데이터의 비트 스트림에서 최초 1을 만나기 전까지의 0의 개수 즉, 리딩 제로 개수(CLZ : Count Leading Zero)를 구하고, 구해진 0의 리딩 제로 개수 및 최초 1을 만난 부분부터 데이터를 전송하며, 메모리(140)로 액세스하여 2번의 테이블 탐색을 수행하고, 이를 통해 TrailingOnes와 TotalCoefficient 값을 디코딩한다.
메모리(140)는 TrailingOnes와 TotalCoefficient CAVLC 테이블 및 재구성된 2단계의 테이블(인덱스 테이블 및 주소 테이블)을 저장한다.
상기 제어부(110)에 의해 미리 재구성되어 저장된 상기 인덱스 테이블은 첨부된 도 3에 도시된 바와 같으며, 인덱스(Index), 매핑 플래그(Mapping_Flag) 및 디스크립션(Description)으로 이루어진다.
상기 인덱스(Index) 값은 리딩 제로 개수를 나타낸 값이며, 상기 매핑 플래그는 1비트로 구성되며, 8비트로 구성된 가장 왼쪽의 디스크립션을 해석하기 위한 플래그이다. 상기 디스크립션은 한번의 메모리(140)의 액세스로 해당 비트 스트림에 대한 디코딩을 완료하기 위해 해당 비트 스트림의 TrailingOnes와 TotalCoefficient 값을 포함한다. 여기서 상기 리딩 제로 개수는 입력 비트 스트림의 시작 비트의 '0' 비트부터 연속적인 '0'비트의 개수인 리딩 제로의 개수 값이다. 입력 비트 스트림이 '0001 11'인 경우 CLZ 값은 3이고, '0000 000'인 경우 CLZ 값은 7이다.
상기 인덱스 테이블을 구성하기 위해 제어부(110)는 상기 <표 2>의 테이블을 이용하여 비트 스트림의 리딩 제로 개수에 따른 인덱스를 설정한다. 예를 들어 입력 비트 스트림이 '0001 11'인 경우 리딩 제로 개수는 3으로 할당되므로 인덱스 값은 3이 된다. 그런 다음 제어부(110)는 인덱스에 해당하는 비트 스트림이 연속적인 비트 스트림('11')이 있는지를 확인하여 연속적인 비트 스트림이 있는 경우 상기 매핑 플래그 값을 0으로 설정하고, 연속적인 비트 스트림이 없으면, 매핑 플래그 값은 1로 설정한다. 따라서 상기 입력 비트 스트림이 '0001 11'인 경우에는 매핑 플래그 값이 0으로 설정된다. 또한, 제어부(110)는 두가지 인코딩 정보를 갖는 디스크립션을 설정하고, 설정된 디스크립션이 매핑 플래그 값이 1인 경우 상기 도 3에 도시된 바와 같은 제1 인코딩(Encoding 1 : 8-bit) 정보를 사용하도록 설정하고, 매핑 플래그 값이 0인 경우 상기 도 3에 도시된 바와 같은 제2 인코딩(Encoding 2 : 8-bit) 정보를 사용하도록 설정한다. 여기서 상기 제1 인코딩 정보는 TrailingOnes와 TotalCoefficient값을 저장하고, 상기 제2 인코딩 정보는 입력 비트스트림에서 리딩 제로 개수의 비트열(CLZ+1) 이후 즉, 리딩 제로 개수의 비트열을 제외한 나머지 비트를 더 읽어야 하는지에 대한 정보(Length_Offset) 및 주소 테이블(T1_Tc_chroma_vlc_table)의 주소값을 계산하는데 필요한 정보(T1_Tc_vlc_table_index)를 저장한다.
상기 주소 테이블(T1_Tc_chroma_vlc_table)은 예를 들어 첨부된 도 4에 도시된 바와 같으며, 주소(Address)와 이에 해당하는 TrailingOnes와 TotalCoefficient 값으로 이루어진다. 상기 주소 테이블은 제어부(110)에 의해 미리 설정되는데, 상기 제어부(110)는 코드값과 주소값을 계산하는데 필요한 정보(T1_Tc_vlc_table_index)를 더하여 상기 주소 테이블의 최종 주소값을 결정하고, 결정된 주소값에 해당하는 TrailingOnes와 TotalCoefficient값을 설정한다. 여기서 코드값은 CLZ+1 이후 'Lengh_Offset' 값만큼의 비트를 더 읽어서 얻은 비트의 값으로 구할 수 있다.
이와 같은 디코딩 장치에서 컨텍스트 상기 재구성된 인덱스 테이블을 이용하여 메모리 액세스를 최소화하는 새로운 TrailingOnes(T1s)와 TotalCoefficient(Tc) 디코딩하기 위한 컨텍스트 기반 적응적 가변길이 코딩의 디코딩을 위해서는 재구성된 2단계의 테이블(인덱스 테이블, 주소 테이블)의 탐색을 수행해야 한다. 이러한 테이블 탐색에 앞서, 디코딩 장치는 상술한 바와 같이 2단계의 테이블을 재구성하여 메모리(140)에 저장한다.
그러면 이러한 테이블 탐색 동작에 대해 첨부된 도 5를 참조하여 구체적으로 설명하기로 한다.
도 5는 본 발명의 실시예에 따라 디코딩 장치에서의 컨텍스트 기반 적응적 가변길이 코딩의 디코딩을 위한 테이블 탐색 동작을 도시한 도면이다.
상기 도 5를 참조하면, 디코딩 장치는 제어부(110)를 통해 시프터(120)를 활성화시킨 후 비트 스트림 입력을 대기한다. 비트 스트림이 입력되면, 301단계에서 디코딩 장치의 시프터(120)는 입력 비트 스트림의 리딩 제로 개수를 계산한다. 302단계에서 시프터(120)는 상기 계산된 리딩 제로 개수를 인덱스로 하여 메모리(140)에 저장된 인덱스 테이블을 액세스한다.
303단계에서 시프터(120)는 인덱스 테이블의 매핑 플래그의 값을 확인하여 매핑 플래그 값이 1인지를 판단한다. 판단 결과, 매핑 플래그 값이 1이면, 304단계를 시프터(120)는 디스크립션에 저장된 값을 확인하여 저장된 값을 TrailingOnes와 TotalCoefficient 값으로 출력한다. 예를 들어, 입력된 비트 스트림이 '001'인 경우 리딩 제로 개수는 2이므로 시프터(120)는 인덱스 테이블의 인덱스 2를 액세스하므로 인덱스 2에 해당하는 매핑 플래그 값은 1이 된다. 따라서 시프터(120)는 제1 인코딩 정보에 저장된 정보들의 값인 '2┃2'를 그대로 TrailingOnes와 TotalCoefficient 값으로 각각 출력한다.
반면, 매핑 플래그 값이 0이면, 305단계에서 시프터(120)는 디스크립션에 저장된 정보 즉, 코드값과 주소값을 계산하는데 필요한 정보(T1_Tc_vlc_table_index)를 더하여 상기 주소 테이블의 최종 주소값을 계산한다. 이후, 306단계에서 시프터(120)는 다시 메모리(140)에 액세스 하여 상기 도 4에 도시된 주소 테이블에서 계산된 주소값에 해당하는 저장된 값을 TrailingOnes와 TotalCoefficient 값으로 출력한다. 예를 들어, 입력 비트 스트림이 '0001 10'인 경우 리딩 제로 개수는 3이 되고, 인덱스 테이블의 인덱스 3을 액세스하므로 인덱스 3에 해당하는 매핑 플래그 값은 0이 된다. 따라서 시프터(120)는 인덱스 3에 해당하는 디스크립션에 저장된 정보를 확인하여 제2 인코딩 정보의 'Lengh_Offset' 값이 2이고, 주소값 계산에 필요한 정보(T1_Tc_vlc_table_index)가 0임을 확인한다. 이에 따라 시프터(120)는 'Lengh_Offset' 값이 2이므로 CLZ+1 이후 2 비트를 더 읽어서 해당 비트의 코드값을 구한 다음 그 값을 T1_Tc_vlc_table_index 값인 0과 더하여 주소 테이블의 주소값 2(2('10'+0)을 구한다. 그런 다음 시프터(120)는 상기 구해진 주소값 2에 저장된 값 '1┃2'를 각각 TrailingOnes와 TotalCoefficient 값으로 출력한다.
상술한 바와 같이 디코딩 장치에서는 어떤 임의의 비트 스트림이라도 2번의 메모리의 액세스(worst case)만으로 테이블 탐색을 수행하여 해당 토큰을 디코딩 즉, TrailingOnes와 TotalCoefficient CAVLC 디코딩을 수행할 수 있으므로 메모리 사이즈를 기존의 디코딩 장치의 메모리에 비해 69% 이상을 줄일 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 발명청구의 범위뿐만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 종래의 CAVLC 테이블 탐색에 따라 CAVLC 테이블을 표현한 배열을 나타낸 도면,
도 2는 본 발명의 실시예에 디코딩 장치의 구조를 도시한 도면,
도 3은 본 발명의 실시예에 따라 재구성된 인덱스 테이블의 구조를 도시한 도면,
도 4는 본 발명의 실시예에 따라 재구성된 주소 테이블의 구조를 도시한 도면,
도 5는 본 발명의 실시예에 따라 디코딩 장치에서의 컨텍스트 기반 적응적 가변길이 코딩의 디코딩을 위한 테이블 탐색 동작을 도시한 도면.

Claims (14)

  1. 컨텍스트 기반 적응적 가변길이 코딩의 디코딩을 위한 테이블을 탐색하는 방법에 있어서,
    제1 디코딩 정보(TrailingOnes) 및 제2 디코딩 정보(TotalCoefficient)를 탐색하기 위한 컨텍스트 기반 적응적 가변길이 코딩 테이블을 인덱스(Index), 매핑 플래그(Mapping_Flag) 및 디스크립션(Description)으로 구성되는 인덱스 테이블(T1_Tc_chroma_index-table) 및 주소(Address), 상기 제1 디코딩 정보(TrailingOnes) 및 상기 제2 디코딩 정보(TotalCoefficient)로 구성되는 주소 테이블(T1_Tc_chroma_vlc_table)의 2단계의 테이블로 재구성하여 미리 저장하는 단계; 및
    입력된 비트 스트림에 리딩 제로 개수를 제외한 나머지 비트가 존재하는지에 따라 상기 2단계의 테이블에 저장된 정보를 이용하여 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보의 디코딩을 위한 테이블 탐색을 수행하는 단계를 포함하는 것을 특징으로 하는 디코딩을 위한 테이블 탐색 방법.
  2. 제1항에 있어서, 상기 2단계의 테이블로 재구성하여 미리 저장하는 단계는,
    상기 컨텍스트 기반 적응적 가변길이 코딩 테이블에 저장된 비트 스트림의 리딩 제로 개수 및 상기 저장된 비트 스트림의 리딩 제로 개수를 제외한 상기 저장된 비트 스트림의 나머지 비트에 대한 코드값을 이용하여 상기 인덱스 테이블을 설정하는 단계; 및
    상기 인덱스 테이블에 저장된 정보를 이용하여 계산된 주소값에 해당하는 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값을 저장한 상기 주소 테이블을 설정하는 단계를 포함하는 것을 특징으로 하는 디코딩을 위한 테이블 탐색 방법.
  3. 제2항에 있어서, 상기 인덱스 테이블을 설정하는 단계는,
    상기 저장된 비트 스트림의 리딩 제로 개수로 상기 인덱스를 설정하는 단계;
    두 가지 인코딩 정보를 갖는 상기 디스크립션을 설정하는 단계; 및
    상기 저장된 비트 스트림에 상기 나머지 비트 존재 여부에 따라 상기 디스크립션을 해석하기 위한 상기 매핑 플래그를 설정하는 단계를 포함하는 것을 특징으로 하는 디코딩을 위한 테이블 탐색 방법.
  4. 제3항에 있어서,
    상기 디스크립션은 상기 나머지 비트에 대한 정보 및 상기 주소 테이블의 주소값을 계산하기 위한 정보를 상기 인코딩 정보로서 포함함을 특징으로 하는 디코딩을 위한 테이블 탐색 방법.
  5. 제2항에 있어서, 상기 주소 테이블을 설정하는 단계는,
    상기 주소를 설정하는 단계; 및
    상기 주소에 대응되는 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값을 설정하는 단계를 포함하는 것을 특징으로 하는 디코딩을 위한 테이블 탐색 방법.
  6. 제1항에 있어서, 상기 테이블 탐색을 수행하는 단계는,
    상기 입력된 비트 스트림의 리딩 제로 개수를 구하는 단계;
    상기 구한 리딩 제로 개수를 인덱스로하여 상기 2단계 테이블 중 하나인 인덱스 테이블을 액세스 하는 단계;
    상기 인덱스 테이블의 매핑 플래그 값을 확인하는 단계; 및
    확인된 매핑 플래그 값에 따라 상기 인덱스 테이블의 디스크립션에 포함된 정보를 이용하여 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값을 출력하는 단계를 포함하는 것을 특징으로 하는 디코딩을 위한 테이블 탐색 방법.
  7. 제6항에 있어서, 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값을 출력하는 단계는,
    상기 매핑 플래그 값이 0인 경우 상기 인덱스 테이블의 디스크립션에 포함된 인코딩 정보를 이용하여 주소값을 구하는 단계; 및
    상기 인덱스 테이블을 액세스하여 구한 주소값에 대응하는 주소의 값들을 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값으로 출력하는 단계를 포함하는 것을 디코딩을 위한 테이블 탐색 방법.
  8. 제6항에 있어서,
    상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값을 출력하는 단계는, 상기 매핑 플래그 값이 1인 경우 상기 인덱스 테이블의 디스크립션에 포함된 정보를 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값으로 출력함을 특징으로 하는 디코딩을 위한 테이블 탐색 방법.
  9. 제1 디코딩 정보(TrailingOnes) 및 제2 디코딩 정보(TotalCoefficient)를 탐색하기 위한 컨텍스트 기반 적응적 가변길이 코딩 테이블을 인덱스(Index), 매핑 플래그(Mapping_Flag) 및 디스크립션(Description)으로 구성되는 인덱스 테이블(T1_Tc_chroma_index-table) 및 주소(Address), 상기 제1 디코딩 정보(TrailingOnes) 및 상기 제2 디코딩 정보(TotalCoefficient)로 구성되는 주소 테이블(T1_Tc_chroma_vlc_table)의 2단계의 테이블로 재구성하는 제어부;
    상기 제어부에 의해 활성화되어 입력된 비트 스트림에 리딩 제로 개수를 제외한 나머지 비트가 존재하는지에 따라 상기 2단계의 테이블에 저장된 정보를 이용하여 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보의 디코딩을 위한 테이블 탐색을 수행하는 시프터; 및
    상기 컨텍스트 기반 적응적 가변길이 코딩 테이블 및 상기 재구성된 2단계의 테이블을 저장하는 메모리를 포함하는 것을 특징으로 하는 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치.
  10. 제9항에 있어서,
    상기 제어부는 상기 컨텍스트 기반 적응적 가변길이 코딩 테이블에 저장된 비트 스트림의 리딩 제로 개수로 설정된 상기 인덱스, 두 가지 인코딩 정보를 갖는 상기 디스크립션 및 상기 디스크립션을 해석하기 위한 상기 매핑 플래그를 갖는 인덱스 테이블을 상기 2단계 테이블 중 하나로 재구성하는 것을 특징으로 하는 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치.
  11. 제10항에 있어서,
    상기 제어부는 상기 인덱스 테이블에 저장된 정보를 이용하여 계산된 주소값에 해당하는 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보에 대한 값을 저장한 상기 주소 테이블을 상기 2단계 테이블 중 하나로 재구성하는 단계를 포함하는 것을 특징으로 하는 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치.
  12. 제10항에 있어서,
    상기 디스크립션은 상기 저장된 비트 스트림의 리딩 제로 개수의 비트열을 제외한 나머지 비트에 대한 정보 및 상기 주소 테이블의 주소값을 계산하기 위한 정보를 상기 인코딩 정보로서 포함함을 특징으로 하는 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치.
  13. 제9항에 있어서,
    상기 시프터는 상기 입력된 비트 스트림에서 구한 리딩 제로 개수를 인덱스로하여 상기 2단계 테이블 중 하나인 인덱스 테이블을 액세스하고, 상기 인덱스 테이블의 매핑 플래그 값이 0인 경우 상기 인덱스 테이블의 디스크립션에 포함된 인코딩 정보를 이용하여 주소값을 구하고, 상기 인덱스 테이블을 액세스하여 상기 구한 주소값에 대응하는 주소의 값들을 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보 값으로 출력하는 것을 특징으로 하는 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치.
  14. 제13항에 있어서,
    상기 시프터는 상기 매핑 플래그 값이 1인 경우 상기 인덱스 테이블의 디스크립션에 포함된 인코딩 정보를 상기 제1 디코딩 정보 및 상기 제2 디코딩 정보 값으로 출력함을 특징으로 하는 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치.
KR1020080089481A 2008-09-10 2008-09-10 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법 KR100982666B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080089481A KR100982666B1 (ko) 2008-09-10 2008-09-10 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법
US12/368,814 US20100074542A1 (en) 2008-09-10 2009-02-10 Apparatus for decoding context adaptive variable length code and table search method for decoding context adaptive variable length code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080089481A KR100982666B1 (ko) 2008-09-10 2008-09-10 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법

Publications (2)

Publication Number Publication Date
KR20100030509A KR20100030509A (ko) 2010-03-18
KR100982666B1 true KR100982666B1 (ko) 2010-09-17

Family

ID=42037746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080089481A KR100982666B1 (ko) 2008-09-10 2008-09-10 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법

Country Status (2)

Country Link
US (1) US20100074542A1 (ko)
KR (1) KR100982666B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102033434B1 (ko) 2014-01-28 2019-10-17 한국전자통신연구원 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070018292A (ko) * 2005-08-09 2007-02-14 (주)씨앤에스 테크놀로지 빠른 cavlc를 위한 h.264 디코딩 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070018292A (ko) * 2005-08-09 2007-02-14 (주)씨앤에스 테크놀로지 빠른 cavlc를 위한 h.264 디코딩 방법

Also Published As

Publication number Publication date
KR20100030509A (ko) 2010-03-18
US20100074542A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
US7135997B2 (en) Method and apparatus for CAVLC decoding
JP3349617B2 (ja) ハフマンデコーダー
US7436332B2 (en) Runlength encoding of leading ones and zeros
US7443318B2 (en) High speed context memory implementation for H.264
US5550542A (en) Variable length code look-up table having separate code length determination
US20070115154A1 (en) Method of decoding bin values using pipeline architecture and decoding device therefor
US5541595A (en) Variable length code decoder for simultaneous decoding the most significant bits and the least significant bits of a variable length code
US20090074077A1 (en) Video source coding with decoder side information
JP2003218703A (ja) データ符号化装置及びデータ復号装置
WO2003085981A1 (en) Programmable variable-length decoder
TW200945798A (en) CABAC decoding apparatus and decoding method thereof
WO2021012278A1 (zh) 一种数据的处理方法、系统、编码器及解码器
US7298297B1 (en) Hardware-implemented Huffman decoder
US20080055124A1 (en) Parallel concatenated code with bypass
KR20070011490A (ko) 구조화된 블록단위로 xml 데이터를 압축 및 압축해제하기 위한 방법 및 장치
US7256719B2 (en) Digital data decompression implemented in a field programmable array device
KR100982666B1 (ko) 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법
KR100923948B1 (ko) 어플리케이션 특정 명령어 프로세서에 기반한 h.264cavlc 디코딩 방법
CN112449191A (zh) 压缩多个图像的方法、解压缩图像的方法和装置
CN115334313A (zh) 一种视频解码方法、装置、设备及存储介质
KR100576548B1 (ko) 문맥기반 적응 가변길이 복호화 장치 및 그 방법
US8421655B2 (en) Apparatus for parallel entropy encoding and decoding
KR101256893B1 (ko) 데이터 부호화/복호화 장치 및 방법
US7773003B1 (en) Huffman search algorithm for AAC decoder
KR100944923B1 (ko) 개선된 멀티미디어 디코더를 위한 방법 및 장치

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
LAPS Lapse due to unpaid annual fee