KR20080044835A - 넓은 범위 계수의 적응형 코딩 및 디코딩 - Google Patents

넓은 범위 계수의 적응형 코딩 및 디코딩 Download PDF

Info

Publication number
KR20080044835A
KR20080044835A KR1020087003448A KR20087003448A KR20080044835A KR 20080044835 A KR20080044835 A KR 20080044835A KR 1020087003448 A KR1020087003448 A KR 1020087003448A KR 20087003448 A KR20087003448 A KR 20087003448A KR 20080044835 A KR20080044835 A KR 20080044835A
Authority
KR
South Korea
Prior art keywords
normalized
transform
coefficient
transform coefficients
zero
Prior art date
Application number
KR1020087003448A
Other languages
English (en)
Other versions
KR101247011B1 (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 KR20080044835A publication Critical patent/KR20080044835A/ko
Application granted granted Critical
Publication of KR101247011B1 publication Critical patent/KR101247011B1/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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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
    • 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/18Methods 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 set of transform coefficients
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/93Run-length coding

Landscapes

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

Abstract

블록 변환-기반 디지털 미디어 코덱은 보다 효율적으로 넓은 동적 범위 변환 계수를 두 부분(정규화된 계수 및 bin 주소)으로 인코딩한다. 정규화된 계수는 넓은 동적 범위의 계수 값들을 bin으로 그룹화하는 것과 관련되고, 반면에 bin 주소는 bin 내의 계수 값의 인덱스이다. bin 사이즈를 주의 깊게 선택함으로써, 정규화된 계수는, 가변 길이 엔트로피 코딩에 보다 적합한 좁은 범위 변환 계수와 보다 유사한 확률 분포를 갖는다. 코덱은 정규화된 계수를 가변 길이 엔트로피 코딩을 이용하여 압축된 비트스트림의 "코어"로 인코딩하며, bin 주소를 고정 길이 코딩을 이용하여 생략가능한 분리된 옵션 계층으로 인코딩한다. 코덱은 또한 귀납적 적응 프로세스에 기초하여 그룹화의 bin 사이즈를 적응적으로 변동시켜서 정규화된 계수를 가변 길이 엔트로피 코딩에 보다 잘 적합한 확률 분포가 되도록 조정한다.
엔트로피 코딩, 확률 분포, 디지털 미디어 데이터 처리 방법. 동적 범위

Description

넓은 범위 계수의 적응형 코딩 및 디코딩{ADAPTIVE CODING AND DECODING OF WIDE-RANGE COEFFICIENTS}
이 특허 문서의 내용의 일부분은 저작권 보호를 받는 자료를 포함하고 있다. 이 저작권 소유자는 특허 상표청 특허 파일 또는 기록물에 있는 그대로 임의의 자가 특허 문서 또는 특허 공개를 팩시밀리 재현하는 것에 대해서는 이의를 하지 않지만, 그렇지 않은 경우 어떻든간에 모든 저작권을 보유한다.
블록 변환-기반 코딩
변환 코딩(transform coding)은 많은 오디오, 이미지 및 비디오 압축 시스템에서 사용되는 압축 기법이다. 미압축된 디지털 이미지 및 비디오는 통상적으로 2차원(2D) 격자로 배열된 이미지 또는 비디오 프레임에서의 위치들에서 화소(picture element) 또는 컬러(color)의 샘플로서 표현 또는 캡처된다. 이것은 이미지 또는 비디오의 공간-영역 표현(spatial-domain representation)이라고 한다. 예를 들어, 통상적인 이미지 형식은 격자로서 배열되어 있는 24-비트 컬러 화소 샘플의 스트림으로 이루어져 있다. 각각의 샘플은, 그 중에서도 특히, RGB 또는 YIQ 등의 컬러 공간 내부에서 격자 내의 픽셀 위치에서의 컬러 성분을 표현하는 숫자이다. 다양한 이미지 및 비디오 시스템은 다양한 서로 다른 컬러, 공간 및 시 간 샘플링 분해능을 사용할 수 있다. 이와 유사하게, 디지털 오디오는 통상적으로 시간-샘플링된 오디오 신호 스트림으로 표현된다. 예를 들어, 통상적인 오디오 형식은 규칙적인 시간 간격으로 취해진 오디오 신호의 16-비트 진폭 샘플의 스트림으로 이루어져 있다.
미압축 디지털 오디오, 이미지 및 비디오 신호는 상당한 저장 및 전송 용량을 소비할 수 있다. 변환 코딩은 신호의 공간-영역 표현을 주파수-영역(또는 다른 유사한 변환 영역) 표현으로 변환하고 이어서 변환-영역 표현의 어떤 일반적으로 덜 지각되는 주파수 성분의 분해능을 감소시킴으로써 디지털 오디오, 이미지 및 비디오의 사이즈를 감소시킨다. 이것은 일반적으로 공간 영역에서의 이미지나 비디오, 또는 시간 영역에서의 오디오의 컬러 또는 공간 분해능을 감소시키는 것과 비교하여 훨씬 덜 지각되는 디지털 신호의 열화를 야기한다.
보다 구체적으로는, 도 1에 도시된 통상적인 블록 변환-기반 코덱(100)은 미압축된 디지털 이미지의 픽셀을 고정-사이즈의 2차원 블록(X1, ... Xn)으로 분할하며, 각각의 블록은 아마도 다른 블록들과 중첩(overlap)된다. 블록 내의 공간 샘플들을, 일반적으로 블록 구간에 걸쳐 대응하는 주파수 대역에서의 디지털 신호의 세기를 나타내는 일련의 주파수(또는 변환) 계수들로 변환하는 공간-주파수 분석을 행하는 선형 변환(120-121)이 각각의 블록에 적용된다. 압축을 위해, 변환 계수들은 선택적으로 양자화(130)되고(즉, 계수값들의 최하위 비트를 누락시키거나 다른 방식으로 고분해능 숫자 세트 내의 값들을 저분해능으로 매핑함으로써 분해능이 감 소되고), 또 엔트로피 또는 가변-길이 코딩되어 압축된 데이터 스트림으로 된다(130). 디코딩 시에, 변환 계수들은 역변환(170-171)되어 원래의 컬러/공간 샘플링된 이미지/비디오 신호(재구성된 블록
Figure 112008010448313-PCT00001
)를 거의 재구성한다.
블록 변환(120-121)은 사이즈 N의 벡터 x에 대한 수학적 연산으로서 정의될 수 있다. 종종, 이 연산은 선형 곱셈으로서, 변환 영역 출력 y = Mx(단, M은 변환 행렬임)을 생성한다. 입력 데이터가 임의적으로 길 때, 그 데이터는 N 사이즈의 벡터들로 세그먼트화되고, 블록 변환이 각각의 세그먼트에 적용된다. 데이터 압축을 위해 가역 블록 변환이 선택된다. 환언하면, 행렬 M 은 가역적이다. 다차원에서(예를 들어, 이미지 및 비디오의 경우), 블록 변환은 통상적으로 분리가능한 연산으로서 구현된다. 행렬 곱셈은 데이터의 각각의 차원(즉, 행 및 열 둘다)을 따라 분리가능하게 적용된다.
압축을 위해, 변환 계수들(벡터 y의 성분들)이 선택적으로 양자화(즉, 계수들의 최하위 비트를 누락시키거나 고분해능 숫자 세트 내의 값들을 저분해능으로 매핑하는 등에 의해 분해능이 감소)되고 또 엔트로피 또는 가변-길이 코딩되어 압축된 데이터 스트림으로 될 수 있다.
디코더(150)에서 디코딩할 시에, 도 1에 도시된 바와 같이, 디코더(150)측에서 이들 연산의 역(inversion)(역양자화/엔트로피 디코딩(160) 및 역블록 변환(170, 171))이 적용된다. 데이터를 재구성하는 동안에, 역행렬 MI(역변환(170-171))가 승수(multiplier)로서 변환 영역 데이터에 적용된다. 변환 영역 데이터에 적용될 때, 역변환은 원래의 시간-영역 또는 공간-영역 디지털 미디어를 거의 재구성한다.
많은 블록 변환-기반 코딩 응용에서, 변환은 양자화 인자(quantization factor)에 따라 손실 및 무손실 압축 둘다를 지원하기 위해 가역적인 것이 바람직하다. 예를 들어, 양자화가 없는 경우(일반적으로 1의 양자화 인자로 표현됨), 가역 변환을 이용하는 코덱은 디코딩 시에 입력 데이터를 정확하게 재현할 수 있다. 그렇지만, 이들 응용에서 가역성이 요구되는 것은 코덱이 설계될 수 있는 변환의 선택을 제한한다.
그 중에서도 특히, MPEG 및 Windows Media 등의 많은 이미지 및 비디오 압축 시스템은 DCT(Discrete Cosine Transform)에 기초한 변환을 이용한다. DCT는 거의 최적인 데이터 압축을 가져오는 양호한 에너지 집중(energy compaction) 특성을 갖는 것으로 알려져 있다. 이들 압축 시스템에서, 개개의 이미지 블록을 재구성하기 위해 압축 시스템의 인코더 및 디코더 둘다에서 재구성 루프에 역DCT(IDCT)가 이용된다.
넓은 범위 변환 계수의 엔트로피 코딩( Entropy Coding of Wide - Range Transform Coefficients )
넓은 동적 범위 입력 데이터는 이미지를 인코딩하는 프로세스 동안 더 넓은 동적 범위 변환 계수가 생성되는 것을 초래한다. 예를 들어, NxN DCT 동작에 의해 생성되는 변환 계수는 원래의 데이터의 동적 범위의 N 배보다 큰 동적 범위를 갖는다. 작은, 또는 단일한 양자화 인자(저손실 또는 무손실 압축을 실현하는 데 이용 됨)로 양자화된 변환 계수의 범위는 또한 커진다. 통계적으로, 이들 계수는 도 2 및 도 3에 도시된 라플라시안 분포를 가진다. 도 2는 넓은 동적 범위 계수에 대한 라플라시안 분포를 나타낸다. 도 3은 통상적으로 좁은 동적 범위 계수에 대한 라플라시안 분포를 나타낸다.
통상의 변환 코딩은 작은 동적 범위의 입력 데이터(통상적으로 8 비트) 및 상대적으로 큰 양자화기(4 이상의 수치 값 등)에 맞춰져 있다. 따라서 도 3은 이런 통상의 변환 코딩에서 변환 계수의 분포를 나타낸다. 또한, 이런 통상의 변환 코딩과 함께 이용되는 엔트로피 코딩은 실행-레벨(run-level) 인코딩의 변형일 수 있고, 연속된 제로는 비-제로(non-zero) 심볼과 함께 인코딩된다. 이는, 심볼 간(inter-symbol) 상관관계를 캡쳐하는 것뿐만 아니라, 연속된 제로들(높은 확률로 일어남)을 나타내는 효과적 수단일 수 있다.
한편, 통상의 변환 코딩은 도 2에 도시된 것과 같은 넓은 동적 범위 분포를 압축하는 것에는 덜 적합하다. 심볼은 임의의 다른 값(즉, 제로에서의 분포 피크값) 보다는 높은 확률로 제로이지만, 정확히 제로가 되는 계수의 확률은 넓은 동적 범위 분포에 대해 아주 작다(miniscule). 결과적으로, 제로들은 빈번히 발생하지 않고, 연속된 비-제로 계수 사이의 제로들의 수에 기초하는 실행 길이(run length) 엔트로피 코딩 기법은 넓은 동적 범위 입력 데이터에 대해서는 비효율적이다.
넓은 동적 범위 분포는 또한, 좁은 범위 분포에 비하여, 증가된 알파벳 심볼을 가진다. 이런 증가된 심볼 알파벳으로 인해, 심볼을 인코딩하는 데 이용되는 엔트로피 테이블(들)은 커질 필요가 있다. 그렇지 않으면, 많은 수의 심볼은 이스 케이프 인코딩으로 종료할 것이고, 이것은 비효율적이다. 더 넓은 테이블은 더 큰 메모리를 필요로 하고, 또한 복잡성을 증가시킬 수 있다.
따라서 통상의 변환 코딩은 좁은 동적 범위 분포를 갖는 입력 데이터에 대해서는 잘 작동하지만, 융통성이 부족하며 넓은 동적 범위 분포에 대해서는 잘 동작하지 않는다.
디지털 미디어 코딩 및 디코딩 기법, 및 본 명세서에 기술된 디지털 미디어 코덱 기법의 실현은 넓은 동적 범위 변환 계수의 보다 효과적인 압축을 달성한다. 예를 들어, 본 명세서에 예시된 한 가지 블록 변환-기반 디지털 미디어 코덱은 넓은 동적 범위 변환 계수를 두 부분(정규화된 계수 및 bin 주소)으로 나타낸다. 정규화된 계수는 넓은 동적 범위의 계수 값들을 bin으로 그룹화하는 것과 관련되고, bin 주소는 bin 내의 계수 값의 인덱스이다. bin 사이즈를 주의 깊게 선택함으로써, 변환 계수의 정규화된 계수 부분은 좁은 범위 변환 계수의 계수 부분과 보다 유사한 확률 분포를 가지며, 이는 가변 길이 엔트로피 코딩에 보다 적합하다.
예시적 코덱은 가변 길이 엔트로피 코딩을 이용하여 정규화된 계수들을 "압축된 비트스트림" 내의 "코어"로 인코딩하고, bin 주소를 고정 길이 코딩을 이용하여 분리된 옵션 계층(생략될 수 있음)으로 인코딩한다. bin 주소 계층이 생략될지라도, 코덱은 비트스트림을 디코딩하고, 입력 디지털 미디어 데이터의 근사를 재구성할 수 있다. 변환 계수들을 bin으로 그룹화하는 것은, 좁은 동적 범위에 대한 변환 계수의 양자화와 유사한 효과를 갖는다.
코덱은 또한 효율적인 가변 길이 엔트로피 코딩에 매우 적합한 확률 분포가 되도록 정규화된 계수를 조정하기 위해 귀납적 적응(backward adaptation)에 기초하여 그룹화의 bin 사이즈를 적응적으로 변동시킨다. 예시적 코덱에서, 적응은 이전 블록들에서의 비-제로 정규화된 계수의 카운트에 기초한다. 이런 방식으로, 적응은 코어 비트스트림 내의 정보에만 의존하고, 이는 bin 주소를 포함하는 계층이 선택적으로 생략될 수 있는 제약을 위반하지 않는다.
이 요약은 이하의 상세한 설명에서 더 기술되는 몇몇 개념을 간단화된 형태로 소개하기 위해 제공된다. 이 요약은 청구된 발명의 주요 특징 또는 필수적인 특징을 확인하기 위한 것이 아니며, 청구된 발명의 범위를 정하는 데 보조 수단으로서 사용하기 위한 것도 아니다.
도 1은 종래 기술의 통상적인 블록 변환-기반 코덱에 대한 블록도.
도 2는 넓은 동적 범위를 갖는 변환 계수의 분포를 나타내는 히스토그램.
도 3은 좁은 범위 계수의 분포를 나타내는 히스토그램.
도 4는 넓은 범위 계수의 적응형 코딩을 구현하는 대표적인 인코더의 흐름도.
도 5는 적응적으로 코딩된 넓은 범위 계수의 디코딩을 구현하는 디코더의 흐름도.
도 6은 도 4의 인코더와 같이, 넓은 범위 계수의 적응형 코딩에 있어서 변환 계수의 그룹화 및 계층화를 예시하는 흐름도.
도 7은 변환 계수를 bin으로 선택적으로 그룹화하기 위해 변환 계수를 인코딩하는 도 4의 인코더에 의한 프로세스를 나타내는 흐름도.
도 8은 도 7의 프로세스를 통해 인코딩된 변환 계수를 재구성하기 위해 도 5의 디코더에 의한 프로세스를 나타내는 흐름도.
도 9는 계수의 엔트로피 코딩을 위해 보다 선택적인 분포를 생성하도록 도 6의 그룹화를 적응적으로 변동시키기 위한 적응 프로세스를 나타내는 흐름도.
도 10 및 도 11은 도 9의 적응 프로세스의 의사-코드 리스팅.
도 12는 도 6의 넓은 범위 계수의 적응형 코딩을 구현하기 위한 적합한 컴퓨팅 환경의 블록도.
이하의 설명은 넓은 범위 변환 계수의 보다 효율적인 엔트로피 코딩을 적응적으로 조정하는 코딩 및 디코딩 기법에 관한 것이다. 이하의 설명은 디지털 미디어 압축 시스템 또는 코덱과 관련한 기법의 예시적인 구현에 대해 기술하고 있다. 디지털 미디어 시스템은 전송 또는 저장을 위해 압축된 형식으로 디지털 미디어 데이터를 코딩하고 재생 또는 기타 처리를 위해 데이터를 디코딩한다. 설명을 위해, 넓은 범위 계수의 적응형 코딩을 구현하는 이 예시적인 압축 시스템은 이미지 또는 비디오 압축 시스템이다. 다른 대안으로서, 이 기법은 또한 기타 2D 데이터에 대한 압축 시스템 또는 코덱 내에 구현될 수 있다. 넓은 범위 계수의 적응형 코딩 기법에서는 디지털 미디어 압축 시스템이 압축된 디지털 미디어 데이터를 특정의 코딩 형식으로 인코딩해야 할 필요는 없다.
1. 인코더/디코더
도 4 및 도 5는 대표적인 2차원(2D) 데이터 인코더(400) 및 디코더(500)에서 이용되는 프로세스의 일반화된 도면이다. 이들 도면은 넓은 범위 계수의 적응형 코딩을 구현하는 2D 데이터 인코더 및 디코더를 포함하는 압축 시스템의 일반화된 또는 간단화된 예시를 제공한다. 넓은 범위 계수의 적응형 코딩을 사용하는 대안의 압축 시스템에서, 이 대표적인 인코더 및 디코더에 나타낸 것들보다 더 많은 또는 더 적은 프로세스가 2D 데이터 처리를 위해 사용될 수 있다. 예를 들어, 어떤 인코더/디코더는 컬러 변환(color conversion), 컬러 형식(color format), 확장가능 코딩(scalable coding), 무손실 코딩(lossless coding), 매크로블록 모드(macroblock mode), 기타 등등도 포함할 수 있다. 압축 시스템(인코더 및 디코더)은 양자화(이 양자화는 무손실(lossless)에서 손실(lossy)까지 변하는 양자화 파라미터에 기초할 수 있음)에 따라 2D 데이터의 무손실 및/또는 손실 압축을 제공할 수 있다.
2D 데이터 인코더(400)는 인코더에 입력으로서 제공되는 2D 데이터(410)의 더 콤팩트한 표현(통상적인 입력의 경우)인 압축된 비트스트림(420)을 생성한다. 예를 들어, 2D 데이터 입력은 이미지, 비디어 시퀀스의 프레임, 또는 2차원을 갖는 기타 데이터일 수 있다. 2D 데이터 인코더는 입력 데이터를 매크로블록(이 대표적인 인코더에서 그 사이즈는 16x16 픽셀임)으로 타일화(tiling)(430)한다. 2D 데이터 인코더는 각각의 매크로블록을 4x4 블록으로 추가적으로 타일화한다. "순방향 중첩(forward overlap)" 연산자(440)가 블록들 사이의 각각의 경계에 적용되고, 그 후에 각각의 4x4 블록이 블록 변환(450)을 사용하여 변환된다. 이 블록 변환(450)은, 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression)"인 Srinivasan의 미국 특허 출원 제11/015,707호에 기술되어 있는 가역적이고 척도 없는 2D 변환(reversible, scale-free 2D transform)일 수 있다. 중첩 연산자(340)는, 2004년 12월 17일자로 출원된 발명의 명칭이 "효율적인 무손실 데이터 압축을 위한 가역 중첩 연산자(Reversible Overlap Operator for Efficient Lossless Data Compression)"인 Tu 등의 미국 특허 출원 제11/015,148호 및 2005년 1월 14일자로 출원된 발명의 명칭이 "중복 이중 직교 변환을 위한 가역 2D 프리/포스트-필터링(Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform)"인 Tu 등의 미국 특허 출원 제11/035,991호에 기술되어 있는 가역 중첩 연산자(reversible overlap operator)일 수 있다. 다른 대안으로서, 이산 코사인 변환(discrete cosine transform) 또는 기타 블록 변환 및 중첩 연산자가 사용될 수 있다. 변환에 뒤이어서, 각각의 4x4 변환 블록의 DC 계수(460)는 유사한 처리 연쇄(processing chain)(타일링, 순방향 중첩, 그에 뒤이은 4x4 블록 변환)를 거친다. 그 결과 얻어지는 DC 변환 계수 및 AC 변환 계수가 양자화(470)되고, 엔트로피 코딩(entropy coding)(480)되며, 패킷화(packetization)(490)된다.
디코더는 반대의 프로세스(reverse process)를 수행한다. 디코더 측에서는, 변환 계수 비트가 그 각자의 패킷으로부터 추출(510)되고, 그 패킷으로부터 이들 계수 자체가 디코딩(520)되고 역양자화(530)된다. 역변환을 적용함으로써 DC 계수(540)가 재생성되고, DC 블록 경계에서 적용되는 적당한 평활화 연산자(smoothing operator)를 사용하여 DC 계수의 평면이 "역중첩(inverse overlapping)"된다. 그 다음에, 4x4 역변환(550)을 DC 계수에 적용함으로써 전체 데이터가 재생성되고, AC 계수(542)가 비트스트림으로부터 디코딩된다. 마지막으로, 결과 이미지 평면에서의 블록 경계가 역 중첩 필터링(inverse overlap filtering)(560)된다. 이것은 재구성된 2D 데이터 출력을 생성한다.
예시적인 구현에서, 인코더(400)(도 4)는 입력 이미지를 압축된 비트스트림(420)(예를 들어, 파일)으로 압축하고, 디코더(500)(도 5)는, 무손실 또는 손실 코딩이 이용되는지에 기초하여, 원래의 입력 또는 그의 근사값을 재구성한다. 인코딩 프로세스는 이하에 기술되는 순방향 중첩 변환(LT)의 적용을 포함하며, 이 변환은 역시 이하에서 더 상세히 기술되는 가역 2차원 프리/포스트-필터링으로 구현된다. 디코딩 프로세스는 가역 2차원 프리/포스트-필터링을 사용하여 역 중첩 변환(ILT)을 적용하는 것을 포함한다.
예시된 LT 및 ILT는 정확한 의미에서 서로의 역(inverse)이고, 따라서 이를 합하여 가역 중첩 변환(reversible lapped transform)이라고 할 수 있다. 가역 변환으로서, LT/ILT 쌍은 무손실 이미지 압축을 위해 사용될 수 있다.
예시된 인코더(400)/디코더(500)에 의해 압축되는 입력 데이터(410)는 다양한 컬러 형식(예를 들어, RGB/YUV4:4:4, YUV4:2:2 또는 YUV4:2:0 컬러 이미지 형식)의 이미지일 수 있다. 통상적으로, 입력 이미지는 항상 루미넌스(Y) 성분을 갖 는다. 입력 이미지가 RGB/YUV4:4:4 또는 YUV4:2:0 이미지인 경우, 그 이미지는 또한 U 성분 및 V 성분 등의 크로미넌스(chrominance) 성분도 갖는다. 이미지의 개별적인 컬러 평면 또는 성분은 서로 다른 공간 분해능(spatial resolution)을 가질 수 있다. 예를 들어, YUV4:2:0 컬러 형식의 입력 이미지의 경우, U 및 V 성분의 폭 및 높이는 Y 성분의 1/2이다.
상기한 바와 같이, 디코더(400)는 입력 이미지 또는 화상을 매크로블록으로 타일화한다. 예시적인 구현에서, 인코더(400)는 Y 채널에서 입력 이미지를 16x16 매크로블록(컬러 형식에 따라 U 및 V 채널에서 16x16또는 8x8 영역일 수 있음)으로 타일화한다. 각각의 매크로블록 컬러 평면은 4x4 영역 또는 블록으로 타일화된다. 따라서, 이러한 예시적인 인코더 구현을 위해 이하의 방식으로 다양한 컬러 형식에 대해 매크로블록이 작성된다.
1. 그레이스케일 이미지의 경우, 각각의 매크로블록은 16개의 4x4 루미넌스(Y) 블록을 포함한다.
2. YUV4:2:0 형식 컬러 이미지의 경우, 각각의 매크로블록은 16개의 4x4 Y 블록 및 각각 4x4인 4개의 크로미넌스(U 및 V) 블록을 포함한다.
3. RGB 또는 YUV4:4:4 컬러 이미지의 경우, 각각의 매크로블록은 Y, U 및 V 채널 각각에 16개의 블록을 포함한다.
2. 넓은 범위 계수의 적응형 코딩( Adaptive Coding of Wide - Range Coefficients )
넓은 동적 범위 데이터, 특히 상관성이 제거된(decorrelated) 변환 데이터 (도 4의 인코더의 계수(460, 462) 등)의 경우에, 상당한 수의 낮은 차수 비트는 예측 불가능하고, "노이지(nosiy)"하다. 즉, 효율적인 엔트로피 코딩에 이용될 수 있는 낮은 차수 비트들에서는 상관성이 많지 않다. 그 비트들은 높은 엔트로피를 갖는데, 인코딩되는 매 비트마다 1 비트에 달한다.
2.1 그룹화( Grouping )
또한, 도 3에 도시된 넓은 범위 변환 계수의 라플라시안 확률 분포 함수는,
Figure 112008010448313-PCT00002
에 의해 주어진다.
(편의상, 변환 계수에 대응하는 랜덤 변수는 연속 값으로 취급된다). 넓은 동적 범위 데이터의 경우, λ는 작고, 절대 평균(absolute mean) 1/λ는 크다. 이 분포의 기울기는 ±1/2(λ2) 내에서 경계 지워지고, 이는 매우 작다. 이는 x인 변환 계수의 확률은 작은 이동(shift) ξ에 대해 x+ξ의 확률에 매우 근접한다는 것을 의미한다. 이산 영역(discrete domain)에서, 이는 "인접 값 j 와 j+1에 대해 취하는 변환 계수의 확률은 거의 동일하다"라는 주장으로 번역된다.
도 6을 참조해 보면, 넓은 범위 계수의 적응형 코딩은 알파벳의 연속하는 심볼들을 "N개의 심볼"의 "bin"으로 그룹화(610)하는 것을 수행한다. bin 마다 심볼의 수는 임의의 수 N일 수 있다. 하지만, 실용성을 위해, N이라는 수는, bin 내의 계수의 인덱스 또는 주소를 고정 길이 코드로서 효율적으로 인코딩할 수 있도록 2 의 거듭 제곱(즉, N = 2k)이 바람직하다. 예를 들어, 소정의 심볼이 쌍의 인덱스로서 식별될 수 있도록, 심볼들은 쌍 내의 심볼의 인덱스와 함께 쌍으로 그룹화될 수 있다.
이런 그룹화는, N을 적절히 선택함으로써 넓은 범위 계수에 대한 bin 인덱스의 확률 분포가 예컨대, 도 3에 도시된 것인 좁은 범위 데이터의 확률 분포에 보다 근접하여 유사해진다는 점에서, 이점을 갖는다. 그룹화는 수학적으로 양자화 연산과 비슷하다. 이는, 좁은 범위 확률 분포를 갖는 데이터로 최상으로 동작하는 가변 길이 엔트로피 코딩 기법을 이용하여, bin 인덱스가 효율적으로 인코딩될 수 있다는 것을 의미한다.
그 후, 계수들을 bin으로 그룹화한 것에 기초하여, 인코더는 변환 계수(615)를 그 bin의 인덱스(또는 본 명세서에서는 정규화된 계수(620)라 함), 및 bin 내의 그 주소(본 명세서에서는 bin 주소(625)라 함)를 이용하여 인코딩할 수 있다. 정규화된 계수는 가변 길이 엔트로피 인코딩을 이용하여 인코딩되고, 반면에 bin 주소는 고정 길이 코드에 의해서 인코딩된다.
N(또는 동등하게는, bin 주소의 고정 길이 코딩을 위한 비트 수 k)를 선택하는 것은, 그룹화의 세분화 정도(granularity)를 결정한다. 일반적으로, 넓은 범위의 변환 계수에 대하여, 큰 값의 k가 선택되어야 한다. k를 주의 깊게 선택할 때, 정규화된 계수 Y는, Y에 대한 엔트로피 코딩 스킴과 일치되는 높은 확률로, 제로이다.
하기에 기술된 바와 같이, 값 k는 인코더 및 디코더에서 적응적으로(귀납적 적응 방식으로) 변동될 수 있다. 보다 구체적으로, 인코더 및 디코더 둘 다에서 값 k는 이전에 인코딩된/디코딩된 데이터에만 기초하여 변동한다.
도 7에 도시된 이 인코딩의 일 특정 예에서, 인코더는 변환 계수 X를 다음과 같이 인코딩한다. 초기 동작(710)에서, 인코더는 변환 계수에 대한 정규화된 계수 Y를 산출한다. 이 예시적 구현에서, 정규화된 계수 Y는, 소정의 bin 사이즈 N = 2k를 선택하는 경우, Y=sign(X)*floor(abs(X)/N)로서 정의된다. 인코더는, 심볼 Y를 엔트로피 코드를 이용하여, 다른 심볼과는 개별적으로 또는 공동으로 인코딩한다(동작(720)). 다음에, 동작(730)에서, 인코더는 변환 계수 X의 bin 주소(Z)를 판정한다. 이런 예시적 구현에서, bin 주소는 abs(X)를 bin 사이즈 N으로 정수 나눗셈한 나머지이며, 즉 Z=abs(X)%N이다. 동작(740)에서, 인코더는 이 값을 k 비트 고정 길이 코드로 인코딩한다. 또한, 비-제로 변환 계수의 경우에, 인코더는 또한 부호(sign)를 인코딩한다. 보다 구체적으로는, 동작(750-760)에서 지시된 바와 같이, 인코더는 정규화된 계수가 비-제로일 때 정규화된 계수 (Y)의 부호를 인코딩한다. 또한, 정규화된 계수가 제로이고 변환 계수가 비-제로인 경우에, 인코더는 변환 계수 (X)의 부호를 인코딩한다. 정규화된 계수가 가변 길이 엔트로피 코드를 이용하여 인코딩되기 때문에, 그것은 본 명세서에서 가변 길이 부분으로 지칭되고, bin 주소 (Z)는 또한 고정 길이 부분으로 지칭된다. 다른 대안적인 구현에서는, 변환 계수에 대한 정규화된 계수, bin 주소, 및 부호의 수학적인 정의는 다양할 수 있다.
이 예를 진행해 보면, 도 8은 프로세스(700)(도 7)에 의해 인코딩되었던 변환 계수를 재구성하기 위한 디코더(500)(도 5)에 의한 예시적 프로세스(800)를 나타낸다. 동작(810)에서, 디코더는 정규화된 계수 (Y)를 압축된 비트스트림(420)(도 5)으로부터, 블록 코딩 프로세스에서 정의된 것과 마찬가지로 다른 심볼과는 개별적으로 또는 공동으로, 디코딩한다. 동작(820)에서 디코더는 또한 bin 주소 및 부호에 대한 k-비트 코드 워드(인코딩되어 있을 때)를 압축된 비트스트림으로부터 판독한다. 그런 다음, 동작(830 내지 872)에서, 디코더는 변환 계수를 다음과 같이 재구성한다:
1. Y>0 일 때(동작(830)), 변환 계수는 X=Y*N+Z와 같이 재구성된다(동작(831)).
2. Y<0 일 때(동작(840)), 변환 계수는 X=Y*N-Z와 같이 재구성된다(동작(841)).
3. Y=0이고 Z=0일 때(동작(850)), 변환 계수는 X=0과 같이 재구성된다(동작(851)).
4. Y=0이고 Z≠0일 때, 디코더는 또한 인코딩된 부호 (S)를 압축된 비트스트림으로부터 판독한다(동작(860)). 부호가 양(positive)(S=0)일 때(동작(870)), 변환 계수는 X=Z로서 재구성된다(동작(871)). 부호가 음(negative)(S=1)일 때, 변환 계수는 X=-Z로서 재구성된다(동작(872)).
2.2 계층화( layering )
도 6을 다시 참조해 보면, 인코더 및 디코더는 고정 길이 코딩된 bin 주소들(625) 및 부호를 압축된 비트스트림(420)(도 4) 내의 분리된 코딩된 계층(본 명세서에서는 "플렉스비트(Flexbits)" 계층이라 함)으로 추상화하는 것이 바람직하다. 정규화된 계수(620)는 코어 비트스트림(640) 계층으로 인코딩된다. 이는 인코더 및/또는 디코더에게 소망에 따라, 비트 속도 또는 기타 제약사항을 만족시키도록 인코딩된 것 중 이 플렉스비트 부분을 다운 그레이드(downgrade)시키거나, 또는 완전히 누락시키는 옵션을 허용한다. 인코더가 플렉스비트 계층을 완전히 누락시키는 경우조차도, 압축된 비트스트림은 열화된 품질이기는 하나, 여전히 디코딩될 것이다. 디코더는 여전히 정규화된 계수 부분만으로부터 신호를 재구성할 수 있다. 이는 인코더에서 보다 큰 단위 양자화(470)(도 4)를 적용시키는 것과 효과적으로 유사하다. bin 주소 및 부호를 분리된 플렉스비트 계층으로 인코딩하는 것은, 또한 몇몇 인코더/디코더 구현에서, 보다 긴 가변 길이 엔트로피 코딩(예컨대, 산술적 코딩(arithmetic coding), 렘펠-지브(Lempel-Ziv), 브로우스-휠러(Burrows-Wheeler) 등)이 이 계층 내의 데이터에 보다 향상된 압축을 위해 적용될 수 있다는 점에서, 잠재적으로 유익할 수 있다.
계층화를 위해, 플렉스비트 부분을 포함하는 압축된 비트스트림의 섹션은 비트스트림 내의 분리된 계층 헤더 또는 기타 지시(indication)에 의해 신호되어서, 디코더는 플렉스비트 계층(645)(생략되지 않은 경우)을 코어 비트스트림(640)으로부터 식별 및 분리(즉, 구문분석(parse))할 수 있다.
계층화는 귀납적 적응형 그룹화(다음의 섹션에 기술되어 있음)의 설계 시에 다른 과제를 제시한다. 플렉스비트 계층이 주어진 비트스트림에 존재 또는 부재할 수 있기 때문에, 귀납적 적응형 그룹화 모델은 플렉스비트 계층 내의 임의의 정보를 신뢰성 있게 지칭할 수 없다. 고정 길이 코드 비트 수 k(bin 사이즈 N=2k에 대응함)를 판정하는 데 필요한 모든 정보는 인과 관계의(causal), 코어 비트스트림에 있어야 한다.
2.3 적응( Adaptation )
인코더 및 디코더는 또한, 인코딩 및 디코딩 동안, 고정 길이 코드 비트 수 k, 및 이에 따른 전술된 그룹화의 bin 사이즈 N의 선택을 적응적으로 조정하기 위한 귀납적 적응 프로세스를 제공한다. 일 구현에서, 적응 프로세스는, 값 k가 라플라시안 파라미터 λ로부터 도출되도록, 변환 계수를 라플라시안 분포로서 모델링하는 것에 기초할 수 있다. 하지만, 이런 저품질의 모델(sophisticated model)은, 후속 블록에 대한 분포를 모델링하기 전에 도 6에서 (코어 비트스트림(640) 내의 정규화된 계수와 플렉스비트 계층(645) 내의 bin 주소/부호로부터 변환 계수를 재구성하는) 그룹화(610)의 역변환을 디코더가 수행할 것을, 요구할 것이다. 이 요건은, 디코더가 압축된 비트스트림(420)으로부터 플렉스비트 계층을 누락시키는 것을 허용해야 하는 계층화 제약사항을 위반할 것이다.
도 9에 도시된 예시적 구현에서의 적응 프로세스(900)는, 변환 계수의 1/4 주위에 비-제로가 존재할 때, 보다 최적의 변환 계수의 실행-길이 인코딩이 달성된다는 관측에, 대신 기초한다. 따라서, 정규화된 계수의 3/4 주위에 제로가 존재하 는 "스위트-스팟(sweet-spot)" 위치를 향해 그룹화를 조정하는 데 이용될 수 있는 적응 파라미터는, 양호한 엔트로피 코딩 성능을 제공할 것이다. 이에 따라, 블록에서 비-제로 정규화된 계수의 수는 예시적 구현에서 적응 파라미터로서 이용된다. 이 적응 파라미터는 그것이 코어 비트스트림 내에 포함된 정보에만 의존한다는 점에서 이점을 가지며, 이는 변환 계수가 플렉스비트 계층이 생략된 채로 여전히 디코딩될 수 있다는 계층화 제약사항을 만족시킨다. 본 프로세스는, 현재 블록의 인코딩/디코딩이 이전 블록(들)로부터의 정보에 기초할 때, 적응 모델이 적용된다는 점에서, 귀납적 적응이다.
그 적응 프로세스에서, 예시적 인코더 및 디코더는 귀납적 적응 기반으로 적응을 수행한다. 즉, 적응 프로세스의 현재의 반복은, 이전 블록 또는 매크로블록에서와 마찬가지로, 인코딩 또는 디코딩 프로세스에서 이전에 관측된 정보에 기초한다. 예시적 인코더 및 디코더에서, 적응 갱신은 주어진 변환 대역(transform band)에 대한 매크로블록마다 한번 씩 발생하고, 이는 대기시간 및 상호 의존성을 최소화하기 위한 것이다. 다른 코덱 구현에서는, 예컨대, 각각의 변환 블록 이후에, 서로 다른 간격으로 적응을 수행할 수 있다.
예시적 인코더 및 디코더에서, 적응 프로세스(900)는 값 k를 갱신한다. 비-제로 정규화된 계수의 숫자가 너무 크다면, 이 숫자가 나중 블록에서 누락되도록 k가 증가된다. 비-제로 정규화된 계수의 숫자가 너무 작다면, bin 사이즈 N이 더 작기 때문에 후속 블록이 보다 많은 비-제로 정규화된 계수를 생성하게 될 것이라는 예측으로, k는 감소된다. 예시적 적응 프로세스는 k 값을 숫자들의 세트 {0, 1,...,16} 내에 있도록 제한하지만, 다른 구현에서는 다른 범위의 k 값을 사용할 수 있다. 각각의 적응 갱신에서, 인코더 및 디코더는 k를 증가 또는 감소시키거나, 또는 변동시키지 않고 그대로 둘 수 있다. 예시적 인코더 및 디코더는 k를 하나씩 증가 또는 감소시키지만, 다른 구현에서는 다른 스텝 사이즈를 이용할 수 있다.
예시적 인코더 및 디코더에서의 적응 프로세스(900)는 또한 내부 모델 파라미터 또는 상태 변수(M)를 이용하여 히스테리시스(hysteresis) 효과로 그룹화 파라미터 k의 갱신을 제어한다. 이 모델 파라미터는, 그룹화 파라미터에서 빠른 변동을 야기하지 않기 위해, 그룹화 파라미터 k를 갱신하기 전에 래그(lag)를 제공한다. 예시적 적응 프로세스에서의 모델 파라미터는, -8부터 8까지의 범위의 16 정수 스텝을 갖는다.
도 9를 참조해 보면, 예시적 적응 프로세스(900)는 다음과 같이 진행한다. 이 예시적 적응 프로세스는 또한 도 10 및 도 11의 의사-코드 리스팅에 상술되어 있다. 동작(910, 990)에서 지시된 바와 같이, 예시적 인코더 및 디코더에서의 적응 프로세스는, AC 및 DC 계수 등과 같은 루미넌스 대역 및 크로미넌스 대역을 포함하는 압축된 비트스트림으로 표현되는 변환 대역 각각에 대해 개별적으로 수행된다. 다른 코덱에서는 변환 대역의 수를 변동시킬 수 있고, 또한 적응 프로세스를 변환 대역에 개별적으로 또는 공동으로 적응시킬 수 있다.
그 후, 동작(920)에서, 적응 프로세스는 바로 이전에 인코딩된/디코딩된 매크로블록 내의 변환 대역의 비-제로 정규화된 계수의 수를 카운트한다. 동작(930) 에서, 이 미가공 카운트는 정해진 사이즈 영역 내의 정수화된 비-제로 계수의 수를 반영하도록 정규화된다. 그 후, 적응 프로세스는 원하는 모델로부터 카운트의 편차(즉, 계수의 1/4이 비-제로가 되는 경우의 "스위트-스팟(sweet-spot)")을 산출한다(동작(940)). 예를 들어, 도 4에 도시된 예시적 인코더에서 AC 계수의 매크로블록은 240개의 계수를 가진다. 그래서, 원하는 모델은 240개의 계수 중에서 70개가 비-제로가 되는 경우이다. 편차는 또한 스케일링되고, 쓰레스홀딩되고, 내부 모델 파라미터를 갱신하는 데 사용된다.
그 후, 동작(960, 965, 970, 975)에서, 적응 프로세스는 내부 모델 파라미터의 임의의 변동에 따르도록 k 값을 적응시킨다. 모델 파라미터가 음의 임계값보다 작으면, k 값은 감소된다(그 허용가능한 경계 내에서). 이런 적응은 보다 많은 비-제로 계수를 생성할 것이다. 한편, 모델 파라미터가 양의 임계값을 초과하면, k 값은 증가된다(그 허용가능한 경계 내에서). 이런 적응은 보다 적은 비-제로 계수를 생성할 것이다. 그렇지 않다면, k 값은 변동되지 않고 그대로이다.
다시, 동작(910, 980)에서 지시된 바와 같이, 적응 프로세스는, 크로미넌스 및 루미넌스 채널들에 대해 개별적으로 반복되는 것과 마찬가지로, 데이터의 각각의 채널과 부-대역(sub-band)에 대해 개별적으로 반복된다.
예시적 적응 프로세스(900)는 도 10 및 도 11에 도시된 의사-코드 리스팅(1000)에 더 상술되어 있다.
3. 컴퓨팅 환경
전술된 인코더(400)(도 4) 및 디코더(500)(도 5), 및 넓은 범위 계수의 적응 형 코딩/디코딩을 위한 기법들은, 여러 예들 중에서도, 컴퓨터; 이미지 및 비디오 레코딩, 전송 및 수신 장비; 휴대용 비디오 플레이어; 화상 회의(video conferencing); 기타 등등을 비롯한 디지털 미디어 신호 처리가 수행되는 다양한 장치들 중 임의의 것 상에서 수행될 수 있다. 디지털 미디어 코딩 기법은 하드웨어 회로로는 물론 도 12에 도시된 것 등의 컴퓨터 또는 기타 컴퓨팅 환경 내에서 실행되는 디지털 미디어 처리 소프트웨어로도 구현될 수 있다.
도 12는 기술된 실시예들이 구현될 수 있는 적당한 컴퓨팅 환경(1200)의 일반화된 예를 나타낸 것이다. 컴퓨팅 환경(1200)은 본 발명의 용도 또는 기능성의 범위에 관한 어떤 제한을 암시하기 위한 것이 아닌데, 그 이유는 본 발명이 다양한 범용 또는 특수 목적의 컴퓨팅 환경에서 구현될 수 있기 때문이다.
도 12를 참조하면, 컴퓨팅 환경(1200)은 적어도 하나의 처리 장치(1210) 및 메모리(1220)를 포함한다. 도 12에서, 이 가장 기본적인 구성(1230)은 점선 내에 포함되어 있다. 처리 장치(1210)는 컴퓨터 실행가능 명령어를 실행하고 실제 프로세서 또는 가상 프로세서일 수 있다. 다중-처리 시스템에서, 처리 능력을 향상시키기 위해 다수의 처리 장치가 컴퓨터 실행가능 명령어를 실행한다. 메모리(1220)는 휘발성 메모리(예를 들어, 레지스터, 캐쉬, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래쉬 메모리, 기타 등등), 또는 이 둘의 어떤 조합일 수 있다. 메모리(1220)는 기술된 디지털 미디어 인코딩/디코딩 및 넓은 범위 계수 인코딩/디코딩 기법을 구현하는 소프트웨어(1280)를 저장한다.
컴퓨팅 환경은 부가적인 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환 경(1200)은 저장 장치(1240), 하나 이상의 입력 장치(1250), 하나 이상의 출력 장치(1260) 및 하나 이상의 통신 접속(1270)을 포함한다. 버스, 컨트롤러, 또는 네트워크 등의 상호접속 메카니즘(도시 생략)은 컴퓨팅 환경(1200)의 컴포넌트들을 상호 접속시킨다. 통상적으로, 운영 체제 소프트웨어(도시 생략)는 컴퓨팅 환경(1200)에서 실행되는 기타 소프트웨어에 동작 환경을 제공하고, 컴퓨팅 환경(1200)의 컴포넌트들의 동작들을 조정한다.
저장 장치(1240)는 이동식 또는 비이동식일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 컴퓨팅 환경(1200) 내에서 액세스될 수 있고 또 정보를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(1240)는 기술된 인코더/디코더, 및 넓은 범위 계수 인코딩/디코딩 기법들을 구현하는 소프트웨어(1280)에 대한 명령어를 저장한다.
입력 장치(들)(1250)는 키보드, 마우스, 펜, 또는 트랙볼 등의 터치 입력 장치(touch input device), 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(1200)에 입력을 제공하는 다른 장치일 수 있다. 오디오의 경우, 입력 장치(들)(1250)는 아날로그 또는 디지털 형태로 오디오 입력을 받는 사운드 카드 또는 이와 유사한 장치, 또는 컴퓨팅 환경에 오디오 샘플을 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(1260)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(1200)으로부터의 출력을 제공하는 다른 장치일 수 있다.
통신 접속(들)(1270)은 통신 매체를 통해 다른 컴퓨팅 개체로의 통신을 가능하게 해준다. 통신 매체는 컴퓨터 실행가능 명령어, 압축된 오디오 또는 비디오 정보, 또는 기타 데이터 등의 정보를 피변조 데이터 신호로 전달한다. 피변조 데이터 신호란 신호에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호를 말한다. 제한이 아닌 예로서, 통신 매체는 전기, 광학, RF, 적외선, 음향 또는 기타 반송파로 구현되는 유선 또는 무선 기술을 포함한다.
본 명세서에 기술된 디지털 미디어 처리 기법들은 일반적으로 컴퓨터 판독가능 매체와 관련하여 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 제한이 아닌 예로서, 컴퓨팅 환경(1200)에서, 컴퓨터 판독가능 매체는 메모리(1220), 저장 장치(1240), 통신 매체, 및 상기한 것들 중 임의의 것의 조합을 포함한다.
본 명세서에서의 디지털 미디어 처리 기법들은 일반적으로 대상 실제 또는 가상 프로세서(target real or virtual processor) 상의 컴퓨팅 환경에서 실행되는 프로그램 모듈에 포함되어 있는 것 등의 컴퓨터 실행가능 명령어와 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 객체, 클래스, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 프로그램 모듈들의 기능이 다양한 실시예에서 원하는 바대로 프로그램 모듈들 간에 결합되거나 분할될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령어는 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
설명을 위해, 상세한 설명은 컴퓨팅 환경에서의 컴퓨터 동작들을 기술하기 위해 "판정한다", "발생한다", "조정한다" 및 "적용한다"와 같은 용어들을 사용한다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 상위 레벨 추상화이며, 사람에 의해 수행되는 동작들과 혼동되어서는 안된다. 이들 용어에 대응하는 실제의 컴퓨터 동작들은 구현에 따라 다르다.
본 명세서에 기술된 발명의 많은 가능한 변형들을 고려하여, 이하의 청구항 및 그의 등가물의 범위 내에 속할 수 있는 모든 이러한 실시예들을 우리의 발명으로 청구한다.

