KR100991410B1 - 비디오 압축에서 유효 계수 코딩을 위한 방법 및 시스템 - Google Patents

비디오 압축에서 유효 계수 코딩을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100991410B1
KR100991410B1 KR1020087025685A KR20087025685A KR100991410B1 KR 100991410 B1 KR100991410 B1 KR 100991410B1 KR 1020087025685 A KR1020087025685 A KR 1020087025685A KR 20087025685 A KR20087025685 A KR 20087025685A KR 100991410 B1 KR100991410 B1 KR 100991410B1
Authority
KR
South Korea
Prior art keywords
codebook
coding
video sequence
video
coefficients
Prior art date
Application number
KR1020087025685A
Other languages
English (en)
Other versions
KR20090018030A (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 KR20090018030A publication Critical patent/KR20090018030A/ko
Application granted granted Critical
Publication of KR100991410B1 publication Critical patent/KR100991410B1/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/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/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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

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

인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하는 방법이 개시된다. 인코딩된 비디오 비트스트림이 수신된다. 코드북 테이블 정보는 비트 스트림으로부터 리트리브된다. 유효 심볼들은 리트리브된 코드북 테이블 정보를 이용하여 디코딩된다. 유효 계수들은 유효 심볼들을 이용하여 코딩된다. 다수의 변환 계수들이 역양자화된다. 역변환이 잔여 신호에 대해 적용된다. 비디오 시퀀스가 구성된다. 다수의 테이블을 이용한 비디오 시퀀스에서 유효 계수들을 코딩하는 방법이 또한 개시된다.

Description

비디오 압축에서 유효 계수 코딩을 위한 방법 및 시스템{METHODS AND SYSTEMS FOR SIGNIFICANCE COEFFICIENT CODING IN VIDEO COMPRESSION}
본 출원은 2006년 3월 27일 출원된, "Significance Coefficient Coding for Fine Granularity Scalability"라는 명칭의 미국 공동 출원 No.60/786,798을 우선권으로 청구하는데, 상기 출원은 본 명세서에 참조된다.
본 발명의 시스템 및 방법은 비디오 프로세싱에 관한 것이다. 특히, 본 발명의 시스템 및 방법은 비디오 압축 기술들과 관련한 정보의 인코딩 및 디코딩에 관한 것이다.
비디오 압축은 디지털 비디오 데이터의 압축을 의미한다. 비디오 압축은 비디오 데이터를 비디오 파일 포맷들로 효율적으로 코딩하고 비디오 포맷들을 스트리밍 및 브로드캐스팅하기 위해 사용된다. 압축은 몇몇 비트들을 갖는 포맷으로의 데이터의 변환이며, 이들은 더욱 효율적으로 저장 또는 전송될 수도 있다. 압축의 역은 압축 해제이며, 이는 원래 데이터의 복사(또는 근사치)를 생성한다.
오늘날, 소정의 비디오 압축 방법들이, 시간적 또는 공간적 예측 기술들 중 하나를 사용하여 생성되는 예측 잔여에서 나머지 공간 리던던시를 감소시키기 위해 이산 코사인 변환(DCT)과 같은 소정 타입의 이산 변환을 적용시킨다. 소정의 비디오 압축 기술은 또한 양자화를 포함한다. 양자화는 스칼라 양자화 또는 벡터 양자화 중 하나 일 수 있다. 양자화 후, 양자화된 계수들은 엔트로피 코딩되고 압축된 비디오 비트 스트림으로 배치될 수도 있다. 이어 압축된 비트 스트림은 디코더로 전송되며, 디코더는 비트 스트림을 압축해제하고 원래(original) 비디오 데이터의 근사치(close approximation)를 복원한다.
비디오 압축 기술들은 다양한 형태의 매체의 유익한 수요자일 수도 있다. 예를 들어, 브로드캐스트 엔지니어링에서, 디지털 텔레비젼은 비디오 압축에 의해 실용적으로 될 수도 있다. 텔러비젼(TV) 국들은 동일한 물리적 채널을 통해 고화질 텔레비젼(HDTV) 및 다수의 가상 채널들을 브로드캐스트할 수 있다. 디지털 비디오 브로드캐스트는 MPEG-2 표준 비디오 압축 포맷과 같은 동화상 전문가 그룹(MPEG)을 이용할 수도 있다. 그러나, H.264/MPEG-4 및 VC-I은 비디오 압축에서 새로운 표준들로서 출현하기 시작했다.
불행하게도, 비디오 압축에서 정보를 코딩하는 공지된 시스템들 및 방법들은 다양한 결점들로 인해 어려움을 겪을 수도 있다. 결과적으로, 비디오 압축에서 정보를 코딩하는 개선된 시스템 및 방법이 필요하다.
비디오 시퀀스에서 유효 계수들을 코딩하는 방법이 개시된다. 비디오 시퀀스가 수신된다. 현재 프레임에서 원래 비디오 신호의 예측이 비디오 시퀀스로부터 구성된다. 잔여 신호가 현재 프레임에서 원래 비디오 신호로부터 원래 비디오 신호의 예측을 감산함으로써 형성된다. 변환은 잔여 신호에 대해 적용된다. 다수의 변환 계수들이 양자화된다. 코드북은 유효 실행(run) 및 엔드-오브-블록 중 적어도 하나를 코딩하기 위해 다수의 코드북으로부터 선택된다. 유효 실행 및 엔드-오브-블록 중 적어도 하나는 선택된 코드북을 이용하여 코딩된다.
전자 장치가 또한 개시된다. 전자 장치는 프로세서 및 프로세서와 전자적으로 통신하는 메모리를 포함한다. 명령들은 메모리에 저장된다. 비디오 시퀀스가 수신된다. 현재 프레임에서 원래 비디오 신호의 예측이 비디오 시퀀스로부터 구성된다. 잔여 신호가 현재 프레임에서 원래 비디오 신호로부터 원래 비디오 신호의 예측을 감산함으로써 형성된다. 변환이 잔여 신호에 대해 적용된다. 다수의 변환 계수들이 양자화된다. 코드북은 유효 실행 및 엔드-오브-블록 중 적어도 하나를 코딩하기 위해 다수의 코드북으로부터 선택된다. 유효 실행 및 엔드-오브-블록 중 적어도 하나는 선택된 코드북을 이용하여 코딩된다.
인코딩된 비디오 시퀀스에서 유효 계수들을 코딩하는 방법이 개시된다. 인코딩된 비디오 비트스트림이 수신된다. 코드북 테이블 정보는 비트스트림으로부터 리트리브(retrieve)된다. 유효 심볼들은 리트리브된 코드북 테이블 정보를 이용하여 디코딩된다. 유효 계수들은 유효 심볼들을 이용하여 디코딩된다. 다수의 변환 계수들이 역양자화된다. 역변환이 잔여 신호에 대해 적용된다. 비디오 시퀀스가 구성된다.
엔드-오브-블록은 선택된 코드북을 사용하여 코딩될 수도 있다. 코드북 테이블 정보는 비디오 슬라이스 내에서 코딩될 수도 있다. 코드북 테이블 정보는 코드북 선택 테이블을 포함할 수도 있다. 코드북 선택 테이블은 코딩 번호들 및 LEBL(기본 계층에서 최종 인코딩된 계수) 위치의 각각의 쌍에 대응하는 각각의 항목(entry)을 포함할 수도 있다. 일 구성에서, 코드북 선택 테이블은 코딩 주기 수에만 대응하는 각각의 항목을 포함한다. 코드북 선택 테이블은 코드북 선택기들의 1차원 배열로서 코딩될 수도 있다. 코드북 선택기는 가변 길이 코드를 이용하여 코딩된다.
코드북 테이블 정보는 테이블 형태 및 테이블 차원(dimension)을 포함할 수도 있다. 일 특징에서, 테이블 형태는 사각형이다. 추가의 특징에서, 테이블 형태는 삼각형이다.
코드북 선택 테이블은 통계 추정으로부터 동적으로 결정될 수도 있다. 일 구성에서, 코드북 선택 테이블은 이웃한 상관으로부터 동적으로 결정될 수도 있다. 코드북은 다른 코드북의 변경된 버젼일 수도 있다.
코드북 선택 테이블은 버림(truncate)된 코드북 선택 테이블을 제공하기 위해 버림될 수도 있다. 버림된 코드북 선택 테이블은 비디오 슬라이스로 코딩될 수도 있다.
전자 장치가 또한 개시된다. 전자 장치는 프로세서 및 프로세서와 전자적으로 통신하는 메모리를 포함한다. 명령들은 메모리에 저장된다. 인코딩된 비디오 비트스트림이 수신된다. 코드북 테이블 정보가 비트스트림으로부터 리트리브된다. 유효 심볼들은 리트리브된 코드북 테이블 정보를 이용하여 디코딩된다. 유효 계수들은 유효 심볼들을 이용하여 디코딩된다. 다수의 변환 계수들이 역양자화된다. 역변환이 잔여 신호에 적용된다. 비디오 시퀀스가 구성된다.
일 구성에서, 코드북 테이블 정보는 슬라이스로부터 디코딩된다. 코드북 테이블 정보는 코드북 선택 테이블을 포함할 수도 있다. 코드북 테이블 정보는 코드북 선택 테이블 맵핑 주기 수 및 LEBL(기본 계층에서 최종 인코딩된 계수) 위치를 포함할 수도 있다. 코드북 테이블 정보는 코드북 선택 테이블 맵핑 주기 수를 포함할 수도 있다.
코드북 테이블 정보는 테이블 형태 및 테이블 차원을 포함할 수도 있다. 일 구성에서, 테이블 형태는 사각형일 수도 있다. 추가의 구성에서, 테이블 형태는 삼각형이다.
코드북 선택 테이블은 통계 추정으로부터 동적으로 결정될 수도 있다. 코드북 선택 테이블은 이웃한 상관으로부터 동적으로 결정될 수도 있다.
비디오 시퀀스에서 유효 계수들을 코딩하기 위해 구성된 전자 장치가 또한 개시된다. 전자 장치는 비디오 시퀀스의 프로세싱 수단 및 수신 수산을 포함한다. 비디오 시퀀스로부터 현재 프레임에서 원래 비디오 시퀀스의 예측을 구성하는 수단 및 현재 프레임에서 원래 비디오 신호로부터 원래 비디오 신호의 예측을 감산함으로써 잔여 프레임을 형성하는 수단이 개시된다. 잔여 신호로의 변환을 적용하는 수단 및 다수의 변환 계수를 양자화하는 수단이 개시된다. 유효 실행 및 엔드-오브-블록 중 적어도 하나를 코딩하기 위한 다수의 코드북으로부터 코드북을 선택하는 수단 및 선택된 코드북을 이용하여 유효 실행 및 엔드-오브-블록 중 적어도 하나를 코딩하는 수단이 개시된다.
도1은 스케일링 가능한 비디오 코딩 비트스트림의 일 구성을 나타낸 블록도 이다.
도2는 인코더로부터 네트워크를 통해 디코더로 전송되는 기본 계층 및 다수의 강화 계층의 일 구성을 나타낸 블록도이다.
도3은 인코딩 정보에 대한 방법의 일 구성을 나타낸 흐름도이다.
도4는 인코딩된 비디오 시퀀스를 디코딩하는 방법의 일 구성을 나타낸 흐름도이다.
도5는 다수의 매크로블록들로 분할된 다수의 화상의 일 구성을 나타낸 도면이다.
도6은 유효한 정밀 계수를 분류하는 일 구성을 도시한 도면이다.
도7은 코드 워드들 및 코드 길이들의 테이블의 일 구성을 도시한 도면이다.
도8은 코드북0(1진 코드)에 대한 인코딩 및 디코딩을 위한 의사 코드를 나타낸다.
도9는 코드북1에 대한 인코딩 및 디코딩을 위한 의사 코드를 나타낸다.
도10은 코드북2에 대한 인코딩 및 디코딩을 위한 의사 코드를 나타낸다.
도11은 코드북 선택 테이블 항목들을 코딩하기 위해 사용된 가변 길이 코딩(VLC) 테이블의 일 구성을 나타낸 도면이다.
도12는 사각형 코드북 선택 테이블의 일 구성이다.
도13은 삼각형 코드북 선택 테이블의 일 구성이다.
도14는 버림된 코드북 선택 테이블을 코딩하기 위한 의사 코드를 나타낸 도면이다.
도15는 디지털 이미지 및/또는 디지털 비디오를 프로세싱하기 위해 통상적으로 사용된 주요한 하드웨어 컴포넌트들을 나타낸 블록도이다.
시스템 및 방법들의 다양한 구성들이 도면을 참조하여 개시되는데, 여기서 동일한 참조 번호는 동일하거나 기능적으로 유사한 구성 요소를 나타낸다. 도면에 개시된 바와 같이, 본 발명의 시스템 및 방법의 특징은 다양한 상이한 구성들로 배열 및 설계될 수 있다. 따라서, 이하의 실시예는 본 발명의 시스템들 및 방법들의 사상을 한정하려는 것은 아니며, 단지 본 발명의 시스템들 및 방법들을 설명하기 위한 것이다.
개시된 구성들의 많은 특징들이 컴퓨터 소프트웨어, 전자 하드웨어, 또는 이들의 결합으로 구현될 수도 있다. 하드웨어 및 소프트웨어의 호환성을 명확하게 설명하기 위해, 다양한 구성 요소들이 이들의 기능과 관련하여 설명될 것이다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지는 전체 시스템에 부가된 특정 애플리케이션 및 설계 제한에 의존한다. 당업자는 각각의 특정 애플리케이션에 대해 다양한 방식으로 개시된 기능을 구현할 수도 있지만, 이러한 구현 결정은 본 발명의 시스템 및 방법의 사상으로부터 벗어나는 것으로 해석되지는 않는다.
개시된 기능은 컴퓨터 소프트웨어로서 구현될 경우, 이러한 소프트웨어는 메모리 장치 내에 위치되거나, 및/또는 시스템 버스 또는 네트워크를 통해 전자 신호들로서 전송된 소정 타입의 컴퓨터 명령 또는 컴퓨터/머신 실행 가능 코드를 포함할 수도 있다. 개시된 컴포넌트와 관련된 기능을 구현하는 소프트웨어는 단일 명령, 또는 많은 명령들을 포함할 수도 있으며, 다른 프로그램들 중에서 몇몇 상이한 코드 세그먼트들을 통해, 그리고 몇몇 메모리 장치들에 걸쳐 분산될 수도 있다.
개시된 바와 같이, "구성", "구성들", "하나 이상의 구성", "소정의 구성", "소정의 구성들", "하나의 구성", "다른 구성" 등은 특별히 다르게 한정하지 않으면, 개시된 시스템들 및 방법들의 하나 이상의 구성들을 의미(그러나 반드시 이러한 것은 아님)한다.
"결정"이라는 용어(이들의 문법상 변형)는 광의로 사용된다. "결정"이라는 용어는 다양한 동작을 함축하고 있는바, "결정"은 산정, 계산, 프로세싱, 유도, 조사, 룩업(예를 들어, 테이블, 데이터베이스 또는 다른 데이터 구조에서 룩업), 확인 등을 포함할 수 있다. 또한, "결정"은 수신(예를 들어, 정보를 수신), 액세싱(예를 들어, 메모리에서 데이터를 액세스) 등을 포함한다. 또한, "결정"은 분석, 선택, 선정, 구축 등을 포함할 수 있다.
"기초한다"라는 용어는 특별히 한정하지 않는 한, "~에만 기초한다"라는 의미가 아니다. 다시 말해, "기초한다"라는 용어는 "~에만 기초한다" 및 "적어도 ~에 기초한다"를 의미한다.
현재의 비디오 압축 시스템들에서 실행된 소정의 단계들이 공지되어 있다. 예측, 변환 및 양자화와 같은 소정의 비디오 압축 단계들 이후, 다음 단계는 비트스트림을 형성하기 위해 구문 엘리먼트 및 양자화된 계수에 대한 엔트로피 코딩을 실행하는 것이다. 비디오 디코더에서, 역 프로세스가 실행된다. 구문 엘리먼트들 및 양자화된 계수들이 비트스트림으로부터 디코딩된다. 이어 역양자화 및 역변환 단계들이 실행된다. 끝으로, 재구성된 잔여들이 비디오 신호를 재구성하기 위한 예측에 부가된다.
현재, ISO/IEC MPEG 및 ITU-T VCEG로부터의 비디오 코딩 전문가들로 구성된 조인트 비디오 팀(JVT)이 H.264/진보된 비디오 코딩(AVC)에 대한 스케일러블 비디오 코딩(SVC) 확장에 대해 활약하고 있다. 조인트 스케일러블 비디오 모델(JSVM)로 불리는 통상의 프트웨어가 참가자들에 의해 사용되고 있다. JSVM은 다양한 범위성(scalability) 특징들을 지원할 수도 있다. SVC 비트 스트림은 정밀-입도 범위성, 공간 범위성, 시간적 범위성, 또는 이들의 소정 결합을 가질 수도 있다.
이하에서 FGS로 불리는, 정밀 입도 범위성은 비디오 코딩에 대해 중요하며 매우 요구되는 특성이다. 이러한 특성은 압축된 비디오 비트스트림이 거의 임의로 버림되게 하면서, 동시에, 디코딩된 비디오 품질의 적절한 저하를 최종 사용자에게 제공한다. 정밀 입도 범위성에서, 강화 계층 비트스트림은 임의로 버림될 수 있다. 비디오 디코더가 더 많은 비트들을 이러한 계층에서 수신 및 디코딩함에 따라, 이는 더 우수한 비디오 품질을 생산할 것이다. 더욱이, JSVM 에서 FGS는, 프레임의 소정의 공간 영역에서 내에서만 집중되는 것과는 상반되게, 비디오 품질에서 개선이 전체 비디오 프레임에 걸쳐 균일하게 분포되는 방식으로 설계되는데, 이는 전자가 최종 뷰어에게 시각적으로 수용할 수 없기 때문일 것이다.
FGS는 비트플레인 코딩을 이용하여 비디오 품질의 적절한 개선을 달성한다. 만일 기본 또는 이전 계층의 비디오 프레임이 양자화 파라미터(QP)를 사용하여 양자화되면, 현재 강화 계층 비디오는, 양자화 스텝 크기를 절반으로 효율적으로 버리는, 통상적으로 QP-6 주위의 양자화 파라미터를 사용하여 양자화될 수도 있다. 낮은 양자화 단계 크기의 결과로서, 더 많은 변환 계수들이 강화 계층에서 넌제로(nonzero)가 될 것이다. 강화 계층에서 넌제로 계수들은 3가지 타입으로 분류될 수 있는데, 3가지 타입은 비 유효 계수들, 유효 계수들, 및 정밀 계수들이다. 비 유효 계수들은 기본 또는 이전의 계층에서 제로이며, 현재의 강화 계층에서 제로를 유지하는 계수들을 의미한다. 유효 계수들은 기본 또는 이전의 계층에서 제로이지만, 현재의 강화 계층에서 넌제로 계수들이 되는 계수들을 의미한다. 정밀 계수들은 기본 또는 이전의 계층에서 이미 넌제로(즉, 유효)인 계수를 의미한다. 이들의 값들은 현재의 강화 계층에서 정밀화될 것이다.
정밀 계수들이 다른 계수들과 상이한 통계치들을 갖기 때문에, 이들은 FGS 계층에서 개별적으로 코딩된다. H.264/AVC와 유사하게, SVC에 두 개의 엔트로피 코딩 모드들이 존재할 수도 있는데, 상기 모드들은 문맥 기반 적응 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding (CABAC)) 모드 및 문맥 기반 적응 가변 길이 코딩(Context-based Adaptive Variable Length Coding (CAVLC)) 모드이다. 더 높은 코딩 성능을 제공할 수도 있는, CAVLC 모드에서 개선된 유효 계수 코딩 시스템에 대한 세부 사항들이 제공된다.
도1은 정밀 입도 범위성(FGS)으로 공통적으로 불리는 스케일러블 비디오 코딩 비트스트림 구조의 일 구성(100)을 나타내는 블록도이다. FGS에서, 비디오 시퀀스는 적어도 두 개의 계층(기본 계층(106) 및 강화 계층(104))들을 가진 단일 비 디오 스트림으로 압축된다. 설명된 바와 같이, FGS는 N-1 강화 계층들(102)을 더 포함한다.
일 구성에서, 기본 계층(106)은 비디오 시퀀스의 스케일링가능하지 않은 코딩이며, 통상적으로 낮은 품질의 비디오 시퀀스를 갖는다. 강화 계층(104) 및 N-1 강화 계층들(102)은 기본 계층(106)의 품질을 보다 높은 가변 레벨들의 품질을 갖는다. 기본 계층(106) 이후에 코딩된 각각의 추가 강화 계층을 디코딩하는 것은 비디오 시퀀스의 증가된 품질을 초래한다. 게다가, FGS 비트스트림은 인코딩 동안 또는 그 후, 강화 계층(104) 및 N-1 강화 계층들(102)에 속하는 비트들이 실시간으로 버림(비트율 및 결국 디코딩된 화상 품질을 감소시킴)될 수도 있는 현저한 장점을 갖는다. 이는 전송된 비트율에 대해 유연한 제어를 제공하며 강화 계층(104) 및 N-1 강화 계층(102)이 이용가능한 전송 비트율에 부합하도록 조절되게 한다.
인코더(208)로부터 도2는 네트워크(210) 거쳐 디코더(212)로 제공되는 기본 계층(202) 및 N 강화 계층들(204)을 나타낸 네트워크 블록도(200)이다. 디코더(212)는 기본 계층(202) 및 하나 이상의 강화 계층(204) 중 일부 또는 모두를 디코딩 및 사용할 수도 있다. 디코더(212)는 원래 비디오 시퀀스(206)의 최적 근사치를 구성한다. 일 구성에서, 최적 근사치(214)는 컴퓨터 모니터, 텔레비젼, PDA, 프로젝터 등과 같은 디스플레이(216) 상에 보여진다. 비디오 시퀀스(206)는 기본 계층(202) 및 하나 이상의 강화 계층(204)으로서 인코딩된다. 낮은 품질의 기본 계층(202)은 최소 품질 기준을 나타내며, 각각의 강화 계층(204)은 기본 계층(202) 화상 품질에 대한 개선이다.
일 구성에서, 비디오 시퀀스(206)는 도1에 설명된 바와 같이 FGS 비디오 코딩 포맷을 이용하여 인코딩된다. FGS 코딩 포맷은 특히 비디오 스트리밍 및 브로드캐스팅 애플리케이션들에 유용한데, 이용가능한 전송 대역폭은 사전에 공지되지 않을 수도 있다. 인코딩 동안 또는 그 후, 강화 계층들(204)은 이용가능한 전송 비트율에 부합하기 위해 임의로 버림될 수도 있다. 이용가능한 비트율이 변함에 따라, 강화 계층들(204)은 상응하게 실시간으로 버림되어 현재 대역폭과 관련한 최적 품질 디코딩된 비디오 시퀀스를 제공할 수 있다. 예를 들어, 네트워크(200)는 강화 계층들(204)을 버림하고, 이어 상이한 비트율들을 갖는 비트 스트림들을 상이한 목적지로 전송할 수도 있다.
도3은 인코딩 정보를 위한 방법(300)을 설명하는 흐름도이다. 일 구성에서, 인코딩될 정보는 비디오 시퀀스를 포함한다. 방법(300)은 비디오 인코더 내에서 실행될 수도 있으며, 방법(300)의 역은 비디오 디코더에 의해 실행될 수도 있다. 인코더는 신호 또는 데이터를 코드로 변경하기 위해 사용되는 장치이다. 이어 디코더는 코드로부터 원 신호 또는 원 신호의 근사치를 생성할 수도 있다. 인코더 및 디코더는 통합적으로 비디오 코덱으로 불릴 수도 있는데, 코덱은 소스 이미지 또는 비디오 시퀀스를 압축된 형태로 인코딩하고 소스 시퀀스의 사본 또는 근사치를 생성하기 위해 이를 디코딩한다.
방법(300)은 단계(302)에서 시작하며, 인코더는 비디오 시퀀스를 수신(304)한다. 일 구성에서, 비디오 시퀀스는 압축되지 않은 비디오 신호이다. 인코더는 이웃한 비디오 프레임들 사이의 유사성들을 활용하고, 현재/원래 비디오 신호의 예측을 구성(306)함으로써 비디오 시퀀스를 압축하기 시작한다. 예측은 하나 이상의 이전의 또는 장래의 프레임들로부터 형성되며, 프레임들 사이의 차이에 대해 보상함으로써 향상된다. 이어 잔여 신호는 실제 현재/원 프레임으로부터 예측 프레임을 감산함으로써 형성(308)된다. 디코더는 공간 리던던시를 감소시키기 위해 예측 잔여의 이웃한 샘플들 사이의 유사성을 이용한다.
방법(300)은 잔여하는 공간 리던던시를 감소시키기 위해 잔여 신호에 대한 변환을 적용(310)시킴으로써 계속된다. 변환은 예측 잔여 신호들을 다른 도메인으로 전환시키는데, 다른 도메인에서 예측 잔여 신호들은 변환 계수들에 의해 표현된다. 계수들은 유효하지 않은 값들을 제거하기 위해 양자화(312)되며, 잔여 샘플들의 더욱 밀집된 표현을 제공하는 소수의 유효 계수들을 남겨둔다. 일 구성에서, 방법(300)을 이용하여 디코딩되는 예측 잔여는 강화 계층에 있을 수도 있다. 만일 비디오 프레임의 이전의 계층 또는 비디오 프레임의 기본 계층은 양자화 파라미터(QP)를 이용하여 양자화(312)되며, 이어 현재 강화 계층은 통상적으로 QP-6 주위의 양자화 파라미터를 이용하여 양자화(312)된다. 이는 양자화 단계 크기를 절반으로 감소시킨다. 감소된 양자화 단계 크기의 결과로서, 변환 계수들의 증가된 양은 현재 프레임에서 넌제로가 될 것이다.
일 구성에서, 강화 계층에서 넌제로 양자화된 계수들은 비 유효, 유효 및 정밀 계수들로 분류될 수도 있다.
개시된 바와 같이, VLC(가변 길이 코딩) 코드북은 유효 실행 및 EOB(엔드-오브-블록) 중 적어도 하나를 코딩하기 위해 선택된다. 따라서, 유효 실행 및 EOB가 코딩될 수 있기 전에, 코드북이 선택(314)된다. 일 구성에서, 코드북은 후술되듯이, 코드북 선택 테이블을 이용하여 선택(314)된다. 일 구성에서, 코드북 테이블 정보는 비디오 슬라이스의 일부로서 코딩(316)될 수도 있다. 다른 구성에서, 코드북 테이블 정보는 내부 상태들로서 인코더 및 디코더에 저장될 수도 있다. 코드북 테이블 정보는 코드북 선택 테이블 및 테이블의 차원 및 형태를 포함할 수도 있다. 이어 유효 실행 및 EOB는 선택된 코드북을 이용하여 코딩(318)된다.
도4는 인코딩된 비디오 시퀀스를 디코딩하기 위해 방법(400)의 일 구성을 설명하는 흐름도이다. 디코딩 방법(400)은 도3의 인코딩 방법(300)의 역일 수도 있다. 디코딩 방법(400)은 인코딩된 비디오 시퀀스를 수신(404)하는 디코더에 의해 시작(402)한다. 인코딩된 비디오 시퀀스는 비트스트림으로서 불릴 수도 있다. 디코더는 코드북 테이블 정보를 디코딩(406)한다. 일 구성에서, 코드북 테이블 정보는 슬라이스의 일부인 코드북 선택 테이블을 포함할 수도 있다. 디코더는 선택된 코드북을 이용하여 유효 심볼들을 디코딩(407)한다.
방법(400)은 계속 진행되며, 디코더는 최근에 디코딩된 유효 심볼들을 이용하여 유효 계수들을 디코딩(408)한다. 이어 디코더는 디코딩된 유효 계수들을 양자화(410)하기 위해 진행한다. 방법(400)은 양자화된 계수들에 대한 역변환을 적용(412)함으로써 진행한다. 일 구성에서, 역변환은 이산 코사인 역변환을 포함할 수도 있다. 디코더가 계수들에 대한 역변환을 적용(412)한 후, 디코더는 도3의 디코딩 방법(300) 이전에 존재한 바와 같이 원래 비디오 시퀀스의 근사치를 구성(414)한다.
도5는 다수의 매크로블록으로 분할된 비디오 프레임(500)의 일 구성을 도시한다. 매크로블록들은 디코딩 프로세스에서 기본 데이터 유닛들이다. 설명된 바와 같이, 비디오 프레임(500)은 다수의 고정된 크기의 매크로블록들로 분할될 수도 있으며, 각 매크로블록은 비디오 프레임(500)의 샘플을 포함한다. 일 구성에서, 각각의 매크로블록은 16×16 픽셀들의 샘플을 포함한다. 추가의 특징에서, 각각의 매크로불록은 명도(luma) 성분가 채도(chroma) 성분을 포함한다. 명도 성분은 특정 샘플의 밝기와 관련되며, 채도 성분은 샘플의 컬러 특징과 관련된다. 일 구성에서, 비디오 프레임(500)은 다수의 슬라이스(슬라이스A(502), 슬라이스B(504) 및 슬라이스C(506))로 추가로 분할된다. 슬라이스는 소정의 코딩 순서로 연속적으로 프로세싱되는 매크로블록들의 시퀀스이다. 예를 들어, 슬라이스A(502) 및 슬라이스A(502) 내에 포함된 매크로블록들은 인코딩되어 슬라이스B(504) 및 슬라이스C(506) 에 앞서 디코더로 전송된다. 추가의 특징으로서, 다양한 슬라이스들(502, 504 및 506)을 인코딩하고 이들을 디코더로 전송하는 순서는 임의적일 수도 있다. 예를 들어, 다른 슬라이스들에 앞서 디코더로 전송된 슬라이스B(504)가 디코딩될 수도 있다. 마찬가지로, 슬라이스C(506)가 인코딩될 수도 있으며 다른 두 개의 슬라이스들에 앞서 디코더로 전송될 수도 있다. N 번째 강화 계층의 각각의 매크로블록은 N-1개의 강화 계층들 각각 및 기본 계층에서 매크로블록에 대응한다.
도6은 계수들을 분류하는 방식의 예를 설명한다. 기본 계층 계수 블록(602) 및 강화 계층 계수 블록(604)이 제공된다. 기본 계층(602) 및 강화 계층(604)에서 빈 공간들은 제로의 계수들을 나타낸다. 이러한 계수들은 비 유효 계수들로서 불린다. 잔여 공간들(606, 608, 608a 및 608b)은 각각 넌제로 값일 수도 있는 계수를 나타낸다. 일 구성에서, 기본 계층 계수 블록(602)은 FGS 비디오 코딩 포맷을 이용하는 이전의 강화 계층에 존재한다. 앞서 설명했듯이, 도3의 인코딩 방법(300) 동안, 변환 계수들은 양자화된다. 양자화 후, 제로와 동일한 기본 계층 계수 블록(602)의 대응하는 계수들을 갖는 강화 계층 블록(604)의 넌제로 계수들은 유효 계수들(606)로 불린다. 기본 계층에서 자신의 대응하는 계수들이 넌제로인 계수들은 정밀 계수들(608)로 불린다. 유효 계수들(606) 및 정밀 계수들(608)이 상이한 통계치들을 갖기 때문에, 이들은 FGS 코딩 포맷을 따르는 강화 계층(604)에서 별도로 코딩된다.
일 구성에서, 유효 계수들(606c, 606d)은 기본 또는 이전의 계층에서 자신의 대응하는 계수들(606a, 606b)(계수는 동일한 서브대역을 나타냄)이 제로인 계수들이다. 정밀 계수들(608)은 기본 또는 이전의 계층에서 자신의 대응하는 계수들(608a 및 608b)이 넌제로인 계수들이다.
SVC FGS 계층에서, 유효 계수들은 실행 값들로 코딩된다. 인코더는 유효 계수를 발견할 때까지, 지그재그 스캐닝 순서로 강화 계층 계수 블록(604)을 통과해 간다. 이어 인코더는 실행 값을 인코딩한다. 스캐닝의 코스 동안 만난 정밀 계수들은 유효 실행에 대해 기여하지 않는다. 예를 들어, 도6의 제1 유효 계수(606c)는 두 개의 정밀 계수들(608)이 카운팅되지 않고, 실행(run)=3 대신에 실행=1로 코딩된다. SVC JD5의 CAVLC 모드에서, 유효 실행은 시작-단계-종료 또는 S3 코드를 이용하여 코딩된다. Thomas Wiegand, Gary Sullivan, Julien Raichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 5: Scalable Video Coding", JVT-R 201, January 2006, Bangkok, Thailand를 참조하라. 이어 이러한 계수의 부호는 1 비트 플래그로 코딩되는데, 0은 양의 수를 나타내고, 1은 음의 수를 나타낸다. 이어 인코더는 슬라이스의 모든 블록들이 복원될 때까지 다음 블록으로 계속 진행한다. 이는 제1 유효 코딩 주기를 포함한다.
다음 유효 코딩 주기가 시작할 때, 인코더는 제1 블록으로 되돌아오며 블록에서 다음 유효 계수를 스캔한다. 도6의 예에서, 실행=3은 제2 유효 계수(606d)에 대해 전송될 것이다. 이어 비트0은 양의 값을 나타내기 위해 전송된다. 이어 인코더는 제2 주기의 모든 블록이 전송될 때까지 다음 블록으로 계속 진행한다.
제3 주기에서, EOB(엔드-오브-블록) 심볼은 이전에 코딩된 유효 계수가 블록에서 마지막 계수임을 나타내기 위해 도6에 도시된 블록에 대해 전송되는데, 어떠한 추가의 정보도 연속한 코딩 주기들에서 이러한 블록에 대해 전송되지 않을 것이다. CAVLC 모드에서, EOB 심볼은 심볼 세트를 형성하기 위해 모든 다른 실행 값들과 결합된다. 이러한 심볼 세트에서 EOB의 인덱스에는 "IEOB"가 할당된다. 실행 값 "R"의 인덱스는 "IR"이다. "IR"은 "R" 및 "IEOB"로부터 유도될 수 있는데, R < IE0B인 경우, IR = R 이며, 그렇지 않은 경우, IR = R +1이다. 이러한 심볼에서 각각의 심볼의 인덱스는 S3 코드를 이용하여 코딩될 수도 있다. 더 작은 인덱스를 코딩하는데 소요된 비트들의 수는 더 큰 인덱스를 코딩하는데 소요된 비트들의 수보다 작거나 같다. 만일 EOB 심볼의 확률이 코딩 주기 수와 소정의 관련을 갖기 때 문에(EOB는 이후의 주기들에서 더욱 가능성이 크게 됨), 각각의 주기에서 EOB 심볼들의 오프셋들을 설명하는 배열은 이러한 심볼 세트 "IEOB"에서 EOB의 인덱스가 하나의 코딩 주기로부터 다른 코딩 주기로 변화할 수 있게 하기 위해, 슬라이스의 일부로서 인코딩된다. 이러한 배열은 주기 수의 함수로서 단조 증가하지 않도록 구성된다. 예를 들어, 배열{4 1 0 0 ...}은 제1 주기에서 4, 제2 주기에서 1, 모든 연속한 주기들에서 0 (가장 가능성 있는 심볼)으로 코딩됨을 나타낸다.
유효 코딩에 사용된 S3 코드는 파라미터: 컷오프 임계치(m)를 갖는다. 만일 심볼(s)<= m 이면, s는 1진 코드를 이용하여 코딩된다. 만일 심볼(s) > m 이면, s는
Figure 112008072915826-pct00001
개의 1들의 접두사 및 "00", "01" 또는 "10"의 접미사로 코딩된다. 예를 들어, 도7에 도시된 테이블은 m=0에 대응하는 코드 길이들 및 S3 코드 워드들을 제공한다. 각각의 주기 수(0 ,1...15)에 대한 256개의 컷오프 임계치(m) 및 기본 계층의 최종 인코딩된 계수(LEBL)(0, 1...15)의 각각의 부분을 포함하는 문맥 테이블이 슬라이스의 일부로서 제공된다.
S3 코드는 확률 분포가 작은 심볼들에 대해 바이어싱되고 큰 심볼들에 대해서는 더욱 균일하게 되는 심볼들을 코딩하기에 최적일 수도 있다. 그러나 유효 실행들의 실제 확률 분포들은 종종 이러한 가정과 일치하지 않는다. 따라서, 다른 VLC 코드들을 사용하는 것이 코딩 성능을 향상시킬 수 있다.
개시된 시스템들 및 방법들에서, 5가지 타입의 VLC 코드북들 중 하나는 유효 실행 및 EOB를 코딩하기 위해 선택된다. 5개의 코드북들은 여기서, 코드북0, 코드북1, 코드북2, 코드북3 및 코드북4로 불릴 것이다. 이러한 코드북들 각각이 설명될 것이다. 5개의 코드북들보다 더 작은 개수가 소정의 구성들에서 사용될 수도 있다. 부가적으로, 다른 구성에서 5개의 코드북들 보다 더 많은 개수가 사용될 수도 있다. 개시된 5개의 코드북들의 사용은 단지 예이며, 본 발명을 제한하지 않는다.
도8은 코드북0에 대한 의사 코드를 개시한다. 코드북 0은 1진 코드를 사용한다. 1진 코드는 (s-1)개의 "1" 및 하나의 "0"을 가진 심볼(s)을 인코딩한다. 이러한 코드북은 코드 길이{1, 2, 3,...}를 갖는다. 매우 바이어싱된 확률 분포를 갖는 입력 심볼에 대해 적합하다. 도8에서 의사 코드는 1진 코드를 이용한 인코딩(802) 및 디코딩(804)을 나타낸다.
도9는 코드북1에 대한 의사 코드를 나타낸다. 코드북1은 나머지 mod(s,2)를 코딩하기 위해 s/2개의 1의 접두사와 이어 2비트의 접미사로 입력 심볼 s를 인코딩하며, 여기서, mod()는 모듈 연산을 의미한다. 이러한 코드북은 코드 길이들{2, 2, 3, 3, 4, 4, ...}을 갖는다. 이는 1진 코드에 비해 더욱 균일한 분포를 갖는바 입력 심볼들에 적합하다. 도9의 의사 코드는 코드 블록1을 이용하는 인코딩(902) 및 디코딩(904)을 도시한다.
도10은 코드북2에 대한 의사 코드를 도시한다. 코드북2는 나머지 mod(s,3)을 나타내기 위해, (s/3)*2 개의 "1"의 접두사 및 이어 2비트들의 접미사로 입력 심볼들을 인코딩한다. 이러한 코드북은 코드길이들{2, 2, 2, 4, 4, 4, 6, 6, 6,...}을 갖는데, 이는 코드북1과 비교하여 더욱 균일하게 분포된 입력 심볼들에 적합하다. 도10의 의사 코드는 이러한 코드북을 이용한 인코딩(1002) 및 디코딩(1004)을 도시한다.
코드북3은 코드 길이들{1, 3, 3, 3, 5, 5, 5,...}을 이용하여, m=0(도7)을 갖는 S3 코드를 이용한다. 이러한 코드북은 코드북2의 변형된 버젼임을 이해해야 한다. 이는 비트 0을 갖는 입력 심볼 s=0을 인코딩한다. 다른 모든 심볼들의 경우, 입력 심볼(s+1)을 갖는 코드북2를 이용한다.
코드북4는 (도9에 도시된) 코드북1의 변형된 버젼이다. 이는 입력 심볼 s=0을 비트 0으로 인코딩한다. 모든 다른 심볼들 s의 경우, 이는 (s+1)로 설정된 입력 심볼을 갖는 코드북1을 이용한다.
코드북0 내지 4는 구성된 모든 코드북들이다. 소정의 구현의 경우, 호프만 코드들에 의해 일반적으로 요구된 바와 같이, 인코더 및 디코더에서 룩업 테이블을 저장하는 것은 필수적이지 않을 수도 있다.
전체 5개의 코드 블록이 도시되었고 논의되었지만, 코드 블록3 및 4는 각각 코드 블록 2 및 1의 변경된 버젼이라는 것을 명심해야 한다. 이는 디코더 구현을 매우 간략하게 하기 위해 활용될 수 있는 중요한 특징이다.
최적의 코드북 "c"는 유효 실행들 및 EOB 심볼로 형성된 심볼 세트의 확률 분포에 의존하는데, 이는 시퀀스들 사이에서는 물론 소정의 시퀀스 내의 프레임들 사이에서 변화한다.
일 구성에서, 코드북 선택 테이블은 슬라이스의 일부로서 명백하게 코딩된다. 테이블의 각각의 항목은 소정의 조건 하에서 다음의 유효 실행 또는 EOB를 디코딩하기 위해 사용된 코드북의 인덱스이다. 코드북 선택 테이블은 다른 파라미터에 의존하지 않고, 각각의 코딩 주기 수 "CCN"에 대한 항목을 포함할 수도 있다. 상이한 구현에서, 코드북 선택 테이블은 코딩 주기 수 "CCN" 및 LEBL 위치의 각 쌍에 대한 항목을 포함할 수도 있다. 4×4 블록들의 코딩을 위해, "CCN" 및 LEBL 위치는 [0,15] 범위에 있다. 어느 경우든, 인코더는 코딩 성능을 최적화하기 위해 테이블에서 각각의 항목의 값을 결정한다. 다른 특징에서, 다음 유효 실행 또는 EOB를 코딩하기 위한 최적의 코드북의 선택은 슬라이스의 일부로서 명백하게 코딩되지 않는다. 최적의 코드북은 실행 시간 및 이웃한 상관 동안 추정된 확률 분포에 기초하여 선택된다.
FGS 계층에 대한 제한된 비트 예산이 존재하고 코드북 선택 테이블이 슬라이스에서 명백하게 코딩되면, 코드북 선택 테이블 그 자체가 비트 오버헤드를 최소화하기 위해 명백하게 코딩되는 것이 필수적이다. 코드북 선택 테이블의 비효율적 코딩은 또한 레이트 왜곡(피크 신호대 잡음비 대 비트 레이트)의 상승 슬로프를 나타낼 수 있다. 두 방식은 코드북 선택 테이블의 효율적인 코딩을 달성하기 위해 도입된다.
비록 선택을 위해 전체 5개의 코드북들이 존재하지만, 이러한 코드북들의 "선호도"는 상이하다. 도11에서 VLC 테이블(1102)은 테이블 항목들을 코딩하는데 사용된 평균 비트들을 감소시키기 위해 코드북 항목들을 코딩하는데 사용될 수도 있다.
일 구성에서, 최적의 코드북의 선택은 코딩 주기 수 "CCN"에만 의존하며, 각각의 코딩 주기 수는 지그재그 스캔 순서로 스캔 위치의 인덱스에 대응한다. 테이블 항목들은 다음과 같이 코딩된다. 우선, 가변 "num_sig_vlc_selectors"가 비트 스트림에서 코딩되는 코드북 선택기들의 수를 나타내기 위해 코딩되며, 그 후 "mum_sig_vlc_selector" 코드북 선택기들이 뒤따른다. 각각의 코드북 선택기는 VLC 테이블(1102)에 한정된 가변 길이 코드를 이용하여 코딩된다. 각각의 코딩 주기 수에 대한 하나의 코드북 선택기가 존재한다. 디코딩 프로세스는 인코딩 프로세스의 단순한 역이다. 슬라이스에서 코딩되지 않은 코드북 선택기들은 0의 디폴트 값을 갖는다. 예를 들어, 4×4 블록들을 코딩하기 위해, 16개의 코드북 선택기들이 요구된다. 만일 "num_sig_vlc_selectors"가 5이면, 첫 번째 5개의 코드북 선택기가 명백하게 코딩되었음을 의미한다. 나머지 11 코드북 선택기들은 제로이다.
다른 특징에서, 코드북 선택 테이블은 코딩 주기 수 "CCN" 및 LEBL 위치의 각 쌍에 대한 항목을 포함할 수도 있다. 선택되는 코드북0 (1진 코드)의 확률은 일반적으로 큰 주기 수 및 LEBL 위치에 대하 매우 높게 된다. 따라서, 이러한 문맥을 위해 코드북들을 전송하는 것은 필수적이지 않게 될 것이다. 테이블 차원을 감소시키기 위해, 테이블 형태 및 테이블 차원은 새로운 구문 엘리먼트로서 부가되고 슬라이스에서 전송된다. 이하에서는, 두 개의 테이블 형태: 사각형(도12 참조) 및 삼각형(도13 참조)이 한정된다. 2차원 파라미터들, 폭 및 높이는 사각형 테이블들로 전송되며, 깊이로 불리는 하나의 부가의 파라미터는 삼각형 테이블로 전송된다. 테이블 형태 및 차원이 결정되었기 때문에, 버림된 테이블(1202, 1302) 내에 속하는 테이블 항목들만이 도11의 VLC 코드를 이용하여 전송된다. 다른 모든 테이블 항목들(1204, 1304)(버림된 테이블에 속하지 않는 테이블 항목)은 전송되지 않고 0으로 추정되지 않는다.
테이블 형태 및 차원을 획득하기 위해, 16×16 코드북 선택 테이블이 레이트 왜곡 최적화 방식으로 버림된다. 버림은 열 방향으로 우선 발생하며, 이후 행방향으로 발생하고, 그 후 대각 방향으로 발생한다(그러나 인코더는 버림을 위해 소정의 순서를 선택할 수 있다). 예를 들어 열을 선택하라. 최적의 코드북에 대해 코드북 0을 대체하기 때문에 유효 코딩 동안 이후에 발생될 비트 패널티로서 테이블 항목들의 하나의 열을 버림하는 코스트(C)를 한정하라(예를 들어, C는 이러한 열의 항목들이 모두 이미 코드북 0을 선택한 경우 0 임). 이어 도11의 VLC 테이블당 이러한 테이블 항목들을 전송하지 않기 때문에 절약된 비트들로서 테이블 항목들의 이러한 열을 버림하는 비트 절약을 한정한다(예를 들어, 이러한 열의 모든 항목들이 코드북 0을 선택하면, S=16 임). 만일 S > 10 이면, 테이블 항목들의 이러한 열은 버림된다. 그렇지 않고, 이러한 열이 유지되면, 열 방향의 버림은 정지하고 행 방향의 버림이 시작된다. 이러한 버림 프로세스는 목표 비트 레이트에 대해 적용시 매우 효율적인 것으로 판명된다. 매우 낮은 비트 레이트들에서, 몇 개의 유효 계수들이 있는 경우, 테이블 항목들을 전송하기 위해 요구되는 비트들은 최적 코드북을 이용함으로써 절약된 몇몇 비트들을 자리맞춤(justify)하지 않는다. 이러한 경우, 버림 프로세스는 심지어 전체 테이블을 버림할 수도 있다. 더 높은 비트 레이트들에서, 버림된 테이블은 반대 이유로 더 큰 차원을 갖는 경향이 있다. 이러한 테이블 버림 프로세스의 복잡성은, 코드북 선택 테이블을 형성하면서, 모든 테이블 항목을 버림하는 비트 패널티가 사전 저장됨에 따라 매우 낮다. 도14의 의사 코드(1402)는 버림된 테이블을 전송하는 방법을 간략화한다.
도15는 디지털 이미지 및/또는 디지털 비디오를 프로세싱하도록 구성된 장치(1600)를 도시한다. 장치(1600)는 디지털 텔레비젼, 디지털 직접 브로드캐스트 시스템, 무선 통신 텔레비젼, PDA, 랩탑 컴퓨터, 데스트탑 컴퓨터, 디지털 카메라, 디지털 기록 장치, 네트워크 이네이블 디지털 텔레비전, 셀룰러 또는 위성 무선 전화, 또는 비디오 화상(VT) 성능을 갖는 소정의 통신 장치를 나타내거나 여기서 구현될 수도 있다.
장치(1600)는 이미지 및/또는 비디오 데이터를 프로세싱, 인코딩, 디코딩, 전송 및/또는 수신할 수도 있다. 비디오 데이터는 비디오 캡쳐 유닛(또는 이미지 센서)(1612)과 같은 비디오 카메라에 의해 포착되고, 비디오 저장소로부터 리트리브되거나 다른 방식으로 획득될 수도 있다. 상기 장치(1600)에서 비디오 코딩 유닛(1610)은 MPEG-4, ITU-T H.263, ITU-T H.264, 또는 소정의 다른 비디오 코딩 표준과 같은 비디오 코딩 표준을 이용할 수도 있다. 비디오 코딩 유닛(1610)은 모션 추정 및 모션 보상과 같은 프레임간 코딩 기술, 및 공간 추정 및 인트라 예측 코딩 기술과 같은 프레임내 코딩 기술을 지원할 수도 있다.
장치(1600)는 이미지 또는 비디오 시퀀스들을 포착하고 메모리(1614)에 포착된 이미지들 또는 시퀀스들을 저장하기 위해 카메라 또는 비디오 카메라와 같은 이미지/비디오 캡쳐 장치(1612)를 포함할 수도 있다. 이미지/비디오 프로세싱 유 닛(1602)은 이미지 및/또는 비디오 시퀀스를 프로세싱할 수도 있다. 메모리(1604)는 이러한 프로세싱 전후로 이미지 및/또는 비디오 시퀀스들을 저장할 수도 있다.
송수신기(1616)는 코딩된 비디오 시퀀스들을 수신 및/또는 이를 다른 장치로 전송할 수도 있다. 송수신기(1616)는 코드 분할 다중 액세스(CDMA)와 같은 무선 통신 표준을 이용할 수도 있다. CDMA 표준들의 예는 CDMA IxEV-DO, 광대역 코드 분할 다중 액세스(WCDMA) 등을 포함한다.
장치(1600)의 하나 이상의 엘리먼트들은 통신 버스(1618)를 통해 통신가능하게 결합된다. 도16에 도시된 엘리먼트들에 부가하거나 대신하여, 다른 엘리먼트들이 장치(1600)에 포함될 수도 있다. 도16에 개시된 구조는 단지 예이다. 개시된 기술은 다양한 다른 구조들로 구현될 수도 있다.
메모리(1614)는 상대적으로 큰 메모리 공간을 가질 수도 있다. 메모리(1614)는 동적 랜덤 액세스 메모리(DRAM), 또는 플래시 메모리를 포함할 수도 있다. 메모리(1614)는 "NOR" 또는 "NAND" 게이트 메모리 기술을 포함하거나, 소정의 다른 데이터 저장 기술을 포함할 수도 있다. 다른 예에서, 메모리(1614)는 비휘발성 메모리 또는 소정의 다른 타입의 데이터 저장 유닛을 포함할 수도 있다.
이미지/비디오 프로세싱 유닛(1602)은 모바일 무선전화를 위한 칩셋을 포함하는데, 이는 하드웨어, 소프트웨어, 펌웨어 및/또는 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(DPS)들, 주문형 집적회로(ASIC), 필드 프로그램 가능한 게이트 어레이(FPGA), 또는 다양한 이들의 결합을 포함할 수도 있다. 프로세싱 유닛(1602)은 프런트엔드 이미지/비디오 프로세싱 유닛(1608) 및 이미지 비디오 코딩 유닛(1610)에 결합된 로컬 메모리(1604)를 포함할 수도 있다. 코딩 유닛(1610)은 디지털 비디오 데이터를 인코딩(또는 압축) 및 디코딩(또는 압축 해제)하기 위해 인코더/디코더(CODEC)를 포함할 수도 있다.
로컬 메모리(1604)는 메모리(1614)와 관련하여 더 작고 더 빠른 메모리 공간을 포함할 수도 있다. 예를 들어, 로컬 메모리(1604)는 동기 동적 랜덤 액세스 메모리(SDRAM)를 포함할 수도 있다. 로컬 메모리(1604)는 프로세서-집중 코딩 프로세서 동안 데이터에 대한 고속 액세스를 제공하기 위해 프로세싱 유닛(1602)의 다른 컴포넌트와 통합된 "온-칩" 메모리를 포함할 수도 있다. 그러나 메모리들(1614 및 1604)은 하나의 메모리로 결합될 수도 있거나, 다수의 다른 구조들로 구현될 수도 있다. 메모리 제어기(1606)는 로컬 메모리(1604)에 대한 메모리 패치 및 재기록을 제어할 수도 있다.
프런트엔드 이미지/비디오 프로세싱 유닛(1608)은 이미지 품질을 개선하여 비디오 시퀀스의 품질을 향상시키기 위해 비디오의 프레임들에 대한 하나 이상의 이미지 프로세싱 기술들을 실행할 수도 있다. 예를 들어, 프런트엔드 이미지/비디오 프로세싱 유닛(1608)은 디모자이크, 렌즈 롤오프 보정, 스케일링, 컬러 보정, 컬러 변환, 및 공간 필터링과 같은 기술을 실행할 수도 있다. 프런트엔드 이미지/비디오 프로세싱 유닛(1608)은 또한 다른 기술들을 실행할 수도 있다. 일반적으로, 유닛(1608)에 의해 실행될 기술들은 "프런트엔드" 이미지 프로세싱 기술들로 불리는데, 이는 기술들이 이미지/비디오 코딩 유닛(1610)에 의해 코딩을 진행하기 때문이다.
이미지/비디오 포착 유닛(1612)은 센서들의 표면에 배열된 컬러 필터 어레이(CFA)들을 포함하는 이미지 센서들을 포함할 수도 있다. 유닛(1608)에 의해 실행된 프런트엔드 이미지 프로세싱은 캡쳐 유닛(1612)에 의해 포착된 비디오 시퀀스의 품질을 향상시킬 수도 있다. 예를 들어, 프런트엔드 프로세싱 유닛(1608) 및/또는 코딩 유닛(1610)은 캡쳐 유닛(1612)에 의해 포착된 이미지들을 프로세싱하기 위해 프로그래밍된 DSP를 포함할 수도 있다. 메모리(1604)(또는 메모리(1614))의 동일 영역은 프런트엔드 이미지 프로세싱 목적 및 다른 저장 목적을 위해 사용될 수도 있다.
이미지/비디오 코딩 유닛(1610)은 이미지 및/비디오 코딩을 실행할 수도 있는데, 이는 프레임간 압축 및/또는 프레임내 압축과 같은 하나 이상의 비디오 압축 기술을 포함할 수도 있다. 예를 들어, 코딩 유닛(1610)은 프레임간 압축을 제공하기 위해 시간적 또는 프레임간 데이터 보정을 활용하도록 모션 추정 및 모션 보상 기술들을 구현할 수도 있다. 택일적으로 또는 부가적으로, 코딩 유닛(1610)은 프레임내 압축을 제공하기 위해 공간적 또는 프레임간 데이터 보정을 활용하기 위해 공간 추정 및 인프라 예측 기술들을 실행할 수도 있다. 모션 보상의 출력(또는 프레임내 예측)은 "잔여"로서 불리며, 코딩될 현재 비디오 블록과 모션 추정 또는 공간 추정에 의해 식별된 예측 블록 사이의 차들을 나타내는 데이터의 블록을 포함할 수도 있다.
코딩 유닛(1610)이 잔여를 생성하기 위해 모션 보상(또는 프레임내 예측)을 실행한 후, 일련의 추가의 단계들이 잔여를 추가로 코딩하고 데이터를 추가로 압축 하기 위해 실행될 수도 있다. 추가의 단계들은 사용되는 코딩 표준에 의존할 수도 있지만, 일반적으로 "잔여 코딩"으로 불린다. 코딩 유닛(1610)은 송수신기(1616)를 통해 다른 장치로 비디오 시퀀스를 통신하기 위해 필요한 데이터의 양을 감소시키기 위해 하나 이상의 이러한 비디오 압축 기술을 실행할 수도 있다.
정보 및 신호들이 임의의 다수의 상이한 기술들 및 테크닉들을 사용하여 표현될 수 있음을 인식할 것이다. 예를 들어, 상기 설명을 통해 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 전자기장들, 또는 전자기 입자들, 광학계들 또는 광학 입자들, 또는 그들의 임의의 조합에 의해 표시될 수 있다.
본 명세서에 개시된 실시예들과 관련하여 설명된 논리적인 블럭들, 모듈들, 회로들, 및 알고리즘 단계들이 전자하드웨어, 컴퓨터 소프트웨어, 또는 그들의 조합으로서 실행될 수 있음을 인식할 것이다. 상기 하드웨어 및 소프트웨어의 상호교환가능성을 명백히 설명하기 위해, 다양한 요소들, 블럭들, 모듈들, 회로들, 및 단계들이 그들의 기능성에 관련하여 전술되었다. 상기 기능성이 하드웨어로 실행되는지 또는 소프트웨어로 실행되는지의 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 따라 결정한다. 당업자는 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능성을 실행할 수 있지만, 상기 실행 결정들은 본 발명의 영역으로부터 벗어나는 것으로 해석될 수 없다.
본 명세서에서 개시된 실시예와 관련하여 다양하게 설명되는 논리 블럭들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 처리기(DSP), 응용 집적 회 로(ASIC), 현장 프로그램가능한 게이트 어레이(FPGA), 또는 다른 프로그램가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 요소들, 또는 본 명세서에 개시된 기능을 수행하도록 설계된 그들의 임의의 조합을 사용하여 실행되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서가 될 수 있지만, 선택적으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 기계가 될 수 있다. 프로세서는 또한 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 결합된 하나 또는 그 이상의 마이크로프로세서, 또는 임의의 다른 구성과 같은 컴퓨팅 장치들의 조합으로서 실행될 수 있다.
본 명세서에 개시된 실시예와 관련하여 설명되는 방법 또는 알고리즘의 단계는 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 그들의 조합에서 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드디스크, 제거가능한 디스크, CD-ROM 또는 임의의 다른 형태의 컴퓨터 판독 가능 저장 매체의 형태에 상주할 수도 있다. 저장 매체는 저장매체로부터 정보 판독하고 정보를 기록할 수 있는 프로세서와 같은 컴퓨터/프로세서와 같은 머신에 접속된다. 택일적으로, 저장 매체는 프로세서로 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수 있다. ASIC은 사용자 터미널 내에 상주할 수 있다. 선택적으로, 프로세서 및 저장 매체는 사용자 디바이스내에서 이산요소들로서 상주할 수 있다.
개시된 방법들은 개시된 방법을 달성하기 위해 하나 이상의 단계들 또는 동 작들을 포함한다. 방법 단계들 및/또는 동작들은 본 발명의 시스템 및 방법으로부터 벗어나지 않고 상호 호환될 수도 있다. 다시 말해, 특정 순서의 단계들 또는 동작들이 구성의 적절한 동작을 위해 요구되지 않으면, 특정 단계들 및/또는 동작들의 순서 및/또는 사용은 본 발명의 시스템 및 방법들의 사상으로부터 벗어나지 않고 변경될 수도 있다.
본 발명의 시스템들 및 방법들의 특정 구성들 및 애플리케이션들이 설명되었지만, 본 발명의 시스템들 및 방법들은 이에 한정되지 않는다는 것을 이해해야 한다. 당업자에게 명백한 다양한 변경들이 본 발명의 사상을 벗어나지 않고 개시된 방법들 및 시스템들에 대해 실시될 수 있다.

