KR100791295B1 - 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치 - Google Patents

플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치 Download PDF

Info

Publication number
KR100791295B1
KR100791295B1 KR1020060035461A KR20060035461A KR100791295B1 KR 100791295 B1 KR100791295 B1 KR 100791295B1 KR 1020060035461 A KR1020060035461 A KR 1020060035461A KR 20060035461 A KR20060035461 A KR 20060035461A KR 100791295 B1 KR100791295 B1 KR 100791295B1
Authority
KR
South Korea
Prior art keywords
flag
bit
group size
bit string
pattern
Prior art date
Application number
KR1020060035461A
Other languages
English (en)
Other versions
KR20070075227A (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/599,484 priority Critical patent/US7840083B2/en
Priority to JP2008550212A priority patent/JP2009523349A/ja
Priority to EP06843835A priority patent/EP1972140A1/en
Priority to PCT/KR2006/004826 priority patent/WO2007081085A1/en
Publication of KR20070075227A publication Critical patent/KR20070075227A/ko
Application granted granted Critical
Publication of KR100791295B1 publication Critical patent/KR100791295B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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

Abstract

매크로블록에 포함되는 각종 플래그들 간의 공간적 관련성을 이용하여 효율적으로 코딩하는 플래그 코딩 방법 및 장치가 제공된다.
복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 방법은, 소정 블록의 공간적 관련성에 따라 상기 블록 별로 할당되는 플래그 값을 모아서 플래그 비트열을 생성하는 단계와, 상기 비트열을 소정의 그룹 크기로 분할하는 단계와, 상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 단계와, 상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 단계를 포함한다.
비디오 코딩, 플래그, H.264, SVC, 매크로블록, 슬라이스

Description

플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을 이용한 장치{Flag encoding method, flag decoding method, and apparatus thereof}
도 1은 하나의 프레임을 구성하는 매크로블록들을 보여주는 도면.
도 2는 각각의 매크로블록 헤더에 포함된 특정 플래그들 간의 공간적 연관성을 나타내는 도면.
도 3은 동일한 플래그들의 값들을 모아서 엔트로피 부호화하는 개념을 보여주는 도면.
도 4는 본 발명의 일 실시예에 따른 플래그 부호화 장치의 구성을 도시하는 블록도.
도 5는 본 발명의 일 실시예에 따른 플래그 복호화 장치의 구성을 도시하는 블록도.
도 6은 본 발명의 일 실시예에 따른 플래그 부호화 방법을 나타내는 흐름도.
도 7은 SVC에서 사용되는 다양한 예측 기법의 개념을 보여주는 도면.
도 8은 본 발명의 다른 실시예에 따른 플래그 부호화 장치의 구성을 도시하는 블록도.
도 9는 본 발명의 다른 실시예에 따른 플래그 부호화 방법을 나타내는 흐름도.
도 10은 본 발명의 일 실시예에 따른 플래그 복호화 방법을 나타내는 흐름도.
도 11은 본 발명의 다른 실시예에 따른 플래그 복호화 장치의 구성을 도시하는 블록도.
도 12는 본 발명의 다른 실시예에 따른 플래그 복호화 방법을 나타내는 흐름도.
도 13은 도 4 또는 도 8의 플래그 부호화 장치가 적용될 수 있는 비디오 인코더의 구성을 도시하는 블록도
도 14는 도 5 또는 도 11의 플래그 복호화 장치가 적용될 수 있는 비디오 디코더의 구성을 도시하는 블록도.
(도면의 주요부분에 대한 부호 설명)
100, 190 : 플래그 부호화 장치 101 : 플래그 판독부
105, 260 : 연산부 110 : 플래그 조합부
120, 210 : 그룹 크기 설정부 130 : 비트열 분할부
140 : 패턴 비트 설정부 150 : 플래그 코딩부
160 : 기록부 170 : 버퍼
200, 290 : 플래그 복호화 장치 220 : 패턴 비트 판독부
230 : 플래그 디코딩부 240 : 출력 버퍼
250 : 플래그 설정부 300 : 하위 계층 인코더
305 : 다운샘플링부 310, 410 : 예측부
320, 420 : 변환부 330, 430 : 양자화부
340, 440 : 엔트로피 부호화부 350, 450 : 플래그 설정부
360 : Mux 400 : 현재 계층 인코더
500 : 비디오 인코더 600: 하위 계층 디코더
610, 710 : 엔트로피 복호화부 620, 720 : 역양자화부
630, 730 : 역변환부 640, 740 : 역예측부
650 : Demux 700 : 현재 계층 디코더
800 : 비디오 디코더
본 발명은 비디오 압축 기술에 관한 것으로, 보다 상세하게는 매크로블록에 포함되는 각종 플래그들 간의 공간적 관련성을 이용하여 효율적으로 코딩하는 플래그 코딩 방법 및 장치에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 특성을 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서 는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy) 요소를 제거하는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것을 고려한 심리시각 중복을 제거함으로써 데이터를 압축할 수 있다. 일반적인 비디오 코딩 방법에 있어서, 시간적 중복은 모션 보상에 근거한 시간적 필터링(temporal filtering)에 의해 제거하고, 공간적 중복은 공간적 변환(spatial transform)에 의해 제거한다.
데이터의 중복을 제거한 결과는 다시 양자화 과정을 통하여 소정의 양자화 스텝에 따라서 손실 부호화된다. 상기 양자화된 결과는 최종적으로 엔트로피 부호화(entropy coding)를 통하여 최종적으로 무손실 부호화된다.
현재 H.264 표준에서 사용되는 엔트로피 부호화 기술로는, CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding), Exp_Golomb(exponential Golomb) 등이 있다. 다음의 표 1은 H.264 표준에서 코딩될 파라미터별로 사용되는 엔트로피 부호화 기법을 나타낸다.
Figure 112006027283181-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) 기반의 엔트로피 코딩은 기초적인 프로파일로서 설정된다.
한편, H.264나 다계층(multi-layer) 기반의 스케일러블 비디오 코딩(H.264SE(scalable edition)라고 함)에 있어서는, 계층간 정보의 이용 여부와 관련된 다양한 플래그(flag) 들이 존재하는데, 이들 플래그는 슬라이스(slice) 별, 매크로블록(macroblock) 별, 또는 서브블록(sub-block) 별로 설정된다. 따라서, 비디오 코딩에 있어서 상기 플래그에 의하여 증가되는 오버헤드(overhead)도 무시할 수 없는 실정에 있다.
그런데, 현재로서는 상기 텍스쳐 데이터나 모션 데이터와는 달리 상기 플래그들에 대하여는, 공간적인 연관성(correlation)을 고려하지 않은 채로 부호화되거나 아예 부호화되지 않는 실정에 있다.
본 발명은 상기한 필요성을 고려하여 고안된 것으로, 비디오 코덱에서 사용되는 다양한 플래그들을 공간적인 연관성을 고려하여 효율적으로 부호화하는 방법 및 장치를 제공하는 것을 기술적 과제로 한다.
본 발명의 목적은 상기 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기한 기술적 과제를 달성하기 위하여, 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 방법으로서, (a) 소정 블록의 공간적 관련성에 따라 상기 블록 별로 할당되는 플래그 값을 모아서 플래그 비트열을 생성하는 단계; (b) 상기 비트열을 소정의 그룹 크기로 분할하는 단계; (c) 상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 단계; 및 (d) 상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 단계를 포함한다.
상기한 기술적 과제를 달성하기 위하여, 복수의 계층으로 이루어지는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 방법으로서, (a) 현재 계층의 블록에 대한 제1 플래그 값과, 상기 블록과 대응되는 하위 계층의 블록에 대한 제2 플래그 값에 대하여 배타적 논리합 연산을 수행하는 단계; (b) 상기 현재 계층의 블록의 공간적 관련성에 따라 상기 연산 결과 값을 모아서 플래그 비트열을 생성하는 단계; (c) 상기 비트열을 소정의 그룹 크기로 분할하는 단계; (d) 상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 단계; 및 (e) 상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 단계를 포함한다.
상기한 기술적 과제를 달성하기 위하여, 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 복호화하는 방법으로서, (a) 비디오 스트림으로부터 소정의 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 판독하는 단계; (b) 상기 패턴 비트가 제1 비트를 가지는 경우, 그룹 크기에 해당하는 플래그 비트열을 0으로 설정하는 단계; (c) 상기 패턴 비트가 제2 비트를 가지는 경우, 상기 비디오 스트림으로부터 상기 그룹 크기에 만큼의 블록들에 대한 부호화된 플래그 비트열을 판독하는 단계; 및 (d) 상기 판독된 플래그 비트열을 엔트로피 복호화하는 단계를 포함한다.
상기한 기술적 과제를 달성하기 위하여, 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 장치로서, 소정 블록의 공간적 관련성에 따라 상기 블록 별로 할당되는 플래그 값을 모아서 플래그 비트열을 생성하는 수단; 상기 비트열을 소정의 그룹 크기로 분할하는 수단; 상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 수단; 및 상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 수단을 포함한다.
상기한 기술적 과제를 달성하기 위하여, 복수의 계층으로 이루어지는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 장치로서, 현재 계층의 블록에 대한 제1 플래그 값과, 상기 블록과 대응되는 하위 계층의 블록에 대한 제2 플래그 값에 대하여 배타적 논리합 연산을 수행하는 수단; 상기 현재 계층의 블록의 공간적 관련성에 따라 상기 연산 결과 값을 모아서 플래그 비트열을 생성하는 수단; 상기 비트열을 소정의 그룹 크기로 분할하는 수단; 상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 수단; 및 상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 수단을 포함한다.
상기한 기술적 과제를 달성하기 위하여, 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 복호화하는 장치로서, 비디오 스트림으로부터 소정의 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 판독하는 수단; 상기 패턴 비트가 제1 비트 값을 가지는 경우, 그룹 크기에 해당하는 플래그 비트열을 0으로 설정하는 수단; 상기 패턴 비트가 제2 비트 값을 가지는 경우, 상기 비디오 스트림으로부터 상기 그룹 크기에 만큼의 블록들에 대한 부호화된 플래 그 비트열을 판독하는 수단; 및 상기 판독된 플래그 비트열을 엔트로피 복호화하는 수단을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특성, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
스케일러블 비디오 코딩은 종래의 MPEG-4나 H.264에 비하여 신택스의 양이 상당히 증가하였는데, 각각의 신택스 자체는 1비트 또는 몇 비트 수준이지만 전체 비디오 스트림을 기준으로 한다면 신택스로 인한 오버헤드도 무시하기 어렵다. 본 발명은 비디오 코딩에 있어서 소정 블록(슬라이스, 매크로블록 또는 서브 블록)별로 존재하는 동일한 플래그들(신택스들)을 모아서 한꺼번에 부호화함으로써, 상기 플래그로 인한 오버헤드를 감소시키는 것에 주안점을 두고 있다.
도 1 내지 도 3은 본 발명의 기본 개념을 설명하기 위한 도면이다.
비디오 코딩에서는 일반적으로 16×16 픽셀 크기의 매크로블록 단위로 프로세스가 진행된다. 도 1에서와 같이, 하나의 프레임 또는 슬라이스는 복수의 매크로 블록(MBn; n은 자연수)으로 분할된다. 각각의 매크로블록은 소정의 손실 부호화 및 무손실 부호화 과정을 거쳐서 비디오 스트림으로 되는데, 예를 들어 매크로블록들의 부호화 순서는 도 1에 도시하는 바와 같이 지그재그 스캔 순서로 될 수 있다.
이와 같이 부호화된 매크로블록들(MBn)은 선두에 헤더(매크로블록 헤더)가 부가된 후 모아짐으로써 도 2와 같은 하나의 비디오 스트림(20)을 구성할 수 있다. 상기 헤더들은 다양한 플래그들(A_flagn, B_flagn 등)을 포함한다. 그런데, 각 헤더들은 동일한 플래그를 포함하지만, 상기 플래그가 갖는 값은 서로 다를 수 있다. 그러나, 공간적으로 인접한 위치의 매크로블록들 간에는 서로 공간적 연관성 내지 유사성을 가진다. 따라서, 인접한 매크로블록 간에 동일한 플래그는 동일한 값을 가질 가능성이 크다. 예를 들어, 해당 매크로블록이 부호화되었는지 여부를 나타내는 cbp(coded block pattern) 플래그는 공간적 연관성이 크다. 이러한 cbp 플래그는, H.264 표준 및 SVC 표준에서, 인터 매크로블록의 경우 g_aucCbpInter라는 파라미터로, 인트라 매크로블록의 경우 g_aucCbpIntra라는 파라미터로 정의되어 있다.
이러한 점에 착안하여, 본 발명에서는 동일한 플래그들의 값들(비트열)을 모은 후에 부호화하는 것을 제안한다. 예를 들어, 도 3에서 나타내는 바와 같이, A_flag라는 플래그들이 갖는 값들(A_flag1, A_flag2,..., A_flagn)을 모은 후 부호화하고, B_flag라는 플래그들이 갖는 값들(B_flag1, B_flag2,..., B_flagn)을 모은 후 엔트로피 부호화(무손실 부호화)하자는 것이다. 이와 같이, 동일한 플래그의 값 들을 모은 후 부호화를 하게 되면, 상기 값들의 유사성으로 인하여 플래그 값들을 별도로 부호화하는 데 비하여 압축 효율이 높아진다는 것은 쉽게 예측될 수 있다.
이하에서는, 이와 같이 모아진 플래그 값들(이하 "플래그 비트열"이라고 함)을 구체적으로 어떤 알고리즘에 의하여 엔트로피 부호화할 것인가에 대하여 설명하기로 한다. 도 4는 본 발명의 일 실시예에 따른 플래그 부호화 장치(100)의 구성을 도시하는 블록도이다.
플래그 부호화 장치(100)는 그룹 크기 설정부(120), 플래그 조합부(110), 비트열 분할부(130), 패턴 비트 설정부(140), 플래그 코딩부(150), 및 기록부(160)를 포함하며, 버퍼(170)를 더 포함할 수 있다.
플래그 조합부(120)는 각각의 매크로블록에 대한 특정 플래그의 값들을 모아서 도 3에서 도시한 예와 같이, 플래그 비트열을 생성한다. 상기 플래그는 일반적으로 1비트로 표현되는 플래그를 의미하지만, 2비트 이상으로 표현되는 플래그라도 무방하다.
그룹 크기 설정부(110)는 플래그 비트열을 분할하기 위한 단위가 되는 그룹 크기(group size; gs)를 설정한다. 상기 그룹 크기는 비트수로 표시되는데 예를 들어, 4, 8, 또는 16이 될 수 있다. 상기 특정 플래그 값의 분포 중 0의 개수가 많을수록 상기 그룹 크기는 크게 설정되는 것이 바람직하다. 상기 그룹 크기는 임의의 개수의 매크로블록 단위로 설정할 수 있는데, 복수의 매크로블록으로 이루어지는 슬라이스 또는 프레임마다 설정할 수도 있다. 이 경우, 슬라이스 헤더나 프레임 헤더에 상기 gs 값을 기록하면 될 것이다.
비트열 분할부(130)는 그룹 크기 설정부(110)에서 설정된 그룹 크기(gs 값)에 따라서 플래그 조합부(110)로부터 입력되는 플래그 비트열을 분할한다. 상기 그룹 크기 단위로 분할된 비트열은 패턴 비트 설정부(140)로 입력된다.
패턴 비트 설정부(140)는 상기 분할된 비트열이 모두 0인 경우에는 엔트로피 부호화를 거치도록 소정의 비트(이하, 패턴 비트(pb)라고 함)를 1로 설정하고, 그렇지 않은 경우에는 엔트로피 부호화를 거치지 않도록 상기 패턴 비트를 0으로 설정한다.
플래그 코딩부(150)는 상기 패턴 비트가 0으로 설정된 경우, 즉 상기 분할된 비트열 중 0이 아닌 값이 존재하는 경우에는, 상기 분할된 비트열을 엔트로피 부호화(무손실 부호화)한다. 상기 엔트로피 부호화로는 가변 길이 부호화, 산술 부호화 등 당업계에 알려진 기법을 사용할 수 있다. 또한, 상기 분할된 비트열을 각각 엔트로피 부호화하는 것도 가능하지만, 0이 아닌 값을 포함하는 분할된 비트열들 전체를 다시 모아서 한꺼번에 엔트로피 부호화를 할 수도 있다.
상기 패턴 비트가 0일 때의 의미와 1일 때의 의미는 서로 반대로 선택될 수 있음은 물론이다. 따라서 이하 본 명세서에서는, 1비트가 나타낼 수 있는 두 개의 값 중 하나를 제1 비트, 다른 하나를 제2 비트로 표현될 수도 있다.
기록부(160)는 그룹 크기(gs)와 패턴 비트(pb)를 비디오 스트림에 기록한다. 상기 그룹 크기(gs)는 슬라이스 또는 프레임 단위로 기록될 수 있으며, 상기 패턴 비트(pb)는 상기 그룹 크기(gs) 만큼의 매크로블록 마다 기록될 수 있다. 예를 들어, 그룹 크기가 4인 경우에는 4개의 매크로블록 중 첫번째 매크로블록의 헤더에 상기 패턴 비트를 기록할 수 있다. 또한, 기록부(160)는 상기 pb가 0인 경우에는 플래그 코딩부(150)로부터 제공되는 엔트로피 코딩 결과도 아울러 기록한다. 상기 엔트로피 부호화 결과는 상기 pb와 마찬가지로 상기 첫번째 매크로블록의 헤더에 기록될 수 있다. 만약, 플래그 코딩부(150)에서 분할된 비트열들 전체를 모아서 한꺼번에 엔트로피 부호화한 경우라면 엔트로피 부호화 결과는 슬라이스 헤더 또는 프레임 헤더에 기록될 수도 있다.
한편, 이상에서는 설정된 그룹 크기(gs)를 기록하여 전송하는 예를 설명하였지만, 상기 그룹 크기(gs)를 부호화 장치 및 복호화 장치에서 공통되는 정보를 이용하여 산출할 수 있다면 상기 그룹 크기(gs)를 전송할 필요는 없을 것이다.
플래그 부호화 장치(100)의 다른 실시예로서, 그룹 크기 설정부(120)가 기 생성된 매크로블록들에 관한 플래그 비트열의 분포를 확인하여, 그룹 크기를 가변적으로 변경할 수 있도록 할 수 있다. 예를 들어, 그룹 크기 설정부(120)는 기 누적된 플래그 비트열 중 최근 소정 개수의 비트들을 선택하여, 이 중에서 0이 차지하는 비율과 임계치와의 관계에 따라서 그룹 크기를 설정할 수 있다.
보다 자세한 예로서, 그룹 크기 설정부(120)는 상기 선택된 비트들 중에서의 0의 비율이 1/3보다 작으면 상기 그룹 크기를 1로 설정하고, 상기 0의 비율이 4/5보다 크면 상기 그룹 크기를 8로 설정한다. 그 이외의 경우에는 상기 그룹 크기를 4로 설정한다.
이와 같이 기 누적된 비트들은 플래그 부호화 장치 뿐만 아니라 이에 대응되는 플래그 복호화 장치에서도 공통적으로 알 수 있는 정보이므로, 기록부(160)는 상기 설정된 그룹 크기를 비디오 스트림에 기록할 필요는 없다.
도 5는 본 발명의 일 실시예에 따른 플래그 복호화 장치(200)의 구성을 도시하는 블록도이다.
플래그 복호화 장치(200)는 그룹 크기 설정부(210), 패턴 비트 판독부(220), 플래그 디코딩부(230), 출력 버퍼(240), 및 플래그 설정부(250)를 포함하여 구성될 수 있다.
그룹 크기 설정부(210)는 비디오 스트림에 포함된 그룹 크기(gs) 정보를 판독하여 그룹 크기를 설정하거나, 출력 버퍼(240)에서 제공되는 기 복원된 플래그 값의 분포를 통하여 그룹 크기를 설정한다. 전자는 플래그 부호화 장치(100)에서 그룹 크기를 기록하여 전송한 경우이고, 후자는 플래그 부호화 장치(100)에서 비트 분포에 따라서 그룹 크기를 설정하고 전송하지 않은 경우이다. 후자의 경우, 그룹 크기 설정부(210)는 플래그 부호화 장치(100)의 그룹 크기 설정부(120)와 마찬가지의 방법으로 그룹 크기를 산출해낸다.
패턴 비트 판독부(220)는 비디오 스트림에 포함된 패턴 비트(pb)의 값을 판독하여 그 값이 1이면 플래그 설정부(250)에, 그 값이 0이면 플래그 디코딩부(230)에 통지(notify)한다.
플래그 디코딩부(230)는 패턴 비트 판독부(220)로부터 상기 pb가 0으로 통지된 경우, 비디오 스트림으로부터 상기 설정된 그룹 크기 만큼의 블록들에 대한 부호화된 플래그 비트열(플래그 부호화 장치(100)에서 엔트로피 부호화된 결과)을 판독하고, 이를 엔트로피 복호화한다. 상기 엔트로피 복호화 과정은 플래그 코딩 부(150)에서 수행된 엔트로피 부호화 과정의 역으로서 수행된다.
플래그 설정부(250)는 패턴 비트 판독부(220)로부터 상기 pb가 1로 통지된 경우에는 상기 그룹 크기에 해당하는 해당 플래그들을 모두 0으로 설정한다.
출력 버퍼(240)는 플래그 디코딩부(230)에서 엔트로피 복호화된 값 및 플래그 설정부(250)에서 설정된 값을 일시 저장한다. 상기 저장된 값들은 복원된 플래그로서 출력 버퍼(240)로부터 출력된다.
도 6 내지 도 9는 본 발명의 실시예들에 따른 흐름도를 도시한 것이다. 이 중에서, 도 6은 본 발명의 일 실시예에 따른 플래그 부호화 방법을 나타낸 흐름도이다.
먼저, 그룹 크기 설정부(120)는 플래그 비트열을 분할하기 위한 단위가 되는 그룹 크기(gs)를 설정한다(S11). 상기 그룹 크기는 예를 들어, 4, 8, 또는 16이 될 수 있다. 비트열 분할부(130)는 플래그 비트열을 상기 그룹 크기 단위로 분할한다(S12).
그러면, 패턴 비트 설정부(140)는 상기 분할된 비트열이 모두 0인가를 판단하여(S13), 그러하다면 패턴 비트(pb)를 1로 설정하고(S16), 그러하지 아니하다면 상기 패턴 비트(pb)를 0으로 설정한다(S14).
플래그 코딩부(150)는 상기 패턴 비트가 0으로 설정된 경우에 상기 분할된 비트열을 엔트로피 부호화한다(S15). 이 때, 플래그 코딩부(150)는 상기 분할된 비트열을 각각 엔트로피 부호화할 수도 있고, 0이 아닌 값을 포함하는 분할된 비트열들 전체를 모아서 한꺼번에 엔트로피 부호화할 수도 있다.
마지막으로, 상기 단계들이 슬라이스 또는 프레임 내의 모든 매크로블록에 대하여 수행되었으면(S17의 예) 종료하고, 그렇지 않으면 S12 단계로 진행한다.
한편, 특정 플래그가 도 2와 같이 공간적 연관성만을 가지는 경우에는 도 6과 같은 플래그 부호화 알고리즘을 적용할 수 있다. 그런데, SVC와 같이 다 계층 기반의 비디오 코딩 스킴에 있어서는 특정 플래그가 공간적 연관성만이 아니라, 계층적 연관성을 가질 수도 있다. 예를 들어, 잔차 예측 플래그(residual_prediction_flag), 인트라 베이스 플래그(intra_base_flag), 모션 예측 플래그(motion_prediction_flag), 베이스 모드 플래그(base_mode_flag) 등은 계층적 연관성을 가질 수 있기 때문에, 현재 계층의 어떤 매크로블록이 갖는 플래그 값과 그에 대응되는 하위 계층의 매크로블록이 갖는 플래그 값은 같은 값을 가질 가능성이 높다.
상기 잔차 예측 플래그는 잔차 예측을 사용하는지 여부를 표시하는 플래그이다. 잔차 예측이란, 어떤 계층의 잔차 신호(residual signal)를 대응되는 하위 계층의 잔차 신호를 이용하여 예측함으로써, 잔차 신호들의 계층간 중복성을 감소시키기 위한 기법이다. 상기 하위 계층은 어떤 계층을 효율적으로 부호화하기 위하여 참조되는 다른 계층을 임의의 계층으로서, 제1 계층에 한정되지는 않으며 반드시 하위의 계층을 의미하는 것도 아니다.
이러한 잔차 예측을 사용하는지 여부는 잔차 예측 플래그에 의하여 표시되어 비디오 디코더 단으로 전달된다. 그 플래그가 1이면 잔차 예측을 사용하는 것을 표시하고, 0이면 사용하지 않는 것을 표시한다. 일반적으로, 어떤 플래그가 1이면 해 당 기능을 사용한다는 것을, 0이면 해당 기능을 사용하지 않는다는 것을 의미한다.
인트라 베이스 플래그는 인트라 베이스 예측을 사용하는지 여부를 표시하는 플래그이다. 현재 스케일러블 비디오 코딩 초안에서는 도 7과 같이 기존의 H.264에서 사용되던 인터 예측(①) 및 인트라 예측(②)뿐만 아니라, 하위 계층의 이미지를 이용하여 현재 계층에서의 프레임을 예측함으로써 부호화할 데이터를 감소시키는 인트라 베이스 예측(③)도 아울러 지원한다. 상기 초안에서는 인트라 베이스 예측은 인트라 예측의 일종으로서 취급하며, 인트라 예측에 있어서 상기 인트라 베이스 플래그가 0이면 종래의 방향적(directional) 인트라 예측을, 상기 플래그가 1이면 인트라 베이스 예측을 표시한다.
모션 예측 플래그는 현재 계층의 모션 벡터를 예측하여 모션 벡터 차분(motion vector difference; MVD)을 구함에 있어서, 동일 계층의 다른 모션 벡터를 이용하는가 하위 계층의 모션 벡터를 이용하는가 여부를 표시하는 플래그이다. 상기 플래그가 1인 경우 하위 계층의 모션 벡터를 이용함을 의미하고, 0인 경우 동일 계층의 다른 모션 벡터를 이용함을 의미한다.
베이스 모드 플래그는 현재 계층의 모션 정보를 표시함에 있어서, 하위 계층의 모션 정보를 이용하는가 여부를 나타내는 플래그이다. 만약, 베이스 모드 플래그가 1이면, 현재 계층의 모션 정보로는 하위 계층의 모션 정보를 그대로 이용하거나, 하위 계층의 모션 정보에서 다소 정제(refine)된 값을 이용하게 된다. 베이스 모드 플래그가 0이면 현재 계층의 모션 정보는 하위 계층의 모션 정보와 무관하게 별도로 검색되어 기록됨을 나타낸다. 상기 모션 정보는 매크로블록 종 류(macroblock type; mb_type), 인터 예측시 픽쳐의 참조 방향(순방향, 역방향, 양방향 등), 및 모션 벡터를 포함한다.
아무튼 이와 같이 계층간 연관성을 갖는 플래그들은 동일한 값을 가질 확률이 높으므로, 현재 계층의 매크로블록에 대한 플래그를 코딩할 때 이러한 점을 고려한다면 보다 코딩 효율을 높일 수가 있다. 이에 본 발명의 다른 실시예에서는, 현재 계층 매크로블록에 대한 플래그 값을 직접 코딩하는 것이 아니라, 먼저 계층간 플래그 값끼리 배타적 논리합(XOR)을 수행한 후 그 결과 값을 코딩하는 것을 제안한다.
도 8은 본 발명의 다른 실시예에 따른 플래그 부호화 장치(190)의 구성을 도시한 도면이다. 도 8을 도 4와 비교하면 플래그 판독부(101) 및 연산부(105)가 더 포함되어 있을 뿐이다.
플래그 판독부(101)는 현재 계층의 매크로블록에 대한 플래그(FC)와 상기 매크로블록에 대응되는 하위 계층의 매크로블록에 대한 플래그(FB)를 판독한다. 상기 플래그의 판독은 예를 들어, 매크로블록 헤더를 파싱(parsing)함으로써, 또는 메모리 상에 로딩된 변수 값을 읽음으로써 알 수 있다.
연산부(105)는 상기 FC와 FB에 대하여 배타적 논리합 연산을 수행한다. 그 결과 계층적 연관성으로 인하여 0이 출력될 가능성이 높아지며, 그 경우 엔트로피 부호화의 효율은 상승될 수 있다. 연산부(105)에서의 연산 결과가 플래그 조합부(110)에 입력된 이 후에는 도 4와 마찬가지이므로 그 이후의 설명은 생략하기로 한다.
도 9는 도 8의 실시예에 따른 흐름도이다.
먼저, 플래그 판독부(101)는 FC 및 FB를 판독하고(S19), 연산부(105)는 상기 판독된 FC 및 FB를 입력으로 하여 배타적 논리합 연산을 수행한다(S20).
그 다음, 그룹 크기 설정부(120)는 그룹 크기(gs)를 설정하고(S21), 비트열 분할부(130)는 상기 연산 결과(RC)로 이루어지는 비트열을 상기 그룹 크기 단위로 분할한다(S22).
패턴 비트 설정부(140)는 상기 분할된 비트열이 모두 0인가를 판단하여(S23), 그러하다면 패턴 비트(pb)를 1로 설정하고(S26), 그러하지 아니하다면 상기 패턴 비트(pb)를 0으로 설정한다(S24).
플래그 코딩부(150)는 상기 패턴 비트가 0으로 설정된 경우에 상기 분할된 비트열을 엔트로피 부호화한다(S25). 마지막으로, 상기 단계들이 슬라이스 또는 프레임 내의 모든 매크로블록에 대하여 수행되었으면(S27의 예) 종료하고, 그렇지 않으면 S22 단계로 진행한다.
한편, 도 10은 본 발명의 일 실시예에 따른 플래그 복호화 방법을 나타낸 흐름도이다.
먼저, 그룹 크기 설정부(210)는 그룹 크기(gs)를 설정한다(S31). 이 때, 그룹 크기 설정부(210)는 비디오 스트림에 포함된 그룹 크기(gs) 정보를 판독하여 그룹 크기를 설정하거나, 출력 버퍼(240)에서 제공되는 기 복원된 플래그 값의 분포 를 통하여 그룹 크기를 설정할 수 있다. 후자의 경우, 그룹 크기 설정부(210)는 플래그 부호화 장치(100)의 그룹 크기 설정부(120)와 마찬가지의 방법으로 그룹 크기를 산출해낸다.
패턴 비트 판독부(220)는 비디오 스트림에 포함된 패턴 비트(pb)의 값을 판독하여(S32), 그 값이 0인지 1인지를 판단한다(S33).
상기 판단 결과 그 값이 1이면(S33의 예), 플래그 설정부(250)는 상기 그룹 크기에 해당하는 플래그들을 모두 0으로 설정한다(S35).
상기 판단 결과 그 값이 0이면(S33의 아니오), 플래그 디코딩부(230)는 비디오 스트림으로부터 상기 설정된 그룹 크기 만큼의 블록들에 대한 부호화된 플래그 비트열(플래그 부호화 장치(100)에서 엔트로피 부호화된 결과)을 판독하고, 이를 엔트로피 복호화한다(S34). 상기 엔트로피 복호화 과정은 플래그 코딩부(150)에서 수행된 엔트로피 부호화 과정의 역으로서 수행된다.
마지막으로, 상기 단계들이 슬라이스 또는 프레임 내의 모든 매크로블록에 대하여 수행되었으면(S36 예) 종료하고, 그렇지 않으면 S32 단계로 진행한다.
한편, 도 8과 같이 계층간 연관성까지 고려하여 플래그를 부호화한 경우에는, 복호화를 위해서는 도 5에 다소간의 구성요소가 추가되어야 한다. 도 11은 본 발명의 다른 실시예에 따른 플래그 복호화 장치(290)의 구성을 도시하는 도면이다.
도 11을 도 5와 비교하면 연산부(260)가 더 포함되어 있을 뿐이다. 연산부(260) 이전의 동작은 도 5와 마찬가지이므로 생략한다. 출력 버퍼(240)에서 출력 되는 값은 FC와 FB에 대한 배타적 논리합의 연산 결과인 RC이다. 연산부(260)는 FB와 RC에 대하여 배타적 논리합을 수행함으로써 현재 계층의 매크로블록에 대한 특정 플래그인 FC를 복원한다.
도 12는 도 11의 실시예에 따른 흐름도이다.
먼저, 그룹 크기 설정부(210)는 그룹 크기(gs)를 설정한다(S41). 이 때, 그룹 크기 설정부(210)는 비디오 스트림에 포함된 그룹 크기(gs) 정보를 판독하여 그룹 크기를 설정하거나, 출력 버퍼(240)에서 제공되는 기 복원된 플래그 값의 분포를 통하여 그룹 크기를 설정할 수 있다.
패턴 비트 판독부(220)는 비디오 스트림에 포함된 패턴 비트(pb)의 값을 판독하여(S42), 그 값이 0인지 1인지를 판단한다(S43).
상기 판단 결과 그 값이 1이면(S43의 예), 플래그 설정부(250)는 상기 그룹 크기에 해당하는 RC를 모두 0으로 설정한다(S46).
상기 판단 결과 그 값이 0이면(S43의 아니오), 플래그 디코딩부(230)는 비디오 스트림에 포함된 부호화된 데이터, 즉 RC를 상기 그룹 크기만큼 판독하고, 이를 엔트로피 복호화한다(S44).
연산부(260)는 FC에 대응되는 하위 계층의 플래그 값 FB와, 상기 S46 단계에서 0으로 설정된 RC 또는 상기 S44 단계에서 엔트로피 복호화된 RC에 대하여 배타적 논리합을 수행한다(S45).
마지막으로, 상기 단계들이 슬라이스 또는 프레임 내의 모든 매크로블록에 대하여 수행되었으면(S46 예) 종료하고, 그렇지 않으면 S42 단계로 진행한다.
도 13은 도 4 또는 도 8의 플래그 부호화 장치(100, 190)가 적용될 수 있는 다 계층 기반의 비디오 인코더(500)의 구성을 도시하는 블록도이다.
오리지널 비디오 시퀀스는 현재 계층 인코더(400)로 입력되고, 아울러 다운샘플링부(305)에 의하여 다운샘플링(계층간에 해상도의 변화가 있는 경우에 한함)된 후 하위 계층 인코더(300)로 입력된다.
예측부(410)는 현재 매크로블록에서 소정의 방법으로 예측된 이미지를 차분함으로써 잔차 신호를 구한다. 상기 예측 방법으로는 방향적 인트라 예측, 인터 예측, 인트라 베이스 예측, 및 잔차 예측 등이 있다.
변환부(420)는 상기 구한 잔차 신호를 DCT, 웨이브렛 변환 등 공간적 변환 기법을 이용하여 변환하여 변환 계수를 생성한다.
양자화부(430)는 상기 변환 계수를 소정의 양자화 스텝으로 양자화하여(양자화 스텝이 클수록 데이터의 손실 내지 압축률이 높다) 양자화 계수를 생성한다.
엔트로피 부호화부(440)는 상기 양자화 계수를 무손실 부호화하여 현재 계층 비디오 스트림을 출력한다.
플래그 설정부(450)는 다양한 단계에서 얻어지는 정보들로부터 플래그를 설정한다. 예를 들어, 잔차 예측 플래그(residual_prediction_flag), 인트라 베이스 플래그(intra_base_flag) 등은 예측부(410)에서 얻어지는 정보를 통하여 설정된다. 이와 같이 설정된 현재 계층의 플래그들(FC)은 플래그 부호화 장치(190)로 입력된다.
현재 계층 인코더(400)에서와 마찬가지로, 하위 계층 인코더(300)도 동일한 기능의 예측부(310), 변환부(320), 양자화부(330), 엔트로피 부호화부(340), 및 플래그 설정부(350)를 포함한다. 엔트로피 부호화부(340)는 하위 계층 비디오 스트림을 Mux(multiplexer; 360)로 출력하며, 플래그 설정부(350)는 하위 계층의 플래그들(FB)을 플래그 부호화 장치(100)에 제공한다.
Mux(360)는 현재 계층 비디오 스트림과 하위 계층 비디오 스트림을 결합하여 비디오 스트림(VS)을 생성하여, 플래그 부호화 장치(100)에 제공한다.
플래그 부호화 장치(100)는 상기 제공된 FB, FC 간의 연관성을 이용하여 FC를 부호화하고, 상기 부호화된 FC 및 상기 제공된 FB를 상기 제공된 비디오 스트림에 삽입함으로써, 최종 비디오 스트림(최종 BS)를 출력한다.
물론, 플래그 부호화 장치(190)는 플래그 부호화 장치(100)로 대체될 수 있으며, 이 경우에는 계층 간의 연관성은 사용되지 않으므로, FC는 FB와 상관없이 공간적 연관성만을 이용하여 엔트로피 부호화된다.
도 14는 도 5 또는 도 11의 플래그 복호화 장치(200, 290)가 적용될 수 있는 다 계층 기반의 비디오 디코더(800)의 구성을 도시하는 블록도이다.
입력되는 최종 비디오 스트림(VS)은 플래그 복호화 장치(200) 및 Demux(demultiplexer; 650)에 입력된다. Demux(650)는 상기 최종 비디오 스트림을 현재 계층 비디오 스트림 및 하위 계층 비디오 스트림으로 분리하여 현재 계층 인코더(700) 및 하위 계층 디코더(600)에 각각 제공한다.
엔트로피 복호화부(710)는 엔트로피 부호화부(440)과 대응되는 방식으로 무손실 복호화를 수행하여 양자화 계수를 복원한다.
역양자화부(720)는 상기 복원된 양자화 계수를 양자화부(430)에서 사용된 양자화 스텝으로 역 양자화한다.
역변환부(730)는 상기 역 양자화된 결과를 역 DCT 변환, 역 웨이브렛 변환 등의 역공간적 변환 기법을 사용하여 역변환한다.
역예측부(740)는 예측부(410)에서 구한 예측 이미지를 동일한 방식으로 구하고, 상기 구한 예측 이미지를 상기 역변환된 결과와 가산함으로써 비디오 시퀀스를 복원한다. 이 때, 역예측부(740)는 경우(인트라 베이스 예측, 잔차 예측 등의 경우)에 따라서는, 하위 계층 디코더(600)에서 디코딩된 결과를 이용하기도 한다.
현재 계층 디코더(700)에서와 마찬가지로, 하위 계층 디코더(600)도 동일한 기능의 엔트로피 복호화부(610), 역양자화부(620), 역변환부(630), 및 역예측부(640)를 포함한다.
한편, 플래그 복호화 장치(290)는 상기 최종 비디오 스트림으로부터 하위 계층의 플래그들(FB)과, 현재 계층의 플래그들(FC)의 부호화된 값을 추출하고, 상기 FB와 상기 부호화된 값으로부터 현재 계층의 플래그들(FC)을 복원한다.
상기 추출된 하위 계층의 플래그들(FB)은 하위 계층 디코더(600)의 구성 요소들(610, 620, 630, 640)에서 해당 동작을 수행하는 데에 이용될 수 있고, 상기 복원된 현재 계층의 플래그들(FC)은 또는 현재 계층 디코더(700)의 구성요소들(710, 720, 730, 740)에서 해당 동작을 수행하는 데에 이용될 수 있다.
물론, 플래그 부호화 장치(290)는 플래그 부호화 장치(200)로 대체될 수 있으며, 이 경우에는 계층 간의 연관성은 사용되지 않으므로, FC는 FB와 상관없이 공간적 연관성만을 이용하여 엔트로피 복호화된다.
지금까지 도 4, 도 5, 도 8, 도 11, 도 13 및 도 14의 각 구성요소들은 메모리 상의 소정 영역에서 수행되는 태스크, 클래스, 서브 루틴, 프로세스, 오브젝트, 실행 쓰레드, 프로그램과 같은 소프트웨어(software)나, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)로 구현될 수 있으며, 또한 상기 소프트웨어 및 하드웨어의 조합으로 이루어질 수도 있다. 상기 구성요소들은 컴퓨터로 판독 가능한 저장 매체에 포함되어 있을 수도 있고, 복수의 컴퓨터에 그 일부가 분산되어 분포될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특성을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.
본 발명에 따르면, 다 계층 기반의 스케일러블 비디오 코덱에서 사용되는 다양한 플래그들의 부호화 효율을 향상시킬 수 있다.