Claims (20)

  1. 디지털 미디어 데이터를 인코딩하는 방법으로서,
    디지털 미디어 데이터의 블록들에 변환을 적용하여 블록 각각에 대한 변환 계수 세트(460, 462)를 생성하는 단계(450);
    복수의 계수 값을 복수의 계수 그룹으로 그룹화하기 위해, 블록의 변환 계수(615)의 정규화된 부분(620) 및 주소 부분(625)을 판정하는 단계 - 상기 정규화된 부분은 각각의 변환 계수의 값을 포함하는 그룹을 나타내고, 상기 주소 부분은 그 그룹 내의 각각의 변환 계수의 값의 주소를 나타냄 -;
    변환 계수의 정규화된 부분을 가변 길이 엔트로피 코딩을 이용하여 압축된 비트스트림으로 인코딩하는 단계(720); 및
    변환 계수의 주소 부분을 고정 길이 코딩을 이용하여 상기 압축된 비트스트림으로 인코딩하는 단계(740)
    를 포함하는, 디지털 미디어 데이터 인코딩 방법.
  2. 제1항에 있어서,
    상기 복수의 계수 그룹이 2의 거듭 제곱 수와 동일한 계수 값들의 갯수를 포함하도록 블록에 대한 그룹화를 선택하는 단계를 더 포함하는, 디지털 미디어 데이터 인코딩 방법.
  3. 제2항에 있어서,
    상기 변환 계수의 정규화된 부분 및 주소 부분을 판정하는 단계는,
    변환 계수(X)의 정규화된 부분(Y)를 제1 수학식, Y=sign(X)*floor(abs(X)/N)에 따라 판정하는 단계(여기서 N은 그룹마다의 계수 값들의 갯수); 및
    상기 변환 계수의 주소 부분(Z)을 제2 수학식, Z=abs(X)%N에 따라 판정하는 단계를 포함하는, 디지털 미디어 데이터 인코딩 방법.
  4. 제3항에 있어서,
    상기 정규화된 부분은 제로이고 상기 주소 부분은 비-제로인 경우에, 상기 변환 계수의 부호(sign)를 압축된 비트스트림으로 인코딩하고, 그렇지 않은 경우에는, 상기 부호를 상기 압축된 비트스트림으로 인코딩하는 것을 생략하는 단계를 더 포함하는, 디지털 미디어 데이터 인코딩 방법.
  5. 제4항의 방법에 따라 인코딩된 압축된 비트스트림을 담고 있는 적어도 하나의 컴퓨터 판독가능 기록 매체.
  6. 제3항의 방법에 따라 인코딩된 디지털 미디어 데이터를 디코딩하는 방법으로서,
    변환 계수의 정규화된 부분 및 주소 부분을 상기 압축된 비트스트림으로부터 디코딩하는 단계;
    상기 정규화된 부분이 제로보다 작은 경우에, 제3 수학식, X=Y*N+Z에 따라 변환 계수를 재구성하는 단계;
    상기 정규화된 부분이 제로보다 큰 경우에, 제4 수학식, X=Y*N-Z에 따라 변환 계수를 재구성하는 단계;
    상기 정규화된 부분 및 상기 주소 부분이 둘 다 제로인 경우에, 상기 변환 계수 역시 제로이도록 재구성하는 단계; 및
    상기 정규화된 부분이 제로이고 상기 주소 부분이 비-제로인 경우에, 부호를 상기 압축된 비트스트림으로부터 판독하고, 상기 변환 계수를 상기 주소 부분 및 부호의 함수로서 재구성하는 단계
    를 포함하는, 디지털 미디어 데이터 디코딩 방법.
  7. 제1항에 있어서,
    상기 압축된 비트스트림을 다중-계층 비트스트림 신택스 구조(multi-layer bitstream syntax structure)에 따라 인코딩하는 단계 - 상기 신택스 구조는 코어 부분 및 옵션 계층을 포함하고, 상기 코어 부분은, 옵션 계층을 참조하지 않고 상기 압축된 비트스트림의 코어 부분에만 기초하여 상기 디지털 미디어 데이터의 표현이 디코딩 및 재구성될 수 있도록, 충분한 정보를 포함함 -;
    상기 변환 계수의 정규화된 부분을 상기 압축된 비트스트림의 코어 부분으로 인코딩하는 단계; 및
    상기 변환 계수의 주소 부분을 상기 압축된 비트스트림의 옵션 계층으로 인 코딩하는 단계
    를 더 포함하는, 디지털 미디어 데이터 인코딩 방법.
  8. 제7항의 방법에 따라 인코딩된 압축된 비트스트림을 담고 있는 적어도 하나의 컴퓨터 판독가능 기록 매체.
  9. 제7항에 있어서,
    상기 변환 계수의 고정 길이 코딩된 주소 부분에 대해 후속 엔트로피 코딩을 수행하는 단계를 더 포함하는, 디지털 미디어 데이터 인코딩 방법.
  10. 제7항에 있어서,
    적어도 하나의 이전 블록의 변환 계수 값들의 관측된 확률 분포 특징에 기초하여 현재의 블록에 적용되는 그룹화를 적응적으로 변동시키는 단계를 더 포함하는, 디지털 미디어 데이터 인코딩 방법.
  11. 제10항에 있어서,
    상기 그룹화를 적응적으로 변동시키는 단계는 상기 압축된 비트스트림의 코어 부분에 포함된 정보에만 기초하는, 디지털 미디어 데이터 인코딩 방법.
  12. 제1항에 있어서,
    적어도 하나의 이전 블록의 변환 계수 값들의 관측된 확률 분포 특징에 기초하여 현재의 블록에 적용되는 그룹화를 적응적으로 변동시키는 단계를 더 포함하는, 디지털 미디어 데이터 인코딩 방법.
  13. 제12항에 있어서,
    상기 그룹화를 적응적으로 변동시키는 단계는,
    상기 적어도 하나의 이전 블록 내의 비-제로 변환 계수의 발생을 카운트하는 단계; 및
    상기 적어도 하나의 이전 블록에서 상기 비-제로 정규화된 부분을 갖는 변환 계수의 카운트에 기초하여 상기 현재의 블록에 적용되는 그룹화에서의 계수 그룹들의 사이즈를 조정함으로써, 가변 길이 코딩을 이용하여 변환 계수의 정규화된 부분을 보다 효율적으로 압축하는 데에 보다 적합하게 되는, 상기 현재의 블록에서의 변환 계수의 정규화된 부분의 확률 분포를 보다 적합하게 생성하는 단계
    를 포함하는, 디지털 미디어 데이터 인코딩 방법.
  14. 제13항에 있어서,
    상기 그룹화를 적응적으로 변동시키는 단계는,
    상기 변환 계수의 비-제로 정규화된 부분의 카운트에서의 트렌드(trend)가 임계값보다 낮은 것으로 검출하면, 현재 블록에서의 변환 계수의 정규화된 부분의 확률 분포가 보다 많은 비-제로 정규화된 부분을 보다 적합하게 포함하도록, 상기 계수 그룹의 사이즈를 감소시키는 단계; 및
    상기 변환 계수의 비-제로 정규화된 부분의 카운트에서의 트렌드가 임계값보다 높은 것으로 검출하면, 현재 블록에서의 변환 계수의 정규화된 부분의 확률 분포가 보다 적은 비-제로 정규화된 부분을 포함하도록, 상기 계수 그룹의 사이즈를 증가시키는 단계를 포함하는, 디지털 미디어 데이터 인코딩 방법.
  15. 디지털 미디어 인코더(400) 및/또는 디코더(500)로서,
    인코딩 및/또는 디코딩될 디지털 미디어 데이터(410, 420)를 저장하기 위한 데이터 저장 버퍼; 및
    프로세서(1210)를 포함하며,
    상기 프로세서는,
    이전 변환 계수의 확률 분포의 관측된 특징(920)에 기초하여 디지털 미디어 데이터의 현재 블록에 대해, 변환 계수 값들을 복수의 계수 그룹으로 그룹화하는 것을 적응적으로 변동시키고(900, 1000),
    현재 블록의 변환 계수(615)의 정규화된 부분(620) 및 주소 부분(625)을 판정하고 - 상기 정규화된 부분은 각각의 변환 계수 값을 포함하는 계수 그룹을 나타내고, 상기 주소 부분은 상기 계수 그룹 내의 변환 계수 값을 미분함(differentiate) -;
    상기 정규화된 부분을 가변 길이 코딩을 이용하여 인코딩(720)/디코딩하고(810);
    상기 주소 부분을 고정 길이 코딩을 이용하여 인코딩(740)/디코딩하도록(820) 프로그램되어 있는 것인, 디지털 미디어 인코더 및/또는 디코더.
  16. 제15항에 있어서,
    상기 프로세서는 또한,
    상기 변환 계수의 정규화된 부분을, 코어 부분과 옵션 계층을 갖는 다중-계층 비트스트림 신택스 구조에 따라, 압축된 비트스트림의 코어 부분으로 인코딩/디코딩하고 - 상기 코어 부분은 상기 옵션 계층 내의 정보를 참조하지 않고 상기 디지털 미디어 데이터를 디코딩하고 적어도 대략적으로 재구성하기에 충분한 정보를 포함함- ;
    상기 변환 계수의 주소 부분을 상기 옵션 계층으로 인코딩/디코딩하도록 프로그램되어 있는 것인, 디지털 미디어 인코더 및/또는 디코더.
  17. 제15항에 있어서,
    계수 값들의 그룹화는 2의 거듭 제곱과 동일한 계수의 갯수의 사이즈를 갖는 계수 그룹들에 의해 이루어지고, 상기 정규화된 부분 및 상기 주소 부분을 판정하도록 프로그램되어 있는 상기 프로세서는 변환 계수를 2의 거듭 제곱에 의해 양자화하여 상기 정규화된 부분을 판정하고, 변환 계수를 2의 거듭 제곱으로 정수 나눗셈한 나머지를 주소 부분으로 취하는 프로세서를 포함하는, 디지털 미디어 인코더/디코더.
  18. 제15항에 있어서,
    상기 프로세서는 또한, 상기 정규화된 부분이 제로이고 상기 주소 부분이 비-제로일 때만, 상기 변환 계수의 부호를 인코딩/디코딩하도록 프로그램되어 있는 것인, 디지털 미디어 인코더/디코더.
  19. 디지털 미디어 데이터를 처리하는 방법을 수행하기 위한 컴퓨터 실행가능한 디지털 미디어 처리 프로그램을 담고 있는 적어도 하나의 컴퓨터 판독가능 기록 매체로서,
    상기 방법은,
    이전 변환 계수의 확률 분포의 관측된 특징(920, 930)에 기초하여 디지털 미디어 데이터의 현재 블록에 대해, 변환 계수 값들을 복수의 계수 그룹으로 그룹화하는 것을 적응적으로 변동시키는 단계(900, 1000);
    현재 블록의 정규화된 부분(620) 및 주소 부분(625)을 판정하는 단계 - 상기 정규화된 부분은 각각의 변환 계수 값을 포함하는 계수 그룹을 나타내고, 상기 주소 부분은 상기 계수 그룹 내의 변환 계수의 값을 미분함 -;
    상기 정규화된 부분을 가변 길이 코딩을 이용하여 인코딩(720) 또는 디코딩(810)하는 단계; 및
    상기 주소 부분을 고정 길이 코딩을 이용하여 인코딩(740) 또는 디코딩(820)하는 단계
    를 포함하는 것인, 적어도 하나의 컴퓨터 판독가능 기록 매체.
  20. 제19항에 있어서,
    상기 방법은,
    변환 계수의 정규화된 부분을, 코어 부분 및 옵션 계층을 갖는 다중-계층 비트스트림 신택스 구조에 따라, 압축된 비트스트림의 코어 부분으로 인코딩 또는 디코딩하는 단계 - 상기 코어 부분은 옵션 계층 내의 정보를 참조하지 않고 상기 디지털 미디어 데이터를 디코딩하고 적어도 대략적으로 재구성하기에 충분한 정보를 포함함 - ; 및
    변환 계수의 주소 부분을 옵션 계층으로 인코딩 또는 디코딩하는 단계
    를 더 포함하는 것인, 적어도 하나의 컴퓨터 판독가능 기록 매체.
KR1020087003448A 2005-08-12 2006-08-03 넓은 범위 계수의 적응형 코딩 및 디코딩 KR101247011B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/203,010 2005-08-12
US11/203,010 US7565018B2 (en) 2005-08-12 2005-08-12 Adaptive coding and decoding of wide-range coefficients
PCT/US2006/030566 WO2007021616A2 (en) 2005-08-12 2006-08-03 Adaptive coding and decoding of wide-range coefficients

Publications (2)

Publication Number Publication Date
KR20080044835A true KR20080044835A (ko) 2008-05-21
KR101247011B1 KR101247011B1 (ko) 2013-03-25

Family

ID=37742601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087003448A KR101247011B1 (ko) 2005-08-12 2006-08-03 넓은 범위 계수의 적응형 코딩 및 디코딩

Country Status (16)

Country Link
US (1) US7565018B2 (ko)
EP (1) EP1913522A4 (ko)
KR (1) KR101247011B1 (ko)
CN (1) CN101243459B (ko)
AU (1) AU2006280181B2 (ko)
BR (1) BRPI0614768A2 (ko)
CA (1) CA2618564C (ko)
IL (1) IL188963A (ko)
MX (1) MX2008002069A (ko)
MY (1) MY140299A (ko)
NO (1) NO20080492L (ko)
NZ (1) NZ565842A (ko)
RU (1) RU2433479C2 (ko)
TW (1) TWI428837B (ko)
WO (1) WO2007021616A2 (ko)
ZA (1) ZA200801436B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101160272B1 (ko) * 2010-06-25 2012-06-27 김정태 비디오에 대한 인덱스의 생성 및 재생 방법, 및 프로그램을 기록한 컴퓨터 판독가능 매체
KR101307079B1 (ko) * 2009-01-21 2013-09-11 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 신호의 신호 특성의 변동을 서술하는 파라미터를 획득하는 장치, 방법 및 컴퓨터 프로그램

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US20080219326A1 (en) * 2007-03-09 2008-09-11 John Santhoff Wireless multimedia link
KR101375662B1 (ko) * 2007-08-06 2014-03-18 삼성전자주식회사 이미지 데이터 압축 방법 및 장치
US8509555B2 (en) * 2008-03-12 2013-08-13 The Boeing Company Error-resilient entropy coding for partial embedding and fine grain scalability
TWI370690B (en) * 2008-03-21 2012-08-11 Novatek Microelectronics Corp Method and apparatus for generating coded block pattern for highpass coeffecients
TWI349487B (en) * 2008-03-25 2011-09-21 Novatek Microelectronics Corp Entropy encoding circuit and encoding method thereof
TWI376959B (en) * 2008-05-02 2012-11-11 Novatek Microelectronics Corp Entropy decoding circuit, entropy decoding method, and entropy decoding method using a pipeline manner
US8842940B1 (en) * 2009-10-02 2014-09-23 Rockwell Collins, Inc. Multiprocessor discrete wavelet transform
WO2011126272A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
US20130223528A1 (en) * 2010-11-15 2013-08-29 Electronics And Telecommunications Research Institute Method and apparatus for parallel entropy encoding/decoding
HUE046377T2 (hu) 2011-01-14 2020-03-30 Ge Video Compression Llc Entrópia kódoló és dekódoló séma
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
GB2492394B (en) * 2011-06-30 2014-11-05 Canon Kk Method of entropy encoding and decoding an image, and corresponding devices
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
CN105787908B (zh) * 2012-08-08 2019-05-14 杜比实验室特许公司 用于高动态范围图像的图像处理方法、装置及存储介质
CN102843562B (zh) * 2012-08-21 2016-03-02 西北农林科技大学 一种分组容错熵编码的方法
TW201445454A (zh) * 2013-05-22 2014-12-01 Asustek Comp Inc 提升人臉辨識率的影像處理系統及影像處理方法
WO2015134198A1 (en) * 2014-02-21 2015-09-11 Silicon Image, Inc. Adaptive processing of video streams with reduced color resolution
USRE48920E1 (en) * 2014-02-21 2022-02-01 Lattice Semiconductor Corporation Adaptive processing of video streams with reduced color resolution
CN109036441B (zh) 2014-03-24 2023-06-06 杜比国际公司 对高阶高保真立体声信号应用动态范围压缩的方法和设备
US9800898B2 (en) 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
US10771783B2 (en) * 2018-06-11 2020-09-08 Google Llc Transforms for large video and image blocks
CN110688092B (zh) * 2019-09-04 2021-08-17 湖南遥昇通信技术有限公司 一种随机数生成方法、装置、设备及存储介质
US11373276B2 (en) * 2020-01-09 2022-06-28 Tencent America LLC Techniques and apparatus for alphabet-partition coding of transform coefficients for point cloud compression
CN113822371A (zh) * 2021-09-30 2021-12-21 支付宝(杭州)信息技术有限公司 训练分组模型,以及对时序数据进行分组的方法和装置

Family Cites Families (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4420771A (en) 1981-02-09 1983-12-13 Bell Telephone Laboratories, Incorporated Technique for encoding multi-level signals
JPH0821863B2 (ja) * 1985-04-13 1996-03-04 キヤノン株式会社 データ処理方法
US4749983A (en) * 1986-04-29 1988-06-07 International Business Machines Corporation Compression of multilevel signals
ATE108587T1 (de) 1986-09-13 1994-07-15 Philips Nv Verfahren und schaltungsanordung zur bitratenreduktion.
US4730348A (en) 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US4698672A (en) 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
US4968135A (en) 1987-08-17 1990-11-06 Digital Equipment Corporation System for producing pixel image data from CCITT encoded pixel data
US4792981A (en) 1987-09-21 1988-12-20 Am International, Inc. Manipulation of run-length encoded images
US4813056A (en) 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
EP0339589A3 (en) 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonal transform coding system for image data
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
DE3943880B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
FR2646978B1 (fr) 1989-05-11 1991-08-23 France Etat Procede et installation a codage de signaux sonores
US5179442A (en) 1989-06-02 1993-01-12 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5128758A (en) 1989-06-02 1992-07-07 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5270832A (en) 1990-03-14 1993-12-14 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
US5146324A (en) 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
JPH04199981A (ja) 1990-11-29 1992-07-21 Nec Corp 即時処理型1次元符号器
US5266941A (en) 1991-02-15 1993-11-30 Silicon Graphics, Inc. Apparatus and method for controlling storage of display information in a computer system
JP2670201B2 (ja) * 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
JP2586260B2 (ja) 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
US5227878A (en) 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
DE69228983T2 (de) 1991-12-18 1999-10-28 Koninkl Philips Electronics Nv System zum Übertragen und/oder Speichern von Signalen von texturierten Bildern
CA2090052C (en) 1992-03-02 1998-11-24 Anibal Joao De Sousa Ferreira Method and apparatus for the perceptual coding of audio signals
US5227788A (en) 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
EP0559348A3 (en) 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
KR950010913B1 (ko) 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
US5714950A (en) 1992-07-23 1998-02-03 Samsung Electronics Co., Ltd. System for variable-length-coding and variable-length-decoding digitaldata
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
CA2107727C (en) 1992-10-07 1999-06-01 Hiroaki Ueda Synchronous compression and reconstruction system
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
JP2959916B2 (ja) 1992-10-28 1999-10-06 松下電器産業株式会社 デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
US5535305A (en) 1992-12-31 1996-07-09 Apple Computer, Inc. Sub-partitioned vector quantization of probability density functions
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
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
US5376968A (en) 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
US5408234A (en) 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
ATE211326T1 (de) 1993-05-31 2002-01-15 Sony Corp Verfahren und vorrichtung zum kodieren oder dekodieren von signalen und aufzeichnungsmedium
US5664057A (en) 1993-07-07 1997-09-02 Picturetel Corporation Fixed bit rate speech encoder/decoder
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
US5504591A (en) 1994-04-25 1996-04-02 Microsoft Corporation System and method for compressing graphic images
US5457495A (en) 1994-05-25 1995-10-10 At&T Ipm Corp. Adaptive video coder with dynamic bit allocation
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US6195465B1 (en) 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US5568167A (en) 1994-09-23 1996-10-22 C-Cube Microsystems, Inc. System for providing antialiased video overlays
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
US5802213A (en) 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
ATE214524T1 (de) 1994-11-04 2002-03-15 Koninkl Philips Electronics Nv Kodierung und dekodierung eines breitbandigen digitalen informationssignals
JP3371590B2 (ja) * 1994-12-28 2003-01-27 ソニー株式会社 高能率符号化方法及び高能率復号化方法
US5574449A (en) 1995-02-24 1996-11-12 Intel Corporation Signal processing with hybrid variable-length and entropy encodidng
US5991451A (en) 1995-03-23 1999-11-23 Intel Corporation Variable-length encoding using code swapping
US5884269A (en) 1995-04-17 1999-03-16 Merging Technologies Lossless compression/decompression of digital audio data
US5864711A (en) 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US5933535A (en) 1995-10-05 1999-08-03 Microsoft Corporation Object-based video compression process employing arbitrarily-shaped features
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5889891A (en) 1995-11-21 1999-03-30 Regents Of The University Of California Universal codebook vector quantization with constrained storage
JP3283413B2 (ja) * 1995-11-30 2002-05-20 株式会社日立製作所 符号化復号方法、符号化装置および復号装置
US5956674A (en) 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
JPH09162748A (ja) 1995-12-01 1997-06-20 Fujitsu Ltd データ符号化方法、データ復号方法、データ圧縮装置、データ復元装置、及びデータ圧縮・復元システム
US5831559A (en) 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5812971A (en) 1996-03-22 1998-09-22 Lucent Technologies Inc. Enhanced joint stereo coding method using temporal envelope shaping
US6215910B1 (en) 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US5850482A (en) 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
KR100324610B1 (ko) 1996-05-28 2002-02-27 모리시타 요이찌 화상예측 복호화장치 및 방법
DE19628292B4 (de) * 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
DE19628293C1 (de) 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
US5828426A (en) 1996-08-20 1998-10-27 Samsung Electronics Co., Ltd. Apparatus for decoding variable length coded data of both MPEG-1 and MPEG-2 standards
JP3318825B2 (ja) * 1996-08-20 2002-08-26 ソニー株式会社 デジタル信号符号化処理方法、デジタル信号符号化処理装置、デジタル信号記録方法、デジタル信号記録装置、記録媒体、デジタル信号伝送方法及びデジタル信号伝送装置
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
DE69739536D1 (de) 1996-11-06 2009-09-24 Panasonic Corp Methode zur Bilddekodierung mit Kodes variabler Länge
KR100518640B1 (ko) 1996-11-11 2005-12-14 코닌클리케 필립스 일렉트로닉스 엔.브이. 라이스인코더/디코더를사용한데이터압축/복원장치및방법
JP3484310B2 (ja) 1997-01-17 2004-01-06 松下電器産業株式会社 可変長符号器
NL1005084C2 (nl) 1997-01-24 1998-07-27 Oce Tech Bv Werkwijze voor het uitvoeren van een beeldbewerkingsoperatie op looplengte gecodeerde bitmaps.
US6038536A (en) 1997-01-31 2000-03-14 Texas Instruments Incorporated Data compression using bit change statistics
US6272175B1 (en) 1997-02-13 2001-08-07 Conexant Systems, Inc. Video signal coding systems and processes using adaptive quantization
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6005980A (en) 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
FI114248B (fi) * 1997-03-14 2004-09-15 Nokia Corp Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6259810B1 (en) 1997-04-15 2001-07-10 Microsoft Corporation Method and system of decoding compressed image data
US5883633A (en) 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
US6580834B2 (en) * 1997-05-30 2003-06-17 Competitive Technologies Of Pa, Inc. Method and apparatus for encoding and decoding signals
KR100540275B1 (ko) * 1997-07-11 2006-01-10 미디어텍 인크. 멀티스케일 제로트리 엔트로피 인코딩용 장치 및 방법
DE19730129C2 (de) * 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
US6421738B1 (en) * 1997-07-15 2002-07-16 Microsoft Corporation Method and system for capturing and encoding full-screen video graphics
JPH11161782A (ja) * 1997-11-27 1999-06-18 Seiko Epson Corp カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
US6111914A (en) 1997-12-01 2000-08-29 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6226407B1 (en) 1998-03-18 2001-05-01 Microsoft Corporation Method and apparatus for analyzing computer screens
US6054943A (en) 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
US7263127B1 (en) 1998-04-02 2007-08-28 Intel Corporation Method and apparatus for simplifying frame-based motion estimation
JP2002518916A (ja) * 1998-06-19 2002-06-25 イクエーター テクノロジーズ インコーポレイテッド 第1の解像度を有する符号化された形式の画像を第2の解像度を有するデコードされた形式の画像に直接にデコードする回路及び方法
JP3413720B2 (ja) * 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
US6253165B1 (en) 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
DE19840835C2 (de) * 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
JP3723740B2 (ja) * 1998-10-06 2005-12-07 松下電器産業株式会社 ロスレス圧縮符号方法とその装置およびロスレス圧縮復号方法とその装置
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6404931B1 (en) 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6377930B1 (en) 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6223162B1 (en) 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6100825A (en) 1998-12-31 2000-08-08 Microsoft Corporation Cluster-based data compression system and method
US6678419B1 (en) * 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
JP3762579B2 (ja) * 1999-08-05 2006-04-05 株式会社リコー デジタル音響信号符号化装置、デジタル音響信号符号化方法及びデジタル音響信号符号化プログラムを記録した媒体
US6573915B1 (en) * 1999-12-08 2003-06-03 International Business Machines Corporation Efficient capture of computer screens
EP1294197A4 (en) * 2000-05-23 2004-11-24 Matsushita Electric Ind Co Ltd METHOD AND DEVICE FOR CODING WITH VARIABLE LENGTH
US6501397B1 (en) * 2000-05-25 2002-12-31 Koninklijke Philips Electronics N.V. Bit-plane dependent signal compression
US6542863B1 (en) * 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
US6683980B1 (en) * 2000-07-28 2004-01-27 Microsoft Corporation System and method for compressing data
US6925249B1 (en) * 2000-07-28 2005-08-02 Microsoft Corporation System and method for storing compressed data onto a storage medium
US6961685B2 (en) * 2000-09-19 2005-11-01 Sy Bon K Probability model selection using information-theoretic optimization criterion
US6650784B2 (en) * 2001-07-02 2003-11-18 Qualcomm, Incorporated Lossless intraframe encoding using Golomb-Rice
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
DE10236694A1 (de) * 2002-08-09 2004-02-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
AU2003290536A1 (en) * 2002-10-23 2004-05-13 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
US7324927B2 (en) * 2003-07-03 2008-01-29 Robert Bosch Gmbh Fast feature selection method and system for maximum entropy modeling
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101307079B1 (ko) * 2009-01-21 2013-09-11 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 신호의 신호 특성의 변동을 서술하는 파라미터를 획득하는 장치, 방법 및 컴퓨터 프로그램
US8571876B2 (en) 2009-01-21 2013-10-29 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus, method and computer program for obtaining a parameter describing a variation of a signal characteristic of a signal
KR101160272B1 (ko) * 2010-06-25 2012-06-27 김정태 비디오에 대한 인덱스의 생성 및 재생 방법, 및 프로그램을 기록한 컴퓨터 판독가능 매체

Also Published As

Publication number Publication date
KR101247011B1 (ko) 2013-03-25
CN101243459A (zh) 2008-08-13
WO2007021616A2 (en) 2007-02-22
US7565018B2 (en) 2009-07-21
NO20080492L (no) 2008-05-09
ZA200801436B (en) 2010-10-27
IL188963A (en) 2011-06-30
US20070036443A1 (en) 2007-02-15
RU2433479C2 (ru) 2011-11-10
TW200719248A (en) 2007-05-16
NZ565842A (en) 2010-11-26
AU2006280181A1 (en) 2007-02-22
IL188963A0 (en) 2008-08-07
CA2618564A1 (en) 2007-02-22
TWI428837B (zh) 2014-03-01
AU2006280181B2 (en) 2011-03-31
BRPI0614768A2 (pt) 2011-04-12
MX2008002069A (es) 2008-04-16
EP1913522A4 (en) 2011-07-06
RU2008105028A (ru) 2009-08-20
CA2618564C (en) 2014-04-08
MY140299A (en) 2009-12-31
CN101243459B (zh) 2010-12-29
EP1913522A2 (en) 2008-04-23
WO2007021616A3 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
KR101247011B1 (ko) 넓은 범위 계수의 적응형 코딩 및 디코딩
TWI431948B (zh) 轉換區塊之效率編碼和解碼
RU2404534C2 (ru) Адаптивный порядок сканирования коэффициентов
RU2619908C2 (ru) Гибкое квантование
US8184710B2 (en) Adaptive truncation of transform coefficient data in a transform-based digital media codec
CA2617632C (en) Prediction of transform coefficients for image compression
CA2452550C (en) An apparatus and method for encoding digital image data in a lossless manner
KR101507183B1 (ko) 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어
US9077960B2 (en) Non-zero coefficient block pattern coding
KR20040044253A (ko) 고속 역 이산 여현 변환 방법 및 장치
Colbert Adaptive Block-based Image Coding with Pre-/post-filtering
KR20050061448A (ko) 부호기 내에서 데이터를 통신하는 방법

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 8