KR100959532B1 - Cavlc 복호 방법 - Google Patents

Cavlc 복호 방법 Download PDF

Info

Publication number
KR100959532B1
KR100959532B1 KR1020030093197A KR20030093197A KR100959532B1 KR 100959532 B1 KR100959532 B1 KR 100959532B1 KR 1020030093197 A KR1020030093197 A KR 1020030093197A KR 20030093197 A KR20030093197 A KR 20030093197A KR 100959532 B1 KR100959532 B1 KR 100959532B1
Authority
KR
South Korea
Prior art keywords
value
cavlc
codeword
bit stream
length
Prior art date
Application number
KR1020030093197A
Other languages
English (en)
Other versions
KR20050061777A (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 KR1020030093197A priority Critical patent/KR100959532B1/ko
Priority to US11/016,435 priority patent/US7135997B2/en
Publication of KR20050061777A publication Critical patent/KR20050061777A/ko
Application granted granted Critical
Publication of KR100959532B1 publication Critical patent/KR100959532B1/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/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
    • 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

Abstract

본 발명은 H.264/AVC 비디오 복호기의 가변장 복호화에 관한 것으로, CAVLC 코드워드 길이 테이블과 CAVLC 코드워드 값 테이블을 이용하여 코딩된 비트 스트림을 복호하기 위해, 상기 CAVLC 코드워드 길이 테이블을 재정렬한 테이블 중 복호하기 원하는 변수에 해당하는 테이블을 선택하는 단계와, 상기 선택된 테이블 내 참고열의 첫 번째 코드워드 길이부터 순차적으로 상기 코드워드 길이만큼 상기 비트 스트림을 읽어오는 단계와, 상기 CAVLC 코드워드 길이 테이블 내부 상기 참고열과 일치하는 열에서 상기 비트 스트림을 읽어오는 단계의 코드워드 길이와 일치하는 코드워드 길이가 갖는 상기 CAVLC 코드워드 값 테이블 상의 값과, 상기 읽어온 비트 스트림 값을 비교하는 단계와, 상기 비교 결과 값이 일치하는 경우, 그 때의 변수값을 저장하는 단계를 포함하여 이루어짐으로써, 비트 스트림상의 데이터를 상기 재정렬된 테이블이 제시하는 길이만큼 순차적으로 읽어오므로, 메모리 엑세스 시간을 줄여주며, CAVLC 코드워드를 비교하는 계산 복잡도를 줄여주는 효과가 있다.
H.264/AVC, CAVLC, 복호화, DMB, 코드워드

Description

CAVLC 복호 방법{Decoding method of CAVLC}
도 1은 일반적인 이진 검색 트리를 나타낸 도면
도 2는 본 발명에 따른 Total_Coeff를 포함한 total_zeros를 나타낸 CAVLC 테이블 및 그에 따른 이진 트리의 구조를 나타낸 도면
도 3은 본 발명에 따라 재정렬된 Total_Coeff를 포함한 total_zeros를 나타낸 CAVLC 코드워드 길이 테이블을 나타낸 도면
도 4a 내지 4e는 본 발명에 따라 재정렬된 H.264/AVC에서 사용하는 CAVLC 변수 각각의 코드워드 길이 테이블을 나타낸 도면
도 5는 본 발명에 따른 CAVLC 복호 방법을 설명하기 위해, H.264/AVC 규격에 따른 Total_Coeff를 포함한 Total_zeros의 CAVLC 코드워드 길이 테이블을 나타낸 도면
도 6은 본 발명에 따른 CAVLC 복호 방법을 설명하기 위해, H.264/AVC 규격에 따른 Total_Coeff를 포함한 Total_zeros의 CAVLC 코드워드 값 테이블을 나타낸 도면
도 7은 본 발명에 따른 CAVLC 복호 과정을 나타낸 흐름도
본 발명은 H.264/AVC 비디오 복호기의 가변장 복호화에 관한 것으로, 특히 H.264/AVC 규격에서 정하는 CAVLC 테이블을 빠르게 참조하는 방법에 관한 것이다.
DMB(Digital Multimedia Broadcasting) 비디오 규격은 H.264/AVC(Advanced Video Coding) 표준을 따르고 있다.
상기 비디오 규격은 비디오 비트 스트림 신텍스(syntax) 및 복호기(decoder)에 대한 것으로, 이 규격에 따른 DMB 비디오 부호화기는 효율적인 데이터 비트 할당을 위해 두 가지 가변장 부호화(Variable Length Coding) 방식을 사용하고 있다.
이 규격에 의하면, 변환된 영상 데이터 계수를 제외한 데이터에 대해서는 UVLC(Universal Variable Length Coding) 방식을 사용하고, 변환된 영상 데이터는 CAVLC(Context-based Adaptive Variable Length Coding) 방식의 가변장 부호화 방식을 사용하고 있다.
상기 가변장 부호화 방식이란 신호의 통계적인 특성을 이용하여 신호의 발생 빈도의 통계적 특성에 따라 각 신호의 심볼에 서로 다른 길이의 비트 수를 할당하는 방식으로 기존의 영상 압축 방식에 지속적으로 사용되는 방식이다.
H.264/AVC 표준 규격에서 정하고 있는 상기 CAVLC 방식은 변환된 영상 데이터 계수의 특성에 따른 TotalCoeff, TrailingOnes, total_zero, run_before 등의 변수에 해당하는 테이블을 사용하여 신호를 복호화하는 방식을 채택하고 있다.
이러한 가변장 복호화를 수행하는 종래 방식을 보면 상기 가변장 복호화 테이블에 정의된 코드의 길이에 해당하는 만큼의 코드를 비트 스트림으로부터 읽어, 상기 가변장 복호화 테이블의 코드와 비교하는 방식을 사용하고 있다.
이 방식을 적용하기 위해서는 최악의 경우, 테이블의 모든 코드 값을 비교해야 하므로, 연속해서 비트 스트림 메모리를 엑세스하는 처리 과정이 요구된다. 따라서, 이러한 비효율적인 처리 과정으로 인해 복호기의 처리 속도가 저하되는 문제가 있었다.
따라서, 본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위해 안출한 것으로서, H.264/AVC 표준에서 정한 비디오 복호 방식을 적용하는 모든 시스템에서 CAVLC 테이블을 참조하는 방식의 계산 복잡도를 해결하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 CAVLC 복호 방법은, H.264/AVC 규격에 따라 각각의 변수들이 갖는 CAVLC 코드워드 길이 테이블과 CAVLC 코드워드 값 테이블을 이용하여 코딩된 비트 스트림을 복호하기 위해, 기 설정되어 입력된 상기 CAVLC 코드워드 길이 테이블을 재정렬한 테이블 중 복호하기 원하는 변수에 해당하는 테이블을 선택하는 단계와, 상기 선택된 테이블 내 참고열의 첫 번째 코드워드 길이부터 순차적으로 상기 코드워드 길이만큼 상기 비트 스트림을 읽어오는 단계와, 상기 CAVLC 코드워드 길이 테이블 내부 상기 참고열과 일치하는 열에서 상기 비트 스트림을 읽어오는 단계의 코드워드 길이와 일치하는 코드워드 길이가 갖는 상기 CAVLC 코드워드 값 테이블 상의 값과, 상기 읽어온 비트 스트림 값을 비교하는 단계와, 상기 비교 결과 값이 일치하는 경우, 그 때의 변수값을 저장하는 단계를 포함하여 이루어짐을 특징으로 한다.
상기 재정렬된 테이블은 상기 CAVLC 코드워드 길이 테이블을 상기 코드워드 길이 순으로 재정렬한 것임을 특징으로 한다.
상기 참고열은 상기 비트 스트림을 감싸고 있는 패킷의 헤더 부분에 포함된 정보와 복호된 이웃 블럭의 정보로부터 선택된 열임을 특징으로 한다.
상기 읽어온 비트 스트림 값이 0이거나, 상기 비교 결과 값이 일치하지 않는 경우, 상기 재정렬된 테이블 상의 참고 열에서 비교한 값의 다음 값에 해당하는 코드워드 길이만큼 상기 비트 스트림을 읽어오는 단계를 포함하여 이루어짐을 특징으로 한다.
이하 발명의 바람직한 실시예에 따른 구성 및 작용을 첨부한 도면을 참조하여 설명한다.
가변장 부호화(VLC : Variable Length Coding)의 기본 개념은 데이터 발생의 통계적 특성에 따라 큰 통계 특성을 갖는 신호의 심볼에 대해 적은 수의 비트를 할당하고, 적은 통계 특성을 갖는 것에 대해 많은 수의 비트를 할당해 발생된 신호를 부호화하는데 평균적인 부호화 신호의 비트 할당 길이를 줄이는 것이다.
이러한 방식의 기본 원리는 허프만 방식으로 간단히 설명되는데, 이러한 부호화 방식과 복호화 방식을 수행하는 과정이 마치 이진 트리 구조와 흡사한 면이 있기 때문에, 본 발명에서는 이진 트리를 사용하여 검색하는 방법을 제시하고 있다.
도 1은 본 발명의 기본 원리를 설명하기 위해 이진 검색 트리 구조를 나타낸 도면이다.
도 1과 같이, 이진 검색 트리(Binary Search Tree)는 대칭적인 구조를 갖고, 부모는 두 개의 자식을 갖게 되며(부모 : 상위 노드, 자식 : 하위 노드), 왼쪽 가지는 1, 오른쪽 가지는 0을 할당한다.
이러한 이전 검색 트리를 이용하여 N개의 값을 비교하는데, log2N 단계의 계산 복잡도로 처리 가능하다. 이 방식은 계층적 데이터 구조를 이용하여 빠르게 검색하는 알고리즘이지만, 이진 검색 트리를 매번 새롭게 구성해야하는 복잡한 처리 과정이 필요하다는 단점이 있다.
하지만, 비디오 복호화기에서 규정하는 CAVLC 코드 테이블의 길이 단위로 처리하게 되면, 상기와 유사한 구조를 갖는 계층적 구조의 테이블을 손쉽게 구하게 된다.
따라서, 본 발명에 따르면, 가변장 복호화 방식을 하기 위해 계층적 구조를 갖는 CAVLC 코드 테이블을 손쉽게 구성하고 참조하도록 하는데, 이렇게 되면, 종래 CAVLC 코드 테이블을 비교하기 위해 모든 경우의 수를 검색하는 방식에서 벗어나 예상되는 코드를 빠르게 검색함으로써 복호화기의 처리속도 및 부하를 개선하게 된다. 이를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도 2는 본 발명에 따른 CAVLC 테이블 및 그에 따른 이진 트리의 구조를 나타낸 도면이다.
특히, 도 2의 테이블은 CAVLC 코드워드 테이블 중 Total_Coeff를 포함한 Total_Zeros 테이블을 예시하였고, 상기 테이블에서 첫 번째 열을 이진 트리 구조로 변환한 것을 나타내었다.
상기 테이블의 가로축은 Total_Coeff(coeff_token) 즉, 영상의 부호화 과정 중 DCT(Discrete Cosine Transform)되고 양자화(Quantization)된 데이터에서 0이 아닌 계수의 개수를 나타낸 것이고, 세로축은 total_zero 즉, 상기 데이터 중에서 0의 개수를 나타낸 것이며, 상기 가로축과 세로축 내부에는 그에 따른 코드워드 값을 나타내었다. 상기 코드워드 값은 H.264/AVC CAVLC 규격에 따른 것이다.
도 2와 같이, 테이블의 첫 번째 열부터, 표현된 코드워드 값을 이진 트리로의 변환하게 되는데, 이는 앞서 언급한 이진 트리에서 사용했던 방식과 동일하게 왼쪽 가지는 1을 할당하고, 오른쪽 가지는 0을 할당하는 방법을 사용하게 된다.
즉, 테이블의 첫 번째 코드워드 값인 1비트로 표현된 1 은, 이진 트리에서 첫 번째 레벨의 왼쪽 가지로써 표현되며, 오른쪽 가지는 상기 CAVLC 코드워드 테이블에서 1비트로 표현된 0인 코드워드가 없으므로 표현하지 않고, 그 다음으로, 3비트의 값들이 있으므로 오른쪽 가지를 확장시켜 세 번째 레벨의 값들을 각각 할당하는 것이다.
이와 같은 방법으로, 마지막 가지에는 가장 긴 코드가 할당되며, 오른쪽의 끝 가지에는 코드워드 값이 0인 코드워드가 할당되게 된다. 도 2의 경우, 이진 트리에 대응하는 테이블의 코드워드 중 값이 0인 코드워드가 없으므로, 오른쪽 마지막 가지는 빈 가지로 남는다.
이와 같이, 다른 테이블의 코드워드도 마찬가지 방법으로, 이진 트리로 변환 하게 되면, CAVLC 테이블을 계층 구조적으로 볼 수 있게 되며, 발생 확률이 높은 순으로 정렬이 가능하게 된다.
즉, 앞서 언급한 바와 같이, VLC 알고리즘 상 발생 확률이 높은 신호에 짧은 길이의 비트를 할당하게 되므로, 발생 확률이 높은 순(코드워드 길이가 짧은 순)으로 정렬되는 것이다.
또한, 이진 트리의 깊이는 값을 검색하는 계산 복잡도와도 밀접한 관련이 있다. 즉, 이진 트리의 깊이가 깊을수록, 이진 트리의 구조가 비대칭적일수록 검색 계산 복잡도는 증가하게 된다.
상기 이진 트리를 구성하기 위해서는 앞서 살펴본 바와 같이, 각 코드워드를 이진 트리의 깊이(레벨)에 할당 시켜야 하는데, 각 코드워드의 이진 트리에서 레벨은 코드워드 길이와 관련된다.
따라서, 이진 트리를 쉽게 구성하기 위해서는 코드워드의 길이를 기준으로 코드워드를 구성하고 비교하기 위해, 각 테이블의 코드워드 길이를 정렬하는 테이블을 새롭게 구성할 필요가 있다. 이를 첨부한 도 3에 나타내었다.
도 3은 코드워드의 길이에 따라 재정렬된 본 발명에 따른 CAVLC의 Total_Coeff를 포함한 Total_Zero 테이블을 나타낸 도면이다.
도 3과 같이, 새롭게 구성된 테이블은 도 2의 이진 트리 레벨에 따라 발생 확률순(코드워드 길이순)으로 재정렬한 것이다. 단, CAVLC 테이블의 동일한 열 내에서 0으로 이루어진 코드워드의 길이가 최장의 길이가 아닐 때, 즉 이진 트리의 최하위 레벨이 아닐 경우에는 맨 마지막에 비교하도록 정렬하였다.
한편, 같은 방법으로, H.264/AVC에서 사용하는 CAVLC 변수 각각의 테이블에 대해서도 코드워드의 길이에 따라 재정렬하게 되는데, 이를 첨부한 도 4a 내지 4e에 도시하였다.
즉, 도 4a는 4 ×4 블록을 위해 Total_Coeff를 포함하는 Total_Zeros를, 도 4b는 Chroma DC를 위한 Total_Coeff를 포함하는 Total_Zeros를, 도 4c는 CAVLC의 run_before 변수를, 도 4d는 Total_Coeff와 TrailingOnes 변수를, 도 4e는 Chroma를 위한 Total_Coeff와 TrailingOnes 변수를, 각각 코드워드의 길이에 따라 재정렬한 것을 나타낸 도면이다.
이때, 상기 도 4e의 경우에는 코드워드 길이가 7인 것이 모두 0으로 구성(0000 000)되어 있기 때문에, 이 테이블에서 코드워드 길이가 8인 '0000 0011'과 '0000 0010'의 두 개의 경우보다 이후에 비교하도록 하였다.
즉, 앞서 설명한바와 같이 CAVLC 테이블의 동일한 열 내에서 0으로 이루어진 코드워드의 길이가 최장의 길이가 아닌 경우에 해당하므로 맨 마지막에 비교하도록 한 것이다.
이는 이후 설명할 구현 알고리즘상, 연속해서 0이 오면 다음 길이에 해당하는 코드워드를 비교하게 되기 때문으로, 상기 '0000 000'의 코드워드를 찾기 위해서 비교하는 코드워드 길이 순서를 바꿔주었다.
이와 같이 H.264/AVC 규격에 따른 CAVLC 각 변수에 해당하는 테이블에 대해 재정렬하고, 이를 복호(decoding) 과정에서 활용함으로써, 비트를 읽어오는 과정이 중복되지 않고, 발생 확률이 높은 순부터 순차적으로 비교하게 되는데, 이와 같은 복호 과정을 첨부한 도면을 통해 설명하면 다음과 같다.
도 5와 도 6은, 일반적인 H.264/AVC CAVLC 규격에 따라 오픈된 테이블로써, 도 5는 CAVLC 코드워드 길이에 따른 Total_Coeff를 포함한 Total_zeros의 CAVLC 테이블을 나타낸 도면이고, 도 6은 CAVLC 코드워드 값에 따른 Total_Coeff를 포함한 Total_zeros의 CAVLC 테이블을 예시적으로 나타낸 도면이다.
즉, 일반적으로 CAVLC 방법으로 코딩된 데이터를 복호할 때에는, 먼저, 전송된 패킷의 헤더에 포함된 정보와 복호된 이웃 블록의 정보를 통해 CAVLC 테이블의 몇 번째 열을 참고할 것인지에 관한 정보를 얻은 연후에, 상기 도 5와 같은 코드워드 길이를 나타낸 테이블에서 해당 열의 첫 번째 값부터 순차적으로 해당하는 길이만큼 비트 스트림(전송된 패킷의 데이터) 메모리로부터 읽어 온다.
상기 읽어온 값에 해당하는 코드워드 값을 도 6과 같은 코드워드 값을 나타낸 테이블과 비교하여 일치하는 경우, 그 때의 Total_Coeff 값과 total_zero 값을 얻어내고, 다른 변수들에 대해서도 마찬가지 방법을 적용하여 그 값을 얻어냄으로써 복호하게 된다.
하지만, 이때, 도 5의 테이블과 같이, 일반적인 CAVLC 규격에 따른 테이블내의 코드워드 길이는 일정한 순서로 정렬되어 있지 않음을 알 수 있다. 때문에, 이미 읽어온 비트를 다시 읽어야 하는 경우가 발생하여, 이는 매우 비효율적인 방법이다.
따라서, 본 발명에 따른 도 3의 테이블을 사용함으로써 비트를 읽어오는 과정이 중복되지 않고, 발생 확률이 높은 순부터 순차적으로 비교하게 되는데, 이를 본 발명에 따른 CAVLC 복호 과정을 나타낸 흐름도인 첨부한 도 7을 참조하여 설명하면 다음과 같다. (설명의 편의를 위해, 메모리에 입력된 비트 스트림이 0101011‥·로 시작하고, 도 3, 도 5 및 도 6의 TotalCoeff를 포함하는 total_zeros 변수를 예로든다. 또한, 패킷 헤더에 포함된 정보와 복호된 이웃 블록의 정보가 CAVLC 테이블의 첫 번째 열을 참고하도록 지시한다고 가정한다.)
최초, 재정렬된 테이블 중에서 복호하기 원하는 변수에 해당하는 테이블을 선택한다.(S10) 본 명세서에서는 TotalCoeff를 포함하는 total_zeros 변수를 예로 들었으므로 도 3의 테이블을 선택한다.
상기 선택된 테이블에서 K=0 번지 즉, 첫 번째 값에 해당하는 길이만큼 비트 스트림으로부터 읽어온다.(S20, S30) 즉, 도 3에서 첫 번째 열의 첫 번째 값은 1이므로 1비트 길이만큼을 읽어오게 되어, 상기 예시한 비트 스트림 중에서 0을 읽어온다.
상기 읽어 온 값이 0인지 확인하고(S40), 0이면 K 값을 하나 증가시키고(S60), 0이 아니면 CAVLC 테이블과 코드 값을 비교하게 된다.(S50)
상기 예의 경우, 읽어온 값이 0이므로, K 값을 하나 증가시키게 된다. 이때, 증가시킨 K 값에 해당하는 테이블의 코드워드 값이 0인 경우엔 처리 과정이 종료되고, 0이 아닌 경우에는 상기 S30 단계로 간다.(S70) 즉, 도 3의 테이블에서 숫자가 언급되지 않은 블록은 0이므로, 더 이상 읽어올 코드워드가 없음을 의미하여 처리과정이 종료되는 것이다.
따라서, 예시한 경우에 있어, 증가한 K값에 해당하는 도 3의 테이블에서의 값이 3이므로(0이 아니므로 종료되지 않고), 3비트의 길이만큼 비트 스트림에서 읽어온다.(S30)
상기 읽어온 값은 010이 되고, 이는 0이 아니므로 CAVLC 테이블과 비교하게 된다.(S50) 이때, 도 5의 테이블에 의하면, 코드워드 길이가 3인 경우가 total_zeros가 1인 경우와 2인 경우의 2개가 있다.
먼저, total_zeros가 1인 경우 도 6의 테이블을 통해 코드워드 값을 확인해보면 그 값이 3이므로, 상기 비트스트림에서 읽어온 010의 2값과 일치하지 않음을 알 수 있다.(상기 010을 십진수로 변환하면 2이다.)
상기, total_zeros가 2인 경우를 비교해보면, 도 6의 테이블의 코드워드 값이 2이므로, 상기 비트 스트림에서 읽어온 010의 2값과 일치함을 알 수 있다.
따라서, 이때의 Total_Coeff 값과 total_zeros값을 저장하고(S80) 종료함으로써 다음 복호 단계로 넘어가게 된다.
이와 같은 방법을 사용하는 본 발명에 따른 CAVLC 복호 방법의 효율성을 좀 더 알아보기 위해, 이번에는 메모리에 입력된 비트 스트림이 110101‥·로 시작하고, 도 3, 도 5 및 도 6의 TotalCoeff를 포함하는 total_zeros 변수를 예로들며, 패킷 헤더에 포함된 정보와 복호된 이웃 블록의 정보가 CAVLC 테이블의 네 번째 열을 참고하도록 지시한다고 가정하고 설명하면 다음과 같다.
최초, 도 3의 테이블을 통해 네 번째 열의 첫 번째 값은 3임을 알 수 있다. 따라서, 도 5의 테이블에서 네 번째 열 중 코드워드 길이가 3인 것을 찾아보면 total_zeros가 1, 4, 5, 6, 8인 경우가 된다.
먼저, total_zeros가 1인 경우 도 6의 테이블에서 코드워드 값을 살펴보면 7로, 이는 상기 코드워드 길이 3만큼 비트 스트림에서 읽어온 이진수의 110 값이 의미하는 6과 일치하지 않는다.
따라서, 다음의 total_zeros가 4인 경우 도 6의 테이블에서 코드워드 값을 살펴보면 6으로, 이는 상기 코드워드 길이 3만큼 비트 스트림에서 읽어온 110 값과 일치하므로, 이때의 변수 값을 저장하고 다음 복호 단계로 넘어가게 된다.
만약, 이와 같은 값을 종래의 방법대로 찾으려고 했을 경우, 최소 다섯 번 이상의 비교 과정이 필요했겠지만, 본 발명에 따른 방법을 사용하면, 단 두 번의 비교 과정을 통해 원하는 값을 얻게 됨을 알 수 있다.
이상의 설명에서와 같이 본 발명에 따른 CAVLC 복호 방법은 다음과 같은 효과가 있다.
첫째, 비트 스트림상의 데이터를 본 발명에 따른 재정렬된 테이블이 제시하는 길이만큼 순차적으로 읽어오므로, 메모리 엑세스 시간을 줄여주는 효과가 있다.
둘째, 본 발명에 따른 재정렬된 테이블의 길이에 해당하는 길이의 코드워드 테이블 값과 비교하므로, 비교 처리량이 줄어드는 효과가 있다.
셋째, 본 발명에 따른 방법을 DMB 시스템들의 응용분야에서 복호화 처리과정에서 사용함으로써, 복호기의 간소화 및 처리 속도가 향상되는 효과가 있다.
넷째, 기타 H.264/AVC 표준 규격을 따르는 모든 응용 분야에 적용이 가능한 효과가 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정하는 것이 아니라 특허 청구 범위에 의해서 정해져야 한다.

Claims (4)

  1. H.264/AVC 규격에 따라 각각의 변수들이 갖는 CAVLC 코드워드 길이 테이블과 CAVLC 코드워드 값 테이블을 이용하여 코딩된 비트 스트림을 복호하는 방법에 있어서,
    기 설정되어 입력된 상기 CAVLC 코드워드 길이 테이블을 재정렬한 테이블 중 복호하기 원하는 변수에 해당하는 테이블을 선택하는 단계;
    상기 선택된 테이블 내 참고열의 첫 번째행부터 순차적으로 각 행에 포함된 코드워드 길이만큼 상기 비트 스트림을 읽는 단계;
    상기 CAVLC 코드워드 길이 테이블의 상기 참고열과 동일한 열에서 상기 읽은 비트 스트림 값의 길이와 동일한 코드 워드 길이를 가진 변수 값과, 상기 CAVLC 코드워드 값 테이블의 상기 참고열과 동일한 열에서 상기 변수 값이 갖는 코드워드 값을, 상기 읽은 비트 스트림의 값과 비교하는 단계; 및
    상기 비교 결과 값이 일치하는 경우에는, 그 때의 변수값을 저장하는 단계;를 포함하는 것을 특징으로 하는 CAVLC 복호 방법.
  2. 제 1 항에 있어서,
    상기 재정렬된 테이블은 상기 CAVLC 코드워드 길이 테이블을 상기 코드워드 길이 순으로 재정렬하는 CAVLC 복호 방법.
  3. 제 1 항에 있어서,
    상기 참고열은 상기 비트 스트림을 감싸고 있는 패킷의 헤더 부분에 포함된 정보와 복호된 이웃 블럭의 정보로부터 선택된 열인 CAVLC 복호 방법.
  4. 제 1 항에 있어서,
    상기 읽어온 비트 스트림 값이 0이거나, 상기 비교 결과 값이 일치하지 않는 경우에는, 상기 재정렬된 테이블 상의 참고 열에서 비교한 값의 다음 값에 해당하는 코드워드 길이만큼 상기 비트 스트림을 읽어오는 단계를 포함하는 CAVLC 복호 방법.
KR1020030093197A 2003-12-18 2003-12-18 Cavlc 복호 방법 KR100959532B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030093197A KR100959532B1 (ko) 2003-12-18 2003-12-18 Cavlc 복호 방법
US11/016,435 US7135997B2 (en) 2003-12-18 2004-12-17 Method and apparatus for CAVLC decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030093197A KR100959532B1 (ko) 2003-12-18 2003-12-18 Cavlc 복호 방법

Publications (2)

Publication Number Publication Date
KR20050061777A KR20050061777A (ko) 2005-06-23
KR100959532B1 true KR100959532B1 (ko) 2010-05-27

Family

ID=34747725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030093197A KR100959532B1 (ko) 2003-12-18 2003-12-18 Cavlc 복호 방법

Country Status (2)

Country Link
US (1) US7135997B2 (ko)
KR (1) KR100959532B1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7620632B2 (en) 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
WO2007011116A1 (en) * 2005-07-20 2007-01-25 Humax Co., Ltd. Encoder and decoder
KR100776195B1 (ko) * 2005-08-09 2007-11-16 (주)씨앤에스 테크놀로지 빠른 cavlc를 위한 h.264 디코딩 방법
KR100753282B1 (ko) * 2005-12-28 2007-08-29 엘지전자 주식회사 Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법
JP2007329903A (ja) * 2006-05-11 2007-12-20 Matsushita Electric Ind Co Ltd 可変長復号化装置、可変長復号化方法および撮像システム
KR100813877B1 (ko) * 2006-05-11 2008-03-18 전자부품연구원 효율적인 h.264/avc cavlc 디코딩 방법
US7626521B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding control of computational core of programmable graphics processing unit
US7626518B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding systems and methods in computational core of programmable graphics processing unit
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US7623049B2 (en) * 2006-06-08 2009-11-24 Via Technologies, Inc. Decoding of context adaptive variable length codes in computational core of programmable graphics processing unit
US8189627B2 (en) 2006-06-28 2012-05-29 Samsung & Electronics Co., Ltd. System and method for digital communications using multiple parallel encoders
JP4379444B2 (ja) * 2006-07-26 2009-12-09 ソニー株式会社 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置
CN100466743C (zh) * 2006-08-07 2009-03-04 清华大学 一种基于共享存储可编程的熵解码和反量化的方法
US8116378B2 (en) * 2006-12-15 2012-02-14 Arcsoft, Inc. Variable length decoding method
US8467449B2 (en) * 2007-01-08 2013-06-18 Qualcomm Incorporated CAVLC enhancements for SVC CGS enhancement layer coding
CN101584120B (zh) * 2007-01-19 2013-01-09 三菱电机株式会社 表装置、可变长度编码装置、可变长度解码装置
US8111670B2 (en) * 2007-03-12 2012-02-07 Samsung Electronics Co., Ltd. System and method for processing wireless high definition video data using remainder bytes
US7688908B2 (en) 2007-03-12 2010-03-30 Samsung Electronics Co., Ltd. System and method for processing wireless high definition video data using a shortened last codeword
JP2008227946A (ja) * 2007-03-13 2008-09-25 Toshiba Corp 画像復号装置
KR100923948B1 (ko) * 2007-11-26 2009-10-29 한국전자통신연구원 어플리케이션 특정 명령어 프로세서에 기반한 h.264cavlc 디코딩 방법
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
US7773004B2 (en) * 2008-07-08 2010-08-10 Qualcomm Incorporated CAVLC run-before decoding scheme
KR101136858B1 (ko) * 2010-03-16 2012-04-20 (주)에어로매스터 동영상 압축 표준에서의 인코딩 장치 및 방법
KR101130271B1 (ko) * 2010-07-26 2012-03-26 인하대학교 산학협력단 H.264/avc를 위한 내용기반 가변길이 부호화기
TWI524681B (zh) * 2011-04-26 2016-03-01 晨星半導體股份有限公司 霍夫曼解碼器及其解碼方法
CN102263960B (zh) * 2011-08-15 2013-11-27 复旦大学 一种快速解码cavlc非零系数幅值的方法
RU2500073C1 (ru) * 2012-08-29 2013-11-27 Федеральное государственное унитарное предприятие "Центральный научно-исследовательский институт связи" (ФГУП ЦНИИС) Адаптивный декодер произведения кодов размерности 3d
KR20140052831A (ko) * 2012-09-28 2014-05-07 삼성전자주식회사 참조 픽처 정보를 이용한 병렬 처리 비디오 부호화 방법 및 장치, 병렬 처리 비디오 복호화 방법 및 장치
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000021048A (ko) * 1998-09-25 2000-04-15 구자홍 가변길이 부호화 테이블 구조 및 이 것을 이용한 가변길이 부호화 방법
US20030174076A1 (en) 2002-02-28 2003-09-18 Samsung Electronics Co., Ltd. Huffman decoding method and apparatus
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860136A (en) * 1989-06-16 1999-01-12 Fenner; Peter R. Method and apparatus for use of associated memory with large key spaces
JP3278297B2 (ja) * 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5623423A (en) * 1994-12-12 1997-04-22 Univ. Of Texas Apparatus and method for video decoding
JP3302210B2 (ja) * 1995-02-10 2002-07-15 富士通株式会社 データ符号化/復号化方法及び装置
US6725223B2 (en) * 2000-12-22 2004-04-20 International Business Machines Corporation Storage format for encoded vector indexes
US6504496B1 (en) * 2001-04-10 2003-01-07 Cirrus Logic, Inc. Systems and methods for decoding compressed data
US6903669B1 (en) * 2003-10-03 2005-06-07 Cirrus Logic, Inc. Systems and methods for decoding compressed data
US7602850B2 (en) * 2003-12-19 2009-10-13 Intel Corporation Content adaptive variable length coding (CAVLC) decoding
US6919826B1 (en) * 2003-12-19 2005-07-19 Sun Microsystems, Inc. Systems and methods for efficient and compact encoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000021048A (ko) * 1998-09-25 2000-04-15 구자홍 가변길이 부호화 테이블 구조 및 이 것을 이용한 가변길이 부호화 방법
US20030174076A1 (en) 2002-02-28 2003-09-18 Samsung Electronics Co., Ltd. Huffman decoding method and apparatus
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method

Also Published As

Publication number Publication date
US7135997B2 (en) 2006-11-14
KR20050061777A (ko) 2005-06-23
US20050156761A1 (en) 2005-07-21

Similar Documents

Publication Publication Date Title
KR100959532B1 (ko) Cavlc 복호 방법
US7043088B2 (en) Adaptive variable length decoding method
US10103746B2 (en) Methods and devices for coding and decoding the position of the last significant coefficient
Hashemian Memory efficient and high-speed search Huffman coding
KR100750165B1 (ko) 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
US5604498A (en) Huffman decoder
US5818877A (en) Method for reducing storage requirements for grouped data values
KR100729270B1 (ko) 이미지 및/또는 비디오 인코더 및 디코더에서의변환계수를 인코딩하는 방법 및 장치, 및 이에 대응하는컴퓨터 프로그램 및 컴퓨터로 읽을 수 있는 저장매체
KR102588145B1 (ko) 엔트로피 인코딩 및 디코딩 방식
US5208593A (en) Method and structure for decoding Huffman codes using leading ones detection
KR100856398B1 (ko) 복수 매핑 테이블을 이용한 가변장 부호화 및 복호화방법과 그 장치
JP7245341B2 (ja) 統合変換タイプ通知および変換タイプ依存変換係数レベルコーディング
US7817864B2 (en) Coding apparatus and decoding apparatus
US7411529B2 (en) Method of decoding bin values using pipeline architecture and decoding device therefor
KR20070109487A (ko) 효율적인 h.264/avc cavlc 디코딩 방법
JP2011130413A (ja) デジタルコンテンツ符号器、復号器、検索装置、符号化方法、検索方法、記録担体、信号、および記憶装置
Hashemian Condensed table of Huffman coding, a new approach to efficient decoding
US8508390B2 (en) Combining transform coefficient decoding with variable length decoding
US6794999B1 (en) Resilient parameterized prefix codes for adaptive coding
Kirchhoffer et al. Probability interval partitioning entropy coding using systematic variable-to-variable length codes
JP2004056417A (ja) 復号装置および復号方法
Chuang et al. An SGH-tree based efficient huffman decoding
KR100982666B1 (ko) 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법
KR20050066142A (ko) 문맥기반 적응 가변길이 복호화 장치 및 그 방법
KR0123729B1 (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
FPAY Annual fee payment

Payment date: 20130424

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140424

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150424

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160422

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170414

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee