KR102231975B1 - 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술 - Google Patents

순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술 Download PDF

Info

Publication number
KR102231975B1
KR102231975B1 KR1020167035767A KR20167035767A KR102231975B1 KR 102231975 B1 KR102231975 B1 KR 102231975B1 KR 1020167035767 A KR1020167035767 A KR 1020167035767A KR 20167035767 A KR20167035767 A KR 20167035767A KR 102231975 B1 KR102231975 B1 KR 102231975B1
Authority
KR
South Korea
Prior art keywords
matrix
dct
transform matrix
forward transform
transform
Prior art date
Application number
KR1020167035767A
Other languages
English (en)
Other versions
KR20170007467A (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 KR20170007467A publication Critical patent/KR20170007467A/ko
Application granted granted Critical
Publication of KR102231975B1 publication Critical patent/KR102231975B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Discrete Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (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)

Abstract

일반적으로 다양한 실시예는 정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하고, 처리 회로에 의해, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하기 위한 장치, 방법 및 다른 기술과 관련된다. 또한, 다양한 기술은 처리 회로에 의해, 판단에 적어도 부분적으로 기초하여 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하는 것을 포함할 수 있다.

Description

순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술{TECHNIQUES FOR PERFORMING A FORWARD TRANSFORMATION BY A VIDEO ENCODER USING A FORWARD TRANSFORM MATRIX}
여기에 설명된 실시예는 일반적으로 원시 비디오 스트림(raw video stream)을 처리하는 기술에 관한 것이다. 보다 구체적으로, 기술은 원시 비디오 스트림의 하나 이상의 비디오 프레임을 인코딩하기 위해 순방향 변환을 적용하는 것을 포함할 수 있다.
아날로그 비디오 신호에 기초하는 풀 모션 비디오 디스플레이가 오랫동안 텔레비전 형태로 이용 가능했다. 최근 컴퓨터 처리 능력 및 경제성이 향상됨에 따라 디지털 비디오 신호에 기초하는 풀 모션 비디오 디스플레이가 광범위하게 이용 가능해지고 있다. 디지털 비디오 시스템은 풀 모션 비디오 시퀀스를 생성, 수정, 전송, 저장 및 재생할 때 기존의 아날로그 비디오 시스템에 비해 상당한 향상을 제공할 수 있다.
디지털 비디오는 연속적으로 재생되거나 렌더링되는 수많은 프레임을 포함한다. 각 프레임은 특정 시스템의 디스플레이 해상도에 기초하여 픽셀의 2차원 배열로 형성된 스틸 이미지이다. 일반적으로 비디오 내의 원시 디지털 정보의 양은 방대하고, 많은 양의 저장소를 차지하며, 전송시 상당한 양의 대역폭을 사용한다.
이러한 방대한 양의 디지털 비디오 정보를 저장하거나 전송하는 데 있어서의 제한을 해결하기 위해, 다양한 비디오 압축 표준 또는 프로세스가 확립되었다. 경우에 따라, 비디오 인코더를 사용하여 비디오 데이터를 취하고, 이를 더 적은 공간을 차지하는 포맷으로 인코딩한다. 결과적으로, 비디오 정보를 송신 및 수신하는 디바이스 사이에서 소비되는 대역폭이 보다 효율적으로 사용될 수 있거나, 이러한 디바이스 사이에서 동시에 더 많은 데이터가 전송될 수 있다.
도 1은 비디오 프레임 처리 시스템의 예시적인 실시예를 도시한다.
도 2는 32x32 DCT 순방향 변환 행렬의 예시적인 실시예를 도시한다.
도 3은 4x4 ADST 순방향 변환 행렬의 다른 예시적인 실시예를 도시한다.
도 4a/4b는 16x16 DCT 순방향 변환 행렬을 도출하기 위한 예시적인 실시예를 도시한다.
도 5a/5b는 8x8 DCT 순방향 변환 행렬을 도출하기 위한 예시적인 실시예를 도시한다.
도 6a/6b는 4x4 DCT 순방향 변환 행렬을 도출하기 위한 예시적인 실시예를 도시한다.
도 7a/7b는 16x16 ADST 순방향 변환 행렬을 도출하기 위한 예시적인 실시예를 도시한다.
도 8a/8b는 8x8 ADST 순방향 변환 행렬을 도출하기 위한 예시적인 실시예를 도시한다.
도 9는 제1 논리 흐름의 예시적인 실시예를 도시한다.
도 10은 32x32 DCT 순방향 변환 행렬의 제2 실시예를 도시한다.
도 11은 16x16 DCT 순방향 변환 행렬의 제2 실시예를 도시한다.
도 12는 8x8 DCT 순방향 변환 행렬의 제2 실시예를 도시한다.
도 13은 16x16 ADST 순방향 변환 행렬의 제2 실시예를 도시한다.
도 14는 8x8 ADST 순방향 변환 행렬의 제2 실시예를 도시한다.
도 15는 컴퓨팅 시스템의 예시적인 실시예를 도시한다.
도 16은 컴퓨팅 아키텍처의 예시적인 실시예를 도시한다.
다양한 실시예는 일반적으로 순방향 변환 행렬을 사용하여 비디오 스트림에 대해 순방향 변환을 수행하기 위한 장치, 시스템 및 방법에 관한 것이다. 비디오 프레임은 인코딩될 수 있으며, 순방향 변환 행렬은 Google® Corporation에서 개발한 VP9 비디오 압축 표준을 기반으로 할 수 있다. 그러나, 다양한 실시예는 이러한 방식으로 제한되지 않을 수 있으며, 이하의 설명의 다양한 양태는 ITU-T/ISO H.264로 또는 AVC(advanced video codec) 및 MPEG-4 Part로 알려진 국제 ITU-T 국제 표준화 기구(ISO) 비디오 압축 표준과 같은 임의의 인코딩 표준에 적용될 수 있다. 또한, 비디오 프레임은 ISO/IEC 23008-2 MPEG-H Part 2 및 ITU-T H.265로서 ISO/IEC MPEG(Moving Picture Experts Group)과 ITU-T VCEG(Video Coding Experts Group)에 의해 공동으로 개발된 H.264/MPEG-4 AVC(Advanced Video Coding)의 대체물인 고효율 비디오 코딩(HEVC) 비디오 압축 표준에 따라 처리될 수 있다.
일부 실시예에서, 순방향 변환 행렬은 VP9와 같은, 표준 중 적어도 하나에 기초하는 선형 변환 알고리즘 또는 프로세스로부터 도출되거나 생성될 수 있다. 특정 변환 유닛 크기 및 유형에 대한 순방향 변환 행렬은 선형 변환 알고리즘의 각 스테이지를 중간 행렬로 변환하고 중간 행렬을 합산하여 최종 순방향 변환 행렬을 생성함으로써 생성될 수 있다. 이하에서 더 상세히 설명되는 바와 같이, 각 중간 스테이지 후에 최종 스테이지까지 또는 최종 순방향 변환 행렬이 생성될 때 통상적으로 발생하는 라운딩을 지연시킴으로써 다양한 개선이 실현될 수 있다. 지연된 라운딩을 갖는 이러한 순방향 변환 행렬은 실제 선형 변환 알고리즘이나 프로세스가 사용될 때보다 더 나은 결과를 생성할 수 있다.
지연된 라운딩을 이용함으로써 실현될 수 있는 다른 이점은 다른 순방향 변환 행렬로부터 순방향 변환 행렬을 도출 또는 생성하는 능력이다. 예를 들어, 다양한 실시예는 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함할 수 있고, 16x16, 8x8 및 4x4 DCT 순방향 변환 행렬이 32x32 DCT 순방향 변환 행렬로부터 생성될 수 있다. 또한, 32x32 DCT 순방향 변환 행렬로부터 16x16 및 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬이 생성될 수 있다. 다양한 실시예에서, 32x32 DCT 순방향 변환은 마스터 순방향 변환 행렬일 수 있다. 다양한 실시예는 또한 4x4 ADST 순방향 변환 행렬을 포함할 수 있다. 그러나, 그는 그의 고유성으로 인해 32x32 DCT 순방향 변환 행렬로부터 도출되지 못할 수 있으며, 마스터 순방향 변환 행렬로 간주될 수도 있다.
또한, 이러한 순방향 변환 행렬이 선형 변환 알고리즘으로부터 도출될 때의 상당한 처리 요구로 인해, 이러한 순방향 변환 행렬은 일반적으로 칩 개발 시에 칩 상에 하드와이어링되거나 판독 전용 메모리와 메모리에 또는 회로에 저장된다. 그러나, 순방향 변환 행렬을 다른 순방향 변환 행렬로부터 도출하는 것은 처리 집중적인 아니며, 런타임 동안 행해질 수 있다. 런타임 동안 도출된 이 순방향 변환 행렬은 랜덤 액세스 메모리(RAM)와 같은 메모리에 저장될 수 있다. 따라서, 칩 개발 시에 마스터 순방향 변환 행렬만이 생성되어 메모리에 저장되거나 하드와이어링되면 되므로, 상당한 온-칩 공간 절약이 실현될 수도 있다.
그러나, 다양한 실시예는 지연된 라운딩을 갖는 순방향 변환 행렬로 제한되지 않으며, 각각의 중간 스테이지가 생성된 후에 라운딩을 포함하는 다른 순방향 변환 행렬이 생성될 수 있다. 중간 라운딩을 갖는 이 순방향 변환 행렬은 디코더가 예를 들어 선형 변환 알고리즘에 의해 생성되는 것과 동일한 출력을 요구하는 경우에 사용될 수 있다. 이들 및 다른 상세는 다음의 설명으로 명백해질 것이다.
다양한 실시예는 이러한 동작을 수행하는 장치 또는 시스템과도 관련된다. 이 장치는 요구되는 목적을 위해 특별하게 구성될 수 있거나 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 여기에 제시된 절차는 본질적으로 특정 컴퓨터 또는 다른 장치와 관련이 없다. 다양한 범용 기계가 본 명세서에서의 교시에 따라 작성된 프로그램과 함께 사용될 수 있거나, 요구된 방법을 수행하도록 더 특수화된 장치를 구성하는 것이 편리할 수도 있다. 다양한 이러한 기계에 필요한 구조는 주어진 설명에서 나타날 것이다.
이제, 도면을 참조하며, 도면 전반에서 동일한 참조 번호는 동일한 요소를 지칭하는 데 사용된다. 이하의 설명에서는, 설명의 목적으로, 다수의 특정 상세가 충분한 이해를 제공하기 위해 설명된다. 그러나, 새로운 실시예는 이러한 특정 상세 없이도 실시될 수 있음이 명백할 수 있다. 다른 예들에서, 잘 알려진 구조 및 디바이스는 그 설명을 용이하게 하기 위해 블록도 형태로 도시된다. 그 의도는 청구된 주제와 일치하는 모든 수정, 등가물 및 대안을 포함하는 것이다.
도 1은 정보 및 픽셀 데이터를 처리하기 위한 비디오 프레임 처리 시스템(100)의 일 실시예를 도시한다. 특히, 비디오 프레임 처리 시스템(100)은 비디오 스트림의 하나 이상의 프레임을 인코딩하는 데 사용될 수 있다. 그러나, 비디오 프레임 처리 시스템(100)은, 기술 및 도구가 다양한 범용 또는 특수 목적 컴퓨팅 환경에서 구현될 수 있기 때문에, 사용 또는 기능의 범위에 대한 임의의 제한을 제안하는 것으로 의도되지 않는다. 따라서, 비디오 프레임 처리 시스템(100)은 비디오 소스(102), 프레임 파티션 모듈(104), 변환 모듈(106), 양자화 모듈(108) 및 코딩 모듈(110)을 포함할 수 있다. 일부 실시예에서, 비디오 프레임 처리 시스템(100)은 역양자화 모듈(112), 역변환 모듈(114), 프레임 메모리(116) 및 비디오 스트림을 처리하기 위한 피드백 정보를 제공하는 움직임 추정/움직임 보상(ME/MC) 모듈(118)을 포함할 수 있다.
예를 들어 아날로그 포맷의 원래의 완전한 정보 콘텐츠 비디오 신호가 비디오 프레임 소스(102)에 제공될 수 있다. 비디오 프레임 소스(102)는 비디오 신호를 휘도(루마) 및 색차(크로마) 포맷, 예로서 YCbCr, YUV, YIQ 및 YCC 컬러 공간 패밀리로 디지털화하는 것과 같은 다양한 기능을 수행할 수 있다. 이 분야의 기술자는 YCbCr 컬러 공간에서 Y가 루마 성분이고, Cb 및 Cr이 크로마 성분이고; YUV 컬러 공간에서 Y가 루마 성분이고, U 및 V가 크로마 성분이고; YIQ 컬러 공간에서 Y가 루마 성분이고, I 및 Q가 각각 동상 및 직교 크로마 성분이고; YCC 컬러 공간에서 Y가 루마 성분이고, C(Cb)와 C(Cr)가 크로마 성분이라는 것을 알 것이다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 비디오 프레임 소스(102)는 적색, 녹색, 청색(RGB) 컬러 모델에 기초하는 비디오 신호의 디지털화와 같은 다양한 기능을 수행하여 광범위한 컬러 어레이를 생성할 수 있다.
비디오 프레임 소스(102)는 포맷된 디지털 비디오 신호를 프레임 파티션 모듈(104)에 제공할 수 있다. 특정 비디오 포맷에 관계없이, 비디오 프레임 소스(102)는 원래의 아날로그 비디오 신호의 완전한 정보 디지털 비디오 신호 버전을 프레임 파티션 모듈(104)에 제공하기 위해 필요한 처리를 수행할 수 있다. 다양한 실시예에서, 비디오 프레임 소스(102)는 전송 매체 또는 저장된 파일일 수 있다. 비디오 프레임 소스(102)는 디지털 비디오 신호 시퀀스를 픽처 또는 비디오 프레임의 형태로 프레임 파티션 모듈(104)에 제공할 수 있다.
비디오 처리 시스템(100)의 아키텍처 및 코어 빌딩 블록은 움직임 보상 변환 코딩에 기초할 수 있고, 다양한 움직임 벡터 및 모드 계산을 수행할 수 있고, 인트라-예측 및 인터-예측을 포함할 수 있다. 예를 들어, 프레임 파티션 모듈(104)은 프레임을 하나 이상의 영역으로 분할함으로써 압축할 수 있으며, 각 영역은 하나 이상의 블록 또는 변환 유닛을 포함할 수 있다. 일부 실시예에서, 변환 유닛은 대응하는 크로마 샘플을 갖는 16x16 루마 픽셀(또는 샘플)의 블록으로서 정의될 수 있다. 각 변환 유닛은 또한 움직임 보상 예측을 위해 하나 이상의 서브블록 파티션으로 분할될 수 있다. 동일 또는 다른 실시예에서, 변환 유닛은 4x4 픽셀 블록, 8x8 픽셀 블록, 32x32 픽셀 블록 등과 같은 상이한 변환 유닛 크기일 수 있고, 인코딩에 사용되는 표준에 기초할 수 있다.
프레임 처리 시스템(100)은 변환 유닛에 대한 예측을 처리하고 수행할 수 있다. 보다 구체적으로, 인트라-예측 및 인터-예측이 ME/MC 모듈(118)에 의해 수행될 수 있다. 인트라-예측은 처리되고 있는 현재 비디오 프레임 내에서 이루어질 수 있고, 이웃 픽셀에 대해 예측되고 있는 변환 유닛을 위해 이용 가능한 압축되고 디코딩된 정보에 기초한다. 인터-예측은 현재의 변환 유닛에 가까운 이전에 코딩된 픽셀 상의 유사한 영역에 기초한 움직임 합성에 사용될 수 있다. 예측은 데이터 중복을 줄이고, 따라서 코딩된 스트림 내에 과도한 정보를 저장하지 않기 위해 사용될 수 있다.
다양한 실시예에서, 프레임 처리 시스템(100)은 예측을 수행하고, 변환 유닛의 원래 정보로부터 예측된 값을 빼서, 압축되는 잔차 값 또는 잔차(residuals)를 획득할 수 있다. 잔차는 처리를 위해 그리고 순방향 변환 행렬을 이용하여 잔차를 주파수 도메인으로 변환하기 위해 변환 모듈(106)로 전송될 수 있다. 잔차 정보의 공간 중복이 더 감소한다.
변환 모듈(106)은 특정 변환 크기 및 유형에 대한 순방향 변환 행렬을 이용함으로써 잔차에 대한 순방향 변환을 수행할 수 있다. 보다 구체적으로, 32x32, 16x16, 8x8 및 4x4 이산 코사인 변환(DCT) 행렬 및 16x16, 8x8 및 4x4 비대칭 이산 사인 변환(ADST) 행렬을 포함하는 다수의 순방향 변환 행렬이 순방향 변환을 수행하는 데 사용될 수 있다. 변환 모듈(106)은 변환 유닛 크기, 예측(인트라 및 인터) 및 인트라-모드를 포함해서 어느 순방향 변환 행렬을 사용하여 순방향 변환을 수행할지를 판단할 수 있다. 예를 들어, 변환 유닛과 동일한 변환 유닛 크기를 갖는 순방향 변환 행렬이 순방향 변환을 수행하도록 선택될 수 있다.
다양한 실시예에서, 순방향 변환 행렬은 특정 표준에 대한 선형 변환 알고리즘 또는 프로세스의 각 스테이지를 변환함으로써 생성될 수 있다. 예를 들어, VP9 참조 알고리즘 또는 프로세스는 각 변환 크기 및 유형에 대한 순방향 변환 행렬을 생성 또는 제작하는 데 사용될 수 있다. 순방향 변환 행렬은 선형 변환 알고리즘 또는 프로세스의 각 스테이지를 행렬로 변환하고 중간 라운딩을 214에 의한 정확한 제산으로 대체함으로써 생성될 수 있다. 이들 중간 행렬을 함께 곱하여, 라운딩을 끝까지 지연시키면서 각 변환 유닛 크기 및 유형에 대한 단일 행렬을 생성할 수 있다.
그러나, 동일한 또는 다른 실시예에서, 도 10-14에 도시된 바와 같이, 다른 순방향 변환 행렬이 VP9 참조 알고리즘과 같은 선형 변환 알고리즘 또는 프로세스에 기초하여 생성될 수 있으며, 각 단계 이후에 라운딩을 포함할 수 있다. 특히, 각 중간 행렬이 생성된 후에 라운딩이 발생할 수 있으며, 최종 행렬은 이들 중간 행렬의 총합일 수 있다. 중간 라운딩을 갖는 최종 행렬은 지연 라운딩을 갖는 행렬과 약간 다르다.
일부 실시예에서, 하나 이상의 마스터 순방향 변환 행렬이 생성되어 메모리에 저장되거나 하나 이상의 처리 칩에 하드와이어링될 수 있다. 마스터 변환 행렬은 메모리에 저장되고/되거나 다른 순방향 변환 행렬을 생성하는 데 사용되는 임의의 행렬일 수 있다. 보다 상세하게는, 마스터 순방향 변환 행렬 중 적어도 하나는 잔차에 대해 순방향 변환을 수행하는 데 사용되는 다른 순방향 변환 행렬을 도출하는 데 사용될 수 있다. 예를 들어, 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬은 메모리에 저장되거나 하나 이상의 처리 칩 내에 하드와이어링될 수 있고, 16x16, 8x8 및 4x4 DCT 순방향 변환 행렬 및 16x16 및 8x8 ADST 순방향 변환 행렬과 같은 다른 순방향 변환 행렬은 32x32 DCT 행렬로부터 생성될 수 있다. 마스터 순방향 변환 행렬을 포함하는 순방향 변환 행렬은 유부호 상수(signed constant)를 포함할 수 있다. 유부호 상수는 정의된 수의 정밀도 비트 및 하나의 부호 비트를 가질 수 있다. 보다 구체적으로 그리고 일부 실시예에서, 순방향 변환 행렬은 15 비트의 저장, 즉 14개의 수치 정밀도 비트 및 하나의 부호 비트의 저장을 필요로 하는 15 비트 유부호 상수와 같은 유부호 상수를 포함한다. 그러나, 일부 실시예는 15 비트 유부호 상수로 한정되지 않고, 유부호 상수의 정의된 수는 임의의 수일 수 있다.
다른 순방향 변환 행렬을 도출하는 데 사용되는 마스터 순방향 변환 행렬 중 하나는 수학식 1에 기초한 32x32 DCT 순방향 변환 행렬일 수 있다:
Figure 112016125516843-pct00001
여기서, N = 32이다.
보다 구체적으로, 수학식 1은 도 2에 도시된 바와 같이 정의된 수의 유부호 비트 유부호 상수를 갖는 32x32 DCT 순방향 변환 행렬을 생성하는 데 사용될 수 있다. 또한, 수학식 1은 N=4인 경우 4x4 DCT 순방향 변환 행렬, N=8인 경우 8x8 DCT 순방향 변환 행렬 그리고 N=16인 경우 16x16 DCT 순방향 변환 행렬을 포함하는 다른 DCT 순방향 변환 행렬을 판단하는 데 사용될 수 있다. 그러나, 더 상세히 설명되는 바와 같이, 32x32 DCT 순방향 변환 행렬은 마스터 순방향 변환 행렬로서 사용될 수 있고, 4x4, 8x8 및 16x16 DCT 순방향 변환 행렬은 32x32 DCT 순방향 변환 행렬로부터 도출될 수 있다.
수학식 1에 기초하여 순방향 변환 행렬을 생성하는 것은 일반적으로 프로세서 집중적이며, 대부분의 경우에는 컴퓨팅 시스템이 비디오 스트림을 처리하는 동안 계산이 가능하지 않다. 순방향 변환 행렬은 비디오 스트림을 처리하기 전에 생성되고, 처리 유닛, 그래픽 처리 유닛, 메모리 등과 같은 칩 상에 저장되어 계산 시간을 감소시킬 수 있다. 따라서, 32x32 DCT 순방향 변환 행렬과 같은 마스터 순방향 변환 행렬로부터 순방향 변환 행렬을 도출함으로써 온-칩 절약이 실현될 수 있는데, 이는 마스터 순방향 행렬만이 하드웨어에 저장되는 것이 필요하기 때문이다. 마스터 변환 행렬로부터 순방향 변환 행렬을 도출하는 것은 런타임 중에 행해질 수 있고, 랜덤 액세스 메모리(RAM) 또는 소정의 다른 버퍼와 같은 메모리에 저장될 수 있다.
일부 실시예에서, 변환 모듈(106)은 수학식 2에 기초하여 비대칭 이산 사인 변환(ADST)을 사용하여 변환을 수행할 수 있다:
Figure 112016125516843-pct00002
여기서, N은 8 또는 16이다.
수학식 2는 8x8 ADST 순방향 변환 행렬 및 16x16 ADST 순방향 변환 행렬을 생성하는 데 사용될 수 있다. 그러나, 8x8 및 16x16 ADST 순방향 변환 행렬은 또한 32x32 DCT 마스터 순방향 변환 행렬로부터 도출될 수 있다. 다시, 32x32 마스터 순방향 변환 행렬이 메모리에 저장되는 것만을 요구함으로써 처리 능력 및 추가 온-칩 공간을 절약할 수 있다.
일부 실시예에서, 변환 모듈(106)은 4x4 ADST 순방향 변환 행렬을 사용하여 변환을 수행할 수 있다. 그러나 이 행렬은 수학식 2에 의해 생성되는 것이 아니라, 다른 방법을 사용하여 판단될 수 있다. 또한, 4x4 ADST 순방향 변환 행렬은 32x32 DCT 순방향 변환 행렬로부터 도출되지 않을 수 있으며, 따라서 하드웨어에 마스터 순방향 변환 행렬로서 저장될 수 있다. 따라서, 다양한 실시예는 3&32 DCT 순방향 변환 행렬 및 4x4 ADST 순방향 변환 행렬을 마스터 변환 행렬로서 저장하는 것을 포함할 수 있다.
변환 모듈(106)은 인터-예측 및 인트라-예측, 변환 유닛 또는 블록 크기 및 인트라-모드에 기초하여 잔차에 어느 순방향 변환 행렬을 적용할지를 판단할 수 있다. 예를 들어, 변환 유닛 또는 블록 크기가 32x32 픽셀인 경우, 32x32 DCT 순방향 변환 행렬이 순방향 변환을 수행하는 데 사용된다. 다른 예에서, 변환 유닛이 크로마 컬러링을 이용하는 경우, 변환 유닛과 동일한 크기를 갖는 DCT 순방향 변환 행렬이 변환을 수행하는 데 사용된다. 변환 모듈(106)은 잔차에 대한 변환을 수행하고, 양자화 모듈(108)에 의해 양자화될 주파수 도메인의 계수를 생성할 수 있다.
양자화 모듈(108) 모듈은 계수를 수신하여 고효율 손실 압축을 생성하고 불충분한 정보를 제거한다. 남은 정보는 코딩 모듈(110)로 전송될 수 있고 인코딩될 수 있다. 일부 실시예에서, 압축된 비트 스트림을 생성하기 위해 코딩 모듈(110)에 의해 엔트로피 코딩이 적용될 수 있다. 예를 들어, 부울 코더(bool-coder)와 같은 8 비트 산술 코딩 엔진이 정보를 비트 스트림으로 인코딩할 수 있다.
다양한 실시예에서, 비디오 프레임 처리 시스템(100)은 양자화 모듈(108)에 의해 생성된 이미지 정보를 역양자화하는 역양자화 모듈(112)을 포함할 수 있다. 역변환 모듈(114)이 역양자화된 데이터에 대해 역변환을 수행할 수 있다. 일부 실시예에서, 역변환 모듈(114)은 변환 모듈(114)에 의해 이용되는 순방향 변환 행렬에 기초하는 역변환 행렬을 사용할 수 있다. 역변환의 복원된 잔차는 프레임 메모리(116)에 전송될 수 있다. 프레임 메모리(116)는 ROM, RAM 등을 포함하는 임의 유형의 메모리일 수 있다.
다양한 실시예에서, 비디오 프레임 처리 시스템(100)은 프레임에 대한 다양한 예측을 수행하는 움직임 추정 및 보상(ME/MC) 모듈(118)을 포함할 수 있다. 일부 실시예에서, ME/MC 모듈(118)은 인트라-예측 및 인터-예측을 수행할 수 있다. 복원된 잔차 및 예측된 값은 합산되어, 디코딩 프로세스 동안 달성된 것과 동일한 복원된 픽셀 값을 생성할 수 있다. 추가적인 프레임 후처리 스테이지가 선택적으로 수행되어 순방향 변환 및 양자화에 의해 유발된 이미지 불명료를 제거할 수 있다. 이 정보는 인터-예측 및 추가 프레임을 위해 프레임 메모리(116)와 같은 메모리에 저장될 수 있다.
도 2는 32x32 DCT 순방향 변환 행렬(200)의 예시적인 실시예를 도시한다. 32x32 DCT 순방향 변환 행렬(200)은 4x4, 8x8 및 16x16 DCT 순방향 변환 행렬 및 8x8 및 16x16 ADST 순방향 변환 행렬과 같은 다른 순방향 변환 행렬을 생성하거나 도출하는 데 사용될 수 있는 마스터 순방향 변환 행렬이다. 32x32 DCT 순방향 변환 행렬(200)은 또한 비디오 스트림의 인코딩 중에 사용되어 추가 처리를 위한 계수를 생성할 수 있다. 32x32 DCT 순방향 변환 행렬(200)은 수학식 1로부터 생성된 유부호 상수, 예컨대 15 비트 유부호 상수를 포함할 수 있다. 다양한 실시예에서, 32x32 DCT 순방향 변환 행렬(200)은 컴퓨팅 처리 유닛, 그래픽 처리 유닛, 또는 임의의 다른 처리 컴포넌트의 일부로서의 판독 전용 메모리와 같은 메모리에 저장될 수 있다. 동일 또는 다른 실시예에서, 32x32 DCT 순방향 변환 행렬(200)은 컴퓨팅 처리 유닛 또는 그래픽 처리 유닛과 같은 처리 회로에 하드와이어링될 수 있다.
32x32 DCT 순방향 변환 행렬(200)은 32x32 픽셀 블록에 대한 변환을 수행하는 VP9 참조 알고리즘 또는 프로세스와 같은 선형 변환 프로세스의 근사화일 수 있다. 실제로, 32x32 DCT 순방향 변환 행렬(200)은 VP9 참조 알고리즘보다 우수하다. 보다 구체적으로, VP9 참조 알고리즘은 순방향 변환을 수행하기 위해 선형 대수(linear algebra)를 이용하여 선형 변환의 시퀀스를 수행하는 산술을 포함한다. VP9 참조 알고리즘에는 다수의 스테이지를 포함하며, 각 중간 스테이지 후에 결과가 라운딩되어 비정밀이 유발된다. 보다 구체적으로, 중간 스테이지에서의 라운딩으로 인해, VP9 알고리즘은 최적이 아닌 결과 또는 무한 정밀도를 갖는 수학적으로 구성된 결과보다 덜 정확한 변환을 생성할 수 있다. 중간 행렬을 생성할 때 최종 행렬이 생성될 때까지 임의의 라운딩을 연기함으로써 VP9 참조 알고리즘을 32x32 DCT 순방향 변환 행렬(200)로 변환함으로써 상당한 논리 병렬화 및 데이터-경로 재사용이 실현될 수 있다. 또한, VP9 참조 알고리즘을 32x32 DCT 순방향 변환 행렬(200)과 같은 행렬 형태로 변환함으로써, 하드웨어에 행렬을 저장하기 위한 게이트 카운트가 하드웨어에서 VP9 참조 알고리즘을 구현하는 것에 비해 상당히 감소될 수 있다.
도 3은 비디오 스트림의 인코딩 중에도 사용될 수 있는 4x4 ADST 순방향 변환 행렬(300)의 예시적인 실시예를 도시한다. 4x4 ADST 순방향 변환 행렬(300)은 15 비트 유부호 상수와 같은 유부호 상수를 포함할 수 있다. 전술한 바와 같이, 4x4 ADST 순방향 변환 행렬(300)은 고유할 수 있고, 32x32 DCT 순방향 변환 행렬로부터 도출될 수 없다. 따라서, 4x4 ADST 순방향 변환 행렬(300)은 마스터 순방향 변환 행렬일 수 있고, 또한 컴퓨팅 처리 유닛, 그래픽 처리, 또는 임의의 다른 처리 컴포넌트의 일부로서의 판독 전용 메모리와 같은 메모리에 저장되거나, 칩 상에 하드와이어링될 수 있다.
4x4 ADST 순방향 변환 행렬(300)은 상당한 논리 병렬화 및 데이터-경로 재사용을 달성하기 위해 지연 라운딩을 갖는 VP 참조 알고리즘으로부터 생성될 수 있다. 또한, VP9 참조 알고리즘을 4x4 ADST 순방향 변환 행렬(300)로 변환함으로써, 하드웨어에 행렬을 저장하기 위한 게이트 카운트가 하드웨어에서 VP9 참조 알고리즘을 구현하는 것에 비해 상당히 감소될 수 있다.
일부 실시예와 따르면, 마스터 변환 행렬(200 및 300)은 칩 설계 스테이지에서 반도체 칩 내에 설계될 수 있다. 유부호 상수는 예를 들어 도 15의 컴퓨팅 디바이스(1505) 또는 도 16의 컴퓨팅 시스템(1600)과 같은 디바이스에 설치된 반도체 칩에 레지스터를 통해 입력될 수 있다. 디바이스 또는 시스템이 후속적으로 이미지 데이터 및 정보를 처리할 때, 적절한 마스터 변환 행렬이 변환을 수행하거나 변환을 수행하기 위한 다른 변환 행렬을 생성하는 데 사용될 수 있다. 따라서, 다양한 실시예에서, 마스터 변환 행렬만이 하드웨어에 미리 저장될 필요가 있으며, 이는 인코딩/디코딩 방식의 특성에 따라 설계될 수 있다.
도 4a/4b는 16x16 DCT 순방향 변환 행렬(450)의 도출의 예시적인 실시예를 도시한다. 보다 구체적으로, 도 4a는 도 2에 도시된 32x32 DCT 순방향 변환 행렬로부터의 16x16 DCT 순방향 변환 행렬의 도출을 도시한다. 도 4a는 단지 설명의 목적을 위해 도 2에 도시된 유부호 상수를 "X"를 대체한다. 실제 유부호 상수는 16x16 DCT 순방향 변환 행렬이 32x32 DCT 순방향 변환 행렬로부터 도출될 때 사용된다.
도 4a는 32x32 DCT 순방향 변환 행렬(200)의 0-31의 32개 열 및 0-31의 32개 행을 도시한다. 다양한 실시예는 이러한 방식으로 제한되지 않을 수 있으며, 행 및 열은 임의의 방식으로 넘버링될 수 있다. 16x16 DCT 순방향 변환 행렬(450)은 32x32 DCT 순방향 변환 행렬(200)의 처음 16개 열 및 제1 행으로부터 시작하는 32x32 DCT 순방향 변환 행렬(200)의 매 2번째 행으로부터 도출될 수 있다. 예를 들어, 도 4a에서 강조된 행 402는 16x16 DCT 순방향 변환 행렬(450)의 제1 행일 수 있다. 행 404는 16x16 DCT 순방향 변환 행렬(450) 내의 다음 행일 수 있고, 기타 등등일 수 있다. 32x32 DCT 순방향 변환 행렬(200)의 행 28 및 30에 대응하는 행 406 및 408은 16x16 DCT 순방향 변환 행렬(450)의 마지막 2개 행일 수 있다.
도 4b는 32x32 DCT 순방향 변환 행렬(200)로부터 도출된 16x16 DCT 순방향 변환 행렬(450)을 도시한다. 도 4b에서 알 수 있는 바와 같이, 16x16 DCT 순방향 변환 행렬(450)은 32x32 DCT 순방향 변환 행렬(200)의 처음 16개 열 및 매 2번째 행과 동일한 유부호 상수를 포함한다. 다양한 실시예에서, 순방향 변환 행렬의 도출은 런타임 동안 또는 비디오 스트림이 인코딩될 때 또는 비디오 스트림의 인코딩 전에 발생할 수 있고, 임시 메모리에 저장될 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 일부 실시예에서, 16x16 DCT 순방향 변환 행렬(450)은 수학식 1로부터 생성되고, 미리 저장되거나 칩 상에 하드와이어링될 수 있다.
도 5a/5b는 8x8 DCT 순방향 변환 행렬(550)의 도출의 예시적인 실시예를 도시한다. 보다 구체적으로, 도 5a는 도 2에 도시된 32x32 DCT 순방향 변환 행렬(200)로부터의 8x8 DCT 순방향 변환 행렬(550)의 도출을 도시한다. 도 5a는 단지 설명의 목적을 위해 도 2에 도시된 유부호 상수를 "X"로 대체한다. 실제 유부호 상수는 8x8 DCT 순방향 변환 행렬(550)이 32x32 DCT 순방향 변환 행렬(200)로부터 도출될 때 사용된다.
도 5a는 32x32 DCT 순방향 변환 행렬(200)의 0-31의 32개 열 및 0-31의 32개 행을 도시한다. 다양한 실시예는 이러한 방식으로 제한되지 않을 수 있고, 행 및 열은 임의의 방식으로 넘버링될 수 있다. 8x8 DCT 순방향 변환 행렬(550)은 제1 행으로부터 시작하는 32x32 DCT 순방향 변환 행렬(200)의 매 4번째 행 및 처음 8개의 열로부터 도출될 수 있다. 예를 들어, 도 5a에서 강조된 행 502는 8x8 DCT 순방향 변환 행렬(550)의 제1 행일 수 있다. 행 504는 8x8 DCT 순방향 변환 행렬의 마지막 행일 수 있다.
도 5b는 32x32 DCT 순방향 변환 행렬(200)로부터 도출된 8x8 DCT 순방향 변환 행렬(550)을 도시한다. 도 5b에서 알 수 있는 바와 같이, 8x8 DCT 순방향 변환 행렬(550)은 32x32 DCT 순방향 변환 행렬의 처음 8개 열 및 매 4번째 행과 동일한 유부호 상수를 포함한다. 다양한 실시예에서, 순방향 변환 행렬의 도출은 런타임 동안 또는 비디오 스트림이 인코딩될 때 또는 비디오 스트림의 인코딩 전에 발생할 수 있고, 임시 메모리에 저장될 수 있다.
일부 실시예에서, 8x8 DCT 순방향 변환 행렬(550)은 16x16 DCT 순방향 변환 행렬(450)로부터 도출될 수 있다. 더 구체적으로, 16x16 DCT 순방향 변환 행렬(450)의 처음 8개 열 및 매 2번째 행은 8x8 DCT 순방향 변환 행렬(550)을 판단하기 위해 사용될 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 일부 실시예에서 8x8 DCT 순방향 변환 행렬(550)은 수학식 1로부터 생성될 수 있고, 미리 저장되거나 칩 상에 하드와이어링될 수 있다.
도 6a/6b는 4x4 DCT 순방향 변환 행렬(650)의 도출의 예시적인 실시예를 도시한다. 더 구체적으로, 도 6a는 도 2에 도시된 32x32 DCT 순방향 변환 행렬(200)로부터의 4x4 DCT 순방향 변환 행렬(650)의 도출을 도시한다. 도 6a는 단지 설명의 목적을 위해 도 2에 표시된 유부호 상수를 "X"로 대체한다. 실제 유부호 상수는 4x4 DCT 순방향 변환 행렬(650)이 32x32 DCT 순방향 변환 행렬(200)로부터 도출될 때 사용된다.
도 6a는 32x32 DCT 순방향 변환 행렬(200)의 0-31의 32개 열 및 0-31의 32개 행을 도시한다. 다양한 실시예는 이러한 방식으로 제한되지 않을 수 있으며, 행 및 열은 임의의 방식으로 넘버링될 수 있다. 4x4 DCT 순방향 변환 행렬(550)는 제1 행부터 시작하는 32x32 DCT 순방향 변환 행렬(200)의 매 8번째 행 및 처음 4개의 열로부터 도출될 수 있다. 예로서, 도 6a에 강조된 행 602는 4x4 DCT 순방향 변환 행렬(650)의 제1 행일 수 있다. 행 604는 4x4 DCT 순방향 변환 행렬(650)의 다음 행일 수 있다. 행 606은 4x4 DCT 순방향 변환 행렬(650)의 제3 행일 수 있고, 행 608은 4x4 DCT 순방향 변환 행렬(650)의 마지막 행일 수 있다.
도 6b는 32x32 DCT 순방향 변환 행렬(200)로부터 도출된 4x4 DCT 순방향 변환 행렬(650)을 도시한다. 도 6b에서 알 수 있는 바와 같이, 4x4 DCT 순방향 변환 행렬(650)은 32x32 DCT 순방향 변환 행렬(200)의 첫 번째 4개의 열과 매 8번째 행과 동일한 유부호 상수를 포함한다. 다양한 실시예에서, 순방향 변환 행렬의 도출은 런타임 중에, 비디오 스트림이 인코딩될 때 또는 비디오 스트림의 인코딩 이전에 발생할 수 있으며, 임시 메모리에 저장될 수 있다.
일부 실시예에서, 4x4 DCT 순방향 변환 행렬(650)은 8x8 DCT 순방향 변환 행렬(550)로부터 도출될 수 있다. 보다 구체적으로는, 8x8 DCT 순방향 변환 행렬(550)의 첫 번째 4개의 열 및 매 2번째 행은 4x4 DCT 순방향 변환 행렬(650)을 판단하는 데 사용될 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 일부 실시예에서 8x8 DCT 순방향 변환 행렬(550)은 수학식 1로부터 생성될 수 있거나 16x16 순방향 변환 행렬(450)로부터 도출될 수 있다. 또한, 4x4 DCT 순방향 변환 행렬 650)은 미리 저장되거나 칩 상에 하드와이어링될 수 있다.
도 7a/7b는 16x16 ADST 순방향 변환 행렬(750)의 도출의 예시적인 실시예를 도시한다. 보다 구체적으로, 도 7a는 도 2에 도시된 32x32 DCT 순방향 변환 행렬(200)로부터의 16x16 ADST 순방향 변환 행렬(750)의 도출을 도시한다. 도 7a는 단지 설명의 목적을 위해 도 2에 표시된 유부호 상수를 "X"로 대체한다. 실제 유부호 상수는 16x16 ADST 순방향 변환 행렬(750)이 32x32 DCT 순방향 변환 행렬(200)로부터 도출될 때 사용된다.
도 7a는 32x32 DCT 순방향 변환 행렬(200)의 0-31의 32개의 열과 0-31의 32개의 행을 도시한다. 다양한 실시예는 이러한 방식으로 제한되지 않을 수 있고, 행 및 열은 임의의 방식으로 넘버링될 수 있다. 16x16 ADST 순방향 변환 행렬(750)은 32x32 DCT 변환 행렬(200)의 제1 열로부터 시작하고 (제2 열로부터 시작하는) 하나씩 거른 열(710)을 배제하는 처음 16개의 열로부터 도출될 수 있다. 또한, 16x16 ADST 변환 행렬(750)의 행은 역순으로 진행하는, 최종 행으로부터 시작하는 32x32 DCT 순방향 변환 행렬(200)의 매 2번째 행으로부터 도출될 수 있다. 예를 들어,도 7a에서 강조된 행 702는 16x16 ADST 순방향 변환 행렬(750)의 제1 행일 수 있다. 행 704는 16x16 DCT 순방향 변환 행렬(750)의 다음 행일 수 있고, 기타 등등일 수 있다. 행 706은 16x16 ADST 순방향 변환 행렬(750)의 제2 내지 최종 행일 수 있고, 행 708은 16x16 ADST 순방향 변환 행렬(750)의 최종 행일 수 있다. 따라서, 16x16 ADST 행렬의 행은 32x32 DCT 순방향 변환 행렬의 행 "31, 29, 27, 25, ..., 3, 1"일 수 있다.
도 7b는 32x32 DCT 순방향 변환 행렬(200)로부터 도출된 16x16 ADST 순방향 변환 행렬(750)을 도시한다. 도 7b에서 알 수 있는 바와 같이, 16x16 ADST 순방향 변환 행렬(750)은 32x32 순방향 변환 행렬(200)의 하나씩 거른 열을 배제하는 처음 16개 열 및 역순으로의 매 2번째 행과 동일한 유부호 상수를 포함할 수 있다. 다양한 실시예에서, 순방향 변환 행렬의 도출은 런타임 중에, 비디오 스트림이 인코딩될 때 또는 비디오 스트림의 인코딩 이전에 발생할 수 있으며, 임시 메모리에 저장될 수 있다. 또한, 16x16 ADST 순방향 변환 행렬(750)은 수학식 2에 기초하여 생성될 수 있고, 미리 저장되거나, 칩 상에 하드와이어링될 수 있다.
도 8a/8b는 8x8 ADST 순방향 변환 행렬(850)의 도출의 예시적인 실시예를 도시한다. 보다 구체적으로, 도 8a는 도 2에 도시된 32x32 DCT 순방향 변환 행렬(200)로부터의 8x8 ADST 순방향 변환 행렬(850)의 도출을 도시한다. 도 8a는 단지 설명의 목적을 위해 도 2에 도시된 유부호 상수를 "X"로 대체한다. 실제 유부호 상수는 8x8 ADST 순방향 변환 행렬(850)이 32x32 DCT 순방향 변환 행렬(200)로부터 도출될 때 사용된다.
도 8a는 32x32 DCT 순방향 변환 행렬(200)의 0-31의 32개의 열과 0-31의 32개의 행을 도시한다. 다양한 실시예는 이러한 방식으로 제한되지 않을 수 있으며, 행 및 열은 임의의 방식으로 넘버링될 수 있다. 8x8 ADST 순방향 변환 행렬(850)은 32x32 DCT 변환 행렬(200)의 제1 열로부터 시작하고 (제2 열로부터 시작하는) 하나씩 거른 열(810)을 배제하는 처음 8개의 열로부터 도출될 수 있다. 또한, 8x8 ADST 변환 행렬(750)의 행은 역순으로 진행하는, 제2 내지 최종 행으로부터 시작하는 32x32 DCT 순방향 변환 행렬(200)의 매 4번째 행으로부터 도출될 수 있다. 예를 들어, 도 8a에서 강조된 행 802는 8x8 ADST 순방향 변환 행렬(850)의 제1 행일 수 있고, 행 804는 8x8 ADST 순방향 변환 행렬(850)의 최종 행일 수 있고, 기타 등등일 수 있다. 따라서, 8x8 ADST 행렬의 행은 32x32 DCT 순방향 변환 행렬의 행 "30, 26, 22, ..., 2"일 수 있다.
도 8b는 32x32 DCT 순방향 변환 행렬(200)로부터 도출된 8x8 ADST 순방향 변환 행렬(850)을 도시한다. 도 8b에서 알 수 있는 바와 같이, 8x8 ADST 순방향 변환 행렬(850)은 32x32 순방향 변환 행렬(200)의 하나씩 거른 열을 배제하는 처음 8개의 열 및 역순으로의 매 4번째 행과 동일한 유부호 상수를 포함한다. 다양한 실시예에서, 순방향 변환 행렬의 도출은 런타임 중에, 비디오 스트림이 인코딩될 때 또는 비디오 스트림의 인코딩 이전에 발생할 수 있으며, 임시 메모리에 저장될 수 있다. 일부 실시예에서, 8x8 ADST 순방향 변환 행렬(850)는 수학식 2에 기초하여 생성될 수 있고, 미리 저장되거나 칩 상에 하드와이어링될 수 있다.
도 9는 순방향 변환 행렬을 사용하여 변환을 수행하기 위한 제1 논리 흐름(900)의 실시예를 도시한다. 논리 흐름(900)은 여기에 설명된 하나 이상의 실시예에 의해 실행되는 동작의 일부 또는 전부를 나타낼 수 있다. 예를 들어, 논리 흐름(900)은 시스템(100)에 의해 수행되는 동작을 나타낼 수 있다.
도 9에 도시된 실시예에서, 논리 흐름(900)은 블록 900에서 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하는 단계를 포함할 수 있다. 적어도 하나의 마스터 순방향 변환 행렬은 32x32 DCT 순방향 변환 행렬일 수 있으며, 그로부터 다른 순방향 변환 행렬이 도출될 수 있다. 일부 실시예에서, 4x4 ADST 순방향 변환 행렬이 또한 단독으로 또는 32x32 DCT 순방향 변환 행렬과 연계하여 마스터 순방향 변환 행렬로서 메모리에 저장될 수 있다. 마스터 변환 행렬 각각은 다수의 유부호 상수를 포함할 수 있다. 예를 들어, 32x32 DCT 순방향 변환 행렬은 1024개의 유부호 상수를 포함할 수 있고, 4x4 ADST 순방향 변환 행렬은 16개의 유부호 상수를 포함할 수 있으며, 각 행렬은 순방향 변환을 수행하는 데 사용된다.
일부 실시예에서, 논리 흐름(900)은 처리 회로에 의해, 적어도 하나의 변환 유닛 크기에 기초하여 순방향 변환을 수행하기 위해 어떤 순방향 변환 행렬을 사용할지를 판단하는 단계를 포함할 수 있다. 보다 구체적으로, 변환을 위한 변환 유닛(또는 블록)의 변환 유닛 크기와 동일한 크기를 갖는 순방향 변환 행렬이 선택될 수 있다. 예를 들어, 32x32 DCT 순방향 변환 유닛이 32x32 픽셀 블록의 변환 유닛 크기를 갖는 변환 유닛에 대해 선택될 수 있다.
논리 흐름(900)은 또한, 915에서, 처리 회로에 의해, 판단에 기초하여 적어도 하나의 마스터 순방향 변환 행렬 중 하나, 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하는 단계를 포함할 수 있다. 전술한 바와 같이, 잔차 또는 잔차 값이 프레임에 대해 계산될 수 있고, 순방향 변환이 잔차에 대해 수행될 수 있다. 순방향 변환은 마스터 순방향 변환 행렬 중 하나 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용함으로써 수행될 수 있다. 전술한 바와 같이, 8x8 및 16x16 ADST 순방향 변환 행렬 및 4x4, 8x8 및 16x16 DCT 순방향 변환 행렬은 모두 32x32 DCT 순방향 변환 행렬로부터 도출될 수 있다.
도 10-14는 잔차 값에 대한 순방향 변환을 수행하는 순방향 변환 행렬들(1000-1400)의 추가적인 예시적인 실시예를 도시한다. 이들 순방향 변환 행렬은 도 2-8b와 관련하여 전술한 순방향 변환 행렬과 유사하지만 동일하지 않을 수 있다. 이 순방향 변환 행렬은 VP9 참조 알고리즘으로부터 도출될 수 있지만, 각각의 선형 변환 스테이지 동안 도입된 라운딩을 설명할 수 있다. 보다 구체적으로, 중간 행렬이 각각의 선형 변환 스테이지 후에 생성될 수 있고, VP9 참조 알고리즘에 의해 도입된 라운딩을 포함할 수 있다. 도 10-14는 라운딩을 포함하는 중간 행렬에 기초하는 변환 유닛 크기 및 유형 각각에 대한 최종 순방향 변환 행렬을 도시한다. 도 10-14의 순방향 변환 행렬은 VP9 참조 알고리즘 자체를 사용하여 생성된 출력을 미러링하는 출력을 생성하는 데 사용될 수 있다. 이는 비디오 스트림을 디코딩하는 디코더가 VP9 참조 알고리즘에 의해 생성된 것과 동일한 출력을 필요로 하는 경우에 유리할 수 있다.
도 10은 32x32 DCT 순방향 변환 행렬을 도시하고, 도 11은 16x16 DCT 순방향 변환 행렬을 도시하고, 도 12는 8x8 DCT 순방향 변환 행렬을 도시하고, 도 13은 16x16 ADST 순방향 변환 행렬을 도시하고, 도 14는 8x8 ADST 순방향 변환 행렬을 도시한다. 이러한 각 행렬은 유부호 상수를 포함할 수 있다. 그러나, 각각의 선형 동작 스테이지 사이에 도입된 라운딩 때문에, 순방향 변환 행렬(1000-1400) 중 어느 것도 다른 순방향 변환 행렬로부터 도출될 수 없다. 따라서, 순방향 변환 행렬(1000-1400) 각각은 순방향 변환을 수행하기 위해 신속하게 검색될 수 있도록 메모리에 저장되거나 하나 이상의 칩 안에 하드와이어링될 수 있다.
도 15는 시스템(1500)의 일 실시예를 도시한다. 다양한 실시예에서, 시스템(1500)은 도 1의 시스템(100)과 같이 본 명세서에 설명된 하나 이상의 실시예와 함께 사용하기에 적합한 시스템 또는 아키텍처를 나타낼 수 있다. 실시예는 이와 관련하여 제한되지 않는다.
도 15에 도시된 바와 같이, 시스템(1500)은 다수의 요소를 포함할 수 있다. 주어진 설계 또는 성능 제약 세트에 대해 요구되는 바와 같이, 하나 이상의 회로, 컴포넌트, 레지스터, 프로세서, 소프트웨어 서브루틴, 모듈 또는 이들의 임의의 조합을 사용하여 하나 이상의 요소가 구현될 수 있다. 도 15는 예로서 소정의 토폴로지의 제한된 수의 요소를 도시하지만, 임의의 적합한 토폴로지의 더 많거나 적은 요소가 주어진 구현에 대해 요구되는 바와 같은 시스템(1500)에서 사용될 수 있음을 알 수 있다. 실시예는 이와 관련하여 제한되지 않는다.
다양한 실시예에서, 시스템(1500)은 개인용 컴퓨터, 데스크탑 컴퓨터, 태블릿 컴퓨터, 넷북 컴퓨터, 노트북 컴퓨터, 랩탑 컴퓨터, 서버, 서버 팜, 블레이드 서버, 또는 임의의 다른 유형의 서버 등을 포함하는 임의 유형의 컴퓨터 또는 처리 디바이스일 수 있는 컴퓨팅 디바이스(1505)를 포함할 수 있다.
컴퓨팅 디바이스(1505)의 다른 예는 또한 손목 컴퓨터, 손가락 컴퓨터, 반지 컴퓨터, 안경 컴퓨터, 벨트 클립 컴퓨터, 팔 밴드 컴퓨터, 신발 컴퓨터, 의류 컴퓨터 및 다른 착용식 컴퓨터와 같이 사람이 착용하도록 배열된 컴퓨터를 포함할 수 있다. 실시예에서, 예를 들어 컴퓨팅 디바이스(1505)는 음성 통신 및/또는 데이터 통신은 물론 컴퓨터 애플리케이션을 실행할 수 있는 스마트폰으로서 구현될 수 있다. 일부 실시예가 예로서 스마트폰으로서 구현된 컴퓨팅 디바이스(1505)를 이용하여 설명될 수 있지만, 다른 실시예가 다른 무선 컴퓨팅 디바이스를 사용하여 구현될 수도 있다는 것을 알 수 있다. 실시예는 이와 관련하여 제한되지 않는다.
다양한 실시예에서, 컴퓨팅 디바이스(1505)는 프로세서 회로(1502)를 포함할 수 있다. 프로세서 회로(1502)는 임의의 프로세서 또는 논리 디바이스를 사용하여 구현될 수 있다. 처리 회로(1502)는 마이크로프로세서, 프로세서, 중앙 처리 유닛, 디지털 신호 처리 유닛, 이중 코어 프로세서, 모바일 디바이스 프로세서, 데스크탑 프로세서, 단일 코어 프로세서, 시스템 온 칩(SoC) 디바이스, CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 단일 칩 또는 집적 회로 상의 임의의 다른 유형의 프로세서 또는 처리 회로와 같은, 그러나 이에 제한되지 않는 임의 유형의 하나 이상의 계산 요소일 수 있다. 처리 회로(1502)는 하나 이상의 버스, 제어 라인 및 데이터 라인과 같은 상호접속(1543)을 통해 컴퓨팅 시스템의 다른 요소에 접속될 수 있고 그와 통신할 수 있다.
일 실시예에서, 컴퓨팅 디바이스(1505)는 프로세서 회로(1502)에 결합되는 메모리 유닛(1504)을 포함할 수 있다. 메모리 유닛(1504)은 주어진 구현에 대해 요구되는 바와 같이 통신 버스(1543)를 통해 또는 프로세서 회로(1502)와 메모리 유닛(1504) 사이의 전용 통신 버스에 의해 프로세서 회로(1502)에 결합될 수 있다. 메모리 유닛(1504)은 휘발성 및 비휘발성 메모리 양자를 포함하는, 데이터를 저장할 수 있는 임의의 기계 판독 가능 또는 컴퓨터 판독 가능 매체를 사용하여 구현될 수 있다. 일부 실시예에서, 기계 판독 가능 또는 컴퓨터 판독 가능 매체는 비일시적 매체를 포함할 수 있다. 실시예는 이와 관련하여 제한되지 않는다.
컴퓨팅 디바이스(1505)는 다양한 실시예에서 그래픽 처리 유닛(GPU)(1506)을 포함할 수 있다. GPU(1506)는 비디오 디코더 엔진 및 프레임 상관 엔진뿐만 아니라 그래픽 관련 동작을 수행하도록 최적화된 임의의 처리 유닛, 논리 또는 회로를 포함할 수 있다. GPU(1506)는 비디오 게임, 그래픽, CAD(computer-aided design), 시뮬레이션 및 시각화 도구(visualization tools), 이미징 등과 같은 다양한 애플리케이션을 위해 2차원(2D) 및/또는 3차원(3D) 이미지를 렌더링하는 데 사용될 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며; GPU(1506)는 픽처, 비디오, 프로그램, 애니메이션, 3D, 2D, 객체 이미지 등과 같은 임의의 유형의 그래픽 데이터를 처리할 수 있다.
일부 실시예에서, 컴퓨팅 디바이스(1505)는 디스플레이 제어기(1508)를 포함할 수 있다. 디스플레이 제어기(1508)는 그래픽 정보를 처리하고 그래픽 정보를 표시하기 위한 임의의 유형의 프로세서, 제어기, 회로, 논리 등일 수 있다. 디스플레이 제어기(1508)는 버퍼(220)와 같은 하나 이상의 버퍼로부터 그래픽 정보를 수신하거나 검색할 수 있다. 정보를 처리한 후, 디스플레이 제어기(1508)는 디스플레이에 그래픽 정보를 전송할 수 있다.
다양한 실시예에서, 시스템(1500)은 송수신기(1544)를 포함할 수 있다. 송수신기(1544)는 다양한 적절한 무선 통신 기술을 사용하여 신호를 송신 및 수신할 수 있는 하나 이상의 라디오를 포함할 수 있다. 이러한 기술은 하나 이상의 무선 네트워크를 통한 통신을 수반할 수 있다. 예시적인 무선 네트워크는 무선 근거리 네트워크(WLAN), 무선 개인 영역 네트워크(WPAN), 무선 도시 영역 네트워크(WMAN), 셀룰러 네트워크 및 위성 네트워크를 포함한다(그러나 이에 제한되지는 않는다). 이러한 네트워크를 통해 통신하는 경우, 송수신기(1544)는 임의의 버전의 하나 이상의 적용 가능한 표준에 따라 동작할 수 있다. 실시예는 이와 관련하여 제한되지 않는다.
다양한 실시예에서, 컴퓨팅 디바이스(1505)는 디스플레이(1545)를 포함할 수 있다. 디스플레이(1545)는 프로세서 회로(1502), 그래픽 처리 유닛(1506) 및 디스플레이 제어기(1508)로부터 수신된 정보를 표시할 수 있는 임의의 디스플레이 디바이스를 구성할 수 있다.
다양한 실시예에서, 컴퓨팅 디바이스(1505)는 저장소(1546)를 포함할 수 있다. 저장소(1546)는 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 저장 디바이스, 부착형 저장 디바이스, 플래시 메모리, 배터리 백업 SDRAM(동기식 DRAM) 및/또는 네트워크 액세스 가능 저장 디바이스와 같은, 그러나 이에 제한되지 않는 비휘발성 저장 디바이스로서 구현될 수 있다. 실시예에서, 저장소(1546)는 예를 들어 다수의 하드 드라이브가 포함되는 경우 귀중한 디지털 미디어에 대한 저장 성능 향상 보호를 증가시키는 기술을 포함할 수 있다. 저장소(1546)의 추가 예는 하드 디스크, 플로피 디스크, CD-ROM(Compact Disk Read Only Memory), CD-R(Compact Disk Recordable), CD-RW(Compact Disk Rewriteable), 광 디스크, 자기 매체, 광자기 매체, 이동식 메모리 카드 또는 디스크, 다양한 유형의 DVD 디바이스, 테이프 디바이스, 카세트 디바이스 등을 포함할 수 있다. 실시예는 이와 관련하여 제한되지 않는다.
다양한 실시예에서, 컴퓨팅 디바이스(1505)는 하나 이상의 I/O 어댑터(1547)를 포함할 수 있다. I/O 어댑터(1547)의 예는 USB(universal serial bus) 포트/어댑터, IEEE 1394 파이어와이어 포트/어댑터 등을 포함할 수 있다. 실시예는 이와 관련하여 제한되지 않는다.
도 16은 전술한 바와 같은 다양한 실시예를 구현하기에 적합한 예시적인 컴퓨팅 아키텍처(1600)의 일 실시예를 도시한다. 일 실시예에서, 컴퓨팅 아키텍처(1600)는 시스템(100)을 포함하거나 그의 일부로서 구현될 수 있다.
본원에서 사용되는 바와 같이, "시스템" 및 "컴포넌트"라는 용어는 컴퓨터 관련 엔티티, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행중인 소프트웨어를 지칭하도록 의도되며, 그 예는 예시적인 컴퓨팅 아키텍처(1600)에 의해 제공된다. 예로서, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 하드 디스크 드라이브, (광학 및/또는 자기 저장 매체의) 다수의 저장 드라이브, 객체, 실행 파일, 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만, 그에 제한되지 않는다. 예를 들어, 서버에서 실행중인 애플리케이션 및 서버 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 컴포넌트가 하나의 컴퓨터에 국지화되고/되거나, 둘 이상의 컴퓨터 사이에 분산될 수 있다. 또한, 컴포넌트는 동작을 조정하기 위해 다양한 유형의 통신 매체에 의해 서로 통신 가능하게 결합될 수 있다. 조정은 정보의 단방향 또는 양방향 교환을 포함할 수 있다. 예를 들어, 컴포넌트는 통신 매체를 통해 통신되는 신호의 형태로 정보를 통신할 수 있다. 정보는 다양한 신호 라인에 할당되는 신호로서 구현될 수 있다. 이러한 할당에서 각 메시지는 신호이다. 그러나, 다른 실시예는 대안적으로 데이터 메시지를 사용할 수 있다. 이러한 데이터 메시지는 다양한 접속을 통해 전송될 수 있다. 예시적인 접속은 병렬 인터페이스, 직렬 인터페이스 및 버스 인터페이스를 포함한다.
컴퓨팅 아키텍처(1600)는 하나 이상의 프로세서, 다중 코어 프로세서, 코프로세서, 메모리 유닛, 칩셋, 제어기, 주변 기기, 인터페이스, 발진기, 타이밍 디바이스, 비디오 카드, 오디오 카드, 멀티미디어 입출력(I/O) 컴포넌트, 전원 등과 같은 다양한 일반 컴퓨팅 요소를 포함한다. 그러나, 실시예는 컴퓨팅 아키텍처(1600)에 의한 구현으로 제한되지 않는다.
도 16에 도시된 바와 같이, 컴퓨팅 아키텍처(1600)는 처리 유닛(1604), 시스템 메모리(1606) 및 시스템 버스(1608)를 포함한다. 처리 유닛(1604)은 다양한 상용 프로세서 중 임의의 것일 수 있다.
시스템 버스(1608)는 처리 유닛(1604)에 대한 시스템 메모리(1606)를 포함하지만 이에 제한되지 않는 시스템 컴포넌트를 위한 인터페이스를 제공한다. 시스템 버스(1608)는 메모리 버스(메모리 제어기를 갖거나 갖지 않음), 주변 기기 버스, 및 임의의 다양한 상용 버스 아키텍처를 사용하는 로컬 버스에 더 상호접속될 수 있는 몇몇 유형의 버스 구조 중 임의의 버스 구조일 수 있다. 인터페이스 어댑터는 슬롯 아키텍처를 통해 시스템 버스(1608)에 접속할 수 있다. 슬롯 아키텍처의 예는 AGP(Accelerated Graphics Port), 카드 버스, (E)ISA((Extended) Industry Standard Architecture), MCA(Micro Channel Architecture), NuBus, PCI(X)(Peripheral Component Interconnect(Extended)), PCI 익스프레스, PCMCIA(Personal Computer Memory Card International Association) 등을 포함하지만 이에 한정되지 않는다.
컴퓨팅 아키텍처(1600)는 다양한 제조물을 포함하거나 구현할 수 있다. 제조물은 논리를 저장하기 위한 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체의 예는 휘발성 메모리 또는 비휘발성 메모리, 이동식 또는 비이동식 메모리, 소거 가능 또는 소거 불가능 메모리, 기록 가능 또는 재기록 가능 메모리 등을 포함하는, 전자 데이터를 저장할 수 있는 임의의 유형적인 매체를 포함할 수 있다. 논리의 예는 소스 코드, 컴파일 코드, 해석 코드, 실행 가능 코드, 정적 코드, 동적 코드, 객체 지향 코드, 비주얼 코드 등과 같은 임의의 적합한 유형의 코드를 사용하여 구현되는 실행 가능 컴퓨터 프로그램 명령어를 포함할 수 있다. 또한, 실시예는 여기서 설명된 동작의 수행을 가능하게 하기 위해 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는, 비일시적 컴퓨터 판독 가능 매체 내에 또는 상에 포함된 명령어로서 적어도 부분적으로 구현될 수 있다.
시스템 메모리(1606)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 이중 데이터 레이트 DRAM(DDRAM), 동기 DRAM(SDRAM), 정적 RAM(SRAM), 프로그래밍 가능 ROM(PROM), 소거 및 프로그래밍 가능 ROM(EPROM), 전기적 소거 및 프로그래밍 가능 ROM(EEPROM), 플래시 메모리, 폴리머 메모리, 예로서 강유전성 폴리머 메모리, 오보닉 메모리, 상변화 또는 강유전성 메모리, 실리콘-산화물-질화물-산화물-실리콘(SONOS) 메모리, 자기 또는 광학 카드, RAID(Redundant Array of Independent Disk) 드라이브와 같은 디바이스의 어레이, 솔리드 스테이트 메모리 디바이스(예로서, USB 메모리, 솔리드 스테이트 드라이브(SSD)) 및 정보를 저장하기에 적합한 임의의 다른 유형의 저장 매체와 같은 하나 이상의 고속 메모리 유닛의 형태의 다양한 유형의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 도 16에 도시된 실시예에서, 시스템 메모리(1606)는 비휘발성 메모리(1610) 및/또는 휘발성 메모리(1612)를 포함할 수 있다. 기본 입출력 시스템(BIOS)이 비휘발성 메모리(1610)에 저장될 수 있다.
컴퓨터(1602)는 내부(또는 외부) 하드 디스크 드라이브(HDD)(1614), 이동식 자기 디스크(1618)로부터 판독하거나 그에 기록하기 위한 자기 플로피 디스크 드라이브(FDD)(1616), 및 이동식 광 디스크(1622)(예로서, CD-ROM 또는 DVD)로부터 판독하거나 그에 기록하기 위한 광 디스크 드라이브(1620)를 포함하는 하나 이상의 저속 메모리 유닛의 형태의 다양한 유형의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. HDD(1614), FDD(1616) 및 광 디스크 드라이브(1620)는 각각 HDD 인터페이스(1624), FDD 인터페이스(1626) 및 광 드라이브 인터페이스(1628)에 의해 시스템 버스(1608)에 접속될 수 있다. 외부 드라이브 구현을 위한 HDD 인터페이스(1624)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 양자를 포함할 수 있다.
드라이브 및 관련 컴퓨터 판독 가능 매체는 데이터, 데이터 구조, 컴퓨터 실행 가능 명령어 등의 휘발성 및/또는 비휘발성 저장을 제공한다. 예를 들어, 운영 체제(1630), 하나 이상의 애플리케이션 프로그램(1632), 다른 프로그램 모듈(1634) 및 프로그램 데이터(1636)를 포함하는 다수의 프로그램 모듈이 드라이브 및 메모리 유닛(1610, 1612)에 저장될 수 있다. 일 실시예에서, 하나 이상의 애플리케이션 프로그램(1632), 다른 프로그램 모듈(1634) 및 프로그램 데이터(1636)는 예를 들어 시스템(700)의 다양한 애플리케이션 및/또는 컴포넌트를 포함할 수 있다.
사용자는 하나 이상의 유무선 입력 디바이스, 예를 들어 키보드(1638) 및 마우스(1640)와 같은 포인팅 디바이스를 통해 명령 및 정보를 컴퓨터(1602)에 입력할 수 있다. 다른 입력 디바이스는 마이크로폰, 적외선(IR) 원격 제어, 라디오 주파수(RF) 원격 제어, 게임 패드, 스타일러스 펜, 카드 판독기, 동글, 지문 판독기, 장갑, 그래픽 태블릿, 조이스틱, 키보드, 망막 판독기, 터치 스크린(예로서, 용량성, 저항성 등), 트랙볼, 트랙 패드, 센서, 스타일러스 등을 포함할 수 있다. 이들 및 다른 입력 디바이스는 종종 시스템 버스(1608)에 결합되는 입력 디바이스 인터페이스(1642)를 통해 처리 디바이스(1604)에 접속되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 다른 인터페이스에 의해 결합될 수 있다.
모니터(1644) 또는 다른 유형의 디스플레이 디바이스도 비디오 어댑터(1646)와 같은 인터페이스를 통해 시스템 버스(1608)에 접속된다. 모니터(1644)는 컴퓨터(1602)의 내부 또는 외부에 있을 수 있다. 모니터(1644) 외에, 컴퓨터는 통상적으로 스피커, 프린터 등과 같은 다른 주변 출력 디바이스를 포함한다.
컴퓨터(1602)는 원격 컴퓨터(1648)와 같은 하나 이상의 원격 컴퓨터에 대한 유선 및/또는 무선 통신을 통한 논리 접속을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(1648)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서 기반 엔터테인먼트 기기, 피어 디바이스 또는 다른 일반 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1602)와 관련하여 설명된 많은 또는 모든 요소를 포함하지만, 간소화를 위해 메모리/저장 디바이스(1650)만이 도시된다. 도시된 논리 접속은 근거리 네트워크(LAN)(1652) 및/또는 광역 네트워크(WAN)(1654)와 같은 보다 큰 네트워크에 대한 유선/무선 접속을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적이고, 인트라넷과 같은 기업 광역 컴퓨터 네트워크를 촉진하며, 이들 모두는 글로벌 통신 네트워크, 예로서 인터넷에 접속될 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1602)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1656)를 통해 LAN(1652)에 접속된다. 어댑터(1656)는 어댑터(1656)의 무선 기능과 통신하기 위해 그 위에 배치된 무선 액세스 포인트를 포함할 수도 있는 LAN(1652)에 대한 유선 및/또는 무선 통신을 용이하게 할 수 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1602)는 모뎀(1658)을 포함할 수 있거나, WAN(1654) 상의 통신 서버에 접속되거나, WAN(1654), 예로서 인터넷을 통한 통신을 설정하기 위한 다른 수단을 갖는다. 내부 또는 외부 및 유선 및/또는 무선 디바이스일 수 있는 모뎀(1658)은 입력 디바이스 인터페이스(1642)를 통해 시스템 버스(1608)에 접속한다. 네트워킹 환경에서, 컴퓨터(1602) 또는 그 일부에 대해 도시된 프로그램 모듈은 원격 메모리/저장 디바이스(1650)에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터 간의 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것을 알 것이다.
컴퓨터(1602)는 무선 통신(예를 들어, IEEE 1602.11 무선 변조 기술) 내에 동작 가능하게 배치된 무선 디바이스와 같이 IEEE 1602 표준 패밀리를 사용하는 유선 및 무선 디바이스 또는 엔티티와 통신하도록 동작 가능하다. 이것은 특히 적어도 Wi-Fi(또는 Wireless Fidelity), WiMax 및 Bluetooth(상표) 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 사전 정의된 구조일 수도 있고, 단순히 적어도 2개의 디바이스 사이의 애드혹 통신일 수도 있다. Wi-Fi 네트워크는 IEEE 1602.1x(a, b, g, n 등)라는 라디오 기술을 사용하여 안전하고 신뢰성 있고 빠른 무선 접속을 제공한다. Wi-Fi 네트워크를 사용하여 컴퓨터를 서로, 인터넷에 그리고 (IEEE 1602.3 관련 매체 및 기능을 사용하는) 유선 네트워크에 접속할 수 있다.
도 1-16과 관련하여 전술한 바와 같은 시스템(100, 1500, 1600)의 다양한 요소는 다양한 하드웨어 요소, 소프트웨어 요소, 또는 이들의 조합을 포함할 수 있다. 하드웨어 요소의 예는 디바이스, 논리 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 프로세서, 회로 요소(예로서, 트랜지스터, 레지스터, 커패시터, 인덕터 등), 집적 회로, ASIC(Application Specific Integrated Circuit), PLD(programmable logic device), DSP(digital signal processor), FPGA(field programmable gate array), 메모리 유닛, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩 세트 등을 포함할 수 있다. 소프트웨어 요소의 예는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 프로시저, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심벌, 또는 이들의 임의의 조합을 포함할 수 있다. 그러나, 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현될지를 판단하는 것은 주어진 구현에 대해 요구되는 바와 같이 원하는 계산 속도, 전력 레벨, 열 허용 한계, 처리 사이클 예산, 입력 데이터 속도, 출력 데이터 속도, 메모리 자원, 데이터 버스 속도 및 다른 설계 또는 성능 제한 등과 같은 임의 수의 인자에 따라 변할 수 있다.
상세한 개시 내용은 이제 추가 실시예에 관한 예를 제공하는 것으로 바뀐다. 아래에서 제공되는 예 1 내지 32(1-32)는 예시적이고 비제한적인 것으로 의도된다.
제1 예에서, 처리 회로 및 처리 회로와 결합된 메모리를 갖는 시스템 또는 장치로서, 메모리는 정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 저장한다. 또한, 처리 회로는 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 적어도 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하고, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단한다.
제2 예에서 그리고 제1 예의 향상을 위해, 시스템 또는 장치에서 적어도 하나의 마스터 순방향 변환 행렬은 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬 및 4x4 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 포함할 수 있다.
제3 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 처리 회로는 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 DCT 순방향 변환 행렬을 도출할 수 있다.
제4 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 처리 회로는 제1 행 및 제1 열로부터 시작하는 16x16 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출할 수 있다.
제5 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 처리 회로는 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출할 수 있다.
제6 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 처리 회로는 제1 행 및 제1 열로부터 시작하는 8x8 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 4개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출할 수 있다.
제7 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 처리 회로는 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 8번째 행 및 처음 4개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출할 수 있다.
제8 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 처리 회로는 최종 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
제9 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 32x32 DCT 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 처리 회로는 제2 내지 최종 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
제10 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치는 판독 전용 메모리를 포함할 수 있다.
제11 예에서 그리고 임의의 이전 예의 향상을 위해, 시스템 또는 장치에서 처리 회로는 VP9 비디오 압축 표준에 기초하여 변환을 수행할 수 있다.
제11 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법은 정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하는 단계, 처리 회로에 의해, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하는 단계, 및 처리 회로에 의해, 판단에 적어도 부분적으로 기초하여 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하는 단계를 포함할 수 있다.
제12 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법은 정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하는 단계, 처리 회로에 의해, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하는 단계, 및 처리 회로에 의해, 판단에 적어도 부분적으로 기초하여 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하는 단계를 포함할 수 있다.
제13 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법에서 적어도 하나의 마스터 순방향 변환 행렬은 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬 및 4x4 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 포함할 수 있다.
제14 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 방법은 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 DCT 순방향 변환 행렬을 도출하는 단계를 포함할 수 있다.
제15 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 방법은 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출하는 단계를 포함할 수 있다.
제16 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법에서 32x32 DCT 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 방법은 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 8번째 행 및 처음 4개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출하는 단계를 포함할 수 있다.
제17 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 방법은 최종 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 단계를 포함할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
제18 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 구현 방법에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 방법은 제2 에서 최종 행으로 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 단계를 포함할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
제19 예에서 그리고 임의의 이전 예의 향상을 위해, 물건은 실행될 때 시스템으로 하여금 정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하고, 처리 회로에 의해, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하고, 처리 회로에 의해, 판단에 적어도 부분적으로 기초하여 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하는 것을 가능하게 하는 복수의 명령어를 포함하는 컴퓨터 판독 가능 저장 매체를 포함한다.
제20 예에서 그리고 임의의 이전 예의 향상을 위해, 물건은 실행될 때 시스템으로 하여금 정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하고, 처리 회로에 의해, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하고, 처리 회로에 의해, 판단에 적어도 부분적으로 기초하여 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하는 것을 가능하게 하는 복수의 명령어를 포함하는 컴퓨터 판독 가능 저장 매체를 포함하고, 적어도 하나의 마스터 순방향 변환 행렬은 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬 및 4x4 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 포함한다.
제21 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 판독 가능 저장 매체를 포함하는 물건에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 저장 매체는 실행될 때 시스템으로 하여금 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 DCT 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함할 수 있다.
제22 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 판독 가능 저장 매체를 포함하는 물건에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 저장 매체는 실행될 때 시스템으로 하여금 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함할 수 있다.
제23 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 판독 가능 저장 매체를 포함하는 물건에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 저장 매체는 실행될 때 시스템으로 하여금 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 8번째 행 및 처음 4개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함할 수 있다.
제24 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 판독 가능 저장 매체를 포함하는 물건에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 저장 매체는 실행될 때 시스템으로 하여금 최종 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
제25 예에서 그리고 임의의 이전 예의 향상을 위해, 컴퓨터 판독 가능 저장 매체를 포함하는 물건에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 저장 매체는 실행될 때 시스템으로 하여금 제2 내지 최종 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
제26 예에서 그리고 임의의 이전 예의 향상을 위해, 장치는 정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 저장하기 위한 수단, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하기 위한 수단, 및 판단에 적어도 부분적으로 기초하여 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대한 변환을 수행하기 위한 수단을 포함할 수 있다.
제27 예에서 그리고 임의의 이전 예의 향상을 위해, 장치에서 적어도 하나의 마스터 순방향 변환 행렬은 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬 및 4x4 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 포함할 수 있다.
제28 예에서 그리고 임의의 이전 예의 향상을 위해, 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 장치는 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 DCT 순방향 변환 행렬을 도출하기 위한 수단을 포함할 수 있다.
제29 예에서 그리고 임의의 이전 예의 향상을 위해, 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 장치는 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출하기 위한 수단을 포함할 수 있다.
제30 예에서 그리고 임의의 이전 예의 향상을 위해, 장치에서 32x32 DCT 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 장치는 제1 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 매 8번째 행 및 처음 4개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출하기 위한 수단을 포함할 수 있다.
제31 예에서 그리고 임의의 이전 예의 향상을 위해, 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 장치는 최종 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 2번째 행 및 처음 16개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 16x16 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하기 위한 수단을 포함할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
제32 예에서 그리고 임의의 이전 예의 향상을 위해, 장치에서 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고, 장치는 제2 내지 최종 행 및 제1 열로부터 시작하는 32x32 DCT 순방향 변환 행렬의 역순으로의 매 4번째 행 및 처음 8개 열로부터 유부호 상수를 추출함으로써 변환을 수행할 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하기 위한 수단을 포함할 수 있고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제된다.
일부 실시예는 표현 "일 실시예" 또는 "실시예" 및 그의 파생어를 함께 사용하여 설명될 수 있다. 이들 용어는 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 명세서의 다양한 곳에서의 "일 실시예에서"라는 문구는 모두가 반드시 동일한 실시예를 언급하는 것은 아니다. 또한, 일부 실시예는 "결합된" 및 "접속된"이라는 표현 및 그의 파생어를 함께 사용하여 설명될 수 있다. 이 용어는 반드시 서로 동의어로서 의도되는 것은 아니다. 예를 들어, 일부 실시예는 2개 이상의 요소가 서로 직접 물리적 또는 전기적으로 접촉하고 있음을 나타내기 위해 "접속된" 및/또는 "결합된"이라는 용어를 사용하여 설명될 수 있다. 그러나 "결합된"이라는 용어는 둘 이상의 요소가 서로 직접 접촉하지는 않지만 여전히 협력하거나 서로 상호작용한다는 것을 의미할 수도 있다.
독자가 기술적 개시내용의 특성을 신속하게 확인할 수 있도록 요약서가 제공됨을 강조한다. 그것은 청구항의 범위나 의미를 해석하거나 제한하는 데 사용되지 않을 것이라는 이해 하에 제출된다. 또한, 전술한 상세한 설명에서, 본 개시내용의 간소화를 위해 다양한 특징이 단일 실시예 내에 함께 그룹화되는 것을 알 수 있다. 이 개시 방법은 청구된 실시예가 각 청구항에 명시적으로 언급된 것보다 많은 특징을 요구한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 이하의 청구에 나타나는 바와 같이, 발명의 주제는 단일의 개시되는 실시예의 모든 특징보다 적은 특징에 존재한다. 따라서, 이하의 청구 범위는 상세한 설명에 포함되며, 각각의 청구 범위는 별개의 실시예로서 그 자신에 의거한다. 첨부된 청구항에서, "포함하는(including)" 및 "에 있어서(in which)"는 각각의 용어 "포함하는(comprising)" 및 "에 있어서(wherein)"의 평문 영어 등가물로서 사용된다. 또한, "제1", "제2", "제3" 등의 용어는 단지 라벨로서 사용되며, 그의 대상에 대해 수치적 요구를 부과하는 것을 의도하지 않는다.
위에서 설명한 것은 개시된 아키텍처의 예를 포함한다. 물론, 컴포넌트 및/또는 방법의 모든 가능한 조합을 기술하는 것은 가능하지 않지만, 이 분야의 기술자는 많은 추가적인 조합 및 순열이 가능하다는 것을 인식할 수 있다. 따라서, 새로운 아키텍처는 첨부된 청구항의 사상 및 범위 내에 있는 그러한 모든 변경, 수정 및 변형을 포함하도록 의도된다.

Claims (25)

  1. 비디오 스트림을 처리하는 장치로서,
    처리 회로와,
    상기 처리 회로와 결합된 메모리
    를 포함하고,
    상기 메모리는 정의된 수의 정밀도 비트(precision bits) 및 하나의 부호 비트를 갖는 유부호 상수(signed constant)를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 저장하고,
    상기 처리 회로는 상기 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 상기 적어도 하나의 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차(residuals)에 대해 상기 변환을 수행하고, 적어도 변환 유닛 크기에 기초하여 상기 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하며,
    상기 처리 회로는 최종 순방향 변환 행렬이 생성될 때까지 라운딩 동작을 지연시키는
    장치.
  2. 제1항에 있어서,
    상기 적어도 하나의 마스터 순방향 변환 행렬은 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬 및 4x4 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 포함하는
    장치.
  3. 제1항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 처리 회로는 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 2번째 행(every other row) 및 처음 16개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 16x16 DCT 순방향 변환 행렬을 도출하는
    장치.
  4. 제3항에 있어서,
    상기 처리 회로는 상기 제1 행 및 상기 제1 열로부터 시작하는 상기 16x16 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 8개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출하는
    장치.
  5. 제1항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 처리 회로는 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 4번째 행 및 처음 8개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출하는
    장치.
  6. 제5항에 있어서,
    상기 처리 회로는 상기 제1 행 및 상기 제1 열로부터 시작하는 상기 8x8 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 4개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출하는
    장치.
  7. 제1항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 처리 회로는 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 8번째 행 및 처음 4개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출하는
    장치.
  8. 제1항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 처리 회로는 최종 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 역순으로의 매 2번째 행 및 처음 16개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 16x16 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제되는
    장치.
  9. 제1항에 있어서,
    32x32 DCT 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 처리 회로는 제2 내지 최종 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 역순으로의 매 4번째 행 및 처음 8개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제되는
    장치.
  10. 제1항에 있어서,
    상기 메모리는 판독 전용 메모리를 포함하는
    장치.
  11. 제1항에 있어서,
    상기 처리 회로는 VP9 비디오 압축 표준에 기초하여 상기 변환을 수행하는
    장치.
  12. 비디오 스트림을 처리하는 컴퓨터 구현 방법으로서,
    정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하는 단계와,
    처리 회로에 의해, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하는 단계와,
    상기 처리 회로에 의해, 상기 판단에 적어도 부분적으로 기초하여 상기 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 상기 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대해 상기 변환을 수행하는 단계와,
    상기 처리 회로에 의해, 최종 순방향 변환 행렬이 생성될 때까지 라운딩 동작을 지연키시는 단계
    를 포함하는
    컴퓨터 구현 방법.
  13. 제12항에 있어서,
    상기 적어도 하나의 마스터 순방향 변환 행렬은 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬 및 4x4 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 포함하는
    컴퓨터 구현 방법.
  14. 제12항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 컴퓨터 구현 방법은 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 16개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 16x16 DCT 순방향 변환 행렬을 도출하는 단계를 포함하는
    컴퓨터 구현 방법.
  15. 제12항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 컴퓨터 구현 방법은 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 4번째 행 및 처음 8개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출하는 단계를 포함하는
    컴퓨터 구현 방법.
  16. 제12항에 있어서,
    32x32 DCT 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 컴퓨터 구현 방법은 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 8번째 행 및 처음 4개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출하는 단계를 포함하는
    컴퓨터 구현 방법.
  17. 제12항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 컴퓨터 구현 방법은 최종 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 역순으로의 매 2번째 행 및 처음 16개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 16x16 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 단계를 포함하고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제되는
    컴퓨터 구현 방법.
  18. 제12항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 컴퓨터 구현 방법은 제2 내지 최종 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 역순으로의 매 4번째 행 및 처음 8개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 단계를 포함하고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제되는
    컴퓨터 구현 방법.
  19. 컴퓨터 판독가능 저장 매체로서,
    실행될 때 비디오 스트림을 처리하는 시스템으로 하여금,
    정의된 수의 정밀도 비트 및 하나의 부호 비트를 갖는 유부호 상수를 포함하는 적어도 하나의 마스터 순방향 변환 행렬을 메모리에 저장하고,
    처리 회로에 의해, 적어도 변환 유닛 크기에 기초하여 변환을 수행하기 위해 어느 순방향 변환 행렬을 사용할지를 판단하고,
    상기 처리 회로에 의해, 상기 판단에 적어도 부분적으로 기초하여 상기 적어도 하나의 마스터 순방향 변환 행렬 중 하나 또는 상기 마스터 순방향 변환 행렬 중 하나로부터 도출된 순방향 변환 행렬을 사용하여 프레임의 픽셀 값의 잔차에 대해 상기 변환을 수행하고
    상기 처리 회로에 의해, 최종 순방향 변환 행렬이 생성될 때까지 라운딩 동작을 지연시키는 것을 가능하게 하는 복수의 명령어
    를 포함하는 컴퓨터 판독가능 저장 매체.
  20. 제19항에 있어서,
    상기 적어도 하나의 마스터 순방향 변환 행렬은 32x32 이산 코사인 변환(DCT) 순방향 변환 행렬 및 4x4 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 포함하는
    컴퓨터 판독가능 저장 매체.
  21. 제19항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 저장 매체는 실행될 때 상기 시스템으로 하여금 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 2번째 행 및 처음 16개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 16x16 DCT 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함하는
    컴퓨터 판독가능 저장 매체.
  22. 제19항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 저장 매체는 실행될 때 상기 시스템으로 하여금 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 4번째 행 및 처음 8개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 8x8 DCT 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함하는
    컴퓨터 판독가능 저장 매체.
  23. 제19항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 저장 매체는 실행될 때 상기 시스템으로 하여금 제1 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 매 8번째 행 및 처음 4개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 4x4 DCT 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함하는
    컴퓨터 판독가능 저장 매체.
  24. 제19항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 저장 매체는 실행될 때 상기 시스템으로 하여금 최종 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 역순으로의 매 2번째 행 및 처음 16개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 16x16 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함하고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제되는
    컴퓨터 판독가능 저장 매체.
  25. 제19항에 있어서,
    32x32 이산 코사인 변환(DCT) 순방향 변환 행렬을 포함하는 상기 적어도 하나의 마스터 순방향 변환 행렬은 유부호 상수의 32개 열 및 32개 행을 더 포함하고,
    상기 저장 매체는 실행될 때 상기 시스템으로 하여금 제2 내지 최종 행 및 제1 열로부터 시작하는 상기 32x32 DCT 순방향 변환 행렬의 역순으로의 매 4번째 행 및 처음 8개 열로부터 상기 유부호 상수를 추출함으로써 상기 변환을 수행할 8x8 비대칭 이산 사인 변환(ADST) 순방향 변환 행렬을 도출하는 것을 가능하게 하는 명령어를 포함하고, 제2 열로부터 시작하여 하나 걸러 하나의 열이 배제되는
    컴퓨터 판독가능 저장 매체.
KR1020167035767A 2014-07-25 2015-06-24 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술 KR102231975B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/341,481 US10863200B2 (en) 2014-07-25 2014-07-25 Techniques for performing a forward transformation by a video encoder using a forward transform matrix
US14/341,481 2014-07-25
PCT/US2015/037388 WO2016014200A1 (en) 2014-07-25 2015-06-24 Techniques for performing a forward transformation by a video encoder using a forward transform matrix

Publications (2)

Publication Number Publication Date
KR20170007467A KR20170007467A (ko) 2017-01-18
KR102231975B1 true KR102231975B1 (ko) 2021-03-24

Family

ID=55163516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167035767A KR102231975B1 (ko) 2014-07-25 2015-06-24 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술

Country Status (5)

Country Link
US (1) US10863200B2 (ko)
EP (1) EP3172898A4 (ko)
KR (1) KR102231975B1 (ko)
CN (1) CN107079169B (ko)
WO (1) WO2016014200A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022265415A1 (ko) * 2021-06-16 2022-12-22 엘지전자 주식회사 저주파 비분리 변환 설계 방법 및 장치
WO2022265420A1 (ko) * 2021-06-16 2022-12-22 엘지전자 주식회사 영상 코딩 방법 및 그 장치
WO2022265417A1 (ko) * 2021-06-16 2022-12-22 엘지전자 주식회사 저주파 비분리 변환 설계 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9807423B1 (en) * 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
FR3071690B1 (fr) * 2017-09-22 2022-09-30 Bcom Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120082212A1 (en) * 2010-09-30 2012-04-05 Mangesh Sadafale Transform and Quantization Architecture for Video Coding and Decoding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09307792A (ja) * 1996-05-14 1997-11-28 Sony Corp ノイズリデューサ
US7110459B2 (en) * 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
JP4536109B2 (ja) * 2007-12-26 2010-09-01 富士通株式会社 半導体装置および信号処理方法
US9185422B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Variable localized bit-depth increase for fixed-point transforms in video coding
CN102043605B (zh) * 2010-12-23 2012-10-24 龙芯中科技术有限公司 一种多媒体变换乘法器及其处理方法
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US8719321B2 (en) * 2011-12-11 2014-05-06 Hong Kong Applied Science and Technology Research Institute Company Limited Adaptive block-size transform using LLMICT
JP5644753B2 (ja) 2011-12-26 2014-12-24 豊田合成株式会社 Iii族窒化物半導体発光素子
CN103501437B (zh) 2013-09-29 2016-06-22 北京航空航天大学 一种基于分形和h.264的高光谱图像压缩方法
US9544596B1 (en) * 2013-12-27 2017-01-10 Google Inc. Optimized template matching approach to intra-coding in video/image compression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120082212A1 (en) * 2010-09-30 2012-04-05 Mangesh Sadafale Transform and Quantization Architecture for Video Coding and Decoding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022265415A1 (ko) * 2021-06-16 2022-12-22 엘지전자 주식회사 저주파 비분리 변환 설계 방법 및 장치
WO2022265420A1 (ko) * 2021-06-16 2022-12-22 엘지전자 주식회사 영상 코딩 방법 및 그 장치
WO2022265417A1 (ko) * 2021-06-16 2022-12-22 엘지전자 주식회사 저주파 비분리 변환 설계 방법 및 장치

Also Published As

Publication number Publication date
EP3172898A4 (en) 2018-01-17
CN107079169A (zh) 2017-08-18
CN107079169B (zh) 2021-06-15
KR20170007467A (ko) 2017-01-18
US20160029046A1 (en) 2016-01-28
WO2016014200A1 (en) 2016-01-28
EP3172898A1 (en) 2017-05-31
US10863200B2 (en) 2020-12-08
WO2016014200A4 (en) 2016-04-28

Similar Documents

Publication Publication Date Title
KR102231975B1 (ko) 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술
CN101908035B (zh) 视频编解码方法、gpu及其与cpu的交互方法及系统
JP2022517060A (ja) 点群符号化構造
US9392292B2 (en) Parallel encoding of bypass binary symbols in CABAC encoder
US20140086309A1 (en) Method and device for encoding and decoding an image
CN106341692A (zh) 图像数据的霍夫曼解码装置和方法
CN105657430A (zh) 修改运动补偿信息的数据处理系统和解码视频数据的方法
US20190069033A1 (en) Video encoding apparatus and video encoding system
US10009617B2 (en) Method of operating encoder and method of operating system on chip including the encoder
JP6412589B2 (ja) 装置、コンピュータプログラムおよびコンピュータ実装方法
KR101303503B1 (ko) 컬러 이미지들을 위한 조인트 스칼라 임베디드 그래픽 코딩
CN110324668A (zh) 图像块编码中的变换方法、解码中的反变换方法及装置
TWI785073B (zh) 多重轉碼器編碼器及多重轉碼器編碼系統
US9800876B2 (en) Method of extracting error for peak signal to noise ratio (PSNR) computation in an adaptive scalable texture compression (ASTC) encoder
US9848188B1 (en) Video coding transform systems and methods

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