KR101315629B1 - 미디어 데이터 코딩을 위한 16-포인트 변환 - Google Patents
미디어 데이터 코딩을 위한 16-포인트 변환 Download PDFInfo
- Publication number
- KR101315629B1 KR101315629B1 KR1020127001865A KR20127001865A KR101315629B1 KR 101315629 B1 KR101315629 B1 KR 101315629B1 KR 1020127001865 A KR1020127001865 A KR 1020127001865A KR 20127001865 A KR20127001865 A KR 20127001865A KR 101315629 B1 KR101315629 B1 KR 101315629B1
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- point
- point idct
- idct unit
- dct
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods 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)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Discrete Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Databases & Information 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)
- Image Processing (AREA)
Abstract
일반적으로, 다수의 상이한 사이즈들의 IDCT 들을 적용하는 것이 가능한 16-포인트 역 이산 코사인 변환 (IDCT) 을 실행하기 위한 기술을 설명한다. 예를 들면, 타입 Ⅱ 의 16-포인트 역 이산 코사인 변환 (IDCT-Ⅱ) 을 포함하는 장치는 이러한 기술들을 구현할 수 있다. 16-포인트 IDCT-Ⅱ 유닛은 상이한 사이즈들의 이러한 IDCT-Ⅱ 를 수행하여, 데이터를 공간 영역으로부터 주파수 영역으로 변환한다. 16-포인트 IDCT-Ⅱ 유닛은 사이즈 8의 IDCT-Ⅱ 중 하나를 수행하는 8-포인트 IDCT-Ⅱ 유닛 및 사이즈 4의 IDCT-Ⅱ 들 중 하나를 수행하는 제 1 의 4-포인트 IDCT 유닛을 포함한다. 8-포인트 IDCT-Ⅱ 유닛이 그 제 1 의 4-포인트 DCT-Ⅱ 유닛을 포함한다. 또한, 16-포인트 IDCT-Ⅱ 유닛은 제 2 의 4-포인트 IDCT-Ⅱ 유닛 및 제 3 의 4-포인트 IDCT-Ⅱ 유닛을 포함하는 역 8-포인트 DCT-Ⅳ 유닛을 포함한다. 제 2 의 4-포인트 IDCT-Ⅱ 유닛 및 제 3 의 4-포인트 IDCT-Ⅱ 유닛들 각각은 사이즈 4의 IDCT-Ⅱ 들 중 하나를 수행한다.
Description
본 출원은 2009년 6월 24일에 출원된 미국 가출원 번호 제 61/219,885 호에 대해 우선권의 이익을 주장하며, 그 전체 내용을 본원에 포함한다.
본 특허 출원은, 본 출원과 동시에 출원되고 본 양수인에게 양도되어 본원에 명시적으로 포함되며, 대리인 관리 번호 제 092241U2 호로서, 동시 계류중인 미국 특허 출원 : 16-POINT TRANSFORM FOR MEDIA DATA CODING 과 관련된다.
본 개시물은 데이터 압축에 관한 것으로, 더 자세하게는, 변환을 수반하는 데이터 압축에 관한 것이다.
데이터 저장 공간, 송신 대역폭, 또는 이들 양자의 소비를 감축하기 위하여 데이터 압축이 여러 애플리케이션들에서 널리 이용되고 있다. 데이터 압축의 예시적인 애플리케이션으로는, 디지털 비디오, 이미지, 스피치, 및 오디오 코딩과 같은 가시 또는 가청 미디어 데이터 코딩을 포함한다. 예컨대, 디지털 비디오 코딩은, 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템, 무선 통신 디바이스들, 개인 휴대 정보 단말기 (PDA), 랩탑 또는 데스크탑 컴퓨터, 태블릿 컴퓨터, 디지털 카메라, 디지털 기록 디바이스, 비디오 게이밍 디바이스, 셀룰러 또는 위성 무선 전화 등을 포함하는, 광범위한 디바이스들에 사용되고 있다. 디지털 비디오 디바이스는 디지털 비디오를 보다 효율적으로 송수신하는, MPEG-2, MPEG-4 또는 H.264/MPEG-4 고도 비디오 코딩 (AVC) 과 같은, 비디오 압축 기술을 구현한다.
비디오 압축 기술들은 공간 예측, 모션 추정 및 모션 보상을 수행함으로써, 비디오 데이터에서 고유한 리던던시를 감축하거나 제거할 수도 있다. 특히, 인트라-코딩 (intra-coding) 은 공간 예측에 의존하여 주어진 비디오 프레임내에서 비디오의 공간 리던던시를 감소시키거나 제거한다. 인터-코딩 (inter-coding) 은 시간 예측에 의존하여 인접 프레임들 내에서 비디오의 시간 리던던시를 감소시키거나 제거한다. 인터-코딩의 경우, 비디오 인코더는 모션 추정을 수행하여, 2개 이상의 인접 프레임들 사이에 일치하는 비디오 블록들의 움직임을 추적한다. 모션 추정은 모션 벡터들을 생성하며, 이들은 하나 이상의 기준 프레임들에서 대응 비디오 블록들에 대한 비디오 블록들의 변위를 나타낸다. 모션 보상은 이 모션 벡터를 이용하여, 기준 프레임으로부터 예측 비디오 블록을 생성한다. 모션 보상 후, 원래의 비디오 블록에서 예측 비디오 블록을 감산하여, 잔여 (residual) 비디오 블록을 형성한다.
그 후, 비디오 인코더는, 변환을 적용한 후, 비디오 코딩 프로세스에 의해서 생성되는 잔여 블록의 비트 레이트를 더 감소시키기 위하여, 이어서 양자화와 무손실 통계 코딩 프로세스를 적용한다. 일부의 경우, 그 적용된 변환은 이산 코사인 변환 (DCT) 을 포함한다. 일반적으로, DCT 는, 높이 16 픽셀, 넓이 16 픽셀인 비디오 블록 (종종 "16×16 비디오 블록" 이라 함) 과 같은, 사이즈가 2의 거듭제곱인 비디오 블록들에 적용된다. 그러므로, 이들 DCT들은, 이들 DCT 들이 16×16 비디오 블록들에 적용되어 DCT 계수들의 16-포인트 어레이를 생성한다는 점에서, 16-포인트 DCT 라 지칭할 수도 있다. 그 후, 16-포인트 DCT 를 그 잔여 블록에 적용하여 생성한, DCT 계수들의 16-포인트 어레이는 (일반적으로, "엔트로피 코딩" 프로세스라고 알려져 있는) 양자화와 무손실 통계적 코딩 프로세스를 경험한 후, 비트스트림을 생성한다. 통계적 코딩 프로세스들의 예로는, 컨텍스트-적응 가변 길이 코딩 (CAVLC) 또는 컨텍스트-적응 이진 산술 코딩 (CABAC) 을 포함한다. 비디오 디코더는 그 인코딩된 비트스트림을 수신하여, 무손실 디코딩을 수행함으로써, 블록들 각각에 대해 잔여 정보를 압축해제한다. 이 잔여 정보 및 모션 정보를 이용하여, 비디오 디코더는 그 인코딩된 비디오를 복원한다.
일반적으로, 본 개시물은, 16-포인트 DCT 뿐만 아니라 상이한 사이즈의 다수의 상이한 DCT 들을 수행하는 것이 가능한 16-포인트 이산 코사인 변환 (DCT) 의 구현을 이용하여, 미디어 데이터와 같은 데이터를 코딩하기 위한 기술에 관한 것이다. 일 예로서, 본 개시물의 기술에 따라서 구성되는 16-포인트 DCT 구현은, 사이즈 16 의 DCT 를 수행하며, 사이즈 8 의 DCT 를 수행하는 적어도 하나의 8-포인트 DCT 구현과 사이즈 4 의 DCT 를 수행하는 적어도 하나의 DCT 구현을 포함한다. 또 다른 예에서, 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT 구현은, 사이즈 16 의 선형 DCT 를 수행하며, 사이즈 8 의 선형 DCT 를 수행하는 적어도 하나의 8-포인트 DCT 구현 및 사이즈 4 의 선형 DCT 를 각각 수행하며 서로 동시에 동작할 수도 있는 적어도 2개의 4-포인트 DCT 구현을 포함한다. 또한, 8-포인트 DCT 구현은, 적어도 2개의 4-포인트 DCT 구현에 의해 수행되는 4-포인트 DCT 와 동시에 동작할 수 있는, 사이즈 4 의 다른 선형 DCT 를 수행하는 또 다른 4-포인트 DCT 구현을 포함할 수도 있다. 그 결과, 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT 구현은, 가변 사이즈의 다수의 상이한 DCT 구현들을 통합함으로써, 별개의 16-포인트, 8-포인트 및 4-포인트 DCT 구현들 각각에 의해 일반적으로 소비되는 칩 면적에 비해 상당히 적은 칩 면적을 소비할 수도 있다.
이들 선형 DCT 들은 먼저, 수평축을 따르는 것과 같이, 그 블록을 따라 한 방향으로 이들 선형 DCT들 중 하나를 적용한 후, 수직축을 따르는 것과 같이, 그 블록을 따라서 다른 방향으로 적용함으로써 임의의 주어진 사이즈의 비디오 블록에 적용될 수도 있다. 이러한 방식으로 이들 선형 DCT 들을 적용함으로써, 가변 사이즈의 DCT 를 적용할 수 있다. 예컨대, 한 방향으로 16-포인트 DCT 를 적용한 후, 다른 방향으로 8-포인트 DCT 를 적용함으로써, 하위 비디오 블록의 사이즈에 따라서, 16×8 또는 8-포인트 DCT 를 효과적으로 적용할 수 있다. 이러한 방법으로, 선형 DCT 를 적용하여, 사이즈 16, 16×8, 8×16, 8×8, 8×4, 4×8 또는 전술한 선형 사이즈의 DCT들의 임의의 다른 조합의 DCT를 수행할 수 있다.
일 양태에서, 장치는 공간 영역으로부터 주파수 영역으로 콘텐츠 데이터를 변환하는 상이한 사이즈의 복수의 DCT-Ⅱ 들을 수행하는 타입 Ⅱ 의 16-포인트 이산 코사인 변환 (DCT-Ⅱ) 유닛을 포함한다. 16-포인트 DCT-Ⅱ 유닛은, 사이즈 8 의 복수의 DCT-Ⅱ 중 하나를 수행하는 8-포인트 DCT-Ⅱ 유닛 및 사이즈 4 의 복수의 DCT-Ⅱ 중 하나를 수행하는 제 1 의 4-포인트 DCT-Ⅱ 유닛을 포함한다. 8-포인트 DCT-Ⅱ 유닛은 제 1 의 4-포인트 DCT-Ⅱ 유닛을 포함한다. 또한, 16-포인트 DCT-Ⅱ 유닛은 제 2 의 4-포인트 DCT-Ⅱ 유닛 및 제 3 의 4-포인트 DCT-Ⅱ 유닛을 포함하는 8-포인트 DCT-Ⅳ 유닛을 포함하며, 여기서, 제 2 의 4-포인트 DCT-Ⅱ 유닛 및 제 3 의 4-포인트 DCT-Ⅱ 유닛 각각은 사이즈 4 의 복수의 DCT-Ⅱ 들 중 하나를 수행한다.
또 다른 양태에서, 방법은, 코딩 디바이스로 콘텐츠 데이터를 수신하는 단계; 및 그 코딩 디바이스 내에 포함된 16-포인트 DCT-Ⅱ 유닛을 이용하여 공간 영역으로부터 주파수 영역으로 그 수신된 콘텐츠 데이터를 변환하는 복수의 타입 Ⅱ 의 이산 코사인 변환 (DCT-Ⅱ) 들 중 하나 이상을 수행하는 단계를 포함한다. 이 16-포인트 DCT-Ⅱ 유닛은, 사이즈 8 의 복수의 DCT-Ⅱ 들 중 하나를 수행하는 적어도 하나의 8-포인트 DCT-Ⅱ 유닛, 사이즈 4 의 복수의 스케일링된 DCT-Ⅱ 들 중 하나를 수행하는 제 1 의 4-포인트 DCT-Ⅱ 유닛, 및 제 2 의 4-포인트 DCT-Ⅱ 유닛과 제 3 의 4-포인트 DCT-Ⅱ 유닛을 포함하는 8-포인트 DCT-Ⅳ 유닛을 포함하며, 여기서, 제 2 의 4-포인트 DCT-Ⅱ 유닛 및 제 3 의 4-포인트 DCT-Ⅱ 유닛 각각은 사이즈 4 의 복수의 스케일링된 DCT-Ⅱ 들 중 하나를 수행한다.
또 다른 양태에서, 비일시적 컴퓨터-판독가능 저장 매체는, 실행되는 경우, 프로세서로 하여금, 코딩 디바이스를 이용하여 콘텐츠 데이터를 수신하게 하고 그 코딩 디바이스 내에 포함된 16-포인트 DCT-Ⅱ 유닛을 이용하여 그 수신된 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환하는 복수의 타입-Ⅱ 의 이산 코사인 변환 (DCT-Ⅱ) 들 중 하나 이상을 수행하게 하는 명령들을 포함한다. 16-포인트 DCT-Ⅱ 유닛은, 사이즈 8 의 복수의 DCT-Ⅱ 들 중 하나를 수행하는 적어도 하나의 8-포인트 DCT-Ⅱ 유닛, 사이즈 4 의 복수의 스케일링된 DCT-Ⅱ 들 중 하나를 수행하는 제 1 의 4-포인트 DCT-Ⅱ 유닛, 및 제 2 의 4-포인트 DCT-Ⅱ 유닛과 제 3 의 4-포인트 DCT-Ⅱ 유닛을 포함하는 8-포인트 DCT-Ⅳ 유닛을 포함하며, 여기서, 제 2 의 4-포인트 DCT-Ⅱ 유닛 및 제 3 의 4-포인트 DCT-Ⅱ 유닛 각각은 사이즈 4 의 복수의 스케일링된 DCT-Ⅱ 들 중 하나를 수행한다.
또 다른 양태에서, 디바이스는, 콘텐츠 데이터를 수신하는 수단, 및 그 수신된 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환하는 복수의 타입 Ⅱ 의 이산 코사인 변환 (DCT-Ⅱ) 들 중 하나 이상을 수행하는 수단을 포함한다. 복수의 DCT-Ⅱ 들 중 하나 이상을 수행하는 수단은, 사이즈 8 의 복수의 DCT-Ⅱ 들 중 하나를 수행하는 수단, 사이즈 4 의 복수의 스케일링된 DCT-Ⅱ 중 제 1의 스케일링된 DCT-Ⅱ를 수행하는 제 1 수단, 사이즈 4 의 복수의 DCT-Ⅱ 중 제 2 의 DCT-Ⅱ 를 수행하는 제 2 수단, 및 사이즈 4 의 복수의 스케일링된 DCT-Ⅱ 들 중 제 3 의 스케일링된 DCT-Ⅱ 를 수행하는 제 3 수단을 포함하고, 사이즈 8 의 복수의 DCT-Ⅱ 들 중 하나를 수행하는 수단은 사이즈 4 의 복수의 스케일링된 DCT-Ⅱ 들 중 하나를 수행하는 제 1 수단을 포함한다.
또 다른 양태에서, 장치는, 콘텐츠 데이터를 주파수 영역으로부터 공간 영역으로 변환하는 상이한 사이즈의 복수의 IDCT 들을 수행하는 16-포인트 역 이산 코사인 변환 (IDCT) 유닛을 포함한다. 16-포인트 IDCT 유닛은 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 8-포인트 IDCT 유닛, 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하는 4-포인트 IDCT 유닛, 및 사이즈 4 의 복수의 IDCT 들 중 하나를 각각 수행하는 제 2 의 4-포인트 IDCT 유닛과 제 3 의 4-포인트 IDCT 유닛을 포함하는 역 8-포인트 DCT-Ⅳ 유닛을 포함하고, 여기서, 8-포인트 IDCT 유닛은 4-포인트 IDCT 유닛을 포함한다.
또 다른 양태에서, 방법은, 코딩 디바이스로 콘텐츠 데이터를 수신하는 단계, 및 그 코딩 디바이스 내에 포함된 16-포인트 IDCT 유닛을 이용하여 수신된 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환하는 복수의 역 이산 코사인 변환 (IDCT) 들 중 하나 이상을 수행하는 단계를 포함한다. 16-포인트 IDCT 유닛은 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 적어도 하나의 8-포인트 IDCT 유닛, 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하는 제 1 의 4-포인트 IDCT 유닛, 및 사이즈 4 의 복수의 IDCT 들 중 하나를 각각 수행하는 제 2 의 4-포인트 IDCT 유닛과 제 3 의 4-포인트 IDCT 유닛을 포함하는 역 8-포인트 DCT-Ⅳ 유닛을 포함하고, 여기서, 적어도 하나의 8-포인트 IDCT 유닛은 제 1 의 4-포인트 IDCT 유닛을 포함한다.
또 다른 양태에서, 비일시적 컴퓨터-판독가능 저장 매체는, 실행되는 경우, 프로세서로 하여금, 코딩 디바이스를 이용하여 콘텐츠 데이터를 수신하게 하고 그 코딩 디바이스내에 포함된 16-포인트 IDCT 유닛을 이용하여 수신된 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환하는 복수의 역 이산 코사인 변환 (IDCT) 들 중 하나 이상을 수행하게 하는 명령을 포함한다. 16-포인트 IDCT 유닛은 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 적어도 하나의 8-포인트 IDCT 유닛, 사이즈 4 의 복수의 스케일링된 IDCT 들 중 하나를 수행하는 제 1 의 4-포인트 IDCT 유닛, 및 사이즈 4 의 복수의 IDCT 들 중 하나를 각각 수행하는 제 2 의 4-포인트 IDCT 유닛과 제 3 의 4-포인트 IDCT 유닛을 포함하는 역 8-포인트 DCT-Ⅳ 유닛을 포함하고, 여기서, 적어도 하나의 8-포인트 IDCT 유닛은 제 1 의 4-포인트 IDCT 유닛을 포함한다.
또 다른 양태에서, 디바이스는, 콘텐츠 데이터를 수신하는 수단, 및 수신된 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환하는 복수의 역 이산 코사인 변환들 중 하나 이상을 수행하는 수단을 포함한다. 복수의 IDCT 중 하나 이상을 수행하는 수단은, 사이즈 8 의 복수의 IDCT-Ⅱ 중 하나를 수행하는 수단, 사이즈 4 의 복수의 스케일링된 IDCT-Ⅱ 중 제 1 의 스케일링된 IDCT-Ⅱ 를 수행하는 제 1 수단, 사이즈 4 의 복수의 IDCT-Ⅱ 중 제 2 의 IDCT-Ⅱ 를 수행하는 제 2 수단, 및 사이즈 4 의 복수의 스케일링된 IDCT-Ⅱ 들 중 제 3의 스케일링된 IDCT-Ⅱ 를 수행하는 제 3 수단을 포함하고, 사이즈 8 의 복수의 IDCT-Ⅱ 들 중 하나를 수행하는 수단은 사이즈 4 의 복수의 스케일링된 IDCT-Ⅱ 중 하나를 수행하는 제 1 수단을 포함한다.
이하, 첨부도면과 상세한 설명에, 본 기술들의 하나 이상의 양태들의 세부사항들을 개시한다. 본 개시물에서 설명하는 기술의 다른 특징들, 목적들, 및 이점들은, 상세한 설명 및 도면으로부터, 그리고 특허청구범위로부터 명백히 알 수 있다.
도 1 은 본 개시물의 기술을 구현할 수 있는 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 2 는 도 1 의 비디오 인코더를 보다 상세하게 도시하는 블록도이다.
도 3 은 도 1 의 비디오 디코더를 보다 상세하게 도시하는 블록도이다.
도 4a 내지 도4d 는 도 2 의 16-포인트 DCT-Ⅱ 유닛의 여러 가지 양태들을 보다 상세하게 도시하는 다이어그램이다.
도 5 는 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT 구현을 적용할 때에 코딩 디바이스의 예시적인 동작을 도시하는 플로우 차트이다.
도 6 은 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT-Ⅲ 구현을 적용할 때에 코딩 디바이스의 예시적인 동작을 도시하는 플로우 차트이다.
도 1 은 본 개시물의 기술을 구현할 수 있는 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 2 는 도 1 의 비디오 인코더를 보다 상세하게 도시하는 블록도이다.
도 3 은 도 1 의 비디오 디코더를 보다 상세하게 도시하는 블록도이다.
도 4a 내지 도4d 는 도 2 의 16-포인트 DCT-Ⅱ 유닛의 여러 가지 양태들을 보다 상세하게 도시하는 다이어그램이다.
도 5 는 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT 구현을 적용할 때에 코딩 디바이스의 예시적인 동작을 도시하는 플로우 차트이다.
도 6 은 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT-Ⅲ 구현을 적용할 때에 코딩 디바이스의 예시적인 동작을 도시하는 플로우 차트이다.
일반적으로, 본 개시물은 상이한 사이즈의 다수의 상이한 DCT 들을 수행하는 것이 가능한 다수의 상이한 DCT 구현을 포함하는 16-포인트 이산 코산인 변환 (DCT) 들을 이용하여, 데이터를 코딩하는 기술들에 관한 것이다. 본 기술들을 적용하여, 디지털 비디오 데이터, 이미지 데이터, 스피치 데이터 및/또는 오디오 데이터와 같은, 가시 미디어 데이터 또는 가청 미디어 데이터를 포함한, 각종 데이터를 압축함으로써, 그런 데이터를 표현하는 전기 신호들을 그 전기 신호들의 보다 효율적인 프로세싱, 송신 또는 기록보관을 위해 압축된 신호로 변환할 수 있다. 그러므로, 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT 구현은 다수 사이즈의 DCT를 수행하는 것이 가능하다. 다수의 사이즈의 DCT를 수행함으로써, 16-포인트 DCT 구현은 유사한 사이즈의 DCT를 수행하는 별도의 DCT 구현을 잠재적으로 제거한다. 따라서, 상술한 기술들은, 본 기술들에 따라서 구성되는 16-포인트 DCT 구현이 8 및 4 와 같은 상이한 사이즈의 DCT 구현을 네스팅(nest)하거나 그렇치 않으면 내장하기 때문에, 별개의 16-포인트, 8-포인트 및 4-포인트 DCT 구현의 총 사이즈에 비해 16-포인트 구현의 사이즈를 실질적으로 증대시키지 않고, 소위 "보드 공간"의 소비 감소를 증진할 수 있다. 일반적으로, 적은 보드 공간을 소모하는 것은 전원 소비의 감소로 전환되며, 그 결과, 본 개시물의 기술은 더욱 에너지 효율적인 DCT 구현을 촉진할 수 있다.
위에 나타낸 사이즈, 즉 16, 8 및 4 는, 이산 데이터 단위들로 표현되어 있다. 예시를 위해, 종종 비디오 블록들에 관하여, 특히 비디오 압축에 대해 비디오 데이터를 설명한다. 비디오 블록은 일반적으로 어떠한 사이즈의 비디오 프레임 부분을 지칭하며, 여기서 비디오 프레임은 일련의 픽쳐들 또는 이미지들에서 하나의 픽쳐 또는 이미지를 말한다. 각 비디오 블록은 일반적으로 예컨대, 적색, 녹색 및 청색과 같은 컬러 성분 (소위, "색도(chromaticity)" 또는 "크로마(chroma)" 성분) 또는 휘도 성분 (소위, "루마(luma)" 성분) 중 어느 하나를 나타내는 복수의 이산 픽셀 데이터를 포함한다. 픽셀 데이터의 각 세트는 그 비디오 블록의 하나의 픽셀을 포함하고, 비디오 블록에 관한 이산 데이터 단위로 간주할 수 있다. 따라서, 예를 들면, 8×8 비디오 블록은 각 행에서 8개의 이산 세트의 픽셀 데이터를 가진 8 행의 픽셀 데이터를 포함한다. 컬러 또는 휘도 값을 특정하기 위해서, 각 픽셀에 n-비트 값을 할당할 수 있다.
통상적으로, DCT들은 오디오, 음성, 이미지 또는 비디오 데이터 어느 것이든지, DCT 가 프로세싱하는 것이 가능한 데이터의 블록의 사이즈의 관점에서 기술된다. 예컨대, 만약 DCT가 16 어레이의 데이터를 처리할 수 있으면, 그 DCT를 선형 16-포인트 DCT 로 지칭할 수 있다. 상이한 사이즈들의 선형 DCT 를 상이한 사이즈의 비디오 블록들에 적용하여, 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 또는 다른 어떠한 사이즈들의 조합도 효과적으로 수행할 수 있다. 또한, DCT는 특정의 타입으로 표시할 수도 있다. 상이한 8개의 DCT 타입들 중에서, 가장 일반적으로 채용되는 DCT 타입은 타입 Ⅱ 의 DCT 이며, 이를 "DCT-Ⅱ"라 할 수 있다. 종종, 일반적으로 DCT 라 지칭할 때에, 그런 참조부호를 타입 Ⅱ 의 DCT 또는 DCT-Ⅱ 라 한다. DCT-Ⅱ 의 역 (inverse) 은, DCT 를 DCT-Ⅱ 라고 지칭하는 일반적인 숙지에 따라서, 유사하게 "DCT-Ⅲ"라 표기할 수도 있는 타입 Ⅲ 의 DCT 라 하거나, "IDCT"로 표기할 수 있으며, 여기서 "IDCT" 중 "I" 는 역 (Inverse) 을 나타낸다. 아래에서 DCT 에 대한 언급은 이러한 표기에 따르며, 이때, 일반적인 DCT 에 대한 언급을, 달리 규정하지 않는 한, DCT-Ⅱ 라 한다. 그러나, 아래에서는, 혼동을 피하기 위하여, DCT-Ⅱ 를 포함하여, DCT 를, 대응하는 타입 (Ⅱ, Ⅲ 등) 을 표시하여 지칭한다.
본 개시물에서 설명하는 기술들은 데이터의 압축 및/또는 압축해제를 용이하게 하기 위하여 16-포인트 DCT-Ⅱ 및/또는 16-포인트 DCT-Ⅲ의 하나 이상의 구현을 각각 채용하는 인코더 및/또는 디코더로 구현할 수 있다. 또, 이들 16-포인트 DCT-Ⅱ 구현을 적용하여 이루어지는 압축 및 압축해제는, 그 데이터를 나타내는 전기 신호들의 물리적 변환을 가능하게 함으로써, 물리적 컴퓨팅 하드웨어, 물리적 송신 매체 (예컨대, 구리, 광섬유, 무선, 또는 다른 매체), 및/또는 저장 하드웨어 (예컨대, 자기 또는 광학 디스크 또는 테이프, 또는 다른 각종 고체 상태 매체 (solid state media) 를 이용하여, 보다 효율적으로 그 신호를 프로세싱, 송신, 및/또는 저장할 수 있도록 한다. 이 구현은 오로지 하드웨어로만 구성하거나, 하드웨어와 소프트웨어의 조합으로 구성할 수도 있다.
16-포인트 DCT-Ⅱ 의 구현은 스케일링될 수 있으며, 여기서 용어 "스케일링된다" 는 스케일링된 DCT 계수들을 생성하는 DCT 구현을 말한다. 스케일링된 DCT 계수는, 대응하는 스케일 인자로 곱할 경우에, 소위 "풀 (full)" DCT 계수를 생성한다. 스케일링된 DCT 구현은 그 구현에서 어떤 인자들을 제거한 DCT 구현을 나타낸다. 일반적으로, 이들 인자들은 또 다른 주어진 코딩 디바이스 또는 시스템의 구성요소, 모듈, 또는 유닛에 포함된다. 예컨대, 비디오 인코더는 본 개시물의 기술들에 따라서 구성되는 스케일링된 16-포인트 DCT 구현을 포함할 수도 있다. 일반적으로, 비디오 인코더는 그 제거된 인자들을 양자화 유닛에 포함시키고, 양자화 유닛은 스케일링된 16-포인트 DCT 구현에 의해 출력된 스케일링된 DCT 계수를 양자화한다. 이러한 인자들을 적용하는 풀 DCT 구현은 일반적으로 양자화 유닛과 같은 인자들을 적용하는 또 다른 모듈과 결합하는 스케일링된 DCT 구현보다 보다 복잡하지만, 이 양자화 유닛은 양자화 유닛의 복잡도를 실질적으로 증가시키지 않고 이들 인자들을 적용할 수 있다. 따라서, 어떤 상황에서는, 스케일링된 DCT 구현은, 동일한 코딩 이득을 제공하면서, 감소된 구현 복잡도를 제공할 수도 있다. 본 개시물에서는, 스케일링된 DCT 구현에 대해서 설명하지만, 스케일링되지 않은 또는 소위 "풀" DCT 구현에 이 기술들을 적용할 수 있다.
예시를 위하여, 장치는 본 개시물의 기술에 따라서 구성되는 16-포인트 DCT 구현을 16-포인트 DCT 변환 모듈의 형태로 포함할 수 있다. 이 16-포인트 DCT 변환 모듈은 상이한 다수의 사이즈의 스케일링된 DCT 변환을 수행함으로써, 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환할 수 있다. 이 스케일링된 16-포인트 DCT 모듈은 사이즈 8 의 복수의 스케일링된 DCT 변환 중 제 1 변환을 수행하는 적어도 하나의 스케일링된 8-포인트 DCT 모듈을 포함할 수 있다. 또한, 이 16-포인트 DCT 모듈은 적어도 사이즈 4 의 복수의 스케일링된 DCT 변환 중 제 2 변환을 수행하는 적어도 하나의 스케일링된 4 변환 모듈을 포함할 수 있다.
이에 대하여, 본 개시물의 기술에 따라 구성되는 16-포인트 DCT 구현은, 적어도 일부 양태들에서, 다수 사이즈의 DCT 들을 수행함으로써, 다수 사이즈의 DCT 를 수행하는 별개의 DCT 구현들을 잠재적으로 제거하는 것이 가능하다. 그 결과, 본 개시물의 기술들은, 그 기술들에 따라서 구성되는 16-포인트 DCT 구현이 8 및 4 와 같은 상이한 사이즈의 DCT 구현을 포함하거나 네스팅하거나 그렇지 않으면 내장하기 때문에, 실질적으로 16-포인트 구현의 사이즈를 증가시키지 않고, 소위 "보드 공간"의 소비 감소를 증진시킨다. 별도의 16-포인트, 8-포인트 및 4-포인트 DCT 구현들의 총 사이즈와 비교할 때, 본 개시물의 16-포인트 DCT-Ⅱ 구현은 소모되는 물리적 보드 공간 면에서 실질적으로 더 작을 수 있으며, 여기서 용어 보드 공간은 상이한 구성요소들 사이의 상호접속을 제공하는 실리콘 또는 다른 물리적 보드 상에서 소모되는 공간의 양을 말한다. 일반적으로, 적은 보드 공간을 소모하는 것은 파워 소모의 감소로 전환되며, 그 결과, 본 개시물의 기술은 더욱 에너지 효율적인 DCT 구현을 증진시킬 수 있다.
도 1 은 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이다. 도 1 에 나타내는 바와 같이, 시스템 (10) 은 인코딩된 비디오를 통신 채널 (16) 을 경유하여 수신 하드웨어 디바이스 (14) 로 송신하는 소스 하드웨어 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20) 및 송신기 (22) 를 포함할 수도 있다. 수신지 디바이스 (14) 는 수신기 (24), 비디오 디코더 (26) 및 비디오 디스플레이 디바이스 (28) 를 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (16) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신선, 또는 무선 또는 유선 매체의 임의의 조합과 같은, 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 채널 (16) 은 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 일반적으로, 통신 채널 (16) 은 비디오 데이터를 소스 디바이스 (12) 로부터 수신 디바이스 (14) 로 송신하기 위한, 어떠한 적당한 통신 매체, 또는 상이한 통신 매체들의 집합을 나타낸다.
소스 디바이스 (12) 는 수신지 디바이스 (14) 에 송신하기 위한 비디오를 생성한다. 그러나, 일부의 경우, 디바이스 (12, 14) 는 실질적으로 대칭 방식으로 동작할 수도 있다. 예컨대, 각 디바이스 (12, 14) 는 비디오 인코딩 및 디코딩 구성요소들을 포함할 수도 있다. 따라서, 시스템 (10) 은 예컨대, 비디오 스트리밍, 비디오 브로드캐스팅, 또는 비디오 전화통신 (telephony) 을 위해, 비디오 디바이스들 (12, 14) 사이의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다. 다른 데이터 압축 및 코딩 애플리케이션들의 경우, 디바이스 (12, 14) 는 이미지, 스피치 또는 오디오 데이터와 같은 다른 유형의 데이터, 또는 비디오, 이미지, 스피치 및 오디오 데이터 중 2 이상의 조합을 송수신, 또는 교환하도록 구성할 수도 있을 것이다. 따라서, 다음의 비디오 애플리케이션의 설명은, 예시의 목적으로 제공하는 것으로, 여기서 넓게 설명한 본 개시물의 여러 양태들의 한정이라고 간주해서는 안된다.
비디오 소스 (18) 는 하나 이상의 비디오 카메라, 이전에 캡쳐한 비디오를 포함하는 비디오 아카이브, 또는 비디오 콘텐츠 제공자로부터 공급받은 라이브 비디오와 같은 비디오 캡쳐 디바이스를 포함할 수도 있다. 또 다른 대안으로서, 비디오 소스 (18) 는 컴퓨터 그래픽-기반 데이터를 소스 비디오로서 또는, 라이브 비디오와 컴퓨터-생성 비디오의 조합으로서 생성할 수도 있다. 일부의 경우, 비디오 소스 (18) 가 카메라인 경우, 소스 디바이스 (12) 및 수신 디바이스 (14) 는 소위 카메라 폰 또는 비디오 폰을 형성할 수도 있다. 그러므로, 일부 양태들에서, 소스 디바이스 (12), 수신 디바이스 (14) 또는 양자는 모바일 전화기와 같은 무선 통신 디바이스 핸드셋을 형성할 수도 있다. 각 경우, 그 캡쳐한, 사전 캡쳐한, 또는 컴퓨터-생성된 비디오를, 비디오 소스 디바이스 (12) 로부터 송신기 (22), 채널 (16) 및 수신기 (24) 를 경유하여 비디오 수신 디바이스 (14) 의 비디오 디코더 (26) 로의 송신을 위해, 비디오 인코더 (20) 에 의해 인코딩할 수도 있다. 디스플레이 디바이스 (28) 는, 액정표시 디스플레이 (LCD), 플라즈마 디스플레이 또는 유기 발광 다이오드 (OLED) 디스플레이와 같은, 임의의 각종 디스플레이 디바이스들을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (26) 는 공간, 시간 및/또는 신호대잡음비 (SNR) 스케일러빌리티를 위해 스케일링가능한 비디오 코딩을 지원하도록 구성될 수도 있다. 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (26) 는 FGS (fine granularity SNR scalability) 코딩을 지원하도록 구성할 수 있다. 인코더 (20) 및 디코더 (26) 는 베이스 층 및 하나 이상의 스케일링가능한 인핸스먼트 층들의 인코딩, 송신 및 디코딩을 지원함으로써, 여러 스케일러빌리티의 등급을 지원할 수 있다. 스케일링가능한 비디오 코딩의 경우, 베이스 층은 최소 품질 수준을 가진 비디오 데이터를 운반한다. 하나 이상의 인핸스먼트 층들은 더 높은 공간, 시간 및/또는 SNR 레벨을 지원하기 위하여, 추가적인 비트스트림을 운반한다.
비디오 인코더 (20) 및 비디오 디코더 (26) 는 MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4 어드밴스드 비디오 코딩 (Advanced Video Coding; AVC) 과 같은, 비디오 압축 표준에 따라서 동작할 수 있다. 비록 도 1 에 도시하지 않았지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (26) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 공통 데이터 스트림 또는 별도의 데이터 스트림의 오디오 및 비디오 양자의 인코딩을 처리하는, 적당한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜을 따를 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (26) 각각은, 하나 이상의 마이크로프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGAs), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수도 있다. 그러므로, 비디오 인코더 (20) 및 비디오 디코더 (26) 각각을, 집적회로 (IC) 칩 또는 디바이스로서 적어도 부분적으로 구현할 수 있으며, 하나 이상의 인코더들 또는 디코더들에 포함시킬 수도 있으며, 이들 중 어느 하나를, 각 모바일 디바이스, 가입자 디바이스, 브로드케스트 디바이스, 서버 등에서, 결합된 인코더/디코더 (CODEC) 의 일부로서 통합할 수도 있다. 또한, 소스 디바이스 (12) 및 수신 디바이스 (14) 각각은, 적용가능한 경우, 무선 통신을 지원하기에 충분한 무선 주파수 (RF) 무선 구성요소 및 안테나를 포함하는, 인코딩된 비디오의 송신 및 수신을 위해, 적당한 변조, 복조, 주파수 변환, 필터링, 및 증폭기 구성요소들을 포함할 수도 있다. 그러나, 예시의 용이성을 위해, 그런 구성 요소들을 도 1 에는 도시하지 않는다.
비디오 시퀀스는 일련의 비디오 프레임을 포함한다. 비디오 인코더 (20) 는 그 비디오 데이터를 인코딩하기 위하여, 개별 비디오 프레임들 내의 픽셀 블록들에 작용한다. 비디오 블록들은 고정 또는 가변 사이즈를 가질 수도 있으며, 지정된 코딩 표준에 따라서 사이즈가 상이할 수도 있다. 각 비디오 프레임은 일련의 슬라이스들 (slices) 을 포함한다. 각 슬라이스는 서브-블록들로 배열될 수도 있는 일련의 매크로블록들을 포함할 수도 있다. 일 예로서, ITU-T H.264 표준은, 인터 예측을, 루마 성분의 경우 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4, 그리고 크로마 성분의 경우 대응하는 스케일링된 사이즈들과 같은 여러 블록 사이즈들로 지원할 뿐만 아니라, 인트라 예측을, 루마 성분의 경우 16×6, 8×8, 4×4, 그리고 크로마 성분의 경우 8×8 과 같은 여러 다이애딕 블록 사이즈들로 지원한다.
더 작은 비디오 블록은 더 우수한 해상도를 제공할 수 있으며, 높은 세부사항의 등급을 포함하는 비디오 프레임의 위치결정 (location) 에 사용할 수 있다. 일반적으로, 매크로블록들 및 여러 서브 블록들 또는 파티션들은 모두 비디오 블록인 것으로 간주할 수 있다. 또한, 슬라이스는 매크로블록 및/또는 서브블록 또는 파티션과 같은 일련의 비디오 블록들인 것으로 간주할 수 있다. 일반적으로, 매크로블록은 16×16 픽셀 영역을 정의하는 색도 및 휘도 값들의 세트를 지칭할 수도 있다. 휘도 블록은 16×16 값들의 세트를 포함할 수도 있지만, 8×8 블록, 4×4 블록, 8×4 블록, 4×8 블록 또는 다른 사이즈와 같은 더 작은 비디오 블록들로 더 분할할 수도 있다. 2개의 상이한 색도 블록들은 그 매크로블록에 대한 컬러를 규정할 수도 있으며, 그 16×16 픽셀 영역과 관련되는 컬러 값들의 8×8 서브-샘플링된(sub-sampled) 블록들을 각각 포함할 수도 있다. 매크로블록들은 그 매크로블록들에 적용하는 코딩 모드 및/또는 코딩 기술들을 규정하는 구문(syntax) 정보를 포함할 수도 있다.
매크로블록 또는 다른 비디오 블록들은 슬라이스, 프레임들, 또는 다른 독립적인 유닛들과 같은 디코딩가능한 유닛들로 그룹화될 수도 있다. 각 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 단위일 수 있다. 이와 달리, 프레임들 자체가 디코딩가능한 유닛이거나, 또는 프레임의 다른 일부를 디코딩가능한 유닛으로 정의할 수도 있다. 이 개시물에서, 용어 "코딩되는 유닛"은 전체 프레임, 프레임의 슬라이스, 화상 그룹 (GOP) 과 같은 비디오 프레임의 임의의 독립적으로 디코딩가능한 유닛, 또는 사용되는 코딩 기술에 따라서 정의되는 또 다른 독립적으로 디코딩가능한 유닛을 말한다.
도 1 에서 시스템 (10) 의 비디오 인코더 (20) 및/또는 비디오 디코더 (26) 는 16-포인트 DCT-Ⅱ 및 그의 역 (예를 들어, 16-포인트 DCT-Ⅲ) 의 구현을 포함하도록 각각 구성할 수도 있으며, 여기서 그 16-포인트 DCT-Ⅱ 구현은 본 개시물에서 설명하는 기술에 따라서 구성된다. ITU-T H.264 표준은 인트라 예측을, 루마 성분의 경우의 16×16, 8×8, 4×4 및 크로마 성분의 경우의 8×8 과 같은 여러 블록 사이즈로 지원하지만, 코딩 효율을 향상하기 위하여, 이 표준에 대한 개정이 현재 진행중이다. MPEG와 ITU-T 간의 공동연구인, JCT-VC (Joint Collaborative Team-Video Coding) 에 의해 제안된 하나의 수정 표준은, HEVC (High Efficiency Video Coding) 이라 할 수 있다. 일부의 경우, 본 개시물의 기술에 따라서 구성되는 타입 Ⅱ 의 16-포인트 DCT ("DCT-Ⅱ") 구현은 코딩 효율을 유지하면서, 또한 구현 사이즈를 감소시킴으로써, 더 적은 물리적 보드 공간을 소모하고 파워 효율을 증진할 수 있다. 따라서, HEVC 및 다른 관련 표준들 또는 사양들은 이들 DCT-Ⅱ 및 DCT-Ⅲ 를 고려할 수도 있다.
본 개시물에서 설명하는 기술에 따르면, 16-포인트 DCT-Ⅱ 의 구현은 상이한 사이즈의 복수의 DCT-Ⅱ 들을 제공한다. 비디오 인코더 (20) 는 이 16-포인트 DCT-Ⅱ 구현을 나타내는 16-포인트 DCT-Ⅱ 유닛 (예시의 용이성을 위해, 도 1 에 도시하지 않음) 을 포함할 수도 있다. 이 16-포인트 DCT-Ⅱ 유닛은 복수 또는 다수의 상이한 사이즈의 스케일링된 DCT 변환들을 수행함으로써, 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환한다. 일 예로서, 16-포인트 DCT-Ⅱ 유닛은 사이즈 8 의 스케일링된 DCT 변환들 중 제 1 변환을 수행하는 적어도 하나의 스케일링된 8-포인트 DCT 모듈 및 사이즈 4 의 DCT 변환들 중 적어도 제 2 변환을 수행하는 적어도 하나의 스케일링된 4-포인트 변환 모듈을 포함할 수도 있다.
이 점에서, 본 개시물의 기술에 따라 구성되는 단일 16-포인트 DCT-Ⅱ 구현은, 적어도 일부 양태들에서, 다수 사이즈의 DCT 를 수행함으로써, 유사한 사이즈의 DCT 를 수행하는 별도의 DCT 구현을 잠재적으로 제거할 수 있다. 따라서, 본 개시물의 기술은, 이 기술에 따라서 구성되는 16-포인트 DCT 구현이 8 및 4 와 같은 상이한 사이즈들의 DCT 구현을 포함하거나 네스팅하거나 내장하기 때문에, 16-포인트 구현의 사이즈를 실질적으로 증가시키지 않고, 실리콘 보드 상에서 소모되는 물리적 공간 영역을 지칭하는 소위 "보드 공간"의 소비 감소를 증진할 수 있다. 별도의 16, 8 및 4-포인트 DCT 구현의 총 사이즈와 비교하면, 16-포인트 DCT-Ⅱ 구현은 소모되는 물리적 보드 공간이 실질적으로 더 작을 수도 있다. 일반적으로, 적은 보드 공간을 소모하는 것은 파워 소모의 감소로 전환되며, 그 결과, 본 개시물의 기술은 더욱 에너지 효율적인 DCT 구현을 증진시킬 수 있다.
본 개시물의 기술에 따라서 구성되는 16-포인트 DCT-Ⅱ 의 구현은, 스케일될 수 있으며, 이때 용어 "스케일링된"은 소위 "풀" DCT 계수들이 아닌, 스케일링된 DCT 계수들을 생성하는 DCT 구현을 말한다. 스케일링된 DCT 구현은 그 구현에서 특정 인자들을 제거한 DCT 구현을 나타낸다. 일반적으로, 이들 제거된 인자들은 또 다른 주어진 코딩 디바이스 또는 시스템의 엘리먼트, 모듈, 또는 유닛에 포함된다. 예컨대, 비디오 인코더는 본 개시물의 기술들에 따라서 구성되는 스케일링된 16-포인트 DCT 구현을 포함할 수도 있다. 일반적으로, 비디오 인코더는 그 제거된 인자들을 양자화 유닛에 포함시키고, 양자화 유닛은 스케일링된 16-포인트 DCT 구현에 의해 출력된 스케일링된 DCT 계수를 양자화한다. 이들 인자들을 적용하는 풀 DCT 구현은 양자화 유닛과 같은, 인자들을 적용하는 또 다른 모듈과 결합하는 스케일링된 DCT 구현보다 일반적으로 더 복잡하지만, 일반적으로 이 양자화 유닛은, 이들 인자들을, 그 양자화 유닛의 복잡도를 실질적으로 증가시키지 않고, 적용할 수 있다. 따라서, 어떤 상황에서는, 스케일링된 DCT 구현이, 동일한 코딩 이득을 제공하면서, 감소된 구현 복잡도를 제공할 수도 있다. 본 개시물에서는, 스케일링된 DCT 구현에 대해서 설명하지만, 스케일링되지 않은 또는 소위 "풀" DCT 구현에 이 기술들을 적용할 수도 있다.
도 2 는 도 1 의 비디오 인코더 (20) 를 보다 상세하게 도시하는 블록도이다. 비디오 인코더 (20) 는 적어도 부분적으로 하나 이상의 집적 회로 디바이스들로서 형성될 수도 있으며, 이를 총칭하여 집적회로 디바이스라 할 수 있다. 일부 양태들에서, 비디오 인코더 (20) 는 무선 통신 디바이스 핸드셋 또는 브로드캐스트 서버의 일부분을 형성할 수도 있다. 비디오 인코더 (20) 는 비디오 프레임 내에서 블록의 인트라 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 공간 예측에 의존하여 주어진 비디오 프레임내에서 비디오의 공간 리던던시를 감축하거나 제거한다. 인터-코딩은 시간 예측에 의존하여 비디오 시퀀스의 인접 프레임들 내에서 비디오의 시간 리던던시를 감축하거나 제거한다. 인터-코딩의 경우, 비디오 인코더 (20) 는 모션 추정을 수행하여, 인접 프레임들 사이에 일치하는 비디오 블록들의 움직임을 추적한다.
도 2 에 나타내는 바와 같이, 비디오 인코더 (20) 는 인코딩할 비디오 프레임 내에서의 현재 비디오 블록 (30) 을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 모션 추정 유닛 (32), 메모리 (34), 모션 보상 유닛 (36), 블록 변환 유닛 (38), 양자화 유닛 (40), 역양자화 유닛 (42), 역변환 유닛 (44) 및 엔트로피 코딩 유닛 (46) 을 포함한다. 인-루프(In-loop) 또는 포스트 루프(post loop) 디블로킹 필터 (deblocking filter)(미도시) 를 적용하여, 블록들을 필터링함으로써, 블로킹 아티팩트를 제거할 수 있다. 또, 비디오 인코더 (20) 는 합산기 (48) 및 합산기 (50) 를 포함한다. 도 2 는 비디오 블록의 인터-코딩의 경우 비디오 인코더 (20) 의 시간 예측 구성 요소들을 나타낸 것이다. 예시의 용이성을 위해, 비록 도 2 에는 도시하지 않았지만, 비디오 인코더 (20) 도 일부 비디오 블록의 인트라-코딩의 경우 공간 예측 구성 요소들을 포함할 수도 있다.
모션 추정 유닛 (32) 은 비디오 블록 (30) 을 하나 이상의 인접 비디오 프레임의 블록과 비교하여, 하나 이상의 모션 벡터들을 생성한다. 인접 프레임 또는 프레임들은 메모리 (34) 로부터 취출될 수도 있으며, 그 메모리는, 이전에 인코딩된 블록들로부터 복원되는 비디오 블록들을 저장하는 어떤 유형의 메모리 또는 데이터 저장 디바이스를 포함할 수도 있다. 모션 추정은, 가변 사이즈들, 예를 들면 16×16, 16×8, 8×16, 8×8 또는 더 작은 블록 사이즈들의 블록에 대해 수행될 수도 있다. 모션 추정 유닛 (32) 은 그 현재 비디오 블록 (30) 에 가장 가깝게 일치하는 인접 프레임에서 하나 이상의 블록들을, 예컨대 레이트 왜곡 모델에 기초하여, 식별하고, 인접 프레임의 블록들과 그 현재 비디오 블록 사이의 변위를 결정한다. 이에 기초하여, 모션 추정 유닛 (32) 은, 현재 비디오 블록 (30) 을 코딩하는데 사용되는 기준 프레임으로부터, 현재 비디오 블록 (30) 과 하나 이상의 일치하는 블록들 사이의 변위의 크기 및 궤적을 나타내는 하나 이상의 모션 벡터 (MV) 들을 생성한다. 이 일치하는 블록 또는 블록들은 코딩될 블록의 인터-코딩의 경우에, 예측하는 (또는 예측) 블록들로서 기능할 것이다.
모션 벡터들은 1/2 또는 1/4 정밀도, 또는 심지어 더 미세한 정밀도를 가짐으로써, 비디오 인코더 (20) 가 정수 픽셀 위치결정보다 높은 정밀도로 모션을 추적하여, 더 우수한 예측 블록을 얻을 수 있다. 분수 픽셀 값을 가진 모션 벡터들을 사용하는 경우, 모션 보상 유닛 (36) 에서 보간 동작이 수행된다. 모션 추정 유닛 (32) 은 최선의 블록 파티션을 결정하고 모션 벡터 또는 모션 벡터들을 생성함으로써, 레이트-왜곡 모델과 같은 특정 기준을 이용하여, 비디오 블록을 식별한다. 예를 들어, 양방향 예측의 경우에는 더 많은 모션 벡터가 있을 수도 있다. 그 생성된 블록 파티션 및 모션 벡터를 이용하여, 모션 보상 유닛 (36) 은 예측 비디오 블록을 형성한다.
비디오 인코더 (20) 는, 합산기 (48) 에서 원본(original) 현재 비디오 블록 (30) 으로부터 모션 보상 유닛 (36) 에 의해 생성되는 예측 비디오 블록을 감산하여, 잔여 (residual) 비디오 블록을 형성한다. 블록 변환 유닛 (38) 은 잔여 변환 블록 계수를 생성하는 변환을 적용한다. 도 2 에 나타내는 바와 같이, 블록 변환 유닛 (38) 은 본 개시물에서 설명하는 기술에 따라서 구성되는 16-포인트 DCT-Ⅱ 를 구현하는 16-포인트 DCT-Ⅱ 유닛 (52) 을 포함한다. 16-포인트 DCT-Ⅱ 유닛 (52) 은 본 개시물에서 설명한 바와 같이, 16-포인트 DCT-Ⅱ, 8-포인트 DCT-Ⅱ 및 4-포인트 DCT-Ⅱ 중 하나 이상을 수행하는 것이 가능한 16-포인트 DCT-Ⅱ 를 구현하며, 일부의 경우, 소프트웨어를 실행하는 (소프트웨어 코드 또는 명령을 실행하는 디지털 신호 프로세서 또는 DSP와 같은) 하드웨어 모듈을 나타낸다. 16-포인트 DCT-Ⅱ 유닛 (52) 은 이들 사이즈 16, 8 및 4 의 DCT-Ⅱ 들 중 하나 이상을 잔여 블록들에 적용하여, 대응하는 사이즈 16, 8 및/또는 4 의 잔여 변환 계수들의 블록을 생성한다. 16-포인트 DCT-Ⅱ 유닛 (52) 은 일반적으로 그 잔여 블록을, 잔여 픽셀 데이터로서 표현되는 공간 영역으로부터, DCT 계수로 표현되는 주파수 영역으로 변환한다. 변환 계수는 적어도 하나의 DC 계수 및 하나 이상의 AC 계수들을 포함하는 DCT 계수를 포함할 수도 있다.
양자화 유닛 (40) 은 잔여 변환 블록 계수를 양자화하여 (예를 들면, 라운딩하여), 비트 레이트를 더 감소시킨다. 위에서 설명한 바와 같이, 양자화 유닛 (40) 은 인수 분해 동안에 제거되는 내부 인수들을 포함시킴으로써, 스케일링된 16-포인트 DCT-Ⅱ 유닛 (52) 의 그 스케일링되는 성질을 고려한다. 양자화가 곱셈을 일반적으로 포함하기 때문에, 이들 인수를 양자화 유닛 (40) 에 포함시키는 것이 양자화 유닛 (40) 의 구현 복잡도를 증가시키지 않을 수도 있다. 이 점에서, 스케일링된 16-포인트 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) 은 각각 양자화된 계수를 복원하고 역변환을 적용함으로써, 그 잔여 블록을 복원한다. 역변환 유닛 (44) 은 역변환 DCT (IDCT) 를 포함하며, 이를 일반적으로 도 3 에 대해서 아래에서 설명하는 16-포인트 DCT-Ⅲ 유닛 (68) 과 유사하게 16-포인트 DCT-Ⅱ 유닛 (52) 의 역 동작을 수행하는 타입 Ⅲ 의 DCT 라 한다. 이 역 16-포인트 DCT-Ⅱ 는 16-포인트 DCT-Ⅲ 유닛 (53) 으로 도시되어 있으며, 이는 실질적으로 도 3 의 예에서 나타낸 16-포인트 DCT-Ⅱ 유닛 (68) 과 유사하다. 합산 유닛 (50) 은 그 복원한 잔여 블록을 모션 보상 유닛 (36) 에 의해 생성한 모션 보상한 예측 블록에 추가함으로써, 메모리 (34) 에 저장하기 위한 복원된 비디오 블록을 생성한다. 이 복원한 비디오 블록은 후속 비디오 프레임에서 블록을 인코딩하기 위하여, 모션 추정 유닛 (32) 및 모션 보상 유닛 (36) 에 의해 사용된다.
도 3 은 도 1 의 비디오 디코더 (26) 의 예시를 보다 상세하게 도시하는 블록도이다. 비디오 디코더 (26) 는 하나 이상의 집적 회로 디바이스들로서 적어도 부분적으로 형성될 수 있으며, 이를 총칭하여 집적회로 디바이스라 할 수 있다. 일부 양태들에서, 비디오 디코더 (26) 는 무선 통신 디바이스 핸드셋의 일부분을 형성할 수 있다. 비디오 디코더 (26) 는 비디오 프레임 내의 블록의 인트라 디코딩 및 인터 디코딩을 수행할 수 있다. 도 3 에 나타낸 바와 같이, 비디오 디코더 (26) 는 비디오 인코더 (20) 에 의해 인코딩된 인코딩 비디오 비트스트림을 수신한다. 도 3 의 예에서, 비디오 디코더 (26) 는 엔트로피 디코딩 유닛 (54), 모션 보상 유닛 (56), 복원 유닛 (58), 역변환 유닛 (60) 및 메모리 (62) 를 포함한다. 엔트로피 디코딩 유닛 (54) 은 메모리 (64) 에 저장된 하나 이상의 데이터 구조들에 액세스하여, 코딩하는데 유용한 데이터를 획득할 수 있다. 또, 비디오 디코더 (26) 는 합산기 (66) 의 출력을 필터링하는 인-루프(in-loop) 또는 포스트 루프 디블로킹 필터 (미도시) 를 포함할 수 있다. 또한, 비디오 디코더 (26) 는 합산기 (66) 를 포함한다. 도 3 은 비디오 블록의 인터-디코딩을 위한 비디오 디코더 (26) 의 시간 예측 컴포넌트들을 예시한 것이다. 도 3 에는 도시하지 않았지만, 비디오 디코더 (26) 도 일부 비디오 블록의 인트라-디코딩을 위한 공간 예측 컴포넌트들을 포함할 수 있다.
엔트로피 디코딩 유닛 (54) 은 인코딩된 비디오 비트스트림을 수신하고, 그 비트스트림으로부터 양자화된 잔여 계수 및 양자화된 파라미터들뿐만 아니라 모션 벡터 및 블록 파티션을 포함할 수 있는 매크로블록 코딩 모드 및 모션 정보와 같은 다른 정보를 디코딩한다. 모션 보상 유닛 (56) 은 메모리 (62) 로부터 모션 벡터들 및 블록 파티션들과 하나 이상의 복원된 기준 프레임들을 수신하여 예측 비디오 블록을 생성한다.
복원 유닛 (58) 은 그 양자화된 블록 계수들을 역양자화, 즉 디퀀타이즈(de-quantizes) 한다. 역변환 유닛 (60) 은 그 계수들에 역변환, 예를 들면, 역 DCT를 적용하여, 잔여 블록들을 생성한다. 더 자세하게는, 역변환 유닛 (60) 은, 역변환 유닛 (60) 이 그 계수들을 적용하여 잔여 블록들을 생성하는 16-포인트 DCT-Ⅲ 유닛 (68) 을 포함한다. 도 2 에 나타낸 16-포인트 DCT-Ⅱ 유닛 (52) 의 역인 16-포인트 DCT-Ⅲ 유닛 (68) 은 그 계수들을 주파수 영역으로부터 공간 영역으로 변환하여, 잔여 블록들을 생성한다. 위의 양자화 유닛 (40) 과 유사하게, 복원 유닛 (58) 은, 임의의 구현 복잡도가 있다 하더라도 이를 거의 증가시키지 않고, 인수분해 동안에 제거한 외부 인수들을 복원 과정에 삽입함으로써 16-포인트 DCT-Ⅲ 유닛 (68) 의 스케일링되는 성질을 고려한다. 스케일링된 16-포인트 DCT-Ⅲ 유닛 (68) 으로부터 인수를 제거하는 것은, 구현 복잡도를 감소시킬 수도 있고, 그에 의해 비디오 디코더 (26) 에 대한 복잡도의 순 감소를 가져올 수도 있다.
그 후, 예측 비디오 블록을 합산기 (66) 에 의해 잔여 블록들과 합산되어, 디코딩된 블록을 형성한다. 블로킹 필터 (미도시) 를 그 디코딩된 블록에 적용하여, 블로킹 아티팩트를 제거할 수도 있다. 그 후, 그 필터링된 블록이 메모리 (62) 에 배치되며, 메모리 (62) 는 후속 비디오 프레임들의 디코딩을 위해 기준 프레임을 제공하며, 또한 디코딩된 비디오를 생성하여 디스플레이 디바이스 (28) (도 1) 를 구동한다. 일부의 경우, 아티팩트를 제거하기 위해, 프레임들이 메모리 (62) 에 저장된 후에 포스트 루프 디블로킹 필터를 적용하여 그들을 필터링할 수 있다.
도 4a 내지 도 4d 는 16-포인트 DCT-Ⅱ 유닛 (52) 의 여러 가지 양태들을 보다 상세하게 도시한 다이어그램이다. 도 4a 의 예에서, 16-포인트 DCT-Ⅱ 유닛 (52) 은 버터플라이 유닛 (70), 8-포인트 DCT-Ⅱ 유닛 (72) 및 8-포인트 DCT-Ⅳ 유닛 (74) 을 포함한다. 8-포인트 DCT-Ⅳ 유닛 (74) 이 제 2 의 4-포인트 DCT-Ⅱ 유닛 (76B) 및 제 3 의 4-포인트 DCT-Ⅱ 유닛 (76C) 을 포함하는 한편, 8-포인트 DCT-Ⅱ 유닛 (72) 은 제 1 의 4-포인트 DCT-Ⅱ 유닛 (76A) 을 포함한다. 또, 8-포인트 DCT-Ⅳ 유닛 (74) 도 인수 곱셈 유닛 (78) 및 교차-가산 유닛 (80) 을 포함하며, 이들을, 하기에 도 4d 의 예와 관련하여 보다 상세하게 설명한다. 16-포인트 DCT-Ⅱ 유닛 (52) 은 입력 를 수신하고, 출력 X0 - X15 를 생성한다. 버터플라이 유닛 (70) 은 입력 을 짝수 입력 및 와 홀수 입력 및 로 재배열하는 한편, 그 짝수 입력에 대해서는 교차-가산을, 홀수 입력에 대해서는 교차-감산을 수행한다. 버터플라이 유닛 (70) 은 그 교차-가산된 짝수 입력을 8-포인트 DCT-Ⅱ 유닛 (72) 에, 그리고, 그 교차-감산한 홀수 입력을 8-포인트 DCT-Ⅳ 유닛 (74) 에 출력한다.
도 4b 는 4-포인트 DCT-Ⅱ 유닛 (76A-76C) 중 어느 한 유닛의 예를 더 상세하게 도시하는 다이어그램이다. 도 4b 의 예에 나타낸 4-포인트 DCT-Ⅱ 유닛이 4-포인트 DCT-Ⅱ 유닛들 (76A-76C) 중 어느 하나를 나타낼 수 있다는 것을 반영하기 위하여, 도 4b 의 예에 나타낸 4-포인트 DCT-Ⅱ 유닛을, 일반적으로 4-포인트 DCT-Ⅱ 유닛 (76) 이라 한다. 4-포인트 DCT-Ⅱ 유닛 (76) 은, 기능에 있어서는 버터플라이 유닛 (70) 과 실질적으로 유사하지만, 버터플라이 유닛 (82) 이 16개 대신에 4개의 입력들만 수신하기 때문에, 스케일 면에서 상이한, 버터플라이 유닛 (82) 을 포함한다. 버터플라이 유닛 (82) 은, 2개의 상부 출력 상에 '0' 및 '2' 로, 그리고 2개의 하부 출력 상에 '1' 및 '3' 으로 표기한 바와 같이, 그 입력을 짝수 및 홀수 입력으로 재배열한다. 홀수 입력에 대해 동작하는 4-포인트 DCT-Ⅱ 유닛 (76) 의 부분을 홀수 부분으로서 지칭하고, 짝수 입력에 대해 동작하는 부분을 짝수 부분으로서 지칭할 수 있다.
홀수 부분에서, A 및 B로 표기된 이들 2개의 인수들이 홀수 입력들에 적용되는 것으로 도시되어 있다. 이들 인수들의 값을 결정할 때에, 설계자는 많은 관심사항들의 균형을 맞출 수 있다. 종종, 2의 거듭제곱인 인수의 곱셈이 일반적으로 2진 시스템에서 우측 시프트만 수반한다는 것을 고려하여, 2의 거듭제곱인 인수들을 용이하게 수행할 수 있다. 그 결과, 비록 그런 인수들이 현저한 코딩 이득 또는 압축 효율을 제공하기에 충분한 정확도로 DCT 계수들을 적절하게 반영하지 않더라도, 2의 거듭제곱인 인수들이 선호된다. 대안으로, 2의 거듭제곱이 아닌 인수들은 더 높은 정확도를 제공할 수 있지만 용이하게 구현할 수 없으므로, 구현 복잡도를 증대시킬 수 있다. 또한, 더 큰 인수들은 일반적으로 더 많은 코딩 이득을 제공하지만 현저하게 더 많은 저장 공간을 요하는 한편, 작은 인수들은 더 적은 저장 공간을 소모하지만 더 적은 코딩 이득을 제공한다. 어쨌든, 4-포인트 DCT-Ⅱ 유닛 (76) 에 의해 나타나는 DCT 구현과 같은 임의의 주어진 DCT 구현에 대해 인수들을 선택하는데 있어, 많은 상충관계를 수반한다. 이하, 이들 여러 상충관계들을 예시하는 여러 인수들의 조합을 보다 자세하게 설명한다.
도 4c 는 8-포인트 DCT-Ⅱ 유닛 (72) 을 더 자세하게 도시하는 블록도이다. 도 4c 의 예에서, 8-포인트 DCT-Ⅱ 유닛 (72) 은, 버터플라이 유닛 (84) 이 버터플라이 유닛 (70 및 82) 에 의해 각각 수신되는 16개의 입력 및 4개의 입력과 비교할 때 단지 8개의 입력만을 수신하는 것을 고려하면 기능이 버터플라이 유닛 (70 및 82) 과 실질적으로 유사하지만 스케일이 다른 버터플라이 유닛 (84) 을 포함한다. 어쨌든, 버터플라이 유닛 (84) 은 그 입력을 짝수 및 홀수 입력으로 재배열하는 한편, 교차-가산을 수행하여 짝수 입력을 생성하고, 교차-감산을 수행하여 홀수 입력을 생성한다. 짝수 입력에 대해 동작하는 8-포인트 DCT-Ⅱ 유닛 (72) 의 부분을 짝수 부분으로서 지칭하고, 홀수 입력에 대해 동작하는 부분을 홀수 부분으로서 지칭할 수 있다. 이 경우에, 그 짝수 부분은 네스팅된(nested) 4-포인트 DCT-Ⅱ 유닛 (76A) 을 포함하는데, 이 유닛 (76A) 은 도 4b 의 예와 관련하여 전술된 4-포인트 DCT-Ⅱ 유닛 (76) 과 실질적으로 유사하다.
8-포인트 DCT-Ⅱ 유닛 (72) 의 홀수 부분은 여러 가지 수학 연산을 각각 수행하는 많은 유닛들 (86-90) 을 포함한다. 인수 곱셈 유닛 (factor multipication unit; 86) 은, 이들 입력을 인수들 C, D, E 및 F 로 곱한 후에, 홀수 입력의 교차-가산을 수행한다. 인수들 C, D, E 및 F 는 여러 가지 이점들을 촉진하기 위해 전술된 방법으로 변경될 수 있는 변수를 나타낸다. 교차-가산 유닛 (88) 은 도 4c 의 예에 관하여 나타낸 방법으로 교차 가산을 수행하지만, 교차-가산 유닛 (90) 은 외측 가산 입력의 교차-가산을 수행하여 7 및 1 로 표기된 홀수 출력을 생성한다. 또, 아래에, 이들 여러 상충관계들을 예시하는 여러 인자들의 조합을 보다 자세하게 설명한다.
도 4d 는 8-포인트 DCT-Ⅳ 유닛 (74) 을 더 자세하게 도시한 블록도이다. 도 4d 의 예에서, 8-포인트 DCT-Ⅳ 유닛 (74) 은, 위에서 언급한 바와 같이, 2개의 4-포인트 DCT-Ⅱ 유닛들 (76B, 76C) 을 포함하며, 이들 각각은 도 4b 의 예와 관련하여 전술된 4-포인트 DCT-Ⅱ 유닛 (76) 과 실질적으로 유사할 수 있다. 8-포인트 DCT-Ⅳ 유닛 (74) 은, 또한 위에서 언급한 바와 같이, 인수 곱셈 유닛 (78) 및 교차-가산 유닛 (80) 을 또한 포함한다. 인수 곱셈 유닛 (78) 은 그 8-포인트 DCT-Ⅳ 유닛 (74) 에의 입력을 인수 H, I, J, K, L, M, 및 N 으로 곱하고, 일단 그 인수들로 곱셈되면, 그 상부 4개의 입력을 하부 4개의 입력과 교차-가산하고, 하부의 4개의 입력으로부터 그 상부의 4개의 입력을 감산한다. 그 후, 상부의 4개의 입력을 4-포인트 DCT-Ⅱ 유닛 (76B) 에 의해 처리하는 한편, 하부의 4개의 입력을 4-포인트 DCT-Ⅱ 유닛 (76C) 에 의해 처리한다. 그 후, 교차-가산 유닛 (80) 은 그 하부 7개의 입력을 교차 가산/감산한다 (여기서, 감산은 또 다른 가산의 형태로 간주된다).
일반적으로, 상술한 DCT-Ⅱ 또는 DCT-Ⅳ 유닛들 (72, 74, 및 76A-76C) 각각은 전술된 인수들 A-N 의 매트릭스로서 표현될 수 있다. 예컨대, DCT-Ⅱ 유닛들 (76A-76C) ("DCT-Ⅱ 유닛들 (76)") 각각은 다음의 표 1 에 나타낸 매트릭스로 표현될 수 있다.
[표 1]
4×4 DCT-Ⅱ 매트릭스
DCT-Ⅱ 유닛 (72) 은 다음의 표 2 에 나타낸 매트릭스로 표현될 수 있다.
[표 2]
8×8 DCT-Ⅱ 매트릭스
DCT-Ⅳ 유닛 (74) 은 다음의 표 3 에 나타낸 매트릭스로 표현될 수 있다.
[표 3]
8×8 DCT-Ⅳ 매트릭스
4×4 DCT-Ⅱ 매트릭스, 8×8 DCT-Ⅱ 매트릭스 및 8×8 DCT-Ⅳ 매트릭스를 나타낸 위의 표들에 기초하여, 16-포인트 DCT-Ⅱ 유닛 (52) 에 대한 매트릭스는, 다음의 표 4에 나타낸 그 결과적인 매트릭스로 결정할 수 있다.
[표 4]
16×16 DCT-Ⅱ 매트릭스
도 4a 를 다시 참조하면, 많은 외부 인수들 (external factors) 이 출력 에 곱셈되는 것으로 도시되어 있으며, 그들 중 일부는 정규화 인수(normalization factors) ξ, ζ, η을 포함한다. 이들 외부 인수들은 16-포인트 DCT-Ⅱ 유닛 (52) 내에 포함될 수 없으며, 대신 제거되어 양자화 유닛 (40) 에 포함될 수 있다. 일반적으로, 이들 외부 인수들은 다음의 대각선 매트릭스 S 로 표현되는데, 이는 다시 양자화 유닛 (40) 에 포함된다.
여기서 이들 정규화 인수들은, 입력을 적용하는데 많은 동작들을 요하는 내부 인수들에 대해 큰 값들을 감소시킴으로써, 구현 복잡도를 향상시킬 수 있다. 만일 이들 외부 인수들을 제거하는 경우, 16-포인트 DCT-Ⅱ 유닛 (52) 이 대각선 매트릭스 S 의 적용을 요하는 스케일링된 출력을 출력함으로써 DCT 계수를 정확하게 표현하는 풀, 스케일링되지 않는 출력을 적절하게 생성한다는 것을 고려하여, 16-포인트 DCT-Ⅱ 유닛 (52) 을 스케일링된 16-포인트 DCT-Ⅱ 유닛 (52) 이라 지칭한다. 16-포인트 DCT-Ⅱ 유닛 (52) 이 이들 외부 인수들을 보유하는 경우, 16-포인트 DCT-Ⅱ 유닛 (52) 을 풀 16-포인트 DCT-Ⅱ 유닛 (52) 이라 지칭한다. 상황에 따라서, 16-포인트 DCT-Ⅱ 유닛 (52) 에 대해, 풀 또는 스케일링된 유닛을 채용할 수 있으며, 본 개시물의 기술들을 임의의 타입의 풀 또는 스케일링된 구현에 한정해서는 안된다.
어쨌든, 아래는, 여러 가지 이점을 제공하는 16-포인트 DCT-Ⅱ 유닛 (52) 을 생성하기 위해, 상기 내부 및 정규화 인수들에 대해 선택될 수도 있는 일부 예시적인 구현 특징 값들이다. 전반적인 언급으로서, 그 인수들에 따르는 값들은, 결과적인 DCT 매트릭스가 직교 속성을 보유하도록 선택되며, 다음 식 (1) 과 같이 정의된다.
여기서, C 는 풀 스케일되지 않은(full non-scaled) 변환 매트릭스를 나타내며, CT 는 매트릭스 C 의 전치행렬을 나타낸다. 일반적으로, 직교성이 요구되는데 이는 직교성이 DCT-Ⅱ 구현에 대해서 가역적(invertible)이기 때문이다. 이 가역적 성질은, 일예로서, 비디오 인코더로 하여금, 직교 16-포인트 DCT 구현을 적용시킴으로써, 비디오 데이터의 잔여 블록들로부터 DCT 계수를 생성할 수 있도록 한다. 그러면, 비디오 디코더는 8-포인트 역 DCT-Ⅱ (IDCT) 구현을 적용하여, 데이터 손실이 있다 하더라도 적은 데이터 손실로서, 그 DCT-Ⅱ 계수들로부터 그 비디오 데이터의 잔여 블록을 복원할 수 있다. 비디오 인코딩의 주요 목표들 중 하나가 데이터의 보존인 것을 감안하여, H.264 비디오 코딩 표준과 같은 여러 코딩 표준들은 8-포인트 DCT 의 직교 구현을 채택하였다.
내부 인수들 A-N 에 대한 여러 가지 값들의 조사는 이들 값들을 선택하는 데 연루되는 상충관계로서 어떤 표시 (indication) 를 제공한다. 4-포인트 DCT-Ⅱ 유닛 (76) 및 내부 인수들 A 및 B 로 시작하여, 이들 인수들에 대한 값들의 분석을 다음의 표 5 에 나타낸다.
[표 5]
표 5 를 참조하면, 내부 인수들 A 및 B 에 대한 값들을, 인수들 A 및 B 를 저장하는데 필요한 비트수 및 근사 오차에 대해서, 나타내고 있다. 일반적으로, 내부 인수들 A 및 B 에 대한 값들은 사이즈가 증가함에 따라서, 근사 오차는 감소하며, 이들 더 큰 값들을 저장하는데 필요한 비트수가 증가한다.
8-포인트 DCT-Ⅱ 유닛 (72) 및 내부 인수들 C, D, E, 및 F 에 대한 조사를 계속하여, 이들 인수들에 대한 값들의 분석을 다음의 표 6 에 나타낸다.
[표 6]
위의 표 5 에 나타낸 분석과 유사하게, 내부 인수들 C-F 에 대한 값들이 사이즈가 증가함에 따라, 근사 오차는 감소하며, 이들 값들을 저장하는데 필요한 비트수가 증가한다.
8-포인트 DCT-Ⅳ 유닛 (74) 의 내부 인수들 H-N 에 대한 분석을, 다음 표 7 에 나타낸다.
[표 7]
위의 표 5 및 6 에 나타낸 분석과 유사하게, 내부 인수들 H-N 에 대한 값들이 사이즈가 증가함에 따라, 최대 근사 오차는 감소하며, 이들 값들을 저장하는데 필요한 비트수가 증가한다. 표 7 에 기재된 분석에 있어서, 최대 근사 오차는 내부 인수들의 처음 4 또는 5 조합이 매우 크므로, 내부 인수들 H-N에 대한 값들의 선택은 5-비트, 6-비트와 7-비트 근사값 사이이다.
위의 조사 분석의 완료와 동시에, 많은 상이한 구현 또는 설계들을, 위의 표 5-7 로부터 내부 인수들 A-N 에 대한 값들의 여러 선택을 통해 얻을 수 있다. 내부 인수들 A 및 B 에 대해 1 및 2 의 값들을 각각 선택함으로써, 다음 2가지 설계와 비교할 때에 근사 오차의 관점에서 가장 낮게 정확하도록, 첫 번째 설계 또는 구현을 구성할 수 있다. 또, 이 첫 번째 설계는 위의 표 7 로부터 5-비트 근사값을 선택함으로써 구성하며, 여기서 내부 인수들 N, L, J, H, G, I, K, M 은 값들 1, 6, 10, 10, 15, 15, 17, 18 로 각각 설정한다. 또한, 이 첫 번째 설계는 내부 인수들 C, D, E, F 에 대해, 각각 11, 3, 9 및 7 의 값들로 구성한다.
이 첫 번째 설계 또는 구현은 다음의 표 8 에 기재된 매트릭스로 요약할 수 있다.
[표 8]
위의 표 8 에 나타낸 많은 매트릭스 계수는 이들 큰 값들에 의한 곱셈을 수행하는데 필요한 동작의 관점에서 구현 복잡도를 증가시키는 큰 값들이다. 이들 큰 값들을 제거하고, 그 변환에 걸쳐 다이나믹 범위의 균형을 맞추기 위하여, 곱셈 이후에, 첫 번째 설계의 구현에 우측 시프트를 도입함으로써, 표 9 에 나타낸 다음의 정규화된 내부 인수들을 얻을 수 있다. 우측 시프트를 임의의 양의 정수에 의할 수 있다는 점에 유의해야 한다. 유일한 제한은 파라미터 A 및 B 에 대한 우측 시프트가 같다는 것이다. 이와 유사하게, C, D, E 및 F 에 대한 우측 시프트가 같다. 마지막으로, N, L, J, H, G, I, K 및 M 에 대한 파라미터의 우측 시프트가 같다. 우측 시프트는 이들 정수 파라미터들을 다이애딕 유리수들 (dyadic rationals) 로 변환한다. 다이애딕 유리수는 분모가 2의 거듭제곱인 유리수이다. 우측 시프트는 그 변환의 정확도를 감소시킬 수 있다. 그래서, 그들을 최소값으로 유지하는 것이 바람직하다.
[표 9]
이 정규화한 내부 인수들을 이용하여, 표 8 에 기재된 매트릭스를 다음의 표 10 에 기재된 매트릭스로 감소시킨다.
[표 10]
표 10 의 매트릭스 계수들의 범위는 -1.56 과 1.56 사이이며, 일반적으로 DCT 구현에 충분히 꼭 맞거나 적합하다. 첫 번째 설계는 다음의 값들을 가진 대각선 매트릭스 S 를 갖는다:
이들 값은, 4를 곱셈하고, 부동 소수점으로 변환한 후 대략 다음의 값들과 같다:
이 두 번째 설계는 첫 번째보다 더 정확하지만, 이후 더 자세하게 설명할 세 번째 설계보다는 정확하지 않다. 이 두 번째 설계는 내부 인수들 N, L, J, H, G, I, K, M 에 대해 각각 값들 6, 11, 21, 27, 34, 38, 42 및 43 으로 구성되며, 이때 이들 값들은 6-비트 근사값을 얻는다. 첫 번째 설계에 대해 위에서 규정한 것들과 같은 나머지 내부 인수들 모두를 남기면, 16-포인트 DCT 계수 매트릭스는 다음의 표 11 에 나타낸 것과 같다.
[표 11]
위에서 언급한 우측 시프트의 도입 이후에, 인수들 A-N 은 다음의 표 12 에 나타낸 것과 같아진다.
[표 12]
표 11 에 규정한 매트릭스는, 이들 시프트를 도입할 경우에, 다음의 표 13 에 나타낸 것과 같아진다.
[표 13]
표 13 을 참조하면, 모든 인수들은 [-1...1] 범위에 있다. 스케일 인수 S 의 대각선 매트릭스의 값들은 다음의 값들과 같아진다:
이들 값은, 4를 곱셈하고, 부동 소수점 값으로 변환한 후 대략 다음의 값들과 같다:
세 번째 설계는, 두 번째 설계에 대해 구성한 것과 같이, 내부 인수들 N, L, J, H, G, I, K, M 에 대해 동일한 값들, 즉 이 예에서는, 6-비트 근사값을 포함한다. 이들 값들을 변경하는 대신에, 이 세 번째 설계는 내부 인수들 A 및 B 에 대해 2 및 5 의 값들을 포함하고, 내부 인수들 C-F 에 대해 값들 19, 4, 16 및 11 을 포함한다. 내부 인수들에 대한 이들 값들 세트에 의해, 다음 표 14 에 나타낸 변환 매트릭스가 생성된다.
[표 14]
위에서 언급한 우측 시프트의 도입 이후에, 인수들 A-N 은 다음의 표 15 에 나타낸 것과 같아진다.
[표 15]
표 14 에 규정한 매트릭스는, 이들 시프트를 도입할 경우에, 다음의 표 16 에 나타낸 것과 같아진다.
[표 16]
표 13 을 참조하면, 모든 인수들은 [-1.25...1.25] 범위에 있다. 스케일 인수 S 의 대각선 매트릭스의 값들은 다음의 값들과 같아진다:
이들 값은, 4를 곱셈하고, 부동 소수점 값으로 변환한 후 대략 다음의 값들과 같다:
구현 복잡도의 관점에서, 도 4a-4d 에 관해서 위에서 설명한 구현을 생성하는, 기초를 이루는(underlying) 인수 분해는 일정한 내부 인수들 A-N 에 의한 대략 72번의 가산들 및 36번의 곱셈들을 필요로 한다. 그러나, 내부 인수들 A-N 이 정수 (또는, 다이애딕 유리수) 이므로, 이들 곱셈을 일련의 가산 및 시프트 연산으로 대체할 수 있다. 이 세 번째 설계에 대한 이러한 무-곱셈기 (multiplier-less) 구현의 복잡도를, 다음의 표 17에 나타낸다.
[표 17]
위에서 언급한 36번의 곱셈 대신에, 이 38번의 가산 및 48번의 시프트를 추가함으로써, 110번의 가산 및 48번의 시프트의 총 구현 복잡도가 얻어진다.
이 두 번째 설계에 대해, 다음 표 18 에 더 적은 곱셈 구현의 복잡도를 요약한다.
[표 18]
이 경우, 위에서 언급한 36번의 곱셈을 32번의 가산 및 38번의 시프트로 대체한 후에 총 복잡도는 104번의 가산 및 38번의 시프트의 전체 구현 복잡도가 된다.
첫 번째 설계에 대해, 다음 표 19 에 더 적은 곱셈 구현의 복잡도를 요약한다.
[표 19]
이 경우, 위에서 언급한 36번의 곱셈을 22번의 가산 및 36번의 시프트로 대체한 후에 총 복잡도는 94번의 가산 및 36번의 시프트의 전체 구현 복잡도가 된다.
위의 복잡도 분석을 고려하면, 첫 번째 설계는 DCT 를 수행하는 적당한 근사값을 제공하며, 다른 설계들 보다 더 적은 수행하는 동작을 요한다. 두 번째 설계는 첫 번째 설계와 비교할 때 DCT 근사를 수행하는 동작에서의 비교적 적당한 증가를 수반하지만, 첫 번째 설계와 비교할 때 그 DCT 를 수행하는 정확도가 또한 향상된다. 세 번째 설계는 이 세가지 설계들 중에서 가장 복잡하지만, 또한 이 세 개의 설계들의 DCT 를 수행하는 가장 정확한 근사값을 제공한다. 이들을 채용하는 환경에 따라서, 이들 잠재적인 설계들 중 하나 이상을 이용할 수 있다. 일례로서 효율적인 파워 소모를 요하는 모바일 애플리케이션의 경우, 낮은 구현 복잡도가 일반적으로 향상된 파워 효율로 해석된다는 점을 고려하여, 첫 번째 설계를 채용할 수도 있다. 파워 효율을 덜 염려하는 디바이스의 경우, 두 번째 설계가 구현 복잡도에 대한 정확도의 관점에서 적당한 성능의 균형을 제공할 수 있다. 더 높은 정확도의 레벨을 필요로 하는 경우, 세 번째 설계를 채용하여, DCT 를 근사하는 관점에서 세개의 설계들 중 가장 정확한 것을 제공할 수 있다.
또, DCT-Ⅱ 유닛에 대해 도 4 의 예에서 설명하였지만, 이 DCT-Ⅱ 유닛은 본 개시물의 기술에 따라서 구성되는 IDCT 로 나타낼 수도 있다. 도 4 의 예에서 나타낸 구현으로부터 역 DCT 를 형성하는 것은, 입력이 도 4 의 우측에서의 구현에 의해 수신되고 출력이 그 구현의 좌측에서 출력되도록, 입력과 출력을 뒤바꾸는 것을 수반한다. 즉, 그 입력이 출력이 되고, 출력이 입력이 되도록 그 수직 액세스에 대해 그 구현을 뒤집는 것은, 일반적으로 IDCT 구현을 생성한다. 예시의 용이성을 위해, 그리고, DCT 로부터 IDCT 를 형성하는 것이 당업게에 널리 알려져 있다는 점을 고려하여, 이들 추가 IDCT 구현을 별도의 도면에 나타내지 않는다.
도 5 는 본 개시물의 기술에 따라서 구성되는 16-포인트 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) 을 생성한다. 이 일치하는 블록 또는 블록들은 코딩할 블록의 인터-코딩을 위한 예측적 (또는 예측) 블록들로서 기능한다.
모션 벡터들은 1/2 - 또는 1/4 -픽셀 정밀도 또는 심지어 더 미세한 정밀도를 가지므로, 비디오 인코더 (20) 가 모션을 정수 픽셀 위치결정보다 더 높은 정밀도로 추적하고 더 양호한 예측 블록을 획득할 수 있게 한다. 분수 픽셀 값을 가진 모션 벡터들을 사용하는 경우, 모션 보상 유닛 (36) 에서 보간 동작이 수행된다. 모션 추정 유닛 (32) 은 레이트-왜곡 모델과 같은 어떤 기준을 이용하여, 비디오 블록에 대해 최고의 블록 파티션 및 모션 벡터 또는 모션 벡터들을 식별한다. 예를 들면, 양방향 예측의 경우에도 더 많은 모션 벡터가 있을 수 있다. 결과적으로 획득한 블록 파티션 및 모션 벡터를 이용하여, 모션 보상 유닛 (36) 은 예측 비디오 블록을 형성한다 (94).
비디오 인코더 (20) 는, 합산기 (48) 에서 원래의 현재 비디오 블록 (30) 으로부터 모션 보상 유닛 (36) 에 의해 생성되는 예측 비디오 블록을 감산하여, 잔여 비디오 블록을 형성한다 (96). 블록 변환 유닛 (38) 은 잔여 변환 블록 계수를 생성하는 변환을 적용한다. 블록 변환 유닛 (38) 은 본 개시물에서 설명하는 기술에 따라서 구성되는 16-포인트 DCT-Ⅱ 유닛 (52) 을 포함한다. 블록 변환 유닛 (38) 은 스케일링된 16-포인트 DCT-Ⅱ 유닛 (52) 을 호출하여 소정 사이즈의 하나 이상의 DCT-Ⅱ 들을 그 잔여 블록들에 적용함으로써, 상술한 방법으로, 잔여 변환 계수들의 대응하는 사이즈의 블록들을 생성한다. 도 4a-4d 의 예를 참조하면, 16-포인트 DCT-Ⅱ 유닛 (52) 은 하나 이상의 4-포인트 DCT-Ⅱ 유닛들 (76) 을 호출하여 상이한 4×4 잔여 데이터 블록에 4-포인트 DCT-Ⅱ 를 동시에 적용할 수 있다. 이와 다른 방법으로는, 16-포인트 DCT-Ⅱ 유닛 (52) 은 8-포인트 DCT-Ⅱ 유닛 (72) 를 호출하여, 8×8 잔여 블록에 8-포인트 DCT-Ⅱ 를 적용할 수 있다. 또 다른 대안으로서, 16-포인트 DCT-Ⅱ 유닛 (52) 은 하위 (sub) 또는 네스팅된 4-포인트 DCT-Ⅱ 유닛들 (72), 8-포인트 DCT-Ⅱ 유닛 (72) 및 8-포인트 DCT-Ⅳ 유닛 (74) 모두를 호출하여, 16-포인트 DCT-Ⅱ 를 적용하여, 16×16 잔여 데이터 블록을 생성한다. 16-포인트 DCT-Ⅱ 유닛 (52) 은 일반적으로 그 잔여 블록을, 잔여 픽셀 데이터로서 표현되는 공간 영역으로부터, DCT 계수로 표현되는 주파수 영역으로 변환한다. 이러한 방식으로, 16-포인트 DCT-Ⅱ 유닛 (52) 은 하나 이상의 대응하는 사이즈의 DCT-Ⅱ 들을 잔여 데이터에 적용하여, DCT 계수들을 결정한다 (98). 변환 계수는 적어도 하나의 DC 계수 및 하나 이상의 AC 계수들을 포함하는 DCT 계수들을 포함할 수 있다.
양자화 유닛 (40) 은 잔여 변환 블록 계수를 양자화하여 (예를 들면, 라운딩하여), 비트 레이트를 더 감소시킨다 (100). 위에서 설명한 바와 같이, 양자화 유닛 (40) 은 대각선 스케일 인수 매트릭스 S 에 의해 위에서 식별된, 인수 분해 동안 제거된 인수를 포함시킴으로써, 스케일링된 16-포인트 DCT-Ⅱ 유닛 (52) 의 스케일링된 성질을 이용한다. 양자화가 곱셈을 일반적으로 포함하기 때문에, 이들 인수를 양자화 유닛 (40) 에 포함하는 것이 양자화 유닛 (40) 의 구현 복잡도를 증가시키지 않을 수 있다. 이 점에서, 스케일링된 16-포인트 DCT-Ⅱ 유닛 (52) 으로부터 인수를 제거하는 것에 의해, 양자화 유닛 (40) 의 구현 복잡도를 증가하지 않고, DCT-Ⅱ 유닛 (52) 의 구현 복잡도를 감소시킴으로써, 비디오 인코더 (20) 에 대한 구현 복잡도의 순 감소를 가져올 수도 있다.
엔트로피 코딩 유닛 (46) 은 그 양자화된 계수를 엔트로피 코딩하여, 비트 레이트를 더욱 더 감소시킨다. 엔트로피 코딩 유닛 (46) 은 일부의 경우에, 엔트로피 코딩이라 하는, 통계 무손실 코딩을 수행하여, 코딩된 비트스트림을 생성한다 (102). 엔트로피 코딩 유닛 (46) 은 양자화된 DCT 계수의 확률 분포를 모델링하고, 그 모델링한 확률 분포에 기초하여 코드북을 선택한다. 이 코드북을 이용하여, 엔트로피 코딩 유닛 (46) 은 각 양자화된 DCT 계수에 대해, 양자화된 DCT 계수를 압축하는 방식으로 코드들을 선택한다. 엔트로피 코딩 유닛 (46) 은 그 엔트로피 코딩된 계수를, 메모리 또는 저장 디바이스에 저장 및/또는 비디오 디코더 (26) 로 전송되는 코딩된 비트스트림으로 출력한다 (104).
복원 유닛 (42) 및 역변환 유닛 (44) 은 각각 양자화된 계수를 복원하고 역변환을 적용함으로써, 그 잔여 블록을 복원한다. 또한, 역변환 유닛 (44) 은 역 DCT (IDCT) 를 포함하며, 이를 일반적으로 도 3 에 대해서 아래에서 설명하는 16-포인트 DCT-Ⅲ 유닛 (68) 과 유사하게, 16-포인트 DCT-Ⅱ 유닛 (52) 의 역 동작을 수행하는 타입 Ⅲ 의 DCT 라 지칭한다. 합산 유닛 (50) 은 그 복원한 잔여 블록을 모션 보상 유닛 (36) 에 의해 생성한 모션 보상한 예측 블록에 추가함으로써, 메모리 (34) 에 저장하기 위한 복원된 비디오 블록을 생성한다. 이 복원한 비디오 블록은 후속 비디오 프레임에서 블록을 인코딩하기 위하여, 모션 추정 유닛 (32) 및 모션 보상 유닛 (36) 에 의해 사용된다.
도 6 은 본 개시물의 기술들에 따라서 구성되는 16-포인트 DCT-Ⅲ 을 적용할 때에, 도 3 의 비디오 디코더 (26) 과 같은 코딩 디바이스의 예시적인 동작을 도시하는 플로우 차트이다. 비디오 디코더 (26) 는 비디오 인코더 (20) 에 의해 인코딩되어진 인코딩된 비디오 비트스트림을 수신한다. 특히, 엔트로피 디코딩 유닛 (54) 은 그 인코딩된 비디오 비트스트림을 수신하고, 그 비트스트림으로부터 모션 벡터 및 블록 파티션을 포함할 수 있는 매크로블록 코딩 모드 및 모션 정보와 같은 다른 정보뿐만 아니라, 양자화된 잔여 계수 및 양자화된 파라미터들을 디코딩한다 (106, 108). 모션 보상 유닛 (56) 은 메모리 (62) 로부터 모션 벡터들와 블록 파티션들 및 하나 이상의 복원된 기준 프레임들을 수신하여, 예측 비디오 블록을 생성한다 (110).
복원 유닛 (58) 은 그 양자화된 블록 계수들을 역양자화, 즉 디퀀타이즈(de-quantizes) 한다 (112). 역변환 유닛 (60) 은 그 계수들에 대해 역변환, 예를 들면, 역 DCT을 적용하여, 잔여 블록들을 생성한다. 더 자세하게는, 역변환 유닛 (60) 은 스케일링된 16-포인트 DCT-Ⅲ 유닛 (68) 을 포함하고, 이 역변환 유닛 (60) 은 16-포인트 DCT-Ⅲ 유닛 (68) 을 작동시켜 계수들을 처리하고 이로써 잔여 블록들을 생성하게 한다 (114). 도 2 에 도시된 스케일링된 16-포인트 DCT-Ⅱ 유닛 (52) 의 역인 스케일링된 DCT-Ⅲ 유닛 (68) 은 상술한 방식으로, 그 계수들을 주파수 영역으로부터 공간 영역으로 변환하여, 그 잔여 블록들을 생성한다. 위의 양자화 유닛 (40) 과 유사하게, 복원 유닛 (58) 은, 인수분해 동안에 제거한 외부 인수들을 복원 과정에 삽입함으로써, 어떠한 구현 복잡도가 있다 하더라도 이를 거의 증가시키지 않고, 16-포인트 DCT-Ⅲ 유닛 (68) 의 스케일링된 성질을 이용한다. 스케일링된 16-포인트 DCT-Ⅲ 유닛 (68) 으로부터 인수를 제거하는 것에 의해, 구현 복잡도를 감소시킴으로써, 비디오 디코더 (26) 에 대한 복잡도의 순 감소를 가져올 수도 있다.
그 후, 그 예측 비디오 블록을 합산기 (66) 에 의해 잔여 블록들과 합산한 후, 디코딩된 블록을 형성한다 (116). 디블로킹 필터 (미도시) 를 적용하여 그 디코딩된 블록을 필터링하고, 블로킹 아티팩트를 제거할 수도 있다. 그 후, 그 필터링된 블록이 메모리 (62) 에 배치되며, 이는 후속 비디오 프레임들의 디코딩을 위해 기준 프레임을 제공하며, 또한 디코딩한 비디오를 생성하여 도 1 의 디스플레이 디바이스 (28) 와 같은 디스플레이 디바이스를 구동한다 (118).
하나 이상의 네스팅된 4-포인트 DCT-Ⅱ 및 DCT-Ⅲ 뿐만 아니라 하나 이상의 네스팅된 8-포인트 DCT-Ⅱ 및 DCT-Ⅲ 를 포함하는 사이즈 16의 DCT-Ⅱ 및 DCT-Ⅲ 에 관해서 위에서 설명하였지만, 이 기술은 이들 특정 사이즈에 제한되어서는 안된다. 대신, 이 기술은 작은 사이즈의 네스팅된 DCT-Ⅱ 및-Ⅲ를 포함하는 임의의 사이즈의 어떠한 DCT-Ⅱ 또는 DCT-Ⅲ에 적용할 수도 있다. 따라서, 이 점에 있어서 그 기술을 본 개시물에 설명한 예들에 제한해서는 안된다.
본 개시물의 기술들은, 모바일 전화와 같은 무선 통신 디바이스 핸드셋, 집적회로 (IC) 또는 일련의 IC (즉, 칩 세트) 를 포함하는, 다양한 디바이스들 또는 장치들에서 실행할 수 있다. 기능적인 양태들을 강조하기 위하여 제공되는 것으로 임의의 구성요들, 모듈들 또는 유닛들을 설명하였지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 반드시 요하는 것은 아니다. 또한, 여기서 설명한 기술은 하드웨어, 또는 하드웨어, 소프트웨어, 펌웨어의 임의의 조합으로 구현할 수 있다. 모듈, 유닛 또는 구성 요소로서 설명한 어떤 특징은, 일체형 로직 디바이스내에 함께, 또는 별개지만 상호 운용 가능한 로직 디바이스로서 따로 구현할 수도 있다. 일부의 경우, 여러 가지 특징들을 일체형 회로 칩 또는 칩셋과 같은 집적회로 디바이스로서 구현할 수 있다.
소프트웨어로 구현하는 경우, 이 기술은 프로세서에서 실행되는 경우, 위에서 설명한 하나 이상의 방법들 중 하나 이상을 수행하는 명령을 포함하는 컴퓨터-판독가능 매체에 의해 적어도 일부분 실현할 수 있다. 컴퓨터-판독가능 매체는 물리적 비일시적 구조인 컴퓨터-판독가능 저장 매체를 포함할 수 있으며, 패키징 재료를 포함할 수 있는 컴퓨터 프로그램 제품의 일부분을 형성할 수 있다. 컴퓨터-판독가능 저장 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM) 과 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적 소거 가능 PROM (EEPROM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수 있다.
코드 또는 명령은, 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로프로세서, 주문형 집적회로(ASIC), 필드 프로그래머블 로직 어레이(FPGA) 또는 다른 등가의 일체형 또는 별도의 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행할 수 있다. 따라서, 용어 "프로세서"는, 여기서 사용할 때, 어떠한 전술한 구조, 또는 여기서 설명한 기술의 구현에 적합한 다른 어떠한 구조를 지칭할 수 있다. 또한, 일부 양태들에서, 여기서 설명한 기능은 인코딩 및 디코딩을 위해 구성된 전용의 소프트웨어 모듈 또는 하드웨어 모듈 내에 제공되거나, 조합된 비디오 코덱에 포함될 수 있다. 또한, 이 기술은 하나 이상의 회로들 또는 로직 소자들에 완전히 구현할 수 있다.
또한, 본 개시물은 본 개시물에서 설명하는 기술들 중 하나 이상을 구현하는 회로를 포함하는 여러 가지 임의의 집적회로 디바이스를 고려한다. 그런 회로는, 단일 집적회로 칩으로, 또는 다수의 상호 운용 가능한 집적회로 회로 칩들로, 소위 칩세트로, 제공할 수 있다. 그런 집적회로 디바이스는 여러 가지 애플리케이션에 사용할 수 있으며, 그들 중 일부는 모바일 전화 핸드셋과 같은 무선 통신 디바이스들에서의 사용을 포함할 수 있다.
이 기술들의 여러 가지 양태를 설명하였다. 이들 및 다른 양태들은 다음 청구범위의 범위 이내이다.
Claims (53)
- 콘텐츠 데이터를 주파수 영역으로부터 공간 영역으로 변환하는 상이한 사이즈의 복수의 역 이산 코사인 변환 (IDCT) 들을 수행하는 16-포인트 IDCT 유닛을 포함하고,
상기 16-포인트 IDCT 유닛은,
사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 8-포인트 IDCT 유닛;
사이즈 4 의 복수의 IDCT 들 중 하나를 수행하는 제 1 의 4-포인트 IDCT 유닛으로서, 상기 8-포인트 IDCT 유닛은 상기 4-포인트 IDCT 유닛을 포함하는, 상기 제 1 의 4-포인트 IDCT 유닛; 및
제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛을 포함하는 역 8-포인트 DCT-Ⅳ 유닛으로서, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하는, 상기 역 8-포인트 DCT-Ⅳ 유닛을 포함하는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
상기 제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 상기 사이즈 4 의 복수의 IDCT들 중 하나를 동시에 수행하여, 상기 콘텐츠 데이터의 상이한 부분들을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
적어도 하나의 상기 8-포인트 IDCT 유닛은 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고,
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 것과 동시에, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분 및 제 3 부분 각각을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고, 그리고
상기 콘텐츠 데이터의 제 1 부분, 제 2 부분 및 제 3 부분은 서로 상이한, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
적어도 하나의 상기 8-포인트 IDCT 유닛은 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고,
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 것과 동시에, 상기 제 2 의 4-포인트 IDCT 유닛 또는 제 3 의 4-포인트 IDCT 유닛 중 어느 하나가 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고, 그리고
상기 콘텐츠 데이터의 제 1 부분은 상기 콘텐츠 데이터의 제 2 부분과 상이한, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1, 2, 11, 3, 9, 7, 15, 10, 15, 10, 17, 6, 18 및 1 의 값들로 설정되는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은, 상기 내부 인수들이 다이애딕 (dyadic) 유리수 값들이 되도록 정규화되고,
내부 인수들 A 및 B를 정규화하는데 사용되는 제 1 분모는 2의 1 제곱이고,
내부 인수들 C, D, E 및 F를 정규화하는데 사용되는 제 2 분모는 2의 2 제곱이고, 그리고
내부 인수들 G, H, I, J, K, L, M 및 N을 정규화하는데 사용되는 제 3 분모는 2의 3 제곱인, 데이터 코딩을 위한 장치. - 제 6 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1/2, 1, 11/16, 3/16, 9/16, 7/16, 15/16, 10/16, 15/16, 10/16, 17/16, 6/16, 18/16 및 1/16의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 장치. - 제 6 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1/2, 1, 11/16, 3/16, 9/16, 7/16, 34/64, 27/64, 38/64, 21/64, 42/64, 11/64, 43/64 및 6/64의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 장치. - 제 6 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 2/4, 5/4, 19/32, 4/32, 16/32, 11/32, 34/64, 27/64, 38/64, 21/64, 42/64, 11/64, 43/64 및 6/64의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1, 2, 11, 3, 9, 7, 34, 27, 38, 21, 42, 11, 43 및 6의 값들로 설정되는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 2, 5, 19, 4, 16, 11, 34, 27, 38, 21, 42, 11, 43 및 6의 값들로 설정되는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
상기 16-포인트 IDCT 유닛은 사이즈 16 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터를 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
상기 16-포인트 IDCT 유닛은 상기 콘텐츠 데이터를 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고 스케일링된 IDCT 계수들을 출력하는 상이한 사이즈의 복수의 스케일링된 IDCT 를 수행하는 스케일링된 16-포인트 IDCT 유닛을 포함하고,
상기 장치는 양자화된 풀 (full) IDCT 계수들을 생성하기 위해서 스케일 인수를 상기 스케일링된 IDCT 계수들에 적용하는 양자화 유닛을 더 포함하는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
상기 장치는 멀티미디어 코딩 디바이스를 포함하고, 그리고
상기 콘텐츠 데이터는 비디오 데이터, 이미지 데이터 및 오디오 데이터 중 하나 이상을 포함하는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
상기 장치는 핸드셋을 포함하는, 데이터 코딩을 위한 장치. - 제 1 항에 있어서,
16-포인트 IDCT-Ⅱ 유닛은, 상이한 사이즈들의 2차원 IDCT-Ⅱ를 구현하기 위해서 상이한 사이즈들의 복수의 IDCT-Ⅱ 중 2 이상을 수행하고,
상기 상이한 사이즈들은 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 를 포함하는, 데이터 코딩을 위한 장치. - 코딩 디바이스를 이용하여 콘텐츠 데이터를 수신하는 단계; 및
상기 코딩 디바이스 내에 포함되는 16-포인트 역 이산 코사인 변환 (IDCT) 유닛을 이용하여 상기 수신한 콘텐츠 데이터를 주파수 영역으로부터 공간 영역으로 변환하는 복수의 IDCT 들 중 하나 이상을 수행하는 단계를 포함하고,
상기 16-포인트 IDCT 유닛은,
사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 적어도 하나의 8-포인트 IDCT 유닛;
사이즈 4 의 복수의 IDCT 들 중 하나를 수행하는 제 1 의 4-포인트 IDCT 유닛으로서, 상기 적어도 하나의 8-포인트 IDCT 유닛은 상기 제 1 의 4-포인트 IDCT 유닛을 포함하는, 상기 제 1 의 4-포인트 IDCT 유닛; 및
제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛을 포함하는 역 8-포인트 DCT-Ⅳ 유닛으로서, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하는, 상기 역 8-포인트 DCT-Ⅳ 유닛을 포함하는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛을 이용하여, 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 동시에 수행하여, 상기 콘텐츠 데이터의 상이한 부분들을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는 단계를 더 포함하는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 적어도 하나의 8-포인트 IDCT 유닛을 이용하여, 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는 단계, 및
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT들 중 하나를 수행하는 것과 동시에, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각을 이용하여, 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분 및 제 3 부분 각각을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는 단계를 더 포함하고,
상기 콘텐츠 데이터의 제 1 부분, 제 2 부분 및 제 3 부분은 서로 상이한, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 적어도 하나의 8-포인트 IDCT 유닛을 이용하여, 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는 단계, 및
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT들 중 하나를 수행하는 것과 동시에, 상기 제 2 의 4-포인트 IDCT 유닛 또는 상기 제 3 의 4-포인트 IDCT 유닛 중 어느 하나를 이용하여, 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는 단계를 더 포함하고,
상기 콘텐츠 데이터의 제 1 부분은 상기 콘텐츠 데이터의 제 2 부분과 상이한, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1, 2, 11, 3, 9, 7, 15, 10, 15, 10, 17, 6, 18 및 1 의 값들로 설정되는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은, 상기 내부 인수들이 다이애딕 유리수 값들이 되도록 정규화되고,
내부 인수들 A 및 B를 정규화하는데 사용되는 제 1 분모는 2의 1 제곱이고,
내부 인수들 C, D, E 및 F를 정규화하는데 사용되는 제 2 분모는 2의 2 제곱이고, 그리고
내부 인수들 G, H, I, J, K, L, M 및 N을 정규화하는데 사용되는 제 3 분모는 2의 3 제곱인, 데이터 코딩을 위한 방법. - 제 22 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 각각 1/2, 1, 11/16, 3/16, 9/16, 7/16, 15/16, 10/16, 15/16, 10/16, 17/16, 6/16, 18/16 및 1/16의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 방법. - 제 22 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 각각 1/2, 1, 11/16, 3/16, 9/16, 7/16, 34/64, 27/64, 38/64, 21/64, 42/64, 11/64, 43/64 및 6/64의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 방법. - 제 22 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 각각 2/4, 5/4, 19/32, 4/32, 16/32, 11/32, 34/64, 27/64, 38/64, 21/64, 42/64, 11/64, 43/64 및 6/64의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1, 2, 11, 3, 9, 7, 34, 27, 38, 21, 42, 11, 43 및 6의 값들로 설정되는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
상기 8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 2, 5, 19, 4, 16, 11, 34, 27, 38, 21, 42, 11, 43 및 6의 값들로 설정되는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 16-포인트 IDCT 유닛은 사이즈 16 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터를 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 16-포인트 IDCT 유닛은 상기 콘텐츠 데이터를 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고 스케일링된 IDCT 계수들을 출력하는 상이한 사이즈의 복수의 스케일링된 IDCT 를 수행하는 스케일링된 16-포인트 IDCT 유닛을 포함하고,
상기 방법은 양자화된 풀 IDCT 계수들을 생성하기 위해서 양자화 유닛을 이용하여 스케일 인수들을 상기 스케일링된 IDCT 계수들에 적용하는 단계를 더 포함하는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 방법은 멀티미디어 코딩 디바이스 내에서 수행되고, 그리고
상기 콘텐츠 데이터는 비디오 데이터, 이미지 데이터 및 오디오 데이터 중 하나 이상을 포함하는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상기 방법은 핸드셋 내에서 수행되는, 데이터 코딩을 위한 방법. - 제 17 항에 있어서,
상이한 사이즈들의 2차원 IDCT-Ⅱ 을 구현하기 위해서 상이한 사이즈들의 복수의 IDCT-Ⅱ 중 2 이상을 수행하는 단계를 더 포함하고,
상기 상이한 사이즈들은 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 를 포함하는, 데이터 코딩을 위한 방법. - 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서,
상기 명령들은, 실행되는 경우, 프로세서로 하여금,
코딩 디바이스를 이용하여 콘텐츠 데이터를 수신하게 하고; 그리고
상기 코딩 디바이스 내에 포함되는 16-포인트 역 이산 코사인 변환 (IDCT) 유닛을 이용하여, 상기 수신한 콘텐츠 데이터를 주파수 영역으로부터 공간 영역으로 변환하는 복수의 IDCT 들 중 하나 이상을 수행하게 하고,
상기 16-포인트 IDCT 유닛은,
사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 적어도 하나의 8-포인트 IDCT 유닛;
사이즈 4 의 복수의 스케일링된 IDCT 들 중 하나를 수행하는 제 1 의 4-포인트 IDCT 유닛으로서, 상기 적어도 하나의 8-포인트 IDCT 유닛은 상기 제 1 의 4-포인트 IDCT 유닛을 포함하는, 상기 제 1 의 4-포인트 IDCT 유닛; 및
제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛을 포함하는 역 8-포인트 DCT-Ⅳ 유닛으로서, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛은 각각은 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하는, 역 8-포인트 DCT-Ⅳ 유닛을 포함하는, 컴퓨터-판독가능 저장 매체. - 제 33 항에 있어서,
상기 명령들은, 상기 프로세서로 하여금,
상기 제 1 의 4-포인트 IDCT 유닛, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛을 이용하여, 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 동시에 수행하여, 상기 콘텐츠 데이터의 상이한 부분들을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하게 하는, 컴퓨터-판독가능 저장 매체. - 제 33 항에 있어서,
상기 명령들은 또한, 상기 프로세서로 하여금,
상기 적어도 하나의 8-포인트 IDCT 유닛을 이용하여, 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하게 하고;
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT들 중 하나를 수행하는 것과 동시에, 상기 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각을 이용하여, 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분 및 제 3 부분 각각을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하게 하고; 그리고
상기 콘텐츠 데이터의 제 1 부분, 제 2 부분 및 제 3 부분은 서로 상이한, 컴퓨터-판독가능 저장 매체. - 제 33 항에 있어서,
상기 명령들은 또한, 상기 프로세서로 하여금,
상기 적어도 하나의 8-포인트 IDCT 유닛을 이용하여, 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하게 하고;
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT들 중 하나를 수행하는 것과 동시에, 상기 제 2 의 4-포인트 IDCT 유닛 또는 상기 제 3 의 4-포인트 IDCT 유닛 중 어느 하나를 이용하여, 상기 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하게 하고; 그리고
상기 콘텐츠 데이터의 제 1 부분과 상기 콘텐츠 데이터의 제 2 부분은 상이한, 컴퓨터-판독가능 저장 매체. - 제 33 항에 있어서,
상기 명령은 또한, 상기 프로세서로 하여금,
상이한 사이즈들의 2차원 IDCT-Ⅱ 를 구현하기 위해서 상이한 사이즈들의 복수의 IDCT-Ⅱ 중 2 이상을 수행하게 하고,
상기 상이한 사이즈들은 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 를 포함하는, 컴퓨터-판독가능 저장 매체. - 콘텐츠 데이터를 수신하는 수단; 및
상기 수신한 콘텐츠 데이터를 공간 영역으로부터 주파수 영역으로 변환하는 복수의 역 이산 코사인 변환 (IDCT) 들 중 하나 이상을 수행하는 수단을 포함하고,
상기 복수의 IDCT들 중 하나 이상을 수행하는 수단은,
사이즈 8 의 복수의 IDCT-Ⅱ 중 하나를 수행하는 수단;
사이즈 4 의 복수의 스케일링된 IDCT-Ⅱ 중 제 1 의 스케일링된 IDCT-Ⅱ 를 수행하는 제 1 수단으로서, 상기 사이즈 8 의 복수의 IDCT-Ⅱ 중 하나를 수행하는 수단은 상기 사이즈 4 의 복수의 스케일링된 IDCT-Ⅱ 중 하나를 수행하는 제 1 수단을 포함하는, 상기 제 1 의 스케일링된 IDCT-Ⅱ 를 수행하는 제 1 수단;
사이즈 4 의 복수의 IDCT-Ⅱ 중 제 2 의 IDCT-Ⅱ 를 수행하는 제 2 수단; 및
상기 사이즈 4 의 복수의 스케일링된 IDCT-Ⅱ 중 제 3 의 스케일링된 IDCT-Ⅱ 를 수행하는 제 3 수단을 포함하는, 데이터 코딩을 위한 디바이스. - 제 38 항에 있어서,
상기 사이즈 4 의 복수의 스케일링된 IDCT-Ⅱ 중 제 1 의 스케일링된 IDCT-Ⅱ 를 수행하는 제 1 수단은 제 1 의 4-포인트 IDCT-Ⅱ 유닛을 포함하고,
상기 복수의 DCT-Ⅱ 중 하나 이상을 수행하는 수단은 16-포인트 IDCT-Ⅱ 유닛을 포함하고,
상기 사이즈 4 의 복수의 IDCT-Ⅱ 중 제 2 의 IDCT-Ⅱ 를 수행하는 제 2 수단은 제 2 의 4-포인트 IDCT-Ⅱ 유닛을 포함하고,
상기 사이즈 4 의 복수의 IDCT-Ⅱ 중 제 3 의 IDCT-Ⅱ 를 수행하는 제 3 수단은 제 3 의 4-포인트 IDCT-Ⅱ 유닛을 포함하고,
상기 사이즈 8 의 복수의 IDCT-Ⅱ 중 하나를 수행하는 수단은 상기 제 1 의 4-포인트 IDCT-Ⅱ 유닛을 포함하는 8-포인트 IDCT-Ⅱ 유닛을 포함하고,
16-포인트 IDCT 유닛은 역 8-포인트 DCT-Ⅳ 유닛을 포함하고, 그리고
상기 역 8-포인트 DCT-Ⅳ 유닛은 상기 제 2 의 4-포인트 IDCT-Ⅱ 유닛 및 상기 제 3 의 4-포인트 DCT-Ⅱ 유닛을 포함하는, 데이터 코딩을 위한 디바이스. - 제 39 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛 각각은 사이즈 4 의 복수의 IDCT들 중 하나를 동시에 수행하여, 상기 콘텐츠 데이터의 상이한 부분들을 주파수 영역으로부터 공간 영역으로 변환하는, 데이터 코딩을 위한 디바이스. - 제 39 항에 있어서,
적어도 하나의 8-포인트 IDCT 유닛은 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고,
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 것과 동시에, 제 2 의 4-포인트 IDCT 유닛 및 상기 제 3 의 4-포인트 IDCT 유닛 각각은 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분 및 제 3 부분 각각을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고, 그리고
상기 콘텐츠 데이터의 제 1 부분, 제 2 부분 및 제 3 부분은 서로 상이한, 데이터 코딩을 위한 디바이스. - 제 39 항에 있어서,
적어도 하나의 8-포인트 IDCT 유닛은 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 1 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고,
상기 8-포인트 IDCT 유닛이 상기 사이즈 8 의 복수의 IDCT 들 중 하나를 수행하는 것과 동시에, 제 2 의 4-포인트 IDCT 유닛 또는 제 3 의 4-포인트 IDCT 유닛 중 어느 하나가 사이즈 4 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터의 제 2 부분을 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고, 그리고
상기 콘텐츠 데이터의 제 1 부분과 상기 콘텐츠 데이터의 제 2 부분은 상이한, 데이터 코딩을 위한 디바이스. - 제 39 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1, 2, 11, 3, 9, 7, 15, 10, 15, 10, 17, 6, 18 및 1 의 값들로 설정되는, 데이터 코딩을 위한 디바이스. - 제 39 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은, 상기 내부 인수들이 다이애딕 유리수 값들이 되도록 정규화되고,
내부 인수들 A 및 B를 정규화하는데 사용되는 제 1 분모는 2의 1 제곱이고,
내부 인수들 C, D, E 및 F를 정규화하는데 사용되는 제 2 분모는 2의 2 제곱이고, 그리고
내부 인수들 G, H, I, J, K, L, M 및 N을 정규화하는데 사용되는 제 3 분모는 2의 3 제곱인, 데이터 코딩을 위한 디바이스. - 제 44 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 각각 1/2, 1, 11/16, 3/16, 9/16, 7/16, 15/16, 10/16, 15/16, 10/16, 17/16, 6/16, 18/16 및 1/16의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 디바이스. - 제 44 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 각각 1/2, 1, 11/16, 3/16, 9/16, 7/16, 34/64, 27/64, 38/64, 21/64, 42/64, 11/64, 43/64 및 6/64의 값들로 설정되도록 상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 디바이스. - 제 44 항에 있어서,
상기 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 각각 2/4, 5/4, 19/32, 4/32, 16/32, 11/32, 34/64, 27/64, 38/64, 21/64, 42/64, 11/64, 43/64 및 6/64의 값들로 설정되도록 내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N이 정규화되는, 데이터 코딩을 위한 디바이스. - 제 39 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 1, 2, 11, 3, 9, 7, 34, 27, 38, 21, 42, 11, 43 및 6의 값들로 설정되는, 데이터 코딩을 위한 디바이스. - 제 39 항에 있어서,
제 1 의 4-포인트 IDCT 유닛, 제 2 의 4-포인트 IDCT 유닛 및 제 3 의 4-포인트 IDCT 유닛 각각은 내부 인수들 A 및 B를 포함하고,
8-포인트 IDCT 유닛은 내부 인수들 C, D, E 및 F를 포함하고,
상기 역 8-포인트 DCT-Ⅳ 유닛은 내부 인수들 G, H, I, J, K, L, M 및 N을 포함하고, 그리고
내부 인수들 A, B, C, D, E, F, G, H, I, J, K, L, M 및 N은 각각 2, 5, 19, 4, 16, 11, 34, 27, 38, 21, 42, 11, 43 및 6의 값들로 설정되는, 데이터 코딩을 위한 디바이스. - 제 38 항에 있어서,
상기 복수의 IDCT들 중 하나 이상을 수행하는 수단은 사이즈 16 의 복수의 IDCT 들 중 하나를 수행하여, 상기 콘텐츠 데이터를 상기 주파수 영역으로부터 상기 공간 영역으로 변환하는, 데이터 코딩을 위한 디바이스. - 제 38 항에 있어서,
상기 복수의 IDCT들 중 하나 이상을 수행하는 수단은 상기 콘텐츠 데이터를 상기 주파수 영역으로부터 상기 공간 영역으로 변환하고 스케일링된 IDCT 계수들을 출력하는 상이한 사이즈들의 복수의 스케일링된 IDCT 들을 수행하는 수단을 포함하고,
상기 디바이스는 양자화된 풀 IDCT 계수들을 생성하기 위해서 스케일 인수들을 상기 스케일링된 IDCT 계수들에 적용하는 수단을 더 포함하는, 데이터 코딩을 위한 디바이스. - 제 38 항에 있어서,
상기 디바이스는 멀티미디어 코딩 디바이스를 포함하고, 그리고
상기 콘텐츠 데이터는 비디오 데이터, 이미지 데이터 및 오디오 데이터 중 하나 이상을 포함하는, 데이터 코딩을 위한 디바이스. - 제 38 항에 있어서,
상기 디바이스는 핸드셋을 포함하는, 데이터 코딩을 위한 디바이스.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21988509P | 2009-06-24 | 2009-06-24 | |
US61/219,885 | 2009-06-24 | ||
US12/820,346 | 2010-06-22 | ||
US12/820,346 US9081733B2 (en) | 2009-06-24 | 2010-06-22 | 16-point transform for media data coding |
PCT/US2010/039676 WO2011005578A2 (en) | 2009-06-24 | 2010-06-23 | 16-point transform for media data coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120048571A KR20120048571A (ko) | 2012-05-15 |
KR101315629B1 true KR101315629B1 (ko) | 2013-10-08 |
Family
ID=43429782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127001865A KR101315629B1 (ko) | 2009-06-24 | 2010-06-23 | 미디어 데이터 코딩을 위한 16-포인트 변환 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9081733B2 (ko) |
EP (1) | EP2446373A2 (ko) |
JP (1) | JP2013502625A (ko) |
KR (1) | KR101315629B1 (ko) |
CN (1) | CN102804172A (ko) |
BR (1) | BRPI1013297A2 (ko) |
TW (1) | TW201108744A (ko) |
WO (1) | WO2011005578A2 (ko) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110849B2 (en) * | 2009-04-15 | 2015-08-18 | Qualcomm Incorporated | Computing even-sized discrete cosine transforms |
US8762441B2 (en) * | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
US9069713B2 (en) * | 2009-06-05 | 2015-06-30 | Qualcomm Incorporated | 4X4 transform for media coding |
US9075757B2 (en) * | 2009-06-24 | 2015-07-07 | Qualcomm Incorporated | 16-point transform for media data 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 |
US9378185B2 (en) | 2010-09-30 | 2016-06-28 | Texas Instruments Incorporated | Transform and quantization architecture for video coding and decoding |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
RU2014105292A (ru) * | 2011-07-13 | 2015-08-20 | Телефонактиеболагет Л М Эрикссон (Пабл) | Кодер, декодер и способы их работы для управления опорными изображениями |
TW201842453A (zh) * | 2011-11-07 | 2018-12-01 | 美商Vid衡器股份有限公司 | 使佣偶奇整數轉換視訊及資料處理 |
CN102387367B (zh) * | 2011-11-08 | 2014-01-08 | 复旦大学 | 适用于多种视频标准、多尺寸二维整数余弦变换的通用方法 |
CN102404569B (zh) * | 2011-11-08 | 2014-01-08 | 复旦大学 | 可用于多种视频标准、多尺寸二维整数余弦反变换的通用方法 |
US8719321B2 (en) * | 2011-12-11 | 2014-05-06 | Hong Kong Applied Science and Technology Research Institute Company Limited | Adaptive block-size transform using LLMICT |
US9596463B2 (en) | 2012-02-22 | 2017-03-14 | Qualcomm Incorporated | Coding of loop filter parameters using a codebook in video coding |
CN105850124B (zh) * | 2013-12-22 | 2019-12-31 | Lg电子株式会社 | 使用量化误差的额外的控制编码、解码视频信号的方法和装置 |
KR101601864B1 (ko) * | 2014-02-25 | 2016-03-10 | 숭실대학교산학협력단 | 동영상 코덱의 역변환 방법 및 그 장치 |
CN105100811B (zh) * | 2014-05-14 | 2018-04-03 | 北京君正集成电路股份有限公司 | 一种视频变换的实现方法及装置 |
US10904573B2 (en) * | 2017-11-30 | 2021-01-26 | Embry-Riddle Aeronautical University, Inc. | Reduced multiplicative complexity discrete cosine transform (DCT) circuitry |
US10687081B2 (en) * | 2018-06-29 | 2020-06-16 | Tencent America LLC | Method, apparatus and medium for decoding or encoding |
US10666981B2 (en) | 2018-06-29 | 2020-05-26 | Tencent America LLC | Method, apparatus and medium for decoding or encoding |
US11412258B2 (en) | 2020-02-12 | 2022-08-09 | Tencent America LLC | Line graph transforms (LGTs) using 8-bit and 10-bit cores |
US11405647B2 (en) * | 2020-02-18 | 2022-08-02 | Tencent America LLC | Primary transforms using 8-bit and 10-bit cores |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010043396A (ko) * | 1998-05-07 | 2001-05-25 | 윌리암 제이. 버크 | 압축된 이미지들을 스케일링하는 방법 및 장치 |
KR20030072338A (ko) * | 2000-10-23 | 2003-09-13 | 인터내셔널 비지네스 머신즈 코포레이션 | 스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 변환 |
US20070156398A1 (en) | 2006-01-04 | 2007-07-05 | Quanta Computer Inc. | Subband synthesis filtering process and apparatus |
KR20080107474A (ko) * | 2006-03-29 | 2008-12-10 | 퀄컴 인코포레이티드 | 스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인 |
Family Cites Families (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2581463B1 (fr) | 1985-05-03 | 1989-09-08 | Thomson Csf | Dispositifs de calcul de transformees cosinus, dispositif de codage et dispositif de decodage d'images comportant de tels dispositifs de calcul |
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 |
TW284869B (ko) | 1994-05-27 | 1996-09-01 | Hitachi Ltd | |
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 |
CN1296852C (zh) | 1997-11-17 | 2007-01-24 | 索尼电子有限公司 | 用于采用离散变换进行数字视频数据去压缩的方法和*** |
US6252994B1 (en) | 1998-01-26 | 2001-06-26 | Xerox Corporation | Adaptive quantization compatible with the JPEG baseline sequential mode |
JP2001346213A (ja) | 2000-06-02 | 2001-12-14 | Nec Corp | 離散コサイン変換装置及びその離散コサイン変換方法 |
WO2001059603A1 (en) | 2000-02-09 | 2001-08-16 | Cheng T C | 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 |
ATE363183T1 (de) | 2001-08-24 | 2007-06-15 | Koninkl Philips Electronics Nv | Addieren von halbbildern eines bildes |
US7082450B2 (en) | 2001-08-30 | 2006-07-25 | Nokia Corporation | Implementation of a transform and of a subsequent quantization |
US6882685B2 (en) | 2001-09-18 | 2005-04-19 | Microsoft Corporation | Block transform and quantization for image and video coding |
KR100481067B1 (ko) | 2001-09-28 | 2005-04-07 | 브이케이 주식회사 | 분산 산술 처리장치 및 그를 이용한 이차원 이산여현변환 처리장치 |
US7088791B2 (en) | 2001-10-19 | 2006-08-08 | Texas Instruments Incorporated | Systems and methods for improving FFT signal-to-noise ratio by identifying stage without bit growth |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
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 |
US20060069035A1 (en) * | 2002-05-08 | 2006-03-30 | Higazi Abd Al-Roof | Peptide for regulation of urokinase plasminogen activator and method of optimizing therapeutic efficacy |
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 |
TWI289992B (en) | 2003-12-03 | 2007-11-11 | Via Tech Inc | Method and device for sharing MPEG frame buffers |
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 |
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 |
US8595281B2 (en) | 2006-01-11 | 2013-11-26 | Qualcomm Incorporated | Transforms with common factors |
CN100562111C (zh) | 2006-03-28 | 2009-11-18 | 华为技术有限公司 | 离散余弦逆变换方法及其装置 |
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 |
US8548815B2 (en) | 2007-09-19 | 2013-10-01 | Qualcomm Incorporated | Efficient design of MDCT / IMDCT filterbanks for speech and audio coding applications |
US8654833B2 (en) | 2007-09-26 | 2014-02-18 | Qualcomm Incorporated | Efficient transformation techniques for video coding |
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 | 삼성전자주식회사 | 영상 데이터의 디블록킹 필터링 방법 및 디블록킹 필터 |
CN101330616B (zh) | 2008-07-31 | 2011-04-13 | 上海交通大学 | 视频解码过程中反离散余弦变换的硬件实现装置及方法 |
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 |
US8762441B2 (en) | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
US8451904B2 (en) | 2009-06-24 | 2013-05-28 | Qualcomm Incorporated | 8-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 |
CN101989253B (zh) | 2009-07-31 | 2012-08-29 | 鸿富锦精密工业(深圳)有限公司 | 离散余弦转换电路及使用其的影像处理装置 |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
-
2010
- 2010-06-22 US US12/820,346 patent/US9081733B2/en not_active Expired - Fee Related
- 2010-06-23 CN CN2010800276539A patent/CN102804172A/zh active Pending
- 2010-06-23 WO PCT/US2010/039676 patent/WO2011005578A2/en active Application Filing
- 2010-06-23 KR KR1020127001865A patent/KR101315629B1/ko not_active IP Right Cessation
- 2010-06-23 JP JP2012517695A patent/JP2013502625A/ja active Pending
- 2010-06-23 EP EP10730934A patent/EP2446373A2/en not_active Withdrawn
- 2010-06-23 BR BRPI1013297A patent/BRPI1013297A2/pt not_active IP Right Cessation
- 2010-06-24 TW TW099120640A patent/TW201108744A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010043396A (ko) * | 1998-05-07 | 2001-05-25 | 윌리암 제이. 버크 | 압축된 이미지들을 스케일링하는 방법 및 장치 |
KR20030072338A (ko) * | 2000-10-23 | 2003-09-13 | 인터내셔널 비지네스 머신즈 코포레이션 | 스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 변환 |
US20070156398A1 (en) | 2006-01-04 | 2007-07-05 | Quanta Computer Inc. | Subband synthesis filtering process and apparatus |
KR20080107474A (ko) * | 2006-03-29 | 2008-12-10 | 퀄컴 인코포레이티드 | 스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인 |
Also Published As
Publication number | Publication date |
---|---|
KR20120048571A (ko) | 2012-05-15 |
JP2013502625A (ja) | 2013-01-24 |
BRPI1013297A2 (pt) | 2016-03-29 |
US9081733B2 (en) | 2015-07-14 |
WO2011005578A2 (en) | 2011-01-13 |
WO2011005578A3 (en) | 2012-05-18 |
US20110153699A1 (en) | 2011-06-23 |
EP2446373A2 (en) | 2012-05-02 |
CN102804172A (zh) | 2012-11-28 |
TW201108744A (en) | 2011-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101315629B1 (ko) | 미디어 데이터 코딩을 위한 16-포인트 변환 | |
KR101315565B1 (ko) | 미디어 데이터 코딩을 위한 16-포인트 변환 | |
US8718144B2 (en) | 8-point transform for media data coding | |
US9319685B2 (en) | 8-point inverse discrete cosine transform including odd and even portions for media data coding | |
US9110849B2 (en) | Computing even-sized discrete cosine transforms | |
US8762441B2 (en) | 4X4 transform for media coding | |
US9069713B2 (en) | 4X4 transform for media 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 |
|
LAPS | Lapse due to unpaid annual fee |