KR20070069381A - Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법 - Google Patents

Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법 Download PDF

Info

Publication number
KR20070069381A
KR20070069381A KR1020050131425A KR20050131425A KR20070069381A KR 20070069381 A KR20070069381 A KR 20070069381A KR 1020050131425 A KR1020050131425 A KR 1020050131425A KR 20050131425 A KR20050131425 A KR 20050131425A KR 20070069381 A KR20070069381 A KR 20070069381A
Authority
KR
South Korea
Prior art keywords
level
vlc
lev
decoding
prefix
Prior art date
Application number
KR1020050131425A
Other languages
English (en)
Other versions
KR100753282B1 (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 KR1020050131425A priority Critical patent/KR100753282B1/ko
Publication of KR20070069381A publication Critical patent/KR20070069381A/ko
Application granted granted Critical
Publication of KR100753282B1 publication Critical patent/KR100753282B1/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
    • 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/124Quantisation

Landscapes

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

Abstract

본 발명은 비디오 코딩 표준인 H.264/AVC에서 잉여 정보를 압축하기 위한 CAVLC(Context Adaptive Variable Length Coding)를 디코딩하는 방법에 관한 것으로, CAVLC를 분석한 결과에 따라 level_prefix 만으로 Lev-VLC 테이블을 결정하여 레벨을 디코딩한다. 이에 따라, 매우 간단한 처리를 통해서도 Lev-VLC 테이블을 선택하여 레벨을 디코딩할 수 있으며, 처리방법의 복잡도가 개선되고, 처리 속도 또한 개선된다.
CAVLC, H.264/AVC, 변환계수, 레벨

Description

CAVLC 디코딩을 위한 VLC 테이블 선택방법 및 그 CAVLC 디코딩방법{VLC table selection method for CAVLC decoding and CAVLC decoding method thereof}
도 1은 종래의 레벨 디코딩시 두 번째 VLC 테이블을 선택하는 방법을 도시한 도면,
도 2는 CAVLC의 복호화 방법을 나타낸 흐름도,
도 3은 CAVLC의 부호화/복호화 방법에 사용되는 VLC 테이블을 도시한 도면,
도 4는 도 3의 VLC 테이블에 포함된 코드워드의 구조를 나타낸 도면,
도 5는 본 발명에 따른 CAVLC의 레벨 디코딩 방법을 나타낸 흐름도,
도 6은 레벨의 크기에 따른 두 번째 VLC 테이블의 선택방법을 나타낸 도면,
도 7은 본 발명의 VLC 테이블 선택방법 중 두 번째 이후의 테이블 선택방법의 설명을 위해 제공되는 도면, 그리고
도 8은 본 발명의 VLC 테이블 선택방법을 도시한 흐름도이다.
본 발명은 비디오 코딩 표준인 H.264/AVC에서 잉여 정보를 CAVLC(Context Adaptive Variable Length Coding)로 부호/복호하는 방법에 관한 것으로 보다 상세하게는 CAVLC를 분석하여 level_prefix 만으로 Lev-VLC 테이블을 결정하여 레벨 디코딩하는 CAVLC 디코딩을 위한 Lev-VLC 테이블 선택방법 및 그 CAVLC 디코딩 방법에 관한 것이다.
H.264/AVC 비디오 코딩 표준은 잉여 정보를 압축하기 위해 CAVLC와 CABAC(Context Adaptive Binary Arithmetic Coding) 방법을 이용한다. 그 중 CAVLC는 Baseline, Main, Advanced, FRExt profile 등 H.264/AVC의 모든 프로파일에서 지원되며 CABAC에 비해 계산량과 복잡도가 작다. CAVLC 기법은 기존의 MPEG-1, MPEG-4 등에서 이용된 가변장 부호화 기법(VLC: Variable Length Coding)에서 발전한 기법이다.
이하에서는 종래의 CAVLC 레벨 디코딩 방법을 미국특허 제6,646,578호를 기초로 설명한다.
종래의 CAVLC 레벨 디코딩 단계는, CAVLC로 압축된 4x4 블록 내의 0이 아닌 양자화(Quantization)변환 계수의 수 N, Trailing ones의 개수인 'T1s', level_prefix와 level_suffix 코드 워드로 계산한 현재 레벨 및 현재 사용한 VLC 테이블을 이용하여 다음 레벨 디코딩에 이용할 VLC 테이블을 선택하고, 선택된 VLC 테이블을 이용하여 다음 단계의 레벨을 디코딩한다.
예를 들어, T1s 번째 레벨 디코딩이 끝나면, (T1s+1) 번째 레벨 디코딩을 위 하여 새로운 VLC 테이블을 선택하게 된다.
VLC 테이블은 복호된 레벨 크기와 현재 레벨 디코딩에 사용한 Lev-VLC(n) 테이블을 이용하여 결정한다. 선택 방법은 다음의 수학식 1의 의사코드(pseudo code)를 이용하여 선택하며, 현재의 테이블(n=n) 또는 현재 테이블보다 증가한 테이블(n=n+1)을 선택한다.
if(|level| > (vlc_inc[n]) & (n≠6)) n=n+1
else n = n
그리고 예외적으로, 수학식 1을 적용한 후에 |level|>3 인 경우, T1s 번째 레벨 디코딩을 위한 VLC 테이블은 Lev-VLC(2)이 사용된다. 수학식 1에서 VLC 테이블 선택에 사용하는 vlc_inc 테이블은 다음의 표 1과 같으며 n에 따라 다른 값을 갖는다.
n vlc_inc
0 0
1 3
2 6
3 12
4 24
5 48
6 infinite
도 1은 종래의 레벨 디코딩시 (Tis+1) 번째 레벨 디코딩을 위한 VLC 테이블을 선택하는 방법을 도시한 도면으로, 수학식 1을 기초로 하여 Tis 번째 레벨 디코딩을 위한 VLC 테이블과 (Tis+1) 번째 레벨 디코딩을 위한 VLC 테이블이 어떻게 선택되는지를 나타내었다.
Tis 번째 레벨 디코딩을 위한 VLC 테이블은 Lev-VLC(0)(a1) 혹은 Lev-VLC(1)(a2) 중에서 결정된다. 그리고 (Tis+1) 번째 레벨 디코딩을 위한 VLC 테이블은 수학식 1에 의해 결정되나, 특별히 첫 레벨의 크기가 3보다 큰 경우는 두 번째 테이블로 Lev-VLC(2)(a4)이 선택된다.
본 발명의 목적은 H.264/AVC 복호/부호화기에서 CAVLC 잉여(residual) 디코딩을 위한 VLC 테이블 선택방법 및 그 CAVLC 디코딩 방법을 제공함에 있다.
본 발명의 다른 목적은 레벨의 level_prefix 코드워드에 의한 Lev-VLC 테이블 선택 방법을 제시함에 있다.
상기 목적을 달성하기 위해 본 발명에 따른 CAVLC 디코딩을 위한 VLC 테이블 선택방법은, CAVLC(Context Adaptive Variable Length Coding)로 코딩된 비트 스트림의 i-1 번째 변환계수의 레벨 디코딩을 위해, 선택된 Lev-VLC(n) 테이블로부터 추출한level_prefix가 2보다 큰 값인지를 판단하는 단계(여기서, 정수 i>(T1s+1)이고, 정수 n은 6≥n≥0) 및 상기 판단결과에 따라 i번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하되, 상기 level_prefix가 2보다 크면 Lev-VLC(n+1) 테이블을 선택하고, 상기 level_prefix가 2보다 크지 않거나 상기 n이 6이면 Lev-VLC(n) 테이블을 유지하는 단계를 포함한다.
나아가, 상기 비트 스트림에서 파싱한 상기 T1s가 3과 같은 경우 소정의 가상 코드를 5로 정하는 단계, 상기 T1s가 3 보다 작고, 0이 아닌 양자화 변환 계수의 수 N이 10 이하인 경우 상기 가상 코드를 3으로 정하는 단계, 상기 T1s가 3 보다 작고, 상기 N이 10 보다 큰 경우 상기 가상코드를 1로 정하는 단계, T1s 번째 변환계수의 레벨 디코딩을 위해 선택된 Lev-VLC(n) 테이블로부터 추출한 level_prefix가 상기 가상코드보다 큰 값인지를 판단하는 단계 및 상기 판단결과에 따라 (T1s+1) 번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하되, level_prefix가 상기 가상코드보다 크면 Lev-VLC(n+1) 테이블을 선택하고, 상기 가상코드보다 크지 않으면 Lev-VLC(n) 테이블을 그대로 유지하되, 상기 n이 0이면 0 대신 1을 적용하는 단계를 더 포함할 수 있다.
또한, 본 발명에 따른 CAVLC로 코딩된 비트 스트림으로부터 0이 아닌 양자화(Quantization)변환 계수의 수 N과 trailing ones의 개수인 T1s가 합쳐진 심볼인 토큰(Token)을 디코딩하는 단계, 상기 토큰의 디코딩 후, 상기 T1s 개의 변환계수의 부호가 각각 +인지 -인지 디코딩하는 단계, 상기 T1s가 아닌 변환계수 각각의 레벨을 구하기 위해 복수 개의 Lev-VLC 테이블 중 하나를 선택하면서 상기 레벨을 디코딩하되, i-1 번째 변환계수의 레벨 디코딩을 위해 선택된 Lev-VLC(n) 테이블로부터 추출한 level_prefix를 이용하여 i번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하는 단계(여기서, 정수 i>(T1s+1)이고, 정수 n은 6≥n≥0) 및 TotalZeros를 디코딩하고, 상기 레벨 간에 존재하는 연속하는 0인 계수의 수인 런(run)을 디코딩하는 단계를 포함한다.
이하에서는, 도면을 참조하여 본 발명을 상세히 설명한다.
도 2는 CAVLC의 복호화 방법을 나타낸 흐름도이다.
CAVLC(Context Adaptive Variable Length Coding) 복호화방법은 H.264/AVC 비디오 코딩 표준에서 잉여 정보를 압축하기 위해 사용된다. CAVLC로 코딩된 비디오 비트 스트림을 수신한 경우, CAVLC 복호화 방법에 따라 양자화된 변환계수를 복호한다.
먼저, CAVLC로 압축된 4x4 블록 내의 0이 아닌 양자화(Quantization)변환 계수의 수 N과 Trailing ones의 개수인 'T1s'가 합쳐진 심볼인 토큰(Token)을 복호한다(S201).
토큰을 디코딩하고 나면, 첫 번째부터 T1s-1 번째 레벨이 디코딩되고, trailing ones의 +/- 부호가 디코딩되고(S203), trailing ones가 아닌 (N+1-T1s)개의 레벨 값이 디코딩 된다(S205). 그리고 TotalZeros를 디코딩하는 단계(S207) 및 레벨 간에 존재하는 연속하는 0인 계수의 수인 런(run)을 디코딩하는 단계(S209)를 포함하여 CAVLC로 압축된 데이터가 복호된다.
S205 단계에서, 레벨을 복호화하는 방법은 적응적으로(adaptively) VLC 테이블을 선택하는 방법과 선택한 테이블을 이용해 레벨을 디코딩하는 방법을 모두 포함한다.
이하에서는 변환계수의 레벨을 디코딩하는 방법에 대하여 보다 상세히 설명 한다.
도 3은 CAVLC의 부호화/복호화 방법에 사용되는 VLC 테이블을 도시한 도면이며, 도 4는 도 3의 VLC 테이블에 포함된 코드워드의 구조를 나타낸 도면이다.
도 3을 참조하면, VLC 테이블은 Lev-VLC(0), Lev-VLC(1), Lev-VLC(2), Lev-VLC(3), Lev-VLC(4), Lev-VLC(5) 및 Lev-VLC(6)를 포함한다. 즉, VLC 테이블은 Lev-VLC(n)이 있다(여기서, 0≤n≤6).
도 4를 참조하면, VLC 테이블에 포함된 비트 스트림 코드워드는 전반부(b1)는 level_prefix를 나타내고 후반부(b2)는 level_suffix를 나타낸다.
전반부(b1)는 연속하는 비트 '0'와 최종 비트가 '1'인 구조로, level_prefix는 연속하는 비트 '0'의 개수와 같은 값을 갖는다.
반면에 후반부(b2)는 전반부(b1)에 뒤이어 오는 코드로 도 3의 VLC 테이블에서 'xx…s'로 표현되는 부분이다. 일반적으로 테이블 Lev-VLC(n)의 n과 같은 비트 길이의 코드워드이지만 더 긴 경우인 이스케이프 코드(escape code)도 있다. 이스케이프 코드는 더 큰 크기의 레벨을 표현하기 위해 사용하며 Lev-VLC(0)의 경우 level_prefix가 14나 15의 값을 가질 때, level_suffix의 길이는 각각 4 혹은 12비트를 갖는다. 그러나 Lev-VLC(1)부터 Lev-VLC(6)의 테이블은 level_prefix가 15일 때 12 비트의 level_suffix 코드워드를 갖는다.
도 5는 본 발명에 따른 CAVLC의 레벨 디코딩 방법을 나타낸 흐름도이다.
먼저, 블록 내 0이 아닌 변환계수의 수 N과 고주파 영역의 계수가 1인 T1s를 이용하여, T1s 번째 레벨의 디코딩을 위한 VLC 테이블(이하 '첫 번째 VLC 테이블' 이라 함)을 선정한다. 첫 번째 VLC 테이블의 선정은 아래에서 다시 설명한다(S501).
S501 단계에서 구한 첫 번째 VLC 테이블을 이용하여, level_prefix를 파싱한 다음(S505), level_suffix를 파싱하고(S509), 해당 변환계수의 레벨을 디코딩한다(S511).
레벨 디코딩이 완료되지 않았으면, S503 내지 S511를 반복하면서 다음 변환계수의 레벨을 디코딩한다. 다만 이러한 과정에서 T1s 번째 변환계수 이후의 레벨 디코딩은 새로운 VLC 테이블을 이용하게 되고, 이러한 새로운 VLC 테이블의 선택은 S505 단계에서 파싱한 level_prefix를 이용하여 S507 단계에서 바로 이루어진다.
이하에서는 설명의 편리를 위해, 앞서 T1s 번째 레벨의 디코딩을 위한 VLC 테이블을 '첫 번째 VLC 테이블'이라 한 것과 마찬가지로, (T1s+1) 번째 레벨의 디코딩을 위한 VLC 테이블을 '두 번째 VLC 테이블'이라 한다. 따라서, 이하에서 첫 번째 VLC 테이블, 두 번째 VLC 테이블에서 '첫 번째' 및 '두 번째'는, 전체 7개로 구성된 Lev-VLC(n) 테이블상의 순서 n을 의미하지 아니한다.
S511 단계에서, 변환 계수의 레벨을 구하기 위한 중간변수 levelCode는 다음의 수학식 1에 의해 level_prefix, level_suffix 그리고 n을 이용해서 계산한다.
levelCode =(level _prefix<<n)+level _ suffix
levelCode로부터 다음의 수학식 3을 이용해 계수의 레벨을 디코딩한다. levelCode의 LSB(least significant bit)는 부호이고, 나머지 비트는 레벨 절대치 에서 1을 뺀 값과 동일하다.
coefficient level=(1-2*(levelCode & 0x01))×((levelCode+2))>>1)
양자화된 변환 계수는 고주파 영역일수록 레벨의 크기가 작을 확률이 높다. CAVLC는 고주파 영역의 계수에서 저주파 계수의 순서로 디코딩하며, 사용하는 레벨 테이블 Lev-VLC(n)은 레벨을 디코딩할 때마다 새로 선택한다. Lev-VLC(n) 테이블은 n이 높을수록 큰 값을 가질 확률이 높은 레벨에 적합하므로, VLC 테이블의 선택은 n이 증가하는 방향으로 진행된다.
이하에서는, S501 단계에서 이루어지는, 첫 번째 레벨을 구하기 위한 첫 번째 VLC 테이블을 구하는 방법을 설명한다.
첫 VLC 테이블은 블록 내 계수의 수 N과 고주파 영역의 계수가 1인 T1s를 이용하여 블록 내 잉여 정보의 잔재 정도를 가늠하고 첫 VLC 테이블을 다음의 수학식 4에 의해 Lev-VLC(0)과 Lev-VLC(1) 중 선택한다.
Figure 112005077094062-PAT00001
여기서, n은 7개 VLC 테이블인 Lev-VLC(n) 테이블의 순서 n을 의미한다.
이하에서는, S507 단계에서 새로운 VLC 테이블을 선택하는 방법을 설명한다.
도 1을 본 발명의 접근 방향으로 다시 정리하면 다음의 도 6과 같다. 도 6은 레벨의 크기에 따른 두 번째 VLC 테이블의 선택방법을 나타낸 도면이다.
Lev-VLC(0)(a)을 T1=3인 경우(c1)와 T1<3이면서 N≤10인 경우(c2)의 두 경우로 나누고, 두 번째 테이블 선택에서 레벨 크기를 3과 비교했을 때 대소에 따른 테이블 선택만이 유효한 규칙으로 정리된다. 즉 레벨 크기가 3 이하이면 Lev-VLC(1)이 선택되고, 레벨 크기가 3보다 크면 Lev-VLC(2)가 선택된다.
표 2는 T1, N에 따른 첫 테이블 선택과 그에 따른 코드워드 및 레벨 크기를 함께 정리한 것이다.
level_prefix codeword level_suffix codeword Level
T1=3 (d1) T1<3, N≤10 (d2) T1<3, N>10 (d3)
1 - 1 2 -
01 - -1 -2 -
001 - 2 3 -
0001 - -2 -3 -
0000 1 - 3 4 -
0000 01 - -3 -4 -
0000 001 - 4 5 -
1 0 - - 2
1 1 - - -2
01 0 - - 3
01 1 - - -3
001 0 - - 4
표 2에 따르면, Lev-VLC(0)에서, T1=3인 경우(d1), level_prefix가 5 이하이면 레벨의 크기는 3 이하이다. 또한, Lev-VLC(0)에서, T1<3, N≤10인 경우(d2)에는, level_prefix가 3 이하일 때 레벨의 크기가 3 이하이다.
그리고, T1<3, N>10인 경우(d3)에는, Lev-VLC(1)에서, level_prefix가 1 이하일 때 레벨의 크기가 3 이하이다.
즉, 두 번째 VLC 테이블을 선택할 경우, 도 6과 표 2를 고려하면, 레벨의 크기가 아니라 level_prefix로 두 번째 VLC 테이블을 선택할 수 있다.
표 2를 가상 코드(pseudo code) T_ prefix를 이용하여 다음의 수학식 5와 같이 정리할 수 있다.
if(T1=3) T_ prefix=5
elseif(N≤10) T_ prefix=3
elseif T_ prefix=1
여기서, T1은 항상 3 이하의 값을 가지므로, "elseif(N≤10)"은 "elseif(T1<3 and N≤10)과 동일하다.
그리고, 다음의 수학식 6과 같이 두 번째 VLC 테이블을 선택할 수 있다.
if(n=0) n=1
if(level _ prefix > T_ prefix) & (n≠6)) n=n+1
else n=n
여기서, n은 7개 VLC 테이블인 Lev-VLC(n) 테이블의 순서 n을 의미한다.
수학식 6에서, 첫 번째 VLC 테이블이 Lev-VLC(0) 인 경우를 고려하여 if(n=0) n=1로 둔다.
이하에서는, 도 7을 참조하여 두 번째 이후의 VLC 테이블 선택방법을 설명한다.
도 7은 본 발명의 VLC 테이블 선택방법 중 두 번째 이후의 테이블 선택방법의 설명을 위해 제공되는 도면이다.
도 7을 참조하면, 현재의 VLC 테이블(e1), 해당 VLC 테이블에서의 levle_prefix(e4)와 level_suffix(e5) 및 선택될 VLC 테이블(e6)을 도시하였다. 그리고, 적절한 설명을 위해 표 1의 vlc_inc(e2) 및 현재 VLC 테이블을 이용하여 구한 레벨(e3)을 나타내었다.
도 3의 Lev-VLC(n)과 도 7을 참조하면, Lev-VLC(1)부터 Lev-VLC(5)에서, level_prefix가 '001'(코드 번호 2)이하이면 다음 단계의 VLC 테이블로 동일한 테이블이 선택되고 level_prefix가 '001' 보다 크면 다음 단계의 VLC 테이블은 n이 1 증가한 테이블이 선택된다.
Lev-VLC(6)은 Lev-VLC(7)이 없으므로 level_prefix가 '001' 보다 크더라도 Lev-VLC(6)가 다음 단계의 VLC 테이블로 선택된다. Lev-VLC(0)은 첫 번째 레벨 디코딩에만 사용하기 때문에 앞에서 설명한 수학식 5과 수학식 6에 의해 결정되므로 제외해도 무관하다.
따라서, (T1s+1) 번째 이후 레벨의 디코딩 단계에서 VLC 테이블을 선택하는 방법은 다음의 수학식 8과 같이 정의할 수 있다.
if((level _ prefix > T_ prefix)&(n≠6)) n=n+1
else n = n
여기서, T_ prefix = 2 이고, n은 7개 VLC 테이블인 Lev-VLC(n) 테이블의 순 서 n을 의미한다.
결론적으로, 본 발명의 테이블 선택 방법은 가상코드 T_prefix를 결정하는 단계와 T_prefix와 대소를 통해 다음 테이블을 선택하는 두 단계로 구성되며, 다음의 도 8과 같다.
도 8은 본 발명의 VLC 테이블 선택방법을 도시한 흐름도이다.
두 번째 VLC 테이블을 선택하는 경우에만 몇 가지 선택 가능한 T_prefix가 있고(S801, S803), 두 번째 이후의 VLC 테이블을 선택하는 경우에는 T_prefix는 2가 된다(S801, S805). 그리고 해당 T_prefix를 이용하여 수학식 7을 적용한다(S807).
이상의 방법으로 본 발명의 VLC 테이블 선택방법이 실현된다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
이상 설명한 바와 같이, 본 발명에 따르면, 비디오 코딩 표준 H.264/AVC에서 잉여 정보를 압축하기 위한 CAVLC(Context Adaptive Variable Length Coding)를 디 코딩함에 있어, level_prefix 만으로 VLC 테이블을 결정하여 레벨을 디코딩할 수 있다.
또한, level_prefix와 level_suffix로 레벨을 구하는 과정과 다음 VLC 테이블을 선택하는 과정을 분리할 수 있다.
이에 따라, 매우 간단한 처리를 통해서도 VLC 테이블을 선택하여 레벨을 디코딩할 수 있으며, 처리방법의 복잡도가 개선되고, 처리 속도 또한 개선된다.
이러한 방법은 기존의 CAVLC 표준을 그대로 이용함으로써 CAVLC 방법이 사용되는 모든 영역에 사용할 수 있다.

Claims (5)

  1. CAVLC(Context Adaptive Variable Length Coding)로 코딩된 비트 스트림의 i-1 번째 변환계수의 레벨 디코딩을 위해, 선택된 Lev-VLC(n) 테이블로부터 추출한level_prefix가 2보다 큰 값인지를 판단하는 단계(여기서, 정수 i>(T1s+1)이고, 정수 n은 6≥n≥0); 및
    상기 판단결과에 따라 i번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하되, 상기 level_prefix가 2보다 크면 Lev-VLC(n+1) 테이블을 선택하고, 상기 level_prefix가 2보다 크지 않거나 상기 n이 6이면 Lev-VLC(n) 테이블을 유지하는 단계; 를 포함하여 이루어지는 CAVLC 디코딩을 위한 VLC 테이블 선택방법.
  2. 제 1항에 있어서,
    상기 비트 스트림에서 파싱한 상기 T1s가 3과 같은 경우 소정의 가상 코드를 5로 정하는 단계;
    상기 T1s가 3 보다 작고, 0이 아닌 양자화 변환 계수의 수 N이 10 이하인 경우 상기 가상 코드를 3으로 정하는 단계;
    상기 T1s가 3 보다 작고, 상기 N이 10 보다 큰 경우 상기 가상코드를 1로 정 하는 단계;
    T1s 번째 변환계수의 레벨 디코딩을 위해 선택된 Lev-VLC(n) 테이블로부터 추출한 level_prefix가 상기 가상코드보다 큰 값인지를 판단하는 단계; 및
    상기 판단결과에 따라 (T1s+1) 번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하되, level_prefix가 상기 가상코드보다 크면 Lev-VLC(n+1) 테이블을 선택하고, 상기 가상코드보다 크지 않으면 Lev-VLC(n) 테이블을 그대로 유지하되, 상기 n이 0이면 0 대신 1을 적용하는 단계;를 더 포함하여 이루어지는 CAVLC 디코딩을 위한 Lev-VLC 테이블 선택방법.
  3. CAVLC로 코딩된 비트 스트림으로부터 0이 아닌 양자화(Quantization)변환 계수의 수 N과 trailing ones의 개수인 T1s가 합쳐진 심볼인 토큰(Token)을 디코딩하는 단계;
    상기 토큰의 디코딩 후, 상기 T1s 개의 변환계수의 부호가 각각 +인지 -인지 디코딩하는 단계;
    상기 T1s가 아닌 변환계수 각각의 레벨을 구하기 위해 복수 개의 Lev-VLC 테이블 중 하나를 선택하면서 상기 레벨을 디코딩하되, i-1 번째 변환계수의 레벨 디코딩을 위해 선택된 Lev-VLC(n) 테이블로부터 추출한 level_prefix를 이용하여 i번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하는 단계(여기서, 정수 i>(T1s+1)이고, 정수 n은 6≥n≥0); 및
    TotalZeros를 디코딩하고, 상기 레벨 간에 존재하는 연속하는 0인 계수의 수인 런(run)을 디코딩하는 단계;를 포함하여 이루어지는 CAVLC 디코딩방법.
  4. 제 3항에 있어서,
    상기 level_prefix를 이용하여 i번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하는 단계는,
    상기 i-1 번째 변환계수의 레벨 디코딩을 위해 선택된 Lev-VLC(n) 테이블로부터 추출한level_prefix가 2보다 큰 값인지를 판단하는 단계; 및
    상기 판단결과에 따라 i번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하되, 상기 level_prefix가 2보다 크면 Lev-VLC(n+1) 테이블을 선택하고, 상기 level_prefix가 2보다 크지 않거나 상기 n이 6이면 Lev-VLC(n) 테이블을 유지하는 단계;를 포함하는 것을 특징으로 하는 CAVLC 디코딩방법.
  5. 제 3항에 있어서,
    상기 level_prefix를 이용하여 (T1s+1)번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하는 단계는,
    상기 T1s가 3과 같은 경우 소정의 가상 코드를 5로 정하는 단계;
    상기 T1s가 3보다 작고, 0이 아닌 양자화 변환 계수의 수 N이 10 이하인 경 우 상기 가상 코드를 3으로 정하는 단계;
    상기 T1s가 3보다 작고, 상기 N이 10 보다 큰 경우 상기 가상코드를 1로 정하는 단계;
    T1s 번째 변환계수의 레벨 디코딩을 위해 선택된 Lev-VLC(n) 테이블로부터 추출한 level_prefix가 상기 가상코드보다 큰 값인지를 판단하는 단계; 및
    상기 판단결과에 따라 T1s+1번째 변환계수의 레벨 디코딩을 위한 Lev-VLC 테이블을 선택하되, level_prefix가 상기 가상코드보다 크면 Lev-VLC(n+1) Lev-VLC 테이블을 선택하고, 상기 가상코드보다 크지 않으면 Lev-VLC(n) 테이블을 그대로 유지하되, 상기 n이 0이면 0 대신 1을 적용하는 단계;를 더 포함하는 것을 특징으로 하는 CAVLC 디코딩방법.
KR1020050131425A 2005-12-28 2005-12-28 Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법 KR100753282B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050131425A KR100753282B1 (ko) 2005-12-28 2005-12-28 Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050131425A KR100753282B1 (ko) 2005-12-28 2005-12-28 Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법

Publications (2)

Publication Number Publication Date
KR20070069381A true KR20070069381A (ko) 2007-07-03
KR100753282B1 KR100753282B1 (ko) 2007-08-29

Family

ID=38505007

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050131425A KR100753282B1 (ko) 2005-12-28 2005-12-28 Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법

Country Status (1)

Country Link
KR (1) KR100753282B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646318B2 (en) 2007-11-26 2010-01-12 Electronics And Telecommunications Research Institute H.264 CAVLC decoding method based on application-specific instruction-set processor
RU2480940C2 (ru) * 2008-04-11 2013-04-27 Квэлкомм Инкорпорейтед Квантование "скорость-искажение" для контекстно-зависимого адаптивного кодирования с переменной длиной кодового слова (cavlc)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099387B2 (en) * 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
KR100959532B1 (ko) * 2003-12-18 2010-05-27 엘지전자 주식회사 Cavlc 복호 방법
US20050259742A1 (en) * 2004-05-21 2005-11-24 Hellman Timothy M System and method for choosing tables in CAVLC

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646318B2 (en) 2007-11-26 2010-01-12 Electronics And Telecommunications Research Institute H.264 CAVLC decoding method based on application-specific instruction-set processor
RU2480940C2 (ru) * 2008-04-11 2013-04-27 Квэлкомм Инкорпорейтед Квантование "скорость-искажение" для контекстно-зависимого адаптивного кодирования с переменной длиной кодового слова (cavlc)
US8902972B2 (en) 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)

