KR20090094327A - 정제 계수 코딩을 위한 블록 형식 통계치에 기초한 가변 길이 코딩 테이블 선택 - Google Patents

정제 계수 코딩을 위한 블록 형식 통계치에 기초한 가변 길이 코딩 테이블 선택

Info

Publication number
KR20090094327A
KR20090094327A KR1020097013370A KR20097013370A KR20090094327A KR 20090094327 A KR20090094327 A KR 20090094327A KR 1020097013370 A KR1020097013370 A KR 1020097013370A KR 20097013370 A KR20097013370 A KR 20097013370A KR 20090094327 A KR20090094327 A KR 20090094327A
Authority
KR
South Korea
Prior art keywords
coding
video
vlc
vlc table
blocks
Prior art date
Application number
KR1020097013370A
Other languages
English (en)
Other versions
KR101067308B1 (ko
Inventor
마르타 카르체비츠
혁준 정
품 사게통
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20090094327A publication Critical patent/KR20090094327A/ko
Application granted granted Critical
Publication of KR101067308B1 publication Critical patent/KR101067308B1/ko

Links

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
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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

Landscapes

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

Abstract

본 개시는 스케일러블 비디오 코딩 (SVC) 방식의 향상 계층을 코딩하는 기술을 설명한다. 본 기술은 SVC 방식의 향상 계층의 정제 계수들의 가변 길이 코딩에 이용될 수도 있다. 본 개시에 따르면 방법은, 제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하는 단계, 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하는 단계, 제 1 통계치에 기초하여 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 가변 길이 코딩 (VLC) 테이블들로부터의 제 1 VLC 테이블을 선택하는 단계, 제 2 통계치에 기초하여 제 2 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하는 단계, 제 1 VLC 테이블에 기초하여 제 1 형식의 비디오 블록들을 코딩하는 단계, 및 제 2 VLC 테이블에 기초하여 제 2 형식의 비디오 블록들을 코딩하는 단계를 포함할 수도 있다.

Description

정제 계수 코딩을 위한 블록 형식 통계치에 기초한 가변 길이 코딩 테이블 선택{VARIABLE LENGTH CODING TABLE SELECTION BASED ON BLOCK TYPE STATISTICS FOR REFINEMENT COEFFICIENT CODING}
본 출원은 다음의 미국 가출원의 이익을 주장하며, 그 각각의 전체 내용은 본원에 참조에 의해 통합된다.
2007년 1월 5일 출원된 미국 가출원 제 60/883,741 호
기술 분야
본 개시는 디지털 비디오 코딩에 관한 것이며, 더욱 상세하게는, 스케일러블 비디오 코딩 (scalable video coding; SVC) 방식의 향상 계층 (enhancement layer) 들에서의 변환 계수들의 가변 길이 코딩 (variable length coding; VLC) 에 관한 것이다.
배경
디지털 비디오 성능은, 디지털 텔레비젼, 디지털 다이렉트 브로드캐스트 시스템, 무선 통신 디바이스, 무선 브로드캐스트 시스템, PDA, 랩톱 컴퓨터 또는 데스크톱 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게임 디바이스, 비디오 게임 콘솔, 셀룰러 또는 위성 라디오 전화기 등을 포함하여 넓은 범위의 디바이스들 내로 통합될 수 있다. 디지털 비디오 디바이스는, MPEG-2, MPEG-4, 또는 H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 와 같은 비디오 압축 기술을 구현하여 디지털 비디오를 더욱 효율적으로 송신 및 수신한다. 비디오 압축 기술은 비디오 시퀀스들에 내재된 리던던시 (redundancy) 를 감소 또는 제거하기 위해 공간 및 시간 예측을 수행한다.
비디오 코딩에서, 비디오 압축은 공간 예측, 모션 추정 (motion estimation) 및 모션 보상을 종종 포함한다. 인트라-코딩 (intra-coding) 은 주어진 비디오 프레임 내의 비디오 블록들 사이의 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩 (inter-coding) 은 비디오 시퀀스의 연속적인 비디오 프레임들의 비디오 블록들 사이의 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 의존한다. 인터-코딩에서, 비디오 인코더는 2 이상의 인접 프레임들 사이의 매칭 비디오 블록들의 움직임을 추적하기 위해 모션 추정을 수행한다. 모션 추정은, 하나 이상의 기준 프레임들 내에서 대응하는 예측 비디오 블록들에 관한 비디오 블록들의 변위를 나타내는 모션 벡터들을 생성한다. 모션 보상은 기준 프레임으로부터 예측 비디오 블록들을 생성하기 위해 모션 벡터들을 이용한다. 모션 보상 후에, 나머지 비디오 블록 (residual video block) 은 코딩될 원래의 비디오 블록으로부터 예측 비디오 블록을 뺌으로써 형성된다.
비디오 인코더는 나머지 블록의 통신과 연관된 비디오 레이트를 더 감소시키기 위해 변환, 양자화 및 변환 계수 코딩 프로세스들을 통상적으로 적용한다. 나머지 블록들의 변환 계수들의 코딩은 변환 및 양자화 연산들에 의해 생성된 계수들을 더 압축하기 위해 가변 길이 코드들의 적용을 수반할 수도 있다. 예를 들어, 상이한 셋트의 계수들을 가변 길이 코드워드 (codeword) 에 코딩 효율을 향상시키는 방식으로 매칭시키는데 가변 길이 코딩 (VLC) 테이블이 이용될 수도 있다. 상이한 비디오 콘텐츠에 대해 상이한 VLC 테이블들이 이용될 수도 있다. 비디오 디코더는 계수들을 재구성하기 위해 역 VLC 동작들을 수행하고, 그 다음, 계수들을 역 변환하여 비디오 정보를 재구성한다. 비디오 디코더는 비디오 블록들과 연관된 모션 정보 및 나머지 정보에 기초하여 비디오 정보를 디코딩할 수 있다.
몇몇 비디오 코딩은 스케일러블 기술들을 이용한다. 예를 들어, 스케일러블 비디오 코딩 (SVC) 은 베이스 계층과 하나 이상의 스케일러블 향상 계층들이 이용되는 비디오 코딩을 말한다. SVC 에서, 베이스 계층은 통상적으로 베이스 레벨의 품질로 비디오 데이터를 운반한다. 하나 이상의 향상 계층들은 더 높은 공간, 시간 및/또는 SNR 레벨을 지원하기 위해 추가적인 비디오 데이터를 운반한다. 베이스 계층은 향상 계층들의 송신보다 더 신뢰가능한 방식으로 송신될 수도 있다. 향상 계층들은 베이스 계층의 프레임들에 공간 해상도를 부가할 수도 있고, 또는, 전체 프레임 레이트를 증가시키기 위해 추가적인 프레임들을 부가할 수도 있다. 일예에서, 베이스 계층을 송신하기 위해 변조된 신호의 가장 신뢰가능한 부분들이 이용될 수도 있는 반면, 향상 계층들을 송신하기 위해 변조된 신호의 덜 신뢰가능한 부분들이 이용될 수도 있다. 향상 계층들은 중요 계수 (significant coefficient) 들 및 정제 계수 (refinement coefficient) 들로서 지칭되는 상이한 형식들의 계수들을 정의할 수도 있다.
개요
일반적으로, 본 개시는 스케일러블 비디오 코딩 (SVC) 방식에서 향상 계층을 코딩하는 기술들을 설명한다. 본 기술은 인코딩 및 디코딩 프로세스 동안 가변 길이 코딩 (VLC) 테이블의 선택을 제공한다. 본 기술은 변환 계수들의 블록들을 코딩하는데 이용될 수도 있으며, SVC 방식의 향상 계층의 블록들의 정제 계수들의 VLC 에 특히 유용할 수도 있다. 정제 계수들이란 향상 계층의 계수들 중에서, SVC 방식의 이전 계층의 대응하는 계수들이 넌-제로 (non-zero) 값들을 가졌었던 향상 계층의 계수들을 지칭한다. 정제 계수들의 VLC 는 중요 계수들의 VLC 와는 별개로 수행될 수도 있고, 여기서, 중요 계수들이란, 향상 계층의 계수들 중에서, SVC 방식의 이전 계층의 대응하는 계수들이 제로의 값들을 가졌었던 향상 계층의 계수들을 지칭한다.
본 개시의 기술들에 따르면, VLC 테이블들은 상이한 형식들의 비디오 블록들, 예를 들어, 인트라 블록들 및 인터 블록들에 대해 선택된다. 테이블들은 비디오 정보의 매 프레임마다에 대해 한번 선택될 수도 있고, (비디오 정보의 슬라이스 당 한번 또는 프레임의 FGS 계층 당 한번과 같이) 다른 형식들의 코딩 유닛들에 대해 한번 선택될 수 있을 것이다. 상이한 형식들의 비디오 블록들에 대한 VLC 테이블들은 이전에 코딩된 블록들과 연관된 통계치에 기초하여 선택될 수 있다. 예를 들어, 인트라 블록들에 대한 VLC 테이블은 이전에 코딩된 인트라 블록들과 연관된 통계치에 기초하여 선택될 수도 있다. 유사하게, 인터 블록들에 대한 VLC 테이블은 이전에 코딩된 인터 블록들과 연관된 통계치에 기초하여 선택될 수도 있다. 일예로, 각 형식의 비디오 블록에 대한 통계치는, 반전된 부호 값을 가졌었던 이전에 코딩된 블록들의 정제 계수들의 수에 대한 동일 부호 값을 가졌었던 이전에 코딩된 블록들의 정제 계수들의 수의 비율을 포함할 수도 있다. 이 비율에 기초하여, VLC 테이블들은 주어진 프레임의 블록들과 연관된 정제 계수들을 코딩하기 위해 선택될 수도 있으며, 다음 프레임을 만날 때, 그 프레임에 대한 VLC 테이블 선택들을 용이하게 하기 위해 비율이 다시 계산될 수 있다.
일 예에서, 본 개시는 SVC 방식의 향상 계층을 코딩하는 방법을 제공하며, 이 방법은, 제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하는 단계, 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하는 단계, 제 1 통계치에 기초하여 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 일 VLC 테이블을 선택하는 단계, 제 2 통계치에 기초하여 제 2 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하는 단계, 제 1 VLC 테이블에 기초하여 제 1 형식의 비디오 블록들을 코딩하는 단계, 및 제 2 VLC 테이블에 기초하여 제 2 형식의 비디오 블록들을 코딩하는 단계를 포함한다.
또 다른 예에서, 본 개시는 SVC 방식의 향상 계층을 코딩하는 디바이스를 제공하며, 이 디바이스는, 제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하고 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하는 통계 모듈, 제 1 통계치에 기초하여 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 1 VLC 테이블을 선택하고 제 2 통계치에 기초하여 제 2 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하는 테이블 선택 모듈, 제 1 VLC 테이블에 기초하여 제 1 형식의 비디오 블록들을 코딩하고, 제 2 VLC 테이블에 기초하여 제 2 형식의 비디오 블록들을 코딩하는 코딩 모듈을 포함한다.
또 다른 예에서, 본 개시는 SVC 방식의 향상 계층을 코딩하는 디바이스를 제공하며, 이 디바이스는, 제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하고, 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하는 통계치 결정 수단, 제 1 통계치에 기초하여 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 1 VLC 테이블을 선택하고, 제 2 통계치에 기초하여 제 2 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하는 선택 수단, 및 제 1 VLC 테이블에 기초하여 제 1 형식의 비디오 블록들을 코딩하고, 제 2 VLC 테이블에 기초하여 제 2 형식의 비디오 블록들을 코딩하는 코딩 수단을 포함한다.
본 개시에서 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 소프트웨어는 마이크로프로세서, 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 디지털 신호 처리기 (DSP) 와 같은 하나 이상의 프로세서들에서 실행될 수도 있다. 본 기술들을 실행하는 소프트웨어는 초기에 컴퓨터-판독가능 매체에 저장되고, 프로세서로 로딩되어 실행될 수도 있다.
따라서, 본 개시는 비디오 코딩 디바이스에서 실행 시 이 비디오 코딩 디바이스로 하여금 SVC 방식의 향상 계층을 코딩하도록 하는 명령들을 포함하는 컴퓨터-판독가능 매체를 또한 고려하며, 이 명령들은 비디오 코딩 디바이스로 하여금: 제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하고, 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하며, 제 1 통계치에 기초하여 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 1 VLC 테이블을 선택하고, 제 2 통계치에 기초하여 제 2 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하며, 제 1 VLC 테이블에 기초하여 제 1 형식의 비디오 블록들을 코딩하고, 제 2 VLC 테이블에 기초하여 제 2 형식의 비디오 블록들을 코딩하게 한다.
몇몇 경우들에서, 컴퓨터-판독가능 매체는, 제조자들에게 판매될 수도 있고, 및/또는 비디오 코딩 디바이스에서 이용될 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있고, 몇몇 경우들에서, 패키징 재료들을 또한 포함할 수도 있다.
다른 경우들에서, 본 개시는 집적 회로, 칩셋, 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 로직, 또는 본원에서 설명된 하나 이상의 기술들을 수행하기 위해 구성된 다양한 이들의 조합들로 지향될 수도 있다.
본 개시의 하나 이상의 양태들의 상세한 내용들은 첨부 도면 및 이하의 설명에서 전개된다. 본 개시에서 설명된 기술들의 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구의 범위로부터 명백해질 것이다.
도면의 간단한 설명
도 1 은 비디오 인코딩 및 디코딩 시스템을 나타내는 일 예시적인 블록도이다.
도 2 는 스케일러블 비디오 비트스트림의 베이스 계층 및 향상 계층의 비디오 프레임들을 나타내는 개념도이다.
도 3 은 본 개시와 일치하는 비디오 인코더의 일예를 나타내는 블록도이다.
도 4 는 본 개시와 일치하는 비디오 디코더의 일예를 나타내는 블록도이다.
도 5 는 가변 길이 코딩 (VLC) 인코딩 유닛의 일 예시적인 블록도이다.
도 6 은 VLC 디코딩 유닛의 일 예시적인 블록도이다.
도 7 은 본 개시와 일치하는, 가변 길이 인코딩을 위한 VLC 기술을 나타내는 흐름도이다.
상세한 설명
본 개시는 스케일러블 비디오 코딩 (SVC) 방식에서 향상 계층들을 코딩하는 기술들을 설명한다. 본 기술은 인코더 및 디코더에서 가변 길이 코딩 (VLC) 테이블들의 선택을 제공한다. 즉, 인코더에서 정보를 인코드하기 위해, 그리고, 디코더에서는 정보를 디코드하기 위해, VLC 테이블 선택이 수행된다는 점에서 VLC 테이블 선택 기술은 상호 역의 (reciprocal) 관계에 있다. 본 기술은 변환 계수들을 코딩하는데 이용될 수도 있으며, SVC 방식의 향상 계층의 정제 계수들의 가변 길이 코딩에 특히 유용하다. 정제 계수들이란 향상 계층의 계수들 중에서, SVC 방식의 이전 계층의 대응하는 계수들이 이 향상 계층의 계수들을 위해 넌-제로 값들을 가졌었던 향상 계층의 계수들을 지칭한다. 반면, 중요 계수들이란, 향상 계층의 계수들 중에서, SVC 방식의 이전 계층의 대응하는 계수들이 이 향상 계층의 계수들을 위해 제로의 값들을 가졌었던 향상 계층의 계수들을 지칭한다. 정제 계수들의 가변 길이 코딩은 중요 계수들의 가변 길이 코딩과는 별개로 수행될 수도 있다.
본 개시의 기술들에 따르면, 상이한 형식들의 비디오 블록들, 예를 들어, 인트라 블록들 및 인터 블록들에 대해 VLC 테이블들이 선택된다. 테이블들은 코딩되는 유닛 당 한번, 예를 들어, 프레임 당 한번, 비디오 정보의 슬라이스 당 한번, 프레임의 FGS 계층 당 한번 선택될 수도 있다. 이전에 코딩된 블록들과 연관된 통계치들에 기초하여 상이한 형식들의 비디오 블록들에 대한 VLC 테이블들이 선택될 수 있다. 예를 들어, 이전에 코딩된 인트라 블록들과 연관된 통계치들에 기초하여 인트라 블록들에 대한 VLC 테이블이 선택될 수도 있고, 이전에 코딩된 인터 블록들과 연관된 통계치들에 기초하여 인터 블록들에 대한 VLC 테이블이 선택될 수도 있다.
일 예에서, 각각의 형식의 비디오 블록에 대한 통계치들은, 반전된 부호 값을 가졌었던 그 블록 형식의 이전에 코딩된 블록들의 정제 계수들의 수에 대한 동일한 부호 값을 가졌었던 그 블록 형식의 이전에 코딩된 블록들의 정제 계수들의 수의 비율을 포함할 수도 있다. 각각의 형식 (인트라 및 인터) 의 블록에 대한 비율에 기초하여, 주어진 프레임의 인트라 블록들과 연관된 정제 계수들을 코딩하기 위해 제 1 VLC 테이블이 선택될 수도 있고, 주어진 프레임의 인터 블록들과 연관된 정제 계수들을 코딩하기 위해 제 2 VLC 테이블이 선택될 수도 있다. 다음 프레임을 만나면 그 프레임에 대한 VLC 테이블 선택을 용이하게 하기 위해 비율이 다시 선택될 수 있다.
도 1 은 비디오 인코딩 및 디코딩 시스템 (10) 을 나타내는 블록도이다. 도 1 에 나타낸 바와 같이, 시스템 (10) 은 인코딩된 비디오를 통신 채널 (15) 을 통해 수신 디바이스 (6) 로 송신하는 소스 디바이스 (2) 를 포함한다. 소스 디바이스 (2) 는 비디오 소스 (11), 비디오 인코더 (12), 및 변조기/송신기 (14) 를 포함할 수도 있다. 수신 디바이스 (6) 는 수신기/복조기 (16), 비디오 디코더 (18), 및 디스플레이 디바이스 (20) 를 포함할 수도 있다. 시스템 (10) 은, 스케일러블 비디오 코딩 (SVC) 방식에서의 향상 계층과 연관된 비디오 정보의 VLC 를 위한 기술을 적용하도록 구성될 수도 있다.
SVC 란, 베이스 계층 및 하나 이상의 스케일러블 향상 계층들이 이용되는 비디오 코딩을 말한다. SVC 에서, 베이스 계층은 통상적으로 비디오 데이터를 베이스 레벨의 품질로 운반한다. 하나 이상의 향상 계층들은 더 높은 공간, 시간 및/또는 신호-대-잡음 SNR 레벨을 지원하기 위해 부가적인 비디오 데이터를 운반한다. 향상 계층들은 이전에 인코딩된 계층에 관해 정의될 수도 있다. 향상 계층들은 중요 계수들 및 정제 계수들로서 지칭되는, 2 이상의 상이한 형식들의 계수들을 정의한다. 정제 계수들은 이전에 인코딩된 계층의 대응하는 값들에 관한 값들을 정의할 수도 있다. 향상 계층들의 프레임들은 때로는, 베이스 계층 또는 이전 향상 계층의 비디오 블록들의 총 수 중 일부분만을, 예를 들어, 향상이 수행되는 그러한 블록들만을 포함한다.
중요 계수들은 이전 계층의 대응하는 계수들이 제로의 값들을 가졌던 계수들을 지칭한다. 정제 계수들은 이전 계층의 대응하는 계수들이 넌-제로 값들을 가졌던 계수들을 지칭한다. 향상 계층들의 가변 길이 코딩은 2-패스 접근법 (two-pass approach) 을 통상적으로 수반한다. 제 1 패스는 중요 계수들을 가변 길이 코딩하기 위해 수행되고, 또 다른 패스는 정제 계수들을 코딩하기 위해 수행된다. 본 개시의 기술들은 정제 계수들의 가변 길이 코딩을 위해 특히 유용하지만, 본 개시는 이 점에 한정될 필요는 없다.
본 개시의 기술들에 따르면, 상이한 형식들의 비디오 블록들에 대해 상이한 VLC 테이블들이 선택된다. 예를 들어, 인트라 블록들의 정제 계수들을 코딩하기 위해 제 1 VLC 테이블이 선택될 수도 있고, 인터 블록들의 정제 계수들을 코딩하기 위해 제 2 VLC 테이블이 선택될 수도 있다. 인트라 블록들이란 그 주어진 코딩된 유닛 내의 블록들에 기초하여 코딩되는 블록들을 지칭한다. 인터 블록들이란 또 다른 코딩된 유닛의 블록들에 기초하여 코딩되는 블록들을 지칭한다.
VLC 테이블 선택들은 이전에 코딩된 블록들과 연관된 통계치들에 기초할 수도 있다. 예를 들어, 인트라 블록들을 위한 VLC 테이블은 이전에 코딩된 인트라 블록들과 연관된 통계치들에 기초하여 선택될 수도 있고, 인터 블록들을 위한 VLC 테이블은 이전에 코딩된 인터 블록들과 연관된 통계치들에 기초하여 선택될 수도 있다. VLC 테이블은 비디오 정보의 프레임 당 한번, 비디오 정보의 슬라이스 당 한번, 또는 FGS 계층 당 한번과 같이, 코딩된 유닛 당 한번 선택될 수도 있다. FGS 란 미세 입도 신호-대-잡음 스케일러빌러티 (Fine Granularity signal-to-noise Scalability) 를 의미하고, 이후 더 자세히 설명하기로 한다.
각각의 형식의 비디오 블록에 대한 통계치들은 반전된 부호 값을 가졌었던 이전에 코딩된 블록들의 정제 계수들의 수에 대한 동일한 부호 값을 가졌었던 이전에 코딩된 블록들의 정제 계수들의 수의 비율을 포함할 수도 있다. 각각의 블록 형식에 대한 비율 (즉, 인트라 블록들에 대한 비율 및 인터 블록들에 대한 비율) 에 기초하여, 주어진 프레임 (또는 다른 코딩된 유닛) 의 인트라 블록들 및 인터 블록들과 연관된 정제 계수들을 코딩하기 위해 제 1 및 제 2 VLC 테이블이 각각 선택될 수도 있다. 다음 프레임 (또는 다른 코딩된 유닛) 을 만날 때, 업데이트된 VLC 테이블 선택을 용이하게 하기 위해 비율이 다시 계산될 수 있다.
도 1 의 예에서, 통신 채널 (15) 은, 라디오 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 회선들, 또는 무선 및 유선 매체의 임의의 조합과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 채널 (15) 은 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 채널 (15) 은 일반적으로 비디오 데이터를 소스 디바이스 (2) 로부터 수신 디바이스 (6) 로 송신하기 위한, 임의의 적합한 통신 매체, 또는 상이한 통신 매체의 집합을 나타낸다.
소스 디바이스 (2) 는 수신 디바이스 (6) 로의 송신을 위해 코딩된 비디오 데이터를 생성한다. 하지만, 몇몇 경우들에서, 디바이스들 (2, 6) 은 실질적으로 대칭 방식으로 동작할 수도 있다. 예를 들어, 디바이스들 (2, 6) 의 각각은 비디오 인코딩 및 디코딩 구성요소들을 포함할 수도 있다. 따라서, 시스템 (10) 은, 예를 들어, 비디오 스트리밍, 비디오 브로드캐스팅, 또는 비디오 전화통신을 위해, 비디오 디바이스들 (2, 6) 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (2) 의 비디오 소스 (11) 는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 또는 비디오 콘텐츠 공급자로부터 공급된 비디오를 포함할 수도 있다. 추가적인 대안으로서, 비디오 소스 (11) 는 컴퓨터 그래픽 기반 데이터를 소스 비디오, 또는 라이브 비디오 및 컴퓨터-생성된 비디오의 조합으로서 생성할 수도 있다. 몇몇 경우들에서, 비디오 소스 (11) 가 비디오 카메라인 경우, 소스 디바이스 (2) 및 수신 디바이스 (6) 는 소위 카메라 전화기 또는 비디오 전화기를 형성할 수도 있다. 각각의 경우에서, 캡쳐된, 사전 캡쳐된, 또는 컴퓨터-생성된 비디오는 비디오 소스 디바이스 (2) 로부터 변조기/송신기 (14), 통신 채널 (15), 및 수신기/복조기 (16) 를 통해 비디오 수신 디바이스 (6) 의 비디오 디코더 (18) 로의 송신을 위해 비디오 인코더 (12) 에 의해 인코딩될 수도 있다. 비디오 인코딩 및 디코딩 프로세스들은 프로세스를 향상시키기 위해 본원에서 설명된 VLC 테이블 선택 기술을 구현할 수도 있다. 디스플레이 디바이스 (20) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선 튜브, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 형식의 디스플레이 디바이스와 같은 임의의 다양한 디스플레이 디바이스들을 포함할 수도 있다.
비디오 인코더 (12) 및 비디오 디코더 (18) 는 공간, 시간, 및/또는 신호-대-잡음 비 (SNR) 스케일러빌러티 (scalability) 를 위한 SVC 를 지원하도록 구성될 수도 있다. 몇몇 양태들에서, 비디오 인코더 (12) 및 비디오 디코더 (18) 는 SVC 를 위한 미세 입도 SNR 스케일러빌러티 (FGS) 코딩을 지원하도록 구성될 수도 있다. 인코더 (12) 및 디코더 (18) 는 베이스 계층 및 하나 이상의 스케일러블 향상 계층들의 인코딩, 송신, 및 디코딩을 지원함으로써 다양한 정도의 스케일러빌러티를 지원할 수도 있다. 또한, 스케일러블 비디오 코딩에서, 베이스 계층은 베이스라인 레벨의 품질로 비디오 데이터를 운반한다. 하나 이상의 향상 계층들은 더 높은 공간, 시간, 및/또는 SNR 레벨들을 지원하기 위해 부가적인 데이터를 운반한다. 베이스 계층은 향상 계층들의 송신보다 더 신뢰가능한 방식으로 송신될 수도 있다. 예를 들어, 변조된 신호의 가장 신뢰가능한 부분들은 베이스 계층을 송신하는데 이용될 수도 있는 반면, 변조된 신호의 덜 신뢰가능한 부분들은 향상 계층들을 송신하기 위해 이용될 수도 있다.
SVC 를 지원하기 위해, 비디오 인코더 (12) 는 베이스 계층 및 하나 이상의 향상 계층들의 인코딩을 각각 수행하기 위해 베이스 계층 인코더 (22) 및 하나 이상의 향상 계층 인코더들 (24) 을 포함할 수도 있다. VLC 테이블 선택을 수반하는 본 개시의 기술들은 SVC 의 향상 계층들의 비디오 블록들의 코딩에 적용가능하다. 더욱 구체적으로, 본 개시의 기술들은, 향상 계층들의 비디오 블록들의 정제 계수들의 VLC 에 적용가능하고, 하지만, 본 개시가 이러한 점에 한정될 필요는 없다.
비디오 디코더 (18) 는 베이스 계층 및 향상 계층 양자 모두와 연관된 비디오 블록들을 디코딩하는 결합된 베이스/향상 디코더를 포함할 수도 있다. 비디오 디코더 (18) 는 베이스 계층 및 향상 계층 양자 모두와 연관된 비디오 블록들을 디코딩하고, 그 디코딩된 비디오를 결합하여 비디오 시퀀스의 프레임들을 재구성할 수도 있다. 디스플레이 디바이스 (20) 는 디코딩된 비디오 시퀀스를 수신하고, 비디오 시퀀스를 사용자에게 표시한다.
비디오 인코더 (12) 및 비디오 디코더 (18) 는 MPEG-2, MPEG-4, ITU-T H.263, 또는 ITU-T H.264/MPEG-4, Part 10, AVC 와 같은 비디오 압축 표준에 따라 동작할 수도 있다. 도 1 에서는 나타내지 않았지만, 몇몇 양태들에서, 비디오 인코더 (12) 및 비디오 디코더 (18) 는, 오디오 인코더 및 디코더와 각각 통합될 수도 있고, 오디오 및 비디오 양자 모두의 인코딩을 공통 데이터 스트림 또는 개별 데이터 스트림들에서 핸들링하기 위해 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들을 따를 수도 있다.
H.264/MPEG-4 (AVC) 표준은 연합 비디오 팀 (Joint Video Team; JVT) 로서 알려진 집합적 파트너쉽의 제품으로서 ISO/IEC 동화상 전문가 그룹 (MPEG) 과 함께 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 에 의해 공식화되었다. 몇몇 양태들에서, 본 개시에서 설명된 기술들은 H.264 표준에 일반적으로 따르는 디바이스들에 적용될 수도 있다. H.264 표준은 2005년 3월 ITU-T 스터디 그룹에 의한, 일반적 시청각적 서비스를 위한 AVC, ITU-T 추천 H.264 에 설명되어 있고, 이는 본원에서 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로서 지칭될 수도 있다.
연합 비디오 팀 (JVT) 은 H.264/MPEG-4 AVC 로의 SVC 확장에 대한 작업을 계속하였다. 진전된 SVC 확장의 사양은 연합 드래프트 (Joint Draft; JD) 의 형태이다. JVT 에 의해 형성된 연합 스케일러블 비디오 모델 (JSVM) 은 스케일러블 비디오에서 사용하기 위한 툴들을 구현하고, 이는 본 개시에서 설명된 다양한 코딩 태스크들을 위해 시스템 (10) 내에서 사용될 수도 있다. 미세 입도 SNR 스케일러빌러티 (FGS) 코딩에 관한 자세한 정보는 연합 드래프트 문서, 특히, 연합 드래프트 6 (SVC JD6) 에서 2006년 4월 Geneva, JVT-S 201 에서의 Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, 및 Mathias Wien 의 "Joint Draft 6: Scalable Video Coding", 및 연합 드래프트 9 (SVC JD9) 에서 2007년 1월 Morocco Marrakech, JVT-V 201 에서의 Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, 및 Mathias Wien 의 "Joint Draft 9 of SVC Amendment" 에서 발견될 수 있다.
몇몇 양태들에서, 비디오 브로드캐스팅에서, 본 개시에서 설명된 기술들은, 기술 표준 TIA-1099 로서 발행된 순방향 링크 온리 (FLO) 에어 인터페이스 사양 "Foward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast" ("FLO 사양") 을 이용하여 지상 모바일 멀티미디어 멀티캐스트 (TM3) 시스템에서 실시간 비디오 서비스를 전달하기 위한 향상된 H.264 비디오 코딩에 적용될 수도 있다. 즉, 통신 채널 (15) 은 FLO 사양 등에 따라 무선 비디오 정보를 브로드캐스트하기 위해 이용되는 무선 정보 채널을 포함할 수도 있다. FLO 사양은 FLO 에어 인터페이스에 적합한 비트스트림 신택스 (syntax) 및 시맨틱스 (semantics) 및 디코딩 프로세스들을 정의하는 예들을 포함한다. 다르게는, 비디오는 DVB-H (digital video broadcast-handheld), ISDB-T (integrated services digital broadcast-terrestrial), 또는 DMB (digital media broadcast) 와 같은 다른 표준들에 따라 브로드캐스트될 수도 있다. 따라서, 소스 디바이스 (2) 는 모바일 무선 단말기, 비디오 스트리밍 서버, 또는 비디오 브로드캐스트 서버일 수도 있다. 하지만, 본 개시에서 설명된 기술들은 임의의 특정 형식의 브로드캐스트, 멀티캐스트, 또는 포인트-대-포인트 시스템에 한정되는 것은 아니다. 브로드캐스트의 경우에서, 소스 디바이스 (2) 는 수개의 채널들의 비디오 데이터를 다수의 수신 디바이스들로 브로드캐스트할 수도 있고, 이 다수의 수신 디바이스들의 각각은 도 1 의 수신 디바이스 (6) 와 유사할 수도 있다.
비디오 인코더 (12) 및 비디오 디코더 (18) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 처리기 (DSP) 들, 주문형 집적 회로 (ASIC) 들, 필드 프로그래머블 게이트 어레이 (FPGA) 들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합들로서 구현될 수도 있다. 비디오 인코더 (12) 및 비디오 디코더 (18) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있고, 이 양자는 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등의 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다. 또한, 소스 디바이스 (2) 및 수신 디바이스 (6) 각각은, 적용가능한 것으로서 무선 통신을 지원하기에 충분한 라디오 주파수 (RF) 무선 구성요소들 및 안테나들을 포함하여, 인코딩된 비디오의 송신 및 수신을 위한 적절한 변조, 복조, 주파수 변환, 필터링, 및 증폭 구성요소들을 포함할 수도 있다. 하지만, 도시의 편의를 위해, 이러한 구성요소들은 도 1 에서 소스 디바이스 (2) 의 변조기/송신기 (14) 및 수신 디바이스 (6) 의 수신기/복조기 (16) 로서 간략화되어 있다.
비디오 시퀀스는 일련의 비디오 프레임들을 포함한다. 비디오 인코더 (12) 는 비디오 데이터를 인코딩하기 위해 개별 비디오 프레임들 내의 픽셀들의 블록들 (또는 변환 계수들의 블록들) 에 대해 연산한다. 비디오 블록들은 고정된 또는 변화하는 크기들을 가질 수도 있고, 지정된 코딩 표준에 따라 크기면에서 상이할 수도 있다. 몇몇 경우들에서, 각각의 비디오 프레임은 코딩된 유닛이고, 한편, 다른 경우들에서, 각각의 비디오 프레임은 분할되어 코딩된 유닛들을 형성하는 일련의 슬라이스들을 포함할 수도 있다. 각각의 슬라이스는 일련의 매크로블록들을 포함할 수도 있고, 이 일련의 매크로블록들은 서브-블록들로 정렬될 수도 있다. 일 예로서, ITU-T H.264 표준은 휘도 성분들에 대해 16×16, 8×8, 또는 4×4, 및 채도 성분들에 대해 8×8 과 같은 다양한 블록 크기들에서의 인트라 예측 (intra prediction) 을 지원하고, 휘도 성분들에 대해 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 및 4×4 및 채도 성분들에 대한 대응하는 스케일링된 크기들과 같은 다양한 블록 크기들에서의 인터 예측 (inter prediction) 을 지원한다.
더 작은 비디오 블록들은 더 양호한 해상도를 제공할 수 있고, 더 높은 레벨들의 상세를 포함하는 비디오 프레임의 위치결정에 이용될 수도 있다. 일반적으로, 매크로블록 (MB) 들 및 다양한 서브-블록들이 비디오 블록들로 고려될 수도 있다. 또한, 슬라이스가 MB 들 및/또는 서브-블록들과 같은 일련의 비디오 블록들로서 고려될 수도 있다. 언급된 바와 같이, 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수도 있다.
인트라-기반 또는 인터-기반 예측 코딩에 이어, 부가적인 코딩 기술들이 송신된 비트스트림에 적용될 수도 있다. 이들 부가적인 코딩 기술들은 (H.264/AVC 또는 이산 코사인 변환 DCT 에서 이용되는 4×4, 또는 8×8 정수 변환과 같은) 변환 기술들, 및 가변 길이 코딩을 포함할 수도 있다. 변환 계수들의 블록들은 비디오 블록들로서 지칭될 수도 있다. 다르게 표현하면, "비디오 블록" 이라는 용어는 정보의 도메인에 관계 없이 비디오 데이터의 블록을 지칭한다. 따라서, 비디오 블록들은 픽셀 도메인 또는 변환된 계수 도메인 내에 있을 수 있다. VLC 테이블 선택 및 VLC 코딩의 적용은 변환 계수들의 블록들에 관해 본 개시에서 일반적으로 설명될 것이다.
본 개시는 정제 계수들의 가변 길이 코딩을 위한 기술들을 제공한다. 다시, 정제 계수들이란 이전 계층에서 넌-제로 값들을 가졌던 계수들을 지칭하는 반면, 중요 계수들이란 이전 계층에서 제로의 값들을 가졌던 계수들을 지칭한다. 본 개시에 따르면, 인코더 (12) 및 디코더 (18) 는 2 이상의 상이한 형식들의 비디오 블록들에 대해 상이한 VLC 테이블들을 선택한다. 예를 들어, 인코더 (12) 및 디코더 (18) 는 인트라 블록들의 정제 계수들을 코딩하기 위해 제 1 VLC 테이블을 선택할 수도 있고, 인터 블록들의 정제 계수들을 코딩하기 위해 제 2 VLC 테이블을 선택할 수도 있다. 인코더 (12) 및 디코더 (18) 의 VLC 테이블 선택은 이전에 코딩된 블록들과 연관된 통계치들에 기초할 수도 있다. 예를 들어, 인트라 블록들을 위한 VLC 테이블은 이전에 코딩된 인트라 블록들과 연관된 통계치들에 기초하여 선택될 수도 있고, 인터 블록들을 위한 VLC 테이블은 이전에 코딩된 인터 블록들과 연관된 통계치들에 기초하여 선택될 수도 있다. 따라서, 인코더 (12) 및 디코더 (18) 는 SVC 방식에서 향상 계층을 코딩하는 상호 역의 방법들을 수행할 수도 있다. 본원에서 이용된 바와 같이, 코딩이라는 말은 일반적으로 인코딩 프로세스 또는 디코딩 프로세스 중 어느 일방의 적어도 일부를 지칭한다. 비디오 인코더 (12) 는 데이터를 인코딩하는 반면, 비디오 디코더 (18) 는 데이터를 디코딩한다.
VLC 테이블들 그 자신들은 코드워드들을 상이한 셋트들의 변환 계수들에 할당할 수도 있다. 제로 값 계수들의 셋트들이 제로들의 실행 길이들에 의해 나타내어질 수도 있고, 테이블들은 더 가능성 있는 실행 길이들을 더 짧은 VLC 코드들에 할당할 수도 있다. 유사하게, 덜 가능성 있는 실행 길이들은 더 긴 VLC 코드들에 할당할 수도 있다. 따라서, VLC 테이블들로부터의 코드들의 선택은 코딩 효율을 향상시킬 수도 있다. 다르게는, 코딩된 블록 패턴들과 같은 계수들의 상이한 패턴들은 상이한 가변 길이 코드워드들을 할당받을 수도 있고, 더 가능성 있는 패턴들이 더 짧은 코드워드들을 할당받고, 덜 가능성 있는 패턴들은 더 긴 코드워드들을 할당받을 수도 있다.
VLC 테이블들 그 자신들의 형성은 또한 이전 코딩 통계치들에 기초할 수도 있지만, 대부분의 경우들에서, 정적 VLC 테이블들이 이용된다. 정적 VLC 테이블들의 경우, 인코더 (12) 및 디코더 (18) 는 단순히, 인트라 블록들의 정제 계수들을 코딩하기 위해 가능한 테이블들의 셋트로부터 적절한 VLC 테이블을 선택하고, 인터 블록들의 정제 계수들을 코딩하기 위해 가능한 테이블들의 셋트로부터 또 다른 적절한 VLC 테이블을 선택한다. VLC 테이블들이 정적인지 아니면 동적으로 형성되는지 여부에 관계 없이, 소망하는 바에 따라 VLC 테이블들의 업데이트들이 이루어질 수 있을 것이다.
도 2 는 스케일러블 비디오 비트스트림의 베이스 계층 (17) 및 향상 계층 (18) 내의 비디오 프레임들을 나타내는 도이다. 앞서 언급한 바와 같이, 본 개시의 기술들은 향상 계층들의 데이터의 코딩에 대해 적용가능하다. 베이스 계층 (17) 은 제 1 레벨의 공간, 시간, 또는 SNR 스케일러빌러티를 나타내는 인코딩된 비디오 데이터를 포함하는 비트스트림을 포함할 수도 있다. 향상 계층 (18) 은 제 2 레벨의 공간, 시간, 및/또는 SNR 스케일러빌러티를 나타내는 인코딩된 비디오 데이터를 포함하는 비트스트림을 포함할 수도 있다. 단일 향상 계층이 도시되었지만, 몇몇 경우들에서 수개의 향상 계층들이 이용될 수도 있다. 향상 계층 비트스트림은 오직 베이스 계층 (또는 다수의 향상 계층이 존재하는 경우 이전 향상 계층) 과 함께 디코딩가능할 수도 있다. 향상 계층 (18) 은 베이스 계층 (17) 에서 디코딩된 비디오 데이터에 대한 기준들을 포함한다. 이러한 기준들은 최종 디코딩된 비디오 데이터를 생성하기 위해 변환 도메인 또는 픽셀 도메인 중 어느 일방에서 이용될 수도 있다.
베이스 계층 (17) 및 향상 계층 (18) 은 인트라 (I), 인터 (P), 및 양-방향 (B) 프레임들을 포함할 수도 있다. 인트라 프레임들은 모든 인트라-코딩된 비디오 블록들을 포함할 수도 있다. I 및 P 프레임들은 적어도 일부 인터-코딩된 비디오 블록들 (인터 블록들) 을 포함할 수도 있지만, 일부 인트라-코딩된 블록들 (인트라 블록들) 을 또한 포함할 수도 있다. 향상 계층 (18) 의 상이한 프레임들은 베이스 계층 (17) 의 모든 비디오 블록들을 포함할 필요는 없다. 향상 계층 (18) 의 P 프레임들은 베이스 계층 (17) 의 P 프레임들에 대한 기준들에 의존한다. 향상 계층 (18) 및 베이스 계층 (17) 에서의 프레임들을 디코딩함으로써, 비디오 디코더는 디코딩된 비디오의 비디오 품질을 증가시킬 수 있다. 예를 들어, 베이스 계층 (17) 은 예를 들어, 초당 15 프레임의 최소 프레임 레이트로 인코딩된 비디오를 포함할 수도 있는 반면, 향상 계층 (18) 은 예를 들어, 초당 30 프레임의 더 높은 프레임 레이트로 인코딩된 비디오를 포함할 수도 있다. 상이한 품질 레벨들에서의 인코딩을 지원하기 위해, 베이스 계층 (17) 및 향상 계층 (18) 은 각각 더 높은 양자화 파라미터 (QP) 및 더 낮은 양자화 파라미터 (QP) 를 이용하여 인코딩될 수도 있다. 더욱이, 베이스 계층 (17) 은 향상 계층 (18) 의 송신보다 더 신뢰가능한 방식으로 송신될 수도 있다. 일 예로서, 변조된 신호의 가장 신뢰가능한 부분들이 베이스 계층 (17) 송신에 이용될 수도 있는 한편, 변조된 신호의 덜 신뢰가능한 부분들은 향상 계층 (18) 을 송신하는데 이용될 수도 있다. 도 2 의 도시는 단지 예시적인 것이며, 베이스 및 향상 계층들은 많은 다른 방식들로 정의될 수 있을 것이다.
도 3 은 본 개시와 일치하는, 데이터를 인코딩하기 위해 VLC 유닛 (46) 을 포함하는 비디오 인코더 (50) 의 일예를 나타내는 블록도이다. 도 3 의 비디오 인코더 (50) 는 도 1 의 소스 디바이스 (2) 의 향상 계층 인코더 (24) 에 대응할 수도 있다. 즉, 베이스 계층 인코딩 구성요소들은 간략함을 위해 도 3 에 나타내지 않았다. 따라서, 비디오 인코더 (50) 는 향상 계층 인코더로서 고려될 수도 있다. 다르게는, 비디오 인코더 (50) 의 도시된 구성요소들은 베이스 계층 인코딩 모듈들 또는 유닛들과 결합하여, 예를 들어, 베이스 계층 및 향상 계층의 스케일러블 비디오 코딩을 지원하는 피라미드 인코더 설계로 또한 구현될 수 있을 것이다.
비디오 인코더 (50) 는 비디오 프레임들 내의 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 프레임 내의 비디오에서의 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접 프레임들 내의 비디오에서의 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 의존한다. 인터-코딩을 위해, 비디오 인코더 (50) 는 2 이상의 인접 프레임들 간에 매칭 비디오 블록들의 움직임을 추적하기 위해 모션 추정을 수행한다. 인트라-코딩에서, 공간 예측은 코딩되는 블록과 밀접하게 매칭하는 프레임 내의 다른 블록들을 식별하기 위해 이용된다. 인트라 코딩, 공간 예측 구성요소들은 도 3 에 도시하지 않았다.
도 3 에서 나타낸 바와 같이, 비디오 인코더 (50) 는 인코딩될 비디오 프레임 내의 현재 비디오 블록 (31) (예를 들어, 향상 계층 비디오 블록) 을 수신한다. 도 3 의 예에서, 비디오 인코더 (50) 는 모션 추정 유닛 (33), 기준 프레임 저장부 (35), 모션 보상 유닛 (37), 블록 변환 유닛 (39), 양자화 유닛 (41), 역 양자화 유닛 (42), 역 변환 유닛 (44) 및 VLC 유닛 (46) 을 포함한다. 디블록킹 필터 (deblocking filter; 미도시) 또한 블록킹 아티팩트 (blockiness artifacts) 를 제거하기 위해 필터 블록 경계들에 포함될 수도 있다. 비디오 인코더 (50) 는 합산기 (summer; 48) 및 합산기 (51) 를 또한 포함한다. 도 3 은 비디오 블록들의 인터-코딩을 위한 비디오 인코더 (50) 의 시간 예측 구성요소들을 나타낸다. 도시의 용이함을 위해 도 3 에는 나타내지 않았지만, 비디오 인코더 (50) 는 일부 비디오 블록들의 인트라-코딩을 위한 공간 예측 구성요소들을 또한 포함할 수도 있다. 하지만, 공간 예측 구성요소들은 통상적으로 베이스 계층 코딩에만 이용된다.
모션 추정 유닛 (33) 은 비디오 블록 (31) 을 하나 이상의 인접한 비디오 프레임들의 블록들과 비교하여 하나 이상의 모션 벡터들을 생성한다. 인접 프레임 또는 프레임들은, 이전에 인코딩된 블록들로부터 재구성된 비디오 블록들을 저장하기 위한 임의의 형식의 메모리 또는 데이터 저장 디바이스를 포함할 수도 있는 기준 프레임 저장부 (35) 로부터 검색될 수도 있다. 모션 추정은 가변 크기들, 예를 들어, 16×16, 16×8, 8×16, 8×8 또는 더 작은 블록 크기들의 블록들에 대해 수행될 수도 있다. 모션 추정 유닛 (33) 은, 예를 들어 레이트 왜곡 모델 (rate distortion model) 에 기초하여, 현재 비디오 블록 (31) 에 가장 근접 매칭되는 인접 프레임의 블록을 식별하고, 블록들 간의 변위를 결정한다. 이러한 기초에서, 모션 추정 유닛 (33) 은 현재 비디오 블록 (31) 을 코딩하기 위해 이용되는 예측 블록과 현재 비디오 블록 (31) 간의 변위의 크기 및 궤적을 나타내는 모션 벡터 (MV) (또는 양방향 예측의 경우에는 다수의 MV 들) 를 생성한다.
모션 벡터들은 1/2 픽셀 정밀도 또는 1/4 픽셀 정밀도, 또는 심지어 더 미세한 정밀도를 가져서, 비디오 인코더 (50) 가 정수 픽셀 위치결정들보다 더 높은 정밀도로 모션을 추적하고 더 양호한 예측 블록을 얻을 수 있도록 허용할 수도 있다. 분수 픽셀 값들을 이용한 모션 벡터들이 이용되는 경우, 보간 동작들이 모션 보상 유닛 (37) 에서 수행된다. 모션 추정 유닛 (33) 은 레이트-왜곡 모델을 이용하여 비디오 블록에 대한 최선의 모션 벡터를 식별할 수도 있다. 결과적인 모션 벡터를 이용하여, 모션 보상 유닛 (37) 은 모션 보상에 의해 예측 비디오 블록을 형성한다.
비디오 인코더 (50) 는 합산기 (48) 에서 원래의 현재 비디오 블록 (31) 으로부터, 모션 보상 유닛 (37) 에 의해 생성된 예측 비디오 블록을 뺌으로써 나머지 비디오 블록을 형성한다. 블록 변환 유닛 (39) 은 이산 코사인 변환 (DCT) 과 같은 변환을 나머지 블록에 적용하여, 나머지 변환 블록 계수들을 생성한다. 양자화 유닛 (41) 은 나머지 변환 블록 계수들을 양자화하여 비트 레이트를 더 감소시킨다. 합산기 (49A) 는, 예를 들어, 베이스 계층 인코더 (미도시) 로부터, 베이스 계층 계수 정보를 수신하고, 이 베이스 계층 계수 정보를 향상 계층 코딩으로 제공하기 위해 블록 변환 유닛 (39) 과 양자화 유닛 (41) 사이에 위치된다. 특히, 합산기 (49A) 는 블록 변환 유닛 (39) 의 출력으로부터 베이스 계층 계수 정보를 뺀다. 유사한 방식으로, 역 변환 유닛 (44) 과 역 양자화 유닛 (42) 사이에 위치된 합산기 (49B) 는 베이스 계층 인코더 (미도시) 로부터 베이스 계층 계수 정보를 또한 수신한다. 합산기 (49B) 는 이 베이스 계층 계수 정보를 다시 역 양자화 유닛 (42) 의 출력에 부가한다.
공간 예측 코딩은 시간 예측 코딩과 매우 유사하게 동작한다. 하지만, 시간 예측이 코딩을 수행하기 위해 인접 프레임들 (또는 다른 코딩된 유닛들) 의 블록들에 의존하는 반면, 공간 예측은 코딩을 수행하기 위해 공통 프레임 (다른 코딩된 유닛) 내의 블록들에 의존한다. 공간 예측 코딩은 인트라 블록들을 코딩하는 한편, 시간 예측 코딩은 인터 블록들을 코딩한다. 다시, 공간 예측 구성요소들은 간략함을 위해 도 3 에 도시하지 않았다.
VLC 유닛 (46) 은 송신된 정보의 비트 레이트를 한층 더 감소시키기 위해 가변 길이 코딩 방법에 따라 양자화된 변환 계수들을 코딩한다. 특히, VLC 유닛 (46) 은 향상 계층의 정제 계수들을 코딩하기 위해 본 개시의 기술들을 적용한다. VLC 유닛 (46) 은 계수들의 셋트들을 가변 길이 코드워드들로 맵핑하는 VLC 테이블들을 포함할 수도 있다.
VLC 유닛 (46) 에 의한 VLC 테이블 선택은 이전에 코딩된 프레임들에 대해 수집된 정보에 기초하여 수행된다. 또한, VLC 테이블들은, 예를 들어 인트라 블록들 및 인터 블록들과 같이 상이한 형식들의 비디오 블록들에 대해 선택된다. VLC 유닛 (46) 은 코딩된 유닛 당 한번 (예를 들어, 프레임 당 한번, 비디오 정보의 슬라이스 당 한번, 또는 프레임의 FGS 계층 당 한번) VLC 테이블들을 선택할 수도 있다. 상이한 형식들의 비디오 블록들에 대한 VLC 테이블들이 이전에 코딩된 블록들과 연관된 통계치들에 기초하여 선택될 수 있다. 예를 들어, VLC 유닛 (46) 은 이전에 코딩된 인트라 블록들과 연관된 통계치들에 기초하여 인트라 블록들에 대한 VLC 테이블을 선택할 수도 있고, VLC 유닛 (46) 은 이전에 코딩된 인터 블록들과 연관된 통계치들에 기초하여 인터 블록들에 대한 VLC 테이블을 선택할 수도 있다. 이 경우, 이전에 코딩된 블록들과 연관된 통계치들은 이러한 이전에 코딩된 블록들을 갖는 넌-제로 계수들의 평균 수를 포함할 수도 있다.
가변 길이 코딩에 이어, 인코딩된 비디오는 또 다른 디바이스로 송신될 수도 있다. 또한, 역 양자화 유닛 (42) 및 역 변환 유닛 (44) 은 나머지 블록을 재구성하기 위해, 역 양자화 및 역 변환을 각각 적용한다. 합산기 (51) 는, 기준 프레임 저장부 (35) 에 저장하기 위한 재구성된 비디오 블록을 생성하기 위해, 모션 보상 유닛 (37) 에 의해 생성된 모션 보상된 예측 블록에 재구성된 나머지 블록을 부가한다. 이 재구성된 비디오 블록은, 후속하는 비디오 프레임의 블록을 인코딩하기 위해 모션 추정 유닛 (33) 과 모션 보상 유닛 (37) 에 의해 이용된다.
도 4 는, 도 1 의 비디오 디코더 (18), 또는 또 다른 디바이스의 디코더에 대응할 수도 있는 비디오 디코더 (60) 의 일예를 나타내는 블록도이다. 비디오 디코더 (60) 는 도 3 의 VLC 유닛 (46) 의 역 기능을 수행하는, 향상 계층 정보를 위한 VLC 유닛 (52A) 을 포함한다. 즉, VLC 유닛 (46) 과 마찬가지로, VLC 유닛 (52A) 은, 향상 계층의 정제 계수들을 코딩한다.
비디오 디코더 (60) 는 베이스 계층 정보를 위한 또 다른 VLC 유닛 (52B) 을 또한 포함할 수도 있다. 인트라 예측 유닛 (55) 은 베이스 계층 비디오 블록들의 임의의 공간 디코딩을 선택적으로 수행할 수도 있고, 인트라 예측 유닛 (55) 의 출력은 가산기 (53) 에 제공될 수도 있다. 향상 계층 경로는 역 양자화 유닛 (56A) 을 포함할 수도 있고, 베이스 계층 경로는 역 양자화 유닛 (56B) 을 포함할 수도 있다. 베이스 계층 및 향상 계층 경로들의 정보는 가산기 (57) 에 의해 결합될 수도 있다.
비디오 디코더 (60) 는 비디오 프레임들 내의 블록들의 인트라-디코딩 및 인터-디코딩을 수행할 수도 있다. 도 4 의 예에서, 비디오 디코더 (60) 는 VLC 유닛들 (52A 및 52B) (전술하였음), 모션 보상 유닛 (54), 역 양자화 유닛들 (56A 및 56B), 역 변환 유닛 (58), 및 기준 프레임 저장부 (62) 를 포함한다. 비디오 디코더 (60) 는 합산기 (64) 를 또한 포함한다. 선택적으로, 비디오 디코더 (60) 는 합산기 (64) 의 출력을 필터링하는 디블록킹 필터 (미도시) 를 또한 포함할 수도 있다. 또한, 합산기 (57) 는 베이스 계층 및 향상 계층 경로들의 정보를 결합하고, 인트라 예측 유닛 (55) 및 가산기 (53) 는 베이스 계층 비디오 블록들의 임의의 공간 디코딩을 용이하게 한다.
본 개시에 따라, VLC 유닛 (52A) 은 인코딩된 비디오 비트스트림을 수신하고, 본 개시에 설명된 VLC 기술들을 적용한다. 특히, 정제 계수들에 대해, VLC 유닛 (52A) 은 이전에 코딩된 프레임들에 대해 수집된 정보에 기초하여 상이한 비디오 블록 형식들에 대한 VLC 테이블들을 선택할 수도 있다. VLC 유닛 (52A) 은 코딩된 유닛 당 한번 (예를 들어, 프레임 당 한번, 비디오 정보의 슬라이스 당 한번, 프레임의 FGS 계층 당 한번) VLC 테이블들을 선택할 수도 있다. 이전에 코딩된 블록들과 연관된 통계치들에 기초하여 상이한 형식들의 비디오 블록들에 대한 VLC 테이블들이 선택될 수 있다. 예를 들어, VLC 유닛 (52A) 은 이전에 코딩된 인트라 블록들과 연관된 통계치들에 기초하여 인트라 블록들에 대한 VLC 테이블을 선택할 수도 있고, VLC 유닛 (52A) 은 이전에 코딩된 인터 블록들과 연관된 통계치들에 기초하여 인터 블록들에 대한 VLC 테이블을 선택할 수도 있다.
VLC 유닛 (52A) 에 의해 수행된 디코딩에 이어, 모션 보상 유닛 (54) 은 모션 벡터들 및 기준 프레임 저장부 (62) 로부터의 하나 이상의 재구성된 기준 프레임들을 수신한다. 역 양자화 유닛 (56A) 은 양자화된 블록 계수들을 역 양자화, 즉, 양자화 해제한다. 가산기 (57) 에 의한 향상 및 베이스 계층 정보의 결합에 이어, 역 변환 유닛 (58) 은 계수들에 역 변환, 예를 들어, 역 DCT 를 적용하여 나머지 블록들을 생성한다. 모션 보상 유닛 (54) 은 모션 보상된 블록들을 생성하고, 이 모션 보상된 블록들은 합산기 (64) 에 의해 나머지 블록들과 합산되어, 디코딩된 블록들을 형성한다. 원한다면, 블록킹 아티팩트를 제거하기 위해 디코딩된 블록들을 필터링하기 위해 디블록킹 필터가 또한 적용될 수도 있다. 그 다음, 필터링된 블록들은 기준 프레임 저장부 (62) 에 위치되고, 이 기준 프레임 저장부 (62) 는 모션 보상으로부터 기준 블록들을 제공하고, 또한 (도 1 의 디바이스 (20) 와 같은) 드라이브 디스플레이 디바이스에 대해 디코딩된 비디오를 생성한다.
도 5 는 도 3 에서 나타낸 것에 대응할 수도 있는 일 예시적인 VLC 유닛 (46) 을 나타내는 블록도이다. VLC 유닛 (46) 은 인코드 모듈 (72), 통계 모듈 (74), 테이블 선택 모듈 (76), VLC 테이블들 (78) 을 포함한다. VLC 테이블들 (78) 은 일반적으로 임의의 위치, 예를 들어, 국소적인 또는 오프-칩의 별개의 메모리 위치에 저장될 수도 있는 테이블들을 지칭한다. 원한다면, VLC 테이블들 (78) 은 주기적으로 업데이트될 수도 있다.
인코드 모듈 (72) 은 별개의 코딩 패스들에서 정제 계수들 및 중요 계수들을 인코딩한다. 상이한 비디오 블록들과 연관된 계수들의 인코딩을 위한 VLC 유닛 (46) 에 의한 테이블 선택은 이전에 코딩된 프레임들에 대해 수집되는 정보에 기초하여 수행될 수도 있다. 예를 들어, 통계 모듈 (74) 은, 이전에 인코딩된 프레임들의 통계적 분석을 수행하여, 테이블 선택 모듈 (76) 에 의한 테이블 선택을 용이하게 할 수도 있다.
통계 모듈 (74) 은 (인트라 블록과 같은) 제 1 형식의 비디오 블록과 연관된 제 1 통계치들을 결정하고, (인터 블록과 같은) 제 2 형식의 비디오 블록과 연관된 제 2 통계치들을 결정한다. 테이블 선택 모듈 (76) 은 제 1 통계치에 기초하여 제 1 형식의 비디오 블록을 코딩하는데 이용될 복수의 VLC 테이블들 (78) 로부터의 제 1 VLC 테이블을 선택한다. 또한, 테이블 선택 모듈 (76) 은 제 2 통계치에 기초하여 제 2 형식의 비디오 블록을 코딩하는데 이용될 복수의 VLC 테이블들 (78) 로부터의 제 2 VLC 테이블을 선택한다. 인코드 모듈 (72) 은 제 1 VLC 테이블에 기초하여 제 1 형식의 비디오 블록들을 인코딩하고, 제 2 VLC 테이블에 기초하여 제 2 형식의 비디오 블록들을 인코딩한다.
본원에서 설명된 기술들은 중요 계수들에 대하여 별개의 코딩 패스에서 코딩될 수도 있는 정제 계수들에 대하여 수행될 수도 있다. 정제 계수들은 -1, 0, 및 1 에 한정된 값들을 가질 수도 있고, 이는 2 비트의 정보에 의해 코딩될 수도 있다. 제 1 비트는 계수가 0 과 같은지 아닌지 여부를 표시할 수도 있고, 제 2 비트는 정제 계수의 부호 (sn 으로서 표시됨) 가 이전 계층의 대응하는 계수의 부호 (sn-1 으로서 표시됨) 와 동일한지 (coeff_ref_dir_flag=0) 아니면 상이한지 (coeff_ref_dir_flag=1) 를 나타낼 수도 있다. 이전 계층은 sn-1 으로서 표시된다. 현재 계수의 부호가 이전 계층의 부호와 동일한 경우, coeff_ref_dir_flag=0 이고, 현재 계수의 부호가 이전 계층의 부호와 상이하면, coeff_ref_dir_flag=1 이다. 2 개의 정제 비트들은 다음의 표 1 에서와 같이 3 개의 정제 심볼들의 알파벳으로 결합될 수도 있다.
[표 1]
다르게는, 본 개시의 기술로부터 벗어남이 없이 또 다른 방식이 정제 계수들을 코딩하기 위해 또한 이용될 수 있을 것이다.
코딩 테이블들 (78) 은, 심볼들, 플래그들, 또는 다른 형식들의 비트들에 의해 정의될 수도 있는, 상이한 셋트들의 계수들로 맵핑되는 가변 길이 코드워드들을 포함할 수도 있다. 원한다면 VLC 테이블들 (78) 은 업데이트될 수도 있다. VLC 테이블들 (88) 에는 임의의 수의 테이블들이 포함될 수도 있다. 몇몇 경우들에서, 2 개의 테이블들이 이용되지만, 더 많은 테이블들이 포함될 수도 있을 것이다. 임의의 경우에, 인코드 모듈 (72) 은 상이한 형식들의 비디오 블록들에 대해 상이한 VLC 테이블들을 액세스할 수도 있다. 통계 모듈 (74) 및 테이블 선택 모듈 (76) 은 코딩되는 비디오 블록의 각각의 형식에 대해 어떤 VLC 테이블이 이용되어야 하는지를 결정한다.
표 2 는 정제 계수들을 코딩하는데 이용될 수 있는 VLC 테이블의 일예를 제공한다.
[표 2]
표 2 에서 나타낸 바와 같이, (표 1 에서 정의된 바와 같은) 정제 계수들의 상이한 셋트들은 상이한 가변 길이 코드워드들로 맵핑될 수도 있다. 표 2 는 또한 상이한 코드워드들과 연관된 각각의 비트 길이들을 리스트한다. 정제 계수들의 상이한 셋트들로의 코드워드 맵핑들은 상이한 VLC 테이블들에서 상이할 수도 있다. 따라서, 적절한 테이블을 선택함으로써, 코딩 효율이 달성될 수도 있다. 본 개시에 따르면, 각각의 코딩된 유닛 (예를 들어, 각각의 프레임, 슬라이스 또는 FGS 계층) 에 대해, VLC 유닛 (46) 의 테이블 선택 모듈 (76) 은 인트라 블록들에 대해 제 1 VLC 테이블을 선택하고, 인터 블록들에 대해 제 2 VLC 테이블을 선택한다. 테이블 선택은 이전에 코딩된 인트라 블록들 및 이전에 코딩된 인터 블록들과 연관된 통계치에 기초할 수도 있다. 그 다음, VLC 유닛 (46) 의 인코드 모듈 (72) 은 VLC 프로세스에서 선택된 테이블들을 이용한다.
각각의 형식의 비디오 블록들에 대한 통계치는 통계 모듈 (74) 에 의해 누적되고 분석될 수도 있다. 일예로서, 각각의 형식의 비디오 블록에 대한 통계치는, 반전된 부호 값을 가졌던 이전에 코딩된 블록들의 정제 계수들의 수에 대한 동일 부호 값을 가졌던 이전에 코딩된 블록들의 정제 계수들의 수의 비율을 포함할 수도 있다. 각각의 형식의 비디오 블록에 대한 이러한 비율에 기초하여, 테이블 선택 모듈 (76) 은, 주어진 프레임의 그 형식의 블록과 연관된 정제 계수들을 코딩하기 위한 VLC 테이블을 선택할 수도 있다. 다음 프레임 (또는 다른 코딩된 유닛) 을 만날 때, VLC 유닛 (46) 은 각각의 블록 형식에 대한 비율들을 재계산하여 그 프레임 (또는 다른 코딩된 유닛) 에 대한 VLC 테이블 선택들을 용이하게 할 수도 있다.
표 1 로부터의 정제 심볼 1 은 정제 심볼이 이전 계층 (또는 베이스 계층) 의 심볼에 대해 동일한 부호 값을 갖는 경우에 대응한다. 표 1 로부터의 정제 심볼 2 는 정제 심볼이 이전 계층 (또는 베이스 계층) 의 심볼에 대해 반전된 부호 값을 갖는 경우에 대응한다. 다르게 말하면, 심볼 1 은 이전 계층의 대응하는 계수의 부호에 대해 "동일 부호 유지" 를 의미하고, 심볼 2 는 이전 계층의 대응하는 계수의 부호에 대해 "반전된 부호" 를 의미한다.
SVC 의 코딩 효율은, VLC 테이블 선택이 ref_symbol 1 및 2 의 비율에 기초할 때 향상될 수도 있다. s(1) 및 s(2) 가 코딩 프로세스에서 수집된 정제 심볼 1 및 2 의 수를 각각 나타낸다고 하자. s(1) 및 s(2) 에 대한 값들은 프레임들의 윈도우를 슬라이딩시킴으로써 정의될 수 있을 것이고, 전체 비디오 시퀀스에 걸쳐 누적될 수 있을 것이다. 어느 경우에도, 비율 r 은 수많은 방식들로 계산될 수 있다. 예를 들어, 비율 r = (smax-smin)/smax 가 계산될 수도 있고, 여기서, smax = max(s(1),s(2)) 및 smin = min(s(1),s(2)) 이다. 다르게는, r = s(1)/(s(1)+s(2)) 가 이용될 수도 있을 것이다. 이들 각각의 경우에, r 의 각각의 양자화된 값에 대해, 값 RQ 가 floor(m*r) 와 동등한 것으로서 정의될 수도 있고, 여기서, m 은 1 보다 큰 어떤 수이다. 비율 r 이 값 RQ 초과인지 또는 미만인지에 기초하여 상이한 VLC 테이블들이 할당될 수도 있다.
도 6 은 도 4 에 나타낸 것에 대응할 수도 있는 예시적인 VLC 유닛 (52A) 을 나타내는 블록도이다. VLC 유닛 (52A) 은 VLC 유닛 (46) 에 의해 수행되는 인코딩에 대해 상호 역의 디코딩 기능을 수행한다. 따라서, VLC 유닛 (46) 이 양자화된 나머지 계수들을 수신하여 비트스트림을 생성하는 반면, VLC 유닛 (52A) 은 비트스트림을 수신하여 양자화된 나머지 계수들을 생성한다. VLC 유닛 (52A) 은 디코드 모듈 (82), 통계 모듈 (84), 테이블 선택 모듈 (86), 및 일셋트의 VLC 테이블들 (88) 을 포함한다. 유닛 (46) 에서와 같이, 유닛 (52A) 의 VLC 테이블들 (88) 은 일반적으로 임의의 위치, 예를 들어, 국소적인 또는 오프-칩의 별개의 메모리 위치에 저장될 수도 있는 테이블들을 지칭한다. VLC 테이블들 (88) 은 원한다면 주기적으로 업데이트될 수도 있다. 임의의 수의 테이블들이 VLC 테이블들 (88) 내에 포함될 수도 있다. 몇몇 경우들에서, 2 개의 테이블들이 이용되지만, 더 많은 테이블들이 포함될 수도 있을 것이다.
VLC 디코드 유닛 (82) 은 중요 계수들 및 정제 계수들에 대해 별개의 디코딩 패스들을 수행할 수도 있다. 본 개시의 기술들은 코딩 또는 정제 계수들에만 적용될 수도 있거나, 또는, 정제 및 중요 계수들 양자 모두에 대해 이용될 수도 있을 것이다. VLC 유닛 (52A) 에 의해 수행되는 디코딩은 VLC 유닛 (46) 에 의해 수행되는 인코딩에 대해 상호 역의 관계이다.
상이한 비디오 블록들과 연관된 계수들의 디코딩에 대한 VLC 유닛 (52A) 에 의한 테이블 선택은, 예를 들어, 이전에 코딩된 프레임들로부터의, 이전에 코딩된 블록들에 대해 수집된 정보에 기초하여 수행될 수도 있다. 예를 들어, 통계 모듈 (84) 은 테이블 선택 모듈 (86) 에 의한 테이블 선택을 용이하게 하기 위해 이전에 디코딩된 프레임들의 블록들의 통계적 분석을 수행할 수도 있다. 특히, 통계 모듈 (84) 은 (인트라 블록과 같은) 제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하고, (인터 블록과 같은) 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정한다. 테이블 선택 모듈 (86) 은 제 1 통계치에 기초하여 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들 (88) 로부터의 제 1 VLC 테이블을 선택한다. 또한, 테이블 선택 모듈 (86) 은 제 2 통계치에 기초하여 제 2 형식의 비디오 블록을 코딩하는데 이용될, 복수의 VLC 테이블들 (88) 로부터의 제 2 VLC 테이블을 선택한다. 디코드 모듈 (82) 은 제 1 VLC 테이블에 기초하여 제 1 형식의 비디오 블록들을 디코딩하고, 제 2 VLC 테이블에 기초하여 제 2 형식의 비디오 블록들을 디코딩한다.
상기 표 2 는 또한 VLC 테이블들 (88) 중 하나로서 보여질 수 있다. 하지만, VLC 테이블들 (78) (도 5) 은 계수들의 셋트들을 가변 길이 코드워드들로 맵핑하는 반면, VLC 테이블들 (88) (도 6) 은 가변 길이 코드워드들을 다시 계수들의 셋트들로 맵핑한다. 이러한 방식으로, VLC 유닛 (52A) 에 의해 수행되는 디코딩은 VLC 유닛 (46) 에 의해 수행되는 인코딩에 대해 상호 역의 관계로서 보여질 수 있다.
도 7 은 본 개시와 일치하는, 향상 계층의 계수들 (예를 들어, 통상적으로 정제 계수들) 의 가변 길이 코딩을 위한 코딩 기술을 나타내는 흐름도이다. 도 7 의 코딩 프로세스는 인코딩 및 디코딩 양자 모두에 적용된다. 도 7 에서 나타낸 바와 같이, 통계 모듈 (74, 84) 은 이전에 코딩된 인트라 블록들의 통계치를 결정한다 (91). 예를 들어, 통계 모듈 (74, 84) 은 이전에 코딩된 인트라 블록들에 대해, 반전된 부호 값을 갖는 정제 심볼들에 대한 동일 부호 값을 갖는 정제 심볼들의 비율을 계산할 수도 있다. 또한, 통계 모듈 (74, 84) 은, 예를 들어, 이전에 코딩된 인터 블록들에 대해, 반전된 부호 값을 갖는 정제 심볼들에 대한 동일 부호 값을 갖는 정제 심볼들의 비율을 계산함으로써, 이전에 코딩된 인터 블록들의 통계치를 결정할 수도 있다 (92).
테이블 선택 모듈 (76, 86) 은 이전에 코딩된 인트라 블록들의 통계치에 기초하여 인트라 블록들에 대한 코딩 테이블을 선택한다 (93). 예를 들어, 인트라 블록들에 대한 코딩 테이블은 인트라 블록들과 연관된 비율의 값에 기초하여 선택될 수도 있다. 또한, 테이블 선택 모듈 (76, 86) 은 이전에 코딩된 인터 블록들의 통계치에 기초하여 인터 블록들에 대한 코딩 테이블을 선택한다 (94). 예를 들어, 인터 블록들에 대한 코딩 테이블은 인터 블록들과 연관된 비율의 값에 기초하여 선택될 수도 있다.
코딩 모듈 (82, 84) 은 인트라 블록들에 대해 선택된 코딩 테이블을 이용하여 인트라 블록들을 코딩하고 (95), 인터 블록들에 대해 선택된 코딩 테이블을 이용하여 인터 블록들을 코딩한다 (96). 특히, 코딩 모듈 (82, 84) 은 상이한 블록 형식들에 대해 선택된 코딩 테이블들을 이용하여 테이블 룩업 (lookup) 을 수행한다. 프로세스는 모든 코딩된 유닛에 대해 반복될 수도 있다 (97). 코딩된 유닛들은 비디오 프레임들, 비디오 프레임들의 슬라이스들, FGS 계층들 등일수도 있다.
본원에서 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 모듈들 또는 구성요소들로서 설명된 임의의 태양들은 집적된 로직 디바이스에서 함께 구현될 수도 있고, 또는, 이산의, 그러나, 공동으로 동작가능한 로직 디바이스들로서 개별적으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 본 기술들은, 실행될 때 전술한 하나 이상의 방법들을 수행하는 명령들을 포함하는 컴퓨터-판독가능 매체에 의해 적어도 일부 실현될 수도 있다. 컴퓨터-판독가능 매체는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있고, 이 컴퓨터 프로그램 제품은 포장 재료를 포함할 수도 있다. 컴퓨터-판독가능 매체는, 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리 (EEPROM), 플래쉬 메모리, 자기 또는 광학적 데이터 저장 매체 등을 포함할 수도 있다. 본 기술들은, 부가적으로, 또는 대안적으로, 명령들 또는 데이터 구조들의 형태로 코드를 운반 또는 통신하고, 컴퓨터에 의해 액세스, 판독, 및/또는 실행될 수 있는 컴퓨터-판독가능 통신 매체에 의해 적어도 일부 실현될 수도 있다.
코드는, 하나 이상의 디지털 신호 처리기 (DSP) 들, 범용 마이크로프로세서들, 주문형 집적 회로 (ASIC) 들, 필드 프로그래머블 로직 어레이 (FPGA) 들, 또는 다른 등가의 집적 또는 이산 논리 회로 등과 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에서 사용된 바와 같은 "프로세서" 라는 용어는, 본원에서 설명된 기술들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조를 지칭할 수도 있다. 또한, 몇몇 양태들에서, 본원에서 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공될 수도 있고, 또는, 결합된 비디오 인코더-디코더 (CODEC) 내에 통합될 수도 있다.
하드웨어에서 구현되는 경우, 본 개시는 집적 회로, 칩셋 ASIC, FPGA, 로직 또는 본원에서 설명된 하나 이상의 기술들을 수행하도록 구성된 이들의 다양한 조합들과 같은 회로를 지향할 수도 있다.
본 발명의 다양한 실시형태들이 설명되었다. 이들 및 다른 실시형태들은 첨부된 청구의 범위의 범위 내이다.

Claims (25)

  1. 스케일러블 비디오 코딩 (scalable video coding; SVC) 방식의 향상 계층을 코딩하는 방법으로서,
    제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하는 단계;
    제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하는 단계;
    상기 제 1 통계치에 기초하여 상기 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 가변 길이 코딩 (variable length coding; VLC) 테이블들로부터의 제 1 VLC 테이블을 선택하는 단계;
    상기 제 2 통계치에 기초하여 상기 제 2 형식의 비디오 블록을 코딩하는데 이용될, 상기 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하는 단계;
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하는 단계; 및
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하는 단계를 포함하는, SVC 방식의 향상 계층을 코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 인코딩하는 단계를 포함하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 인코딩하는 단계를 포함하는, SVC 방식의 향상 계층을 코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 디코딩하는 단계를 포함하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 디코딩하는 단계를 포함하는, SVC 방식의 향상 계층을 코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 1 VLC 테이블을 이용하여 테이블 룩업을 수행하는 단계를 포함하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 2 VLC 테이블을 이용하여 테이블 룩업을 수행하는 단계를 포함하는, SVC 방식의 향상 계층을 코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 형식의 비디오 블록은 인트라-코딩된 (intra-coded) 비디오 블록을 포함하고, 상기 제 2 형식의 비디오 블록은 인터-코딩된 (inter-coded) 비디오 블록을 포함하는, SVC 방식의 향상 계층을 코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 비디오 블록들은 프레임들 내에 배열되며, 상기 SVC 방식의 향상 계층을 코딩하는 방법은 상기 프레임들의 각각에 대해 반복되는, SVC 방식의 향상 계층을 코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 SVC 방식의 향상 계층을 코딩하는 방법은 상기 향상 계층의 정제 계수 (refinement coefficient) 들에 관해 수행되며,
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 1 형식의 비디오 블록들과 연관된 정제 계수들을 코딩하는 단계를 포함하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하는 단계는, 상기 제 2 형식의 비디오 블록들과 연관된 정제 계수들을 코딩하는 단계를 포함하는, SVC 방식의 향상 계층을 코딩하는 방법.
  8. 제 7 항에 있어서,
    상기 제 1 형식의 비디오 블록에 대해, 반전된 부호 값을 갖는 이전에 코딩된 정제 계수들에 대한 동일 부호 값을 갖는 이전에 코딩된 정제 계수들의 제 1 비율을 결정하는 단계;
    상기 제 2 형식의 비디오 블록에 대해, 반전된 부호 값을 갖는 이전에 코딩된 정제 계수들에 대한 동일 부호 값을 갖는 이전에 코딩된 정제 계수들의 제 2 비율을 결정하는 단계;
    상기 제 1 비율에 기초하여 상기 제 1 VLC 테이블을 선택하는 단계; 및
    상기 제 2 비율에 기초하여 상기 제 2 VLC 테이블을 선택하는 단계를 더 포함하는, SVC 방식의 향상 계층을 코딩하는 방법.
  9. 스케일러블 비디오 코딩 (scalable video coding; SVC) 방식의 향상 계층을 코딩하는 디바이스로서,
    제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하고, 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하는 통계 모듈;
    상기 제 1 통계치에 기초하여 상기 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 가변 길이 코딩 (variable length coding; VLC) 테이블들로부터의 제 1 VLC 테이블을 선택하고, 상기 제 2 통계치에 기초하여 상기 제 2 형식의 비디오 블록을 코딩하는데 이용될, 상기 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하는 테이블 선택 모듈; 및
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하고, 상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하는 코딩 모듈을 포함하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  10. 제 9 항에 있어서,
    상기 코딩 모듈은,
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 인코딩하고, 상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 인코딩하는 인코드 모듈을 포함하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  11. 제 9 항에 있어서,
    상기 코딩 모듈은,
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 디코딩하고, 상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 디코딩하는 디코드 모듈을 포함하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  12. 제 9 항에 있어서,
    상기 코딩 모듈은,
    상기 제 1 형식의 비디오 블록들을 코딩하기 위해 상기 제 1 VLC 테이블을 이용하여 테이블 룩업을 수행하고;
    상기 제 2 형식의 비디오 블록들을 코딩하기 위해 상기 제 2 VLC 테이블을 이용하여 테이블 룩업을 수행하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  13. 제 9 항에 있어서,
    상기 제 1 형식의 비디오 블록은 인트라-코딩된 (intra-coded) 비디오 블록을 포함하고, 상기 제 2 형식의 비디오 블록은 인터-코딩된 (inter-coded) 비디오 블록을 포함하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  14. 제 9 항에 있어서,
    상기 비디오 블록들은 프레임들 내에 배열되며,
    상기 프레임들의 각각에 대해:
    상기 통계 모듈은 상기 제 1 및 제 2 통계치를 결정하고;
    상기 테이블 선택 모듈은 상기 제 1 및 제 2 VLC 테이블을 선택하며;
    상기 코딩 모듈은 상기 선택된 제 1 및 제 2 VLC 테이블에 기초하여 상기 제 1 및 제 2 형식의 비디오 블록들을 코딩하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  15. 제 9 항에 있어서,
    상기 SVC 방식의 향상 계층을 코딩하는 디바이스는 상기 향상 계층의 정제 계수 (refinement coefficient) 들을 코딩하며,
    상기 코딩 모듈은:
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들과 연관된 정제 계수들을 코딩하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들과 연관된 정제 계수들을 코딩하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  16. 제 9 항에 있어서,
    상기 통계 모듈은:
    상기 제 1 형식의 비디오 블록에 대해, 반전된 부호 값을 갖는 이전에 코딩된 정제 계수들에 대한 동일 부호 값을 갖는 이전에 코딩된 정제 계수들의 제 1 비율을 결정하고;
    상기 제 2 형식의 비디오 블록에 대해, 반전된 부호 값을 갖는 이전에 코딩된 정제 계수들에 대한 동일 부호 값을 갖는 이전에 코딩된 정제 계수들의 제 2 비율을 결정하며,
    상기 테이블 선택 모듈은:
    상기 제 1 비율에 기초하여 상기 제 1 VLC 테이블을 선택하고;
    상기 제 2 비율에 기초하여 상기 제 2 VLC 테이블을 선택하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  17. 제 9 항에 있어서,
    상기 SVC 방식의 향상 계층을 코딩하는 디바이스는,
    회로; 및
    무선 통신 디바이스
    중 적어도 하나를 포함하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  18. 비디오 코딩 디바이스에서 실행 시 상기 비디오 코딩 디바이스로 하여금 스케일러블 비디오 코딩 (scalable video coding; SVC) 방식의 향상 계층을 코딩하도록 하는 명령들을 포함하는 컴퓨터-판독가능 매체로서,
    상기 명령들은 상기 비디오 코딩 디바이스로 하여금:
    제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하고;
    제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하며;
    상기 제 1 통계치에 기초하여 상기 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 가변 길이 코딩 (variable length coding; VLC) 테이블들로부터의 제 1 VLC 테이블을 선택하고;
    상기 제 2 통계치에 기초하여 상기 제 2 형식의 비디오 블록을 코딩하는데 이용될, 상기 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하며;
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하도록 하는, 컴퓨터-판독가능 매체.
  19. 스케일러블 비디오 코딩 (scalable video coding; SVC) 방식의 향상 계층을 코딩하는 디바이스로서,
    제 1 형식의 비디오 블록과 연관된 제 1 통계치를 결정하고, 제 2 형식의 비디오 블록과 연관된 제 2 통계치를 결정하는 통계치 결정 수단;
    상기 제 1 통계치에 기초하여 상기 제 1 형식의 비디오 블록을 코딩하는데 이용될, 복수의 가변 길이 코딩 (variable length coding; VLC) 테이블들로부터의 제 1 VLC 테이블을 선택하고, 상기 제 2 통계치에 기초하여 상기 제 2 형식의 비디오 블록을 코딩하는데 이용될, 상기 복수의 VLC 테이블들로부터의 제 2 VLC 테이블을 선택하는 선택 수단; 및
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 코딩하고, 상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 코딩하는 코딩 수단을 포함하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  20. 제 19 항에 있어서,
    상기 코딩 수단은:
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 인코딩하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 인코딩하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  21. 제 19 항에 있어서,
    상기 코딩 수단은:
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들을 디코딩하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들을 디코딩하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  22. 제 19 항에 있어서,
    상기 코딩 수단은, 상기 제 1 VLC 테이블을 이용하여 상기 제 1 형식의 비디오 블록들에 대한 테이블 룩업을 수행하고, 상기 제 2 VLC 테이블을 이용하여 상기 제 2 형식의 비디오 블록들에 대한 테이블 룩업을 수행하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  23. 제 19 항에 있어서,
    상기 제 1 형식의 비디오 블록은 인트라-코딩된 (intra-coded) 비디오 블록을 포함하고, 상기 제 2 형식의 비디오 블록은 인터-코딩된 (inter-coded) 비디오 블록을 포함하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  24. 제 19 항에 있어서,
    상기 비디오 블록들은 프레임들 내에 배열되며,
    상기 프레임들의 각각에 대해:
    상기 통계치 결정 수단은 상기 제 1 및 제 2 통계치를 결정하고;
    상기 선택 수단은 상기 제 1 및 제 2 VLC 테이블을 선택하며;
    상기 코딩 수단은 상기 선택된 제 1 및 제 2 VLC 테이블에 기초하여 상기 제 1 및 제 2 형식의 비디오 블록들을 코딩하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
  25. 제 19 항에 있어서,
    상기 SVC 방식의 향상 계층을 코딩하는 디바이스는 상기 향상 계층의 정제 계수 (refinement coefficient) 들을 코딩하며,
    상기 코딩 수단은:
    상기 제 1 VLC 테이블에 기초하여 상기 제 1 형식의 비디오 블록들과 연관된 정제 계수들을 코딩하고;
    상기 제 2 VLC 테이블에 기초하여 상기 제 2 형식의 비디오 블록들과 연관된 정제 계수들을 코딩하며,
    상기 통계치 결정 수단은:
    상기 제 1 형식의 비디오 블록에 대해, 반전된 부호 값을 갖는 이전에 코딩된 정제 계수들에 대한 동일 부호 값을 갖는 이전에 코딩된 정제 계수들의 제 1 비율을 결정하고;
    상기 제 2 형식의 비디오 블록에 대해, 반전된 부호 값을 갖는 이전에 코딩된 정제 계수들에 대한 동일 부호 값을 갖는 이전에 코딩된 정제 계수들의 제 2 비율을 결정하며,
    상기 선택 수단은:
    상기 제 1 비율에 기초하여 상기 제 1 VLC 테이블을 선택하고;
    상기 제 2 비율에 기초하여 상기 제 2 VLC 테이블을 선택하는, SVC 방식의 향상 계층을 코딩하는 디바이스.
KR1020097013370A 2007-01-05 2008-01-04 정제 계수 코딩을 위한 블록 형식 통계치에 기초한 가변 길이 코딩 테이블 선택 KR101067308B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US88374107P 2007-01-05 2007-01-05
US60/883,741 2007-01-05
US11/868,017 US8565314B2 (en) 2006-10-12 2007-10-05 Variable length coding table selection based on block type statistics for refinement coefficient coding
US11/868,017 2007-10-05

Publications (2)

Publication Number Publication Date
KR20090094327A true KR20090094327A (ko) 2009-09-04
KR101067308B1 KR101067308B1 (ko) 2011-09-23

Family

ID=39166946

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097013370A KR101067308B1 (ko) 2007-01-05 2008-01-04 정제 계수 코딩을 위한 블록 형식 통계치에 기초한 가변 길이 코딩 테이블 선택

Country Status (10)

Country Link
US (1) US8565314B2 (ko)
EP (1) EP2103137A1 (ko)
JP (1) JP5096492B2 (ko)
KR (1) KR101067308B1 (ko)
CN (1) CN101578870B (ko)
BR (1) BRPI0806304A2 (ko)
CA (1) CA2673875C (ko)
RU (1) RU2419244C2 (ko)
TW (1) TWI397320B (ko)
WO (1) WO2008086197A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2455011C (en) 2004-01-09 2011-04-05 Suncor Energy Inc. Bituminous froth inline steam injection processing
US8393561B2 (en) 2005-11-09 2013-03-12 Suncor Energy Inc. Method and apparatus for creating a slurry
US8552891B2 (en) 2006-05-27 2013-10-08 Samsung Electronics Co., Ltd. Method and apparatus for parallel data interfacing using combined coding and recording medium therefor
US8325819B2 (en) * 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8599926B2 (en) * 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US9319700B2 (en) * 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
MX2009009489A (es) * 2007-03-13 2009-11-05 Nokia Corp Sistema y método para codificación y decodificación de video.
CN101796841B (zh) * 2007-06-27 2012-07-18 汤姆逊许可公司 用增强层残差预测对视频数据编码/解码的方法和设备
CA2640514A1 (en) 2008-09-18 2010-03-18 Kyle Alan Bruggencate Method and apparatus for processing an ore feed
CN108462874B (zh) * 2010-04-09 2022-06-07 三菱电机株式会社 运动图像编码装置以及运动图像解码装置
HUE051391T2 (hu) 2010-04-13 2021-03-01 Ge Video Compression Llc Szignifikancia térképek és transzformációs együttható blokkok kódolása
EP2567546A4 (en) * 2010-05-10 2014-01-15 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR TRANSMITTING AND RECEIVING LAYERED CODED VIDEO
US9025661B2 (en) 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US20120163471A1 (en) * 2010-12-23 2012-06-28 Qualcomm Incorporated Variable length coding of video block coefficients
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
US20120183064A1 (en) * 2011-01-14 2012-07-19 Sony Corporation Codeword assignment for intra chroma mode signaling for hevc
US20120195366A1 (en) * 2011-02-01 2012-08-02 Mediatek Singapore Pte. Ltd. Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes
CN103444181B (zh) 2011-04-12 2018-04-20 太阳专利托管公司 运动图像编码方法、运动图像编码装置、运动图像解码方法、运动图像解码装置及运动图像编码解码装置
US8373583B2 (en) * 2011-04-12 2013-02-12 Intel Corporation Compression producing output exhibiting compression ratio that is at least equal to desired compression ratio
EP3751854B1 (en) 2011-05-24 2023-05-10 Sun Patent Trust Image encoding method, image encoding apparatus, image decoding method, image decoding apparatus
ES2911670T3 (es) 2011-05-27 2022-05-20 Sun Patent Trust Aparato, procedimiento y programa para decodificar imágenes en movimiento
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
SG194746A1 (en) 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
JP5937589B2 (ja) 2011-05-31 2016-06-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 動画像復号化方法、および動画像復号化装置
US9516316B2 (en) * 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9826238B2 (en) * 2011-06-30 2017-11-21 Qualcomm Incorporated Signaling syntax elements for transform coefficients for sub-sets of a leaf-level coding unit
CA2836063C (en) 2011-06-30 2020-06-16 Panasonic Corporation Image encoding and decoding method and device for generating predictor sets in high-efficiency video coding
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
MX341415B (es) 2011-08-03 2016-08-19 Panasonic Ip Corp America Metodo de codificacion de video, aparato de codificacion de video, metodo de decodificacion de video, aparato de decodificacion de video y aparato de codificacion/decodificacion de video.
IN2014CN02602A (ko) 2011-10-19 2015-08-07 Panasonic Corp
KR102001415B1 (ko) 2012-06-01 2019-07-18 삼성전자주식회사 다계층 비디오 코딩을 위한 레이트 제어 방법, 이를 이용한 비디오 인코딩 장치 및 비디오 신호 처리 시스템
US9860558B2 (en) * 2012-09-28 2018-01-02 Intel Corporation Inter-layer intra mode prediction
US9992493B2 (en) * 2013-04-01 2018-06-05 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
US10003807B2 (en) 2015-06-22 2018-06-19 Cisco Technology, Inc. Block-based video coding using a mixture of square and rectangular blocks
US10009620B2 (en) 2015-06-22 2018-06-26 Cisco Technology, Inc. Combined coding of split information and other block-level parameters for video coding/decoding
US10171810B2 (en) 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
US11496747B2 (en) * 2017-03-22 2022-11-08 Qualcomm Incorporated Intra-prediction mode propagation
KR20220046683A (ko) * 2019-10-03 2022-04-14 후아웨이 테크놀러지 컴퍼니 리미티드 기하학적 파티션 모드를 위한 코딩 프로세스

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06225279A (ja) 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
TW224553B (en) 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
CA2156889C (en) 1994-09-30 1999-11-02 Edward L. Schwartz Method and apparatus for encoding and decoding data
JP2951861B2 (ja) 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
KR100209410B1 (ko) 1995-03-28 1999-07-15 전주범 영상 신호 부호화 장치
KR0178198B1 (ko) 1995-03-28 1999-05-01 배순훈 영상 신호 부호화 장치
US6571019B1 (en) 1995-10-26 2003-05-27 Hyundai Curitel, Inc Apparatus and method of encoding/decoding a coded block pattern
US5835145A (en) 1996-01-19 1998-11-10 Lsi Logic Corporation Conversion system using programmable tables for compressing transform coefficients
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
JP3189876B2 (ja) 1997-06-09 2001-07-16 日本電気株式会社 可変長符号復号化回路
JPH11242573A (ja) 1998-02-25 1999-09-07 Canon Inc 情報処理装置、情報処理方法、及び、記憶媒体
JP3132456B2 (ja) 1998-03-05 2001-02-05 日本電気株式会社 階層的画像符号化方式、及び階層的画像復号方式
US6275531B1 (en) 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
JP2000059234A (ja) 1998-08-10 2000-02-25 Mitsubishi Electric Corp 可変長符号処理装置
US6980597B1 (en) 1998-12-04 2005-12-27 General Instrument Corporation Fine granularity scalability using bit plane coding of transform coefficients
JP2001094982A (ja) 1999-09-20 2001-04-06 Nippon Telegr & Teleph Corp <Ntt> 階層的画像符号化方法及びその装置と、その方法の実現に用いられるプログラム記録媒体と、階層的画像復号方法及びその装置と、その方法の実現に用いられるプログラム記録媒体
US6700933B1 (en) 2000-02-15 2004-03-02 Microsoft Corporation System and method with advance predicted bit-plane coding for progressive fine-granularity scalable (PFGS) video coding
JP2001308715A (ja) 2000-04-20 2001-11-02 Mitsubishi Electric Corp 可変長符号化装置および可変長復号装置
KR100856398B1 (ko) 2000-05-17 2008-09-04 삼성전자주식회사 복수 매핑 테이블을 이용한 가변장 부호화 및 복호화방법과 그 장치
US6501397B1 (en) * 2000-05-25 2002-12-31 Koninklijke Philips Electronics N.V. Bit-plane dependent signal compression
JP2002058028A (ja) 2000-08-09 2002-02-22 Sony Corp 画像符号化装置および方法、画像復号装置および方法、ならびに画像処理装置
WO2002045420A1 (en) 2000-11-29 2002-06-06 Sony Corporation Stream processor
US20040258319A1 (en) * 2001-10-26 2004-12-23 Wilhelmus Hendrikus Alfonsus Bruls Spatial scalable compression scheme using adaptive content filtering
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
JP4510465B2 (ja) 2002-01-22 2010-07-21 ノキア コーポレイション イメージ/ビデオ符号器及び/又は復号器における変換係数の符号化
US6690307B2 (en) 2002-01-22 2004-02-10 Nokia Corporation Adaptive variable length coding of digital video
ES2328916T3 (es) 2002-04-02 2009-11-19 Nokia Corporation Coeficientes de transformacion de codificacion en codificadores y/o descodificadores de imagenes/video.
KR100491445B1 (ko) 2002-04-12 2005-05-25 한국과학기술원 Mpeg-4 fgs 비디오를 위한 사각영역 기반형의선택적 향상기법에 의한 부호화/복호화 방법 및 장치
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7369706B2 (en) 2003-01-06 2008-05-06 Matsushita Electric Industrial Co., Ltd. Image-data processing device, image-data processing method, image-data distributing device and image-data transmitting system
US20040179606A1 (en) 2003-02-21 2004-09-16 Jian Zhou Method for transcoding fine-granular-scalability enhancement layer of video to minimized spatial variations
US7830963B2 (en) 2003-07-18 2010-11-09 Microsoft Corporation Decoding jointly coded transform type and subblock pattern information
EP1692872A1 (en) 2003-12-03 2006-08-23 Koninklijke Philips Electronics N.V. System and method for improved scalability support in mpeg-2 systems
US20050201629A1 (en) 2004-03-09 2005-09-15 Nokia Corporation Method and system for scalable binarization of video data
US7664176B2 (en) 2004-07-09 2010-02-16 Nokia Corporation Method and system for entropy decoding for scalable video bit stream
KR100592049B1 (ko) 2004-07-16 2006-06-20 에스케이 텔레콤주식회사 멀티미디어 링백톤 서비스를 위한 단말기 및 단말기의제어 방법
TWI243615B (en) 2004-10-11 2005-11-11 Ind Tech Res Inst System for enhancing compression ratio of scalable video coding and method thereof
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
RU2007128067A (ru) 2004-12-22 2009-01-27 Конинклейке Филипс Электроникс Н.В. (Nl) Масштабируемое кодирование
KR100679035B1 (ko) 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
US20060153294A1 (en) 2005-01-12 2006-07-13 Nokia Corporation Inter-layer coefficient coding for scalable video coding
JP2008536393A (ja) 2005-04-08 2008-09-04 エージェンシー フォー サイエンス,テクノロジー アンド リサーチ 少なくとも一のデジタル画像をエンコードする方法、エンコーダ、及びコンピュータプログラム製品
US20060233255A1 (en) 2005-04-13 2006-10-19 Nokia Corporation Fine granularity scalability (FGS) coding efficiency enhancements
JP4495034B2 (ja) 2005-06-01 2010-06-30 パナソニック株式会社 可変長符号化方式および可変長符号化装置
US7348903B2 (en) 2005-09-26 2008-03-25 Samsung Electronics Co., Ltd. Method and apparatus for enhancing performance of entropy coding, and video coding method and apparatus using the entropy coding performance enhancing method
WO2007035070A1 (en) 2005-09-26 2007-03-29 Samsung Electronics Co., Ltd. Method and apparatus for enhancing performance of entropy coding, and video coding method and apparatus using the entropy coding performance enhancing method
CN100466739C (zh) 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
KR100736096B1 (ko) 2005-12-12 2007-07-06 삼성전자주식회사 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8942292B2 (en) 2006-10-13 2015-01-27 Qualcomm Incorporated Efficient significant coefficients coding in scalable video codecs

Also Published As

Publication number Publication date
CA2673875A1 (en) 2008-07-17
BRPI0806304A2 (pt) 2011-09-06
KR101067308B1 (ko) 2011-09-23
WO2008086197A1 (en) 2008-07-17
CN101578870A (zh) 2009-11-11
RU2009129976A (ru) 2011-02-10
TWI397320B (zh) 2013-05-21
US20080089424A1 (en) 2008-04-17
US8565314B2 (en) 2013-10-22
JP5096492B2 (ja) 2012-12-12
JP2010516116A (ja) 2010-05-13
TW200840370A (en) 2008-10-01
CN101578870B (zh) 2013-05-08
RU2419244C2 (ru) 2011-05-20
EP2103137A1 (en) 2009-09-23
CA2673875C (en) 2013-07-09

Similar Documents

Publication Publication Date Title
KR101067308B1 (ko) 정제 계수 코딩을 위한 블록 형식 통계치에 기초한 가변 길이 코딩 테이블 선택
KR101247452B1 (ko) 정제 계수 코딩을 위한 비디오 블록 형식에 기초한 가변 길이 코딩 테이블 선택
KR101056001B1 (ko) 코딩된 블록 패턴들에 대한 가변 길이 코딩 기술
CA2677973C (en) Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
KR101057600B1 (ko) 대응 변환 계수 값들의 이력에 기초한 정제 계수 코딩
RU2409003C1 (ru) Выбор таблицы кодирования с переменной длиной на основании типа видеоблока для совершенствования кодирования коэффициентов

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee