KR100736086B1 - 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치 - Google Patents

엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치 Download PDF

Info

Publication number
KR100736086B1
KR100736086B1 KR1020050122564A KR20050122564A KR100736086B1 KR 100736086 B1 KR100736086 B1 KR 100736086B1 KR 1020050122564 A KR1020050122564 A KR 1020050122564A KR 20050122564 A KR20050122564 A KR 20050122564A KR 100736086 B1 KR100736086 B1 KR 100736086B1
Authority
KR
South Korea
Prior art keywords
coefficient
layer
coefficients
block
bitstream
Prior art date
Application number
KR1020050122564A
Other languages
English (en)
Other versions
KR20070027422A (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 US11/509,579 priority Critical patent/US8514943B2/en
Priority to CN2006800325755A priority patent/CN101258755B/zh
Priority to EP06798638A priority patent/EP1922881A4/en
Priority to PCT/KR2006/003492 priority patent/WO2007029945A1/en
Priority to JP2008528956A priority patent/JP4834732B2/ja
Publication of KR20070027422A publication Critical patent/KR20070027422A/ko
Application granted granted Critical
Publication of KR100736086B1 publication Critical patent/KR100736086B1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer

Abstract

본 발명은 다 계층 기반의 코덱에 있어서, 엔트로피 코딩의 성능을 개선하는 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른, 다 계층 비디오를 코딩하여 생성되는 계수들 중 소정 계층의 블록에 포함되는 제1 계수를 무손실 부호화하는 엔트로피 부호화 방법은, 상기 블록과 대응되는 기초 계층의 영역 내에 포함되는 제2 계수의 분포를 획득하는 단계와, 복수의 룩업 테이블 중에서 상기 획득된 분포에 적합한 룩업 테이블을 선택하는 단계와, 상기 선택된 룩업 테이블에 매핑되는 값으로 상기 제1 계수를 변환하는 단계로 이루어진다.
스케일러블 비디오 코딩, 다 계층 비디오, H.264, 가변 길이 부호화(VLC)

Description

엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을 이용한 비디오 코딩 방법 및 장치{Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method}
도 1은 단일 VLC 테이블을 사용할 경우 0이 아닌 계수의 비율을 각 FGS 계층별로 나타낸 도면.
도 2는 기초 계층의 특성을 이용하여 현재 계층을 엔트로피 코딩하는 기본 개념을 도시하는 도면.
도 3은 확장된 CAVLC 기법에 따른 CAVLC 인코더의 구성을 도시하는 블록도.
도 4는 현재 계층의 블록을 CAVLC 인코딩함에 있어서, 주변 블록 및 기초 계층의 블록을 참조하는 개념을 도시하는 도면.
도 5는 도 3의 CAVLC 인코더에 대응되는 CAVLC 디코더의 구성을 도시하는 블록도.
도 6은 FGS 스킴(scheme)에 따라서, 양자화 계수들이 하나의 이산 계층과 적어도 하나 이상의 FGS 계층으로 분리되어 표시되는 예를 도시하는 도면.
도 7은 본 발명의 일 실시예에 따른 정제 계수 인코더의 구성을 도시하는 블록도.
도 8은 도 7의 정제 계수 인코더에 대응되는 정제 계수 디코더의 구성을 도시하는 블록도.
도 9는 도 3 또는 도 7에서와 같은 엔트로피 인코더가 적용될 수 있는 다 계층 기 반의 비디오 인코더의 구성을 도시하는 블록도.
도 10은 도 5 또는 도 8에서와 같은 엔트로피 디코더가 적용될 수 있는 다 계층 기반의 비디오 디코더의 구성을 도시하는 블록도.
(도면의 주요부분에 대한 부호 설명)
100 : CAVLC 인코더 110 : Num_Trail 코딩부
120 : Sign_Trail 코딩부 130 : Level 코딩부
140 : Total_Zeros 코딩부 150 : Run 코딩부
160, 260, 320, 420 : 테이블 선택부 200 : CAVLC 디코더
210 : Num_Trail 디코딩부 220 : Sign_Trail 디코딩부
230 : Level 디코딩부 240 : Total_Zeros 디코딩부
250 : Run 디코딩부 300 : 정제 계수 인코더
310 : 그룹화부 320, 420 : 테이블 선택부
330 : 크기 코딩부 340, 440 : 테이블 저장부
350 : 부호 코딩부 360, 650 : Mux
400 : 정제 계수 디코더 410, 860 : Demux
430 : 크기 디코딩부 450 : 부호 디코딩부
500 : 기초 계층 인코더 510, 610 : 예측부
520, 620 : 변환부 530, 630 : 양자화부
540, 640 : 엔트로피 부호화부 550 : 다운샘플링부
600 : 향상 계층 인코더 700 : 기초 계층 디코더
710, 810 : 엔트로피 디코더 720, 820 : 역양자화부
730, 820 : 역변환부 740, 840 : 역예측부
800 : 향상 계층 디코더 1000 : 비디오 인코더
2000 : 비디오 디코더
본 발명은 비디오 압축 기술에 관한 것으로, 보다 상세하게는 다 계층 기반의 코덱에 있어서, 엔트로피 코딩의 성능을 개선하는 방법 및 장치에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 특성을 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy) 요소를 제거하는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주 파수에 둔감한 것을 고려한 심리시각 중복을 제거함으로써 데이터를 압축할 수 있다. 일반적인 비디오 코딩 방법에 있어서, 시간적 중복은 모션 보상에 근거한 시간적 필터링(temporal filtering)에 의해 제거하고, 공간적 중복은 공간적 변환(spatial transform)에 의해 제거한다.
데이터의 중복을 제거한 결과는 다시 양자화 과정을 통하여 소정의 양자화 스텝에 따라서 손실 부호화된다. 상기 양자화된 결과는 최종적으로 엔트로피 부호화(entropy coding)를 통하여 최종적으로 무손실 부호화된다.
현재, ISO/IEC(International Organization for Standardization / International Electrotechnical Commission)와 ITU(International Telecommunication Union)의 비디오 전문가들 모임인 JVT(Joint Video Team)에서 진행중인 스케일러블 비디오 코딩(이하, SVC 라 함) 초안(draft)에서는, 기존의 H.264를 기반으로 하여 도 1의 예와 같은 다 계층 기반의 코딩 기술에 관한 연구가 활발히 진행되고 있다.
현재 H.264 표준에서 사용되는 엔트로피 부호화 기술로는, CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding), Exp_Golomb(exponential Golomb) 등이 있다.
다음의 표 1은 H.264 표준에서 코딩될 파라미터별로 사용되는 엔트로피 부호화 기법을 나타낸다.
Figure 112005072827588-pat00001
상기 표 1에 의하면 entropy_coding_mode 플래그가 0인 경우에는, 해당 매크로블록이 인터 예측 모드인지 인트라 예측 모드인지를 나타내는 매크로블록 유형(macroblock type), 매크로블록을 구성하는 서브블록의 형태를 나타내는 매크로블록 패턴(macroblock pattern), 양자화 스텝(quantization step)을 결정하는 인덱스인 양자화 파라미터(quantization parameter), 인터 예측 모드에서 참조되는 프레임의 번호를 나타내는 참조 프레임 인덱스, 및 모션 벡터는 Exp_Golomb에 의하여 부호화된다. 그리고, 원 이미지와 예측 이미지 간의 차이를 나타내는 잔차 데이터(residual data)는 CAVLC에 의하여 부호화된다.
반면에, 상기 entropy_coding_mode 플래그가 1인 경우에는, 상기 모든 파라미터들은 CABAC로 코딩된다.
CABAC는 높은 복잡성(high complexity)을 갖는 파라미터에서 좋은 성능을 나타낸다. 따라서, CAVLC 등의 VLC(Variable Length Coding) 기반의 엔트로피 코딩은 기초적인 프로파일로서 세팅된다.
J Ridge 및 M. Karczewicz에 의하여 16번째 JVT 미팅에서 제출된 문서 "Variable length code for SVC"(JVT-P056, Poznan, 16-th JVT meeting; 이하 JVT-P056이라고 함)에는 SVC의 특성을 고려한 CAVLC 기법을 제시하고 있다. JVT-P056은, 이산 계층(discrete layer)에서는 기존의 H.264와 동일한 처리 과정을 따르지만, FGS 계층(Fine Granular Scalability layer)에서는 별도의 통계적 특성에 따른 VLC 기법을 사용한다.
현재, JSVM(Joint Scalable Video Model)에서는, FGS 인코딩을 위하여, 세 가지의 스캐닝 패스(scanning pass)를 지원하는데, 그것은 중요 패스(significant pass), 정제 패스(refinement pass), 및 잔여 패스(remainder pass)이다. 각각의 스캐닝 패스에 대하여, 그 통계적 특성에 따라 서로 다른 방법이 적용된다. 예를 들어, 정제 패스에서는 엔트로피 코딩에 있어서 "0" 값이 보다 선호된다는 사실에 근거하여 얻어지는 하나의 VLC 테이블을 이용된다.
JVT-P056에서는 FGS 계층을 위한 VLC 기법을 제시한다. 상기 기법은 이산 계층에서는 종래의 CAVLC 기법을 그대로 사용하지만, FGS 계층에서의 통계적 특성을 이용한 별도의 기법을 사용한다.
JVT-P056은 중요 패스에 대하여, 다음과 같은 기법을 제안한다. 코드 워드(codeword)는 컷-오프(cut-off) 파라미터 "m"에 의하여 특성 지워진다. 코딩될 심볼 "C"가 상기 m보다 작거나 같다면 상기 심볼은 Exp_Golomb 코드를 사용하여 인코딩된다. 상기 심볼 C가 상기 m보다 크다면, 다음의 수학식 1에 따라서 길이(length) 및 첨자(suffix) 의 두 개 부분으로 나뉘어 인코딩된다.
Figure 112005072827588-pat00002
상기 P는 인코딩된 코드 워드로서, 길이 및 첨자(00, 10, 또는 10을 가짐)로 이루어진다.
정제 패스에 대하여는 확률적으로 0이 발생할 가능성이 더욱 높으므로, JVT-P056에서는, 코딩될 각 정제 계수(refinement bit)의 그룹에 포함되는 0의 개수에 근거한 하나의 VLC 테이블을 이용하여, 서로 다른 길이를 갖는 코드 워드를 할당하는 방법을 제시한다. 상기 정제 계수의 그룹(이하, 정제 계수 그룹(refinement bit group)이라고 함)은 정제 계수들을 소정 개수 단위로 모은 것으로, 예를 들어 4개의 정제 계수를 하나의 정제 계수 그룹으로 간주할 수 있다.
현재 SVC 초안은 종래의 H.264의 단일 계층 코딩 알고리즘을 다 계층 코딩 알고리즘으로 확장한 것이므로, 각 계층의 코딩에 있어서는 다소간의 오버헤드가 존재한다.
그러나, 현재 SVC 초안에서는 종래의 H.264에서와 마찬가지로, 현재 계층의 어떤 블록에 대한 엔트로피 코딩을 수행함에 있어서, 동일 계층의 주변 블록의 특성을 참조하는 방식을 사용하고 있다. 하지만, 다 계층으로 된 비디오의 경우, 상기 현재 계층의 상기 블록과 대응되는 하위 계층의 블록의 특성을 추가적으로 이용할 수가 있다. 따라서, SVC 기반의 엔트로피 코딩시 하위 계층의 특성을 이용하는 기법을 고안할 필요가 있다.
한편, 상기 JVT-P056에서는, 정제 패스에서 정제 계수를 코딩함에 있어서 하나의 고정된 VLC 테이블을 이용하는 기법을 제시하고 있다. 하지만, 하나의 FGS 계층 내에서 서로 다른 프레임, 슬라이스, 매크로블록, 또는 변환 블록(DCT(Discrete Cosine Transform) 후 생성된 블록) 별로 서로 다른 "0"의 분포를 가지고 있음을 고려할 때, 하나의 VLC 테이블을 이용하는 것만으로는 충분하지가 않다.
도 1은 정제 패스에 있어서 단일 VLC 테이블을 사용하는 경우에 FGS 계층별로 0이 아닌 계수의 비율을 나타낸 것이다. 도 1에서 보면, FGS 계층이 증가될수록 코딩될 블록 중의 0이 아닌 수는 최대 15%까지 증가(0은 최대 15%까지 감소)되는 특성이 있다. 따라서, 0의 수가 많은 것으로 가정된 단일 VLC 테이블이 설령, 제1 FGS 계층에서는 효율적으로 사용된다고 하더라도, 그 상위 FGS 계층에서도 여전히 효율적이라고 보장하기는 어렵다. 오히려, 각 FGS 계층 별로 서로 다른 VLC 테이블을 적응적으로(adaptively) 사용하는 것이 보다 효율적이라고 할 수 있다. 따라서, 정제 패스에 있어서, 복수의 FGS 계층 별로 서로 다른 VLC 테이블을 적응적으로 사용하는 기법을 고안할 필요가 있는 것이다.
본 발명은 상기한 필요성을 고려하여 고안된 것으로, 다 계층 기반의 비디오 코덱에서 계층간의 연관성(inter-layer correlation)을 이용하여 엔트로피 코딩의 성능 향상시키는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 정제 패스(refinement pass)에 있어서, 각 FGS 별 특성에 따라서 적응적으로 VLC 테이블을 선택할 수 있게 함으로써, 엔트로피 코딩의 성능을 향상 시키는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 목적은 상기 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기한 목적을 달성하기 위하여, 다 계층 비디오를 코딩하여 생성되는 계수들 중 소정 계층의 블록에 포함되는 제1 계수를 무손실 부호화하는 엔트로피 부호화 방법에 있어서, (a) 상기 블록과 대응되는 기초 계층의 영역 내에 포함되는 제2 계수의 분포를 획득하는 단계; (b) 복수의 룩업 테이블 중에서 상기 획득된 분포에 적합한 룩업 테이블을 선택하는 단계; 및 (c) 상기 선택된 룩업 테이블에 매핑되는 값으로 상기 제1 계수를 변환하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 입력된 비트스트림 중 소정 계층의 제1 비트스트림을 무손실 복호화하여 상기 계층의 블록에 대한 제1 계수를 복원하는 엔트로피 복호화 방법에 있어서, (a) 상기 블록과 대응되는 기초 계층의 영역 내에 포함되는 제2 계수를 복원하는 단계; (b) 상기 복원된 제2 계수의 분포를 획득하는 단계; (c) 복수의 룩업 테이블 중에서 상기 획득된 분포에 적합한 룩업 테이블을 선택하는 단계; 및 (d) 상기 선택된 룩업 테이블에 기반하여 상기 제1 비트스트림을 상기 제1 계수로 변환하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 하나의 이산 계층(discrete layer)과 적어도 하나 이상의 FGS 계층(Fine Granular Scalability layer)으로 이루어지는 계수들 중 상기 FGS 계층의 제1 계수를 무손실 부호화하는 가변 길이 부호화 방법에 있어서, (a) 상기 제1 계수의 절대값을 소정의 개수 단위로 그룹화하는 단계; (b) 상기 제1 계수가 속하는 소정의 단위 영역에 포함되는 제2 계수 중 0의 비율을 산출하는 단계; (c) 상기 비율이 소정의 임계치를 넘는가 여부에 따라서 복수의 VLC(variable length coding) 테이블 중에서 하나를 선택하는 단계; 및 (d) 상기 선택된 VLC 테이블을 참조하여 상기 그룹화된 제1 개수의 절대값을 대응되는 코드 워드(codeword)로 변환하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 제1 계수를 복원하는 가변 길이 복호화 방법에 있어서, (a) 상기 제1 계수가 속하는 소정의 단위 영역에 포함되는 기 복원된 제2 계수 중 0의 비율을 산출하는 단계; (b) 상기 비율이 소정의 임계치를 넘는가 여부에 따라서 복수의 VLC(variable length coding) 테이블 중에서 하나를 선택하는 단계; 및 (c) 상기 제1 비트스트림 중 상기 선택된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 정제 계수(refinement coefficients)를 복원하는 가변 길이 복호화 방법에 있어서, (a) 상기 제1 비트스트림에 소정의 단위 영역 별로 삽입되어 있는 VLC 테이블의 토큰을 판독하는 단계; (b) 상기 토큰에 해당되는 VLC 테이블을 로딩하는 단계; 및 (c) 상기 제1 비트스트림 중 상기 로딩된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 입력된 비트스트림 중 소정 계층의 제1 비트스트림을 무손실 복호화하여 상기 계층의 블록에 대한 제1 계수를 복원하는 엔트로피 복호화 장치에 있어서, 상기 블록과 대응되는 기초 계층의 영역 내에 포함되는 제2 계수를 복원하는 수단; 상기 복원된 제2 계수의 분포를 획득하는 수단; 복수의 룩업 테이블 중에서 상기 획득된 분포에 적합한 룩업 테이블을 선택하는 수단; 및 상기 선택된 룩업 테이블에 기반하여 상기 제1 비트스트림을 상기 제1 계수로 변환하는 수단을 포함한다.
상기한 목적을 달성하기 위하여, 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 제1 계수를 복원하는 가변 길이 복호화 장치에 있어서, 상기 제1 계수가 속하는 소정의 단위 영역에 포함되는 기 복원된 제2 계수 중 0의 비율을 산출하는 수단; 상기 비율이 소정의 임계치를 넘는가 여부에 따라서 복수의 VLC(variable length coding) 테이블 중에서 하나를 선택하는 수단; 및 상기 제1 비트스트림 중 상기 선택된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 수단을 포함한다.
상기한 목적을 달성하기 위하여, 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 정제 계수(refinement coefficients)를 복원하는 가변 길이 복호화 장치에 있어서, 상기 제1 비트스트림에 소정의 단위 영역 별로 삽입되어 있는 VLC 테이블의 토큰을 판독하는 수단; 상기 토큰에 해당되는 VLC 테이블을 로딩하는 수단; 및 상기 제1 비트스트림 중 상기 로딩된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 수단을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특성, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 목적인 엔트로피 코딩의 성능 향상을 위하여, 본 발명에서는 두 가지 기법을 제시하고자 한다. 이 중 하나는 계층 간의 연관성을 이용한 확장된 CAVLC 기법(이하, '확장된 CAVLC 기법'이라고 함)이고, 다른 하나는 FGS 계층별로 적응적 VLC 테이블을 사용하여 엔트로피 코딩 성능을 향상시키는 기법(이하, '계층별 적응적 VLC 기법'이라고 함)이다.
확장된 CAVLC 기법
현재, SVC 초안에서는 두 가지 계층간(inter-layer) 예측 기법이 제공되고 있다. 하나는 인트라 베이스 모드(intra-base mode)이고, 다른 하나는 잔차 예측 모드(residual prediction mode)이다. 상기 인트라 베이스 모드는 현재 계층의 블록과 대응되는 기초 계층의 이미지를 예측 신호로 하여, 상기 현재 계층의 블록과 상기 예측 신호를 차분하여 코딩 효율을 높이는 방법이다. 이하 본 발명에 있어서, "블록"이라는 용어는 DCT 변환 등의 공간적 변환에 있어서 변환 단위(예: 4×4, 8×8 등)를 의미하는 것으로 한다. 한편, 상기 잔차 예측 모드는 현재 계층에서 인터 예측을 통하여 생성되는 잔차 신호(residual signal)와, 기초 계층에서 인터 예측을 통하여 생성되는 기초 잔차 신호간의 차분을 구함으로써 추가적으로 코딩 효율을 높이는 방법이다.
이와 같이, 기초 계층으로부터 제공되는 상기 예측 신호나 상기 기초 잔차 신호는, 현재 계층의 다른 블록 또는 현재 계층의 다른 잔차 신호보다 더 효율적인 정보를 제공한다. 따라서, 룩업 테이블(look-up table)을 선택함에 있어서, 도 2에서 도시하는 바와 같이 기초 계층의 특성을 이용하는 것이 바람직할 수 있다.
다만, SVC 초안에서는 상기 인트라 베이스 모드 및 잔차 예측 모드를 사용하거나 사용하지 않는 옵션을 둘 수 있게 하고 있다. 즉, Intra_base_mode 플래그가 1인 경우에는 인트라 베이스 모드를, Res_pred_flag 플래그가 1인 경우에는 잔차 예측 모드를 사용하는 것을 나타내고, 각 플래그가 0인 경우에는 해당 모드를 사용하지 않는 것을 나타낸다. 따라서, 본 발명에서 제시하는 확장된 CAVLC 기법을 사용하기 위해서는 상기 플래그들 중에서 적어도 하나는 1인 경우이어야 할 것이다.
도 3은 확장된 CAVLC 기법에 따른 CAVLC 인코더의 구성을 도시하는 도면이다. 도 3은 기존의 H.264에서 사용되던 CAVLC 인코더와 유사하지만, 룩업 테이블을 선택함에 있어서 기초 블록의 특성만을 이용하거나, 주변 블록의 특성 및 기초 블록의 특성을 조합하여 이용하고, Num_Trail 코딩부(110)는 상기 선택된 참조 테이블을 참조하여 계수의 수(TotalCoeffs) 및 TrailingOnes를 코딩한다는 점에서 차이가 있다.
도 4는 현재 계층의 블록(C)을 CAVLC 인코딩함에 있어서, 상기 블록(C)의 주변 블록들(A, B) 및 상기 블록(D)에 대응되는 기초 계층의 블록(D; 이하 기초 블록이라고 함)를 참조하는 개념을 도시하는 도면이다. 예를 들어, 도 4에서 기초 계층은 QCIF 해상도를 갖는 이산 계층(discrete layer)이고, 현재 계층은 CIF 해상도를 갖는 이산 계층일 수 있다. 이산 계층과 FGS 계층간 또는 FGS 계층 상호간에는 연관성이 거의 없어서 상기 개념을 적용하기는 어려울 것이다.
먼저, 기초 블록의 정보만을 이용하여 룩업 테이블을 선택하는 경우를 살펴보면, 참조 테이블 선택부(160)는 기초 블록(D)에 포함되는 계수 중에서 0이 아닌 개수를 카운트한다. 그리고, 상기 카운트된 개수에 따라서 다음의 표 2를 이용하여 룩업 테이블을 선택한다.
카운트된 개수 선택되는 룩업 테이블
0, 1 테이블 1
2, 3 테이블 2
4, 5, 6, 7 테이블 3
8 또는 그 이상 테이블 4
테이블 1은 적은 값의 TotalCoeffs에 특히 짧은 코드를 할당하고 큰 값의 TotalCoeffs에 특히 긴 코드를 할당하기 위해 작은 개수의 계수 쪽으로 편향된(biased) 테이블이다. 테이블 2는 중간 정도의 개수를 가지는 계수 쪽으로 편향되고(2 내지 4 부근의 TotalCoeff 값들에는 상대적으로 짧은 코드가 할당된다), 테이블 3은 높은 개수를 가지는 계수 쪽으로 편향되고, 테이블 4는 모든 TotalCoeff와 TrailingOnes 값에 대하여 고정된 6비트 코드를 할당한다.
다음으로, 주변 블록(A, B) 및 기초 블록(D)의 정보를 조합하여 룩업 테이블을 선택하는 경우를 살펴보면, 참조 테이블 선택부(160)는 주변 블록(A, B)의 0이 아닌 계수의 카운트(nA, nB)와 기초 블록의 0이 아닌 계수의 카운트(nD)를 조합하여 룩업 테이블을 선택한다. 예를 들어, 상기 카운트(nD)는 다음의 수학식 2와 같이 구할 수 있다.
nD = round(w1×nA+w2×nB+w3×nC)
수학식 2에서, w1, w2, 및 w3은 각각의 가중치이며, 이들의 합은 1이다. 상기 가중치들은 간단히 모두 1/3로 둘 수도 있고, 기초 블록의 비중을 보다 크게 할 수도 있다. 또는, 상기 가중치들은 통상적으로 사용되는 R-D 비용 함수(Rate-Distortion cost function)을 최소로 하는 값으로 정해질 수 있다.
물론, 코딩 순서에 따라서 주변 블록이 하나만 존재하거나, 존재하지 않을 수도 있다. 수학식 2은 복수의 데이터로부터 대표값을 계산하는 일 예로서 가중 평균을 든 것이고, 이와 같은 대표값을 계산하는 방법으로는 메디안(median) 등 다른 연산을 이용할 수도 있다.
테이블 선택부(160)는 상기 수학식 2에 따라서 계산되는 nD를 상기 표 2에 적용하여 4개의 룩업 이블 중 하나를 선택할 수 있다.
다시 도 3을 참조하면, Num_Trail 코딩부(110)는 테이블 선택부(160)에 의하여 선택된 룩업 테이블을 바탕으로, 현재 블록에 포함된 0이 아닌 계수(TotalCoeff)와 Trailing Ones를 코딩한다. 상기 Trailing Ones는 상기 계수들 중 1 또는 -1을 의 미한다.
Num_Trail 코딩부(110) 이후의 Sign_Trail 코딩부(120), Level 코딩부(130), Total_zeros 코딩부(140), 및 Run 코딩부(15)에서의 동작 과정들은 종래의 H.264에서와 마찬가지이므로 개략적으로 설명한다.
Sign_Trail 코딩부(120)는 상기 Trailing Ones의 부호를 역순(스캔 순서의 역순)으로 단일 비트(0은 +를, 1은 -를 나타냄)로 코딩한다. Level 코딩부(130)는 상기 Trailing Ones를 제외한 나머지 계수들의 레벨(크기)를 코딩한다. 그리고, Total_zeros 코딩부(140)는 상기 0이 아닌 계수 중에서 마지막 계수 이전의 전체 0의 개수(TotalZeros)를 코딩한다. 마지막으로, Run 코딩부(15)는 상기 0이 아닌 계수들 사이에 존재하는 0의 개수를 코딩한다. 이로써 CAVLC 코딩된 비트스트림이 출력된다. 상기 선택된 룩업 테이블은 CAVLC 디코딩 과정에서도 동일한 프로세스를 거쳐서 선택하면 되므로, 상기 비트스트림에 그 정보를 포함할 필요는 없다.
한편, 상기 비트스트림으로부터 계수(양자화 계수)를 디코딩하는 과정도 상기 인코더(100)에서의 과정과 마찬가지의 순서로 이루어진다. 다만, 각 단계에서 수행된 코딩 기법의 역으로 디코딩되어야 할 것이다. 도 5는 도 3의 CAVLC 인코더에 대응되는 CAVLC 디코더의 구성을 도시하는 블록도이다.
테이블 선택부(260)는 테이블 선택부(160)과 마찬가지로, 기초 블록의 계수의 특성을 이용하거나, 기초 블록의 계수 및 주변 블록의 계수의 특성을 조합하여 복수의 룩업 테이블 중 하나를 선택하여 Num_Trail 디코딩부(210)에 제공한다. 비디오 인코딩 과정과 마찬가지로 비디오 디코딩 과정에서도, 기초 계층이 먼저 복원된 후 그 위의 계층(현재 계층)이 복원되므로, 테이블 선택부(260)에서 선택되는 룩업 테이블과 테이블 선택부(도 3의 160)에서 선택되는 룩업 테이블은 일치하게 된다.
Num_Trail 디코딩부(210)는 상기 제공된 룩업 테이블을 바탕으로, 입력된 비트스트림의 처음부터 상기 룩업 테이블의 항목과 일치하는 비트들로부터 TotalCoeffs 및 TrailingOnes를 복원한다. 그 다음, Sign_Trail 디코딩부(220)는 상기 비트스트림 중 그 다음 1비트씩을 읽어서, 상기 TrailingOnes의 부호를 복원한다. Level 디코딩부(230)는 상기 비트스트림에 포함된 레벨에 대한 코드를 읽어서 0이 아닌 계수 중 상기 TrailingOnes 이외의 계수의 레벨(크기)을 복원한다. Total_Zeros 디코딩부(240)는 TotalZeros에 해당하는 코드를 읽어서 상기 TotalZeros(0이 아닌 계수의 개수)를 복원한다. 마지막으로, Run 디코딩부(250)는 입력된 비트스트림 중 잔여 비트스트림을 읽어서 상기 0이 아닌 계수들 사이에 Run 개수 만큼의 0을 삽입한다. 상기 삽입되는 0의 총 개수는 상기 TotalZeros와 일치하여야 한다. 이로써, CAVLC 코딩 이전의 계수가 복원된다.
계층별 적응적 VLC 기법
JVT-P056 문서에서는 FGS 계층의 엔트로피 코딩에 있어서, CABAC 대신에 VLC를 적용하는 기법을 제시하였다. 상기 문서에서는, 이산 계층에 비하여 FGS 계층의 정제 패스에서는 0이 발생될 가능성이 더욱 크다는 특성을 고려하여, 하나의 VLC 테이블을 이용한다. 일반적으로, 복수의 FGS 계층 중 상위 계층으로 갈수록, 0의 개수는 증가하며, 동일한 FGS 계층 내에서도 프레임, 슬라이스, 매크로블록, 또는 블록 별로 상기 0의 개수의 분포가 동일한 것으로 볼 수는 없다. 따라서, 하나의 VLC 테이 블을 사용하는 것은 최적이라고 볼 수 없으며, 각 경우에 따라서 적응적으로 복수의 VLC 테이블들 중 하나의 테이블을 선택할 수 있도록 하는 기법이 요구된다.
본 발명은, 하나의 단위 영역(프레임, 슬라이스, 매크로블록, 또는 블록)에 포함되는 0의 개수를 기준으로, 서로 다른 VLC 테이블을 선택하는 것이 가능하도록 한다.
도 6은 FGS 스킴(scheme)에 따라서, 양자화 계수들이 하나의 이산 계층과 적어도 하나 이상의 FGS 계층으로 분리되어 표시되는 예를 도시하는 도면이다. 각 계층은 4×4 단위의 계수들로 이루어진 블록으로 표시되어 있다. 동일한 위치에 있는 숫자들은 하나의 양자화 계수를 표현하기 위하여 사용된다. 상기 FGS 스팀은 비트율 관점에서의 스케일러빌리티(scalability)를 지원하기 위하여 사용되며, 상기 계층들 중에서 상위 계층으로부터 잘라냄(truncation)으로써 가변 비트율을 구현할 수 있다. 물론 어떤 계층 중 일부의 숫자들만을 잘라 버릴 수도 있다.
예를 들어, 4×4 블록 중 1행의 2열에 위치하는 계수는 3, -1, 1이다. 이 위치에 대응되는 양자화 계수를 제대로 복원하기 위해서는 이들 계수 모두가 필요하지만, 상황에 따라서는 1 또는, 1 및 -1은 잘라 내어질 수 있고, 디코더 단에서는 상대적으로 중요한 하위 계층의 계수만으로 상기 양자화 계수를 복원하게 된다(물론, 손실이 발생한다).
FGS 계층들은 이산 계층과는 그 특성이 매우 상이하다. 왜냐하면, 이산 계층은 다소 러프(rough)하게나마 원 이미지를 표현하고 있음에 반하여, FGS 계층들은 차분(difference) 개념을 갖는 값들로 구성되어 있기 때문이다. 또한, 이산 계층에서는 0, 1, -1 이외의 다른 값들도 나타날 수 있는 반면에, FGS 계층에서는 그 특성상 0, 1, -1로만 표현되는 것이 일반적이다.
상술한 바와 같이, FGS 계층의 코딩시 프로세스는 중요 패스(significant pass) 및 정제 패스(refinement pass)로 나뉘어지고, 이에 따라 서로 다른 엔트로피 코딩 기법이 적용된다. 중요 패스로 코딩되는 FGS 계층상의 계수는 그 대응되는 이산 계층의 계수가 0일 때이며, 정제 패스로 코딩되는 FGS 계층상의 계수는 그 대응되는 이산 계층의 계수가 0이 아닐 때이다. 제1 FGS 계층의 경우, 정제 패스로 코딩되는 계수(즉, 정제 계수)는 음영으로 표시되어 있다. 본 발명에 따른 계층별 적응적 VLC 기법은 특히, 상기 정제 패스에 적용되기에 적합하다. 이산 계층의 계수를 VLC 코딩하는 경우에는, 도 3과 같이 Level, Run 등을 모두 고려하여 코딩하는 것이 바람직하다. 그러나 정제 계수의 경우에는 Level, TrailingOnes 등의 코딩은 불필요하므로 별도의 VLC 코딩 스킴이 요구된다.
도 7은 본 발명의 일 실시예에 따른 정제 계수 인코더(300)의 구성을 도시하는 블록도이다.
현재 정제 계수는 그룹화부(310)에 입력된다. 그룹화부(310)는 입력된 정제 계수를 소정의 개수 단위, 예를 들어 4개씩 그룹화하여 그 절대값(크기; 1 또는 0으로 이루어짐)은 크기 코딩부(330)에 제공하고, 그 부호(sign; 0을 제외한 정제 계수의 부호)는 코딩부(350) 및 크기 코딩부(330)에 제공한다.
한편, 기 코딩된 단위 영역(프레임, 슬라이스, 매크로블록, 또는 블록을 포함한다. 이하 같다)의 정제 계수를 참조하여 크기 코딩부(330)에서 사용될 VLC 테이블을 선택한다. 상기 단위 영역은 상기 현재 정제 계수가 속하는 프레임, 슬라이스, 매크 로블록, 또는 블록이 될 수 있다. 예를 들어, 프레임 단위로 테이블을 선택한다면 선택 후보가 되는 테이블 수는 감소되는 반면에, 테이블 선택의 적응성(adaptivity) 면에서는 다소 불리하다. 한편, 블록 단위로 테이블을 선택한다면 매우 높은 적응성을 가질 수 있으나, 선택 후가 테이블 수가 증가된다. 따라서, 사용 용도, 목적 등을 고려하여, 사용자가 임의로 단위 영역을 선택할 수 있도록 하는 것이 바람직하다.
일단, 현재 정제 계수가 속하는 단위 영역이 정해지면, 테이블 선택부(320)는 상기 단위 영역에 속하는 비트들 중 0의 개수를 카운트한다. 그리하여, 상기 비트들 중 0이 차지하는 비율이 소정의 임계치(제1 임계치)를 넘으면, 0에 편향된 테이블(예: 종래의 JVT-P056에서 제시한 테이블)을 선택하고, 그렇지 않으면 상대적으로 0에 덜 편향된 테이블을 선택한다. 상기 선택을 위한 VLC 테이블들은 2개 또는 그 이상을 사용할 수 있다. 만약, 2개의 VLC 테이블 중에서 선택(이 때에는 switching이라고 표현할 수 있다)을 한다면 하나의 임계치만 있으면 되고, 그로부터 VLC 테이블이 하나 증가할 때마다 제2 임계치, 제3 임계치 등이 추가적으로 필요하다. 상기 임계치들은 경험적 또는 실험적으로 결정될 수 있는 값들로서, 예를 들어, 7/8, 3/4, 2/3, 1/2 등으로 정해질 수 있다.
예를 들어, 상기 제1 임계치를 2/3으로 하여, 2개의 VLC 테이블을 사용한다고 하면, 상기 VLC 테이블들은 표 3 및 표 4와 같이 나타낼 수 있다. 상기 단위 영역의 0의 개수가 2/3을 넘는 경우에는 0쪽으로 편향된 표 3의 VLC 테이블이 사용될 수 있다. 또한, 상기 0의 개수가 2/3 이하인 경우에는 0쪽으로 덜 편향된 표 3의 VLC 테이블이 사용될 수 있다. 표 3 및 표 4에서 심볼은 4개씩 그룹화된 정제 계수열의 크기 값이고, 코드 워드는 상기 심볼이 코딩되는 결과이다.
Figure 112005072827588-pat00003
Figure 112005072827588-pat00004
표 3의 VLC 테이블은 상기 JVT-P056 문서에서 제시된 단일의 VLC 테이블과 동일하다. 그러나, 표 4에는, 0의 개수가 감소하였음을 고려하여 표 3과는 다른 VLC 테이블이 도시되어 있다. 표 4의 VLC 테이블에서는 심볼이 갖는 4개의 비트 중 2개가 1인 경우에 가장 짧은 코드 워드를 부여하고, 4개의 비트 중 1개가 1인 경우 및 4개의 비트 모두 0인 경우에는 그 다음으로 짧은 코드 워드를 부여하고 있다. 따라서, 표 4의 VLC 테이블은 정제 계수 중 다소 1이 많은 경우(특히, 높은 FGS 계층에서)에 적용되면, 생성되는 코드의 크기를 감소시킬 수 있다. 더 많은 수 임계치들 및 VLC 테이블들을 사용함으로써, 정제 계수가 갖는 특성을 보다 세분화하여 표현할 수도 있음은 물론이다.
다시 도 7로 돌아가면, 테이블 선택부(320)에서 선택된 VLC 테이블에 대한 토큰(token)은 크기 코딩부(330)에 제공된다. 상기 토큰은 각각의 VLC 테이블에 대응되는 인덱스를 의미한다. 크기 코딩부(330)는 상기 제공된 토큰에 해당되는 VLC 테이블을 테이블 저장부(340)로부터 읽어 들인다. 테이블 저장부(340)는 롬(ROM), 피롬(PROM), 이피롬(EPROM), 이이피롬(EEPROM), 플래시 메모리와 같은 비휘발성 메모리 소자 또는 램(RAM)과 같은 휘발성 메모리 소자, 하드 디스크와 같은 저장 매체, 또는 기타 해당 분야에서 알려져 있는 임의의 다른 형태로 구현될 수 있다.
크기 코딩부(330)는 상기 토큰에 해당되는 VLC 테이블을 참조하여, 그룹화부(310)로부터 제공되는 소정 개수(4개)의 정제 계수의 절대값(즉, 심볼)을 코드 워드로 변환한다.
한편, 부호 코딩부(350)는 그룹화부(310)로부터 제공되는 부호를 1비트의 부호 코드로 코딩한다. 통상, 상기 부호 코드는 양의 부호의 경우 0으로, 음의 부호의 경우 1이다.
Mux(multiplexer; 360)는 크기 코딩부(330)로부터 출력되는 코드 워드의 집합과, 부호 코딩부(350)로부터 출력되는 부호 코드의 집합을 먹싱하여 비트스트림을 생성한다.
예를 들어, 현재 코딩할 정제 계수의 집합이 {-1,0,1,1,0,0,1,-1}이라고 하자. 그룹화부(310)는 상기 정제 계수의 집합을 4개씩 그룹화하고, 그 절대값인 1011 및 0011은 크기 코딩부(330)에, 그 부호인 {-+++-}는 부호 코딩부(350)에 제공한다.
테이블 선택부(320)는 단위 영역의 정제 계수 중 0이 차지하는 비율이 소정의 임계치인 2/3을 넘게 되는 경우, 상기 표 4의 VLC 테이블에 대한 토큰을 크기 코딩부(330)에 전달한다. 크기 코딩부(330)는 테이블 저장부(340)로부터 상기 표 4와 같은 VLC 테이블을 읽어 들이고, 이를 참조하여 상기 제공된 1011 및 0001를 대응되는 코드 워드로 변환한다. 변환된 결과, 크기 코딩부(330) 출력되어 Mux(360)로 입력되는 값은 11110100이 된다. 한편, 부호 코딩부(350)는 상기 부호 {-+++-}를 10001로 변환한다. 상기 변환된 10001에 대하여 추가적으로 어떤 엔트로피 코딩 방식을 적용하는 것도 가능하다. 그러면, Mux(360)는 상기 11110100 및 상기 10001을 결합하여 출력한다.
도 8은 도 7의 정제 계수 인코더(300)에 대응되는 정제 계수 디코더(400)의 구성을 도시하는 블록도이다. 입력된 비트스트림은 Demux(demultiplexer; 410)를 통하여 코드 워드의 집합과, 부호 코드의 집합으로 분리된다. 상기 코드 워드의 집합은 크기 디코딩부(430)에 상기 부호 코드의 집합은 부호 디코딩부(450)에 각각 제공된다.
상기 인코더(300)에서와 마찬가지로, 테이블 선택부(420)은 기 복원된 단위 영역에 포함된 정제 계수 중 0이 차지하는 비율을 계산하여 그것이 상기 임계치를 넘는가의 여부에 따라서 2개의 VLC 테이블 중 하나를 선택한다. 물론, 여기서도 복수의 임계치를 설정하고, 3개 이상의 VLC 테이블을 사용하는 것도 가능하다.
크기 디코딩부(430)는 상기 선택된 VLC 테이블을 테이블 저장부(440)로부터 읽어온 후, 상기 VLC 테이블의 코드 워드와 동일한 값이 나타날 때까지, 상기 코드 워드의 집합을 구성하는 비트들을 추가적으로 읽어 들인다. 만약, 읽어 들인 소정 개수의 상기 비트들이 상기 선택된 VLC 테이블에 포함된 어떤 코드 워드와 일치하면, 상기 일치된 코드 워드를 그에 대응되는 심볼로 변환한다.
상기 변환된 심볼은 부호 디코딩부(450)에 제공된다. 부호 디코딩부(450)는 Demux(410)로부터 제공된 부호 코드를 하나씩 읽어서, 크기 디코딩부(430)로부터 제공되는 심볼(4개의 비트로 구성됨) 중 0이 아닌 값(즉, 1)에 순서대로 상기 부호 코드에 해당되는 부호를 부여한다. 이로써, 상기 비트스트림으로부터 현재 정제 계수들이 복원된다.
예를 들어, 디코더(400)로 입력되는 비트스트림이 1111010010001이라고 가정하자. Demux(410)는 상기 비트스트림에서 11110100 및 10001를 분리하여, 전자는 크기 디코딩부(430)에 제공하고, 후자는 부호 디코딩부(450)에 제공한다. 한편, 테이블 선택부(420)는 기 복원된 단위 영역의 정제 계수가 2/3에 미치지 못함을 확인하고, 표 4의 VLC 테이블의 토큰을 크기 디코딩부(430)에 전달한다.
크기 디코딩부(430)는 상기 11110100을 한 비트씩 읽어 들이면서, 표 4의 코드 워드 중 일치되는 코드 워드가 있는지를 확인한다. 11110까지는 일치되는 코드 워드가 없으므로, 그 다음 111101을 확인하게 되는데, 이 코드 워드가 상기 표 4에 존재하므로 이와 대응되는 심볼 1011을 복원한다. 마찬가지로 나머지 비트 00으로부터 0011을 복원한다. 따라서, 크기 디코딩부(430)에서 출력되어 부호 디코딩부(450)로 입력되는 값은 10110011이다.
부호 디코딩부(450)는 제공된 10001에 대응되는 부호인 -+++-를 복원한 후, 이를 상기 입력되는 10110011 중 0이 아닌 값에 부여한다. 그 결과, 최초에 인코더(300)로 입력되었던, 정제 계수의 집합인 {-1,0,1,1,0,0,1,-1}이 복원된다.
이상에서는, 정제 계수 디코더(400)에서도 상기 인코더(300)와 마찬가지의 과정을 거쳐서 복수의 후보 VLC 테이블 중 하나를 선택하는 것으로 하여 설명하였다. 그런데, FGS 계층은 디코더(400)로 전달될 때, 일부가 잘려져서(truncated) 전송되기도 하기 때문에, 현재 블록이 포함되는 단위 영역내의 주변 특성을 이용하는 경우, 인코더와 디코더 간에 일치되지 않은 VLC 테이블이 사용되는 문제가 발생할 수도 있다. 이 경우에는 디코더는 원래의 계수를 전혀 복원할 수가 없게 되는 심각한 문제가 초래된다.
따라서, 본 발명의 다른 실시예에 있어서, 정제 계수 인코더(300)에서 선택된 VLC 테이블의 토큰을 비트스트림에 포함되어 정제 계수 디코더(400)에 전달된다. 상기 VLC 테이블은 단위 영역, 즉 프레임, 슬라이스, 매크로블록, 또는 블록 단위로 선택될 수 있는데, 너무 세밀한 단위로 VLC 테이블을 선택하는 경우 전송시 오버헤드가 커질 수 있으므로, 상기 단위 영역은 슬라이스 또는 매크로블록인 것이 바람직하다. 이 경우 상기 토큰은 슬라이스 헤더 또는 매크로블록 헤더에 포함되어 전송될 수 있다.
상기 토큰이 포함된 비트스트림을 수신한 정제 계수 디코더(400)는 상기 토큰에 해당하는 VLC 테이블을 테이블 저장부(440)에서 바로 가져올 수 있으므로, 테이블 선택부(420)는 생략될 수 있다.
도 9는 도 3 또는 도 7에서와 같은 엔트로피 인코더가 적용될 수 있는 다 계층 기반의 비디오 인코더(1000)의 구성을 도시하는 블록도이다.
원래의 비디오 시퀀스는 향상 계층 인코더(600)로 입력되고, 아울러 다운샘플링부(550)에 의하여 다운샘플링(계층간에 해상도의 변화가 있는 경우에 한함)된 후 기초 계층 인코더(500)로 입력된다.
예측부(610)는 현재 매크로블록에서 소정의 방법으로 예측된 이미지를 차분함으로써 잔차 신호를 구한다. 상기 예측 방법으로는 방향적 인트라 예측, 인터 예측, 인트라 베이스 예측, 및 잔차 예측 등이 있다.
변환부(620)는 상기 구한 잔차 신호를 DCT, 웨이브렛 변환 등 공간적 변환 기법을 이용하여 변환하여 변환 계수를 생성한다.
양자화부(630)는 상기 변환 계수를 소정의 양자화 스텝으로 양자화하여(양자화 스텝이 클수록 데이터의 손실 내지 압축률이 높다) 양자화 계수를 생성한다.
향상 계층 인코더(600)에서와 마찬가지로, 기초 계층 인코더(500)도 동일한 기능의 예측부(510), 변환부(520), 및 양자화부(530)를 포함한다. 다만, 예측부(510)는 인트라 베이스 예측이나 잔차 예측은 사용할 수 없을 것이다.
엔트로피 인코더(640)는 상기 양자화 계수를 무손실 부호화하여 향상 계층 비트스트림을 출력하고, 마찬가지로 엔트로피 인코더(540)는 기초 계층 비트스트림을 출력한다. Mux(650)는 향상 계층 비트스트림과 기초 계층 비트스트림을 결합하여 비디오 디코더 단으로 전송할 비트스트림을 생성한다.
상기 엔트로피 인코더(640)는 도 3의 CAVLC 인코더(100), 또는 도 7의 정제 계수 인코더(300)를 포함할 수 있다. 엔트로피 인코더(640)가 CAVLC 인코더(100)라면, 기초 계층 인코더(500)의 양자화부(530)로부터 제공되는 기초 블록의 양자화 계수 중 0이 아닌 것의 개수를 기반으로, 룩업 테이블을 선택하고, 선택된 룩업 테이블에 따라서 Num_Trail 코딩 등의 CAVLC 인코딩 과정을 수행한다.
한편, 엔트로피 인코더(640)가 정제 계수 인코더(300)로서 동작되는 경우에는, 상기 기초 계층은 이산 계층에 해당되고, 상기 향상 계층은 FGS 계층에 해당된다. 엔트로피 인코더(640)는, 양자화 계수 중에서도 이산 계층의 계수가 0인 계수, 즉 정제 계수를 무손실 부호화한다. 이 때, 엔트로피 인코더(640)는 양자화부(630)로부터 기 엔트로피 인코딩된 단위 영역에 포함되는 정제 계수를 제공받는다.
도 10은 도 5 또는 도 8에서와 같은 엔트로피 디코더가 적용될 수 있는 다 계층 기반의 비디오 디코더(2000)의 구성을 도시하는 블록도이다.
입력되는 비트스트림은 Demux(860)를 통하여 향상 계층 비트스트림 및 기초 계층 비트스트림으로 분리되어 향상 계층 인코더(800) 및 기초 계층 디코더(700)에 각각 제공된다.
엔트로피 디코더(810)는 엔트로피 인코더(640)과 대응되는 방식으로 무손실 복호화를 수행하여 양자화 계수를 복원한다.
역양자화부(820)는 상기 복원된 양자화 계수를 양자화부(630)에서 사용된 양자화 스텝으로 역 양자화한다.
역변환부(830)는 상기 역 양자화된 결과를 역 DCT 변환, 역 웨이브렛 변환 등의 역공간적 변환 기법을 사용하여 역변환한다.
역예측부(840)는 예측부(610)에서 구한 예측 이미지를 동일한 방식으로 구하고, 상기 구한 예측 이미지를 상기 역변환된 결과와 가산함으로써 비디오 시퀀스를 복원한다.
향상 계층 디코더(800)에서와 마찬가지로, 기초 계층 디코더(700)도 동일한 기능의 엔트로피 디코더(710), 역양자화부(720), 역변환부(730), 및 역예측부(740)를 포함한다.
상기 엔트로피 디코더(810)는 도 5의 CAVLC 디코더(200), 또는 도 8의 정제 계수 디코더(400)를 포함할 수 있다. 엔트로피 디코더(810)가 CAVLC 디코더(200)라면, 기초 계층 디코더(700)의 엔트로피 디코더(710)로부터 제공되는 기초 블록의 양자화 계수 중 0이 아닌 것의 개수를 기반으로, 룩업 테이블을 선택하고, 선택된 룩업 테이블에 따라서 Num_Trail 디코딩 등의 CAVLC 디코딩 과정을 수행한다.
한편, 엔트로피 디코더(810)가 정제 계수 디코더(400)로서 동작되는 경우에는, 상기 기초 계층은 이산 계층에 해당되고, 상기 향상 계층이 FGS 계층에 해당된다. 엔트로피 디코더(810)는, 양자화 계수 중에서도 이산 계층의 계수가 0인 계수, 즉 정제 계수를 무손실 부호화한다. 이 때, 엔트로피 디코더(810)는 기 엔트로피 디코딩된 단위 영역에 포함되는 정제 계수를 이용한다.
지금까지 도 2 내지 도 6의 각 구성요소들은 메모리 상의 소정 영역에서 수행되는 태스크(task), 클래스(glass), 서브 루틴(sub-routine), 프로세스(process), 오브젝트(object), 실행 쓰레드(execution thread), 프로그램(program)과 같은 소프트웨어(software)나, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)로 구현될 수 있으며, 또한 상기 소프트웨어 및 하드웨어의 조합으로 이루어질 수도 있다. 상기 구성요소들은 컴퓨터로 판독 가능한 저장 매체에 포함되어 있을 수도 있고, 복수의 컴퓨터에 그 일부가 분산되어 분포될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특성을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.
상기한 본 발명의 구성에 따르면, 다 계층 기반의 비디오 코덱에서 엔트로피 코딩의 성능을 향상시킬 수 있다. 이로 인하여, 주어진 비트 내에서 보다 향상된 비디오 화질을 제공할 수가 있다.