Also Published As

Publication number Publication date
KR100753282B1 (ko) 2007-08-29

Similar Documents

Publication Publication Date Title
EP3020196B1 (en) Data encoding and decoding
US7800520B2 (en) Method and system for entropy coding
JP4057595B2 (ja) 変換係数を算術符号化、復号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
KR100813877B1 (ko) 효율적인 h.264/avc cavlc 디코딩 방법
EP1962514A1 (en) Binarizing method and device thereof
US7324699B2 (en) Extension of two-dimensional variable length coding for image compression
JP4033836B2 (ja) 可変長カラー・コードを用いる、パレット化されたカラー画像の圧縮
RU2510573C2 (ru) Способ для кодирования последовательности целых чисел, устройство хранения и сигнал, переносящий кодированную последовательность целых чисел, а также способ декодирования последовательности целых чисел
EP2978136A1 (en) System and method for context-based adaptive binary arithmatic coding and decoding
JP2016519514A (ja) データ符号化及び復号化
EP2164176A1 (en) Method for lossless compressing prefix-suffix-codes, method for decompressing a bit sequence representing integers or symbols encoded in compressed prefix-suffix-codes and storage medium or signal carrying compressed prefix-suffix-codes
US8576915B2 (en) Position coding for context-based adaptive variable length coding
JP2004531995A5 (ko)
KR100753282B1 (ko) Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법
CN109417622B (zh) 使用简单本地预测器的改进的有效性标志译码的方法和装置
JP2006295683A (ja) 画像符号化方法及び画像符号化装置
KR20090113208A (ko) 정수들의 시퀀스를 인코딩하기 위한 방법, 인코딩된 정수 시퀀스를 운반하는 저장 디바이스 및 신호, 그리고 정수들의 시퀀스를 디코딩하기 위한 방법
Chen et al. Highly efficient entropy coding of multilevel images using a modified arithmetic code
JP3977743B6 (ja) 自己プリフィックス(Self−PREFIXED)共通可変長符号を用いたデータ圧縮方法
JP3977743B2 (ja) 自己プリフィックス(Self−PREFIXED)共通可変長符号を用いたデータ圧縮方法
JP3579411B2 (ja) 可変長符号化方法及び装置
JP3579409B2 (ja) 可変長符号化方法及び装置
JP3579410B2 (ja) 可変長符号化方法及び装置
JP3579412B2 (ja) 可変長復号化方法及び装置
JP3164806B2 (ja) 可変長符号化方法及び装置

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130724

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140724

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150724

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160722

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee