KR101315562B1 - 미디어 코딩을 위한 4×4 변환 - Google Patents

미디어 코딩을 위한 4×4 변환 Download PDF

Info

Publication number
KR101315562B1
KR101315562B1 KR1020127000285A KR20127000285A KR101315562B1 KR 101315562 B1 KR101315562 B1 KR 101315562B1 KR 1020127000285 A KR1020127000285 A KR 1020127000285A KR 20127000285 A KR20127000285 A KR 20127000285A KR 101315562 B1 KR101315562 B1 KR 101315562B1
Authority
KR
South Korea
Prior art keywords
dct
factor
equal
internal factor
orthogonal
Prior art date
Application number
KR1020127000285A
Other languages
English (en)
Other versions
KR20120026603A (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 KR20120026603A publication Critical patent/KR20120026603A/ko
Application granted granted Critical
Publication of KR101315562B1 publication Critical patent/KR101315562B1/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

일반적으로, 미디어 코딩을 위한 4×4 변환들에 제공하는 기술들이 기술된다. 이들 기술들을 고수하는 다수의 상이한 4×4 변환들이 기술된다. 하나의 예로서, 장치는 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛을 포함한다. DCT 하드웨어 유닛은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 갖는 직교 4×4 DCT 를 구현한다. 4×4 DCT 하드웨어 유닛은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 4×4 DCT 구현을 미디어 데이터에 적용한다. 또 다른 예로서, 장치는 코딩 이득을 개선시키기 위한 비직교 4×4 DCT 를 구현한다.

Description

미디어 코딩을 위한 4×4 변환{4X4 TRANSFORM FOR MEDIA CODING}
본 출원은, 2009년 6월 5일에 출원된 미국 가출원 제61/184,656호 및 2009년 6월 24일에 출원된 미국 가출원 제61/219,887호의 이익을 주장한다.
본 특허출원은, 다음의 공동 계류 중인 미국 특허출원:
본 출원과 동시에 출원되고 본 양수인에게 양도되며 참조로서 여기에 명확히 포함된, 대리인 사건 번호 제092164U1호를 갖는 4×4 TRANSFORM FOR MEDIA CODING
에 관련된 것이다.
기술분야
본 개시물은 데이터 압축에 관한 것으로, 더 상세하게는, 변환을 수반하는 데이터 압축에 관한 것이다.
데이터 압축은, 데이터 저장 공간, 송신 대역폭, 또는 이들 양쪽 모두의 소모를 감소시키기 위해 다양한 애플리케이션에서 폭넓게 이용된다. 데이터 압축의 예시적인 애플리케이션들은, 디지털 비디오, 이미지, 음성, 및 오디오 코딩과 같은 가시 또는 가청 미디어 데이터 코딩을 포함한다. 예를 들어, 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템, 무선 통신 디바이스, 개인 휴대 정보 단말기 (PDA), 랩톱 또는 데스크톱 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게이밍 디바이스, 셀룰러 또는 위성 무선 전화기 등을 포함하는 광범위한 디바이스에서 디지털 비디오 코딩이 이용된다. 디지털 비디오 디바이스는 MPEG-2, MPEG-4, 또는 H.264/MPEG-4 AVC (Advanced Video Coding) 와 같은 비디오 압축 기술들을 구현하여 디지털 비디오를 더 효율적으로 송수신한다.
일반적으로, 비디오 압축 기술들은 공간적 예측, 모션 추정 및 모션 보상을 수행하여 비디오 데이터에 고유한 리던던시를 감소 또는 제거한다. 특히, 인트라-코딩 (intra-coding) 은 공간적 예측에 의존하여, 소정의 비디오 프레임 내에서의 비디오에서 공간적 리던던시를 감소 또는 제거한다. 인터-코딩 (inter-coding) 은 시간적 예측에 의존하여, 인접 프레임들 내에서의 비디오에서 시간적 리던던시를 감소 또는 제거한다. 인터-코딩의 경우, 비디오 인코더는 모션 추정을 수행하여 2개 이상의 인접 프레임들 간의 비디오 블록들을 매칭하는 움직임을 추적한다. 모션 추정은 모션 벡터들을 생성하고, 그 모션 벡터들은 하나 이상의 기준 프레임들에서의 대응하는 비디오 블록들에 관련하여 비디오 블록들의 변위를 나타낸다. 모션 보상은 모션 벡터를 이용하여 기준 프레임으로부터 예측 비디오 블록을 생성한다. 모션 보상 이후, 예측 비디오 블록을 오리지널 비디오 블록으로부터 감산함으로써 나머지 비디오 블록이 형성된다.
그 후에, 비디오 인코더는 변환에 후속하여, 양자화 및 무손실 통계 코딩 프로세스들을 적용하여, 비디오 코딩 프로세스에 의해 생성된 나머지 블록의 비트 레이트를 더 감소시킨다. 일부 경우, 적용된 변환은 이산 코사인 변환 (discrete cosine transform; DCT) 을 포함한다. 통상적으로, DCT 는, 사이즈가 2 의 거듭제곱인 비디오 블록들, 이를테면, ("4×4 비디오 블록" 이라고 종종 지칭되는) 4개 픽셀들 높이 × 4개 픽셀들 폭인 비디오 블록에 적용된다. 따라서, 이들 DCT들은, 이들 DCT들이 4×4 비디오 블록들에 적용되어 DCT 계수들의 4×4 행렬을 생성하는 4×4 DCT들이라고 지칭될 수도 있다. 그 후에, 4×4 DCT 를 나머지 블록에 적용하는 것으로부터 생성된 DCT 계수들의 4×4 행렬은, 양자화 및 무손실 통계 코딩 프로세스들을 경험하여 비트스트림을 생성한다. ("엔트로피 코딩" 프로세스들이라고도 공지된) 통계 코딩 프로세스들의 예로는, CAVLC (context-adaptive variable length coding) 또는 CABAC (context-adaptive binary arithmetic coding) 을 포함한다. 비디오 디코더는 인코딩된 비트스트림을 수신하고 무손실 디코딩을 수행하여 블록들 각각에 대한 나머지 정보를 압축해제한다. 나머지 정보 및 모션 정보를 이용하여, 비디오 디코더는 인코딩된 비디오를 복원한다.
일반적으로, 본 개시물은, 종래의 4×4 DCT들에 비해 증가된 코딩 이득을 제공할 수도 있는, 4×4 이산 코사인 변환 (DCT) 에 가까운 하나 이상의 구현들을 이용하여, 미디어 데이터와 같은 데이터를 코딩하는 기술들에 관련된 것이다. 본 개시물의 기술들에 따라 적용된 4×4 DCT 의 구현들은 스케일링된 인수 (scaled factor) 들 및 내부 인수들 사이의 다양한 관계식들을 수반한다. "스케일링된 인수들" 이라는 용어는 인수 분해를 통해 제거되는 4×4 DCT 의 구현으로부터의 외부의 인수들을 지칭한다. "내부 인수들" 이라는 용어는 인수 분해 이후에 남아있는 4×4 DCT 의 구현을 위한 내부의 인수들을 지칭한다. 4×4 DCT 의 하나의 예시적인 구현은 직교이고, 이는, 4×4 DCT 를 나타내는 계수들의 행렬이, 이 행렬의 전치로 곱셈이 행해지는 경우, 단위 행렬과 동일하다는 것을 의미한다. 4×4 DCT 의 또 다른 예시적인 구현은 근직교 (near-orthogonal) (또는 대략 직교) 이다. 상세히 후술되는 다양한 관계식들을 고수함으로써, 본 기술들은 직교 및 근직교 4×4 DCT 구현들을 발생시키는 양쪽 모두의 경우에서 행렬 계수들의 선택을 용이하게 하고, 데이터에 적용되는 경우, 종래의 4×4 DCT들에 비해 코딩 이득의 증가를 촉진시킬 수도 있다.
하나의 양태에서, 장치는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 갖는 직교 4×4 이산 코사인 변환 (DCT) 을 구현하는 4×4 DCT 하드웨어 유닛을 포함하고, 4×4 DCT 하드웨어 유닛은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 직교 4×4 DCT 의 구현을 미디어 데이터에 적용한다.
또 다른 양태에서, 방법은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 직교 4×4 DCT 구현을 미디어 데이터에 적용하는 단계를 포함하고, 직교 4×4 DCT 구현은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함한다.
또 다른 양태에서, 장치는, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 직교 4×4 이산 코사인 변환 (DCT) 구현을 미디어 데이터에 적용하는 수단을 포함하고, 직교 4×4 DCT 구현은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함한다.
또 다른 양태에서, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 직교 4×4 DCT 구현을 미디어 데이터에 적용하게 하는 명령들을 저장하고, 직교 4×4 DCT 구현은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함한다.
또 다른 양태에서, 장치는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 갖는 직교 4×4 이산 코사인 변환 (DCT) 의 역 이산 코사인 변환 (inverse discrete cosine transform; IDCT) 을 구현하는 4×4 IDCT 하드웨어 유닛을 포함하고, 4×4 IDCT 하드웨어 유닛은, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 IDCT 의 구현을, 미디어 데이터를 나타내는 DCT 계수들에 적용한다.
또 다른 양태에서, 방법은, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 직교 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하는 단계를 포함하고, 직교 4×4 DCT 는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함한다.
또 다른 양태에서, 장치는, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 직교 4×4 이산 코사인 변환 (DCT) 의 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하는 수단을 포함하고, 직교 4×4 DCT 는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함한다.
또 다른 양태에서, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 직교 4×4 DCT 의 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하게 하는 명령들을 저장하고, 직교 4×4 DCT 는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (C) 및 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함한다.
또 다른 양태에서, 장치는, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛을 포함하고, DCT 모듈은, 다음 식:
Figure 112012001066291-pct00001
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 갖는 비직교 (non-orthogonal) 4×4 DCT 를 구현하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시하고, 4×4 DCT 하드웨어 유닛은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 비직교 4×4 DCT 의 구현을 미디어 데이터에 적용한다.
또 다른 양태에서, 방법은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 미디어 데이터에 적용하는 단계를 포함하고, 비직교 4×4 DCT 는, 다음 식:
Figure 112012001066291-pct00002
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 포함하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시한다.
또 다른 양태에서, 장치는, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 미디어 데이터에 적용하는 수단을 포함하고, 비직교 4×4 DCT 는, 다음 식:
Figure 112012001066291-pct00003
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 포함하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시한다.
또 다른 양태에서, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 미디어 데이터에 적용하게 하는 명령들을 저장하고, 비직교 4×4 DCT 는, 다음 식:
Figure 112012001066291-pct00004
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 포함하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시한다.
또 다른 양태에서, 장치는, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛을 포함하고, DCT 하드웨어 유닛은, 다음 식:
Figure 112012001066291-pct00005
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (C, S) 을 제공하는 홀수부를 갖는 비직교 4×4 DCT 의 IDCT 를 구현하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시하고, 4×4 IDCT 하드웨어 유닛은, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 IDCT 의 구현을, 미디어 데이터를 나타내는 DCT 계수들에 적용한다.
또 다른 양태에서, 방법은, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하는 단계를 포함하고, 4×4 IDCT 는, 다음 식:
Figure 112012001066291-pct00006
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (C, S) 을 제공하는 홀수부를 갖는 비직교 4×4 DCT 의 IDCT 를 포함하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시한다.
또 다른 양태에서, 장치는, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하는 수단을 포함하고, 4×4 IDCT 는, 다음 식:
Figure 112012001066291-pct00007
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (C, S) 을 제공하는 홀수부를 갖는 비직교 4×4 DCT 의 IDCT 를 포함하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시한다.
또 다른 양태에서, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하게 하는 명령들을 저장하고, 4×4 IDCT 는, 다음 식:
Figure 112012001066291-pct00008
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (C, S) 을 제공하는 홀수부를 갖는 비직교 4×4 DCT 의 IDCT 를 포함하고, 여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 변수들 (ω 및 ψ) 대신에 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시한다.
또 다른 양태에서, 장치는, 다음 식:
Figure 112012001066291-pct00009
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 갖는 비직교 4×4 이산 코사인 변환 (DCT) 을 구현하는 4×4 DCT 하드웨어 유닛을 포함하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하고, 4×4 DCT 하드웨어 유닛은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 비직교 4×4 DCT 의 구현을 미디어 데이터에 적용한다.
또 다른 양태에서, 방법은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 미디어 데이터에 적용하는 단계를 포함한다. 비직교 4×4 DCT 는, 다음 식:
Figure 112012001066291-pct00010
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 포함하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하다.
또 다른 양태에서, 장치는, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 미디어 데이터에 적용하는 수단을 포함하고, 비직교 4×4 DCT 는, 다음 식:
Figure 112012001066291-pct00011
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 포함하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하다.
또 다른 양태에서, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 미디어 데이터에 적용하게 하는 명령들을 저장한다. 비직교 4×4 DCT 는, 다음 식:
Figure 112012001066291-pct00012
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 포함하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하다.
또 다른 양태에서, 장치는 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛을 포함하고, 4×4 IDCT 하드웨어 유닛은, 다음 식:
Figure 112012001066291-pct00013
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 갖는 비직교 4×4 이산 코사인 변환 (DCT) 의 IDCT 를 구현하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하고, 4×4 IDCT 하드웨어 유닛은, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 IDCT 의 구현을, 미디어 데이터를 나타내는 DCT 계수들에 적용한다.
또 다른 양태에서, 방법은, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하는 단계를 포함한다. IDCT 는, 다음 식:
Figure 112012001066291-pct00014
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 갖는 비직교 4×4 DCT 의 IDCT 를 포함하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하다.
또 다른 양태에서, 장치는, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하는 수단을 포함한다. IDCT 는, 다음 식:
Figure 112012001066291-pct00015
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 갖는 비직교 4×4 DCT 의 IDCT 를 포함하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하다.
또 다른 양태에서, 비일시적 컴퓨터 판독가능 저장 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 미디어 데이터를 주파수 도메인으로부터 공간 도메인으로 변환하도록, 4×4 역 이산 코사인 변환 (IDCT) 하드웨어 유닛에 의해 4×4 IDCT 를, 미디어 데이터를 나타내는 DCT 계수들에 적용하게 하는 명령들을 저장한다. IDCT 는, 다음 식:
Figure 112012001066291-pct00016
에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 갖는 비직교 4×4 DCT 의 IDCT 를 포함하고, 스케일링된 인수 (ξ) 는, 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하다.
본 기술들의 하나 이상의 양태들의 세부사항을 첨부한 도면 및 하기의 설명에서 설명한다. 본 개시물에서 기술되는 기술들의 다른 특징들, 목적들 및 이점들은 상세한 설명 및 도면과 청구범위로부터 명백해질 것이다.
도 1 은 비디오 인코딩 및 디코딩 시스템을 예시한 블록도이다.
도 2 는 도 1 의 비디오 인코더를 더 상세히 예시한 블록도이다.
도 3 은 도 1 의 비디오 디코더를 더 상세히 예시한 블록도이다.
도 4a 내지 도 4c 는 본 개시물의 기술들에 따라 구성된 스케일링된 4×4 DCT-Ⅱ 의 구현을 각각 예시한 도면들이다.
도 5 는 본 개시물의 기술들에 따라 구성된 4×4 DCT 구현을 적용함에 있어서 코딩 디바이스의 예시적인 동작을 예시한 흐름도이다.
도 6 은 본 개시물의 기술들에 따라 구성된 4×4 DCT-Ⅲ 구현을 적용함에 있어서 코딩 디바이스의 예시적인 동작을 예시한 흐름도이다.
도 7a 내지 도 7c 는 본 개시물의 기술들에 따라 구성된 3개의 상이한 4×4 DCT-Ⅱ 구현들 각각에 대한 비트레이트들에 대한 피크 신호 대 잡음 비들의 그래프들을 예시한 도면들이다.
일반적으로, 본 개시물은 다양한 관계식들에 따라 선택된 계수들의 4×4 행렬로서 나타낸 하나 이상의 4×4 이산 코사인 변환들 (discrete cosine transforms, DCTs) 을 이용하여 데이터를 코딩하는 기술들에 관련된 것이다. 이러한 기술들은, 더 효율적인 전기적 신호들의 프로세싱, 송신 또는 기록보관을 위해, 디지털 비디오, 이미지, 음성, 및/또는 오디오 데이터와 같은 가시 또는 가청 미디어 데이터를 포함하는 다양한 데이터를 압축하여, 이러한 데이터를 나타내는 전기적 신호들을 압축된 신호들로 변환하는 것에 적용될 수도 있다. 본 개시물의 기술들에 따라 정의된 다양한 관계식들을 고수함으로써, 계수들이 계수 행렬들에 대해 선택될 수도 있어, 데이터에 적용되는 경우, 4×4 DCT들의 직교 및 근직교 구현들이 코딩 이득의 증가를 촉진시킬 수도 있도록 한다.
상술된 사이즈, 즉, 4×4 는 개별 데이터 유닛들의 관점에서 나타낸 것이다. 예시하기 위해, 비디오 데이터가 비디오 블록들의 관점에서, 특히, 비디오 압축에 관련하여 종종 기술된다. 일반적으로, 비디오 블록은 비디오 프레임의 임의의 사이징된 부분을 지칭하고, 비디오 프레임은 일련의 사진들 또는 이미지들에서의 사진 또는 이미지를 지칭한다. 통상적으로, 각각의 비디오 블록은, 예를 들어, 레드, 블루 및 그린의 컬러 성분들 (소위 "색도" 또는 "크로마 (chroma)" 성분들), 또는 휘도 성분들 (소위 "루마 (luma)" 성분들) 중 어느 하나를 나타내는 복수의 개별 픽셀 데이터를 포함한다. 픽셀 데이터의 각각의 세트는 비디오 블록에서의 단일의 1×1 포인트를 포함하고, 비디오 블록들에 관련하여 개별 데이터 유닛이 고려될 수도 있다. 따라서, 4×4 비디오 블록은 각각의 행에서 픽셀 데이터의 4개의 개별 세트들을 갖는 픽셀 데이터의 4개의 행들을 포함한다. 컬러 또는 휘도 값을 특정하기 위해 각각의 셀에 n-비트 값이 할당될 수도 있다.
통상적으로, DCT들은 데이터의 블록의 사이즈의 관점에서 기술되고, 오디오, 음성 이미지이든지 또는 비디오 데이터이든지, DCT 가 프로세싱하는 것이 가능하다. 예를 들어, DCT 가 4×4 블록의 데이터를 프로세싱할 수 있는 경우, DCT 는 4×4 DCT 라고 지칭될 수도 있다. 또한, DCT들은 특정 타입으로 표시될 수도 있다. DCT들의 8개의 상이한 타입들 중 DCT 의 가장 흔히 채용되는 타입은 타입-Ⅱ 의 DCT 이고, 그 타입-Ⅱ 의 DCT 는 "DCT-Ⅱ" 로서 표시될 수도 있다. 종종, 일반적으로 DCT 라고 지칭되는 경우, 이러한 언급은 타입-Ⅱ 의 DCT 또는 DCT-Ⅱ 라고 지칭한다. DCT-Ⅱ 의 역은 타입-Ⅲ 의 DCT 라고 지칭되고, 그 타입-Ⅲ 의 DCT 는 유사하게 "DCT-Ⅲ" 로서 표시될 수도 있고, 또는 DCT 가 DCT-Ⅱ 라고 지칭하는 통상의 이해로, "IDCT" 로서 표시될 수도 있으며, 여기서 "IDCT" 에서의 "I" 는 역을 표시한다. 하기의 DCT들에 대한 언급은 이러한 표시법에 따르고, DCT들에 대한 일반적인 언급은 달리 특정되지 않는 한 DCT-Ⅱ 로 지칭한다. 그러나, 혼동을 피하기 위해, DCT들-Ⅱ 을 포함하는 DCT들 대부분은 대응하는 타입 (Ⅱ, Ⅲ 등) 을 표시하여 하기에서 지칭된다.
본 개시물에서 기술된 기술들은, 데이터 압축 및/또는 압축해제를 용이하게 하기 위해 4×4 DCT들-Ⅱ 의 하나 이상의 구현들을 이용하는 인코더 및/또는 디코더 양쪽 모두를 수반한다. 한번 더, 이들 4×4 DCT-Ⅱ 구현들을 적용하는 것을 통해 달성된 압축 및 압축해제는, 물리적 컴퓨팅 하드웨어, 물리적 송신 미디어 (예를 들어, 구리, 광섬유, 무선, 또는 다른 미디어), 및/또는 저장 하드웨어 (예를 들어, 자기 또는 광학 디스크 또는 테이프, 또는 다양한 고체 미디어 중 임의의 고체 미디어) 를 이용하여 신호가 더 효율적으로 프로세싱, 송신, 및/또는 저장될 수 있도록, 데이터를 나타내는 전기적 신호들의 물리적 변환을 허용한다. 이들 구현들은 하드웨어 단독으로 구성될 수도 있고 또는 하드웨어 및 소프트웨어의 조합으로 구성될 수도 있다.
4×4 DCT들-Ⅱ 의 구현들은 직교 또는 근직교일 수도 있다. 일반적으로, "직교" 라는 용어는, 행렬이 그 행렬의 전치로 곱셈이 행해지는 경우, 단위 행렬과 동일한 행렬의 속성을 지칭한다. "근직교" 라는 용어는 이러한 직교 속성이 완화되어 엄격한 직교성이 요구되지 않도록 하는 경우들을 지칭한다. 이러한 점에서, "근직교" 는 대략 또는 느슨하게 직교하는 것을 암시한다. 그러나, 근직교 행렬은, 직교 및 이러한 근직교 행렬들의 기술적 정의가 순수한 기술적 관점에서 비직교 (non-orthogonal) 를 고려할 수도 있다는 것을 충족시키지는 않는다.
본 개시물에 기술된 4×4 DCT-Ⅱ 의 직교 구현을 예시하기 위해, 4×4 DCT 모듈을 포함하는 장치를 고려한다. 4×4 DCT 모듈은 본 개시물에 기술된 기술들에 따라 구성된 직교 4×4 DCT-Ⅱ 를 구현한다. 이러한 직교 4×4 DCT-Ⅱ 구현은 홀수부 및 짝수부를 포함한다. 소위 4×4 DCT-Ⅱ 의 "홀수부" 는 홀수 넘버링된 계수들을 출력하는 4×4 DCT-Ⅱ 구현의 일부를 지칭한다. 소위 4×4 DCT-Ⅱ 의 "짝수부" 는 짝수 넘버링된 계수들을 출력하는 4×4 DCT-Ⅱ 구현의 일부를 지칭한다.
본 개시물의 기술들에 의하면, 홀수부는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록, 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (C, S) 을 제공한다. "내부 인수들" 이라는 용어는 인수 분해 이후에 남아있는 4×4 DCT 의 구현을 위한 내부의 인수들을 지칭한다. "스케일링된 인수들" 이라는 용어는 인수 분해를 통해 제거되는 4×4 DCT 의 구현으로부터의 외부의 인수들을 지칭한다.
통상적으로, 내부 인수들은 구현 복잡도의 관점에서 고비용일 수도 있는 곱셈들을 요구함으로써 구현 복잡도가 증가한다. 예를 들어, 곱셈은 더 단순한 덧셈 동작보다 3배 이상의 다수의 계산 동작들 (예를 들어, 클록 사이클들) 이 완료하는 것을 요구할 수도 있다. (예를 들어, 보다 적은 클록 사이클들에서) 곱셈을 더 효율적으로 수행하도록 특정 승수들이 구현될 수도 있지만, 이들 승수 구현들은 통상적으로 칩 또는 실리콘 표면적을 상당히 더 많이 소모시키고, 또한 다량의 전력을 인출할 수도 있다. 따라서, 인수들에 의한 곱셈은, 특히, 셀룰러 폰, 소위 "스마트" 셀룰러 폰, 개인 휴대 정보 단말기 (PDA), 랩톱 컴퓨터, 소위 "노트북" 등을 포함하는 대부분의 모바일 디바이스와 같은 전력 민감성 디바이스들에서는 종종 회피된다. 인수 분해는, 하나 이상의 내부 인수들이 4×4 DCT-Ⅱ 구현으로부터 제거될 수도 있고 외부 인수들로 대체될 수도 있는 프로세스이다. 그 후에, 외부 인수들은, 예를 들어, 비디오 인코더들과 관련하여, 통상적으로 최소 비용을 갖거나 복잡도가 증가하는 후속의 양자화 동작들에 포함될 수 있다.
임의의 경우, 상술된 제 1 및 제 2 내부 인수들 (C, S) 과 스케일링된 인수 (ξ) 사이의 상기 관계식은, 4×4 DCT들-Ⅱ 의 이전 구현들에 이용되지 않은 특정 값들의 내부 인수들을 제공한다. 예를 들어, 2 및 5 의 내부 인수들 (C 및 S) 에 대한 값들 각각은, C 및 S 에 대해 1 및 2 의 값들을 수반하는 공지된 4×4 DCT 구현들에 비해 구현 복잡도를 지나치게 증가시키지 않고, 코딩 이득을 개선시킨다. 그 후에, 비디오 인코더는 내부 인수들 2 및 5 를 갖는 4×4 DCT-Ⅱ 구현을 미디어 데이터에 적용하여, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환시키도록 한다. 이러한 직교 4×4 DCT-Ⅱ 구현을 적용함으로써, 본 기술들은, 1 및 2 의 내부 인수들을 포함하는 표준 DCT-Ⅱ 구현들과 비교한다면, (압축 효율을 나타내는 용어인) 코딩 이득을 용이하게 한다.
직교성은 DCT-Ⅱ 구현들에 관련하여 가역적이기 때문에 일반적으로 요망된다. 하나의 예로서, 이러한 가역적 속성은 비디오 인코더가 직교 4×4 DCT 구현을 적용하여 비디오 데이터의 나머지 블록들로부터 DCT 계수들을 생성하는 것을 허용한다. 그 후에, 비디오 디코더는 4×4 역 DCT-Ⅱ (IDCT) 구현을 적용하여 DCT-Ⅱ 계수들로부터 비디오 데이터의 나머지 블록을, 데이터에서 임의의 손실이 있다면 거의 손실이 없이 복원할 수 있다. 비디오 인코딩의 주된 목적이 데이터의 보존이라는 것을 고려하여, H.264 비디오 코딩 표준과 같은 다양한 코딩 표준들이 4×4 DCT 의 직교 구현에 채용된다.
직교성이 일반적으로 이론상 요망되는 것이지만, 실제로, 비디오, 오디오 또는 일반적 코딩 파이프라인은, 직교 4×4 DCT-Ⅱ 구현들에 의해 제공되는 값들의 정확한 복원을 대부분의 개소들에서 사실상 방해하는 소위 "잡음" 을 도입하는 다수의 단계들을 수반한다. 정수-연산 구현들을 고려한다면, 근직교 변환들이, 엄격한 직교의 정수 변환들에 비해, 코딩 효율을 개선시킬 수도 있는 한편, 구현 복잡도도 감소시킬 수도 있다. 사실상, 직교 속성을 완화시키면 잡음이 시스템 내로 도입되지만, 코딩 이득을 개선시킬 수도 있는 한편 구현 복잡도도 감소시킬 수도 있다.
본 개시물에서 기술된 4×4 DCT-Ⅱ 의 근직교 구현을 예시하기 위해, 장치의 4×4 DCT 모듈이, 본 개시물에 기술된 기술들에 따라 구성되는 이러한 근직교 4×4 DCT-Ⅱ 를 구현하는 것으로 고려한다. 또한, 이러한 근직교 4×4 DCT-Ⅱ 구현은 홀수부 및 짝수부를 포함한다. 이 경우의 홀수부는, 다음 식에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (C, S) 을 제공한다:
Figure 112012001066291-pct00017
이 식에서, 변수들 (ω 및 ψ) 은 오리지널 (무리수) 의 내부 변환 인수들을 표시한 것이고, 예를 들어, (ω) 는 8 로 나눈 3 × 상수 파이 (π) 의 코사인일 수도 있고, (ψ) 는 8 로 나눈 3 × 상수 파이 (π) 의 사인일 수도 있다. 변수들 (C) 및 (S) 은 (ω) 및 (ψ) 대신에 위치된 정수 (또는 이항 유리수) 의 내부 변환 인수들을 표시한 것이다.
식 (2) 는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, (ω) 에 (ψ) 를 더한 것으로 나눈 것과 동일하다는 것을 나타낸다. 이 식은 직교 구현에 관련하여 정의된 상기 관계식과 유사한 C 및 S 의 특정 내부 인수 값들을 식별할 수도 있지만, 상이한 외부 인수를 발생시킬 수도 있다. 그러나, 상이한 외부 인수는 상술된 이유로 구현 복잡도를 통상적으로 증가시키지 않지만, 오리지널 변환 인수들의 더 정확한 근사값을 일반적으로 제공한다. 또한, 종래의 4×4 DCT-Ⅱ 구현들에 비해 그리고 심지어는 일부 경우 상술된 직교 4×4 DCT-Ⅱ 구현에 비해 개선된 코딩 이득을 제공할 수도 있다. 그 결과, 제어 유닛은 이러한 근직교 4×4 DCT-Ⅱ 를 미디어 데이터에 적용하여 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하여, 잠재적으로 개선된 코딩 이득을 발생시킨다.
도 1 은 비디오 인코딩 및 디코딩 시스템 (10) 을 예시한 블록도이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 인코딩된 비디오를 수신 하드웨어 디바이스 (14) 에 통신 채널 (16) 을 통해 송신하는 소스 하드웨어 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20) 및 송신기 (22) 를 포함할 수도 있다. 목적지 디바이스 (14) 는 수신기 (24), 비디오 디코더 (26) 및 비디오 디스플레이 디바이스 (28) 를 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (16) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체들의 임의의 조합을 포함할 수도 있다. 채널 (16) 은 로컬 에어리어 네트워크, 와이드 에어리어 네트워크와 같은 패킷 기반 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 일부를 형성할 수도 있다. 일반적으로, 통신 채널 (16) 은 비디오 데이터를 소스 디바이스 (12) 로부터 수신 디바이스 (14) 로 송신하기 위해, 임의의 적합한 통신 매체, 또는 상이한 통신 매체들의 수집물을 나타낸다.
소스 디바이스 (12) 는 목적지 디바이스 (14) 에 송신하기 위한 비디오를 생성한다. 그러나, 일부 경우, 디바이스들 (12, 14) 은 실질적으로 대칭적인 방식으로 동작할 수도 있다. 예를 들어, 디바이스들 (12, 14) 각각은 비디오 인코딩 및 디코딩 컴포넌트들을 포함할 수도 있다. 이에 따라, 시스템 (10) 은, 예를 들어, 비디오 스트리밍, 비디오 브로드캐스팅, 또는 비디오 전화를 위해 비디오 장치들 (12, 14) 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다. 다른 데이터 압축 및 코딩 애플리케이션들의 경우, 디바이스들 (12, 14) 은 이미지, 음성 또는 오디오 데이터와 같은 다른 타입들의 데이터, 또는 2개 이상의 비디오, 이미지, 음성 및 오디오 데이터의 결합물들을 전송 및 수신, 또는 교환하도록 구성될 수 있다. 따라서, 비디오 애플리케이션들의 다음 설명이 예시의 목적으로 제공되고, 여기에 폭넓게 기술된 본 개시물의 다양한 양태들을 한정하는 것으로 고려되지 않아야 한다.
비디오 소스 (18) 는 하나 이상의 비디오 카메라들과 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 또는 비디오 콘텐츠 제공자로부터의 라이브 비디오 피드 (live video feed) 를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (18) 는 소스 비디오로서의 컴퓨터 그래픽 기반 데이터, 또는 라이브 비디오 및 컴퓨터 생성된 비디오의 결합물을 생성할 수도 있다. 일부 경우, 비디오 소스 (18) 가 카메라인 경우, 소스 디바이스 (12) 및 수신 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 이에 따라, 일부 양태에서, 소스 디바이스 (12), 수신 디바이스 (14) 또는 이들 양쪽 모두는 모바일 전화기와 같은 무선 통신 디바이스 핸드셋을 형성할 수도 있다. 각각의 경우, 캡처된 비디오, 비디오 소스 디바이스 (12) 로부터 비디오 수신 디바이스 (14) 의 비디오 디코더 (26) 에 송신기 (22), 채널 (16) 및 수신기 (24) 를 통해 송신하기 위해, 미리 캡처된 비디오 또는 컴퓨터 생성된 비디오가 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 디스플레이 디바이스 (28) 는 액정 디스플레이 (LCD), 플라즈마 디스플레이 또는 유기 발광 다이오드 (OLED) 디스플레이와 같은 다양한 디스플레이 디바이스들 중 임의의 디스플레이 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (26) 는 공간적, 시간적 및/또는 신호 대 잡음 비 (SNR) 확장성을 위해 확장가능 비디오 코딩을 지원하도록 구성될 수도 있다. 일부 양태에서, 비디오 인코더 (20) 및 비디오 디코더 (22) 는 미세한 입상도의 SNR 확장성 (fine granularity SNR scalability; FGS) 코딩을 지원하도록 구성될 수도 있다. 인코더 (20) 및 디코더 (26) 는 기본 계층 및 하나 이상의 확장가능 향상 계층들의 인코딩, 송신 및 디코딩을 지원함으로써 확장성의 다양한 등급들을 지원할 수도 있다. 확장가능 비디오 코딩의 경우, 기본 계층은 최소 레벨의 품질을 갖는 비디오 데이터를 운반한다. 하나 이상의 향상 계층들은 더 높은 공간적, 시간적 및/또는 SNR 레벨들을 지원하기 위한 부가적인 비트스트림을 운반한다.
비디오 인코더 (20) 및 비디오 디코더 (26) 는 MPEG-2, MPEG-4, ITU-T H.263, 또는 ITU-T H.264/MPEG-4 AVC (Advanced Video Coding) 과 같은 비디오 압축 표준에 따라 동작할 수도 있다. 도 1 에 도시되지는 않았지만, 일부 양태에서, 비디오 인코더 (20) 및 비디오 디코더 (26) 가 오디오 인코더 및 디코더와 각각 통합될 수도 있고, 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함하여, 공통 데이터 스트림 또는 개별 데이터 스트림들에서 오디오 및 비디오 양쪽 모두의 인코딩을 핸들링할 수도 있다. 적용가능하다면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP : user datagram protocol) 과 같은 다른 프로토콜들에 따를 수도 있다.
일부 양태에서, 비디오 브로드캐스팅을 위해, 예를 들어, 무선 비디오 브로드캐스트 서버 또는 무선 통신 디바이스 핸드셋을 통해, 기술 표준 TIA- 1099 로서 공개된 FLO (Forward Link Only) 공중 인터페이스 사양 "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast" ("FLO 사양") 을 이용하여, TM3 (terrestrial mobile multimedia multicast) 시스템들에서의 실시간 비디오 서비스들을 전달하기 위한 H.264 비디오 코딩을 향상시키도록 본 개시물에 기술된 기술들이 적용될 수도 있다. FLO 사양은 FLO 공중 인터페이스에 적합한 비트스트림 구문론 및 의미론 및 디코딩 프로세스들을 정의한 예들을 포함한다. 대안적으로, 비디오가 DVB-H (digital video broadcast-handheld), ISDB-T (integrated services digital broadcast - terrestrial), 또는 DMB (digital media broadcast) 와 같은 다른 표준들에 따라 브로드캐스트될 수도 있다. 이에 따라, 소스 디바이스 (12) 는 모바일 무선 단말기, 비디오 스트리밍 서버, 또는 비디오 브로드캐스트 서버일 수도 있다. 그러나, 본 개시물에 기술된 기술들은 임의의 특정 타입의 브로드캐스트, 멀티캐스트, 또는 포인트-투-포인트 시스템으로 한정되지 않는다. 브로드캐스트의 경우, 소스 디바이스 (12) 는 비디오 데이터의 몇몇 채널들을 다수의 수신 디바이스에 브로드캐스트할 수도 있고, 그 다수의 수신 디바이스 각각은 도 1 의 수신 디바이스 (14) 와 유사할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (26) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적회로 (ASIC) 들, 필드 프로그램가능 게이트 어레이 (FPGA) 들, 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들로서 구현될 수도 있다. 이에 따라, 비디오 인코더 (20) 및 비디오 디코더 (26) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수 있고, 그 중 어느 하나는 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에서 조합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수 있다. 또한, 소스 디바이스 (12) 및 수신 디바이스 (14) 각각은, 인코딩된 비디오의 송신 및 수신을 위해, 적용가능하다면, 무선 통신을 지원하기에 충분한 무선 주파수 (RF) 무선 컴포넌트들 및 안테나들을 포함하는, 적절한 변조, 복조, 주파수 변환, 필터링, 및 증폭기 컴포넌트들을 포함할 수도 있다. 그러나, 예시를 용이하게 하기 위해, 이러한 컴포넌트들은 도 1 에 도시되지 않는다.
비디오 시퀀스는 일련의 비디오 프레임들을 포함한다. 비디오 인코더 (20) 는 비디오 데이터를 인코딩하기 위해 개개의 비디오 프레임들 내의 픽셀들의 블록들 상에서 동작한다. 비디오 블록들은 고정 또는 가변 사이즈들을 가질 수도 있고, 특정된 코딩 표준에 따라 사이즈가 달라질 수도 있다. 각각의 비디오 프레임은 일련의 슬라이스들을 포함한다. 각각의 슬라이스는 일련의 매크로블록들을 포함할 수도 있고, 그 매크로블록들은 서브-블록들로 배열될 수도 있다. 일 예로서, ITU-T H.264 표준은, 루마 성분들에 대한 16×16, 8×8, 4×4 와, 크로마 성분들에 대한 8×8 과 같은 다양한 이항 블록 사이즈들에서의 인트라 예측 뿐만 아니라, 루마 성분들에 대한 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 와, 크로마 성분들에 대한 대응하는 스케일링된 사이즈들과 같은 다양한 블록 사이즈들에서의 인터 예측을 지원한다.
유사한 비디오 블록들은 일반적으로 더 양호한 분해능을 제공할 수 있고, 세부사항의 더 높은 레벨들을 포함하는 비디오 프레임의 위치들에 대해 이용될 수도 있다. 일반적으로 비디오 블록들을 나타내기 위해, 일반적으로 매크로블록들 (MB들) 및 다양한 서브-블록들이 고려될 수도 있다. 또한, MB들 및/또는 서브-블록들과 같은 일련의 비디오 블록들을 나타나기 위해 슬라이스가 고려될 수도 있다. 각각의 슬라이스는 독립적인 디코딩가능 유닛일 수도 있다. 예측 이후에, 이항 또는 비-이항 사이징된 나머지 블록들에 대해 변환이 수행될 수도 있고, 크로마 성분들 또는 인트라 16×l6 예측 모드가 이용되는 경우의 루마 성분에 대한 4×4 블록들의 DCT 계수들에 부가적인 변환이 적용될 수도 있다.
도 1 의 시스템 (10) 의 비디오 인코더 (20) 및/또는 비디오 디코더 (26) 가 4×4 DCT-Ⅱ 및 그의 역 (예를 들어, 4×4 DCT-Ⅲ) 의 구현을 포함하도록 각각 구성될 수도 있고, 4×4 DCT-Ⅱ 는 본 개시물에 기술된 4×4 사이징된 DCT 에 대한 DCT-Ⅱ 행렬 계수들을 선택하기 위한 기술들의 다양한 관계식들 중 하나의 관계식을 고수한다. ITU-T H.264 표준이 루마 성분들에 대한 16×16, 8×8, 4×4 와, 크로마 성분들에 대한 8×8과 같은 다양한 블록 사이즈들에서 인트라 예측을 지원하지만, 코딩 효율을 개선시키기 위한 이러한 표준에 대한 개정이 현재 진행 중이다. 하나의 개정된 표준은 (때때로 차세대 비디오 코딩 또는 NGVC 라고 지칭되는) ITU-T H.265 또는 간단히 H.265 라고 지칭될 수도 있다. 도 7a 내지 도 7c 에 관련하여 후술되는 바와 같이, 본 개시물의 기술들에 따라 설명된 다양한 관계식들 중 하나를 고수하는 타입-Ⅱ 의 4×4 DCT들 ("DCT들-Ⅱ") 은, 피크 신호 대 잡음 비들 (PSNR들) 의 관점에서 측정되는 코딩 효율을 개선시킬 수도 있다. 그 결과, ITU-T H.265 및 다른 진화된 표준들 또는 사양들은 코딩 효율을 개선시키기 위해 이들 DCT들-Ⅱ 를 고려할 수도 있다.
본 개시물에 기술된 기술들에 의하면, 종래의 구현들에 비해 개선된 코딩 이득을 촉진시킬 수도 있는 다양한 관계식들 중 하나를 고수하는 방식으로 4×4 DCT들-Ⅱ 의 구현들이 생성될 수도 있다. 제 1 관계식은 4×4 DCT들-Ⅱ 의 직교 구현들에 대해 정의되고, 식 (1) 에 관련하여 후술된다:
Figure 112012001066291-pct00018
(1)
여기서, C 및 S 는 4×4 DCT들-Ⅱ 구현의 "홀수"부에서의 제 1 및 제 2 내부 인수들을 표시한 것이고, (ξ) 는 4×4 DCT들-Ⅱ 구현의 "홀수"부에 적용되는 스케일링된 인수를 표시한 것이다. 4×4 DCT-Ⅱ 의 소위 "홀수부" 는 홀수 넘버링된 계수들을 출력하는 4×4 DCT-Ⅱ 구현의 일부를 지칭한다. 4×4 DCT-Ⅱ 의 소위 "짝수부" 는 짝수 넘버링된 계수들을 출력하는 4×4 DCT-Ⅱ 구현의 일부를 지칭한다. "내부 인수들" 이라는 용어는 인수 분해 이후에 남아있는 4×4 DCT 의 구현을 위한 내부의 인수들을 지칭한다. "스케일링된 인수들" 이라는 용어는 인수 분해를 통해 제거되는 4×4 DCT 의 구현으로부터의 외부의 인수들을 지칭한다.
통상적으로, 내부 인수들은 구현 복잡도의 관점에서 고비용일 수도 있는 곱셈들을 요구함으로써 구현 복잡도가 증가한다. 예를 들어, 곱셈은 더 단순한 덧셈 동작보다 3배 이상의 다수의 계산 동작들 (예를 들어, 클록 사이클들) 이 완료하는 것을 요구할 수도 있다. (예를 들어, 보다 적은 클록 사이클들에서) 곱셈을 더 효율적으로 수행하도록 특정 승수들이 구현될 수도 있지만, 이들 승수 구현들은 통상적으로 칩 또는 실리콘 표면적을 상당히 더 많이 소모시키고, 또한 다량의 전력을 인출할 수도 있다. 따라서, 인수들에 의한 곱셈은, 특히, 셀룰러 폰, 소위 "스마트" 셀룰러 폰, 개인 휴대 정보 단말기 (PDA), 랩톱 컴퓨터, 소위 "노트북" 등을 포함하는 대부분의 모바일 디바이스와 같은 전력 민감성 디바이스들에서는 종종 회피된다. 인수 분해는, 하나 이상의 내부 인수들이 4×4 DCT-Ⅱ 구현으로부터 제거될 수도 있고 외부 인수들로 대체될 수도 있는 프로세스이다. 그 후에, 외부 인수들은, 예를 들어, 비디오 인코더들과 관련하여, 통상적으로 최소 비용을 갖거나 복잡도가 증가하는 후속의 양자화 동작들에 포함될 수 있다.
임의의 경우, 식 (1) 과 관련하여 상술된 제 1 및 제 2 내부 인수들 (C, S) 과 스케일링된 인수 (ξ) 사이의 상기 관계식은, 4×4 DCT들-Ⅱ 의 이전 구현들에 이용되지 않은 특정 값들을 제공한다. 예를 들어, 2 및 5 의 내부 인수들 (C 및 S) 에 대한 값들 각각은, C 및 S 에 대해 1 및 2 의 값들을 수반하는 공지된 4×4 DCT 구현들에 비해 구현 복잡도를 지나치게 증가시키지 않고, 코딩 이득을 개선시킨다. 그 후에, 비디오 인코더는 내부 인수들 2 및 5 를 갖는 4×4 DCT-Ⅱ 구현을 미디어 데이터에 적용하여, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환시키도록 한다. 이러한 직교 4×4 DCT-Ⅱ 구현을 적용함으로써, 본 기술들은, 1 및 2 의 내부 인수들을 포함하는 표준 DCT-Ⅱ 구현들과 비교한다면, (압축 효율을 나타내는 용어인) 코딩 이득을 용이하게 한다.
직교성은 DCT-Ⅱ 구현들에 관련하여 가역적이기 때문에 일반적으로 요망된다. 하나의 예로서, 이러한 가역적 속성은 비디오 인코더가 직교 4×4 DCT 구현을 적용하여 비디오 데이터의 나머지 블록들로부터 DCT 계수들을 생성하는 것을 허용한다. 그 후에, 비디오 디코더는 4×4 역 DCT-Ⅱ (IDCT) 구현을 적용하여 DCT-Ⅱ 계수들로부터 비디오 데이터의 나머지 블록을, 데이터에서 임의의 손실이 있다면 거의 손실이 없이 복원할 수 있다. H.264 비디오 코딩 표준과 같은 몇몇 코딩 표준들이 4×4 DCT 의 직교 구현에 채용된다.
직교성이 일반적으로 이론상 요망되는 것이지만, 실제로, 비디오, 오디오 또는 일반적 코딩 파이프라인은, 직교 4×4 DCT-Ⅱ 구현들에 의해 제공되는 값들의 정확한 복원을 대부분의 개소들에서 사실상 방해하는 소위 "잡음" 을 도입하는 (스케일링 또는 양자화와 같은) 다수의 부가적인 단계들을 수반한다. 그 결과, (기술적으로 말하면 비직교인) 근직교를 달성하기 위해 직교 속성을 완화시키는 것이 가능할 수도 있다. 정수-연산 구현들을 고려한다면, 이러한 근직교 변환들이, 엄격한 직교의 정수 변환들에 비해, 코딩 효율을 개선시킬 수도 있는 한편, 구현 복잡도도 감소시킬 수도 있다. 일반적으로, 직교 속성을 완화시키면 잡음이 시스템 내로 도입되지만, 코딩 이득을 개선시킬 수도 있는 한편 구현 복잡도도 감소시킬 수도 있다.
4×4 DCT-Ⅱ 의 근직교 구현을 예시하기 위해, 제어 유닛을 포함하는 장치가 하나의 예로서 고려된다. 제어 유닛은 본 개시물에 기술된 기술들에 따라 근직교 4×4 DCT-Ⅱ 을 구현한다. 또한, 이러한 근직교 4×4 DCT-Ⅱ 구현은 홀수부 및 짝수부를 포함한다. 이 경우의 홀수부는, 다음 식 (2) 에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (C, S) 을 제공한다:
Figure 112012001066291-pct00019
(2)
이 식 (2) 에서, 변수들 (ω 및 ψ) 은 오리지널 (무리수) 의 내부 변환 인수들을 표시한 것이고, 예를 들어, (ω) 는 8 로 나눈 3 × 상수 파이 (π) 의 코사인일 수도 있고, (ψ) 는 8 로 나눈 3 × 상수 파이(π) 의 사인일 수도 있다. 변수들 (C) 및 (S) 은 (ω) 및 (ψ) 대신에 위치된 정수 (또는 이항 유리수) 의 내부 변환 인수들을 표시한 것이다.
식 (2) 는, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 에 제 2 내부 인수 (S) 를 더한 합을, (ω) 에 (ψ) 를 더한 것으로 나눈 것과 동일하다는 것을 나타낸다. 이 식은 직교 구현에 관련하여 정의된 상기 관계식과 유사한 C 및 S 의 특정 내부 인수 값들을 식별할 수도 있지만, 상이한 외부 인수를 발생시킬 수도 있다. 그러나, 상이한 외부 인수는 상술된 이유로 구현 복잡도를 통상적으로 증가시키지 않지만, 오리지널 변환 인수들의 더 정확한 근사값을 일반적으로 제공한다. 또한, 종래의 4×4 DCT-Ⅱ 구현들에 비해 그리고 심지어는 일부 경우 상술된 직교 4×4 DCT-Ⅱ 구현에 비해 개선된 코딩 이득을 제공할 수도 있다. 그 결과, 제어 유닛은 이러한 근직교 4×4 DCT-Ⅱ 를 미디어 데이터에 적용하여 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하여, 잠재적으로 개선된 코딩 이득을 발생시킨다.
본 개시물에 기술된 기술들에 따라 구성된 상기 결과적인 4×4 DCT들-Ⅱ 구현들은, 직접 (straight) 4×4 DCT-Ⅱ 구현들에 대비되는 것으로서, 스케일링된 4×4 DCT-Ⅱ 구현들을 나타낸다. 그 구현들은, 내부 인수들을 제거하여, 4×4 DCT 를 정확하게 계산하는데 제공되는 부가적인 외부 인수들을 요구하는 스케일링된 계수들을 출력하기 위해, 인수 분해를 경험한다는 점에서, "스케일링" 된다. 소위 "직접" DCT-Ⅱ 구현들은, 4×4 DCT 를 정확하게 계산하기 위해 외부 인수들에 의한 곱셈과 같은 임의의 추가의 동작들을 요구하지 않는 계수들을 출력한다.
스케일링된 4×4 DCT-Ⅱ 구현들을 생성하는 것이 가능한 다수의 상이한 인수 분해들이 존재한다. 하나의 대안적인 인수 분해는, H.264 에 따르는 비디오 인코더들에 의해 통상적으로 채용되는 종래의 DCT들-Ⅱ 에 비해 코딩 이득을 개선시키는 근직교 구현을 생성하기 위한 본 개시물의 기술들에 따라 또 다른 관계식이 유도될 수 있는 상이한 스케일링된 4×4 DCT-Ⅱ 구현을 생성한다.
스케일링된 4×4 DCT-Ⅱ 를 생성하기 위한 그 대안적인 인수 분해에 관련하여 근직교 구현을 예시하기 위해, 제어 유닛을 포함하는 장치를 하나의 예로서 고려한다. 제어 유닛은 본 개시물에 기술된 기술들에 따라 근직교 4×4 DCT-Ⅱ 을 구현한다. 이러한 근직교 4×4 DCT-Ⅱ 구현은 상술된 구현들과 유사한 홀수부 및 짝수부를 포함한다. 이 경우의 홀수부는, 다음 식 (3) 에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 내부 인수들 (A, B) 을 제공한다:
Figure 112012001066291-pct00020
(3)
식 (3) 은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (A) 에 제 2 내부 인수 (B) 를 더한 합을, 2의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하다는 것을 나타낸다. 이 식은 내부 인수들 (A 및 B) 에 대한 7 및 5 의 특정 값들을 각각 식별할 수도 있다. 대안적인 인수 분해를 이용하여 상술된 내부 인수들로 구성된 이러한 결과적인 근직교 4×4 DCT-Ⅱ 구현은, 종래의 H.264 4×4 DCT-Ⅱ 구현들보다 직접 4×4 DCT-Ⅱ 의 무리수의 내부 인수들을 더 정확하게 나타낼 수도 있어서, 종래의 4×4 DCT-Ⅱ 구현들에 비해 개선된 코딩 이득을 제공할 수도 있다. 그 결과, 제어 유닛은 이러한 근직교 4×4 DCT-Ⅱ 를 미디어 데이터에 적용하여 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하여, 잠재적으로 개선된 코딩 이득을 발생시킨다.
도 2 는 도 1 의 비디오 인코더 (20) 를 더 상세히 예시한 블록도이다. 비디오 인코더 (20) 는 하나 이상의 집적 회로 디바이스들로서 적어도 부분적으로 형성될 수도 있고, 그 집적 회로 디바이스들은 집적 회로 디바이스로서 총괄하여 지칭될 수도 있다. 일부 경우, 비디오 인코더 (20) 는 무선 통신 디바이스 핸드셋 또는 브로드캐스트 서버의 일부를 형성할 수도 있다. 비디오 인코더 (20) 는 비디오 프레임들 내의 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 공간적 예측에 의존하여, 소정의 비디오 프레임 내에서 비디오에서의 공간적 리던던시를 감소 또는 제거한다. 인터-코딩은 시간적 예측에 의존하여, 비디오 시퀀스의 인접 프레임들 내에서 비디오에서의 시간적 리던던시를 감소 또는 제거한다. 인터-코딩의 경우, 비디오 인코더 (20) 는 모션 추정을 수행하여 인접 프레임들 간의 비디오 블록들을 매칭하는 움직임을 추적한다.
도 2 에 도시된 바와 같이, 비디오 인코더 (20) 는 인코딩될 비디오 프레임 내의 현재 비디오 블록 (30) 을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 모션 추정 유닛 (32), 기준 프레임 저장부 (34), 모션 보상 유닛 (36), 블록 변환 유닛 (38), 양자화 유닛 (40), 역 양자화 유닛 (42), 역 변환 유닛 (44) 및 엔트로피 코딩 유닛 (46) 을 포함한다. 인-루프 또는 포스트 루프 디블록킹 필터 (미도시) 가 블록들을 필터링하여 블록킹 아티팩트 (artifact) 들을 제거하도록 적용될 수도 있다. 또한, 비디오 인코더 (20) 는 합산기 (48) 및 합산기 (50) 를 포함한다. 도 2 는 비디오 블록들의 인터-코딩을 위한 비디오 인코더 (20) 의 시간적 예측 컴포넌트들을 예시한 것이다. 또한, 예시를 용이하게 하기 위해 도 2 에 도시되지는 않았지만, 비디오 인코더 (20) 는 일부 비디오 블록들의 인트라-코딩을 위한 공간적 예측 컴포넌트들을 포함할 수도 있다.
모션 추정 유닛 (32) 은 비디오 블록 (30) 을 하나 이상의 인접 비디오 프레임들에서의 블록들과 비교하여 하나 이상의 모션 벡터들을 생성한다. 기준 프레임 저장부 (34) 로부터 인접 프레임 또는 프레임들이 검색될 수도 있고, 그 기준 프레임 저장부 (34) 는 미리 인코딩딘 블록들로부터 복원된 비디오 블록들을 저장하기 위한 임의의 타입의 메모리 또는 데이터 저장 디바이스를 포함할 수도 있다. 가변 사이즈들, 예를 들어, 16×16, 16×8, 8×16, 8×8 또는 유사한 블록 사이즈들의 블록들에 대해 모션 추정이 수행될 수도 있다. 모션 추정 유닛 (32) 은, 예를 들어, 레이트 디스토션 모델에 기초하여, 현재 비디오 블록 (30) 에 가장 근접하게 매칭하는 인접 프레임들에서의 하나 이상의 블록들을 식별하고, 인접 프레임들에서의 블록들과 현재 비디오 블록 사이의 변위를 결정한다. 이에 기초하여, 모션 추정 유닛 (32) 은 현재 비디오 블록 (30) 과 현재 비디오 블록 (30) 을 코딩하는데 이용되는 기준 프레임들로부터의 하나 이상의 매칭 블록들 사이의 변위의 크기 및 궤적을 나타내는 하나 이상의 모션 벡터들 (MV) 을 생성한다. 매칭 블록 또는 블록들은 코딩될 블록의 인터-코딩을 위한 예언 (또는 예측) 블록들로서 기능한다.
모션 벡터들은 2분의 1-픽셀 또는 4분의 1-픽셀 정밀도 또는 심지어는 더 미세한 정밀도를 가질 수도 있어서, 비디오 인코더 (20) 가 정수 픽셀 위치들보다 더 높은 정밀도로 모션을 추적하고 더 양호한 예측 블록을 획득하도록 할 수도 있다. 아주 작은 픽셀 값들을 갖는 모션 벡터들이 이용되는 경우, 모션 보상 유닛 (36) 에서 보간 동작들이 수행된다. 모션 추정 유닛 (32) 은 레이트 디스토션 모델과 같은 특정 기준을 이용하여 비디오 블록에 대한 최상의 블록 파티션들 및 모션 벡터 또는 모션 벡터들을 식별한다. 예를 들어, 양방향 예측의 경우에는 모션 벡터보다 더 많이 존재할 수도 있다. 결과적인 블록 파티션들 및 모션 벡터들을 이용하여, 모션 보상 유닛 (36) 이 예측 비디오 블록을 형성한다.
비디오 인코더 (20) 는 합산기 (48) 에서 모션 보상 유닛 (36) 에 의해 생성된 예측 비디오 블록을 오리지널의 현재 비디오 블록 (30) 으로부터 감산함으로써 나머지 비디오 블록을 형성한다. 블록 변환 유닛 (38) 은 나머지 변환 블록 계수들을 생성하는 변환을 적용한다. 도 2 에 도시된 바와 같이, 블록 변환 유닛 (38) 은 본 개시물에 기술된 기술들에 따라 구성된 4×4 DCT-Ⅱ 를 구현하는 4×4 DCT-Ⅱ 유닛 (52) 을 포함한다. 4×4 DCT-Ⅱ 유닛 (52) 은, 일부 경우 (소프트웨어 코드 또는 명령들을 실행하는 디지털 신호 프로세서 또는 DSP 와 같은) 소프트웨어를 실행하는 하드웨어 모듈을 나타내고, 상기 식별된 3개의 관계식들 중 하나에 의해 정의된 내부 인수들을 갖는 4×4 DCT-Ⅱ 를 구현한다. 블록 변환 유닛 (38) 은 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 을 나머지 블록에 적용하여 나머지 변환 계수들의 4×4 블록을 생성한다. 4×4 DCT-Ⅱ 유닛 (52) 은 일반적으로 나머지 블록을 공간 도메인으로부터 주파수 도메인으로 변환하고, 그 공간 도메인은 나머지 픽셀 데이터로서 나타내며, 그 주파수 도메인은 DCT 계수들로서 나타낸다. 변환 계수들은 적어도 하나의 DC 계수 및 하나 이상의 AC 계수들을 포함하는 DCT 계수들을 포함할 수도 있다.
양자화 유닛 (40) 은 나머지 변환 블록 계수들을 양자화 (예를 들어, 반올림) 하여, 비트 레이트를 더 감소시킨다. 상술된 바와 같이, 양자화 유닛 (40) 은, 인수 분해 동안 제거된 내부 인수들을 포함시킴으로써, 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 의 스케일링 유형을 설명한다. 즉, 양자화 유닛 (40) 은 도 4a 내지 도 4c 의 구현들 (70A 내지 70C) 에 관련하여 하기 나타낸 외부 인수를 포함한다. 양자화가 통상적으로 곱셈을 수반함에 따라, 이들 인수들을 양자화 유닛 (40) 내에 포함시키는 것은 양자화 유닛 (40) 의 구현 복잡도를 증가시키지 않을 수도 있다. 이와 관련하여, 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 으로부터 인수들을 제거하는 것은, 양자화 유닛 (40) 의 구현 복잡도를 증가시키는 일 없이 DCT-Ⅱ 유닛 (52) 의 구현 복잡도를 감소시켜서, 비디오 인코더 (20) 에 관련된 구현 복잡도를 결국 감소시키게 된다.
엔트로피 코딩 유닛 (46) 은 양자화된 계수들을 엔트로피 코딩하여 비트 레이트를 더 감소시킨다. 엔트로피 코딩 유닛 (46) 은, 일부 경우 엔트로피 코딩이라고 지칭되는 통계 무손실 코딩을 수행한다. 엔트로피 코딩 유닛 (46) 은 양자화된 DCT 계수들의 확률 분포를 모델링하고, 그 모델링된 확률 분포에 기초하여 코드북 (예를 들어, CAVLC 또는 CABAC) 을 선택한다. 이러한 코드북을 이용하여, 엔트로피 코딩 유닛 (46) 은, 양자화된 DCT 계수들을 압축하는 방식으로, 각각의 양자화된 DCT 계수에 대한 코드들을 선택한다. 예시를 위해, 엔트로피 코딩 유닛 (46) 은 양자화된 DCT 계수들을 빈번하게 발생시키기 위한 (비트들의 관점에서의) 짧은 코드워드, 및 양자화된 DCT 계수들을 덜 빈번하게 발생시키기 위한 (비트들의 관점에서의) 긴 코드워드를 선택할 수도 있다. 짧은 코드워드가 양자화된 DCT 계수들보다 더 적은 비트들을 이용한다면, 평균적으로, 엔트로피 코딩 유닛 (46) 은 양자화된 DCT 계수들을 압축한다. 엔트로피 코딩 유닛 (46) 은 엔트로피 코딩된 계수들을 비디오 디코더 (26) 에 전송되는 비트스트림으로서 출력한다. 일반적으로, 비디오 디코더 (26) 는, 도 3 의 예와 관련하여 기술되는 바와 같이, 비트스트림으로부터 인코딩된 비디오를 디코딩 및 복원하기 위한 역 동작들을 수행한다.
복원 유닛 (42) 및 역 변환 유닛 (44) 은 각각 양자화된 계수들을 복원하고, 역 변환을 적용하여, 나머지 블록을 복원한다. 합산 유닛 (50) 은 복원된 나머지 블록을 모션 보상 유닛 (36) 에 의해 생성된 모션 보상된 예측 블록과 가산하여, 기준 프레임 저장부 (34) 에서의 저장을 위해 복원된 비디오 블록을 생성한다. 복원된 비디오 블록이 모션 추정 유닛 (32) 및 모션 보상 유닛 (36) 에 의해 이용되어, 후속의 비디오 프레임에서의 블록을 인코딩한다.
도 3 은 도 1 의 비디오 디코더 (26) 의 일 예를 더 상세히 예시한 블록도이다. 비디오 디코더 (26) 는 하나 이상의 집적 회로 디바이스들로서 적어도 부분적으로 형성될 수도 있고, 그 집적 회로 디바이스들은 집적 회로 디바이스로서 총괄하여 지칭될 수도 있다. 일부 경우, 비디오 디코더 (26) 는 무선 통신 디바이스 핸드셋의 일부를 형성할 수도 있다. 비디오 디코더 (26) 는 비디오 프레임들 내의 블록들의 인트라-디코딩 및 인터-디코딩을 수행할 수도 있다. 도 3 에 도시된 바와 같이, 비디오 디코더 (26) 는 비디오 인코더 (20) 에 의해 인코딩된 인코딩 비디오 비트스트림을 수신한다. 도 3 의 예에서, 비디오 디코더 (26) 는 엔트로피 디코딩 유닛 (54), 모션 보상 유닛 (56), 복원 유닛 (58), 역 변환 유닛 (60), 및 기준 프레임 저장부 (62) 를 포함한다. 엔트로피 디코딩 유닛 (64) 은 코딩에 유용한 데이터를 획득하기 위해 메모리 (64) 에 저장된 하나 이상의 데이터 명령들에 액세스할 수도 있다. 또한, 비디오 디코더 (26) 는 합산기 (66) 의 출력을 필터링하는 인-루프 디블록킹 필터 (미도시) 를 포함할 수도 있다. 또한, 비디오 디코더 (26) 는 합산기 (66) 를 포함한다. 도 3 은 비디오 블록들의 인터-디코딩을 위한 비디오 디코더 (26) 의 시간적 예측 컴포넌트들을 예시한 것이다. 또한, 도 3 에 도시된 것은 아니지만, 비디오 디코더 (26) 는 일부 비디오 블록들의 인트라-디코딩을 위한 공간적 예측 컴포넌트들을 포함할 수도 있다.
엔트로피 디코딩 유닛 (54) 은 인코딩된 비디오 비트스트림을 수신하고, 그 비트스트림으로부터 양자화된 나머지 계수들 및 양자화된 파라미터들 뿐만 아니라, 매크로블록 코딩 모드 및 모션 정보와 같은 다른 정보를 디코딩하고, 그 모션 정보는 모션 벡터들 및 블록 파티션들을 포함할 수도 있다. 모션 보상 유닛 (56) 은 모션 벡터들 및 블록 파티션들 및 기준 프레임 저장부 (62) 로부터의 하나 이상의 복원된 기준 프레임들을 수신하여 예측 비디오 블록을 생성한다.
복원 유닛 (58) 은 양자화된 블록 계수들을 역 양자화, 즉, 양자화 해제한다. 역 변환 유닛 (60) 은 역 변환, 예를 들어, 역 DCT 를 계수들에 적용하여, 나머지 블록들을 생성한다. 더 상세하게는, 역 변환 유닛 (60) 은 스케일링된 4×4 DCT-Ⅲ 유닛 (68) 을 포함하고, 그 역 변환 유닛 (60) 이 계수들에 적용하여 나머지 블록들을 생성한다. 도 2 에 도시된 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 의 역인, 스케일링된 4×4 DCT-Ⅲ 유닛 (68) 은, 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 나머지 들록들을 생성할 수도 있다. 상기의 양자화 유닛 (40) 과 유사하게, 복원 유닛 (58) 은, 구현 복잡도에서의 어떠한 증가가 있다면 그 구현 복잡도를 거의 증가시키는 일 없이, 인수 분해 동안 제거된 외부 인수들을 복원 프로세스에 포함시킴으로써 4×4 DCT-Ⅲ 유닛 (68) 의 스케일링 유형을 설명한다. 스케일링된 4×4 DCT-Ⅲ 유닛 (68) 으로부터 인수들을 제거하는 것은, 구현 복잡도를 감소시킬 수도 있어서, 비디오 디코더 (26) 에 대한 복잡도를 결국 감소시키게 된다.
그 후에, 예측 비디오 블록들은 합산기 (66) 에 의해 나머지 블록들과 합산되어, 디코딩된 블록들을 형성한다. 디블록킹 필더 (미도시) 는 디코딩된 블록들을 필터링하여 블록킹 아티팩트들을 제거하도록 적용될 수도 있다. 그 후에, 필터링된 블록들이 기준 프레임 저장부 (62) 에 위치되고, 그 기준 프레임 저장부 (62) 는 후속 비디오 프레임들의 디코딩을 위해 기준 프레임을 제공하고, 또한 디코딩된 비디오를 생성하여 디스플레이 디바이스 (28; 도 1) 를 구동한다.
도 4a 내지 도 4c 는 본 개시물의 기술들에 따라 구성된 스케일링된 4×4 DCT-Ⅱ 의 구현을 각각 예시한 도면들이다. 도 4a 는 본 개시물의 기술들에 따라 구성된 스케일링된 직교 4×4 DCT-Ⅱ 구현 (70A) 을 예시한 도면이다. 도 4b 는 본 개시물의 기술들에 따라 구성된 스케일링된 근직교 4×4 DCT-Ⅱ 구현 (70B) 을 예시한 도면이다. 도 4c 는 본 개시물의 기술들에 따라 구성된 스케일링된 근직교 4×4 DCT-Ⅱ 대체 구현 (70C) 을 예시한 도면이다. 도 2 의 예에 도시된 4×4 DCT 유닛 (52) 은 하나 이상의 이들 구현들 (70A 내지 70C) 을 포함할 수도 있다.
도 4a 의 예를 먼저 참조하면, 4×4 DCT-Ⅱ 구현 (70A) 은 버터플라이 유닛 (72), 짝수부 (74A) 및 홀수부 (74B) 를 포함한다. 버터플라이 유닛 (72) 은 입력들 (x0, ..., x3) 을 적절한 짝수 및 홀수부들 (74A, 47B) ("짝수 및 홀수부들 (74)") 에 라우팅 또는 포워딩하기 위한 하드웨어 또는 하드웨어와 소프트웨어의 결합물을 나타낼 수도 있다. 통상적으로, 버터플라이 유닛 (72) 은 2×2 DCT-Ⅱ 구현들과 같은 유사한 DCT들의 결과를 조합시키고, 그 2×2 DCT-Ⅱ 구현들은 이 경우 짝수 및 홀수부들 (74) 로 각각 나타낼 수도 있다. 짝수부 (74A) 는 짝수 DCT 계수들 (X0 및 X2) 을 출력하는 4×4 DCT-Ⅱ 구현 (70A) 의 2×2 부분이다. 특히, 이들 짝수 계수들 (X0 및 X2) 이 2분의 1 (1/2) 의 외부 인수로 곱셈이 행해지고, 그 2분의 1 (1/2) 의 외부 인수는 존재할 수 있고 통상적으로 양자화 유닛 (40) 에 의해 제공된다.
홀수부 (74B) 는 홀수 DCT 계수들 (X1 및 X3) 을 출력하는 4×4 DCT-Ⅱ 구현 (70A) 의 2×2 부분이다. 홀수부 (74B) 는 C 및 S 로 표시된 2개의 내부 인수들을 포함하고, 그 2개의 내부 인수들은 상술된 식 (1) 에 의해 홀수 계수들 (X1 및 X3) 에 적용되는 외부 인수와 관련되고, 그 식 (1) 은 본 개시물의 기술들에 따라 정의된 것이다. 2의 제곱근으로 나눈 1 의 부가적인 외부 인수 (
Figure 112012001066291-pct00021
) 는, 식 (1) 에서 상술된 관계식으로 나눈 1 로 곱셈이 행해져서, 홀수 계수들 (X1 및 X3) 에 관련하여 나타내는 외부 인수를 발생시킨다.
식 (1) 에서 설명된 관계식은 먼저 직교 속성을 고려함으로써 유도될 수 있고, 그 직교 속성은 다음 식 (4) 에 의해 수리적으로 설명된다:
Figure 112012001066291-pct00022
(4)
이 경우에서의 변수 C 는 임의의 행렬을 지칭하고, 여기서 CT 는 행렬 (C) 의 전치를 표시한 것이다. 변수 I 는 단위 행렬을 표시한 것이다. 따라서, 행렬은, 그 행렬 자체에 곱셈을 행한 행렬의 전치가 단위 행렬과 동일한 경우, 직교 속성을 나타낸다.
상술된 이유들로 미디어 코딩 구현들에 바람직한, 스케일링된 행렬을 가정하면, 행렬 (C) 는 다음 식 (5) 에서 설명되는 바와 같이, C' 로 표시된 정수 스케일링된 변환, 및 스케일 인수들 또는 외부 인수들의 대각 행렬 D 로 분할될 수 있다:
Figure 112012001066291-pct00023
(5)
식 (4) 에서의 C 를 식 (5) 로부터의 C'D 로 치환하면 다음 식 (6) 을 발생시키고:
Figure 112012001066291-pct00024
(6)
그 식 (6) 은 다음 식 (7) 에 나타낸 수학식으로 단순화될 수 있다:
Figure 112012001066291-pct00025
(7)
식 (7) 은 스케일링 인수들을 선택하기 위한 메커니즘을 제공하여, 결과적인 정수 변환이 직교로 되도록 한다.
예를 들어, 4×4 DCT-Ⅱ 구현들의 경우, 통상적으로, 이러한 DCT-Ⅱ 는 8 로 나눈 3 × 상수 파이의 코사인, 및 8 로 나눈 3 × 상수 파이의 사인을 나타내는 인수들의 근사값들만을 제공한다. 이들 2개의 인수들이 행렬 (C) 의 계수들인 정수들 (C 및 S) 로 대체되어야 하고 상기 직교성 조건을 이용하는 것으로 가정하면, 상기의 식 (1) 은 정규화 인수를 표시하여, 4×4 DCT-Ⅱ 의 직교 근사를 설계하는 태스크가 정수들 (C, S) 의 쌍들을 발견하는 것으로 한정될 수도 있어, 다음 식들 (8) 및 (9) 가 만족되도록 한다:
Figure 112012001066291-pct00026
, 및 (8)
Figure 112012001066291-pct00027
(9)
이들 가정 하에서, 4×4 DCT-Ⅱ 구현 (70A) 으로 나타낸 정수 스케일링된 변환이 발생한다.
다음 표 1 은, H.264 비디오 코딩 표준에 채용된 4×4 DCT-Ⅱ 구현과 비교하여, C 및 S 의 정수들에 대해 선택된 다양한 값들 및 결과적인 근사 에러들을 예시한 것이다.
표 1
Figure 112012001066291-pct00028
특히, 변수들 (C 및 S) 이 2 및 5 로 각각 설정되면, 결과적인 구현 (70A) 의 복잡도가 증가하지만, 8 로 나눈 3 × 상수 파이의 코사인, 및 8 로 나눈 3 × 상수 파이의 사인의 근사들에서의 에러가 훨씬 덜 존재하며, 이는 코딩 이득을 촉진시킨다. 복잡도는, 기본 H.264 구현과 비교하면, 부가적인 가산 및 시프트만을 수반하고, 어떠한 고비용도, 동작들 측면에서는 어떠한 곱셈들도 수반하지 않는다. 그 결과, 본 개시물에 기술된 기술들은, 복잡도의 증가가 크지 않고 구현 (70A) 이 변수들 (C 및 S) 에 대해 2 및 5 의 값들을 각각 포함시키는 것만으로, 코딩 이득의 증가를 촉진시켜, 구현 복잡도의 증가가 최소로 되는 최상의 코딩 이득을 잠재적으로 제공한다.
또한, 타입 Ⅱ 의 DCT 에 관련하여 상술되었지만, 도 4a 의 예에 도시된 구현 (70A) 은 타입 Ⅲ 의 DCT 또는 역 DCT 구현을 나타낼 수도 있다. 구현 (70A) 으로부터의 역 DCT 를 형성하는 것은 입력들 및 출력들을 반전시키는 것을 수반하여, 입력들이 도 4a 의 우측에서의 구현에 의해 수신되도록 하고 출력들이 구현의 좌측에서 출력되도록 한다. 그 후에, 입력들이 짝수 및 홀수부들 (74) 에 의해 먼저 프로세싱된 후에, 좌측에 출력되기 전에 버터플라이 (72) 에 의해 프로세싱된다. 예시를 용이하게 하기 위해, 구현 (70A) 에 대한 역인 이러한 IDCT 구현은, 이러한 구현이 구현 (70A) 의 미러 이미지로서 기술될 수도 있다는 것을 고려하여 별도 도면에 도시되어 있지 않다.
도 4b 는 본 개시물의 기술들에 따라 구성된 스케일링된 근직교 4×4 DCT-Ⅱ 구현 (70B) 을 예시한 도면이다. 4×4 DCT-Ⅱ 구현 (70B) 은 도 4a 의 버터플라이 유닛 (72) 과 유사한 버터플라이 유닛 (76), 및 짝수 및 홀수부들 (78A, 78B) ("짝수 및 홀수부들 (78)") 을 포함한다. 짝수부 (78A) 는 짝수부 (74A) 와 유사하다. 또한, 홀수부 (78B) 는, 내부 인수들 (C, S) 과 스케일링된 인수 (ξ) 사이에서 직교성 조건이 완화되어 상이한 관계식, 즉, 식 (2) 에 관련하여 상술된 관계식을 발생시킨다는 것을 제외하면, 홀수부 (74B) 와 유사하다.
식 (2) 로 표시된 관계식에 따라 도 4b 의 예시적인 구현 (70B) 을 유도하기 위해, 직교성이 일반적으로 이론상 4×4 DCT-Ⅱ 의 간단한 역 구현을 보장하지만, 실제로는 (정수 변환들에 후속하는) 대부분의 스케일 인수들이 무리수들로 되고, 이 무리수들은 정수 승수를 이용하여 정밀하게 구현하기가 어렵다는 것을 먼저 고려한다. 또한, 일반적으로 양자화는 4×4 DCT 변환들의 적용에 후속하고, 이러한 양자화는, 역 직교 DCT-Ⅱ 구현의 간단한 적용을 방해할 수도 있는 잡음을 부가시킨다. 또한, 정수-연산 구현들을 고려하면, 이러한 근직교 변환들은, 엄격한 직교 정수 변환들에 비해, 코딩 효율을 개선시킬 수도 있는 한편, 구현 복잡도도 감소시킬 수도 있다. 그 결과, 직접 구현과 역 구현 사이의 이러한 직교성 미스매치의 정도를 완화시키면 실제로 코딩 이득을 개선시킬 수도 있다.
미스매치의 정도를 특성화하기 위해, 단위 행렬로부터의 거리의 놈 (norm) 이 다음 식 (10) 에 따라 정의된다:
Figure 112012001066291-pct00029
(10)
식 (4) 에 관련하여 상기의 것과 동일한 기수법을 이용하여, 식 (10) 은 간단히, 단위 행렬로부터의 거리의 놈이 단위 행렬을 감산한 행렬의 전치 × 행렬로서 정의될 수 있다는 것을 나타낸다. CTC 가 대각 상태인 것으로 가정하면, 평균 절대 거리는 다음 식 (11) 에 따라 계산될 수 있다:
Figure 112012001066291-pct00030
(11)
여기서, 평균 절대 거리는 변수
Figure 112012001066291-pct00031
에 의해 표시되고, N 은 행렬의 사이즈와 동일하다.
직교성의 속성을 완화시킴으로써, 코딩 이득을 개선시킬 수도 있지만, 평균 절대차에 관련된 코딩 이득의 분석이 압축을 경험하는 이미지의 특정 모델 또는 통계값들에 너무 의존한다. 그 결과, 직교성의 속성을 완화시키기 위한 범위는, DCT-Ⅱ 의 기본 함수들의 매칭의 관점에서 잠재적으로 최상인 정수 변환들을 발견하는 것에 관련된 상이한 메트릭의 분석을 통해 결정될 수도 있다. 이러한 형태의 평가에 관한 더 많은 정보가 Y.A. Reznik, A.T.Hinds, 및 J.L.Mitchell 저서의 "Improved precision of Fixed-Point Algorithms by Means of Common factors (Proc. ICIP 2008, 샌디에이고, CA)" 라는 명칭의 문헌에서 발견될 수 있고, 그 전체 내용이 여기에 완전히 설명되는 바와 같이 참조로 포함된다.
이러한 포함된 참조로부터, 최상의 매칭 설계를 생성하기 위한 하나의 기술은 "공통 인수 기반 근사" 라고 지칭된다. 이러한 기술들을 이용하여, 다음 식 (12) 가 다음와 같이 유도될 수 있어서:
Figure 112012001066291-pct00032
(12)
다음 식들 (13) 및 (14) 가 다음과 같이 유도될 수도 있다:
Figure 112012001066291-pct00033
, 및 (13)
Figure 112012001066291-pct00034
(14)
식 (12) 는 스케일링된 인수 (ξ) 의 경우, C 및 S 에 대한 대응하는 근사의 에러들이 동일한 크기를 갖지만 부호가 반대인 것을 보장한다. 이들 가정 하에서, 4×4 DCT-Ⅱ 구현 (70B) 으로서 도시된 정수 스케일링된 변환이 발생한다.
다음 표 2 는 C 및 S 의 정수들에 대해 선택된 다양한 값들 및 결과적인 근사 에러들을 예시한 것이다.
표 2
Figure 112012001066291-pct00035
도 2 를 더 상세히 고려하면, 변수들 (C 및 S) 가 2 및 5 로 각각 설정되는 경우, 근사 에러들이 감소된다. "근사 에러들" 의 표제 하에 상기 나타낸 제 3 에러 메트릭
Figure 112012001066291-pct00036
은 본질적으로 식 (11) 에 관련하여 상술된 직교성 미스매치 메트릭 (
Figure 112012001066291-pct00037
) 의 서브세트이고, 이러한 미스매치 메트릭은 CTC - I 의 대각을 따르는 홀수 위치들에서 나타나는 값들을 기술한다. 특히, 일반적으로, DCT-Ⅱ 기본 함수들에 대한 정수 근사들이 더 정밀할수록 직교하는 것에 더 가까워진다. 이러한 정수 근사가 일반적으로 직교하는 것에 더 가깝지만, 1 및 2 의 값들로 설정된 C 및 S 를 갖는 DCT-Ⅱ 구현 (70B) 은, 도 7b 에 관련하여 후술되는 바와 같이, 가능하다면 코딩 이득의 관점에서 리스팅되는 이들의 최대의 반환을 각각 제공한다.
또한, 타입 Ⅱ 의 DCT 에 관련하여 상술되었지만, 도 4b 의 예에 도시된 구현 (70B) 은 타입 Ⅲ 의 DCT 또는 역 DCT 구현을 나타낼 수도 있다. 구현 (70B) 으로부터의 역 DCT 를 형성하는 것은 입력들 및 출력들을 반전시키는 것을 수반하여, 입력들이 도 4b 의 우측에서의 구현에 의해 수신되도록 하고 출력들이 구현의 좌측에서 출력되도록 한다. 그 후에, 입력들이 짝수 및 홀수부들 (78) 에 의해 먼저 프로세싱된 후에, 좌측에 출력되기 전에 버터플라이 (76) 에 의해 프로세싱된다. 예시를 용이하게 하기 위해, 구현 (70B) 에 대한 역인 이러한 IDCT 구현은, 이러한 구현이 구현 (70B) 의 미러 이미지로서 기술될 수도 있다는 것을 고려하여 별도 도면에 도시되어 있지 않다.
도 4c 는 대안적인 인수 분해로부터 발생하는 본 개시물의 기술들에 따라 구성된 또 다른 예시적인 스케일링된 근직교 4×4 DCT-Ⅱ 구현 (70C) 을 예시한 도면이다. 4×4 DCT-Ⅱ 구현 (70C) 은 도 4a 의 버터플라이 유닛 (72) 및 도 4b 의 버터플라이 유닛 (76) 과 유사한 버터플라이 유닛 (80), 및 짝수 및 홀수부들 (82A, 82B) ("짝수 및 홀수부들 (82)") 을 포함한다. 짝수부 (82A) 는 짝수부 (78A) 와 유사하다. 또한, 홀수부 (82B) 는, 내부 인수들 (A, B) 과 스케일링된 인수 (ξ) 사이에서 직교성 조건이 완화되어, 대안적인 인수 분해의 결과로서, 상이한 관계식, 즉, 식 (3) 에 관련하여 상술된 관계식을 발생시키는 홀수부 (78B) 와 유사하다. 대안적인 인수 분해에 관한 더 많은 정보가 Y.A. Reznik, 및 R.C.Chivukula 저서의 "On Design of Transforms for High-resolution / High-Performance Video Coding (MPEG input document M16438, presented at MPEG's 88th meeting, in Maui, HI, in April 2009)" 라는 명칭의 문헌에서 발견될 수 있고, 그 전체 내용이 여기에 완전히 설명되는 바와 같이 참조로 포함된다.
특히, 상이한 스케일 인수들이 홀수 계수들 (X1 및 X3) 에 적용되고, 4×4 DCT-Ⅱ 구현 (70C) 에 가까워지도록 하나의 무리수의 인수만이 존재한다. 직교를 유지하기 위해, 내부 인수 (B) 가 통상적으로 2 의 제곱근으로 나눈 1 로 설정되어야 하고, A 가 1 로 설정되어야 한다. 그 결과, 이들 값들로부터 내부 인수들 (A, B) 의 값을 변경시키면 비직교 구현을 발생시킨다. 이들 내부 인수들의 다양한 값들을 평가하기 위해, 도 4b 에 관련하여 상술된, 공통 인수 근사 기술들이라고 지칭되는 상기 기술들이 채용된다. 이러한 기술들을 이용하여, 파라미터 (ξ) 를 유도하기 위해 2개의 정수 값들이 내부 인수들 (A, B) 에 대해 선택될 수 있도록 다음 식 (15) 가 결정되어:
Figure 112012001066291-pct00038
(15)
다음 식들 (16) 및 (17) 이 만족되도록 한다:
Figure 112012001066291-pct00039
, 및 (16)
Figure 112012001066291-pct00040
(17)
상기의 식 (15) 는 대응하는 근사들의 에러들의 크기가 균형이 잡히지만, 부호들이 반대로 되는 것을 보장한다. 이들 가정 하에서, 4×4 DCT-Ⅱ 구현 (70C) 으로서 도시된 정수 스케일링된 변환이 발생한다.
다음 표 3 은 C 및 S 의 정수들에 대해 선택된 다양한 값들 및 결과적인 근사 에러들을 예시한 것이다.
표 3
Figure 112012001066291-pct00041
표 3 을 더 상세히 고려하면, 변수들 (A 및 B) 가 7 및 5 로 각각 설정되는 경우, 근사 에러들이 감소된다. 7 및 5 의 값들로 설정된 A 및 B 를 갖는 4×4 DCT-Ⅱ 구현 (70C) 은, 도 7c 에 관련하여 후술되는 바와 같이, 가능하다면 (표 3 에 도시되지 않은) 복잡도 증가에 대한 비교시 코딩 이득의 관점에서 리스팅되는 이들의 최대의 반환을 각각 제공한다.
또한, 타입 Ⅱ 의 DCT 에 관련하여 상술되었지만, 도 4c 의 예에 도시된 구현 (70C) 은 타입 Ⅲ 의 DCT 또는 역 DCT 구현을 나타낼 수도 있다. 구현 (70C) 으로부터의 역 DCT 를 형성하는 것은 입력들 및 출력들을 반전시키는 것을 수반하여, 입력들이 도 4c 의 우측에서의 구현에 의해 수신되도록 하고 출력들이 구현의 좌측에서 출력되도록 한다. 그 후에, 입력들이 짝수 및 홀수부들 (82) 에 의해 먼저 프로세싱된 후에, 좌측에 출력되기 전에 버터플라이 (80) 에 의해 프로세싱된다. 예시를 용이하게 하기 위해, 구현 (70C) 에 대한 역인 이러한 IDCT 구현은, 이러한 구현이 구현 (70C) 의 미러 이미지로서 기술될 수도 있다는 것을 고려하여 별도 도면에 도시되어 있지 않다.
도 5 는 본 개시물의 기술들에 따라 구성된 4×4 DCT 구현을 적용함에 있어서 도 2 의 비디오 인코더 (20) 와 같은 코딩 디바이스의 예시적인 동작을 예시한 흐름도이다. 먼저, 비디오 인코더 (20) 는 인코딩될 비디오 프레임 내의 현재 비디오 블록 (30) 을 수신한다 (90). 모션 추정 유닛 (32) 은 비디오 블록 (30) 을 하나 이상의 인접 비디오 프레임들에서의 블록들과 비교하기 위한 모션 추정을 수행하여 하나 이상의 모션 벡터들을 생성한다 (92). 인접 프레임 또는 프레임들이 기준 프레임 저장부 (34) 로부터 검색될 수도 있다. 다양한 사이즈들, 예를 들어, 16×16, 16×8, 8×16, 8×8, 4×4 또는 더 작은 블록 사이즈들의 블록들에 대해 모션 추정이 수행될 수도 있다. 모션 추정 유닛 (32) 은, 예를 들어, 레이트 디스토션 모델에 기초하여, 현재 비디오 블록 (30) 과 매우 가깝게 매칭하는 인접 프레임들에서의 하나 이상의 블록들을 식별하고, 인접 프레임들에서의 블록들과 현재 비디오 블록 사이의 변위를 결정한다. 이에 기초하여, 모션 추정 유닛 (32) 은 현재 비디오 블록 (30) 과 현재 비디오 블록 (30) 을 코딩하는데 이용되는 기준 프레임들로부터의 하나 이상의 매칭 블록들 사이의 변위의 크기 및 궤적을 나타내는 하나 이상의 모션 벡터들 (MV) 을 생성한다. 매칭 블록 또는 블록들은 코딩될 블록의 인터-코딩을 위한 예언 (또는 예측) 블록들로서 기능한다.
모션 벡터들은 2분의 1-픽셀 또는 4분의 1-픽셀 정밀도 또는 심지어는 더 미세한 정밀도를 가질 수도 있어서, 비디오 인코더 (20) 가 정수 픽셀 위치들보다 더 높은 정밀도로 모션을 추적하고 더 양호한 예측 블록을 획득하도록 할 수도 있다. 아주 작은 픽셀 값들을 갖는 모션 벡터들이 이용되는 경우, 모션 보상 유닛 (36) 에서 보간 동작들이 수행된다. 모션 추정 유닛 (32) 은 레이트 디스토션 모델과 같은 특정 기준을 이용하여 비디오 블록에 대한 최상의 블록 파티션들 및 모션 벡터 또는 모션 벡터들을 식별한다. 예를 들어, 양방향 예측의 경우에는 모션 벡터보다 더 많이 존재할 수도 있다. 결과적인 블록 파티션들 및 모션 벡터들을 이용하여, 모션 보상 유닛 (36) 이 예측 비디오 블록을 형성한다 (94).
비디오 인코더 (20) 는 합산기 (48) 에서 모션 보상 유닛 (36) 에 의해 생성된 예측 비디오 블록을 오리지널의 현재 비디오 블록 (30) 으로부터 감산함으로써 나머지 비디오 블록을 형성한다 (96). 블록 변환 유닛 (38) 은 나머지 변환 블록 계수들을 생성하는 변환을 적용한다. 블록 변환 유닛 (38) 은 본 개시물에 기술된 기술들에 따라 생성된 4×4 DCT-Ⅱ 유닛 (52) 을 포함한다. 블록 변환 유닛 (38) 은 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 을 나머지 블록에 적용하여 나머지 변환 계수들의 4×4 블록을 생성한다. 4×4 DCT-Ⅱ 유닛 (52) 은 일반적으로 나머지 블록을 공간 도메인으로부터 주파수 도메인으로 변환하고, 그 공간 도메인은 나머지 픽셀 데이터로서 나타내며, 그 주파수 도메인은 DCT 계수들로서 나타낸다 (98). 변환 계수들은 적어도 하나의 DC 계수 및 하나 이상의 AC 계수들을 포함하는 DCT 계수들을 포함할 수도 있다.
양자화 유닛 (40) 은 나머지 변환 블록 계수들을 양자화 (예를 들어, 반올림) 하여, 비트 레이트를 더 감소시킨다 (100). 상술된 바와 같이, 양자화 유닛 (40) 은, 인수 분해 동안 제거된 내부 인수들을 포함시킴으로써, 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 의 스케일링 유형을 설명한다. 즉, 양자화 유닛 (40) 은 도 4a 내지 도 4c 의 구현들 (70A 내지 70C) 에 관련하여 하기 나타낸 외부 인수를 포함한다. 양자화가 통상적으로 곱셈을 수반함에 따라, 이들 인수들을 양자화 유닛 (40) 내에 포함시키는 것은 양자화 유닛 (40) 의 구현 복잡도를 증가시키지 않을 수도 있다. 이와 관련하여, 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 으로부터 인수들을 제거하는 것은, 양자화 유닛 (40) 의 구현 복잡도를 증가시키는 일 없이 DCT-Ⅱ 유닛 (52) 의 구현 복잡도를 감소시켜서, 비디오 인코더 (20) 에 관련된 구현 복잡도를 결국 감소시키게 된다.
엔트로피 코딩 유닛 (46) 은 양자화된 계수들을 엔트로피 코딩하여 비트 레이트를 더 감소시킨다. 엔트로피 코딩 유닛 (46) 은, 일부 경우 엔트로피 코딩이라고 지칭되는 통계 무손실 코딩을 수행하여 코딩된 비트스트림을 생성한다 (102). 엔트로피 코딩 유닛 (46) 은 양자화된 DCT 계수들의 확률 분포를 모델링하고, 그 모델링된 확률 분포에 기초하여 코드북 (예를 들어, CAVLC 또는 CABAC) 을 선택한다. 이러한 코드북을 이용하여, 엔트로피 코딩 유닛 (46) 은, 양자화된 DCT 계수들을 압축하는 방식으로, 각각의 양자화된 DCT 계수에 대한 코드들을 선택한다. 엔트로피 코딩 유닛 (46) 은 엔트로피 코딩된 계수들을, 메모리 또는 저장 디바이스에 저장하고/하거나 비디오 디코더 (26) 에 전송되는 코딩된 비트스트림으로서 출력한다 (104).
복원 유닛 (42) 및 역 변환 유닛 (44) 은 각각 양자화된 계수들을 복원하고, 역 변환을 적용하여, 나머지 블록을 복원한다. 합산 유닛 (50) 은 복원된 나머지 블록을 모션 보상 유닛 (36) 에 의해 생성된 모션 보상된 예측 블록과 가산하여, 기준 프레임 저장부 (34) 에서의 저장을 위해 복원된 비디오 블록을 생성한다. 복원된 비디오 블록이 모션 추정 유닛 (32) 및 모션 보상 유닛 (36) 에 의해 이용되어, 후속의 비디오 프레임에서의 블록을 인코딩한다.
도 6 은 본 개시물의 기술들에 따라 구성된 4×4 DCT-Ⅲ 구현을 적용함에 있어서 도 3 의 비디오 디코더 (26) 와 같은 코딩 디바이스의 예시적인 동작을 예시한 흐름도이다. 비디오 디코더 (26) 는 비디오 인코더 (20) 에 의해 인코딩된 인코딩 비디오 비트스트림을 수신한다. 특히, 엔트로피 디코딩 유닛 (54) 은 인코딩된 비디오 비트스트림을 수신하고, 그 비트스트림으로부터 양자화된 나머지 계수들 및 양자화된 파라미터들 뿐만 아니라, 매크로블록 코딩 모드 및 모션 정보와 같은 다른 정보를 디코딩하고, 그 모션 정보는 모션 벡터들 및 블록 파티션들을 포함할 수도 있다 (106, 108). 모션 보상 유닛 (56) 은 모션 벡터들 및 블록 파티션들 및 기준 프레임 저장부 (62) 로부터의 하나 이상의 복원된 기준 프레임들을 수신하여 예측 비디오 블록을 생성한다 (110).
복원 유닛 (58) 은 양자화된 블록 계수들을 역 양자화, 즉, 양자화 해제한다 (112). 역 변환 유닛 (60) 은 역 변환, 예를 들어, 역 DCT 를 계수들에 적용하여, 나머지 블록들을 생성한다. 더 상세하게는, 역 변환 유닛 (60) 은 스케일링된 4×4 DCT-Ⅲ 유닛 (68) 을 포함하고, 그 역 변환 유닛 (60) 이 계수들에 적용하여 나머지 블록들을 생성한다 (114). 도 2 에 도시된 스케일링된 4×4 DCT-Ⅱ 유닛 (52) 의 역인, 스케일링된 4×4 DCT-Ⅲ 유닛 (68) 은, 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 나머지 들록들을 생성할 수도 있다. 상기의 양자화 유닛 (40) 과 유사하게, 복원 유닛 (58) 은, 구현 복잡도에서의 어떠한 증가가 있다면 그 구현 복잡도를 거의 증가시키는 일 없이, 인수 분해 동안 제거된 외부 인수들을 복원 프로세스에 포함시킴으로써 4×4 DCT-Ⅲ 유닛 (68) 의 스케일링 유형을 설명한다. 스케일링된 4×4 DCT-Ⅲ 유닛 (68) 으로부터 인수들을 제거하는 것은, 구현 복잡도를 감소시킬 수도 있어서, 비디오 디코더 (26) 에 대한 복잡도를 결국 감소시키게 된다.
그 후에, 예측 비디오 블록들은 합산기 (66) 에 의해 나머지 블록들과 합산되어, 디코딩된 블록들을 형성한다 (116). 디블록킹 필더 (미도시) 는 디코딩된 블록들을 필터링하여 블록킹 아티팩트들을 제거하도록 적용될 수도 있다. 그 후에, 필터링된 블록들이 기준 프레임 저장부 (62) 에 위치되고, 그 기준 프레임 저장부 (62) 는 후속 비디오 프레임들의 디코딩을 위해 기준 프레임을 제공하고, 또한 디코딩된 비디오를 생성하여 도 1 의 디스플레이 디바이스 (28) 와 같은 디스플레이 디바이스를 구동한다 (118).
도 7a 내지 도 7c 는 본 개시물의 기술들에 따라 구성된, 도 4a 내지 도 4c 의 구현들 (70A 내지 70C) 과 같은 3개의 상이한 4×4 DCT-Ⅱ 구현들 각각에 대한 비트레이트들에 대한 피크 신호 대 잡음 비들의 그래프들 (120A 내지 120C) 을 예시한 도면들이다. 도 7a 는 본 개시물의 기술들에 따라 구성된, 도 4a 의 구현들 (70A) 과 같은 직교 스케일링된 4×4 DCT-Ⅱ 구현에 대한 비트레이트들에 대한 피크 신호 대 잡음 비들 (PSNR) 의 그래프 (120A) 를 예시한 도면이다. 그래프 (120A) 의 키에 의하면, 실선은 H.264 비디오 코딩 표준에 의해 포함되는 표준 4×4 DCT-Ⅱ 구현을 나타낸다. 점선은 무리수 곱셈 및 덧셈들을 수행하는 것이 가능한 이론상 최상인 DCT 구현을 나타낸다. 긴 점선은 2 및 5 로 각각 설정된 내부 인수들 (C 및 S) 을 갖는 직교 4×4 DCT-Ⅱ 구현 (70A) 을 나타낸다. 짧은 점선은 3 및 7 로 각각 설정된 내부 인수들 (C 및 S) 을 갖는 직교 4×4 DCT-Ⅱ 구현 (70A) 을 나타낸다. 파선의 점선은 5 및 12 로 각각 설정된 내부 인수들 (C 및 S) 을 갖는 직교 4×4 DCT-Ⅱ 구현 (70A) 을 나타낸다. 특히, 2 및 5 로 설정된 내부 인수들 (C 및 S) 을 갖는 직교 4×4 DCT-Ⅱ 구현 (70A) 은, H.264 구현보다 이론상 최상인 DCT-Ⅱ 구현에 더 정확히 가깝다. 또한, 3 및 7 또는 5 및 12 로 설정된 내부 인수들 (C 및 S) 을 갖는 직교 4×4 DCT-Ⅱ 구현 (70A) 은, 이들 구현들이 더 복잡한 구현을 수반하지만, 2 및 5 로 설정된 내부 인수들 (C 및 S) 을 갖는 직교 4×4 DCT-Ⅱ 구현 (70A) 에 비해 PSNR 관점에서 많은 이득을 제공하지 않는다.
도 7b 는 본 개시물의 기술들에 따라 구성된, 도 4b 의 구현들 (70B) 과 같은 직교 스케일링된 4×4 DCT-Ⅱ 구현에 대한 비트레이트들에 대한 피크 신호 대 잡음 비들 (PSNR) 의 그래프 (120B) 를 예시한 도면이다. 그래프 (120B) 의 키에 의하면, 실선은 H.264 비디오 코딩 표준에 의해 포함되는 표준 직교 4×4 DCT-Ⅱ 구현을 나타낸다. 점선은 무리수 곱셈 및 덧셈들을 수행하는 것이 가능한 이론상 최상인 DCT 구현을 나타낸다. 짧은 점선은 1 및 2 로 각각 설정된 내부 인수들 (C 및 S) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70B) 을 나타낸다. 긴 파선은 2 및 5 로 각각 설정된 내부 인수들 (C 및 S) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70B) 을 나타낸다. 파선의 점선은 5 및 12 로 각각 설정된 내부 인수들 (C 및 S) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70B) 을 나타낸다. 특히, 2 및 5 로 설정된 내부 인수들 (C 및 S) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70B) 은, H.264 구현에 비해 PSNR 관점에서 훨씬 양호하지는 않다. 그러나, 1 및 2 로 설정된 내부 인수들 (C 및 S) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70B) 은, 이론상의 DCT 구현보다 더 양호한 PSNR 을 제공하지만, 5 및 12 로 설정된 내부 인수들 (C 및 S) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70B) 은 이론상의 DCT 구현을 가장 정확히 나타낸다.
도 7c 는 본 개시물의 기술들에 따라 구성된, 도 4c 의 구현들 (70C) 과 같은 대안적인 인수 분해로부터 유도된 근직교 스케일링된 4×4 DCT-Ⅱ 구현에 대한 비트레이트들에 대한 피크 신호 대 잡음 비들 (PSNR) 의 그래프 (120C) 를 예시한 도면이다. 그래프 (120C) 의 키에 의하면, 실선은 H.264 비디오 코딩 표준에 의해 포함되는 표준 직교 4×4 DCT-Ⅱ 구현을 나타낸다. 점선은 무리수 곱셈 및 덧셈들을 수행하는 것이 가능한 이론상 최상인 DCT 구현을 나타낸다. 긴 파선은 2 및 3 으로 각각 설정된 내부 인수들 (B 및 A) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70C) 을 나타낸다. 짧은 파선은 5 및 7 로 각각 설정된 내부 인수들 (B 및 A) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70C) 을 나타낸다. 파선의 점선은 29 및 41 로 각각 설정된 내부 인수들 (B 및 A) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70C) 을 나타낸다. 특히, 2 및 3 으로 설정된 내부 인수들 (B 및 A) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70C) 은, H.264 구현보다 PSNR 관점에서 더 열악하다. 그러나, 5 및 7 로 설정된 내부 인수들 (B 및 A) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70C) 은, H.264 구현보다 더 양호한 PSNR 을 제공하고, 29 및 41 로 설정된 내부 인수들 (C 및 S) 을 갖는 근직교 4×4 DCT-Ⅱ 구현 (70C) 의 복잡도를 요구하는 일 없이 이론상의 DCT 구현을 정확히 나타낸다.
본 개시물의 기술들은 모바일 폰과 같은 무선 통신 디바이스 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (즉, 칩셋) 을 포함하는 폭넓게 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 임의의 컴포넌트들, 모듈들, 또는 유닛들은 기능적 양태들을 강조하기 위해 제공되는 것으로 설명되었으며, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하는 것은 아니다. 또한, 여기에 기술된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 모듈들, 유닛들 또는 컴포넌트들로서 기술된 임의의 특징들은 통합된 로직 디바이스에서 함께 구현될 수도 있거나, 개별적이지만 상호 동작가능한 로직 디바이스들로서 별도로 구현될 수도 있다. 일부 경우, 다양한 특징들이 집적 회로 칩 또는 칩셋과 같은 집적 회로 디바이스로서 구현될 수도 있다.
소프트웨어로 구현되는 경우, 그 기술들은 프로세서에서 실행될 때에 상술된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터 판독가능 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 매체는 물리적 구조물인 컴퓨터 판독가능 저장 매체를 포함할 수도 있고, 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능 저장 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM : synchronous dynamic random access memory) 와 같은 랜덤 액세스 메모리 (RAM : random access memory), 판독 전용 메모리 (ROM : read-only memory), 비휘발성 랜덤 액세스 메모리 (NVRAM : non-volatile random access memory), 전기적 소거가능 프로그램가능 판독전용 메모리 (EEPROM : electrically erasable programmable read-only memory), 플래시 메모리 (FLASH memory), 자기 또는 광학 데이터 저장 매체 등을 포함할 수도 있다. 이런 의미에서, 컴퓨터 판독가능 저장 매체는 일부 측면에서 비일시적 컴퓨터 판독가능 저장 매체가 고려될 수도 있다.
코드 또는 명령들은 하나 이상의 디지털 신호 프로세서 (DSP) 들, 범용 마이크로프로세서들, 주문형 집적 회로 (ASIC), 필드 프로그램가능 로직 어레이 (FPGA) 들, 또는 다른 동등한 통합된 또는 개벌적 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 여기에 사용되는 "프로세서" 라는 용어는 여기에 기술된 기술들의 구현에 적합한 임의의 상기 구조 또는 임의의 다른 구조를 지칭할 수도 있다. 또한, 일부 양태들에서는, 여기에 기술된 기능성이 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공될 수도 있거나, 조합된 비디오 코덱 내에 포함될 수도 있다. 또한, 그 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
또한, 본 개시물은, 본 개시물에 기술된 기술들 중 하나 이상을 구현하기 위한 회로를 포함하는 다양한 집적 회로 디바이스들 중 임의의 집적 회로 디바이스를 고려한다. 이러한 회로가 소위 칩셋 내의 단일의 집적 회로 칩 또는 다수의 상호동작가능한 집적 회로 칩들로 제공될 수도 있다. 이러한 집적 회로 디바이스들은 그 일부가 포함될 수도 있는 다양한 애플리케이션들에서 이용될 수도 있고, 모바일 전화기 핸드셋들과 같은 무선 통신 디바이스들에서 이용할 수도 있다.
기술들의 다양한 양태들이 기술되었다. 이들 양태들 및 다른 양태들은 다음의 청구항들의 범위 내에 있다.

Claims (57)

  1. 미디어 코딩을 위한 장치로서,
    스케일링된 인수 (scaled factor; ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록 상기 스케일링된 인수 (ξ) 와 관련된 상기 제 1 내부 인수 (C) 및 상기 제 2 내부 인수 (S) 를 제공하는 홀수부를 갖는 직교 4×4 이산 코사인 변환 (discrete cosine transform; DCT) 을 구현하는 4×4 DCT 하드웨어 유닛을 포함하고,
    상기 4×4 DCT 하드웨어 유닛은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 상기 직교 4×4 DCT 의 구현을 상기 미디어 데이터에 적용하는, 미디어 코딩을 위한 장치.
  2. 제 1 항에 있어서,
    상기 제 1 내부 인수 (C) 는 1 과 동일하고,
    상기 제 2 내부 인수 (S) 는 2 와 동일한, 미디어 코딩을 위한 장치.
  3. 제 1 항에 있어서,
    상기 제 1 내부 인수 (C) 는 2 와 동일하고,
    상기 제 2 내부 인수 (S) 는 5 와 동일한, 미디어 코딩을 위한 장치.
  4. 제 1 항에 있어서,
    상기 제 1 내부 인수 (C) 는 3 과 동일하고,
    상기 제 2 내부 인수 (S) 는 7 과 동일한, 미디어 코딩을 위한 장치.
  5. 제 1 항에 있어서,
    상기 제 1 내부 인수 (C) 는 5 와 동일하고,
    상기 제 2 내부 인수 (S) 는 12 와 동일한, 미디어 코딩을 위한 장치.
  6. 제 1 항에 있어서,
    상기 제 1 내부 인수 (C) 는 17 과 동일하고,
    상기 제 2 내부 인수 (S) 는 41 과 동일한, 미디어 코딩을 위한 장치.
  7. 제 1 항에 있어서,
    상기 4×4 DCT 하드웨어 유닛은, 상기 직교 4×4 DCT 의 구현을 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하고,
    상기 미디어 코딩을 위한 장치는, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 양자화 유닛을 더 포함하는, 미디어 코딩을 위한 장치.
  8. 제 1 항에 있어서,
    상기 4×4 DCT 하드웨어 유닛은, 상기 직교 4×4 DCT 를 구현하는 소프트웨어를 실행하는 프로세서를 포함하는, 미디어 코딩을 위한 장치.
  9. 미디어 코딩을 위한 방법으로서,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 직교 4×4 DCT 구현을 상기 미디어 데이터에 적용하는 단계를 포함하고,
    상기 직교 4×4 DCT 구현은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록 상기 스케일링된 인수 (ξ) 와 관련된 상기 제 1 내부 인수 (C) 및 상기 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함하는, 미디어 코딩을 위한 방법.
  10. 제 9 항에 있어서,
    상기 제 1 내부 인수 (C) 는 1 과 동일하고,
    상기 제 2 내부 인수 (S) 는 2 와 동일한, 미디어 코딩을 위한 방법.
  11. 제 9 항에 있어서,
    상기 제 1 내부 인수 (C) 는 2 와 동일하고,
    상기 제 2 내부 인수 (S) 는 5 와 동일한, 미디어 코딩을 위한 방법.
  12. 제 9 항에 있어서,
    상기 제 1 내부 인수 (C) 는 3 과 동일하고,
    상기 제 2 내부 인수 (S) 는 7 과 동일한, 미디어 코딩을 위한 방법.
  13. 제 9 항에 있어서,
    상기 제 1 내부 인수 (C) 는 5 와 동일하고,
    상기 제 2 내부 인수 (S) 는 12 와 동일한, 미디어 코딩을 위한 방법.
  14. 제 9 항에 있어서,
    상기 제 1 내부 인수 (C) 는 17 과 동일하고,
    상기 제 2 내부 인수 (S) 는 41 과 동일한, 미디어 코딩을 위한 방법.
  15. 제 9 항에 있어서,
    상기 직교 4×4 DCT 구현을 적용하는 단계는, 상기 직교 4×4 DCT 구현을 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하는 단계를 포함하고,
    상기 미디어 코딩을 위한 방법은, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 단계를 더 포함하는, 미디어 코딩을 위한 방법.
  16. 미디어 코딩을 위한 장치로서,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 직교 4×4 이산 코사인 변환 (DCT) 구현을 상기 미디어 데이터에 적용하는 수단을 포함하고,
    상기 직교 4×4 DCT 구현은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록 상기 스케일링된 인수 (ξ) 와 관련된 상기 제 1 내부 인수 (C) 및 상기 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함하는, 미디어 코딩을 위한 장치.
  17. 제 16 항에 있어서,
    상기 제 1 내부 인수 (C) 는 1 과 동일하고,
    상기 제 2 내부 인수 (S) 는 2 와 동일한, 미디어 코딩을 위한 장치.
  18. 제 16 항에 있어서,
    상기 제 1 내부 인수 (C) 는 2 와 동일하고,
    상기 제 2 내부 인수 (S) 는 5 와 동일한, 미디어 코딩을 위한 장치.
  19. 제 16 항에 있어서,
    상기 제 1 내부 인수 (C) 는 3 과 동일하고,
    상기 제 2 내부 인수 (S) 는 7 과 동일한, 미디어 코딩을 위한 장치.
  20. 제 16 항에 있어서,
    상기 제 1 내부 인수 (C) 는 5 와 동일하고,
    상기 제 2 내부 인수 (S) 는 12 와 동일한, 미디어 코딩을 위한 장치.
  21. 제 16 항에 있어서,
    상기 제 1 내부 인수 (C) 는 17 과 동일하고,
    상기 제 2 내부 인수 (S) 는 41 과 동일한, 미디어 코딩을 위한 장치.
  22. 제 16 항에 있어서,
    상기 직교 4×4 DCT 구현을 상기 미디어 데이터에 적용하는 수단은, 상기 직교 4×4 DCT 구현을 적용하여 하나 이상의 DCT 계수들을 결정하는 수단을 포함하고,
    상기 미디어 코딩을 위한 장치는, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 수단을 더 포함하는, 미디어 코딩을 위한 장치.
  23. 컴퓨터 판독가능 저장 매체로서,
    프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 직교 4×4 DCT 구현을 상기 미디어 데이터에 적용하게 하는
    명령들을 저장하고,
    상기 직교 4×4 DCT 구현은, 스케일링된 인수 (ξ) 가 제 1 내부 인수 (C) 의 제곱에 제 2 내부 인수 (S) 의 제곱을 더한 합의 제곱근과 동일하도록 상기 스케일링된 인수 (ξ) 와 관련된 상기 제 1 내부 인수 (C) 및 상기 제 2 내부 인수 (S) 를 제공하는 홀수부를 포함하는, 컴퓨터 판독가능 저장 매체.
  24. 미디어 코딩을 위한 장치로서,
    4×4 이산 코사인 변환 (DCT) 하드웨어 유닛을 포함하고,
    상기 4×4 DCT 하드웨어 유닛은, 다음 식:
    Figure 112013062362939-pct00061

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 갖는 비직교 (non-orthogonal) 4×4 DCT 를 구현하고,
    여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 상기 변수들 (ω 및 ψ) 대신에 상기 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시하고,
    상기 4×4 DCT 하드웨어 유닛은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 상기 비직교 4×4 DCT 의 구현을 상기 미디어 데이터에 적용하는, 미디어 코딩을 위한 장치.
  25. 제 24 항에 있어서,
    상기 제 1 내부 인수 (C) 는 1 과 동일하고,
    상기 제 2 내부 인수 (S) 는 2 와 동일한, 미디어 코딩을 위한 장치.
  26. 제 24 항에 있어서,
    상기 제 1 내부 인수 (C) 는 2 와 동일하고,
    상기 제 2 내부 인수 (S) 는 5 와 동일한, 미디어 코딩을 위한 장치.
  27. 제 24 항에 있어서,
    상기 제 1 내부 인수 (C) 는 5 와 동일하고,
    상기 제 2 내부 인수 (S) 는 12 와 동일한, 미디어 코딩을 위한 장치.
  28. 제 24 항에 있어서,
    상기 4×4 DCT 하드웨어 유닛은, 상기 비직교 4×4 DCT 의 구현을 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하고,
    상기 미디어 코딩을 위한 장치는, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 양자화 유닛을 더 포함하는, 미디어 코딩을 위한 장치.
  29. 제 24 항에 있어서,
    상기 4×4 DCT 하드웨어 유닛은, 상기 비직교 4×4 DCT 를 구현하는 소프트웨어를 실행하는 프로세서를 포함하는, 미디어 코딩을 위한 장치.
  30. 미디어 코딩을 위한 방법으로서,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하는 단계를 포함하고,
    상기 비직교 4×4 DCT 는, 다음 식:
    Figure 112013062362939-pct00062

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 포함하고,
    여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 상기 변수들 (ω 및 ψ) 대신에 상기 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시하는, 미디어 코딩을 위한 방법.
  31. 제 30 항에 있어서,
    상기 제 1 내부 인수 (C) 는 1 과 동일하고,
    상기 제 2 내부 인수 (S) 는 2 와 동일한, 미디어 코딩을 위한 방법.
  32. 제 30 항에 있어서,
    상기 제 1 내부 인수 (C) 는 2 와 동일하고,
    상기 제 2 내부 인수 (S) 는 5 와 동일한, 미디어 코딩을 위한 방법.
  33. 제 30 항에 있어서,
    상기 제 1 내부 인수 (C) 는 5 와 동일하고,
    상기 제 2 내부 인수 (S) 는 12 와 동일한, 미디어 코딩을 위한 방법.
  34. 제 30 항에 있어서,
    상기 비직교 4×4 DCT 를 적용하는 단계는, 상기 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하는 단계를 포함하고,
    상기 미디어 코딩을 위한 방법은, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 단계를 더 포함하는, 미디어 코딩을 위한 방법.
  35. 미디어 코딩을 위한 장치로서,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하는 수단을 포함하고,
    상기 비직교 4×4 DCT 는, 다음 식:
    Figure 112013062362939-pct00063

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 포함하고,
    여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 상기 변수들 (ω 및 ψ) 대신에 상기 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시하는, 미디어 코딩을 위한 장치.
  36. 제 35 항에 있어서,
    상기 제 1 내부 인수 (C) 는 1 과 동일하고,
    상기 제 2 내부 인수 (S) 는 2 와 동일한, 미디어 코딩을 위한 장치.
  37. 제 35 항에 있어서,
    상기 제 1 내부 인수 (C) 는 2 와 동일하고,
    상기 제 2 내부 인수 (S) 는 5 와 동일한, 미디어 코딩을 위한 장치.
  38. 제 35 항에 있어서,
    상기 제 1 내부 인수 (C) 는 5 와 동일하고,
    상기 제 2 내부 인수 (S) 는 12 와 동일한, 미디어 코딩을 위한 장치.
  39. 제 35 항에 있어서,
    상기 비직교 4×4 DCT 를 적용하는 수단은, 상기 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하는 수단을 포함하고,
    상기 미디어 코딩을 위한 장치는, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 수단을 더 포함하는, 미디어 코딩을 위한 장치.
  40. 컴퓨터 판독가능 저장 매체로서,
    프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하게 하는 명령들을 저장하고,
    상기 비직교 4×4 DCT 는, 다음 식:
    Figure 112013062362939-pct00064

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 및 제 2 변수들 (C, S) 을 제공하는 홀수부를 포함하고,
    여기서, 변수들 (ω 및 ψ) 은 무리수의 내부 변환 인수들을 표시하고, 변수들 (C 및 S) 은 상기 변수들 (ω 및 ψ) 대신에 상기 비직교 4×4 DCT 의 정수 구현들에 이용되는 이항 유리수의 내부 변환 인수들을 표시하는, 컴퓨터 판독가능 저장 매체.
  41. 미디어 코딩을 위한 장치로서,
    다음 식:
    Figure 112013062362939-pct00065

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 갖는 비직교 4×4 이산 코사인 변환 (DCT) 을 구현하는 4×4 DCT 하드웨어 유닛을 포함하고,
    상기 스케일링된 인수 (ξ) 는, 상기 제 1 내부 인수 (A) 에 상기 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일하고,
    상기 4×4 DCT 하드웨어 유닛은, 미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록 상기 비직교 4×4 DCT 의 구현을 상기 미디어 데이터에 적용하는, 미디어 코딩을 위한 장치.
  42. 제 41 항에 있어서,
    상기 제 1 내부 인수 (A) 는 3 과 동일하고,
    상기 제 2 내부 인수 (B) 는 2 와 동일한, 미디어 코딩을 위한 장치.
  43. 제 41 항에 있어서,
    상기 제 1 내부 인수 (A) 는 7 과 동일하고,
    상기 제 2 내부 인수 (B) 는 5 와 동일한, 미디어 코딩을 위한 장치.
  44. 제 41 항에 있어서,
    상기 제 1 내부 인수 (A) 는 29 와 동일하고,
    상기 제 2 내부 인수 (B) 는 41 과 동일한, 미디어 코딩을 위한 장치.
  45. 제 41 항에 있어서,
    상기 4×4 DCT 하드웨어 유닛은, 상기 비직교 4×4 DCT 의 구현을 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하고,
    상기 미디어 코딩을 위한 장치는, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 양자화 유닛을 더 포함하는, 미디어 코딩을 위한 장치.
  46. 제 41 항에 있어서,
    상기 4×4 DCT 하드웨어 유닛은, 상기 비직교 4×4 DCT 를 구현하는 소프트웨어를 실행하는 프로세서를 포함하는, 미디어 코딩을 위한 장치.
  47. 미디어 코딩을 위한 방법으로서,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하는 단계를 포함하고,
    상기 비직교 4×4 DCT 는, 다음 식:
    Figure 112013062362939-pct00066

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 포함하고,
    상기 스케일링된 인수 (ξ) 는, 상기 제 1 내부 인수 (A) 에 상기 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일한, 미디어 코딩을 위한 방법.
  48. 제 47 항에 있어서,
    상기 제 1 내부 인수 (A) 는 3 과 동일하고,
    상기 제 2 내부 인수 (B) 는 2 와 동일한, 미디어 코딩을 위한 방법.
  49. 제 47 항에 있어서,
    상기 제 1 내부 인수 (A) 는 7 과 동일하고,
    상기 제 2 내부 인수 (B) 는 5 와 동일한, 미디어 코딩을 위한 방법.
  50. 제 47 항에 있어서,
    상기 제 1 내부 인수 (A) 는 29 와 동일하고,
    상기 제 2 내부 인수 (B) 는 41 과 동일한, 미디어 코딩을 위한 방법.
  51. 제 47 항에 있어서,
    상기 비직교 4×4 DCT 를 적용하는 단계는, 상기 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하고,
    상기 미디어 코딩을 위한 방법은, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 단계를 더 포함하는, 미디어 코딩을 위한 방법.
  52. 미디어 코딩을 위한 장치로서,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하는 수단을 포함하고,
    상기 비직교 4×4 DCT 는, 다음 식:
    Figure 112013062362939-pct00067

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 포함하고,
    상기 스케일링된 인수 (ξ) 는, 상기 제 1 내부 인수 (A) 에 상기 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일한, 미디어 코딩을 위한 장치.
  53. 제 52 항에 있어서,
    상기 제 1 내부 인수 (A) 는 3 과 동일하고,
    상기 제 2 내부 인수 (B) 는 2 와 동일한, 미디어 코딩을 위한 장치.
  54. 제 52 항에 있어서,
    상기 제 1 내부 인수 (A) 는 7 과 동일하고,
    상기 제 2 내부 인수 (B) 는 5 와 동일한, 미디어 코딩을 위한 장치.
  55. 제 52 항에 있어서,
    상기 제 1 내부 인수 (A) 는 29 와 동일하고,
    상기 제 2 내부 인수 (B) 는 41 과 동일한, 미디어 코딩을 위한 장치.
  56. 제 52 항에 있어서,
    상기 비직교 4×4 DCT 를 적용하는 수단은, 상기 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하여 하나 이상의 DCT 계수들을 결정하는 수단을 포함하고,
    상기 미디어 코딩을 위한 장치는, 상기 하나 이상의 DCT 계수들의 상기 스케일링된 인수 (ξ) 를 이용하여, 양자화된 DCT 계수들을 결정하는 수단을 더 포함하는, 미디어 코딩을 위한 장치.
  57. 컴퓨터 판독가능 저장 매체로서,
    프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    미디어 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하도록, 4×4 이산 코사인 변환 (DCT) 하드웨어 유닛에 의해 비직교 4×4 DCT 를 상기 미디어 데이터에 적용하게 하는
    명령들을 저장하고,
    상기 비직교 4×4 DCT 는, 다음 식:
    Figure 112013062362939-pct00068

    에 의해 스케일링된 인수 (ξ) 와 관련된 제 1 내부 인수 (A) 및 제 2 내부 인수 (B) 를 제공하는 홀수부를 포함하고,
    상기 스케일링된 인수 (ξ) 는, 상기 제 1 내부 인수 (A) 에 상기 제 2 내부 인수 (B) 를 더한 합을, 2 의 제곱근으로 나눈 1 을 1 에 더한 것으로 나눈 것과 동일한, 컴퓨터 판독가능 저장 매체.
KR1020127000285A 2009-06-05 2010-06-04 미디어 코딩을 위한 4×4 변환 KR101315562B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US18465609P 2009-06-05 2009-06-05
US61/184,656 2009-06-05
US21988709P 2009-06-24 2009-06-24
US61/219,887 2009-06-24
US12/788,666 2010-05-27
US12/788,666 US8762441B2 (en) 2009-06-05 2010-05-27 4X4 transform for media coding
PCT/US2010/037518 WO2010141903A2 (en) 2009-06-05 2010-06-04 4x4 transform for media coding

Publications (2)

Publication Number Publication Date
KR20120026603A KR20120026603A (ko) 2012-03-19
KR101315562B1 true KR101315562B1 (ko) 2013-10-10

Family

ID=43298577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127000285A KR101315562B1 (ko) 2009-06-05 2010-06-04 미디어 코딩을 위한 4×4 변환

Country Status (7)

Country Link
US (1) US8762441B2 (ko)
EP (1) EP2438536A2 (ko)
JP (1) JP5497164B2 (ko)
KR (1) KR101315562B1 (ko)
CN (1) CN102713895B (ko)
TW (1) TW201108743A (ko)
WO (1) WO2010141903A2 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
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
US8451904B2 (en) * 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US9407917B2 (en) 2011-06-30 2016-08-02 Samsung Electronics Co., Ltd. Video encoding method with bit depth adjustment for fixed-point conversion and apparatus therefor, and video decoding method and apparatus therefor
US9094689B2 (en) 2011-07-01 2015-07-28 Google Technology Holdings LLC Motion vector prediction design simplification
CN108174212B (zh) * 2011-10-17 2021-11-02 株式会社Kt 用解码装置对待解码的具有当前块的视频信号解码的方法
CN104378637B (zh) * 2011-10-18 2017-11-21 株式会社Kt 视频信号解码方法
BR112014010539A2 (pt) * 2011-11-04 2017-04-18 Motorola Mobility Llc escalonamento de vetor de movimento para rede de vetor de movimento não uniforme
EA201492099A1 (ru) * 2012-05-14 2015-04-30 Лука Россато Разложение остаточных данных при кодировании, декодировании и реконструкции сигнала в многоуровневой иерархии
US9172970B1 (en) 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9344742B2 (en) * 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
CN107079157B (zh) * 2014-09-12 2020-12-22 Vid拓展公司 用于视频编码的分量间去相关
US11647214B2 (en) * 2018-03-30 2023-05-09 Qualcomm Incorporated Multiple transforms adjustment stages for video coding
WO2022174762A1 (en) * 2021-02-20 2022-08-25 Beijing Bytedance Network Technology Co., Ltd. Transforms on non-dyadic blocks
US20230336752A1 (en) * 2022-04-15 2023-10-19 Synaptics Incorporated Image compression with inter-channel encoding of codewords

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010043396A (ko) * 1998-05-07 2001-05-25 윌리암 제이. 버크 압축된 이미지들을 스케일링하는 방법 및 장치
KR20030072338A (ko) * 2000-10-23 2003-09-13 인터내셔널 비지네스 머신즈 코포레이션 스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 변환
KR20060112255A (ko) * 2001-09-18 2006-10-31 마이크로소프트 코포레이션 이미지 및 비디오 코딩을 위한 향상된 블록 변환 및 양자화
WO2009042943A2 (en) * 2007-09-26 2009-04-02 Qualcomm Incorporated Efficient transformation techniques for video coding

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253055A (en) * 1992-07-02 1993-10-12 At&T Bell Laboratories Efficient frequency scalable video encoding with coefficient selection
US5408425A (en) * 1993-05-25 1995-04-18 The Aerospace Corporation Split-radix discrete cosine transform
US5508949A (en) * 1993-12-29 1996-04-16 Hewlett-Packard Company Fast subband filtering in digital signal coding
US5649077A (en) * 1994-03-30 1997-07-15 Institute Of Microelectronics, National University Of Singapore Modularized architecture for rendering scaled discrete cosine transform coefficients and inverse thereof for rapid implementation
JP3115199B2 (ja) * 1994-12-16 2000-12-04 松下電器産業株式会社 画像圧縮符号化装置
US5737450A (en) * 1995-05-15 1998-04-07 Polaroid Corporation Method and apparatus for fast two-dimensional cosine transform filtering
JP2778622B2 (ja) * 1995-06-06 1998-07-23 日本電気株式会社 2次元dct回路
JPH09212484A (ja) 1996-01-30 1997-08-15 Texas Instr Inc <Ti> 離散コサイン変換方法
EP1018082A1 (en) 1997-08-25 2000-07-12 QUALCOMM Incorporated Variable block size 2-dimensional inverse discrete cosine transform engine
CN1216337C (zh) * 1997-11-17 2005-08-24 索尼电子有限公司 用于采用离散变换进行数字视频数据压缩的方法和系统
JP2001346213A (ja) * 2000-06-02 2001-12-14 Nec Corp 離散コサイン変換装置及びその離散コサイン変換方法
AU2001234971A1 (en) * 2000-02-09 2001-08-20 T. C. Cheng Fast method for the forward and inverse mdct in audio coding
US7929610B2 (en) * 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
US7366236B1 (en) * 2001-06-04 2008-04-29 Cisco Sytems Canada Co. Source adaptive system and method for 2D iDCT
US7185037B2 (en) * 2001-08-23 2007-02-27 Texas Instruments Incorporated Video block transform
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
KR100481067B1 (ko) * 2001-09-28 2005-04-07 브이케이 주식회사 분산 산술 처리장치 및 그를 이용한 이차원 이산여현변환 처리장치
FR2834362A1 (fr) 2001-12-28 2003-07-04 Koninkl Philips Electronics Nv Dispositif de transformation inverse adaptatif
JP2003223433A (ja) 2002-01-31 2003-08-08 Matsushita Electric Ind Co Ltd 直交変換方法、直交変換装置、符号化方法、符号化装置、逆直交変換方法、逆直交変換装置、復号化方法、及び、復号化装置
US7007055B2 (en) * 2002-03-12 2006-02-28 Intel Corporation Method of performing NxM Discrete Cosine Transform
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US7437394B2 (en) * 2002-06-19 2008-10-14 The Aerospace Corporation Merge and split discrete cosine block transform method
US20040136602A1 (en) * 2003-01-10 2004-07-15 Nithin Nagaraj Method and apparatus for performing non-dyadic wavelet transforms
US7412100B2 (en) * 2003-09-04 2008-08-12 Qualcomm Incorporated Apparatus and method for sub-sampling images in a transform domain
US7379500B2 (en) * 2003-09-30 2008-05-27 Microsoft Corporation Low-complexity 2-power transform for image/video compression
TWI241074B (en) 2003-11-05 2005-10-01 Bing-Fei Wu Image compression system using two-dimensional discrete wavelet transformation
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
US8861600B2 (en) * 2004-06-18 2014-10-14 Broadcom Corporation Method and system for dynamically configurable DCT/IDCT module in a wireless handset
US7587093B2 (en) 2004-07-07 2009-09-08 Mediatek Inc. Method and apparatus for implementing DCT/IDCT based video/image processing
US7471850B2 (en) 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
TW200643848A (en) 2005-06-01 2006-12-16 Wintek Corp Method and apparatus for four-color data conversion
JP4885487B2 (ja) * 2005-06-28 2012-02-29 矢崎総業株式会社 配線基板における接続端子固定構造
US20070025441A1 (en) * 2005-07-28 2007-02-01 Nokia Corporation Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
TWI280804B (en) 2005-09-26 2007-05-01 Yuh-Jue Chuang Method for splitting 8x8 DCT into four 4x4 modified DCTS used in AVC/H. 264
US7725516B2 (en) * 2005-10-05 2010-05-25 Qualcomm Incorporated Fast DCT algorithm for DSP with VLIW architecture
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
TWI311856B (en) 2006-01-04 2009-07-01 Quanta Comp Inc Synthesis subband filtering method and apparatus
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
EP1850597A1 (en) 2006-04-24 2007-10-31 Universität Dortmund Method and circuit for performing a cordic based Loeffler discrete cosine transformation (DCT), particularly for signal processing
US8571340B2 (en) * 2006-06-26 2013-10-29 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms
US8582663B2 (en) * 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
JP5427785B2 (ja) * 2007-09-28 2014-02-26 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ圧縮技法及びビデオ伝達技法
US20090141808A1 (en) * 2007-11-30 2009-06-04 Yiufai Wong System and methods for improved video decoding
US8631060B2 (en) * 2007-12-13 2014-01-14 Qualcomm Incorporated Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
KR20090078494A (ko) * 2008-01-15 2009-07-20 삼성전자주식회사 영상 데이터의 디블록킹 필터링 방법 및 디블록킹 필터
US20100172409A1 (en) * 2009-01-06 2010-07-08 Qualcom Incorporated Low-complexity transforms for data compression and decompression
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
US8451904B2 (en) * 2009-06-24 2013-05-28 Qualcomm Incorporated 8-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
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010043396A (ko) * 1998-05-07 2001-05-25 윌리암 제이. 버크 압축된 이미지들을 스케일링하는 방법 및 장치
KR20030072338A (ko) * 2000-10-23 2003-09-13 인터내셔널 비지네스 머신즈 코포레이션 스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 변환
KR20060112255A (ko) * 2001-09-18 2006-10-31 마이크로소프트 코포레이션 이미지 및 비디오 코딩을 위한 향상된 블록 변환 및 양자화
WO2009042943A2 (en) * 2007-09-26 2009-04-02 Qualcomm Incorporated Efficient transformation techniques for video coding

Also Published As

Publication number Publication date
US8762441B2 (en) 2014-06-24
JP2012529129A (ja) 2012-11-15
CN102713895A (zh) 2012-10-03
US20100312811A1 (en) 2010-12-09
WO2010141903A2 (en) 2010-12-09
WO2010141903A3 (en) 2012-05-18
EP2438536A2 (en) 2012-04-11
KR20120026603A (ko) 2012-03-19
TW201108743A (en) 2011-03-01
JP5497164B2 (ja) 2014-05-21
CN102713895B (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
KR101315562B1 (ko) 미디어 코딩을 위한 4×4 변환
KR101315600B1 (ko) 미디어 코딩을 위한 4×4 변환
US9118898B2 (en) 8-point transform for media data coding
US8451904B2 (en) 8-point transform for media data coding
US9110849B2 (en) Computing even-sized discrete cosine transforms
US9081733B2 (en) 16-point transform for media data coding
US20100172409A1 (en) Low-complexity transforms for data compression and decompression
US9075757B2 (en) 16-point transform for media data coding

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 7