KR20060047898A - 고속 비디오 코덱 변환 구현을 이용하는 변환 코딩 방법 - Google Patents

고속 비디오 코덱 변환 구현을 이용하는 변환 코딩 방법 Download PDF

Info

Publication number
KR20060047898A
KR20060047898A KR1020050040211A KR20050040211A KR20060047898A KR 20060047898 A KR20060047898 A KR 20060047898A KR 1020050040211 A KR1020050040211 A KR 1020050040211A KR 20050040211 A KR20050040211 A KR 20050040211A KR 20060047898 A KR20060047898 A KR 20060047898A
Authority
KR
South Korea
Prior art keywords
variables
butterfly
values
transform
operations
Prior art date
Application number
KR1020050040211A
Other languages
English (en)
Other versions
KR101153105B1 (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 KR20060047898A publication Critical patent/KR20060047898A/ko
Application granted granted Critical
Publication of KR101153105B1 publication Critical patent/KR101153105B1/ko

Links

Images

Classifications

    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

일련의 버터플라이(butterfly) 연산 및 행렬 곱들을 이용하여 8-포인트 WMV9/VC-9 변환의 고속 구현이 실현된다. 역변환의 고속 구현은 행렬 곱을 가지는 버터 플라이 연산을 역순 흐름으로 역순으로 적용시킴으로써 실현된다. 이들 고속 구현은 스케일링(scaling)이 필터링(filtering)의 차원 2개의 끝에, 또는 각 단계에서 개별적으로, 변환 단계에 포함될 수 있도록 한다. 이들 변환의 고속 구현은 이미지 압축 및 다른 신호 프로세싱 시스템에서의 변환에 기초하는 인코더 및 디코더에 이용될 수 있다.
WMV9/VC-9 변환, 버터플라이 연산, 행렬 곱셈, 필터링, 인코더, 디코더

Description

고속 비디오 코덱 변환 구현을 이용하는 변환 코딩 방법{FAST VIDEO CODEC TRANSFORM IMPLEMENTATIONS}
도 1은 본 명세서에서 기술된 WMV9/VC-9 변환의 고속 구현을 채용하는 비디오 인코더의 블럭도.
도 2는 본 명세서에서 기술된 WMV9/VC-9 변환의 고속 구현을 채용하는 비디오 디코더의 블럭도.
도 3은 대칭 회전에 대응하는 이전 기술의 버터플라이 연산의 도면.
도 4는 스케일링을 하지 않는 4-포인트 WMV9/VC-9 순방향 변환의 고속 구현의 블럭도.
도 5는 스케일링을 하지 않는 4-포인트 WMV9/VC-9 역변환의 고속 구현의 블럭도.
도 6은 스케일링을 하지 않는 8-포인트 WMV9/VC-9 순방향 변환의 고속 구현의 블럭도.
도 7은 스케일링을 하지 않는 8-포인트 WMV9/VC-9 역변환의 고속 구현의 블럭도.
도 8은 스케일링을 하지 않는 8-포인트 WMV9/VC-9 역변환의 대안적인 고속 구현의 블럭도.
도 9는 스케일링을 하지 않는 8-포인트 WMV9/VC-9 순방향 변환의 대안적인 고속 구현의 블럭도.
도 10은 도 1 및 도 2의 비디오 인코더/디코더를 위한 적절한 컴퓨팅 환경의 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
160: 주파수 변환기
170: 양자화기
180: 엔트로피 코더
190: 버퍼
260: 역 주파수 변환기
270: 역 양자화기
280: 엔트로피 디코더
1050: 입력 장치(들)
1060: 출력 장치(들)
본 발명은 신호를 디지털적으로 인코딩하고 프로세싱하는 기법에 관한 것으로, 보다 상세히는 이미지 및 비디오와 같은 신호의 인코딩 및 디코딩에서의 어느 정도의 계산적으로 효과적인 변환의 고속 구현에 관한 것이다.
변환 코딩은 복수의 오디오, 이미지 및 비디오 압축 시스템에 이용되는 압축 기법이다. 압축되지 않은 디지털 이미지 및 비디오는 통상적으로 2차원의 그리드에 배치된 이미지 또는 비디오 프레임에서의 위치에서 사진 엘리먼트나 색의 샘플로서 나타나고 캡춰된다. 예를 들면, 이미지에 대한 통상적인 포맷은 그리드로 배치된 24-비트 색 그림 엘리먼트 샘플의 스트림을 포함한다. 각 샘플은 RGB 또는 YIQ 등과 같은, 색 공간 내의 그리드에서의 픽셀 위치에서 색 요소를 나타내는 숫자이다. 다양한 이미지 및 비디오 시스템은 다양한 서로 다른 색, 샘플링의 공간적 및 시간적 해상도를 이용할 수 있다.
압축되지 않은 디지털 이미지 및 비디오 신호는 상당한 저장 공간 및 전송 용량을 소비할 수 있다. 변환 코딩은 신호의 공간-도메인 표기를 주파수-도메인(또는 다른 유사한 변환 도메인) 표기로 변환하고 그 다음에 일반적으로 특정하게 덜 인지되는 변환-도메인 표기의 주파수 컴포넌트의 해상도를 줄임으로써 디지털 이미지 및 비디오의 크기를 줄인다. 이 변환 코딩은 일반적으로 공간 도메인에서 이미지나 비디오의 색 또는 공간적 해상도를 줄이는 것에 비해 디지털 신호의 손상이 훨씬 적게 인지되는 결과를 얻는다.
보다 상세히 기술하자면, 통상적인 변환 코딩 기법은 압축되지 않은 디지털 이미지의 픽셀을, 각각이 다른 블럭과 중복될 가능성이 있는, 고정된-사이즈의 2 차원 블럭으로 나눈다. 공간-주파수 분석을 하는 선형 변환이 각 블럭에 적용되며, 이 변환은 블럭 내의 공간에 위치된 샘플을 일반적으로 블럭 간격 상의 대응하는 주파수 대역에서의 디지털 신호의 강도를 나타내는 주파수(또는 변환) 계수의 집합으로 전환한다. 압축에서, 변환 계수는 선택적으로 양자화되고(즉, 계수값의 LSB(least significant bit)를 버리거나 높은 해상도 수치의 값을 낮은 해상도로 매핑시킴으로써 해상도가 줄어들고), 압축된 데이터 스트림으로 엔트로피 코딩 또는 가변 길이 코딩될 수 있다. 디코딩에서, 변환 계수는 역순으로 변환하여 본래의 색/공간으로 샘플링된 이미지/비디오 신호를 거의 비슷하게 복원할 수 있다.
MPGE 및 윈도우 미디어 등과 같은, 복수의 이미지 및 비디오 압축 시스템은 DCT(Discrete Cosine Transform)에 기초하는 변환을 이용한다. DCT는 거의-최적인 데이터 압축을 산출하기에 바람직한 에너지 조밀도 속성을 가진다고 알려져 있다. 이들 압축 시스템에서, 역 DCT(IDCT)는 개개의 이미지 블럭을 복원하기 위하여 압축 시스템의 인코더 및 디코더 모두에서의 복원 루프에 채용된다. IDCT의 예시적인 구현이 1990년 12월 6일에 발표된 IEEE Std. 1180-1990에 기재된, "IEEE Standard Specification for the Implementations of 8x8 Inverse Discrete Cosine Transform,"에 기술된다.
IEEE Std. 1180-1990에 정의된 바와 같이 IDCT 변환의 단점은 이 변환의 계산이 계산적으로 비용이 드는 64-비트 부동 소수점형 수의 행렬의 곱셈을 포함한다는 점이다. 이러한 점은, 특히, IDCT가 실시간 기반에서 또는 다른 유사한 시간 제약사항 하에서 상당량의 압축된 데이터에서 수행되는, 스트리밍(streaming) 매체 및 유사한 매체 재생 애플리케이션에서, 이미지 또는 비디오 압축 시스템의 성능을 제한할 수 있다.
SMPTE(the Society of Motion Picture and Television Engineers) C24 기술 위원회를 통한 표준화를 위하여 비디오 코덱 9(VC-9)로서 제안하였던 윈도우즈 미디어 비디오 9 코덱(WMV9) 표준은 8x8, 8x4, 4x8 및 4x4 변환인, 4가지 타입의 2차원 데이터 변환을 정의한다. 이들 VC-9 표준 변환은 DCT와 유사한 에너지 조밀도 속성을 가지지만, 계산 효율을 위하여 정수 상에서의 행렬의 곱셈 연산에 기초하는 구현을 가진다. WMV9/VC-9 변환의 행렬 구현은 (본 명세서에 참조로서 포함되는 개시물인) 2003년 2월 28일에 출원된 미국 특허 출원 번호 10/376,147에 보다 완전히 기술된다. WMV9 명세는 역변환의 비트가-정확한 구현을 제시한다.
선형 변환의 고속 구현은 긴 역사를 가진다. 고속 변환의 하나의 잘-알려진 예로는 Math. Computation, vol. 19, pp. 297-301, 1965에 기재된 J. W. Colley 및 J. W. Tukey저술한 "An Algorithm For The Machine Calculation Of Complex Fourier Series"에 기술된 고속 퓨리어 변환(FFT; Fast Fourier Transform)이다. FFT는 O(N log N) 연산을 이용하여 N-포인트 퓨리어 변환을 실현한다. 퓨리어 변환 정의의 본래의 대칭성 때문에 이러한 단순한 연산이 가능해진다. 유사한 고속 변환이 1977년 9월에 발표된 IEEE Trans. Commun., vol. 25, pp. 1004-1009에 기재된 W. Chen, C.H. Smith 및 S.C. Fralick이 저술한 "A Fast Computational Algorithm For The Discrete Cosines Transform,", 및 1987년 10월에 발표된 IEEE Trans. Acoust., Speech, Signal Processing, vol. ASSP-35, pp. 1484-1485에 기재된 H. Malvar가 저술한 "Fast Computation Of The Discrete Cosine Transform And The Discrete Hartley Transform"에 기술된 DCT(Discrete Cosine Transform)에서 유사한 고속 변환이 존재함을 볼 수 있다.
고속 변환은 이 변환의 행렬의 곱셈 정의를 "버터플라이" 연산을 포함하는 일련의 단계로 분해시킨다. 버터플라이는 공간 도메인, 주파수 도메인 또는 중간 변수 중 하나인, 2개의 변수들 간의 가중된 데이터 교환이다. 예를 들면, 행렬의 곱셈에 대응하는 버터플라이 연산
Figure 112005025197193-PAT00001
이 도 3에 도시된다. 이 연산은 가능한 스케일 인자로, 본래의 2차원 백터 x의 원점에 대한 회전에 대응한다. 스케일 인자는
Figure 112005025197193-PAT00002
인 것으로 통일된다. 실수값 입력들을 가지는 버터플라이 연산은 오직 3개의 실수값 곱셈으로 구현될 수 있다. 일반적으로, 행렬은 순수한 회전-스케일링에 대응할 필요는 없고 더 복잡함 없이 스알(shear)이 가능하다.
바로 이전에 기술한 바와 같이, 4-포인트 WMV9/VC-9 변환은 버터플라이 연산의 직접적인 적용을 통하여 고속 구현을 가능하게 한다.
상술한 바와 같이, 8-포인트 DCT는 고속 변환 구현을 가진다고 알려져있다. 그러나, 이 DCT는 8-포인트 WMV9/VC-9 변환으로 쉽게 전환되지 않는다. WMV9/VC-9 변환은 DCT와 유사하지만 정수형 구현 및 비트 정확성 요구는 임의의 알려진 고속 구현으로부터의 직접적인 매핑을 불가능하게 한다.
2003년 2월 28일에 출원된, 미국 특허 출원 번호 10/376,147에 기술된 바와 같이, 8-포인트 WMV9/VC-9 변환은 짝수 및 홀수 행렬들의 쌍을 이용하는 연산에 의해 구현될 수 있다. DCT의 짝수 기반 함수(즉, 기반 함수 0, 2, 4 및 8)는 이후에 4 포인트 DCT를 하는 입력에서의 일련의 버터플라이 연산에 의해 쉽게 실현될 수 있다고 알려져 있다. 이러한 알려진 DCT의 고속 구현은 8-포인트 WMV9/VC-9 변환에 대한 짝수 행렬로 잘 변환시킨다.
그러나, 알려진 고속 구현은 8-포인트 WMV9/VC-9 변환에 대한 홀수 행렬의 고속 구현을 유도하는 방법을 제공하지 않는다. WMV9/VC-9 변환이 DCT와 유사하지만, WMV9/VC-9에서의 정수형 구현 및 비트-정확도 요구는 임의의 알려진 고속 변환 구현으로부터의 직접적인 매핑을 불가능하게 한다. 이들 변환의 홀수 기반 함수의 분석 및 통합은 이들 알려진 고속 변환 구현을 참조하여 해결될 수 없다.
8-포인트 WMV9/VC-9 변환의 고속 구현이 본 명세서에 기술된다. 기술된 구현은 8-포인트 WMV9/VC-9 변환에 대한 고속 순방향 변환 구현과 역변환 구현 및 각각의 대안적인 구현을 포함한다. 이들 고속 구현은 스케일링이, 필터링의 차원 2개의 끝에, 또는 각 단계에서 개별적으로, 변환 단계에 포함될 수 있도록 한다. 또한, WMV9/VC-9 변환, 이미지 압축 및 다른 신호 프로세싱 시스템을 채용하는 코덱 측의 인코더 및 디코더에서 고속 구현이 이용될 수 있다.
본 발명의 추가적인 특징 및 이점은 첨부된 도면을 참조하여 진행되는 실시예의 이하 상세한 설명으로부터 보다 명백해질 것이다.
이하의 설명은 WMV9 및 VC-9 코덱에 정의되고 WMV9/VC-9 컴플라이언트(complaint) 코덱 및 다른 2차원 매체(예를 들면, 비디오 및 이미지) 코덱에서의 사용에 적용될 수 있는, 변환의 집합의 고속 구현에 관한 것이다. 매체 코딩 변환 의 고속 구현의 예시적인 애플리케이션은 이미지 또는 비디오 인코더 및 디코더에 존재한다. 그러나, 본 명세서에서 기술된 바와 같이 구축된 변환은 이미지 또는 비디오 코덱에 제한되지 않으며, 다른 매체 프로세싱 시스템에 적용될 수 있다. 따라서, 변환의 고속 구현은 일반화된 이미지 또는 비디오 인코더 및 디코더에 관련하여 기술되지만, 대안으로 이들 변환을 채용하는 다양한 유형의 매체 신호 프로세싱 시스템에 포함될 수 있다.
1. 일반화된 비디오 인코더 및 디코더
도 1은 WMV9/VC-9 변환이 포함될 수 있는 일반화된 비디오 인코더(100)의 블럭도이며 도 2는 WMV9/VC-9 변환이 포함될 수 있는 일반화된 비디오 디코더(200)의 블럭도이다.
인코더 및 디코더 내의 모듈들 간에 도시된 관계들은 인코더 및 디코더의 정보의 주된 흐름을 나타내며, 다른 관계들은 단순함을 위하여 도시되지 않는다. 특히, 도 1 및 도 2는 일반적으로 비디오 시퀀스, 프레임, 매크로블럭, 블럭, 등에 이용되는 인코더 설정, 모드, 테이블 등을 나타내는 기타 정보를 도시하지 않는다. 이러한 기타 정보는 통상적으로 엔트로피 인코딩(entropy encoding) 이후에 출력 비트스트림에 전송된다. 출력 비트스트림의 포맷은 윈도우즈 미디어 비디오 포맷일 수 있거나 다른 포맷일 수 있다.
인코더(100) 및 디코더(200)는 블럭-기반이며 각 매크로블럭이 (가끔 1개의 16x16 매크로블럭으로 취급되는) 4개의 8x8 휘도 블럭 및 2개의 8x8 크로미넌스 블럭을 포함하는 4:2:0 매크로블럭 포맷을 이용한다. 대안으로, 인코더(100) 및 디 코더(200)가 객체 지향이거나, 다른 매크로블럭 또는 블럭 포맷을 이용하거나, 8x8 블럭 및 16x16 매크로블럭과는 다른 크기 또는 구성의 픽셀의 집합들 상에서 연산을 수행한다.
구현 및 원하는 압축 유형에 따라서, 인코더 또는 디코더의 모듈들이 추가되고, 생략되고, 복수의 모듈로 분할되고, 다른 모듈과 결합되고/거나 유사한 모듈로 대체될 수 있다. 대안적인 실시예에서, 다른 모듈 및/또는 모듈의 다른 구성을 가지는 인코더 또는 디코더가 하나 이상의 기술된 기법을 수행한다.
A. 비디오 인코더
도 1은 일반적인 비디오 인코더 시스템(100)의 블럭도이다. 인코더 시스템(100)은 현재 프레임(105)을 포함하는 일련의 비디오 프레임을 수신하고, 출력으로 압축된 비디오 정보(195)를 산출한다. 비디오 인코더의 특정 실시예는 통상적으로 일반화된 인코더(100)의 변형물 또는 보충되는 버전을 이용한다.
인코더 시스템(100)은 예측 프레임 및 키 프레임을 압축시킨다. 도시를 위하여, 도 1은 인코더 시스템(100)을 통하는 키 프레임에 대한 경로 및 순방향-예측 프레임에 대한 경로를 도시한다. 인코더 시스템(100)의 컴포넌트 중 다수는 키 프레임 및 예측 프레임 모두를 압축시키는 데에 이용된다. 이들 컴포넌트에 의해 수행되는 정확한 연산은 압축되는 정보의 유형에 따라서 변경될 수 있다.
하나 이상의 다른 프레임으로부터 예측치(또는 차이)에 관련하여 [p-프레임, 양방향 예측에서는 b-프레임, 또는 상호-코딩된 프레임이라고도 칭하는] 예측 프레임을 나타낸다. 예측 잔여물이란 예측된 것과 본래의 프레임 간의 차이이다. 이 와는 다르게, [i-프레임, 또는 내부-코딩된 프레임이라고도 칭하는] 키 프레임은 다른 프레임을 참조하지 않고 압축된다.
현재 프레임(105)이 순방향-예측 프레임이면, 움직임 추정자(110)는 프레임 저장소(120)에 버퍼링된 복원된 이전 프레임(125)인 참조 프레임에 관련하여 블럭 또는 현재 프레임(105)의 픽셀의 다른 집합의 움직임을 추정한다. 대안적인 실시예에서, 참조 프레임은 후속 프레임이거나 현재 프레임은 양방향으로 예측된다. 움직임 추정자(110)는 움직임 벡터와 같은 움직임 정보(115)를 기타 정보로서 출력한다. 움직임 보상기(130)는 움직임 정보(115)를 복원된 이전 프레임(125)에 적용시켜 움직임이-보상된 현재 프레임(135)을 형성한다. 예측치는 거의 완벽하지 못하지만, 움직임이-보상된 현재 프레임(135)과 본래의 현재 프레임(105) 간의 차이는 예측 잔여물(145)이 된다. 대안으로, 움직임 추정자 및 움직임 보상기는 다른 유형의 움직임 추정/보상을 적용시킬 수 있다.
주파수 변환기(160)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼) 데이터로 전환한다. 블럭-기반의 비디오 프레임에서, 주파수 변환기(160)는 DCT와 유사한 속성을 가지는 이하 섹션에서 기술되는 변환을 적용시킨다. 몇몇의 실시예에서, 주파수 변환기(160)는 주파수 변환을 키 프레임에 대한 공간 예측 잔여물의 블럭에 적용시킨다. 주파수 변환기(160)는 8x8, 8x4, 4x8 또는 다른 크기의 주파수 변환을 적용시킬 수 있다.
그 다음 양자화기(170)는 스펙트럼 데이터 계수의 블럭을 양자화시킨다. 양자화기는 균일하고, 스칼라인 양자화를 프레임 단위 기반 또는 다른 기반으로 변경 되는 스텝(step)-크기로 스펙트럼 데이터에 적용시킨다. 대안으로, 양자화기는, 예를 들면, 균일하지 않는 벡터, 또는 비적응성의 양자화와 같은 다른 유형의 양자화를 스펙트럼 데이터 계수에 적용시키거나 주파수 변환을 이용하지 않는 인코더 시스템에서 공간적 도메인 데이터를 직접 양자화한다. 적응성의 양자화 외에도, 인코더(100)는 프레임 버림, 적응성 필터링, 또는 비율 제어에 대한 다른 기법을 이용할 수 있다.
복원된 현재 프레임이 후속 움직임 추정/보상에 필요할 경우, 역 양자화기(176)는 양자화된 스펙트럼 데이터 계수에서 역 양자화를 수행한다. 그 다음 역 주파수 변환기(166)는 주파수 변환기(160)의 연산을 역으로 수행하여, (예측 프레임에 대한) 복원된 예측 잔여물 또는 복원된 키 프레임을 산출한다. 현재 프레임(105)이 키 프레임이었다면, 복원된 키 프레임은 (도시되지 않은) 복원된 현재 프레임으로 취한다. 현재 프레임(105)이 예측 프레임이었다면, 복원된 예측 잔여물이 움직임이-보상된 현재 프레임(135)에 추가되어 복원된 현재 프레임을 형성한다. 프레임 저장소(120)는 다음 프레임을 예측하는 데에 사용하기 위하여 복원된 현재 프레임을 버퍼링한다. 몇몇의 실시예에서, 인코더는 디블러킹 필터를 복원된 프레임에 적용시켜 프레임의 블럭 내의 불연속성을 적응적으로 부드럽게 한다.
엔트로피 코더(180)는 양자화기(170)의 출력 및 특정 기타 정보(예를 들면, 움직임 정보(115), 양자화 스텝 크기)를 압축한다. 통상적인 엔트로피 코딩 기법은 산술 코딩, 증분 코딩(differential coding), 허프만 코딩(Huffman coding), 실행 길이 코딩(runlength coding), LZ 코딩, 사전 코딩, 및 상기 것들의 조합을 포 함한다. 엔트로피 코더(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)는 통상적으로 공평하게 시간에 따라 일정한 비율로 정보를 수신하고, 대역폭이나 전송에서의 짧은 간격의 변화를 부드럽게 해주는 지터(jitter) 버퍼를 포함한다. 버퍼(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 또는 다른 크기 역 주파수 변환을 적용시킬 수 있다.
2. WMV9/VC-9 변환
WMV9/VC-9 표준은 (도 1의) 비디오 인코더(100)의 주파수 변환(160) (도 2의) 비디오 디코더(200)의 및 역 주파수 변환(260)으로 이용될 수 있는 변환을 정의한다. WMV9/VC-9 표준은 8x8, 8x4, 4x8 및 4x4 변환인, 4가지 유형의 2-차원 데이터 변환을 정의한다. 본 명세서는 이하에 요약되는 각 정의로서 역변환의 비트가-정확한 구현을 제시한다.
A. WMV9/VC-9 변환 정의
WMV9/VC-9에 이용되는 2D 변환은 분리될 수 있으며, 변환은 적절하게 정의된 스케일된 거의-대칭적인 곱수 행렬을 이용하여 각 방향으로 수행된다. 하나는 4 포인트 1차원 변환을 위한 행렬이며, 다른 하나는 8 포인트 1차원 변환을 위한 행렬인, 2개의 행렬은 아래와 같이 정의된다. 모든 변수는 정수라고 가정한다.
Figure 112005025197193-PAT00003
Figure 112005025197193-PAT00004
역변환은 모든 컴플라이언트 디코더가 비트가-정확한 출력을 산출하는 것이 요구되기 때문에 포맷 명세에 정확히 기술된다. 변환은 다음과 같이 정의된다:
첫째, 역양자화되는 변환 행렬의 행들이 역변환된다. 그 후에 열들의 역변환이 일어난다.
D를 역양자화된 변환 행렬로, D1을 변환의 제1 단계의 출력으로, R을 행 및 열 단위 역변환 이후의 복원된 출력으로 표기한다. D, D1, 및 R은 동일 구조이며 원하는 변환 크기와 동일한 크기의 8x8, 8x4, 4x8 및 4x4 행렬이다. 표기를 남용하여, 행렬과 스칼라(scalar)를 포함하는 연산들이 행렬에서의 엔트리단위 연산으로 본 명세서에서 정의된다. 마찬가지로, 행렬 독립변수(argument)를 가지는 스칼라 연산은 행렬에서의 엔트리단위 스칼라 연산으로 정의된다. 행렬과 벡터의 합은 행렬과 동일한-위치의 (벡터가 각각 열 벡터인지 행 벡터인지에 기초하여) 벡터의 행 또는 열로부터 얻어지는 값을 가지는 스칼라의 엔트리단위 합에 대한 약칭적 표 기이다.
mxn 역변환에 대한 정규식은
Figure 112005025197193-PAT00005
이다.
분모는 2의 거듭제곱 중 (4×288, 4×289, 4×292 중 하나인) 1D 변환의 기반 함수의 제곱된 놈(norm)에 가장 근접한 것이 선택된다. 실제 놈과 분모 간의 비율(약 1.12)이 1에 가깝기 때문에, IDCT에 이용되는 양자화 파라미터와 WMV9/VC-9 변환에 이용되는 양자화 파라미터 간에 거의 상응한다. (본질적으로 기반 함수의 1024/제곱된 놈에 의한) 모든 존재하는 정규화가 순방향 변환 과정에서 수행되기 때문에 - 이 과정은 본 명세서에서 앞서 더 설명되었다 - 여기에서 추가적인 에러는 발생하지 않는다.
실제로, 1024로 나누는 것은 2개의 1D 변환 과정 모두를 거치도록 분리되는 라운딩(rounding) 연산으로 구현된다. 또한 이하에 정의된 바와 같이 제2 단계 행렬을 짝수 및 홀수 컴포넌트로 분리함으로써 정확도를 최대한 유지하는 16 비트 역변환이 실현된다:
Figure 112005025197193-PAT00006
홀수 컴포넌트
Figure 112005025197193-PAT00007
Figure 112005025197193-PAT00008
는 엔트리로서 오직 0, 1 및 -1 만을 가질 수 있다.
Figure 112005025197193-PAT00009
의 엔트리 대부분이 짝수이기 때문에,
Figure 112005025197193-PAT00010
는 드문드문한 행렬이다. 마찬가지로,
Figure 112005025197193-PAT00011
Figure 112005025197193-PAT00012
와 매우 밀접하게 상호관련된 구조를 가지고 있다. 역변환 과정의 WMV9/VC-9 정규 표기는 이제
Figure 112005025197193-PAT00013
로 정의된다.
짝수 컴포넌트가 Tn 범위의 반을 차지하기 때문에, 그리고 홀수 컴포넌트
Figure 112005025197193-PAT00014
가 0, 1 및 -1만을 가지도록 제한되기 때문에, 변환의 제2 단계에서 산출되는 분자는 16비트로 제한된 범위임을 알 수 있다. 이는 부수적인 비트에 대하여 드는 계산적 손실을 최소화한다. 그럼에도 불구하고, 이러한 변환 행렬의 분해는 무시할 수 있는 비용으로 향상된 산술적 정확도를 산출한다.
4 및 8 포인트 변환의 짝수 및 홀수 컴포넌트가 다음에 나타난다:
Figure 112005025197193-PAT00015
Figure 112005025197193-PAT00016
에 의한 후속 곱셈은
Figure 112005025197193-PAT00017
으로 단순화될 수 있고, 여기서
Figure 112005025197193-PAT00018
이며, 이는 손쉬운 버터플라이 연산이다. 마찬가지 로,
Figure 112005025197193-PAT00019
에 의한 후속 곱셈은 단지 2개를 추가하는 것(및 제하는 것)과 같은 양이다:
Figure 112005025197193-PAT00020
, 여기에서
Figure 112005025197193-PAT00021
이다.
B. 8x8 변환
행-단위 역변환은 처음에는 다음과 같이 수행된다:
Figure 112005025197193-PAT00022
열-단위 역변환은 T8의 홀수 컴포넌트를 탐색하여 8 엘리먼트의 2개의 공통된 행을 계산함으로써 정의된다. 이 변환은, 결과가 6비트만큼 라운드 다운되기 이전에, 1 비트만큼 오른쪽으로-밀린 다음 짝수 컴포넌트 프로덕트(product)에 추가한다(또는 이 프로덕트로부터 뺀다). 이 연산은 다음과 같이 정의된다.
Figure 112005025197193-PAT00023
C. 4x8 역변환
WMV9/VC-9 규정에 따르면, "4x8"은 4개의 열과 8개의 행을 가지는 배열을 말한다. 행-단위 역변환은 다음과 같이 정의된 4 포인트 연산이다:
Figure 112005025197193-PAT00024
열을 따라가는 변환의 제2 부분은, 8x8 변환의 제2 부분과 동일하며, 앞서 수학식 1에서 정의되었다.
D. 8x4 역변환
WMV9/VC-9 규정에 따르면, 8x4는 8개의 열 및 4개의 행을 가지는 배열을 말한다. 8x4 변환의 제1 단계는 각각이 을 따르는 8개의 엔트리인 4개의 행에서 연산한다.
제2 단계에 대한 열-단위 4 포인트 역변환은 다음과 같이 정의된다.
Figure 112005025197193-PAT00026
E. 4x4 역변환
4x4 역변환의 제1 단계는 행-단위 연산이며,
Figure 112005025197193-PAT00027
으로 정의된 4 포인트 역변환이다.
열을 따라가는 변환의 제2 부분은 8x4 변환의 제2 부분과 동일하며, 앞서 수학식 2에 정의되었다.
F. 역변환의 대안적인 구현
변환 행렬의 짝수 및 홀수 컴포넌트를 이용하는 역변환의 제2 단계의 정의는 정확도를 최대한 유지하면서 16 비트 구현을 수행하는 것이 요구된다. (예를 들면 애플리케이션에 특정된 집적 회로 또는 ASIC에서와 같이) 16비트 워드 크기가 이슈가 되지 않는다면, 17비트 중간 결과가 몇몇의 기본적인 산술을 단순화하는 데에 이용될 수 있다. 이전의 섹션에서의 정의에 비하여 비트가-정확한 결과를 산출하는 변환의 대안적인 정의를 구할 수 있다. 이들 구현의 제1 단계가 본래의 정의의 제1 단계와 동일하기 때문에, 제2 단계만 아래에 정의하였다.
8x8 및 4x8 역변환은 제2 단계를 가진다:
Figure 112005025197193-PAT00028
8x4 및 4x4 역변환은 제2 단계를 가진다:
Figure 112005025197193-PAT00029
G. 순방향 변환 정의
순방향 변환은, (i) 변환 행렬들이 서로 바뀌고 (ii) 스케일링 인자가 다르다는 점만 제외하고는 유사한 과정에 의해 획득 된다. 순방향 변환이 인코더 측에서 비트가 정확한 방식으로 구현될 필요가 없기 때문에, 변수가 정수형이라는 가정은 더이상 필요 없다 - 실제로 순방향 변환은 부동 소수점 또는 스케일된 고정된 포인트 산술을 이용하여 구현될 수 있다. 아래에 나타낸 순방향 변환의 행렬-곱셈 표기는 행렬 곱들을 16 비트 레지스터를 가지는 정수형 곱셈으로 특별히 언급하는 역변환과는 다르게 순수하게 분석적인 표기이다. 단계들 간의 라운딩은 필요에 따라 이루어질 수 있고 이 선택은 인코더에 맡긴다. 순방향 변환의 프로토타입 정의는 아래에 주어진다.
데이터 행렬 D의 4x4, 4x8, 8x4 및 8x8 변환은 이들 4개의 경우에 대하여 수학식들의 이하의 집합을 이용하여 계산될 수 있다.
Figure 112005025197193-PAT00030
여기서 연산자
Figure 112005025197193-PAT00031
는 컴포넌트단위 곱셈이다.
Figure 112005025197193-PAT00032
에 의해 정규화 행렬
Figure 112005025197193-PAT00033
이 주어진다. 여기서 열 벡터 c는
Figure 112005025197193-PAT00034
이다.
다시, 정규화는 모든 곱들의 끝에서 한번에 또는 각 단계에서 개별적으로 이루어질 수 있다. 이는 인코더의 선택 사항이다. 이 출력은 2의 거듭제곱 만큼 확대되어 보다 정확한 순방향 양자화 과정을 촉진시킨다.
3. WMV9/VC-9 변환의 고속 구현
이 섹션은 상술한 WMV9/VC-9 변환의 고속 구현을 기술한다. 본질적으로, 각 변환 단계가
Figure 112005025197193-PAT00035
Figure 112005025197193-PAT00036
와 같은 형태의 행렬 곱이므로, 행렬 곱셈
Figure 112005025197193-PAT00037
Figure 112005025197193-PAT00038
의 속도를 높힘으로써 순방향 변환 과정의 속도 향상이 이루어질 수 있다. 마찬가지로 행렬 곱셈
Figure 112005025197193-PAT00039
Figure 112005025197193-PAT00040
의 속도를 높힘으로서 역변환의 속도가 향상될 수 있다.
행렬 곱
Figure 112005025197193-PAT00041
인 4 포인트 WMV9/VC-9 변환은 도 4에 도시된 바와 같이 버터플라이 연산의 직접적인 적용을 통하여 고속 구현을 할 수 있도록 한다. 도 5는 4-포인트 역변환, 즉 행렬 곱
Figure 112005025197193-PAT00042
의 고속 구현을 도시한다. 예상한 바와 같이, 신호 흐름 그래프는 순방향 변환의 그래프를 반대로 돌린 것이다. 이들 도면에는 스케일링이 무시된다 - 부동 소숫점 연산이 순방향 변환에 사용되는 경우 스케일링은 곱셈자로 롤링(rolling)될 수 있다. 다른 경우, 정수형 구현이 바람직하다면, 스케일링은 순방향 변환의 2 단계의 끝에서 이루어지는 것이 바람직하고, 그렇지 않으면 양자화 단계에서 이루어지는 것이 바람직하다. 역변환에 대하여, WMV9/VC-9 컴플라이언트인 본 명세서의 앞선 섹션에 정의된 바와 같이 스케일링이 수행되어야 한다.
8-포인트 DCT가 고속 변환 구현을 가진다고 알려져 있지만, 이 DCT는 8-포인트 WMV9/VC-9 변환으로 쉽게 전환되지 않는다. WMV9/VC-9 변환은 DCT와 유사하지만, 정수형 구현 및 비트-정확도 요구사항이 임의의 알려진 고속 구현으로부터의 직접적인 매핑을 불가능하게 한다. DCT의 짝수 기반 함수(즉, 기반 함수 0, 2, 4 및 8)는 이후에 4 포인트 DCT를 하는 입력에서의 일련의 버터플라이들 - 이 인자는 8 포인트 WMV9/VC-9 변환 또한 전환시킨다 - 에 의해 쉽게 실현될 수 있다고도 알려져 있다. 그러므로, 8 포인트 WMV9의 고속 구현을 유도함에 있어서의 실질적인 문제는 홀수 기반 함수의 분석 및 통합이다. 이러한 문제은 이하에 해결된다.
도 6은 8-포인트 순방향 WMV9/VC-9 변환의 고속 구현을 도시한다. 왼쪽에는 입력(공간 도메인)이 있으며 오른쪽에는 출력(변환 도메인)이 있다. 오른쪽의 상단의 4개의 출력은 짝수 기반들에 대응하며 이는 도 4의 4 포인트 변환과 유사하다. 홀수 기반들에 대응하는 행렬 곱은 다음과 같다:
Figure 112005025197193-PAT00043
제1 버터플라이 단계에서 관측되었던 바와 같이, 행은 중앙에 대한 홀수-대칭임을 알 수 있다.
Figure 112005025197193-PAT00044
에 의해 4 버터플라이들의 "차이"에 의한 행렬 곱이 산출된다.
이 4x4 행렬은 다음과 같이 분해될 수 있다:
Figure 112005025197193-PAT00045
상기 분해는 도 6에 도시된 버터플라이 표기를 유도한다. 컴포넌트 행렬들 또한 정수 값을 가지므로, 비트 정확도는 유지된다.
역변환은 2가지 방법 중 하나로 분해된다. 첫번째 대안적인 방법은 순방향 변환 흐름 그래프를 뒤집는 것이다. 버터플라이 연산은 반대로 된다. 보다 상세히는, 폼
Figure 112005025197193-PAT00046
의 버터플라이들은
Figure 112005025197193-PAT00047
의 역행렬들이기 때문에, 타입
Figure 112005025197193-PAT00048
의 버터플라이들은 자신들의 고유한 역행렬들이며 이 두가지 경우에서 스케일링은 무시된다. 그러므로, 순방향 변환 흐름 그래프를 뒤집음으로써, 도 7에 도시된 고속 역변환 구현을 얻는다.
두번째 대안적인 방법은
Figure 112005025197193-PAT00049
가 대칭 행렬임을 주목하는 것이다. 그러므로, 역변환도 순방향 변환과 동일한 행렬 곱을 포함한다, 즉, 순방향 변환에 대한 버터플라이들과 동일한 버터플라이들 및 순서가 홀수 기반 함수에 대하여 유지될 수 있다. 이러한 구현은 도 8에 도시된다.
상기의 뒤집는 것에 기초하여 순방향 변환 또한 생성될 수 있다. 이는 도 9에 도시된 순방향 변환의 대안적인 고속 구현을 제공한다.
5. 컴퓨팅 환경
상기 기술된 WMV9/VC-9 변환의 고속 구현이, 컴퓨터, 이미지 비디오 기록, 전송 및 수신 장치, 휴대용 비디오 재생기, 비디오 회의, 웹 비디오 스트리밍 애플 리케이션 등을 포함하는, 이미지 및 비디오 신호 프로세싱이 수행되는 다양한 장치 중 임의의 것에서 수행될 수 있다. 도 10에 도시된 바와 같이, 이미지 및 비디오 코딩 기법은 하드웨어 회로(예를 들면, ASIC, FPGA 등의 회로) 및 컴퓨터 또는 다른 컴퓨팅 환경 내에서 실행되는(CPU, 또는 전용 그래픽 프로세서, 비디오 카드 등에서 실행되는) 이미지 및 비디오 프로세싱 소프트웨어에서 구현될 수 있다.
도 10은 기술된 고속 WMV9/VC-9 변환이 구현될 수 있는 적절한 컴퓨팅 환경(1000)의 일반화된 예를 도시한다. 컴퓨팅 환경(1000)은 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니며, 본 발명은 많은 다른 범용 또는 특수목적 컴퓨팅 환경들에서 구현될 수 있다.
도 10을 참조하면, 컴퓨팅 환경(1000)은 적어도 하나의 프로세싱 유닛(1010) 및 메모리(1020)를 포함한다. 도 10에서, 이러한 가장 기본적인 구성(1030)은 점선 내에 도시된다. 프로세싱 유닛(1010)은 컴퓨터 실행가능 명령어를 실행시키고 실제 또는 가상 프로세서일 수 있다. 멀티-프로세싱 시스템에서, 프로세싱 성능을 높이기 위하여 복수의 프로세싱 유닛이 컴퓨터-실행가능 명령어를 실행시킨다. 메모리(1020)는 휘발성 메모리(예를 들면, 레지스터, 캐쉬, RAM), 비휘발성 메모리(예를 들면, ROM, EEPROM, 플래쉬 메모리, 등), 또는 이 둘의 몇몇의 조합일 수 있다. 메모리(1020)는 기술된 고속 WMV9/VC-9 변환을 구현하는 소프트웨어(1080)를 저장한다.
컴퓨팅 환경은 추가적인 특징을 가질 수 있다. 예를 들면, 컴퓨팅 환경(1000)은 저장 장치(1040), 하나 이상의 입력 장치(1050), 하나 이상의 출력 장치 (1060), 및 하나 이상의 통신 접속(1070)을 포함한다. 버스, 컨트롤러, 또는 네트워크와 같은 (도시되지 않은) 내부접속 메카니즘은 컴퓨팅 환경(1000)의 컴포넌트와 내부접속된다. 통상적으로, (도시되지 않은) 오퍼레이팅 시스템 소프트웨어는 컴퓨팅 환경(1000)에서 실행되는 다른 소트프웨어를 위한 오퍼레이팅 환경을 제공하고, 컴퓨팅 환경(1000)의 컴포넌트의 기능들을 구성한다.
저장 장치(1040)는 분리형 또는 비분리형일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD 또는 컴퓨팅 환경(1000) 내에 액세스될 수 있고 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함한다. 저장 장치(1040)는 양자화 행렬들을 생성하고 압축하는 오디오 인코더를 구현하는 소프트웨어(1080)에 대한 명령어를 저장한다.
입력 장치(들)(1050)는 컴퓨팅 환경(1000)에 입력을 제공하는 키보드,마우스, 펜, 트랙볼, 음성 입력 장치, 스캐닝 장치, 또는 다른 장치와 같은 접촉 입력 장치일 수 있다. 오디오에서, 입력 장치(들)(1050)는 사운드 카드 또는 아날로그또는 디지털 형태로 오디오 입력을 받아들이는 유사한 장치, 또는 오디오 샘플을 컴퓨팅 환경에 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(1060)는 디스플레이, 프린터, 스피터, CD-라이터 또는 컴퓨팅 환경(1000)으로부터 출력을 제공하는 다른 장치일 수 있다.
통신 접속(들)(1070)은 통신 매체 상에서 다른 컴퓨팅 엔티티와의 통신을 가능하게 한다. 통신 매체는 변조된 데이터 신호에 컴퓨터 실행-가능 명령어, 압축된 오디오 또는 비디오 정보, 또는 다른 데이터와 같은 정보를 전달한다. 변조된 데이터 신호란 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 전자, 광, RF, 적외선, 음향 및 기타 반송파로 구현된 유선 기법 및 무선 기법을 포함한다.
본 명세서의 변환 및 코딩/디코딩 기법은 컴퓨터-판독가능 매체와 일반적으로 관련하여 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 예로서, 컴퓨팅 환경(100)에서의, 컴퓨터 판독가능 매체는 메모리(1020), 저장 장치(1040), 통신 매체 및 상기 것들의 임의의 조합을 포함하지만, 이에 한정되는 것은 아니다.
고속 WMV9/VC-9 변환은 본 명세서에서 대상이 실제인 또는 가상인 프로세서 상의 컴퓨팅 환경에서 실행되는 프로그램 모듈 등에 포함되는, 컴퓨터-실행가능 명령어와 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 원한다면 다양한 환경에서 프로그램 모듈들 간에 결합되고 분리될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령어는 로컬 또는 분산 컴퓨팅 환경에서 실행될 수 있다.
표현을 목적으로, 상세한 설명은 컴퓨팅 환경에서의 컴퓨터 연산을 기술하기 위하여 "결정한다", "생성한다", "조절한다" 및" 적용한다"와 같은 용어를 사용하였다. 이들 용어는 컴퓨터에 의해 수행되는 연산에 대한 고급 추상화이며, 사람에 의해 수행되는 행위와 혼동되어서는 않된다. 이들 용어에 대응하는 실제 컴퓨터 연산은 구현에 따라 달라진다.
본 발명의 원리가 적용될 수 있는 복수의 가능한 실시예의 관점에서, 특허 청구 범위 및 그 동등물의 범위 및 사상 내에 포함될 수 있는 모든 실시예를 본 발명으로서 청구한다.
기술된 구현은 8-포인트 WMV9/VC-9 변환에 대한 고속 순방향 변환 구현과 역변환 구현 및 각각의 대안적인 구현을 포함한다. 이들 고속 구현은 스케일링이, 필터링의 차원 2개의 끝에, 또는 각 단계에서 개별적으로, 변환 단계에 포함될 수 있도록 한다. 또한, WMV9/VC-9 변환, 이미지 압축 및 다른 신호 프로세싱 시스템을 채용하는 코덱 측의 인코더 및 디코더에서 고속 구현이 이용될 수 있다.

Claims (13)

  1. 8-포인트의 블럭 변환의 고속 변환 구현을 이용하여 2차원 블럭의 미디어 데이터를,
    Figure 112005025197193-PAT00050
    로 표현되는 변환 행렬에 기초한 블럭 차원 중 적어도 하나로 변환 코딩하는 방법으로서,
    공간 도메인 계수의 8-포인트 집합과 8-포인트 변환 도메인 계수 간에서 상기 적어도 하나의 8-포인트 차원으로 변환이 이루어지는 다수 스테이지의 버터플라이 연산을 수행하는 단계를 포함하고,
    상기 다수의 스테이지는 홀수 변환 도메인 계수에 대해서는 행렬,
    Figure 112005025197193-PAT00051
    에 의한 행렬 곱을 수행하는 방법.
  2. 미디어 데이터의 변환 코딩을 제공하는 미디어 시스템으로서,
    상기 매체 데이터의 2차원 블럭에 대하여, 상기 블럭의 순방향 변환을 수행 하여, 상기 블럭을 변환 도메인으로 변환시키기 위하여 동작하는 순방향 변환 스테이지,
    상기 변환-도메인 블럭을 양자화하기 위하여 동작하는 양자화 스테이지,
    상기 변환-도메인 블럭을 역양자화시키기 위하여 동작하는 역양자화 스테이지, 및
    상기 변환-도메인 블럭의 역변환을 수행하여 식,
    Figure 112005025197193-PAT00052
    , 의 복원된 블럭을 산출하는 역변환 스테이지를 포함하고,
    상기 역변환의 적어도 하나의 차원 Tn 또는 Tm은 8-포인트 행렬
    Figure 112005025197193-PAT00053
    이고, 상기 역변환은 일련의 버터플라이(butterfly) 연산 및 행렬
    Figure 112005025197193-PAT00054
    에 의한 행렬 곱으로 구현되는 시스템.
  3. 8-포인트의 블럭 변환의 고속 변환 구현을 이용하여 2차원 블럭의 미디어 데 이터를,
    Figure 112005025197193-PAT00055
    로 표현되는 변환 행렬에 기초한 블럭 차원 중 적어도 하나로 변환 코딩하는 방법을 수행하기 위한 컴퓨터-실행가능 소프트웨어 명령어가 포함되어 있는 컴퓨터 판독가능 매체로서,
    상기 방법은
    공간 도메인 계수의 8-포인트 집합과 8-포인트 변환 도메인 계수 간에서 상기 적어도 하나의 8-포인트 차원으로 변환이 이루어지는 다수 스테이지의 버터플라이 연산을 수행하는 단계를 포함하고,
    상기 다수의 스테이지는 홀수 변환 도메인 계수에 대해서는 행렬,
    Figure 112005025197193-PAT00056
    에 의한 행렬 곱을 수행하는 컴퓨터 판독가능 매체.
  4. 공간 도메인 표기와 변환 도메인 표기 간의 이미지 데이터의 2-차원 블럭을 변환시키는 고속 변환 방법으로서,
    상기 블럭의 적어도 하나의 차원은 8 포인트이며,
    순방향 변환의 경우,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00057
    의 일련의 버터플라이 연산을 수행하는 단계 - 상기 버터플라이 연산은 적어도
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    12로 스케일링 되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    c 및 s 값이 5 및 3인, 변수 5와 6의 버터플라이 연산 - 이후에 상기 변수 6은 음수가 됨 -,
    c 및 s 값이 1인 변수 5와 6의 제2 버터플라이 연산
    을 포함함 -, 및
    변수 5와 6의 상기 제2 버터플라이 연산 이전에, 행렬
    Figure 112005025197193-PAT00058
    에 의한 변수 4와 5 및 변수 7과 6의 행렬 곱을 수행하는 단계를 포함하고,
    상기 변환 도메인에서 상기 변수 중 변수 0 내지 3은 짝수 계수를 산출하고, 변수 4 내지 7은 홀수 계수를 산출하는 방법.
  5. 제4항에 있어서,
    역변환에 대하여, 상기 순방향 변환의 역순 흐름으로 상기 버터플라이 연산을 역순으로 수행하는 단계를 포함하는 방법.
  6. 공간 도메인 표기와 변환 도메인 표기 간의 이미지 데이터의 2-차원 블럭을 변환시키는 고속 변환 방법으로서,
    상기 블럭의 적어도 하나의 차원은 8 포인트이며,
    역방향 변환의 경우,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00059
    의 일련의 버터플라이 연산을 수행하는 단계 - 상기 변수 0 내지 3은 짝수 변환 계수이고 변수 4 내지 7은 홀수 변환 계수이며, 상기 버터플라이 연산은 적어도
    c 및 s 값이 1인, 변수 5와 6의 버터플라이 연산,
    c 및 s 값이 5 및 3인, 변수 6과 5의 제2 버터플라이 연산 - 이후에 상기 변수 5는 음수가됨,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    12로 스케일링되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산을 포함함 -, 및
    변수 5와 6의 상기 제2 버터플라이 연산 이전에, 행렬
    Figure 112005025197193-PAT00060
    에 의한 변수 4와 5 및 변수 7과 6의 행렬 곱을 수행하는 단계를 포함하는 방법.
  7. 공간 도메인 표기와 변환 도메인 표기 간의 이미지 데이터의 2-차원 블럭을 변환시키는 고속 변환 방법으로서,
    상기 블럭의 적어도 하나의 차원은 8 포인트이며,
    역변환인 경우,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00061
    의 일련의 버터플라이 연산을 수행하는 단계 - 상기 변수 0 내지 3은 짝수 변환 계수이고 변수 4 내지 7은 홀 수 변환 계수이며, 상기 버터플라이 연산은 적어도
    c 및 s 값이 5 및 3인, 변수 5와 6의 버터플라이 연산 - 이후에 상기 변수 6은 음수가됨 -,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    c 및 s 값이 1인, 변수 5와 6의 제2 버터플라이 연산,
    12로 스케일링되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산을 포함함 -, 및
    변수 4와 7의 상기 버터플라이 연산 이후에 및 변수 5와 6의 상기 제2 버터플라이 연산 이전에, 행렬
    Figure 112005025197193-PAT00062
    에 의한 변수 4와 5 및 변수 7과 6의 행렬 곱을 수행하는 단계를 포함하는 방법.
  8. 제7항에 있어서,
    순방향 변환의 경우,
    상기 순방향 변환의 역순 흐름으로 상기 버터플라이 연산을 역순으로 수행시키는 단계를 포함하는 방법.
  9. 공간 도메인 표기와 변환 도메인 표기 간의 이미지 데이터의 2-차원 블럭을 변환시키는 고속 변환 방법으로서,
    상기 블럭의 적어도 하나의 차원은 8 포인트이며,
    순방향 변환의 경우,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00063
    의 일련의 버터플라이 연산을 수행하는 단계 - 상기 버터플라이 연산은 적어도
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    12로 스케일링되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 5와 6의 제1 버터플라이 연산,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    c 및 s 값이 5 및 3인, 변수 6과 5의 제2 버터플라이 연산 - 상기 변수 5는 음수가 됨 - 을 포함함, 및
    변수 5와 6의 상기 제1 버터플라이 연산 이후에 및 변수 4와 7의 상기 버터플라이 연산 이전에, 행렬
    Figure 112005025197193-PAT00064
    에 의한 변수 4와 5 및 변수 7과 6의 행렬 곱을 수행하는 단계를 포함하고,
    상기 변환 도메인에서 상기 변수 중 0 내지 3은 짝수 계수를 산출하고 변수 4 내지 7은 홀수 계수를 산출하는 방법.
  10. 2-차원의 미디어 블럭의 변환 기반의 압축/압축해제를 수행하는 2-차원 미디어 압축 프로세서로서,
    상기 블럭의 적어도 하나의 8-포인트 차원에서의 변환은 변환 행렬,
    Figure 112005025197193-PAT00065
    에 기초하고,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00066
    의 일련의 버터플라이 연산을 수행하는 수단 - 상기 변수 0 내지 3은 짝수 변환 계수이고 변수 4 내지 7은 홀수 변환 계수이며, 상기 버터플라이 연산은 적어도
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    12로 스케일링되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    c 및 s 값이 5 및 3인, 변수 5와 6의 버터플라이 연산 - 이후에 상기 변수 6는 음수가 됨 -,
    c 및 s 값이 1인, 변수 5와 6의 제2 버터플라이 연산을 포함함 -, 및
    변수 5와 6의 상기 제2 버터플라이 연산 이전에, 상기 행렬
    Figure 112005025197193-PAT00067
    에 의한 변수 4와 5 및 변수 7과 6의 행렬 곱을 수행하는 수단을 포함하는 프로세서.
  11. 2-차원의 미디어 블럭의 변환 기반의 압축/압축해제를 수행하는 2-차원 미디어 압축 프로세서로서,
    상기 블럭의 적어도 하나의 8-포인트 차원에서의 변환은 변환 행렬,
    Figure 112005025197193-PAT00068
    에 기초하고,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00069
    의 일련의 버터플라이 연산을 수행하는 수단 - 상기 변수 0 내지 3은 짝수 변환 계수이고 변수 4 내지 7은 홀수 변환 계수이며, 상기 버터플라이 연산은 적어도
    c 및 s 값이 1인, 변수 5와 6의 버터플라이 연산,
    c 및 s 값이 5 및 3인, 변수 6과 5의 제2 버터플라이 연산 - 이후에 상기 변수 5는 음수가 됨 -,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    12로 스케일링되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산을 포함함 -, 및
    변수 5와 6의 상기 제2 버터플라이 연산 이전에, 행렬
    Figure 112005025197193-PAT00070
    에 의한 변수 4와 5 및 변수 7과 6의 행렬 곱을 수행하는 수단을 포함하는 프로세서.
  12. 2-차원의 미디어 블럭의 변환 기반의 압축/압축해제를 수행하는 2-차원 미디어 압축 프로세서로서,
    상기 블럭의 적어도 하나의 8-포인트 차원에서의 변환은 변환 행렬,
    Figure 112005025197193-PAT00071
    에 기초하고,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00072
    의 일련의 버터플라이 연산을 수행하는 수단 - 상기 변수 0 내지 3은 짝수 변환 계수이고 변수 4 내지 7은 홀수 변환 계수이며, 상기 버터 플라이 연산은 적어도
    c 및 s 값이 5 및 3인, 변수 5와 6의 버터플라이 연산 - 이후에 상기 변수 6은 음수가 됨 -,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    c 및 s 값이 1인, 변수 5와 6의 제2 버터플라이 연산,
    12로 스케일링되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산을 포함함 -, 및
    변수 4와 7의 상기 버터플라이 연산 이후에 및 변수 5와 6의 상기 제2 버터플라이 연산 이전에, 행렬
    Figure 112005025197193-PAT00073
    에 의한 변수 4와 5 및 변수 7과 6의 행렬 곱 을 수행하는 수단을 포함하는 프로세서.
  13. 2-차원의 미디어 블럭의 변환 기반의 압축/압축해제를 수행하는 2-차원 미디어 압축 프로세서로서,
    상기 블럭의 적어도 하나의 8-포인트 차원에서의 변환은 변환 행렬,
    Figure 112005025197193-PAT00074
    에 기초하고,
    변수 0 내지 7의 집합에 대해 타입
    Figure 112005025197193-PAT00075
    의 일련의 버터플라이 연산을 수행하는 수단 - 상기 변수 0 내지 3은 짝수 변환 계수이고 변수 4 내지 7은 홀수 변환 계수이며, 상기 버터플라이 연산은 적어도
    c 및 s 값이 1인, 변수 0과 7의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 6의 버터플라이 연산,
    c 및 s 값이 1인, 변수 2와 5의 버터플라이 연산,
    c 및 s 값이 1인, 변수 3과 4의 버터플라이 연산,
    c 및 s 값이 1인, 변수 0과 3의 버터플라이 연산,
    c 및 s 값이 1인, 변수 1과 2의 버터플라이 연산,
    2에 의해 스케일링되는, c 및 s 값이 1인, 변수 0과 1의 버터플라이 연산,
    c 및 s 값이 16 및 6인, 변수 3과 2의 버터플라이 연산,
    c 및 s 값이 1인, 변수 5와 6의 제1 버터플라이 연산,
    c 및 s 값이 4 및 1인, 변수 4와 7의 버터플라이 연산,
    c 및 s 값이 5 및 3인, 변수 6과 5의 제2 버터플라이 연산 - 이후에 상기 변수 5는 음수가 됨 -,
    을 포함함 -, 및
    변수 5와 6의 상기 제1 버터플라이 연산 이후에 및 변수 4와 7의 상기 버터플라이 연산 이전에, 행렬
    Figure 112005025197193-PAT00076
    에 의한 변수 4와 5의 행렬 곱 및 변수 7과 6의 행렬 곱을 수행하는 수단을 포함하는 프로세서.
KR1020050040211A 2004-05-14 2005-05-13 고속 비디오 코덱 변환의 구현 KR101153105B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/845,808 2004-05-14
US10/845,808 US7487193B2 (en) 2004-05-14 2004-05-14 Fast video codec transform implementations

Publications (2)

Publication Number Publication Date
KR20060047898A true KR20060047898A (ko) 2006-05-18
KR101153105B1 KR101153105B1 (ko) 2012-06-04

Family

ID=34939513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050040211A KR101153105B1 (ko) 2004-05-14 2005-05-13 고속 비디오 코덱 변환의 구현

Country Status (5)

Country Link
US (1) US7487193B2 (ko)
EP (1) EP1596309A3 (ko)
JP (1) JP4425824B2 (ko)
KR (1) KR101153105B1 (ko)
CN (1) CN1697328B (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20070147496A1 (en) * 2005-12-23 2007-06-28 Bhaskar Sherigar Hardware implementation of programmable controls for inverse quantizing with a plurality of standards
US8595281B2 (en) * 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US8849884B2 (en) 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
US8228983B2 (en) * 2007-12-04 2012-07-24 Hong Kong Applied Science And Technology Research Method and device for order-16 integer transform from order-8 integer cosine transform
US8438036B2 (en) * 2009-09-03 2013-05-07 Texas Instruments Incorporated Asynchronous sampling rate converter for audio applications
CN103125116A (zh) 2010-09-28 2013-05-29 三星电子株式会社 视频编码方法和装置以及解码方法和装置
US9378185B2 (en) * 2010-09-30 2016-06-28 Texas Instruments Incorporated Transform and quantization architecture for video coding and decoding
JP5678593B2 (ja) * 2010-11-12 2015-03-04 沖電気工業株式会社 符号化支援装置、符号化装置、復号支援装置、復号装置、符号化支援プログラム、及び復号支援プログラム
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US10452743B2 (en) 2011-11-07 2019-10-22 Vid Scale, Inc. Video and data processing using even-odd integer transforms
US8719321B2 (en) * 2011-12-11 2014-05-06 Hong Kong Applied Science and Technology Research Institute Company Limited Adaptive block-size transform using LLMICT
US9069726B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Iteratively calculating standard deviation for streamed data
CN103905825B (zh) * 2012-12-27 2018-02-13 中国电信股份有限公司 视频图像的运动补偿方法和装置
US10275488B1 (en) * 2014-12-09 2019-04-30 Cloud & Stream Gears Llc Incremental covariance calculation for big data or streamed data using components
FR3044507A1 (fr) 2015-11-30 2017-06-02 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Family Cites Families (61)

* 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
JP2945487B2 (ja) 1990-12-26 1999-09-06 株式会社日立製作所 行列乗算器
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
JPH0645949A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0645948A (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
JP2778622B2 (ja) 1995-06-06 1998-07-23 日本電気株式会社 2次元dct回路
JP2914226B2 (ja) 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
JP3274593B2 (ja) * 1995-09-27 2002-04-15 日本電気株式会社 可逆変換可能な変換装置及び逆変換装置
US5959673A (en) 1995-10-05 1999-09-28 Microsoft Corporation Transform coding of dense motion vector fields for frame and object based video coding applications
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の整数化法
SG54383A1 (en) 1996-10-31 1998-11-16 Sgs Thomson Microelectronics A Method and apparatus for decoding multi-channel audio data
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
CN1064507C (zh) * 1997-03-06 2001-04-11 华邦电子股份有限公司 可巡回执行的离散余弦转换及其逆转换集成电路处理器
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
JPH11122624A (ja) 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
US6006179A (en) 1997-10-28 1999-12-21 America Online, Inc. Audio codec using adaptive sparse vector quantization with subband vector classification
CN1213612C (zh) * 1997-11-17 2005-08-03 索尼电子有限公司 用于采用离散变换进行数字视频数据去压缩的方法和系统
US6137916A (en) * 1997-11-17 2000-10-24 Sony Electronics, Inc. Method and system for improved digital video data processing using 8-point discrete cosine transforms
WO1999029112A1 (en) 1997-12-01 1999-06-10 Matsushita Electric Industrial Co., Ltd. Image processor, image data processor and variable length encoder/decoder
KR100441466B1 (ko) 1997-12-19 2004-07-23 인피니언 테크놀로지스 아게 상수 팩터 승산을 위한 장치와 비디오 압축(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
US6073153A (en) 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6154762A (en) 1998-06-03 2000-11-28 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
JP3586427B2 (ja) * 1998-12-14 2004-11-10 松下電器産業株式会社 Dct演算装置
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
US6487574B1 (en) 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6496795B1 (en) 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
JP4027011B2 (ja) * 1999-04-28 2007-12-26 キヤノン株式会社 画像形成装置
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
AU2063401A (en) 1999-12-06 2001-06-12 Hrl Laboratories, Llc Variable precision wavelets
JP3593944B2 (ja) 2000-03-08 2004-11-24 日本電気株式会社 画像データ処理装置及びそれに用いる動き補償処理方法
US6606725B1 (en) 2000-04-25 2003-08-12 Mitsubishi Electric Research Laboratories, Inc. MAP decoding for turbo codes by parallel matrix processing
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
JP4063508B2 (ja) 2001-07-04 2008-03-19 日本電気株式会社 ビットレート変換装置およびビットレート変換方法
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
JP2003348598A (ja) 2002-04-12 2003-12-05 Seiko Epson Corp メモリ効率のいい圧縮領域ビデオ処理のための且つ因数分解及び整数近似法を用いる高速逆動き補償のための方法並びに装置
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US6944224B2 (en) 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US20050213835A1 (en) 2004-03-18 2005-09-29 Huazhong University Of Science & Technology And Samsung Electronics Co., Ltd. Integer transform matrix selection method in video coding and related integer transform method
JP4074868B2 (ja) 2004-12-22 2008-04-16 株式会社東芝 画像符号化制御方法及びその装置
CN100539437C (zh) 2005-07-29 2009-09-09 上海杰得微电子有限公司 一种音频编解码器的实现方法

Also Published As

Publication number Publication date
EP1596309A3 (en) 2013-12-04
EP1596309A2 (en) 2005-11-16
US20050256916A1 (en) 2005-11-17
CN1697328B (zh) 2010-04-28
US7487193B2 (en) 2009-02-03
KR101153105B1 (ko) 2012-06-04
JP2005327298A (ja) 2005-11-24
JP4425824B2 (ja) 2010-03-03
CN1697328A (zh) 2005-11-16

Similar Documents

Publication Publication Date Title
KR101153105B1 (ko) 고속 비디오 코덱 변환의 구현
KR100965704B1 (ko) 이미지 및 비디오 코딩을 위한 2d 변환
KR101036731B1 (ko) 손실 및 무손실 2차원 데이터 압축을 위한 가역 변환
KR100982156B1 (ko) 역이산 코사인 변환의 계산 중의 에러 감소
JP4994655B2 (ja) 効率的な損失なしデータ圧縮のための可逆重ね合わせ演算子
EP1359763B1 (en) Approximate bicubic filter
AU2005234613B2 (en) Adaptive coefficient scan order
US7689052B2 (en) Multimedia signal processing using fixed-point approximations of linear transforms
KR101507183B1 (ko) 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어
JP2007295596A (ja) 画像符号化装置及び画像復号装置
KR100303744B1 (ko) 화상 압축·신장 방법 및 화상 압축·신장 장치
KR20040014047A (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
LAPS Lapse due to unpaid annual fee