Claims (32)

  1. 비디오 시퀀스에서 유효(significance) 계수들을 코딩하기 위한 방법으로서,
    비디오 시퀀스를 수신하는 단계;
    상기 비디오 시퀀스로부터 현재 프레임의 원래(original) 비디오 신호의 예측 프레임을 구성하는 단계;
    상기 현재 프레임의 상기 원래 비디오 신호로부터 상기 원래 비디오 신호의 상기 예측 프레임을 감산함으로써 잔여 신호를 형성하는 단계;
    상기 잔여 신호에 변환을 적용하는 단계;
    다수의 변환 계수들을 양자화하는 단계;
    유효 실행(run) 및 엔드-오브-블록(end-of-block) 중 적어도 하나를 코딩하기 위해 다수의 코드북들로부터 코드북을 선택하는 단계; 및
    상기 선택된 코드북을 이용하여 상기 유효 실행 및 엔드-오브-블록 중 적어도 하나를 코딩하는 단계
    를 포함하는 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 선택된 코드북을 이용하여 엔드-오브-블록을 코딩하는 단계를 더 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  3. 제 1 항에 있어서,
    비디오 슬라이스(video slice)를 이용하여 코드북 테이블 정보를 코딩하는 단계를 더 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  4. 제 3 항에 있어서,
    상기 코드북 테이블 정보는 코드북 선택 테이블을 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  5. 제 3 항에 있어서,
    상기 코드북 테이블 정보는 코딩 주기 수 및 LEBL(기본 계층에서 최종 인코딩된 계수) 위치의 각각의 쌍에 대응하는 각각의 항목(entry)을 갖는 코드북 선택 테이블을 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  6. 제 3 항에 있어서,
    상기 코드북 테이블 정보는 상기 코딩 주기 수에만 대응하는 각각의 항목을 갖는 코드북 선택 테이블을 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  7. 제 6 항에 있어서,
    1차원 코드북 선택 어레이로서 코드북 선택 테이블을 코딩하는 단계를 더 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  8. 제 7 항에 있어서,
    코딩된 다수의 코드북 선택 테이블 항목들을 특정하는 변수를 코딩하는 단계를 더 포함하며, 코드북 선택기들은 상기 변수를 따르며, 각각의 코드북 선택기는 가변 길이 코드를 이용하여 코딩되는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  9. 제 3 항에 있어서,
    상기 코드북 테이블 정보는 테이블 형태 및 테이블 차원(dimension)을 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 테이블 형태는 사각형인, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  11. 제 9 항에 있어서,
    상기 테이블 형태는 삼각형인, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  12. 제 1 항에 있어서,
    코드북 선택 테이블은 통계 추정으로부터 동적으로 결정되는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  13. 제 1 항에 있어서,
    코드북 선택 테이블은 이웃한 상관관계(correlation)로부터 동적으로 결정되는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  14. 제 1 항에 있어서,
    상기 다수의 코드북들 중에서 하나의 코드북은 다른 코드북의 변경된 버젼(shifted version)인, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  15. 제 1 항에 있어서,
    버림된(pruned) 코드북 선택 테이블을 제공하기 위해 코드북 선택 테이블을 버림하는 단계; 및
    비디오 슬라이스를 이용하여 상기 버림된 코드북 선택 테이블을 코딩하는 단계
    를 더 포함하는, 비디오 시퀀스에서 유효 계수들을 코딩하기 위한 방법.
  16. 전자 장치로서,
    프로세서;
    상기 프로세서와 전자적으로 통신하는 메모리; 및
    상기 메모리에 저장된 명령들
    을 포함하며, 상기 명령들은,
    비디오 시퀀스를 수신하고;
    상기 비디오 시퀀스로부터 현재 프레임의 원래 비디오 신호의 예측 프레임을 구성하며;
    상기 현재 프레임의 상기 원래 비디오 신호로부터 상기 원래 비디오 신호의 상기 예측 프레임을 감산함으로써 잔여 프레임을 형성하고;
    상기 잔여 프레임에 변환을 적용하며;
    다수의 변환 계수들을 양자화하고;
    유효 실행 및 엔드-오브-블록 중 적어도 하나를 코딩하기 위해 다수의 코드북들로부터 코드북을 선택하며; 그리고
    상기 유효 실행 및 상기 엔드-오브-블록을 코딩하도록 실행가능하고,
    상기 유효 실행 및 상기 엔드-오브-블록 중 적어도 하나는 상기 선택된 코드북을 이용하여 코딩되는,
    전자 장치.
  17. 제 16 항에 있어서,
    상기 명령들은 비디오 슬라이스를 이용하여 코드북 테이블 정보를 코딩하도록 추가로 실행가능한, 전자 장치.
  18. 제 17 항에 있어서,
    상기 코드북 테이블 정보는 코드북 선택 테이블을 포함하는, 전자 장치.
  19. 제 17 항에 있어서,
    상기 코드북 테이블 정보는 테이블 형태 및 테이블 차원(dimension)을 포함하는, 전자 장치.
  20. 제 17 항에 있어서,
    상기 명령들은,
    버림된 코드북 선택 테이블을 제공하기 위해 코드북 선택 테이블을 버림(prune)하고, 및
    비디오 슬라이스를 이용하여 상기 버림된 코드북 선택 테이블을 코딩하도록 추가로 실행가능한, 전자 장치.
  21. 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법으로서,
    인코딩된 비디오 비트스트림을 수신하는 단계;
    상기 비트스트림으로부터 코드북 테이블 정보를 리트리브(retrieve)하는 단계;
    상기 리트리브된 코드북 테이블 정보를 이용하여 유효 심볼들을 디코딩하는 단계;
    상기 유효 심볼들을 이용하여 유효 계수들을 디코딩하는 단계;
    다수의 변환 계수들을 역양자화(dequantize)하는 단계;
    잔여 신호에 역변환을 적용하는 단계; 및
    비디오 시퀀스를 구성하는 단계
    를 포함하는 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  22. 제 21 항에 있어서,
    슬라이스로부터 코드북 테이블 정보를 디코딩하는 단계를 더 포함하는, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  23. 제 22 항에 있어서,
    상기 코드북 테이블 정보는 코드북 선택 테이블을 포함하는, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  24. 제 22 항에 있어서,
    상기 코드북 테이블 정보는 코드북 선택 테이블 맵핑 주기 수 및 LEBL(기본 계층에서 최종 인코딩된 계수) 위치를 포함하는, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  25. 제 22 항에 있어서,
    상기 코드북 테이블 정보는 코드북 선택 테이블 맵핑 주기 수를 포함하는, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  26. 제 22 항에 있어서,
    상기 코드북 테이블 정보는 테이블 형태 및 테이블 차원(dimension)을 포함하는, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  27. 제 26 항에 있어서,
    상기 테이블 형태는 사각형인, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  28. 제 26 항에 있어서,
    상기 테이블 형태는 삼각형인, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  29. 제 21 항에 있어서,
    코드북 선택 테이블은 통계 추정으로부터 동적으로 결정되는, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  30. 제 21 항에 있어서,
    코드북 선택 테이블은 이웃한 상관관계로부터 동적으로 결정되는, 인코딩된 비디오 시퀀스에서 유효 계수들을 디코딩하기 위한 방법.
  31. 전자 장치로서,
    프로세서;
    상기 프로세서와 전자적으로 통신하는 메모리; 및
    상기 메모리에 저장된 명령들
    을 포함하며, 상기 명령들은,
    인코딩된 비디오 비트스트림을 수신하고;
    상기 비트스트림으로부터 코드북 테이블 정보를 리트리브(retrieve)하며;
    상기 리트리브된 코드북 테이블 정보를 이용하여 유효 심볼들을 디코딩하고,
    상기 유효 심볼들을 이용하여 유효 계수들을 디코딩하며;
    다수의 변환 계수들을 역양자화하고;
    잔여 신호에 역변환을 적용하며; 그리고
    비디오 시퀀스를 구성하도록 실행가능한,
    전자 장치.
  32. 비디오 시퀀스에서 유효 계수들을 코딩하도록 구성된 전자 장치로서,
    프로세싱(processing)하기 위한 수단;
    비디오 시퀀스를 수신하기 위한 수단;
    상기 비디오 시퀀스로부터 현재 프레임의 원래 비디오 시퀀스의 예측 프레임을 구성하기 위한 수단;
    상기 현재 프레임의 상기 원래 비디오 시퀀스로부터 상기 원래 비디오 시퀀스의 상기 예측 프레임을 감산함으로써 잔여 프레임을 형성하기 위한 수단;
    상기 잔여 프레임에 변환을 적용하기 위한 수단;
    다수의 변환 계수들을 양자화하기 위한 수단;
    유효 실행 및 엔드-오브-블록 중 적어도 하나를 코딩하기 위해 다수의 코드북들로부터 코드북을 선택하기 위한 수단; 및
    상기 선택된 코드북을 이용하여 상기 유효 실행 및 엔드-오브-블록 중 적어도 하나를 코딩하기 위한 수단
    을 포함하는 비디오 시퀀스에서 유효 계수들을 코딩하도록 구성된 전자 장치.
KR1020087025685A 2006-03-27 2007-03-26 비디오 압축에서 유효 계수 코딩을 위한 방법 및 시스템 KR100991410B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US78679806P 2006-03-27 2006-03-27
US60/786,798 2006-03-27
US11/469,606 US7778472B2 (en) 2006-03-27 2006-09-01 Methods and systems for significance coefficient coding in video compression
US11/469,606 2006-09-01

Publications (2)

Publication Number Publication Date
KR20090018030A KR20090018030A (ko) 2009-02-19
KR100991410B1 true KR100991410B1 (ko) 2010-11-02

Family

ID=38352542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087025685A KR100991410B1 (ko) 2006-03-27 2007-03-26 비디오 압축에서 유효 계수 코딩을 위한 방법 및 시스템

Country Status (10)

Country Link
US (2) US7778472B2 (ko)
EP (1) EP1999972A2 (ko)
JP (1) JP5139416B2 (ko)
KR (1) KR100991410B1 (ko)
CN (1) CN101427584B (ko)
BR (1) BRPI0709280A2 (ko)
CA (1) CA2644912A1 (ko)
RU (1) RU2406256C2 (ko)
TW (1) TWI349486B (ko)
WO (1) WO2007112343A2 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
KR100809301B1 (ko) * 2006-07-20 2008-03-04 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
EP1921867B1 (en) * 2006-10-17 2016-05-25 Harman Becker Automotive Systems GmbH Sensor assisted video compression
EP2213099A1 (en) * 2007-10-15 2010-08-04 QUALCOMM Incorporated Improved enhancement layer coding for scalable video coding
US8848787B2 (en) * 2007-10-15 2014-09-30 Qualcomm Incorporated Enhancement layer coding for scalable video coding
JP5004180B2 (ja) * 2007-11-07 2012-08-22 Kddi株式会社 動画像符号化装置および復号装置
US9602814B2 (en) 2010-01-22 2017-03-21 Thomson Licensing Methods and apparatus for sampling-based super resolution video encoding and decoding
CN102726044B (zh) 2010-01-22 2016-08-10 汤姆逊许可证公司 使用基于示例的超分辨率的用于视频压缩的数据剪切
KR20110112168A (ko) * 2010-04-05 2011-10-12 삼성전자주식회사 내부 비트뎁스 확장에 기반한 비디오 부호화 방법 및 그 장치, 내부 비트뎁스 확장에 기반한 비디오 복호화 방법 및 그 장치
US20120008687A1 (en) * 2010-07-06 2012-01-12 Apple Inc. Video coding using vector quantized deblocking filters
US9544598B2 (en) 2010-09-10 2017-01-10 Thomson Licensing Methods and apparatus for pruning decision optimization in example-based data pruning compression
US9338477B2 (en) 2010-09-10 2016-05-10 Thomson Licensing Recovering a pruned version of a picture in a video sequence for example-based data pruning using intra-frame patch similarity
US9628821B2 (en) 2010-10-01 2017-04-18 Apple Inc. Motion compensation using decoder-defined vector quantized interpolation filters
WO2012092661A1 (en) * 2011-01-04 2012-07-12 Research In Motion Limited Coding of residual data in predictive compression
WO2012092662A1 (en) 2011-01-04 2012-07-12 Research In Motion Limited Coding of residual data in predictive compression
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
JP5469127B2 (ja) * 2011-05-30 2014-04-09 富士フイルム株式会社 画像データ符号化装置ならびにその動作制御方法およびそのプログラム
PL2728866T3 (pl) 2011-06-28 2019-05-31 Samsung Electronics Co Ltd Sposób dekodowania wideo z wykorzystaniem dekodowania arytmetycznego
US9445093B2 (en) * 2011-06-29 2016-09-13 Qualcomm Incorporated Multiple zone scanning order for video coding
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
CN103096049A (zh) * 2011-11-02 2013-05-08 华为技术有限公司 一种视频处理方法及系统、相关设备
US8615138B2 (en) * 2011-11-03 2013-12-24 Google Inc. Image compression using sub-resolution images
CN107087187B (zh) * 2011-11-07 2019-12-17 太格文-Ii有限责任公司 图像编码方法及图像编码装置
AU2012200319B2 (en) * 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9596463B2 (en) 2012-02-22 2017-03-14 Qualcomm Incorporated Coding of loop filter parameters using a codebook in video coding
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
GB2539239B (en) * 2015-06-10 2017-10-04 Gurulogic Microsystems Oy Encoders, decoders and methods utilizing mode symbols
CN106358040B (zh) * 2016-08-30 2020-07-14 上海交通大学 一种基于显著性的码率控制比特分配方法
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
CN112119633B (zh) * 2018-04-30 2024-01-02 交互数字Vc控股公司 多种变换的灵活实现
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150209A (en) * 1990-05-11 1992-09-22 Picturetel Corporation Hierarchical entropy coded lattice threshold quantization encoding method and apparatus for image and video compression
US5122875A (en) 1991-02-27 1992-06-16 General Electric Company An HDTV compression system
US5822724A (en) 1995-06-14 1998-10-13 Nahumi; Dror Optimized pulse location in codebook searching techniques for speech processing
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
US6072830A (en) * 1996-08-09 2000-06-06 U.S. Robotics Access Corp. Method for generating a compressed video signal
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
JP3189876B2 (ja) 1997-06-09 2001-07-16 日本電気株式会社 可変長符号復号化回路
US6807231B1 (en) * 1997-09-12 2004-10-19 8×8, Inc. Multi-hypothesis motion-compensated video image predictor
US6731807B1 (en) * 1998-09-11 2004-05-04 Intel Corporation Method of compressing and/or decompressing a data set using significance mapping
US7483581B2 (en) * 2001-07-02 2009-01-27 Qualcomm Incorporated Apparatus and method for encoding digital image data in a lossless manner
ES2328916T3 (es) 2002-04-02 2009-11-19 Nokia Corporation Coeficientes de transformacion de codificacion en codificadores y/o descodificadores de imagenes/video.
EP1500269B1 (en) 2002-04-26 2012-10-03 Nokia Corporation Adaptive method and system for mapping parameter values to codeword indexes
DE50305419D1 (de) 2002-05-02 2006-11-30 Fraunhofer Ges Forschung Kodierung und Dekodierung von Transformationskoeffizienten in Bild- oder Videokodierern
CN1214649C (zh) 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
CN1589023A (zh) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于上下文的多码表变长编解码方法及编解码装置
KR100736086B1 (ko) * 2005-09-06 2007-07-06 삼성전자주식회사 엔트로피 코딩의 성능 향상 방법 및 장치, 상기 방법을이용한 비디오 코딩 방법 및 장치
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wiegand et al: "Joint Draft 5: Scalable Video Coding Annex F: scalable video coding", ISO/IEC JTC1/SC29/WG11 & ITU-T SG 16 JVT, January 2006, pages 349-504