Claims (23)

  1. 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 방법으로서,
    (a) 소정 블록의 공간적 관련성에 따라 상기 블록 별로 할당되는 플래그 값을 모아서 플래그 비트열을 생성하는 단계;
    (b) 상기 비트열을 소정의 그룹 크기로 분할하는 단계;
    (c) 상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 단계; 및
    (d) 상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 단계를 포함하는 플래그 부호화 방법.
  2. 제1항에 있어서,
    상기 블록은 슬라이스, 매크로블록, 또는 서브 블록인 플래그 부호화 방법.
  3. 제1항에 있어서,
    상기 그룹 크기는 4, 8, 또는 16 중 어느 하나인 플래그 부호화 방법.
  4. 제1항에 있어서,
    상기 그룹 크기는 미리 누적된 플래그 비트열 중 소정 개수의 비트들에 포함 되는 0의 비율과 임계치를 비교하여 결정되는 플래그 부호화 방법.
  5. 제4항에 있어서,
    상기 임계치는 1/3 및 4/5인 플래그 부호화 방법.
  6. 제5항에 있어서,
    상기 0의 비율이 1/3보다 작은 경우에는 상기 그룹 크기는 1로 결정되고, 상기 0의 비율이 4/5보다 큰 경우에는 상기 그룹 크기는 8로 결정되며, 그 이외의 경우에는 상기 그룹 크기는 4로 결정되는 플래그 부호화 방법.
  7. 제1항에 있어서, 상기 플래그는
    잔차 예측 플래그 또는 cbp(coded block pattern) 플래그인 플래그 부호화 방법.
  8. 제1항에 있어서,
    상기 패턴 비트는 상기 블록의 헤더에 기록되고, 상기 그룹 크기는 슬라이스 헤더에 기록되는 플래그 부호화 방법.
  9. 복수의 계층으로 이루어지는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 방법으로서,
    (a) 현재 계층의 블록에 대한 제1 플래그 값과, 상기 블록과 대응되는 하위 계층의 블록에 대한 제2 플래그 값에 대하여 배타적 논리합 연산을 수행하는 단계;
    (b) 상기 현재 계층의 블록의 공간적 관련성에 따라 상기 연산 결과 값을 모아서 플래그 비트열을 생성하는 단계;
    (c) 상기 비트열을 소정의 그룹 크기로 분할하는 단계;
    (d) 상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 단계; 및
    (e) 상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 단계를 포함하는 플래그 부호화 방법.
  10. 제9항에 있어서,
    상기 블록은 슬라이스, 매크로블록, 또는 서브 블록인 플래그 부호화 방법.
  11. 제9항에 있어서,
    상기 그룹 크기는 기 누적된 플래그 비트열 중 소정 개수의 비트들에 포함되는 0의 비율과 임계치를 비교하여 결정되는 플래그 부호화 방법.
  12. 제9항에 있어서, 상기 플래그는
    잔차 예측 플래그인 플래그 부호화 방법.
  13. 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 복호화하는 방법으로서,
    (a) 비디오 스트림으로부터 소정의 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 판독하는 단계;
    (b) 상기 패턴 비트가 제1 비트를 가지는 경우, 그룹 크기에 해당하는 플래그 비트열을 0으로 설정하는 단계;
    (c) 상기 패턴 비트가 제2 비트를 가지는 경우, 상기 비디오 스트림으로부터 상기 그룹 크기에 만큼의 블록들에 대한 부호화된 플래그 비트열을 판독하는 단계; 및
    (d) 상기 판독된 플래그 비트열을 엔트로피 복호화하는 단계를 포함하는 플래그 복호화 방법.
  14. 제13항에 있어서,
    상기 블록은 슬라이스, 매크로블록, 또는 서브 블록인 플래그 복호화 방법.
  15. 제13항에 있어서,
    상기 그룹 크기는 상기 비디오 스트림으로부터 판독되는 플래그 복호화 방법.
  16. 제13항에 있어서,
    상기 그룹 크기는 미리 엔트로피 복호화되어 누적된 플래그 비트열 중 소정 개수의 비트들에 포함되는 0의 비율과 임계치를 비교하여 결정되는 플래그 복호화 방법.
  17. 제16항에 있어서,
    상기 임계치는 1/3 및 4/5인 플래그 복호화 방법.
  18. 제17항에 있어서,
    상기 0의 비율이 1/3보다 작은 경우에는 상기 그룹 크기는 1로 결정되고, 상기 0의 비율이 4/5보다 큰 경우에는 상기 그룹 크기는 8로 결정되며, 그 이외의 경우에는 상기 그룹 크기는 4로 결정되는 플래그 복호화 방법.
  19. 제13항에 있어서, 상기 플래그는
    잔차 예측 플래그 또는 cbp(coded block pattern) 플래그인 플래그 복호화 방법.
  20. 제13항에 있어서,
    (e) 상기 (b) 단계에서 0으로 설정된 플래그 플래그 비트열 또는 상기 (d) 단계에서 엔트로피 복호화된 플래그 비트열과, 하위 계층의 대응되는 플래그 비트열에 대하여 배타적 논리합을 수행하는 단계를 더 포함하는 플래그 복호화 방법.
  21. 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 장치로서,
    소정 블록의 공간적 관련성에 따라 상기 블록 별로 할당되는 플래그 값을 모아서 플래그 비트열을 생성하는 수단;
    상기 비트열을 소정의 그룹 크기로 분할하는 수단;
    상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 수단; 및
    상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 수단을 포함하는 플래그 부호화 장치.
  22. 복수의 계층으로 이루어지는 비디오 프레임의 코딩에 있어 사용되는 플래그를 부호화하는 장치로서,
    현재 계층의 블록에 대한 제1 플래그 값과, 상기 블록과 대응되는 하위 계층의 블록에 대한 제2 플래그 값에 대하여 배타적 논리합 연산을 수행하는 수단;
    상기 현재 계층의 블록의 공간적 관련성에 따라 상기 연산 결과 값을 모아서 플래그 비트열을 생성하는 수단;
    상기 비트열을 소정의 그룹 크기로 분할하는 수단;
    상기 분할된 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 설정하는 수단; 및
    상기 설정된 패턴 비트에 따라 상기 분할된 비트열을 엔트로피 부호화하는 수단을 포함하는 플래그 부호화 장치.
  23. 복수의 블록으로 구성되는 비디오 프레임의 코딩에 있어 사용되는 플래그를 복호화하는 장치로서,
    비디오 스트림으로부터 소정의 비트열에 포함된 비트가 모두 0인가를 나타내는 패턴 비트를 판독하는 수단;
    상기 패턴 비트가 제1 비트 값을 가지는 경우, 그룹 크기에 해당하는 플래그 비트열을 0으로 설정하는 수단;
    상기 패턴 비트가 제2 비트 값을 가지는 경우, 상기 비디오 스트림으로부터 상기 그룹 크기에 만큼의 블록들에 대한 부호화된 플래그 비트열을 판독하는 수단; 및
    상기 판독된 플래그 비트열을 엔트로피 복호화하는 수단을 포함하는 플래그 복호화 장치.
KR1020060035461A 2006-01-12 2006-04-19 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치 KR100791295B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/599,484 US7840083B2 (en) 2006-01-12 2006-11-15 Method of encoding flag, method of decoding flag, and apparatus thereof
JP2008550212A JP2009523349A (ja) 2006-01-12 2006-11-16 フラッグ符号化方法、フラッグ復号化方法、および前記方法を利用した装置
EP06843835A EP1972140A1 (en) 2006-01-12 2006-11-16 Method of encoding flag, method of decoding flag, and apparatus thereof
PCT/KR2006/004826 WO2007081085A1 (en) 2006-01-12 2006-11-16 Method of encoding flag, method of decoding flag, and apparatus thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75821806P 2006-01-12 2006-01-12
US60/758,218 2006-01-12
US75906106P 2006-01-17 2006-01-17
US60/759,061 2006-01-17

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020070096854A Division KR101041973B1 (ko) 2006-01-12 2007-09-21 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치

Publications (2)

Publication Number Publication Date
KR20070075227A KR20070075227A (ko) 2007-07-18
KR100791295B1 true KR100791295B1 (ko) 2008-01-04

Family

ID=38500408

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020060035461A KR100791295B1 (ko) 2006-01-12 2006-04-19 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
KR1020070096854A KR101041973B1 (ko) 2006-01-12 2007-09-21 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020070096854A KR101041973B1 (ko) 2006-01-12 2007-09-21 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치

Country Status (5)

Country Link
US (1) US7840083B2 (ko)
EP (1) EP1972140A1 (ko)
JP (1) JP2009523349A (ko)
KR (2) KR100791295B1 (ko)
WO (1) WO2007081085A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791295B1 (ko) * 2006-01-12 2008-01-04 삼성전자주식회사 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US8553785B2 (en) * 2008-12-31 2013-10-08 Stmicroelectronics, Inc. Apparatus and method for transmitting and recovering encoded data streams across physical medium attachments
MX2013003691A (es) * 2010-09-30 2013-04-24 Samsung Electronics Co Ltd Metodo de codficacion de video para codificar simbolos de estructura jerarquica y dispositivo para esto, y metodo de decodificacion de video para decodificar simbolos de estructura jerarquica y dispositivo para esto.
KR20120035096A (ko) 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
KR101499919B1 (ko) * 2010-11-23 2015-03-10 한국전자통신연구원 비트 플레인 기반의 예측 오차 데이터 복호화 장치 및 방법
US9906786B2 (en) * 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
CN102883164B (zh) * 2012-10-15 2016-03-09 浙江大学 一种增强层块单元的编解码方法、对应的装置
US9247256B2 (en) 2012-12-19 2016-01-26 Intel Corporation Prediction method using skip check module
KR102184884B1 (ko) * 2014-06-26 2020-12-01 엘지디스플레이 주식회사 유기발광표시장치의 데이터 처리장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990074808A (ko) * 1998-03-14 1999-10-05 전주범 물체 기반 부호화 시스템의 보조 정보 부호화 장치
JP2002359859A (ja) 2002-03-28 2002-12-13 Sony Corp 画像信号符号化装置及び符号化方法、画像信号復号化装置及び復号化方法
KR20040020306A (ko) * 2002-08-30 2004-03-09 삼성전자주식회사 겹치는 사각 슬라이스 구조를 이용한 영상 부호화 및복호화 장치 및 방법
KR20040069751A (ko) * 2003-01-30 2004-08-06 삼성전자주식회사 영상의 중복 부호화 및 복호화 방법 및 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3247836B2 (ja) * 1996-05-16 2002-01-21 シャープ株式会社 画像符号化装置及び画像復号装置
JP3208101B2 (ja) * 1996-11-07 2001-09-10 松下電器産業株式会社 画像符号化方法および画像符号化装置並びに画像符号化プログラムを記録した記録媒体
US6173013B1 (en) 1996-11-08 2001-01-09 Sony Corporation Method and apparatus for encoding enhancement and base layer image signals using a predicted image signal
US6614845B1 (en) 1996-12-24 2003-09-02 Verizon Laboratories Inc. Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems
JPH10320913A (ja) * 1997-05-23 1998-12-04 Sony Corp データ記録装置および方法、データ再生装置および方法、データ記録再生装置および方法、並びに伝送媒体
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
JP2001217722A (ja) * 2000-02-02 2001-08-10 Canon Inc 情報符号化装置及び情報符号化方法及びコンピュータ読み取り可能な記憶媒体
JP2002369208A (ja) * 2001-06-12 2002-12-20 Mitsubishi Electric Corp 映像信号符号化装置および映像信号符号化方法
JP2003125408A (ja) * 2001-10-15 2003-04-25 Nippon Telegr & Teleph Corp <Ntt> 画像符号化装置、画像復号装置並びにその方法及び画像符号化プログラム、画像復号プログラム
JP2003324731A (ja) * 2002-04-26 2003-11-14 Sony Corp 符号化装置、復号装置、画像処理装置、それらの方法およびプログラム
US7596279B2 (en) 2002-04-26 2009-09-29 Ntt Docomo, Inc. Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, and image decoding program
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
KR100791295B1 (ko) * 2006-01-12 2008-01-04 삼성전자주식회사 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
KR100809298B1 (ko) * 2006-06-22 2008-03-04 삼성전자주식회사 플래그 인코딩 방법, 플래그 디코딩 방법, 및 상기 방법을이용한 장치
KR101356733B1 (ko) * 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990074808A (ko) * 1998-03-14 1999-10-05 전주범 물체 기반 부호화 시스템의 보조 정보 부호화 장치
JP2002359859A (ja) 2002-03-28 2002-12-13 Sony Corp 画像信号符号化装置及び符号化方法、画像信号復号化装置及び復号化方法
KR20040020306A (ko) * 2002-08-30 2004-03-09 삼성전자주식회사 겹치는 사각 슬라이스 구조를 이용한 영상 부호화 및복호화 장치 및 방법
KR20040069751A (ko) * 2003-01-30 2004-08-06 삼성전자주식회사 영상의 중복 부호화 및 복호화 방법 및 장치

Also Published As

Publication number Publication date
KR101041973B1 (ko) 2011-06-16
WO2007081085A1 (en) 2007-07-19
JP2009523349A (ja) 2009-06-18
US20070160302A1 (en) 2007-07-12
KR20070075227A (ko) 2007-07-18
EP1972140A1 (en) 2008-09-24
KR20070112087A (ko) 2007-11-22
US7840083B2 (en) 2010-11-23

Similar Documents

Publication Publication Date Title
KR101041973B1 (ko) 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
JP4589290B2 (ja) ある階層のフラグを階層間の連関性を用いて符号化する方法、前記符号化されたフラグを復号化する方法、及び装置
JP4991699B2 (ja) ビデオ信号のスケーラブルなエンコーディング方法およびデコーディング方法
KR100809298B1 (ko) 플래그 인코딩 방법, 플래그 디코딩 방법, 및 상기 방법을이용한 장치
KR100772868B1 (ko) 복수 계층을 기반으로 하는 스케일러블 비디오 코딩 방법및 장치
KR100636229B1 (ko) 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치
KR100772878B1 (ko) 비트스트림의 비트율 조절을 위한 우선권 할당 방법,비트스트림의 비트율 조절 방법, 비디오 디코딩 방법 및 그방법을 이용한 장치
CN113424541B (zh) 视频编解码的方法和装置
CN113330749A (zh) 用于变换跳过模式和块差分脉冲编码调制的改进的残差编解码
KR100736096B1 (ko) 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치
KR20190020847A (ko) 데이터를 손실 압축-인코딩하기 위한 방법 및 장치와 데이터를 재구성하기 위한 대응하는 방법 및 장치
KR20070077059A (ko) 엔트로피 부호화/복호화 방법 및 장치
JP7221390B2 (ja) ビデオ復号及び符号化の方法、装置並びにプログラム
CN109996079B (zh) 视频解码方法和装置
KR100772870B1 (ko) Fgs 계층의 블록에 포함되는 계수의 특성에 따라 비디오신호를 부호화하고 복호화하는 방법 및 장치
CN110944173A (zh) 视频解码方法、装置、电子设备以及存储介质
CN110557632B (zh) 视频解码方法、视频解码器以及计算机可读介质
KR100763192B1 (ko) Fgs 계층의 비디오 데이터를 엔트로피 부호화 및복호화하는 방법 및 장치
CN116508319A (zh) 神经图像压缩中的逐块熵编码方法
KR20060043867A (ko) 영상 신호의 인코딩 및 디코딩 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee