KR100965704B1 - 이미지 및 비디오 코딩을 위한 2d 변환 - Google Patents

이미지 및 비디오 코딩을 위한 2d 변환 Download PDF

Info

Publication number
KR100965704B1
KR100965704B1 KR1020030028005A KR20030028005A KR100965704B1 KR 100965704 B1 KR100965704 B1 KR 100965704B1 KR 1020030028005 A KR1020030028005 A KR 1020030028005A KR 20030028005 A KR20030028005 A KR 20030028005A KR 100965704 B1 KR100965704 B1 KR 100965704B1
Authority
KR
South Korea
Prior art keywords
transform
matrix
block
limit
product
Prior art date
Application number
KR1020030028005A
Other languages
English (en)
Other versions
KR20030086423A (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 KR20030086423A publication Critical patent/KR20030086423A/ko
Application granted granted Critical
Publication of KR100965704B1 publication Critical patent/KR100965704B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Multimedia (AREA)
  • Discrete Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Television Systems (AREA)

Abstract

1차원 및 2차원 변환 셋트는 이미지 및 비디오 코딩에 이용되는 것과 같이 계산상으로 효율적인 변환 구현을 제공하도록 특정 범위 한정 제한을 받아 구축된다. 변환은 스케일링된 정수 구현을 가지고 있고, 완벽하거나 거의 완벽한 재구축을 제공하며, DCT-형 기저를 가지고 있고, n 비트(예를 들면, n은 16비트)로의 표현을 위한 범위내의 계수로 한정되며, 놈에 가까운 기저 함수들을 가지고 있고, 범위의 오버플로우에 대한 충분한 헤드룸을 제공하는 제한을 포함할 수 있다. 변환 셋트는 정수 매트릭스 곱 연산을 이용하는 효율적인 계산을 위한 16비트 정수 범위내의 구현을 가지는 이러한 절차로 구축된다.
Figure R1020030028005
2차원 변환, 이미지, 비디오, 코딩, 변환 코딩

Description

이미지 및 비디오 코딩을 위한 2D 변환{2-D TRANSFORMS FOR IMAGE AND VIDEO CODING}
도 1은 본 명세서에 기재된 변환 클래스에 기초한 비디오 인코더의 블록 다이어그램.
도 2는 기재된 변환 클래스에 기초한 비디오 디코더의 블록 다이어그램.
도 3은 2차원 변환을 예시한 블록 다이어그램.
도 4는 기재된 변환 클래스를 이용하여 도 1 및 2의 비디오 인코더 및 디코더에 의한 변환 코딩을 예시한 데이터 플로우 다이어그램.
도 5는 기재된 변환 클래스에 대한 역변환의 구현의 블록 다이어그램.
도 6은 기재된 변환 클래스 중 하나를 구축하기 위한 프로세스의 플로우 차트.
도 7은 기재된 변환 클래스에 대한 순방향 변환의 구현의 블록 다이어그램.
도 8은 도 1 및 도 2의 기재된 변환 클래스에 기초한 비디오 인코더/디코더의 적절한 컴퓨팅 환경의 블록 다이어그램.
<도면의 주요 부분에 대한 간단한 설명>
800 : 컴퓨팅 환경
810 : 처리 유닛
820 : 메모리
840 : 저장 장치
850 : 입력 디바이스
860 : 출력 디바이스
870 : 통신 접속
본 발명은 신호를 디지털로 인코딩하고 처리하기 위한 기술에 관한 것이다. 특히, 본 발명은 이미지 및 비디오와 같은 신호들의 인코딩 및 디코딩시 계산상으로 효율적인 변환 클래스의 구축 및 이용에 관한 것이다.
변환 코딩은 다수의 오디오, 이미지 및 비디오 압축 시스템에서 이용되는 압축 기술이다. 압축되지 않은 디지털 이미지 및 비디오는 통상 2차원 그리드에 배열된 이미지 또는 비디오 프레임 내의 위치에서 픽셀 또는 컬러의 샘플로서 표현되거나 캡쳐링된다. 예를 들면, 이미지를 위한 전형적인 포맷은 그리드로서 배열된 24비트 컬러 픽셀 샘플들의 스트림으로 구성된다. 각 샘플은 다른 것들 중에서 RGB 또는 YIQ와 같은 컬러 공간 내에서 그리드 내의 픽셀 위치에서의 컬러 컴포넌트를 나타내는 숫자이다. 다양한 이미지 및 비디오 시스템은 다양한 다른 컬러, 공간 및 시간 해상도의 샘플링을 이용한다.
미압축된 디지털 이미지 및 비디오 신호는 상당한 저장 공간 및 송신 용량을 소비할 수 있다. 변환 코딩은 신호의 공간 도메인 표현을 주파수 도메인(또는 다른 유사 변환 도메인) 표현으로 변환한 후, 변환 도메인 표현의 일반적으로 덜 인지될 수 있는 특정 주파수 도메인의 해상도를 감소시킴으로써 디지털 이미지 및 비디오의 크기를 감소시킨다. 이것은 일반적으로 공간 도메인에서 이미지 또는 비디오의 컬러 또는 공간 해상도를 축소하는 것에 비교할 때, 디지털 신호의 인지될 수 있는 저하를 훨씬 적게 생성한다.
더 구체적으로는, 전형적인 변환 코딩 기술은 미압축된 디지털 이미지의 픽셀을 각 블록이 다른 블록과 중첩될 수 있는 고정된 크기의 2차원 블록들로 분할한다. 공간 주파수 분석을 수행하는 선형 변환이 각 블록에 적용되어, 블록내의 이격된 샘플들을 블록 간격에 걸쳐 대응하는 주파수 대역에서의 디지털 신호의 세기를 일반적으로 나타내는 주파수(또는 변환) 계수의 셋트로 변환한다. 압축을 위해, 변환 계수는 선택적으로 양자화되고(즉, 계수 값의 최하위 비트를 드롭핑하거나, 더 높은 해상도 숫자 셋트의 값을 더 낮은 해상도로 매핑함으로써 해상도가 감소됨), 압축 데이터 스트림으로 엔트로피 또는 가변-길이 코딩된다. 디코딩시, 변환 계수는 역으로 변환되어 원래 컬러/공간 샘플링된 이미지/비디오 신호를 거의 재구축한다.
다른 것들 중에서 MPEG 및 Windows Media와 같은 다수의 이미지 및 비디오 압축 시스템은 이산 코사인 변환(DCT, Discrete Cosine Transform)에 기초하여 변환을 활용한다. DCT는 거의 광학적 데이터 압축에 이르는 양호한 에너지 집중 속성을 가지고 있는 것으로 알려져 있다. 이들 압축 시스템에서, 개별적인 이미지 블록을 재구축하기 위한 압축 시스템의 인코더 및 디코더 양쪽에서 재구축 루프에 역 DCT(IDCT)가 채용된다. IDCT의 구현 예는 "IEEE Standard Specification for the Implementations of 8x8 Inverse Discrete Cosine Transform" IEEE Std. 1180-1990, December 6, 1990에 기재되어 있다.
IEEE Std. 1180-1990에 정의된 바와 같이 IDCT 변환의 단점은 변환 계산은 64 비트 부동소수점 숫자의 매트릭스 승산을 필요로 하고, 이것은 계산적으로 비용이 많이 든다. 이것은 특히 스트리밍 미디어 및 유사 미디어 재생 어플리케이션에서 이미지 또는 비디오 압축 시스템의 성능을 제한할 수 있고, 여기에서 IDCT는 실시간 기반 또는 다른 유사한 시간 제한 하에서 다량의 압축 데이터에 대해 수행된다.
일차원 및 2차원 변환 클래스, 그러한 변환을 구축하기 위한 기술, 및 그러한 변환을 이용하는 미디어 코딩/디코딩 시스템이 기재된다.
기재되는 변환은 계산상의 효율을 위해 정수에 대한 매트릭스 곱 연산에 기초한 구현을 가지고 있다. 전형적인 일반 목적 및 그래픽 프로세서에서, 정수에 대한 매트릭스 곱 연산은 부동 소수점 숫자보다 훨씬 더 빨리 실행될 수 있다. 또한, 일부 32비트 프로세서들은 한 번에 2개의 16비트 정수에 대한 곱 연산을 제공한다. 예로 든 구현에서, 기재된 변환은 16비트 정수 매트릭스 곱으로 수행된다. 정수 매트릭스 곱을 가지는 기재된 변환의 구현은 미디어 코딩/디코딩 시스템에서 코딩 및 디코딩 성능을 향상시킨다.
기재된 변환은 본 명세서에 기재된 구축 절차를 통해 생성될 수 있다. 구축 절차는 특정 제한을 받는 변환 계수의 셋트를 선택하는 것에 기초하여 변환 클래스의 변환을 생성한다. 변환은 스케일링된 정수 구현을 가지고 있고, 완벽한 또는 거의 완벽한 재구성을 제공하며, DCT-형 기저를 가지고 있고, n 비트(예를 들면, n은 16비트)의 표현을 위한 범위 내의 계수로 한정되며, 놈(norm)에 인접한 기저 함수들을 가지고 있고, 범위의 오버플로우에 대한 충분한 헤드룸(headroom)을 제공한다는 제한을 포함할 수 있다.
기재된 구축 절차를 이용하면, 1차원에서 4 및 8 포인트 컴포넌트를 가지는 변환 셋트는 2차원에서 8x8, 8x4, 4x8 및 4x4 블록 변환을 발생시킨다. 16비트 매트릭스 곱을 이용한 구현을 허용하는, 변환에 기초한 압축 시스템은 더 계산상 효율적인 인코딩 및 디코딩을 제공할 수 있다.
본 발명의 추가 특징 및 장점들은 첨부된 도면을 참조하여 제공되는 이하의 실시예에 대한 상세한 설명을 통해 명백하게 된다.
이하의 설명은 계산상의 효율을 위한 1차원 및 2차원 변환 클래스, 특정 기준에 종속되는 그러한 변환을 구축하기 위한 기술, 및 그러한 변환의 신호 처리에의 이용, 및 특히 그러한 변환에 기초한 미디어 압축 시스템에 관한 것이다. 예로 든 변환 어플리케이션은 Microsoft Windows Media Video(WMV) 파일 포맷의 변형을 채용하는 인코더 및 디코더와 같은 이미지 또는 비디오 인코더 및 디코더이다. 그러나, 본 명세서에 기재된 바와 같이 구축된 변환은 이러한 포맷으로 제한되지 않고, 다른 미디어 코딩 포맷에도 적용될 수 있다. 따라서, 변환은 일반화된 이미지 또는 비디오 인코더의 컨텍스트로 기재되어 있지만, 다르게는 다른 형태의 미디어 신호 인코더 및 디코더에 통합될 수 있다.
Ⅰ. 일반화된 비디오 인코더 및 디코더
도 1은 일반화된 비디오 인코더(100)의 블록 다이어그램이고, 도 2는 일반화된 비디오 디코더(200)의 블록 다이어그램이다.
인코더 및 디코더 내부의 모듈들 사이에 도시된 관계는 인코더 및 디코더 내에서의 정보의 주 흐름을 나타내고, 다른 관계들은 단순화를 위해 도시되지 않았다. 특히, 도 1 및 도 2는 비디오 시퀀스, 프레임, 매크로 블록, 블록 등에 이용되는 인코더 셋팅, 모드, 테이블 등을 나타내는 부가 정보(side information)를 도시하지 않는다. 그러한 부가 정보는 통상 부가 정보의 엔트로피 인코딩 후에 출력 비트 스트림으로 전송된다. 출력 비트 스트림의 포맷은 Windows Media Video 포맷 또는 다른 포맷이 될 수 있다.
인코더(100) 및 디코더(200)는 블록 기반이고, 각각의 매크로 블록이 4 휘도 8x8 휘도 블록(종종 하나의 16x16 매크로 블록으로서 처리됨) 및 2개의 8x8 색차 블록을 포함하는 4:2:0 매크로 블록 포맷을 이용한다. 다르게는, 인코더(100) 및 디코더(200)는 오브젝트 기반이고, 다른 매크로 블록 또는 블록 포맷을 이용하거나 8x8 블록 및 16x16 매크로 블록과 다른 크기 또는 구성의 픽셀 셋트에 대한 연산을 수행한다.
요구되는 구현 및 압축 타입에 따라, 인코더 또는 디코더의 모듈이 부가되고, 생략되며, 다중 모듈들로 분할되고, 다른 모듈과 조합되고/조합되거나, 유사한 모듈로 대체될 수 있다. 다른 실시예에서, 다른 모듈을 가지는 인코더 또는 디코더 및/또는 모듈의 다른 구성은 기재된 기술들 중 하나 이상을 수행한다.
A. 비디오 인코더
도 1은 일반적인 비디오 인코더 시스템(100)의 블록 다이어그램이다. 인코더 시스템(100)은 현재 프레임(105)을 포함하는 비디오 프레임 시퀀스를 수신하고, 출력으로서 압축된 비디오 정보(195)를 생성한다. 비디오 인코더의 특정 실시예들은 통상 일반화된 인코더(100)의 변형 또는 부가된 버전을 이용한다.
인코더 시스템(100)은 예측 프레임 및 키 프레임을 압축한다. 프리젠테이션의 목적상, 도 1은 인코더 시스템(100)을 통한 키 프레임에 대한 경로 및 포워드-예측된 프레임에 대한 경로를 도시하고 있다. 인코더 시스템(100)의 많은 컴포넌트들은 키 프레임 및 예측 프레임 모두를 압축하는데 이용된다. 이들 컴포넌트들에 의해 수행되는 정확한 동작은 압축되는 정보 타입에 따라 가변될 수 있다.
예측 프레임[p-프레임으로도 지칭되고, 양방향 예측에 대해서는 b-프레임 또는 인터-코딩된 프레임]은 하나 이상의 다른 프레임으로부터 예측(또는 차이)의 측면에서 표현된다. 예측 나머지(residual)는 예측되었던 것과 원래 프레임 간의 차이이다. 한편, 키 프레임(또한, i-프레임으로도 지칭됨, 인트라-코딩된 프레임)은 다른 프레임을 참조하지 않고 압축된다.
현재 프레임(105)이 포워드-예측된 프레임이라면, 모션 추정기(110)는 프레임 저장소(120)에 버퍼링된 재구축 이전 프레임(125)인 기준 프레임에 대한 현재 프레임(105)의 매크로 블록 또는 다른 픽셀 셋트의 모션을 추정한다. 다른 실시예에서, 기준 프레임은 나중 프레임이거나 현재 프레임은 양방향으로 예측된다. 모션 추정기(110)는 모션 벡터와 같은 모션 정보(115)를 부가 정보로서 출력한다. 모션 보상기(130)는 모션 정보(115)를 재구축 이전 프레임(125)에 적용하여 모션 보상된 현재 프레임(135)을 형성한다. 그러나, 예측은 좀처럼 완벽하지 않으며, 모션 보상된 현재 프레임(135)과 원래의 현재 프레임(105) 간의 차이는 예측 나머지(145)이다. 다르게는, 모션 추정기 및 모션 보상기는 다른 타입의 모션 추정/보상을 적용한다.
주파수 변환기(160)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼) 데이터로 변환한다. 블록 기반 비디오 프레임에 대해, 주파수 변환기(160)는 이산 코사인 변환(DCT)과 유사한 특성을 가지는, 이하에 설명되는 변환을 적용한다. 일부 실시예에서, 주파수 변환기(160)는 키 프레임을 위한 공간 예측 나머지의 블록에 주파수 변환을 적용한다. 주파수 변환기(160)는 8x8, 8x4, 4x8 또는 다른 크기의 주파수 변환을 적용할 수 있다.
그리고 나서, 양자화기(170)는 스펙트럼 데이터 계수의 블록을 양자화한다. 양자화기는 프레임별 기저 또는 다른 기저로 가변되는 스텝-크기로 스펙트럼 데이터에 균일한 스칼라 양자화를 적용한다. 다르게는, 양자화기는 스펙트럼 데이터 계수에 다른 타입의 양자화, 예를 들면 비균일의, 벡터 또는 비적응성 양자화를 적용하거나, 주파수 변환을 이용하지 않는 인코더 시스템에서 공간 도메인 데이터를 직접 양자화한다. 적응성 양자화뿐만 아니라, 인코더(100)는 프레임 드롭핑(dropping), 적응성 필터링, 또는 레이트 제어를 위한 다른 기술을 이용할 수 있다.
재구축된 현재 프레임이 후속 모션 추정/보상에 필요한 경우, 역 양자화기(176)는 양자화된 스펙트럼 데이터 계수에 역 양자화를 수행한다. 그리고 나서, 역 주파수 변환기(166)는 주파수 변환기(160)의 동작의 역을 수행하고, 재구축된 예측 나머지(예측 프레임에 대해) 또는 재구축된 키 프레임을 생성한다. 현재 프레임(105)이 키 프레임이었다면, 재구축된 키 프레임은 재구축 현재 프레임(도시되지 않음)으로 취해진다. 현재 프레임(105)이 예측 프레임이었다면, 재구축 예측 나머지가 모션-보상 현재 프레임(135)에 부가되어 재구축 현재 프레임을 형성한다. 프레임 저장소(120)는 다음 프레임을 예측하는데 이용하기 위해 재구축 현재 프레임을 버퍼링한다. 일부 실시예들에서, 인코더는 재구축 프레임에 디블록킹(deblocking) 필터를 적용하여 프레임 블록내의 불연속을 적응성으로 원활하게 한다.
엔트로피 코더(180)는 일부 부가 정보(예를 들면, 모션 정보(115), 양자화 스텝 크기)뿐만 아니라 양자화기(170)의 출력을 압축한다. 전형적인 엔트로피 코딩 기술은 산술 코딩(arithmetic coding), 차동 코딩(differential coding), 허프만(Huffman) 코딩, 런(run) 길이 코딩, LZ 코딩, 사전(dictionary) 코딩 및 상기 조합을 포함한다. 엔트로피 코더(180)는 통상 다른 종류의 정보(예를 들면, DC 계수, AC 계수, 다른 종류의 부가 정보)에 대해 다른 코딩 기술을 이용하고, 특정 코딩 기술 내의 다중 코드 테이블 중에서 선택할 수 있다.
엔트로피 코더(180)는 압축된 비디오 정보(195)를 버퍼(190)에 넣는다. 버퍼 레벨 지시자는 비트 레이트 적응성 모듈에 피드백된다. 압축된 비디오 정보(195)는 일정하거나 비교적 일정한 비트 레이트로 버퍼(190)로부터 삭제되고, 후속 스트리밍을 위해 그 비트 레이트로 저장된다. 다르게는, 인코더 시스템(100)은 압축 직후에 압축된 비디오 정보를 스트리밍한다.
버퍼(190)의 이전 또는 이후에, 압축된 비디오 정보(195)는 네트워크를 통한 송신을 위해 채널 코딩될 수 있다. 채널 코딩은 에러 검출 및 정정 데이터를 압축된 비디오 정보(195)에 적용할 수 있다.
B. 비디오 디코더
도 2는 일반적인 비디오 디코더 시스템(200)의 블록 다이어그램이다. 디코더 시스템(200)은 압축된 비디오 프레임 시퀀스에 대한 정보(295)를 수신하고, 재구축된 프레임(205)을 포함하는 출력을 생성한다. 비디오 디코더의 특정 실시예는 통상 일반화된 디코더(200)의 변형 또는 부가된 버전을 이용한다.
디코더 시스템(200)은 예측 프레임 및 키 프레임을 압축 해제한다. 프레젠테이션의 목적상, 도 2는 디코더 시스템(200)을 통한 키 프레임에 대한 경로 및 포워드-예측 프레임에 대한 경로를 도시하고 있다. 디코더 시스템(200)의 다수의 컴포넌트들은 키 프레임 및 예측 프레임 모두를 압축하는데 이용된다. 이들 컴포넌트들에 의해 수행되는 정확한 동작은 압축되는 정보의 타입에 따라 가변될 수 있다.
버퍼(290)는 압축된 비디오 시퀀스에 대한 정보(295)를 수신하고, 수신된 정 보가 엔트로피 인코더(280)에 가용하게 만든다. 버퍼(290)는 통상 시간에 걸쳐 상당히 일정한 레이트로 정보를 수신하고, 대역폭의 단기간 변동 또는 송신을 원활하게 하는 지터 버퍼를 포함한다. 버퍼(290)는 물론 재생 버퍼 및 다른 버퍼들을 포함할 수 있다. 다르게는, 버퍼(290)는 가변 레이트로 정보를 수신한다. 버퍼(290) 이전 또는 이후에, 압축된 비디오 정보는 에러 검출 및 정정을 위해 채널 디코딩되고 처리될 수 있다.
엔트로피 디코더(280)는 엔트로피 코딩된 부가 정보(예를 들면, 모션 정보, 양자화 스텝 크기)뿐만 아니라 엔트로피 코딩된 양자화된 데이터를 디코딩하고, 통상 인코더에서 수행된 엔트로피 인코딩의 역을 적용한다. 엔트로피 디코딩 기술은 산술 디코딩, 차동 디코딩, 허프만 디코딩, 런 길이 디코딩, LZ 디코딩, 사전 디코딩 및 상기 조합을 포함한다. 엔트로피 디코더(280)는 다른 종류의 정보(예를 들면, DC 계수, AC 계수, 다른 종류의 부가 정보)에 대해 다른 디코딩 기술을 적용하고, 특정 디코딩 기술 내의 다중 코드 테이블 중에서 선택할 수 있다.
재구축되는 프레임(205)이 포워드-예측된 프레임이라면, 모션 보상기(230)는 모션 정보(215)를 기준 프레임(225)에 적용하여 재구축되는 프레임(205)의 예측(235)을 형성한다. 예를 들면, 모션 보상기(230)는 매크로 블록 모션 벡터를 이용하여 기준 프레임(225)에서 매크로 블록을 찾아낸다. 프레임 버퍼(220)는 기준 프레임으로서 이용을 위해 이전에 재구축된 프레임을 저장한다. 다르게는, 모션 보상기는 다른 타입의 모션 보상을 적용한다. 모션 보상기에 의한 예측은 좀처럼 완벽하지 않으며, 따라서 디코더(200)는 또한 예측 나머지를 재구축한다.
디코더가 후속 모션 보상을 위한 재구축 프레임을 필요로 하는 경우, 프레임 저장소(220)는 다음 프레임을 예측하는데 이용하기 위해 재구축된 프레임을 버퍼링한다. 일부 실시예들에서, 인코더는 재구축된 프레임에 디블럭킹 필터를 적용하여 프레임 블록내의 불연속을 적응성으로 원활하게 한다.
역 양자화기(270)는 엔트로피 디코딩된 데이터를 역 양자화한다. 일반적으로, 역 양자화는 프레임별 기반 또는 다른 기반으로 가변되는 스텝-크기로 엔트로피 디코딩된 데이터에 균일한, 스칼라 역 양자화를 적용한다. 다르게는, 역 양자화기는 데이터에 다른 타입의 역 양자화, 예를 들면 비균일한, 벡터, 또는 비적응성 양자화를 적용하거나, 역 주파수 변환을 이용하지 않는 디코더 시스템에서 공간 도메인 데이터를 직접 역 양자화한다.
역 주파수 변환기(260)는 양자화된 주파수 도메인 데이터를 공간 도메인 비디오 정보로 변환한다. 블록 기반 비디오 프레임에 대해, 역 주파수 변환기(260)는 이하에 설명되는 역변환을 적용한다. 일부 실시예들에서, 역 주파수 변환기(260)는 키 프레임에 대한 공간 예측 나머지의 블록에 역 주파수 변환을 적용한다. 역 주파수 변환기(260)는 8x8, 8x4, 4x8 또는 다른 크기의 역 주파수 변환을 적용할 수 있다.
Ⅱ. 변환 개요
도 3은 도 1 및 도 2의 비디오 인코더(100) 및 디코더(200)에 이용되는 2차원 변환(300) 및 역변환(310)을 예시하고 있다. 변환(300) 및 역변환(310)은 이하에 설명되는 바와 같이 일정 제한을 가지는 변환 클래스로부터 구축된다.
2차원 변환(300)은 미디어 컨텐트의 공간적으로-관련된 샘플로서 표현되는 미디어 컨텐트의 2차원(n x m) 블록(320)을 변환 도메인 블록으로 변환한다. 예를 들면, 블록은 일정하게 이격된 그리드 위치에 배열되는 컬러 샘플(픽셀)의 어레이로서 표현될 수 있는 것과 같이, 디지털 이미지 또는 디지털 비디오 프레임의 일부가 될 수 있다. 이것은 미디어 컨텐트의 공간 도메인 표현으로서 지칭된다. 변환 블록은 또한 n x m 샘플들로 구성되고, 여기에서는 미디어 컨텐트의 변환 도메인 표현으로서 지칭된다.
역변환(320)은 변환 도메인으로부터의 샘플 블록을 원래 또는 공간적 도메인으로 변환한다.
Ⅲ. 변환 기반 코딩
일반적으로, 상기 설명한 비디오 인코더 및 디코더에서와 같이, 미디어 컨텐트의 변환 기반 코딩(400)은 양자화와 함께 변환(300, 도 3) 및 역변환(310, 도 3)을 이용하여 미디어 컨텐트를 압축된 형태로 인코딩한다. 변환 기반 코딩은 우선 변환 도메인으로의 변환을 위해 변환 스테이지(410)에서 변환(300)을 미디어 컨텐트의 입력 블록에 적용한다. 그리고 나서, 변환 기반 코딩은 양자화 스테이지(420)에서 특정 변환 도메인 샘플(예를 들면, 미디어 컨텐트의 덜 인지될 수 있는 저하를 생성함)의 양자화를 수행한다(즉, 해상도를 감소시킨다). 양자화된 변환 도메인 샘플들은 미디어 컨텐트의 압축된 형태를 생성하는데 이용될 수 있다.
변환 기반 코딩(400)은 또한 역 양자화 스테이지(430) 및 역변환 스테이지(440)를 가지고 있다. 역 양자화 스테이지(430)에서, 변환 기반 코딩은 역변환(310)을 위한 준비시 양자화된, 변환 도메인 샘플을 그 원래 해상도에 매핑한다. 변환 기반 코딩은 역변환 스테이지에서 역 양자화된(dequantized) 변환 도메인 샘플에 역변환을 수행한 후, 미디어 컨텐트 블록을 재구축한다.
변환 기반 코딩(400)은 비디오 인코더 및 디코더의 다양한 포인트에서 수행될 수 있다. 예를 들면, 비디오 인코더는 차동 인코딩 및 인터프레임 코딩 기술에 이용을 위해, 역 양자화 및 역변환 스테이지를 가지는 재구축 루프를 포함할 수 있다.
Ⅲ. 계산상 효율적인 역변환 구현
이제 도 5를 참조하면, 변환(300) 및 역변환(310)(도 3)은 양호하게는 이전-곱 변환 매트릭스(T)에 의한 2차원 데이터 블록(변환(300)에 대해서는 공간 도메인 샘플, 역변환에 대해서는 변환 도메인 샘플)의 이전-곱(510) 및 이후-곱 변환 매트릭스(T')에 의한 이후-곱(530)으로서 구현된다. 이전-곱 변환 매트릭스(T)의 로우는 변환의 기저 함수들을 나타내고, 이전-곱(510)에서 데이터 블록의 칼럼에 적용된다. 마찬가지로, 이후-곱 매트릭스(T')의 칼럼은 이후-곱(530)에서 데이터 블록의 로우에 적용되는 변환 기저 함수들이다.
계산상 효율을 위해, 변환 매트릭스(T 및 T') 및 데이터 블록은 컴퓨터 또는 그래픽 프로세서의 정수 곱 연산을 이용하여 수행되는 매트릭스 곱을 허용하는 범위 내의 정수로 구성된다. 예를 들면, 16비트 정수 곱 연산을 제공하는 현재의 많은 프로세서에 있어서, 매트릭스는 양호하게는 16비트 정수 곱 연산을 이용하여 수행되는 매트릭스 곱을 허용하는 범위 내의 정수로 구성된다. 다르게는, 매트릭스는 다른 크기 정수의 정수 곱 연산을 제공하는 프로세서에 대해 더 작거나 큰 범위의 정수로 구성될 수 있다.
정수로 구성된 변환 기저 함수에 의한 데이터 블록의 이전-곱 및 이후-곱은 더 큰 범위의 결과적인 데이터 블록 값을 생성한다. 구현(500)은 이전-곱 및 이후-곱 후에 스케일링 연산(520, 540)을 각각 이용하여 기저 함수 곱에 의한 이러한 확대를 보상한다. 계산상 효율을 위해, 스케일링 연산(520, 540)은 양호하게는 시프트 연산(효율적으로는 2의 거듭제곱으로 나누어짐)으로서, 값들을 각각 비트 위치의 수 S1 및 S2 만큼 시프트한다.
예시된 구현(500)에서, 데이터 블록 내의 값들은 이전-곱(510), 스케일링(520), 이후-곱(530), 스케일링(540)의 입력 및 각각 A-E로 표현된 출력에서 비트 크기를 가지는 정수들이다. 예를 들면, 이전-곱 스테이지(510)의 입력에서의 데이터 블록의 값들은 크기가 A-비트인 정수들이다.
이러한 변환 설계시 기본적인 원리는 순방향 및 역변환 쌍으로서의 구현(500)이고, 후자는 제한된 정밀도(precision) 정수 계산(arithmetic)으로 구현되며, 역변환은 대응하는 순방향 변환 프로세스(유효한 양자화 및 역양자화를 받음)에 의해 생성되는 입력 데이터에 대해 의미 있는 결과를 생성하도록 보장된다.
Ⅳ. 변환 구축
계산상 효율적인 변환은 이하에 설명되는 바와 같이, 특정 제한을 받는 변환 기저 함수에 대한 계수 값(즉, 이전-곱 매트릭스 T 및 이후-곱 매트릭스 T'의 값)을 선택함으로써 구축된다. 이러한 구축 기술은 범위 제한되고, 직교 또는 양-직교 변환을 생성할 수 있다.
제한
스케일링된 정수 구현. 변환 계수들은 2의 거듭제곱에 의한 가능한 스케일링을 가지는 정수들이다. 이것은 표준 컴퓨터 상에서의 구현을 용이하게 한다.
완벽한 재구축. 양자화(예를 들면, 도 4의 양자화 및 역 양자화 스테이지(420, 430))가 없는 경우, 역변환은 변환에 의해 생성된 변환 도메인 데이터로부터 원래의 공간 도메인 데이터를 재구축한다. 데이터를 압축하는데 이용되는 변환에 대한 주요 요구조건은 순방향 및 역변환은 어떠한 양자화 및 라운딩(rounding)이 없는 경우에 완벽한 재구축 쌍을 형성한다는 점이다. 이것은 정규직교성 및 양정규직교성(biorthonormality)을 통해 보장될 수 있다. 전자의 경우에, 순방향 및 역변환이 동일하지만, 후자의 경우에는 다르다.
DCT 형 기저. 변환 및 역변환은 DCT와 유사한 속성을 가지고 있다. 양호한 코딩 성능을 위해, 변환이 DCT를 인접하여 근사하는 것이 바람직하다. DCT는 거의-광학 데이터 압축을 나타내는 양호한 에너지 압축 속성을 가지는 것으로 알려져 있다. DCT의 DC 기저 함수는 상수이다. 이것은 "제로 번째" 기저의 변환 계수이 상수를 갖도록 제한한다.
범위. 데이터 값 및 변환 계수들의 범위는 타겟 컴퓨터 또는 그래픽 프로세서(예를 들면, 16비트 정수 연산) 상에서의 계산상 효율적인 정수 곱 연산을 이용 한 구현을 허용한다. 양호한 구현에서, 값들은 역변환의 16비트 구현을 허용하는 범위로 제한된다. 이러한 구현에서, 16비트 정수 연산은 16비트 누산기로 수행될 수 있는 정수에 대한 산술 연산, 및 베이스 216, 즉 [-32768...32767]의 데이터 범위를 가지는 누산기에 대한 사인된(signed) 모듈로 또는 롤오버(rollover) 산술이다. 2개의 16 비트 숫자의 곱은 보존되는 곱(product)의 더 낮은 16비트만으로 나타난다. 다르게는, 범위는 다른 비트 크기의 정수 연산을 지원하는 다른 타겟 플랫폼에 대해 가변될 수 있다.
변환 기저 함수에 의한 데이터 블록 내의 샘플들의 곱은 범위의 확장을 가져오고, 변환 기저 함수의 샘플(포인트)의 개수에 의해 가변된다. 비디오 압축 시스템에서, 통상 8x8, 4x8, 8x4 및 4x4 포인트의 2차원(NxM 포인트) 변환이 이용된다. 4 및 8 포인트 변환 사이에서, 8 포인트 변환은 정수 변환 계수의 범위에 대해 더 엄격한 제한을 가한다. 이것은 N>M인 경우, N 포인트 변환과 연관된 확장이 M 포인트 변환을 가지는 것보다 크기 때문이다. DC 값은 N 포인트 변환에 대해
Figure 112003015829024-pat00001
으로서 확장한다. 따라서, 8 포인트 변환이 더 엄격한 제한을 나타내므로, 이를 우선 고려한다.
예를 들면, 비디오 압축 시스템에서 공간 도메인 데이터 블록 샘플에 대한 공통 범위는 [-255...255]이고, 9비트의 해상도이다. [-255 255]의 범위에 대응하는 그러한 9비트 입력에 대해, 8x8 변환이 범위 [-2047 2047]내의 값에 대해 취해질 수 있고, 12 비트의 정밀도(precision)를 필요로 한다. 실제로, 각 8 포인트 변환은 1.5 비트의 확장으로 나타난다. 2차원 8x8 변환에 대해, 8 포인트 변환은 2번, 즉 이전-곱 스테이지(510, 도 5)에서 로우 변환 및 이후-곱 스테이지(530, 도 5)에서 칼럼 변환으로 적용되어, 결과적인 변환 도메인 샘플은 3비트만큼 확장된다(12비트 해상도로).
도 5를 더 참조하면, 예로 든 구현의 역변환에 대한 입력 A에서의 입력 변환-도메인 데이터 블록은 12비트의 범위를 가지고 있는데 반해, 출력 E에서의 재구축된 공간 도메인 데이터 블록은 9비트의 범위를 가지고 있다. 2개의 역변환 연산(이전-곱(510) 및 이후-곱(530))은 |T|2의 스케일링 또는 범위 확장을 유발하고, 이는 각각 s1 및 s2 비트의 2개의 시프트에 의해 보상된다. 이것은 변환에 의해 야기되는 범위 확장이 보상 스케일링과 거의 동일하거나 또는
Figure 112010020004090-pat00002
인 것이 필요하다. 변환 매트릭스(T)가 정규화된 매트릭스(T1=T/|T|)라고 가정하면, 이후-곱 후의 결과적인 데이터 블록의 다이나믹 범위(B=T·A)는 약10.5비트이다. 그러므로, 결과적인 데이터 블록(B)은 10.5 + log2(|T|) 비트의 범위를 가지고 있다. 마찬가지로, 이후-곱 데이터 블록(D=C·T')은 9+2log2(|T|)-s1 비트의 범위를 가지고 있다. 16비트 정수 연산을 이용한 역변환의 계산상 효율적인 구현을 위해, 이하의 관계가 요구된다(log2|T|는 L로 표시함).
Figure 112003015829024-pat00003
Figure 112003015829024-pat00004
Figure 112003015829024-pat00005
그러므로, 결과적으로 (9+m≤16) 즉, m=6 및 L≤5.5 또는 lTl≤2048이 된다.
또한, 역변환의 DC 기저 함수가 [d d d d d d d d]에 의해 주어진다면, 범위 제한은 8d2≤2048 또는 d≤16이 되는 것을 필요로 한다.
기저 함수의 놈(Norm). 변환을 위한 기저 함수는 놈에 매우 가깝다.
일반적인 직교 및 양직교 정수 변환에서, 다른 기저 함수에 대응하는 변환 매트릭스 T의 다른 로우는 다른 놈을 가지도록 허용된다. 이러한 유연성 뒤의 아이디어는 놈들간 미스매치의 효과는 양자화 및 역양자화 동안에 순방향 및 역변환에 대해 소멸될 수 있다는 것이다. 실제, 정규화는 2가지 어려운 점을 제공한다. 즉 (1) 정규화는 특히 디코더 측에 복잡성을 부가시키고, (2) 정규화하는 승수가 작은 정수가 아니라면, 더 짧은 정수(16 비트) 구현에 대해 정규화가 불가능하게 된다.
모든 기저 함수의 놈들이 동일한 것이 요구된다면, 추가 재정규화는 불필요하다. 임의의 정규화 항(term)은 역 양자화로 인수분해될 수 있다. 양자화 값의 결과는 이러한 프로세스에서 약간 시프트할 수도 있다(즉, 어떤 양자화 포인트(QP)의 레이트-왜곡 포인트는 이동될 수 있지만, 그 원래 값으로부터 레이트-왜곡(R-D) 커브를 따라 즉, 정규화된 완전 정밀도 변환을 이용하여 계산됨).
4 및 8 포인트 변환에 관한 한, 동일한 논리가 적용된다. 4 혹은 8 포인트이든 모든 기저 함수의 놈은 정규화가 얻어질 수 있도록(pull out) 동일한 것이 필요할 수 있다. 실제, 합리적으로 작은 정수 기반에 대해, 모든 기저 함수의 모든 놈들이 동일하다는 제한을 받는 변환 계수의 셋트를 찾아내는 것은 불가능하다. 여기에서, 제한은 놈에 매우 가까운 기저 함수들만을 허용함으로써 작은 정밀도의 유연성을 허용한다.
헤드룸(headroom). 순방향 변환으로의 유효 입력(공간 도메인 데이터 블록)의 범위는 하나의 구현에서 9비트이지만, 양자화(도 4의 스테이지(420)) 이후의 재구축된 데이터 블록은 +255 내지 -255의 범위 이상 또는 이하에서 오버플로우될 가능성이 있다. 짧은 정수 구현은 그러한 상황을 위한 충분한 헤드룸을 남겨둠으로써 이것을 고려하는 것이 요구된다.
요약하면, 여기에 기재된 구축 기술은 (1) 스케일링된 정수 구현, (2) 직교 정규성 또는 완벽한 재구축 (3) 에너지 집중(energy compaction)을 위한 DCT 형 기저 및 (4) 정수 기반 구현(예를 들면 16비트 정수 연산)을 위한 한정된 범위의 제한을 받는 변환을 생성한다. 주어진 범위 한계에 대해, 상기 모든 제한을 만족시키기는 어렵다. 특정 예로서, 16비트로 한정되는 범위일 뿐만 아니라, 이들 제한들 중 처음 3개를 만족시키는 변환을 구축하는 것이 불가능하다. 이하에 기재되는 구축 프로세스는 하나 이상의 제한을 약간 완화시킴으로써(예를 들면, 예시된 변환 구현에서 직교 정규성 제한을 완화시킴으로써) 효율적이고 범위 한정된 변환을 생성한다. 예시된 변환 구현에서, 변환 쌍은 직교가 되는 것만이 필요하지만, 놈은 약간 다를 수 있다. 이렇게 부가된 유연성은 변환에 대한 검색 공간을 확장시켜, 다른 제한을 만족시키는 실행가능한 구축 효율적인 범위-한정된 변환을 가능하게 한다. 이하에 더 설명되는 바와 같이, 놈들에서의 약간의 미스매치의 효과는 양자화 스테이지 동안의 재정규화에 의해 제거될 수 있다. 양자화 스테이지에서 구현되는 재정규화에 있어서, 결과적인 복잡성 증가는 인코더에서만 발생한다. 이것은 전체 시스템의 복잡성을 상당히 감소시키면서도 압축 효율을 유지한다.
구축
이제, 도 6을 참조하면, 이들 제한을 받는 계산상 효율적인 변환을 구축하는 프로세스(600)는 도 5의 변환 구현(500)에 대해 이전-곱 및 이후-곱 변환 매트릭스(T 및 T')에 대한 직교 변환 계수 셋트를 생성한다. 이러한 예로 든 계산상으로 효율적인 변환 구현을 생성하는 이러한 구축 절차에 이용되는 허용한도 임계값들의 일부는 임의적이고, 추가 해결에 도달하도록 더 완화될 수 있다. 느슨해진 임계값때문일지라도, 그러한 대체 변환 구현은 더 나쁜 코딩 성능을 가질 수 있다.
이러한 절차(600)를 이용하여 구축된 계산상으로 효율적인 변환의 예로 든 셋트는 4 및 8-포인트 기저 함수를 이용하는 2차원 변환을 포함한다. 4 및 8-포인트 기저 함수에 기초하여, 8x8, 4x8, 8x4 및 4x4 변환을 위한 변환 매트릭스가 생 성된다. 그러나, 다르게는 구축 프로세스가 변경되어 다른 수의 포인트 또는 블록 차원을 가지는 기저 함수를 가지는 변환을 생성할 수 있다.
구축 프로세스(600)의 제1 단계(610)는 DC 기저 함수의 일정한 승수를 구하는 것이다. 4 및 8-포인트 기저 함수에 대해, 일정한 승수는 각각 d4 및 d8로 표시된다. 상기 설명한 놈 제한에 대하여, 이들 일정한 승수는 d8≤16이도록
Figure 112010020004090-pat00006
에서 관련된다. 약 1% 내에서 이러한 놈 제한을 만족시키는 오직 정수쌍{d4, d8}은 {7, 5}, {10, 7}, {17, 12} 및 {20, 14}이다. 8 포인트 변환에 대해, DC 기저의 제곱된 놈은 8d8 2이다. 그러므로, 이들 정수쌍을 가지는 DC 기저에 대한 허용가능한 8-포인트 제곱 놈은 200, 392, 1152 및 1568이다.
구축 프로세스(600)에서 제2 단계(620)는 변환의 홀수 기저 함수(또는 홀수 "주파수"로도 지칭됨)를 결정하는 것이다. 상기 설명한 DCT-형 기저 제한에 따르면, 변환은 DCT 변환에 유사한 속성을 가져야 하고, 8-포인트 DCT 변환에 대해 이하의 홀수 기저 함수를 가지고 있다.
Figure 112003015829024-pat00007
4개의 일정한 값들은 8-포인트 DCT의 이들 홀수 기저 함수를 결정한다. 베이스의 구조로 인해, 상수 C1, C2, C3 및 C4는 고유한 절대 계수를 대체하는데 이 용될 수 있고, 기저를 제공한다.
구축은 이하의 조건을 가지는 공간{C1,C2,C3,C4}을 검색함으로써 진행된다.
1. 기저의 직교성. 짝수 주파수 항과 홀수 항의 직교성은 짝수 주파수의 상보적 구조에서 음으로 주어진다. 그러므로, 이러한 조건은 홀수 기저 함수의 직교성을 감소시킨다.
2. DCT-형 기저. 벡터[C1 C2 C3 C4]는 대응하는 DCT 계수 벡터[0.4904 0.4157 0.2778 0.0975]와 "잘"상관된다. 상관은 벡터들간의 각도의 코사인에 의해 측정되고, 가능한 한 1에 가까운 것이 바람직하다. 상관에 대한 다른 측정이 또한 이용될 수도 있다.
3. 홀수 베이스의 놈들은 DC 놈을 근접하여 매칭한다. 이것은
Figure 112003015829024-pat00009
중의 하나로 표현될 수 있다.
놈의 5%의 허용한도(조건 3) 및 허용가능한 상관 "코사인"0.99(조건 2) 내에서, 8-포인트 홀수 기저 함수들에 대한 제한을 만족시키는 단지 한 셋트의 정수 계수가 존재한다. 이러한 셋트는 [16 15 9 4]이고, 578의 놈을 가지고 있으며, 원하는 576과 매우 근사하다. 상관은 상당한 0.9984이다.
구축 프로세스(600)의 제3 단계(630)는 변환에 대한 짝수 기저 함수 또는 짝수 주파수를 결정하는 것이다. 다시, DCT-형 기저 제한에 대해, 짝수 기저 함수는 DCT 변환의 잘 상관되어야 한다. 8-포인트 DCT 변환에 대해, 짝수 기저 함수는 이하와 같다.
Figure 112003015829024-pat00010
주파수 2 및 6에 대한 놈 제한은
Figure 112003015829024-pat00011
로 주어진다. 정수 쌍{16, 6}은 약 1% 내에서 이러한 제한을 만족시킨다.
결과적인 8 포인트 변환 매트릭스(단계 2 및 3에서 결정된 정수 계수를 이용함)는 이하와 같다.
Figure 112003015829024-pat00012
구축 프로세스(600)의 제4 단계(640)는 4 포인트 변환을 생성한다. 상기 설명한 바와 같이 생성된 8-포인트 변환에 대해(단계 610-630), DC 기저 함수의 일정한 승수는 d8=12이다. 그러므로, 4-포인트 변환에 대한 일정한 승수는 d4=17이다. DCT-형 기저에 대해, 이것은 생성되는 이하의 기저 함수에서 계수 D1 및 D2를 남겨둔다.
Figure 112003015829024-pat00013
상기 기저 함수를 가지는 매트릭스는 D1 및 D2의 임의의 선택에 대해 본질적으로 직교한다. 그러나, DCT-형 변환 제한에 따르면, 계수들은
Figure 112010020004090-pat00014
과 동일한 DCT 트위들(twiddle) 인자(즉, D1/D2 비율)에 의해 관련된다. 또한, 계수들은 놈 제한을 받고, D1 2 + D2 2 ≤578이다. 직교성, DCT-형 기저, 및 약 1%내로의 놈 제한을 만족시키는 정수 쌍은 정수쌍{22, 10}이다. 이것은 4 포인트 변환에 대한 이하의 기저 함수를 산출한다.
Figure 112003015829024-pat00015
Ⅴ. 변환 구현(계속)
도 5로 돌아가면, 상기 구축 프로세스(600)를 이용하여 생성된 변환 매트릭스는 실질적으로 변환을 정의한다. 2차원 변환에 대해, 기저 함수는 각 차원에서 샘플 데이터 블록에 적용된다. 예시된 변환 구현(500)에서, 기저 함수는 이전-곱(510)에서 샘플 데이터 블록의 로우에, 그리고 나서 이후-곱(530)에서 샘플 데이터 블록의 칼럼에 적용된다. 변환이 직교가 되도록 구축되므로, 동일한 변환 매트릭스는 순방향(300) 및 역(310) 변환에 이용된다. 비-유니터리 놈을 가지는 변환 기저 함수에 있어서, 예시된 구현은 또한 역변환에서 스케일링 스테이지(520, 540)를 포함하고, 변환에 의해 도입된 범위 확장을 보상한다. 그러한 범위-한정된 구현은 또한 순방향 변환에 이용될 수 있지만, 비디오 코딩의 컨텍스트에서, 순방향 변환에 대한 범위-한정은 또한 여분의 것이다. 인코딩 프로세스는 디코딩보다 더 느리고 인코더에서의 가용한 계산상 리소스는 디코더에서 보다 더 높은 자리(order of magnitude)이므로, 인코더는 더 높은 정밀도(예를 들면, 32 비트) 정수 또는 심지어 이중 정밀도 부동 소수점으로 구현될 수 있다. 따라서, 이하의 설명은 우선 상기 설명한 변환 매트릭스를 이용한 역변환의 예로 든 구현을 고려한다.
역변환 구현
이전에 설명한 바와 같은 변환 구현(500)에서, 변환 도메인 데이터 블록(이하 설명에서는 D로 지칭함)의 로우는 적절한 크기 변환 매트릭스(예를 들면 8x8 데이터 블록에 대해 상기 매트릭스 T8)로 매트릭스 곱을 수행함으로써 이전-곱 스테이지(510)에서 역변환된다. 변환 도메인 데이터 블록의 칼럼은 변환 매트릭스와의 매트릭스 곱에 의해 이후-승산 단계(530)에서 역변환된다. 이러한 순서는 역전될 수 있지만, 미스매치가 나타날 가능성이 있다. 이전-곱 및 이후-곱 스테이지를 위 한 변환 매트릭스는 상기 설명한 바와 같이 구축된 변환 매트릭스이다.
스케일링 스테이지(520, 540)에 대해, 예로 든 변환 구현에서의 스케일링은 상기 설명한 스케일링된 정수 구현 제한에 종속되어 결정된다(즉, 스케일링은 표준 시스템 및 그래픽 프로세서 상의 계산을 용이하게 하는 2의 거듭제곱에 의해서이다). 따라서, 스케일링은 변환 매트릭스의 기저 함수의 제곱된 놈에 가장 근접한 2의 거듭제곱이 되도록 선택된다.
더 구체적으로는, 역변환을 위한 정규 공식은 이하와 같이 표현될 수 있다.
Figure 112003015829024-pat00016
여기에서, D는 역변환으로의 입력(A)에서의 변환-도메인 데이터 블록을 나타낸다. 이하의 설명에서, D1은 변환 구현(500)의 제1 곱 스테이지(510)으로부터 출력된 데이터 블록을 나타내고, R은 로우 및 칼럼별 역변환 이후의 구축되는 출력을 나타낸다. 분모 s는 스케일링 인자이다. D, D1 및 R은 동일 구조의 8x8, 8x4 또는 4x8 매트릭스이다. 기수법의 남용시, 매트릭스 및 스칼라에 관련된 연산들이 매트릭스에 대한 엔트리-별 연산이다. 마찬가지로, 매트릭스 변수를 가지는 스칼라 연산은 매트릭스에 대한 엔트리별 스칼라 연산이다.
분모 s는 기저 함수의 제곱된 놈에 가장 근접한 2의 거듭제곱이 되도록 선택된다. 8x8 역변환에 대해, 1차원 8-포인트 기저 함수의 제곱된 놈의 값들은 [1152, 1156, 1168}이다. 그러므로, 분모는 1024가 되도록 선택되고(즉, s=1024), 이들 제곱된 놈 값들에 가장 인접한 2의 거듭제곱이다. 실제 놈과 이러한 분모간의 비율(즉,
Figure 112003015829024-pat00017
)은 1에 가까우므로, 표준 IDCT에 이용되는 양자화 파라미터와 예시된 변환 구현에 이용되는 양자화 파라미터 간의 근접한 대응관계가 있다. 모든 나머지 정규화(실질적으로는 기저 함수의 1024/제곱된 놈에 의함)가 이하에 설명되는 순방향 변환 프로세스에서 수행되므로, 여기에 도입되는 추가 에러는 없다.
상기 범위 제한의 설명에 있어서, 역변환의 입력에서 변환-도메인 데이터 블록 D는 예시된 구현에서 12비트의 범위를 가지고 있다. (정규화로 인해, 순방향 변환으로부터 생성되는 변환 도메인 데이터 블록의 범위는 실제로 ±2048/1.12로 감소된다.) 정규 중간 매트릭스(1차원의 역변환 이후)는
Figure 112003015829024-pat00018
이고, 10.5비트보다 약간 작은 범위를 가지고 있다.
하나의 역변환 구현(500)에서, 스케일링 스테이지(520 및 540)는 각각 5비트 위치만큼(효율적으로는 32로 나눔) 데이터 블록 값을 라운드 다운하거나 시프트할 수 있고, 합쳐서 10비트 위치만큼 시프트한다(1024로 나눔). 이것은 16비트 범위에서 곱 스테이지(510, 530)에서 범위 제한을 유지한다.
다른 구현은 제1 스케일링 스테이지(520)에서 스케일링 또는 라운딩의 양을 감소시킴으로써 제2의 이후-곱 스테이지에 대한 산술적 정밀도를 보존한다. 제1 곱 스테이지 이후의 결과적인 데이터 블록 D1은 10.5 비트의 범위를 이용하고 8-포인트 변환은 범위를 4비트만큼 확장하므로, 제1 스케일링 스테이지에서 기껏해야 1 비트 적은 스케일링이 허용될 수 있어, 양쪽 곱 스테이지에서 16비트 범위 제한 내로 유지된다. 그러므로, 다른 구현은 제1 스케일링 스테이지(520)에서 4비트 만큼 제2 스케일링 스테이지(540)에서 6비트 만큼 시프트될 수 있다. 변환의 정규 표현은 이제 이하와 같다.
Figure 112003015829024-pat00019
Figure 112003015829024-pat00020
이러한 다른 구현은 추가 정밀도 비트가 D1로 유지되도록 허용한다. 이러한 동일한 스케일링은 거의 그러한 경우는 드물지만, 4-포인트 변환 매트릭스의 가장 큰 승수는 여전히 가용한 헤드 룸(4.5 비트) 내에 있으므로, 4-포인트 변환에 이용될 수 있다.
중간 데이터 블록 D1에서, 제2 추가 정밀도 비트를 유지하기 위해, 또 다른 구현을 변환 매트릭스를 이하로서 분해한다.
T8=2T8 e + T8 o
T4=2T4 e + T4 o
여기에서, 홀수 컴포넌트 매트릭스 T8 o 및 T4 o는 엔트리로서 0, 1 및 -1만을 가지도 록 허용된다. T8의 대부분의 엔트리가 짝수이므로, T8 o는 스파스(sparse) 매트릭스이다. 마찬가지로, T4 o는 T4 e와 고도로 상관된 구조를 가지고 있다. 이러한 추가 다른 역변환 구현의 정규 표현은 이하와 같이 정의된다.
Figure 112003015829024-pat00021
Figure 112003015829024-pat00022
제1 스케일링 스테이지(520)는 단지 3비트만을 시프트 다운시키고, 제2 곱 스테이지(530)를 위한 여분 정밀도를 유지한다. 짝수 컴포넌트는 T8의 범위의 절반이고, 홀수 컴포넌트 T8 o는 0, 1 및 -1 엔트리를 가지도록 한정되므로, 변환의 제2 스테이지에서 결과적인 분자는 16비트로 한정된 범위이다. D1에서의 여분 비트 정밀도를 보상하는 사소한 계산상의 불이익이 있다. 그럼에도 불구하고, 이러한 변환 매트릭스의 분해는 무시할 수 있는 비용으로 개선된 산술적 정밀도로 결국 나타나게 된다.
또 다른 구현에서, 변환 T는 컴포넌트 변환 매트릭스 Ta 및 Tb로 더 일반적으로 분해될 수 있고, T=2xTa+Tb로서 변환 기저 T에 관련된다. 변환의 계산
Figure 112003015829024-pat00023
Figure 112003015829024-pat00024
로서 정의될 수 있다. 이러한 계산은 이하와 같이 매트릭스 곱 및 시프트 연산을 이용하여 구현될 수 있다.
(D·Ta + ((D·Tb)>>x))>>(y-x).
변환 T8의 특정 다른 구현으로 돌아가면, 8-포인트 변환의 홀수 및 짝수 컴포넌트는 이하와 같이 도시된다.
Figure 112003015829024-pat00025
유의할 점은, T8 o는 단지 2개의 독립적인 논-제로 칼럼을 가지고 있다는 점이다. T8 o에 의한 이후-곱은 단지 2개의 부가( 및 부정)와 같다.
W·T8 o=[W1 W2 W2 W1 -W1 -W 1 -W1 -W1]
여기에서,
Figure 112003015829024-pat00026
4 포인트 인버스 변환의 짝수 및 홀수 컴포넌트는 이하와 같다.
Figure 112003015829024-pat00027
이러한 또 다른 구현에서, 8x8 역변환에 대한 로우별 또는 이전-곱 스테이지(510) 및 제1 스케일링 스테이지(520)는 이하의 연산을 수행한다.
D1 = (D·T8 + 4)>>3
이러한 역변환 구현에서 칼럼별 또는 이후-곱 스테이지(530) 및 스케일링 스테이지(540)는 T8의 홀수 컴포넌트를 바라보고 8개 요소의 2개의 공통 로우를 계산함으로써 우선 정의된다. 이들은 1비트씩 우측 시프트된 후 결과가 6비트만큼 라운딩 다운되기 전에 짝수 컴포넌트 곱(product)에 부가된다(또는 감산된다). 그러므로, 이들 스테이지에서 수행되는 연산은 이하와 같이 표현된다.
Figure 112003015829024-pat00028
또 다른 구현에서 4x8 역변환(여기에 이용된 관례에 따라 4개의 칼럼 및 8개의 로우를 가지는 어레이를 지칭함)에 대해, 로우별 또는 이전-곱 스테이지(510) 및 스케일링 스테이지(520)는 D1=(D·T4 + 4)>>3으로서 정의된 4 포인트 연산을 수행한다.
변환의 제2 부분에 대해, 칼럼별 또는 이후-곱 스테이지(530) 및 스케일링 스테이지(540)는 방금 설명한 8x8 역변환의 대한 것과 동일하다.
8x4 역변환에 대해, 또 다른 실시예는 D1=(D·T8 + 4)>>3에 따라 로우별 스테이지(510) 및 스케일링 스테이지(520)에서 4 로우/8 칼럼 변환 도메인 데이터에 대해 연산한다.
칼럼별 스테이지(530) 및 스케일링 스테이지(540)에 대한 4 포인트 역변환은 이하와 같이 정의된다.
Figure 112003015829024-pat00029
4x4 역변환에 대해, 4x4 역변환의 스테이지(510, 530)는 상기 설명한 바와 같이 4x8 역변환의 로우별 스테이지(510) 및 8x4 역변환의 칼럼별 스테이지(530)에 대해 각각 구현된다.
순방향 변환 구현
스케일링 스테이지를 포함하는 도 5에 예시된 바와 같은 범위-한정된 구현들도 또한 순방향 변환에 적용될 수 있지만, 비디오 코딩의 컨텍스트에서 그러한 절차는 종종 여분의 것이다. 인코딩 프로세스는 디코딩보다 느리고 인코더에서의 가용한 계산상 리소스는 디코더보다 종종 더 큰 자리(order of magnitude)이므로, 인코더는 더 높은 정밀도(예를 들면 32비트) 정수 또는 심지어 이중 정밀도 부동 소수점으로 구현될 수 있다. 환언하면, 순방향 변환 구현에서의 스케일링 스테이지(520, 540)는 생략될 수 있다.
도 7에 도시된 양호한 순방향 변환 구현에서, 재정규화 스테이지(740)는 순방향 변환 측(로우별 및 칼럼별 곱(710, 730)의 이후)에 수행되어 변환 자체가 재구축시 최소한의 에러량을 도입하도록 보장한다. 이것은 기저 함수들의 놈의 사소한 차이를 보상하고 소수의 계산상 리소스가 가용한 디코더에서의 계산상 부하를 감소시킨다. 다르게는, 디코더에 제공된 충분한 계산상 리소스를 가지는 시스템에 대해, 보상(변환 데이터의 스케일링)은 디코더에서 수행될 수 있다.
이하의 설명에서, 심볼 ⓧ는 동일한 크기의 매트릭스의 컴포넌트별 곱을 나타낸다. 원래의 2D 신호(샘플 데이터 블록)는 X로 표시되고, 그 변환은 Y로 표현된다(X1은 로우별 변환 이후의 중간 블록을 나타낸다). 매트릭스 X 및 Y는 동일한 크기를 가지고 있고, 8x8, 8x4 및 4x8의 경우들을 커버한다. 이하의 스케일링 인 자가 이용된다.
Figure 112010020004090-pat00066
8x8 순방향 변환에 대해, 스테이지(710, 730 및 740)에서의 처리는 이하와 같이 기술된다.
Figure 112003015829024-pat00031
4x8 순방향 변환에 대해, 스테이지들은 이하를 수행한다.
Figure 112003015829024-pat00032
한편, 8x4 순방향 변환은 상기 4x8 순방향 변환의 이항(transpose)이다.
4x4 순방향 변환은 이하와 같이 스케일링을 구현한다.
Figure 112003015829024-pat00033
Ⅵ. 적절한 컴퓨팅 환경
상기 기술한 변환은 다른 예들 중에서도 컴퓨터, 이미지 및 비디오 레코딩, 송신 및 수신 장비, 휴대용 비디오 플레이어, 비디오 컨퍼런싱 장비 등을 포함하는, 이미지 및 비디오 신호 처리가 수행되는 다양한 디바이스들 중 임의의 것에서 수행될 수 있다. 이미지 및 비디오 코딩 기술은 도 8에 도시된 바와 같이 컴퓨터 또는 다른 컴퓨팅 환경에서 실행되는 이미지 및 비디오 처리 소프트웨어에서뿐만 아니라 하드웨어 회로로 구현될 수 있다.
도 8은 기재된 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경(800)의 일반 화된 예를 예시하고 있다. 컴퓨팅 환경(800)은 본 발명의 이용이나 기능의 범주에 대한 임의의 한정을 암시하려고 하는 것이 아니고, 본 발명은 다양한 일반 목적 또는 특별 목적의 컴퓨팅 환경에서 구현될 수 있다.
도 8을 참조하면, 컴퓨팅 환경(800)은 적어도 하나의 처리 유닛(810) 및 메모리(820)를 포함한다. 도 8에서, 이러한 가장 기본적인 구성(830)은 점선 내에 포함된다. 처리 유닛(810)은 컴퓨터 실행가능한 명령을 실행하고, 실제 또는 가상 프로세서일 수 있다. 멀티-프로세싱 시스템에서, 다중 프로세싱 유닛은 컴퓨터 실행가능 명령들을 실행하여 처리 능력을 향상시킨다. 메모리(820)는 휘발성 메모리(예를 들면, 레지스터, 캐시, RAM), 비휘발성 메모리(예를 들면, ROM, EEPROM, 플래시 메모리 등) 또는 이들의 일부 조합일 수 있다. 메모리(820)는 기재한 이미지 및/또는 비디오 인코더/디코더 및 변환을 구현하는 소프트웨어(880)를 저장한다.
컴퓨팅 환경은 추가 특징을 가질 수 있다. 예를 들면, 컴퓨팅 환경(880)은 저장장치(840), 하나 이상의 입력 디바이스(850), 하나 이상의 출력 디바이스(860), 및 하나 이상의 통신 접속(870)을 포함한다. 버스, 컨트롤러 또는 네트워크와 같은 상호접속 메카니즘(도시되지 않음)은 컴퓨팅 환경(800)의 컴포넌트를 상호접속시킨다. 통상, 오퍼레이팅 시스템 소프트웨어(도시되지 않음)는 컴퓨팅 환경(800)에서 실행되는 다른 소프트웨어를 위한 오퍼레이팅 환경을 제공하고, 컴퓨팅 환경(800)의 컴포넌트의 활동을 조정한다.
저장장치(840)는 제거가능 또는 제거불가능일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD 또는 정보를 저장하는데 이용될 수 있고 컴퓨팅 환경(800) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장장치(840)는 양자화 매트릭스를 생성하고 압축하는 오디오 인코더를 구현하는 소프트웨어(880)에 대한 명령들을 저장한다.
입력 디바이스(들)(850)는 키보드, 마우스, 펜, 또는 트랙볼과 같은 터치 입력 디바이스, 음성 입력 디바이스, 스캐닝 디바이스, 또는 컴퓨팅 환경(800)에 입력을 제공하는 다른 디바이스일 수 있다. 오디오를 위해, 입력 디바이스(들)(850)는 오디오 입력을 아날로그 또는 디지털 형태로 수락하는 사운드 카드 또는 유사한 디바이스, 또는 오디오 샘플들을 컴퓨팅 환경에 제공하는 CD-ROM 판독기일 수 있다. 출력 디바이스(들)(860)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(800)으로부터 출력을 제공하는 다른 디바이스일 수 있다.
통신 접속(들)(870)은 통신 매체를 통해 다른 컴퓨팅 실체로의 통신을 가능하게 한다. 통신 매체는 컴퓨터 실행가능 명령, 압축된 오디오 또는 비디오 정보, 또는 다른 데이터와 같은 정보를 변조된 데이터 신호로 운반한다. 변조된 데이터 신호는 정보를 신호로 인코딩하는 것과 같은 방식으로 설정되거나 변경된 하나 이상의 특징을 가지는 신호이다. 예로서, 통신 매체는 전기적, 광학적, RF, 적외선, 음성, 또는 다른 캐리어로 구현된 유선 또는 무선 기술을 포함하고, 이들로 제한되지 않는다.
여기에서 변환 및 코딩/디코딩 기술은 컴퓨터 판독가능 매체의 일반적인 컨텍스트로 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 가용한 매체이다. 예를 들면, 컴퓨팅 환경(800)에 있어서, 컴퓨터 판독 가능 매체는 메모리(820), 저장장치(840), 통신 매체 및 상기의 임의의 조합을 포함한다.
여기에서 변환 및 코딩/디코딩 기술은 타겟 실제 또는 가상 프로세서 상의 컴퓨팅 환경에서 실행되는 프로그램 모듈에 포함되는 것과 같은 컴퓨터 실행가능 명령의 일반적인 컨텍스트로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 다양한 실시예에서 요구되는 바와 같이 프로그램 모듈 사이에서 통합되거나 분리될 수 있다. 프로그램 모듈을 위한 컴퓨터-실행가능 명령은 로컬 또는 분산 컴퓨팅 환경에서 실행될 수 있다.
프리젠테이션의 목적상, 상세한 설명에서는 컴퓨팅 환경에서 컴퓨터 동작을 기술하는데 "결정한다","생성한다","조정한다" 및 "적용한다"와 같은 용어를 사용한다. 이들 용어들은 컴퓨터에 의해 수행되는 동작에 대한 고레벨 추상화이고, 인간에 의해 수행되는 행동과 혼동되어서는 안된다. 이들 용어에 대응하는 실제 컴퓨터 동작은 구현에 따라 가변된다.
Ⅶ. 확장
상기 기술한 변환 및 그 구현들은 이하와 같은 것을 포함하여 다양한 방식으로 확장될 수 있다.
변환 구현의 변형은 다른 라운딩, "버퍼플라이(butterfly)"구현, 및 양-직교 공식화를 포함할 수 있다.
또한, 상기 기술한 구축 프로세스는 상이한 비트-범위 제한에 종속되어 이어질 수 있어, 다른 계수 범위를 가지는 변환 변형(variant)을 생성한다.
구축 절차에 이용되는 제한의 임계 파라미터는 더 큰 장해(complaint) 변환 셋트를 산출하도록 가변될 수 있다.
변환 셋트는 추가 블록 크기(예를 들면, 4x4 및 다른 블록 크기 변환)를 포함하도록 연장될 수 있다. 마찬가지로, 생성된 변환 셋트는 반드시 상기 예시된 구현에서의 크기를 포함할 필요는 없다(즉, 8x8, 8x4, 및 4x8 변환). 변환은 다른 크기의 블록, 및 더 큰(>2) 차원으로 확장될 수 있다.
비트 깊이의 선택은 가변 파라미터이고, 예시된 예에 대해 임의로 변경될 수 있다(미처리 픽셀 값의 8비트- 해상도 및 중간 결과에 대해서는 16비트).
순방향 변환의 구현은 또한 역변환 구현을 범위 한정하도록 기재된 절차를 이용함으로써, 범위 한정될 수 있다.
상기 기재한 구축 프로세스에 이어 비-DCT 기저 함수를 근사하는 변환을 생성할 수 있다. 예를 들면, 구축 프로세스는 스케일링된 정수에 대한 제한, 완벽한 재구축, 및 범위 한정을 만족하면서도, FFT, 웨이브렛(wavelet), 또는 다른 중첩된 변환을 근사하는 변환을 생성할 수 있다.
상기 설명된 실시예를 참고하여 본 발명의 원리를 기재하고 도시했지만, 그러한 원리를 벗어나지 않고서도 기재된 실시예의 배열 및 세부사항이 변형될 수 있다는 것은 자명하다. 여기에 기재된 프로그램, 프로세스, 또는 방법들은 달리 지 적하지 않는 한, 특정 타입의 컴퓨팅 환경에 관련되거나 한정되는 것이 아니라는 것은 자명하다. 다양한 타입의 일반 목적 또는 특별 컴퓨팅 환경이 여기에 개시된 지침에 따라 동작에 이용되거나 동작을 수행할 수 있다. 소프트웨어로 도시된 실시예의 구성요소는 하드웨어로 구현될 수도 있으며, 그 역으로 가능하다.
변환-코딩 기술이 단일한 통합 시스템의 일부로서 적절하게 기재되었지만, 기술은 분리되어, 잠재적으로는 다른 기술과 통합되어 적용될 수 있다. 다른 실시예에서, 인코더 또는 디코더 이외의 신호 처리 툴은 하나 이상의 기술들을 구현한다.
기재된 변환 및 변환-코딩 실시예는 다양한 기술들을 수행한다. 이들 기술들에 대한 동작들이 프리젠테이션을 위해 특정 순차적 순서로 통상 기재되지만, 특정 순서가 요구되지 않는다면, 이러한 방식의 기술은 동작 순서에서의 사소한 재배열을 포함한다는 것은 자명하다. 예를 들면, 순차적으로 기재된 동작들은 일부 경우에 재배열되거나 동시에 수행될 수 있다. 더욱이, 단순화를 위해, 플로우차트는 통상 특정 기술이 다른 기술과 관련되어 이용될 수 있는 다양한 방식을 도시하지 않는다.
본 발명의 원리가 적용될 수 있는 가능한 많은 실시예를 감안하여, 이하의 특허청구범위 및 그 등가의 범주 및 사상내에 드는 모든 실시예를 본 발명으로서 청구한다.
본 발명에 따른 구축 절차를 통해 생성될 수 있는, 정수 매트릭스 곱을 갖는 변환의 구현은 미디어 코딩/디코딩 시스템에서 코딩 및 디코딩 성능을 향상시킨다.
또한 본 발명에 따른 구축 절차를 이용하면, 1차원에서 4 및 8 포인트 컴포넌트를 가지는 변환 셋트는 2차원에서 8x8, 8x4, 4x8 및 4x4 블록 변환을 발생시킨다. 16비트 매트릭스 곱을 이용한 구현을 허용하는, 변환에 기초한 압축 시스템은 더 계산상 효율적인 인코딩 및 디코딩을 제공할 수 있다.

Claims (50)

  1. 미디어 데이터를 인코딩하는 방법에 있어서,
    상기 미디어 데이터의 2차원 블록에 대해, 상기 블록의 순방향 변환을 수행하여 상기 블록을 변환 도메인으로 변환하는 단계;
    상기 변환-도메인 블록을 양자화하는 단계;
    상기 변환-도메인 블록을 역양자화하는 단계; 및
    재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계
    를 포함하고,
    상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 데이터 인코딩 방법.
  2. 제1항에 있어서, 상기 순방향 변환은 상기 사전결정된 오차범위 내에서 상기 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되는 미디어 데이터 인코딩 방법.
  3. 제1항에 있어서, 상기 제한은 상기 변환의 기저 함수들이 놈(norm)에서 근접하는 제한, 및 충분한 헤드룸이 존재하는 제한을 포함하는 미디어 데이터 인코딩 방법.
  4. 제3항에 있어서, 양자화시 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 인코딩 방법.
  5. 제3항에 있어서, 역양자화시 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 인코딩 방법.
  6. 제3항에 있어서, 부분적으로는 양자화시 및 부분적으로는 역양자화시 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 인코딩 방법.
  7. 미디어 데이터의 변환 코딩을 제공하는 미디어 시스템에 있어서,
    상기 미디어 데이터의 2차원 블록에 대해, 상기 블록의 순방향 변환을 수행하여 상기 블록을 변환 도메인으로 변환하도록 동작하는 순방향 변환 스테이지;
    상기 변환-도메인 블록을 양자화하도록 동작하는 양자화 스테이지;
    상기 변환-도메인 블록을 역양자화하도록 동작하는 역양자화 스테이지; 및
    재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하기 위한 역변환 스테이지
    를 포함하고,
    상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 일치하는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 시스템.
  8. 컴퓨터 시스템 상에서의 실행시 미디어 데이터를 인코딩하는 방법을 수행하도록 동작하는 컴퓨터 실행 가능 프로그램 명령들이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 미디어 데이터 인코딩 방법은,
    상기 미디어 데이터의 2차원 블록에 대해, 상기 블록의 순방향 변환을 수행하여 상기 블록을 변환 도메인으로 변환하는 단계;
    상기 변환-도메인 블록을 양자화하는 단계;
    상기 변환-도메인 블록을 역양자화하는 단계; 및
    재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계
    를 포함하고,
    상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 컴퓨터 판독가능 저장 매체.
  9. 양자화된 변환 도메인 값의 블록으로서 인코딩된 미디어 데이터를 디코딩하는 방법에 있어서,
    상기 양자화된 변환 도메인 값의 블록을 역양자화하는 단계; 및
    재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계
    를 포함하고,
    상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 데이터 디코딩 방법.
  10. 제9항에 있어서, 상기 제한은 근접한 놈 제한 및 충분한 헤드룸 제한을 포함하는 미디어 데이터 디코딩 방법.
  11. 제10항에 있어서, 상기 인코딩된 미디어 데이터 블록은 양자화시 보상되는 놈 미스매치인 미디어 데이터 디코딩 방법.
  12. 제10항에 있어서, 역양자화시 상기 변환의 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 디코딩 방법.
  13. 제10항에 있어서, 부분적으로는 양자화시 및 부분적으로는 역양자화시 상기 변환의 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 디코딩 방법.
  14. 양자화된 변환 도메인 값의 블록으로서 인코딩된 데이터를 디코딩하기 위한 미디어 디코더에 있어서,
    상기 양자화된 변환 도메인 값의 블록을 역양자화하기 위한 역양자화 스테이지; 및
    재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하기 위한 역변환 스테이지
    를 포함하고,
    상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 디코더.
  15. 컴퓨터 시스템 상에서의 실행시 양자화된 변환 도메인 값의 블록으로서 인코딩된 미디어 데이터를 디코딩하는 방법을 수행하도록 동작하는 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 미디어 데이터 디코딩 방법은,
    상기 양자화된 변환 도메인 값의 블록을 역양자화하는 단계; 및
    재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계
    를 포함하고,
    상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 컴퓨터 판독가능 저장 매체.
  16. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법에 있어서,
    상기 블록의 적어도 1차원이 8포인트인 경우에,
    Figure 112003015829024-pat00034
    형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
    비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계
    를 포함하는 변환 방법.
  17. 제16항에 있어서, 상기 이미지 데이터 블록은 8x8 블록이고, 상기 적어도 하나의 매트릭스 곱을 수행하는 단계는 상기 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별(row-wise) 및 칼럼별(column-wise) 매트릭스 곱을 수행하는 단계를 포함하는 변환 방법.
  18. 제17항에 있어서, 상기 스케일링 단계는 2의 거듭제곱에 의한 나누기를 실행하기 위해 상기 로우별 및 칼럼별 매트릭스 곱 각각 이후에 엔트리별(entry-wise) 시프트 연산을 포함하는 변환 방법.
  19. 제18항에 있어서, 제1의 매트릭스 곱 이후의 상기 엔트리별 시프트 연산은 제2의 매트릭스 곱 이후의 것보다 더 적은 비트 위치만큼의 시프트인 변환 방법.
  20. 제18항에 있어서, 상기 엔트리별 시프트 연산은 상기 각 매트릭스 곱 이후에 동일 숫자의 비트 위치만큼의 시프트인 변환 방법.
  21. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법을 수행하도록 컴퓨터 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 방법은,
    상기 블록의 적어도 1차원이 8포인트인 경우에,
    Figure 112003015829024-pat00035
    형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
    비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계
    를 포함하는 컴퓨터 판독가능 저장 매체.
  22. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법에 있어서,
    상기 블록의 적어도 1차원이 4포인트인 경우에,
    Figure 112003015829024-pat00036
    형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
    비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계
    를 포함하는 변환 방법.
  23. 제22항에 있어서, 상기 이미지 데이터 블록은 4x4 블록이고, 상기 적어도 하나의 매트릭스 곱을 수행하는 단계는 상기 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별 및 칼럼별 매트릭스 곱을 수행하는 단계를 포함하는 변환 방법.
  24. 제23항에 있어서, 상기 스케일링 단계는 2의 거듭제곱에 의한 나누기를 실행하기 위해 상기 로우별 및 칼럼별 매트릭스 곱 각각 이후에 엔트리별 시프트 연산을 포함하는 변환 방법.
  25. 제24항에 있어서, 제1의 매트릭스 곱 이후의 상기 엔트리별 시프트 연산은 제2의 매트릭스 곱 이후의 것보다 더 적은 비트 위치만큼의 시프트인 변환 방법.
  26. 제24항에 있어서, 상기 엔트리별 시프트 연산은 상기 각 매트릭스 곱 이후에 동일 숫자의 비트 위치만큼의 시프트인 변환 방법.
  27. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법을 수행하도록 컴퓨터 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 방법은,
    상기 블록의 적어도 1차원이 4포인트인 경우에,
    Figure 112003015829024-pat00037
    형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
    비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계
    를 포함하는 컴퓨터 판독가능 저장 매체.
  28. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법에 있어서,
    상기 블록의 차원들이 4 및 8 포인트인 경우에,
    Figure 112003015829024-pat00038
    Figure 112003015829024-pat00039
    형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별 및 칼럼별 매트릭스 곱을 수행하는 단계; 및
    비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계
    를 포함하는 변환 방법.
  29. 제28항에 있어서, 상기 데이터 블록은 4x8 포인트의 차원을 가지고 있고, 상기 매트릭스 곱을 수행하는 동작은 Y=(T8 · X · T'4)의 관계에 따라 수행되며, 여기서 X는 상기 데이터 블록을 나타내고, Y는 결과로서의 매트릭스 곱인 변환 방법.
  30. 제28항에 있어서, 상기 데이터 블록은 8x4 포인트의 차원을 가지고 있고, 상기 매트릭스 곱을 수행하는 동작은 Y=(T4 · X · T'8)의 관계에 따라 수행되며, 여기서 X는 상기 데이터 블록을 나타내고, Y는 결과로서의 매트릭스 곱인 변환 방법.
  31. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법을 수행하도록 컴퓨터 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서,
    상기 블록의 차원들이 4 및 8 포인트인 경우에, 상기 방법은,
    Figure 112003015829024-pat00040
    Figure 112003015829024-pat00041
    형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별 및 칼럼별 매트릭스 곱을 수행하는 단계; 및
    비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계
    를 포함하는 컴퓨터 판독가능 저장 매체.
  32. 비정수 계수 기저 함수를 가지는 제2 변환에 근사하는 정수 계수로 구성되는 변환 매트릭스와 정수값 데이터 블록과의 매트릭스 곱으로서 구현되는 변환을 이용하는 2차원 미디어 데이터를 위한 변환 코더에 있어서,
    상기 데이터 블록은 n 및 m의 차원을 가지고 있고, 상기 변환 매트릭스는 구축 프로세스에 따라 구축되며, 이 구축 프로세스는,
    n- 및 m-포인트 DC 기저 함수의 놈이 매칭하고 기저 함수들이 한정된 범위의 정수값 내에서 변환 도메인 데이터를 생성하는 제한을 허용한도 내에서 받는 n- 및 m-포인트 DC 기저 함수의 일정한 승수(multiplier)를 결정하는 단계;
    n- 또는 m-포인트 중 더 큰 것의 홀수 기저 함수는 직교하고, 제2 변환의 일정한 승수를 대응하는 기저 함수에 잘 상관시키며, 상기 DC 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 홀수 기저 함수의 일정한 승수의 셋트를 결정하는 단계;
    n- 또는 m-포인트 중 더 큰 것의 짝수 기저 함수는 직교하고, 제2 변환의 일정한 승수를 대응하는 기저 함수에 잘 상관시키며, 상기 DC 및 홀수 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 짝수 기저 함수의 일정한 승수의 셋트를 결정하는 단계; 및
    n- 또는 m-포인트 중 더 작은 것의 기저 함수는 직교하고, 제2 변환의 일정한 승수를 대응하는 기저 함수에 잘 상관시키며, n- 및 m-포인트 기저 함수 중 더 큰 것과 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 n- 또는 m-포인트 중 더 작은 것의 기저 함수의 승수의 셋트를 결정하는 단계
    를 포함하는 변환 코더.
  33. 제32항에 있어서, 상기 제2 변환은 DCT 변환인 변환 코더.
  34. 제32항에 있어서, 상기 제2 변환은 DCT, FFT, 웨이브렛(wavelet), 또는 중첩(overlapped) 변환 중 하나인 변환 코더.
  35. 제32항에 있어서, 상기 차원 n 및 m은 동일한 변환 코더.
  36. 제32항에 있어서, 상기 차원 n 및 m은 4 및 8인 변환 코더.
  37. 정수 계수로 구성되는 변환 매트릭스와 정수 데이터 블록과의 매트릭스 곱으로서 구현되는 변환을 이용하는 2차원 미디어 데이터를 위한 변환 코더에 있어서,
    상기 데이터 블록은 n 및 m의 차원을 가지고 있고, 상기 변환 매트릭스는 구축 프로세스에 따라 구축되며, 이 구축 프로세스는,
    n- 및 m-포인트 DC 기저 함수의 놈이 매칭하고 기저 함수들이 한정된 범위의 정수값 내에서 변환 도메인 데이터를 생성하는 제한을 허용한도 내에서 받는 n- 및 m-포인트 DC 기저 함수의 일정한 승수를 결정하는 단계;
    n- 또는 m-포인트 중 더 큰 것의 홀수 기저 함수는 직교하고, 일정한 승수를 대응하는 DCT 기저 함수에 잘 상관시키며, 상기 DC 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 홀수 기저 함수의 일정한 승수의 셋트를 결정하는 단계;
    n- 또는 m-포인트 중 더 큰 것의 짝수 기저 함수는 직교하고, 일정한 승수를 대응하는 DCT 기저 함수에 잘 상관시키며, 상기 DC 및 홀수 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 짝수 기저 함수의 일정한 승수의 셋트를 결정하는 단계; 및
    n- 또는 m-포인트 중 더 작은 것의 기저 함수는 직교하고, 일정한 승수를 대 응하는 DCT 기저 함수에 잘 상관시키며, n- 및 m-포인트 기저 함수 중 더 큰 것과 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 n- 또는 m-포인트 중 더 작은 것의 기저 함수의 승수의 셋트를 결정하는 단계
    를 포함하는 변환 코더.
  38. 제37항에 있어서, 상기 차원 n 및 m은 동일한 변환 코더.
  39. 제37항에 있어서, 상기 차원 n 및 m은 4 및 8인 변환 코더.
  40. 미디어 컨텐트를 나타내는 데이터 블록을 변환 코딩하는 방법에 있어서,
    상기 미디어 컨텐트를 나타내는 변환 도메인 데이터 블록을 생성하기 위해 상기 데이터 블록에 변환 -상기 변환은 미스매칭하면서도 대략 동일한 놈을 가지는 변환 기저 함수들의 셋트를 포함함- 을 적용하는 단계; 및
    상기 미스매칭 놈을 보상하기 위해, 상기 각 변환 기저 함수에 대한 스케일링 인자에 따라 상기 변환 도메인 데이터 블록내의 값을 스케일링하는 단계
    를 포함하는 변환 코딩 방법.
  41. 제40항에 있어서, 상기 미스매칭 놈을 보상하는 스케일링 단계는 디코딩시의 계산상 부하를 감소시키기 위해 인코딩시 수행되는 변환 코딩 방법.
  42. 제40항에 있어서, 상기 미스매칭 놈을 보상하는 스케일링 단계는 인코딩시의 계산상 부하를 감소시키기 위해, 디코딩시 수행되는 변환 코딩 방법.
  43. 제40항에 있어서, 상기 변환을 적용하는 단계는 매트릭스
    Figure 112003015829024-pat00042
    를 이용한 매트릭스 곱을 포함하고,
    상기 스케일링 단계는 매트릭스
    Figure 112003015829024-pat00043
    를 이용하여 컴포넌트별(component-wise) 곱을 수행하는 단계를 포함하며,
    여기에서,
    Figure 112003015829024-pat00044
    변환 코딩 방법.
  44. 제40항에 있어서, 상기 변환을 적용하는 단계는 매트릭스
    Figure 112003015829024-pat00045
    Figure 112003015829024-pat00046
    를 이용한 매트릭스 곱을 포함하고,
    상기 스케일링 단계는 매트릭스
    Figure 112003015829024-pat00047
    를 이용한 컴포넌트별 곱을 계산하는 단계를 포함하며,
    여기에서,
    Figure 112003015829024-pat00048
    변환 코딩 방법.
  45. 제40항에 있어서, 상기 변환을 적용하는 단계는 매트릭스
    Figure 112003015829024-pat00049
    를 이용한 매트릭스 곱을 포함하고,
    상기 스케일링 단계는 매트릭스
    Figure 112003015829024-pat00050
    를 이용한 컴포넌트별 곱을 계산하는 단계를 포함하며,
    여기에서,
    Figure 112003015829024-pat00051
    변환 코딩 방법.
  46. 미디어 컨텐트를 나타내는 데이터 블록을 변환 코딩하는 방법을 수행하도록 컴퓨터 시스템 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 코딩 방법은,
    상기 미디어 컨텐트를 나타내는 변환 도메인 데이터 블록을 생성하기 위해 상기 데이터 블록에 변환 -상기 변환은 미스매칭하면서도 대략 동일한 놈을 가지는 변환 기저 함수들의 셋트를 포함함- 을 적용하는 단계; 및
    상기 미스매칭 놈을 보상하기 위해, 상기 각 변환 기저 함수에 대한 스케일링 인자에 따라 상기 변환 도메인 데이터 블록내의 값을 스케일링하는 단계
    를 포함하는 컴퓨터 판독가능 저장 매체.
  47. 미디어 컨텐트를 표현하는 데이터 블록 D를 변환 코딩하는 방법에 있어서,
    상기 미디어 블록의 공간 및 변환 도메인 표현 사이에서 변환하기 위한 상기 데이터 블록의 변환을 계산하는 단계 -상기 변환의 결과 R은
    Figure 112003015829024-pat00052
    로서 상기 데이터 블록 D에 관련되고, 여기서 T는 변환 기저 함수의 매트릭스임- 를 포함하고,
    상기 계산 단계는,
    제1 및 제2 변환 서브-컴포넌트 매트릭스 각각과 상기 데이터 블록과의 매트릭스 곱을 수행하는 단계 -상기 변환 서브-컴포넌트 매트릭스(Ta 및 Tb)는 T=2x·Ta+Tb로서 상기 변환 기저 함수 매트릭스에 관련됨- ;
    상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 곱을 x 비트 위치만큼 시프트하는 단계;
    상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 상기 시프팅된 곱과, 상기 데이터 블록 및 제1 서브-컴포넌트 매트릭스의 곱을 가산하는 단계; 및
    상기 결과 R을 얻기 위해, 상기 곱들의 합을 y 비트 위치만큼 시프팅하는 단계 -그럼으로써 상기 변환의 헤드 룸이 확장됨-
    를 포함하는 변환 코딩 방법.
  48. 제47항에 있어서, 상기 변환 기저 함수 매트릭스는
    Figure 112003015829024-pat00053
    이고,
    상기 변환 서브-컴포넌트 매트릭스는
    Figure 112003015829024-pat00054
    변환 코딩 방법.
  49. 제47항에 있어서, 상기 변환 기저 함수 매트릭스는
    Figure 112003015829024-pat00055
    이고,
    상기 변환 서브-컴포넌트 매트릭스는
    Figure 112003015829024-pat00056
    변환 코딩 방법.
  50. 미디어 컨텐트를 표현하는 데이터 블록 D를 변환 코딩하는 방법을 수행하도록 컴퓨터 시스템 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 코딩 방법은,
    상기 미디어 블록의 공간 및 변환 도메인 표현 사이에서 변환하기 위한 상기 데이터 블록의 변환을 계산하는 단계 -상기 변환의 결과 R은
    Figure 112003015829024-pat00057
    로서 상기 데이터 블록 D에 관련되고, 여기서 T는 변환 기저 함수의 매트릭스임- 를 포함하고,
    상기 계산 단계는,
    제1 및 제2 변환 서브-컴포넌트 매트릭스 각각과 상기 데이터 블록과의 매트릭스 곱을 수행하는 단계 -상기 변환 서브-컴포넌트 매트릭스(Ta 및 Tb)는 T=2x·Ta+Tb로서 상기 변환 기저 함수 매트릭스에 관련됨- ;
    상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 곱을 x 비트 위치만큼 시프트하는 단계;
    상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 상기 시프팅된 곱과, 상기 데이터 블록 및 제1 서브-컴포넌트 매트릭스의 곱을 가산하는 단계; 및
    상기 결과 R을 얻기 위해, 상기 곱들의 합을 y 비트 위치만큼 시프팅하는 단계 -그럼으로써 상기 변환의 헤드 룸이 확장됨-
    를 포함하는 컴퓨터 판독가능 저장 매체.
KR1020030028005A 2002-05-02 2003-05-01 이미지 및 비디오 코딩을 위한 2d 변환 KR100965704B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37729802P 2002-05-02 2002-05-02
US60/377,298 2002-05-02
US10/376,147 US7242713B2 (en) 2002-05-02 2003-02-28 2-D transforms for image and video coding
US10/376,147 2003-02-28

Publications (2)

Publication Number Publication Date
KR20030086423A KR20030086423A (ko) 2003-11-10
KR100965704B1 true KR100965704B1 (ko) 2010-06-24

Family

ID=29273051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030028005A KR100965704B1 (ko) 2002-05-02 2003-05-01 이미지 및 비디오 코딩을 위한 2d 변환

Country Status (8)

Country Link
US (1) US7242713B2 (ko)
EP (1) EP1359546B1 (ko)
JP (1) JP4425561B2 (ko)
KR (1) KR100965704B1 (ko)
CN (1) CN100379292C (ko)
AT (1) ATE339744T1 (ko)
DE (1) DE60308255T2 (ko)
HK (1) HK1060205A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11979483B2 (en) 2021-04-27 2024-05-07 Research & Business Foundation Sungkyunkwan University Encryption apparatus and method of an image

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
IL147370A (en) * 2001-12-27 2007-07-24 Itzhak Florentin Method and system for guiding a remote vehicle via a retarded communication channel
US7129962B1 (en) * 2002-03-25 2006-10-31 Matrox Graphics Inc. Efficient video processing method and system
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US7760950B2 (en) * 2002-09-26 2010-07-20 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
US6831868B2 (en) * 2002-12-05 2004-12-14 Intel Corporation Byte aligned redundancy for memory array
US7471726B2 (en) * 2003-07-15 2008-12-30 Microsoft Corporation Spatial-domain lapped transform in digital media compression
JP4699685B2 (ja) * 2003-08-21 2011-06-15 パナソニック株式会社 信号処理装置及びそれを用いた電子機器
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US7627187B2 (en) * 2003-09-24 2009-12-01 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
KR20050075578A (ko) * 2004-01-16 2005-07-21 삼성전자주식회사 폐루프 최적화를 지원하는 스케일러블 비디오 엔코딩 방법및 장치
US7487193B2 (en) 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US8045614B2 (en) 2005-05-11 2011-10-25 Dolby Laboratories Licensing Corporation Quantization control for variable bit depth
WO2006034603A1 (en) * 2004-09-28 2006-04-06 Huawei Technologies Co., Ltd Video image encoding method
US7428342B2 (en) * 2004-12-17 2008-09-23 Microsoft Corporation Reversible overlap operator for efficient lossless data compression
US7471850B2 (en) * 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
US7305139B2 (en) * 2004-12-17 2007-12-04 Microsoft Corporation Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform
AU2005239628B2 (en) * 2005-01-14 2010-08-05 Microsoft Technology Licensing, Llc Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform
US8311088B2 (en) * 2005-02-07 2012-11-13 Broadcom Corporation Method and system for image processing in a microprocessor for portable video communication devices
US7953161B2 (en) * 2005-04-27 2011-05-31 Broadcom Corporation System and method for overlap transforming and deblocking
US8422546B2 (en) * 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US8036274B2 (en) * 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
US20070047655A1 (en) * 2005-08-26 2007-03-01 Vannerson Eric F Transpose buffering for video processing
WO2007027418A2 (en) * 2005-08-31 2007-03-08 Micronas Usa, Inc. Systems and methods for video transformation and in loop filtering
EP2566160A3 (en) * 2005-10-14 2013-08-21 NEC Corporation Apparatus and method for entropy coding with rate control
JP2007195117A (ja) * 2006-01-23 2007-08-02 Toshiba Corp 動画像復号装置
JP2007243427A (ja) * 2006-03-07 2007-09-20 Nippon Hoso Kyokai <Nhk> 符号化装置及び復号化装置
US8059721B2 (en) * 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
JP4829019B2 (ja) * 2006-07-06 2011-11-30 株式会社東芝 通信端末装置
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8942289B2 (en) 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US20080240257A1 (en) * 2007-03-26 2008-10-02 Microsoft Corporation Using quantization bias that accounts for relations between transform bins and quantization bins
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8255445B2 (en) 2007-10-30 2012-08-28 The Chinese University Of Hong Kong Processes and apparatus for deriving order-16 integer transforms
US8331454B2 (en) * 2007-11-12 2012-12-11 Cisco Technology, Inc. Integer transform function for video compression systems
CN100461095C (zh) * 2007-11-20 2009-02-11 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8102918B2 (en) 2008-04-15 2012-01-24 The Chinese University Of Hong Kong Generation of an order-2N transform from an order-N transform
US8175165B2 (en) 2008-04-15 2012-05-08 The Chinese University Of Hong Kong Methods and apparatus for deriving an order-16 integer transform
US8369638B2 (en) * 2008-05-27 2013-02-05 Microsoft Corporation Reducing DC leakage in HD photo transform
US8447591B2 (en) * 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8687692B2 (en) * 2008-08-12 2014-04-01 Lg Electronics Inc. Method of processing a video signal
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
US9183181B2 (en) * 2011-01-10 2015-11-10 Cisco Technology, Inc. Integer matrix transform video compression system, method and computer program product
US9110849B2 (en) 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
WO2010143853A2 (ko) 2009-06-07 2010-12-16 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 장치
US9635368B2 (en) 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
US9075757B2 (en) 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US8817875B2 (en) * 2009-08-13 2014-08-26 The Johns Hopkins University Methods and systems to encode and decode sequences of images
ES2610163T3 (es) 2009-10-20 2017-04-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codificador de audio, decodificador de audio, método para codificar información de audio, método para decodificar información de audio y programa de computación que utiliza una reducción de tamaño de intervalo interactiva
JP5773502B2 (ja) 2010-01-12 2015-09-02 フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム
TWI415474B (zh) * 2010-07-19 2013-11-11 Mstar Semiconductor Inc 視訊編/解碼器與其方法
CN103125116A (zh) * 2010-09-28 2013-05-29 三星电子株式会社 视频编码方法和装置以及解码方法和装置
CN101977321B (zh) * 2010-11-04 2014-03-12 深圳市融创天下科技股份有限公司 一种视频编码的整数变换方法
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
GB2492333B (en) * 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
RU2620718C2 (ru) 2011-06-30 2017-05-29 Самсунг Электроникс Ко., Лтд. Способ кодирования видео с регулированием битовой глубины для преобразования с фиксированной запятой и устройство для него, а также способ декодирования видео и устройство для него
JP5662887B2 (ja) * 2011-07-01 2015-02-04 日本放送協会 符号化装置、復号装置及びプログラム
WO2013070605A2 (en) * 2011-11-07 2013-05-16 Vid Scale, Inc. Video and data processing using even-odd integer transforms background
US8719321B2 (en) * 2011-12-11 2014-05-06 Hong Kong Applied Science and Technology Research Institute Company Limited Adaptive block-size transform using LLMICT
EP2805492B1 (en) 2012-01-19 2018-11-14 VID SCALE, Inc. System and method of video coding quantization and dynamic range control
CN103905825B (zh) * 2012-12-27 2018-02-13 中国电信股份有限公司 视频图像的运动补偿方法和装置
JP6102707B2 (ja) * 2013-12-05 2017-03-29 Nttエレクトロニクス株式会社 デジタル符号化装置
CN104901703B (zh) * 2015-04-08 2018-04-03 河海大学 一种整数序列快速压缩存储算法
AU2015404416C1 (en) * 2015-07-31 2021-03-25 Ent. Services Development Corporation Lp Translate data structure to video frame structure
US10567800B2 (en) 2016-11-29 2020-02-18 Qualcomm Incorporated Transform hardware architecture for video coding
CN106954070B (zh) * 2017-04-28 2023-04-11 河南工程学院 一种滑动像素块整数dct核心矩阵变换运动补偿器及方法
US11049219B2 (en) 2017-06-06 2021-06-29 Gopro, Inc. Methods and apparatus for multi-encoder processing of high resolution content
CN111713104B (zh) * 2018-02-14 2022-04-26 索尼公司 图像处理装置和方法
US11647214B2 (en) * 2018-03-30 2023-05-09 Qualcomm Incorporated Multiple transforms adjustment stages for video coding
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325215A (en) 1990-12-26 1994-06-28 Hitachi, Ltd. Matrix multiplier and picture transforming coder using the same
JPH09204417A (ja) * 1995-08-28 1997-08-05 Hyundai Electron America Inc 超lsiで実現するための離散余弦逆変換プロセッサ
EP1359546A1 (en) 2002-05-02 2003-11-05 Microsoft Corporation 2-D transforms for image and video coding

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63219066A (ja) 1987-03-06 1988-09-12 Matsushita Electric Ind Co Ltd 直交変換装置
US5357594A (en) * 1989-01-27 1994-10-18 Dolby Laboratories Licensing Corporation Encoding and decoding using specially designed pairs of analysis and synthesis windows
US5379351A (en) * 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
US5319724A (en) 1990-04-19 1994-06-07 Ricoh Corporation Apparatus and method for compressing still images
JPH04282988A (ja) 1991-03-12 1992-10-08 Sony Corp データ変換装置及び方法
US5168375A (en) * 1991-09-18 1992-12-01 Polaroid Corporation Image reconstruction by use of discrete cosine and related transforms
JPH0645948A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0645949A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0654307A (ja) 1992-07-29 1994-02-25 Casio Comput Co Ltd データ圧縮装置
JP3069455B2 (ja) * 1992-12-22 2000-07-24 富士写真フイルム株式会社 画像データ圧縮伸張装置における量子化・逆量子化回路
US5995539A (en) * 1993-03-17 1999-11-30 Miller; William J. Method and apparatus for signal transmission and reception
JP3697717B2 (ja) * 1993-09-24 2005-09-21 ソニー株式会社 2次元離散コサイン変換装置および2次元逆離散コサイン変換装置
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
US5864637A (en) * 1995-04-18 1999-01-26 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selective reduction of spatial resolution
JP2914226B2 (ja) 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
US5949919A (en) * 1995-10-05 1999-09-07 Microsoft Corporation Precompression extrapolation method
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
JPH1091614A (ja) 1996-09-13 1998-04-10 Hitachi Ltd Idctの整数化法
US5883823A (en) 1997-01-15 1999-03-16 Sun Microsystems, Inc. System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
US6058215A (en) * 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
US6134270A (en) * 1997-06-13 2000-10-17 Sun Microsystems, Inc. Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
US6057855A (en) * 1997-07-02 2000-05-02 Hewlett-Packard Company Method and apparatus for providing polygon pixel sub-sample information using incremental means
EP0957638A4 (en) * 1997-12-01 2008-06-04 Matsushita Electric Ind Co Ltd Image data processor and variable length coder and decoder
ES2251116T3 (es) * 1997-12-19 2006-04-16 Infineon Technologies Ag Dispositivo para la multiplicacion con factores constantes y su utilizacion para la compresion de video (mpeg).
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6154762A (en) * 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6073153A (en) * 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6301304B1 (en) * 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
GB9819648D0 (en) * 1998-09-10 1998-11-04 Nds Ltd Determining visually noticeable differences between two images
US6363117B1 (en) * 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
US6473534B1 (en) * 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
US6496795B1 (en) * 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
US6487574B1 (en) * 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6370502B1 (en) * 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6507614B1 (en) * 1999-10-19 2003-01-14 Sony Corporation Efficient de-quantization in a digital video decoding process using a dynamic quantization matrix for parallel computations
JP3593944B2 (ja) * 2000-03-08 2004-11-24 日本電気株式会社 画像データ処理装置及びそれに用いる動き補償処理方法
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
US20030112873A1 (en) 2001-07-11 2003-06-19 Demos Gary A. Motion estimation for video compression systems
US7123655B2 (en) * 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
CN1225904C (zh) 2002-04-12 2005-11-02 精工爱普生株式会社 在压缩域视频处理中降低存储器要求和实施有效的逆运动补偿的方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325215A (en) 1990-12-26 1994-06-28 Hitachi, Ltd. Matrix multiplier and picture transforming coder using the same
JPH09204417A (ja) * 1995-08-28 1997-08-05 Hyundai Electron America Inc 超lsiで実現するための離散余弦逆変換プロセッサ
EP1359546A1 (en) 2002-05-02 2003-11-05 Microsoft Corporation 2-D transforms for image and video coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11979483B2 (en) 2021-04-27 2024-05-07 Research & Business Foundation Sungkyunkwan University Encryption apparatus and method of an image

Also Published As

Publication number Publication date
EP1359546A1 (en) 2003-11-05
KR20030086423A (ko) 2003-11-10
CN100379292C (zh) 2008-04-02
US7242713B2 (en) 2007-07-10
DE60308255D1 (de) 2006-10-26
JP2003333598A (ja) 2003-11-21
US20030206582A1 (en) 2003-11-06
HK1060205A1 (en) 2004-07-30
JP4425561B2 (ja) 2010-03-03
EP1359546B1 (en) 2006-09-13
ATE339744T1 (de) 2006-10-15
DE60308255T2 (de) 2006-12-28
CN1455599A (zh) 2003-11-12

Similar Documents

Publication Publication Date Title
KR100965704B1 (ko) 이미지 및 비디오 코딩을 위한 2d 변환
KR101153105B1 (ko) 고속 비디오 코덱 변환의 구현
KR101013344B1 (ko) 이산 코사인 변환의 계산 중의 에러 감소
KR100912415B1 (ko) 변환 및 연속되는 양자화의 구현
KR101036731B1 (ko) 손실 및 무손실 2차원 데이터 압축을 위한 가역 변환
US8369638B2 (en) Reducing DC leakage in HD photo transform
JP5507077B2 (ja) バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法
KR20080044835A (ko) 넓은 범위 계수의 적응형 코딩 및 디코딩
US20060129622A1 (en) Method and system for fast implementation of an approximation of a discrete cosine transform
JP2008501250A (ja) 第1の変換カーネルに基づく入力ビデオを第2の変換カーネルに基づく出力ビデオにトランスコードする方法、及び入力形式を有する入力ビデオを出力形式を有する出力ビデオに変換するトランスコーダ
JP2002531973A (ja) 画像の圧縮及び伸張
KR100270799B1 (ko) 이산코사인변환/역이산코사인변환 프로세서
US20060228031A1 (en) Fast adaptive lifting lossless wavelet transform
CN1258169A (zh) 流水线离散余弦变换设备
JP2005168028A (ja) 絶対差演算装置とそれを用いた動き推定装置及び動映像符号化装置
US7552160B2 (en) Integrated lifting wavelet transform
KR20040044253A (ko) 고속 역 이산 여현 변환 방법 및 장치
JP2532588B2 (ja) 直交逆変換装置
KR100402734B1 (ko) 부호화된 피승수를 사용하는 고정 소수점 곱셈 장치 및 그방법
JP2015061143A (ja) 映像符号化装置、および、映像符号化プログラム
Konstantinides Key Components in the design of image and video compression ICs

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140516

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 10