Also Published As

Publication number Publication date
EP1999972A2 (en) 2008-12-10
BRPI0709280A2 (pt) 2011-05-31
CN101427584B (zh) 2012-03-21
US20070223825A1 (en) 2007-09-27
JP2009531992A (ja) 2009-09-03
CN101427584A (zh) 2009-05-06
US8121418B2 (en) 2012-02-21
US7778472B2 (en) 2010-08-17
RU2406256C2 (ru) 2010-12-10
JP5139416B2 (ja) 2013-02-06
RU2008142365A (ru) 2010-08-20
TW200746838A (en) 2007-12-16
CA2644912A1 (en) 2007-10-04
KR20090018030A (ko) 2009-02-19
TWI349486B (en) 2011-09-21
WO2007112343A2 (en) 2007-10-04
WO2007112343A3 (en) 2007-12-27
US20100284462A1 (en) 2010-11-11

Similar Documents

Publication Publication Date Title
KR100991410B1 (ko) 비디오 압축에서 유효 계수 코딩을 위한 방법 및 시스템
CA2643705C (en) Methods and systems for refinement coefficient coding in video compression
CA2645230C (en) Method and system for coding and decoding information associated with video compression
RU2452128C2 (ru) Адаптивное кодирование информации заголовка видеоблока
JP5080575B2 (ja) 適応可変長符号を用いた映像圧縮
JP2009531992A5 (ko)
KR101247452B1 (ko) 정제 계수 코딩을 위한 비디오 블록 형식에 기초한 가변 길이 코딩 테이블 선택
EP2345253A2 (en) VIDEO CODING USING TRANSFORMS BIGGER THAN 4x4 AND 8x8
AU2009298559A1 (en) Video coding using transforms bigger than 4x4 and 8x8
CA2666055A1 (en) Refinement coefficient coding based on history of corresponding transform coefficient values
RU2406259C2 (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: 20130927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee