KR20030072338A - Faster Transforms Using Scaled Terms, Early aborts, and Precision Refinements - Google Patents

Faster Transforms Using Scaled Terms, Early aborts, and Precision Refinements Download PDF

Info

Publication number
KR20030072338A
KR20030072338A KR10-2003-7005430A KR20037005430A KR20030072338A KR 20030072338 A KR20030072338 A KR 20030072338A KR 20037005430 A KR20037005430 A KR 20037005430A KR 20030072338 A KR20030072338 A KR 20030072338A
Authority
KR
South Korea
Prior art keywords
transform
conversion
constants
variable
scaling
Prior art date
Application number
KR10-2003-7005430A
Other languages
Korean (ko)
Other versions
KR100545445B1 (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
Priority claimed from US09/694,448 external-priority patent/US6766341B1/en
Priority claimed from US09/694,455 external-priority patent/US6961473B1/en
Priority claimed from US09/694,452 external-priority patent/US7007054B1/en
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20030072338A publication Critical patent/KR20030072338A/en
Application granted granted Critical
Publication of KR100545445B1 publication Critical patent/KR100545445B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms

Landscapes

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

Abstract

복수의 스케일링된 항들, 초기 중지 및 정밀도 세분을 이용하는 고속 변환이 개시된다. 이산변환은 변환 상수들에 대해 복수의 스케일링 항들을 이용하여 독립적으로 계산되는 부-변환들로 나뉜다. 변환계수들에 대한 스케일링 효과는 양자화값들 또는 임의의 비교값들을 적절히 스케일링함으로써 선택적으로 처리될 수 있다. 수정처치를 수행하는데 가능한 필요성은 변환계수들의 증분계산을 테스트한 것에 기초하여 검출된다. 그리고나서, 수정처치가 수행된다. 수정처치는 부가적인 정밀도를 얻기 위해 증분계산을 세분하는 단계 및/또는 결과 숫자가 만족스러울때 증분계산을 중지시키는 단계를 포함한다.A fast transformation using a plurality of scaled terms, initial stop and precision subdivision is disclosed. Discrete transforms are divided into sub-transformations that are independently calculated using a plurality of scaling terms for the transform constants. Scaling effects on the transform coefficients may be selectively processed by appropriately scaling quantization values or any comparison values. The possible need to perform corrective action is detected based on testing the incremental calculation of the transform coefficients. Then, corrective action is performed. Corrective action includes subdividing the incremental calculation to obtain additional precision and / or stopping the incremental calculation when the resulting number is satisfactory.

Description

스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 변환{Faster Transforms Using Scaled Terms, Early aborts, and Precision Refinements}Faster Transforms Using Scaled Terms, Early aborts, and Precision Refinements}

하나의 도메인(예, 샘플링된 데이터)에서 데이터를 취하여 또다른 도메인(주파수 공간)으로의 변환은 다수의 신호 및/또는 이미지 처리 어플리케이션들에서 이용된다. 이러한 변환은, 특징 식별 및/또는 추출, 신호 보정, 데이터 압축, 및 데이터 임베딩/워터마킹(embedding/watermarking)등을 포함하는 다양한 어플리케이션에서 이용되고 있으며, 이에 국한되는 것은 아니다.The conversion of data from one domain (eg sampled data) to another domain (frequency space) is used in many signal and / or image processing applications. Such transformations are used in a variety of applications including, but not limited to, feature identification and / or extraction, signal correction, data compression, and data embedding / watermarking.

데이터 처리에서, 데이터는 전형적으로 샘플 이산 함수로서 표현된다. 이산 표현은 결정적으로 만들어지거나 또는 통계적으로 만들어진다. 결정적 표현에서는 데이터의 점특성이 고려되는 반면에, 통계적 표현에서는 데이터의 평균 특성이 지정된다. 예를 들어, 본 기술 분야에서, 데이터 압축을 위해 이산 코사인 변환을 이용하는 것이 공지되어 있다. 본명세서에서 언급되는 특정 예들에서, 이미지 및 이미지 처리란 용어들이 이용될 것이다. 그러나, 본 기술분야의 당업자라면 본 발명이 단지 이미지 처리에 제한되는 것이 아니며, 음성 데이터, 과학적 데이터, 이미지데이터 등과 같은 상이한 종류의 데이터들을 처리하는데 이용가능함을 인식할 것이다.In data processing, data is typically represented as a sample discrete function. Discrete representations may be made deterministically or statistically. In the deterministic representation the point characteristic of the data is taken into account, while in the statistical representation the average characteristic of the data is specified. For example, in the art, it is known to use discrete cosine transform for data compression. In the specific examples mentioned in this specification, the terms image and image processing will be used. However, one of ordinary skill in the art will recognize that the present invention is not limited to image processing but can be used to process different kinds of data such as voice data, scientific data, image data, and the like.

디지털이미지처리시스템에서, 디지털이미지 신호들은 우선 2차원 영상을 그리드(grid)로 나눔으로써 형성된다. 그리드 내의 각각의 화상 요소, 즉, 픽셀은 명도 또는 색상과 같은 다수의 시각적 특성들과 연관되어 있다. 이러한 특성들은 숫자 형태로 변환된다. 그다음, 디지털이미지 신호는 이미지 내의 각각의 요소들과 연관된 숫자들을 디지털이미지신호 수신기에서 해석될 수 있는 시퀀스로 조립함으로써 형성된다.In a digital image processing system, digital image signals are first formed by dividing a two-dimensional image into a grid. Each picture element in a grid, ie a pixel, is associated with a number of visual properties, such as brightness or color. These properties are converted to numbers. The digital image signal is then formed by assembling the numbers associated with each element in the image into a sequence that can be interpreted at the digital image signal receiver.

데이터를 이용하는 실제 어플리케이션들에 너무 많은 데이터가 제공되는 경우에, 다수의 데이터 처리 프로세스에서 데이터 압축이 바람직하다. 흔히, 압축은 통신 링크에서 사용되어, 전송 시간 또는 요구되는 대역폭을 감소시킨다. 유사하게, 인쇄될 문서의 "페이지"가 메모리에 일시 저장되는 디지털 프린터 및 복사기와 같은 이미지 저장 시스템에서도 압축이 바람직하다. 이미지 데이터가 저장되는 매체 공간량은 압축으로 인해 실질적으로 줄어들 수 있다. 일반적으로, 스캐닝된 이미지 (즉, 하드카피 문서의 전자적 표현)는 종종 커서 압축의 바람직한 대상이 된다.If too much data is provided to real applications that use the data, data compression is desirable in many data processing processes. Often, compression is used in the communication link, reducing the transmission time or the bandwidth required. Similarly, compression is also desirable in image storage systems, such as digital printers and copiers, in which "pages" of documents to be printed are temporarily stored in memory. The amount of media space in which image data is stored can be substantially reduced due to compression. In general, the scanned image (ie, the electronic representation of the hardcopy document) is often a desirable target for cursor compression.

신호 및 이미지 처리는 분석 목적을 위해 입력 데이터를 변환 계수로 변환하는 것을 빈번하게 요구한다. 종종, 계수들의 양자화된 버전만이 요구된다 (예를 들면, JPEG/MPEG 데이터 압축 또는 오디오/비디오 압축). 다수의 이러한 어플리케이션들은 고속 프린터용 JPEG 데이터 생성과 같이 실시간에서 신속하게 수행될 것을 필요로 한다. 이러한 변환의 대부분은 압축이 데이터 처리의 일부분으로서 사용되는 것과 무관하게 실시간 및/또는 고속 실행을 위한 효과적인 구현을 요구한다.Signal and image processing frequently requires converting input data into transform coefficients for analysis purposes. Often, only quantized versions of the coefficients are required (eg JPEG / MPEG data compression or audio / video compression). Many such applications need to be performed quickly in real time, such as generating JPEG data for high speed printers. Most of these transformations require effective implementations for real time and / or high speed execution regardless of whether compression is used as part of the data processing.

데이터 신호 처리 산업에서 디지털 신호 처리를 가장 효과적이고 신속하게 행할 수 있는 고속 방법을 찾는 것에 대한 부담이 작용한다. 압축 분야에서처럼, 고속 변환 구현 분야에서도 매우 활동적이고 경쟁적으로 연구가 진행되고 있다. 연구자들은 변환 및 역변환에서 발견되는 속성들을 이용함으로써 변환을 구현하고자 하는 하드웨어의 강도를 개선하려는 다양한 시도들을 수행하였다.There is a burden in the data signal processing industry to find a high-speed way to perform digital signal processing most effectively and quickly. As in the field of compression, very active and competitive research is being conducted in the field of high-speed conversion implementation. The researchers made various attempts to improve the strength of the hardware to implement the transform by using the properties found in the transform and inverse transform.

이러한 기법중 하나가 ISO 10918-1 JPEG 국제 표준/ITU-T 권고 T.81이다. 드래프트 JPEG 표준은 페니베커 및 미첼(Pennebaker and Mitchell의," JPEG: 정지영상 데이터 압축 표준(still image data compression standard)"(뉴욕, 밴 노스트랜드 레인홀드, 1993)에 복제되어 있으며, 본 명세서에서 참조된다. 상기 JPEG 표준에 정의된 압축방법뿐만 아니라, 기타 알려진 데이터 압축 표준들은 이산 코사인 변환(DCT) 코딩이다. DCT 코딩을 이용하여 압축된 이미지들은 역 DCT(IDCT)라 알려진 역변환을 이용하여 압축해제된다. DCT에 대한 일반 참고는 레오 및 입(Rao and Yip)에 의한 "Discrete Cosine Transform"(뉴욕, 아카데믹 출판사, 1990)이며, 본 명세서에서 참조된다. 본 기술 분야의 당업자들은 상기 참조된 책들의 내용에 친근할 것으로 추정된다.One such technique is ISO 10918-1 JPEG International Standard / ITU-T Recommendation T.81. The draft JPEG standard is duplicated in Pennebaker and Mitchell ("JP: still image data compression standard" (New York, Van Northland Reinhold, 1993) and is referred to herein. In addition to the compression methods defined in the JPEG standard, other known data compression standards are Discrete Cosine Transform (DCT) coding, and images compressed using DCT coding are decompressed using an inverse transform known as inverse DCT (IDCT). A general reference to DCT is the "Discrete Cosine Transform" by Rao and Yip (New York, Academic Publishers, 1990), and is referred to herein. It is supposed to be familiar with the contents.

정지 영상이 컴퓨터 사용자 및 다른 이들을 위한 저장 문제를 나타낸다면,완전 동영상 비디오는 디스플레이되는 동영상 그림의 1초마다 최대 60개의 영상을 필요로 하기 때문에, 동영상 저장 문제가 훨씬 심각하다는 것은 명백하다. 따라서, 동영상 압축 기법은 또다른 개발 및 표준 활동의 주제가 되어 왔다. 2개의 중요한 표준이 ISO 11172 MPEG 국제 표준 및 ITU-T 권고 H.261이다. 이들 표준 모두 부분적으로는 DCT코딩 및 IDCT 코딩에 의존한다.If still images represent a storage problem for computer users and others, it is clear that the video storage problem is much more serious because a full video video requires up to 60 images per second of the displayed video picture. Thus, video compression techniques have been the subject of further development and standard activities. Two important standards are the ISO 11172 MPEG International Standard and the ITU-T Recommendation H.261. Both of these standards rely in part on DCT coding and IDCT coding.

2차원 이산 코사인 변환은 NN2숫자 배열를 또다른 숫자 배열 NN2로 변환하는 한쌍의 수식이다. 첫 번째 배열는 일반적으로 디지털 이미지를 형성하는 공간결정요소값(spatially determined component values)의 사각형 N×N 배열를 나타낸다. 각각의 화소가 그의 여러개 요소들과 연관되어 있기 때문에, 이하에서는 단순함을 위해 하나의 요소 픽셀이 고려된다. 그러나, 다수의 요소 픽셀로 확장하는 것도 본 기술 분야의 숙련자들에게는 자명하다. 제2 배열는 주파수 도메인에서 화상을 표현한 이산 코사인 변환 계수들의 배열다. 이미지를 주파수 요소의 계수들로 표현하는 방법은 이산 푸리에(Fourier) 변환의 특별한 경우이다. 이산 푸리에 변환은 임의의 주기적인 파형이 상이한 주파수 및 진폭의 사인 및 코사인 파형의 합으로서 표현될 수 있는 전통적인 수학적 푸리에 변환의 이산 버전이다. 따라서, 푸리에 변환과 같은, 이산 코사인 변환은 시간 도메인의 신호를 주파수 도메인의 신호로 또는 그반대로 변환하는 변환이다. 모든 DCT 곱셈은 실제이다. 이는 이산 푸리에 변환에 비교하여, 요구되는 곱셈의 개수를 낮춘다. 대부분의 이미지 경우에, 신호 에너지의 대부분은 낮은 주파수에 있고, 이는 DCT의 왼쪽 상위부분에 나타난다. 오른쪽 하위 부분은 보다 높은 주파수를 나타내고, 이는 시각적 왜곡을 일으키지 않을 정도로 충분히 작아서 무시될 수 있다.Two-dimensional discrete cosine transform is a pair of the formula to convert N 1 × N 2 number Arrays Another array of numbers N 1 × N 2. The first array typically represents a rectangular N × N array of spatially determined component values that form the digital image. Since each pixel is associated with several of its elements, one element pixel is considered below for simplicity. However, it is obvious to those skilled in the art to expand to multiple element pixels. The second arrangement is an arrangement of discrete cosine transform coefficients representing the picture in the frequency domain. The method of representing an image with the coefficients of the frequency component is a special case of the discrete Fourier transform. Discrete Fourier Transform is a discrete version of the traditional mathematical Fourier transform in which any periodic waveform can be represented as the sum of sine and cosine waveforms of different frequencies and amplitudes. Thus, a discrete cosine transform, such as a Fourier transform, is a transform that transforms a signal in the time domain into a signal in the frequency domain or vice versa. All DCT multiplications are real. This lowers the number of multiplications required compared to the Discrete Fourier Transform. In most imaging cases, most of the signal energy is at low frequencies, which appears in the upper left part of the DCT. The lower right part shows a higher frequency, which is small enough to not cause visual distortion and can be ignored.

두개의 기본적인 이산 코사인 변환 수식이 있다. 첫 번째 기본 수식은 픽셀 값을 이산 코사인 변환 계수로 변환하는 포워드(forward) 이산 코사인 변환이다. 두 번째 기본 수식은 이산 코사인 변환 계수를 다시 픽셀값으로 변환하는 역 이산 코사인 변환이다. 이미지용 이산 코사인 변환의 어플리케이션 대부분은 8 ×8배열을 이용하고, 따라서, N 값은 8이 된다. 변환을 수행할 때 N값이 8이라고 가정하고, f(i,j)가 픽셀 배열 값들이고, F(u,v)가 이산 코사인 변환 계수들의 값이라고 하면, 2차원 이산 코사인 변환 공식은 다음과 같다.There are two basic discrete cosine transform equations. The first basic equation is a forward discrete cosine transform that transforms pixel values into discrete cosine transform coefficients. The second basic equation is the inverse discrete cosine transform that transforms the discrete cosine transform coefficients back to pixel values. Most applications of discrete cosine transform for images use an 8x8 array, so the N value is eight. Assuming that N is 8 when performing the transformation, f (i, j) is the pixel array values, and F (u, v) is the value of the discrete cosine transform coefficients, the two-dimensional discrete cosine transform formula is same.

여기서, x, y는 공간 도메인(0,1,2,...7)에서의 공간 좌표이고, u,v는 변환 도메인(0,1,2...7)에서의 좌표이고, u=0인 경우에 Cu=1/이고 그렇지 않으면 1, v=0인 경우에 Cv=1/이고 그렇지 않으면 1이다. 2차원 DCT의 분리가능한 특성은 8개의 열에 대해 1차원 DCT를 수행하고나서 그 결과의 8개 행에 1차원 DCT를 수행함으로써 발전된다. 8개-점 1차원 DCT를 계산하는데 여러개의 고속 알고리즘이 이용가능하다.Where x and y are spatial coordinates in the spatial domain (0,1,2 ... 7), u, v are coordinates in the transform domain (0,1,2 ... 7) and u = C u = 1 / if 0 Otherwise 1, v = 0 if C v = 1 / And 1 otherwise. The separable nature of the two-dimensional DCT is developed by performing a one-dimensional DCT on eight columns and then performing a one-dimensional DCT on the eight rows of the result. Several high-speed algorithms are available for calculating an eight-point one-dimensional DCT.

전술한 바와 같이, 압축기의 DCT 부분은 2개의 주요 부분으로 이루어진다.As mentioned above, the DCT part of the compressor consists of two main parts.

제01 부분은 DCT 변환을 이용하여 강한 상관(highly correlated) 이미지 데이터를 약한 상관 계수로 변환하는 것이고, 제2 부분은 계수들에 대한 양자화를 수행하여 전송 또는 저장을 위한 비트율을 감소시키는 것이다. 그러나, DCT를 수행하는 데 있어서 막대한 계산이 요구된다. 예를 들어, 8개 픽셀 길이의 1차원 DCT를 처리하기 위해 현재 공지된 고속 알고리즘에 따르면 13번의 곱셈과 29번의 덧셈이 필요하다. "A FAST DCT-SQ schema for images"( Trans. IEICE, Vol.E-71,No.11, pp 1095-1097, nov. 1988) 논문에서, Y.Arai, T. Agui 및 M. Nakajima는 다수의 DCT 곱셈이 DCT 계수에 대한 스케일링 승수(scaling multipliers)로서 공식화될 수 있다고 제안하였다. 승수들이 인수화된 후의(factored out) DCT를 스케일링된 DCT라 부른다. 스케일링된 DCT는 직교이나(orthogonal) 더 이상 정규화되지는(normalized) 않는 반면에, 스케일링된 인자들은 이후의 양자화 프로세스에서 복원될 수 있다. Arai 등은 그들의 논문에서 8-점 스케일링된 DCT를 처리하는데 단지 5개의 곱셈과 29개의 덧셈이 요구됨을 증명하였다. 전술한 바와 같이, 이미지는 8 ×8 픽셀, 16 ×16 픽셀 또는 32 ×32 픽셀의 사각형 블럭으로 나뉘어진다. 각각의 블록은, 종종, 행-대-행 다음에 열-대-열 방식의 1차원 DCT에 의해 처리된다. 반면에, 압축해제된 데이터상에 상이한 유형의 입력 및 상이한 품질 요구사항으로 인해 상이한 블록 크기가 압축을 위해 선택된다.The first part is to transform the highly correlated image data into weak correlation coefficients using DCT transform, and the second part is to perform quantization on the coefficients to reduce the bit rate for transmission or storage. However, enormous calculations are required in performing DCT. For example, in order to process an eight-dimensional one-dimensional DCT, currently known fast algorithms require 13 multiplications and 29 additions. In the paper "A FAST DCT-SQ schema for images" (Trans. IEICE, Vol. E-71, No. 11, pp 1095-1097, nov. 1988), Y.Arai, T. Agui and M. Nakajima have many We proposed that the DCT multiplication of can be formulated as a scaling multipliers for the DCT coefficients. The DCT after the multipliers are factored out is called the scaled DCT. The scaled DCT is orthogonal or no longer normalized, while the scaled factors can be recovered in a subsequent quantization process. Arai et al. Have demonstrated in their paper that only five multiplications and 29 additions are required to process an 8-point scaled DCT. As mentioned above, the image is divided into rectangular blocks of 8x8 pixels, 16x16 pixels or 32x32 pixels. Each block is often processed by a one-dimensional DCT in a row-to-column, followed by a row-to-column. On the other hand, different block sizes are selected for compression due to different types of input and different quality requirements on the decompressed data.

스케일링된 항들은 최수 개수의 덧셈/뺄셈을 갖는 이산 코사인 변환(DCT)에서 코사인 항과 같은 배수 상수를 대체하는데 이용된다. 그러나, 스케일링된 항들은 단지 변환식에서 상수를 어림한 것이다. 따라서, 연산의 수를 줄이기 위해서는 고정된 비트 개수에 한정되는 정밀도를 유지하기 위해 약간의 오류가 허용가능한다. 결과의 숫자들이 최대 허용가능한 오류보다 결정 경계치(예, 임계값 또는 양자화 경계)로부터 떨어져 있다면, 그 결과는 추정치에 의해 영향을 받지 않을 것이다. 그러나, 증분 계산중에, 추가적인 정밀도를 요구하기 위해 결과의 숫자들이 판단될 수 있다. 원래 입력 값들은 더 이상 레지스터에 가용치 않으며, 메모리로부터 원래 입력 값들을 다시 페치함으로써 캐시 미스 및 메모리 지연에 관련된 사이클이 부과될 수 있다. 주먹구구식 옵션은 값들에 대해 역변환(예, IDCT)를 수행하고 나서 보다 높은 정밀도를 갖는 포워드 변환(예, FDCT, 간혹 그냥 DCT라 표기됨)을 다시 수행하는 것이다. 이러한 주먹구구식 접근방법은 연산이 낭비된다는 것이다.Scaled terms are used to replace multiple constants, such as cosine terms, in a discrete cosine transform (DCT) with the most number of additions / subtractions. However, the scaled terms are only approximations of the constants in the equation. Thus, to reduce the number of operations, some errors are acceptable to maintain precision limited to a fixed number of bits. If the numbers in the result are farther from the decision boundary (eg threshold or quantization boundary) than the maximum allowable error, the result will not be affected by the estimate. However, during incremental calculations, the numbers of the result can be determined to require additional precision. The original input values are no longer available in registers, and cycles related to cache misses and memory delays can be imposed by refetching the original input values from memory. The old-fashioned option is to perform an inverse transform on the values (e.g. IDCT) and then perform a higher precision forward transform (e.g. FDCT, sometimes just DCT). This tricky approach is a waste of computation.

그러나, 일반적으로 연구는 소망하는 정도의 압축을 제공하기 위해 DCT 코딩을 이용한 전술한 기법과 같은 특정 기법에 일반적으로 초점이 맞추어져 있다. 그러나, 특정 상황에서는 특정의 장점을 제공하는 다른 변환도 이용될 수 있다. 예를 들어, 전술한 DCT 압축 코딩 방법에서, 입력된 이미지는 다수의 균일 블록들로 나뉘어지고 2차원 이산 코사인 변환 함수가 각 블록에 적용되어 데이터 샘플을 일단의 변환 계수로 변환시켜서 공간 중복성을 제거한다. 그러나, 높은 압축율은 달성할 수 있지만, 희미하거나 명백한 차단 효과가 발생할 수 있다. 또한, 압축 시스템에 의해 이용되는 벡터 양자화 방법은 높은 압축률로 인해 유리할 수 있다. 반면에, 서브-밴드 방법은 높은 데이터 압축율에서 발생하는 차단 효과를 줄일 수 있다. 이산 웨이브렛 변환(discrete wavelet transform: DWT) 또는 서브-밴드 코딩(Sub-Band Coding:SBC) 방법은, 예를 들어, 시간 및 주파수 요소에 근거하여 신호를 인코딩한다. 이와 같이, 이러한 변환 방법들은 비-정지 신호들을 분석하는데 유용할 수 있으며, 이미지 분석을 위해 인간시각시스템(human visual system: HVS)의 특성을 고려하도록 설계될 수 있다는 장점을 갖는다.In general, however, research has generally focused on specific techniques, such as those described above using DCT coding to provide the desired degree of compression. However, in certain circumstances other transforms may be used that provide certain advantages. For example, in the DCT compression coding method described above, the input image is divided into a number of uniform blocks and a two-dimensional discrete cosine transform function is applied to each block to transform the data sample into a set of transform coefficients to remove spatial redundancy. do. However, high compressibility can be achieved, but a faint or obvious blocking effect can occur. In addition, the vector quantization method used by the compression system may be advantageous due to the high compression rate. On the other hand, the sub-band method can reduce the blocking effect that occurs at high data compression rates. Discrete wavelet transform (DWT) or sub-band coding (SBC) methods encode, for example, signals based on time and frequency components. As such, these conversion methods can be useful for analyzing non-stop signals and have the advantage that they can be designed to take into account the characteristics of the human visual system (HVS) for image analysis.

프로세스 사이클을 절약하기 위해 초기 중지 및 정밀도 개선을 이용함으로써 소프트웨어 실행 시간을 줄이고 하드웨어 요구사항을 줄일 수 있는 고속의 변환 계산을 제공하는 방법 및 장치를 제공할 필요가 있다.There is a need to provide a method and apparatus for providing fast conversion calculations that can reduce software execution time and reduce hardware requirements by using early stop and precision improvements to save process cycles.

본 발명은 일반적으로 데이터 처리에 관한 것으로, 보다 구체적으로는 다수의 스케일링 항(multiple scaled terms), 초기 중지(early aborts) 및 정밀도 세분(precision refinement)을 이용하는 고속 변환에 관한 것이다.FIELD OF THE INVENTION The present invention relates generally to data processing, and more particularly to fast transformations utilizing multiple scaled terms, early aborts, and precision refinements.

도 1은 전형적인 이미지 압축 시스템을 도시한다.1 illustrates a typical image compression system.

도 2는 JPEG 인코더의 블록도를 도시한다.2 shows a block diagram of a JPEG encoder.

도 3은 본발명의 흐름도를 도시한다.3 shows a flowchart of the present invention.

도 4는 제1 기준 C1, 또는 제2 기준 C2의 동시 표현을 찾기 위한 방법의 흐름도를 도시한다.4 shows a flowchart of a method for finding a simultaneous representation of a first reference C1, or a second reference C2.

도 5는 고속의 변환계산 및 감소된 실행시간을 제공하기 위해 수정처치(corrective action)을 이용하여 고속의 변환을 제공하기 위한 흐름도를 도시한다.FIG. 5 shows a flow chart for providing high speed conversion using corrective action to provide fast conversion calculation and reduced execution time.

도 6은 변환 계수 계산 프로세스의 계속적인 반복을 중지하는 것을 증명하는 본 발명에 따른 중지 방법의 흐름도를 도시한다.6 shows a flow diagram of a stopping method according to the present invention which demonstrates stopping the continuous iteration of the transform coefficient calculation process.

도 7은 적어도 하나의 증분 계산된 수를 테스트하는 것을 도시한다.7 illustrates testing at least one incrementally calculated number.

도 8은 본발명에 따른 세분(refinement) 방법의 흐름도이다.8 is a flowchart of a refinement method according to the present invention.

도 9는 세분행렬을 생성하는 제1 방법의 흐름도를 도시한다.9 shows a flowchart of a first method of generating a submatrix.

도 10은dD0가 비-가역일때 세분행렬을 생성하기 위한 제2 방법을 도시한 흐름도이다.FIG. 10 is a flow diagram illustrating a second method for generating a submatrix when d D 0 is non-reversible.

도 11은 본 발명에 따른 프린터를 도시한다.11 shows a printer according to the invention.

도 12는 본 발명에 따른 데이터 분석 시스템을 도시한다.12 illustrates a data analysis system in accordance with the present invention.

도 13은 본 발명에 따른 또다른 데이터 분석 시스템을 도시한다.13 illustrates another data analysis system in accordance with the present invention.

전술한 종래기술의 제한점들을 극복하기 위해, 그리고 본 명세서를 읽고 이해함에 따라 명백해지는 기타 제한점들을 극복하기 위해, 본 발명은 다수의 스케일링 항, 초기 중지 및 정밀도 세분을 이용하는 고속 변환을 개시한다.In order to overcome the aforementioned limitations of the prior art, and to overcome other limitations that become apparent upon reading and understanding the present specification, the present invention discloses a fast transform that uses multiple scaling terms, initial stops, and precision subdivisions.

본 발명은 이산 변환식을 변환 상수들에 대한 스케일링 항을 이용하여 독립적으로 계산될 수 있는 부변환식으로 나눔으로써 전술한 문제점들을 해결한다. 또한, 이진 연산용 스케일링 항들의 최적의 표현을 찾는다. 최종 계산은 고속의 계산을 가능케 하며, 소프트웨어의 실행시간을 줄이고 하드웨어 요구사항을 감소시킨다. 더욱이, 본 기술분야의 당업자들은 동일한 방법을 이용하여 역변환도 종종 구현할 수 있으므로, 일반적으로, 동일한 개수의 연산이 사용됨을 인식할 것이다. 또한, 본 발명은 변환상수들에 대한 스케일링 항들을 이용하여 곱셈 개수를 줄임으로써 전술한 문제점들을 해결한다. 스케일링 이후에, 상수들은 단지 몇 개의 덧셈 이후에 2-거듭제곱 합으로 근사치되기 때문에 상수항들은 일련의 적은 선형 쉬프트 및 덧셈으로 대체된다. 본 기술분야의 당업자들은 본 명세서를 통해 용어 "행렬"은 그의 전통적인 수학적 의미뿐만 아니라 분석시에 수학적 행렬로서 균등하게 나타내어질 수 있는 모든 하드웨어 및 소프트웨어 시스템들을 포함하기 위해 쓰였음을 이해할 것이다. 또한, 본 발명은 변환상수들의 증분계산의 계산 테스트에 따라 수정처치(corrective action)를 언제 수행할지를 감지하여 수정 처치를 행하고, 부가적인 정밀도를 얻기 위해 증분계산을 세분하고(refining) 및/또는 결과 수가 너무 작아지면 증분 계산을 중지함으로써 전술한 문제점들을 해결한다.The present invention solves the above-mentioned problems by dividing the discrete transform equation into a sub-conversion that can be calculated independently using the scaling term for the conversion constants. It also finds an optimal representation of the scaling terms for binary operations. The final calculation enables high speed calculations, reducing software execution time and reducing hardware requirements. Moreover, one skilled in the art will recognize that inverse transformations can often be implemented using the same method, and therefore, in general, the same number of operations are used. In addition, the present invention solves the aforementioned problems by reducing the number of multiplications by using scaling terms for the conversion constants. After scaling, the constant terms are replaced by a series of small linear shifts and additions because the constants are approximated as a 2-squared sum after only a few additions. Those skilled in the art will appreciate throughout this specification that the term "matrix" is used to encompass not only its traditional mathematical meaning, but also all hardware and software systems that can be represented equally as mathematical matrices in analysis. In addition, the present invention detects when to perform a corrective action according to the calculation test of the incremental calculation of the conversion constants, performs corrective actions, and refines the incremental calculation and / or results to obtain additional precision. If the number is too small, the above-mentioned problems are solved by stopping the incremental calculation.

본 발명의 원칙에 따른 방법은 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합(collection)으로 준비하는(arrange) 단계와, 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항(scaling term)을 이용하여 독립적으로 스케일링하는 단계를 포함한다. 상기 방법은 또한 각각의 스케일링된 이산 코사인 변환 상수들을 2-거듭제곱합에 의해 근사치된 이산 코사인 변환 상수들의 추정값으로 나타내는 단계를 포함한다.The method according to the principles of the present invention comprises arranging transform equations into at least one collection having at least two conversion constants, and substantially uniform between at least two conversion constants in the at least one set. Independently scaling the at least two transform constants of each set using a scaling term to maintain a ratio. The method also includes representing each scaled discrete cosine transform constants as an estimate of discrete cosine transform constants approximated by a 2-squares sum.

본 발명의 원칙에 따른 방법의 다른 실시예는 대안적인 또는 선택적인 부가적 특징을 갖는다. 본발명의 한 특징은 방법이 데이터를 적어도 하나의 블록으로 나누고 상기 블록을 스케일링된 변환식들을 이용하여 변환 데이터로 변환하는 단계를 포함하는 것이다.Other embodiments of the method according to the principles of the present invention have alternative or optional additional features. One feature of the present invention is that the method includes dividing the data into at least one block and converting the block into transform data using scaled transform equations.

본 발명의 또다른 특징은 상기 스케일링된 이산 코사인 변화 상수들의 추정치를 이용하는 이진 산술연산에 기초하여 이산 코사인 변환수식들에 대한 행렬 곱셈을 수행함으로써 상기 블록을 변환데이터로 변환하는 것이다.Another feature of the present invention is to transform the block into transform data by performing matrix multiplication on the discrete cosine transform equations based on binary arithmetic operations using estimates of the scaled discrete cosine change constants.

본 발명의 또다른 특징은 스케일링된 항이 선정된 비용함수에 따라 선택된다는 데 있다.Another feature of the present invention is that the scaled term is selected according to a predetermined cost function.

본 발명의 또다른 특징은 선정된 비용함수의 임의의 변환계수에 대한 가장 큰 오류가 그 각각의 선정된 오류비율보다 크지 않도록 스케일링항을 선택하는 것을 포함한다.Another feature of the present invention includes selecting a scaling term such that the largest error for any transform coefficient of the selected cost function is not greater than its respective predetermined error rate.

본 발명의 또다른 특징은 선정된 비용함수가 선정된 변환 상수들이 선정된 오류비율보다 작거나 같은 오류를 갖도록 스케일링 항을 선택하는 것을 포함한다.Another feature of the invention includes selecting a scaling term such that the predetermined cost function has an error that is less than or equal to the predetermined error rate.

본 발명의 또다른 특징은 선정된 비용함수가 각각의 관련된 선정 변환 상수들이 그 각각의 선정된 오류비율보다 작거나 같도록 스케일링항을 선택하는 것을 포함하는데 있다.Another feature of the present invention includes selecting a scaling term such that the predetermined cost function is such that each of the associated selected conversion constants is less than or equal to their respective predetermined error rate.

본 발명의 또다른 특징은 선정된 비용함수가 집합의 모든 변환 상수들이 선정된 특성을 갖는 연립이진표현을 구비하도록 변환 상수들에 대한 스케일링항 및 표현을 선택하는데 있다.It is another feature of the present invention to select a scaling term and expression for the conversion constants such that the predetermined cost function has a system of binary representations with all of the conversion constants in the set having a predetermined characteristic.

본 발명의 또다른 특징은 비용함수가 덧셈 연산의 개수를 최소화시키는것이다.Another feature of the invention is that the cost function minimizes the number of add operations.

본 발명의 또다른 특징은 비용함수가 덧셈 연산의 최악의 경우를 최소화시키는 것이다.Another feature of the invention is that the cost function minimizes the worst case of the addition operation.

본 발명의 또다른 특징은 선정된 특성은 최소 개수의 공통 2-거듭제곱항을 포함하는 것이다.Another feature of the invention is that the selected characteristic comprises a minimum number of common two-squared terms.

본 발명의 또다른 특징은 집합에 대한 모든 변환상수들이 최소개수의 공통 2-거듭제곱항을 갖는 연립이진표현을 갖도록 변환상수들에 대한 스케일링항 및 표현을 선택하는 것은 이진산술 쉬프트가 곱셈 연산보다 더 효율적일때 구현되는 것이다.It is another feature of the present invention to select the scaling term and expression for the transform constants such that all of the transform constants for the set have a simultaneous binary expression with a minimum number of common two-squared terms, so that the binary arithmetic shift is more than the multiplication operation. It is implemented when it is efficient.

본 발명의 또다른 특징은 선정된 특성은 최대 집단화된 0이 아닌 2-거듭제곱항을 포함하는 것이다.Another feature of the present invention is that the selected characteristic includes a non-zero two-squared term that is maximally grouped.

본 발명의 또다른 특징은 집합에 대한 모든 변환상수들이 최대 집단화된 0이 아닌 2-거듭제곱항을 갖는 연립이진표현을 갖도록 변환상수들에 대한 스케일링항을 선택하는 것은 작은 정수들을 이용하는 곱셈 연산이 더 큰 숫자를 이용하는 곱셈보다 더 바람직할 때 구현되는 것이다.Another feature of the present invention is that selecting a scaling term for the transformation constants such that all of the transformation constants for the set have a system of binary expressions with a non-zero power of two, which is the largest grouping, is more efficient with multiplication using small integers. This is implemented when it is more desirable than multiplication using large numbers.

본 발명의 또다른 특징은 상수들 나타내는 2-거듭제곱 다항식내의 계수가 0이 아닌지가 추적되는 것이다.Another feature of the invention is that the coefficients in the two-squared polynomial representing the constants are not zero.

본 발명의 또다른 특징은 비트위치값이 2-거듭제곱항을 결정하는 것이다.Another feature of the present invention is that the bit position value determines a two-squared term.

본 발명의 또다른 특징은 0이 아닌 2-거듭제곱항 집단을 최대화시키는 단계는, a) 제1 변수를 상기 블록내의 i번째 요소로 설정하는 단계와, b) 제2 변수를 값 2로 초기화하는 단계와, c) 비트마스크를 이진 3으로 초기화하는 단계와, d) 상기 제1 변수에 의해 표시된 i번째 요소가 2n+ 2n-1= 2n+1- 2n-1를 이용하여 항을 재정렬하기 위한 후보 표현인지를 판단하기 위해 상기 비트들을 분석하는 단계와, e) 2n+ 2n-1= 2n+1- 2n-1에 의해 주어진 효율적인 2의 거듭제곱 변경을 수행하기 위해상기 제2 변수를 상기 제1 변수에 가산함으로써 상기 i번째 요소를 인코딩하는 단계와, f)새로운 표현을 획득하고 상기 제1 변수를 i+1번째 요소로 증가시키는(incrementing) 단계와, g)상기 비트마스크 및 제2 변수를 왼쪽으로 한 비트 쉬프트시키는 단계와, h)단계 d 내지 g 단계를 반복하는 단계에 의해 스케일링된 상수들의 모든 표현을 찾는 단계를 포함한다는데 있다.Another feature of the invention is that maximizing a nonzero zero-squared population comprises: a) setting the first variable to the i th element in the block, and b) initializing the second variable to the value 2. C) initializing the bitmask to binary 3, and d) the i th element represented by the first variable is equal to 2 n + 2 n-1 = 2 n + 1-2 n-1 . Analyzing the bits to determine if they are candidate representations for reordering them, and e) performing an efficient power of 2 given by 2 n + 2 n-1 = 2 n + 1-2 n-1 Encoding the i th element by adding the second variable to the first variable, f) obtaining a new representation and incrementing the first variable to the i + 1 th element, g ) Bit shifting the bit mask and the second variable to the left, and h) step d to g. And finding all the representations of the constants scaled by the copying step.

