KR100545445B1 - 스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 이산 변환 방법 - Google Patents
스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 이산 변환 방법 Download PDFInfo
- Publication number
- KR100545445B1 KR100545445B1 KR1020037005430A KR20037005430A KR100545445B1 KR 100545445 B1 KR100545445 B1 KR 100545445B1 KR 1020037005430 A KR1020037005430 A KR 1020037005430A KR 20037005430 A KR20037005430 A KR 20037005430A KR 100545445 B1 KR100545445 B1 KR 100545445B1
- Authority
- KR
- South Korea
- Prior art keywords
- transform
- conversion
- constants
- discrete
- variable
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
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
복수의 스케일링된 항들, 초기 중지 및 정밀도 세분을 이용하는 고속 변환이 개시된다. 이산변환은 변환 상수들에 대해 복수의 스케일링 항들을 이용하여 독립적으로 계산되는 부-변환들로 나뉜다. 변환계수들에 대한 스케일링 효과는 양자화값들 또는 임의의 비교값들을 적절히 스케일링함으로써 선택적으로 처리될 수 있다. 수정처치를 수행하는데 가능한 필요성은 변환계수들의 증분계산을 테스트한 것에 기초하여 검출된다. 그리고나서, 수정처치가 수행된다. 수정처치는 부가적인 정밀도를 얻기 위해 증분계산을 세분하는 단계 및/또는 결과 숫자가 만족스러울때 증분계산을 중지시키는 단계를 포함한다.
고속 변환, 스케일링항, 초기 중지, 정밀도 세분
Description
본 발명은 일반적으로 데이터 처리에 관한 것으로, 보다 구체적으로는 다수의 스케일링 항(multiple scaled terms), 초기 중지(early aborts) 및 정밀도 세분(precision refinement)을 이용하는 고속 이산 변환에 관한 것이다.
하나의 도메인(예, 샘플링된 데이터)에서 데이터를 취하여 또다른 도메인(주파수 공간)으로의 변환은 다수의 신호 및/또는 이미지 처리 어플리케이션들에서 이용된다. 이러한 변환은, 특징 식별 및/또는 추출, 신호 보정, 데이터 압축, 및 데이터 임베딩/워터마킹(embedding/watermarking)등을 포함하는 다양한 어플리케이션에서 이용되고 있으며, 이에 국한되는 것은 아니다.
데이터 처리에서, 데이터는 전형적으로 샘플 이산 함수로서 표현된다. 이산 표현은 결정적으로 만들어지거나 또는 통계적으로 만들어진다. 결정적 표현에서는 데이터의 점특성이 고려되는 반면에, 통계적 표현에서는 데이터의 평균 특성이 지정된다. 예를 들어, 본 기술 분야에서, 데이터 압축을 위해 이산 코사인 변환을 이용하는 것이 공지되어 있다. 본명세서에서 언급되는 특정 예들에서, 이미지 및 이미지 처리란 용어들이 이용될 것이다. 그러나, 본 기술분야의 당업자라면 본 발 명이 단지 이미지 처리에 제한되는 것이 아니며, 음성 데이터, 과학적 데이터, 이미지데이터 등과 같은 상이한 종류의 데이터들을 처리하는데 이용가능함을 인식할 것이다.
디지털이미지처리시스템에서, 디지털이미지 신호들은 우선 2차원 영상을 그리드(grid)로 나눔으로써 형성된다. 그리드 내의 각각의 화상 요소, 즉, 픽셀은 명도 또는 색상과 같은 다수의 시각적 특성들과 연관되어 있다. 이러한 특성들은 숫자 형태로 변환된다. 그다음, 디지털이미지 신호는 이미지 내의 각각의 요소들과 연관된 숫자들을 디지털이미지신호 수신기에서 해석될 수 있는 시퀀스로 조립함으로써 형성된다.
데이터를 이용하는 실제 어플리케이션들에 너무 많은 데이터가 제공되는 경우에, 다수의 데이터 처리 프로세스에서 데이터 압축이 바람직하다. 흔히, 압축은 통신 링크에서 사용되어, 전송 시간 또는 요구되는 대역폭을 감소시킨다. 유사하게, 인쇄될 문서의 "페이지"가 메모리에 일시 저장되는 디지털 프린터 및 복사기와 같은 이미지 저장 시스템에서도 압축이 바람직하다. 이미지 데이터가 저장되는 매체 공간량은 압축으로 인해 실질적으로 줄어들 수 있다. 일반적으로, 스캐닝된 이미지 (즉, 하드카피 문서의 전자적 표현)는 종종 커서 압축의 바람직한 대상이 된다.
신호 및 이미지 처리는 분석 목적을 위해 입력 데이터를 변환 계수로 변환하는 것을 빈번하게 요구한다. 종종, 계수들의 양자화된 버전만이 요구된다 (예를 들면, JPEG/MPEG 데이터 압축 또는 오디오/비디오 압축). 다수의 이러한 어플리케 이션들은 고속 프린터용 JPEG 데이터 생성과 같이 실시간에서 신속하게 수행될 것을 필요로 한다. 이러한 변환의 대부분은 압축이 데이터 처리의 일부분으로서 사용되는 것과 무관하게 실시간 및/또는 고속 실행을 위한 효과적인 구현을 요구한다.
데이터 신호 처리 산업에서 디지털 신호 처리를 가장 효과적이고 신속하게 행할 수 있는 고속 방법을 찾는 것에 대한 부담이 작용한다. 압축 분야에서처럼, 고속 변환 구현 분야에서도 매우 활동적이고 경쟁적으로 연구가 진행되고 있다. 연구자들은 변환 및 역변환에서 발견되는 속성들을 이용함으로써 변환을 구현하고자 하는 하드웨어의 강도를 개선하려는 다양한 시도들을 수행하였다.
이러한 기법중 하나가 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)이며, 본 명세서에서 참조된다. 본 기술 분야의 당업자들은 상기 참조된 책들의 내용에 친근할 것으로 추정된다.
정지 영상이 컴퓨터 사용자 및 다른 이들을 위한 저장 문제를 나타낸다면, 완전 동영상 비디오는 디스플레이되는 동영상 그림의 1초마다 최대 60개의 영상을 필요로 하기 때문에, 동영상 저장 문제가 훨씬 심각하다는 것은 명백하다. 따라서, 동영상 압축 기법은 또다른 개발 및 표준 활동의 주제가 되어 왔다. 2개의 중요한 표준이 ISO 11172 MPEG 국제 표준 및 ITU-T 권고 H.261이다. 이들 표준 모두 부분적으로는 DCT코딩 및 IDCT 코딩에 의존한다.
2차원 이산 코사인 변환은 N1×N2 숫자 배열를 또다른 숫자 배열 N1×N
2로 변환하는 한쌍의 수식이다. 첫 번째 배열는 일반적으로 디지털 이미지를 형성하는 공간결정요소값(spatially determined component values)의 사각형 N×N 배열를 나타낸다. 각각의 화소가 그의 여러개 요소들과 연관되어 있기 때문에, 이하에서는 단순함을 위해 하나의 요소 픽셀이 고려된다. 그러나, 다수의 요소 픽셀로 확장하는 것도 본 기술 분야의 숙련자들에게는 자명하다. 제2 배열는 주파수 도메인에서 화상을 표현한 이산 코사인 변환 계수들의 배열다. 이미지를 주파수 요소의 계수들로 표현하는 방법은 이산 푸리에(Fourier) 변환의 특별한 경우이다. 이산 푸리에 변환은 임의의 주기적인 파형이 상이한 주파수 및 진폭의 사인 및 코사인 파형의 합으로서 표현될 수 있는 전통적인 수학적 푸리에 변환의 이산 버전이다. 따라서, 푸리에 변환과 같은, 이산 코사인 변환은 시간 도메인의 신호를 주파수 도메인의 신호로 또는 그반대로 변환하는 변환이다. 모든 DCT 곱셈은 실제이다. 이는 이산 푸리에 변환에 비교하여, 요구되는 곱셈의 개수를 낮춘다. 대부분의 이미지 경우에, 신호 에너지의 대부분은 낮은 주파수에 있고, 이는 DCT의 왼쪽 상위 부분에 나타난다. 오른쪽 하위 부분은 보다 높은 주파수를 나타내고, 이는 시각적 왜곡을 일으키지 않을 정도로 충분히 작아서 무시될 수 있다.
두개의 기본적인 이산 코사인 변환 수식이 있다. 첫 번째 기본 수식은 픽셀 값을 이산 코사인 변환 계수로 변환하는 포워드(forward) 이산 코사인 변환이다. 두 번째 기본 수식은 이산 코사인 변환 계수를 다시 픽셀값으로 변환하는 역 이산 코사인 변환이다. 이미지용 이산 코사인 변환의 어플리케이션 대부분은 8 ×8배열을 이용하고, 따라서, N 값은 8이 된다. 변환을 수행할 때 N값이 8이라고 가정하고, f(i,j)가 픽셀 배열 값들이고, F(u,v)가 이산 코사인 변환 계수들의 값이라고 하면, 2차원 이산 코사인 변환 공식은 다음과 같다.
여기서, 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를 계산하는데 여러개의 고속 알고리즘이 이용가능하다.
전술한 바와 같이, 압축기의 DCT 부분은 2개의 주요 부분으로 이루어진다.
제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에 의해 처리된다. 반면에, 압축해제된 데이터상에 상이한 유형의 입력 및 상이한 품질 요구사항으로 인해 상이한 블록 크기가 압축을 위해 선택된다.
스케일링된 항들은 최수 개수의 덧셈/뺄셈을 갖는 이산 코사인 변환(DCT)에서 코사인 항과 같은 배수 상수를 대체하는데 이용된다. 그러나, 스케일링된 항들은 단지 변환식에서 상수를 어림한 것이다. 따라서, 연산의 수를 줄이기 위해서는 고정된 비트 개수에 한정되는 정밀도를 유지하기 위해 약간의 오류가 허용가능한 다. 결과의 숫자들이 최대 허용가능한 오류보다 결정 경계치(예, 임계값 또는 양자화 경계)로부터 떨어져 있다면, 그 결과는 추정치에 의해 영향을 받지 않을 것이다. 그러나, 증분 계산중에, 추가적인 정밀도를 요구하기 위해 결과의 숫자들이 판단될 수 있다. 원래 입력 값들은 더 이상 레지스터에 가용치 않으며, 메모리로부터 원래 입력 값들을 다시 페치함으로써 캐시 미스 및 메모리 지연에 관련된 사이클이 부과될 수 있다. 주먹구구식 옵션은 값들에 대해 역변환(예, IDCT)를 수행하고 나서 보다 높은 정밀도를 갖는 포워드 변환(예, FDCT, 간혹 그냥 DCT라 표기됨)을 다시 수행하는 것이다. 이러한 주먹구구식 접근방법은 연산이 낭비된다는 것이다.
그러나, 일반적으로 연구는 소망하는 정도의 압축을 제공하기 위해 DCT 코딩을 이용한 전술한 기법과 같은 특정 기법에 일반적으로 초점이 맞추어져 있다. 그러나, 특정 상황에서는 특정의 장점을 제공하는 다른 변환도 이용될 수 있다. 예를 들어, 전술한 DCT 압축 코딩 방법에서, 입력된 이미지는 다수의 균일 블록들로 나뉘어지고 2차원 이산 코사인 변환 함수가 각 블록에 적용되어 데이터 샘플을 일단의 변환 계수로 변환시켜서 공간 중복성을 제거한다. 그러나, 높은 압축율은 달성할 수 있지만, 희미하거나 명백한 차단 효과가 발생할 수 있다. 또한, 압축 시스템에 의해 이용되는 벡터 양자화 방법은 높은 압축률로 인해 유리할 수 있다. 반면에, 서브-밴드 방법은 높은 데이터 압축율에서 발생하는 차단 효과를 줄일 수 있다. 이산 웨이브렛 변환(discrete wavelet transform: DWT) 또는 서브-밴드 코딩(Sub-Band Coding:SBC) 방법은, 예를 들어, 시간 및 주파수 요소에 근거하여 신 호를 인코딩한다. 이와 같이, 이러한 변환 방법들은 비-정지 신호들을 분석하는데 유용할 수 있으며, 이미지 분석을 위해 인간시각시스템(human visual system: HVS)의 특성을 고려하도록 설계될 수 있다는 장점을 갖는다.
프로세스 사이클을 절약하기 위해 초기 중지 및 정밀도 개선을 이용함으로써 소프트웨어 실행 시간을 줄이고 하드웨어 요구사항을 줄일 수 있는 고속의 변환 계산을 제공하는 방법 및 장치를 제공할 필요가 있다.
도 1은 전형적인 이미지 압축 시스템을 도시한다.
도 2는 JPEG 인코더의 블록도를 도시한다.
도 3은 본발명의 흐름도를 도시한다.
도 4는 제1 기준 C1, 또는 제2 기준 C2의 동시 표현을 찾기 위한 방법의 흐름도를 도시한다.
도 5는 고속의 변환계산 및 감소된 실행시간을 제공하기 위해 수정처치(corrective action)을 이용하여 고속의 변환을 제공하기 위한 흐름도를 도시한다.
도 6은 변환 계수 계산 프로세스의 계속적인 반복을 중지하는 것을 증명하는 본 발명에 따른 중지 방법의 흐름도를 도시한다.
도 7은 적어도 하나의 증분 계산된 수를 테스트하는 것을 도시한다.
도 8은 본발명에 따른 세분(refinement) 방법의 흐름도이다.
도 9는 세분행렬을 생성하는 제1 방법의 흐름도를 도시한다.
도 10은 dD0가 비-가역일때 세분행렬을 생성하기 위한 제2 방법을 도시한 흐름도이다.
도 11은 본 발명에 따른 프린터를 도시한다.
도 12는 본 발명에 따른 데이터 분석 시스템을 도시한다.
도 13은 본 발명에 따른 또다른 데이터 분석 시스템을 도시한다.
전술한 종래기술의 제한점들을 극복하기 위해, 그리고 본 명세서를 읽고 이해함에 따라 명백해지는 기타 제한점들을 극복하기 위해, 본 발명은 다수의 스케일링 항, 초기 중지 및 정밀도 세분을 이용하는 고속 변환을 개시한다.
본 발명은 이산 변환식을 변환 상수들에 대한 스케일링 항을 이용하여 독립적으로 계산될 수 있는 부변환식으로 나눔으로써 전술한 문제점들을 해결한다. 또한, 이진 연산용 스케일링 항들의 최적의 표현을 찾는다. 최종 계산은 고속의 계산을 가능케 하며, 소프트웨어의 실행시간을 줄이고 하드웨어 요구사항을 감소시킨다. 더욱이, 본 기술분야의 당업자들은 동일한 방법을 이용하여 역변환도 종종 구현할 수 있으므로, 일반적으로, 동일한 개수의 연산이 사용됨을 인식할 것이다. 또한, 본 발명은 변환상수들에 대한 스케일링 항들을 이용하여 곱셈 개수를 줄임으로써 전술한 문제점들을 해결한다. 스케일링 이후에, 상수들은 단지 몇 개의 덧셈 이후에 2-거듭제곱 합으로 근사치되기 때문에 상수항들은 일련의 적은 선형 쉬 프트 및 덧셈으로 대체된다. 본 기술분야의 당업자들은 본 명세서를 통해 용어 "행렬"은 그의 전통적인 수학적 의미뿐만 아니라 분석시에 수학적 행렬로서 균등하게 나타내어질 수 있는 모든 하드웨어 및 소프트웨어 시스템들을 포함하기 위해 쓰였음을 이해할 것이다. 또한, 본 발명은 변환상수들의 증분계산의 계산 테스트에 따라 수정처치(corrective action)를 언제 수행할지를 감지하여 수정 처치를 행하고, 부가적인 정밀도를 얻기 위해 증분계산을 세분하고(refining) 및/또는 결과 수가 너무 작아지면 증분 계산을 중지함으로써 전술한 문제점들을 해결한다.
본 발명의 원칙에 따른 방법은 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합(collection)으로 준비하는(arrange) 단계와, 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항(scaling term)을 이용하여 독립적으로 스케일링하는 단계를 포함한다. 상기 방법은 또한 각각의 스케일링된 이산 코사인 변환 상수들을 2-거듭제곱합에 의해 근사치된 이산 코사인 변환 상수들의 추정값으로 나타내는 단계를 포함한다.
본 발명의 원칙에 따른 방법의 다른 실시예는 대안적인 또는 선택적인 부가적 특징을 갖는다. 본발명의 한 특징은 방법이 데이터를 적어도 하나의 블록으로 나누고 상기 블록을 스케일링된 변환식들을 이용하여 변환 데이터로 변환하는 단계를 포함하는 것이다.
본 발명의 또다른 특징은 상기 스케일링된 이산 코사인 변화 상수들의 추정치를 이용하는 이진 산술연산에 기초하여 이산 코사인 변환수식들에 대한 행렬 곱 셈을 수행함으로써 상기 블록을 변환데이터로 변환하는 것이다.
본 발명의 또다른 특징은 스케일링된 항이 선정된 비용함수에 따라 선택된다는 데 있다.
본 발명의 또다른 특징은 선정된 비용함수의 임의의 변환계수에 대한 가장 큰 오류가 그 각각의 선정된 오류비율보다 크지 않도록 스케일링항을 선택하는 것을 포함한다.
본 발명의 또다른 특징은 선정된 비용함수가 선정된 변환 상수들이 선정된 오류비율보다 작거나 같은 오류를 갖도록 스케일링 항을 선택하는 것을 포함한다.
본 발명의 또다른 특징은 선정된 비용함수가 각각의 관련된 선정 변환 상수들이 그 각각의 선정된 오류비율보다 작거나 같도록 스케일링항을 선택하는 것을 포함하는데 있다.
본 발명의 또다른 특징은 선정된 비용함수가 집합의 모든 변환 상수들이 선정된 특성을 갖는 연립이진표현을 구비하도록 변환 상수들에 대한 스케일링항 및 표현을 선택하는데 있다.
본 발명의 또다른 특징은 비용함수가 덧셈 연산의 개수를 최소화시키는것이다.
본 발명의 또다른 특징은 비용함수가 덧셈 연산의 최악의 경우를 최소화시키는 것이다.
본 발명의 또다른 특징은 선정된 특성은 최소 개수의 공통 2-거듭제곱항을 포함하는 것이다.
본 발명의 또다른 특징은 집합에 대한 모든 변환상수들이 최소개수의 공통 2-거듭제곱항을 갖는 연립이진표현을 갖도록 변환상수들에 대한 스케일링항 및 표현을 선택하는 것은 이진산술 쉬프트가 곱셈 연산보다 더 효율적일때 구현되는 것이다.
본 발명의 또다른 특징은 선정된 특성은 최대 집단화된 0이 아닌 2-거듭제곱항을 포함하는 것이다.
본 발명의 또다른 특징은 집합에 대한 모든 변환상수들이 최대 집단화된 0이 아닌 2-거듭제곱항을 갖는 연립이진표현을 갖도록 변환상수들에 대한 스케일링항을 선택하는 것은 작은 정수들을 이용하는 곱셈 연산이 더 큰 숫자를 이용하는 곱셈보다 더 바람직할 때 구현되는 것이다.
본 발명의 또다른 특징은 상수들 나타내는 2-거듭제곱 다항식내의 계수가 0이 아닌지가 추적되는 것이다.
본 발명의 또다른 특징은 비트위치값이 2-거듭제곱항을 결정하는 것이다.
본 발명의 또다른 특징은 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 단계를 반복하는 단계에 의해 스케일링된 상수들의 모든 표현을 찾는 단계를 포함한다는데 있다.
본 발명의 또다른 특징은 상기 마스크 비트들에 매칭되는 상기 제1 변수가 설정되었는지를 검사한 이후에 상기 마스크 비트들을 왼쪽으로 쉬프트하는 단계를 더 포함하여, 이에 의해 오른쪽에 0을 삽입하여 2n + 2n-1= 2n+1 - 2n-1
의 재정렬에 이용되는 2의 거듭제곱을 증가시킨다는데 있다.
본 발명의 또다른 특징은 집합이 부분계산의 변환식들의 디스조인트(disjoint) 집합을 나타낸다는 데 있다.
본 발명의 또다른 특징은 집합이 부분계산의 변환식들의 디스조인트 집합을 나타내지 않는다는 데 있다.
본 발명의 또다른 특징은 상기 방법이 적어도 하나의 집합 각각의 변환산수들에 대한 독립적인 스케일링 항을 선택하는 단계를 더 포함하는 것이다.
본 발명의 원리에 따른 방법은, 변환중에 변환계수들의 증분계산으로부터 산출된 적어도 하나의 숫자를 테스트하는 단계와, 상기 테스트 결과에 따라 수정처치를 수행할지를 판단하는 단계와, 수정처치가 필요한 것으로 판단된 때에 수정처치를 수행하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 원리에 따른 방법의 다른 실시예는 대안적이거나 선택적인 부가적 특징을 포함한다. 본발명의 하나의 특징은 상기 판단 단계가 변환계수의 증분계산이 허용될수 없는 정밀도를 갖는 변환계슈를 산출할지 여부를 검출하는 단계를 포함하고, 상기 수정처치의 수행 단계가 적어도 하나의 숫자를 세분하는 단계를 포함하는 것이다.
본 발명의 또다른 특징은 변환은 변환행렬을 포함하고 세분은 변환상수의 증분계산의 정밀도를 증가시키기 위한 세분행렬을 적용하는 단계를 포함하는 것이다.
본 발명의 또다른 특징은 세분행렬이 I+dDm+1Dm
-1를 포함하는 것이다.
본 발명의 또다른 특징은 상기 방법이 어림계산된 변환 상수들에 근거하여 적어도 하나의 세분행렬을 생성하는 단계를 더 포함한다는 것이다.
본 발명의 또다른 특징은 적어도 하나의 세분행렬을 생성하는 단계가 오프라인에서 또는 초기화시에 수행되는 것이다.
본 발명의 또다른 특징은 세분행렬을 생성하는 단계는 근사변환이 가역(invertible)임을 인식하는 단계와, I+dDm+1Dm
-1 에 의해 주어진 세분행렬을 생성하는 단계와, 효율적 계산을 위해 상기 변환을 구조화하는 단계를 포함하는 것이다.
본 발명의 또다른 특징은 세분행렬을 생성하는 단계는 상기 변환을 생성하기 위한 변환행렬의 n번째 열의 복구가 불가능함을 인식하는 단계와, 상기 변환행렬의 일부에 대한 의사 역행렬(pseudo inverse)을 계산하는 단계와, 상기 변환행렬의 의사 역행렬을 이용하여 상기 적어도 하나의 세분행렬에 대한 근사치를 생성하는 단계를 포함하는 것이다.
본 발명의 또다른 특징은 수정처치를 수행할지를 판단하는 단계는 상기 증분계산을 종료하는 것에 의해 발생하는 오류가 허용가능한지를 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 것이다.
본 발명의 또다른 특징은 증분계산은 상기 증분계산이 선정된 범위내로 예상되는 숫자를 산출할 것이라는 판단이 이루어질 때에 종료되는 것이다.
본 발명의 또다른 특징은 상기 선정된 범위내로 예상되는 숫자는 정밀도 요구사항을 만족시키는 변환계수를 포함하는 것이다.
본 발명의 또다른 특징은 상기 증분계산은 상기 변환계수의 세분이 결과를 변화시키지 않는 것으로 판단될 때에 종료되는 것이다.
본 발명의 또다른 특징은 상기 증분계산의 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 또다른 변환계수의 중간계산치에 비교하여 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 것이다.
본 발명의 또다른 특징은 적어도 하나의 증분계산의 결과의 크기를 검사한 후에 상기 변환계수의 적어도 하나의 중간계산치가 선정된 임계치보다 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 것이다.
본 발명의 또다른 특징은 상기 판단 단계는 변환계수가 선정된 범위의 0내에 있을 것임을 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 것이다.
본 발명의 또다른 실시예에 따르면, 데이터 압축 시스템이 제공된다. 데이터 압축 시스템은, 변환식들을 이용하여 데이터를 변환계수들로 상관해제하기 위해 선형 변형을 적용시키기 위한 변환기 - 변환식들은, 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하는 단계와, 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 단계에 의해 형성되며, 스케일링항은 선정된 비용함수에 따라 선택됨 -와, 변환 계수들을 나타내는데 필요한 비트수를 줄임으로써 변환 데이터를 양자 데이터로 양자화하기 위한 양자화기를 포함한다.
본 발명의 또다른 실시예에 의하면, 프린터가 제공된다. 프린터는, 이미지 데이터를 저장하기 위한 메모리와, 압축된 프린트 스트림 출력을 제공하기 위해 이미지 데이터를 처리하기 위한 프로세서와, 이미지 데이터의 프린트아우을 생성하기 위해 프린트헤드를 제어하기 위한 프린트헤드 구동 회로를 포함하고, 프로세서는 변환식을 이용하여 데이터를 변환계수들로 상관해제하기 위해 선형 변환을 적용시 키며, 변환식들은, 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하는 단계와, 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 단계에 의해 형성되며, 스케일링항은 선정된 비용함수에 따라 선택된다.
본 발명의 또다른 실시예에 의하면, 제조물(article of manufacture)이 제공된다. 제조물은 컴퓨터에 의해 판독가능한 프로그램 저장매체를 포함하고, 상기 매체는 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하는 단계와 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 단계를 포함하고 스케일링항은 선정된 비용함수에 따라 선택되는 방법을 수행하기 위해 컴퓨터에 의해 실행될 수 있는 하나 이사의 프로그램 명령어들을 실체적으로 구현한 것이다.
본 발명의 또다른 실시예에 의하면, 데이터 분석 시스템이 제공된다. 데이터 분석 시스템은 변환식들을 적어도 2개의 변환 상수들을 갖는 적어도 하나의 집합으로 준비하고 상기 적어도 하나의 집합 내의 적어도 2개의 변환 상수들 간에 실질적으로 균일한 비율을 유지하기 위해 각 집합의 상기 적어도 2개의 변환 상수들을 스케일링항을 이용하여 독립적으로 스케일링하는 것에 의해 형성되는 변환식들 - 상기 스케일링항은 선정된 비용함수에 따라 선택됨-과, 데이터를 변환계수로 상관해제하기 위해 선형 변환을 수행하기 위해 변환식을 적용하는 변환기를 포함한다.
본 발명을 특징짓는 전술한 특징들 및 기타 다른 장점 및 특징들은 본 명세서에 첨부된 특허청구범위에 특정적으로 지정되어 있다. 그러나, 본 발명 및 본발명을 이용함으로써 얻어질 수 있는 장점들 및 목적에 대한 더 나은 이해를 위해서는 본 발명에 따른 장치의 구체적인 예들을 예시하고 설명한 도면 및 발명의 설명에 대한 참조가 이루어져야 할 것이다.
실시예들에 대한 이하의 설명에서, 본 명세서의 일부를 이루는 도면에 대한 참조가 이루어지는데, 도면은 본 발명이 실시된 구체적인 실시예를 예로 들어 도시하고 있다. 본원발명의 범주를 벗어남없이 구조적 변경이 이루어질 수 있음에 따라 다른 실시예도 이용될 수 있음을 이해할 수 있을 것이다.
본원 발명은 다수의 스케일링된 항들을 이용하는 고속 변환을 제공한다. 변환은 변환 상수에 대한 스케일링된 항들을 이용하여 독립적으로 계산되는 부-변환으로 나뉜다. 2진산술을 위한 스케일링된 항들의 최적의 표현을 찾는다. 이 방법으로 인해 고속의 변환 계산이 가능하고, 소프트웨어의 실행시간이 줄어들고 하드웨어 요구사항 또한 감소된다. 본 발명에 따르면, 신호 및 이미지 처리에서 이용되는 이산 변환은 변환 구조를 설정하고 변환이 2개 이상의 부 집합으로 계산되는 것을 허용하는 근거를 형성하는 소위 기본 함수들을 채용한다. 그런후에, 상기 계산에서 기본 계수들의 최적 표현을 찾기 위해 변환의 고속 구현을 위한 비용 함수가 이용된다.
도 1은 전형적인 이미지 압축 시스템(100)을 도시한 것이다. 데이터 압축 시스템은 3개의 밀접 결합된 구성요소들, 즉, (a) 변환기(120), (b) 양자화기(130), (c) 선택적인 엔트로피 인코더(140)를 포함한다. 압축은, 이미지 데이터를 상관해제(decorrelate)하고, 결과의 변환 계수들을 양자화하고, 원하는 경우에는, 양자화된 값들을 엔트로피 코딩하기 위해 선형 변환을 적용함으로써 달성된다. 이산 푸리에 변환(DFT), 이산 코사인 변환(DCT), 이산 파형 변환(DWT) 및 그밖의 각기 장단점을 갖는 변환들을 포함하는 다양한 선형 변환 기법들이 개발되어 왔다.
양자화기(130)는 단지 변환된 계수들의 정밀도를 줄임으로써 이들을 저장하는데 필요한 비트 수를 줄이는 것이다. 이는 다-대-일 매핑이기 때문에, 손실이 많은 프로세스이며 인코더에서 압축의 중요한 소스이기도 하다. 양자화는 각각의 개별 계수에 대하여 수행될 수 있는데, 이는 스칼라 양자화(Scalar Quantization: SQ)라 알려져 있다. 양자화는 또한 계수 집합에 함께 수행될 수 있는데, 이를 백터 양자화(Vectore Quantization:VQ)라 한다. 직면한 문제에 따라 균일 및 비균일 양자화기가 이용될 수 있다.
선택저인 엔트로피 인코더(140)는 총체적으로 더 나은 압축을 제공하기 위해 양자화된 값들을 손실없이 더 압축한다. 이는 각각의 양자화된 값들에 대해 확률을 정확하게 판단하기 위해 모델을 이용하고 이들 확률에 따라 적절한 코드를 산출하여 출력 코드 스트림 결과가 입력 스트림보다 작아질 것이다. 고속의 실행을 필요로 하는 어플리케이션의 경우에는 간단한 실행-길이 인코딩(run-length encoding: RLE)이 매우 유용한 것으로 증명되었지만, 가장 흔하게 이용되는 엔트로피 인코더는 허프만(Huffman) 인코더 및 연산 인코더이다.
용어 "이미지 변환" 은 이미지를 표현하기 위해 사용된 일원행렬(unitary matrices) 클래스를 흔히 일컫는다. 이는 이미지들이 이들 행렬을 이용하여 교호(alternate) 표현으로 변환될 수 있음을 의미한다. 이러한 변환은 변환 코딩의 기본을 형성한다. 변환 코딩은 변환으로부터의 계수들이 전송을 위해 코딩되는 프로세스이다.
신호(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월) 참조하기 바란다.)
이제, 변환의 구조를 파괴하지 않고서도 스케일을 수행할 수 있도록 해주는 수학적 근거를 보여줌으로써 독립적인 스케일링 연산의 이론적 근거를 증명하겠다. 변환을 로 정의한다. 이러한 변환이 (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에 관하여 비대칭임)이고, 이다. 이는 변환이 다음과 같이 작성되는 것을 가능하게 한다.
도 2는 JPEG 인코더(100)의 블록도를 도시한다. 도 2에서, 디지털 이미지 데이터(110)는 8 ×8 픽셀 블럭들로 나뉘어진다(112). 그리고 나서, 각 블록에 대한 이산 코사인 변환(DCT)이 계산된다(120). 이산 코사인 변환은 데이터를 중요도(예를 들면, 이미지의 시각적 품질에 대한 중요도)가 상이한 부분(또는 스팩트럼 부-밴드)으로 분리하는 것을 돕는다. DCT는 이산 푸리에 변환과 유사하여, 공간 도메인으로부터의 신호를 주파수 도메인으로 변환한다.
양자화기(130)는 양자화 행렬에 따라 DCT 계수들을 라운드 오프(round off)한다. 이러한 단계는 JPEG의 "손실" 특성을 산출하지만, 큰 압축률을 허용한다. 이미지 품질과 양자화 정도간에 절충이 필요하다. 양자화 스텝 크기가 크면 허용할 수 없을 정도의 이미지 왜곡이 발생한다. 이러한 효과는 푸리에 시리즈 계수들을 너무 거칠게(coarsely) 양자화함으로써 커다란 왜곡을 발생시키는 것과 유사하다. 한편, 미세한 양자화는 압축률을 떨어뜨린다. 문제는 DCT 계수들을 어떻게 가장 효율적으로 양자화하는 것이다. 사람들의 시력 본래의 고주파수 롤-오프(roll-off)로 인해, 고주파수는 저주파수보다 덜 중요한 역할을 한다. 이는 JPEG이 고주파수 계수들에 대해서는 훨씬 큰 스텝 크기를 이용하게 해주며, 이에 의해 눈에 띌만한 이미지 왜곡은 발생시키지 않는다. 그후에, 양자화기 계수 출력은 선택적인 엔트로피 인코더(140)에 의해 인코딩되어 출력 파일로 압축데이터 스트림(150)을 산출한다. JPEG의 경우에 엔트로피 인코더는 선택사항이 아니지만, 다른 유사한 데이터 압축 시스템들에서는 엔트로피 인코더에 필요한 CPU 사이클 없이 설계될 수 있다.
그러나, 후술하는 바와 같이, 인코더(100)의 처리율을 증가시키기 위해 곱셈 단계들를 감소시켜 이산 코사인 변환을 수행하기 위한 방법 및 장치를 제공할 필요가 있다. 후술하는 바와 같이, 본 발명에 따른 방법은 계수 행렬을 스케일링함으로써 주먹구구식 수식에서의 곱셈을 줄인다. 각각의 분리가능한 서브그룹은 다른 집합들과 개별적으로 스케일링된다. 각각의 집합 내에서, 남아있는 곱셈들은 단순한 쉬프트 및 덧셈에 의해 대체된다. 스케일링 항들은 다양한 비용 함수에 따라 선택된다. 바람직한 실시예는 덧셈 개수를 줄이고 덧셈의 최악의 개수를 줄이는 비용 함수를 이용한다. 그러나, 본 기술분야의 당업자들은 계수당 얼마나 많은 오류가 허용되는가에 따라 대안적인 비용 함수가 선택될 수 있음을 이해할 것이다. 더욱이, 본 기술 분야의 당업자들은 동일한 방법을 이용하여 역 DCT(IDCT)가 구현될 수 있어서 동일한 개수의 연산이 이용됨을 이해할 것이다.
도 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방법은 전술한 방법과 같은 계산상의 장점을 제고하지 않는다.
상수들에 대한 스케일링 항을 선택하는 것은 목표 시스템의 필요도를 나타내는 비용 함수를 이용하여 수행된다. 이러한 비용 함수에 대하여 몇가지 파라미터들이 고속 변환을 위해 확인되었다. 사용되는 실제 비용 함수는 이하의 비용 함수중 하나 또는 그들의 조합을 포함할 수 있다.
제1 비용 함수는 임의의 변환 계수(i.e., F(x))상의 가장 큰 오류가 P%보다 크지 않은 것이며, 여기서 P는 알고리즘 설계자에 의해 선택된다. 이하의 예에서, P는 1이다.
제2 비용 함수는 알고리즘 설계자에 의해 선택된 좀더 중요한 변환 상수들이 Pimportant % 오류보다 크지 않다는 것이다. 이하의 예에서, 저주파수항들의 오류는 0.1%보다 작다.
제3 비용 함수는 두가지 기준, C1 및 C2로 나뉘는데, 이들은 상이한 시스템들에 적용된다. 즉, 하나는 일반적으로 기준 C1 또는 C2중 하나를 만족시키기 위해 선택된다. 기준 C1은 쉬프트가 곱셈보다 더 효율적인 구현(예, 소프트웨어 또는 펌웨어)에 적용될 수 있다. 기준 C2는 작은 정수들을 채용하는 곱셈이 그보다 큰 정수들을 채용하는 곱셈보다 더 바람직한 구현(예, 특정 비트 수를 넘어서는 곱셈이 더 많은 사이클 이용하거나 전체 정밀도가 중요한 소프트웨어 구현)에 적용될 수 있다. 이들 두가지 기준을 설명하기 위해 구체적인 예가 주어진다. 두가지 기준 모두가 함께 이용될 수 있다.
제1 기준 C1에 따르면, 동일한 합에서 나타나는 모든 스케일링된 정수 기저 승수들(scaled integer basis multipliers) (FDCT의 경우에, 상수 C1 내지 C7, Ck=cos(kp/16)) 은 최소개수의 공통 2 거듭제곱항을 갖는 연립 2진 표현(simultaneous binary representation)을 포함하여야 한다. 즉, 집합내의 모든 표현들에 걸쳐있는 2-거듭제곱항 집합이 가능한한 작아야 한다. 실수 상수는 유리수,즉, 정수비율에 의해 근사치될 수 있다. 변환의 스케일링된 상수와 관련하여 본 명세서에서 이용되는 단어 "표현(representation)"은 이러한 정수 비율의 분자들이 2-거듭제곱의 합 및/또는 차로서 계산되는 방식을 지칭한다.
예를 들어, FDCT에서, 변환은 다음과 같은 3개의 수식 집합으로 나뉠 수 있다.
이들 수식에서 이용되는 표기는 페니베이커(Pannebaker) 책으로부터 취한 것 이다. Ss는 에 비례한다. 따라서, 집합 3의 상수들은 최소 개수의 공통 거듭제곱항을 갖는 연립 2진 표현을 포함하여야 하지만, 그들의 연립 표현은 집합 2의 상수들에서 사용된 것들과 관련없다. 집합 3에 대한 구체적인 예는 다음과 같이 주어진다.
이들의 모든 표현은 계수별로 1%보다 작은 오류를 갖는다. 이러한 예에서, 공통의 2 거듭제곱항 집합은, 상기 식에서 보는 바와 같이, {25,23,21,2
0}이다. 이들 표현은 각각의 2 거듭제곱항에 1 또는 0을 곱함으로서, 2에 관한 다항식으로 표현될 수 있다. 즉,
이들 항의 개수를 효과적으로 최소화시키는 것은 다음과 같다. 집합 3의 수식들은 이들 2의 거듭제곱항을 집단화함으로써 계산될 수 있다. 상기 기준 C1이 이용되는 구조에서, 덧셈 및 쉬프트는 곱셈보다 사이클이 적게 들기 때문에, 집합 3의 수식들을 다음과 같은 행렬연산으로 볼 수 있다.
이는 덧셈과 쉬프트를 합하여 전체 28개의 연산을 수행한다. A=d25-d34이고 B= d07+d16를 먼저 계산한다면, 수식은 다음과 같다.
미리 계산을 한 경우에는 24 사이클이 된다. 또한, 20항을 제거하게 되면, C5에 대한 오류는 약 3%까지 오르지만, 연산의 전체 개수는 20개로 줄어든다. 대부분의 멀티프로세서상에서 곱셈은 하나 이상의 사이클(4개에서 11개 사이클 사이)이 필요한데, 전술한 고속 DCT의 기수화된(odd-numbered) 계수의 계산은 합 및 차이(sum and differences)에 대한 초기 계산을 제외하고 11개의 덧셈과 4개의 곱셈을 이용함을 주목한다.
두 번째 기준 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들을 위한 쉬프트를 수행할 필요가 없다.
뒤에 있는 0들에 의해 표현되는 부가적인 크기는 필요하면, 예를 들어, 표현들중 하나 내에서 끝에 있는 1이 양자화 결정을 내리는 정밀도를 위해 "얻어질" 필요가 있는 경우에, 양자화 이전에 숫자들로 재도입될 수 있다. (20 항을 버리는 것이 가능하다고 제안한 전술한 C1 하에서의 예를 참조하기 바란다.)
도 4는 다음의 조건을 이용하여 두 번째 기준 C2에 대한 연립 표현을 찾는 방법의 흐름도(300)를 도시한다.
2n + 2n-1 = 2n+1 - 2n-1 (5)
우선, "숫자(num)"는 배열 "표현(reps)"의 "표현계수(repcount)"-1번째 요소로 설정된다(단계 310). 소정의 숫자에 대한 표현의 현재 계수가 "표현계수(repcount)"이다. 변수 "가산(add)"은 2로 초기화된다 (단계 312). 비트마스크는 이진 0 ...011로 초기화된다(단계 314).
비트들을 검사하여 마스크 비트들에 매칭되는 "숫자"의 양 비트들이 설정되었는지 판단한다 (340). 그렇지 않으면(342), 마스크는 하나씩 쉬프트되고(350), 오른쪽에 0을 삽입하고 "가산"이 하나씩 왼쪽으로 쉬프트되어 전술한 수식(5)에서 재정렬을 위해 이용되는 2의 거듭제곱을 증가시킨다. 마스크 비트들에 매칭되는 "숫자"의 양 비트들이 설정되었다면(344), 이 비트 패턴 "숫자"는 전술한 조건 (5)를 이용하여 항들의 재정렬을 수행하기 위한 후보(candidate) 표현이다. 그런 후에, "숫자"는 조건(5)에 도시된 수식에 의해 주어지는 2의 거듭제곱을 변화시키기 위해 "가산"을 "숫자"에 가산함으로써 상기 표현을 인코딩한다. (346). 이는 주먹구구식 방법(예를 들면, 표현에 대해 소모적인 검색을 수행하고 모든 0, +1, -1의 값들을 별도로 저장하는 것)에 비하여 보다 빠른 속도와 효율적인 저장을 제공한다. 새로운 표현이 얻어지고 "표현계수"는 "표현계수" +1로 설정된다 (348). 마스크는 하나씩 왼쪽으로 쉬프트된다(350).
쉬프팅은 선정된 최대개수 "최대마스크(maxmask)"에 도달할때까지 수행된다 (370). 선정된 최대개수에 도달하지 않았다면, 상기 루틴은 "숫자"가 새로운 표현으로 설정되도록 새로운 "표현계수"값을 이용하여 반복된다. 그렇지 않으면(374), 루틴은 종료한다.
표현들이 프로그램에서 코딩되는 방식에 의해, 프로그램은 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이 아닌지만을 추적하는 것으로 충분하다.
전술한 바와 같이, 본원 발명은, FDCT ( 및 IDCT)가 전술한 집합 1,2, 및 3으로 분리될 수 있는 것처럼, 항들이 디스조인트(disjoint) 수식 집합들로 알맞게 분리되지 않는 변환에 대해서도 작용한다. 전술한 바와 같이, 용어 "디스조인트"는 수식 집합에 관련하여 본 명세서에서 이용될 때, 2개의 디스조인트 수식 집합내의 수식들간에 공통되는 변환 상수가 없음을 의미한다. 상수들을 위해 전술한 2의 거듭제곱의 이진 표현이 이용되는 경우에, 임의로 또는 몇몇 비용함수에 따라 변환의 수식 집합을 고름으로써, 그리고, 각 집합내의 상수들에 대한 독립적인 스케일링 항을 선택함으로써, 변환 상수 표현을 위한 2의 거듭 제곱항을 그룹핑(grouping)함으로써 속도 개선은 여전히 이루어질 수 있다. 임의의 수식 집합의 계수들을 위한 표현을 찾기 위한 기준을 원할 것이다. 이는 변환 상수가 디스조인트 수식 집합들로 그룹화되기 때문에 변환이 이들 집합으로 나뉘어질때 특히 잘 작용한다.
이하는 우리가 상이한 그룹핑을 이용하는 FDCT를 이용한 예이다.
이제, 집합 (6)의 스케일링 항이 얻어질 수 있으며, 상기 집합의 3개의 계산을 수행하기 위한 C1,C3,C4,C5,C7에 대한 연립 표현이 찾아질 수 있다. 그런 후에, 집합 (8)에 대한 상이한 스케일링 항과 이들 수식을 위한 C1,C3,C5,C7
에 대한 연립 표현이 찾아질 수 있는데, 이들 표현은 집합(6)의 계산을 위해 이용된 표현들과는 매우 상이하다.
도 5는 변환 계산을 신속히 수행하고 실행시간을 감소시키기 위해 수정처치를 이용하여 보다 신속한 변환을 제공하기 위한 흐름도(300)를 도시한다. 변환내의 변환 상수들을 이용하는 증분 계산으로부터 나온 적어도 하나의 숫자가 테스트된다(310). 그런 후에, 테스팅 결과에 기초하여, 수정처치를 언제 수행할지를 판단한다(320). 수정처치가 수행될 것으로 판단되면, 수정처치가 수행된다(330).
각각의 dDk가 D에 의해 수행된 변환에 적어도 하나의 부가적인 비트 정밀도를 추가할 때, 세분(refinement)의 제1 예가 발생한다. 제2 예는 변환 백터 의 적어도 한 요소가 매우 작은 것으로 가정될 때 발생하여, dDk의 전체 행이 0으로 근사치되어, F의 적어도 한 요소 계산을 건너뛸 수 있도록 해준다.
제1 예에서, 모든 Dk가 가역인 (invertible) 경우, 즉, DkDk
-1=D
k
-1Dk=1, 항등행렬 (상위 왼쪽으로부터 하위 오른쪽 대각선상은 1이고 나머지는 0임)이 되는 매트릭스 D인 경우가 종종 있다. 이러한 경우에, 다음과 같이 표기될 수 있다.
(여기서, I는 항등행렬이다.) 즉, 변환된 계수들에 하나 이상의 변환 단계를 수행함으로써 정밀도의 추가 단계가 제공된다. 이러한 추가적인 단계를 이용하여, 정밀도를 가산하는 변환은 본 발명에서 제공되는 세분의 제1 실시예인데, 이는 IDCT 및 후속하는 DCT 모두에 대한 수행을 절약해주기 때문이다. (I+dDm+1Dm
-1)에 대한 행렬은 행렬 Rm+1로서 먼저 계산될 수 있어서, 에 대한 단일-단계 변환이 된다.
세분의 제2 예는 다른 방식을 필요로 한다. 2차원 변환이 이미 제1 차원, FD1에서 높은 정밀도로 수행되었고, dD0는 8번째 행이 0이며, dD
1= D- dD0인 구체적인 예를 고려해본다. 그러면, dD0는 비-가역(not invertible)이다. 즉, dD
0FD1로부터 FD1의 원래 8번째열을 복구할 수 있는 방법이 없다 (이는 dD0FD1
로부터 FD1를 알 아내는 것은 8개의 알려지지 않은 수식의 7개 수식으로 간주될 수 있다는 사실에 따른다). 그러나, FD1의 8열중 한 열에 대한 가정이 이루어진다면, 그밖의 7개열은 8번째 열에 대한 가정을 조건으로 하여, dD0FD1로부터 추정될 수 있다. 높은 숫자로 매겨진(higher-numbered) 변환 값들이 실제 이미지에서는 낮은 숫자로 매겨진 변환 값들보다 덜 중요하게 여겨지는 경향이 있기 때문에, 8번째 열은 0으로 근사치될 수 있는 작은 요소들을 포함한다고 합리적으로 가정한다. 그러면, dD0는 8 x 7 행렬(0의 행은 무시함)로서 처리될 수 있으며, (문헌에 공지되어 있는 바와 같이) 의사(pseudo)-역 행렬, 는 다음과 같이 파악된다.
여기서, 상기 가정된 8번째 계수들을 위해 0으로 이루어진 8번째 행이 삽입되었다. 이는 dD0
-1에 대한 8x8 근사치를 제공하므로, 우리는 =(I+`dD1
)을 어림할 수 있다.
이러한 근사치 세분은 본 발명에 따른 세분의 제2 실시예이며, 이는 제1예에서와 같이 IDCT 및 이에 따른 DCT의 사이클을 절약해준다.
계산 결과가 너무 작다고 예측될 때 사이클을 절약하기 위해 계산의 완료 이전에 계산이 종료될 수 있는 시점을 판단하기 위해 중지 절차가 이용되어, 계산 결과는 0으로 양자화될 것이다. 중지 절차 응용의 한 예가 전술한 예에서 나타나는 데, 적어도 하나의 작은 크기의 변환계수가 계산되지 않아서, 변환 행렬의 대응 행 또는 행들을 0으로 설정하는 것과 기본적으로 동등한 경우이다. 또다른 예는 부가적인 변환 정밀도가 변환값들에 무시할 만한 부가 정보를 제공하는 것으로 예측될 때, 예를 들면, 계산 결과가 작은 것으로 예측될 때, 정밀도를 제한하여 계산을 중단하는 것이다. 대안적인 방법은 변환에 대한 입력 일부에 대한 합 및/또는 차이의 크기를 테스트하는 것과 관련된다. 예를 들어, FDCT의 경우에, 다음의 수식은 제2 변환 계수를 계산한다.
여기서, 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의 모든 수식으로 확대될 수 있다.
(벡터 또는 행렬 의 요소들에 대한 항별 범위 검사, 여기서 의 요소들은 모두 네거티브가 아님)와 같은 비교식이 F 요소들의 항별 비교인 -T < F < T(여기서, T의 요소들은 모두 네거티브가 아니며, F에 대한 테스트를 만족시키 는 것은 에 대한 테스트를 만족시키기에 충분함)로 어떻게 바뀌는지에 대해서는 자명하지 않다. DCT는 포지티브 및 네거티브 연산 모두를 채용하고, 이는 수식에서의 항별 정렬을 파괴하는 사실로 인해 어려움이 발생한다. 구체적으로, - < < 가 < < 를 의미한다고 말할 수 없다.
따라서, 중지는 부가적인 변환 정밀도가 이후의 처리 연산(예, 양자화 또는 비교) 결과에 받아들여질만한 또는 무시할만한 효과를 주는 것으로 예측될 때 연산 정밀도를 종료하는 것에 관련되다. 예를 들어, DCT의 계수가 정수에 의해 스케일링될 수 있고 2의 거듭제곱의 합으로 근사치될 수 있다. 기수 항들의 경우에, 이들 근사화의 한 예는 다음과 같다.
우리는 (전술한 표기를 이용하여) 다음과 같이 작성한다.
또한, 전술한 바와 같이, 전술한 행렬 모두 그리고 그들의 순차적인 합들은 가역이다(invertible). 이제, << 인 경우에, 즉, 의 j번째 요소가 크기면에서 매우 작은 경우에, j(32dD0F)는 작아야 한다. 그렇지 않으면, j((8dD1
+2dD2+dD3)F)는 최종 결과를 작게 하기 위해, 그것을 취소시키지 못할 것이다. 계산 결과의 상대적인 크기가 검사될 수 있다. 하나의 중간 정밀도에 대해, 하나의 변환된 값이 다 른 값들에 비해 작거나, 임의의 선정된 임계치에 비해 작다면, 변환 값에 대한 후속 세분은 중지될 수 있다.
도 6은 본원 발명에 따라 변환계산 프로세스를 더 반복하는 것을 중지하는 중지 방법의 흐름도(400)를 도시한다. 도 6에서, 적어도 하나의 증분 계산된 숫자가 테스트된다(410). 일정한 기준이 충족되면, 더 이상의 계산은 중지된다(420). 변환계수의 증분계산은 증분계산의 중지로 인해 발생하는 오류가 허용가능할 때 중지될 수 있다. 예를 들어, 증분 계산이 선정된 범위내로 예상되는 수, 예를 들면, 정밀도 요구사항을 만족시키는 변환계수를 산출할 것이라는 판단이 이루어지면 증분 계산은 종료될 수 있다. 대안적으로, 변환 계수 증분 계산은 변환계수가 선정된 0의 범주(predetermined range of zero) 내에 있을 경우에 중지될 수 있다.
도 7은 적어도 하나의 증분계산된 수의 테스트에 관한 흐름도(500)이다. 도 7에서, 변환계수의 세분이 결과를 변경시키지 않을 시점을 판단하기 위해 증분 계산이 테스트된다(510). 이러한 테스트는 도 7에 도시된 바와 같이 적어도 2가지 방식으로 수행될 수 있다. 증분계산 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 또다른 변환계수의 중간계산치에 비해 작을 때, 변환계수의 세분은 상기 결과를 변경시키지 않는 것으로 판단될 수 있다(520). 대안적으로, 증분계산 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 선정된 임계값보다 작을 때, 변환계수에 대한 세분은 상기 결과를 변경시키지 않는 것으로 판단될 수 있다(530).
도 8은 본 발명에 따른 세분 방법의 흐름도(600)이다. 우선, 변환이 더 나 은 정밀도를 필요로 하는지에 대한 판단을 수행한다(610). 변환은 변환 행렬로서, 변환계수의 증분계산의 정밀도를 증가시키기 위해 세분 행렬이 이용될 수 있다. 좀더 나은 정밀도를 필요로 하는 경우에, 세분 행렬이 변환에 적용된다(620). 세분 행렬은 오프라인 또는 초기화시점에 생성되며, 어림계산된 변환 상수에 기초한다.
도 9는 세분 행렬을 생성하기 위한 제1 방법의 흐름도(700)이다. 우선, 근사 변환은 가역임이 인식된다(710). I+dDm+1Dm
-1에 의해 주어지는 세분 행렬이 생성된다(720). 그리고 나서, 효율적인 계산을 위해 변환이 구조화된다(730).
그러나, 전술한 바와 같이, dD0가 비-가역이면, dD0FD1
로부터 FD1의 원래 8번째 열을 복구할 수 없다. 도 10은 dD0가 비-가역인 경우에 세분 행렬을 생성하는 제2 방법을 도시한 흐름도(800)이다. 우선, 변환을 생성하기 위한 변환행렬의 n번째 열의 복구가 불가능함이 인식된다(810). 변환행렬 부분의 의사 역행렬(pseudo inverse)이 계산된다(820). 그런 후에, 세분 행렬의 근사치가 변환 행렬의 의사 역행렬을 이용하여 생성된다(830). 세분 행렬의 근사치는 I+ dD1
로 이루어진다.
도 11은 본 발명에 따른 프린터(420)의 블록도(400)를 도시한다. 도 11에서, 프린터(420)는 호스트 프로세서(410)로부터 이미지 데이터(412)를 수신한다. 이미지 데이터(412)는 메모리(430)에 제공되는데, 상기 이미지 데이터는 8X8 블록 샘플로 구성될 수 있다. 8X8 블록 샘플은 라스터(raster) 이미지 프로세서와 같은 프로세서(440)에 의해 처리된다. 라스터 이미지 프로세서(440)는 프린트헤드 구동 회로(450)에 이미지 데이터를 나타내는 압축 인쇄 스트림을 제공한다. 인쇄헤드 구동 회로(450)는 다음에 프린트헤드(460)를 제어하여 이미지 데이터의 출력물(470)을 생성한다.
도 1 내지 4를 참조하여 설명된 프로세스는 도 11에 도시된 하나 이상의 고정 및/또는 이동형 데이터 저장 장치와 같은 컴퓨터 판독가능 매체 또는 캐리어(490) 또는 기타 저장장치 또는 데이터 통신장치들에 유형으로 구현될 수 있다. 컴퓨터 프로그램이 메모리(492)로 로드되어 도 11의 프로세서(440)를 실행시킨다. 컴퓨터 프로그램은 도 11의 프로세서에 의해 판독되고 실행될 때 프로세서(440)가 본 발명의 단계 또는 요소들을 실행시키는데 필요한 단계들을 수행하도록 하는 명령어들을 포함한다.
도 12는 본 발명에 따른 데이터 분석 시스템(500)을 도시한다. 도 12에서, 변환기(510)는 변환식(520)을 이용하여 변환 데이터(524)를 생성한다. 변환식(520)은 적어도 2개의 변환 상수들을 갖는 적어도 하나의 부-변환식으로 나뉜다. 각 집합의 최소한 둘 이상의 변환 상수들은 스케일링 항으로 독립적으로 스케일링되어 적어도 한 집합내의 최소한 둘 이상의 상수들간에 실질적으로 균등한 비율을 유지되는데, 여기서 스케일링항은 선정된 비용 함수에 따라 선택된다. 그 다음에, 변환 데이터(524)는 양자화기(530)에 의해 선택적으로 양자화될 수 있다. 양자화기(530)의 양자화 값은 각 계수에 대해 이용되는 스케일링 항을 반영하기 위 해 조정된다.
도 13은 본원 발명에 따른 또다른 데이터 분석 시스템(600)을 도시한다. 도 13에서, 변환기(610)는 분석될 데이터 블록(612)을 수신한다. 변환기(610)는 변환식(620)을 이용하여 변환데이터(624)를 생성한다. 변환식(620)은 최소한 2개의 변환 상수들을 갖는 적어도 하나의 부-변환식으로 나뉜다. 각 집합의 최소한 둘 이상의 변환 상수들은 스케일링 항으로 독립적으로 스케일링되어 적어도 한 집합내의 최소한 둘 이상의 상수들간에 실질적으로 균등한 비율을 유지되는데, 여기서 스케일링항은 선정된 비용 함수에 따라 선택된다. 그 다음에, 변환 데이터(624)는 비교기(630)에서 스케일링된 비교값들에 비교된다.
본 발명의 예시적인 실시예에 대한 전술한 설명은 설명 및 예증의 목적으로 제공되었다. 개시된 형태로만 본 발명이 제한되는 것은 아니다. 전술한 설명과 관련하여 다양한 변경 및 변형이 가능하다. 본 발명의 범위는 전술한 상세한 설명에 의해 한정되는 것이 아니라 첨부된 청구항들에 의해 한정될 것이다.
Claims (36)
- 데이터 처리 시스템에서 수행되는 고속 이산 변환 방법에 있어서,이산 변환식들을 적어도 2개의 집합(collection)들 - 상기 집합들 중 적어도 하나는 적어도 2개의 이산 변환식들을 포함하고, 상기 적어도 2개의 이산 변환식들은 적어도 2개의 이산 변환 상수들을 포함함 - 로 준비하는(arrange) 단계와;하나의 집합 내의 각 이산 변환 상수들을 상기 집합으로부터의 하나의 이산 변환 상수(스케일링 항)로 나누는 것에 의해, 상기 하나의 집합 내의 이산 변환식들을 스케일링(scaling)하는 단계와;상기 각 스케일링된 이산 변환 상수들을 2의 제곱항들의 합들 - 상기 2의 제곱항들의 합들은 상기 스케일링된 이산 변환 상수들의 근사치를 구하기 위하여 계산된 값들임 - 로 표현(represent)하는 단계를 포함하는 고속 이산 변환 방법.
- 삭제
- 삭제
- 제1항에 있어서, 데이터를 적어도 하나의 블록으로 분리하는 단계와, 상기 적어도 하나의 집합내의 적어도 2개의 변환 상수들간에 실질적으로 균일한 비율을 유지하기 위해 적용된 수식들을 이용하여 상기 블록을 변환 데이터로 변환시키는 단계를 더 포함하는 고속 이산 변환 방법.
- 제1항 또는 제4항에 있어서, 상기 스케일링 항들은 선정된 비용 함수에 따라 선택되는 고속 이산 변환 방법.
- 제5항에 있어서, 임의의 변환 계수에 대한 가장 큰 오류가 선정된 오류 비율보다 크지 않도록 상기 스케일링항을 선택함으로써 선정된 비용 함수를 판단하는 단계를 더 포함하는 고속 이산 변환 방법.
- 제5항에 있어서, 선정된 변환 상수가 선정된 오류 비율보다 작거나 같도록 상기 스케일링 항을 선택함으로써 상기 선정된 비용 함수를 판단하는 단계를 더 포함하는 고속 이산 변환 방법.
- 제5항에 있어서, 집합의 모든 변환 상수가 선정된 특성을 갖는 연립 이진 표현(simultaneous binary representations)을 갖도록 스케일링 항 및 표현을 선택함으로써 선정된 비용 함수를 판단하는 단계를 더 포함하는 고속 이산 변환 방법.
- 제8항에 있어서, 집합의 모든 변환 상수가 최소개수의 공통되는 2-거듭제곱항을 갖는 연립 이진 표현을 갖도록 스케일링 항 및 표현을 선택하는 단계는 이진산술쉬프트가 곱셈 연산보다 효율적일 때 구현되는 고속 이산 변환 방법.
- 제1항, 제4항, 제6항 내지 제9항 중 어느 한 항에 있어서, 상기 스케일링된 상수들의 모든 표현은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 단계를 반복하는 단계를 포함하는 단계들에 의해 찾아지는 고속 이산 변환 방법.
- 제10항에 있어서, 상기 마스크 비트들에 매칭되는 상기 제1 변수가 설정되었는지를 검사한 이후에 상기 마스크 비트들을 왼쪽으로 쉬프트하는 단계 - 이에 의해 오른쪽에 0이 삽입되고 2n + 2n-1 = 2n+1 - 2n-1의 재정렬에 이용되는 2의 거듭제곱이 증가됨 - 를 더 포함하는 고속 이산 변환 방법.
- 제9항에 있어서, 상기 선정된 특성은 최대 집단화된 0이 아닌(non-zero) 2-거듭제곱항들을 포함하는 고속 이산 변환 방법.
- 제12항에 있어서, 집합의 모든 변환 상수가 최대 집단화된 0이 아닌 2-거듭제곱항들을 갖는 연립 이진 표현을 갖도록 스케일링 항을 선택하는 단계는 작은 정수들을 채용한 곱셈 연산이 더 큰 정수들을 채용하는 곱셈보다 바람직할 때 구현되는 고속 이산 변환 방법.
- 제13항에 있어서, 상기 상수를 나타내는 2-거듭제곱 다항식의 계수가 0이 아닌지가 추적되는 고속 이산 변환 방법.
- 제14항에 있어서, 상기 비트 위치의 값은 상기 2-거듭제곱항을 판단하는 고속 이산 변환 방법.
- 제12항 또는 제13항에 있어서, 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번째 요소로 증가시키는 단계와,g) 상기 비트마스크 및 제2 변수를 왼쪽으로 한 비트 쉬프트시키는 단계와,h) 단계 d 내지 g 단계를 반복하는 단계들에 의해 상기 스케일링된 상수들의 모든 표현을 찾는 단계를 포함하는 고속 이산 변환 방법.
- 제16항에 있어서, 상기 마스크 비트들에 매칭되는 상기 제1 변수가 설정되었는지를 검사한 이후에 상기 마스크 비트들을 왼쪽으로 쉬프트하는 단계- 이에 의해 오른쪽에 0이 삽입됨-와, 2n + 2n-1= 2n+1 - 2n-1의 재정렬에 이용되는 2의 거듭제곱을 증가시키는 단계를 더 포함하는 고속 이산 변환 방법.
- 제1항에 있어서, 상기 집합은 부분적인 계산의 변환식들의 디스조인트(disjoint) 집합을 나타내는 고속 이산 변환 방법.
- 제1항에 있어서, 상기 집합은 부분적인 계산의 변환식들의 디스조인트(disjoint) 집합을 나타내지 않는 고속 이산 변환 방법.
- 제19항에 있어서, 상기 적어도 하나의 집합내의 상기 변환 상수들을 위한 독립적인 스케일링 항을 선택하는 단계를 더 포함하는 고속 이산 변환 방법.
- 제1항에 있어서,변환중에 변환 계수들의 증분계산으로부터 발생한 적어도 하나의 숫자를 테스트하는 단계와,상기 테스트 결과에 근거하여 수정처치(corrective action)를 수행할지를 판단하는 단계와,수정처치가 필요하다고 판단되는 경우에 수정처치를 수행하는 단계를 포함하는 고속 이산 변환 방법.
- 제21항에 있어서, 상기 수정처치를 수행할지를 판단하는 단계는 상기 변환계수의 증분계산이 허용가능하지 않은 정밀도를 갖는 변환계수들을 산출하는지를 검출하는 단계를 포함하고 상기 수행 단계는 상기 적어도 하나의 숫자를 세분하는 단계를 포함하는 단계를 포함하는 고속 이산 변환 방법.
- 제22항에 있어서, 상기 변환은 변환행렬을 포함하고, 상기 세분 단계는 상기 변환 상수들의 증분계산의 정밀도를 증가시키기 위한 세분 행렬을 적용시키는 단계를 포함하는 고속 이산 변환 방법.
- 제23항에 있어서, 상기 세분행렬은 I+dDm+1Dm -1를 포함하는 고속 이산 변환 방법.
- 제21항에 있어서, 어림계산된 변환 상수들에 근거하여 적어도 하나의 세분행렬을 생성하는 단계를 더 포함하는 고속 이산 변환 방법.
- 제25항에 있어서, 적어도 하나의 세분행렬을 생성하는 단계는 오프라인에서 또는 초기화시에 수행되는 고속 이산 변환 방법.
- 제25항에 있어서, 상기 적어도 하나의 세분행렬을 생성하는 단계는 근사변환이 가역(invertible)임을 인식하는 단계와, I+dDm+1Dm -1 에 의해 주어진 세분행렬을 생성하는 단계와, 효율적 계산을 위해 상기 변환을 구조화하는 단계를 포함하는 고속 이산 변환 방법.
- 제25항에 있어서, 상기 적어도 하나의 세분행렬을 생성하는 단계는상기 변환을 생성하기 위한 변환행렬의 n번째 열의 복구가 불가능함을 인식하는 단계와,상기 변환행렬의 일부에 대한 의사 역행렬(pseudo inverse)을 계산하는 단계와,상기 변환행렬의 의사 역행렬을 이용하여 상기 적어도 하나의 세분행렬에 대한 근사치를 생성하는 단계를 포함하는 고속 이산 변환 방법.
- 제21항에 있어서, 수정처치를 수행할지를 판단하는 단계는 상기 증분계산을 종료하는 것에 의해 발생하는 오류가 허용가능한지를 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 고속 이산 변환 방법.
- 제30항에 있어서, 상기 증분계산은 상기 증분계산이 선정된 범위내로 예상되는 숫자를 산출할 것이라는 판단이 이루어질 때에 종료되는 고속 이산 변환 방법.
- 제31항에 있어서, 상기 선정된 범위내로 예상되는 숫자는 정밀도 요구사항을 만족시키는 변환계수를 포함하는 고속 이산 변환 방법.
- 제31항에 있어서, 상기 증분계산은 상기 변환계수의 세분이 결과를 변화시키지 않는 것으로 판단될 때에 종료되는 고속 이산 변환 방법.
- 제33항에 있어서, 상기 증분계산의 결과의 상대적 크기를 검사한 후에 적어도 하나의 변환계수의 중간계산치가 또다른 변환계수의 중간계산치에 비교하여 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 고속 이산 변환 방법.
- 제33항에 있어서, 적어도 하나의 증분계산의 결과의 크기를 검사한 후에 상기 변환계수의 적어도 하나의 중간계산치가 선정된 임계치보다 작을 때 상기 변환계수의 세분이 상기 결과를 변화시키지 않는 것으로 판단되는 고속 이산 변환 방법.
- 제21항에 있어서, 상기 판단 단계는 변환계수가 선정된 범위의 0내에 있을 것임을 판단하는 단계를 더 포함하고 상기 수정처치를 수행하는 단계는 상기 변환계수의 증분계산을 중지하는 단계를 포함하는 고속 이산 변환 방법.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/694,455 US6961473B1 (en) | 2000-10-23 | 2000-10-23 | Faster transforms using early aborts and precision refinements |
US09/694,455 | 2000-10-23 | ||
US09/694,452 US7007054B1 (en) | 2000-10-23 | 2000-10-23 | Faster discrete cosine transforms using scaled terms |
US09/694,448 US6766341B1 (en) | 2000-10-23 | 2000-10-23 | Faster transforms using scaled terms |
US09/694,448 | 2000-10-23 | ||
US09/694,452 | 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 KR20030072338A (ko) | 2003-09-13 |
KR100545445B1 true KR100545445B1 (ko) | 2006-01-24 |
Family
ID=27418597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037005430A KR100545445B1 (ko) | 2000-10-23 | 2001-10-23 | 스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 이산 변환 방법 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1352336A4 (ko) |
JP (1) | JP2004523815A (ko) |
KR (1) | KR100545445B1 (ko) |
CN (1) | CN100429644C (ko) |
WO (1) | WO2002035380A1 (ko) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101315600B1 (ko) | 2009-06-05 | 2013-10-10 | 퀄컴 인코포레이티드 | 미디어 코딩을 위한 4×4 변환 |
KR101315565B1 (ko) | 2009-06-24 | 2013-10-10 | 퀄컴 인코포레이티드 | 미디어 데이터 코딩을 위한 16-포인트 변환 |
US8718144B2 (en) | 2009-06-24 | 2014-05-06 | Qualcomm Incorporated | 8-point transform for media data coding |
US8762441B2 (en) | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
US9081733B2 (en) | 2009-06-24 | 2015-07-14 | Qualcomm Incorporated | 16-point transform for media data coding |
US9110849B2 (en) | 2009-04-15 | 2015-08-18 | Qualcomm Incorporated | Computing even-sized discrete cosine transforms |
US9118898B2 (en) | 2009-06-24 | 2015-08-25 | 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 |
Families Citing this family (2)
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 |
KR101834825B1 (ko) * | 2009-01-27 | 2018-03-06 | 톰슨 라이센싱 | 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1207346B (it) * | 1987-01-20 | 1989-05-17 | Cselt Centro Studi Lab Telecom | Sformata coseno discreta a coeffi circuito per il calcolo della tra cienti quantizzati di campioni di segnale numerico |
US5394349A (en) * | 1992-07-10 | 1995-02-28 | Xing Technology Corporation | Fast inverse discrete transform using subwords for decompression of information |
JP3185413B2 (ja) * | 1992-11-25 | 2001-07-09 | ソニー株式会社 | 直交変換演算並びに逆直交変換演算方法及びその装置、ディジタル信号符号化及び/又は復号化装置 |
CA2171335A1 (en) * | 1993-11-30 | 1995-06-08 | Munib A. Wober | Coding methods and apparatus for scaling and filtering images using discrete cosine transforms |
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 |
EP1311975A1 (en) * | 1999-03-17 | 2003-05-21 | The Johns-Hopkins University | A fast multiplierless transformation |
-
2001
- 2001-10-23 CN CNB018177980A patent/CN100429644C/zh not_active Expired - Fee Related
- 2001-10-23 JP JP2002538296A patent/JP2004523815A/ja active Pending
- 2001-10-23 KR KR1020037005430A patent/KR100545445B1/ko not_active IP Right Cessation
- 2001-10-23 WO PCT/US2001/027778 patent/WO2002035380A1/en active IP Right Grant
- 2001-10-23 EP EP01981308A patent/EP1352336A4/en not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110849B2 (en) | 2009-04-15 | 2015-08-18 | Qualcomm Incorporated | Computing even-sized discrete cosine transforms |
KR101315600B1 (ko) | 2009-06-05 | 2013-10-10 | 퀄컴 인코포레이티드 | 미디어 코딩을 위한 4×4 변환 |
US8762441B2 (en) | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
US9069713B2 (en) | 2009-06-05 | 2015-06-30 | Qualcomm Incorporated | 4X4 transform for media coding |
KR101315565B1 (ko) | 2009-06-24 | 2013-10-10 | 퀄컴 인코포레이티드 | 미디어 데이터 코딩을 위한 16-포인트 변환 |
US8718144B2 (en) | 2009-06-24 | 2014-05-06 | 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 |
US9081733B2 (en) | 2009-06-24 | 2015-07-14 | Qualcomm Incorporated | 16-point transform for media data coding |
US9118898B2 (en) | 2009-06-24 | 2015-08-25 | Qualcomm Incorporated | 8-point transform for media data coding |
US9319685B2 (en) | 2009-06-24 | 2016-04-19 | Qualcomm Incorporated | 8-point inverse discrete cosine transform including odd and even portions for media data coding |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
Also Published As
Publication number | Publication date |
---|---|
WO2002035380A1 (en) | 2002-05-02 |
CN100429644C (zh) | 2008-10-29 |
EP1352336A1 (en) | 2003-10-15 |
CN1471674A (zh) | 2004-01-28 |
EP1352336A4 (en) | 2006-09-06 |
KR20030072338A (ko) | 2003-09-13 |
JP2004523815A (ja) | 2004-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10382789B2 (en) | Systems and methods for digital media compression and recompression | |
KR100545445B1 (ko) | 스케일링 항, 초기 중지 및 정밀도 세분을 이용한 고속 이산 변환 방법 | |
US7379500B2 (en) | Low-complexity 2-power transform for image/video compression | |
CN108200439B (zh) | 提高数字信号变换性能的方法及数字信号变换方法和装置 | |
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 | |
Emara et al. | Image compression using advanced optimization algorithms | |
US7421139B2 (en) | Reducing errors in performance sensitive transformations | |
Shah et al. | A review of contemporary image compression techniques and standards | |
Minasyan et al. | An image compression scheme based on parametric Haar-like transform | |
US7489826B2 (en) | Compensating for errors in performance sensitive transformations | |
Annalakshmi | Lossy image compression techniques | |
US7430332B2 (en) | Approximations used in performance sensitive transformations which contain sub-transforms | |
Yan et al. | Digital Image Compression | |
Li et al. | Lossy compression algorithms | |
Grosse et al. | Improved coding of transform coefficients in JPEG-like image compression schemes | |
Paim et al. | Exploring approximations in 4-and 8-point DTT hardware architectures for low-power image compression | |
Meher et al. | Near lossless image compression using lossless Hartley like transform | |
Roy et al. | VQ-DCT based image compression: a new hybrid approach | |
Vychuzhanin et al. | Method for Processing and Assessing the Degree of Digital Image Compression Based on Haar Transformation. | |
JP4315431B2 (ja) | 直交変換器、逆直交変換器、直交変換方法及び逆直交変換方法 | |
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 |