Claims (37)

  1. 다 계층 비디오를 코딩하여 생성되는 양자화 계수들 중 소정 계층의 블록에 포함되는 제1 계수를 무손실 부호화하는 엔트로피 부호화 방법에 있어서,
    (a) 상기 블록과 대응되는 기초 계층의 영역 내에 포함되는 제2 계수의 분포를 획득하는 단계;
    (b) 복수의 룩업 테이블 중에서 상기 획득된 분포에 적합한 룩업 테이블을 선택하는 단계; 및
    (c) 상기 선택된 룩업 테이블에 매핑되는 값으로 상기 제1 계수를 변환하는 단계를 포함하는 상기 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 블록은
    4×4 또는 8×8 픽셀 사이즈를 갖는 상기 방법.
  4. 제1항에 있어서, 상기 분포는
    상기 제2 계수 중에서 0의 개수 또는 0이 아닌 계수의 개수에 의하여 구해지는 상기 방법.
  5. 제4항에 있어서, 상기 (b) 단계는
    상기 0의 개수가 많은 경우, 작은 크기의 계수에 대하여 상대적으로 짧은 길이의 매핑 코드가 할당된 룩업 테이블을 선택하고, 상기 0의 개수가 적은 경우, 큰 크기의 계수에 대하여 상대적으로 짧은 길이의 매핑 코드가 할당된 룩업 테이블을 선택함으로써 이루어지는 상기 방법.
  6. 제1항에 있어서, 상기 (b) 단계는
    (b1) 상기 2 계수의 0이 아닌 계수의 개수를 카운트하는 단계;
    (b2) 상기 블록과 동일한 계층의 주변 블록의 제3 계수의 0이 아닌 계수의 개수를 카운트하는 단계;
    (b3) 상기 (b1)에서 카운트된 개수와 상기 (b2)에서 카운트된 개수의 대표값을 구하는 단계; 및
    (b4) 상기 대표값에 따라서 상기 적합한 룩업 테이블을 선택하는 단계를 포함하는 상기 방법.
  7. 제6항에 있어서, 상기 주변 블록은
    상기 소정 계층의 블록의 상측 인접 블록 및 좌측 인접 블록 중 적어도 하나인 상기 방법.
  8. 제6항에 있어서, 상기 대표값은
    상기 (b1)에서 카운트된 개수와 상기 (b2)에서 카운트된 개수의 가중 평균으로 구해지는 상기 방법.
  9. 제1항에 있어서,
    상기 엔트로피 부호화 방법은 컨텍스트에 적응된 가변 길이 부호화(context-adaptive variable length coding)를 포함하는 상기 방법.
  10. 입력된 비트스트림 중 소정 계층의 제1 비트스트림을 무손실 복호화하여 상기 계층의 블록에 대한 제1 양자화 계수를 복원하는 엔트로피 복호화 방법에 있어서,
    (a) 상기 블록과 대응되는 기초 계층의 영역 내에 포함되는 제2 양자화 계수를 복원하는 단계;
    (b) 상기 복원된 제2 양자화 계수의 분포를 획득하는 단계;
    (c) 복수의 룩업 테이블 중에서 상기 획득된 분포에 적합한 룩업 테이블을 선택하는 단계; 및
    (d) 상기 선택된 룩업 테이블에 기반하여 상기 제1 비트스트림을 상기 제1 양자화 계수로 복원하는 단계를 포함하는 상기 방법.
  11. 삭제
  12. 제10항에 있어서, 상기 블록은
    4×4 또는 8×8 픽셀 사이즈를 갖는 상기 방법.
  13. 제10항에 있어서, 상기 분포는
    상기 복원된 제2 양자화 계수 중에서 0의 개수 또는 0이 아닌 계수의 개수에 의하여 구해지는 상기 방법.
  14. 제13항에 있어서, 상기 (c) 단계는
    상기 0의 개수가 많은 경우, 작은 크기의 계수에 대하여 상대적으로 짧은 길이의 매핑 코드가 할당된 룩업 테이블을 선택하고, 상기 0의 개수가 적은 경우, 큰 크기의 계수에 대하여 상대적으로 짧은 길이의 매핑 코드가 할당된 룩업 테이블을 선택함으로써 이루어지는 상기 방법.
  15. 제1항에 있어서, 상기 (b) 단계는
    (b1) 상기 복원된 2 양자화 계수의 0이 아닌 계수의 개수를 카운트 하는 단계;
    (b2) 상기 블록과 동일한 계층의 주변 블록의 제3 양자화 계수의 0이 아닌 계수의 개수를 카운트하는 단계;
    (b3) 상기 (b1)에서 카운트된 개수와 상기 (b2)에서 카운트된 개수의 대표값을 구하는 단계; 및
    (b4) 상기 대표값에 따라서 상기 적합한 룩업 테이블을 선택하는 단계를 포함하는 상기 방법.
  16. 제15항에 있어서, 상기 주변 블록은
    상기 소정 계층의 블록의 상측 인접 블록 및 좌측 인접 블록 중 적어도 하나인 상기 방법.
  17. 제15항에 있어서, 상기 대표값은
    상기 (b1)에서 카운트된 개수와 상기 (b2)에서 카운트된 개수의 가중 평균으로 구해지는 상기 방법.
  18. 제10항에 있어서,
    상기 엔트로피 복호화 방법은 컨텍스트에 적응된 가변 길이 부호화(context-adaptive variable length coding)를 포함하는 상기 방법.
  19. 하나의 이산 계층(discrete layer)과 적어도 하나 이상의 FGS 계층(Fine Granular Scalability layer)으로 이루어지는 계수들 중 상기 FGS 계층의 제1 계수를 무손실 부호화하는 가변 길이 부호화 방법에 있어서,
    (a) 상기 제1 계수의 절대값을 소정의 개수 단위로 그룹화하는 단계;
    (b) 상기 제1 계수가 속하는 소정의 단위 영역에 포함되는 제2 계수 중 0의 비율을 산출하는 단계;
    (c) 상기 비율이 소정의 임계치를 넘는가 여부에 따라서 복수의 VLC(variable length coding) 테이블 중에서 하나를 선택하는 단계; 및
    (d) 상기 선택된 VLC 테이블을 참조하여 상기 그룹화된 제1 개수의 절대값을 대응되는 코드 워드(codeword)로 변환하는 단계를 포함하는 상기 방법.
  20. 제19항에 있어서,
    상기 제1 계수와 대응되는 상기 이산 계층의 계수는 0이 아닌 상기 방법.
  21. 제20항에 있어서, 상기 제1 계수는
    -1, 0, 또는 1 중의 하나의 값을 갖는 상기 방법.
  22. 제19항에 있어서,
    상기 제1 계수 중 0이 아닌 계수의 부호(sign)를 코딩하는 단계를 더 포함하는 상기 방법.
  23. 제19항에 있어서,
    상기 복수의 VLC 테이블의 수는 상기 임계치의 개수에 비해 1만큼 큰 상기 방법.
  24. 제19항에 있어서,
    상기 변환된 코드 워드로 이루어지는 비트스트림에 상기 선택된 VLC 테이블의 토큰 값을 삽입하는 단계를 더 포함하는 상기 방법.
  25. 제19항에 있어서, 상기 단위 영역은
    프레임, 슬라이스(slice), 매크로블록, 및 블록 중 하나인 상기 방법.
  26. 제19항에 있어서,
    상기 개수 단위는 4인 상기 방법.
  27. 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 제1 계수를 복원하는 가변 길이 복호화 방법에 있어서,
    (a) 상기 제1 계수가 속하는 소정의 단위 영역에 포함되는 기 복원된 제2 계수 중 0의 비율을 산출하는 단계;
    (b) 상기 비율이 소정의 임계치를 넘는가 여부에 따라서 복수의 VLC(variable length coding) 테이블 중에서 하나를 선택하는 단계; 및
    (c) 상기 제1 비트스트림 중 상기 선택된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 단계를 포함하는 상기 방법.
  28. 제27항에 있어서, 상기 (c) 단계는
    (c1) 상기 코드 워드에 대응되는 상기 제1 계수의 절대값을 복원하는 단계; 및
    (c2) 상기 제1 비트스트림 중 부호 코드로부터 상기 제1 계수의 부호를 복원하는 단계를 포함하는 상기 방법.
  29. 제27항에 있어서,
    상기 제1 계수는 정제 패스(refinement pass)에 포함되는 상기 방법.
  30. 제29항에 있어서, 상기 제1 계수는
    -1, 0, 또는 1 중의 하나의 값을 갖는 상기 방법.
  31. 제27항에 있어서,
    상기 복수의 VLC 테이블의 수는 상기 임계치의 개수에 비해 1만큼 큰 상기 방법.
  32. 제27항에 있어서, 상기 단위 영역은
    프레임, 슬라이스(slice), 매크로블록, 및 블록 중 하나인 상기 방법.
  33. 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 정제 계수(refinement coefficients)를 복원하는 가변 길이 복호화 방법에 있어서,
    (a) 상기 제1 비트스트림에 소정의 단위 영역 별로 삽입되어 있는 VLC 테이블의 토큰을 판독하는 단계;
    (b) 상기 토큰에 해당되는 VLC 테이블을 로딩하는 단계; 및
    (c) 상기 제1 비트스트림 중 상기 로딩된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 단계를 포함하는 상기 방법.
  34. 제33항에 있어서, 상기 단위 영역은
    프레임, 슬라이스(slice), 매크로블록, 및 블록 중 하나인 상기 방법.
  35. 입력된 비트스트림 중 소정 계층의 제1 비트스트림을 무손실 복호화하여 상기 계층의 블록에 대한 제1 양자화 계수를 복원하는 엔트로피 복호화 장치에 있어서,
    상기 블록과 대응되는 기초 계층의 영역 내에 포함되는 제2 양자화 계수를 복원하는 수단;
    상기 복원된 제2 계수의 분포를 획득하는 수단;
    복수의 룩업 테이블 중에서 상기 획득된 분포에 적합한 룩업 테이블을 선택하는 수단; 및
    상기 선택된 룩업 테이블에 기반하여 상기 제1 비트스트림을 상기 제1 양자화 계수로 복원하는 수단을 포함하는 상기 장치.
  36. 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 제1 계수를 복원하는 가변 길이 복호화 장치에 있어서,
    상기 제1 계수가 속하는 소정의 단위 영역에 포함되는 기 복원된 제2 계수 중 0의 비율을 산출하는 수단;
    상기 비율이 소정의 임계치를 넘는가 여부에 따라서 복수의 VLC(variable length coding) 테이블 중에서 하나를 선택하는 수단; 및
    상기 제1 비트스트림 중 상기 선택된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 수단을 포함하는 상기 장치.
  37. 입력된 비트스트림 중 FGS 계층의 제1 비트스트림을 무손실 복호화하여 상기 FGS 계층에 대한 정제 계수(refinement coefficients)를 복원하는 가변 길이 복호화 장치에 있어서,
    상기 제1 비트스트림에 소정의 단위 영역 별로 삽입되어 있는 VLC 테이블의 토큰을 판독하는 수단;
    상기 토큰에 해당되는 VLC 테이블을 로딩하는 수단; 및
    상기 제1 비트스트림 중 상기 로딩된 VLC 테이블 상의 소정 코드 워드에 대응되는 상기 제1 계수를 복원하는 수단을 포함하는 상기 장치.
KR1020050122564A 2005-09-06 2005-12-13 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치 KR100736086B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US11/509,579 US8514943B2 (en) 2005-09-06 2006-08-25 Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method
CN2006800325755A CN101258755B (zh) 2005-09-06 2006-09-04 增强熵编码、视频编码方法及其装置的性能的方法和装置
EP06798638A EP1922881A4 (en) 2005-09-06 2006-09-04 METHOD AND DEVICE FOR INCREASING THE PERFORMANCE OF ENTROPY CODING AND VIDEO CODING METHOD AND DEVICE FOR APPLYING THIS METHOD
PCT/KR2006/003492 WO2007029945A1 (en) 2005-09-06 2006-09-04 Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method
JP2008528956A JP4834732B2 (ja) 2005-09-06 2006-09-04 エントロピコーディングの性能向上方法および装置、前記方法を利用したビデオコーディング方法および装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US71374605P 2005-09-06 2005-09-06
US60/713,746 2005-09-06

Publications (2)

Publication Number Publication Date
KR20070027422A KR20070027422A (ko) 2007-03-09
KR100736086B1 true KR100736086B1 (ko) 2007-07-06

Family

ID=38100702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050122564A KR100736086B1 (ko) 2005-09-06 2005-12-13 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치

Country Status (4)

Country Link
US (1) US8514943B2 (ko)
JP (1) JP4834732B2 (ko)
KR (1) KR100736086B1 (ko)
CN (1) CN101258755B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
KR100809301B1 (ko) * 2006-07-20 2008-03-04 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
US8170094B2 (en) * 2006-11-30 2012-05-01 Motorola Mobility, Inc. Method and system for scalable bitstream extraction
US8150172B2 (en) 2007-05-04 2012-04-03 Qualcomm Incorporated Video coding mode selection using estimated coding costs
CN100566427C (zh) * 2007-07-31 2009-12-02 北京大学 用于视频编码的帧内预测编码最佳模式的选取方法及装置
BRPI0818077A2 (pt) * 2007-10-15 2015-03-31 Qualcomm Inc Codificação de camada de aperfeiçoamento melhorada para codificação de vídeo escalonável
US8848787B2 (en) 2007-10-15 2014-09-30 Qualcomm Incorporated Enhancement layer coding for scalable video coding
KR100937590B1 (ko) * 2007-10-23 2010-01-20 한국전자통신연구원 다중 품질 서비스 영상 콘텐츠 제공 시스템 및 그것의업그레이드 방법
KR20110068792A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
BR122014030027A2 (pt) * 2010-04-23 2019-08-20 Soo-Mi Oh Equipamento para a codificação de uma imagem em movimento
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
FR2963190B1 (fr) * 2010-07-23 2013-04-26 Canon Kk Procede et dispositif de codage d'une sequence d'images
US20130188740A1 (en) * 2010-09-13 2013-07-25 Industry-Academic Coooperation Foundation Hanbat National University Method and apparatus for entropy encoding/decoding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
CA2937885C (en) * 2011-07-01 2018-01-30 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding using hierarchical data unit, and method and apparatus for decoding
CN103024370B (zh) * 2011-09-23 2018-03-23 中兴通讯股份有限公司 一种运动矢量二次压缩编解码方法及装置
CN111683255B (zh) * 2012-01-20 2022-08-02 索尼公司 有效度图编码的复杂度降低
JP6788346B2 (ja) 2012-10-01 2020-11-25 ジーイー ビデオ コンプレッション エルエルシー ベース層からの予測のための副ブロックの副分割の派生を使用するスケーラブルビデオ符号化
US9247256B2 (en) 2012-12-19 2016-01-26 Intel Corporation Prediction method using skip check module
GB2539488B8 (en) * 2015-06-18 2020-08-19 Gurulogic Microsystems Oy Encoder, decoder and method employing palette utilization and compression
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
JP7195349B2 (ja) 2018-07-02 2022-12-23 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオコーディングにおけるフィルタリングのための装置および方法
EP3844959A2 (en) 2018-09-16 2021-07-07 Huawei Technologies Co., Ltd. Apparatus and method for filtering in video coding with look-up table selected based on bitstream information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990016251A (ko) * 1997-08-13 1999-03-05 김영환 이진 모양정보의 신축형 모양정보 부호화시 부가정보 부호화 방 법
US20040028131A1 (en) 2002-08-06 2004-02-12 Koninklijke Philips Electronics N.V. System and method for rate-distortion optimized data partitioning for video coding using backward adapatation
KR20050098979A (ko) * 1996-09-09 2005-10-12 소니 가부시끼 가이샤 화상 처리 장치 및 화상 처리 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351563B1 (en) * 1997-07-09 2002-02-26 Hyundai Electronics Ind. Co., Ltd. Apparatus and method for coding/decoding scalable shape binary image using mode of lower and current layers
JP3838393B2 (ja) * 1997-09-02 2006-10-25 株式会社半導体エネルギー研究所 イメージセンサを内蔵した表示装置
JP4271268B2 (ja) * 1997-09-20 2009-06-03 株式会社半導体エネルギー研究所 イメージセンサおよびイメージセンサ一体型アクティブマトリクス型表示装置
JP4044187B2 (ja) * 1997-10-20 2008-02-06 株式会社半導体エネルギー研究所 アクティブマトリクス型表示装置およびその作製方法
JPH11326954A (ja) * 1998-05-15 1999-11-26 Semiconductor Energy Lab Co Ltd 半導体装置
JP2001094982A (ja) 1999-09-20 2001-04-06 Nippon Telegr & Teleph Corp <Ntt> 階層的画像符号化方法及びその装置と、その方法の実現に用いられるプログラム記録媒体と、階層的画像復号方法及びその装置と、その方法の実現に用いられるプログラム記録媒体
US6724012B2 (en) * 2000-12-14 2004-04-20 Semiconductor Energy Laboratory Co., Ltd. Display matrix with pixels having sensor and light emitting portions
US6959116B2 (en) * 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
US6944222B2 (en) * 2002-03-04 2005-09-13 Koninklijke Philips Electronics N.V. Efficiency FGST framework employing higher quality reference frames
US7062096B2 (en) * 2002-07-29 2006-06-13 Matsushita Electric Industrial Co., Ltd. Apparatus and method for performing bitplane coding with reordering in a fine granularity scalability coding system
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7395210B2 (en) * 2002-11-21 2008-07-01 Microsoft Corporation Progressive to lossless embedded audio coder (PLEAC) with multiple factorization reversible transform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050098979A (ko) * 1996-09-09 2005-10-12 소니 가부시끼 가이샤 화상 처리 장치 및 화상 처리 방법
KR19990016251A (ko) * 1997-08-13 1999-03-05 김영환 이진 모양정보의 신축형 모양정보 부호화시 부가정보 부호화 방 법
US20040028131A1 (en) 2002-08-06 2004-02-12 Koninklijke Philips Electronics N.V. System and method for rate-distortion optimized data partitioning for video coding using backward adapatation

Also Published As

Publication number Publication date
JP2009506708A (ja) 2009-02-12
KR20070027422A (ko) 2007-03-09
JP4834732B2 (ja) 2011-12-14
US8514943B2 (en) 2013-08-20
CN101258755A (zh) 2008-09-03
CN101258755B (zh) 2011-05-18
US20070053426A1 (en) 2007-03-08

Similar Documents

Publication Publication Date Title
KR100736086B1 (ko) 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치
KR100809298B1 (ko) 플래그 인코딩 방법, 플래그 디코딩 방법, 및 상기 방법을이용한 장치
KR100809301B1 (ko) 엔트로피 부호화/복호화 방법 및 장치
KR100763196B1 (ko) 어떤 계층의 플래그를 계층간의 연관성을 이용하여부호화하는 방법, 상기 부호화된 플래그를 복호화하는방법, 및 장치
KR100736104B1 (ko) 독립적 파싱을 지원하는 비디오 코딩 방법 및 장치
KR100714706B1 (ko) 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치
US7348903B2 (en) Method and apparatus for enhancing performance of entropy coding, and video coding method and apparatus using the entropy coding performance enhancing method
KR101041973B1 (ko) 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
KR100736096B1 (ko) 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치
KR20070077059A (ko) 엔트로피 부호화/복호화 방법 및 장치
JP2009506710A (ja) エントロピコーディングの性能向上方法および装置、前記方法を利用したビデオコーディング方法および装置
KR100772870B1 (ko) Fgs 계층의 블록에 포함되는 계수의 특성에 따라 비디오신호를 부호화하고 복호화하는 방법 및 장치
KR100834757B1 (ko) 엔트로피 부호화 효율을 향상시키는 방법 및 그 방법을이용한 비디오 인코더 및 비디오 디코더
JP2022536512A (ja) 符号化器及び一連のフレームを符号化する方法
KR20100004038A (ko) 비트 위치에 기초한 영상 분리를 이용한 영상 부호화, 복호화 방법 및 장치
EP1922881A1 (en) Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method
KR100763192B1 (ko) Fgs 계층의 비디오 데이터를 엔트로피 부호화 및복호화하는 방법 및 장치

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130530

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150528

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee