KR100965704B1 - 2-d transforms for image and video coding - Google Patents

2-d transforms for image and video coding Download PDF

Info

Publication number
KR100965704B1
KR100965704B1 KR1020030028005A KR20030028005A KR100965704B1 KR 100965704 B1 KR100965704 B1 KR 100965704B1 KR 1020030028005 A KR1020030028005 A KR 1020030028005A KR 20030028005 A KR20030028005 A KR 20030028005A KR 100965704 B1 KR100965704 B1 KR 100965704B1
Authority
KR
South Korea
Prior art keywords
transform
matrix
block
limit
product
Prior art date
Application number
KR1020030028005A
Other languages
Korean (ko)
Other versions
KR20030086423A (en
Inventor
스리니바샌스리디하
레구나탄쉔카
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20030086423A publication Critical patent/KR20030086423A/en
Application granted granted Critical
Publication of KR100965704B1 publication Critical patent/KR100965704B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking

Abstract

A set of one and two-dimensional transforms is constructed subject to certain range limited constraints to provide a computationally efficient transform implementation, such as for use in image and video coding. The constraints can include that the transform has a scaled integer implementation, provides perfect or near perfect reconstruction, has a DCT-like basis, is limited to coefficient within a range for representation in n-bits (e.g., n is 16 bits), has basis functions that are close in norm, and provides sufficient headroom for overflow of the range. A set of transforms is constructed with this procedure having an implementation within a 16-bit integer range for efficient computation using integer matrix multiplication operations. <IMAGE>

Description

이미지 및 비디오 코딩을 위한 2D 변환{2-D TRANSFORMS FOR IMAGE AND VIDEO CODING}2-D TRANSFORMS FOR IMAGE AND VIDEO CODING} for Image and Video Coding

도 1은 본 명세서에 기재된 변환 클래스에 기초한 비디오 인코더의 블록 다이어그램.1 is a block diagram of a video encoder based on a transform class described herein.

도 2는 기재된 변환 클래스에 기초한 비디오 디코더의 블록 다이어그램.2 is a block diagram of a video decoder based on the transform class described.

도 3은 2차원 변환을 예시한 블록 다이어그램.3 is a block diagram illustrating a two-dimensional transform.

도 4는 기재된 변환 클래스를 이용하여 도 1 및 2의 비디오 인코더 및 디코더에 의한 변환 코딩을 예시한 데이터 플로우 다이어그램.4 is a data flow diagram illustrating transform coding by the video encoder and decoder of FIGS. 1 and 2 using the transform class described.

도 5는 기재된 변환 클래스에 대한 역변환의 구현의 블록 다이어그램.5 is a block diagram of an implementation of an inverse transform for the transform class described.

도 6은 기재된 변환 클래스 중 하나를 구축하기 위한 프로세스의 플로우 차트.6 is a flow chart of a process for building one of the transform classes described.

도 7은 기재된 변환 클래스에 대한 순방향 변환의 구현의 블록 다이어그램.7 is a block diagram of an implementation of forward transform for the described transform class.

도 8은 도 1 및 도 2의 기재된 변환 클래스에 기초한 비디오 인코더/디코더의 적절한 컴퓨팅 환경의 블록 다이어그램.8 is a block diagram of a suitable computing environment of a video encoder / decoder based on the transform classes described in FIGS. 1 and 2.

<도면의 주요 부분에 대한 간단한 설명><Brief description of the main parts of the drawing>

800 : 컴퓨팅 환경800: computing environment

810 : 처리 유닛 810 processing unit                 

820 : 메모리820: memory

840 : 저장 장치840 storage device

850 : 입력 디바이스850: input device

860 : 출력 디바이스860: output device

870 : 통신 접속870: communication connection

본 발명은 신호를 디지털로 인코딩하고 처리하기 위한 기술에 관한 것이다. 특히, 본 발명은 이미지 및 비디오와 같은 신호들의 인코딩 및 디코딩시 계산상으로 효율적인 변환 클래스의 구축 및 이용에 관한 것이다.The present invention relates to techniques for digitally encoding and processing signals. In particular, the present invention relates to the construction and use of computationally efficient transform classes in the encoding and decoding of signals such as images and video.

변환 코딩은 다수의 오디오, 이미지 및 비디오 압축 시스템에서 이용되는 압축 기술이다. 압축되지 않은 디지털 이미지 및 비디오는 통상 2차원 그리드에 배열된 이미지 또는 비디오 프레임 내의 위치에서 픽셀 또는 컬러의 샘플로서 표현되거나 캡쳐링된다. 예를 들면, 이미지를 위한 전형적인 포맷은 그리드로서 배열된 24비트 컬러 픽셀 샘플들의 스트림으로 구성된다. 각 샘플은 다른 것들 중에서 RGB 또는 YIQ와 같은 컬러 공간 내에서 그리드 내의 픽셀 위치에서의 컬러 컴포넌트를 나타내는 숫자이다. 다양한 이미지 및 비디오 시스템은 다양한 다른 컬러, 공간 및 시간 해상도의 샘플링을 이용한다. Transform coding is a compression technique used in many audio, image and video compression systems. Uncompressed digital images and video are typically represented or captured as samples of pixels or colors at locations within an image or video frame arranged in a two-dimensional grid. For example, a typical format for an image consists of a stream of 24-bit color pixel samples arranged as a grid. Each sample is a number representing the color component at pixel locations within the grid within a color space, such as RGB or YIQ, among others. Various image and video systems use sampling of various different color, spatial and temporal resolutions.

미압축된 디지털 이미지 및 비디오 신호는 상당한 저장 공간 및 송신 용량을 소비할 수 있다. 변환 코딩은 신호의 공간 도메인 표현을 주파수 도메인(또는 다른 유사 변환 도메인) 표현으로 변환한 후, 변환 도메인 표현의 일반적으로 덜 인지될 수 있는 특정 주파수 도메인의 해상도를 감소시킴으로써 디지털 이미지 및 비디오의 크기를 감소시킨다. 이것은 일반적으로 공간 도메인에서 이미지 또는 비디오의 컬러 또는 공간 해상도를 축소하는 것에 비교할 때, 디지털 신호의 인지될 수 있는 저하를 훨씬 적게 생성한다.Uncompressed digital image and video signals can consume significant storage space and transmission capacity. Transform coding converts the spatial domain representation of a signal into a frequency domain (or other similar transform domain) representation and then reduces the size of the digital image and video by reducing the resolution of a particular less-perceived frequency domain of the transform domain representation. Decrease. This generally produces much less noticeable degradation of the digital signal compared to reducing the color or spatial resolution of an image or video in the spatial domain.

더 구체적으로는, 전형적인 변환 코딩 기술은 미압축된 디지털 이미지의 픽셀을 각 블록이 다른 블록과 중첩될 수 있는 고정된 크기의 2차원 블록들로 분할한다. 공간 주파수 분석을 수행하는 선형 변환이 각 블록에 적용되어, 블록내의 이격된 샘플들을 블록 간격에 걸쳐 대응하는 주파수 대역에서의 디지털 신호의 세기를 일반적으로 나타내는 주파수(또는 변환) 계수의 셋트로 변환한다. 압축을 위해, 변환 계수는 선택적으로 양자화되고(즉, 계수 값의 최하위 비트를 드롭핑하거나, 더 높은 해상도 숫자 셋트의 값을 더 낮은 해상도로 매핑함으로써 해상도가 감소됨), 압축 데이터 스트림으로 엔트로피 또는 가변-길이 코딩된다. 디코딩시, 변환 계수는 역으로 변환되어 원래 컬러/공간 샘플링된 이미지/비디오 신호를 거의 재구축한다.More specifically, a typical transform coding technique divides a pixel of an uncompressed digital image into fixed size two-dimensional blocks in which each block can overlap another block. A linear transform that performs spatial frequency analysis is applied to each block to transform the spaced samples in the block into a set of frequency (or transform) coefficients that generally represent the strength of the digital signal in the corresponding frequency band over the block interval. . For compression, the transform coefficients are optionally quantized (ie, the resolution is reduced by dropping the least significant bits of the coefficient values, or by mapping a value of a higher resolution number set to a lower resolution), or entropy or variable into the compressed data stream. Length coded. Upon decoding, the transform coefficients are inversely transformed to almost reconstruct the original color / spatially sampled image / video signal.

다른 것들 중에서 MPEG 및 Windows Media와 같은 다수의 이미지 및 비디오 압축 시스템은 이산 코사인 변환(DCT, Discrete Cosine Transform)에 기초하여 변환을 활용한다. DCT는 거의 광학적 데이터 압축에 이르는 양호한 에너지 집중 속성을 가지고 있는 것으로 알려져 있다. 이들 압축 시스템에서, 개별적인 이미지 블록을 재구축하기 위한 압축 시스템의 인코더 및 디코더 양쪽에서 재구축 루프에 역 DCT(IDCT)가 채용된다. IDCT의 구현 예는 "IEEE Standard Specification for the Implementations of 8x8 Inverse Discrete Cosine Transform" IEEE Std. 1180-1990, December 6, 1990에 기재되어 있다.Among other things, many image and video compression systems, such as MPEG and Windows Media, utilize transformations based on Discrete Cosine Transforms (DCT). DCT is known to have good energy concentrating properties leading to almost optical data compression. In these compression systems, an inverse DCT (IDCT) is employed in the reconstruction loop at both the encoder and the decoder of the compression system for reconstructing individual image blocks. An example implementation of IDCT is "IEEE Standard Specification for the Implementations of 8x8 Inverse Discrete Cosine Transform" IEEE Std. 1180-1990, December 6, 1990.

IEEE Std. 1180-1990에 정의된 바와 같이 IDCT 변환의 단점은 변환 계산은 64 비트 부동소수점 숫자의 매트릭스 승산을 필요로 하고, 이것은 계산적으로 비용이 많이 든다. 이것은 특히 스트리밍 미디어 및 유사 미디어 재생 어플리케이션에서 이미지 또는 비디오 압축 시스템의 성능을 제한할 수 있고, 여기에서 IDCT는 실시간 기반 또는 다른 유사한 시간 제한 하에서 다량의 압축 데이터에 대해 수행된다.IEEE Std. The disadvantage of the IDCT transform as defined in 1180-1990 is that the transform computation requires a matrix multiplication of 64-bit floating point numbers, which is computationally expensive. This may limit the performance of an image or video compression system, especially in streaming media and similar media playback applications, where IDCT is performed on large amounts of compressed data under real time based or other similar time constraints.

일차원 및 2차원 변환 클래스, 그러한 변환을 구축하기 위한 기술, 및 그러한 변환을 이용하는 미디어 코딩/디코딩 시스템이 기재된다.One- and two-dimensional transform classes, techniques for building such transforms, and media coding / decoding systems using such transforms are described.

기재되는 변환은 계산상의 효율을 위해 정수에 대한 매트릭스 곱 연산에 기초한 구현을 가지고 있다. 전형적인 일반 목적 및 그래픽 프로세서에서, 정수에 대한 매트릭스 곱 연산은 부동 소수점 숫자보다 훨씬 더 빨리 실행될 수 있다. 또한, 일부 32비트 프로세서들은 한 번에 2개의 16비트 정수에 대한 곱 연산을 제공한다. 예로 든 구현에서, 기재된 변환은 16비트 정수 매트릭스 곱으로 수행된다. 정수 매트릭스 곱을 가지는 기재된 변환의 구현은 미디어 코딩/디코딩 시스템에서 코딩 및 디코딩 성능을 향상시킨다. The transformation described has an implementation based on matrix multiplication operations on integers for computational efficiency. In typical general purpose and graphics processors, matrix multiplication operations on integers can be executed much faster than floating point numbers. In addition, some 32-bit processors provide multiply operations for two 16-bit integers at a time. In the example implementation, the described transform is performed with a 16-bit integer matrix product. Implementation of the described transforms with integer matrix products improves coding and decoding performance in media coding / decoding systems.                         

기재된 변환은 본 명세서에 기재된 구축 절차를 통해 생성될 수 있다. 구축 절차는 특정 제한을 받는 변환 계수의 셋트를 선택하는 것에 기초하여 변환 클래스의 변환을 생성한다. 변환은 스케일링된 정수 구현을 가지고 있고, 완벽한 또는 거의 완벽한 재구성을 제공하며, DCT-형 기저를 가지고 있고, n 비트(예를 들면, n은 16비트)의 표현을 위한 범위 내의 계수로 한정되며, 놈(norm)에 인접한 기저 함수들을 가지고 있고, 범위의 오버플로우에 대한 충분한 헤드룸(headroom)을 제공한다는 제한을 포함할 수 있다.The described transformations may be generated through the construction procedures described herein. The construction procedure creates a transform of the transform class based on selecting a set of transform coefficients that are subject to certain constraints. The transform has a scaled integer implementation, provides a perfect or near perfect reconstruction, has a DCT-like basis, is limited to coefficients within a range for representation of n bits (e.g., n is 16 bits), It has a basis function adjacent to the norm and may include a restriction that provides sufficient headroom for overflow of the range.

기재된 구축 절차를 이용하면, 1차원에서 4 및 8 포인트 컴포넌트를 가지는 변환 셋트는 2차원에서 8x8, 8x4, 4x8 및 4x4 블록 변환을 발생시킨다. 16비트 매트릭스 곱을 이용한 구현을 허용하는, 변환에 기초한 압축 시스템은 더 계산상 효율적인 인코딩 및 디코딩을 제공할 수 있다.Using the described construction procedure, a transform set having four and eight point components in one dimension generates 8x8, 8x4, 4x8 and 4x4 block transforms in two dimensions. Transform-based compression systems, which allow implementations using 16-bit matrix products, can provide more computationally efficient encoding and decoding.

본 발명의 추가 특징 및 장점들은 첨부된 도면을 참조하여 제공되는 이하의 실시예에 대한 상세한 설명을 통해 명백하게 된다.Further features and advantages of the present invention will become apparent from the following detailed description of the embodiments provided with reference to the accompanying drawings.

이하의 설명은 계산상의 효율을 위한 1차원 및 2차원 변환 클래스, 특정 기준에 종속되는 그러한 변환을 구축하기 위한 기술, 및 그러한 변환의 신호 처리에의 이용, 및 특히 그러한 변환에 기초한 미디어 압축 시스템에 관한 것이다. 예로 든 변환 어플리케이션은 Microsoft Windows Media Video(WMV) 파일 포맷의 변형을 채용하는 인코더 및 디코더와 같은 이미지 또는 비디오 인코더 및 디코더이다. 그러나, 본 명세서에 기재된 바와 같이 구축된 변환은 이러한 포맷으로 제한되지 않고, 다른 미디어 코딩 포맷에도 적용될 수 있다. 따라서, 변환은 일반화된 이미지 또는 비디오 인코더의 컨텍스트로 기재되어 있지만, 다르게는 다른 형태의 미디어 신호 인코더 및 디코더에 통합될 수 있다.The following description is directed to one- and two-dimensional transform classes for computational efficiency, techniques for building such transforms that depend on specific criteria, and the use of such transforms in signal processing, and in particular media compression systems based on such transforms. It is about. Example conversion applications are image or video encoders and decoders, such as encoders and decoders that employ variations of the Microsoft Windows Media Video (WMV) file format. However, the transforms constructed as described herein are not limited to these formats and can be applied to other media coding formats. Thus, the transformation is described in the context of a generalized image or video encoder, but could alternatively be incorporated into other forms of media signal encoder and decoder.

Ⅰ. 일반화된 비디오 인코더 및 디코더I. Generalized Video Encoder and Decoder

도 1은 일반화된 비디오 인코더(100)의 블록 다이어그램이고, 도 2는 일반화된 비디오 디코더(200)의 블록 다이어그램이다.1 is a block diagram of a generalized video encoder 100, and FIG. 2 is a block diagram of a generalized video decoder 200.

인코더 및 디코더 내부의 모듈들 사이에 도시된 관계는 인코더 및 디코더 내에서의 정보의 주 흐름을 나타내고, 다른 관계들은 단순화를 위해 도시되지 않았다. 특히, 도 1 및 도 2는 비디오 시퀀스, 프레임, 매크로 블록, 블록 등에 이용되는 인코더 셋팅, 모드, 테이블 등을 나타내는 부가 정보(side information)를 도시하지 않는다. 그러한 부가 정보는 통상 부가 정보의 엔트로피 인코딩 후에 출력 비트 스트림으로 전송된다. 출력 비트 스트림의 포맷은 Windows Media Video 포맷 또는 다른 포맷이 될 수 있다.The relationship shown between the modules inside the encoder and decoder represents the main flow of information within the encoder and decoder, and other relationships are not shown for simplicity. In particular, FIGS. 1 and 2 do not show side information indicating encoder settings, modes, tables, etc., used in video sequences, frames, macroblocks, blocks, and the like. Such side information is typically sent to the output bit stream after entropy encoding of the side information. The format of the output bit stream can be the Windows Media Video format or another format.

인코더(100) 및 디코더(200)는 블록 기반이고, 각각의 매크로 블록이 4 휘도 8x8 휘도 블록(종종 하나의 16x16 매크로 블록으로서 처리됨) 및 2개의 8x8 색차 블록을 포함하는 4:2:0 매크로 블록 포맷을 이용한다. 다르게는, 인코더(100) 및 디코더(200)는 오브젝트 기반이고, 다른 매크로 블록 또는 블록 포맷을 이용하거나 8x8 블록 및 16x16 매크로 블록과 다른 크기 또는 구성의 픽셀 셋트에 대한 연산을 수행한다.Encoder 100 and decoder 200 are block-based and each macroblock is a 4: 2: 0 macroblock containing four luminance 8x8 luminance blocks (often treated as one 16x16 macroblock) and two 8x8 chrominance blocks. Use the format. Alternatively, encoder 100 and decoder 200 are object based and perform operations on pixel sets of different sizes or configurations using different macroblocks or block formats or different from 8x8 blocks and 16x16 macroblocks.

요구되는 구현 및 압축 타입에 따라, 인코더 또는 디코더의 모듈이 부가되고, 생략되며, 다중 모듈들로 분할되고, 다른 모듈과 조합되고/조합되거나, 유사한 모듈로 대체될 수 있다. 다른 실시예에서, 다른 모듈을 가지는 인코더 또는 디코더 및/또는 모듈의 다른 구성은 기재된 기술들 중 하나 이상을 수행한다.Depending on the implementation and type of compression required, modules of the encoder or decoder may be added, omitted, divided into multiple modules, combined with other modules and / or replaced with similar modules. In other embodiments, encoders or decoders with other modules and / or other configurations of modules perform one or more of the techniques described.

A. 비디오 인코더A. Video Encoder

도 1은 일반적인 비디오 인코더 시스템(100)의 블록 다이어그램이다. 인코더 시스템(100)은 현재 프레임(105)을 포함하는 비디오 프레임 시퀀스를 수신하고, 출력으로서 압축된 비디오 정보(195)를 생성한다. 비디오 인코더의 특정 실시예들은 통상 일반화된 인코더(100)의 변형 또는 부가된 버전을 이용한다.1 is a block diagram of a typical video encoder system 100. Encoder system 100 receives a video frame sequence that includes current frame 105 and generates compressed video information 195 as output. Certain embodiments of the video encoder typically use a modified or added version of the generalized encoder 100.

인코더 시스템(100)은 예측 프레임 및 키 프레임을 압축한다. 프리젠테이션의 목적상, 도 1은 인코더 시스템(100)을 통한 키 프레임에 대한 경로 및 포워드-예측된 프레임에 대한 경로를 도시하고 있다. 인코더 시스템(100)의 많은 컴포넌트들은 키 프레임 및 예측 프레임 모두를 압축하는데 이용된다. 이들 컴포넌트들에 의해 수행되는 정확한 동작은 압축되는 정보 타입에 따라 가변될 수 있다.The encoder system 100 compresses the predictive frame and the key frame. For purposes of presentation, FIG. 1 illustrates a path for key frames and a path for forward-predicted frames through encoder system 100. Many components of encoder system 100 are used to compress both key frames and predictive frames. The exact operation performed by these components may vary depending on the type of information being compressed.

예측 프레임[p-프레임으로도 지칭되고, 양방향 예측에 대해서는 b-프레임 또는 인터-코딩된 프레임]은 하나 이상의 다른 프레임으로부터 예측(또는 차이)의 측면에서 표현된다. 예측 나머지(residual)는 예측되었던 것과 원래 프레임 간의 차이이다. 한편, 키 프레임(또한, i-프레임으로도 지칭됨, 인트라-코딩된 프레임)은 다른 프레임을 참조하지 않고 압축된다. Prediction frames (also referred to as p-frames, b-frames or inter-coded frames for bidirectional prediction) are expressed in terms of prediction (or difference) from one or more other frames. The prediction residual is the difference between what was predicted and the original frame. On the other hand, key frames (also referred to as i-frames, intra-coded frames) are compressed without reference to other frames.

현재 프레임(105)이 포워드-예측된 프레임이라면, 모션 추정기(110)는 프레임 저장소(120)에 버퍼링된 재구축 이전 프레임(125)인 기준 프레임에 대한 현재 프레임(105)의 매크로 블록 또는 다른 픽셀 셋트의 모션을 추정한다. 다른 실시예에서, 기준 프레임은 나중 프레임이거나 현재 프레임은 양방향으로 예측된다. 모션 추정기(110)는 모션 벡터와 같은 모션 정보(115)를 부가 정보로서 출력한다. 모션 보상기(130)는 모션 정보(115)를 재구축 이전 프레임(125)에 적용하여 모션 보상된 현재 프레임(135)을 형성한다. 그러나, 예측은 좀처럼 완벽하지 않으며, 모션 보상된 현재 프레임(135)과 원래의 현재 프레임(105) 간의 차이는 예측 나머지(145)이다. 다르게는, 모션 추정기 및 모션 보상기는 다른 타입의 모션 추정/보상을 적용한다.If the current frame 105 is a forward-predicted frame, then the motion estimator 110 is a macroblock or other pixel of the current frame 105 for the reference frame that is the reconstructed previous frame 125 buffered in the frame store 120. Estimate the motion of the set. In another embodiment, the reference frame is a later frame or the current frame is predicted bidirectionally. The motion estimator 110 outputs motion information 115 such as a motion vector as additional information. The motion compensator 130 applies the motion information 115 to the reconstruction previous frame 125 to form a motion compensated current frame 135. However, the prediction is rarely perfect, and the difference between the motion compensated current frame 135 and the original current frame 105 is the prediction remainder 145. Alternatively, the motion estimator and motion compensator apply different types of motion estimation / compensation.

주파수 변환기(160)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼) 데이터로 변환한다. 블록 기반 비디오 프레임에 대해, 주파수 변환기(160)는 이산 코사인 변환(DCT)과 유사한 특성을 가지는, 이하에 설명되는 변환을 적용한다. 일부 실시예에서, 주파수 변환기(160)는 키 프레임을 위한 공간 예측 나머지의 블록에 주파수 변환을 적용한다. 주파수 변환기(160)는 8x8, 8x4, 4x8 또는 다른 크기의 주파수 변환을 적용할 수 있다. The frequency converter 160 converts the spatial domain video information into frequency domain (ie, spectral) data. For block based video frames, frequency converter 160 applies the transform described below, which has properties similar to discrete cosine transform (DCT). In some embodiments, frequency converter 160 applies the frequency transform to the block of spatial prediction remainder for the key frame. The frequency converter 160 may apply 8x8, 8x4, 4x8 or other sized frequency conversions.

그리고 나서, 양자화기(170)는 스펙트럼 데이터 계수의 블록을 양자화한다. 양자화기는 프레임별 기저 또는 다른 기저로 가변되는 스텝-크기로 스펙트럼 데이터에 균일한 스칼라 양자화를 적용한다. 다르게는, 양자화기는 스펙트럼 데이터 계수에 다른 타입의 양자화, 예를 들면 비균일의, 벡터 또는 비적응성 양자화를 적용하거나, 주파수 변환을 이용하지 않는 인코더 시스템에서 공간 도메인 데이터를 직접 양자화한다. 적응성 양자화뿐만 아니라, 인코더(100)는 프레임 드롭핑(dropping), 적응성 필터링, 또는 레이트 제어를 위한 다른 기술을 이용할 수 있다.The quantizer 170 then quantizes the block of spectral data coefficients. The quantizer applies uniform scalar quantization to the spectral data in step-size that varies from frame to frame or other basis. Alternatively, the quantizer applies other types of quantization to the spectral data coefficients, such as nonuniform, vector or non-adaptive quantization, or directly quantizes the spatial domain data in an encoder system that does not use frequency transform. In addition to adaptive quantization, the encoder 100 may use other techniques for frame dropping, adaptive filtering, or rate control.

재구축된 현재 프레임이 후속 모션 추정/보상에 필요한 경우, 역 양자화기(176)는 양자화된 스펙트럼 데이터 계수에 역 양자화를 수행한다. 그리고 나서, 역 주파수 변환기(166)는 주파수 변환기(160)의 동작의 역을 수행하고, 재구축된 예측 나머지(예측 프레임에 대해) 또는 재구축된 키 프레임을 생성한다. 현재 프레임(105)이 키 프레임이었다면, 재구축된 키 프레임은 재구축 현재 프레임(도시되지 않음)으로 취해진다. 현재 프레임(105)이 예측 프레임이었다면, 재구축 예측 나머지가 모션-보상 현재 프레임(135)에 부가되어 재구축 현재 프레임을 형성한다. 프레임 저장소(120)는 다음 프레임을 예측하는데 이용하기 위해 재구축 현재 프레임을 버퍼링한다. 일부 실시예들에서, 인코더는 재구축 프레임에 디블록킹(deblocking) 필터를 적용하여 프레임 블록내의 불연속을 적응성으로 원활하게 한다. If the reconstructed current frame is needed for subsequent motion estimation / compensation, inverse quantizer 176 performs inverse quantization on the quantized spectral data coefficients. Inverse frequency converter 166 then performs the inverse of the operation of frequency converter 160 and generates a reconstructed prediction residual (relative to the prediction frame) or a reconstructed key frame. If the current frame 105 was a key frame, the rebuilt key frame is taken as the reconstructed current frame (not shown). If the current frame 105 was a predictive frame, the reconstructed prediction remainder is added to the motion-compensated current frame 135 to form a reconstructed current frame. Frame store 120 buffers the reconstructed current frame for use in predicting the next frame. In some embodiments, the encoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities within the frame block.

엔트로피 코더(180)는 일부 부가 정보(예를 들면, 모션 정보(115), 양자화 스텝 크기)뿐만 아니라 양자화기(170)의 출력을 압축한다. 전형적인 엔트로피 코딩 기술은 산술 코딩(arithmetic coding), 차동 코딩(differential coding), 허프만(Huffman) 코딩, 런(run) 길이 코딩, LZ 코딩, 사전(dictionary) 코딩 및 상기 조합을 포함한다. 엔트로피 코더(180)는 통상 다른 종류의 정보(예를 들면, DC 계수, AC 계수, 다른 종류의 부가 정보)에 대해 다른 코딩 기술을 이용하고, 특정 코딩 기술 내의 다중 코드 테이블 중에서 선택할 수 있다. Entropy coder 180 compresses the output of quantizer 170 as well as some additional information (eg, motion information 115, quantization step size). Typical entropy coding techniques include arithmetic coding, differential coding, Huffman coding, run length coding, LZ coding, dictionary coding and combinations of the above. Entropy coder 180 typically uses different coding techniques for different kinds of information (e.g., DC coefficients, AC coefficients, other kinds of side information), and may select from multiple code tables within a particular coding technique.                     

엔트로피 코더(180)는 압축된 비디오 정보(195)를 버퍼(190)에 넣는다. 버퍼 레벨 지시자는 비트 레이트 적응성 모듈에 피드백된다. 압축된 비디오 정보(195)는 일정하거나 비교적 일정한 비트 레이트로 버퍼(190)로부터 삭제되고, 후속 스트리밍을 위해 그 비트 레이트로 저장된다. 다르게는, 인코더 시스템(100)은 압축 직후에 압축된 비디오 정보를 스트리밍한다.Entropy coder 180 puts compressed video information 195 into buffer 190. The buffer level indicator is fed back to the bit rate adaptation module. Compressed video information 195 is erased from buffer 190 at a constant or relatively constant bit rate and stored at that bit rate for subsequent streaming. Alternatively, encoder system 100 streams the compressed video information immediately after compression.

버퍼(190)의 이전 또는 이후에, 압축된 비디오 정보(195)는 네트워크를 통한 송신을 위해 채널 코딩될 수 있다. 채널 코딩은 에러 검출 및 정정 데이터를 압축된 비디오 정보(195)에 적용할 수 있다.Before or after the buffer 190, the compressed video information 195 may be channel coded for transmission over the network. Channel coding may apply error detection and correction data to the compressed video information 195.

B. 비디오 디코더B. Video Decoder

도 2는 일반적인 비디오 디코더 시스템(200)의 블록 다이어그램이다. 디코더 시스템(200)은 압축된 비디오 프레임 시퀀스에 대한 정보(295)를 수신하고, 재구축된 프레임(205)을 포함하는 출력을 생성한다. 비디오 디코더의 특정 실시예는 통상 일반화된 디코더(200)의 변형 또는 부가된 버전을 이용한다.2 is a block diagram of a typical video decoder system 200. Decoder system 200 receives information 295 about the compressed video frame sequence and generates an output that includes reconstructed frame 205. Certain embodiments of the video decoder typically use a modified or added version of the generalized decoder 200.

디코더 시스템(200)은 예측 프레임 및 키 프레임을 압축 해제한다. 프레젠테이션의 목적상, 도 2는 디코더 시스템(200)을 통한 키 프레임에 대한 경로 및 포워드-예측 프레임에 대한 경로를 도시하고 있다. 디코더 시스템(200)의 다수의 컴포넌트들은 키 프레임 및 예측 프레임 모두를 압축하는데 이용된다. 이들 컴포넌트들에 의해 수행되는 정확한 동작은 압축되는 정보의 타입에 따라 가변될 수 있다.The decoder system 200 decompresses the predictive frame and the key frame. For purposes of presentation, FIG. 2 shows a path to a key frame and a path to a forward-prediction frame through the decoder system 200. Multiple components of the decoder system 200 are used to compress both key frames and predictive frames. The exact operation performed by these components may vary depending on the type of information being compressed.

버퍼(290)는 압축된 비디오 시퀀스에 대한 정보(295)를 수신하고, 수신된 정 보가 엔트로피 인코더(280)에 가용하게 만든다. 버퍼(290)는 통상 시간에 걸쳐 상당히 일정한 레이트로 정보를 수신하고, 대역폭의 단기간 변동 또는 송신을 원활하게 하는 지터 버퍼를 포함한다. 버퍼(290)는 물론 재생 버퍼 및 다른 버퍼들을 포함할 수 있다. 다르게는, 버퍼(290)는 가변 레이트로 정보를 수신한다. 버퍼(290) 이전 또는 이후에, 압축된 비디오 정보는 에러 검출 및 정정을 위해 채널 디코딩되고 처리될 수 있다.The buffer 290 receives information 295 about the compressed video sequence and makes the received information available to the entropy encoder 280. Buffer 290 typically includes a jitter buffer that receives information at a fairly constant rate over time and facilitates short term fluctuations or transmission of bandwidth. Buffer 290 may of course include a playback buffer and other buffers. Alternatively, buffer 290 receives information at variable rates. Before or after the buffer 290, the compressed video information can be channel decoded and processed for error detection and correction.

엔트로피 디코더(280)는 엔트로피 코딩된 부가 정보(예를 들면, 모션 정보, 양자화 스텝 크기)뿐만 아니라 엔트로피 코딩된 양자화된 데이터를 디코딩하고, 통상 인코더에서 수행된 엔트로피 인코딩의 역을 적용한다. 엔트로피 디코딩 기술은 산술 디코딩, 차동 디코딩, 허프만 디코딩, 런 길이 디코딩, LZ 디코딩, 사전 디코딩 및 상기 조합을 포함한다. 엔트로피 디코더(280)는 다른 종류의 정보(예를 들면, DC 계수, AC 계수, 다른 종류의 부가 정보)에 대해 다른 디코딩 기술을 적용하고, 특정 디코딩 기술 내의 다중 코드 테이블 중에서 선택할 수 있다.Entropy decoder 280 decodes entropy coded side information (eg, motion information, quantization step size) as well as entropy coded quantized data, and typically applies the inverse of the entropy encoding performed at the encoder. Entropy decoding techniques include arithmetic decoding, differential decoding, Huffman decoding, run length decoding, LZ decoding, pre decoding and combinations of the above. Entropy decoder 280 may apply different decoding techniques for different kinds of information (eg, DC coefficients, AC coefficients, other kinds of side information), and may select among multiple code tables within a particular decoding technique.

재구축되는 프레임(205)이 포워드-예측된 프레임이라면, 모션 보상기(230)는 모션 정보(215)를 기준 프레임(225)에 적용하여 재구축되는 프레임(205)의 예측(235)을 형성한다. 예를 들면, 모션 보상기(230)는 매크로 블록 모션 벡터를 이용하여 기준 프레임(225)에서 매크로 블록을 찾아낸다. 프레임 버퍼(220)는 기준 프레임으로서 이용을 위해 이전에 재구축된 프레임을 저장한다. 다르게는, 모션 보상기는 다른 타입의 모션 보상을 적용한다. 모션 보상기에 의한 예측은 좀처럼 완벽하지 않으며, 따라서 디코더(200)는 또한 예측 나머지를 재구축한다. If the reconstructed frame 205 is a forward-predicted frame, the motion compensator 230 applies the motion information 215 to the reference frame 225 to form a prediction 235 of the reconstructed frame 205. . For example, motion compensator 230 finds macro blocks in reference frame 225 using macro block motion vectors. Frame buffer 220 stores a frame that was previously reconstructed for use as a reference frame. Alternatively, the motion compensator applies other types of motion compensation. The prediction by the motion compensator is rarely perfect, so the decoder 200 also rebuilds the prediction remainder.                     

디코더가 후속 모션 보상을 위한 재구축 프레임을 필요로 하는 경우, 프레임 저장소(220)는 다음 프레임을 예측하는데 이용하기 위해 재구축된 프레임을 버퍼링한다. 일부 실시예들에서, 인코더는 재구축된 프레임에 디블럭킹 필터를 적용하여 프레임 블록내의 불연속을 적응성으로 원활하게 한다.If the decoder needs a reconstructed frame for subsequent motion compensation, frame store 220 buffers the reconstructed frame for use in predicting the next frame. In some embodiments, the encoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities in the frame block.

역 양자화기(270)는 엔트로피 디코딩된 데이터를 역 양자화한다. 일반적으로, 역 양자화는 프레임별 기반 또는 다른 기반으로 가변되는 스텝-크기로 엔트로피 디코딩된 데이터에 균일한, 스칼라 역 양자화를 적용한다. 다르게는, 역 양자화기는 데이터에 다른 타입의 역 양자화, 예를 들면 비균일한, 벡터, 또는 비적응성 양자화를 적용하거나, 역 주파수 변환을 이용하지 않는 디코더 시스템에서 공간 도메인 데이터를 직접 역 양자화한다.Inverse quantizer 270 inverse quantizes the entropy decoded data. In general, inverse quantization applies uniform, scalar inverse quantization to entropy decoded data that varies on a frame-by-frame basis or on another basis. Alternatively, the inverse quantizer applies other types of inverse quantization to the data, for example, non-uniform, vector, or non-adaptive quantization, or directly dequantizes the spatial domain data in a decoder system that does not use inverse frequency transform.

역 주파수 변환기(260)는 양자화된 주파수 도메인 데이터를 공간 도메인 비디오 정보로 변환한다. 블록 기반 비디오 프레임에 대해, 역 주파수 변환기(260)는 이하에 설명되는 역변환을 적용한다. 일부 실시예들에서, 역 주파수 변환기(260)는 키 프레임에 대한 공간 예측 나머지의 블록에 역 주파수 변환을 적용한다. 역 주파수 변환기(260)는 8x8, 8x4, 4x8 또는 다른 크기의 역 주파수 변환을 적용할 수 있다.Inverse frequency converter 260 converts the quantized frequency domain data into spatial domain video information. For block based video frames, inverse frequency converter 260 applies an inverse transform, described below. In some embodiments, inverse frequency converter 260 applies an inverse frequency transform to the block of spatial prediction remainder for the key frame. Inverse frequency converter 260 may apply an 8x8, 8x4, 4x8, or other inverse frequency transform.

Ⅱ. 변환 개요II. Transformation overview

도 3은 도 1 및 도 2의 비디오 인코더(100) 및 디코더(200)에 이용되는 2차원 변환(300) 및 역변환(310)을 예시하고 있다. 변환(300) 및 역변환(310)은 이하에 설명되는 바와 같이 일정 제한을 가지는 변환 클래스로부터 구축된다. 3 illustrates a two-dimensional transform 300 and an inverse transform 310 used in the video encoder 100 and decoder 200 of FIGS. 1 and 2. Transform 300 and inverse transform 310 are constructed from transform classes with certain constraints, as described below.                     

2차원 변환(300)은 미디어 컨텐트의 공간적으로-관련된 샘플로서 표현되는 미디어 컨텐트의 2차원(n x m) 블록(320)을 변환 도메인 블록으로 변환한다. 예를 들면, 블록은 일정하게 이격된 그리드 위치에 배열되는 컬러 샘플(픽셀)의 어레이로서 표현될 수 있는 것과 같이, 디지털 이미지 또는 디지털 비디오 프레임의 일부가 될 수 있다. 이것은 미디어 컨텐트의 공간 도메인 표현으로서 지칭된다. 변환 블록은 또한 n x m 샘플들로 구성되고, 여기에서는 미디어 컨텐트의 변환 도메인 표현으로서 지칭된다.Two-dimensional transform 300 converts a two-dimensional (n x m) block 320 of media content, represented as a spatially-related sample of media content, to a transform domain block. For example, a block can be part of a digital image or digital video frame, such as can be represented as an array of color samples (pixels) arranged at regularly spaced grid locations. This is referred to as the spatial domain representation of media content. The transform block is also composed of n x m samples, referred to herein as a transform domain representation of the media content.

역변환(320)은 변환 도메인으로부터의 샘플 블록을 원래 또는 공간적 도메인으로 변환한다.Inverse transform 320 transforms the sample blocks from the transform domain to the original or spatial domain.

Ⅲ. 변환 기반 코딩III. Transform-based coding

일반적으로, 상기 설명한 비디오 인코더 및 디코더에서와 같이, 미디어 컨텐트의 변환 기반 코딩(400)은 양자화와 함께 변환(300, 도 3) 및 역변환(310, 도 3)을 이용하여 미디어 컨텐트를 압축된 형태로 인코딩한다. 변환 기반 코딩은 우선 변환 도메인으로의 변환을 위해 변환 스테이지(410)에서 변환(300)을 미디어 컨텐트의 입력 블록에 적용한다. 그리고 나서, 변환 기반 코딩은 양자화 스테이지(420)에서 특정 변환 도메인 샘플(예를 들면, 미디어 컨텐트의 덜 인지될 수 있는 저하를 생성함)의 양자화를 수행한다(즉, 해상도를 감소시킨다). 양자화된 변환 도메인 샘플들은 미디어 컨텐트의 압축된 형태를 생성하는데 이용될 수 있다.In general, as in the video encoder and decoder described above, transform-based coding 400 of media content is a compressed form of media content using transform 300 (FIG. 3) and inverse transform 310 (FIG. 3) with quantization. Encode to. Transform-based coding first applies transform 300 to the input block of media content at transform stage 410 to transform to the transform domain. Transform-based coding then performs quantization (ie, decreases the resolution) of a particular transform domain sample (eg, produces a less perceptible degradation of media content) at quantization stage 420. Quantized transform domain samples can be used to generate a compressed form of media content.

변환 기반 코딩(400)은 또한 역 양자화 스테이지(430) 및 역변환 스테이지(440)를 가지고 있다. 역 양자화 스테이지(430)에서, 변환 기반 코딩은 역변환(310)을 위한 준비시 양자화된, 변환 도메인 샘플을 그 원래 해상도에 매핑한다. 변환 기반 코딩은 역변환 스테이지에서 역 양자화된(dequantized) 변환 도메인 샘플에 역변환을 수행한 후, 미디어 컨텐트 블록을 재구축한다.Transform based coding 400 also has an inverse quantization stage 430 and an inverse transform stage 440. In inverse quantization stage 430, transform-based coding maps the quantized transform domain samples to their original resolution in preparation for inverse transform 310. Transform-based coding performs an inverse transform on a dequantized transform domain sample at an inverse transform stage and then rebuilds the media content block.

변환 기반 코딩(400)은 비디오 인코더 및 디코더의 다양한 포인트에서 수행될 수 있다. 예를 들면, 비디오 인코더는 차동 인코딩 및 인터프레임 코딩 기술에 이용을 위해, 역 양자화 및 역변환 스테이지를 가지는 재구축 루프를 포함할 수 있다.Transform-based coding 400 may be performed at various points in the video encoder and decoder. For example, a video encoder may include a reconstruction loop with inverse quantization and inverse transform stages for use in differential encoding and interframe coding techniques.

Ⅲ. 계산상 효율적인 역변환 구현III. Calculation-efficient inverse implementation

이제 도 5를 참조하면, 변환(300) 및 역변환(310)(도 3)은 양호하게는 이전-곱 변환 매트릭스(T)에 의한 2차원 데이터 블록(변환(300)에 대해서는 공간 도메인 샘플, 역변환에 대해서는 변환 도메인 샘플)의 이전-곱(510) 및 이후-곱 변환 매트릭스(T')에 의한 이후-곱(530)으로서 구현된다. 이전-곱 변환 매트릭스(T)의 로우는 변환의 기저 함수들을 나타내고, 이전-곱(510)에서 데이터 블록의 칼럼에 적용된다. 마찬가지로, 이후-곱 매트릭스(T')의 칼럼은 이후-곱(530)에서 데이터 블록의 로우에 적용되는 변환 기저 함수들이다.Referring now to FIG. 5, transform 300 and inverse transform 310 (FIG. 3) are preferably a two-dimensional data block (spatial domain sample, inverse transform for transform 300) by a previous-product transform matrix T. For a, it is implemented as a post-product 530 by a before-product 510 and a post-product transformation matrix (T '). The rows of the previous-product transformation matrix T represent the basis functions of the transformation and are applied to the columns of the data block at previous-product 510. Likewise, the columns of the post-product matrix T 'are transform basis functions applied to the rows of the data block in the post-product 530.

계산상 효율을 위해, 변환 매트릭스(T 및 T') 및 데이터 블록은 컴퓨터 또는 그래픽 프로세서의 정수 곱 연산을 이용하여 수행되는 매트릭스 곱을 허용하는 범위 내의 정수로 구성된다. 예를 들면, 16비트 정수 곱 연산을 제공하는 현재의 많은 프로세서에 있어서, 매트릭스는 양호하게는 16비트 정수 곱 연산을 이용하여 수행되는 매트릭스 곱을 허용하는 범위 내의 정수로 구성된다. 다르게는, 매트릭스는 다른 크기 정수의 정수 곱 연산을 제공하는 프로세서에 대해 더 작거나 큰 범위의 정수로 구성될 수 있다.For computational efficiency, the transformation matrices T and T 'and data blocks consist of integers within a range that allow matrix multiplications performed using integer multiplication operations of a computer or graphics processor. For example, in many current processors that provide 16-bit integer product operations, the matrix is preferably composed of integers within a range that allow matrix products to be performed using 16-bit integer product operations. Alternatively, the matrix may consist of a smaller or larger range of integers for a processor that provides integer multiplication of different size integers.

정수로 구성된 변환 기저 함수에 의한 데이터 블록의 이전-곱 및 이후-곱은 더 큰 범위의 결과적인 데이터 블록 값을 생성한다. 구현(500)은 이전-곱 및 이후-곱 후에 스케일링 연산(520, 540)을 각각 이용하여 기저 함수 곱에 의한 이러한 확대를 보상한다. 계산상 효율을 위해, 스케일링 연산(520, 540)은 양호하게는 시프트 연산(효율적으로는 2의 거듭제곱으로 나누어짐)으로서, 값들을 각각 비트 위치의 수 S1 및 S2 만큼 시프트한다.The before- and after-product of the data block by the transform base function of integers produces a larger range of resulting data block values. Implementation 500 compensates for this expansion by the basis function product using scaling operations 520 and 540, respectively, before-product and after-product. For computational efficiency, scaling operations 520 and 540 are preferably shift operations (effectively divided by powers of two), which shift values by the number S 1 and S 2 of bit positions, respectively.

예시된 구현(500)에서, 데이터 블록 내의 값들은 이전-곱(510), 스케일링(520), 이후-곱(530), 스케일링(540)의 입력 및 각각 A-E로 표현된 출력에서 비트 크기를 가지는 정수들이다. 예를 들면, 이전-곱 스테이지(510)의 입력에서의 데이터 블록의 값들은 크기가 A-비트인 정수들이다.In the illustrated implementation 500, the values in the data block have a bit size at the input of the before-product 510, the scaling 520, the after-product 530, the scaling 540, and the output represented by AE, respectively. Are integers. For example, the values of the data block at the input of previous-product stage 510 are integers that are A-bits in size.

이러한 변환 설계시 기본적인 원리는 순방향 및 역변환 쌍으로서의 구현(500)이고, 후자는 제한된 정밀도(precision) 정수 계산(arithmetic)으로 구현되며, 역변환은 대응하는 순방향 변환 프로세스(유효한 양자화 및 역양자화를 받음)에 의해 생성되는 입력 데이터에 대해 의미 있는 결과를 생성하도록 보장된다.The basic principle in this transformation design is the implementation 500 as forward and inverse transform pairs, the latter is implemented with limited precision integer arithmetic, and the inverse transformation is subjected to a corresponding forward transformation process (valid with valid quantization and inverse quantization). It is guaranteed to produce meaningful results for the input data produced by.

Ⅳ. 변환 구축Ⅳ. Transform build

계산상 효율적인 변환은 이하에 설명되는 바와 같이, 특정 제한을 받는 변환 기저 함수에 대한 계수 값(즉, 이전-곱 매트릭스 T 및 이후-곱 매트릭스 T'의 값)을 선택함으로써 구축된다. 이러한 구축 기술은 범위 제한되고, 직교 또는 양-직교 변환을 생성할 수 있다.A computationally efficient transform is constructed by selecting coefficient values (ie, values of the previous-product matrix T and the post-product matrix T ') for the transform basis function subject to certain constraints, as described below. Such construction techniques are range limited and can generate orthogonal or bi-orthogonal transformations.

제한limit

스케일링된 정수 구현. 변환 계수들은 2의 거듭제곱에 의한 가능한 스케일링을 가지는 정수들이다. 이것은 표준 컴퓨터 상에서의 구현을 용이하게 한다.Scaled integer implementation. Transform coefficients are integers with possible scaling by powers of two. This facilitates implementation on a standard computer.

완벽한 재구축. 양자화(예를 들면, 도 4의 양자화 및 역 양자화 스테이지(420, 430))가 없는 경우, 역변환은 변환에 의해 생성된 변환 도메인 데이터로부터 원래의 공간 도메인 데이터를 재구축한다. 데이터를 압축하는데 이용되는 변환에 대한 주요 요구조건은 순방향 및 역변환은 어떠한 양자화 및 라운딩(rounding)이 없는 경우에 완벽한 재구축 쌍을 형성한다는 점이다. 이것은 정규직교성 및 양정규직교성(biorthonormality)을 통해 보장될 수 있다. 전자의 경우에, 순방향 및 역변환이 동일하지만, 후자의 경우에는 다르다.Perfect rebuild. In the absence of quantization (eg, quantization and inverse quantization stages 420, 430 of FIG. 4), the inverse transform reconstructs the original spatial domain data from the transform domain data generated by the transform. The main requirement for the transforms used to compress the data is that forward and inverse transforms form a complete reconstruction pair in the absence of any quantization and rounding. This can be ensured through orthonormality and biorthonormality. In the former case, the forward and inverse transforms are the same, but the latter case is different.

DCT 형 기저. 변환 및 역변환은 DCT와 유사한 속성을 가지고 있다. 양호한 코딩 성능을 위해, 변환이 DCT를 인접하여 근사하는 것이 바람직하다. DCT는 거의-광학 데이터 압축을 나타내는 양호한 에너지 압축 속성을 가지는 것으로 알려져 있다. DCT의 DC 기저 함수는 상수이다. 이것은 "제로 번째" 기저의 변환 계수이 상수를 갖도록 제한한다.DCT type base. Transform and inverse transform have similar properties to DCT. For good coding performance, it is desirable for the transform to approximate a DCT adjacently. DCT is known to have good energy compression properties that indicate near-optical data compression. The DC basis function of DCT is a constant. This limits the "zeroth" underlying transform coefficient to have a constant.

범위. 데이터 값 및 변환 계수들의 범위는 타겟 컴퓨터 또는 그래픽 프로세서(예를 들면, 16비트 정수 연산) 상에서의 계산상 효율적인 정수 곱 연산을 이용 한 구현을 허용한다. 양호한 구현에서, 값들은 역변환의 16비트 구현을 허용하는 범위로 제한된다. 이러한 구현에서, 16비트 정수 연산은 16비트 누산기로 수행될 수 있는 정수에 대한 산술 연산, 및 베이스 216, 즉 [-32768...32767]의 데이터 범위를 가지는 누산기에 대한 사인된(signed) 모듈로 또는 롤오버(rollover) 산술이다. 2개의 16 비트 숫자의 곱은 보존되는 곱(product)의 더 낮은 16비트만으로 나타난다. 다르게는, 범위는 다른 비트 크기의 정수 연산을 지원하는 다른 타겟 플랫폼에 대해 가변될 수 있다.range. The range of data values and transform coefficients allows implementation using computationally efficient integer multiplication operations on a target computer or graphics processor (eg, 16-bit integer operations). In a preferred implementation, the values are limited to a range that allows for a 16 bit implementation of inverse transform. In this implementation, 16-bit integer operations are arithmetic operations on integers that can be performed with 16-bit accumulators, and signed on accumulators with base 2 16 , i.e., [-32768 ... 32767] data ranges. Modulo or rollover arithmetic. The product of two 16-bit numbers results in only the lower 16 bits of the product being preserved. Alternatively, the range can be varied for other target platforms that support integer operations of different bit sizes.

변환 기저 함수에 의한 데이터 블록 내의 샘플들의 곱은 범위의 확장을 가져오고, 변환 기저 함수의 샘플(포인트)의 개수에 의해 가변된다. 비디오 압축 시스템에서, 통상 8x8, 4x8, 8x4 및 4x4 포인트의 2차원(NxM 포인트) 변환이 이용된다. 4 및 8 포인트 변환 사이에서, 8 포인트 변환은 정수 변환 계수의 범위에 대해 더 엄격한 제한을 가한다. 이것은 N>M인 경우, N 포인트 변환과 연관된 확장이 M 포인트 변환을 가지는 것보다 크기 때문이다. DC 값은 N 포인트 변환에 대해

Figure 112003015829024-pat00001
으로서 확장한다. 따라서, 8 포인트 변환이 더 엄격한 제한을 나타내므로, 이를 우선 고려한다.The product of the samples in the data block by the transform basis function results in an extension of the range and is varied by the number of samples (points) of the transform basis function. In video compression systems, two-dimensional (NxM point) transforms of 8x8, 4x8, 8x4 and 4x4 points are typically used. Between the four and eight point transforms, the eight point transforms impose stricter limits on the range of integer transform coefficients. This is because when N> M, the extension associated with the N point transform is larger than having an M point transform. DC value for N point conversion
Figure 112003015829024-pat00001
Expand as. Therefore, since the 8 point transform represents a stricter limit, this is considered first.

예를 들면, 비디오 압축 시스템에서 공간 도메인 데이터 블록 샘플에 대한 공통 범위는 [-255...255]이고, 9비트의 해상도이다. [-255 255]의 범위에 대응하는 그러한 9비트 입력에 대해, 8x8 변환이 범위 [-2047 2047]내의 값에 대해 취해질 수 있고, 12 비트의 정밀도(precision)를 필요로 한다. 실제로, 각 8 포인트 변환은 1.5 비트의 확장으로 나타난다. 2차원 8x8 변환에 대해, 8 포인트 변환은 2번, 즉 이전-곱 스테이지(510, 도 5)에서 로우 변환 및 이후-곱 스테이지(530, 도 5)에서 칼럼 변환으로 적용되어, 결과적인 변환 도메인 샘플은 3비트만큼 확장된다(12비트 해상도로).For example, the common range for spatial domain data block samples in a video compression system is [-255 ... 255], with a resolution of 9 bits. For those 9 bit inputs corresponding to the range [−255 255], 8 × 8 transforms can be taken for values in the range [-2047 2047] and require 12 bits of precision. In fact, each 8 point transform results in an extension of 1.5 bits. For a two-dimensional 8x8 transform, the eight point transform is applied twice, i.e., row transform in the pre-product stage 510 (FIG. 5) and column transform in the post-product stage 530 (FIG. 5), resulting in a transform domain. The sample is extended by 3 bits (at 12 bit resolution).

도 5를 더 참조하면, 예로 든 구현의 역변환에 대한 입력 A에서의 입력 변환-도메인 데이터 블록은 12비트의 범위를 가지고 있는데 반해, 출력 E에서의 재구축된 공간 도메인 데이터 블록은 9비트의 범위를 가지고 있다. 2개의 역변환 연산(이전-곱(510) 및 이후-곱(530))은 |T|2의 스케일링 또는 범위 확장을 유발하고, 이는 각각 s1 및 s2 비트의 2개의 시프트에 의해 보상된다. 이것은 변환에 의해 야기되는 범위 확장이 보상 스케일링과 거의 동일하거나 또는

Figure 112010020004090-pat00002
인 것이 필요하다. 변환 매트릭스(T)가 정규화된 매트릭스(T1=T/|T|)라고 가정하면, 이후-곱 후의 결과적인 데이터 블록의 다이나믹 범위(B=T·A)는 약10.5비트이다. 그러므로, 결과적인 데이터 블록(B)은 10.5 + log2(|T|) 비트의 범위를 가지고 있다. 마찬가지로, 이후-곱 데이터 블록(D=C·T')은 9+2log2(|T|)-s1 비트의 범위를 가지고 있다. 16비트 정수 연산을 이용한 역변환의 계산상 효율적인 구현을 위해, 이하의 관계가 요구된다(log2|T|는 L로 표시함).Referring further to FIG. 5, the input transform-domain data block at input A for the inverse transform of the example implementation has a range of 12 bits, whereas the reconstructed spatial domain data block at output E has a range of 9 bits. Have Two inverse transform operations (pre-product 510 and post-product 530) result in scaling or range expansion of | T | 2 , which is compensated by two shifts of s 1 and s 2 bits, respectively. This means that the range extension caused by the transformation is approximately equal to the compensation scaling, or
Figure 112010020004090-pat00002
It is necessary to be. Assuming that the transformation matrix T is a normalized matrix (T 1 = T / | T |), then the dynamic range (B = T · A) of the resulting data block after the post-multiplication is about 10.5 bits. Therefore, the resulting data block B has a range of 10.5 + log 2 (| T |) bits. Similarly, the post-product data block (D = C · T ') has a range of 9 + 2log 2 (| T |) -s 1 bit. For computationally efficient implementation of the inverse transform using 16-bit integer arithmetic, the following relationship is required (log 2 | T | is indicated by L).

Figure 112003015829024-pat00003
Figure 112003015829024-pat00003

Figure 112003015829024-pat00004
Figure 112003015829024-pat00004

Figure 112003015829024-pat00005
Figure 112003015829024-pat00005

그러므로, 결과적으로 (9+m≤16) 즉, m=6 및 L≤5.5 또는 lTl≤2048이 된다.Therefore, as a result, (9 + m ≦ 16), that is, m = 6 and L ≦ 5.5 or lTl ≦ 2048.

또한, 역변환의 DC 기저 함수가 [d d d d d d d d]에 의해 주어진다면, 범위 제한은 8d2≤2048 또는 d≤16이 되는 것을 필요로 한다.Also, if the DC basis function of the inverse transform is given by [dddddddd], then the range limit needs to be 8d 2 ≤ 2048 or d ≤ 16.

기저 함수의 놈(Norm). 변환을 위한 기저 함수는 놈에 매우 가깝다.Norm of the base function. The basis function for conversion is very close to normal.

일반적인 직교 및 양직교 정수 변환에서, 다른 기저 함수에 대응하는 변환 매트릭스 T의 다른 로우는 다른 놈을 가지도록 허용된다. 이러한 유연성 뒤의 아이디어는 놈들간 미스매치의 효과는 양자화 및 역양자화 동안에 순방향 및 역변환에 대해 소멸될 수 있다는 것이다. 실제, 정규화는 2가지 어려운 점을 제공한다. 즉 (1) 정규화는 특히 디코더 측에 복잡성을 부가시키고, (2) 정규화하는 승수가 작은 정수가 아니라면, 더 짧은 정수(16 비트) 구현에 대해 정규화가 불가능하게 된다.In normal orthogonal and orthogonal integer transformations, different rows of the transformation matrix T corresponding to different basis functions are allowed to have different norms. The idea behind this flexibility is that the effects of mismatches between them can be extinguished for forward and inverse transforms during quantization and inverse quantization. In fact, normalization presents two difficulties. That is, (1) normalization adds complexity, especially to the decoder side, and (2) normalization is not possible for shorter integer (16 bit) implementations unless the normalizing multiplier is a small integer.

모든 기저 함수의 놈들이 동일한 것이 요구된다면, 추가 재정규화는 불필요하다. 임의의 정규화 항(term)은 역 양자화로 인수분해될 수 있다. 양자화 값의 결과는 이러한 프로세스에서 약간 시프트할 수도 있다(즉, 어떤 양자화 포인트(QP)의 레이트-왜곡 포인트는 이동될 수 있지만, 그 원래 값으로부터 레이트-왜곡(R-D) 커브를 따라 즉, 정규화된 완전 정밀도 변환을 이용하여 계산됨).If all base function norms are required to be the same, no further renormalization is necessary. Any normalization term can be factored into inverse quantization. The result of the quantization value may shift slightly in this process (ie, the rate-distortion point of any quantization point (QP) may be shifted, but normalized along its rate-distortion (RD) curve from its original value, ie, normalized). Calculated using the full precision transformation).

4 및 8 포인트 변환에 관한 한, 동일한 논리가 적용된다. 4 혹은 8 포인트이든 모든 기저 함수의 놈은 정규화가 얻어질 수 있도록(pull out) 동일한 것이 필요할 수 있다. 실제, 합리적으로 작은 정수 기반에 대해, 모든 기저 함수의 모든 놈들이 동일하다는 제한을 받는 변환 계수의 셋트를 찾아내는 것은 불가능하다. 여기에서, 제한은 놈에 매우 가까운 기저 함수들만을 허용함으로써 작은 정밀도의 유연성을 허용한다.The same logic applies as far as the four and eight point transforms are concerned. All base function norms, whether 4 or 8 points, may need to be the same so that normalization can be pulled out. Indeed, for reasonably small integer bases, it is impossible to find a set of transform coefficients that is constrained to equal all norms of all base functions. Here, the restriction allows small precision flexibility by allowing only base functions very close to the norm.

헤드룸(headroom). 순방향 변환으로의 유효 입력(공간 도메인 데이터 블록)의 범위는 하나의 구현에서 9비트이지만, 양자화(도 4의 스테이지(420)) 이후의 재구축된 데이터 블록은 +255 내지 -255의 범위 이상 또는 이하에서 오버플로우될 가능성이 있다. 짧은 정수 구현은 그러한 상황을 위한 충분한 헤드룸을 남겨둠으로써 이것을 고려하는 것이 요구된다.Headroom. The range of valid inputs (spatial domain data blocks) to the forward transform is 9 bits in one implementation, but the reconstructed data blocks after quantization (stage 420 of FIG. 4) are greater than or equal to +255 to -255, or There is a possibility of overflow below. Short integer implementations are required to consider this by leaving enough headroom for such a situation.

요약하면, 여기에 기재된 구축 기술은 (1) 스케일링된 정수 구현, (2) 직교 정규성 또는 완벽한 재구축 (3) 에너지 집중(energy compaction)을 위한 DCT 형 기저 및 (4) 정수 기반 구현(예를 들면 16비트 정수 연산)을 위한 한정된 범위의 제한을 받는 변환을 생성한다. 주어진 범위 한계에 대해, 상기 모든 제한을 만족시키기는 어렵다. 특정 예로서, 16비트로 한정되는 범위일 뿐만 아니라, 이들 제한들 중 처음 3개를 만족시키는 변환을 구축하는 것이 불가능하다. 이하에 기재되는 구축 프로세스는 하나 이상의 제한을 약간 완화시킴으로써(예를 들면, 예시된 변환 구현에서 직교 정규성 제한을 완화시킴으로써) 효율적이고 범위 한정된 변환을 생성한다. 예시된 변환 구현에서, 변환 쌍은 직교가 되는 것만이 필요하지만, 놈은 약간 다를 수 있다. 이렇게 부가된 유연성은 변환에 대한 검색 공간을 확장시켜, 다른 제한을 만족시키는 실행가능한 구축 효율적인 범위-한정된 변환을 가능하게 한다. 이하에 더 설명되는 바와 같이, 놈들에서의 약간의 미스매치의 효과는 양자화 스테이지 동안의 재정규화에 의해 제거될 수 있다. 양자화 스테이지에서 구현되는 재정규화에 있어서, 결과적인 복잡성 증가는 인코더에서만 발생한다. 이것은 전체 시스템의 복잡성을 상당히 감소시키면서도 압축 효율을 유지한다.In summary, the construction techniques described herein include (1) scaled integer implementations, (2) orthogonal normality or complete reconstruction, (3) DCT type basis for energy compaction, and (4) integer based implementations (eg For example, to create a transform with a limited range for 16-bit integer arithmetic). For a given range limit, it is difficult to meet all of the above limits. As a specific example, in addition to being limited to 16 bits, it is not possible to build a transform that satisfies the first three of these limits. The construction process described below creates an efficient and scoped transformation by slightly mitigating one or more constraints (eg, by mitigating orthogonal normality constraints in the illustrated transformation implementation). In the transform implementation illustrated, the transform pairs only need to be orthogonal, but the norm may be slightly different. This added flexibility expands the search space for transformations, enabling feasible build-efficient range-limited transformations that meet other constraints. As will be explained further below, the effect of some mismatch in the norms can be eliminated by renormalization during the quantization stage. In the renormalization implemented at the quantization stage, the resulting complexity increase only occurs at the encoder. This maintains compression efficiency while significantly reducing the complexity of the overall system.

구축build

이제, 도 6을 참조하면, 이들 제한을 받는 계산상 효율적인 변환을 구축하는 프로세스(600)는 도 5의 변환 구현(500)에 대해 이전-곱 및 이후-곱 변환 매트릭스(T 및 T')에 대한 직교 변환 계수 셋트를 생성한다. 이러한 예로 든 계산상으로 효율적인 변환 구현을 생성하는 이러한 구축 절차에 이용되는 허용한도 임계값들의 일부는 임의적이고, 추가 해결에 도달하도록 더 완화될 수 있다. 느슨해진 임계값때문일지라도, 그러한 대체 변환 구현은 더 나쁜 코딩 성능을 가질 수 있다.Referring now to FIG. 6, a process 600 for building these computationally efficient transforms subject to these constraints is applied to the pre- and post-product transformation matrices T and T 'for the transform implementation 500 of FIG. 5. Create a set of orthogonal transform coefficients for. Some of the tolerance thresholds used in this construction procedure to generate this example computationally efficient transformation implementation are arbitrary and can be further relaxed to reach further resolution. Even due to loosened thresholds, such alternative transform implementations may have worse coding performance.

이러한 절차(600)를 이용하여 구축된 계산상으로 효율적인 변환의 예로 든 셋트는 4 및 8-포인트 기저 함수를 이용하는 2차원 변환을 포함한다. 4 및 8-포인트 기저 함수에 기초하여, 8x8, 4x8, 8x4 및 4x4 변환을 위한 변환 매트릭스가 생 성된다. 그러나, 다르게는 구축 프로세스가 변경되어 다른 수의 포인트 또는 블록 차원을 가지는 기저 함수를 가지는 변환을 생성할 수 있다.An example set of computationally efficient transforms built using this procedure 600 includes two-dimensional transforms using 4- and 8-point basis functions. Based on the 4 and 8-point basis functions, transform matrices for 8x8, 4x8, 8x4 and 4x4 transforms are generated. Alternatively, however, the building process may be modified to create transforms with basis functions having different numbers of point or block dimensions.

구축 프로세스(600)의 제1 단계(610)는 DC 기저 함수의 일정한 승수를 구하는 것이다. 4 및 8-포인트 기저 함수에 대해, 일정한 승수는 각각 d4 및 d8로 표시된다. 상기 설명한 놈 제한에 대하여, 이들 일정한 승수는 d8≤16이도록

Figure 112010020004090-pat00006
에서 관련된다. 약 1% 내에서 이러한 놈 제한을 만족시키는 오직 정수쌍{d4, d8}은 {7, 5}, {10, 7}, {17, 12} 및 {20, 14}이다. 8 포인트 변환에 대해, DC 기저의 제곱된 놈은 8d8 2이다. 그러므로, 이들 정수쌍을 가지는 DC 기저에 대한 허용가능한 8-포인트 제곱 놈은 200, 392, 1152 및 1568이다.The first step 610 of the build process 600 is to find a constant multiplier of the DC basis function. For 4 and 8-point basis functions, constant multipliers are denoted by d 4 and d 8 , respectively. For the norm restriction described above, these constant multipliers are such that d 8 &lt;
Figure 112010020004090-pat00006
Relate to. Only integer pairs {d 4 , d 8 } satisfying this norm restriction within about 1% are {7, 5}, {10, 7}, {17, 12} and {20, 14}. For an 8 point transform, the squared norm of the DC basis is 8d 8 2 . Therefore, the acceptable 8-point squared norms for the DC basis with these integer pairs are 200, 392, 1152 and 1568.

구축 프로세스(600)에서 제2 단계(620)는 변환의 홀수 기저 함수(또는 홀수 "주파수"로도 지칭됨)를 결정하는 것이다. 상기 설명한 DCT-형 기저 제한에 따르면, 변환은 DCT 변환에 유사한 속성을 가져야 하고, 8-포인트 DCT 변환에 대해 이하의 홀수 기저 함수를 가지고 있다.The second step 620 in the build process 600 is to determine the odd basis function (or also referred to as odd “frequency”) of the transform. According to the DCT-type basis constraint described above, the transform should have similar properties to the DCT transform and have the following odd basis function for the 8-point DCT transform.

Figure 112003015829024-pat00007
Figure 112003015829024-pat00007

4개의 일정한 값들은 8-포인트 DCT의 이들 홀수 기저 함수를 결정한다. 베이스의 구조로 인해, 상수 C1, C2, C3 및 C4는 고유한 절대 계수를 대체하는데 이 용될 수 있고, 기저를 제공한다.Four constant values determine these odd basis functions of the 8-point DCT. Due to the structure of the base, the constants C1, C2, C3 and C4 can be used to replace the intrinsic absolute coefficients, providing a basis.

구축은 이하의 조건을 가지는 공간{C1,C2,C3,C4}을 검색함으로써 진행된다.Construction proceeds by searching for spaces C 1 , C 2 , C 3 , C 4 having the following conditions.

1. 기저의 직교성. 짝수 주파수 항과 홀수 항의 직교성은 짝수 주파수의 상보적 구조에서 음으로 주어진다. 그러므로, 이러한 조건은 홀수 기저 함수의 직교성을 감소시킨다.1. Basal orthogonality. The orthogonality of the even and odd terms is given as negative in the complementary structure of the even frequencies. Therefore, this condition reduces the orthogonality of the odd basis function.

2. DCT-형 기저. 벡터[C1 C2 C3 C4]는 대응하는 DCT 계수 벡터[0.4904 0.4157 0.2778 0.0975]와 "잘"상관된다. 상관은 벡터들간의 각도의 코사인에 의해 측정되고, 가능한 한 1에 가까운 것이 바람직하다. 상관에 대한 다른 측정이 또한 이용될 수도 있다.2. DCT-type base. The vector [C 1 C 2 C 3 C 4 ] is "well" correlated with the corresponding DCT coefficient vector [0.4904 0.4157 0.2778 0.0975]. The correlation is measured by the cosine of the angles between the vectors, preferably as close to 1 as possible. Other measures of correlation may also be used.

3. 홀수 베이스의 놈들은 DC 놈을 근접하여 매칭한다. 이것은

Figure 112003015829024-pat00009
중의 하나로 표현될 수 있다.3. The odd-based norms match the DC norms closely. this is
Figure 112003015829024-pat00009
It can be expressed as one of the following.

놈의 5%의 허용한도(조건 3) 및 허용가능한 상관 "코사인"0.99(조건 2) 내에서, 8-포인트 홀수 기저 함수들에 대한 제한을 만족시키는 단지 한 셋트의 정수 계수가 존재한다. 이러한 셋트는 [16 15 9 4]이고, 578의 놈을 가지고 있으며, 원하는 576과 매우 근사하다. 상관은 상당한 0.9984이다. Within the 5% tolerance of the norm (condition 3) and the allowable correlation "cosine" 0.99 (condition 2), there is only one set of integer coefficients that meets the limit for 8-point odd basis functions. This set is [16 15 9 4], has a 578 norm, and is very close to the desired 576. The correlation is significant 0.9984.

구축 프로세스(600)의 제3 단계(630)는 변환에 대한 짝수 기저 함수 또는 짝수 주파수를 결정하는 것이다. 다시, DCT-형 기저 제한에 대해, 짝수 기저 함수는 DCT 변환의 잘 상관되어야 한다. 8-포인트 DCT 변환에 대해, 짝수 기저 함수는 이하와 같다.The third step 630 of the build process 600 is to determine the even basis function or even frequency for the transform. Again, for DCT-like basis constraints, the even basis function should be well correlated of the DCT transform. For an 8-point DCT transform, the even basis function is as follows.

Figure 112003015829024-pat00010
Figure 112003015829024-pat00010

주파수 2 및 6에 대한 놈 제한은

Figure 112003015829024-pat00011
로 주어진다. 정수 쌍{16, 6}은 약 1% 내에서 이러한 제한을 만족시킨다. The norm limit for frequencies 2 and 6
Figure 112003015829024-pat00011
Is given by Integer pairs {16, 6} satisfy this limit within about 1%.

결과적인 8 포인트 변환 매트릭스(단계 2 및 3에서 결정된 정수 계수를 이용함)는 이하와 같다.The resulting eight point transformation matrix (using integer coefficients determined in steps 2 and 3) is as follows.

Figure 112003015829024-pat00012
Figure 112003015829024-pat00012

구축 프로세스(600)의 제4 단계(640)는 4 포인트 변환을 생성한다. 상기 설명한 바와 같이 생성된 8-포인트 변환에 대해(단계 610-630), DC 기저 함수의 일정한 승수는 d8=12이다. 그러므로, 4-포인트 변환에 대한 일정한 승수는 d4=17이다. DCT-형 기저에 대해, 이것은 생성되는 이하의 기저 함수에서 계수 D1 및 D2를 남겨둔다. The fourth step 640 of the build process 600 generates a four point transform. For the 8-point transform generated as described above (steps 610-630), the constant multiplier of the DC basis function is d 8 = 12. Therefore, the constant multiplier for the four-point transform is d 4 = 17. For the DCT-like basis, this leaves the coefficients D 1 and D 2 in the following basis functions that are generated.

Figure 112003015829024-pat00013
Figure 112003015829024-pat00013

상기 기저 함수를 가지는 매트릭스는 D1 및 D2의 임의의 선택에 대해 본질적으로 직교한다. 그러나, DCT-형 변환 제한에 따르면, 계수들은

Figure 112010020004090-pat00014
과 동일한 DCT 트위들(twiddle) 인자(즉, D1/D2 비율)에 의해 관련된다. 또한, 계수들은 놈 제한을 받고, D1 2 + D2 2 ≤578이다. 직교성, DCT-형 기저, 및 약 1%내로의 놈 제한을 만족시키는 정수 쌍은 정수쌍{22, 10}이다. 이것은 4 포인트 변환에 대한 이하의 기저 함수를 산출한다.The matrix with the basis function is essentially orthogonal to any selection of D 1 and D 2 . However, according to the DCT-type conversion constraint, the coefficients
Figure 112010020004090-pat00014
It is related by the same DCT twiddle factor (ie, the D 1 / D 2 ratio). In addition, the coefficients are norm-limited, and D 1 2 + D 2 2 ≦ 578. Integer pairs satisfying orthogonality, DCT-like basis, and norm limits within about 1% are integer pairs {22, 10}. This yields the following basis function for the four point transform.

Figure 112003015829024-pat00015
Figure 112003015829024-pat00015

Ⅴ. 변환 구현(계속)Ⅴ. Transform implementation (continued)

도 5로 돌아가면, 상기 구축 프로세스(600)를 이용하여 생성된 변환 매트릭스는 실질적으로 변환을 정의한다. 2차원 변환에 대해, 기저 함수는 각 차원에서 샘플 데이터 블록에 적용된다. 예시된 변환 구현(500)에서, 기저 함수는 이전-곱(510)에서 샘플 데이터 블록의 로우에, 그리고 나서 이후-곱(530)에서 샘플 데이터 블록의 칼럼에 적용된다. 변환이 직교가 되도록 구축되므로, 동일한 변환 매트릭스는 순방향(300) 및 역(310) 변환에 이용된다. 비-유니터리 놈을 가지는 변환 기저 함수에 있어서, 예시된 구현은 또한 역변환에서 스케일링 스테이지(520, 540)를 포함하고, 변환에 의해 도입된 범위 확장을 보상한다. 그러한 범위-한정된 구현은 또한 순방향 변환에 이용될 수 있지만, 비디오 코딩의 컨텍스트에서, 순방향 변환에 대한 범위-한정은 또한 여분의 것이다. 인코딩 프로세스는 디코딩보다 더 느리고 인코더에서의 가용한 계산상 리소스는 디코더에서 보다 더 높은 자리(order of magnitude)이므로, 인코더는 더 높은 정밀도(예를 들면, 32 비트) 정수 또는 심지어 이중 정밀도 부동 소수점으로 구현될 수 있다. 따라서, 이하의 설명은 우선 상기 설명한 변환 매트릭스를 이용한 역변환의 예로 든 구현을 고려한다.Returning to FIG. 5, the transformation matrix generated using the construction process 600 substantially defines the transformation. For a two-dimensional transform, the basis function is applied to the sample data block in each dimension. In the illustrated transform implementation 500, the basis function is applied to the rows of the sample data block at the before-product 510 and then to the columns of the sample data block at the after-product 530. Since the transforms are constructed to be orthogonal, the same transform matrix is used for the forward 300 and inverse 310 transforms. For a transform basis function with a non-unit norm, the illustrated implementation also includes scaling stages 520, 540 in the inverse transform, and compensates for the range extension introduced by the transform. Such range-limited implementations can also be used for forward transforms, but in the context of video coding, range-limits for forward transforms are also redundant. Because the encoding process is slower than decoding and the computational resources available at the encoder are higher in order of magnitude at the decoder, the encoder can be used for higher precision (eg 32-bit) integers or even double precision floating point. Can be implemented. Therefore, the following description first considers an example implementation of an inverse transform using the transformation matrix described above.

역변환 구현Inverse transformation implementation

이전에 설명한 바와 같은 변환 구현(500)에서, 변환 도메인 데이터 블록(이하 설명에서는 D로 지칭함)의 로우는 적절한 크기 변환 매트릭스(예를 들면 8x8 데이터 블록에 대해 상기 매트릭스 T8)로 매트릭스 곱을 수행함으로써 이전-곱 스테이지(510)에서 역변환된다. 변환 도메인 데이터 블록의 칼럼은 변환 매트릭스와의 매트릭스 곱에 의해 이후-승산 단계(530)에서 역변환된다. 이러한 순서는 역전될 수 있지만, 미스매치가 나타날 가능성이 있다. 이전-곱 및 이후-곱 스테이지를 위 한 변환 매트릭스는 상기 설명한 바와 같이 구축된 변환 매트릭스이다.In the transform implementation 500 as previously described, the rows of the transform domain data block (referred to as D in the description below) are performed by performing matrix multiplication with an appropriate size transformation matrix (e.g., the matrix T 8 for an 8x8 data block). Inverse transformed at previous-product stage 510. The columns of the transform domain data block are inverse transformed in a post-multiplication step 530 by matrix product with the transform matrix. This order can be reversed, but there is a possibility of mismatches. The transform matrix for the pre-product and after-product stages is a transform matrix constructed as described above.

스케일링 스테이지(520, 540)에 대해, 예로 든 변환 구현에서의 스케일링은 상기 설명한 스케일링된 정수 구현 제한에 종속되어 결정된다(즉, 스케일링은 표준 시스템 및 그래픽 프로세서 상의 계산을 용이하게 하는 2의 거듭제곱에 의해서이다). 따라서, 스케일링은 변환 매트릭스의 기저 함수의 제곱된 놈에 가장 근접한 2의 거듭제곱이 되도록 선택된다.For scaling stages 520 and 540, scaling in the example transform implementation is determined in dependence on the scaled integer implementation constraints described above (i.e., scaling is a power of 2 to facilitate computation on standard systems and graphics processors). By). Thus, the scaling is chosen to be a power of two closest to the squared norm of the basis function of the transform matrix.

더 구체적으로는, 역변환을 위한 정규 공식은 이하와 같이 표현될 수 있다.More specifically, the regular formula for inverse transformation can be expressed as follows.

Figure 112003015829024-pat00016
Figure 112003015829024-pat00016

여기에서, D는 역변환으로의 입력(A)에서의 변환-도메인 데이터 블록을 나타낸다. 이하의 설명에서, D1은 변환 구현(500)의 제1 곱 스테이지(510)으로부터 출력된 데이터 블록을 나타내고, R은 로우 및 칼럼별 역변환 이후의 구축되는 출력을 나타낸다. 분모 s는 스케일링 인자이다. D, D1 및 R은 동일 구조의 8x8, 8x4 또는 4x8 매트릭스이다. 기수법의 남용시, 매트릭스 및 스칼라에 관련된 연산들이 매트릭스에 대한 엔트리-별 연산이다. 마찬가지로, 매트릭스 변수를 가지는 스칼라 연산은 매트릭스에 대한 엔트리별 스칼라 연산이다.Where D represents the transform-domain data block at input A to inverse transform. In the following description, D 1 represents the data block output from the first product stage 510 of the transform implementation 500, and R represents the output that is built after the inverse transform per row and column. Denominator s is a scaling factor. D, D 1 and R are 8x8, 8x4 or 4x8 matrices of the same structure. In abuse of notation, operations involving matrices and scalars are entry-specific operations on matrices. Similarly, a scalar operation with a matrix variable is an entry-specific scalar operation on the matrix.

분모 s는 기저 함수의 제곱된 놈에 가장 근접한 2의 거듭제곱이 되도록 선택된다. 8x8 역변환에 대해, 1차원 8-포인트 기저 함수의 제곱된 놈의 값들은 [1152, 1156, 1168}이다. 그러므로, 분모는 1024가 되도록 선택되고(즉, s=1024), 이들 제곱된 놈 값들에 가장 인접한 2의 거듭제곱이다. 실제 놈과 이러한 분모간의 비율(즉,

Figure 112003015829024-pat00017
)은 1에 가까우므로, 표준 IDCT에 이용되는 양자화 파라미터와 예시된 변환 구현에 이용되는 양자화 파라미터 간의 근접한 대응관계가 있다. 모든 나머지 정규화(실질적으로는 기저 함수의 1024/제곱된 놈에 의함)가 이하에 설명되는 순방향 변환 프로세스에서 수행되므로, 여기에 도입되는 추가 에러는 없다. The denominator s is chosen to be the power of two closest to the squared norm of the basis function. For an 8x8 inverse transform, the squared norms of the one-dimensional eight-point basis function are [1152, 1156, 1168}. Therefore, the denominator is chosen to be 1024 (ie s = 1024) and is the power of two nearest to these squared norm values. The ratio between the actual norm and these denominators
Figure 112003015829024-pat00017
) Is close to 1, so there is a close correspondence between the quantization parameter used for standard IDCT and the quantization parameter used for the illustrated transform implementation. Since all remaining normalization (substantially by the 1024 / squared norm of the basis function) is performed in the forward conversion process described below, no additional error is introduced here.

상기 범위 제한의 설명에 있어서, 역변환의 입력에서 변환-도메인 데이터 블록 D는 예시된 구현에서 12비트의 범위를 가지고 있다. (정규화로 인해, 순방향 변환으로부터 생성되는 변환 도메인 데이터 블록의 범위는 실제로 ±2048/1.12로 감소된다.) 정규 중간 매트릭스(1차원의 역변환 이후)는

Figure 112003015829024-pat00018
이고, 10.5비트보다 약간 작은 범위를 가지고 있다.In the above description of the range limitations, the transform-domain data block D at the input of the inverse transform has a range of 12 bits in the illustrated implementation. (Because of normalization, the range of transform domain data blocks resulting from the forward transform is actually reduced to ± 2048 / 1.12.) The normal intermediate matrix (after one-dimensional inverse transform)
Figure 112003015829024-pat00018
It has a range slightly smaller than 10.5 bits.

하나의 역변환 구현(500)에서, 스케일링 스테이지(520 및 540)는 각각 5비트 위치만큼(효율적으로는 32로 나눔) 데이터 블록 값을 라운드 다운하거나 시프트할 수 있고, 합쳐서 10비트 위치만큼 시프트한다(1024로 나눔). 이것은 16비트 범위에서 곱 스테이지(510, 530)에서 범위 제한을 유지한다.In one inverse transform implementation 500, scaling stages 520 and 540 can round down or shift the data block values by 5 bit positions (effectively divided by 32), respectively, and shift by 10 bit positions in total ( Dividing by 1024). This maintains the range limit at product stages 510 and 530 in the 16-bit range.

다른 구현은 제1 스케일링 스테이지(520)에서 스케일링 또는 라운딩의 양을 감소시킴으로써 제2의 이후-곱 스테이지에 대한 산술적 정밀도를 보존한다. 제1 곱 스테이지 이후의 결과적인 데이터 블록 D1은 10.5 비트의 범위를 이용하고 8-포인트 변환은 범위를 4비트만큼 확장하므로, 제1 스케일링 스테이지에서 기껏해야 1 비트 적은 스케일링이 허용될 수 있어, 양쪽 곱 스테이지에서 16비트 범위 제한 내로 유지된다. 그러므로, 다른 구현은 제1 스케일링 스테이지(520)에서 4비트 만큼 제2 스케일링 스테이지(540)에서 6비트 만큼 시프트될 수 있다. 변환의 정규 표현은 이제 이하와 같다.Another implementation preserves the arithmetic precision for the second post-product stage by reducing the amount of scaling or rounding in the first scaling stage 520. The resulting data block D 1 after the first product stage uses a range of 10.5 bits and the 8-point transform extends the range by 4 bits, so that at most 1 bit less scaling can be allowed in the first scaling stage, It stays within the 16-bit range limit in both product stages. Therefore, another implementation may be shifted by 6 bits in the second scaling stage 540 by 4 bits in the first scaling stage 520. The regular expression of the transformation is now:

Figure 112003015829024-pat00019
Figure 112003015829024-pat00019

Figure 112003015829024-pat00020
Figure 112003015829024-pat00020

이러한 다른 구현은 추가 정밀도 비트가 D1로 유지되도록 허용한다. 이러한 동일한 스케일링은 거의 그러한 경우는 드물지만, 4-포인트 변환 매트릭스의 가장 큰 승수는 여전히 가용한 헤드 룸(4.5 비트) 내에 있으므로, 4-포인트 변환에 이용될 수 있다.This other implementation allows the additional precision bits to remain at D 1 . This same scaling is rarely the case, but since the largest multiplier of the 4-point transform matrix is still within the available headroom (4.5 bits), it can be used for 4-point transforms.

중간 데이터 블록 D1에서, 제2 추가 정밀도 비트를 유지하기 위해, 또 다른 구현을 변환 매트릭스를 이하로서 분해한다.In the intermediate data block D 1 , another implementation decomposes the transform matrix as follows to maintain the second additional precision bit.

T8=2T8 e + T8 o T 8 = 2T 8 e + T 8 o

T4=2T4 e + T4 o T 4 = 2T 4 e + T 4 o

여기에서, 홀수 컴포넌트 매트릭스 T8 o 및 T4 o는 엔트리로서 0, 1 및 -1만을 가지도 록 허용된다. T8의 대부분의 엔트리가 짝수이므로, T8 o는 스파스(sparse) 매트릭스이다. 마찬가지로, T4 o는 T4 e와 고도로 상관된 구조를 가지고 있다. 이러한 추가 다른 역변환 구현의 정규 표현은 이하와 같이 정의된다.Here, the odd component matrices T 8 o and T 4 o are allowed to have only 0, 1 and -1 as entries. Since most of the entries in the even-numbered T 8, T 8 o is sparse (sparse) matrix. Similarly, T 4 o has a highly correlated structure with T 4 e . The regular expression of this additional other inverse transform implementation is defined as follows.

Figure 112003015829024-pat00021
Figure 112003015829024-pat00021

Figure 112003015829024-pat00022
Figure 112003015829024-pat00022

제1 스케일링 스테이지(520)는 단지 3비트만을 시프트 다운시키고, 제2 곱 스테이지(530)를 위한 여분 정밀도를 유지한다. 짝수 컴포넌트는 T8의 범위의 절반이고, 홀수 컴포넌트 T8 o는 0, 1 및 -1 엔트리를 가지도록 한정되므로, 변환의 제2 스테이지에서 결과적인 분자는 16비트로 한정된 범위이다. D1에서의 여분 비트 정밀도를 보상하는 사소한 계산상의 불이익이 있다. 그럼에도 불구하고, 이러한 변환 매트릭스의 분해는 무시할 수 있는 비용으로 개선된 산술적 정밀도로 결국 나타나게 된다.The first scaling stage 520 shifts down only 3 bits and maintains extra precision for the second product stage 530. The even component is half of the range of T 8 and the odd component T 8 o is defined to have 0, 1 and -1 entries, so the resulting molecule in the second stage of the transformation is limited to 16 bits. There is a minor computational penalty that compensates for the extra bit precision in D 1 . Nevertheless, the decomposition of these transformation matrices eventually results in improved arithmetic precision at negligible cost.

또 다른 구현에서, 변환 T는 컴포넌트 변환 매트릭스 Ta 및 Tb로 더 일반적으로 분해될 수 있고, T=2xTa+Tb로서 변환 기저 T에 관련된다. 변환의 계산

Figure 112003015829024-pat00023
가 In another implementation, transform T can be more generally decomposed into component transform matrices T a and T b , and is related to transform basis T as T = 2 × T a + T b . Calculation of the transformation
Figure 112003015829024-pat00023
end

Figure 112003015829024-pat00024
Figure 112003015829024-pat00024

로서 정의될 수 있다. 이러한 계산은 이하와 같이 매트릭스 곱 및 시프트 연산을 이용하여 구현될 수 있다.It can be defined as. This calculation can be implemented using matrix multiplication and shift operations as follows.

(D·Ta + ((D·Tb)>>x))>>(y-x).(D · T a + ((D · T b ) >> x)) >> (yx).

변환 T8의 특정 다른 구현으로 돌아가면, 8-포인트 변환의 홀수 및 짝수 컴포넌트는 이하와 같이 도시된다.Returning to certain other implementations of transform T 8 , the odd and even components of the 8-point transform are shown as follows.

Figure 112003015829024-pat00025
Figure 112003015829024-pat00025

유의할 점은, T8 o는 단지 2개의 독립적인 논-제로 칼럼을 가지고 있다는 점이다. T8 o에 의한 이후-곱은 단지 2개의 부가( 및 부정)와 같다.Note that T 8 o has only two independent non-zero columns. The post-product by T 8 o is equal to only two additions (and negatives).

W·T8 o=[W1 W2 W2 W1 -W1 -W 1 -W1 -W1]WT 8 o = [W 1 W 2 W 2 W 1 -W 1 -W 1 -W 1 -W 1 ]

여기에서, From here,

Figure 112003015829024-pat00026
Figure 112003015829024-pat00026

4 포인트 인버스 변환의 짝수 및 홀수 컴포넌트는 이하와 같다.The even and odd components of the four point inverse transform are as follows.

Figure 112003015829024-pat00027
Figure 112003015829024-pat00027

이러한 또 다른 구현에서, 8x8 역변환에 대한 로우별 또는 이전-곱 스테이지(510) 및 제1 스케일링 스테이지(520)는 이하의 연산을 수행한다. In another such implementation, the row-by-row or previous-product stage 510 and the first scaling stage 520 for an 8x8 inverse transform perform the following operations.                     

D1 = (D·T8 + 4)>>3D 1 = (DT 8 + 4) >> 3

이러한 역변환 구현에서 칼럼별 또는 이후-곱 스테이지(530) 및 스케일링 스테이지(540)는 T8의 홀수 컴포넌트를 바라보고 8개 요소의 2개의 공통 로우를 계산함으로써 우선 정의된다. 이들은 1비트씩 우측 시프트된 후 결과가 6비트만큼 라운딩 다운되기 전에 짝수 컴포넌트 곱(product)에 부가된다(또는 감산된다). 그러므로, 이들 스테이지에서 수행되는 연산은 이하와 같이 표현된다.In this inverse transformation implementation, column by column or post-product stage 530 and scaling stage 540 are first defined by looking at the odd components of T 8 and calculating two common rows of eight elements. They are added (or subtracted) to the even component product after being shifted right by one bit and before the result is rounded down by six bits. Therefore, the operations performed at these stages are expressed as follows.

Figure 112003015829024-pat00028
Figure 112003015829024-pat00028

또 다른 구현에서 4x8 역변환(여기에 이용된 관례에 따라 4개의 칼럼 및 8개의 로우를 가지는 어레이를 지칭함)에 대해, 로우별 또는 이전-곱 스테이지(510) 및 스케일링 스테이지(520)는 D1=(D·T4 + 4)>>3으로서 정의된 4 포인트 연산을 수행한다.In another implementation, for a 4x8 inverse transform (refering to an array with four columns and eight rows, according to the conventions used herein), row by row or previous-product stage 510 and scaling stage 520 are equal to D 1 = Perform the four point operation defined as (D · T 4 + 4) >> 3.

변환의 제2 부분에 대해, 칼럼별 또는 이후-곱 스테이지(530) 및 스케일링 스테이지(540)는 방금 설명한 8x8 역변환의 대한 것과 동일하다.For the second portion of the transform, the column-by or post-product stage 530 and scaling stage 540 are the same as for the 8x8 inverse transform just described.

8x4 역변환에 대해, 또 다른 실시예는 D1=(D·T8 + 4)>>3에 따라 로우별 스테이지(510) 및 스케일링 스테이지(520)에서 4 로우/8 칼럼 변환 도메인 데이터에 대해 연산한다. For an 8x4 inverse transform, another embodiment operates on 4 row / 8 column transform domain data in row-by-row stage 510 and scaling stage 520 according to D 1 = (D · T 8 + 4) >> 3. do.

칼럼별 스테이지(530) 및 스케일링 스테이지(540)에 대한 4 포인트 역변환은 이하와 같이 정의된다.The four point inverse transform for the column-by-column stage 530 and the scaling stage 540 is defined as follows.

Figure 112003015829024-pat00029
Figure 112003015829024-pat00029

4x4 역변환에 대해, 4x4 역변환의 스테이지(510, 530)는 상기 설명한 바와 같이 4x8 역변환의 로우별 스테이지(510) 및 8x4 역변환의 칼럼별 스테이지(530)에 대해 각각 구현된다. For the 4x4 inverse transform, stages 510 and 530 of the 4x4 inverse transform are implemented for the row-by-row stage 510 of the 4x8 inverse transform and the column-by-column stage 530 of the 8x4 inverse transform, respectively, as described above.                     

순방향 변환 구현Forward transform implementation

스케일링 스테이지를 포함하는 도 5에 예시된 바와 같은 범위-한정된 구현들도 또한 순방향 변환에 적용될 수 있지만, 비디오 코딩의 컨텍스트에서 그러한 절차는 종종 여분의 것이다. 인코딩 프로세스는 디코딩보다 느리고 인코더에서의 가용한 계산상 리소스는 디코더보다 종종 더 큰 자리(order of magnitude)이므로, 인코더는 더 높은 정밀도(예를 들면 32비트) 정수 또는 심지어 이중 정밀도 부동 소수점으로 구현될 수 있다. 환언하면, 순방향 변환 구현에서의 스케일링 스테이지(520, 540)는 생략될 수 있다.Range-limited implementations as illustrated in FIG. 5 including a scaling stage may also be applied to the forward transform, but such a procedure is often redundant in the context of video coding. Since the encoding process is slower than decoding and the computational resources available at the encoder are often an order of magnitude greater than the decoder, the encoder can be implemented with higher precision (eg 32-bit) integers or even double precision floating point. Can be. In other words, the scaling stages 520, 540 in the forward transform implementation may be omitted.

도 7에 도시된 양호한 순방향 변환 구현에서, 재정규화 스테이지(740)는 순방향 변환 측(로우별 및 칼럼별 곱(710, 730)의 이후)에 수행되어 변환 자체가 재구축시 최소한의 에러량을 도입하도록 보장한다. 이것은 기저 함수들의 놈의 사소한 차이를 보상하고 소수의 계산상 리소스가 가용한 디코더에서의 계산상 부하를 감소시킨다. 다르게는, 디코더에 제공된 충분한 계산상 리소스를 가지는 시스템에 대해, 보상(변환 데이터의 스케일링)은 디코더에서 수행될 수 있다.In the good forward transform implementation shown in FIG. 7, the renormalization stage 740 is performed on the forward transform side (after the row-by-row and column-by-row products 710, 730) so that the transform itself produces a minimum amount of error when reconstructed. Ensure that it is introduced. This compensates for minor differences in the norm of the base functions and reduces the computational load at the decoder where few computational resources are available. Alternatively, for a system with sufficient computational resources provided to the decoder, compensation (scaling of transform data) may be performed at the decoder.

이하의 설명에서, 심볼 ⓧ는 동일한 크기의 매트릭스의 컴포넌트별 곱을 나타낸다. 원래의 2D 신호(샘플 데이터 블록)는 X로 표시되고, 그 변환은 Y로 표현된다(X1은 로우별 변환 이후의 중간 블록을 나타낸다). 매트릭스 X 및 Y는 동일한 크기를 가지고 있고, 8x8, 8x4 및 4x8의 경우들을 커버한다. 이하의 스케일링 인 자가 이용된다.In the following description, symbol ⓧ represents a component-specific product of a matrix of the same size. The original 2D signal (sample data block) is represented by X, and the transform is represented by Y (X 1 represents an intermediate block after the row-by-row transformation). Matrix X and Y have the same size and cover the cases of 8x8, 8x4 and 4x8. The following scaling factors are used.

Figure 112010020004090-pat00066
Figure 112010020004090-pat00066

8x8 순방향 변환에 대해, 스테이지(710, 730 및 740)에서의 처리는 이하와 같이 기술된다.For 8x8 forward transform, the processing at stages 710, 730, and 740 is described as follows.

Figure 112003015829024-pat00031
Figure 112003015829024-pat00031

4x8 순방향 변환에 대해, 스테이지들은 이하를 수행한다.For a 4x8 forward transform, the stages do the following.

Figure 112003015829024-pat00032
Figure 112003015829024-pat00032

한편, 8x4 순방향 변환은 상기 4x8 순방향 변환의 이항(transpose)이다.On the other hand, 8x4 forward transform is the transpose of the 4x8 forward transform.

4x4 순방향 변환은 이하와 같이 스케일링을 구현한다.The 4x4 forward transform implements scaling as follows.

Figure 112003015829024-pat00033
Figure 112003015829024-pat00033

Ⅵ. 적절한 컴퓨팅 환경VI. Proper computing environment

상기 기술한 변환은 다른 예들 중에서도 컴퓨터, 이미지 및 비디오 레코딩, 송신 및 수신 장비, 휴대용 비디오 플레이어, 비디오 컨퍼런싱 장비 등을 포함하는, 이미지 및 비디오 신호 처리가 수행되는 다양한 디바이스들 중 임의의 것에서 수행될 수 있다. 이미지 및 비디오 코딩 기술은 도 8에 도시된 바와 같이 컴퓨터 또는 다른 컴퓨팅 환경에서 실행되는 이미지 및 비디오 처리 소프트웨어에서뿐만 아니라 하드웨어 회로로 구현될 수 있다.The transformation described above may be performed on any of a variety of devices on which image and video signal processing is performed, including computers, image and video recording, transmission and reception equipment, portable video players, video conferencing equipment, and the like, among other examples. have. Image and video coding techniques may be implemented in hardware circuitry as well as in image and video processing software running in a computer or other computing environment as shown in FIG. 8.

도 8은 기재된 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경(800)의 일반 화된 예를 예시하고 있다. 컴퓨팅 환경(800)은 본 발명의 이용이나 기능의 범주에 대한 임의의 한정을 암시하려고 하는 것이 아니고, 본 발명은 다양한 일반 목적 또는 특별 목적의 컴퓨팅 환경에서 구현될 수 있다.8 illustrates a generalized example of a suitable computing environment 800 in which described embodiments may be implemented. The computing environment 800 is not intended to suggest any limitation as to the scope of use or functionality of the invention, and the invention may be implemented in a variety of general or special purpose computing environments.

도 8을 참조하면, 컴퓨팅 환경(800)은 적어도 하나의 처리 유닛(810) 및 메모리(820)를 포함한다. 도 8에서, 이러한 가장 기본적인 구성(830)은 점선 내에 포함된다. 처리 유닛(810)은 컴퓨터 실행가능한 명령을 실행하고, 실제 또는 가상 프로세서일 수 있다. 멀티-프로세싱 시스템에서, 다중 프로세싱 유닛은 컴퓨터 실행가능 명령들을 실행하여 처리 능력을 향상시킨다. 메모리(820)는 휘발성 메모리(예를 들면, 레지스터, 캐시, RAM), 비휘발성 메모리(예를 들면, ROM, EEPROM, 플래시 메모리 등) 또는 이들의 일부 조합일 수 있다. 메모리(820)는 기재한 이미지 및/또는 비디오 인코더/디코더 및 변환을 구현하는 소프트웨어(880)를 저장한다.Referring to FIG. 8, the computing environment 800 includes at least one processing unit 810 and a memory 820. In Figure 8, this most basic configuration 830 is included within the dashed line. Processing unit 810 executes computer executable instructions and may be a real or virtual processor. In a multi-processing system, multiple processing units execute computer executable instructions to improve processing power. The memory 820 may be volatile memory (eg, registers, cache, RAM), nonvolatile memory (eg, ROM, EEPROM, flash memory, etc.) or some combination thereof. Memory 820 stores software 880 for implementing the described image and / or video encoders / decoders and transformations.

컴퓨팅 환경은 추가 특징을 가질 수 있다. 예를 들면, 컴퓨팅 환경(880)은 저장장치(840), 하나 이상의 입력 디바이스(850), 하나 이상의 출력 디바이스(860), 및 하나 이상의 통신 접속(870)을 포함한다. 버스, 컨트롤러 또는 네트워크와 같은 상호접속 메카니즘(도시되지 않음)은 컴퓨팅 환경(800)의 컴포넌트를 상호접속시킨다. 통상, 오퍼레이팅 시스템 소프트웨어(도시되지 않음)는 컴퓨팅 환경(800)에서 실행되는 다른 소프트웨어를 위한 오퍼레이팅 환경을 제공하고, 컴퓨팅 환경(800)의 컴포넌트의 활동을 조정한다.The computing environment may have additional features. For example, computing environment 880 includes storage 840, one or more input devices 850, one or more output devices 860, and one or more communication connections 870. Interconnection mechanisms (not shown), such as buses, controllers, or networks, interconnect components of computing environment 800. Typically, operating system software (not shown) provides an operating environment for other software running in computing environment 800 and coordinates the activities of components of computing environment 800.

저장장치(840)는 제거가능 또는 제거불가능일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD 또는 정보를 저장하는데 이용될 수 있고 컴퓨팅 환경(800) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장장치(840)는 양자화 매트릭스를 생성하고 압축하는 오디오 인코더를 구현하는 소프트웨어(880)에 대한 명령들을 저장한다.Storage 840 may be removable or non-removable and may be used to store magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs or information and may be accessed within computing environment 800. And any other media that may be present. Storage 840 stores instructions for software 880 implementing an audio encoder that generates and compresses a quantization matrix.

입력 디바이스(들)(850)는 키보드, 마우스, 펜, 또는 트랙볼과 같은 터치 입력 디바이스, 음성 입력 디바이스, 스캐닝 디바이스, 또는 컴퓨팅 환경(800)에 입력을 제공하는 다른 디바이스일 수 있다. 오디오를 위해, 입력 디바이스(들)(850)는 오디오 입력을 아날로그 또는 디지털 형태로 수락하는 사운드 카드 또는 유사한 디바이스, 또는 오디오 샘플들을 컴퓨팅 환경에 제공하는 CD-ROM 판독기일 수 있다. 출력 디바이스(들)(860)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(800)으로부터 출력을 제공하는 다른 디바이스일 수 있다.The input device (s) 850 may be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing environment 800. For audio, input device (s) 850 may be a sound card or similar device that accepts audio input in analog or digital form, or a CD-ROM reader that provides audio samples to a computing environment. Output device (s) 860 may be a display, printer, speaker, CD-writer, or other device that provides output from computing environment 800.

통신 접속(들)(870)은 통신 매체를 통해 다른 컴퓨팅 실체로의 통신을 가능하게 한다. 통신 매체는 컴퓨터 실행가능 명령, 압축된 오디오 또는 비디오 정보, 또는 다른 데이터와 같은 정보를 변조된 데이터 신호로 운반한다. 변조된 데이터 신호는 정보를 신호로 인코딩하는 것과 같은 방식으로 설정되거나 변경된 하나 이상의 특징을 가지는 신호이다. 예로서, 통신 매체는 전기적, 광학적, RF, 적외선, 음성, 또는 다른 캐리어로 구현된 유선 또는 무선 기술을 포함하고, 이들로 제한되지 않는다.Communication connection (s) 870 enable communication to other computing entities via communication media. The communication medium carries information such as computer executable instructions, compressed audio or video information, or other data in a modulated data signal. A modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, communication media include, but are not limited to, wired or wireless technology implemented with electrical, optical, RF, infrared, voice, or other carriers.

여기에서 변환 및 코딩/디코딩 기술은 컴퓨터 판독가능 매체의 일반적인 컨텍스트로 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 가용한 매체이다. 예를 들면, 컴퓨팅 환경(800)에 있어서, 컴퓨터 판독 가능 매체는 메모리(820), 저장장치(840), 통신 매체 및 상기의 임의의 조합을 포함한다.The transformation and coding / decoding techniques herein may be described in the general context of computer readable media. Computer readable media is any available media that can be accessed within a computing environment. For example, in computing environment 800, computer readable media includes memory 820, storage 840, communication media, and any combination thereof.

여기에서 변환 및 코딩/디코딩 기술은 타겟 실제 또는 가상 프로세서 상의 컴퓨팅 환경에서 실행되는 프로그램 모듈에 포함되는 것과 같은 컴퓨터 실행가능 명령의 일반적인 컨텍스트로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 다양한 실시예에서 요구되는 바와 같이 프로그램 모듈 사이에서 통합되거나 분리될 수 있다. 프로그램 모듈을 위한 컴퓨터-실행가능 명령은 로컬 또는 분산 컴퓨팅 환경에서 실행될 수 있다.Translation and coding / decoding techniques herein may be described in the general context of computer-executable instructions, such as those included in program modules executing in a computing environment on a target real or virtual processor. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be integrated or separated between the program modules as required in various embodiments. Computer-executable instructions for program modules may be executed in a local or distributed computing environment.

프리젠테이션의 목적상, 상세한 설명에서는 컴퓨팅 환경에서 컴퓨터 동작을 기술하는데 "결정한다","생성한다","조정한다" 및 "적용한다"와 같은 용어를 사용한다. 이들 용어들은 컴퓨터에 의해 수행되는 동작에 대한 고레벨 추상화이고, 인간에 의해 수행되는 행동과 혼동되어서는 안된다. 이들 용어에 대응하는 실제 컴퓨터 동작은 구현에 따라 가변된다.For purposes of presentation, the detailed description uses terms such as "determine", "generate", "adjust" and "apply" to describe computer operations in the computing environment. These terms are high-level abstractions of the operations performed by the computer and should not be confused with the actions performed by humans. Actual computer operation corresponding to these terms may vary from implementation to implementation.

Ⅶ. 확장VII. expansion

상기 기술한 변환 및 그 구현들은 이하와 같은 것을 포함하여 다양한 방식으로 확장될 수 있다.The above described transformations and their implementations can be extended in various ways, including as follows.

변환 구현의 변형은 다른 라운딩, "버퍼플라이(butterfly)"구현, 및 양-직교 공식화를 포함할 수 있다.Variations of the transform implementation may include other roundings, “butterfly” implementations, and bi-orthogonal formulations.

또한, 상기 기술한 구축 프로세스는 상이한 비트-범위 제한에 종속되어 이어질 수 있어, 다른 계수 범위를 가지는 변환 변형(variant)을 생성한다.In addition, the construction process described above may be subject to different bit-range constraints, resulting in transform variants with different coefficient ranges.

구축 절차에 이용되는 제한의 임계 파라미터는 더 큰 장해(complaint) 변환 셋트를 산출하도록 가변될 수 있다.The threshold parameters of the constraints used in the construction procedure may be varied to yield a larger set of disturbance transformations.

변환 셋트는 추가 블록 크기(예를 들면, 4x4 및 다른 블록 크기 변환)를 포함하도록 연장될 수 있다. 마찬가지로, 생성된 변환 셋트는 반드시 상기 예시된 구현에서의 크기를 포함할 필요는 없다(즉, 8x8, 8x4, 및 4x8 변환). 변환은 다른 크기의 블록, 및 더 큰(>2) 차원으로 확장될 수 있다.The transform set can be extended to include additional block sizes (eg 4x4 and other block size transforms). Likewise, the generated transform set need not necessarily include the magnitudes in the illustrated implementations (ie, 8x8, 8x4, and 4x8 transforms). The transformation can be extended to blocks of different sizes, and to larger (> 2) dimensions.

비트 깊이의 선택은 가변 파라미터이고, 예시된 예에 대해 임의로 변경될 수 있다(미처리 픽셀 값의 8비트- 해상도 및 중간 결과에 대해서는 16비트).The choice of bit depth is a variable parameter and can be arbitrarily changed for the illustrated example (8 bits-resolution of raw pixel values and 16 bits for intermediate results).

순방향 변환의 구현은 또한 역변환 구현을 범위 한정하도록 기재된 절차를 이용함으로써, 범위 한정될 수 있다.Implementations of the forward transform can also be scoped by using the procedures described to scope the inverse transform implementation.

상기 기재한 구축 프로세스에 이어 비-DCT 기저 함수를 근사하는 변환을 생성할 수 있다. 예를 들면, 구축 프로세스는 스케일링된 정수에 대한 제한, 완벽한 재구축, 및 범위 한정을 만족하면서도, FFT, 웨이브렛(wavelet), 또는 다른 중첩된 변환을 근사하는 변환을 생성할 수 있다.Following the construction process described above, one can generate a transform that approximates a non-DCT basis function. For example, the build process may generate transforms that approximate FFTs, wavelets, or other nested transforms, while satisfying limits on scaled integers, complete rebuilds, and range constraints.

상기 설명된 실시예를 참고하여 본 발명의 원리를 기재하고 도시했지만, 그러한 원리를 벗어나지 않고서도 기재된 실시예의 배열 및 세부사항이 변형될 수 있다는 것은 자명하다. 여기에 기재된 프로그램, 프로세스, 또는 방법들은 달리 지 적하지 않는 한, 특정 타입의 컴퓨팅 환경에 관련되거나 한정되는 것이 아니라는 것은 자명하다. 다양한 타입의 일반 목적 또는 특별 컴퓨팅 환경이 여기에 개시된 지침에 따라 동작에 이용되거나 동작을 수행할 수 있다. 소프트웨어로 도시된 실시예의 구성요소는 하드웨어로 구현될 수도 있으며, 그 역으로 가능하다.Although the principles of the invention have been described and illustrated with reference to the embodiments described above, it will be apparent that the arrangement and details of the embodiments described may be modified without departing from such principles. It is apparent that the programs, processes, or methods described herein are not related to or limited to a particular type of computing environment unless otherwise indicated. Various types of general purpose or special computing environments may be used for or perform the operations in accordance with the guidelines disclosed herein. Components of an embodiment shown in software may be implemented in hardware and vice versa.

변환-코딩 기술이 단일한 통합 시스템의 일부로서 적절하게 기재되었지만, 기술은 분리되어, 잠재적으로는 다른 기술과 통합되어 적용될 수 있다. 다른 실시예에서, 인코더 또는 디코더 이외의 신호 처리 툴은 하나 이상의 기술들을 구현한다.Although transform-coding techniques have been appropriately described as part of a single integrated system, the techniques can be applied separately, potentially in combination with other techniques. In another embodiment, a signal processing tool other than an encoder or decoder implements one or more techniques.

기재된 변환 및 변환-코딩 실시예는 다양한 기술들을 수행한다. 이들 기술들에 대한 동작들이 프리젠테이션을 위해 특정 순차적 순서로 통상 기재되지만, 특정 순서가 요구되지 않는다면, 이러한 방식의 기술은 동작 순서에서의 사소한 재배열을 포함한다는 것은 자명하다. 예를 들면, 순차적으로 기재된 동작들은 일부 경우에 재배열되거나 동시에 수행될 수 있다. 더욱이, 단순화를 위해, 플로우차트는 통상 특정 기술이 다른 기술과 관련되어 이용될 수 있는 다양한 방식을 도시하지 않는다. The described transform and transform-coding embodiments perform various techniques. Although the operations for these techniques are typically described in a particular sequential order for presentation, it is obvious that techniques of this manner include minor rearrangements in the order of operation, unless a specific order is required. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, flowcharts typically do not illustrate the various ways in which a particular technique can be used in conjunction with another technique.

본 발명의 원리가 적용될 수 있는 가능한 많은 실시예를 감안하여, 이하의 특허청구범위 및 그 등가의 범주 및 사상내에 드는 모든 실시예를 본 발명으로서 청구한다.In view of the many possible embodiments to which the principles of the invention may be applied, all embodiments falling within the scope of the following claims and their equivalents and spirit are claimed as the invention.

본 발명에 따른 구축 절차를 통해 생성될 수 있는, 정수 매트릭스 곱을 갖는 변환의 구현은 미디어 코딩/디코딩 시스템에서 코딩 및 디코딩 성능을 향상시킨다.Implementation of transforms with integer matrix products, which can be generated through the construction procedure according to the present invention, improves coding and decoding performance in media coding / decoding systems.

또한 본 발명에 따른 구축 절차를 이용하면, 1차원에서 4 및 8 포인트 컴포넌트를 가지는 변환 셋트는 2차원에서 8x8, 8x4, 4x8 및 4x4 블록 변환을 발생시킨다. 16비트 매트릭스 곱을 이용한 구현을 허용하는, 변환에 기초한 압축 시스템은 더 계산상 효율적인 인코딩 및 디코딩을 제공할 수 있다.In addition, using the construction procedure according to the invention, a transform set having 4 and 8 point components in one dimension generates 8x8, 8x4, 4x8 and 4x4 block transforms in two dimensions. Transform-based compression systems, which allow implementations using 16-bit matrix products, can provide more computationally efficient encoding and decoding.

Claims (50)

미디어 데이터를 인코딩하는 방법에 있어서,In a method of encoding media data, 상기 미디어 데이터의 2차원 블록에 대해, 상기 블록의 순방향 변환을 수행하여 상기 블록을 변환 도메인으로 변환하는 단계;Transforming the block into a transform domain by performing a forward transform on the two-dimensional block of the media data; 상기 변환-도메인 블록을 양자화하는 단계;Quantizing the transform-domain block; 상기 변환-도메인 블록을 역양자화하는 단계; 및Dequantizing the transform-domain block; And 재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계Performing an inverse transform of the transform-domain block to produce a reconstructed block 를 포함하고,Including, 상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 데이터 인코딩 방법.The inverse transform is embodied as a sequence of matrix products by a transformation matrix consisting of integers within certain predetermined margins of a given limit, the limit being a scaled integer limit, a complete reconstruction limit, a DCT-type basis limit, and an integer. A method of encoding media data that includes range limit restrictions. 제1항에 있어서, 상기 순방향 변환은 상기 사전결정된 오차범위 내에서 상기 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되는 미디어 데이터 인코딩 방법.2. The method of claim 1, wherein the forward transform is implemented as a sequence of matrix products by a transform matrix consisting of integers within the predetermined error range that conforms to the particular limit. 제1항에 있어서, 상기 제한은 상기 변환의 기저 함수들이 놈(norm)에서 근접하는 제한, 및 충분한 헤드룸이 존재하는 제한을 포함하는 미디어 데이터 인코딩 방법.2. The method of claim 1 wherein the constraints include a constraint that the basis functions of the transform are close in norm, and a constraint that there is sufficient headroom. 제3항에 있어서, 양자화시 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 인코딩 방법.4. The method of claim 3, further comprising compensating for any mismatch in the basis function norm in quantization. 제3항에 있어서, 역양자화시 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 인코딩 방법.4. The method of claim 3, further comprising compensating for any mismatch in the base function norm in inverse quantization. 제3항에 있어서, 부분적으로는 양자화시 및 부분적으로는 역양자화시 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 인코딩 방법.4. The method of claim 3, further comprising compensating for any mismatches in the basis function norm, in part upon quantization and in part on inverse quantization. 미디어 데이터의 변환 코딩을 제공하는 미디어 시스템에 있어서,In a media system that provides transform coding of media data, 상기 미디어 데이터의 2차원 블록에 대해, 상기 블록의 순방향 변환을 수행하여 상기 블록을 변환 도메인으로 변환하도록 동작하는 순방향 변환 스테이지;A forward transform stage operable to transform the block into a transform domain by performing forward transform of the block on the two-dimensional block of media data; 상기 변환-도메인 블록을 양자화하도록 동작하는 양자화 스테이지;A quantization stage operative to quantize the transform-domain block; 상기 변환-도메인 블록을 역양자화하도록 동작하는 역양자화 스테이지; 및An inverse quantization stage operative to inverse quantize the transform-domain block; And 재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하기 위한 역변환 스테이지Inverse transform stage to perform inverse transform of the transform-domain block to produce a reconstructed block 를 포함하고,Including, 상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 일치하는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 시스템.The inverse transform is implemented as a sequence of matrix products by a transform matrix consisting of integers that match a certain limit within a predetermined error range, the limit being a scaled integer limit, a complete reconstruction limit, a DCT-type basis limit, and Media system with integer range limit limits. 컴퓨터 시스템 상에서의 실행시 미디어 데이터를 인코딩하는 방법을 수행하도록 동작하는 컴퓨터 실행 가능 프로그램 명령들이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 미디어 데이터 인코딩 방법은,A computer readable storage medium having computer executable program instructions operative to perform a method of encoding media data when executed on a computer system, the method of encoding media data comprising: 상기 미디어 데이터의 2차원 블록에 대해, 상기 블록의 순방향 변환을 수행하여 상기 블록을 변환 도메인으로 변환하는 단계;Transforming the block into a transform domain by performing a forward transform on the two-dimensional block of the media data; 상기 변환-도메인 블록을 양자화하는 단계;Quantizing the transform-domain block; 상기 변환-도메인 블록을 역양자화하는 단계; 및Dequantizing the transform-domain block; And 재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계Performing an inverse transform of the transform-domain block to produce a reconstructed block 를 포함하고,Including, 상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 컴퓨터 판독가능 저장 매체.The inverse transform is embodied as a sequence of matrix products by a transformation matrix consisting of integers within certain predetermined margins of a given limit, the limit being a scaled integer limit, a complete reconstruction limit, a DCT-type basis limit, and an integer. Computer-readable storage media including range limit limitations. 양자화된 변환 도메인 값의 블록으로서 인코딩된 미디어 데이터를 디코딩하는 방법에 있어서,A method of decoding media data encoded as a block of quantized transform domain values, the method comprising: 상기 양자화된 변환 도메인 값의 블록을 역양자화하는 단계; 및Dequantizing the block of quantized transform domain values; And 재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계Performing an inverse transform of the transform-domain block to produce a reconstructed block 를 포함하고,Including, 상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 데이터 디코딩 방법.The inverse transform is embodied as a sequence of matrix products by a transformation matrix consisting of integers within certain predetermined margins of a given limit, the limit being a scaled integer limit, a complete reconstruction limit, a DCT-type basis limit, and an integer. A method of decoding media data including range limit restrictions. 제9항에 있어서, 상기 제한은 근접한 놈 제한 및 충분한 헤드룸 제한을 포함하는 미디어 데이터 디코딩 방법.10. The method of claim 9, wherein said restriction comprises a near norm restriction and sufficient headroom restriction. 제10항에 있어서, 상기 인코딩된 미디어 데이터 블록은 양자화시 보상되는 놈 미스매치인 미디어 데이터 디코딩 방법.11. The method of claim 10 wherein the encoded media data block is a norm mismatch that is compensated for quantization. 제10항에 있어서, 역양자화시 상기 변환의 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 디코딩 방법.11. The method of claim 10, further comprising compensating for any mismatch in the basis function norm of the transform upon inverse quantization. 제10항에 있어서, 부분적으로는 양자화시 및 부분적으로는 역양자화시 상기 변환의 기저 함수 놈에서의 임의의 미스매치를 보상하는 단계를 더 포함하는 미디어 데이터 디코딩 방법.11. The method of claim 10, further comprising compensating for any mismatch in the basis function norm of the transform, in part upon quantization and in part on inverse quantization. 양자화된 변환 도메인 값의 블록으로서 인코딩된 데이터를 디코딩하기 위한 미디어 디코더에 있어서,A media decoder for decoding data encoded as a block of quantized transform domain values, comprising: 상기 양자화된 변환 도메인 값의 블록을 역양자화하기 위한 역양자화 스테이지; 및An inverse quantization stage for inverse quantization of the block of quantized transform domain values; And 재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하기 위한 역변환 스테이지Inverse transform stage to perform inverse transform of the transform-domain block to produce a reconstructed block 를 포함하고,Including, 상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 미디어 디코더.The inverse transform is embodied as a sequence of matrix products by a transformation matrix consisting of integers within certain predetermined margins of a given limit, the limit being a scaled integer limit, a complete reconstruction limit, a DCT-type basis limit, and an integer. Media decoder with range limit restrictions. 컴퓨터 시스템 상에서의 실행시 양자화된 변환 도메인 값의 블록으로서 인코딩된 미디어 데이터를 디코딩하는 방법을 수행하도록 동작하는 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 미디어 데이터 디코딩 방법은,A computer readable storage medium having stored thereon computer executable program instructions operative to perform a method of decoding encoded media data as a block of quantized transform domain values when executed on a computer system, wherein the method of decoding media data comprises: 상기 양자화된 변환 도메인 값의 블록을 역양자화하는 단계; 및Dequantizing the block of quantized transform domain values; And 재구축된 블록을 생성하기 위해 상기 변환-도메인 블록의 역변환을 수행하는 단계Performing an inverse transform of the transform-domain block to produce a reconstructed block 를 포함하고,Including, 상기 역변환은 사전결정된 오차범위 내에서 특정 제한에 따르는 정수로 구성되는 변환 매트릭스에 의한 매트릭스 곱의 시퀀스로서 구현되며, 상기 제한은 스케일링된 정수 제한, 완벽한 재구축 제한, DCT-형 기저 제한, 및 정수 범위 한계 제한을 포함하는 컴퓨터 판독가능 저장 매체.The inverse transform is embodied as a sequence of matrix products by a transformation matrix consisting of integers within certain predetermined margins of a given limit, the limit being a scaled integer limit, a complete reconstruction limit, a DCT-type basis limit, and an integer. Computer-readable storage media including range limit limitations. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법에 있어서,A method of converting a two-dimensional block of image data between spatial and transform domain representations, 상기 블록의 적어도 1차원이 8포인트인 경우에,If at least one dimension of the block is eight points,
Figure 112003015829024-pat00034
형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
Figure 112003015829024-pat00034
Performing at least one matrix product of the transform matrix consisting of integer transform coefficients of the form and the image data block; And
비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계Scaling the resulting matrix product to remain within the bit-range limits 를 포함하는 변환 방법.Conversion method comprising a.
제16항에 있어서, 상기 이미지 데이터 블록은 8x8 블록이고, 상기 적어도 하나의 매트릭스 곱을 수행하는 단계는 상기 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별(row-wise) 및 칼럼별(column-wise) 매트릭스 곱을 수행하는 단계를 포함하는 변환 방법.17. The method of claim 16, wherein the image data block is an 8x8 block, and performing the at least one matrix multiplication comprises row-wise and column-wise between the transform matrix and the image data block. Performing a matrix product. 제17항에 있어서, 상기 스케일링 단계는 2의 거듭제곱에 의한 나누기를 실행하기 위해 상기 로우별 및 칼럼별 매트릭스 곱 각각 이후에 엔트리별(entry-wise) 시프트 연산을 포함하는 변환 방법.18. The method of claim 17, wherein the scaling step includes an entry-wise shift operation after each of the row-by-row and column-by-column matrix products to perform division by power of two. 제18항에 있어서, 제1의 매트릭스 곱 이후의 상기 엔트리별 시프트 연산은 제2의 매트릭스 곱 이후의 것보다 더 적은 비트 위치만큼의 시프트인 변환 방법.19. The method of claim 18 wherein the entry-by-entry shift operation after the first matrix product is a shift by fewer bit positions than after the second matrix product. 제18항에 있어서, 상기 엔트리별 시프트 연산은 상기 각 매트릭스 곱 이후에 동일 숫자의 비트 위치만큼의 시프트인 변환 방법.19. The method of claim 18, wherein the entry-by-entry shift operation is a shift by a bit position of the same number after each matrix product. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법을 수행하도록 컴퓨터 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 방법은,A computer readable storage medium having stored thereon computer executable program instructions for executing on a computer to perform a method for converting a two-dimensional block of image data between a spatial and transform domain representation. 상기 블록의 적어도 1차원이 8포인트인 경우에,If at least one dimension of the block is eight points,
Figure 112003015829024-pat00035
형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
Figure 112003015829024-pat00035
Performing at least one matrix product of the transform matrix consisting of integer transform coefficients of the form and the image data block; And
비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계Scaling the resulting matrix product to remain within the bit-range limits 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising.
이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법에 있어서,A method of converting a two-dimensional block of image data between spatial and transform domain representations, 상기 블록의 적어도 1차원이 4포인트인 경우에,If at least one dimension of the block is four points,
Figure 112003015829024-pat00036
형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
Figure 112003015829024-pat00036
Performing at least one matrix product of the transform matrix consisting of integer transform coefficients of the form and the image data block; And
비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계Scaling the resulting matrix product to remain within the bit-range limits 를 포함하는 변환 방법.Conversion method comprising a.
제22항에 있어서, 상기 이미지 데이터 블록은 4x4 블록이고, 상기 적어도 하나의 매트릭스 곱을 수행하는 단계는 상기 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별 및 칼럼별 매트릭스 곱을 수행하는 단계를 포함하는 변환 방법.23. The method of claim 22, wherein the image data block is a 4x4 block, and wherein performing at least one matrix product comprises performing row-by-row and column-by-column matrix products of the transform matrix and the image data block. . 제23항에 있어서, 상기 스케일링 단계는 2의 거듭제곱에 의한 나누기를 실행하기 위해 상기 로우별 및 칼럼별 매트릭스 곱 각각 이후에 엔트리별 시프트 연산을 포함하는 변환 방법.24. The method of claim 23, wherein the scaling step includes an entry-by-entry shift operation after each of the row-by-row and column-by-column matrix products to perform division by a power of two. 제24항에 있어서, 제1의 매트릭스 곱 이후의 상기 엔트리별 시프트 연산은 제2의 매트릭스 곱 이후의 것보다 더 적은 비트 위치만큼의 시프트인 변환 방법.25. The method of claim 24 wherein the entry-by-entry shift operation after the first matrix product is a shift by fewer bit positions than after the second matrix product. 제24항에 있어서, 상기 엔트리별 시프트 연산은 상기 각 매트릭스 곱 이후에 동일 숫자의 비트 위치만큼의 시프트인 변환 방법.25. The method of claim 24, wherein the entry-by-entry shift operation is a shift by a bit position of the same number after each matrix product. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법을 수행하도록 컴퓨터 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 방법은,A computer readable storage medium having stored thereon computer executable program instructions for executing on a computer to perform a method for converting a two-dimensional block of image data between a spatial and transform domain representation. 상기 블록의 적어도 1차원이 4포인트인 경우에,If at least one dimension of the block is four points,
Figure 112003015829024-pat00037
형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 적어도 하나의 매트릭스 곱을 수행하는 단계; 및
Figure 112003015829024-pat00037
Performing at least one matrix product of the transform matrix consisting of integer transform coefficients of the form and the image data block; And
비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계Scaling the resulting matrix product to remain within the bit-range limits 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising.
이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법에 있어서, A method of converting a two-dimensional block of image data between spatial and transform domain representations, 상기 블록의 차원들이 4 및 8 포인트인 경우에, If the dimensions of the block are 4 and 8 points,
Figure 112003015829024-pat00038
Figure 112003015829024-pat00039
형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별 및 칼럼별 매트릭스 곱을 수행하는 단계; 및
Figure 112003015829024-pat00038
Wow
Figure 112003015829024-pat00039
Performing a matrix-by-row and column-by-row matrix product of the transform matrix composed of integer transform coefficients of the form and the image data block; And
비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계Scaling the resulting matrix product to remain within the bit-range limits 를 포함하는 변환 방법.Conversion method comprising a.
제28항에 있어서, 상기 데이터 블록은 4x8 포인트의 차원을 가지고 있고, 상기 매트릭스 곱을 수행하는 동작은 Y=(T8 · X · T'4)의 관계에 따라 수행되며, 여기서 X는 상기 데이터 블록을 나타내고, Y는 결과로서의 매트릭스 곱인 변환 방법.The data block of claim 28, wherein the data block has a dimension of 4 × 8 points, and the operation of performing the matrix multiplication is performed according to a relationship of Y = (T 8 · X · T ′ 4 ), where X is the data block. And Y is a matrix product as a result. 제28항에 있어서, 상기 데이터 블록은 8x4 포인트의 차원을 가지고 있고, 상기 매트릭스 곱을 수행하는 동작은 Y=(T4 · X · T'8)의 관계에 따라 수행되며, 여기서 X는 상기 데이터 블록을 나타내고, Y는 결과로서의 매트릭스 곱인 변환 방법.The data block of claim 28, wherein the data block has a dimension of 8 × 4 points, and the operation of performing the matrix multiplication is performed according to a relationship of Y = (T 4 · X · T ′ 8 ), where X is the data block. And Y is a matrix product as a result. 이미지 데이터의 2차원 블록을 공간 및 변환 도메인 표현 사이에서 변환하는 방법을 수행하도록 컴퓨터 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서,A computer readable storage medium having stored thereon computer executable program instructions for executing on a computer to perform a method of converting a two-dimensional block of image data between a spatial and transform domain representation, the method comprising: 상기 블록의 차원들이 4 및 8 포인트인 경우에, 상기 방법은,If the dimensions of the block are 4 and 8 points, the method
Figure 112003015829024-pat00040
Figure 112003015829024-pat00041
형태의 정수 변환 계수로 구성되는 변환 매트릭스와 상기 이미지 데이터 블록과의 로우별 및 칼럼별 매트릭스 곱을 수행하는 단계; 및
Figure 112003015829024-pat00040
Wow
Figure 112003015829024-pat00041
Performing a matrix-by-row and column-by-row matrix product of the transform matrix composed of integer transform coefficients of the form and the image data block; And
비트-범위 한계내에 남도록 결과로서의 매트릭스 곱을 스케일링하는 단계Scaling the resulting matrix product to remain within the bit-range limits 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising.
비정수 계수 기저 함수를 가지는 제2 변환에 근사하는 정수 계수로 구성되는 변환 매트릭스와 정수값 데이터 블록과의 매트릭스 곱으로서 구현되는 변환을 이용하는 2차원 미디어 데이터를 위한 변환 코더에 있어서,A transform coder for two-dimensional media data using a transform implemented as a matrix product of a transform matrix composed of integer coefficients approximating a second transform having a non-coefficient coefficient basis function and an integer value data block, the transform coder comprising: 상기 데이터 블록은 n 및 m의 차원을 가지고 있고, 상기 변환 매트릭스는 구축 프로세스에 따라 구축되며, 이 구축 프로세스는,The data block has dimensions of n and m, and the transformation matrix is built according to the build process, which build process is n- 및 m-포인트 DC 기저 함수의 놈이 매칭하고 기저 함수들이 한정된 범위의 정수값 내에서 변환 도메인 데이터를 생성하는 제한을 허용한도 내에서 받는 n- 및 m-포인트 DC 기저 함수의 일정한 승수(multiplier)를 결정하는 단계;constant multiplier of n- and m-point DC basis functions that the norms of n- and m-point DC basis functions match and the base functions receive within the limits of generating transform domain data within a limited range of integer values ( determining a multiplier); n- 또는 m-포인트 중 더 큰 것의 홀수 기저 함수는 직교하고, 제2 변환의 일정한 승수를 대응하는 기저 함수에 잘 상관시키며, 상기 DC 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 홀수 기저 함수의 일정한 승수의 셋트를 결정하는 단계;The odd base function of the larger of n- or m-points is orthogonal and correlates well to the corresponding base function with a constant multiplier of the second transform, subjecting the DC base function to the norm within the above tolerance limits. Determining a set of constant multipliers of the odd basis function; n- 또는 m-포인트 중 더 큰 것의 짝수 기저 함수는 직교하고, 제2 변환의 일정한 승수를 대응하는 기저 함수에 잘 상관시키며, 상기 DC 및 홀수 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 짝수 기저 함수의 일정한 승수의 셋트를 결정하는 단계; 및The even base function of the larger of n- or m-points is orthogonal and correlates a constant multiplier of the second transform well to the corresponding base function, and the DC and odd base function and norm match constraints within the tolerance. Determining a set of constant multipliers of the even basis function received at; And n- 또는 m-포인트 중 더 작은 것의 기저 함수는 직교하고, 제2 변환의 일정한 승수를 대응하는 기저 함수에 잘 상관시키며, n- 및 m-포인트 기저 함수 중 더 큰 것과 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 n- 또는 m-포인트 중 더 작은 것의 기저 함수의 승수의 셋트를 결정하는 단계The base function of the smaller of the n- or m-points is orthogonal and correlates a constant multiplier of the second transform well to the corresponding base function, and limits the matching of the norm with the larger of the n- and m-point base functions. Determining a set of multipliers of the basis function of the smaller of the n- or m-points received within the tolerance 를 포함하는 변환 코더.Conversion coder comprising. 제32항에 있어서, 상기 제2 변환은 DCT 변환인 변환 코더.33. The transform coder of claim 32, wherein said second transform is a DCT transform. 제32항에 있어서, 상기 제2 변환은 DCT, FFT, 웨이브렛(wavelet), 또는 중첩(overlapped) 변환 중 하나인 변환 코더.33. The transform coder of claim 32, wherein the second transform is one of a DCT, FFT, wavelet, or overlapped transform. 제32항에 있어서, 상기 차원 n 및 m은 동일한 변환 코더.33. The transform coder of claim 32, wherein the dimensions n and m are identical. 제32항에 있어서, 상기 차원 n 및 m은 4 및 8인 변환 코더.33. The transform coder of claim 32, wherein the dimensions n and m are 4 and 8. 정수 계수로 구성되는 변환 매트릭스와 정수 데이터 블록과의 매트릭스 곱으로서 구현되는 변환을 이용하는 2차원 미디어 데이터를 위한 변환 코더에 있어서,A transform coder for two-dimensional media data using a transform implemented as a matrix product of a transform matrix composed of integer coefficients and an integer data block, 상기 데이터 블록은 n 및 m의 차원을 가지고 있고, 상기 변환 매트릭스는 구축 프로세스에 따라 구축되며, 이 구축 프로세스는,The data block has dimensions of n and m, and the transformation matrix is built according to the build process, which build process is n- 및 m-포인트 DC 기저 함수의 놈이 매칭하고 기저 함수들이 한정된 범위의 정수값 내에서 변환 도메인 데이터를 생성하는 제한을 허용한도 내에서 받는 n- 및 m-포인트 DC 기저 함수의 일정한 승수를 결정하는 단계;The constant multiplier of the n- and m-point DC base functions that the norms of the n- and m-point DC base functions match and the base functions receive within the limits of generating transform domain data within a limited range of integer values. Determining; n- 또는 m-포인트 중 더 큰 것의 홀수 기저 함수는 직교하고, 일정한 승수를 대응하는 DCT 기저 함수에 잘 상관시키며, 상기 DC 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 홀수 기저 함수의 일정한 승수의 셋트를 결정하는 단계;The odd basis function of the larger of n- or m-points is orthogonal and correlates well with a constant multiplier to the corresponding DCT basis function, and the odd basis that receives within the tolerance a limit to match the DC basis function and norm. Determining a set of constant multipliers of the function; n- 또는 m-포인트 중 더 큰 것의 짝수 기저 함수는 직교하고, 일정한 승수를 대응하는 DCT 기저 함수에 잘 상관시키며, 상기 DC 및 홀수 기저 함수와 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 짝수 기저 함수의 일정한 승수의 셋트를 결정하는 단계; 및The even base function of the larger of n- or m-points is orthogonal and correlates well with a constant multiplier to the corresponding DCT base function, and the DC and odd base function and the norm are given within the above tolerance limits matching in norm. Determining a set of constant multipliers of an even basis function; And n- 또는 m-포인트 중 더 작은 것의 기저 함수는 직교하고, 일정한 승수를 대 응하는 DCT 기저 함수에 잘 상관시키며, n- 및 m-포인트 기저 함수 중 더 큰 것과 놈에서 매칭하는 제한을 상기 허용한도 내에서 받는 상기 n- 또는 m-포인트 중 더 작은 것의 기저 함수의 승수의 셋트를 결정하는 단계The base function of the smaller of the n- or m-points is orthogonal and correlates well with the DCT base function corresponding to a constant multiplier, allowing the constraint to match at the norm with the larger of the n- and m-point base functions. Determining a set of multipliers of the basis function of the smaller of the n- or m-points received within the limits 를 포함하는 변환 코더.Conversion coder comprising. 제37항에 있어서, 상기 차원 n 및 m은 동일한 변환 코더.38. The transform coder of claim 37, wherein the dimensions n and m are identical. 제37항에 있어서, 상기 차원 n 및 m은 4 및 8인 변환 코더.38. The transform coder of claim 37, wherein the dimensions n and m are 4 and 8. 미디어 컨텐트를 나타내는 데이터 블록을 변환 코딩하는 방법에 있어서,A method of transcoding a block of data representing media content, the method comprising: 상기 미디어 컨텐트를 나타내는 변환 도메인 데이터 블록을 생성하기 위해 상기 데이터 블록에 변환 -상기 변환은 미스매칭하면서도 대략 동일한 놈을 가지는 변환 기저 함수들의 셋트를 포함함- 을 적용하는 단계; 및Applying a transform to the data block to produce a transform domain data block representing the media content, the transform including a set of transform basis functions that have a mismatched and approximately equal norm; And 상기 미스매칭 놈을 보상하기 위해, 상기 각 변환 기저 함수에 대한 스케일링 인자에 따라 상기 변환 도메인 데이터 블록내의 값을 스케일링하는 단계Scaling a value in the transform domain data block according to a scaling factor for each transform basis function to compensate for the mismatching norm 를 포함하는 변환 코딩 방법.Transform coding method comprising a. 제40항에 있어서, 상기 미스매칭 놈을 보상하는 스케일링 단계는 디코딩시의 계산상 부하를 감소시키기 위해 인코딩시 수행되는 변환 코딩 방법.41. The method of claim 40 wherein a scaling step of compensating for the mismatching norm is performed at encoding to reduce computational load at decoding. 제40항에 있어서, 상기 미스매칭 놈을 보상하는 스케일링 단계는 인코딩시의 계산상 부하를 감소시키기 위해, 디코딩시 수행되는 변환 코딩 방법.41. The method of claim 40 wherein a scaling step of compensating for the mismatching norm is performed at decoding to reduce computational load at encoding. 제40항에 있어서, 상기 변환을 적용하는 단계는 매트릭스41. The method of claim 40, wherein applying the transform is a matrix
Figure 112003015829024-pat00042
를 이용한 매트릭스 곱을 포함하고,
Figure 112003015829024-pat00042
Contains a matrix product using
상기 스케일링 단계는 매트릭스The scaling step is a matrix
Figure 112003015829024-pat00043
를 이용하여 컴포넌트별(component-wise) 곱을 수행하는 단계를 포함하며,
Figure 112003015829024-pat00043
Performing a component-wise product using
여기에서,From here,
Figure 112003015829024-pat00044
Figure 112003015829024-pat00044
sign
변환 코딩 방법.Transform coding method.
제40항에 있어서, 상기 변환을 적용하는 단계는 매트릭스41. The method of claim 40, wherein applying the transform is a matrix
Figure 112003015829024-pat00045
Figure 112003015829024-pat00045
Wow
Figure 112003015829024-pat00046
를 이용한 매트릭스 곱을 포함하고,
Figure 112003015829024-pat00046
Contains a matrix product using
상기 스케일링 단계는 매트릭스The scaling step is a matrix
Figure 112003015829024-pat00047
를 이용한 컴포넌트별 곱을 계산하는 단계를 포함하며,
Figure 112003015829024-pat00047
Computing the product for each component using a,
여기에서, From here,
Figure 112003015829024-pat00048
Figure 112003015829024-pat00048
sign
변환 코딩 방법.Transform coding method.
제40항에 있어서, 상기 변환을 적용하는 단계는 매트릭스41. The method of claim 40, wherein applying the transform is a matrix
Figure 112003015829024-pat00049
를 이용한 매트릭스 곱을 포함하고,
Figure 112003015829024-pat00049
Contains a matrix product using
상기 스케일링 단계는 매트릭스 The scaling step is a matrix
Figure 112003015829024-pat00050
를 이용한 컴포넌트별 곱을 계산하는 단계를 포함하며,
Figure 112003015829024-pat00050
Computing the product for each component using a,
여기에서,From here,
Figure 112003015829024-pat00051
Figure 112003015829024-pat00051
sign
변환 코딩 방법.Transform coding method.
미디어 컨텐트를 나타내는 데이터 블록을 변환 코딩하는 방법을 수행하도록 컴퓨터 시스템 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 코딩 방법은,A computer readable storage medium having stored thereon computer executable program instructions for executing on a computer system to perform a method of transform coding a block of data representing media content, the method of transform coding comprising: 상기 미디어 컨텐트를 나타내는 변환 도메인 데이터 블록을 생성하기 위해 상기 데이터 블록에 변환 -상기 변환은 미스매칭하면서도 대략 동일한 놈을 가지는 변환 기저 함수들의 셋트를 포함함- 을 적용하는 단계; 및Applying a transform to the data block to produce a transform domain data block representing the media content, the transform including a set of transform basis functions that have a mismatched and approximately equal norm; And 상기 미스매칭 놈을 보상하기 위해, 상기 각 변환 기저 함수에 대한 스케일링 인자에 따라 상기 변환 도메인 데이터 블록내의 값을 스케일링하는 단계Scaling a value in the transform domain data block according to a scaling factor for each transform basis function to compensate for the mismatching norm 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising. 미디어 컨텐트를 표현하는 데이터 블록 D를 변환 코딩하는 방법에 있어서,A method of transform coding data block D representing media content, the method comprising: 상기 미디어 블록의 공간 및 변환 도메인 표현 사이에서 변환하기 위한 상기 데이터 블록의 변환을 계산하는 단계 -상기 변환의 결과 R은
Figure 112003015829024-pat00052
로서 상기 데이터 블록 D에 관련되고, 여기서 T는 변환 기저 함수의 매트릭스임- 를 포함하고,
Calculating a transform of the data block for converting between the spatial and transform domain representation of the media block, where the result R of the transform is
Figure 112003015829024-pat00052
As related to the data block D, wherein T is a matrix of transform basis functions,
상기 계산 단계는,The calculating step, 제1 및 제2 변환 서브-컴포넌트 매트릭스 각각과 상기 데이터 블록과의 매트릭스 곱을 수행하는 단계 -상기 변환 서브-컴포넌트 매트릭스(Ta 및 Tb)는 T=2x·Ta+Tb로서 상기 변환 기저 함수 매트릭스에 관련됨- ;Performing a matrix product of each of the first and second transform sub-component matrices and the data block, wherein the transform sub-component matrices T a and T b are transformed as T = 2 × T a + T b . Related to the base function matrix; 상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 곱을 x 비트 위치만큼 시프트하는 단계;Shifting a product of the data block and a second sub-component matrix by x bit positions; 상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 상기 시프팅된 곱과, 상기 데이터 블록 및 제1 서브-컴포넌트 매트릭스의 곱을 가산하는 단계; 및Adding the shifted product of the data block and the second sub-component matrix and the product of the data block and the first sub-component matrix; And 상기 결과 R을 얻기 위해, 상기 곱들의 합을 y 비트 위치만큼 시프팅하는 단계 -그럼으로써 상기 변환의 헤드 룸이 확장됨-Shifting the sum of the products by y bit positions to obtain the result R, whereby the headroom of the transform is expanded 를 포함하는 변환 코딩 방법.Transform coding method comprising a.
제47항에 있어서, 상기 변환 기저 함수 매트릭스는 48. The system of claim 47 wherein the transform basis function matrix is
Figure 112003015829024-pat00053
이고,
Figure 112003015829024-pat00053
ego,
상기 변환 서브-컴포넌트 매트릭스는The transform sub-component matrix is
Figure 112003015829024-pat00054
Figure 112003015829024-pat00054
sign
변환 코딩 방법.Transform coding method.
제47항에 있어서, 상기 변환 기저 함수 매트릭스는48. The system of claim 47 wherein the transform basis function matrix is
Figure 112003015829024-pat00055
이고,
Figure 112003015829024-pat00055
ego,
상기 변환 서브-컴포넌트 매트릭스는The transform sub-component matrix is
Figure 112003015829024-pat00056
Figure 112003015829024-pat00056
sign
변환 코딩 방법.Transform coding method.
미디어 컨텐트를 표현하는 데이터 블록 D를 변환 코딩하는 방법을 수행하도록 컴퓨터 시스템 상에서 실행하기 위한 컴퓨터 실행가능 프로그램 명령이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 변환 코딩 방법은,A computer readable storage medium having stored thereon computer executable program instructions for executing on a computer system to perform a method of transform coding a block of data representing a media content. 상기 미디어 블록의 공간 및 변환 도메인 표현 사이에서 변환하기 위한 상기 데이터 블록의 변환을 계산하는 단계 -상기 변환의 결과 R은
Figure 112003015829024-pat00057
로서 상기 데이터 블록 D에 관련되고, 여기서 T는 변환 기저 함수의 매트릭스임- 를 포함하고,
Calculating a transform of the data block for converting between the spatial and transform domain representation of the media block, where the result R of the transform is
Figure 112003015829024-pat00057
As related to the data block D, wherein T is a matrix of transform basis functions,
상기 계산 단계는,The calculating step, 제1 및 제2 변환 서브-컴포넌트 매트릭스 각각과 상기 데이터 블록과의 매트릭스 곱을 수행하는 단계 -상기 변환 서브-컴포넌트 매트릭스(Ta 및 Tb)는 T=2x·Ta+Tb로서 상기 변환 기저 함수 매트릭스에 관련됨- ;Performing a matrix product of each of the first and second transform sub-component matrices and the data block, wherein the transform sub-component matrices T a and T b are transformed as T = 2 × T a + T b . Related to the base function matrix; 상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 곱을 x 비트 위치만큼 시프트하는 단계;Shifting a product of the data block and a second sub-component matrix by x bit positions; 상기 데이터 블록 및 제2 서브-컴포넌트 매트릭스의 상기 시프팅된 곱과, 상기 데이터 블록 및 제1 서브-컴포넌트 매트릭스의 곱을 가산하는 단계; 및Adding the shifted product of the data block and the second sub-component matrix and the product of the data block and the first sub-component matrix; And 상기 결과 R을 얻기 위해, 상기 곱들의 합을 y 비트 위치만큼 시프팅하는 단계 -그럼으로써 상기 변환의 헤드 룸이 확장됨- Shifting the sum of the products by y bit positions to obtain the result R, whereby the headroom of the transform is expanded 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising.
KR1020030028005A 2002-05-02 2003-05-01 2-d transforms for image and video coding KR100965704B1 (en)

Applications Claiming Priority (4)

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

Publications (2)

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

Family

ID=29273051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030028005A KR100965704B1 (en) 2002-05-02 2003-05-01 2-d transforms for image and video coding

Country Status (8)

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

Cited By (1)

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

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
IL147370A (en) * 2001-12-27 2007-07-24 Itzhak Florentin Method and system for guiding a remote vehicle via lagged communication channel
US7129962B1 (en) * 2002-03-25 2006-10-31 Matrox Graphics Inc. Efficient video processing method and system
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US7760950B2 (en) * 2002-09-26 2010-07-20 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
US6831868B2 (en) * 2002-12-05 2004-12-14 Intel Corporation Byte aligned redundancy for memory array
US7471726B2 (en) * 2003-07-15 2008-12-30 Microsoft Corporation Spatial-domain lapped transform in digital media compression
JP4699685B2 (en) * 2003-08-21 2011-06-15 パナソニック株式会社 Signal processing apparatus and electronic apparatus using the same
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7813574B2 (en) * 2003-09-24 2010-10-12 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
KR20050075578A (en) * 2004-01-16 2005-07-21 삼성전자주식회사 Scalable video encoding method supporting closed-loop optimization and apparatus thereof
US7487193B2 (en) * 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US8045614B2 (en) 2005-05-11 2011-10-25 Dolby Laboratories Licensing Corporation Quantization control for variable bit depth
CN100440978C (en) * 2004-09-28 2008-12-03 华为技术有限公司 Video image coding method
US7428342B2 (en) * 2004-12-17 2008-09-23 Microsoft Corporation Reversible overlap operator for efficient lossless data compression
US7471850B2 (en) * 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
US7305139B2 (en) * 2004-12-17 2007-12-04 Microsoft Corporation Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform
AU2005239628B2 (en) * 2005-01-14 2010-08-05 Microsoft Technology Licensing, Llc Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform
US8311088B2 (en) * 2005-02-07 2012-11-13 Broadcom Corporation Method and system for image processing in a microprocessor for portable video communication devices
US7953161B2 (en) * 2005-04-27 2011-05-31 Broadcom Corporation System and method for overlap transforming and deblocking
US8422546B2 (en) * 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US8036274B2 (en) * 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
US20070047655A1 (en) * 2005-08-26 2007-03-01 Vannerson Eric F Transpose buffering for video processing
WO2007027418A2 (en) * 2005-08-31 2007-03-08 Micronas Usa, Inc. Systems and methods for video transformation and in loop filtering
JP4973871B2 (en) * 2005-10-14 2012-07-11 日本電気株式会社 Image encoding method, and apparatus and computer program using the same
JP2007195117A (en) * 2006-01-23 2007-08-02 Toshiba Corp Moving image decoding device
JP2007243427A (en) * 2006-03-07 2007-09-20 Nippon Hoso Kyokai <Nhk> Encoder and decoder
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8059721B2 (en) * 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
JP4829019B2 (en) * 2006-07-06 2011-11-30 株式会社東芝 Communication terminal device
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8942289B2 (en) 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
US20080240257A1 (en) * 2007-03-26 2008-10-02 Microsoft Corporation Using quantization bias that accounts for relations between transform bins and quantization bins
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8255445B2 (en) 2007-10-30 2012-08-28 The Chinese University Of Hong Kong Processes and apparatus for deriving order-16 integer transforms
US8331454B2 (en) * 2007-11-12 2012-12-11 Cisco Technology, Inc. Integer transform function for video compression systems
CN100461095C (en) * 2007-11-20 2009-02-11 浙江大学 Medium reinforced pipelined multiplication unit design method supporting multiple mode
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8175165B2 (en) 2008-04-15 2012-05-08 The Chinese University Of Hong Kong Methods and apparatus for deriving an order-16 integer transform
US8102918B2 (en) 2008-04-15 2012-01-24 The Chinese University Of Hong Kong Generation of an order-2N transform from an order-N transform
US8369638B2 (en) 2008-05-27 2013-02-05 Microsoft Corporation Reducing DC leakage in HD photo transform
US8447591B2 (en) * 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
KR20100020441A (en) * 2008-08-12 2010-02-22 엘지전자 주식회사 Method of processing a video signal
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
US9183181B2 (en) * 2011-01-10 2015-11-10 Cisco Technology, Inc. Integer matrix transform video compression system, method and computer program product
US9110849B2 (en) 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
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
US9635368B2 (en) 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
US9100648B2 (en) 2009-06-07 2015-08-04 Lg Electronics Inc. Method and apparatus for decoding a video signal
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US9075757B2 (en) 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US8817875B2 (en) * 2009-08-13 2014-08-26 The Johns Hopkins University Methods and systems to encode and decode sequences of images
CN102667921B (en) 2009-10-20 2014-09-10 弗兰霍菲尔运输应用研究公司 Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information
MX2012008075A (en) * 2010-01-12 2013-12-16 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a modification of a number representation of a numeric previous context value.
TWI415474B (en) * 2010-07-19 2013-11-11 Mstar Semiconductor Inc Viedo codec and method thereof
CN105512093A (en) 2010-09-28 2016-04-20 三星电子株式会社 Video encoding method and device and decoding method and device
CN101977321B (en) * 2010-11-04 2014-03-12 深圳市融创天下科技股份有限公司 Integer transformation method for video coding
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
GB2492333B (en) * 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
RU2660613C1 (en) 2011-06-30 2018-07-06 Самсунг Электроникс Ко., Лтд. Method of video coding with adjustment of the bit depth for conversion with a fixed wrap and a device for the same, and also a method of a video decoding and a device for the same
JP5662887B2 (en) * 2011-07-01 2015-02-04 日本放送協会 Encoding device, decoding device, and program
KR20140098114A (en) * 2011-11-07 2014-08-07 브이아이디 스케일, 인크. Video and data processing using even-odd integer transforms background
US8719321B2 (en) * 2011-12-11 2014-05-06 Hong Kong Applied Science and Technology Research Institute Company Limited Adaptive block-size transform using LLMICT
EP2805492B1 (en) 2012-01-19 2018-11-14 VID SCALE, Inc. System and method of video coding quantization and dynamic range control
CN103905825B (en) * 2012-12-27 2018-02-13 中国电信股份有限公司 The motion compensation process and device of video image
JP6102707B2 (en) * 2013-12-05 2017-03-29 Nttエレクトロニクス株式会社 Digital encoding device
CN104901703B (en) * 2015-04-08 2018-04-03 河海大学 A kind of integer sequence Fast Compression stores algorithm
EP3329391B1 (en) * 2015-07-31 2021-01-06 EntIT Software LLC Translate data structure to video frame structure
US10567800B2 (en) 2016-11-29 2020-02-18 Qualcomm Incorporated Transform hardware architecture for video coding
CN106954070B (en) * 2017-04-28 2023-04-11 河南工程学院 Sliding pixel block integer DCT core matrix transformation motion compensator and method
US11049219B2 (en) 2017-06-06 2021-06-29 Gopro, Inc. Methods and apparatus for multi-encoder processing of high resolution content
CN111713104B (en) * 2018-02-14 2022-04-26 索尼公司 Image processing apparatus and method
US11647214B2 (en) * 2018-03-30 2023-05-09 Qualcomm Incorporated Multiple transforms adjustment stages for video coding
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325215A (en) 1990-12-26 1994-06-28 Hitachi, Ltd. Matrix multiplier and picture transforming coder using the same
JPH09204417A (en) * 1995-08-28 1997-08-05 Hyundai Electron America Inc Inverse discrete cosine transformation processor to be provided with super lsi
EP1359546A1 (en) 2002-05-02 2003-11-05 Microsoft Corporation 2-D transforms for image and video coding

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63219066A (en) 1987-03-06 1988-09-12 Matsushita Electric Ind Co Ltd Orthogonal transforming device
US5357594A (en) * 1989-01-27 1994-10-18 Dolby Laboratories Licensing Corporation Encoding and decoding using specially designed pairs of analysis and synthesis windows
US5379351A (en) * 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
US5319724A (en) 1990-04-19 1994-06-07 Ricoh Corporation Apparatus and method for compressing still images
JPH04282988A (en) 1991-03-12 1992-10-08 Sony Corp Picture data converter
US5168375A (en) * 1991-09-18 1992-12-01 Polaroid Corporation Image reconstruction by use of discrete cosine and related transforms
JPH0645949A (en) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd Orthogonal converter and reverse orthogonal converter
JPH0645948A (en) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd Orthogonal converter and reverse orthogonal converter
JPH0654307A (en) 1992-07-29 1994-02-25 Casio Comput Co Ltd Data compressing device
JP3069455B2 (en) * 1992-12-22 2000-07-24 富士写真フイルム株式会社 Quantization and dequantization circuits in image data compression and decompression equipment
US5995539A (en) * 1993-03-17 1999-11-30 Miller; William J. Method and apparatus for signal transmission and reception
JP3697717B2 (en) * 1993-09-24 2005-09-21 ソニー株式会社 Two-dimensional discrete cosine transform device and two-dimensional inverse discrete cosine transform device
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
US5864637A (en) * 1995-04-18 1999-01-26 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selective reduction of spatial resolution
JP2914226B2 (en) 1995-06-16 1999-06-28 日本電気株式会社 Transformation encoding of digital signal enabling reversible transformation
US5825929A (en) * 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
JPH1091614A (en) 1996-09-13 1998-04-10 Hitachi Ltd Method for converting idct into integer
US5883823A (en) 1997-01-15 1999-03-16 Sun Microsystems, Inc. System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
US6058215A (en) * 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
US6134270A (en) * 1997-06-13 2000-10-17 Sun Microsystems, Inc. Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
US6057855A (en) * 1997-07-02 2000-05-02 Hewlett-Packard Company Method and apparatus for providing polygon pixel sub-sample information using incremental means
US6600785B1 (en) * 1997-12-01 2003-07-29 Matsushita Electric Industrial Image processor, image data processor and variable length encoder/decoder
EP1038403B1 (en) * 1997-12-19 2005-10-12 Infineon Technologies AG Device for multiplying with constant factors and use of said device for video compression (mpeg)
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6073153A (en) * 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6154762A (en) * 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6301304B1 (en) * 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
GB9819648D0 (en) * 1998-09-10 1998-11-04 Nds Ltd Determining visually noticeable differences between two images
US6363117B1 (en) * 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
US6473534B1 (en) * 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
US6487574B1 (en) * 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6496795B1 (en) * 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
US6370502B1 (en) * 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6507614B1 (en) * 1999-10-19 2003-01-14 Sony Corporation Efficient de-quantization in a digital video decoding process using a dynamic quantization matrix for parallel computations
JP3593944B2 (en) * 2000-03-08 2004-11-24 日本電気株式会社 Image data processing apparatus and motion compensation processing method used therefor
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
US20030112873A1 (en) 2001-07-11 2003-06-19 Demos Gary A. Motion estimation for video compression systems
US7123655B2 (en) * 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
JP2003348598A (en) 2002-04-12 2003-12-05 Seiko Epson Corp Method and apparatus for memory efficient compressed domain video processing and for fast inverse motion compensation using factorization and integer approximation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325215A (en) 1990-12-26 1994-06-28 Hitachi, Ltd. Matrix multiplier and picture transforming coder using the same
JPH09204417A (en) * 1995-08-28 1997-08-05 Hyundai Electron America Inc Inverse discrete cosine transformation processor to be provided with super lsi
EP1359546A1 (en) 2002-05-02 2003-11-05 Microsoft Corporation 2-D transforms for image and video coding

Cited By (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100965704B1 (en) 2-d transforms for image and video coding
KR101153105B1 (en) Fast video codec transform implementations
KR101013344B1 (en) Reduction of errors during computation of discrete cosine transform
KR100912415B1 (en) Implementation of a transform and of a subsequent quantization
KR101036731B1 (en) Reversible transform for lossy and lossless 2-d data compression
US8369638B2 (en) Reducing DC leakage in HD photo transform
JP5507077B2 (en) Apparatus and method for encoding and calculating a discrete cosine transform using a butterfly processor
KR20080044835A (en) Adaptive coding and decoding of wide-range coefficients
JP2008501250A (en) Method for transcoding input video based on a first conversion kernel to output video based on a second conversion kernel, and transcoder for converting input video having an input format to output video having an output format
JP2002531973A (en) Image compression and decompression
KR100270799B1 (en) Dct/idct processor
US20060228031A1 (en) Fast adaptive lifting lossless wavelet transform
CN1258169A (en) Pipline discrete cosine transformation apparatus
JP2005168028A (en) Arithmetic device for absolute difference, and motion estimation apparatus and motion picture encoding apparatus using same
US7552160B2 (en) Integrated lifting wavelet transform
KR20040044253A (en) Method and apparatus for fast inverse discrete cosine transform
JP2532588B2 (en) Orthogonal inverse transformation device
KR100402734B1 (en) the fixed point multiplier using a coded multiplicnd and the method thereof
JP2015061143A (en) Video encoder and video encoding program
Konstantinides Key Components in the design of image and video compression ICs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130521

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140516

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 10