본 발명의 또다른 특징은 상기 마스크 비트들에 매칭되는 상기 제1 변수가 설정되었는지를 검사한 이후에 상기 마스크 비트들을 왼쪽으로 쉬프트하는 단계를 더 포함하여, 이에 의해 오른쪽에 0을 삽입하여 2n+ 2n-1= 2n+1- 2n-1의 재정렬에 이용되는 2의 거듭제곱을 증가시킨다는데 있다.Another feature of the invention further includes the step of shifting the mask bits to the left after checking whether the first variable matching the mask bits is set, thereby inserting 0 to the right to insert 2 n. + 2 n-1 = 2 n + 1-2 Increase the power of 2 used to reorder n-1 .

본 발명의 또다른 특징은 집합이 부분계산의 변환식들의 디스조인트(disjoint) 집합을 나타낸다는 데 있다.Another feature of the invention is that the set represents a disjoint set of transforms of partial calculation.

본 발명의 또다른 특징은 집합이 부분계산의 변환식들의 디스조인트 집합을 나타내지 않는다는 데 있다.Another feature of the present invention is that the set does not represent a disjoint set of transforms of partial calculation.

본 발명의 또다른 특징은 상기 방법이 적어도 하나의 집합 각각의 변환산수들에 대한 독립적인 스케일링 항을 선택하는 단계를 더 포함하는 것이다.Another feature of the invention is that the method further comprises selecting an independent scaling term for each of the transform arithmetic units of the at least one set.

본 발명의 원리에 따른 방법은, 변환중에 변환계수들의 증분계산으로부터 산출된 적어도 하나의 숫자를 테스트하는 단계와, 상기 테스트 결과에 따라 수정처치를 수행할지를 판단하는 단계와, 수정처치가 필요한 것으로 판단된 때에 수정처치를 수행하는 단계를 포함하는 것을 특징으로 한다.The method according to the principles of the present invention comprises the steps of: testing at least one number calculated from the incremental calculation of the conversion coefficients during the conversion, determining whether to perform a correction according to the test result, and determining that the correction is necessary And performing a corrective action at the time.

본 발명의 원리에 따른 방법의 다른 실시예는 대안적이거나 선택적인 부가적 특징을 포함한다. 본발명의 하나의 특징은 상기 판단 단계가 변환계수의 증분계산이 허용될수 없는 정밀도를 갖는 변환계슈를 산출할지 여부를 검출하는 단계를 포함하고, 상기 수정처치의 수행 단계가 적어도 하나의 숫자를 세분하는 단계를 포함하는 것이다.Other embodiments of the method according to the principles of the present invention include alternative or optional additional features. One feature of the present invention includes the step of detecting whether the determining step yields a conversion statement with an accuracy that the incremental calculation of the conversion factor cannot tolerate, and wherein the performing of the corrective action subdivides at least one number. It is to include a step.

본 발명의 또다른 특징은 변환은 변환행렬을 포함하고 세분은 변환상수의 증분계산의 정밀도를 증가시키기 위한 세분행렬을 적용하는 단계를 포함하는 것이다.Another feature of the present invention is that the transformation includes a transformation matrix and the subdivision includes applying a segmentation matrix to increase the precision of the incremental calculation of the transformation constant.

본 발명의 또다른 특징은 세분행렬이 I+dDm+1Dm -1를 포함하는 것이다.Another feature of the invention is that the submatrix comprises I + d D m + 1 D m −1 .

본 발명의 또다른 특징은 상기 방법이 어림계산된 변환 상수들에 근거하여 적어도 하나의 세분행렬을 생성하는 단계를 더 포함한다는 것이다.Another feature of the invention is that the method further comprises generating at least one submatrix based on the estimated conversion constants.

본 발명의 또다른 특징은 적어도 하나의 세분행렬을 생성하는 단계가 오프라인에서 또는 초기화시에 수행되는 것이다.Another feature of the invention is that the step of generating at least one submatrix is performed offline or at initialization.

본 발명의 또다른 특징은 세분행렬을 생성하는 단계는 근사변환이 가역(invertible)임을 인식하는 단계와, I+dDm+1Dm -1에 의해 주어진 세분행렬을 생성하는 단계와, 효율적 계산을 위해 상기 변환을 구조화하는 단계를 포함하는 것이다.Another feature of the invention is that generating the submatrices includes recognizing that the approximation is invertible, generating the submatrices given by I + d D m + 1 D m −1 , and efficiently calculating Structuring the transformation for

본 발명의 또다른 특징은 세분행렬을 생성하는 단계는 상기 변환을 생성하기 위한 변환행렬의 n번째 열의 복구가 불가능함을 인식하는 단계와, 상기 변환행렬의일부에 대한 의사 역행렬(pseudo inverse)을 계산하는 단계와, 상기 변환행렬의 의사 역행렬을 이용하여 상기 적어도 하나의 세분행렬에 대한 근사치를 생성하는 단계를 포함하는 것이다.In another aspect of the present invention, generating a sub-matrix includes recognizing that it is impossible to recover the nth column of a transform matrix to generate the transform, and generating a pseudo inverse of a part of the transform matrix. And calculating an approximation of the at least one submatrice using the pseudo inverse of the transform matrix.

본 발명의 또다른 특징은 세분행렬의 근사치는 I+dD1 를 포함하는 것이다.Another feature of the present invention is that the approximation of the submatrices is I + d D 1 It will include.

본 발명의 또다른 특징은 수정처치를 수행할지를 판단하는 단계는 상기 증분계산을 종료하는 것에 의해 발생하는 오류가 허용가능한지를 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 것이다.Another feature of the invention is the step of determining whether to perform corrective action further comprises the step of determining whether an error caused by terminating the incremental calculation is tolerable and the step of performing the corrective action comprises Stopping the incremental calculation.

본 발명의 또다른 특징은 증분계산은 상기 증분계산이 선정된 범위내로 예상되는 숫자를 산출할 것이라는 판단이 이루어질 때에 종료되는 것이다.Another feature of the present invention is that the incremental calculation ends when it is determined that the incremental calculation will yield a number expected within the selected range.

본 발명의 또다른 특징은 상기 선정된 범위내로 예상되는 숫자는 정밀도 요구사항을 만족시키는 변환계수를 포함하는 것이다.Another feature of the invention is that the number expected within the selected range includes a conversion factor that satisfies the precision requirements.

본 발명의 또다른 특징은 상기 증분계산은 상기 변환계수의 세분이 결과를 변화시키지 않는 것으로 판단될 때에 종료되는 것이다.Another feature of the invention is that the incremental calculation ends when it is determined that the subdivision of the conversion coefficient does not change the result.

본 발명의 또다른 특징은 상기 증분계산의 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 또다른 변환계수의 중간계산치에 비교하여 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 것이다.Another feature of the invention is that after examining the relative magnitude of the result of the incremental calculation, the subdivision of the conversion coefficient changes the result when the intermediate value of at least one conversion coefficient is small compared to the intermediate value of another conversion coefficient. It is judged not to be.

본 발명의 또다른 특징은 적어도 하나의 증분계산의 결과의 크기를 검사한 후에 상기 변환계수의 적어도 하나의 중간계산치가 선정된 임계치보다 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 것이다.Another feature of the invention is that after examining the magnitude of the result of at least one incremental calculation, it is determined that the subdivision of the conversion coefficient does not change the result when at least one intermediate value of the conversion coefficient is less than a predetermined threshold. Will be.

본 발명의 또다른 특징은 상기 판단 단계는 변환계수가 선정된 범위의 0내에 있을 것임을 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 것이다.Another feature of the invention is characterized in that the determining step further comprises the step of determining that the conversion coefficient will be within zero of the predetermined range and the step of performing the corrective action comprises stopping the incremental calculation of the conversion coefficient. will be.

본 발명의 또다른 실시예에 따르면, 데이터 압축 시스템이 제공된다. 데이터 압축 시스템은, 변환식들을 이용하여 데이터를 변환계수들로 상관해제하기 위해 선형 변형을 적용시키기 위한 변환기 - 변환식들은, 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하는 단계와, 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 단계에 의해 형성되며, 스케일링항은 선정된 비용함수에 따라 선택됨 -와, 변환 계수들을 나타내는데 필요한 비트수를 줄임으로써 변환 데이터를 양자 데이터로 양자화하기 위한 양자화기를 포함한다.According to another embodiment of the present invention, a data compression system is provided. The data compression system includes a transformer-transformations for applying a linear transformation to correlate data into transform coefficients using transform equations, preparing the transform equations into at least one set having at least two transform constants; Scaling the at least two conversion constants of each set independently using a scaling term to maintain a substantially uniform ratio between the at least two conversion constants in the at least one set, wherein the scaling term is selected And a quantizer for quantizing the transform data into quantum data by reducing the number of bits needed to represent the transform coefficients.

본 발명의 또다른 실시예에 의하면, 프린터가 제공된다. 프린터는, 이미지 데이터를 저장하기 위한 메모리와, 압축된 프린트 스트림 출력을 제공하기 위해 이미지 데이터를 처리하기 위한 프로세서와, 이미지 데이터의 프린트아우을 생성하기 위해 프린트헤드를 제어하기 위한 프린트헤드 구동 회로를 포함하고, 프로세서는 변환식을 이용하여 데이터를 변환계수들로 상관해제하기 위해 선형 변환을 적용시키며, 변환식들은, 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하는 단계와, 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 단계에 의해 형성되며, 스케일링항은 선정된 비용함수에 따라 선택된다.According to another embodiment of the present invention, a printer is provided. The printer includes a memory for storing the image data, a processor for processing the image data to provide a compressed print stream output, and a printhead drive circuit for controlling the printhead to generate printouts of the image data. And the processor applies a linear transform to correlate the data into transform coefficients using the transform equations, the transform equations comprising: preparing the transform equations into at least one set having at least two transform constants; Scaling the at least two transformation constants of each set independently using a scaling term to maintain a substantially uniform ratio between the at least two transformation constants in the set, wherein the scaling term is a predetermined cost function Is selected according to.

본 발명의 또다른 실시예에 의하면, 제조물(article of manufacture)이 제공된다. 제조물은 컴퓨터에 의해 판독가능한 프로그램 저장매체를 포함하고, 상기 매체는 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하는 단계와 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 단계를 포함하고 스케일링항은 선정된 비용함수에 따라 선택되는 방법을 수행하기 위해 컴퓨터에 의해 실행될 수 있는 하나 이사의 프로그램 명령어들을 실체적으로 구현한 것이다.According to another embodiment of the present invention, an article of manufacture is provided. The article of manufacture comprises a computer readable program storage medium, the medium comprising the steps of preparing the conversion equations into at least one set having at least two conversion constants and substantially between the at least two conversion constants in the at least one set. Independently scaling the at least two conversion constants of each set using a scaling term to maintain a uniform ratio, wherein the scaling term is executed by a computer to perform a method selected according to a predetermined cost function. It is a practical implementation of one director's program instructions.

본 발명의 또다른 실시예에 의하면, 데이터 분석 시스템이 제공된다. 데이터 분석 시스템은 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하고 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 것에 의해 형성되는 변환식들 - 상기 스케일링항은 선정된 비용함수에 따라 선택됨-과, 데이터를 변환계수로 상관해제하기 위해 선형 변환을 수행하기 위해 변환식을 적용하는 변환기를 포함한다.According to another embodiment of the present invention, a data analysis system is provided. The data analysis system prepares the transform equations into at least one set having at least two transform constants and maintains the at least two transforms of each set in order to maintain a substantially uniform ratio between the at least two transform constants in the at least one set. Transformations formed by scaling the constants independently using a scaling term, the scaling term being selected according to a predetermined cost function, and applying a transformation to perform a linear transformation to correlate the data into a transformation coefficient. It includes a converter.

본 발명을 특징짓는 전술한 특징들 및 기타 다른 장점 및 특징들은 본 명세서에 첨부된 특허청구범위에 특정적으로 지정되어 있다. 그러나, 본 발명 및 본발명을 이용함으로써 얻어질 수 있는 장점들 및 목적에 대한 더 나은 이해를 위해서는 본 발명에 따른 장치의 구체적인 예들을 예시하고 설명한 도면 및 발명의 설명에 대한 참조가 이루어져야 할 것이다.The foregoing and other advantages and features characterizing the invention are specifically specified in the claims appended hereto. However, for a better understanding of the advantages and advantages achievable by using the present invention and the present invention, reference should be made to the drawings and description of the invention, illustrating specific examples of the device according to the present invention.

실시예들에 대한 이하의 설명에서, 본 명세서의 일부를 이루는 도면에 대한 참조가 이루어지는데, 도면은 본 발명이 실시된 구체적인 실시예를 예로 들어 도시하고 있다. 본원발명의 범주를 벗어남없이 구조적 변경이 이루어질 수 있음에 따라 다른 실시예도 이용될 수 있음을 이해할 수 있을 것이다.In the following description of the embodiments, reference is made to the drawings, which form a part of this specification, which shows by way of example specific embodiments in which the invention has been practiced. It will be appreciated that other embodiments may be utilized as structural changes may be made without departing from the scope of the present invention.

본원 발명은 다수의 스케일링된 항들을 이용하는 고속 변환을 제공한다. 변환은 변환 상수에 대한 스케일링된 항들을 이용하여 독립적으로 계산되는 부-변환으로 나뉜다. 2진산술을 위한 스케일링된 항들의 최적의 표현을 찾는다. 이 방법으로 인해 고속의 변환 계산이 가능하고, 소프트웨어의 실행시간이 줄어들고 하드웨어 요구사항 또한 감소된다. 본 발명에 따르면, 신호 및 이미지 처리에서 이용되는 이산 변환은 변환 구조를 설정하고 변환이 2개 이상의 부 집합으로 계산되는 것을 허용하는 근거를 형성하는 소위 기본 함수들을 채용한다. 그런후에, 상기 계산에서 기본 계수들의 최적 표현을 찾기 위해 변환의 고속 구현을 위한 비용 함수가 이용된다.The present invention provides a fast transformation using multiple scaled terms. The transform is divided into sub-transformations that are independently calculated using the scaled terms for the transform constants. Find the optimal representation of scaled terms for binary arithmetic. This method enables fast conversion calculations, reduces software run time and reduces hardware requirements. In accordance with the present invention, the discrete transforms used in signal and image processing employ so-called basic functions that set the transform structure and form the basis for allowing the transform to be computed into two or more subsets. Then, a cost function for fast implementation of the transform is used to find the optimal representation of the fundamental coefficients in the calculation.

도 1은 전형적인 이미지 압축 시스템(100)을 도시한 것이다. 데이터 압축 시스템은 3개의 밀접 결합된 구성요소들, 즉, (a) 변환기(120), (b)양자화기(130), (c) 선택적인 엔트로피 인코더(140)를 포함한다. 압축은, 이미지 데이터를 상관해제(decorrelate)하고, 결과의 변환 계수들을 양자화하고, 원하는 경우에는, 양자화된 값들을 엔트로피 코딩하기 위해 선형 변환을 적용함으로써 달성된다. 이산 푸리에 변환(DFT), 이산 코사인 변환(DCT), 이산 파형 변환(DWT) 및 그밖의 각기 장단점을 갖는 변환들을 포함하는 다양한 선형 변환 기법들이 개발되어 왔다.1 illustrates a typical image compression system 100. The data compression system comprises three closely coupled components: (a) transducer 120, (b) quantizer 130, and (c) optional entropy encoder 140. Compression is achieved by decorating the image data, quantizing the resulting transform coefficients and, if desired, applying a linear transform to entropy code the quantized values. Various linear transformation techniques have been developed, including discrete Fourier transforms (DFTs), discrete cosine transforms (DCTs), discrete waveform transforms (DWTs), and other transforms with different pros and cons.

양자화기(130)는 단지 변환된 계수들의 정밀도를 줄임으로써 이들을 저장하는데 필요한 비트 수를 줄이는 것이다. 이는 다-대-일 매핑이기 때문에, 손실이 많은 프로세스이며 인코더에서 압축의 중요한 소스이기도 하다. 양자화는 각각의 개별 계수에 대하여 수행될 수 있는데, 이는 스칼라 양자화(Scalar Quantization: SQ)라 알려져 있다. 양자화는 또한 계수 집합에 함께 수행될 수 있는데, 이를 백터 양자화(Vectore Quantization:VQ)라 한다. 직면한 문제에 따라 균일 및 비균일 양자화기가 이용될 수 있다.Quantizer 130 merely reduces the number of bits needed to store them by reducing the precision of the transformed coefficients. Because this is a many-to-one mapping, it is a lossy process and an important source of compression in the encoder. Quantization can be performed for each individual coefficient, which is known as Scalar Quantization (SQ). Quantization can also be performed on a set of coefficients, which is called vector quantization (VQ). Depending on the problem encountered, uniform and non-uniform quantizers can be used.

선택저인 엔트로피 인코더(140)는 총체적으로 더 나은 압축을 제공하기 위해 양자화된 값들을 손실없이 더 압축한다. 이는 각각의 양자화된 값들에 대해 확률을 정확하게 판단하기 위해 모델을 이용하고 이들 확률에 따라 적절한 코드를 산출하여 출력 코드 스트림 결과가 입력 스트림보다 작아질 것이다. 고속의 실행을 필요로 하는 어플리케이션의 경우에는 간단한 실행-길이 인코딩(run-length encoding: RLE)이 매우 유용한 것으로 증명되었지만, 가장 흔하게 이용되는 엔트로피 인코더는 허프만(Huffman) 인코더 및 연산 인코더이다.Optional entropy encoder 140 further compresses the quantized values losslessly to provide better compression overall. This will use the model to accurately determine the probabilities for each of the quantized values and calculate the appropriate code based on these probabilities so that the output code stream result will be smaller than the input stream. Although simple run-length encoding (RLE) has proved to be very useful for applications requiring high speed execution, the most commonly used entropy encoders are Huffman encoders and operational encoders.

용어 "이미지 변환" 은 이미지를 표현하기 위해 사용된 일원행렬(unitary matrices) 클래스를 흔히 일컫는다. 이는 이미지들이 이들 행렬을 이용하여 교호(alternate) 표현으로 변환될 수 있음을 의미한다. 이러한 변환은 변환 코딩의 기본을 형성한다. 변환 코딩은 변환으로부터의 계수들이 전송을 위해 코딩되는 프로세스이다.The term "image transformation" commonly refers to the unitary matrices class used to represent an image. This means that images can be transformed into alternate representations using these matrices. These transforms form the basis of transform coding. Transform coding is the process by which coefficients from a transform are coded for transmission.

신호(x)는 0.. n-1까지의 각각의 정수를 복소수로 매핑시키는 함수이다. 샘플들 또는 픽셀들이 균등한 간격으로 되어 있는 샘플링되거나 픽셀화된 이미지의 한줄을 예로 들어본다. 이러한 (x) 집합의 "직교 기저(orthogonal basis)"는함수 집합이고, 여기서 y1z의 경우에이다. F(y)로 표시되는 (x)의 변환은로 된다. 이러한 유형의 변환은 원래 신호로부터 정보를 추출하기 위해 다수의 신호 및 이미지 처리 어플리케이션에서 이용된다. 변환의 한가지 예는 이산 푸리에 변환(DFT)이고, by(x)=exp(2pixy/n)이다. 관련된 예는 이산 코사인 변환(DCT)이고, by(x)=cos(2pxy/n)이다. 또다른 예는 파형 변환이고, 여기서 by(x)는 모(mother) 파형 함수의 특정 스케일링 및 오프셋 버전(particularly scaled and offset version)이다. (Ingrid Daubechies, Ten Lectures on Wavelets, Society for Industrial &Applied Mathematics, (1992년 5월) 참조하기 바란다.)Signal x is a function that maps each integer from 0..n-1 to a complex number. Take a line of sampled or pixelated image with samples or pixels evenly spaced. The "orthogonal basis" of this set of (x) Function set, where y 1 z to be. The conversion of (x) represented by F (y) is It becomes This type of transformation is used in many signal and image processing applications to extract information from the original signal. One example of a transform is the Discrete Fourier Transform (DFT), where b y (x) = exp (2pixy / n). A related example is the Discrete Cosine Transform (DCT), where b y (x) = cos (2pxy / n). Another example is a waveform transform, where b y (x) is a particular scaled and offset version of the mother waveform function. (See Ingrid Daubechies, Ten Lectures on Wavelets, Society for Industrial & Applied Mathematics, (May 1992).)

이제, 변환의 구조를 파괴하지 않고서도 스케일을 수행할 수 있도록 해주는수학적 근거를 보여줌으로써 독립적인 스케일링 연산의 이론적 근거를 증명하겠다. 변환을로 정의한다. 이러한 변환이 (x)의 구조에 상관없이 2개 이상의 분리된(disjoint) 합들로 분할될 수 있도록 by(x)가 이루어는 경우들 (이하에서 설명됨)을 고려한다. ("분리(disjoint)"라는 용어는 수식 집합과 관련하여 본명세서에서 사용될 때 2개의 분리된 수식 집합들의 수식 사이에 공통되는 변환계수가 없음을 의미한다.) 예를 들어, b(x)2y가 우수 대칭(even symmetry)이고 b(x)2y+1가 기수 대칭인 경우에, 임의의 (x)는 (x)=e(x) +o(x)로 특정되어 작성될 수 있다. 여기서,e(x)는 우수(0에 관하여 대칭임)이고 ,o(x)는 기수(0에 관하여 비대칭임)이고,이다. 이는 변환이 다음과 같이 작성되는 것을 가능하게 한다.We will now demonstrate the rationale for independent scaling operations by showing a mathematical basis that allows us to scale without destroying the structure of the transform. Transform It is defined as Consider cases where b y (x) is made such that this transformation can be divided into two or more disjoint sums regardless of the structure of (x) (described below). (The term "disjoint" when used in this specification with reference to a set of equations means that there is no conversion factor in common between the equations of two separate sets of equations.) For example, b (x) 2y In the case of even symmetry and b (x) 2y + 1 is odd symmetry, any (x) can be written specifying (x) = e (x) + o (x). Where e (x) is even (symmetrical with respect to zero), o (x) is radix (asymmetrical with respect to zero), to be. This allows the transformation to be written as

도 2는 JPEG 인코더(100)의 블록도를 도시한다. 도 2에서, 디지털 이미지 데이터(110)는 8 ×8 픽셀 블럭들로 나뉘어진다(112). 그리고 나서, 각 블록에 대한 이산 코사인 변환(DCT)이 계산된다(120). 이산 코사인 변환은 데이터를 중요도(예를 들면, 이미지의 시각적 품질에 대한 중요도)가 상이한 부분(또는 스팩트럼 부-밴드)으로 분리하는 것을 돕는다. DCT는 이산 푸리에 변환과 유사하여, 공간 도메인으로부터의 신호를 주파수 도메인으로 변환한다.2 shows a block diagram of a JPEG encoder 100. In FIG. 2, digital image data 110 is divided 112 into 8 × 8 pixel blocks. Then, a discrete cosine transform (DCT) for each block is calculated (120). Discrete cosine transform helps to separate data into different parts (or spectrum sub-bands) of importance (eg, importance to the visual quality of an image). DCT is similar to the Discrete Fourier Transform, transforming a signal from the spatial domain into the frequency domain.

양자화기(130)는 양자화 행렬에 따라 DCT 계수들을 라운드 오프(round off)한다. 이러한 단계는 JPEG의 "손실" 특성을 산출하지만, 큰 압축률을 허용한다. 이미지 품질과 양자화 정도간에 절충이 필요하다. 양자화 스텝 크기가 크면 허용할 수 없을 정도의 이미지 왜곡이 발생한다. 이러한 효과는 푸리에 시리즈 계수들을 너무 거칠게(coarsely) 양자화함으로써 커다란 왜곡을 발생시키는 것과 유사하다. 한편, 미세한 양자화는 압축률을 떨어뜨린다. 문제는 DCT 계수들을 어떻게 가장 효율적으로 양자화하는 것이다. 사람들의 시력 본래의 고주파수 롤-오프(roll-off)로 인해, 고주파수는 저주파수보다 덜 중요한 역할을 한다. 이는 JPEG이 고주파수 계수들에 대해서는 훨씬 큰 스텝 크기를 이용하게 해주며, 이에 의해 눈에 띌만한 이미지 왜곡은 발생시키지 않는다. 그후에, 양자화기 계수 출력은 선택적인 엔트로피 인코더(140)에 의해 인코딩되어 출력 파일로 압축데이터 스트림(150)을 산출한다. JPEG의 경우에 엔트로피 인코더는 선택사항이 아니지만, 다른 유사한 데이터 압축 시스템들에서는 엔트로피 인코더에 필요한 CPU 사이클 없이 설계될 수 있다.Quantizer 130 rounds off DCT coefficients according to the quantization matrix. This step yields the "loss" characteristic of JPEG, but allows for a large compression ratio. There is a tradeoff between image quality and quantization. Large quantization step sizes result in unacceptable image distortion. This effect is similar to generating large distortions by quantizing the Fourier series coefficients too coarsely. On the other hand, fine quantization lowers the compression rate. The problem is how to quantize the DCT coefficients most efficiently. Due to the inherent high frequency roll-off of people's vision, high frequencies play a less important role than low frequencies. This allows JPEG to use a much larger step size for high frequency coefficients, thereby producing no noticeable image distortion. The quantizer coefficient output is then encoded by optional entropy encoder 140 to produce a compressed data stream 150 into an output file. The entropy encoder is not an option in the case of JPEG, but in other similar data compression systems it can be designed without the CPU cycles required for the entropy encoder.

그러나, 후술하는 바와 같이, 인코더(100)의 처리율을 증가시키기 위해 곱셈 단계들를 감소시켜 이산 코사인 변환을 수행하기 위한 방법 및 장치를 제공할 필요가 있다. 후술하는 바와 같이, 본 발명에 따른 방법은 계수 행렬을 스케일링함으로써 주먹구구식 수식에서의 곱셈을 줄인다. 각각의 분리가능한 서브그룹은 다른 집합들과 개별적으로 스케일링된다. 각각의 집합 내에서, 남아있는 곱셈들은 단순한 쉬프트 및 덧셈에 의해 대체된다. 스케일링 항들은 다양한 비용 함수에 따라선택된다. 바람직한 실시예는 덧셈 개수를 줄이고 덧셈의 최악의 개수를 줄이는 비용 함수를 이용한다. 그러나, 본 기술분야의 당업자들은 계수당 얼마나 많은 오류가 허용되는가에 따라 대안적인 비용 함수가 선택될 수 있음을 이해할 것이다. 더욱이, 본 기술 분야의 당업자들은 동일한 방법을 이용하여 역 DCT(IDCT)가 구현될 수 있어서 동일한 개수의 연산이 이용됨을 이해할 것이다.However, as described below, there is a need to provide a method and apparatus for performing discrete cosine transform by reducing multiplication steps to increase the throughput of encoder 100. As described below, the method according to the present invention reduces the multiplication in the knuckle formula by scaling the coefficient matrix. Each separable subgroup is scaled separately from other sets. Within each set, the remaining multiplications are replaced by simple shifts and additions. Scaling terms are selected according to various cost functions. The preferred embodiment uses a cost function that reduces the number of additions and reduces the worst number of additions. However, those skilled in the art will understand that alternative cost functions may be selected depending on how many errors are allowed per coefficient. Moreover, those skilled in the art will understand that inverse DCT (IDCT) can be implemented using the same method so that the same number of operations are used.

도 3은 본 발명의 흐름도(200)를 도시한 것이다. 도 3에서, 변환식은 적어도 2개의 상수를 갖는 적어도 하나의 부-변환식으로 나뉜다(210). 여기서 사용되는 "부-변환식"이란 용어는 변환 항들의 부집합(부집합은 변환 항 모두를 포함하거나 변환 항의 전체 개수보다 적은 수를 포함함)을 생성하는데 이용되는 수식집합을 의미한다. 다음에, 각 집합에 대한 변환 상수는 상기 집합내의 변환 상수들간에 실질적으로 균일한 비율을 유지하도록 스케일링 항을 이용하여 독립적으로 스케일링되고, 스케일링 항은 선정된 비용함수에 따라 선택된다(220). 결과는 블록 변환을 위한 변환식이다. 데이터는 적어도 하나의 블록으로 나뉜다(230). 그런 후에, 블록은 변환식을 이용하여 변환 데이터로 변환된다(240). 전통적인 시스템들은 단계(210) 및 단계(220)를 오프라인으로 수행할 것이다. 그러나, JPEG 200과 같이 실행시간에 지정되는 알고리즘의 경우에, 이들 단계는 프로그램 초기화 단계중에 자동 수행될 것이다. 도 1의 양자화기(130)를 참조하면, 스케일링을 양자화로 통합함으로써 변환 데이터는 양자화된다. 이는, 정수 코사인 변환(Integer Cosine Transform: ICT) (예를 들어, Pang 등의 "A self-timed chip for image coding" IEEE trans, Circuit system for Video Tech., vol.9, no. 6,1999,pp.856-860을 참조하기 바람)과는 대조를 이루는데, 각각의 계수가 모든 수식에서 동일한 값에 의해 스케일링되는 경우에, ICT방법은 전술한 방법과 같은 계산상의 장점을 제고하지 않는다.3 shows a flow chart 200 of the present invention. In FIG. 3, the transformation is divided into at least one sub-transformation having at least two constants (210). The term "sub-transformation" as used herein refers to a set of equations used to generate a subset of transform terms (the subset includes all of the transform terms or less than the total number of transform terms). Next, the conversion constants for each set are independently scaled using the scaling terms to maintain a substantially uniform ratio between the conversion constants in the set, and the scaling terms are selected according to a predetermined cost function (220). The result is a transform for block transform. The data is divided into at least one block (230). Thereafter, the block is transformed into transformed data using a transform equation (240). Traditional systems will perform steps 210 and 220 offline. However, for algorithms specified at runtime, such as JPEG 200, these steps will be performed automatically during the program initialization phase. Referring to quantizer 130 of FIG. 1, transform data is quantized by integrating scaling into quantization. This is described in Integer Cosine Transform (ICT) (for example, Pang et al., "A self-timed chip for image coding" IEEE trans, Circuit system for Video Tech., Vol. 9, no. 6,1999, (see pp.856-860), where each coefficient is scaled by the same value in all equations, the ICT method does not provide the same computational advantages as the method described above.

상수들에 대한 스케일링 항을 선택하는 것은 목표 시스템의 필요도를 나타내는 비용 함수를 이용하여 수행된다. 이러한 비용 함수에 대하여 몇가지 파라미터들이 고속 변환을 위해 확인되었다. 사용되는 실제 비용 함수는 이하의 비용 함수중 하나 또는 그들의 조합을 포함할 수 있다.Selecting a scaling term for the constants is performed using a cost function that indicates the needs of the target system. Several parameters for this cost function have been identified for fast conversion. The actual cost function used may include one or a combination of the following cost functions.

제1 비용 함수는 임의의 변환 계수(i.e., F(x))상의 가장 큰 오류가 P%보다 크지 않은 것이며, 여기서 P는 알고리즘 설계자에 의해 선택된다. 이하의 예에서, P는 1이다.The first cost function is that the largest error on any transform coefficient i.e., F (x) is not greater than P%, where P is chosen by the algorithm designer. In the following examples, P is 1.

제2 비용 함수는 알고리즘 설계자에 의해 선택된 좀더 중요한 변환 상수들이 Pimportant% 오류보다 크지 않다는 것이다. 이하의 예에서, 저주파수항들의 오류는 0.1%보다 작다.The second cost function is that the more important conversion constants chosen by the algorithm designer are not greater than the P important % error. In the example below, the error of the low frequency terms is less than 0.1%.

제3 비용 함수는 두가지 기준, C1 및 C2로 나뉘는데, 이들은 상이한 시스템들에 적용된다. 즉, 하나는 일반적으로 기준 C1 또는 C2중 하나를 만족시키기 위해 선택된다. 기준 C1은 쉬프트가 곱셈보다 더 효율적인 구현(예, 소프트웨어 또는 펌웨어)에 적용될 수 있다. 기준 C2는 작은 정수들을 채용하는 곱셈이 그보다 큰 정수들을 채용하는 곱셈보다 더 바람직한 구현(예, 특정 비트 수를 넘어서는 곱셈이 더 많은 사이클 이용하거나 전체 정밀도가 중요한 소프트웨어 구현)에 적용될수 있다. 이들 두가지 기준을 설명하기 위해 구체적인 예가 주어진다. 두가지 기준 모두가 함께 이용될 수 있다.The third cost function is divided into two criteria, C1 and C2, which apply to different systems. That is, one is generally chosen to satisfy either the criteria C1 or C2. The reference C1 may be applied to an implementation where shift is more efficient than multiplication (eg, software or firmware). The reference C2 can be applied to implementations where multiplications employing small integers are more desirable than multiplications employing larger integers (eg, software implementations where multiplications beyond a certain number of bits use more overall precision or are important). Specific examples are given to illustrate these two criteria. Both criteria can be used together.

제1 기준 C1에 따르면, 동일한 합에서 나타나는 모든 스케일링된 정수 기저 승수들(scaled integer basis multipliers) (FDCT의 경우에, 상수 C1내지 C7, Ck=cos(kp/16)) 은 최소개수의 공통 2 거듭제곱항을 갖는 연립 2진 표현(simultaneous binary representation)을 포함하여야 한다. 즉, 집합내의 모든 표현들에 걸쳐있는 2-거듭제곱항 집합이 가능한한 작아야 한다. 실수 상수는 유리수,즉, 정수비율에 의해 근사치될 수 있다. 변환의 스케일링된 상수와 관련하여 본 명세서에서 이용되는 단어 "표현(representation)"은 이러한 정수 비율의 분자들이 2-거듭제곱의 합 및/또는 차로서 계산되는 방식을 지칭한다.According to the first criterion C1, all scaled integer basis multipliers appearing in the same sum (in the case of FDCT, the constants C 1 to C 7 , C k = cos (kp / 16)) are the minimum number It should contain a simultaneous binary representation with a common power of two. In other words, the set of 2-squared terms that span all representations in the set should be as small as possible. Real constants can be approximated by rational numbers, that is, integer ratios. The word "representation" as used herein in connection with the scaled constant of the transformation refers to the manner in which these integer ratios of molecules are calculated as the sum and / or difference of the power of two powers.

예를 들어, FDCT에서, 변환은 다음과 같은 3개의 수식 집합으로 나뉠 수 있다.For example, in FDCT, transformations can be divided into three sets of equations:

이들 수식에서 이용되는 표기는 페니베이커(Pannebaker) 책으로부터 취한 것이다. Ss는에 비례한다. 따라서, 집합 3의 상수들은 최소 개수의 공통 거듭제곱항을 갖는 연립 2진 표현을 포함하여야 하지만, 그들의 연립 표현은 집합 2의 상수들에서 사용된 것들과 관련없다. 집합 3에 대한 구체적인 예는 다음과 같이 주어진다.The notation used in these formulas is taken from the Pannebaker book. Ss Proportional to Thus, the constants in set 3 must include simultaneous binary representations with a minimum number of common power terms, but their simultaneous representations are not related to those used in the constants in set 2. A specific example of set 3 is given by

이들의 모든 표현은 계수별로 1%보다 작은 오류를 갖는다. 이러한 예에서, 공통의 2 거듭제곱항 집합은, 상기 식에서 보는 바와 같이, {25,23,21,20}이다. 이들 표현은 각각의 2 거듭제곱항에 1 또는 0을 곱함으로서, 2에 관한 다항식으로 표현될 수 있다. 즉,All of these representations have an error of less than 1% per coefficient. In this example, the common set of two power terms is {2 5 , 2 3 , 2 1 , 2 0 }, as shown in the equation above. These expressions can be expressed in terms of polynomials for two by multiplying each two power term by one or zero. In other words,

이들 항의 개수를 효과적으로 최소화시키는 것은 다음과 같다. 집합 3의 수식들은 이들 2의 거듭제곱항을 집단화함으로써 계산될 수 있다. 상기 기준 C1이 이용되는 구조에서, 덧셈 및 쉬프트는 곱셈보다 사이클이 적게 들기 때문에, 집합 3의 수식들을 다음과 같은 행렬연산으로 볼 수 있다.Effectively minimizing the number of these terms is as follows. Equations of set 3 can be calculated by grouping these powers of two. In the structure in which the reference C1 is used, since addition and shift take less cycles than multiplication, the equations of set 3 can be regarded as matrix operations as follows.

이는 덧셈과 쉬프트를 합하여 전체 28개의 연산을 수행한다. A=d25-d34이고 B= d07+d16를 먼저 계산한다면, 수식은 다음과 같다.This adds up to shifts and performs a total of 28 operations. If A = d 25- d 34 and B = d 07 + d 16 is calculated first, the equation is:

미리 계산을 한 경우에는 24 사이클이 된다. 또한, 20항을 제거하게 되면, C5에 대한 오류는 약 3%까지 오르지만, 연산의 전체 개수는 20개로 줄어든다. 대부분의 멀티프로세서상에서 곱셈은 하나 이상의 사이클(4개에서 11개 사이클 사이)이 필요한데, 전술한 고속 DCT의 기수화된(odd-numbered) 계수의 계산은 합 및 차이(sum and differences)에 대한 초기 계산을 제외하고 11개의 덧셈과 4개의 곱셈을 이용함을 주목한다.In the case of pre-calculation, this is 24 cycles. Also, if we eliminate the 2 0 term, the error for C 5 rises to about 3%, but the total number of operations is reduced to 20. On most multiprocessors, multiplication requires one or more cycles (between 4 and 11 cycles). The calculation of the odd-numbered coefficients of the fast DCT described above is an initial step to sum and differences. Note that we use 11 additions and 4 multiplications except calculations.

두 번째 기준 C2에 따르면, 동일한 합(예, 전술한 집합과 동일한 집합 1,2,3)에서 나타나는 모든 스케일링된 정수 기저 승수들, 예를 들어, FDCT의 경우에 C1내지 C7는 가능한한 집단화된(clustered) 0이 아닌 2-거듭제곱항을 갖는 연립 2진 표현을 포함하여야 한다. 즉, 가장 큰 2의 거듭제곱과 가장 작은 2의 거듭제곱간의 차이는 가능한한 작아야 한다. 집단화된 표현의 예는 다음과 같다. 28= 25-22이고, 28= 24+23+22이다. 첫 번째 예에서, 2의 거듭제곱은 5-2=3만큼 퍼져 있으며, 두 번째 예에서 2의 거듭제곱은 4-2=2만큼 퍼져있다. 이는 28에 대한 두번째 표현을 첫 번째에 비해 보다 집단화된 것으로 만들 것이다. 장점은 다음과 같다. 즉, 집합내의 모든 상수들이 2의 가장 작은 거듭제곱이 22가 되는 표현을 갖는다고 가정한다. 이는 계산시에 양자화 및 스케일링에서 얻어질 수 있는(picked up) 2 비트의 정밀도가 있음을 의미하고, 효과적으로, 우리는 모든 상수들을 22로 나눔으로써 뒤에 있는 0들을 위한 쉬프트를 수행할 필요가 없다.According to a second criterion C2, the same must (e. G., The same set of set of the above-described 1, 2, 3) all the scaled integer base multiplier represented in, for example, in the case of FDCT C 1 to C 7 are one possible aggregate Must contain simultaneous binary representations with nonzero clustered zero terms. In other words, the difference between the largest power of two and the smallest power of two should be as small as possible. An example of a grouped expression is as follows. 28 = 2 5 -2 2 and 28 = 2 4 +2 3 +2 2 . In the first example, the power of 2 is spread by 5-2 = 3, and in the second example the power of 2 is spread by 4-2 = 2. This would make the second expression of 28 more grouped than the first. The advantages are as follows. That is, assume that all constants in the set have an expression such that the smallest power of 2 is 2 2 . This means that there is two bits of precision that can be picked up in quantization and scaling in the calculation, and effectively, we do not have to perform shifts for the trailing zeros by dividing all constants by 2 2 . .

뒤에 있는 0들에 의해 표현되는 부가적인 크기는 필요하면, 예를 들어, 표현들중 하나 내에서 끝에 있는 1이 양자화 결정을 내리는 정밀도를 위해 "얻어질" 필요가 있는 경우에, 양자화 이전에 숫자들로 재도입될 수 있다. (20항을 버리는 것이 가능하다고 제안한 전술한 C1 하에서의 예를 참조하기 바란다.)The additional magnitude represented by the trailing zeros may be a number prior to quantization if necessary, e.g., if one at the end within one of the representations needs to be "obtained" for the precision of making the quantization decision. Can be reintroduced into (Please refer to the example proposed under the above-mentioned C1 that it is possible to discard 20 wherein.)

도 4는 다음의 조건을 이용하여 두 번째 기준 C2에 대한 연립 표현을 찾는 방법의 흐름도(300)를 도시한다.4 shows a flowchart 300 of a method for finding a system of representations for a second reference C2 using the following conditions.

2n+ 2n-1= 2n+1- 2n-1(5)2 n + 2 n-1 = 2 n + 1-2 n-1 (5)

우선, "숫자(num)"는 배열 "표현(reps)"의 "표현계수(repcount)"-1번째 요소로 설정된다(단계 310). 소정의 숫자에 대한 표현의 현재 계수가 "표현계수(repcount)"이다. 변수 "가산(add)"은 2로 초기화된다 (단계 312). 비트마스크는 이진 0 ...011로 초기화된다(단계 314).First, "num" is set to the "repcount" -1st element of the array "reps" (step 310). The current coefficient of representation for a given number is "repcount". The variable "add" is initialized to 2 (step 312). The bitmask is initialized to binary 0 ... 011 (step 314).

비트들을 검사하여 마스크 비트들에 매칭되는 "숫자"의 양 비트들이 설정되었는지 판단한다 (340). 그렇지 않으면(342), 마스크는 하나씩 쉬프트되고(350),오른쪽에 0을 삽입하고 "가산"이 하나씩 왼쪽으로 쉬프트되어 전술한 수식(5)에서 재정렬을 위해 이용되는 2의 거듭제곱을 증가시킨다. 마스크 비트들에 매칭되는 "숫자"의 양 비트들이 설정되었다면(344), 이 비트 패턴 "숫자"는 전술한 조건 (5)를 이용하여 항들의 재정렬을 수행하기 위한 후보(candidate) 표현이다. 그런 후에, "숫자"는 조건(5)에 도시된 수식에 의해 주어지는 2의 거듭제곱을 변화시키기 위해 "가산"을 "숫자"에 가산함으로써 상기 표현을 인코딩한다. (346). 이는 주먹구구식 방법(예를 들면, 표현에 대해 소모적인 검색을 수행하고 모든 0, +1, -1의 값들을 별도로 저장하는 것)에 비하여 보다 빠른 속도와 효율적인 저장을 제공한다. 새로운 표현이 얻어지고 "표현계수"는 "표현계수" +1로 설정된다 (348). 마스크는 하나씩 왼쪽으로 쉬프트된다(350).The bits are examined to determine whether both bits of the " number " that match the mask bits are set (340). Otherwise (342), the mask is shifted one by one 350, inserting zeros to the right and "addition" are shifted to the left one by one to increase the power of two used for realignment in Equation (5) above. If both bits of the "number" matching the mask bits have been set (344), this bit pattern "number" is a candidate representation for performing the reordering of terms using the condition (5) described above. Then, "number" encodes the expression by adding "addition" to "number" to change the power of 2 given by the equation shown in condition (5). (346). This provides faster speed and more efficient storage than the obsolete method (e.g., doing exhaustive searches on expressions and storing all the values of 0, +1, -1 separately). A new expression is obtained and the "expression coefficient" is set to "expression coefficient" +1 (348). The mask is shifted left one by one (350).

쉬프팅은 선정된 최대개수 "최대마스크(maxmask)"에 도달할때까지 수행된다 (370). 선정된 최대개수에 도달하지 않았다면, 상기 루틴은 "숫자"가 새로운 표현으로 설정되도록 새로운 "표현계수"값을 이용하여 반복된다. 그렇지 않으면(374), 루틴은 종료한다.Shifting is performed until a predetermined maximum number "maxmask" is reached (370). If the predetermined maximum number has not been reached, the routine is repeated with a new "expression coefficient" value such that "number" is set to a new representation. Otherwise (374), the routine ends.

표현들이 프로그램에서 코딩되는 방식에 의해, 프로그램은 2의 거듭제곱으로 이루어지는 다항식에서의 계수(예를 들면 수식(4) 참조))가 0이 아닌지, 즉, +1이 모두 "1"비트로서 저장되고 0은 "0" 비트로서 저장되는지를 추적한다. 다항식 내의 2의 거듭제곱항이 비트 위치에서 인코딩된다. 예를 들어, 비트 0(가장 오른쪽)은 20에 대응한다. 프로그램은 +1 사이를 구별하지 않으므 로, 프로그램이 어떻게 표현을 추적하는지 궁금해할지 모른다. 마스크가 정수 표현의 외쪽을 스캔하고 2n+ 2n-1을 2n+1- 2n-1로의 표현 변화가 다항식 표현에서 단지 2의 거듭제곱을 왼쪽으로 이동시키기 때문에 (즉, 표현에서 사용된 2의 거듭제곱만을 증가시키기 때문에), a+1 승수를 갖는 2의 거듭제곱이 a-1 승수를 갖는 동일한 2의 거듭제곱과 가산되도록 2의 거듭제곱을 이동시킬수 있는 경우는 없다. 따라서, 전술한 "표현"에 저장된 정수와 결합된, 원래 정수에 대한 지식이 표현을 유일하게 결정하는데 충분하므로, 승수가 0이 아닌지만을 추적하는 것으로 충분하다.By the way the representations are coded in the program, the program stores whether the coefficients in a polynomial of power of two (see equation (4), for example) are not zero, that is, +1 is stored as all "1" bits. And 0 tracks if it is stored as a "0" bit. The power of two in the polynomial is encoded at the bit position. For example, bit 0 (most right) corresponds to 2 0 . Since the program does not distinguish between + 1s, you may wonder how the program tracks expressions. Because the mask scans the outer side of the integer representation and the representation change from 2 n + 2 n-1 to 2 n + 1-2 n-1 shifts only the power of 2 to the left in the polynomial representation (that is, used in the representation Since only a power of 2 is increased), a power of 2 cannot be shifted so that a power of 2 with a + 1 multiplier is added to the same power of 2 with a-1 multiplier. Thus, since knowledge of the original integer, combined with the integer stored in the "expression" described above, is sufficient to uniquely determine the representation, it is sufficient to track only the multiplier that is not zero.

전술한 바와 같이, 본원 발명은, FDCT ( 및 IDCT)가 전술한 집합 1,2, 및 3으로 분리될 수 있는 것처럼, 항들이 디스조인트(disjoint) 수식 집합들로 알맞게 분리되지 않는 변환에 대해서도 작용한다. 전술한 바와 같이, 용어 "디스조인트"는 수식 집합에 관련하여 본 명세서에서 이용될 때, 2개의 디스조인트 수식 집합내의 수식들간에 공통되는 변환 상수가 없음을 의미한다. 상수들을 위해 전술한 2의 거듭제곱의 이진 표현이 이용되는 경우에, 임의로 또는 몇몇 비용함수에 따라 변환의 수식 집합을 고름으로써, 그리고, 각 집합내의 상수들에 대한 독립적인 스케일링 항을 선택함으로써, 변환 상수 표현을 위한 2의 거듭 제곱항을 그룹핑(grouping)함으로써 속도 개선은 여전히 이루어질 수 있다. 임의의 수식 집합의 계수들을 위한 표현을 찾기 위한 기준을 원할 것이다. 이는 변환 상수가 디스조인트 수식 집합들로 그룹화되기 때문에 변환이 이들 집합으로 나뉘어질때 특히 잘 작용한다.As noted above, the present invention also works for transforms where the terms are not properly separated into disjoint equation sets, as FDCT (and IDCT) can be separated into the sets 1,2, and 3 described above. do. As mentioned above, the term "disjoint" when used herein in connection with a set of equations means that there is no conversion constant common between the equations in the two disjoint equation sets. In the case where the binary representation of powers of 2 described above is used for constants, by choosing a set of equations for the transform arbitrarily or according to some cost function, and by selecting independent scaling terms for the constants in each set, The speed improvement can still be achieved by grouping a power of 2 for the conversion constant expression. You will want a criterion to find a representation for the coefficients of any set of equations. This works especially well when the transform is divided into these sets because the transform constants are grouped into sets of disjoint equations.

이하는 우리가 상이한 그룹핑을 이용하는 FDCT를 이용한 예이다.The following is an example of using FDCT with different groupings.

이제, 집합 (6)의 스케일링 항이 얻어질 수 있으며, 상기 집합의 3개의 계산을 수행하기 위한 C1,C3,C4,C5,C7에 대한 연립 표현이 찾아질 수 있다. 그런 후에, 집합 (8)에 대한 상이한 스케일링 항과 이들 수식을 위한 C1,C3,C5,C7에 대한 연립 표현이 찾아질 수 있는데, 이들 표현은 집합(6)의 계산을 위해 이용된 표현들과는 매우 상이하다.Now, the scaling term of the set 6 can be obtained, and a system of expressions for C 1 , C 3 , C 4 , C 5 , C 7 for performing the three calculations of the set can be found. Then, different scaling terms for set (8) and simultaneous expressions for C 1 , C 3 , C 5 , C 7 for these formulas can be found, which are used for the calculation of set (6). The expressions are very different.

도 5는 변환 계산을 신속히 수행하고 실행시간을 감소시키기 위해 수정처치를 이용하여 보다 신속한 변환을 제공하기 위한 흐름도(300)를 도시한다. 변환내의 변환 상수들을 이용하는 증분 계산으로부터 나온 적어도 하나의 숫자가 테스트된다(310). 그런 후에, 테스팅 결과에 기초하여, 수정처치를 언제 수행할지를 판단한다(320). 수정처치가 수행될 것으로 판단되면, 수정처치가 수행된다(330).FIG. 5 shows a flow diagram 300 for providing faster conversion using corrective action to quickly perform conversion calculations and reduce execution time. At least one number from an incremental calculation using transform constants in the transform is tested 310. Then, based on the testing result, it is determined when to perform a corrective action (320). If it is determined that the corrective action is to be performed, the corrective action is performed (330).

각각의dDk가 D에 의해 수행된 변환에 적어도 하나의 부가적인 비트 정밀도를 추가할 때, 세분(refinement)의 제1 예가 발생한다. 제2 예는 변환 백터의적어도 한 요소가 매우 작은 것으로 가정될 때 발생하여,dDk의 전체 행이 0으로 근사치되어, F의 적어도 한 요소 계산을 건너뛸 수 있도록 해준다.When each d D k adds at least one additional bit precision to the conversion performed by D, a first example of refinement occurs. The second example is a conversion vector Occurs when at least one element is assumed to be very small, so that the entire row of d D k is approximated to zero, allowing the calculation of at least one element of F to be skipped.

제1 예에서, 모든 Dk가 가역인 (invertible) 경우, 즉, DkDk -1=Dk -1Dk=1, 항등행렬 (상위 왼쪽으로부터 하위 오른쪽 대각선상은 1이고 나머지는 0임)이 되는 매트릭스 D인 경우가 종종 있다. 이러한 경우에, 다음과 같이 표기될 수 있다.In a first example, if all D k are invertible, that is, D k D k -1 = D k -1 D k = 1, identity matrix (one from the upper left to the lower right diagonal is 1 and the remainder is 0) Is often the matrix D In this case, it can be written as follows.

(여기서, I는 항등행렬이다.) 즉, 변환된 계수들에 하나 이상의 변환 단계를 수행함으로써 정밀도의 추가 단계가 제공된다. 이러한 추가적인 단계를 이용하여, 정밀도를 가산하는 변환은 본 발명에서 제공되는 세분의 제1 실시예인데, 이는 IDCT 및 후속하는 DCT 모두에 대한 수행을 절약해주기 때문이다. (I+dDm+1Dm -1)에 대한 행렬은 행렬 Rm+1로서 먼저 계산될 수 있어서,에 대한 단일-단계 변환이 된다.(Where I is the identity matrix). That is, an additional step of precision is provided by performing one or more transform steps on the transformed coefficients. Using this additional step, the conversion of adding precision is the first embodiment of the subdivision provided in the present invention, since it saves performance for both IDCT and subsequent DCT. The matrix for (I + d D m + 1 D m −1 ) can be calculated first as matrix R m + 1 , There is a single-step transform for.

세분의 제2 예는 다른 방식을 필요로 한다. 2차원 변환이 이미 제1 차원, FD1에서 높은 정밀도로 수행되었고,dD0는 8번째 행이 0이며,dD1= D-dD0인 구체적인 예를 고려해본다. 그러면,dD0는 비-가역(not invertible)이다. 즉,dD0FD1로부터 FD1의 원래 8번째열을 복구할 수 있는 방법이 없다 (이는dD0FD1로부터 FD1를 알아내는 것은 8개의 알려지지 않은 수식의 7개 수식으로 간주될 수 있다는 사실에 따른다). 그러나, FD1의 8열중 한 열에 대한 가정이 이루어진다면, 그밖의 7개열은 8번째 열에 대한 가정을 조건으로 하여,dD0FD1로부터 추정될 수 있다. 높은 숫자로 매겨진(higher-numbered) 변환 값들이 실제 이미지에서는 낮은 숫자로 매겨진 변환 값들보다 덜 중요하게 여겨지는 경향이 있기 때문에, 8번째 열은 0으로 근사치될 수 있는 작은 요소들을 포함한다고 합리적으로 가정한다. 그러면,dD0는 8 x 7 행렬(0의 행은 무시함)로서 처리될 수 있으며, (문헌에 공지되어 있는 바와 같이) 의사(pseudo)-역 행렬,는 다음과 같이 파악된다.The second example of the subdivision requires a different approach. Consider a specific example in which the two-dimensional transformation has already been performed with high precision in the first dimension, FD 1 , d D 0 has the eighth row 0, and d D 1 = D- d D 0 . Then d D 0 is not invertible. That is, there is no way to restore the original 8-th column of the FD 1 from the d D 0 FD 1 (This is to find out the FD 1 from the d D 0 FD 1 can be regarded as a seven formula are eight known formula According to the fact that they are present). However, if an assumption is made for one of eight columns of FD 1 , the other seven columns can be estimated from d D 0 FD 1 , subject to the assumption for the eighth column. Since the higher-numbered conversion values tend to be less important in real images than the lower-numbered conversion values, it is reasonable to assume that the eighth column contains small elements that can be approximated to zero. do. D d 0 can then be treated as an 8 x 7 matrix (ignoring rows of 0), and as known in the literature, a pseudo-inverse matrix, Is identified as follows.

여기서, 상기 가정된 8번째 계수들을 위해 0으로 이루어진 8번째 행이 삽입되었다. 이는dD0 -1에 대한 8x8 근사치를 제공하므로, 우리는=(I+`dD1 )을 어림할 수 있다.Here, an eighth row of zeros has been inserted for the assumed eighth coefficients. This gives an 8x8 approximation for d D 0 -1 , so we = (I + ` d D 1 ) Can be approximated.

이러한 근사치 세분은 본 발명에 따른 세분의 제2 실시예이며, 이는 제1예에서와 같이 IDCT 및 이에 따른 DCT의 사이클을 절약해준다.This approximate subdivision is the second embodiment of the subdivision according to the invention, which saves the cycle of IDCT and thus DCT as in the first example.

계산 결과가 너무 작다고 예측될 때 사이클을 절약하기 위해 계산의 완료 이전에 계산이 종료될 수 있는 시점을 판단하기 위해 중지 절차가 이용되어, 계산 결과는 0으로 양자화될 것이다. 중지 절차 응용의 한 예가 전술한 예에서 나타나는데, 적어도 하나의 작은 크기의 변환계수가 계산되지 않아서, 변환 행렬의 대응 행 또는 행들을 0으로 설정하는 것과 기본적으로 동등한 경우이다. 또다른 예는 부가적인 변환 정밀도가 변환값들에 무시할 만한 부가 정보를 제공하는 것으로 예측될 때, 예를 들면, 계산 결과가 작은 것으로 예측될 때, 정밀도를 제한하여 계산을 중단하는 것이다. 대안적인 방법은 변환에 대한 입력 일부에 대한 합 및/또는 차이의 크기를 테스트하는 것과 관련된다. 예를 들어, FDCT의 경우에, 다음의 수식은 제2 변환 계수를 계산한다.When the calculation result is predicted to be too small, a stop procedure will be used to determine when the calculation can be completed before completion of the calculation to save cycles, so that the calculation result will be quantized to zero. One example of a break procedure application is shown in the above example, where at least one small transform coefficient is not calculated, which is basically equivalent to setting the corresponding row or rows of the transformation matrix to zero. Another example is to stop the calculation by limiting the precision when it is predicted that the additional conversion precision provides negligible additional information for the conversion values, for example when the calculation result is expected to be small. An alternative method involves testing the magnitude of the sum and / or difference for some of the inputs to the transform. For example, in the case of FDCT, the following equation calculates the second transform coefficient.

여기서, d0734= s07-s34이고, d1625= s16-s25이며, 이는 페니베이커(Pennebaker) 및 미첼(Mitchell)의JPEG 교과서에 기재되어 있다. 이들 값의 크기가 변환계수의 후속 처리에 영향을 주는가에 대해 테스트될 수 있다. 이러한 예에서, S(2)가 Q/2의 크기보다 작으면 (Q는 S(2)의 양자화값임), S(2)는 0으로 양자화될 것이다. 이는 d073이 크기면에서 Q/(2C2)보다 작고 d162가 크기면에서 Q/(2C6)보다 작은지에 대한 테스트로 번역된다. 이러한 테스트가 충족되면, S(2)에 대한 계산은 중지될 수 있으며, S(2)는 그의 양자화값인 0으로 설정된다. 이렇게 입력 값들의 합 및/또는 차이를 테스트하는 방법은 FDCT의 모든 수식으로 확대될 수 있다.Where d 0734 = s 07- s 34 and d 1625 = s 16- s 25 , which are described in the PENbaker and Mitchell textbooks. It can be tested whether the magnitude of these values affects subsequent processing of the conversion coefficient. In this example, if S (2) is less than the magnitude of Q / 2 (Q is the quantization value of S (2)), S (2) will be quantized to zero. This translates to a test that d 073 is smaller than Q / (2C 2 ) in size and d 162 is smaller than Q / (2C 6 ) in size. If this test is met, the calculation for S (2) can be stopped and S (2) is set to zero, its quantization value. This way of testing the sum and / or difference of input values can be extended to all equations of the FDCT.

(벡터 또는 행렬의 요소들에 대한 항별 범위 검사, 여기서의 요소들은 모두 네거티브가 아님)와 같은 비교식이 F 요소들의 항별 비교인 -T < F < T(여기서, T의 요소들은 모두 네거티브가 아니며, F에 대한 테스트를 만족시키는 것은에 대한 테스트를 만족시키기에 충분함)로 어떻게 바뀌는지에 대해서는 자명하지 않다. DCT는 포지티브 및 네거티브 연산 모두를 채용하고, 이는 수식에서의 항별 정렬을 파괴하는 사실로 인해 어려움이 발생한다. 구체적으로, -<< << 를 의미한다고 말할 수 없다. (Vector or matrix A range-by-term range check for the elements of Are not all negative, and -T <F <T (where T's are not negative and satisfying the test for F) It's not clear how to turn it into enough to satisfy the test for. DCT employs both positive and negative operations, which suffers from the fact that it breaks the order-by-term alignment in the equation. Specifically, - < < end < < I can not say that means.

따라서, 중지는 부가적인 변환 정밀도가 이후의 처리 연산(예, 양자화 또는 비교) 결과에 받아들여질만한 또는 무시할만한 효과를 주는 것으로 예측될 때 연산 정밀도를 종료하는 것에 관련되다. 예를 들어, DCT의 계수가 정수에 의해 스케일링될 수 있고 2의 거듭제곱의 합으로 근사치될 수 있다. 기수 항들의 경우에, 이들 근사화의 한 예는 다음과 같다.Thus, abort is concerned with terminating computational precision when it is expected that additional transform precision will have an acceptable or negligible effect on subsequent processing operations (eg, quantization or comparison) results. For example, the coefficient of DCT may be scaled by an integer and approximated by the sum of powers of two. In the case of radix terms, one example of these approximations is as follows.

우리는 (전술한 표기를 이용하여) 다음과 같이 작성한다.We write (using the above notation):

또한, 전술한 바와 같이, 전술한 행렬 모두 그리고 그들의 순차적인 합들은 가역이다(invertible). 이제,<< 인 경우에, 즉,의 j번째 요소가 크기면에서 매우 작은 경우에, j(32dD0F)는 작아야 한다. 그렇지 않으면, j((8dD1+2dD2+dD3)F)는 최종 결과를 작게 하기 위해, 그것을 취소시키지 못할 것이다. 계산 결과의 상대적인 크기가 검사될 수 있다. 하나의 중간 정밀도에 대해, 하나의 변환된 값이 다른 값들에 비해 작거나, 임의의 선정된 임계치에 비해 작다면, 변환 값에 대한 후속 세분은 중지될 수 있다.Also, as discussed above, all of the aforementioned matrices and their sequential sums are invertible. now, If <<, that is, If the j th element of is very small in size, j (32 d D 0 F) must be small. Otherwise, j ((8 d D 1 +2 d D 2 + d D 3 ) F) will not cancel it, to make the final result small. The relative size of the calculation results can be checked. For one intermediate precision, if one transformed value is smaller than the other values, or smaller than any predetermined threshold, subsequent refinements to the transform value can be stopped.

도 6은 본원 발명에 따라 변환계산 프로세스를 더 반복하는 것을 중지하는 중지 방법의 흐름도(400)를 도시한다. 도 6에서, 적어도 하나의 증분 계산된 숫자가 테스트된다(410). 일정한 기준이 충족되면, 더 이상의 계산은 중지된다(420). 변환계수의 증분계산은 증분계산의 중지로 인해 발생하는 오류가 허용가능할 때 중지될 수 있다. 예를 들어, 증분 계산이 선정된 범위내로 예상되는 수, 예를 들면, 정밀도 요구사항을 만족시키는 변환계수를 산출할 것이라는 판단이 이루어지면 증분 계산은 종료될 수 있다. 대안적으로, 변환 계수 증분 계산은 변환계수가 선정된 0의 범주(predetermined range of zero) 내에 있을 경우에 중지될 수 있다.6 shows a flowchart 400 of a stop method of stopping further repeating the transform calculation process in accordance with the present invention. In FIG. 6, at least one incrementally calculated number is tested 410. If certain criteria are met, further calculations are stopped (420). Incremental calculation of transform coefficients can be stopped when errors that occur due to interruption of incremental calculations are acceptable. For example, the incremental calculation may be terminated when it is determined that the incremental calculation will yield a predicted number within a predetermined range, for example a conversion factor that satisfies the precision requirements. Alternatively, the transform coefficient incremental calculation may be stopped if the transform coefficient is within a predetermined range of zero.

도 7은 적어도 하나의 증분계산된 수의 테스트에 관한 흐름도(500)이다. 도 7에서, 변환계수의 세분이 결과를 변경시키지 않을 시점을 판단하기 위해 증분 계산이 테스트된다(510). 이러한 테스트는 도 7에 도시된 바와 같이 적어도 2가지 방식으로 수행될 수 있다. 증분계산 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 또다른 변환계수의 중간계산치에 비해 작을 때, 변환계수의 세분은 상기 결과를 변경시키지 않는 것으로 판단될 수 있다(520). 대안적으로, 증분계산 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 선정된 임계값보다 작을 때, 변환계수에 대한 세분은 상기 결과를 변경시키지 않는 것으로 판단될 수 있다(530).7 is a flowchart 500 of at least one incrementally calculated number of tests. In FIG. 7, an incremental calculation is tested 510 to determine when the subdivision of the transform coefficient will not change the result. This test can be performed in at least two ways, as shown in FIG. 7. After examining the relative magnitude of the incremental calculation result, when the intermediate value of the at least one transform coefficient is smaller than the intermediate value of another transform coefficient, it may be determined that the subdivision of the transform coefficient does not change the result (520). . Alternatively, after checking the relative magnitude of the incremental calculation result, when the intermediate value of the at least one conversion factor is less than the predetermined threshold value, it may be determined that the subdivision for the conversion factor does not change the result (530). ).

도 8은 본 발명에 따른 세분 방법의 흐름도(600)이다. 우선, 변환이 더 나은 정밀도를 필요로 하는지에 대한 판단을 수행한다(610). 변환은 변환 행렬로서, 변환계수의 증분계산의 정밀도를 증가시키기 위해 세분 행렬이 이용될 수 있다. 좀더 나은 정밀도를 필요로 하는 경우에, 세분 행렬이 변환에 적용된다(620). 세분 행렬은 오프라인 또는 초기화시점에 생성되며, 어림계산된 변환 상수에 기초한다.8 is a flowchart 600 of a subdivision method in accordance with the present invention. First, a determination is made whether the transformation needs better precision (610). The transform is a transform matrix, and the submatrices can be used to increase the precision of the incremental calculation of the transform coefficients. If more precision is needed, the submatrix is applied to the transformation (620). Subdivision matrices are generated at offline or initialization time and are based on estimated conversion constants.

도 9는 세분 행렬을 생성하기 위한 제1 방법의 흐름도(700)이다. 우선, 근사 변환은 가역임이 인식된다(710). I+dDm+1Dm -1에 의해 주어지는 세분 행렬이 생성된다(720). 그리고 나서, 효율적인 계산을 위해 변환이 구조화된다(730).9 is a flowchart 700 of a first method for generating a subdivision matrix. First, it is recognized that the approximation transformation is reversible (710). A subdivision matrix given by I + d D m + 1 D m −1 is generated 720. Then, the transform is structured 730 for efficient computation.

그러나, 전술한 바와 같이,dD0가 비-가역이면,dD0FD1로부터 FD1의 원래 8번째 열을 복구할 수 없다. 도 10은dD0가 비-가역인 경우에 세분 행렬을 생성하는 제2 방법을 도시한 흐름도(800)이다. 우선, 변환을 생성하기 위한 변환행렬의 n번째 열의 복구가 불가능함이 인식된다(810). 변환행렬 부분의 의사 역행렬(pseudo inverse)이 계산된다(820). 그런 후에, 세분 행렬의 근사치가 변환 행렬의 의사 역행렬을 이용하여 생성된다(830). 세분 행렬의 근사치는 I+dD1 로 이루어진다.However, as discussed above, d D 0 is a non-reversible back, it is not possible to restore the original 8-th column of the FD 1 FD 0 D from d 1. FIG. 10 is a flowchart 800 illustrating a second method of generating a subdivision matrix when d D 0 is non-reversible. First, it is recognized that recovery of the nth column of the transformation matrix for generating the transformation is impossible (810). A pseudo inverse of the transform matrix portion is calculated (820). An approximation of the subdivision matrix is then generated 830 using the pseudo inverse of the transformation matrix. The approximation of the subdivision matrix is I + d D 1 Is made of.

도 11은 본 발명에 따른 프린터(420)의 블록도(400)를 도시한다. 도 11에서, 프린터(420)는 호스트 프로세서(410)로부터 이미지 데이터(412)를 수신한다. 이미지 데이터(412)는 메모리(430)에 제공되는데, 상기 이미지 데이터는 8X8 블록샘플로 구성될 수 있다. 8X8 블록 샘플은 라스터(raster) 이미지 프로세서와 같은 프로세서(440)에 의해 처리된다. 라스터 이미지 프로세서(440)는 프린트헤드 구동 회로(450)에 이미지 데이터를 나타내는 압축 인쇄 스트림을 제공한다. 인쇄헤드 구동 회로(450)는 다음에 프린트헤드(460)를 제어하여 이미지 데이터의 출력물(470)을 생성한다.11 shows a block diagram 400 of a printer 420 in accordance with the present invention. In FIG. 11, the printer 420 receives image data 412 from the host processor 410. The image data 412 is provided to the memory 430, which may be configured with an 8 × 8 block sample. The 8 × 8 block sample is processed by a processor 440, such as a raster image processor. The raster image processor 440 provides the printhead drive circuit 450 with a compressed print stream representing image data. The printhead drive circuit 450 then controls the printhead 460 to produce an output 470 of image data.

도 1 내지 4를 참조하여 설명된 프로세스는 도 11에 도시된 하나 이상의 고정 및/또는 이동형 데이터 저장 장치와 같은 컴퓨터 판독가능 매체 또는 캐리어(490) 또는 기타 저장장치 또는 데이터 통신장치들에 유형으로 구현될 수 있다. 컴퓨터 프로그램이 메모리(492)로 로드되어 도 11의 프로세서(440)를 실행시킨다. 컴퓨터 프로그램은 도 11의 프로세서에 의해 판독되고 실행될 때 프로세서(440)가 본 발명의 단계 또는 요소들을 실행시키는데 필요한 단계들을 수행하도록 하는 명령어들을 포함한다.The process described with reference to FIGS. 1-4 is tangibly embodied in a computer readable medium or carrier 490 or other storage or data communications devices, such as one or more fixed and / or removable data storage devices shown in FIG. 11. Can be. A computer program is loaded into memory 492 to execute processor 440 of FIG. The computer program includes instructions that, when read and executed by the processor of FIG. 11, cause the processor 440 to perform the steps necessary to carry out the steps or elements of the present invention.

도 12는 본 발명에 따른 데이터 분석 시스템(500)을 도시한다. 도 12에서, 변환기(510)는 변환식(520)을 이용하여 변환 데이터(524)를 생성한다. 변환식(520)은 적어도 2개의 변환 상수들을 갖는 적어도 하나의 부-변환식으로 나뉜다. 각 집합의 최소한 둘 이상의 변환 상수들은 스케일링 항으로 독립적으로 스케일링되어 적어도 한 집합내의 최소한 둘 이상의 상수들간에 실질적으로 균등한 비율을 유지되는데, 여기서 스케일링항은 선정된 비용 함수에 따라 선택된다. 그 다음에, 변환 데이터(524)는 양자화기(530)에 의해 선택적으로 양자화될 수 있다. 양자화기(530)의 양자화 값은 각 계수에 대해 이용되는 스케일링 항을 반영하기 위해 조정된다.12 illustrates a data analysis system 500 in accordance with the present invention. In FIG. 12, converter 510 generates transform data 524 using transform equation 520. Transformation equation 520 is divided into at least one sub-transformation with at least two conversion constants. At least two or more transform constants of each set are scaled independently with a scaling term to maintain a substantially equal ratio between at least two or more constants in at least one set, wherein the scaling term is selected according to a predetermined cost function. The transform data 524 can then be selectively quantized by the quantizer 530. The quantization value of quantizer 530 is adjusted to reflect the scaling term used for each coefficient.

도 13은 본원 발명에 따른 또다른 데이터 분석 시스템(600)을 도시한다. 도 13에서, 변환기(610)는 분석될 데이터 블록(612)을 수신한다. 변환기(610)는 변환식(620)을 이용하여 변환데이터(624)를 생성한다. 변환식(620)은 최소한 2개의 변환 상수들을 갖는 적어도 하나의 부-변환식으로 나뉜다. 각 집합의 최소한 둘 이상의 변환 상수들은 스케일링 항으로 독립적으로 스케일링되어 적어도 한 집합내의 최소한 둘 이상의 상수들간에 실질적으로 균등한 비율을 유지되는데, 여기서 스케일링항은 선정된 비용 함수에 따라 선택된다. 그 다음에, 변환 데이터(624)는 비교기(630)에서 스케일링된 비교값들에 비교된다.13 illustrates another data analysis system 600 in accordance with the present invention. In FIG. 13, converter 610 receives data block 612 to be analyzed. The converter 610 generates the conversion data 624 using the conversion equation 620. Transformation equation 620 is divided into at least one sub-transformation with at least two conversion constants. At least two or more transform constants of each set are scaled independently with a scaling term to maintain a substantially equal ratio between at least two or more constants in at least one set, wherein the scaling term is selected according to a predetermined cost function. The transform data 624 is then compared to the scaled comparison values in the comparator 630.

본 발명의 예시적인 실시예에 대한 전술한 설명은 설명 및 예증의 목적으로 제공되었다. 개시된 형태로만 본 발명이 제한되는 것은 아니다. 전술한 설명과 관련하여 다양한 변경 및 변형이 가능하다. 본 발명의 범위는 전술한 상세한 설명에 의해 한정되는 것이 아니라 첨부된 청구항들에 의해 한정될 것이다.The foregoing description of the exemplary embodiments of the invention has been presented for the purposes of illustration and illustration. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.

Claims (36)

변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합(collection)으로 준비하는(arrange) 단계와,Arranging the transform equations into at least one collection having at least two conversion constants, 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항(scaling term)을 이용하여 독립적으로 스케일링하는 단계Independently scaling the at least two conversion constants of each set using a scaling term to maintain a substantially uniform ratio between the at least two conversion constants in the at least one set 를 포함하는 방법.How to include. 제1항에 있어서, 상기 스케일링 항은 상기 적어도 하나의 집합의 변환 상수들중 하나인 방법.2. The method of claim 1, wherein the scaling term is one of the at least one set of conversion constants. 제1항에 있어서, 상기 각각의 변환상수는 2의 거듭제곱의 합에 의해 근사치되는 변환 상수의 추정치에 의해 나타내어지는 방법.2. The method of claim 1, wherein each conversion constant is represented by an estimate of a conversion constant approximated by a sum of powers of two. 제1항에 있어서, 데이터를 적어도 하나의 블록으로 분리하는 단계와, 상기 적어도 하나의 집합내의 적어도 2개의 변환 상수들간에 실질적으로 균일한 비율을 유지하기 위해 적용된 수식들을 이용하여 상기 블록을 변환 데이터로 변환시키는 단계를 더 포함하는 방법.2. The method of claim 1, further comprising separating data into at least one block and transforming the block using equations applied to maintain a substantially uniform ratio between at least two conversion constants in the at least one set. The method further comprises the step of converting. 제1항 또는 제4항에 있어서, 상기 스케일링 항들은 선정된 비용 함수에 따라 선택되는 방법.5. The method of claim 1 or 4, wherein the scaling terms are selected according to a predetermined cost function. 제5항에 있어서, 임의의 변환 계수에 대한 가장 큰 오류가 선정된 오류 비율보다 크지 않도록 상기 스케일링항을 선택함으로써 선정된 비용 함수를 판단하는 단계를 더 포함하는 방법.6. The method of claim 5, further comprising determining a predetermined cost function by selecting the scaling term such that the largest error for any transform coefficient is not greater than a predetermined error rate. 제5항에 있어서, 선정된 변환 상수가 선정된 오류 비율보다 작거나 같도록 상기 스케일링 항을 선택함으로써 상기 선정된 비용 함수를 판단하는 단계를 더 포함하는 방법.6. The method of claim 5, further comprising determining the predetermined cost function by selecting the scaling term such that a predetermined conversion constant is less than or equal to a predetermined error rate. 제5항에 있어서, 집합의 모든 변환 상수가 선정된 특성을 갖는 연립 이진 표현(simultaneous binary representations)을 갖도록 스케일링 항 및 표현을 선택함으로써 선정된 비용 함수를 판단하는 단계를 더 포함하는 방법.6. The method of claim 5, further comprising determining a predetermined cost function by selecting a scaling term and a representation such that all of the transform constants of the set have simultaneous binary representations having predetermined characteristics. 제8항에 있어서, 집합의 모든 변환 상수가 최소개수의 공통되는 2-거듭제곱항을 갖는 연립 이진 표현을 갖도록 스케일링 항 및 표현을 선택하는 단계는 이진산술쉬프트가 곱셈 연산보다 효율적일 때 구현되는 방법.9. The method of claim 8, wherein selecting a scaling term and a representation such that all of the transform constants in the set have a system of binary representations with a minimum number of common two-squared terms is implemented when the binary arithmetic shift is more efficient than the multiplication operation. 제9항에 있어서, 상기 스케일링된 상수들의 모든 표현은10. The system of claim 9, wherein all representations of scaled constants are a) 제1 변수를 상기 블록내의 i번째 요소로 설정하는 단계와,a) setting a first variable to the i th element in the block; b) 제2 변수를 값 2로 초기화하는 단계와,b) initializing the second variable to the value 2, c) 비트마스크를 이진 3으로 초기화하는 단계와,c) initializing the bitmask to binary 3, d) 상기 제1 변수에 의해 표시된 i번째 요소가 2n+ 2n-1=2n+1- 2n-1를 이용하여 항을 재정렬하기 위한 후보 표현인지를 판단하기 위해 상기 비트들을 분석하는 단계와,d) analyzing the bits to determine whether the i th element represented by the first variable is a candidate representation for reordering terms using 2 n + 2 n-1 = 2 n + 1-2 n-1 Steps, e) 2n+ 2n-1= 2n+1- 2n-1에 의해 주어지는 2의 거듭제곱 변화를 효율적으로 수행하기 위해 상기 제2 변수를 상기 제1 변수에 가산함으로써 상기 i번째 요소를 인코딩하는 단계와,e) adding the i th element by adding the second variable to the first variable in order to efficiently perform a power of 2 given by 2 n + 2 n-1 = 2 n + 1-2 n-1 Encoding, f) 새로운 표현을 획득하고 상기 제1 변수를 i+1번째 요소로 증가시키는(incrementing) 단계와,f) obtaining a new representation and incrementing the first variable to the i + 1 th element, g) 상기 비트마스크 및 제2 변수를 왼쪽으로 한 비트 쉬프트시키는 단계와,g) shifting the bitmask and the second variable one bit to the left; h) 단계 d 내지 g 단계를 반복하는 단계h) repeating steps d through g 를 포함하는 단계들에 의해 찾아지는 방법.Method found by the steps comprising. 제10항에 있어서, 상기 마스크 비트들에 매칭되는 상기 제1 변수가 설정되었는지를 검사한 이후에 상기 마스크 비트들을 왼쪽으로 쉬프트하는 단계-이에 의해 오른쪽에 0이 삽입됨-와 2n+ 2n-1= 2n+1- 2n-1의 재정렬에 이용되는 2의 거듭제곱을 증가시키는 단계를 더 포함하는 방법.11. The method of claim 10, further comprising: shifting the mask bits to the left after checking whether the first variable matching the mask bits is set, whereby zero is inserted to the right; and 2 n + 2 n Increasing the power of 2 used for reordering -1 = 2 n + 1-2 n-1 . 제9항에 있어서, 상기 선정된 특성은 최대 집단화된 0이 아닌(non-zero) 2-거듭제곱항들을 포함하는 방법.10. The method of claim 9, wherein the predetermined characteristic comprises maximum grouped non-zero two-squared terms. 제12항에 있어서, 집합의 모든 변환 상수가 최대 집단화된 0이 아닌 2-거듭제곱항들을 갖는 연립 이진 표현을 갖도록 스케일링 항을 선택하는 단계는 작은 정수들을 채용한 곱셈 연산이 더 큰 정수들을 채용하는 곱셈보다 바람직할 때 구현되는 방법.13. The method of claim 12, wherein selecting a scaling term such that all of the transform constants in the set have a systemic binary representation with maximum non-zero powers of two powers, wherein the multiplication operation employing small integers employs larger integers. The method implemented when it is preferable to multiplication. 제13항에 있어서, 상기 상수를 나타내는 2-거듭제곱 다항식의 계수가 0이 아닌지가 추적되는 방법.14. The method of claim 13, wherein the coefficients of the power of two powers of said constant representing non-zero are tracked. 제14항에 있어서, 상기 비트 위치의 값은 상기 2-거듭제곱항을 판단하는 방법.15. The method of claim 14, wherein the value of the bit position determines the two-squared term. 제13항에 있어서, 0이 아닌 2-거듭제곱항들의 집단을 최대화시키는 것은14. The method of claim 13, wherein maximizing a group of nonzero powers of two a) 제1 변수를 상기 블록내의 i번째 요소로 설정하는 단계와,a) setting a first variable to the i th element in the block; b) 제2 변수를 값 2로 초기화하는 단계와,b) initializing the second variable to the value 2, c) 비트마스크를 이진 3으로 초기화하는 단계와,c) initializing the bitmask to binary 3, d) 상기 제1 변수에 의해 표시된 i번째 요소가 2n+ 2n-1=2n+1- 2n-1를 이용하여 항을 재정렬하기 위한 후보 표현인지를 판단하기 위해 상기 비트들을 분석하는 단계와,d) analyzing the bits to determine whether the i th element represented by the first variable is a candidate representation for reordering terms using 2 n + 2 n-1 = 2 n + 1-2 n-1 Steps, e) 2n+ 2n-1= 2n+1- 2n-1에 의해 주어지는 2의 거듭제곱 변화를 효율적으로 수행하기 위해 상기 제2 변수를 상기 제1 변수에 가산함으로써 상기 i번째 요소를 인코딩하는 단계와,e) adding the i th element by adding the second variable to the first variable in order to efficiently perform a power of 2 given by 2 n + 2 n-1 = 2 n + 1-2 n-1 Encoding, f) 새로운 표현을 획득하고 상기 제1 변수를 i+1번째 요소로 증가시키는 단계와,f) obtaining a new representation and incrementing the first variable to the i + 1 th element, g) 상기 비트마스크 및 제2 변수를 왼쪽으로 한 비트 쉬프트시키는 단계와,g) shifting the bitmask and the second variable one bit to the left; h) 단계 d 내지 g 단계를 반복하는 단계들에 의해 상기 스케일링된 상수들의 모든 표현을 찾는 단계를 포함하는 방법.h) finding all representations of the scaled constants by repeating steps d through g. 제16항에 있어서, 상기 마스크 비트들에 매칭되는 상기 제1 변수가 설정되었는지를 검사한 이후에 상기 마스크 비트들을 왼쪽으로 쉬프트하는 단계- 이에 의해 오른쪽에 0이 삽입됨-와, 2n+ 2n-1= 2n+1- 2n-1의 재정렬에 이용되는 2의 거듭제곱을 증가시키는 단계를 더 포함하는 방법.17. The method of claim 16, further comprising: shifting the mask bits to the left after checking whether the first variable matching the mask bits is set, thereby inserting 0 to the right; and 2 n + 2 n-1 = 2 n + 1-2 increasing the power of 2 used for reordering n-1 . 제1항에 있어서, 상기 집합은 부분적인 계산의 변환식들의 디스조인트(disjoint) 집합을 나타내는 방법.2. The method of claim 1, wherein the set represents a disjoint set of transform equations of partial calculation. 제1항에 있어서, 상기 집합은 부분적인 계산의 변환식들의 디스조인트(disjoint) 집합을 나타내지 않는 방법.The method of claim 1, wherein the set does not represent a disjoint set of transform equations of a partial calculation. 제19항에 있어서, 상기 적어도 하나의 집합내의 상기 변환 상수들을 위한 독립적인 스케일링 항을 선택하는 단계를 더 포함하는 방법.20. The method of claim 19, further comprising selecting an independent scaling term for the transform constants in the at least one set. 제1항에 있어서,The method of claim 1, 변환중에 변환 계수들의 증분계산으로부터 발생한 적어도 하나의 숫자를 테스트하는 단계와,Testing at least one number resulting from the incremental calculation of the transform coefficients during the conversion, 상기 테스트 결과에 근거하여 수정처치(corrective action)를 수행할지를 판단하는 단계와,Determining whether to perform a corrective action based on the test result; 수정처치가 필요하다고 판단되는 경우에 수정처치를 수행하는 단계Steps to perform correction if it is determined that correction is necessary 를 포함하는 방법.How to include. 제21항에 있어서, 상기 수정처치를 수행할지를 판단하는 단계는 상기 변환계수의 증분계산이 허용가능하지 않은 정밀도를 갖는 변환계수들을 산출하는지를 검출하는 단계를 포함하고 상기 수행 단계는 상기 적어도 하나의 숫자를 세분하는 단계를 포함하는 단계를 포함하는 방법.22. The method of claim 21, wherein determining whether to perform corrective action comprises detecting whether an incremental calculation of the transform coefficient yields transform coefficients with unacceptable precision and the performing step comprises the at least one number. Subdividing the method. 제22항에 있어서, 상기 변환은 변환행렬을 포함하고, 상기 세분 단계는 상기 변환 상수들의 증분계산의 정밀도를 증가시키기 위한 세분 행렬을 적용시키는 단계를 포함하는 방법.23. The method of claim 22, wherein the transformation comprises a transformation matrix and the subdivision step includes applying a subdivision matrix to increase the precision of the incremental calculation of the transformation constants. 제23항에 있어서, 상기 세분행렬은 I+dDm+1Dm -1를 포함하는 방법.The method of claim 23, wherein the submatrices comprise I + d D m + 1 D m −1 . 제21항에 있어서, 어림계산된 변환 상수들에 근거하여 적어도 하나의 세분행렬을 생성하는 단계를 더 포함하는 방법.22. The method of claim 21, further comprising generating at least one submatrix based on estimated conversion constants. 제25항에 있어서, 적어도 하나의 세분행렬을 생성하는 단계는 오프라인에서 또는 초기화시에 수행되는 방법.26. The method of claim 25, wherein generating at least one submatrix is performed offline or upon initialization. 제25항에 있어서, 상기 적어도 하나의 세분행렬을 생성하는 단계는 근사변환이 가역(invertible)임을 인식하는 단계와, I+dDm+1Dm -1에 의해 주어진 세분행렬을 생성하는 단계와, 효율적 계산을 위해 상기 변환을 구조화하는 단계를 포함하는 방법.26. The method of claim 25, wherein generating the at least one submatrix comprises: recognizing that the approximation is invertible, generating the submatrix given by I + d D m + 1 D m −1; Structuring the transformation for efficient computation. 제25항에 있어서, 상기 적어도 하나의 세분행렬을 생성하는 단계는The method of claim 25, wherein generating the at least one submatrix 상기 변환을 생성하기 위한 변환행렬의 n번째 열의 복구가 불가능함을 인식하는 단계와,Recognizing that the nth column of the transformation matrix for generating the transformation is impossible to recover; 상기 변환행렬의 일부에 대한 의사 역행렬(pseudo inverse)을 계산하는 단계와,Calculating a pseudo inverse of a portion of the transform matrix; 상기 변환행렬의 의사 역행렬을 이용하여 상기 적어도 하나의 세분행렬에 대한 근사치를 생성하는 단계Generating an approximation to the at least one submatrix using the pseudo inverse of the transform matrix 를 포함하는 방법.How to include. 제28항에 있어서, 상기 세분행렬의 근사치는 I+dD1 를 포함하는 방법.29. The method of claim 28, wherein an approximation of the submatrices is I + d D 1 How to include. 제21항에 있어서, 수정처치를 수행할지를 판단하는 단계는 상기 증분계산을 종료하는 것에 의해 발생하는 오류가 허용가능한지를 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 방법.22. The method of claim 21, wherein determining whether to perform corrective action further comprises determining whether an error resulting from terminating the incremental calculation is acceptable and performing the corrective action comprises incrementing the conversion coefficient. Stopping the calculation. 제30항에 있어서, 상기 증분계산은 상기 증분계산이 선정된 범위내로 예상되는 숫자를 산출할 것이라는 판단이 이루어질 때에 종료되는 방법.31. The method of claim 30, wherein the incremental calculation is terminated when a determination is made that the incremental calculation will yield a number expected within a predetermined range. 제31항에 있어서, 상기 선정된 범위내로 예상되는 숫자는 정밀도 요구사항을만족시키는 변환계수를 포함하는 방법.32. The method of claim 31 wherein the number expected within the predetermined range includes a conversion factor that meets precision requirements. 제31항에 있어서, 상기 증분계산은 상기 변환계수의 세분이 결과를 변화시키지 않는 것으로 판단될 때에 종료되는 방법.32. The method of claim 31, wherein the incremental calculation ends when it is determined that the subdivision of the conversion coefficient does not change the result. 제33항에 있어서, 상기 증분계산의 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 또다른 변환계수의 중간계산치에 비교하여 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 방법.34. The method of claim 33, wherein after examining the relative magnitude of the result of the incremental calculation, the subdivision of the conversion coefficient does not change the result when the intermediate value of the at least one transform coefficient is small compared to the intermediate value of another transform coefficient. How do you think? 제33항에 있어서, 적어도 하나의 증분계산의 결과의 크기를 검사한 후에 상기 변환계수의 적어도 하나의 중간계산치가 선정된 임계치보다 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 방법.34. The method of claim 33, wherein after examining the magnitude of the result of at least one incremental calculation, it is determined that the subdivision of the conversion coefficient does not change the result when at least one intermediate value of the conversion coefficient is smaller than a predetermined threshold value. Way. 제21항에 있어서, 상기 판단 단계는 변환계수가 선정된 범위의 0내에 있을 것임을 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 방법.22. The method of claim 21, wherein the determining step further comprises determining that the conversion coefficient is within zero of a predetermined range and wherein performing the corrective action comprises stopping the incremental calculation of the conversion coefficient. .
KR1020037005430A 2000-10-23 2001-10-23 Faster Discrete Transforms Method Using Scaled Terms, Early aborts, and Precision Refinements KR100545445B1 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US09/694,455 2000-10-23
US09/694,452 2000-10-23
US09/694,448 US6766341B1 (en) 2000-10-23 2000-10-23 Faster transforms using scaled terms
US09/694,455 US6961473B1 (en) 2000-10-23 2000-10-23 Faster transforms using early aborts and precision refinements
US09/694,452 US7007054B1 (en) 2000-10-23 2000-10-23 Faster discrete cosine transforms using scaled terms
US09/694,448 2000-10-23
PCT/US2001/027778 WO2002035380A1 (en) 2000-10-23 2001-10-23 Faster transforms using scaled terms, early aborts, and precision refinements

Publications (2)

Publication Number Publication Date
KR20030072338A true KR20030072338A (en) 2003-09-13
KR100545445B1 KR100545445B1 (en) 2006-01-24

Family

ID=27418597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037005430A KR100545445B1 (en) 2000-10-23 2001-10-23 Faster Discrete Transforms Method Using Scaled Terms, Early aborts, and Precision Refinements

Country Status (5)

Country Link
EP (1) EP1352336A4 (en)
JP (1) JP2004523815A (en)
KR (1) KR100545445B1 (en)
CN (1) CN100429644C (en)
WO (1) WO2002035380A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101315629B1 (en) * 2009-06-24 2013-10-08 퀄컴 인코포레이티드 16-point transform for media data coding
KR101315562B1 (en) * 2009-06-05 2013-10-10 퀄컴 인코포레이티드 4x4 transform for media coding

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2407886B (en) * 2003-11-10 2007-04-25 Metropolis Data Consultants Lt Digital signal processing with improved mapping
WO2010087808A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding
US9110849B2 (en) 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9075757B2 (en) 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1207346B (en) * 1987-01-20 1989-05-17 Cselt Centro Studi Lab Telecom DISCREET DISCREET COSE COEFFI CIRCUIT FOR THE CALCULATION OF THE QUANTITIES OF NUMERICAL SIGNAL SAMPLES
US5394349A (en) * 1992-07-10 1995-02-28 Xing Technology Corporation Fast inverse discrete transform using subwords for decompression of information
JP3185413B2 (en) * 1992-11-25 2001-07-09 ソニー株式会社 Orthogonal transform operation and inverse orthogonal transform operation method and apparatus, digital signal encoding and / or decoding apparatus
DE69406306T2 (en) * 1993-11-30 1998-01-29 Polaroid Corp METHOD FOR SCALING AND FILTERING WITH DISCRETE COSINUS TRANSFORMATION
US5649077A (en) * 1994-03-30 1997-07-15 Institute Of Microelectronics, National University Of Singapore Modularized architecture for rendering scaled discrete cosine transform coefficients and inverse thereof for rapid implementation
US5854757A (en) * 1996-05-07 1998-12-29 Lsi Logic Corporation Super-compact hardware architecture for IDCT computation
AU3751900A (en) * 1999-03-17 2000-10-04 Johns Hopkins University, The A fast multiplierless transform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101315562B1 (en) * 2009-06-05 2013-10-10 퀄컴 인코포레이티드 4x4 transform for media coding
KR101315629B1 (en) * 2009-06-24 2013-10-08 퀄컴 인코포레이티드 16-point transform for media data coding

Also Published As

Publication number Publication date
WO2002035380A1 (en) 2002-05-02
EP1352336A4 (en) 2006-09-06
CN100429644C (en) 2008-10-29
JP2004523815A (en) 2004-08-05
CN1471674A (en) 2004-01-28
KR100545445B1 (en) 2006-01-24
EP1352336A1 (en) 2003-10-15

Similar Documents

Publication Publication Date Title
Hussain et al. Image compression techniques: A survey in lossless and lossy algorithms
US10382789B2 (en) Systems and methods for digital media compression and recompression
US7474805B2 (en) Efficient scaling in transform domain
KR100545445B1 (en) Faster Discrete Transforms Method Using Scaled Terms, Early aborts, and Precision Refinements
US7379500B2 (en) Low-complexity 2-power transform for image/video compression
CN108200439B (en) Method for improving digital signal conversion performance and digital signal conversion method and device
Safavi et al. Sparsity‐aware adaptive block‐based compressive sensing
US6766341B1 (en) Faster transforms using scaled terms
US7526136B2 (en) Faster transforms using early aborts and precision refinements
US7007054B1 (en) Faster discrete cosine transforms using scaled terms
Alarcon-Aquino et al. Lossy image compression using discrete wavelet transform and thresholding techniques
US7451170B2 (en) Rapid and low cost of inverse discrete cosine transform system and method thereof
US7421139B2 (en) Reducing errors in performance sensitive transformations
Minasyan et al. An image compression scheme based on parametric Haar-like transform
US7489826B2 (en) Compensating for errors in performance sensitive transformations
Thakker et al. Lossy Image Compression-A Comparison Between Wavelet Transform, Principal Component Analysis, K-Means and Autoencoders
US7430332B2 (en) Approximations used in performance sensitive transformations which contain sub-transforms
Annalakshmi Lossy image compression techniques
Paim et al. Exploring approximations in 4-and 8-point DTT hardware architectures for low-power image compression
Li et al. Lossy compression algorithms
Meher et al. Near lossless image compression using lossless Hartley like transform
Grosse et al. Improved coding of transform coefficients in JPEG-like image compression schemes
Vychuzhanin et al. Method for Processing and Assessing the Degree of Digital Image Compression Based on Haar Transformation.
JP4315431B2 (en) Orthogonal transformer, inverse orthogonal transformer, orthogonal transformation method, and inverse orthogonal transformation method
Dahl et al. l1 compression of image sequences using the structural similarity index measure

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee