KR101147943B1 - 스케일러블 비디오 코딩을 위한 개선된 향상 계층 코딩 - Google Patents

스케일러블 비디오 코딩을 위한 개선된 향상 계층 코딩 Download PDF

Info

Publication number
KR101147943B1
KR101147943B1 KR1020107010570A KR20107010570A KR101147943B1 KR 101147943 B1 KR101147943 B1 KR 101147943B1 KR 1020107010570 A KR1020107010570 A KR 1020107010570A KR 20107010570 A KR20107010570 A KR 20107010570A KR 101147943 B1 KR101147943 B1 KR 101147943B1
Authority
KR
South Korea
Prior art keywords
video block
coefficient
coefficients
video
subdivisions
Prior art date
Application number
KR1020107010570A
Other languages
English (en)
Other versions
KR20100066584A (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
Priority claimed from US12/250,784 external-priority patent/US8848787B2/en
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20100066584A publication Critical patent/KR20100066584A/ko
Application granted granted Critical
Publication of KR101147943B1 publication Critical patent/KR101147943B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • 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
    • 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

본 개시물은 스케일러블 비디오 코딩 기술들을 설명한다. 특히, 이 기술들은 단일의 코딩 패스에서 향상 계층 비트 스트림들에 대한 비디오 블록의 세분들을 인코딩하는데 이용되어 코딩 복잡도, 코딩 지연 및 메모리 요건을 감소시킬 수도 있다. 일부 경우들에서, 이 기술들은 임의의 후속 계수들의 정보 없이 향상 계층의 계수 벡터의 각 넌제로 계수를 인코딩한다. 단일의 패스에서 향상 계층을 코딩하는 것은 계수 벡터를 분석하기 위한 제 1 패스 및 그 분석에 기초하여 계수 벡터를 코딩하기 위한 제 2 패스를 수행할 필요성을 제거할 수도 있다.

Description

스케일러블 비디오 코딩을 위한 개선된 향상 계층 코딩{IMPROVED ENHANCEMENT LAYER CODING FOR SCALABLE VIDEO CODING}
본 출원은 2007년 10월 15일자로 출원된 미국 가출원번호 제60/979,919호 및 2007년 10월 16일자로 출원된 미국 가출원번호 제60/980,214호의 이익을 주장한다. 이들 출원들 각각의 내용은 본원에 참조에 의해 포함된다.
본 개시물은 디지털 비디오 코딩에 관한 것으로, 더 상세하게는, 비디오 데이터의 스케일러블 비디오 코딩에 관한 것이다.
디지털 비디오 기능들이 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템, 무선 통신 디바이스, 무선 브로드캐스트 시스템, 개인 휴대 정보 단말기 (PDA), 랩탑 또는 데스크탑 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게이밍 디바이스, 비디오 게임 콘솔, 셀룰러 또는 위성 무선 전화기 등을 포함하는 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오를 보다 효율적으로 송수신하기 위해, MPEG (Motion Pictures Expert Group)-2, MPEG-4 또는 ITU-T (International Telecommunication Union Standardization Sector) H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) (이하, "H.264/MPEG-4 Part 10 AVC" 표준) 와 같은 비디오 압축 기술들을 실행한다. 비디오 압축 기술들은 비디오 시퀀스에 고유한 리던던시 (redundancy) 를 감소 또는 제거하기 위해 공간적 예측 및 시간적 예측을 수행한다.
비디오 코딩에 있어서, 비디오 압축은 통상적으로 예측 비디오 블록을 생성하기 위해 공간적 예측 및/또는 모션 추정 및 모션 보상을 포함한다. 인트라-코딩은 공간적 예측에 의존하여 소정의 코딩 유닛, 예를 들어, 프레임 또는 슬라이스 내의 비디오 블록들 사이에서의 공간적 리던던시를 감소 또는 제거한다. 즉, 비디오 인코더는 공간적 예측을 수행하여 데이터를 동일한 코딩 유닛 내의 다른 데이터에 기초하여 압축한다. 반면에, 인터-코딩은 시간적 예측에 의존하여 비디오 시퀀스의 연속적인 비디오 프레임들의 비디오 블록들 사이에서의 시간적 리던던시를 감소 또는 제거한다. 따라서, 인터-코딩의 경우, 비디오 인코더는 모션 추정 및 모션 보상을 수행하여 2 개 이상의 인접한 코딩 유닛들의 비디오 블록들을 매칭시키는 움직임을 추적한다.
공간적 또는 시간적 예측 후에, 잔여 계수들 (residual coefficients) 의 블록 (잔여 블록 또는 잔여 정보로 지칭) 이 코딩되고 있는 원래의 비디오 블록으로부터 예측 비디오 블록을 뺌 (subtract) 으로써 생성된다. 잔여 블록은 예측 비디오 블록과 원래의 비디오 블록 사이의 차이를 정량화하는 계수 값들의 2 차원 행렬일 수도 있다. 비디오 인코더는 잔여 블록에 변환, 양자화 및 엔트로피 코딩 프로세스를 적용하여 잔여 블록의 통신과 연관된 비트 레이트를 더욱 감소시킬 수도 있다. 변환 기술들은 이산 코사인 변환 (DCT), 웨이블릿 변환, 정수 변환 또는 다른 유형의 변환을 포함할 수도 있다.
예를 들어, DCT 변환에 있어서, 변환 프로세스는 픽셀-도메인 계수들의 세트를 주파수 도메인 또는 변환 도메인에서 픽셀-도메인 계수들의 에너지를 나타내는 변환 계수들로 컨버팅한다. 양자화는 변환 계수들에 적용되어 양자화된 변환 계수들을 생성한다. 양자화는 일반적으로 임의의 소정의 계수와 연관된 비트들의 수를 제한한다. 비디오 인코더는 양자화된 변환 계수들을 엔트로피 인코딩하여 양자화된 변환 계수들을 더욱 압축한다. 비디오 인코더는 가변 길이 코딩 (VLC; Variable Length Coding), 산술 코딩, 고정 길이 코딩 또는 이들의 조합을 이용하여 계수들을 엔트로피 인코딩할 수도 있다. 비디오 디코더는 비디오 시퀀스를 복원하기 위해 역연산 (inverse operation) 을 수행할 수도 있다.
MPEG-2 와 같은 일부 비디오 코딩 표준들은 비디오를 비교적 일정한 품질, 비트 레이트 또는 공간적 해상도로 인코딩한다. 이러한 기술은 비디오 애플리케이션들을 유사한 디코더 기능들 (예를 들어, 메모리 또는 프로세싱 리소스들) 및/또는 접속 품질들을 갖는 디바이스들에 제공하기에 충분할 수도 있다. 그러나, 보다 최신의 비디오 송신 시스템들은 통상적으로 가지각색의 디코더 기능들 및/또는 접속 품질들을 가진 디바이스들을 포함한다. 이러한 시스템들에 있어서, 비교적 일정한 품질, 비트 레이트 또는 공간적 해상도로 인코딩된 비디오를 송신하는 것은 비디오 애플리케이션이 적절한 디코더 기능들 및/또는 접속 품질들을 갖는 디바이스들에 대해 작동하게 하고 적절한 디코더 기능들 및/또는 접속 품질들을 갖지 않는 디바이스들에 대해 작동하지 않게 한다. 예를 들어, 무선 콘텍스트 (wireless context) 에서, 비디오 송신의 소스에 더 근접하게 위치되는 디바이스들은 비디오 송신의 소스로부터 더 멀리 위치되는 디바이스들보다 더 높은 품질의 접속을 할 수도 있다. 이로써, 비디오 송신의 소스로부터 더 멀리 위치되는 디바이스들은 일정한 품질, 비트 레이트 또는 공간적 해상도로 송신된 인코딩된 비디오를 수신할 수 없을 수도 있다.
다른 비디오 코딩 표준들은 이들 문제들을 극복하기 위해 스케일러블 코딩 기술들을 이용한다. 예를 들어, ITU-T H.264/MPEG-4, Part 10, AVC 의 확장에 따른 스케일러블 비디오 코딩 (SVC; Scalable Video Coding) 은 비디오 시퀀스가 기본 계층 및 하나 이상의 스케일러블 향상 계층들로서 인코딩되는 비디오 코딩을 지칭한다. SVC 의 경우, 기본 계층은 통상적으로 기본적인 공간적, 시간적 및/또는 품질 레벨을 가진 비디오 데이터를 운반한다. 하나 이상의 향상 계층들은 더 높은 공간적, 시간적 및/또는 품질 레벨을 지원하기 위해 부가적인 비디오 데이터를 운반한다. 향상 계층은 예를 들어 기본 계층의 프레임들에 공간적 해상도를 부가할 수도 있고, 또는 전체 프레임 레이트를 증가시키기 위해 부가적인 프레임들을 부가할 수도 있다. 일부 경우들에서는, 기본 계층이 향상 계층들의 송신보다 더 신뢰할 수 있는 방식으로 송신될 수도 있다. 이로써, 인코딩된 비디오의 소스로부터 더 멀리 위치되거나 더 낮은 디코더 기능들을 가진 디바이스들은 가장 낮은 공간적, 시간적 및/또는 품질 레벨에도 불구하고, 기본 계층, 및 그에 따른 비디오 시퀀스를 수신할 수 있을 것이다.
본 개시물은 단일의 코딩 패스에서 향상 계층 비트 스트림의 엔트로피 인코딩을 허용하는 스케일러블 비디오 코딩 기술들을 설명한다. 종래에는, 향상 계층 비트 스트림이 다수의 코딩 패스들을 이용하여 인코딩된다. 예를 들어, 향상 계층의 각 비디오 블록에 대해, 제 1 코딩 패스는 블록을 엔트로피 코딩하기 위해 코딩 테이블들 (또는 코드북들) 을 선택하는데 이용하기 위한 블록에 대한 통계 (statistics) 를 수집할 수도 있고, 제 2 코딩 패스는 선택된 코딩 테이블들을 이용하여 블록을 엔트로피 인코딩할 수도 있다. 그러나, 본 개시물 내의 기술들에 따르면, 향상 계층 비트 스트림의 비디오 블록은 비디오 코딩 테이블 선택에 이용하기 위한 통계를 수집하기 위한 제 1 코딩 패스를 수행하지 않고 엔트로피 인코딩된다.
대신에, 향상 계층은 단일의 코딩 패스에서 향상 계층의 계수들을 일 계수씩 (on a coefficient-by-coefficient basis) 인코딩하는 코딩 기술을 이용하여 인코딩된다. 일 경우에, 비디오 인코더는 향상 계층 비디오 블록의 넌제로 계수들 (nonzero coefficients) 각각에 대해 EOB (End Of Block) 심볼, 런 길이 (run length) 및 부호를 인코딩할 수도 있다. 비디오 인코더는 단지 단일의 코딩 테이블만을 이용하여 향상 계층의 비디오 블록을 인코딩하며, 그 때문에 코딩 테이블들을 선택하는데 이용될 통계를 수집하기 위한 제 1 코딩 패스를 수행할 필요성을 제거할 수도 있다.
부가적으로, 비디오 인코더는 향상 계층 내의 넌제로 계수들의 크기 (magnitude) 를 인코딩하지 않을 수도 있다. 이 방식으로, 향상 계층의 모든 넌제로 계수들의 크기는 크기 1 로 제한될 수도 있다. 향상 계층의 계수들의 크기를 인코딩하지 않는 것은 피크 신호 대 잡음비 (PSNR) 에 있어서 약간의 손실을 초래할 수도 있지만, 향상 계층을 인코딩하는데 이용되는 비트들의 수를 감소시킬 수도 있다. 본 개시물의 기술들은 몇몇 이점들을 제공할 수도 있다. 예를 들어, 이 기술은 코딩 효율을 유지하면서 향상 계층 비트 스트림을 인코딩하기 위한 메모리 요건, 코딩 복잡도 및 코딩 지연을 감소시킬 수도 있다.
일 양태에서, 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 인코딩하는 방법은 기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하는 단계를 포함한다. 이 방법은 또한 적어도 하나의 향상 계층 비트 스트림의 일부로서, 제 1 품질로 인코딩된 비디오 블록과 결합될 때 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들 (refinements) 을 인코딩하는 단계를 포함한다. 이 방법은 또한 비디오 블록의 세분들이 단일의 인코딩 패스에서 인코딩되는 것을 포함한다.
다른 양태에서, 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 인코딩하는 디바이스는 기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하고, 적어도 하나의 향상 계층 비트 스트림의 일부로서, 제 1 품질로 인코딩된 비디오 블록과 결합될 때 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들을 인코딩하는 적어도 하나의 인코더를 포함한다. 비디오 블록의 세분들은 단일의 인코딩 패스에서 인코딩된다.
다른 양태에서, 컴퓨터-판독가능 매체는, 하나 이상의 프로세서들로 하여금, 기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하고; 적어도 하나의 향상 계층 비트 스트림의 일부로서, 제 1 품질로 인코딩된 비디오 블록과 결합될 때 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들을 인코딩하도록 하는 명령들을 포함한다. 비디오 블록의 세분들은 단일의 인코딩 패스에서 인코딩된다.
다른 양태에서, 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 인코딩하는 디바이스는 기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하는 제 1 수단 및 적어도 하나의 향상 계층 비트 스트림의 일부로서, 제 1 품질로 인코딩된 비디오 블록과 결합될 때 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들을 인코딩하는 제 2 수단을 포함한다. 비디오 블록의 세분들은 단일의 인코딩 패스에서 인코딩된다.
다른 양태에서, 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 디코딩하는 방법은 제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하고 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들을 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 단계를 포함한다. 향상 계층을 디코딩하는 단계는 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이 및 넌제로 계수의 부호를 디코딩하는 단계를 포함한다.
다른 양태에서, 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 디코딩하는 디바이스는 제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하고 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들을 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 적어도 하나의 디코더를 포함한다. 적어도 하나의 디코더는 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이 및 넌제로 계수의 부호를 디코딩한다.
다른 양태에서, 컴퓨터-판독가능 매체는 하나 이상의 프로세서들로 하여금, 제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하고; 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들을 획득하기 위해 향상 계층 비트 스트림을 디코딩하도록 하는 명령들을 포함한다. 이 명령들은 하나 이상의 프로세서들로 하여금, 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이 및 넌제로 계수의 부호를 디코딩하도록 한다.
다른 양태에서, 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 디코딩하는 디바이스는 제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하는 제 1 수단 및 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 비디오 블록의 세분들을 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 제 2 수단을 포함한다. 제 2 디코딩 수단은 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이 및 넌제로 계수의 부호를 디코딩한다.
본 개시물에 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 소프트웨어는 마이크로프로세서, 주문형 집적 회로 (ASIC), 필드 프로그램가능한 게이트 어레이 (FPGA), 또는 디지털 신호 프로세서 (DSP) 와 같은 하나 이상의 프로세서들을 지칭할 수도 있는 프로세서, 또는 다른 등가의 통합된 또는 별개의 로직 회로에서 실행될 수도 있다. 기술들을 실행하기 위한 명령들을 포함하는 소프트웨어는 처음에 컴퓨터-판독가능 매체에 저장되며 프로세서에 의해 로딩 및 실행될 수도 있다.
따라서, 본 개시물은 또한 본 개시물에 설명한 바와 같이 프로세서로 하여금 다양한 기술들 중 임의의 기술을 수행하도록 하는 명령들을 포함하는 컴퓨터-판독가능 매체를 고려한다. 일부 경우들에서, 컴퓨터-판독가능 매체는 제조업자에게 팔리게 되고/되거나 디바이스에서 이용될 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있으며, 일부 경우에는 패키지물들을 또한 포함할 수도 있다.
본 개시물의 하나 이상의 양태들의 상세는 이하의 첨부 도면 및 설명에서 기술된다. 본 개시물에 설명된 기술들의 다른 특징들, 목적들, 및 이점들은 설명과 도면으로부터, 그리고 특허청구범위로부터 명백할 것이다.
도 1 은 비디오 스케일러빌리티를 지원하는 비디오 송신 시스템을 나타낸 블록도이다.
도 2 는 도 1 의 코딩 시스템의 소스 디바이스 및 목적지 디바이스를 더욱 상세하게 나타낸 블록도이다.
도 3 은 일 예시적인 기본 계층 인코더 및 향상 계층 인코더를 더욱 상세하게 나타낸 블록도이다.
도 4 는 일 예시적인 기본 계층 엔트로피 인코더 및 향상 계층 엔트로피 인코더를 더욱 상세하게 나타낸 블록도이다.
도 5 는 일 예시적인 기본 계층 디코더 및 향상 계층 디코더를 더욱 상세하게 나타낸 블록도이다.
도 6 은 일 예시적인 기본 계층 엔트로피 디코더 및 향상 계층 엔트로피 디코더를 더욱 상세하게 나타낸 블록도이다.
도 7 은 4×4 계수 블록의 지그재그 스캐닝을 나타낸 개념도이다.
도 8 은 향상 계층 비디오 블록의 계수들의 블록의 가상예를 나타낸 개념도이다.
도 9 는 비디오 인코더가 본 개시물의 스케일러블 비디오 코딩 기술들을 수행하는 예시적인 동작을 나타낸 흐름도이다.
도 10 은 향상 계층 인코더가 본 개시물의 일 양태에 따라 향상 계층 비디오 블록의 잔여 계수들을 인코딩하는 예시적인 동작을 나타낸 흐름도이다.
도 11 은 향상 계층 디코더가 잔여 변환 계수의 벡터를 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 예시적인 동작을 나타낸 흐름도이다.
도 12 내지 도 15 는 본 개시물에 따라 스케일러블 비디오 코딩에 이용하기 위한 인코더들 및/또는 디코더들의 상이한 구성들을 나타낸 블록도들이다.
도 1 은 비디오 스케일러빌리티 (video scalability) 를 지원하는 비디오 송신 시스템 (10) 을 나타낸 블록도이다. 도 1 의 예에서, 비디오 송신 시스템 (10) 은 소스 디바이스 (12) 및 다수의 목적지 디바이스들 (14A, 14B; 일괄하여, "목적지 디바이스들 (14)") 을 포함한다. 소스 디바이스 (12) 는 하나 이상의 소스로부터 디지털 비디오 콘텐츠를 획득하고, 그 디지털 비디오 콘텐츠를 목적지 디바이스들 (14) 로의 송신을 위해 인코딩한다. 디지털 비디오 콘텐츠는 예를 들어 실시간 또는 거의 실시간으로 캡쳐링될 수도 있고, 아카이브 (archive) (예를 들어, 프리-캡쳐링) 될 수도 있고, 컴퓨터-생성될 수도 있으며 또는 이들의 조합이 행해질 수도 있다. 각각의 경우에, 디지털 비디오 콘텐츠는 통신 채널을 통한 목적지 디바이스들 (14) 로의 송신을 위해 소스 디바이스 (12) 에 의해 인코딩될 수도 있다. 소스 디바이스 (12) 는 하나 이상의 안테나들을 구동하여 통신 채널을 통해 인코딩된 비디오를 전달하기 위해 적절한 무선 주파수 (RF) 변조, 필터링 및 증폭기 컴포넌트들을 포함하는 송신기를 포함하거나 그 송신기에 커플링될 수도 있다.
스케일러블 비디오를 지원하기 위해, 소스 디바이스 (12) 는 소스 비디오를 기본 계층 비트 스트림 (또는 기본 계층) 및 하나 이상의 스케일러블 향상 계층 비트 스트림들 (또는 향상 계층들) 로서 인코딩한다. 기본 계층 비트 스트림은 통상적으로 기본 품질 레벨을 가진 비디오 데이터를 운반한다. 하나 이상의 향상 계층들은 더 높은 품질 레벨을 지원하기 위해, 본원에 세분들 (refinements) 로 지칭되는 부가적인 비디오 데이터를 운반한다. 향상 계층들에서 인코딩된 세분들은 예를 들어 부가적인 더 높은 주파수 계수들을 제공하거나 또는 기존 계수들을 더욱 세분화함으로써 충실도 (예를 들어, 비주얼 품질) 를 점차 증가시킬 수도 있다. 일부 경우들에서, 기본 계층은 향상 계층들의 송신보다 더 신뢰할 수 있는 방식으로, 예를 들어 더 낮은 패킷 에러율 (PER) 로 송신될 수도 있다.
도 1 에 나타낸 예에는, 일 채널의 기본 계층 및 단일의 향상 계층이 단순화를 위해 도시된다. 그러나, 소스 디바이스 (12) 는 채널의 부가적인 비디오 데이터를 운반하는 2 개 이상의 향상 계층을 인코딩할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 는 목적지 디바이스들 (14) 과 연관된 사용자들에 의한 선택을 위해 상이한 채널들을 지원하도록 개별 비트 스트림들에서 소스 비디오를 인코딩할 수도 있다. 그 채널들은 목적지 디바이스들 (14) 이 아무때나 보기 위해 상이한 채널을 선택할 수 있도록 일반적으로 동시에 송신된다. 따라서, 사용자 제어 하의 목적지 디바이스들 (14) 은 텔레비전 시청 경험과 매우 유사하게, 스포츠를 보기 위한 일 채널을 선택한 후, 뉴스 또는 일부 다른 스케쥴링된 프로그래밍 이벤트를 보기 위한 다른 채널을 선택할 수도 있다. 일반적으로, 각 채널은 기본 계층 및 하나 이상의 향상 계층들로서 인코딩될 수도 있다.
또한, 본 개시물의 기술들은 예시를 위해 품질 스케일러빌리티 (신호 대 잡음비 (SNR) 스케일러빌리티로도 지칭됨) 의 콘텍스트에서 설명된다. 그러나, 이 기술들은 공간적 스케일러빌리티로 확장될 수도 있다. 공간적 스케일러빌리티 애플리케이션들에서, 기본 계층은 기본적인 공간적 해상도의 비디오 데이터를 운반하고 향상 계층들은 더 높은 공간적 해상도를 지원하기 위해 부가적인 비디오 데이터를 운반한다. 일부 경우들에서, 비디오 송신 시스템 (10) 은 SNR, 공간적 및/또는 시간적 스케일러빌리티를 결합하는 비디오 스케일러빌리티를 이용할 수도 있다.
소스 디바이스 (12) 는 예를 들어 ITU-T H.264/MPEG-4, Part 10 AVC 표준의 SVC 확장에 따라 소스 디바이스를 기본 계층으로서 인코딩하고, 본 개시물에 설명된 기술들에 따라 소스 디바이스를 향상 계층으로서 인코딩할 수도 있다. 이로써, 본 개시물에 설명한 바와 같은 기술들은 일부 양태들에서 다르게는 H.264 표준에 순응하는 디바이스에 대해 비디오 스케일러빌리티 확장을 실행하도록 적용될 수도 있다. 실제로, 본 개시물의 기술들은 H.264 표준 또는 다른 표준들의 추후 버전 또는 확장에 대한 잠재적인 변형을 나타낼 수도 있다. 그러나, 이 기술들은 독점적 표준으로서 조직에 의해 개발되거나 표준 단체에 의해 정의된 임의의 다른 비디오 코딩 표준은 물론, MPEG-1 과 MPEG-2, ITU-T H.263 표준, SMPTE (Society of Motion Picture and Television Engineers) 421M 비디오 CODEC 표준 (통상 "VC-1" 로 지칭), 중국의 오디오 비디오 코딩 표준 워크그룹에 의해 정의된 표준 (통상 "AVS" 로 지칭) 에 정의된 것과 같은 다양한 다른 비디오 압축 표준들 중 임의의 표준과 함께 이용될 수도 있다.
목적지 디바이스들 (14) 은 인코딩된 비디오의 유선 및/또는 무선 수신을 지원할 수도 있다. 목적지 디바이스들 (14) 은 무선 통신 디바이스, 예를 들어, 셀룰러 또는 위성 무선 전화기, 무선 브로드캐스트 시스템, 개인 휴대 정보 단말기 (PDA), 랩탑 또는 데스크탑 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게이밍 디바이스, 비디오 게임 콘솔, 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템 등과 같이, 디지털 비디오 데이터를 수신 및 디코딩할 수 있는 임의의 디바이스를 포함할 수도 있다. 도 1 의 예에는, 2 개의 목적지 디바이스들 (14A, 14B) 이 도시된다. 그러나, 비디오 송신 시스템 (10) 은 임의의 수의 목적지 디바이스들 (14) 을 포함할 수도 있다. 목적지 디바이스들 (14) 은 또한 상기 설명된 다양한 비디오 압축 표준들 중 임의의 표준에 따라 동작할 수도 있다.
도 1 은 인코딩된 비디오를 송신하는 소스 디바이스 (12) 에 관한 목적지 디바이스들 (14) 의 포지셔닝을 나타낸다. 특히, 목적지 디바이스 (14A) 는 도 1 에 있어서 송신 소스, 즉, 소스 디바이스 (12) 에 더 근접하고, 목적지 디바이스 (14B) 는 송신 소스로부터 멀리 떨어져 있다. 기본 계층이 더 낮은 PER 로 인코딩되는 경우에 있어서, 목적지 디바이스들 (14A 및 14B) 양자 모두는 기본 계층을 신뢰할 수 있게 수신 및 디코딩할 수도 있다. 소스 디바이스 (12) 에 더 근접하게 위치하게 되는 목적지 디바이스 (14A) 는 또한 향상 계층을 신뢰할 수 있게 수신할 수도 있다. 그러나, 소스 디바이스 (12) 로부터 멀리 떨어져 위치하게 되는 목적지 디바이스 (14B) 는 예를 들어 네트워크 또는 채널 상태로 인해 향상 계층을 신뢰할 수 있게 수신하지 못할 수도 있다.
이로써, 더 근접한 목적지 디바이스 (14A) 는 기본 계층과 향상 계층 양자의 데이터가 이용가능하기 때문에 더 높은 품질의 비디오를 가능하게 하는 반면, 목적지 디바이스 (14B) 는 기본 계층 데이터에 의해 제공되는 최소 품질 레벨만을 제공할 수 있다. 따라서, 목적지 디바이스 (14) 에 의해 획득된 비디오는 향상 계층의 부가적인 비트들이 디코딩되어 기본 계층 비트 스트림에 더해져, 디코딩된 비디오의 신호 대 잡음비 (SNR) 를 증가시킬 수 있다는 점에서 스케일러블하다. 그러나, 스케일러빌리티는 단지 향상 계층 데이터가 존재할 때에만 가능하다. 따라서, 본 개시물에 사용한 바와 같은 "품질" 이란 용어는 객관적 및/또는 주관적 비주얼 품질을 지칭할 수도 있다. 즉, 향상 계층 세분들은 원래의 데이터의 더 높은 품질 재생인 비디오 데이터를 초래한다. 이 방식으로, 비디오의 충실도가 향상 계층에 의해 증가된다.
다른 경우들에서, 네트워크 또는 채널 상태는 목적지 디바이스들 (14A 및 14B) 양자 모두에 대하여 기본 계층 및 향상 계층을 수신하기에 충분할 수도 있다. 그러나, 목적지 디바이스들 (14A 및 14B) 은 더 높은 품질의 비디오를 생성하기 위해 목적지 디바이스들 (14A 및 14B) 중 하나가 향상 계층의 부가적인 비디오 데이터를 이용하는 것을 방지하는 상이한 디코더 기능들을 가질 수도 있다. 목적지 디바이스들 (14) 중 하나가 예를 들어, 모바일 핸드셋, 또는 다른 소형의 휴대용 디바이스와 같은 클라이언트 디바이스인 경우에는, 계산 복잡도 및 메모리 요건으로 인해 제한이 있을 수도 있다. 따라서, 스케일러블 비디오 코딩은 제한된 계산 또는 메모리 리소스를 가진 목적지 디바이스들 (14) 이 단지 기본 계층만을 디코딩할 수도 있는 그러한 방식으로 디자인될 수 있다. 이 방식으로, 더 나은 네트워크 또는 채널 상태 및/또는 더 높은 디코더 기능들을 가진 목적지 디바이스들 (14) 은 향상 계층의 부가적인 비디오 데이터를 이용하여 더 높은 비디오 품질을 가진 비디오를 복원할 수 있을 것이다.
본 개시물에 설명된 기술들은 향상 계층 비트 스트림들의 효율적인 코딩을 촉진하는 엔트로피 코딩 기술들을 이용한다. 본 개시물의 엔트로피 코딩 기술들은 단일의 인코딩 패스에서 향상 계층 비트 스트림 내의, 예를 들어 세분들의 형태로 부가적인 비디오 데이터의 코딩을 가능하게 하여, 코딩 복잡도, 코딩 지연 및 메모리 요건을 감소시킬 수도 있다. 더욱 상세하게 설명되는 바와 같이, 소스 디바이스 (12) 는 일부 경우들에는, 임의의 후속 계수들, 즉 현재 코딩되고 있는 넌제로 계수에 후속하는 임의의 계수들의 정보 없이 향상 계층의 계수 벡터의 각각의 넌제로 계수를 인코딩할 수도 있다. 단일의 패스에서 향상 계층을 코딩하는 것은 계수 벡터를 분석하기 위한 제 1 패스 및 그 분석에 기초하여 계수 벡터를 코딩하기 위한 제 2 패스를 수행할 필요성을 제거할 수도 있다.
예를 들어, 일부 종래의 엔트로피 인코더들은 계수 벡터를 2 개 이상의 넌제로 계수를 나타내는 심볼들 중 적어도 일부의 심볼들로 나타내기 위한 심볼들을 생성하는 제 1 인코딩 패스를 수행할 수도 있다. 즉, 후속 계수들의 정보가 계수 벡터의 넌제로 계수들을 인코딩하는데 필요하다. 부가적으로, 또는 대안으로, 일부 종래의 엔트로피 인코더들은 또한 제 1 또는 후속 인코딩 패스 동안, 심볼들을 인코딩하는데 이용하기 위해 VLC 테이블들을 선택할 수도 있다. 일 양태에서, VLC 테이블들은 생성된 심볼들에 기초하여 선택될 수도 있다. 대안으로, 제 1 인코딩 패스 동안 계수 벡터를 분석함으로써 통계가 수집될 수도 있고, 그 수집된 통계에 기초하여 VLC 테이블들이 선택될 수도 있다.
그 후, 제 1 인코딩 패스 동안 수행된 분석에 기초하여 계수 벡터를 엔트로피 인코딩하기 위해 종래의 엔트로피 인코더에 의해 제 2 인코딩 패스가 수행된다. 일 예로서, 일부 종래의 엔트로피 인코더들은 제 2 인코딩 패스 동안 생성된 심볼들 또는 다른 통계에 기초하여 선택된 VLC 테이블들을 이용하여 제 1 패스 동안 생성된 심볼들을 인코딩할 수도 있다. 2 개 이상의 넌제로 계수를 나타내는 심볼들을 생성하는 것 및/또는 생성된 심볼들 또는 다른 통계에 기초하여 VLC 테이블들을 선택하는 것은 보다 효율적으로 계수 벡터의 인코딩을 허용할 수도 있다.
본 개시물의 기술들은 향상 계층을 인코딩하기 위한 2 개 이상의 인코딩 패스의 필요성을 제거할 뿐만 아니라, 본 개시물의 엔트로피 코딩 기술들은 부가적으로는, 기본 계층의 비디오 데이터의 계수 정보를 저장 및 액세스하지 않고 향상 계층의 코딩을 초래하여, 계산 복잡도 및 메모리 요건을 더욱 감소시킬 수도 있다.
소스 디바이스 (12), 목적지 디바이스 (14) 또는 양자는 상기 설명한 바와 같이 무선 또는 유선 통신 디바이스일 수도 있다. 또한, 소스 디바이스 (12), 목적지 디바이스 (14) 또는 양자는 집적 회로 칩 또는 칩셋과 같은 집적 회로 디바이스로서 구현될 수도 있는데, 이는 무선 또는 유선 통신 디바이스에, 또는 디지털 미디어 플레이어, 개인 휴대 정보 단말기 (PDA), 디지털 텔레비전 등과 같은 디지털 비디오 애플리케이션을 지원하는 다른 유형의 디바이스에 포함될 수도 있다.
도 2 는 코딩 시스템 (10) 의 소스 디바이스 (12) 및 목적지 디바이스 (14) 를 더욱 상세하게 나타낸 블록도이다. 목적지 디바이스 (14) 는 예를 들어 도 1 의 목적지 디바이스 (14A) 또는 목적지 디바이스 (14B) 중 어느 하나일 수도 있다. 도 2 에 도시한 바와 같이, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20) 및 송신기 (22) 를 포함할 수도 있다. 소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 캡쳐 디바이스, 이를 테면, 비디오 카메라, 미리 캡쳐링된 비디오를 포함하는 비디오 아카이브 또는 비디오 콘텐츠 제공자로부터의 비디오 피드 (video feed) 를 포함할 수도 있다. 추가 대안으로서, 비디오 소스 (18) 는 소스 비디오, 또는 라이브 비디오와 컴퓨터-생성된 비디오의 조합으로서 컴퓨터 그래픽-기반 데이터를 생성할 수도 있다. 일부 경우에, 소스 디바이스 (12) 는 소위 카메라폰 또는 비디오폰일 수도 있으며, 이 경우에 비디오 소스 (18) 는 비디오 카메라일 수도 있다. 각각의 경우에, 캡쳐링, 프리-캡쳐링 또는 컴퓨터-생성된 비디오는 송신기 (22) 및 통신 채널 (16) 을 통한 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 송신을 위해 비디오 인코더 (20) 에 의해 인코딩될 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터 비디오 데이터를 수신하고 그 비디오 데이터를 기본 계층 비트 스트림 및 하나 이상의 향상 계층 비트 스트림들로서 인코딩한다. 도 2 에 나타낸 예에 있어서, 비디오 인코더 (20) 는 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 를 포함한다. 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 는 비디오 소스 (18) 로부터 공통의 비디오 데이터를 수신한다. 기본 계층 인코더 (30) 는 비디오 데이터를 제 1 비트 레이트로 인코딩하여 제 1 품질 레벨의 비디오의 기본 계층 비트 스트림을 생성한다. 향상 계층 인코더 (32) 는 부가적인 비트들을 인코딩하여, 기본 계층의 비트 레벨에 더해질 때 비디오를 더 높은 제 2 품질 레벨로 향상시키는 하나 이상의 향상 계층들을 생성한다. 즉, 기본 계층에 더해질 때 향상 계층은 더 높은 품질 레벨을 제공하는 더 높은 제 2 비트 레이트를 제공한다. 이로써, 향상 계층은 기본 계층에서 인코딩된 비디오 데이터의 세분들을 인코딩하는 것으로 고려될 수도 있다. 세분들은 예를 들어 부가적인 계수들 및/또는 기존 계수들에 대한 세분들일 수도 있다. 향상 계층에서 인코딩된 세분들은 그 향상 계층에서의 세분들이 그들이 인코딩됨에 따라 비디오 데이터의 품질을 점차 증가시킨다는 점에서 계층적일 수도 있다. 이로써, 예를 들어, 모든 향상 계층들의 세분들의 디코딩은 가장 높은 비트 레이트 및 최대 품질을 초래할 것인데 반해, 단지 제 1 향상 계층의 세분들만의 디코딩은 단지 기본 계층만의 디코딩에 비하여 비트 레이트 및 품질에 있어서 증분적 증가를 야기할 것이다.
비디오 소스 (18) 로부터 수신된 비디오 데이터는 일련의 비디오 프레임들일 수도 있다. 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 는 일련의 프레임들을 코딩된 유닛들로 분할하고 그 코딩된 유닛들을 프로세싱하여 일련의 비디오 프레임들을 인코딩한다. 코딩된 유닛들은 예를 들어 전체 프레임들 또는 프레임들의 부분들, 이를 테면 프레임들의 슬라이스들일 수도 있다. 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 는 각 코딩된 유닛을 픽셀들의 블록들 (본원에는 비디오 블록들 또는 블록들로 지칭) 로 분할하고 비디오 데이터를 인코딩하기 위하여 개별 코딩된 유닛들 내의 비디오 블록들에 대해 동작한다. 이로써, 비디오 데이터는 다수의 프레임들을 포함할 수도 있고, 일 프레임은 다수의 슬라이스들을 포함할 수도 있으며, 일 슬라이스는 다수의 비디오 블록들을 포함할 수도 있다.
비디오 블록들은 고정 또는 가변의 사이즈들을 가질 수도 있으며, 특정 코딩 표준에 따라 사이즈에 있어서 다를 수도 있다. 일 예로서, ITU-T H.264/MPEG-4, Part 10 AVC 는 다양한 블록 사이즈들, 이를 테면, 루마 성분의 경우 16×16, 8×8 또는 4×4, 그리고 크로마 성분의 경우 8×8 에서 인트라 예측을 지원할 뿐만 아니라, 다양한 블록 사이즈들, 이를 테면 루마 성분의 경우 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4, 그리고 크로마 성분의 경우 대응하는 스케일링된 사이즈들에서 인터 예측을 지원한다. H.264/MPEG-4 Part 10 AVC 에서, 종종 매크로블록 (MB) 이라 지칭되는 각 비디오 블록은 고정 또는 가변의 사이즈들의 서브-블록들로 서브-분할될 수도 있다. 즉, 코딩된 유닛은 동일하거나 상이한 사이즈들의 서브-블록들을 포함할 수도 있다. 일반적으로, MB 들 및 다양한 서브-블록들은 비디오 블록들인 것으로 간주될 수도 있다. 따라서, MB 들은 비디오 블록들인 것으로 간주될 수도 있으며, 파티셔닝 또는 서브-파티셔닝될 경우에, MB 들은 그 자체로 비디오 블록들의 세트들을 정의하도록 고려될 수 있다.
인코더들 (30, 32) 은 프레임들의 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행한다. 인트라-코딩은 공간적 예측에 의존하여 소정의 코딩된 유닛, 예를 들어, 프레임 또는 슬라이스 내의 비디오 데이터에서의 공간적 리던던시를 감소 또는 제거한다. 인트라-코딩의 경우, 인코더들 (30, 32) 은 현재 코딩되고 있는 블록과 동일한 프레임 내의 하나 이상의 미리 인코딩된 블록들에 기초하여 공간적 예측 블록을 형성한다. 그 예측 블록은 현재 코딩되고 있는 비디오 블록의 예측된 버전일 수도 있다. 기본 계층 인코더 (30) 는 예를 들어, 현재의 프레임의 기본 계층 내의 하나 이상의 미리 인코딩된 블록들의 픽셀 값들을 이용하여 (블록과 연관된 인트라-코딩 모드에 따라) 보간을 수행함으로써 프레임 내의 하나 이상의 미리 인코딩된 블록들에 기초하여 예측 블록을 생성할 수도 있다. 향상 계층 인코더 (32) 는 프레임 내의 하나 이상의 미리 인코딩된 블록들에 기초하여 예측 블록을 생성할 수도 있다. 향상 계층 인코더 (32) 는 예를 들어 프레임 내의 기본 계층 및 향상 계층으로부터 하나 이상의 미리 인코딩된 비디오 블록들에 기초하여 예측 블록을 생성할 수도 있다. 예를 들어, 향상 계층 인코더 (32) 는 기본 계층으로부터의 적어도 하나의 미리 인코딩된 비디오 블록 및 향상 계층으로부터의 적어도 하나의 미리 인코딩된 비디오 블록으로부터 픽셀 값들의 가중합 (weighted sum) 을 이용하여 예측 블록을 생성할 수도 있다.
인터-코딩은 시간적 예측에 의존하여 비디오 시퀀스의 인접한 프레임들 내의 시간적 리던던시를 감소 또는 제거한다. 인터-코딩의 경우, 인코더들 (30, 32) 은 모션 추정을 수행하여 코딩된 유닛 내의 2 개 이상의 인접한 프레임들 간의 비디오 블록들을 근접하게 매칭시키는 움직임을 추적한다. 인터-예측의 경우에 있어서, 인코더들 (30, 32) 은 코딩된 유닛 내의 다른 프레임들로부터 하나 이상의 미리 인코딩된 블록들에 기초하여 시간적 예측 블록을 생성할 수도 있다. 인코더들 (30, 32) 은 예를 들어 현재의 비디오 블록을 하나 이상의 인접한 비디오 프레임들 내의 블록들과 비교하여 현재의 비디오 블록을 가장 근접하게 매칭시키는 인접한 프레임 내의 블록, 예를 들어 최소 평균 제곱 오차 (MSE; Means Squared Error), 제곱된 차들의 합 (SSD; Sum of Squared Differences), 절대 차들의 합 (SAD; Sum of Absolute Differences) 또는 다른 차 메트릭을 갖는 하나 이상의 인접한 프레임들 내의 블록을 식별한다. 인코더들 (30, 32) 은 인접한 프레임 내의 식별된 블록을 예측 블록으로서 선택한다. 기본 계층 인코더 (30) 는 현재의 비디오 블록을 기본 계층의 하나 이상의 인접한 프레임들 내의 블록들과 비교한다. 향상 계층 인코더 (32) 는 현재의 비디오 블록을 기본 계층 및/또는 향상 계층에서의 하나 이상의 인접한 프레임들 내의 블록들과 비교할 수도 있다.
비디오 블록들의 인트라-기반 예측 또는 인터-기반 예측에 이어, 인코더들 (30, 32) 은 코딩되고 있는 원래의 비디오 블록으로부터 생성된 예측 블록을 뺌으로써 잔여 블록을 생성한다. 따라서, 잔여 블록은 예측 블록과 코딩되는 현재의 블록 사이의 차이를 나타낸다. 인코더들 (30, 32) 은 변환, 양자화 및 엔트로피 코딩 프로세스들을 적용하여 잔여 블록의 통신과 연관된 비트 레이트를 더욱 감소시킬 수도 있다. 이산 코사인 변환 (DCT), 정수 변환, 웨이블릿 변환, 방향성 변환 또는 다른 변환 연산을 포함할 수도 있는 변환 기술들은 픽셀 차이 값들의 세트를 주파수 도메인에서 픽셀 차이 값들의 에너지를 나타내는 잔여 변환 계수들로 바꾼다. 인코더들 (30, 32) 은 잔여 변환 계수들에 양자화를 적용하는데, 이는 일반적으로 임의의 소정의 계수와 연관된 비트들의 수를 제한하는 프로세스를 포함한다. 인코더들 (30, 32) 은 2 차원 잔여 블록을 스캐닝하여 계수들의 1 차원 벡터를 생성하고 계수 벡터를 엔트로피 인코딩하여 잔여 계수들을 더욱 압축한다. 엔트로피 인코딩은 예를 들어 가변 길이 코딩 (VLC), 산술 코딩, 고정 길이 코딩, CAVLC (Context-Adaptive VLC), CABAC (Context-Adaptive Binary Arithmetic Coding), 및/또는 다른 엔트로피 코딩 기술들을 포함할 수도 있다.
SNR 스케일러빌리티는 잔여 양자화에 의해 달성될 수도 있다. 특히, 기본 계층 인코더 (30) 는 제 1 양자화 파라미터 (QP) 를 이용하여 잔여 변환 계수들을 양자화할 수도 있고, 향상 계층 인코더 (32) 는 제 2 QP 를 이용하여 잔여 변환 계수들을 양자화할 수도 있다. ITU-T H.264/MPEG-10 AVC 에서, 더 큰 QP 들은 통상적으로 비디오 데이터가 더 적은 수의 비트들을 가진 더 낮은 품질로 인코딩되게 하는데 반하여, 더 작은 QP 들은 비디오 데이터가 더 많은 수의 비트들을 가진 더 높은 품질로 인코딩되게 한다. 이로써, 최소 품질 레벨로 비디오 데이터를 인코딩하는 기본 계층 인코더 (30) 는 향상 계층의 계수들을 양자화하기 위해 향상 계층 인코더 (32) 에 의해 이용된 QP 값보다 더 큰 QP 값을 이용하여 기본 계층의 계수들을 양자화한다. 그 결과, 기본 계층 인코더 (30) 로부터의 양자화된 잔여 변환 계수들은 제 1 품질의 비디오 시퀀스를 나타내고, 향상 계층 인코더로부터의 양자화된 잔여 변환 계수들은 기본 계층과 결합될 때 비디오 시퀀스의 품질을 더 높은 제 2 품질로 증가시키는 비디오 시퀀스의 부가적인 계수들 또는 기존 계수들에 대한 세분들을 나타낸다.
인코더들 (30, 32) 각각은 각각 기본 계층과 향상 계층의 양자화된 잔여 변환 계수들을 나타내는 1 차원 계수 벡터를 수신한다. 즉, 기본 계층 인코더 (30) 는 기본 계층의 계수들의 벡터를 수신하고, 향상 계층 인코더 (32) 는 대응하는 향상 계층의 계수들의 벡터를 수신한다. 인코더들 (30, 32) 이 동일한 원래의 비디오 데이터를 수신하지만, 계수들의 벡터들은 상이할 수도 있다. 이것은 상이한 예측 블록들을 생성하는 기본 계층 인코더 (30) 와 향상 계층 인코더 (32) 때문일 수도 있으며, 예를 들어, 기본 계층 인코더 (30) 는 하나 이상의 미리 인코딩된 기본 계층 블록들로부터 예측 블록을 생성하고, 향상 계층 인코더 (32) 는 하나 이상의 미리 인코딩된 기본 계층 블록들 및 향상 계층 블록들로부터 예측 블록을 생성한다.
기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 각각은 각각의 계수 벡터들을 인코딩하여 각각 기본 계층 비트 스트림 및 적어도 하나의 향상 계층 비트 스트림을 생성한다. 본 개시물의 기술에 의하면, 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 는 상이한 코딩 기술들을 이용하여 각각의 계수 벡터들을 인코딩한다. 기본 계층 인코더 (30) 는 다수의 인코딩 패스 프로세스를 이용하여 계수 벡터를 인코딩할 수도 있는데, 여기서, 기본 계층 인코더 (30) 는 적어도 하나의 인코딩 패스 동안 계수 벡터를 분석하고 그 분석에 기초하여 적어도 하나의 후속 인코딩 패스 동안 계수 벡터를 인코딩한다. 일 경우에, 기본 계층 인코더 (30) 는 H.264/MPEG-4, Part 10 AVC 표준에 정의한 바와 같이 CAVLC 에 따라 기본 계층 계수 벡터의 양자화된 잔여 변환 계수들을 인코딩할 수도 있다. H.264/MPEG-4, Part 10 AVC 표준에 정의한 바와 같이 CAVLC 는 다수의 인코딩 패스들을 이용하여 기본 계층 계수 벡터를 인코딩할 수도 있다.
제 1 인코딩 패스 동안, 기본 계층 인코더 (30) 는 적어도 일부가 2 개 이상의 넌제로 계수, 및 일부 경우들에서는 계수 벡터의 계수들 모두를 나타내는, 계수 벡터를 나타내기 위한 심볼들을 생성할 수도 있다. 기본 계층 인코더 (30) 는 예를 들어 H.264/MPEG-4, Part 10 AVC 표준에 정의한 바와 같이 CAVLC 에 따라, 계수 벡터 내의 계수들의 총수 ("TotalCoeffs"), 계수 벡터 내의 트레일링 1 의 갯수 ("T1s"), 임의의 트레일링 1 의 부호, 트레일링 1 이 아닌 넌제로 계수들의 크기 (또는 레벨), 모든 런들의 합계 ("sumRuns"), 및 각 넌제로 계수 전의 런을 나타내는 심볼들을 생성할 수도 있다. TotalCoeff 및 sumRuns 와 같은 심볼들 중 일부를 생성하기 위해, 기본 계층 인코더 (30) 는 전체 계수 벡터를 분석할 수도 있다.
제 1 인코딩 패스 동안, 기본 계층 인코더 (30) 는 또한 계수 벡터의 분석에 기초하여 후속 인코딩 패스 동안 이용하기 위한 VLC 테이블들을 선택할 수도 있다. 일부 경우들에서, 기본 계층 인코더 (30) 는 제 1 코딩 패스 동안 생성된 심볼들에 기초하여 후속 (예를 들어, 제 2) 인코딩 패스 동안 이용하기 위한 VLC 테이블들을 선택할 수도 있다. 예를 들어, 기본 계층 인코더 (30) 는 2 개의 값들 사이에 어떤 관계가 있기 때문에 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 sumRuns 심볼을 인코딩할 때 이용하기 위한 VLC 테이블을 선택할 수도 있다. 특히, TotalCoeffs 가 증가함에 따라, sumRuns 는 감소하고, TotalCoeffs 가 감소함에 따라, sumRuns 는 증가한다. 다시, 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 sumRuns 심볼을 인코딩할 때 이용하기 위한 VLC 테이블을 선택하는 것은 기본 계층 인코더 (30) 가 sumRuns 를 보다 효율적으로 인코딩하는 VLC 테이블을 선택하도록 허용할 수도 있다. 유사한 VLC 테이블 선택은 인코딩될 다른 심볼들에 대해 또는 다른 수집된 통계를 이용하여 수행될 수도 있다.
기본 계층 인코더 (30) 는 제 2 또는 다른 후속 인코딩 패스 동안, 계수 벡터 내의 넌제로 계수들의 총수 (TotalCoeff) 를 나타내는 심볼 및 트레일링 1 의 갯수 (T1s 로도 지칭) 를 나타내는 심볼을 인코딩한다. 트레일링 1 의 갯수는 계수 벡터가 역순, 즉, 계수 벡터의 끝에서 시작하여 판독될 때 1 보다 큰 크기를 가진 계수가 발생하기 전에 계수 벡터에서 발생하는 1 의 크기를 가진 계수들의 갯수이다. 기본 계층 인코더 (30) 는 예측된 넌제로 계수들의 수에 기초하여 TotalCoeff 및 T1 심볼들을 인코딩하는데 이용하기 위한 VLC 테이블을 선택하고, 그 선택된 VLC 테이블을 이용하여 TotalCoeff 및 T1 심볼들을 인코딩할 수도 있다. 예측된 넌제로 계수들의 수에 기초하여 TotalCoeff 및 T1 심볼들을 인코딩하는데 이용하기 위한 VLC 테이블을 선택하는 것은 기본 계층 인코더 (30) 가 TotalCoeff 및 T1 심볼들을 보다 효율적으로 인코딩하는 VLC 테이블을 선택하도록 허용할 수도 있다. 이로써, 상이한 VLC 테이블들은 상이한 예측된 넌제로 계수들의 수에 대해 보다 효율적일 수도 있다. 일 예로, 기본 계층 인코더 (30) 는 하나 이상의 미리 인코딩된 비디오 블록들, 예를 들어 상부 이웃의 비디오 블록과 좌측 이웃의 비디오 블록의 넌제로 계수들의 수에 기초하여 현재의 블록 내의 넌제로 계수들의 수를 예측할 수도 있다.
기본 계층 인코더 (30) 는 임의의 트레일링 1 의 부호를 인코딩할 수도 있다. 예를 들어, 기본 계층 인코더 (30) 는 트레일링 1 의 각각에 대해, 트레일링 1 의 부호가 포지티브인 경우에는 '1' 을 인코딩하고 트레일링 1 의 부호가 네거티브인 경우에는 '0' 을 인코딩할 수도 있다. 이로써, 기본 계층 인코더 (30) 는 부호에 대한 VLC 테이블 선택을 수행할 필요가 없을 수도 있다. 기본 계층 인코더 (30) 는 트레일링 1 이 아닌 넌제로 계수들의 크기를 인코딩할 수도 있다. 기본 계층 인코더 (30) 는 VLC 테이블, 고정 길이 코딩 또는 다른 유형의 엔트로피 코딩을 이용하여 넌제로 계수들의 레벨을 인코딩할 수도 있다. 예를 들어, 기본 계층 인코더 (30) 는 2 진 코딩을 이용하여 넌제로 계수들의 레벨을 인코딩할 수도 있다.
기본 계층 인코더 (30) 는 마지막 넌제로 계수 전에 계수 벡터에서 발생하는 제로값 계수들의 수를 나타내는 심볼 (sumRuns) 을 인코딩할 수도 있다. 상기 설명한 바와 같이, 기본 계층 인코더 (30) 는 2 개의 값들 사이에 어떤 관계가 있기 때문에 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 sumRuns 심볼을 인코딩할 때 이용하기 위한 VLC 테이블을 선택할 수도 있다.
기본 계층 인코더 (30) 는 계수 벡터의 마지막 넌제로 계수에서 시작하여 각 넌제로 계수 전에 발생하는 런들 (또는 런 길이들) 을 인코딩할 수도 있다. 런 길이들은 넌제로 계수에 선행하는 제로값 계수들의 수이다. 따라서, 기본 계층 인코더 (30) 는 계수 벡터의 제 1 넌제로 계수 전의 런 길이가 인코딩될 때까지, 먼저 계수 벡터의 마지막 넌제로 계수 전의 런 길이 (즉, 제로값 계수들의 수) 에 이어 선행하는 넌제로 계수 전의 런 길이 등을 인코딩할 수도 있다.
기본 계층 인코더 (30) 는 런 길이들 각각을 개별적으로 인코딩하기 위해 이용하기 위한 VLC 테이블을 선택할 수도 있다. 기본 계층 인코더 (30) 는 런들의 합계 (sumRuns) 심볼 및 지금까지 코딩된 런들의 합계에 기초하여 현재의 런 값을 인코딩하기 위해 이용하기 위한 VLC 테이블을 선택할 수도 있다. 일 예로서, 계수 벡터가 8 의 런들의 합계 (sumRuns) 를 갖고, 인코딩된 마지막 넌제로 계수 전에 인코딩된 런이 6 이었다면, 모든 나머지 런들은 0, 1 또는 2 여야 한다. 가능한 런 길이는 각 부가적인 런이 인코딩됨에 따라 점차 짧아지기 때문에, 기본 계층 인코더 (30) 는 보다 효율적인 VLC 테이블들을 선택하여 런들을 나타내는데 이용되는 비트들의 수를 감소시킬 수도 있다.
이 방식으로, 기본 계층 인코더 (30) 는 기본 계층 잔여 블록의 계수 벡터를 분석하여, 예를 들어 심볼들을 생성 및/또는 VLC 테이블들을 선택하기 위한 제 1 패스, 및 그 분석에 기초하여 계수 벡터를 인코딩하기 위한 제 2 인코딩 패스를 포함하는, 다수의 인코딩 패스를 수행하여 기본 계층 계수들을 인코딩한다. 기본 계층 인코더 (30) 가 H.264/MPEG-4, Part 10 AVC 표준에 정의한 바와 같이 CAVLC 를 이용하여 양자화된 잔여 변환 계수들을 인코딩하는 것처럼 상기 설명되지만, 기본 계층 인코더 (30) 는 다른 코딩 방법들을 이용하여 양자화된 잔여 변환 계수들을 인코딩할 수도 있다.
향상 계층 인코더 (32) 는 향상 계층의 양자화된 잔여 변환 계수들을 인코딩하는데, 이는 계수 벡터의 형태로 존재할 수도 있다. 향상 계층 인코더 (32) 는 기본 계층의 양자화된 잔여 계수들과는 상이한 양자화된 잔여 계수들을 생성할 수도 있다. 향상 계층의 양자화된 잔여 계수들은 양자화 동안 상이한 QP 의 이용으로 인해 기본 계층의 양자화된 잔여 계수들과는 상이할 수도 있다. 부가적으로, 양자화된 잔여 변환 계수들은 잔여 블록이 원래의 비디오 블록과 기본 계층 및 향상 계층으로부터의 미리 인코딩된 블록들을 이용하여 생성된 예측 블록 사이의 차이를 나타내기 때문에 기본 계층의 양자화된 잔여 변환 계수들과는 상이할 수도 있다. 기본 계층의 잔여 블록은 원래의 비디오 블록과 단지 기본 계층으로부터 미리 인코딩된 블록들만을 이용하여 생성된 예측 블록 사이의 차이이다. 이로써, 향상 계층은 부가적인 계수들 및/또는 기존 계수들에 대한 세분들을 포함할 수도 있다. 이런 의미에서, 향상 계층 내의 비디오 블록의 양자화된 잔여 변환 계수들은 기본 계층에서 제 1 품질로 인코딩된 비디오 블록에 대한 세분들을 나타내고, 기본 계층에 더해질 때, 더 높은 품질 비디오 데이터를 제공한다.
향상 계층 인코더 (32) 는 이용가능한 비트 레이트에 의존하여 인코딩하는 동안 계수 벡터의 양자화된 잔여 계수들 중 하나 이상을 폐기할 수도 있다. 예를 들어, 향상 계층 인코더 (32) 는 고주파수 변환 기초 함수들에 대응하는 계수들, 예를 들어 도 7 에 나타낸 바와 같이 계수 스캐닝이 지그재그 스캐닝을 이용하여 행해질 때 계수 벡터의 끝 쪽에 위치된 계수들을 폐기할 수도 있다. H.264/MPEG-4, Part 10, AVC 표준에 정의한 바와 같이 CAVLC 에 따라 양자화된 잔여 계수들을 인코딩하는 것은 인코딩될 심볼들 중 적어도 일부, 예를 들어, TotalCoeffs 및 sumRuns 가 블록 내의 계수들 모두를 나타내기 때문에 향상 계층 인코더 (32) 가 계수들을 폐기하도록 허용하지 않을 수도 있다. 향상 계층 인코더 (32) 가 계수 벡터의 계수들 중 하나 이상을 폐기하는 경우, 수신된 정보는 불필요하여, 더 낮은 코딩 효율에 이르게 할 것이다. 또한, 디코더가 H.264/MPEG-4, Part 10, AVC 표준에 정의한 바와 같이 CAVLC 를 이용하여 인코딩할 때 각 계수의 포지션을 지그재그 스캔으로 적절히 디코딩할 수 있도록 블록 내의 넌제로 계수들 모두에 대한 런들을 수신해야 하기 때문에, 향상 계층 인코더 (32) 는 향상 계층의 계수 벡터로부터의 계수들을 폐기할 수 없을 것이다.
이로써, 향상 계층 인코더 (32) 는 본 개시물의 코딩 기술들에 따라 향상 계층 또는 계층들의 계수들을 인코딩한다. 향상 계층 인코더 (32) 는 단일의 인코딩 패스에서 계수 벡터의 양자화된 잔여 변환 계수들을 인코딩한다. 즉, 향상 계층 인코더 (32) 는 계수 벡터를 분석하기 위한 제 1 패스를 수행한 후, 그 분석에 기초하여 제 2 패스 동안 심볼들을 인코딩하지 않는다. 대신에, 향상 계층 인코더 (32) 는 계수 벡터의 처음에서 시작하여 넌제로 계수들 각각을 단일의 인코딩 패스에서 하나씩 인코딩한다. 이 방식으로, 향상 계층 인코더 (32) 는 계수 벡터 내의 임의의 후속 계수들을 분석하지 않고, 즉, 계수 벡터의 임의의 후속 계수들의 정보 없이 넌제로 계수들 각각을 인코딩할 수도 있다.
일 양태에서, 향상 계층 인코더 (32) 는 넌제로 계수들 각각에 대해, 계수 벡터 내의 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼을 인코딩할 수도 있다. 그 심볼은 예를 들어 EOB (End-Of-Block) 심볼일 수도 있다. 향상 계층 인코더 (32) 는 단일의 비트를 이용하여 심볼을 인코딩할 수도 있다. 예를 들어, 향상 계층 인코더 (32) 는 적어도 하나의 나머지 넌제로 계수, 예를 들어, 적어도 현재의 넌제로 계수가 존재할 때 0 을 인코딩하고, 더이상 나머지 넌제로 계수들이 존재하지 않을 때 1 을 인코딩할 수도 있다.
각 계수의 EOB 심볼에 이어, 향상 계층 인코더 (32) 는 현재의 넌제로 계수 전의 런을 인코딩한다. 상기 설명한 바와 같이, 런은 계수 벡터의 이전의 넌제로 계수, 또는 제 1 넌제로 계수의 경우에는 계수 벡터의 처음과, 현재의 넌제로 계수 사이에서 발생하는 제로값 계수들의 수를 나타낸다. 향상 계층 인코더 (32) 는 단일의 VLC 테이블을 이용하여 런들을 인코딩할 수도 있다. 일 경우에, 향상 계층 인코더 (32) 는 H.264/MPEG-4, Part 10, AVC 표준에 정의한 바와 같이 CAVLC 에서 이용된 VLC 테이블을 이용하여 런들을 인코딩하여, TotalCoeffs 가 1 과 같을 때 sumRuns 를 코딩할 수도 있다. 즉, 향상 계층 인코더 (32) 는 비디오 인코더 (20) 에 의해 이미 유지된 VLC 테이블들 중 하나를 재사용할 수도 있다. 다른 경우들에서, 향상 계층 인코더 (32) 는 비디오 인코더 (20) 에 의해 이미 유지된 다른 VLC 테이블들 중 하나를 이용하여 런들을 인코딩할 수도 있다. 대안으로, 향상 계층 인코더 (32) 는 향상 계층의 계수 벡터의 런들을 인코딩하도록 특별히 디자인된 개별 VLC 테이블을 유지할 수도 있다. 임의의 경우에, 향상 계층 인코더 (32) 는 런들을 인코딩하는데 이용하기 위한 VLC 테이블을 적응적으로 선택할 필요가 없을 수도 있다. 대신에, 향상 계층 인코더 (32) 는 단일의 VLC 테이블을 이용하여, VLC 테이블을 선택하는데 이용된 통계를 수집하기 위한 제 1 패스의 필요성을 제거할 수도 있다.
각 계수의 인코딩된 런들에 이어, 향상 계층 인코더 (32) 는 넌제로 계수의 부호를 인코딩한다. 향상 계층 인코더 (32) 는 예를 들어 넌제로 계수의 부호가 포지티브인 경우에 '1' 을 인코딩하고, 넌제로 계수의 부호가 네거티브인 경우에 '0' 을 인코딩할 수도 있다. 향상 계층 인코더 (32) 는 넌제로 계수들의 크기를 1 로 설정함으로써 넌제로 계수들의 크기를 조정할 수도 있다. 일부 경우들에서, 향상 계층 인코더 (32) 는 넌제로 계수들의 크기를 인코딩하지 않을 수도 있다. 이 방식으로, 향상 계층 인코더 (32) 는 넌제로 계수들의 크기를 1 이 되도록 제한할 수도 있다. 그 때, 목적지 디바이스 (14) 는 1 과 같은 크기를 갖기 위해 세분들에서 식별된 모든 넌제로 계수들을 디코딩하도록 구성된다. 향상 계층의 계수들의 크기를 인코딩하지 않는 것은 피크 신호 대 잡음비 (PSNR) 에 있어서 약간의 손실을 초래하지만 계수들을 인코딩하는데 이용되는 비트들의 수를 감소시킬 수도 있다.
이 방식으로, 향상 계층 인코더 (32) 는 예를 들어 계수 벡터 내의 임의의 후속 계수들의 정보 없이, 단일의 패스에서 향상 계층 비트 스트림의 계수들을 인코딩할 수도 있다. 향상 계층 인코더 (32) 가 계수 벡터를 분석하여, 예를 들어 벡터의 2 개 이상의 넌제로 계수를 나타내는 심볼들을 생성하거나 또는 심볼들을 인코딩하기 위한 VLC 테이블들을 선택할 필요가 없기 때문에, 단 하나의 인코딩 패스만이 수행된다. 종래의 인코더들은 통상적으로 적어도 2 개의 패스들, 즉 (1) 계수 벡터를 분석하기 위한 제 1 패스 및 (2) 그 분석에 기초하여 계수 벡터를 인코딩하기 위한 제 2 패스를 수행한다. 부가적으로, 향상 계층 인코더 (32) 는 단일의 VLC 테이블을 이용하여 향상 계층의 계수들을 인코딩하여, 코딩 테이블들을 적응적으로 선택하는데 이용하기 위한 심볼들을 형성하기 위한 인코딩 패스를 수행할 필요성을 제거할 수도 있다. 이 방식으로, 향상 계층 인코더 (32) 는 코딩 복잡도, 코딩 지연 및 메모리 요건을 감소시킬 수도 있다. 또한, 본 개시물의 엔트로피 코딩 기술들은 부가적으로 기본 계층의 계수 정보의 저장 및 액세스 없이 향상 계층의 계수들의 코딩을 초래하여, 계산 복잡도 및 메모리 요건을 더욱 감소시킬 수도 있다.
소스 디바이스 (12) 는 인코딩된 비디오 데이터를 송신기 (22) 를 통해 목적지 디바이스 (14) 로 송신한다. 목적지 디바이스 (14) 는 수신기 (24), 비디오 디코더 (26) 및 디스플레이 디바이스 (28) 를 포함할 수도 있다. 수신기 (24) 는 채널 (16) 을 통해 소스 디바이스 (12) 로부터 인코딩된 비디오 비트 스트림을 수신한다. 상기 설명한 바와 같이, 인코딩된 비디오 비트 스트림은 기본 계층 비트 스트림 및 하나 이상의 향상 계층 비트 스트림들을 포함한다. 비디오 디코더 (26) 는 기본 계층 및 이용가능하다면 하나 이상의 향상 계층들을 디코딩하여 비디오 데이터를 획득한다.
특히, 비디오 디코더 (26) 는 기본 계층 디코더 (34) 및 향상 계층 디코더 (36) 를 포함한다. 기본 계층 디코더 (34) 는 채널 (16) 을 통해 수신된 기본 계층 비트 스트림을 디코딩하여 디스플레이 디바이스 (28) 상에의 표시를 위한 제 1 품질의 비디오 데이터를 생성한다. 향상 계층 디코더 (36) 는 하나 이상의 향상 계층들의 비트 스트림들을 디코딩하여 디코딩된 비디오 데이터의 품질을 더 높은 제 2 품질로 증가시키는 부가적인 비디오 데이터, 예를 들어 세분들을 획득한다. 다시, 향상 계층들의 수, 예를 들어 목적지 디바이스 (14) 에 의해 수신된 1, 2, 3 또는 그 이상은 채널 상태 또는 다른 제한에 의존할 수도 있다. 또한, 향상 계층 디코더 (36) 에 의해 프로세싱되는 수신된 향상 계층들의 수는 디코더 제한에 의존할 수도 있다. 일반적으로, 기본 계층의 인코딩 및 디코딩은, 선택된 향상 계층들의 수와 결합하여 디코딩된 비디오의 SNR 품질의 증분적 향상을 허용한다.
기본 계층 디코더 (34) 는 기본 계층을 디코딩하여 기본 계층의 양자화된 잔여 계수들의 벡터를 나타내는 심볼들을 획득한다. 기본 계층 디코더 (34) 는 기본 계층을 디코딩하여 블록 내의 넌제로 계수들의 총수, 블록의 트레일링 1 의 갯수, 트레일링 1 의 부호, 트레일링 1 이 아닌 계수들의 크기, 모든 런들의 합계 및 각 넌제로 계수 전의 런들을 획득할 수도 있다. 기본 계층 디코더 (34) 는 또한 기본 계층 비트 스트림을 디코딩하여 기본 계층 심볼들을 디코딩하는데 이용하기 위한 VLC 테이블들을 식별할 수도 있다. 다른 경우들에서, 기본 계층 디코더 (34) 는 미리 디코딩된 심볼들에 기초하여 이용하기 위한 VLC 테이블들을 선택할 수도 있다. 디코딩된 심볼들을 이용하여, 기본 계층 디코더 (34) 는 기본 계층의 계수 벡터를 복원할 수도 있다.
향상 계층 디코더 (36) 는 향상 계층의 비트 스트림을 디코딩하여 예를 들어 부가적인 잔여 계수들 또는 기존 잔여 계수들의 세분들의 벡터 형태로 향상 계층의 세분들을 획득한다. 특히, 향상 계층 디코더 (36) 는 향상 계층 인코더 (32) 에 의해 이용된 것과 동일한 VLC 테이블을 이용하여, 더이상 넌제로 계수들이 남아있지 않다는 것을 EOB 심볼이 나타낼 때까지 향상 계층 계수들의 런들 및 부호들을 디코딩한다. 디코딩된 심볼들을 이용하여, 향상 계층 디코더 (36) 는 향상 계층 블록의 계수 벡터를 복원한다.
디코더들 (34, 36) 은 디코딩된 양자화된 잔여 계수들을 이용하여 코딩된 유닛의 블록들 각각을 복원한다. 계수 벡터들을 생성한 후에, 디코더들 (34, 36) 은 계수 벡터를 역스캐닝하여 양자화된 잔여 계수들의 2 차원 블록을 생성한다. 디코더들 (34, 36) 은 양자화된 잔여 계수들을 역양자화, 즉 양자화해제하고 역양자화된 잔여 계수들에 역변환, 예를 들어 역 DCT, 역정수 변환, 역웨이블릿 변환 또는 역방향성 변환을 적용하여 픽셀 값들의 잔여 블록을 생성한다.
디코더들 (34, 36) 은 디코더들 (34, 36) 에 의해 생성된 예측 블록을 픽셀 값들의 잔여 블록과 더하여 복원된 기본 계층 비디오 블록 및 향상 계층 비디오 블록을 각각 형성한다. 기본 및 향상 계층 비디오 블록들은 더 높은 해상도를 가진 비디오 블록을 형성하도록 결합된다. 디코더들 (34, 36) 은 인코더들 (30, 32) 에 대하여 상기 설명한 바와 같이 동일한 방식으로 예측 블록을 생성한다. 목적지 디바이스 (14) 는 디스플레이 디바이스 (28) 를 통해 복원된 비디오 블록들을 사용자에게 디스플레이할 수도 있다. 디스플레이 디바이스 (28) 는 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 발광 다이오드 (LED) 디스플레이, 유기 LED 디스플레이 또는 다른 유형의 디스플레이 유닛과 같은 다양한 디스플레이 디바이스들 중 임의의 디바이스를 포함할 수도 있다.
일부 경우들에서, 비디오 인코더 (20) 및 비디오 디코더 (26) 는 독단적으로 절단될 수 있는 스케일러블 향상 비트 스트림들을 제공하도록 구성된다. 따라서, 비디오 송신 시스템 (10) 은 스케일러빌리티를 달성하기 위하여, 완전히 코딩되어야 하는 별개의 향상 계층들의 이용을 회피할 수 있다. 그러나, 일부 실시형태들에서, 비디오 송신 시스템 (10) 은 예를 들어 선택적으로 일반화된 FGS (Fine Granularity Scalability) 접근법이나 별개의 향상 계층들 중 어느 하나를 이용하여 스케일러빌리티를 지원하도록 구성될 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 실질적으로 대칭적인 방식으로 동작할 수도 있다. 예를 들어, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 각각 비디오 인코딩 및 디코딩 컴포넌트들을 포함할 수도 있다. 따라서, 비디오 송신 시스템 (10) 은 예를 들어 비디오 스트리밍, 비디오 브로드캐스팅 또는 화상 통화를 위해 디바이스들 (12, 14) 간에 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
일부 양태들에서, 비디오 브로드캐스팅을 위해, 본 개시물에 설명된 기술들은 기술적 표준 TIA-1099 ("FLO Specification") 로서 2007년 7월에 발행된 FLO (Forward Link Only) 공중 인터페이스 사양 "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast" 을 이용하여 지상파 모바일 멀티미디어 멀티캐스트 (TM3; Terrestrial Mobile Multimedia Multicast) 시스템에서 실시간 비디오 서비스들을 전달하기 위해 향상된 H.264 비디오 코딩에 적용될 수도 있다. 즉, 통신 채널 (16) 은 FLO Specification 등에 따라 무선 비디오 정보를 브로드캐스팅하는데 이용된 무선 정보 채널을 포함할 수도 있다. FLO Specification 은 비트 스트림 신택스 및 시맨틱을 정의하고 FLO 공중 인터페이스에 적합한 프로세스를 디코딩하는 예들을 포함한다.
대안으로, 비디오는 DVB-H (Digital Video Broadcast-Handheld), ISDB-T (Integrated Services Digital Broadcast-Terrestrial) 또는 DMB (Digital Media Broadcast) 와 같은 다른 표준들에 따라 브로드캐스팅될 수도 있다. 따라서, 소스 디바이스 (12) 는 모바일 무선 단말기, 비디오 스트리밍 서버 또는 비디오 브로드캐스트 서버일 수도 있다. 그러나, 본 개시물에 설명된 기술들은 브로드캐스트, 멀티캐스트 또는 점-대-점 시스템 중 임의의 특정 유형으로 제한되지는 않는다. 브로드캐스트의 경우에, 소스 디바이스 (12) 는 비디오 데이터의 여러 채널들을 다수의 목적지 디바이스들로 브로드캐스팅할 수도 있으며, 다수의 목적지 디바이스들 각각은 도 1 의 목적지 디바이스 (14) 와 유사할 수도 있다. 따라서, 단일의 목적지 디바이스 (14) 가 도 1 에 도시되지만, 비디오 브로드캐스팅을 위해, 소스 디바이스 (12) 는 통상적으로 비디오 콘텐츠를 다수의 목적지 디바이스들로 동시에 브로드캐스팅할 것이다.
다른 예들에서, 송신기 (22), 통신 채널 (16) 및 수신기 (24) 는 이더넷, 전화기 (예를 들어, POTS), 케이블, 송전선 및 광섬유 시스템 중 하나 이상을 포함하는 임의의 유선 또는 무선 통신 시스템, 및/또는 코드 분할 다중 액세스 (CDMA 또는 CDMA2000) 통신 시스템, 주파수 분할 다중 액세스 (FDMA) 시스템, 직교 주파수 분할 다중 (OFDM) 액세스 시스템, 시분할 다중 액세스 (TDMA) 시스템, 이를 테면, GSM (Global System for Mobile Communication), GPRS (General Packet Radio Service) 또는 EDGE (Enhanced Data GSM Environment), TETRA (Terrestrial Trunked Radio) 모바일 전화 시스템, 광대역 코드 분할 다중 액세스 (WCDMA) 시스템, HDR (High Data Rate) 1xEV-DO (First Generation Evolution Data Only) 또는 1xEV-DO 골드 멀티캐스트 시스템, IEEE 402.18 시스템, MediaFLOTM 시스템, DMB 시스템, DVB-H 시스템 또는 2 개 이상의 디바이스들 간의 데이터 통신을 위한 다른 방식 중 하나 이상을 포함하는 무선 시스템에 따라 통신하도록 구성될 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (26) 각각은 하나 이상의 마이크로프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그램가능한 게이트 어레이 (FPGA), 별개의 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수도 있다. 비디오 인코더 (20) 와 비디오 디코더 (26) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 어느 것이나 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등 내에 결합된 인코더/디코더 (CODEC) 의 부분으로서 통합될 수도 있다. 또한, 소스 디바이스 (12) 및 목적지 디바이스 (14) 각각은 적용가능한 것처럼, 무선 통신을 지원하기에 충분한 무선 주파수 (RF) 무선 컴포넌트들 및 안테나들을 포함하는, 인코딩된 비디오의 송수신을 위해 적절한 변조, 복조, 주파수 컨버전, 필터링 및 증폭기 컴포넌트들을 포함할 수도 있다. 그러나, 설명의 용이함을 위해, 이러한 컴포넌트들은 도 1 에서 소스 디바이스 (12) 의 송신기 (22) 및 목적지 디바이스 (14) 의 수신기 (24) 인 것처럼 간략화된다.
도 3 은 일 예시적인 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 를 더욱 상세하게 나타낸 블록도이다. 도 3 의 예에서, 기본 계층 인코더 (30) 는 예측 유닛 (33A), 프레임 저장기 (35A), 변환 유닛 (38A), 양자화 유닛 (40A), 계수 스캐닝 유닛 (41A), 역양자화 유닛 (42A), 역변환 유닛 (44A), 기본 계층 엔트로피 인코더 (46) 및 합산기들 (48A 및 48B) ("합산기들 (48)") 을 포함한다. 도 3 에서 상이한 피쳐들을 유닛들로서 도시한 것은 도시된 디바이스들의 상이한 기능적 양태들을 주목하도록 의도되며 이러한 유닛들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 한다는 것을 반드시 의미하는 것은 아니다. 오히려, 하나 이상의 유닛들과 연관된 기능성은 공통의 또는 개별 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수도 있다.
예측 유닛 (33A) 은 인트라-예측 또는 인터-예측을 이용하여 예측 블록을 생성한다. 예측 블록은 코딩되고 있는 현재의 비디오 블록의 예측된 버전일 수도 있다. 상기 설명한 바와 같이, 예측 유닛 (33A) 은 현재 코딩되고 있는 블록과 동일한 프레임 내의 기본 계층의 하나 이상의 미리 인코딩된 블록들에 기초한 인트라-예측을 이용하여 예측 블록을 생성할 수도 있다. 대안으로, 예측 유닛은 기본 계층의 하나 이상의 인접한 프레임들 내의 하나 이상의 미리 인코딩된 블록들에 기초한 인터-예측을 이용하여 예측 블록을 생성할 수도 있다. 예측 유닛 (33A) 은 프레임 저장기 (35A) 로부터 미리 인코딩된 블록을 취득할 수도 있다.
비디오 블록들의 인트라-기반 예측 또는 인터-기반 예측에 이어, 기본 계층 인코더 (30) 는 합산기 (48A) 에서 현재의 비디오 블록으로부터 예측 유닛 (33A) 에 의해 생성된 예측 블록을 뺌으로써 잔여 블록을 생성한다. 잔여 블록은 현재의 비디오 블록의 픽셀 값들과 예측 블록의 픽셀 값들 간의 차이를 정량화하는 픽셀 차이 값들의 세트를 포함한다. 잔여 블록은 2 차원 블록 포맷 (예를 들어, 2 차원 행렬 또는 픽셀 값들의 어레이) 으로 포현될 수도 있다. 즉, 잔여 블록은 픽셀 값들의 2 차원 표현이다.
변환 유닛 (38A) 은 잔여 블록에 변환을 적용하여 잔여 변환 계수들을 생성한다. 변환 유닛 (38A) 은 예를 들어 DCT, 정수 변환, 방향성 변환, 웨이블릿 변환 또는 이들의 조합을 적용할 수도 있다. 픽셀 값들의 잔여 블록에 변환을 적용한 후에, 양자화 유닛 (40A) 은 이 변환 계수들을 양자화하여 비트 레이트를 더욱 감소시킨다. 양자화에 이어, 역양자화 유닛 (42A) 및 역변환 유닛 (44A) 은 각각 역양자화 및 역변환을 적용하여 잔여 블록을 복원할 수도 있다. 합산기 (48B) 는 복원된 잔여 블록을 예측 유닛 (33A) 에 의해 생성된 예측 블록에 더하여 프레임 저장기 (35A) 에의 저장을 위한 복원된 비디오 블록을 생성한다. 프레임 저장기 (35A) 에 저장된 복원된 비디오 블록은 후속 비디오 블록을 인트라-코딩 또는 인터-코딩하기 위해 기본 계층 인코더 (30) 의 예측 유닛 (33A) 에 의해 이용될 수도 있다. 부가적으로, 이하 보다 상세히 설명되는 바와 같이, 프레임 저장기 (35A) 에 저장된 복원된 비디오 블록은 향상 계층에서 비디오 블록의 세분들을 인트라-코딩 또는 인터-코딩하기 위해 향상 계층 인코더 (32) 의 예측 유닛 (33B) 에 의해 이용될 수도 있다.
양자화에 이어, 계수 스캐닝 유닛 (41A) 은 계수들을 2 차원 블록 포맷에서 1 차원 벡터 포맷으로 스캐닝하며, 이 프로세스는 종종 계수 스캐닝으로 지칭된다. 계수 스캐닝 유닛 (41A) 은 예를 들어 도 7 에 더욱 상세히 설명되는 바와 같이 지그재그 스캔 순서를 이용하여 계수들의 2 차원 블록을 스캐닝할 수도 있다. 스캐닝에 이어, 기본 계층 엔트로피 인코더 (46) 는 1 차원 벡터의 계수들을 엔트로피 인코딩한다. 기본 계층 엔트로피 인코더 (46) 는 예를 들어 H.264/MPEG-4, Part 10 AVC 표준에 정의되며 도 2 에 대하여 상기 상세히 설명한 바와 같이 CAVLC 를 이용하여 계수 벡터의 계수들을 엔트로피 인코딩할 수도 있다.
향상 계층 인코더 (32) 는 예측 유닛 (33B), 프레임 저장기 (35B), 변환 유닛 (38B), 양자화 유닛 (40B), 계수 스캐닝 유닛 (41B), 역양자화 유닛 (42B), 역변환 유닛 (44B), 향상 계층 엔트로피 인코더 (49) 및 합산기들 (48C 및 48D) ("합산기들 (48)") 을 포함한다. 향상 계층 인코더 (32) 의 유닛들은 기본 계층 인코더 (30) 의 같은 번호가 매겨진 유닛들과 실질적으로 유사하다. 이로써, 단지 차이들만이 설명될 것이다.
향상 계층 인코더 (32) 의 예측 유닛 (33B) 은 현재의 비디오 블록의 예측된 버전인 예측 블록을 생성한다. 예측 블록을 생성하기 위해 기본 계층의 미리 인코딩된 블록들만을 이용하는 기본 계층 인코더 (30) 의 예측 유닛 (33A) 과 달리, 향상 계층 인코더 (32) 의 예측 유닛 (33B) 은 기본 계층 및 향상 계층의 하나 이상의 미리 인코딩된 블록들에 기초하여 예측 블록을 생성할 수도 있다. 즉, 예측 유닛 (33B) 은 기본 계층으로부터의 복원된 비디오 블록 및 향상 계층의 복원된 비디오 블록을 이용하여 예측 블록을 생성할 수도 있다. 예를 들어, 예측 유닛 (33B) 은 기본 계층의 복원된 비디오 블록을 향상 계층의 복원된 블록과 결합하여 더 높은 제 2 품질의 예측 블록을 생성할 수도 있다.
예측 유닛 (33B) 에 의해 생성된 예측 블록이 기본 계층과 향상 계층 양자의 복원된 비디오 블록들에 기초하여 생성되기 때문에, 합산기 (48C) 에서 생성된 잔여 블록은 현재의 비디오 블록과 기본 계층 및 향상 계층으로부터 구성된, 즉 더 높은 제 2 비주얼 품질의 미리 인코딩된 블록 간의 차이를 나타낸다.
향상 계층 인코더 (32) 의 양자화 유닛 (40B) 은, 기본 계층 인코더 (30) 의 양자화 유닛 (40A) 과 동작적으로 유사하지만, 상이한 QP 를 이용하여 변환 계수들을 양자화할 수도 있다. 도 2 에 대하여 상기 설명한 바와 같이, SNR 스케일러빌리티는 상이한 양자화 파라미터들을 이용함으로써 달성될 수도 있다. 예를 들어, 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 가 ITU-T H.264/MPEG-10 AVC 에 따라 동작할 때, 양자화 유닛 (40A) 은 양자화 유닛 (40B) 에 의해 이용된 QP 값보다 더 큰 QP 값을 이용하여 비디오 데이터를 인코딩할 수도 있다. 그 결과, 기본 계층 인코더 (30) 로부터의 양자화된 잔여 변환 계수들은 제 1 품질의 비디오 시퀀스를 나타내고 향상 계층 인코더 (32) 로부터의 양자화된 잔여 변환 계수들은 기본 계층과 결합될 때 비디오 시퀀스의 품질을 더 높은 제 2 비주얼 품질로 증가시키는 비디오 시퀀스의 부가적인 계수들 또는 기존 계수들의 세분들을 나타낸다.
또한, 도 2 에 대하여 상세히 설명한 바와 같이, 향상 계층 엔트로피 인코더 (49) 는 단일의 인코딩 패스에서 양자화된 잔여 변환 계수들을 인코딩한다. 즉, 향상 계층 엔트로피 인코더 (49) 는 계수 벡터의 임의의 후속 계수들의 정보 없이 향상 계층의 계수 벡터의 각 넌제로 계수를 인코딩할 수도 있다. 단일의 패스에서 향상 계층을 코딩하는 것은 계수 벡터를 분석하기 위한 제 1 패스 및 그 분석에 기초하여 계수 벡터를 코딩하기 위한 제 2 패스를 수행할 필요성을 제거할 수도 있다. 대신에, 향상 계층 엔트로피 인코더 (49) 는 계수 벡터의 처음에서 시작하여 계수들 각각을 단일의 인코딩 패스에서 하나씩 인코딩한다. 향상 계층의 엔트로피 인코딩에 관한 그 이상의 상세는 이하 도 4 와 관련하여 설명된다.
도 4 는 일 예시적인 기본 계층 엔트로피 인코더 (46) 및 향상 계층 엔트로피 인코더 (49) 를 더욱 상세하게 나타낸 블록도이다. 기본 계층 엔트로피 인코더 (46) 는 분석 유닛 (50), 복수의 VLC 테이블들 (52A 내지 52N) ("VLC 테이블들 (52)"), 총 계수 인코더 (54), 트레일링 1 (T1s) 인코더 (56), 부호 인코더 (58), 계수 크기 인코더 (60), 런들의 합계 인코더 (62) 및 런 길이 인코더 (64) 를 포함할 수도 있다. 향상 계층 엔트로피 인코더 (49) 는 EOB 심볼 인코더 (66), 런 길이 인코더 (68), 부호 인코더 (70) 및 VLC 테이블 (69) 을 포함할 수도 있다.
기본 계층 엔트로피 인코더 (46) 는 다수의 인코딩 패스들을 수행함으로써 제 1 품질의 비디오 블록을 나타내는 계수 벡터를 인코딩한다. 예를 들어, H.264/MPEG-4, Part 10 AVC 표준에 정의한 바와 같이 CAVLC 에 따라, 기본 계층 엔트로피 인코더 (46) 는 계수 벡터를 분석하여, 예를 들어 계수 벡터를 나타내는 심볼들을 생성하고/하거나 VLC 테이블들을 선택하기 위한 제 1 인코딩 패스 및 그 분석에 기초하여 계수 벡터를 인코딩하기 위한 제 2 인코딩 패스를 수행할 수도 있다.
일 예로서, 기본 계층 엔트로피 인코더 (46) 의 분석 유닛 (50) 은 계수 벡터를 분석하여 계수 블록을 나타내는 하나 이상의 심볼들을 생성할 수도 있다. 분석 유닛 (50) 은 예를 들어, H.264/MPEG-4, Part 10 AVC 표준에 따라, 블록 내의 총 계수들의 수 (TotalCoeff), 트레일링 1 의 갯수 (T1s), 각 트레일링 1 의 부호, 각 넌제로 계수의 크기, 런들의 총합 (sumRuns) 및 각 넌제로 계수에 선행하는 런 길이를 결정할 수도 있다. 분석 유닛 (50) 에 의해 생성되는 심볼들 중 적어도 일부, 예를 들어, TotalCoeff 및 sumRuns 는 계수 벡터의 계수들 모두를 나타낼 수도 있다. 분석 유닛 (50) 은 다른 경우들에는 더 많은 심볼들 또는 더 적은 심볼들을 생성할 수도 있다.
부가적으로, 또는 대안으로, 분석 유닛 (50) 은 제 1 또는 후속 인코딩 패스 동안, 심볼들을 인코딩하는데 이용하기 위한 VLC 테이블들 (52) 의 서브세트를 선택할 수도 있다. 일 양태에서, 분석 유닛 (50) 은 생성된 심볼들에 기초하여 VLC 테이블들 (52) 의 서브세트를 선택할 수도 있다. 대안으로, 분석 유닛 (50) 은 계수 벡터의 분석 동안 통계를 수집하고 수집된 통계에 기초하여 VLC 테이블들 (52) 의 서브세트를 선택할 수도 있다. 예를 들어, 기본 계층 인코더 (30) 는 2 개의 값들 간에 어떤 관계가 있기 때문에 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 sumRuns 심볼을 인코딩할 때 이용하기 위한 VLC 테이블을 선택할 수도 있다. 이하 더 상세히 설명되는 바와 같이, 생성된 심볼들 또는 다른 통계에 기초하여 VLC 테이블들 (52) 의 서브세트를 선택하는 것은 계수 벡터를 나타내는 심볼들의 보다 효율적인 인코딩을 가능하게 할 수도 있다.
기본 계층 엔트로피 인코더 (46) 는 제 2 또는 다른 후속 코딩 패스 동안 계수 벡터를 인코딩한다. 특히, 총 계수 인코더 (54) 는 계수 벡터 내의 넌제로 계수들의 총수 (TotalCoeff) 를 인코딩한다. 총 계수 인코더 (54) 는 현재의 계수 벡터의 넌제로 계수들의 수의 예측에 기초하여 선택된 VLC 테이블들 (52) 중 하나를 이용하여 TotalCoeff 를 인코딩할 수도 있다. 일 예로, 현재의 계수 벡터의 넌제로 계수들의 수의 예측은 하나 이상의 미리 인코딩된 비디오 블록들, 예를 들어, 상부 이웃의 비디오 블록과 좌측 이웃의 비디오 블록의 넌제로 계수들의 수에 기초하여 행해질 수도 있다. 이 방식으로, 기본 계층 엔트로피 디코더는 미리 디코딩된 블록에 기초하여 동일한 VLC 테이블을 선택할 수도 있다.
총 계수 인코더 (54) 가 넌제로 계수들의 총수를 인코딩한 후에, T1s 인코더 (56) 는 T1s 심볼을 인코딩한다. T1s 인코더 (56) 는 예측된 넌제로 계수들의 수에 기초하여 선택된 VLC 테이블들 (52) 중 하나를 이용하여, 예를 들어, 총 계수 인코더 (54) 에 대하여 상기 설명된 것과 동일한 방식으로 T1s 심볼을 인코딩할 수도 있다.
부호 인코더 (58) 는 임의의 트레일링 1 의 부호를 인코딩한다. 예를 들어, 부호 인코더 (58) 는 트레일링 1 각각에 대해, 그 트레일링 1 의 부호가 포지티브인 경우에는 '1' 을 인코딩하고 트레일링 1 의 부호가 네거티브인 경우에는 '0' 을 인코딩할 수도 있다. 계수 크기 인코더 (60) 는 트레일링 1 이 아닌 넌제로 계수들의 레벨 (예를 들어 크기) 을 인코딩한다. 계수 크기 인코더 (60) 는 VLC 테이블, 고정 길이 코딩 또는 다른 유형의 엔트로피 코딩을 이용하여 넌제로 계수들의 레벨을 인코딩할 수도 있다.
런들의 합계 인코더 (62) 는 마지막 넌제로 계수 전에 계수 벡터에서 발생하는 제로값 계수들의 수를 나타내는 심볼, 즉, sumRuns 심볼을 인코딩할 수도 있다. 런들의 합계 인코더 (62) 는 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 선택된 VLC 테이블들 (52) 중 하나를 이용하여 sumRuns 심볼을 인코딩한다. 다시, 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 sumRuns 심볼을 인코딩할 때 이용하기 위한 VLC 테이블을 선택하는 것은 런들의 합계 인코더 (62) 가 sumRuns 를 보다 효율적으로 인코딩하는 VLC 테이블을 선택하도록 허용할 수도 있다.
런 길이 인코더 (64) 는 계수 벡터의 런 길이를 인코딩한다. 런 길이 인코더 (64) 는 계수 벡터의 제 1 넌제로 계수 전의 런 길이가 인코딩될 때까지 먼저 계수 벡터의 마지막 넌제로 계수의 런 길이에 이어, 선행하는 넌제로 계수의 런 길이 등등을 인코딩할 수도 있다. 즉, 런 길이 인코더는 마지막 런 길이를 먼저 인코딩하기 시작할 수도 있다. 런 길이 인코더 (64) 는 계수 벡터의 총 런들의 합계 (sumRuns) 및 지금까지 코딩된 런들의 합계에 기초하여 선택된 VLC 테이블 (52) 을 이용하여 런 길이 각각을 인코딩할 수도 있다. 일 예로서, 계수 벡터가 8 의 런들의 합계 (sumRuns) 를 갖고, 인코딩된 마지막 넌제로 계수 전에 인코딩된 런이 6 이었다면, 모든 나머지 런들은 0, 1 또는 2 여야 한다. 가능한 런 길이는 각 부가적인 런이 인코딩됨에 따라 점차 짧아지기 때문에, 런 길이 인코더 (64) 는 보다 효율적인 VLC 테이블들을 선택하여 런들을 나타내는데 이용되는 비트들의 수를 감소시킬 수도 있다. 이 방식으로, 런 길이 인코더 (64) 에 의해 이용된 VLC 테이블 (52) 은 런 길이 각각에 대해 변할 수도 있다.
향상 계층 엔트로피 인코더 (49) 는 예를 들어, 부가적인 계수들 또는 기존 계수들에 대한 세분들의 형태로, 단일의 인코딩 패스에서 비디오 블록에 대한 세분들을 나타내는 계수 벡터를 인코딩하여 향상 계층을 형성한다. 더 상세히 설명되는 바와 같이, 소스 디바이스 (12) 는 일부 경우들에는 임의의 후속 계수들의 정보 없이 향상 계층의 계수 벡터의 각 넌제로 계수를 인코딩할 수도 있다. 향상 계층 엔트로피 인코더 (49) 는 계수 벡터의 처음에서 시작하여 계수들 각각을 단일의 인코딩 패스에서 하나씩 인코딩할 수도 있다. 이 방식으로, 향상 계층 엔트로피 인코더 (49) 는 계수 벡터에서 추후 발생하는 계수들을 분석하지 않고 계수 벡터를 일 계수씩 인코딩한다. 단일의 패스에서 향상 계층을 코딩하는 것은 계수 벡터를 분석하기 위한 제 1 패스 및 그 분석에 기초하여 계수 벡터를 코딩하기 위한 제 2 패스를 수행할 필요성을 제거할 수도 있다.
넌제로 계수들의 각각에 대해, EOB 심볼 인코더 (66) 는 계수 벡터 내에 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 EOB 심볼을 인코딩한다. 예를 들어, EOB 심볼 인코더 (66) 는 적어도 하나의 나머지 넌제로 계수, 예를 들어 적어도 현재의 넌제로 계수가 존재할 때 0 을 인코딩하고, 더이상 나머지 넌제로 계수가 존재하지 않을 때 1 을 인코딩할 수도 있다.
각 계수의 EOB 심볼의 인코딩에 이어, 런 길이 인코더 (68) 는 넌제로 계수에 선행하는 런 길이를 인코딩한다. 상기 설명한 바와 같이, 런 길이는 현재의 넌제로 계수에 선행하는 제로값 계수들의 수를 나타낸다. 런 길이 인코더 (68) 는 단일의 VLC 테이블 (69) 을 이용하여 런 길이들을 인코딩할 수도 있다. 일 경우에, VLC 테이블 (69) 은 기본 계층 엔트로피 인코더 (46) 의 VLC 테이블들 (52) 중 하나와 동일할 수도 있다. 대안으로, 런 길이 인코더 (68) 는 향상 계층의 계수 벡터의 런들을 인코딩하도록 특별히 디자인된 개별 VLC 테이블을 유지지할 수도 있다. 임의의 경우에, 런 길이 인코더 (68) 는 런들을 인코딩하는데 이용하기 위한 VLC 테이블을 적응적으로 선택할 필요가 없을 수도 있다. 대신에, 런 길이 인코더 (68) 는 단일의 VLC 테이블을 이용하여 VLC 테이블을 선택하는데 이용된 통계를 수집하기 위한 제 1 패스의 필요성을 제거할 수도 있다.
각 계수의 인코딩된 런 길이에 이어, 부호 인코더 (70) 는 넌제로 계수의 부호를 인코딩한다. 부호 인코더 (70) 는 예를 들어 넌제로 계수의 부호가 포지티브인 경우에 '1' 을 인코딩하고 넌제로 계수의 부호가 네거티브인 경우에 '0' 을 인코딩할 수도 있다. 향상 계층 엔트로피 인코더 (49) 는 향상 계층의 넌제로 계수들의 크기를 인코딩하지 않을 수도 있는데, 이는 피크 신호 대 잡음비 (PSNR) 에 있어서 약간의 손실을 초래할 수도 있지만 계수들을 인코딩하는데 이용되는 비트들의 수를 감소시킨다.
본 개시물의 엔트로피 코딩 기술들은 향상 계층 엔트로피 인코더 (49) 가 단일의 패스에서 향상 계층 비트 스트림의 계수들을 인코딩하도록 허용할 수도 있다. 향상 계층 엔트로피 인코더 (49) 가 계수 벡터를 분석하여, 예를 들어 심볼들을 생성하고/하거나 VLC 테이블들을 선택하지 않기 때문에, 단 하나의 인코딩 패스만이 필요하다. 종래의 인코더들은 통상적으로 적어도 2 개의 패스들, 즉 (1) 계수 벡터를 분석하기 위한 제 1 패스 및 (2) 그 분석에 기초하여 계수 벡터를 인코딩하기 위한 제 2 패스를 수행한다. 부가적으로, 향상 계층 엔트로피 인코더 (49) 는 단일의 VLC 테이블을 이용하여 향상 계층의 계수들을 인코딩하여, 다양한 VLC 테이블들에서 선택하기 위한 인코딩 패스를 수행할 필요성을 제거할 수도 있다. 이 방식으로, 향상 계층 엔트로피 인코더 (49) 는 코딩 복잡도, 코딩 지연 및 메모리 요건을 감소시킬 수도 있다. 또한, 본 개시물의 엔트로피 코딩 기술들은 부가적으로 기본 계층의 계수 정보의 저장 및 액세스 없이 향상 계층의 계수들의 코딩을 초래하여, 계산 복잡도 및 메모리 요건을 더욱 감소시킬 수도 있다.
도 5 는 일 예시적인 기본 계층 디코더 (34) 및 향상 계층 디코더 (36) 를 더욱 상세하게 나타낸 블록도이다. 기본 계층 디코더 (34) 는 기본 계층 엔트로피 디코더 (72), 계수 스캐닝 유닛 (74A), 역양자화 유닛 (76A), 역변환 유닛 (78A), 예측 유닛 (80A), 프레임 저장기 (82A) 및 합산기 (84A) 를 포함한다. 향상 계층 디코더 (36) 는 향상 계층 엔트로피 디코더 (86), 계수 스캐닝 유닛 (74B), 역양자화 유닛 (76B), 역변환 유닛 (78B), 예측 유닛 (80B), 프레임 저장기 (82B) 및 합산기 (84B) 를 포함한다.
기본 계층 엔트로피 디코더 (72) 는 수신된 기본 계층 비트 스트림을 디코딩하여 디스플레이 디바이스 상에의 표시를 위한 제 1 품질의 비디오 데이터를 생성한다. 기본 계층 엔트로피 디코더 (72) 는 기본 계층 비트 스트림을 수신하고 기본 계층 비트 스트림을 디코딩하여 (예를 들어, 양자화된 잔여 계수들의 1 차원 벡터 형태의) 잔여 정보 및 (예를 들어, 하나 이상의 헤더 신택스 엘리먼트들의 형태의) 헤더 정보를 획득한다. 기본 계층 엔트로피 디코더 (72) 는 도 3 및 도 4 의 기본 계층 엔트로피 인코더 (46) 에 의해 수행된 인코딩의 상호간의 디코딩 기능을 수행한다.
특히, 기본 계층 엔트로피 디코더 (72) 는 기본 계층을 디코딩하여 기본 계층의 양자화된 잔여 계수들의 벡터를 나타내는 심볼들을 획득한다. 예를 들어, H.264/MPEG-4, Part 10 AVC 표준에 정의한 바와 같이 CAVLC 를 이용하여 코딩할 때, 기본 계층 엔트로피 디코더 (72) 는 기본 계층을 디코딩하여 블록 내의 넌제로 계수들의 총수 (TotalCoeff), 블록의 트레일링 1 의 갯수 (T1s), 트레일링 1 의 부호, 트레일링 1 이 아닌 계수들의 크기, 모든 런들의 합계 (sumRuns), 및 각 넌제로 계수 전의 런들을 획득할 수도 있다. 일부 경우들에서, 디코딩하기 위해 선택된 VLC 테이블들은 미리 디코딩된 블록들 또는 현재의 블록의 미리 디코딩된 심볼들에 기초하여 선택될 수도 있다. 다른 경우들에서, 기본 계층 엔트로피 디코더 (72) 는 기본 계층 비트 스트림을 디코딩하여 기본 계층 심볼들을 디코딩하는데 이용하기 위한 VLC 테이블들을 식별할 수도 있다. 디코딩된 심볼들을 이용하여, 기본 계층 엔트로피 디코더 (72) 는 기본 계층의 계수 벡터를 복원할 수도 있다.
계수 벡터를 생성한 후에, 계수 스캐닝 유닛 (74A) 은 계수 벡터를 역스캐닝하여 양자화된 잔여 계수들의 2 차원 블록을 생성한다. 역양자화 유닛 (76A) 은 양자화된 잔여 계수들을 역양자화 (즉, 양자화해제 (de-quantize)) 하고, 역변환 유닛 (78A) 은 양자화해제된 잔여 계수들에 역변환, 예를 들어, 역 DCT, 역정수 변환, 역웨이블릿 변환 또는 역방향성 변환을 적용하여 픽셀 값들의 잔여 블록을 생성한다.
예측 유닛 (80A) 은 인트라-예측의 경우에는 공통 프레임 내의 하나 이상의 인접한 블록들을 이용하여 또는 인터-예측의 경우에는 인접한 프레임들 내의 하나 이상의 블록들을 이용하여 예측 블록을 생성한다. 예측 유닛은 기본 계층으로부터 단지 미리 인코딩된 블록들만을 이용하여 예측 블록을 생성한다. 합산기 (84A) 는 예측 유닛 (80A) 에 의해 생성된 예측 블록을 픽셀 값들의 잔여 블록과 더하여 복원된 기본 계층 비디오 블록을 형성한다. 기본 계층 비디오 블록은 후속 예측 블록들을 생성하는데 있어서 이용하기 위해 프레임 저장기 (82A) 내에 저장된다.
향상 계층 디코더 (36) 는 향상 계층의 비트 스트림을 디코딩하여 예를 들어 부가적인 잔여 계수들 또는 기존 잔여 계수들에 대한 세분들의 벡터 형태로 비디오 데이터의 세분들을 획득한다. 향상 계층 엔트로피 디코더 (86) 는 향상 계층 엔트로피 인코더 (49) 에 의해 이용된 것과 동일한 VLC 테이블을 이용하여, 더이상 넌제로 계수들이 남아있지 않다는 것을 EOB 심볼이 나타낼 때까지 향상 계층 계수들의 런들 및 부호들을 디코딩한다. 디코딩된 심볼들을 이용하여, 향상 계층 엔트로피 디코더 (86) 는 향상 계층 블록의 계수 벡터를 복원한다. 디코딩된 계수 벡터는 기본 계층의 비트들과 결합될 때 디코딩된 비디오 데이터의 품질을 더 높은 제 2 품질로 증가시키는 세분들을 나타내는 부가적인 비트들을 나타낸다.
계수 벡터를 생성한 후에, 계수 스캐닝 유닛 (74B) 은 계수 벡터를 역스캐닝하여 양자화된 잔여 계수들의 2 차원 블록을 생성한다. 역양자화 유닛 (76B) 은 양자화된 잔여 계수들을 역양자화, 즉, 양자화해제하고, 역변환 유닛 (78B) 은 양자화해제된 잔여 계수들에 역변환, 예를 들어, 역 DCT, 역정수 변환, 역웨이블릿 변환 또는 역방향성 변환을 적용하여 픽셀 값들의 잔여 블록을 생성한다.
예측 유닛 (80B) 은 인트라-예측의 경우에는 공통 프레임 내의 하나 이상의 인접한 블록들을 이용하여 또는 인터-예측의 경우에는 인접한 프레임들 내의 하나 이상의 블록들을 이용하여 예측 블록을 생성한다. 예측 유닛은 기본 계층과 향상 계층 양자로부터 미리 인코딩된 블록들을 이용하여 예측 블록을 생성한다. 합산기 (84B) 는 예측 유닛 (80B) 에 의해 생성된 예측 블록을 픽셀 값들의 잔여 블록과 더하여 복원된 향상 계층 비디오 블록을 형성한다. 향상 계층 비디오 블록은 후속 예측 블록들을 생성하는데 있어서 예측 유닛 (80B) 에 의해 이용하기 위해 프레임 저장기 (82B) 내에 저장된다. 복원된 기본 계층 비디오 블록 및 복원된 향상 계층 비디오 블록은 합산기 (84C) 에서 결합되어 더 높은 품질을 가진 비디오 블록을 형성한다.
도 6 은 일 예시적인 기본 계층 엔트로피 디코더 (72) 및 향상 계층 엔트로피 디코더 (86) 를 더욱 상세하게 나타낸 블록도이다. 기본 계층 엔트로피 디코더 (72) 는 복수의 VLC 테이블들 (52A 내지 52N) ("VLC 테이블들 (52)"), 총 계수 디코더 (90), 트레일링 1 (T1s) 디코더 (92), 부호 디코더 (94), 계수 크기 디코더 (96), 런들의 합계 디코더 (98) 및 런 길이 디코더 (100) 를 포함할 수도 있다. 향상 계층 엔트로피 디코더 (86) 는 EOB 심볼 디코더 (102), 런 길이 디코더 (104), 부호 디코더 (106) 및 VLC 테이블 (69) 을 포함할 수도 있다.
기본 계층 엔트로피 디코더 (72) 는 기본 계층 비트 스트림을 디코딩하여 기본 품질 레벨의 비디오 블록의 계수 벡터를 나타내는 심볼들을 획득한다. 총 계수 디코더 (90) 는 VLC 테이블들 (52) 중 하나를 이용하여 비트 스트림을 디코딩하여 계수 벡터 내의 넌제로 계수들의 총수 (TotalCoeff) 를 획득한다. 총 계수 디코더 (90) 는 현재의 계수 벡터의 넌제로 계수들의 수의 예측, 예를 들어 하나 이상의 미리 디코딩된 비디오 블록들의 넌제로 계수들의 수에 기초하여 TotalCoeff 를 디코딩하기 위한 VLC 테이블 (52) 을 선택할 수도 있다. 이 방식으로, 총 계수 디코더 (90) 는 TotalCoeff 심볼을 인코딩하기 위해 총 계수 인코더 (54) 에 의해 이용된 것과 동일한 VLC 테이블 (52) 을 선택할 수도 있다.
총 계수 디코더 (90) 가 넌제로 계수들의 총수를 디코딩한 후에, T1s 디코더 (92) 는 T1s 심볼을 디코딩한다. T1s 심볼은 계수 벡터가 역순으로 판독될 때 1 보다 더 큰 크기를 가진 계수가 직면하게 되기 전에 직면하게 되는 크기 1 을 가진 계수들의 수를 나타낸다. T1s 디코더 (92) 는 예측된 넌제로 계수들의 수에 기초하여 선택된 VLC 테이블들 (52) 중 하나를 이용하여 T1s 심볼을 디코딩할 수도 있다.
부호 디코더 (94) 는 임의의 트레일링 1 의 부호를 디코딩한다. 예를 들어, 부호 디코더 (94) 는 트레일링 1 각각에 대해, '1' 이 수신될 때 계수의 부호가 포지티브인 것으로 결정하고 '0' 이 수신될 때 계수의 부호가 네거티브인 것으로 결정할 수도 있다. 계수 크기 디코더 (96) 는 트레일링 1 이 아닌 넌제로 계수들의 크기를 디코딩한다. 계수 크기 디코더 (96) 는 VLC 테이블, 고정 길이 코딩 또는 다른 유형의 엔트로피 코딩을 이용하여 넌제로 계수들의 레벨들을 디코딩할 수도 있다.
런들의 합계 디코더 (98) 는 마지막 넌제로 계수 전에 계수 벡터에서 발생하는 제로값 계수들의 수를 나타내는 심볼, 즉, sumRuns 심볼을 디코딩할 수도 있다. 런들의 합계 디코더 (98) 는 총 계수 디코더 (90) 에 의해 미리 디코딩된, 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 선택된 VLC 테이블들 (52) 중 하나를 이용하여 sumRuns 심볼을 디코딩한다. 다시, 블록 내의 계수들의 총수 (TotalCoeffs) 에 기초하여 sumRuns 심볼을 디코딩할 때 이용하기 위한 VLC 테이블을 선택하는 것은 런들의 합계 디코더 (98) 가 sumRuns 를 보다 효율적으로 디코딩하는 VLC 테이블을 선택하도록 허용할 수도 있다.
런 길이 디코더 (100) 는 계수 벡터의 런 길이들을 디코딩한다. 런 길이 디코더 (100) 는 계수 벡터의 제 1 넌제로 계수 전의 런 길이가 디코딩될 때까지, 먼저 계수 벡터의 마지막 넌제로 계수의 런 길이에 이어, 선행하는 넌제로 계수의 런 길이 등등을 디코딩할 수도 있다. 즉, 런 길이 디코더 (100) 는 마지막 런 길이를 먼저 디코딩하기 시작할 수도 있다. 런 길이 디코더 (100) 는 계수 벡터의 총 런들의 합계 (sumRuns) 및 지금까지 코딩된 런들의 합계에 기초하여 선택된 VLC 테이블 (52) 을 이용하여 런 길이 각각을 디코딩할 수도 있다. sumRuns 심볼은 런들의 합계 디코더 (98) 에 의해 미리 디코딩되었다. 그러나, 런 길이 디코더 (100) 는 지금까지 디코딩된 런들의 합계에 관한 통계를 수집할 수도 있다. 가능한 런 길이는 각 부가적인 런이 디코딩됨에 따라 점차 짧아지기 때문에, 런 길이 디코더 (100) 는 보다 효율적인 VLC 테이블들을 선택하여 런들을 나타내는데 이용되는 비트들의 수를 감소시킬 수도 있다. 이 방식으로, 런 길이 디코더 (100) 에 의해 이용된 VLC 테이블 (52) 은 런 길이 각각에 대해 변할 수도 있다.
향상 계층 엔트로피 디코더 (86) 는 향상 계층의 비트 스트림을 디코딩하여 예를 들어 부가적인 계수들 또는 기존 계수들에 대한 세분들의 형태로 비디오 블록에 대한 세분들을 획득한다. EOB 심볼 디코더 (102) 는 적어도 하나의 나머지 넌제로 계수가 존재하는지 여부를 EOB 심볼이 나타내는지를 결정한다. 적어도 하나의 나머지 넌제로 계수가 존재할 때, 런 길이 디코더 (104) 는 다음의 넌제로 계수에 선행하는 런 길이를 디코딩한다. 런 길이 디코더 (104) 는 런 길이 인코더 (68) 에 의해 이용된 것과 동일한 VLC 테이블인 VLC 테이블 (69) 을 이용하여 다음의 넌제로 계수의 런 길이를 디코딩할 수도 있다. 부호 디코더 (106) 는 넌제로 계수의 부호를 디코딩한다. 예를 들어, 부호 인코더 (106) 는 '1' 이 수신될 때 계수의 부호를 포지티브인 것으로 결정하고 '0' 이 수신될 때 계수의 부호를 네거티브인 것으로 결정할 수도 있다. 향상 계층 엔트로피 디코더 (86) 는 나머지 넌제로 계수들이 존재하지 않는다는 것을 EOB 심볼 디코더 (102) 가 나타낼 때까지 넌제로 계수들을 계속 디코딩한다.
도 7 은 4×4 계수 블록 (110) 의 지그재그 스캐닝을 나타낸 개념도이다. 도 7 에 도시된 지그재그 스캐닝은 도 2 의 인코더들 (30, 32) 에 의해 수행될 수도 있다. 도 7 에 도시된 이러한 지그재그 스캐닝에 대한 스캐닝 순서는 비디오 블록들 (110) 을 통하여 화살표를 따라가며, 계수들 (c1 내지 c16) 은 스캐닝 순서대로 라벨링된다. 특히, 도 7 에 도시된 수치값들은 순차적인 1 차원 벡터 내의 계수들의 포지션들을 나타내며, 계수들의 실제값들을 나타내지는 않는다. 도 7 에 나타낸 지그재그 스캐닝의 결과는 1 차원 계수 벡터 X 이며,
Figure 112010030905350-pct00001
여기서, c1 내지 c16 은 계수들의 2 차원 어레이 내의 계수 포지션들을 나타낸다.
본 개시물의 기술들은 임의의 특정 스캐닝 순서 또는 기술로 제한되지 않는다. 예를 들어, 본 개시물에 이용된 스캐닝 순서는 도 7 에 도시된 지그재그 스캐닝 순서일 수도 있다. 대안으로, 본 개시물에 이용된 스캐닝 순서는 수평 스캐닝, 수직 스캐닝 또는 임의의 다른 스캐닝 기술과 같이 다른 스캐닝 순서들일 수도 있다.
도 8 은 향상 계층의 계수들의 계수 블록 (120) 의 가상예를 나타낸 개념도이다. 이 예에서, 도 8 에 도시된 수치값들은 포지션들에서의 계수들의 실제값들을 나타낸다. 계수 블록 (120) 의 실제 계수 값들은 양자화된 잔여 계수들, 양자화되지 않은 변환 계수들, 또는 향상 계층 내의 비디오 블록의 다른 유형의 계수들을 나타낼 수도 있다. 도 8 에 나타낸 예에서, 계수 블록 (120) 은 4×4 블록이다. 그러나, 본 개시물의 기술들은 임의의 사이즈의 블록들에 적용되도록 확장될 수도 있다. 도 7 에 나타낸 지그재그 스캐닝에 따라 계수 블록 (120) 을 스캐닝한 후에, 결과의 계수 벡터 V 는,
Figure 112010030905350-pct00002
이다.
향상 계층 인코더 (32) 는 본 개시물에 설명된 기술들에 따라 계수 벡터 V 의 계수들 각각을 인코딩한다. 일 예로서, 계수 벡터 V 의 넌제로 계수들 각각에 대해, 향상 계층 인코더 (32) 는 EOB 심볼, 런 길이 및 부호를 인코딩한다. 상기 상세히 설명한 바와 같이, EOB 심볼은 계수 벡터에 임의의 나머지 넌제로 계수들이 존재하는지 여부를 나타내고, 런 길이는 계수 벡터의 현재의 넌제로 계수 전에 발생하는 제로값 계수들의 수를 나타내며, 부호는 계수 값이 포지티브인지 네거티브인지를 나타낸다.
본 개시물의 일 양태에 의하면, 향상 계층 인코더 (32) 는 계수들의 크기를 인코딩하지 않을 수도 있다. 대신에, 향상 계층 인코더 (32) 는 마치 넌제로 계수들 모두의 크기가 1 과 같았던 것처럼 넌제로 계수들 각각을 인코딩할 수도 있다. 이 방식으로, 향상 계층 인코더 (32) 는 V 대신에 다음의 계수 벡터 V' 를 인코딩하는 것으로 고려될 수도 있다.
Figure 112010030905350-pct00003
향상 계층 인코더 (32) 는 예를 들어 0 과 같은 EOB, 0 의 런에 대한 코드워드 및 1 과 같은 부호를 이용하여 제 1 계수 (즉, 계수 벡터 V 에서는 4 또는 계수 벡터 V' 에서는 1) 를 인코딩하고, 0 과 같은 EOB, 2 의 런에 대한 코드워드 및 0 과 같은 부호를 이용하여 제 2 계수 (즉, 계수 벡터 V 에서는 -2 또는 계수 벡터 V' 에서는 -1) 를 인코딩하며, 0 과 같은 EOB, 1 의 런에 대한 코드워드 및 0 과 같은 부호에 이어 1 과 같은 EOB 심볼로 제 3 넌제로 계수 (즉, 계수 벡터 V 또는 계수 벡터 V' 에서는 1) 를 인코딩할 수도 있다. 상기 설명한 바와 같이, 런들을 인코딩하는데 이용된 코드워드들은 H.264/MPEG-4 Part 10 AVC 표준에 정의된 VLC 테이블로부터 획득될 수도 있다.
예시적인 인코딩된 비트 스트림은 예시를 위해 설명된다. 향상 계층 인코더 (32) 는 본 개시물의 범위로부터 벗어남 없이 상이한 방식들로 계수 벡터 V, V' 를 인코딩할 수도 있다. 예를 들어, EOB 심볼은 블록 내의 부가적인 넌제로 계수들을 나타내기 위해 1 로서, 그리고 나머지 넌제로 계수들이 없다는 것을 나타내기 위해 0 으로서 인코딩될 수도 있다. 마찬가지로, 부호 심볼은 포지티브 넌제로 계수를 나타내기 위해 0 으로서, 그리고 네거티브 넌제로 계수를 나타내기 위해 1 로서 인코딩될 수도 있다. 다른 예로서, 각각의 넌제로 계수에 대해 인코딩된 EOB 심볼은 현재의 계수가 벡터의 마지막 넌제로 계수인지 여부를 나타낼 수도 있다. 이로써, 인코딩된 비트 스트림의 끝에 EOB 심볼이 존재하지 않을 수도 있다. 대신에, EOB 심볼이 현재의 계수가 마지막 넌제로 계수라는 것을 나타낼 때, 비디오 디코더는 현재의 계수의 런 및 심볼을 디코딩한 후에 블록의 부가적인 계수들이 존재하지 않는다는 것을 안다.
도 9 는 도 2 의 비디오 인코더 (20) 와 같은 비디오 인코더가 본 개시물의 스케일러블 비디오 코딩 기술들을 수행하는 예시적인 동작을 나타낸 흐름도이다. 비디오 인코더 (20) 의 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 는 비디오 소스 (18) 로부터 비디오 데이터를 획득한다 (130). 상기 설명한 바와 같이, 기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 는 동일한 원래의 비디오 데이터를 획득한다. 비디오 소스 (18) 로부터 획득된 비디오 데이터는 예를 들어 일련의 비디오 프레임들일 수도 있다.
각 비디오 블록에 대해, 기본 계층 인코더 (30) 는 다수의 인코딩 패스들을 수행하는 코딩 기술들을 이용하여 기본 계층을 인코딩한다 (132). 기본 계층은 제 1 품질 레벨로 비디오 블록을 인코딩한다. 기본 계층 인코더 (30) 는 제 1 품질의 비디오 블록을 나타내는 계수 벡터를 생성하고 블록의 잔여 변환 계수들을 인코딩하여 기본 계층을 생성할 수도 있다. 기본 계층 인코더 (30) 는 계수 벡터를 인코딩하여 H.264/MPEG-4, Part 10 AVC 표준에 정의한 바와 같이 CAVLC 에 따라 기본 계층을 생성할 수도 있다. 도 2 에 대하여 상기 상세히 설명한 바와 같이, 기본 계층 인코더 (30) 는 계수 벡터를 분석하기 위한 제 1 인코딩 패스 및 그 분석에 기초하여 계수 벡터를 인코딩하기 위한 제 2 패스를 수행할 수도 있다.
각 비디오 블록에 대해, 향상 계층 인코더 (32) 는 단일의 인코딩 패스를 수행하는 코딩 기술을 이용하여 부가적인 비트들을 향상 계층으로서 인코딩한다 (134). 향상 계층 비트 스트림의 부가적인 비트들은 기본 계층 비트 스트림에 더해질 때 비디오를 더 높은 제 2 품질 레벨로 향상시키는 세분들을 인코딩한다. 향상 계층 인코더 (32) 가 이 예에서 단지 단일의 향상 계층만을 인코딩하는 것처럼 설명되지만, 향상 계층 인코더 (32) 는 2 개 이상의 향상 계층 비트 스트림을 인코딩할 수도 있다. 그 경우에, 향상 계층들은, 그 향상 계층들이 그들이 디코딩됨에 따라 점차 더 높은 품질을 제공한다는 점에서 계층적일 수도 있다.
향상 계층 인코더 (32) 에 의해 이용된 제 2 엔트로피 코딩 기술은 향상 계층의 계수 벡터의 넌제로 계수들 각각에 대해, EOB 심볼, 런 및 부호를 인코딩할 수도 있다. 상기 상세히 설명한 바와 같이, EOB 심볼은 임의의 나머지 넌제로 계수들이 존재하는지 여부를 나타낼 수도 있고, 런 길이는 넌제로 계수에 선행하여 발생하는 제로값 계수들의 수를 나타내며, 부호는 계수값이 포지티브인지 네거티브인지를 나타낸다. 마지막 넌제로 계수의 부호에 이어, 향상 계층 인코더 (32) 는 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내도록 EOB 심볼을 인코딩할 수도 있다.
기본 계층 인코더 (30) 및 향상 계층 인코더 (32) 는 각각 인코딩된 기본 계층 및 향상 계층 비트 스트림들을 출력한다 (136). 향상 계층 인코더 (32) 에 의해 이용된 엔트로피 코딩 기술은 코딩 효율의 많은 손실 없이 더 낮은 계산 및 구현 복잡도로 향상 계층의 잔여 계수들의 인코딩을 허용할 수도 있다. 본 개시물의 엔트로피 코딩 기술들은 단일의 인코딩 패스에서 향상 계층 비트 스트림 내의, 예를 들어 세분들의 형태로 부가적인 비디오 데이터의 코딩을 가능하게 하여, 코딩 복잡도, 코딩 지연 및 메모리 요건을 감소시킬 수도 있다. 예를 들어, 향상 계층 인코더 (32) 는 임의의 후속 계수들의 정보 없이 향상 계층의 계수 벡터의 각각의 넌제로 계수를 인코딩하여 단일의 패스에서 계수 벡터의 코딩을 허용하고 계수 벡터를 분석하기 위한 제 1 패스 및 그 분석에 기초하여 계수 벡터를 코딩하기 위한 제 2 패스를 수행할 필요성을 제거할 수도 있다.
도 10 은 도 2 의 향상 계층 인코더 (32) 와 같은 향상 계층 인코더가 본 개시물의 일 양태에 따라 향상 계층의 비디오 블록의 잔여 계수들을 인코딩하는 예시적인 동작을 나타낸 흐름도이다. 향상 계층 인코더 (32) 는 향상 계층 블록의 계수 벡터 내의 제 1 넌제로 계수를 식별한다 (140). 향상 계층 인코더 (32) 는 향상 계층 블록의 계수 벡터 내에 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 EOB 심볼을 인코딩한다 (142). 향상 계층 인코더 (32) 는 단일의 비트를 이용하여 EOB 심볼을 인코딩할 수도 있는데, 예를 들면, 적어도 하나의 나머지 넌제로 계수가 존재할 때 0 을 인코딩하고 더이상 나머지 넌제로 계수들이 존재하지 않을 때 1 을 인코딩할 수도 있다.
향상 계층 인코더 (32) 는 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런을 인코딩한다 (144). 향상 계층 인코더 (32) 는 일부 경우들에는 H.264/MPEG-4, Part 10, AVC 표준에 정의한 바와 같이 CAVLC 에 대해 이미 저장되는 VLC 테이블을 이용하여 런을 인코딩할 수도 있다. 예를 들어, 향상 계층 인코더 (32) 는 계수들의 총수 (TotalCoeffs) 가 1 과 같을 때 런들의 총합 (sumRuns) 을 코딩하기 위해 이용된 VLC 테이블을 이용하여 런을 인코딩할 수도 있다. 대안으로, 향상 계층 인코더 (32) 는 향상 계층의 계수 벡터의 런들을 인코딩하도록 특별히 디자인된 개별 VLC 테이블을 유지할 수도 있다.
향상 계층 인코더 (32) 는 넌제로 계수의 부호를 인코딩할 수도 있다 (146). 향상 계층 인코더 (32) 는 예를 들어 넌제로 계수의 부호가 포지티브인 경우에 '1' 을 인코딩하고 넌제로 계수의 부호가 네거티브인 경우에 '0' 을 인코딩할 수도 있다. 일부 경우들에서, 향상 계층 인코더 (32) 는 넌제로 계수들의 크기를 인코딩하지 않을 수도 있다. 이 방식으로, 향상 계층 인코더 (32) 는 넌제로 계수들의 크기를 1 로 제한할 수도 있다. 이로써, 1 보다 더 큰 크기를 가진 임의의 넌제로 계수는 1 과 같게 설정된다. 향상 계층의 넌제로 계수들의 크기를 인코딩하지 않는 것은 피크 신호 대 잡음비 (PSNR) 에 있어서 약간의 손실을 초래할 수도 있지만, 넌제로 계수들을 인코딩하도록 이용되는 비트들의 수를 감소시킨다.
향상 계층 인코더 (32) 는 향상 계층 블록 내에 임의의 나머지 넌제로 계수들이 존재하는지 여부를 결정한다 (148). 향상 계층 블록 내에 적어도 하나의 나머지 넌제로 계수가 존재할 때, 향상 계층 인코더 (32) 는 나머지 넌제로 계수들 각각에 대해 EOB, 런 및 부호를 계속 인코딩한다. 향상 계층 블록 내에 나머지 넌제로 계수들이 존재하지 않을 때, 향상 계층 인코더 (32) 는 향상 계층 블록의 계수 벡터에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내도록 EOB 심볼을 인코딩한다 (149). 상기 설명한 바와 같이, 향상 계층은 기본 계층과 함께 송신된다.
도 10 에서 설명된 향상 계층 코딩 기술이 2 개 이상의 계수를 나타내는 심볼들을 코딩하지 않기 때문에, 향상 계층 코딩 기술은 향상 계층 인코더 (32) 가 이용가능한 비트 레이트에 의존하여 인코딩하는 동안 계수 벡터의 양자화된 잔여 계수들 중 하나 이상을 폐기하도록 허용할 수도 있다. 또한, 향상 계층 코딩 기술은 구현 및 코딩 복잡도를 감소시킨다.
도 11 은 도 2 의 향상 계층 디코더 (36) 와 같은 향상 계층 디코더가 잔여 변환 계수들의 벡터를 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 예시적인 동작을 나타낸 흐름도이다. 향상 계층 디코더 (36) 는 향상 계층 비트 스트림을 획득한다 (150). 향상 계층 디코더 (36) 는 EOB 심볼을 분석하여 임의의 나머지 넌제로 계수들이 존재하는지 여부를 결정한다 (152). 향상 계층 디코더 (36) 는 예를 들어 EOB 심볼이 0 과 같은 경우에 적어도 하나의 나머지 넌제로 계수가 존재하는 것으로 결정하고 EOB 심볼이 1 과 같은 경우에는 나머지 넌제로 계수들이 존재하지 않는 것으로 결정할 수도 있다.
향상 계층 디코더 (36) 는 적어도 하나의 나머지 넌제로 계수가 존재한다면, 예를 들어, EOB 심볼이 0 과 같다고 결정할 때, 향상 계층 디코더 (36) 는 다음의 넌제로 계수와 연관된 런을 디코딩한다 (154). 다음의 넌제로 계수와 연관된 런은 그 넌제로 계수에 선행하는 제로값 계수들의 수를 나타낸다. 향상 계층 디코더 (36) 는 향상 계층 인코더 (32) 에 의해 이용된 것과 동일한 VLC 테이블을 이용하여 런을 디코딩한다. 일 경우에, 향상 계층 디코더 (36) 는 계수들의 총수 (TotalCoeffs) 가 1 과 같은 경우에 런들의 총합 (sumRuns) 을 코딩하는데 있어서 이용하기 위한 H.264/MPEG-4, Part 10, AVC 표준에 정의한 바와 같이 CAVLC 에서 이용된 VLC 테이블을 이용하여 런을 디코딩할 수도 있다. 그러나, 향상 계층 인코더 (32) 에 의해 이용된 것과 동일한 테이블인 한은 다른 VLC 테이블들이 이용될 수도 있다. 향상 계층 디코더 (36) 는 넌제로 계수에 선행하는 런 길이와 같은 수의 계수들을 0 과 같게 설정한다 (156). 예를 들어, 런 길이가 2 와 같다면, 향상 계층 디코더 (36) 는 넌제로 계수에 선행하는 2 개의 계수들을 0 과 같게 설정할 수도 있다.
향상 계층 디코더 (36) 는 넌제로 계수의 부호를 디코딩한다 (158). 넌제로 계수의 부호는 부호 심볼이 1 과 같은 경우에 포지티브로서 디코딩되고 부호 심볼이 0 과 같은 경우에 네거티브로서 디코딩될 수도 있다. 넌제로 계수의 부호를 디코딩한 후에, 향상 계층 디코더 (36) 는 디코딩된 부호에 기초하여 넌제로 계수를 +1 또는 -1 과 같게 설정할 수도 있다 (160). 상기 설명한 바와 같이, 향상 계층은 향상 계층의 계수들의 크기를 인코딩하지 않을 수도 있다. 이로써, 향상 계층 디코더 (36) 는 모든 넌제로 계수들의 크기를 1 과 같게 설정하도록 구성될 수도 있다.
향상 계층 디코더 (36) 는 향상 계층 디코더 (36) 가 나머지 넌제로 계수들이 존재하지 않는다고, 예를 들어, EOB 심볼이 1 과 같다고 결정할 때까지 넌제로 계수의 런들 및 부호들을 계속 디코딩한다. 이 때, 향상 계층 디코더 (36) 는 임의의 계수들이 남아 있는 경우에 벡터의 나머지 계수들을 0 과 같게 설정한다 (162). 도 2 에 대하여 상세히 설명한 바와 같이, 향상 계층 디코더 (36) 는 예측 블록 및 다른 데이터에 더하여 계수 벡터를 이용하여 디스플레이 (28) 로의 표시를 위해 비디오 블록을 복원한다.
도 12 내지 도 15 는 스케일러블 비디오 코딩에 이용하기 위한 인코더들 및/또는 디코더들의 상이한 구성들을 나타낸 블록도들이다. 이들 예시적인 인코더들 및 디코더들은 본 개시물의 기술들이 이용될 수도 있는 인코더들의 유형들의 설명을 위한 것이다. 그러나, 예시적인 구성은 결코 설명한 바와 같이 기술들의 제한이어서는 안된다. 이 기술들은 임의의 스케일러블 비디오 인코더에 이용될 수도 있다.
도 12 내지 도 15 에 나타낸 예시적인 비디오 인코더들 및 디코더들 각각은 본 개시물에 설명된 엔트로피 코딩 기술들을 이용하여 향상 계층 비트 스트림들의 효율적인 코딩을 촉진할 수도 있다. 본 개시물의 엔트로피 코딩 기술들은 단일의 인코딩 패스에서 향상 계층 비트 스트림 내의, 예를 들어 세분들의 형태로 부가적인 비디오 데이터의 코딩을 가능하게 하여 코딩 복잡도, 코딩 지연 및 메모리 요건을 감소시킬 수도 있다. 더욱 상세히 설명되는 바와 같이, 향상 계층의 계수 벡터의 각 넌제로 계수는 임의의 후속 계수들, 즉 현재 코딩되고 있는 넌제로 계수에 후속하는 임의의 계수들의 정보 없이 인코딩될 수도 있다. 단일의 패스에서 향상 계층을 코딩하는 것은 계수 벡터를 분석하기 위한 제 1 패스 및 그 분석에 기초하여 계수 벡터를 코딩하기 위한 제 2 패스를 수행할 필요성을 제거할 수도 있다.
도 12 는 일 예시적인 스케일러블 비디오 인코더 (170) 를 나타낸 블록도이다. 스케일러블 비디오 인코더 (170) 는 예를 들어 도 2 의 비디오 인코더 (20) 와 대응할 수도 있다. 도 12 의 예에서, 스케일러블 비디오 인코더 (170) 는 기본 계층 인코더 (30) 를 포함하여, 예측 유닛 (172), 프레임 저장기 (173), 변환 유닛 (174), 양자화 유닛들 (175A 및 175B), 역양자화 유닛들 (176A 및 176B), 역변환 유닛 (177), 멀티플렉스 모듈 (178) 및 합산기들 (179A 내지 179C) 을 포함한다. 도 3 에서 상이한 피쳐들을 유닛들로서 도시한 것은 도시된 디바이스들의 상이한 기능적 양태들을 주목하도록 의도되며 이러한 유닛들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 한다는 것을 반드시 의미하는 것은 아니다. 오히려, 하나 이상의 유닛들과 연관된 기능성은 공통의 또는 개별 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수도 있다.
예측 유닛 (172) 은 인트라-예측 또는 인터-예측을 이용하여 예측 블록을 생성한다. 예측 블록은 코딩되고 있는 현재의 비디오 블록의 예측된 버전일 수도 있다. 상기 설명한 바와 같이, 예측 유닛 (172) 은 현재 코딩되고 있는 블록과 동일한 프레임 내의 기본 계층의 하나 이상의 미리 인코딩된 블록들에 기초한 인트라-예측을 이용하여 예측 블록을 생성할 수도 있다. 대안으로, 예측 유닛은 기본 계층의 하나 이상의 인접한 프레임들 내의 하나 이상의 미리 인코딩된 블록들에 기초한 인터-예측을 이용하여 예측 블록을 생성할 수도 있다. 예측 유닛 (172) 은 프레임 저장기 (173) 로부터 미리 인코딩된 블록을 취득할 수도 있다.
비디오 블록들의 인트라-기반 예측 또는 인터-기반 예측에 이어, 기본 계층 인코더 (30) 는 합산기 (179A) 에서 현재의 비디오 블록으로부터 예측 유닛 (172) 에 의해 생성된 예측 블록을 뺌으로써 잔여 블록을 생성한다. 잔여 블록은 현재의 비디오 블록의 픽셀 값들과 예측 블록의 픽셀 값들 사이의 차이를 정량화하는 픽셀 차이 값들의 세트를 포함한다. 잔여 블록은 2 차원 블록 포맷 (에를 들어, 2 차원 행렬 또는 픽셀 값들의 어레이) 으로 나타내어질 수도 있다. 즉, 잔여 블록은 픽셀 값들의 2 차원 표현이다.
변환 유닛 (174) 은 잔여 블록에 변환을 적용하여 잔여 변환 계수들을 생성한다. 변환 유닛 (174) 은 예를 들어 DCT, 정수 변환, 방향성 변환, 웨이블릿 변환 또는 이들의 조합을 적용할 수도 있다. 픽셀 값들의 잔여 블록에 변환을 적용한 후에, 양자화 유닛 (175A) 은 이 변환 계수들을 양자화하여 비트 레이트를 더욱 감소시킨다. 기본 계층과 연관되는 양자화된 계수들에 대응하는 양자화 유닛 (175A) 의 출력은 멀티플렉스 모듈 (178) 에 제공된다.
양자화에 이어, 역양자화 유닛 (176A) 은 역양자화를 적용하여 변환 계수들의 복원된 버전의 잔여 블록을 생성한다. 합산기 (179B) 는 변환 유닛 (174) 에 의해 출력된 변환 계수들의 원래의 잔여 블록으로부터 역양자화 유닛 (176A) 으로부터 출력된 변환 계수들의 복원된 버전의 잔여 블록을 뺀다. 본원에 변환 차이 블록으로 지칭되는 이 블록은 양자화 유닛 (175B) 에 제공된다. 양자화 유닛 (175B) 은 이 변환 계수들을 양자화하여 비트 레이트를 더욱 감소시킨다. 향상 계층과 연관되는 양자화된 계수들에 대응하는 양자화 유닛 (175B) 의 출력은 멀티플렉스 모듈 (178) 에 제공된다. 일 예로, 양자화 유닛 (175A) 은 제 1 QP 를 이용하여 잔여 계수들을 양자화할 수도 있고, 양자화 유닛 (175B) 은 제 2 QP 를 이용하여 잔여 계수 차이들을 양자화할 수도 있다. 제 2 QP 는 예를 들어 제 1 QP 의 값의 절반, 즉, 제 1 QP/2 일 수도 있다.
양자화 유닛 (175B) 에 의한 양자화에 이어, 역양자화 유닛 (176B) 은 역양자화를 적용하여 복원된 버전의 변환 차이 블록을 생성한다. 합산기 (179C) 는 역양자화 유닛 (176A) 으로부터 출력된 변환 계수들의 복원된 버전의 잔여 블록을 역양자화 유닛 (176B) 에 의해 출력되는 복원된 버전의 변환 차이 블록과 더하여 복원된 잔여 블록을 생성한다.
역변환 유닛 (177) 은 복원된 버전의 비디오 블록에 역변환을 적용한다. 복원된 버전의 비디오 블록은 프레임 저장기 (173) 에 저장되어, 후속 비디오 블록을 인트라-코딩 또는 인터-코딩하기 위해 예측 유닛 (172) 에 의해 이용될 수도 있다. 예측 유닛 (172) 은 모션 벡터들, 파티션 사이즈들, 인트라 코딩 모드들 등과 같은 제어 데이터를 멀티플렉스 모듈 (178) 에 제공할 수도 있다. 멀티플렉스 모듈 (178) 은 기본 및 향상 계층 데이터를 결합할 수도 있다. 일부 경우들에서, 멀티플렉스 모듈 (178) 은 기본 및 향상 계층 데이터를 엔트로피 인코딩하기 위한 엔트로피 인코더들을 포함할 수도 있다. 다른 경우들에서, 기본 및 향상 계층 인코더들은 멀티플렉스 모듈로부터 분리될 수도 있다.
도 13 은 일 예시적인 스케일러블 비디오 디코더 (180) 를 나타낸 블록도이다. 스케일러블 비디오 디코더 (180) 는 예를 들어 도 2 의 비디오 디코더 (26) 와 대응할 수도 있다. 도 13 의 스케일러블 비디오 디코더 (180) 는 디멀티플렉스 모듈 (181), 역양자화 유닛들 (182A 및 182B), 역변환 유닛 (183), 예측 유닛 (184), 프레임 저장기 (185) 및 합산기들 (186A 및 186B) 을 포함한다.
디멀티플렉스 모듈 (181) 은 스케일러블 인코딩된 비디오를 수신하고 그 신호들을 디멀티플렉싱한다. 일부 경우들에서, 디멀티플렉스 모듈 (181) 은 기본 및 향상 계층 데이터를 엔트로피 디코딩하기 위한 엔트로피 디코더들을 포함할 수도 있다. 다른 경우들에서, 기본 및 향상 계층 디코더들은 디멀티플렉스 모듈로부터 분리될 수도 있다.
역양자화 유닛 (182A) 은 기본 계층과 연관되는 양자화된 잔여 계수들을 역양자화, 즉, 양자화해제하고, 역양자화 유닛 (182B) 은 향상 계층과 연관되는 양자화된 잔여 계수들을 양자화해제한다. 일 예로, 역양자화 유닛 (182A) 은 제 1 QP 를 이용하여 잔여 계수들을 역양자화할 수도 있고, 역양자화 유닛 (182B) 은 제 2 QP 를 이용하여 잔여 계수 차이들을 역양자화할 수도 있다. 제 2 QP 는 예를 들어 제 1 QP 의 값의 절반, 즉, 제 1 QP/2 일 수도 있다. 역양자화 유닛들 (182A 및 182B) 에 의해 출력되는 양자화해제된 변환 계수들의 각각의 세트들은 합산기 (186A) 에서 더해져 복원된 잔여 변환 블록을 생성한다. 상기 설명한 바와 같이, 역양자화 유닛 (182A) 에 의해 출력되는 양자화해제된 변환 계수들은 기본 품질 레벨과 대응할 수도 있으며, 역양자화 유닛 (182B) 에 의해 출력되는 양자화해제된 변환 계수들은 역양자화 유닛 (182A) 의 출력에 더해질 때 증가된 품질 레벨을 초래한다.
역변환 유닛 (183) 은 양자화해제된 잔여 계수 블록들의 합계에 역변환, 예를 들어, 역 DCT, 역정수 변환, 역웨이블릿 변환 또는 역방향성 변환을 적용하여 픽셀 값들의 잔여 블록을 생성한다. 합산기 (186B) 는 예측 유닛 (184) 에 의해 생성된 예측 블록과 픽셀 값들의 잔여 블록을 더해 복원된 기본 계층 비디오 블록을 형성한다. 상기 상세히 설명한 바와 같이, 예측 유닛 (184) 은 프레임 저장기 (185) 내에 저장될 수도 있는, 인트라-예측의 경우에는 공통 프레임 내의 하나 이상의 인접한 블록들을 이용하여 또는 인터-예측의 경우에는 인접한 프레임들 내의 하나 이상의 블록들을 이용하여 예측 블록을 생성할 수도 있다.
도 14 는 다른 예시적인 스케일러블 비디오 디코더 (190) 를 나타낸 블록도이다. 스케일러블 비디오 디코더 (190) 는 예를 들어 도 2 의 비디오 디코더 (26) 와 대응할 수도 있다. 도 14 의 스케일러블 비디오 디코더 (190) 는 디멀티플렉스 모듈 (191), 역양자화 유닛들 (192A 및 192B), 역변환 유닛들 (193A 및 193B), 예측 유닛 (194), 프레임 저장기 (195) 및 합산기들 (196A 및 196B) 을 포함한다.
디멀티플렉스 모듈 (191) 은 스케일러블 인코딩된 비디오를 수신하고 그 신호들을 디멀티플렉싱한다. 일부 경우들에서, 디멀티플렉스 모듈 (191) 은 기본 및 향상 계층 데이터를 엔트로피 디코딩하기 위한 엔트로피 디코더들을 포함할 수도 있다. 다른 경우들에서, 기본 및 향상 계층 디코더들은 디멀티플렉스 모듈로부터 분리될 수도 있다.
역양자화 유닛 (192A) 및 역변환 유닛 (193A) 은 기본 계층과 연관되는 디코딩된 잔여 계수들에 대해 역양자화, 즉, 양자화해제 및 역변환 연산들을 적용하여 기본 계층의 복원된 버전의 잔여 블록을 획득한다. 역양자화 유닛 (192B) 및 역변환 유닛 (193B) 은 향상 계층과 연관되는 디코딩된 잔여 계수들에 대해 역양자화, 즉, 양자화해제 및 역변환 연산들을 적용하여 향상 계층의 복원된 버전의 잔여 블록을 획득한다. 일 예로, 역양자화 유닛 (192A) 은 제 1 QP 를 이용하여 잔여 계수들을 역양자화할 수도 있고, 역양자화 유닛 (192B) 은 제 2 QP 를 이용하여 잔여 계수 차이들을 역양자화할 수도 있다. 제 2 QP 는 예를 들어 제 1 QP 의 값의 절반, 즉, 제 1 QP/2 일 수도 있다.
예측 유닛 (194) 은 프레임 저장기 (195) 내에 저장될 수도 있는, 인트라-예측의 경우에는 공통 프레임 내의 하나 이상의 인접한 블록들을 이용하여 또는 인터-예측의 경우에는 인접한 프레임들 내의 하나 이상의 블록들을 이용하여 예측 블록을 생성할 수도 있다. 합산기 (196A) 는 역변환 유닛 (193A) 으로부터 출력되는 복원된 잔여 블록에 예측 유닛 (194) 에 의해 생성된 예측 블록을 더해 기본 품질 레벨의 디코딩된 비디오 데이터를 생성한다. 기본 품질 레벨을 갖는 디코딩된 비디오 데이터는 스케일러블 비디오 디코더 (190) 로부터 출력된다.
기본 품질 레벨을 갖는 디코딩된 비디오 데이터는 또한 합산기 (196B) 에 제공된다. 합산기 (196B) 는 합산기 (196A) 의 출력과 역변환 유닛 (193B) 으로부터 출력되는 향상 계층의 복원된 버전의 잔여 블록을 더해 더 높은 제 2 품질 레벨의 디코딩된 비디오 데이터를 생성한다. 기본 품질 레벨을 갖는 디코딩된 비디오 데이터는 스케일러블 비디오 디코더 (190) 로부터 출력된다.
도 15 는 다른 예시적인 비디오 인코더 (200) 를 나타낸 블록도이다. 도 15 의 예에서, 기본 계층 인코더 (30) 는 예측 유닛 (33A), 프레임 저장기 (35A), 변환 유닛 (38A), 양자화 유닛 (40A), 계수 스캐닝 유닛 (41A), 역양자화 유닛 (42A), 역변환 유닛 (44A), 기본 계층 엔트로피 인코더 (46), 합산기들 (48A 내지 48C) 및 인트라 예측 유닛 (47) 을 포함한다. 도 3 에서 상이한 피쳐들을 유닛들로서 도시한 것은 도시된 디바이스들의 상이한 기능적 양태들을 주목하도록 의도되며 이러한 유닛들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 하는 것을 반드시 의미하는 것은 아니다. 오히려, 하나 이상의 유닛들과 연관된 기능성은 공통의 또는 개별 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수도 있다.
예측 유닛 (33A) 은 인터-예측 예를 들어, 모션 보상 예측을 이용하여 예측 블록을 생성한다. 예측 블록은 코딩되고 있는 현재의 비디오 블록의 예측된 버전일 수도 있다. 상기 설명한 바와 같이, 예측 유닛 (33A) 은 기본 계층의 하나 이상의 인접한 프레임들 내의 하나 이상의 미리 인코딩된 블록들에 기초한 인터-예측을 이용하여 예측 블록을 생성할 수도 있다. 예측 유닛 (33A) 은 프레임 저장기 (35A) 로부터 미리 인코딩된 블록을 취득할 수도 있다.
비디오 블록들의 인터-기반 예측에 이어, 기본 계층 인코더 (30) 는 합산기 (48A) 에서 현재의 비디오 블록으로부터 예측 유닛 (33A) 에 의해 생성된 예측 블록을 뺌으로써 잔여 블록을 생성한다. 잔여 블록은 현재의 비디오 블록의 픽셀 값들과 예측 블록의 픽셀 값들 사이의 차이들을 정량화하는 픽셀 차이 값들의 세트를 포함한다. 잔여 블록은 2 차원 블록 포맷 (예를 들어, 2 차원 행렬 또는 픽셀 값들의 어레이) 으로 나타내어질 수도 있다. 즉, 잔여 블록은 픽셀 값들의 2 차원 표현이다.
변환 유닛 (38A) 은 잔여 블록에 변환을 적용하여 잔여 변환 계수들을 생성한다. 변환 유닛 (38A) 은 예를 들어 DCT, 정수 변환, 방향성 변환, 웨이블릿 변환 또는 이들의 조합을 적용할 수도 있다. 픽셀 값들의 잔여 블록에 변환을 적용한 후에, 양자화 유닛 (40A) 은 이 변환 계수들을 양자화하여 비트 레이트를 더욱 감소시킨다. 양자화에 이어, 역양자화 유닛 (42A) 및 역변환 유닛 (44A) 은 각각 역양자화 및 역변환을 적용하여 잔여 블록을 복원할 수도 있다. 합산기 (48B) 는 예측 유닛 (33A) 에 의해 생성된 예측 블록에 복원된 잔여 블록을 더해 프레임 저장기 (35A) 에 저장하기 위한 복원된 비디오 블록을 생성한다. 프레임 저장기 (35A) 에 저장된 복원된 비디오 블록은 후속 비디오 블록을 인트라-코딩 또는 인터-코딩하기 위해 기본 계층 인코더 (30) 의 예측 유닛 (33A) 에 의해 이용될 수도 있다. 부가적으로, 이하 더 상세하게 설명되는 바와 같이, 프레임 저장기 (35A) 에 저장된 복원된 비디오 블록은 향상 계층에서 비디오 블록의 세분들을 인트라-코딩 또는 인터-코딩하기 위해 향상 계층 인코더 (32) 의 예측 유닛 (33B) 에 의해 이용될 수도 있다.
양자화에 이어, 합산기 (48C) 는 양자화된 잔여 계수들로부터 인트라 예측 유닛 (40A) 에 의해 생성된 인트라-예측 블록을 뺀다. 인트라-예측 유닛 (47) 은 현재 코딩되고 있는 블록과 동일한 프레임 내의 하나 이상의 미리 인코딩된 블록들에 기초한 인트라-예측을 이용하여 예측 블록을 생성할 수도 있다. 기본 계층 엔트로피 인코더 (46) 는 예를 들어, H.264/MPEG-4, Part 10 AVC 표준에 정의되며 도 2 에 대하여 상기 상세히 설명한 바와 같이 CAVLC 를 이용하여 합산기 (48C) 로부터 출력된 계수들을 엔트로피 인코딩한다.
향상 계층 인코더 (32) 는 예측 유닛 (33B), 프레임 저장기 (35B), 변환 유닛 (38B), 양자화 유닛 (40B), 계수 스캐닝 유닛 (41B), 역양자화 유닛 (42B), 역변환 유닛 (44B), 향상 계층 엔트로피 인코더 (49) 및 합산기들 (48D 내지 48F) 을 포함한다. 향상 계층 인코더 (32) 의 유닛들은 기본 계층 인코더 (30) 의 같은 번호가 매겨진 유닛들과 실질적으로 유사하다. 이로써, 단지 차이만이 설명될 것이다.
향상 계층 인코더 (32) 의 예측 유닛 (33B) 은 현재의 비디오 블록의 예측된 버전인 예측 블록을 생성한다. 기본 계층의 미리 인코딩된 블록들을 이용하여 예측 블록을 생성하는 기본 계층 인코더 (30) 의 예측 유닛 (33A) 과 달리, 향상 계층 인코더 (32) 의 예측 유닛 (33B) 은 향상 계층의 하나 이상의 미리 인코딩된 블록들에 기초하여 예측 블록을 생성할 수도 있다. 향상 계층의 복원된 비디오 블록은 기본 계층의 예측 블록보다 더 높은 제 2 품질 레벨에 있을 수도 있다.
향상 계층 인코더 (32) 와 기본 계층 인코더 (30) 사이의 부가적인 차이는 향상 계층 인코더 (32) 의 역양자화 유닛 (42B) 의 출력이 합산기 (48F) 에서 기본 계층 인코더 (30) 의 역양자화 유닛 (42A) 의 출력과 결합된다는 것이다. 역양자화 유닛 (42A 및 42B) 의 출력들을 더하는 것은 더 높은 품질의 복원된 비디오 블록을 생성하여, 상기 설명된 예측 유닛에 의해 더 나은 예측을 허용한다.
본 개시물에 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 유닛들 또는 컴포넌트들로서 설명된 임의의 피쳐들은 통합된 로직 디바이스에 함께 또는 별개이지만 로직 디바이스들로서 개별적으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 이 기술들은 실행될 때 상기 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터-판독가능 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터-판독가능 매체는 패키지물들을 포함할 수도 있는, 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터-판독가능 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그램가능한 판독-전용 메모리 (EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수도 있다. 이 기술들은 부가적으로 또는 대안으로 명령들 또는 데이터 구조들의 형태의 코드를 운반 또는 전달하고 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터-판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
코드는 하나 이상의 디지털 신호 프로세서 (DSP), 범용 마이크로프로세서, 주문형 집적 회로 (ASIC), 필드 프로그램가능한 게이트 어레이들 (FPGA), 또는 다른 등가의 통합된 또는 별개의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에 사용한 바와 같이 "프로세서" 란 용어는 전술한 구조 또는 본원에 설명된 기술들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 일부 양태들에서, 본원에 설명된 기능성은 인코딩 및 디코딩하도록 구성된 전용 소프트웨어 유닛들 또는 하드웨어 유닛들 내에 제공될 수도 있고, 또는 결합된 비디오 인코더-디코더 (CODEC) 에 포함될 수도 있다. 상이한 피쳐들을 유닛들로서 도시한 것은 도시된 디바이스들의 상이한 기능적 양태들을 주목하도록 의도되며 이러한 유닛들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 한다는 것을 반드시 의미하는 것은 아니다. 오히려, 하나 이상의 유닛들과 연관된 기능성은 공통의 또는 개별 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수도 있다.
다양한 실시형태들이 설명되었다. 이들 실시형태들 및 다른 실시형태들은 다음의 특허청구의 범위 내에 있다.

Claims (78)

  1. 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 인코딩하는 방법으로서,
    기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하는 단계; 및
    적어도 하나의 향상 계층 비트 스트림의 일부로서, 상기 제 1 품질로 인코딩된 비디오 블록과 결합될 때 상기 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 인코딩하는 단계를 포함하며,
    상기 비디오 블록의 세분들을 인코딩하는 단계는,
    상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 상기 넌제로 계수의 부호를 인코딩하는 단계,
    상기 비디오 블록의 세분들의 넌제로 계수들의 크기를 1 과 같게 조정하는 단계를 포함하며,
    상기 비디오 블록의 세분들은 단일의 인코딩 패스에서 인코딩되는, 비디오 데이터를 인코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 비디오 블록의 세분들을 인코딩하는 단계는 임의의 후속 계수들을 분석하지 않고 상기 세분들의 각 넌제로 계수를 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    마지막 넌제로 계수를 인코딩한 후에 상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 심볼을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 비디오 블록의 세분들의 넌제로 계수들 각각의 크기를 1 과 같게 조정하는 단계는 상기 넌제로 계수들의 크기를 인코딩하지 않고 상기 넌제로 계수들을 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 향상 계층 비트 스트림의 일부로서 상기 비디오 블록의 세분들을 인코딩하는 단계는, 상기 비디오 블록의 세분들의 계수들이 상기 기본 계층 비트 스트림의 일부로서 상기 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 디코딩가능하도록 상기 비디오 블록의 세분들을 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  8. 제 1 항에 있어서,
    상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하는 단계는, 제 1 코딩 패스에서 상기 비디오 블록의 계수 벡터를 분석하며 상기 분석에 기초하여 제 2 코딩 패스에서 상기 계수 벡터를 인코딩하는 코딩 기술을 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  10. 제 9 항에 있어서,
    상기 비디오 블록을 제 1 품질로 인코딩하는 단계는, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 따라 CAVLC (Context Adaptive Variable Length Coding) 프로세스를 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하는 단계를 포함하며;
    상기 비디오 블록의 세분들을 인코딩하는 단계는 상기 CAVLC 프로세스에 정의된 VLC 테이블들 중 하나의 VLC 테이블을 이용하여 상기 비디오 블록의 세분들을 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  11. 제 1 항에 있어서,
    상기 제 1 품질 및 상기 제 2 품질은 제 1 및 제 2 신호 대 잡음비 (SNR) 및 제 1 및 제 2 공간적 해상도 중 하나를 포함하는, 비디오 데이터를 인코딩하는 방법.
  12. 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 인코딩하는 디바이스로서,
    기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하고,
    적어도 하나의 향상 계층 비트 스트림의 일부로서, 상기 제 1 품질로 인코딩된 비디오 블록과 결합될 때 상기 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 인코딩하는 적어도 하나의 인코더를 포함하며,
    상기 적어도 하나의 인코더는,
    상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 및 상기 넌제로 계수의 부호를 인코딩하고; 그리고
    상기 비디오 블록의 세분들의 넌제로 계수들의 크기를 1 과 같게 조정하며,
    상기 비디오 블록의 세분들은 단일의 인코딩 패스에서 인코딩되는, 비디오 데이터를 인코딩하는 디바이스.
  13. 제 12 항에 있어서,
    상기 적어도 하나의 인코더는 임의의 후속 계수들을 분석하지 않고 상기 세분들의 각 넌제로 계수를 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  14. 삭제
  15. 제 12 항에 있어서,
    상기 적어도 하나의 인코더는 마지막 넌제로 계수를 인코딩한 후에 상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 심볼을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  16. 삭제
  17. 제 12 항에 있어서,
    상기 적어도 하나의 인코더는 상기 넌제로 계수들의 크기를 인코딩하지 않고 상기 넌제로 계수들을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  18. 제 12 항에 있어서,
    상기 적어도 하나의 인코더는 상기 비디오 블록의 세분들의 계수들이 상기 기본 계층 비트 스트림의 일부로서 상기 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 디코딩가능하도록 상기 비디오 블록의 세분들을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  19. 제 12 항에 있어서,
    상기 적어도 하나의 인코더는 상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  20. 제 12 항에 있어서,
    상기 적어도 하나의 인코더는, 제 1 코딩 패스에서 상기 비디오 블록의 계수 벡터를 분석하며 상기 분석에 기초하여 제 2 코딩 패스에서 상기 계수 벡터를 인코딩하는 코딩 기술을 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  21. 제 20 항에 있어서,
    상기 적어도 하나의 인코더는,
    ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 따라 CAVLC (Context Adaptive Variable Length Coding) 프로세스를 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하는 것을 포함하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하고;
    상기 CAVLC 프로세스에 정의된 VLC 테이블들 중 하나의 VLC 테이블을 이용하여 상기 비디오 블록의 세분들을 인코딩하는 것을 포함하여 상기 비디오 블록의 세분들을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  22. 제 12 항에 있어서,
    상기 제 1 품질 및 상기 제 2 품질은 제 1 및 제 2 신호 대 잡음비 (SNR) 및 제 1 및 제 2 공간적 해상도 중 하나를 포함하는, 비디오 데이터를 인코딩하는 디바이스.
  23. 제 12 항에 있어서,
    상기 적어도 하나의 인코더는,
    상기 기본 계층 비트 스트림의 일부로서 상기 비디오 블록을 상기 제 1 품질로 인코딩하는 기본 계층 인코더, 및
    상기 적어도 하나의 향상 계층 비트 스트림의 일부로서, 상기 제 1 품질로 인코딩된 비디오 블록과 결합될 때 상기 제 1 품질보다 더 큰 상기 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들을 인코딩하는 향상 계층 인코더를 포함하는, 비디오 데이터를 인코딩하는 디바이스.
  24. 제 12 항에 있어서,
    상기 비디오 데이터를 인코딩하는 디바이스는 무선 통신 디바이스를 포함하는, 비디오 데이터를 인코딩하는 디바이스.
  25. 제 12 항에 있어서,
    상기 비디오 데이터를 인코딩하는 디바이스는 집적 회로 디바이스를 포함하는, 비디오 데이터를 인코딩하는 디바이스.
  26. 컴퓨터-판독가능 매체로서,
    하나 이상의 프로세서들로 하여금,
    기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하고;
    적어도 하나의 향상 계층 비트 스트림의 일부로서, 상기 제 1 품질로 인코딩된 비디오 블록과 결합될 때 상기 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 인코딩하도록 하는 명령들을 포함하고,
    상기 명령들은,
    상기 하나 이상의 프로세서들로 하여금, 상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 및 상기 넌제로 계수의 부호를 인코딩하도록 하고; 그리고
    상기 비디오 블록의 세분들의 넌제로 계수들의 크기를 1 과 같게 조정하도록 하며,
    상기 비디오 블록의 세분들은 단일의 인코딩 패스에서 인코딩되는, 컴퓨터-판독가능 매체.
  27. 제 26 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금 임의의 후속 계수들을 분석하지 않고 상기 세분들의 각 넌제로 계수를 인코딩하도록 하는, 컴퓨터-판독가능 매체.
  28. 삭제
  29. 제 26 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금, 마지막 넌제로 계수를 인코딩한 후에 상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 심볼을 인코딩하도록 하는, 컴퓨터-판독가능 매체.
  30. 삭제
  31. 제 26 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금 상기 넌제로 계수들의 크기를 인코딩하지 않고 상기 넌제로 계수들을 인코딩하도록 하는, 컴퓨터-판독가능 매체.
  32. 제 26 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 비디오 블록의 세분들의 계수들이 상기 기본 계층 비트 스트림의 일부로서 상기 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 디코딩가능하도록 상기 비디오 블록의 세분들을 인코딩하도록 하는, 컴퓨터-판독가능 매체.
  33. 제 26 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금 상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 인코딩하도록 하는, 컴퓨터-판독가능 매체.
  34. 제 26 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금, 제 1 코딩 패스에서 상기 비디오 블록의 계수 벡터를 분석하며 상기 분석에 기초하여 제 2 코딩 패스에서 상기 계수 벡터를 인코딩하는 코딩 기술을 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하도록 하는, 컴퓨터-판독가능 매체.
  35. 제 34 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금,
    ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 따라 CAVLC (Context Adaptive Variable Length Coding) 프로세스를 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하는 것을 포함하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하고,
    상기 CAVLC 프로세스에 정의된 VLC 테이블들 중 하나의 VLC 테이블을 이용하여 상기 비디오 블록의 세분들을 인코딩하는 것을 포함하여 상기 비디오 블록의 세분들을 인코딩하도록 하는, 컴퓨터-판독가능 매체.
  36. 제 26 항에 있어서,
    상기 제 1 품질 및 상기 제 2 품질은 제 1 및 제 2 신호 대 잡음비 (SNR) 및 제 1 및 제 2 공간적 해상도 중 하나를 포함하는, 컴퓨터-판독가능 매체.
  37. 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 인코딩하는 디바이스로서,
    기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하는 제 1 수단, 및
    적어도 하나의 향상 계층 비트 스트림의 일부로서, 상기 제 1 품질로 인코딩된 비디오 블록과 결합될 때 상기 제 1 품질보다 더 큰 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 인코딩하는 제 2 수단을 포함하며,
    상기 제 2 인코딩 수단은,
    상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 및 상기 넌제로 계수의 부호를 인코딩하고; 그리고
    상기 비디오 블록의 세분들의 넌제로 계수들의 크기를 1 과 같게 조정하며,
    상기 비디오 블록의 세분들은 단일의 인코딩 패스에서 인코딩되는, 비디오 데이터를 인코딩하는 디바이스.
  38. 제 37 항에 있어서,
    상기 제 2 인코딩 수단은 임의의 후속 계수들을 분석하지 않고 상기 세분들의 각 넌제로 계수를 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  39. 삭제
  40. 제 38 항에 있어서,
    상기 제 2 인코딩 수단은 마지막 넌제로 계수를 인코딩한 후에 상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 심볼을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  41. 삭제
  42. 제 40 항에 있어서,
    상기 제 2 인코딩 수단은 넌제로 계수들의 크기를 인코딩하지 않고 상기 넌제로 계수들을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  43. 제 37 항에 있어서,
    상기 제 2 인코딩 수단은, 상기 비디오 블록의 세분들의 계수들이 상기 기본 계층 비트 스트림의 일부로서 상기 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 디코딩가능하도록 상기 비디오 블록의 세분들을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  44. 제 37 항에 있어서,
    상기 제 2 인코딩 수단은 상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  45. 제 37 항에 있어서,
    상기 기본 계층 비트 스트림의 일부로서 비디오 블록을 제 1 품질로 인코딩하는 상기 제 1 인코딩 수단은, 제 1 코딩 패스에서 상기 비디오 블록의 계수 벡터를 분석하며 상기 분석에 기초하여 제 2 코딩 패스에서 상기 계수 벡터를 인코딩하는 코딩 기술을 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하는 것을 포함하는, 비디오 데이터를 인코딩하는 디바이스.
  46. 제 45 항에 있어서,
    상기 제 1 인코딩 수단은,
    ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 따라 CAVLC (Context Adaptive Variable Length Coding) 프로세스를 이용하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하는 것을 포함하여 상기 비디오 블록을 상기 제 1 품질로 인코딩하고,
    상기 CAVLC 프로세스에 정의된 VLC 테이블들 중 하나의 VLC 테이블을 이용하여 상기 비디오 블록의 세분들을 인코딩하는 것을 포함하여 상기 비디오 블록의 세분들을 인코딩하는, 비디오 데이터를 인코딩하는 디바이스.
  47. 제 37 항에 있어서,
    상기 제 1 품질 및 상기 제 2 품질은 제 1 및 제 2 신호 대 잡음비 (SNR) 및 제 1 및 제 2 공간적 해상도 중 하나를 포함하는, 비디오 데이터를 인코딩하는 디바이스.
  48. 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 디코딩하는 방법으로서,
    제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하는 단계; 및
    상기 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 단계를 포함하며,
    상기 향상 계층 비트 스트림을 디코딩하는 단계는,
    상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 및 상기 넌제로 계수의 부호를 디코딩하는 단계,
    상기 계수들의 벡터의 각 넌제로 계수의 크기를 1 과 같게 설정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  49. 제 48 항에 있어서,
    상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는, 마지막 넌제로 계수에 후속하는 심볼을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  50. 제 49 항에 있어서,
    상기 비디오 블록의 세분들에 대한 계수들의 벡터를, 디코딩된 각 계수의 런, 상기 각 계수의 부호 및 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 상기 심볼을 이용하여 생성하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  51. 삭제
  52. 제 48 항에 있어서,
    상기 비디오 블록의 세분들을 디코딩하는 단계는 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 상기 비디오 블록의 세분들을 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  53. 제 48 항에 있어서,
    상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  54. 제 53 항에 있어서,
    상기 단일의 VLC 테이블은, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 정의한 바와 같이 CAVLC (Context Adaptive Variable Length Coding) 에 특정된 VLC 테이블들 중 하나의 VLC 테이블을 포함하는, 비디오 데이터를 디코딩하는 방법.
  55. 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 디코딩하는 디바이스로서,
    제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하고,
    상기 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 적어도 하나의 디코더를 포함하며,
    상기 적어도 하나의 디코더는,
    상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 및 상기 넌제로 계수의 부호를 디코딩하고; 그리고
    상기 계수들의 벡터의 각 넌제로 계수의 크기를 1 과 같게 설정하는, 비디오 데이터를 디코딩하는 디바이스.
  56. 제 55 항에 있어서,
    상기 적어도 하나의 디코더는, 상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는, 마지막 넌제로 계수에 후속하는 심볼을 디코딩하는, 비디오 데이터를 디코딩하는 디바이스.
  57. 제 56 항에 있어서,
    상기 적어도 하나의 디코더는 상기 비디오 블록의 세분들에 대한 계수들의 벡터를, 디코딩된 각 계수의 런, 상기 각 계수의 부호 및 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 상기 심볼을 이용하여 생성하는, 비디오 데이터를 디코딩하는 디바이스.
  58. 삭제
  59. 제 55 항에 있어서,
    상기 적어도 하나의 디코더는 상기 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 상기 비디오 블록의 세분들을 디코딩하는, 비디오 데이터를 디코딩하는 디바이스.
  60. 제 55 항에 있어서,
    상기 적어도 하나의 디코더는 상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 디코딩하는, 비디오 데이터를 디코딩하는 디바이스.
  61. 제 60 항에 있어서,
    상기 단일의 VLC 테이블은, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 정의한 바와 같이 CAVLC (Context Adaptive Variable Length Coding) 에 특정된 VLC 테이블들 중 하나의 VLC 테이블을 포함하는, 비디오 데이터를 디코딩하는 디바이스.
  62. 제 55 항에 있어서,
    상기 적어도 하나의 디코더는,
    상기 제 1 품질의 상기 비디오 블록을 획득하기 위해 상기 기본 계층 비트 스트림을 디코딩하는 기본 계층 디코더; 및
    상기 비디오 블록의 세분들을 획득하기 위해 상기 향상 계층 비트 스트림을 디코딩하는 향상 계층 디코더를 포함하는, 비디오 데이터를 디코딩하는 디바이스.
  63. 제 55 항에 있어서,
    상기 비디오 데이터를 디코딩하는 디바이스는 무선 통신 디바이스를 포함하는, 비디오 데이터를 디코딩하는 디바이스.
  64. 제 55 항에 있어서,
    상기 비디오 데이터를 디코딩하는 디바이스는 집적 회로 디바이스를 포함하는, 비디오 데이터를 디코딩하는 디바이스.
  65. 컴퓨터-판독가능 매체로서,
    하나 이상의 프로세서들로 하여금,
    제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하고,
    상기 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 획득하기 위해 향상 계층 비트 스트림을 디코딩하도록 하는 명령들을 포함하고,
    상기 명령들은,
    상기 하나 이상의 프로세서들로 하여금, 상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 및 상기 넌제로 계수의 부호를 디코딩하도록 하고; 그리고
    상기 계수들의 벡터의 각 넌제로 계수의 크기를 1 과 같게 설정하도록 하는, 컴퓨터-판독가능 매체.
  66. 제 65 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는, 마지막 넌제로 계수에 후속하는 심볼을 디코딩하도록 하는, 컴퓨터-판독가능 매체.
  67. 제 66 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 비디오 블록의 세분들에 대한 계수들의 벡터를, 디코딩된 각 계수의 런, 상기 각 계수의 부호 및 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 상기 심볼을 이용하여 생성하도록 하는, 컴퓨터-판독가능 매체.
  68. 삭제
  69. 제 65 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금 상기 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 상기 비디오 블록의 세분들을 디코딩하도록 하는, 컴퓨터-판독가능 매체.
  70. 제 65 항에 있어서,
    상기 명령들은, 상기 하나 이상의 프로세서들로 하여금 상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 디코딩하도록 하는, 컴퓨터-판독가능 매체.
  71. 제 70 항에 있어서,
    상기 단일의 VLC 테이블은, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 정의한 바와 같이 CAVLC (Context Adaptive Variable Length Coding) 에 특정된 VLC 테이블들 중 하나의 VLC 테이블을 포함하는, 컴퓨터-판독가능 매체.
  72. 스케일러블 비디오 코딩을 이용하여 비디오 데이터를 디코딩하는 디바이스로서,
    제 1 품질의 비디오 블록을 획득하기 위해 기본 계층 비트 스트림을 디코딩하는 제 1 수단; 및
    상기 제 1 품질로 디코딩된 비디오 블록과 결합될 때 제 2 품질을 갖는 비디오 블록을 초래하는 상기 비디오 블록의 세분들 (refinements) 을 획득하기 위해 향상 계층 비트 스트림을 디코딩하는 제 2 수단을 포함하며,
    상기 제 2 디코딩 수단은,
    상기 비디오 블록의 세분들의 각 넌제로 계수에 대해, 적어도 하나의 나머지 넌제로 계수가 존재한다는 것을 나타내는 심볼, 상기 넌제로 계수에 선행하는 제로값 계수들의 수를 나타내는 런 길이, 및 상기 넌제로 계수의 부호를 디코딩하고; 그리고
    상기 계수들의 벡터의 각 넌제로 계수의 크기를 1 과 같게 설정하는, 비디오 데이터를 디코딩하는 디바이스.
  73. 제 72 항에 있어서,
    상기 제 2 디코딩 수단은, 상기 비디오 블록의 세분들에 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는, 마지막 넌제로 계수에 후속하는 심볼을 디코딩하는, 비디오 데이터를 디코딩하는 디바이스.
  74. 제 73 항에 있어서,
    상기 비디오 블록의 세분들에 대한 계수들의 벡터를, 디코딩된 각 계수의 런, 상기 각 계수의 부호 및 나머지 넌제로 계수들이 존재하지 않는다는 것을 나타내는 상기 심볼을 이용하여 생성하는 수단을 더 포함하는, 비디오 데이터를 디코딩하는 디바이스.
  75. 삭제
  76. 제 72 항에 있어서,
    상기 제 2 디코딩 수단은, 상기 제 1 품질로 인코딩된 비디오 블록의 계수 정보에 액세스하지 않고 상기 비디오 블록의 세분들을 디코딩하는, 비디오 데이터를 디코딩하는 디바이스.
  77. 제 72 항에 있어서,
    상기 제 2 디코딩 수단은, 상기 비디오 블록의 세분들을 단지 단일의 가변 길이 코딩 (VLC; Variable Length Coding) 테이블만을 이용하여 디코딩하는, 비디오 데이터를 디코딩하는 디바이스.
  78. 제 77 항에 있어서,
    상기 단일의 VLC 테이블은, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 표준에 정의한 바와 같이 CAVLC (Context Adaptive Variable Length Coding) 에 특정된 VLC 테이블들 중 하나의 VLC 테이블을 포함하는, 비디오 데이터를 디코딩하는 디바이스.
KR1020107010570A 2007-10-15 2008-10-15 스케일러블 비디오 코딩을 위한 개선된 향상 계층 코딩 KR101147943B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US97991907P 2007-10-15 2007-10-15
US60/979,919 2007-10-15
US98021407P 2007-10-16 2007-10-16
US60/980,214 2007-10-16
US12/250,784 US8848787B2 (en) 2007-10-15 2008-10-14 Enhancement layer coding for scalable video coding
US12/250,784 2008-10-14
PCT/US2008/080034 WO2009052206A1 (en) 2007-10-15 2008-10-15 Improved enhancement layer coding for scalable video coding

Publications (2)

Publication Number Publication Date
KR20100066584A KR20100066584A (ko) 2010-06-17
KR101147943B1 true KR101147943B1 (ko) 2012-05-23

Family

ID=40344656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107010570A KR101147943B1 (ko) 2007-10-15 2008-10-15 스케일러블 비디오 코딩을 위한 개선된 향상 계층 코딩

Country Status (9)

Country Link
EP (1) EP2213099A1 (ko)
JP (2) JP5248619B2 (ko)
KR (1) KR101147943B1 (ko)
CN (1) CN101855908B (ko)
BR (1) BRPI0818077A2 (ko)
CA (1) CA2702488C (ko)
RU (1) RU2463728C2 (ko)
TW (1) TWI408965B (ko)
WO (1) WO2009052206A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306153B2 (en) * 2009-09-21 2012-11-06 Techwell Llc Method and system for tracking phase in a receiver for 8VSB
CN105847780B (zh) * 2010-07-21 2018-01-09 杜比实验室特许公司 用于多层帧兼容视频传输的解码方法
US8634668B2 (en) * 2011-02-25 2014-01-21 Sony Corporation Method of compression of digital images using a fixed number of bits per block
US20120257675A1 (en) * 2011-04-11 2012-10-11 Vixs Systems, Inc. Scalable video codec encoder device and methods thereof
US9578326B2 (en) * 2012-04-04 2017-02-21 Qualcomm Incorporated Low-delay video buffering in video coding
US9602841B2 (en) * 2012-10-30 2017-03-21 Texas Instruments Incorporated System and method for decoding scalable video coding
JP6082123B2 (ja) * 2012-11-29 2017-02-15 エルジー エレクトロニクス インコーポレイティド 複数のレイヤをサポートする映像符号化/復号化方法
SG10201510265XA (en) * 2012-12-26 2016-01-28 Sony Corp Image Processing Device And Method
US9998735B2 (en) * 2013-04-01 2018-06-12 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
GB2512829B (en) * 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
US9848199B2 (en) * 2014-03-17 2017-12-19 Qualcomm Incorporated Device and method for scalable coding of video information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070027422A (ko) * 2005-09-06 2007-03-09 삼성전자주식회사 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치
KR20070034918A (ko) * 2005-09-26 2007-03-29 삼성전자주식회사 Fgs 계층의 비디오 데이터를 엔트로피 부호화 및복호화하는 방법 및 장치
KR100714706B1 (ko) * 2005-09-26 2007-05-04 삼성전자주식회사 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002343135A1 (en) * 2001-11-21 2003-06-10 Koninklijke Philips Electronics N.V. Improved bit plane compression method
JP4447197B2 (ja) * 2002-01-07 2010-04-07 三菱電機株式会社 動画像符号化装置および動画像復号装置
EP1470724B1 (en) * 2002-01-22 2014-11-19 Nokia Corporation Coding transform coefficients in image/video encoders and/or decoders
JP3893350B2 (ja) * 2002-11-29 2007-03-14 キヤノン株式会社 符号化データ変換装置及びその方法
JP2006237656A (ja) * 2003-02-28 2006-09-07 Secom Co Ltd 符号化信号分離・合成装置、差分符号化信号生成装置、差分符号化信号抽出装置、符号化信号分離・合成方法、符号化信号分離・合成プログラム
JP4014098B2 (ja) * 2003-06-26 2007-11-28 株式会社Kddi研究所 画像の階層的符号化装置および復号装置
US8116371B2 (en) * 2006-03-08 2012-02-14 Texas Instruments Incorporated VLC technique for layered video coding using distinct element grouping
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
KR100834757B1 (ko) * 2006-03-28 2008-06-05 삼성전자주식회사 엔트로피 부호화 효율을 향상시키는 방법 및 그 방법을이용한 비디오 인코더 및 비디오 디코더

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070027422A (ko) * 2005-09-06 2007-03-09 삼성전자주식회사 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치
KR20070034918A (ko) * 2005-09-26 2007-03-29 삼성전자주식회사 Fgs 계층의 비디오 데이터를 엔트로피 부호화 및복호화하는 방법 및 장치
KR100714706B1 (ko) * 2005-09-26 2007-05-04 삼성전자주식회사 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치

Also Published As

Publication number Publication date
JP5456867B2 (ja) 2014-04-02
CN101855908B (zh) 2012-11-21
TWI408965B (zh) 2013-09-11
JP2011501572A (ja) 2011-01-06
JP2013051699A (ja) 2013-03-14
JP5248619B2 (ja) 2013-07-31
TW200934250A (en) 2009-08-01
CN101855908A (zh) 2010-10-06
RU2463728C2 (ru) 2012-10-10
KR20100066584A (ko) 2010-06-17
EP2213099A1 (en) 2010-08-04
RU2010119448A (ru) 2011-11-27
BRPI0818077A2 (pt) 2015-03-31
WO2009052206A1 (en) 2009-04-23
CA2702488C (en) 2013-04-02
CA2702488A1 (en) 2009-04-23

Similar Documents

Publication Publication Date Title
US8848787B2 (en) Enhancement layer coding for scalable video coding
KR101147943B1 (ko) 스케일러블 비디오 코딩을 위한 개선된 향상 계층 코딩
US9386316B2 (en) Adaptive coding of video block header information
TWI501648B (zh) 層狀編碼位元流結構
US8233544B2 (en) Video coding with fine granularity scalability using cycle-aligned fragments
JP5259828B2 (ja) 4×4および8×8よりも大きい変換を使用するビデオ符号化
JP4981927B2 (ja) Svccgs拡張層コーディングに関するcavlc拡張
CA2665648A1 (en) Variable length coding table selection based on video block type for refinement coefficient coding

Legal Events

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

Payment date: 20160330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee