KR101214148B1 - 비디오 블록의 인터리빙된 서브?블록들의 엔트로피 코딩 - Google Patents
비디오 블록의 인터리빙된 서브?블록들의 엔트로피 코딩 Download PDFInfo
- Publication number
- KR101214148B1 KR101214148B1 KR1020107010465A KR20107010465A KR101214148B1 KR 101214148 B1 KR101214148 B1 KR 101214148B1 KR 1020107010465 A KR1020107010465 A KR 1020107010465A KR 20107010465 A KR20107010465 A KR 20107010465A KR 101214148 B1 KR101214148 B1 KR 101214148B1
- Authority
- KR
- South Korea
- Prior art keywords
- blocks
- sub
- zero
- coefficients
- video block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 비디오 블록들을 엔트로피 코딩하기 위한 기술들을 기술하며, 코딩 효율성을 향상시킬 수 있는 신택스 엘리먼트를 제시한다. 신택스 엘리먼트는 비디오 블록내의 비-제로 값 서브-블록들의 수를 식별할 수 있으며, 여기서 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함하는, 비디오 블록내의 서브-블록들을 포함한다. 비디오 블록을 코딩하기 위한 방법은 신택스 엘리먼트를 코딩하는 단계, 비디오 블록의 비-제로 값 서브-블록들을 생성하는 단계 및 비-제로 값 서브-블록들을 엔트로피 코딩하는 단계를 포함할 수 있다.
Description
본 출원은 2007년 10월 12일에 출원된 미국 가출원번호 제60/979,739호의 우선권을 주장하며, 이 가출원은 여기에 참조로 통합된다.
본 발명은 디지털 비디오 코딩, 특히 비디오 블록들의 계수들의 엔트로피 코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 방송 시스템들(digital direct broadcast systems), 무선 전화 핸드셋들과 같은 무선 통신 장치들, 무선 방송 시스템들, 개인휴대단말들(PDA), 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 기록 장치들, 비디오 게이밍 장치들, 비디오 게임 콘솔들 등을 포함하는 광범위한 장치들에 통합될 수 있다. 디지털 비디오 장치들은 디지털 비디오를 더 효율적으로 전송 및 수신하기 위하여 MPEG-2, MPEG-4 또는 H.264/MPEG-4, Part 10, AVC(Advanced Video Coding)과 같은 비디오 압축 기술들을 구현한다. 비디오 압축 기술들은 비디오 시퀀스들에 고유한 리던던시(redundancy)를 감소시키거나 또는 제거하기 위하여 공간적(spatial) 및 시간적(temporal) 예측을 수행한다.
비디오 코딩에서, 비디오 압축은 일반적으로 공간적 예측, 움직임 추정 및 움직임 보상을 포함한다. 인트라-코딩(intra-coding)은 주어진 비디오 프레임내의 비디오 블록들간의 공간적 리던던시를 감소시키거나 또는 제거하기 위하여 공간적 예측에 의존한다. 인터-코딩(inter-coding)은 비디오 시퀀스의 연속적인 비디오 프레임들의 비디오 블록들간의 시간적 리던던시를 감소시키거나 또는 제거하기 위하여 시간적 예측에 의존한다. 인터-코딩을 위하여, 비디오 인코더는 매칭하는 2개 이상의 인접 프레임들간의 비디오 블록들의 움직임(movement)을 추적(track)하기 위하여 움직임 추정을 수행한다. 움직임 추정은 움직임 벡터들을 생성하며, 움직임 벡터는 하나 이상의 기준 프레임들의 대응하는 예측 비디오 블록들에 대한 비디오 블록들의 변위(displacement)를 표시한다. 움직임 보상은 기준 프레임들로부터 예측 비디오 블록을 생성하기 위하여 움직임 벡터들을 사용한다. 움직임 보상후에, 코딩될 원래의(original) 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 주어진 잔여 비디오 블록이 형성된다.
비디오 인코더는 잔여 블록의 통신과 연관된 비트 레이트(bit rate)를 추가로 감소시키기 위하여 변환, 양자화, 및 엔트로피 코딩 프로세스들을 적용할 수 있다. 변환 기술들은 이산 코사인 변환들 또는 개념적으로 유사한 프로세스, 웨이블릿(wavelet) 변환들, 또는 가능한 경우 다른 타입들의 변환들을 포함할 수 있다. 이산 코사인 변환들 또는 개념적으로 유사한 프로세스들에서, 변환 프로세스는 화소 값들의 세트를 변환 계수들로 변화시키며, 이는 주파수 영역에서의 화소 값들의 에너지를 나타낸다. 양자화는 변환 계수들에 적용되며, 일반적으로 임의의 주어진 계수와 연관된 비트들의 수를 제한하는 프로세스를 포함한다. 엔트로피 코딩은 양자화된 변환 계수들의 시퀀스를 공동으로 압축하는 하나 이상의 프로세스들을 포함한다. 엔트로피 코딩 프로세스들의 예들은 콘텐츠 적응적 가변 길이 코딩(CAVLC: Content Adaptive Variable Length Coding) 및 콘텍스트 적응적 2진 산술 코딩(CABAC: Context Adaptive Binary Arithmetic Coding)을 포함한다.
CAVLC은 ITU H.264/MPEG4, AVC 표준에 의하여 지원되는 엔트로피 코딩 기술의 하나의 타입이다. CAVLC은 변환 계수들의 직렬화된 런들(serialized run)을 효율적으로 압축하는 방식으로 가변 길이 코딩(VLC) 테이블들을 사용한다. CABAC은 ITU H.264/MPEG4, AVC 표준에 의하여 지원되는 엔트로피 코딩 기술의 다른 타입이다. CABAC은 2진화(binarization), 콘텍스트 모델 선택(context model selection) 및 2진 산술 코딩(binary arithmetic coding)을 포함하는 여러 스테이지들을 포함할 수 있다. 많은 다른 타입들의 엔트로피 코딩 기술들이 또한 존재하며, 새로운 엔트로피 기술들이 미래에 출현할 것이다.
인코딩 프로세스에서 사용되는 엔트로피 코딩의 타입과 관계없이, 비디오 디코더는 계수들을 재구성(reconstruct)하기 위하여 역(inverse) 엔트로피 코딩 동작들을 수행할 수 있다. 다음으로, 비디오 디코더는 계수들을 역 양자화 및 역 변환한다. 비디오 디코더는 비디오 정보의 디코딩된 시퀀스를 생성하기 위하여 비디오 블록들과 연관된 잔여 정보 및 움직임 정보에 기초하여 비디오 정보를 디코딩할 수 있다.
일반적으로, 본 발명은 비디오 블록들을 엔트로피 코딩하기 위한 기술들을 제시한다. 본 발명은 엔트로피 코딩 효율성을 향상할 수 있는 신택스 엘리먼트를 제시한다. 신택스 엘리먼트는 주어진 비디오 블록내의 비-제로 값 서브-블록들의 수를 식별할 수 있으며, 여기서 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수들(예컨대, 비-제로 변환 계수들)을 포함하는, 주어진 비디오 블록내의 서브-블록들을 포함한다. 대조적으로, 제로-값 서브-블록들은 단지 제로-값 계수들만을 포함하는, 주어진 비디오 블록내의 서브-블록들을 지칭한다. 본 발명에 따르면, 제로-값 서브-블록들은 엔트로피 인코딩동안 스킵(skip)될 수 있으며, 이들 제로-값 서브-블록들은 신택스 엘리먼트에 기초하여 디코더에서 재구성될 수 있다. 이러한 방식에서, 제로-값 계수들의 코딩은 코딩 효율성을 향상시키기 위하여 회피될 수 있다. 제안된 신택스 엘리먼트는 하나 이상의 서브-블록들이 인코딩 프로세스동안 스킵된 제로-값 서브-블록들이라는 사실을 전달하기 위한 메커니즘을 제공하여, 디코더가 임의의 추가적인 정보 전달없이 제로-값 서브-블록들을 재구성하도록 한다.
일례에서, 본 발명은 비디오 블록을 코딩하기 위한 방법을 제공하며, 본 방법은 비디오 블록의 비-제로(non-zero) 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하는 단계 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?; 비디오 블록의 비-제로 값 서브-블록들을 생성하는 단계; 및 비-제로 값 서브-블록들을 엔트로피 코딩하는 단계를 포함한다.
다른 예에서, 본 발명은 엔트로피 코딩 유닛을 포함하는 장치를 제공하며, 엔트로피 코딩 유닛은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?; 비디오 블록의 비-제로 값 서브-블록들을 생성하며; 그리고 비-제로 값 서브-블록들을 엔트로피 코딩하도록 구성된다.
또 다른 예에서, 본 발명은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하기 위한 수단 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?; 비디오 블록의 비-제로 값 서브-블록들을 생성하기 위한 수단; 및 비-제로 값 서브-블록들을 엔트로피 코딩하기 위한 수단을 포함하는 장치를 제공한다.
또 다른 예에서, 본 발명은 엔트로피 인코딩 유닛 및 무선 송신기를 포함하는 장치를 제공한다. 엔트로피 인코딩 유닛은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 인코딩하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?; 비디오 블록의 비-제로 값 서브-블록들을 생성하며; 그리고 비-제로 값 서브-블록들을 엔트로피 인코딩하도록 구성된다. 무선 송신기는 엔트로피 코딩된 비-제로 값 서브-블록들 및 신택스 엘리먼트를 포함하는 비트스트림을 전송한다.
또 다른 예에서, 본 발명은 엔트로피 코딩된 비-제로 값 서브-블록들 및 신택스 엘리먼트를 포함하는 비트스트림을 수신하는 무선 수신기, 및 엔트로피 디코딩 유닛을 포함하는 장치를 제공하며, 엔트로피 디코딩 유닛은 비디오 블록의 비-제로 값 서브-블록들의 수를 결정하기 위하여 신택스 엘리먼트를 디코딩하도록 구성되며, 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함한다. 엔트로피 디코딩 유닛은 신택스 엘리먼트에 기초하여 비디오 블록의 비-제로 값 서브-블록들을 생성하며, 비-제로 값 서브-블록들을 엔트로피 디코딩한다.
여기에서 제시된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 만일 하드웨어로 구현되면, 장치는 집적회로, 프로세서, 개별 로직 또는 이들의 임의의 조합으로 실현될 수 있다. 만일 소프트웨어로 구현되면, 소프트웨어는 마이크로프로세서, 주문형 집적회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA) 또는 디지털 신호 프로세서(DSP)와 같은 하나 이상의 프로세서들에서 실행될 수 있다. 이러한 기술들을 실행하는 소프트웨어는 처음에 컴퓨터-판독가능 매체에 저장되어 프로세서내에서 실행될 수 있다.
따라서, 본 발명은 또한 비디오 코딩 장치의 실행시에 비디오 코딩 장치가 비디오 블록을 코딩하도록 하는 명령들을 포함하는 컴퓨터-판독가능 매체를 제공하며, 상기 명령들은, 상기 장치로 하여금, 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?; 비디오 블록의 비-제로 값 서브-블록들을 생성하며; 그리고 비-제로 값 서브-블록들을 엔트로피 코딩하도록 한다. 임의의 경우들에서, 컴퓨터 판독가능 매체는 제품들로 판매될 수 있고 및/또는 비디오 코딩 장치에서 사용될 수 있는 컴퓨터 프로그램 제품의 부분을 형성할 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있으며, 어떤 경우들에서는 패키징 자료들을 포함할 수 있다.
본 발명의 하나 이상의 양상들의 세부사항들은 첨부 도면들 및 이하의 상세한 설명에 기술된다. 여기에서 제시된 기술들의 다른 특징들, 목적들 및 장점들은 상세한 설명, 도면들 및 청구범위로부터 명백해 질 것이다.
도 1은 비디오 인코딩 및 디코딩 시스템을 예시한 예시적인 블록도이다.
도 2는 본 발명에 따른 비디오 인코더의 예를 예시한 블록도이다.
도 3은 8×8 비디오 블록의 지그-재그 스캐닝을 예시한 개념도이다.
도 4는 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 5는 본 발명에 따른 비디오 디코더의 예를 예시한 블록도이다.
도 6은 4의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 7은 3의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 8은 2의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 9는 1의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 10은 본 발명에 따른 코딩(즉, 인코딩 또는 디코딩) 기술을 예시한 흐름도이다.
도 11은 본 발명에 따른 인코딩 기술을 예시한 흐름도이다.
도 12는 본 발명에 따른 디코딩 기술을 예시한 흐름도이다.
도 2는 본 발명에 따른 비디오 인코더의 예를 예시한 블록도이다.
도 3은 8×8 비디오 블록의 지그-재그 스캐닝을 예시한 개념도이다.
도 4는 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 5는 본 발명에 따른 비디오 디코더의 예를 예시한 블록도이다.
도 6은 4의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 7은 3의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 8은 2의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 9는 1의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
도 10은 본 발명에 따른 코딩(즉, 인코딩 또는 디코딩) 기술을 예시한 흐름도이다.
도 11은 본 발명에 따른 인코딩 기술을 예시한 흐름도이다.
도 12는 본 발명에 따른 디코딩 기술을 예시한 흐름도이다.
본 발명은 비디오 블록들을 엔트로피 코딩하기 위한 기술들을 제시한다. 비디오 블록들은 비디오 프레임, 비디오 슬라이스(slice) 또는 다른 비디오 유닛을 형성할 수 있으며, 본 발명의 기술들은 프레임들 또는 슬라이스들과 같은 비디오 유닛들의 시퀀스에 대한 코딩 프로세스(예컨대, 인코딩 또는 디코딩)의 일부분으로 적용될 수 있다. 효율적인 엔트로피 코딩을 수행하기 위하여, 본 발명은 특정 타입의 신택스 엘리먼트를 제시한다. 본 발명에 따른 신택스 엘리먼트는 주어진 비디오 블록내의 비-제로(non-zero) 값 서브-블록들의 수를 식별할 수 있으며, 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함하는, 주어진 비디오 블록내의 서브-블록들을 포함한다. 대조적으로, 제로-값 서브-블록들은 단지 제로(zero)(0) 값 계수들만을 포함하는, 주어진 비디오 블록내의 서브-블록들을 지칭한다.
본 발명에 따르면, 제로-값 서브-블록들은 엔트로피 인코딩동안 스킵(skip)될 수 있으며, 제로-값 서브-블록들은 신택스 엘리먼트에 기초하여 디코더에서 재구성될 수 있다. 이러한 방식에서, 제로 값 계수들의 코딩은 코딩 효율성을 향상시키기 위하여 회피될 수 있다. 제안된 신택스 엘리먼트는 하나 이상의 서브-블록들이 인코딩 프로세스 동안 스킵된 제로-값 서브-블록들이라는 사실을 전달하는 메커니즘을 제공하며, 따라서 디코더가 임의의 추가적인 정보를 전송하지 않고 제로-값 서브-블록들을 재구성하도록 한다. 신택스 엘리먼트는 제로 값 서브-블록들인 서브-블록들의 수를 정의할 수 있으며, 이를 수행할때 이러한 서브-블록들이 코딩된 비디오 블록의 어디에 존재하는지 그리고 서브-블록들(제로-값 및 비-제로 값 서브-블록들)이 비디오 블록내에서 어떻게 정의되는지를 고유하게 식별할 수 있다.
인코더 측에서, 비디오 블록은 각각 예컨대 인트라-코딩된(I) 프레임들 또는 인터-코딩된(P 또는 B) 프레임들을 생성하기 위하여 공간-기반 또는 움직임 기반 예측 기술들을 통해 코딩될 수 있다. 비디오 블록의 잔여 화소 값들은 엔트로피 코딩 전에 변환 및 양자화될 수 있다. 엔트로피 인코딩을 위하여, 비디오 블록의 계수들(즉, 변환되고 양자화된 계수들)은 계수들의 1-차원 벡터를 정의하기 위하여 스캐닝될 수 있다. 지그-재그 스캐닝은 여기에 기술된 일례이나, 수직 또는 수평 스캐닝과 같은 다른 타입들의 스캐닝이 또한 사용될 수 있다. 신택스 엘리먼트는 비디오 블록에 존재하는 비-제로 값 서브-블록들의 수를 식별하기 위하여 정의될 수 있다. 비디오 블록에 대응하는 계수들의 직렬화된 1-차원 벡터는 비-제로 값 서브-블록들에 대응하는 계수들의 1-차원 벡터들의 세트를 정의하기 위하여 신택스 엘리먼트에 기초하여 인터리빙될 수 있다.
엔트로피 인코딩(예컨대, CAVLC, CABAC 또는 다른 엔트로피 코딩 방법)은 비-제로 값 서브-블록들에 대응하는 계수들의 1-차원 벡터들에 대하여 수행될 수 있는 반면에, 제로-값 서브-블록들은 무시되거나 또는 스킵될 수 있다. 엔트로피 코딩된 비-제로 값 서브-블록들 및 신택스 엘리먼트는 디코더에 전송될 수 있는 인코딩된 비트스트림을 정의할 수 있다.
디코더 측에서는 인코딩된 비트스트림이 수신된다. 다시, 비트스트림은 엔트로피 코딩된 비-제로 값 서브-블록들 및 신택스 엘리먼트를 포함할 수 있다. 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트에 기초하여, 디코더는 어느 서브-블록들이 엔트로피 인코딩된 비-제로 값 서브-블록들인지 그리고 어느 서브-블록들이 스킵된 제로-값 서브-블록들인지를 식별할 수 있다. 다시 말해서, 신택스 엘리먼트는 비-제로 값 서브-블록들의 수 및 모든 계수들이 제로(zero)인 제로-값 서브-블록들의 수 모두를 정의할 수 있다. 예컨대, 특정 비디오 블록 크기에 대하여 예상된 서브-블록들의 알려진 수가 주어지면, 비-제로 값 서브-블록들의 수 또는 제로-값 서브-블록들의 수를 전달하는 신택스 엘리먼트는 비-제로 값 서브-블록들의 수 및 제로-값 서브-블록들의 수 모두를 정의할 수 있다. 따라서, 신택스 엘리먼트에 기초하여, 디코더는 비-제로 값 서브-블록들을 디코딩하며, 비디오 블록에 대한 계수들의 전체 세트를 재구성하기 위하여 임의의 제로-값 서브-블록들의 계수들에 대해 제로들을 생성한다. 다음으로, 역 양자화, 역 변환 및 공간-기반 디코딩 또는 움직임-기반 예측이 비디오 블록을 재구성하기 위하여 수행될 수 있다.
도 1은 본 발명의 기술들을 구현할 수 있는 예시적인 비디오 인코딩 및 디코딩 시스템(10)을 예시한 블록도이다. 도 1에 도시된 바와같이, 시스템(10)은 통신 채널(15)을 통해 수신 장치(16)에 인코딩된 비디오를 전송하는 소스 장치(12)를 포함한다. 소스 장치(12) 및 수신 장치(16)는 광범위한 장치들중 임의의 장치를 포함할 수 있다. 임의의 경우들에서, 소스 장치(12) 및 수신 장치(16)는 무선 통신 장치 핸드셋들, 즉 소위 셀룰라 또는 위성 무선전화들을 포함한다. 그러나, 일반적으로 비디오 블록들의 엔트로피 코딩과 관련한 본 발명의 기술들은 반드시 무선 애플리케이션들 또는 세팅들에 제한되지 않는다.
소스 장치(12)는 비디오 소스(20), 비디오 인코더(22), 변조기/복조기(모뎀)(23) 및 송신기(24)를 포함할 수 있다. 수신 장치(16)는 수신기(26), 모뎀(27), 비디오 디코더(28) 및 디스플레이 장치(30)를 포함할 수 있다. 본 발명에 따르면, 소스 장치(12)의 비디오 인코더(22)는 이하에서 더 상세히 기술되는 바와같이 효율적인 엔트로피 코딩을 수행하도록 구성될 수 있다.
도 1에 도시된 시스템(10)은 단순히 예시적이다. 본 발명의 엔트로피 코딩 기술들은 콘텐츠 적응적 가변 길이 코딩(CAVLC), 콘텍스트 적응적 2진 산술 코딩(CABAC) 또는 다른 엔트로피 코딩 방법들과 같은 다양한 엔트로피 코딩 방법들중 임의의 방법을 지원하는 임의의 인코딩 또는 디코딩 장치에 의하여 수행될 수 있다. 소스 장치(12) 및 수신 장치(16)는 단순히 이러한 코딩 장치들을 예시한다.
본 발명의 기술들은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하는 단계 ? 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?, 신택스 엘리먼트에 기초하여 비디오 블록의 비-제로 값 서브-블록들을 생성하는 단계, 및 비-제로 값 서브-블록들을 엔트로피 코딩하는 단계를 포함할 수 있다. 기술들은 인코딩 프로세스동안 장치(12)에 의하여 및/또는 디코딩 프로세스동안 장치(16)에 의하여 수행될 수 있다.
일반적으로, 소스 장치(12)는 수신 장치(16)에 전송하기 위한 코딩된 비디오 데이터를 생성한다. 그러나, 임의의 경우들에서, 장치들(12, 16)은 실질적으로 대칭적인 방식으로 동작할 수 있다. 예컨대, 장치(12, 16)의 각각은 비디오 인코딩 및 디코딩 컴포넌트들을 포함할 수 있다. 그러므로, 시스템(10)은 예컨대 비디오 스트리밍(video-streaming), 비디오 플레이백(video playback), 비디오 브로드캐스팅(video broadcasting), 또는 화상 회의(video telephony)를 위하여 비디오 장치들(12, 16)간의 원-웨이(one-way) 또는 투-웨이(two-way) 비디오 전송을 지원할 수 있다.
소스 장치(121)의 비디오 소스(20)는 비디오 카메라, 사전에 포착된 비디오를 포함하는 비디오 아카이브(archive), 또는 비디오 콘텐츠 공급자로부터의 비디오 피드(video feed)와 같은 비디오 포착 장치를 포함할 수 있다. 다른 대안으로서, 비디오 소스(20)는 소스 비디오로서의 컴퓨터 그래픽-기반 데이터, 또는 라이브 비디오, 보관된 비디오 및 컴퓨터-생성 비디오의 조합을 생성할 수 있다. 임의의 경우들에서, 만일 비디오 소스(20)가 비디오 카메라이면, 소스 장치(12) 및 수신 장치(16)는 소위 카메라 전화들 또는 비디오 전화들을 형성할 수 있다. 각각의 경우에, 포착된, 사전에 포착된 또는 컴퓨터-생성된 비디오는 비디오 인코더(22)에 의하여 인코딩될 수 있다. 다음으로, 인코딩된 비디오 정보는 예컨대 코드 분할 다중접속(CDMA) 또는 다른 통신 표준 또는 기술과 같은 통신 표준에 따라 모뎀(23)에 의하여 변조되어 송신기(24)를 통해 수신 장치(16)에 전송될 수 있다.
수신 장치(16)의 수신기(26)는 채널(15)을 통해 정보를 수신하고, 모뎀(27)은 정보를 복조한다. 비디오 디코더(28)에 의하여 수행되는 비디오 디코딩 프로세스는 비디오 시퀀스의 재구성의 부분으로서 엔트로피 디코딩을 수행할 수 있다. 인코딩 프로세스와 같은 엔트로피 디코딩 프로세스는 개선된 데이터 압축 레벨들을 지원하기 위하여 본 발명의 기술들을 사용한다. 디스플레이 장치(28)는 사용자에게 디코딩된 비디오 데이터를 디스플레이하며, 음극선관(CRT: cathode ray tube), 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 다른 타입의 디스플레이 장치와 같은 다양한 디스플레이 장치들중 임의의 디스플레이를 포함할 수 있다.
도 1의 예에서, 통신 채널(15)은 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체의 임의의 조합을 포함할 수 있다. 통신 채널(15)은 근거리 통신망, 광역 통신망 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 부분을 형성할 수 있다. 통신 채널(15)은 일반적으로 소스 장치(12)로부터 수신 장치(16)로 비디오 데이터를 전송하기 위한, 임의의 적절한 통신 매체 또는 상이한 통신 매체의 집합을 나타낸다.
비디오 인코더(22) 및 비디오 디코더(28)는 MPEG-4, Part 10, AVC(Advanced Video Coding)로서 지칭되는 ITU-T H.264 표준과 같이 CAVAC, CABAC 또는 다른 엔트로피 코딩 방법을 지원하는 비디오 압축 표준에 따라 동작할 수 있다. 비록 도 1에 도시되지 않았을지라도, 임의의 양상들에서, 비디오 인코더(22) 및 비디오 디코더(28)는 각각 오디오 인코더 및 디코더와 함께 집적될 수 있으며, 공통 데이터 스트림 또는 개별 데이터 스트림들로의 오디오 및 비디오 모두의 인코딩을 조절하기 위하여 적절한 MUX-DEMUX 유닛들 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 만일 적절하다면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜(UDP)와 같은 다른 프로토콜들에 따를 수 있다.
ITU H.264/MPEG-4(AVC) 표준은 JVT(Joint Video Team)으로서 공지된 공동 파트너십의 제품으로서 ISO/IEC MPEG(Moving Picture Experts Group)와 함께 ITU-T VCEG(Video Coding Experts Group)에 의하여 공식화되었다. 임의의 양상들에서, 여기에서 제시된 기술들은 일반적으로 H.264 표준에 따르는 장치들에 적용될 수 있다. H.264 표준은 여기에서 H.264 표준 또는 H.264 사양 또는 H.264/AVC 표준 또는 사양으로서 지칭될 수 있는, ITU-T Recommendation H.264, Advanced Video Coding for generic audiovisual services, by the ITU-T Study Group and dated March, 2005에 개시되어 있다. JVT는 H.264/MPEG-4 AVC로 계속해서 진화시키고 있다.
비디오 인코더(22) 및 비디오 디코더(28)는 각각 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들(DSP), 주문형 집적회로들(ASIC), 필드 프로그램 가능 게이트 어레이들(FPGA), 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 비디오 인코더(22) 및 비디오 디코더(28)의 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수 있으며, 이들중 어느 하나는 각각의 이동장치, 가입자 장치, 방송 장치, 서버 등의 CODEC(combined encoder/decoder)의 부분으로서 통합될 수 있다.
비디오 시퀀스는 일련의 비디오 프레임들을 포함한다. 임의의 경우들에서, 비디오 시퀀스는 GOP(group of picture)들로서 배열될 수 있다. 비디오 인코더(22)는 비디오 데이터를 인코딩하기 위하여 개별 비디오 프레임들내의 비디오 블록들에 대하여 동작한다. 비디오 블록들은 고정 크기 또는 가변 크기를 가질 수 있으며, 특정 코딩 표준에 따라 크기가 다를 수 있다. 각각의 비디오 프레임은 일련의 슬라이스들(slice)을 포함할 수 있다. 각각의 슬라이스는 훨씬 작은 블록들로 배열될 수 있는 일련의 매크로블록들을 포함할 수 있다. 예로서, ITU-T H.264 표준은 루마(luma) 컴포넌트들에 대하여 16×16, 8×8, 또는 4×4 그리고 크로마(chroma) 컴포넌트들에 대하여 8×8와 같은 다양한 블록 크기들의 인트라 예측을 지원하며, 루마 컴포넌트들에 대하여 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 및 크로마 컴포넌트들에 대하여 대응하는 스케일링된 크기들과 같은 다양한 블록 크기들의 인터 예측을 지원한다. 비디오 블록들은 예컨대 이산 코사인 변환 또는 개념적으로 유사한 변환 프로세스와 같은 변환 프로세스 후에 화소 데이터의 블록들 또는 변환 계수들의 블록들을 포함할 수 있다. 변환 계수들은 양자화될 수 있다. 본 발명의 엔트로피 코딩 기술들은 통상적으로 양자화된 변환 계수들의 엔트로피 코딩에 적용한다.
매크로블록들과 같은 비디오 블록들은 더 작은 크기의 비디오 블록들로 분할될 수 있다. 보다 작은 비디오 블록들은 보다 양호한 해상도를 제공할 수 있으며, 고레벨들의 세부사항(detail)을 포함하는 비디오 프레임의 위치들을 위하여 사용될 수 있다. 일반적으로, 매크로블록(MB) 및 다양한 더 작은 블록들은 모두 비디오 블록들인 것으로 고려될 수 있다. 더욱이, 슬라이스는 MB들 및/또는 보다 작은 크기의 블록들과 같은 일련의 비디오 블록들인 것으로 고려될 수 있다. 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수 있다. 예측후에, 변환은 8×8 잔여 블록 또는 4×4 잔여 블록에 대하여 수행될 수 있으며, 추가 변환은 인트라_16×16 예측 모드가 사용되는 경우에 크로마 컴포넌트들 또는 루마 컴포넌트에 대하여 4×4 블록들의 DC 계수들에 적용될 수 있다. 변환후에도 데이터는 비디오 블록들로서 지칭될 수 있다. 그러나, 변환후에, 비디오 블록들은 화소 값들보다 오히려 변환 계수들을 포함한다. 그러므로, 변환된 비디오 블록들은 변환 계수들의 블록들을 포함한다. 용어 "계수들"은 일반적으로 변환 계수들을 지칭하나, 대안적으로 다른 타입들의 계수들 또는 값들을 지칭할 수 있다.
인트라 또는 인터-기반 예측 코딩 및 변환 기술들(이산 코사인 변환 DCT 또는 264/AVC에서 사용되는 4×4 또는 8×8 정수 변환과 같은) 이후에, 양자화가 수행될 수 있다. 웨이블릿-기반 압축과 같은 다른 변환 기술들이 사용될 수 있다. 양자화는 일반적으로 계수들을 나타내기 위하여 사용되는 데이터량을 가능한 최대로 감소시키기 위하여 계수들이 양자화되는 프로세스를 지칭한다. 양자화 프로세스는 계수들의 일부 또는 모두와 연관된 비트 깊이(bit depth)를 감소시킬 수 있다. 예컨대, 8-비트 값은 양자화동안 7-비트 값까지 잘라질 수 있다(round down).
양자화 후에, 엔트로피 코딩은 여기에서 제시된 기술들에 따라 수행될 수 있다. 특히, 8×8 비디오 블록들 또는 16×16 비디오 블록들과 같은 변환 계수들의 비디오 블록들은 4×4 서브-블록들의 세트로 인터리빙될 수 있다. 인터리빙은 모든 변환 계수가 제로(0)인 서브-블록들을 포함하는 제로-값 서브-블록들의 생성을 촉진시키는 방식으로 정의될 수 있다. 신택스 엘리먼트는 이러한 인터리빙을 정의하며, 비디오 블록내의 서브-블록들을 정의한다. 엔트로피 코딩 동안, 제로-값 서브-블록들은 디코더가 제로-값 서브-블록들을 재구성하기 위하여 신택스 엘리먼트를 사용할 수 있기 때문에 스킵된다. 즉, 단지 비-제로 값 서브-블록들은 엔트로피 코딩 프로세스로 코딩되며, 제로-값 서브-블록들은 폐기(discard)되며 인코딩된 비트스트림에 포함되지 않는다. 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 가지는 서브-블록들을 지칭한다. 제로-값 서브-블록들은 모든 변환 계수들이 제로의 값을 가지는 서브-블록들을 지칭한다.
도 2는 인코딩 프로세스동안 본 발명의 기술들을 수행하는 엔트로피 인코딩 유닛(46)을 포함하는 비디오 인코더(50)의 예를 예시한 블록도이다. 비디오 인코더(50)는 비디오 프레임들내의 블록들의 인트라 및 인터-코딩을 수행할 수 있다. 인트라-코딩은 주어진 비디오 프레임내의 비디오의 공간적 리던던시를 감소시키거나 또는 제거하기 위하여 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접 프레임들내의 비디오의 시간적 리던던시를 감소시키거나 또는 제거하기 위하여 시간적 예측에 의존한다. 인터-코딩동안, 비디오 인코더(50)는 2개 이상의 인접 프레임들간의 매칭하는 비디오 블록들의 움직임을 추적하기 위하여 움직임 추정을 수행한다. 인트라-모드(I-모드)는 공간 기반 압축 모드를 지칭할 수 있으며, 예측(P-모드) 또는 양방향(B-모드)과 같은 인터-모드들은 시간 기반 압축 모드들을 지칭할 수 있다.
도 2에 도시된 바와같이, 비디오 인코더(50)는 인코딩될 비디오 프레임내의 현재 비디오 블록을 수신한다. 도 2의 예에서, 비디오 인코더(50)는 움직임 추정 유닛(32), 기준 프레임 저장유닛(34), 움직임 압축 유닛(36), 블록 변환 유닛(38), 양자화 유닛(40), 역 양자화 유닛(42), 역 변환 유닛(44), 및 엔트로피 인코딩 유닛(46)을 포함한다. 디블록킹 필터(도시안됨)는 또한 블록화 아티팩트들(blockiness artifact)을 제거하기 위하여 블록 경계들을 필터링하기 위하여 포함될 수 있다. 비디오 인코더(50)는 또한 합산기(48) 및 합산기(51)를 포함한다. 도 2는 비디오 블록들의 인터-코딩을 위하여 비디오 인코더(50)의 시간적 예측 컴포넌트들을 예시한다. 비록 설명을 용이하게 하기 위하여 도 2에 도시되지 않았을지라도, 비디오 인코더(50)는 또한 임의의 비디오 블록들의 인트라-코딩을 위하여 공간 예측 컴포넌트들을 포함할 수 있다.
움직임 추정 유닛(32)은 하나 이상의 움직임 벡터들을 결정하기 위하여 하나 이상의 인접 비디오 기준 프레임들의 다양한 블록들과 인코딩될 비디오 블록을 비교한다. 인접 프레임 또는 프레임들은 사전에 인코딩된 블록들로부터 재구성된 비디오 블록들을 저장하기 위하여 임의의 타입의 메모리 또는 데이터 저장 장치를 포함할 수 있는 기준 프레임 저장유닛(34)으로부터 검색될 수 있다. 움직임 추정은 가변 크기들, 예컨대 16×16, 16×8, 8×16, 8×8 또는 보다 작은 블록 크기들의 블록들에 대하여 수행될 수 있다. 움직임 추정 유닛(32)은 코딩될 현재의 비디오 블록과 가장 근접하게 매칭되는 인접 프레임의 블록을 식별하고 블록들간의 변위를 결정한다. 이를 기초로 하여, 움직임 추정 유닛(32)은 현재의 비디오 블록 및 현재의 비디오 블록을 코딩하기 위하여 사용되는 예측 블록간의 변위의 크기(magnitude) 및 궤도(trajectory)를 표시하는 움직임 벡터(MV)(또는 양방향 예측의 경우에 다수의 MV들)을 생성한다.
움직임 벡터들은 1/2 또는 1/4-화소 정밀도 또는 심지어 더 미세한 정밀도를 가질 수 있어서, 비디오 인코더(50)로 하여금 정수 화소 위치들보다 더 높은 정밀도로 움직임을 추적하여 보다 양호한 예측 블록을 획득하도록 한다. 분수 형태(fractional) 화소 값들을 가진 움직임 벡터들이 사용될때, 움직임 보상 유닛(36)에서 보간 동작들이 수행된다. 움직임 추정 유닛(32)은 비디오 블록에 대한 원하는 움직임 벡터를 식별하고, 결과적인 움직임 벡터를 사용하여 움직임 보상 유닛(36)은 움직임 보상에 의하여 예측 비디오 블록을 형성한다.
비디오 인코더(50)는 코딩된 원래의 비디오 블록으로부터 움직임 보상 유닛(36)에 의하여 생성되는 예측 비디오 블록을 감산함으로써 잔여 비디오 블록을 형성한다. 합산기(48)는 이러한 감산 동작을 수행한다. 블록 변환 유닛(38)은 이산 코사인 변환(DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔여 블록에 적용하여 잔여 변환 블록 계수들을 포함하는 비디오 블록을 생성한다. 블록 변환 유닛(38)은 예컨대 DCT와 개념적으로 유사한 H.265 표준에 의하여 정의되는 다른 변환들을 수행할 수 있다.
양자화 유닛(40)은 비트 레이트를 추가로 감소시키기 위하여 잔여 변환 계수들을 양자화한다. 양자화 유닛(40)은 예컨대 계수들의 각각을 코딩하기 위하여 사용되는 비트들의 수를 제한할 수 있다. 양자화후에, 엔트로피 인코딩 유닛(46)은 데이터를 추가로 압축하기 위하여 CAVLC 또는 CABAC와 같은 엔트로피 코딩 방법에 따라 양자화된 변환 계수들을 엔트로피 인코딩한다.
특히, 본 발명에 따르면, 엔트로피 인코딩 유닛(46)은 비디오 블록들(예컨대, 8×8 또는 16×16 비디오 블록)을 서브-블록들(예컨대, 4×4 서브-블록들)로 분할할 수 있다. 예컨대, 비디오 블록은 64개의 계수들을 포함하는 8×8 비디오 블록을 포함할 수 있으며, 서브-블록들은 각각이 16개의 계수들을 포함하는 4×4 블록들을 포함할 수 있다. 다른 예에서, 비디오 블록은 256개의 계수들을 포함하는 16×16 비디오 블록을 포함할 수 있으며, 서브-블록들은 16개의 계수들을 포함하는 4×4 블록들을 포함할 수 있다. 그러나, 블록들 및 서브-블록들의 많은 다른 형상들 또는 크기들이 본 발명에서 사용될 수 있다. 어떤 경우이던지 간에, 서브-블록들은 비-제로 값 서브-블록들 또는 제로-값 서브-블록들중 하나인 것으로 특징지워질 수있다. 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 가진(예컨대, 1, 2, 3 또는 이보다 더 큰 적어도 하나의 계수값을 가진) 서브-블록들을 포함하는 반면에, 제로-값 서브-블록들은 모두 제로 값 계수들을 가진 서브-블록들을 포함한다.
엔트로피 인코딩 유닛(46)은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하며, 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함한다. 엔트로피 코딩 유닛(46)은 비-제로 값 서브-블록들을 생성하며, 비-제로 값 서브-블록들을 엔트로피 코딩한다. 예컨대, 엔트로피 인코딩 유닛(46)은 서브-블록들을 생성하기 위하여 신택스 엘리먼트에 기초하여 비디오 블록의 계수들을 인터리빙할 수 있으며, 이러한 인터리빙은 제로-값 서브-블록들의 생성을 촉진시킬 수 있다. 엔트로피 인코딩 유닛(46)은 비-제로 값 서브-블록들을 엔트로피 코딩하나, 제로-값 서브-블록들이 제로 값들을 전송할 필요성 없이 신택스 엘리먼트에 기초하여 디코더에서 재구성될 수 있기 때문에 제로-값 서브-블록들의 엔트로피 인코딩을 스킵한다.
엔트로피 인코딩 유닛(46)에 의한 엔트로피 코딩후에, 인코딩된 비디오는 다른 장치로 전송되거나 또는 이후의 전송 또는 검색을 위하여 보관될 수 있다. 역 양자화 유닛(42) 및 역 변환 유닛(44)은 기준 블록으로서 사용하기 위한 화소 영역의 잔여 블록을 재구성하기 위하여 각각 역 양자화 및 역 변환을 적용한다. 제로-값 서브-블록들은 이러한 재구성에 사용된다. 합산기(51)는 기준 프레임 저장유닛(34)에 저장하기 위한 재구성된 비디오 블록을 생성하기 위하여 움직임 보상 유닛(36)에 의하여 생성되는 움직임 보상된 예측 블록에 재구성된 잔여 블록을 더한다(add). 재구성된 비디오 블록은 다음 비디오 프레임의 블록을 인코딩하기 위하여 기준 블록으로서 움직임 추정 유닛(32) 및 움직임 보상 유닛(36)에 의하여 사용된다.
도 3은 계수들의 1-차원 벡터로서 비디오 블록(80)을 나타내기 위하여 엔트로피 인코딩 유닛(46)(또는 인코더(50)의 다른 유닛)에 의하여 수행될 수 있는 지그-재그 스캐닝의 개념을 예시한다. 이러한 지그-재그 스캐닝의 스캐닝 순서는 비디오 블록(80)을 통과하는 화살표를 따르며, 계수들은 스캐닝 순서로 라벨링된다. 특히, 도 3에 도시된 수치 값들은 순차적인 1-차원 벡터내의 계수들의 위치들을 표시하며, 계수들의 값들을 나타내지 않는다. 본 발명의 기술들은 임의의 특정 스캐닝 순서 또는 기술에 제한되지 않는다. 그러나, 도 3에 도시된 것과 같은 지그-재그 스캐닝은 보다 높은 에너지 계수들이 통상적으로 비디오 블록(80)의 상부-좌측 코너에 배치되기 때문에 변환 계수들에 매우 유용할 수 있다. 따라서, 지그-재그 스캐닝은 종종 제로-값들을 가진 많은 낮은 숫자 계수들(lower-numbered cofficient)을 야기한다. 엔트로피 인코딩 유닛(46)에 의하여 수행되는 것으로 기술될지라도, 지그-재그 스캐닝 또는 1-차원 벡터로의 다른 타입의 스캐닝(수평 또는 수직 스캐닝과 같은)은 인코딩 프로세스의 초기 스테이지에서 수행될 수 있다.
도 4는 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다. 도 4에 도시된 바와같이, 4개의 상이한 인터리빙된 서브-블록들은 4개의 상이한 1-차원 벡터들로 정의되고 표현될 수 있다. 매 4 번째 계수가 주어진 서브-블록에 포함된다. 따라서, 도 3의 비디오 블록(80)은 64개의 계수들의 1-차원 벡터로서 표현될 수 있다.
4개의 상이한 인터리빙된 서브-블록들은 도 4에 도시된 바와같이 16개의 계수들의 4개의 상이한 1-차원 벡터들로서 표현될 수 있다. 이 경우에, 인터리빙된 서브-블록 1은 다음과 같으며,
인터리빙된 서브-블록 2은 다음과 같으며,
인터리빙 서브-블록 3은 다음과 같으며,
인터리빙된 서브-블록 4는 다음과 같다.
그러므로, 비디오 블록들의 값들은 매 4번째 변환 계수가 주어진 서브-블록에 결합되도록 인터리빙되며, 여기서 각각의 서브-블록은 다음 서브-블록으로부터 1만큼 오프셋된다. 도 4 및 앞서 도시된 서브-블록들에서, 번호들은 서브-블록들로 분할되는 비디오 블록내의 계수들의 위치들을 지칭한다. 본 발명에 따르면, 하나 이상의 제로-값 비디오 블록들의 생성을 촉진시키는 방식으로 비디오 블록을 인터리빙하는게 유리할 수 있다. 이러한 경우에, 하나 이상의 제로-값 비디오 블록들을 식별하는 신택스 엘리먼트는 제로-값 비디오 블록들을 인코딩 및 전달하는데 필요한 것보다 훨씬 적은 비트들을 포함할 수 있다. 이하에서 더 상세히 기술된 바와같이, 여기에서 신택스(블록들의 수)로서 지칭되는 신택스 엘리먼트는 이러한 목적을 위하여 사용될 수 있다.
도 5는 여기에서 기술된 방식으로 인코딩되는 비디오 시퀀스를 디코딩하는 비디오 디코더(60)의 예를 예시한 블록도이다. 비디오 디코더(60)는 도 2의 엔트로피 인코딩 유닛(46)에 의하여 수행되는 인코딩의 상호 디코딩 기능을 수행하는 엔트로피 디코딩 유닛(52)을 포함한다.
비디오 디코더(60)는 비디오 프레임들내의 블록들의 인트라- 및 인터-디코딩을 수행할 수 있다. 도 5의 예에서, 비디오 디코더(60)는 엔트로피 디코딩 유닛(52)(앞서 언급됨), 움직임 보상 유닛(54), 역 양자화 유닛(56), 역 변환 유닛(58) 및 기준 프레임 저장유닛(62)을 포함한다. 비디오 디코더(60)는 또한 합산기(64)를 포함한다. 선택적으로, 비디오 디코더(60)는 또한 합산기(64)의 출력을 필터링하는 디블록킹 필터(도시안됨)를 포함할 수 있다. 도 5는 비디오 블록들의 인터-디코딩을 위한 비디오 디코더(60)의 시간적 예측 컴포넌트들을 예시한다. 비록 도 5에 도시되지 않을지라도, 비디오 디코더(60)는 또한 임의의 비디오 블록들의 인트라-디코딩을 위한 공간적 예측 컴포넌트들을 포함할 수 있다.
언급한 바와같이, 엔트로피 디코딩 유닛(52)은 도 2의 엔트로피 인코딩 유닛(46)에 의하여 수행되는 인코딩의 상호 디코딩 기능을 수행한다. 일반적으로, 엔트로피 디코딩 유닛(52)은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하며 ? 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?, 신택스 엘리먼트에 기초하여 비디오 블록의 비-제로 값 서브-블록들을 생성하며, 비-제로 값 서브-블록들을 엔트로피 코딩한다.
디코딩 측에서, 비-제로 값 서브-블록들을 생성하는 것은 신택스 엘리먼트에 기초하여 비트스트림을 파싱하는 것을 포함한다. 엔트로피 디코딩 유닛(52)은 신택스 엘리먼트 및 엔트로피 코딩된 비-제로 값 서브-블록들을 포함하나 모든 계수들이 0인 임의의 제로-값 서브-블록들을 포함하지 않는 비트스트림을 수신한다. 엔트로피 디코딩 유닛(52)은 신택스 엘리먼트에 기초하여 이러한 제로-값 서브-블록들을 식별할 수 있다. 엔트로피 디코딩 유닛(52)은 비-제로 값 서브-블록들을 생성하기 위하여 신택스 엘리먼트에 기초하여 비트스트림을 파싱하며, 다음으로 임의의 제로-값 서브-블록들의 제로 값 계수들의 세트들을 재구성한다. 다시 말해서, 제로-값 서브-블록들의 계수들은 인코딩된 비트스트림으로부터 제외되며, 엔트로피 디코딩 유닛(52)은 이러한 값들을 생성한다. 엔트로피 디코딩 유닛(52)은 임의의 제로-값 서브-블록들이 제외되었는지의 여부를 결정하기 위하여 단순히 신택스 엘리먼트를 사용하며, 따라서 디코더(60)에서 생성될 필요가 있다.
예컨대 인코더(50)의 엔트로피 인코더(46)(도 2)에 의하여 수행되는 인터리빙 프로세스는 비-제로 값 서브-블록들 및 제로 값 서브-블록들을 정의할 수 있다. 더욱이, 엔트로피 인코더(46)는 가능한 경우에 제로 값 서브-블록들을 생성하기 위하여 수행할 인터리빙의 타입을 선택할 수 있다. 이하의 예들에서는 비디오 블록이 계수들의 8×8 블록을 포함하고 서브-블록들이 4×4 블록들을 포함한다는 것이 가정된다. 그러나, 본 발명은 블록들의 임의의 특정 크기들 또는 형상들에 제한되지 않는다. 서브-블록들은 일반적으로 코딩된 비디오 블록과 연관된 계수들의 서브-세트이나, 비디오 블록에서 계수들의 실제 수 및 서브-블록들에서 계수들의 수는 다양한 변형들 또는 구현들에 영향을 받는다.
신택스 엘리먼트는 신택스(블록들의 수)로서 표현될 수 있다. 4개의 4×4 서브-블록들로 인터리빙될 수 있는 8×8 비디오 블록의 예에서, 신택스(블록들의 수)는 1, 2, 3 또는 4의 값을 가정할 수 있다. 다른 예로서, 16×16 비디오 블록은 16개의 4×4 서브-블록들로 인터리빙될 수 있으며, 이러한 경우에 신택스(블록들의 수)는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 또는 16의 값을 가정할 수 있다. 다시, 비디오 블록들 및 서브-블록들의 많은 다른 형상들 및 크기들은 본 발명의 범위내에 있다. 임의의 경우들에서, 신택스(블록들의 수)의 값은 예컨대 4개의 4×4 서브-블록들로 인터리빙되는 8×8 비디오 블록에 대하여 1 또는 3의 값들로 제한될 수 있다.
도 6은 4의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다. 즉, 도 6에서 신택스(블록들의 수) = 4이다. 이러한 경우에, 인터리빙은 도 4 및 앞서 기술된 것과 동일하다. 매 4 번째 계수는 주어진 서브-블록에 포함된다. 도 3의 비디오 블록(80)은 64개의 계수들의 1-차원 벡터로서 표현될 수 있다.
4개의 상이한 인터리빙된 서브-블록들은 도 6에 도시된 바와같이 16개의 계수들의 4개의 상이한 1-차원 벡터들로서 표현될 수 있다. 이러한 경우에, 신택스(블록들의 수) = 4일때, 인터리빙된 서브-블록 1은 다음과 같으며,
인터리빙된 서브-블록 2는 다음과 같으며:
인터리빙된 서브-블록 3은 다음과 같으며:
인터리빙된 서브-블록 4는 다음과 같다.
신택스(블록들의 수) = 4인, 도 6의 설명은 서브-블록들 모두가 비-제로 값 서브-블록들이며 서브-블록들 모두가 제로-값 서브-블록들을 포함하지 않는다는 것을 디코더(60)에 시그널링할 수 있다.
그러나, 임의의 경우들에서, 낮은 숫자 계수들중 임의의 계수(도 3 참조)는 제로인 값들을 가질 수 있다. 만일 도 4 또는 도 6에 도시된 인터리빙이 사용되면, 서브-블록들의 각각은 비-제로 값들을 가질 수 있는, 높은 숫자 계수들의 적어도 일부분을 포함할 것이다. 이러한 경우에, 상이한 타입의 인터리빙은 제로-값 서브-블록들을 생성하는데 바람직할 수 있다. 만일 예컨대 계수들 49 내지 64의 모두가 제로 값들을 가지면(이는 매우 통상적임), 다수의 서브-블록들의 다른 계수들과 계수들 49 내지 64를 인터리빙하는 대신에 하나의 서브-블록에 계수들 49 내지 64의 모두를 포함시키는 것이 바람직할 수 있다.
도 7은 3의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시하는 테이블도이다. 즉, 도 7에서, 신택스(블록들의 수) = 3이다. 이러한 경우에, 매 3번째 계수는 주어진 서브-블록에 포함되며, 매 4번째 서브-블록은 제로-값 서브-블록을 형성하기 위하여 계수들 49-64를 포함한다. 인코더는 이러한 인터리빙을 수행할 수 있으며, 이러한 사실을 디코더에 전달하기 위하여 3인 신택스 엘리먼트를 사용한다.
이러한 경우에, 만일 도 3의 블록(80)이 다음과 같이 64개의 계수들의 1-차원 벡터로서 표현되면:
4개의 상이한 인터리빙된 서브-블록들은 도 7에 도시된 바와같이 16개의 계수들의 4개의 상이한 1-차원 벡터들로서 표현될 수 있다. 이러한 경우에, 인터리빙된 서브-블록 1은 다음과 같으며:
인터리빙된 서브-블록 2는 다음과 같으며:
인터리빙된 서브-블록 3은 다음과 같으며:
서브-블록 4는 다음과 같다.
서브-블록 4는 계수들 49 내지 64의 값들의 모두가 제로의 값들을 가지기 때문에 비트스트림으로 인코딩되지 않는다. 따라서, 서브-블록 4는 신택스 엘리먼트를 통해 디코더에서 식별가능한 제로-값 서브-블록이다. 기본적으로, 만일 신택스(블록들의 수) = 3 이면, 디코더(60)는 계수들 49 내지 64가 제로의 값들을 가지고 서브-블록들 1, 2 및 3이 도 7에 도시된 바와같이 인터리빙된다는 것을 추정할 수 있다. 결과적으로, 계수들 49 내지 64에 대한 정보를 전달하기 위하여 필요한 비트들은 코딩 효율성을 향상시키기 위하여 비트스트림으로부터 제거될 수 있다.
도 8은 2의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다. 즉, 도 8에서 신택스(블록들의 수) = 2이다. 이러한 경우에, 매 2번째 계수는 주어진 서브-블록에 포함되며, 제 3 및 제 4 서브-블록들은 2개의 제로-값 서브-블록들을 형성하기 위하여 계수들 33-48 및 49-64를 각각 포함한다.
이러한 경우에, 만일 도 3의 블록(80)이 다음과 같이 64개의 계수들의 1-차원 벡터로서 표현되면,
4개의 상이한 인터리빙된 서브-블록들은 도 8에 도시된 바와같이 16개의 계수들의 4개의 상이한 1-차원 벡터들로서 표현될 수 있다. 이러한 경우에, 인터리빙된 서브-블록 1은 다음과 같으며:
인터리빙된 서브-블록 2는 다음과 같으며:
서브-블록 3은 다음과 같으며:
서브-블록 4는 다음과 같다.
서브-블록들 3 및 4는 계수들 33 내지 64의 값들의 모두가 제로의 값들을 가지기 때문에 비트스트림으로 인코딩되지 않는다. 따라서, 서브-블록들 3 및 4는 신택스 엘리먼트에 의하여 식별될 수 있는 제로-값 서브-블록들을 포함한다. 기본적으로, 만일 신택스(블록들의 수) = 2이면, 디코더(60)는 계수들 33 내지 64가 제로의 값들을 가지고 서브-블록들 1 및 2가 도 8에 도시된 바와같이 인터리빙되었다는 것을 추정할 수 있다. 결과적으로, 이 경우에, 계수들 33 내지 64에 대한 정보를 전달하는데 필요한 비트들은 코딩 효율성을 향상시키기 위하여 비트스트림으로부터 제거될 수 있다.
도 9는 1의 예시적인 신택스 엘리먼트 값에 대하여 도 3에 도시된 8×8 비디오 블록의 4개의 상이한 4×4 서브-블록들의 계수들을 예시한 테이블도이다.
즉, 도 9에서 신택스(블록들의 수) = 1이다. 이러한 경우에, 서브-블록들은 스캐닝 순서로 정의되며, 제 2, 제 3 및 제 4 서브-블록들은 제로-값 서브-블록들을 포함한다.,
이러한 경우에, 만일 도 3의 블록(80)이 다음과 같이 64개의 계수들의 1-차원 벡터로서 표현되면,
4개의 상이한 인터리빙된 서브-블록들은 도 9에 도시된 바와같이 16개의 계수들의 4개의 상이한 1-차원 벡터들로서 표현될 수 있다. 이러한 경우에, 서브-블록 1은 다음과 같으며:
서브-블록 2는 다음과 같으며:
서브-블록 3은 다음과 같으며:
서브-블록 4는 다음과 같다.
서브-블록들 2, 3, 및 4는 계수들 17 내지 64의 값들의 모두가 제로의 값들을 가지기 때문에 비트스트림으로 인코딩되지 않는다. 따라서, 서브-블록들 2, 3 및 4는 신택스 엘리먼트에 의하여 식별될 수 있는 제로-값 서브-블록들을 포함한다. 기본적으로, 만일 신택스(블록들의 수) = 1이면, 도 9에 도시된 바와같이, 디코더(60)는 계수들 17 내지 64가 제로의 값들을 가지고 서브-블록 1이 계수들 1-16로서 정의된다는 것을 추정할 수 있다.
본 발명에 따른 인코딩된 비트스트림은 비-제로 값 서브-블록들과 연관된 엔트로피 코딩된 비트들을 포함하며 또한 기술된 신택스 엘리먼트를 포함하며, 이는 디코더가 비트스트림을 적절하게 파싱하고 비트스트림으로부터 제외된 임의의 제로-값 서브-블록들과 연관된 제로 값들을 생성하도록 한다. 신택스 엘리먼트는 인코딩된 비트스트림과 연관된 신택스 정보로서 전달될 수 있으며, 인코딩된 비트스트림과 연관된 이러한 신택스 정보를 전달하기 위하여 특별하게 정의된 비트스트림의 임의의 부분내에서 전달될 수 있다. 임의의 경우들에서, 신택스 엘리먼트는 네트워크 추상화 계층(NAL: network abstraction layer) 유닛 또는 헤더 파일의 부분으로서 전달될 수 있다. 임의의 경우에, 디코더는 신택스 정보를 이해하도록 프로그래밍될 수 있으며, 디코딩 프로세스에서 신택스 정보를 사용한다.
도 10은 본 발명에 따른 코딩(즉, 인코딩 또는 디코딩) 기술을 예시한 흐름도이다. 도 10에 도시된 바와같이, 엔트로피 코딩 유닛(예컨대, 도 2의 엔트로피 인코딩 유닛(46) 또는 도 5의 엔트로피 디코딩 유닛(52))은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하기 위하여 신택스 엘리먼트를 코딩한다(101). 비-제로 값 서브-블록은 적어도 하나의 비-제로 계수를 포함하는 계수들의 세트들을 포함할 수 있다. 대조적으로, 제로-값 서브-블록들은 제로의 값들을 가지는 모든 계수들을 포함하는 계수들의 세트들을 포함할 수 있다. 엔트로피 코딩 유닛(예컨대, 도 2의 엔트로피 인코딩 유닛(46) 또는 도 5의 엔트로피 디코딩 유닛(52))은 비-제로 값 서브-블록들을 생성하며(102), 비-제로 값 서브-블록들을 엔트로피 코딩한다(103).
도 11은 본 발명에 따른 인코딩 기술을 예시한 흐름도이다. 도 11에 도시된 바와같이, 엔트로피 인코딩 유닛(46)은 비디오 블록을 1-차원 벡터로 스캐닝한다(111). 이러한 스캐닝은 도 3에 도시된 지그-재그 스캔(zig-zag scan), 또는 수평 스캔, 수직 스캔, 역 지그-재그 스캔 등과 같은 다른 타입의 스캐닝 기술을 포함할 수 있다. 엔트로피 인코딩 유닛(46)은 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하기 위하여 신택스 엘리먼트를 인코딩하며(112), 서브 블록들에 대응하는 1-차원 벡터들의 세트를 생성하기 위하여 비디오 블록에 대응하는 1-차원 벡터를 인터리빙한다(113). 도 6-9는 4개의 4×4 서브-블록들로 인터리빙되는 8×8 블록에 대한 단계들(112, 113)의 예들을 예시하며, 여기서 인터리빙의 타입은 신택스 엘리먼트에 따른다. 여기에 기술된 바와같이, 엔트로피 인코딩 유닛(46)은 비-제로 값 서브-블록들을 엔트로피 인코딩하며(114), 제로-값 서브-블록들이 신택스 엘리먼트에 기초하여 디코더에서 재구성될 수 있기 때문에 제로-값 서브-블록들의 인코딩을 스킵할 수 있다.
도 12는 본 발명에 따른 디코딩 기술을 예시한 흐름도이다. 도 12에 도시된 바와같이, 엔트로피 디코딩 유닛(52)은 신택스 엘리먼트를 포함하는 비트스트림을 수신한다(121). 엔트로피 디코딩 유닛(52)은 비디오 블록의 비-제로 값 서브-블록들의 수를 생성하기 위하여 신택스 엘리먼트에 기초하여 비트스트림을 파싱한다(122). 예컨대, 신택스 엘리먼트는 인코더에 의하여 사용된 인터리빙의 타입을 엔트로피 디코딩 유닛(52)에 알릴 수 있다. 도 6-9 및 대응하는 앞의 설명은 8×8 계수 비디오 블록들에 대하여 정의될 수 있는 1, 2, 3 및 4의 신택스 엘리먼트 값들의 예들을 기술한다. 엔트로피 디코딩 유닛(52)은 비-제로 값 서브-블록들을 적절하게 생성하기 위한, 비트스트림을 파싱하는 방법을 결정하기 위하여 신택스 엘리먼트를 사용할 수 있다. 일단 비-제로 값 서브-블록들이 생성되면, 엔트로피 디코딩 유닛(52)은 비-제로 값 서브-블록들을 엔트로피 디코딩하며(123), 비트스트림에 포함되지 않은 임의의 제로-값 서브-블록들에 대한 제로 값 계수들을 생성한다(124). 다시, 신택스 엘리먼트는 비트스트림에 포함되지 않은 임의의 제로-값 서브-블록들을 엔트로피 디코딩 유닛(52)에 알린다.
도 1을 다시 참조하면, 본 발명에 따른 하나의 특정 예에서, 인코더(22)는 ITU H.264에 기술된 바와같이 4×4 CAVLC 코딩을 적용할 수 있으나, 가장 크게 스캐닝된 비디오 블록의 비-제로 값 서브-블록들에 이러한 4×4 CAVLC 코딩만을 적용할 수 있다. 기술된 신택스 엘리먼트는 제로-값 서브-블록들을 디코더에 알린다. 이러한 경우에, 인코더(22)는 다음과 같이 계수들의 4×4 비-제로 값 서브-블록을 인코딩하기 위하여 CAVLC 기술들을 적용한다. 첫째, 인코더(22)는 트레일링(trailing) 1들의 수와 관련하여 4×4 비-제로 값 서브-블록의 비-제로 계수들의 전체 수를 코딩한다. 트레일링 1들의 수는 계수 벡터가 역 스캐닝 순서로 판독될때 1보다 큰 크기를 가진 계수가 발생되기전에 발생되는 1의 크기를 가진 계수들의 수로서 정의될 수 있다. 이러한 정보를 코딩하기 위하여 사용되는 가변 길이 코드는 예측된 수의 비제로 계수들에 기초하며, 여기서 예측은 사전에 인코딩된 인접 블록들(예컨대, 상위 및 좌측 인접 블록들)의 비제로 계수들의 수에 기초한다.
둘째, 인코더(22)는 임의의 트레일링 1들의 부호(sign)를 코딩한다. 셋째, 인코더(22)는 트레일링 1들 외의 비제로 계수들의 레벨들(즉, 크기들)을 코딩한다. 넷째, 인코더(22)는 마지막 비제로 계수 전 계수 벡터의 제로 값들의 수, 즉 모든 "런들(run)"의 합을 코딩한다. 이러한 합산 값을 코딩할때 사용되는 가변 길이 코드는 이들 2개의 값들간에 임의의 관계가 통상적으로 존재하기 때문에 블록의 비제로 계수들의 전체 수에 따를 수 있다. 최종적으로, 인코더(22)는 계수 벡터의 마지막 비제로 값으로부터 시작하여 각각의 비제로 계수전에 발생하는 런을 코딩한다.
런 값을 인코딩하기 위하여 사용되는 가변 길이 코딩 테이블은 런들의 합에 기초하여 선택될 수 있다. 만일 예컨대 블록이 8의 런들의 합(sum of runs of 8)을 가지고 인코딩된 제 1 런이 6인 경우에, 모든 나머지 런들은 0, 1 또는 2이어야 한다. 가능한 런 길이가 점진적으로 짧아지기 때문에, 더 효율적인 가변 길이 코드들은 특정 런 값을 나타내기 위하여 필요한 비트들의 수를 최소화하도록 선택될 수 있다.
본 발명의 기술들은 무선 핸드셋, 및 집적회로(IC) 또는 IC들의 세트(즉, 칩 세트)를 포함하는 다양한 디바이스들 및 장치들에서 구현될 수 있다. 임의의 컴포넌트들, 모듈들 또는 유닛들은 기능적 양상들을 강조하기 위하여 기술되었으며 반드시 상이한 하드웨어 유닛들에 의한 이해를 필요로 하지 않는다.
따라서, 여기에서 제시된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 모듈들 또는 컴포넌트들로 기술된 임의의 특징들은 집적된 논리 장치로 함께 구현되거나 또는 개별적이나 공동 사용가능한 논리 장치들로서 개별적으로 구현될 수 있다. 만일 소프트웨어로 구현되면, 기술들은 실행될때 앞서 기술된 방법들중 하나 이상의 방법을 수행하는 명령들을 포함하는 컴퓨터-판독가능 매체에 의하여 적어도 부분적으로 실행될 수 있다. 컴퓨터-판독가능 데이터 저장 매체는 패키징 자료들을 포함할 수 있는 컴퓨터 프로그램 제품의 부분을 형성할 수 있다. 컴퓨터-판독가능 매체는 동기식 동적 랜덤 액세스 메모리(SDRAM)와 같은 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적 소거가능 프로그램가능 판독-전용 메모리(EEPROM), FLASH 메모리, 자기 또는 광 데이터 저장 매체 등을 포함할 수 있다. 부가적으로 또는 대안적으로, 기술들은 명령들 또는 데이터 구조들의 형태로 코드를 반송(carry) 또는 통신하며 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터-판독가능 매체에 의하여 적어도 부분적으로 실현될 수 있다.
코드는 하나 이상의 디지털 신호 프로세서들(DSP), 범용 마이크로프로세서들, 주문형 집적회로들(ASIC), 필드 프로그램가능 논리 어레이들(FPGA) 또는 다른 등가 집적 또는 개별 논리 회로와 같은 하나 이상의 프로세서들에 의하여 실행될 수 있다. 따라서, 여기에서 사용되는 용어 "프로세서"는 전술한 구조 또는 여기에서 제시된 기술들을 구현하는데 적절한 임의의 다른 구조중 임의의 구조를 지칭할 수 있다. 더욱이, 일부 양상들에서, 여기에 기술된 기능은 인코딩 및 디코딩을 위하여 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들내에 제공될 수 있거나 또는 CODEC(combined encoder/decoder)내에 통합될 수 있다. 또한, 기술들은 하나 이상의 회로들 또는 논리 엘리먼트들로 완전하게 구현될 수 있다.
본 발명의 다양한 양상들이 제시되었다. 이들 및 다른 양상들은 이하의 청구항들의 범위내에 있다.
Claims (47)
- 비디오 블록을 인코딩하기 위한 방법으로서,
계수들의 1-차원 벡터를 정의하기 위하여 상기 비디오 블록을 스캐닝하는 단계;
상기 비디오 블록의 서브-블록들의 1-차원 벡터들의 세트를 정의하기 위하여 상기 계수들의 1-차원 벡터를 분할하는 단계;
상기 비디오 블록의 비-제로(non-zero) 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하는 단계 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?;
인터리빙된 서브-블록들을 정의하기 위하여 상기 비-제로 값 서브-블록들의 계수들을 인터리빙하는 단계; 및
상기 인터리빙된 서브-블록들을 엔트로피 코딩하는 단계를 포함하는,
비디오 블록을 인코딩하기 위한 방법. - 제 1항에 있어서, 제로(zero)-값 서브-블록들은 모든 계수들이 제로(0)인 비디오 블록의 서브-블록들을 포함하며;
상기 방법은 상기 제로-값 서브-블록들의 엔트로피 인코딩을 스킵(skip)하는 단계를 더 포함하는, 비디오 블록을 인코딩하기 위한 방법. - 제 1항에 있어서, 상기 신택스 엘리먼트는 상기 비-제로 값 서브-블록들의 수 및 모든 계수들이 제로인 제로-값 서브-블록들의 수 모두를 정의하며;
상기 방법은 상기 제로-값 서브-블록들의 엔트로피 코딩을 스킵하는 단계를 더 포함하는, 비디오 블록을 인코딩하기 위한 방법. - 제 1항에 있어서, 상기 비디오 블록은 64개의 계수들을 포함하는 8×8 비디오 블록 및 256개의 계수들을 포함하는 16×16 비디오 블록 중 하나를 포함하며;
상기 서브-블록들은 16개의 계수들을 포함하는 4×4 블록들을 포함하는, 비디오 블록을 인코딩하기 위한 방법. - 제 1항에 있어서, 상기 비-제로 값 서브-블록들을 엔트로피 코딩하는 단계는 상기 비-제로 값 서브-블록들의 계수들에 대하여 콘텐츠 적응적 가변 길이 코딩(CAVLC: Content Adaptive Variable Length Coding) 또는 콘텍스트 적응적 2진 산술 코딩(CABAC: Context Adaptive Binary Arithmetic Coding) 중 적어도 하나를 수행하는 단계를 포함하는, 비디오 블록을 인코딩하기 위한 방법.
- 비디오 블록을 디코딩하기 위한 방법으로서,
인터리빙되고 엔트로피 코딩된 서브-블록들의 세트 및 상기 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 포함하는 비트스트림을 수신하는 단계 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?;
인터리빙된 서브-블록들을 정의하기 위하여 상기 인터리빙되고 엔트로피 코딩된 서브-블록들을 엔트로피 디코딩하는 단계;
상기 신택스 엘리먼트에 기초하여 하나 이상의 제로-값 서브-블록들을 생성하는 단계 ? 수신된 비트스트림은 상기 제로-값 서브-블록들을 포함하지 않음 ?;
상기 인터리빙된 서브-블록들 및 상기 하나 이상의 제로-값 서브-블록들에 기초하여 계수들의 1-차원 벡터를 생성하는 단계; 및
상기 비디오 블록의 2-차원 표현(representation)을 정의하기 위하여 상기 계수들의 1-차원 벡터를 역 스캐닝하는 단계를 포함하는,
비디오 블록을 디코딩하기 위한 방법. - 인코더를 포함하는 장치로서,
상기 인코더는,
계수들의 1-차원 벡터를 정의하기 위하여 비디오 블록을 스캐닝하며;
상기 비디오 블록의 서브-블록들의 1-차원 벡터들의 세트를 정의하기 위하여 상기 계수들의 1-차원 벡터를 분할하며;
상기 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?;
인터리빙된 서브-블록들을 정의하기 위하여 상기 비-제로 값 서브-블록들의 계수들을 인터리빙하며; 그리고
상기 인터리빙된 서브-블록들을 엔트로피 코딩하도록, 구성되는,
인코더를 포함하는 장치. - 제 7항에 있어서, 제로-값 서브-블록들은 모든 계수들이 제로인 상기 비디오 블록의 서브-블록들을 포함하며;
상기 인코더는 상기 제로-값 서브-블록들의 엔트로피 인코딩을 스킵(skip)하도록 추가적으로 구성되는, 인코더를 포함하는 장치. - 제 7항에 있어서, 상기 신택스 엘리먼트는 상기 비-제로 값 서브-블록들의 수 및 모든 계수들이 제로인 제로-값 서브-블록들의 수 모두를 정의하며,
상기 엔트로피 코딩 유닛은 상기 제로-값 서브-블록들의 엔트로피 코딩을 스킵하도록 추가적으로 구성되는, 인코더를 포함하는 장치. - 제 9항에 있어서, 상기 비디오 블록은 64개의 계수들을 포함하는 8×8 비디오 블록 및 256개의 계수들을 포함하는 16×16 비디오 블록 중 하나를 포함하며;
상기 서브-블록들은 16개의 계수들을 포함하는 4×4 블록들을 포함하는, 인코더를 포함하는 장치. - 제 7항에 있어서, 상기 인코더는 상기 비-제로 값 서브-블록들의 계수들에 대하여 콘텐츠 적응적 가변 길이 코딩(CAVLC) 또는 콘텍스트 적응적 2진 산술 코딩(CABAC) 중 적어도 하나를 수행하는, 인코더를 포함하는 장치.
- 제 7항에 있어서, 상기 장치는 집적회로 및 마이크로프로세서 중 하나를 포함하는, 인코더를 포함하는 장치.
- 디코더를 포함하는 장치로서,
상기 디코더는,
인터리빙되고 엔트로피 코딩된 서브-블록들의 세트와 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 포함하는 비트스트림을 수신하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?;
인터리빙된 서브-블록들을 정의하기 위하여 상기 인터리빙되고 엔트로피 코딩된 서브-블록들을 엔트로피 디코딩하며;
상기 신택스 엘리먼트에 기초하여 하나 이상의 제로-값 서브-블록들을 생성하며 ? 수신된 비트스트림은 상기 제로-값 서브-블록들을 포함하지 않음 ?;
상기 인터리빙된 서브-블록들 및 상기 하나 이상의 제로-값 서브-블록들에 기초하여 계수들의 1-차원 벡터를 생성하며; 그리고
상기 비디오 블록의 2-차원 표현을 정의하기 위하여 상기 계수들의 1-차원 벡터를 역 스캐닝하도록, 구성되는
디코더를 포함하는 장치. - 비디오 인코딩 장치에서의 실행시에 상기 비디오 인코딩 장치가 비디오 블록을 인코딩하도록 하는 명령들을 포함하는 컴퓨터-판독가능 매체로서,
상기 명령들은, 상기 장치로 하여금,
계수들의 1-차원 벡터를 정의하기 위하여 상기 비디오 블록을 스캐닝하며;
상기 비디오 블록의 서브-블록들의 1-차원 벡터들의 세트를 정의하기 위하여 상기 계수들의 1-차원 벡터를 분할하며;
상기 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?;
인터리빙된 서브-블록들을 정의하기 위하여 상기 비-제로 값 서브-블록들의 계수들을 인터리빙하며; 그리고
상기 인터리빙된 서브-블록들을 엔트로피 코딩하도록 하는,
컴퓨터-판독가능 매체. - 제 14항에 있어서, 제로-값 서브-블록들은 모든 계수들이 제로인 상기 비디오 블록의 서브-블록들을 포함하며;
상기 명령들은, 상기 장치로 하여금, 상기 제로-값 서브-블록들의 엔트로피 인코딩을 스킵하도록 하는, 컴퓨터-판독가능 매체. - 제 14항에 있어서, 상기 신택스 엘리먼트는 상기 비-제로 값 서브-블록들의 수 및 모든 계수들이 제로인 제로-값 서브-블록들의 수 모두를 정의하며;
상기 명령들은, 상기 장치로 하여금, 상기 제로-값 서브-블록들의 엔트로피 코딩을 스킵하도록 하는, 컴퓨터-판독가능 매체. - 제 14항에 있어서, 상기 비디오 블록은 64개의 계수들을 포함하는 8×8 비디오 블록 및 256개의 계수들을 포함하는 16×16 비디오 블록 중 하나를 포함하며;
상기 서브-블록들은 16개의 계수들을 포함하는 4×4 블록들을 포함하는, 컴퓨터-판독가능 매체. - 제 14항에 있어서, 상기 명령들은, 상기 장치로 하여금, 상기 비-제로 값 서브-블록들의 계수들에 대하여 콘텐츠 적응적 가변 길이 코딩(CAVLC) 또는 콘텍스트 적응적 2진 산술 코딩(CABAC) 중 적어도 하나를 수행하도록 하는, 컴퓨터-판독가능 매체.
- 비디오 디코딩 장치에서의 실행시에 상기 비디오 디코딩 장치가 비디오 블록을 디코딩하도록 하는 명령들을 포함하는 컴퓨터-판독가능 매체로서,
상기 명령들은, 상기 장치로 하여금,
인터리빙되고 엔트로피 코딩된 서브-블록들의 세트와 상기 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 포함하는 비트스트림을 수신하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?;
인터리빙된 서브-블록들을 정의하기 위하여 상기 인터리빙되고 엔트로피 코딩된 서브-블록들을 엔트로피 디코딩하며;
상기 신택스 엘리먼트에 기초하여 하나 이상의 제로-값 서브-블록들을 생성하며 ? 수신된 비트스트림은 상기 제로-값 서브-블록들을 포함하지 않음 ?;
상기 인터리빙된 서브-블록들 및 상기 하나 이상의 제로-값 서브-블록들에 기초하여 계수들의 1-차원 벡터를 생성하며; 그리고
상기 비디오 블록의 2-차원 표현을 정의하기 위하여 상기 계수들의 1-차원 벡터를 역 스캐닝하도록 하는,
컴퓨터-판독가능 매체. - 계수들의 1-차원 벡터를 정의하기 위하여 비디오 블록을 스캐닝하기 위한 수단;
상기 비디오 블록의 서브-블록들의 1-차원 벡터들의 세트를 정의하기 위하여 상기 계수들의 1-차원 벡터를 분할하기 위한 수단;
상기 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 코딩하기 위한 수단 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?;
인터리빙된 서브-블록들을 정의하기 위하여 상기 비-제로 값 서브-블록들의 계수들을 인터리빙하기 위한 수단; 및
상기 인터리빙된 서브-블록들을 엔트로피 코딩하기 위한 수단을 포함하는,
장치. - 제 20항에 있어서, 제로-값 서브-블록들은 모든 계수들이 제로인 상기 비디오 블록의 서브-블록들을 포함하며;
상기 장치는 상기 제로-값 서브-블록들의 엔트로피 인코딩을 스킵(skip)하기 위한 수단을 더 포함하는, 장치. - 제 20항에 있어서, 상기 신택스 엘리먼트는 상기 비-제로 값 서브-블록들의 수 및 모든 계수들이 제로인 제로-값 서브-블록들의 수 모두를 정의하며;
상기 장치는 상기 제로-값 서브-블록들의 엔트로피 코딩을 스킵하기 위한 수단을 더 포함하는, 장치. - 제 20항에 있어서, 상기 비디오 블록은 64개의 계수들을 포함하는 8×8 비디오 블록 및 256개의 계수들을 포함하는 16×16 비디오 블록 중 하나를 포함하며;
상기 서브-블록들은 16개의 계수들을 포함하는 4×4 블록들을 포함하는, 장치. - 제 20항에 있어서, 상기 비-제로 값 서브-블록들을 엔트로피 코딩하기 위한 수단은 상기 비-제로 값 서브-블록들의 계수들에 대하여 콘텐츠 적응적 가변 길이 코딩(CAVLC) 또는 콘텍스트 적응적 2진 산술 코딩(CABAC) 중 적어도 하나를 수행하기 위한 수단을 포함하는, 장치.
- 인코더 및 무선 송신기를 포함하는 장치로서,
상기 인코더는,
계수들의 1-차원 벡터를 정의하기 위하여 비디오 블록을 스캐닝하며,
상기 비디오 블록의 서브-블록들의 1-차원 벡터들의 세트를 정의하기 위하여 상기 계수들의 1-차원 벡터를 분할하며,
상기 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 인코딩하며 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?,
인터리빙된 서브-블록들을 정의하기 위하여 상기 비-제로 값 서브-블록들의 계수들을 인터리빙하며, 그리고
상기 인터리빙된 서브-블록들을 엔트로피 인코딩하도록, 구성되며;
상기 무선 송신기는 엔트로피 인코딩되고 인터리빙된 서브-블록들 및 상기 신택스 엘리먼트를 포함하는 비트스트림을 전송하는,
장치. - 인터리빙되고 엔트로피 코딩된 서브-블록들의 세트와 비디오 블록의 비-제로 값 서브-블록들의 수를 정의하는 신택스 엘리먼트를 포함하는 비트스트림을 수신하는 무선 수신기 ? 상기 비-제로 값 서브-블록들은 적어도 하나의 비-제로 계수를 포함함 ?; 및
디코더를 포함하며;
상기 디코더는,
인터리빙된 서브-블록들을 정의하기 위하여 상기 인터리빙되고 엔트로피 코딩된 서브-블록들을 엔트로피 디코딩하며,
상기 신택스 엘리먼트에 기초하여 하나 이상의 제로-값 서브-블록들을 생성하며 ? 수신된 비트스트림은 상기 제로-값 서브-블록들을 포함하지 않음 ?,
상기 인터리빙된 서브-블록들 및 상기 하나 이상의 제로-값 서브-블록들에 기초하여 계수들의 1-차원 벡터를 생성하며, 그리고
상기 비디오 블록의 2-차원 표현을 정의하기 위하여 상기 계수들의 1-차원 벡터를 역 스캐닝하도록 구성되는,
장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US97973907P | 2007-10-12 | 2007-10-12 | |
US60/979,739 | 2007-10-12 | ||
US12/247,788 US8483282B2 (en) | 2007-10-12 | 2008-10-08 | Entropy coding of interleaved sub-blocks of a video block |
US12/247,788 | 2008-10-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100072351A KR20100072351A (ko) | 2010-06-30 |
KR101214148B1 true KR101214148B1 (ko) | 2012-12-20 |
Family
ID=40534161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107010465A KR101214148B1 (ko) | 2007-10-12 | 2008-10-10 | 비디오 블록의 인터리빙된 서브?블록들의 엔트로피 코딩 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8483282B2 (ko) |
EP (1) | EP2218259A2 (ko) |
JP (2) | JP2011501535A (ko) |
KR (1) | KR101214148B1 (ko) |
CN (1) | CN101822065A (ko) |
TW (1) | TW200930102A (ko) |
WO (1) | WO2009049260A2 (ko) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8416859B2 (en) * | 2006-11-13 | 2013-04-09 | Cisco Technology, Inc. | Signalling and extraction in compressed video of pictures belonging to interdependency tiers |
US20080115175A1 (en) * | 2006-11-13 | 2008-05-15 | Rodriguez Arturo A | System and method for signaling characteristics of pictures' interdependencies |
US8873932B2 (en) | 2007-12-11 | 2014-10-28 | Cisco Technology, Inc. | Inferential processing to ascertain plural levels of picture interdependencies |
US8155207B2 (en) | 2008-01-09 | 2012-04-10 | Cisco Technology, Inc. | Processing and managing pictures at the concatenation of two video streams |
US8875199B2 (en) * | 2006-11-13 | 2014-10-28 | Cisco Technology, Inc. | Indicating picture usefulness for playback optimization |
US20090100482A1 (en) * | 2007-10-16 | 2009-04-16 | Rodriguez Arturo A | Conveyance of Concatenation Properties and Picture Orderness in a Video Stream |
US8804845B2 (en) * | 2007-07-31 | 2014-08-12 | Cisco Technology, Inc. | Non-enhancing media redundancy coding for mitigating transmission impairments |
US8958486B2 (en) * | 2007-07-31 | 2015-02-17 | Cisco Technology, Inc. | Simultaneous processing of media and redundancy streams for mitigating impairments |
US8416858B2 (en) * | 2008-02-29 | 2013-04-09 | Cisco Technology, Inc. | Signalling picture encoding schemes and associated picture properties |
KR101426272B1 (ko) * | 2008-03-10 | 2014-08-07 | 삼성전자주식회사 | 영상 부호화장치 및 영상 복호화장치 |
WO2009152450A1 (en) | 2008-06-12 | 2009-12-17 | Cisco Technology, Inc. | Picture interdependencies signals in context of mmco to assist stream manipulation |
KR20090129926A (ko) * | 2008-06-13 | 2009-12-17 | 삼성전자주식회사 | 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치 |
US8699578B2 (en) | 2008-06-17 | 2014-04-15 | Cisco Technology, Inc. | Methods and systems for processing multi-latticed video streams |
US8705631B2 (en) * | 2008-06-17 | 2014-04-22 | Cisco Technology, Inc. | Time-shifted transport of multi-latticed video for resiliency from burst-error effects |
US8971402B2 (en) | 2008-06-17 | 2015-03-03 | Cisco Technology, Inc. | Processing of impaired and incomplete multi-latticed video streams |
EP2297964A4 (en) * | 2008-06-25 | 2017-01-18 | Cisco Technology, Inc. | Support for blocking trick mode operations |
WO2010033642A2 (en) * | 2008-09-16 | 2010-03-25 | Realnetworks, Inc. | Systems and methods for video/multimedia rendering, composition, and user-interactivity |
CN102210147B (zh) * | 2008-11-12 | 2014-07-02 | 思科技术公司 | 处理具有[aar]单个视频信号的多个处理后的表示的视频[aar]节目以用于重建和输出 |
US8949883B2 (en) | 2009-05-12 | 2015-02-03 | Cisco Technology, Inc. | Signalling buffer characteristics for splicing operations of video streams |
US8279926B2 (en) | 2009-06-18 | 2012-10-02 | Cisco Technology, Inc. | Dynamic streaming with latticed representations of video |
US20110002386A1 (en) * | 2009-07-06 | 2011-01-06 | Mediatek Singapore Pte. Ltd. | Video encoder and method for performing intra-prediction and video data compression |
US9161057B2 (en) * | 2009-07-09 | 2015-10-13 | Qualcomm Incorporated | Non-zero rounding and prediction mode selection techniques in video encoding |
KR101474756B1 (ko) | 2009-08-13 | 2014-12-19 | 삼성전자주식회사 | 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치 |
US8976871B2 (en) * | 2009-09-16 | 2015-03-10 | Qualcomm Incorporated | Media extractor tracks for file format track selection |
JP5591932B2 (ja) * | 2009-09-22 | 2014-09-17 | クゥアルコム・インコーポレイテッド | ファイルフォーマットトラック選択のためのメディアエクストラクタトラック |
AU2015201329C1 (en) * | 2009-10-28 | 2017-01-19 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding residual block, and method and apparatus for decoding residual block |
KR101457894B1 (ko) * | 2009-10-28 | 2014-11-05 | 삼성전자주식회사 | 영상 부호화 방법 및 장치, 복호화 방법 및 장치 |
US20110222837A1 (en) * | 2010-03-11 | 2011-09-15 | Cisco Technology, Inc. | Management of picture referencing in video streams for plural playback modes |
CN113556563B (zh) | 2010-04-13 | 2024-08-20 | Ge视频压缩有限责任公司 | 显著性图和变换系数块的编码 |
KR20120009618A (ko) * | 2010-07-19 | 2012-02-02 | 에스케이 텔레콤주식회사 | 주파수변환단위 분할부호화 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치 |
US9172963B2 (en) | 2010-11-01 | 2015-10-27 | Qualcomm Incorporated | Joint coding of syntax elements for video coding |
US8976861B2 (en) * | 2010-12-03 | 2015-03-10 | Qualcomm Incorporated | Separately coding the position of a last significant coefficient of a video block in video coding |
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 |
JP5809292B2 (ja) | 2011-01-14 | 2015-11-10 | ジーイー ビデオ コンプレッション エルエルシー | エントロピー符号化および復号化スキーム |
US10075706B2 (en) | 2011-01-19 | 2018-09-11 | Sun Patent Trust | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
US9338449B2 (en) | 2011-03-08 | 2016-05-10 | Qualcomm Incorporated | Harmonized scan order for coding transform coefficients in video coding |
CN102685503B (zh) | 2011-03-10 | 2014-06-25 | 华为技术有限公司 | 变换系数的编码方法、变换系数的解码方法,和装置 |
WO2012147966A1 (ja) * | 2011-04-27 | 2012-11-01 | シャープ株式会社 | 画像復号装置、画像符号化装置、および符号化データのデータ構造 |
US8995523B2 (en) * | 2011-06-03 | 2015-03-31 | Qualcomm Incorporated | Memory efficient context modeling |
RS57336B1 (sr) * | 2012-07-02 | 2018-08-31 | Samsung Electronics Co Ltd | Postupak za entropijsko dekodiranje video zapisa |
US9264713B2 (en) * | 2012-07-11 | 2016-02-16 | Qualcomm Incorporated | Rotation of prediction residual blocks in video coding with transform skipping |
US9602822B2 (en) * | 2013-04-17 | 2017-03-21 | Qualcomm Incorporated | Indication of cross-layer picture type alignment in multi-layer video coding |
MX349871B (es) | 2013-05-08 | 2017-08-17 | Lg Electronics Inc | Aparato para transmitir señales de difusion, aparato para recibir señales de difusion, metodo para transmitir señales de difusion y metodo para recibir señales de difusion. |
KR102250088B1 (ko) * | 2013-10-24 | 2021-05-10 | 삼성전자주식회사 | 비디오 스트림을 복호화하는 방법 및 장치 |
US9877048B2 (en) * | 2014-06-09 | 2018-01-23 | Qualcomm Incorporated | Entropy coding techniques for display stream compression (DSC) |
US9936201B2 (en) | 2015-01-27 | 2018-04-03 | Qualcomm Incorporated | Contexts for large coding tree units |
JP6868786B2 (ja) * | 2016-05-13 | 2021-05-12 | ソニーグループ株式会社 | 画像処理装置および方法 |
KR102151595B1 (ko) * | 2016-09-09 | 2020-09-03 | 샤프 가부시키가이샤 | 긴급 경보 메시지들의 시그널링을 위한 시스템들 및 방법들 |
CN108495073B (zh) * | 2018-03-29 | 2020-11-06 | 瑞芯微电子股份有限公司 | 一种视频图像帧场检测方法、存储介质及计算机 |
US10666985B1 (en) | 2018-11-18 | 2020-05-26 | Sony Corporation | Sub-block based entropy coding for image coding |
US10666986B1 (en) | 2019-03-08 | 2020-05-26 | Sony Corporation | Sub-block based entropy coding for embedded image codec |
CN112449188B (zh) * | 2019-08-28 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 视频解码方法、编码方法、装置、介质及电子设备 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2785209B2 (ja) * | 1989-09-19 | 1998-08-13 | ソニー株式会社 | データ伝送装置 |
US5748244A (en) | 1995-03-28 | 1998-05-05 | Daewoo Electronics Co., Ltd. | Adaptive runlength coding based on zero and non-zero subblocks |
US5740283A (en) | 1995-07-06 | 1998-04-14 | Rubin, Bednarek & Associates, Inc. | Digital video compression utilizing mixed vector and scalar outputs |
JP2001215937A (ja) | 2000-02-02 | 2001-08-10 | Denso Corp | 映像信号処理装置 |
US6795584B2 (en) | 2002-10-03 | 2004-09-21 | Nokia Corporation | Context-based adaptive variable length coding for adaptive block transforms |
JP3679083B2 (ja) * | 2002-10-08 | 2005-08-03 | 株式会社エヌ・ティ・ティ・ドコモ | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム |
EP1636995B1 (en) * | 2003-06-25 | 2010-06-02 | Thomson Licensing | Encoding method and apparatus for insertion of watermarks in a compressed video bitstream |
US7599435B2 (en) * | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
US7586924B2 (en) * | 2004-02-27 | 2009-09-08 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream |
US20060008009A1 (en) | 2004-07-09 | 2006-01-12 | Nokia Corporation | Method and system for entropy coding for scalable video codec |
US20060078049A1 (en) | 2004-10-13 | 2006-04-13 | Nokia Corporation | Method and system for entropy coding/decoding of a video bit stream for fine granularity scalability |
US7953155B2 (en) * | 2004-12-16 | 2011-05-31 | Tut Systems, Inc. | Methods of selecting an encoding mode |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
JP4901450B2 (ja) * | 2006-12-19 | 2012-03-21 | 株式会社東芝 | 動画像符号化装置 |
US8189676B2 (en) * | 2007-04-05 | 2012-05-29 | Hong Kong University Of Science & Technology | Advance macro-block entropy coding for advanced video standards |
WO2008152573A2 (en) * | 2007-06-12 | 2008-12-18 | Nokia Corporation | Joint coding of multiple transform blocks with reduced number of coefficients |
US8406307B2 (en) * | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
-
2008
- 2008-10-08 US US12/247,788 patent/US8483282B2/en not_active Expired - Fee Related
- 2008-10-10 JP JP2010529121A patent/JP2011501535A/ja not_active Withdrawn
- 2008-10-10 KR KR1020107010465A patent/KR101214148B1/ko not_active IP Right Cessation
- 2008-10-10 WO PCT/US2008/079649 patent/WO2009049260A2/en active Application Filing
- 2008-10-10 EP EP08838298A patent/EP2218259A2/en not_active Withdrawn
- 2008-10-10 CN CN200880111058A patent/CN101822065A/zh active Pending
- 2008-10-13 TW TW097139233A patent/TW200930102A/zh unknown
-
2013
- 2013-07-05 JP JP2013141572A patent/JP5623602B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2218259A2 (en) | 2010-08-18 |
TW200930102A (en) | 2009-07-01 |
US20090097568A1 (en) | 2009-04-16 |
WO2009049260A3 (en) | 2009-05-28 |
JP2011501535A (ja) | 2011-01-06 |
KR20100072351A (ko) | 2010-06-30 |
JP5623602B2 (ja) | 2014-11-12 |
US8483282B2 (en) | 2013-07-09 |
WO2009049260A2 (en) | 2009-04-16 |
CN101822065A (zh) | 2010-09-01 |
JP2013243716A (ja) | 2013-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101214148B1 (ko) | 비디오 블록의 인터리빙된 서브?블록들의 엔트로피 코딩 | |
JP5032657B2 (ja) | ビデオコーディングでの適応係数スキャン | |
KR101168843B1 (ko) | 수평 및 수직 대칭에 기초한 필터 계수들의 비디오 코딩 | |
EP2537344B1 (en) | Block type signalling in video coding | |
KR101135293B1 (ko) | 비디오 블록 헤더 정보의 적응적 코딩 | |
KR101323546B1 (ko) | 비디오 코딩시 액티비티 메트릭들에 기초한 필터 예측 | |
JP5453253B2 (ja) | サブバンドのエントロピーコーディングのためのサブバンドスキャン技術 | |
KR101164038B1 (ko) | 증대 계층의 스케일러블 비디오 코딩에서의 정제 계수와 유효 계수의 결합된 런렝스 코딩 | |
KR101376008B1 (ko) | 캐시 히트들을 향상시키기 위한 디코더에서의 시간 및 공간 비디오 블록 재정렬 | |
US20110249754A1 (en) | Variable length coding of coded block pattern (cbp) in video compression | |
KR20130105894A (ko) | 비디오 데이터의 블록의 계수들의 모드 의존 스캐닝 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |