KR20000034993A - 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템 - Google Patents

현상 표시 변환 데이터의 디지털 처리 방법 및 시스템 Download PDF

Info

Publication number
KR20000034993A
KR20000034993A KR1019990044264A KR19990044264A KR20000034993A KR 20000034993 A KR20000034993 A KR 20000034993A KR 1019990044264 A KR1019990044264 A KR 1019990044264A KR 19990044264 A KR19990044264 A KR 19990044264A KR 20000034993 A KR20000034993 A KR 20000034993A
Authority
KR
South Korea
Prior art keywords
data
transform
inverse
high precision
integer
Prior art date
Application number
KR1019990044264A
Other languages
English (en)
Other versions
KR100357658B1 (ko
Inventor
브라이트마틴제임스
미첼조안라버느
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR20000034993A publication Critical patent/KR20000034993A/ko
Application granted granted Critical
Publication of KR100357658B1 publication Critical patent/KR100357658B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

본 발명은 디지털 처리에서 오차 열화 데이터(error degraded data)를 채용함으로 인한 문제점 해결에 관한 것이다. 본 발명은 특히 반올림 오차(rounding errors)와 클리핑 오차(clipping errors)로 인한 어떠한 처리도 하지 않고, 역변환 및 정변환 주기 중에 변환 데이터가 열화되는 다중 세대 문제(multi-generation problem)를 해결한다. 본 발명은 변환 코딩 데이터(transformed-coded data)의 오차 절감 처리(reduced-error processing) 방법, 시스템 및 장치를 제공한다. 변환 데이터를 역변환한 후, 고정밀도 숫자(high-precision numbers)가 조작된다. 정수로의 변형(converting)과 허용된 범위로의 클리핑(clipping) 단계가 조작 중 임의의 단계에서 수행되어 데이터의 디스플레이와 같은 역변환 데이터(inverse transformed data)의 정수 표시(integer representation)를 얻는다. 그러나, 변환 영역으로의 정변환을 포함하는 후속의 처리는 고정밀도 숫자에 대해 수행된다. 따라서, 반올림 및 클리핑 오차는 처리 데이터(processed data) 내에 존재하지 않는다. 본 발명은 디지털 변환 데이터를 채용하는 많은 응용에 유리할 뿐 아니라, MPEG 코딩, JPEG 코딩, 웨이브렛 코딩 비디오 및 오디오 데이터의 편집 중에 디지털 스튜디오에서 사용하기에 특히 유리하다.

Description

현상 표시 변환 데이터의 디지털 처리 방법 및 시스템{REDUCED-ERROR PROCESSING OF TRANSFORMED DIGITAL DATA}
본 발명은 본 출원과 동일자로 출원된, 발명자 제이 미첼(J. Mitchell) 등의 "Transform-domain correction of real-domain errors"라는 명칭의 대리인 관리 번호 YO998-372 및 발명자 엠 브라이트 등의 "Error reduction in transformed digital data"라는 명칭의 대리인 관리 번호 YO998-373과 관련있으며, 본 명세서에서 전체적으로 참조로서 인용한다.
본 발명은 디지털 데이터의 변환 코딩(transform coding)에 관한 것이다. 보다 구체적으로, 본 발명은 재변환된 역변환 데이터의 오차 절감 디지털 처리(reduced-error digital processing)에 관한 것이다.
변환 코딩은 광범위한 데이터 코딩 기법 계열의 명칭으로서, 이 기법에서 코딩될 각각의 데이터 블럭은 후속 처리를 하기 전에 수학적 함수에 의해 변환된다. 데이터 블럭은 코딩 중인 데이터 객체의 일부일 수도 있고, 객체 전체일 수도 있다. 데이터는 일반적으로 어떤 현상을 나타내는데, 이는 예를 들어, 스펙트럼 분석(spectral or spectrum analysis), 영상, 오디오 클립(audio clip), 비디오 클립(video clip) 등일 수 있다. 변환 함수는 보통 코딩 중인 현상의 소정 품질을 반영하도록 선택되는데, 예를 들어, 오디오, 정지 영상, 이동 영상을 코딩할 때에는 푸리에 변환(Fourier transform)이나 이산 코사인 변환(Discrete Cosine Transform : DCT)을 이용하여 데이터를 주파수 항이나 계수로 분석할 수 있다. 코딩 중인 현상이 주어지면, 일반적으로 정보는 몇몇 주파수 계수에 집약된다. 따라서, 원래 데이터보다 변환 데이터(transform data)가 보다 경제적으로 인코딩되거나 압축되는 일이 종종 있을 수 있다. 이는 변환 코딩을 사용하여 소정 유형의 데이터를 압축함으로써 저장 공간이나 통신 링크를 통한 전송 시간을 최소화할 수 있음을 의미한다.
사용되고 있는 변환 코딩의 예로는 ITU-T Rec. T.81 (1992) ISO/IEC 10918-1:1994, "Information technology - Digital compression and coding of continuous-tone still images, Part 1 : Requirements and Guidelines"에서 규정한 것과 같은 정지 영상 압축을 위한 JPEG(Joint Photographic Experts Group) 국제 표준이 있다. 다른 예로는 ISO/IEC 11172:1993, "Information Technology - Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbits/s"에서 규정한 것과 같은 이동 영상 압축을 위한 MPEG(Moving Pictures Experts Group) 국제 표준이 있다. 이러한 MPEG-1 표준은 비디오 압축(표준의 제 2 부)과 오디오 압축(제 3 부) 양자를 위한 시스템을 규정한다. 보다 근래의 MPEG 비디오 표준(MPEG-2)은 ITU-T Rec. H.262 ISO/IEC 13818-2 : 1996, "Information Technology-Generic Coding of moving pictures and associated audio -- Part 2 : Video"에 규정되어 있다. 보다 근래의 오디오 표준은 ISO/IEC 13818-3 : 1996 "Information Technology - Generic Coding of moving pictures and associated audio -- Part 3 : audio"이다. 이들 세 가지 영상 국제 데이터 압축 표준 모두는 8 × 8 샘플 블럭에 대해 DCT를 수행하여 영상 압축을 달성한다. 본 명세서에서는 다음에서 일반적인 개념을 설명하기 위해 영상의 DCT 압축을 이용하였는데, 전체적인 설명은 더블유 비 페네베이커(W. B. Pennebaker)와 제이 엘 미첼(J. L. Mitchell)의 JPEG : Still Image Data Compression Standard, Van Nostand Reinhold : New York (1993) 중 제 4 장 "The Discrete Cosine Transform(DCT)" 에서 찾을 수 있다.
웨이브렛 코딩(Wavelet coding)은 변환 코딩의 한 형태이다. 웨이브렛 코딩은 특정한 국부화된 기저 함수(localized basis functions)를 통해 모서리와 세부 사항을 보존한다. 변환 데이터는 보통 압축을 위해 양자화된다. 웨이브렛 코딩은 FBI에 의한 지문 식별에 사용된다. 웨이브렛 코딩은 보다 일반적인 부대역 코딩 기법(subband coding technique)에 포함된다. 부대역 코딩은 필터 뱅크(filter banks)를 이용하여 데이터를 특정 대역으로 분할한다. 저주파수 대역을 고주파수 대역보다 성기게 샘플링하면서, 저주파수 대역을 고주파수 대역보다 세밀하게 양자화함으로써 압축을 달성한다. 웨이브렛, DCT, 기타 변환 코딩에 대한 개요는 로이 호프만(Roy Hoffman)의 Data Compression in Digital Systems, Chapman and Hall : New York (1997) 중 제 5 장 "Compression Algorithm for Diffuse Data"에 설명되어 있다.
디지털 데이터로 표시되는 임의의 기법이나 임의의 현상에 있어서, 변환이 수행되기 전의 데이터는 "실제 영역(real domain)"에 있다고 지칭된다. 변환이 수행된 후에, 새로운 데이터는 종종 "변환 데이터"나 "변환 계수"라 부르며, "변환 영역(transform domain)"에 있다고 지칭된다. 실제 영역으로부터 변환 영역으로 데이터를 가져오는 데 사용되는 함수를 "정변환(forward transform)"이라 부른다. 정변환의 수학적 반대 기능은 변환 영역으로부터 실제 영역으로 데이터를 가져오는 것으로서 "역변환(inverse transform)"이라 부른다.
일반적으로, 정변환은 반드시 정수는 아닐지라도 실수값(real-valued) 데이터를 생성한다. 데이터 압축을 달성하기 위해, 변환 계수는 양자화 과정에 의해 정수로 변형된다. (λi)를 한 유닛의 데이터를 정변환한 결과인 실수값 변환 계수 세트라고 가정한다. 한 유닛의 데이터는 1 차원이나 2 차원 데이터 샘플 블럭일 수도 있고, 전체 데이터일 수도 있다. "양자화 값(quantization values)" (qi)는 인코딩 과정에 있어서 파라미터이다. "양자화 변환 계수(quantized transform coefficients)"나 "변환 코딩 데이터(transform-coded data)"는 양자화 함수 Q에 의해 정의된 값 (ai)의 시퀀스이며,
여기서는 x보다 작거나 같은 최대 정수를 의미한다. 이어서, 결과 정수는 저장되거나 전송되기 이전에 후속하는 인코딩이나 압축을 위해 전달된다. 데이터를 디코딩하기 위해, 양자화 계수를 양자화 값과 곱하여 다음 식
에 의해 새로운 "역양자화 계수(dequantized coefficients)" (λi')를 구한다.
따라서, 역양자화가 뒤따르는 양자화 과정은 "가장 가까운 qi의 배수로 반올림하는 것"으로 설명할 수 있다. 양자화 값은 양자화 단계에서의 정보 손실이 특정 범위 내에 있도록 선택된다. 예를 들어, 오디오나 영상 데이터에 있어서, 하나의 양자화 레벨은 보통 감지될 수 있는 데이터의 최소 변화이다. 양자화는 변환 코딩이 양호한 데이터 압축비를 달성할 수 있게 한다. 변환을 잘 선택하면 인코딩될 데이터의 양을 상당히 감소시키는 양자화 값을 선택할 수 있다. 예를 들어, DCT는 결과 주파수 성분이 인간 시각계와는 거의 무관한 응답을 생성하므로 영상 압축을 위해 선택된다. 이는 시각계가 덜 민감한 성분, 즉, 고주파수 성분과 관련된 계수가 눈에 띄는 화질 열화 없이 큰 양자화 값에 의해 양자화될 수 있음을 의미한다. 시각계가 보다 민감한 성분, 즉, 저주파수 성분과 관련된 계수는 보다 작은 양자화 값에 의해 양자화된다.
역변환도 일반적으로 비정수 데이터를 발생시킨다. 보통, 디코딩된 데이터는 정수 형태일 필요가 있다. 예를 들어, 오디오 데이터를 재생하거나 영상 데이터를 디스플레이하는 시스템은 일반적으로 정수 형태의 입력을 받아들인다. 이 때문에, 변환 디코더는 일반적으로 가장 가까운 정수로 내림하거나 반올림함으로써, 역변환으로 인한 비정수 데이터를 정수 데이터로 변형하는 단계를 포함하고 있다. 그리고, 데이터를 주어진 비트 수 내로 저장하기 위해서는 디코딩 과정의 결과인 정수 데이터의 범위를 제한하는 일이 종종 있다. 이러한 이유로, 디코더도 출력 데이터가 수용가능한 범위 내에 있도록 보장하는 "클리핑(clipping)" 단계를 종종 포함한다. 수용가능한 범위가 [a, b]이면, a보다 작은 모든 값은 a로, b보다 큰 모든 값은 b로 바뀐다.
이들 반올림 및 클리핑 과정은 종종 디코더에 있어서 필수적인 부분(integral part)으로 간주되며, 이들 과정으로 인해 디코딩 데이터(decoded data)에서, 특히 디코딩 데이터가 재인코딩될 때 오차(inaccuracies)가 발생한다. 예를 들어, JPEG 표준(제 1 부)은 소스 영상 샘플이 0에서 2P-1범위 내의 임의의 값으로, P 비트 정밀도를 갖는 정수(an integer with precision P bits)로 정의됨을 규정하고 있다. 디코더는 역 이산 코사인 변환(inverse discrete cosine transform : IDCT)의 결과를 특정 정밀도로 재구성할 것이다. 기준 JPEG 코딩에서 P는 8로 정의되고, 다른 DCT 기반 코딩에서 P는 8이나 12로 정의된다. MPEG-2 비디오 표준은 부록 A(이산 코사인 변환)에서 "정변환으로의 입력과 역변환으로부터의 출력은 9 비트로 표현된다"라고 기술하고 있다.
JPEG에 있어서, 인코더 소스 영상 테스트 데이터와 디코더 기준 테스트 데이터를 위한 순응 테스트 데이터(compliance test data)는 8 비트/샘플 정수이다. 정수로 반올림하는 것이 전형적이기는 하지만, 몇몇 프로그래밍 언어는 내림에 의해 부동 소수점에서 정수로 변형한다. 이러한 내림에 의한 정수로의 변형을 수용하는 소프트웨어로 구현하는 경우에는 역변환으로부터의 출력인 실제 영역 정수에 더 큰 오차가 발생한다.
본 명세서에서 사용된 "고정밀도"라는 용어는 어떤 값을 정수로 저장할 때 사용되는 정밀도보다 정확한 정밀도로 저장되는 수의 값을 지칭한다. 고정밀도 숫자의 예로는 숫자의 부동 소수점이나 고정 소수점 표시가 있다.
디지털 처리 기법 및 변환 데이터의 역변환 후 반올림과 클리핑 등에 의해 야기되는 부정확성에 관한 전술한 문제점에 비추어 볼 때, 본 발명의 한 측면은 변환 데이터를 실제 영역에서 처리하는 방법을 제공한다. 이 방법은 역변환 후 정수로의 반올림이나 허용된 범위로의 클리핑 등에 의해 발생한 데이터에서 원하지 않는 오차를 감소시킨다. 일 실시예에서, 본 방법은 발생한 실제 영역 데이터가 고정밀도 숫자 형태가 되도록 변환 데이터를 역변환하는 단계와, 이들 고정밀도 숫자를 처리하는 단계와, 처리 단계가 완료된 후에만 처리 고정밀도 숫자(processed high-precision numbers)를 정수로 변형하고 허용된 범위로 클리핑하는 단계를 포함한다.
본 발명의 다른 측면은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑에 의해 발생한 데이터 내의 원하지 않는 오차를 감소시키는 변환 코딩 데이터의 실제 영역 처리 방법을 제공한다. 일 실시예에서, 이 방법은 변환 코딩 데이터를 역양자화하는 단계와, 발생한 실제 영역 데이터가 고정밀도 숫자 형태가 되도록 발생한 변환 데이터를 역변환하는 단계와, 이들 고정밀도 숫자를 처리하는 단계와, 처리 단계가 완료된 이후에만 처리 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계를 포함한다.
본 발명의 또 다른 측면은 실제 영역에서 변환 코딩 데이터를 처리하여 새로운 변환 코딩 데이터를 생성하는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑에 의해 발생한 오차를 감소시킨다. 일 실시예에서, 이 방법은 변환 코딩 데이터를 역양자화하는 단계와, 발생한 변환 데이터를 역변환하여 발생한 실제 영역 데이터가 고정밀도 숫자 형태가 되도록 하는 단계와, 이들 고정밀도 숫자를 처리하는 단계와, 처리 고정밀도 숫자를 정변환하는 단계와, 새로운 변환 데이터를 양자화하는 단계를 포함한다. 정변환 및 역변환과 처리 중의 오차가 충분히 작으면, 새로운 양자화 변환 영역 데이터(quantized transform-domain data)에는 원하지 않는 오차가 발생하지 않을 것이다.
본 명세서에서 설명한 방법에 대한 입력 데이터가 단일 데이터 소스로부터 올 필요는 없다. 따라서, 본 발명은 단일 소스로부터의 데이터의 실제 영역 처리에 한정되지 않으며, 영상이나 오디오 데이터의 병합과 같이 다수 소스로부터의 데이터의 실제 영역 처리에도 적용할 수 있다.
배경 기술에서 설명한 양자화는 JPEG과 MPEG과 같은 국제 영상 데이터 압축 표준에서 사용하는 선형 양자화이다. 그러나, 양자화가 선형일 필요는 없다. 변환 데이터 레벨을 결정적으로 감소시키는 어떠한 맵핑(mapping)도 본 발명과 함께 사용될 수 있다. 양자화 단계는 수학식 (1)에서 수학적으로 설명하였다. 그러나, 실제 실시예에서는 참조표(a lookup table)나 비교 시퀀스(a sequence of comparisons)를 사용하여 유사한 결과를 얻을 수 있다.
본 발명의 후속 측면은 본 발명의 방법을 컴퓨터가 수행하도록 하는 장치, 컴퓨터 제품, 그 내부에서 실시되는 컴퓨터 판독가능 프로그램 코드 수단(computer readable program code means)을 구비하는 컴퓨터 이용가능 매체(a computer usable medium)를 포함하는 제조 장치를 제공한다.
도 1a는 역변환을 수행하는 방법을 도시하는 블럭도,
도 1b는 역변환을 수행하는 시스템을 도시하는 블럭도,
도 2a는 변환 코딩 데이터(transform-coded data)를 디코딩하는 방법을 도시하는 블럭도,
도 2b는 변환 코딩 데이터를 디코딩하는 시스템을 도시하는 블럭도,
도 3은 변환 데이터(transform data)의 실제 영역 처리(real-domain processing)를 위한 방법을 도시하는 블럭도,
도 4는 역변환 및 후속하는 정변환을 수행하는 방법을 도시하고 다중 세대 문제(multi-generation problem)를 나타내는 블럭도,
도 5는 변환 코딩 데이터의 디코딩 및 재인코딩(reencode) 방법을 도시하고, 다중 세대 문제를 나타내는 블럭도,
도 6은 역변환, 실제 영역 데이터 조작(real-domain data manipulation), 정변환을 수행하는 방법을 도시하고, 다중 세대 문제를 나타내는 블럭도,
도 7a는 다중 세대 문제를 나타내는 JPEG DCT 코딩 영상 데이터의 실제 영역 처리를 수행하는 방법을 도시하는 블럭도,
도 7b는 다중 세대 문제를 나타내는 JPEG DCT 코딩 영상 데이터의 실제 영역 처리를 수행하는 시스템을 도시하는 블럭도,
도 8a는 예시적인 JPEG 루미넌스 양자화 행렬((luminance quantization matrix),
도 8b는 예시적인 JPEG 크로미넌스 양자화 행렬(chrominance quantization matrix),
도 8c는 실제 영역 반올림(rounding)이 8 × 8 블럭 DCT 코딩 데이터에 어떻게 유의성 오차(significant errors)를 야기하는지를 수치적으로 예시하는 도면,
도 8d는 실제 영역 내림(truncation)이 8 × 8 블럭 DCT 코딩 데이터에 어떻게 유의성 오차를 야기하는지를 수치적으로 예시하는 도면,
도 8e는 실제 영역 클리핑(clipping)이 1 차원 이산 코사인 변환 코딩 데이터(discrete cosine transform-coded data)에 어떻게 오차를 야기하는지를 나타내는 일련의 그래프,
도 8f와 도 8g는 실제 영역 클리핑이 8 × 8 블럭 DCT 코딩 데이터에 어떻게 유의성 오차를 야기하는지를 수치적으로 예시하는 도면,
도 9는 도 5에 도시한 프로세스를 여러 번 반복 수행하는 방법을 도시하고 다중 세대 문제를 보여주는 블럭도,
도 10은 실제 영역 조작을 여러 번 반복 수행하는 방법을 도시하고, 다중 세대 문제를 보여주는 블럭도,
도 11a는 본 발명에 따라 변환 데이터를 오차 절감 처리하는 예시적인 방법을 도시하는 블럭도,
도 11b는 본 발명에 따라 변환 데이터를 오차 절감 처리하는 예시적인 시스템을 도시하는 블럭도,
도 12a는 본 발명에 따라 이 과정이 무손실이 되도록 정변환이 뒤따르는 역변환을 수행하는 예시적인 방법을 도시하는 블럭도,
도 12b는 본 발명에 따라 이 과정이 무손실이 되도록 정변환이 뒤따르는 역변환을 수행하는 예시적인 시스템을 도시하는 블럭도,
도 13a는 본 발명에 따라 정변환이 뒤따르는 변환 데이터의 오차 절감 실제 영역 조작을 수행하는 예시적인 방법을 도시하는 블럭도,
도 13b는 본 발명에 따라 정변환이 뒤따르는 변환 데이터의 오차 절감 실제 영역 조작을 수행하는 예시적인 시스템을 도시하는 블럭도,
도 14a는 본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 방법을 도시하는 블럭도,
도 14b는 본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 방법을 도시하는 블럭도,
도 15a는 본 발명에 따라 이 과정이 무손실이 되도록 변환 코딩 데이터를 디코딩하고 재인코딩하는 예시적인 방법을 도시하는 블럭도,
도 15b는 본 발명에 따라 이 과정이 무손실이 되도록 변환 코딩 데이터를 디코딩하고 재인코딩하는 예시적인 시스템을 도시하는 블럭도,
도 16a는 본 발명에 따라 변환 코딩 데이터의 오차 절감 실제 영역 조작을 수행하는 예시적인 방법을 도시하는 블럭도,
도 16b는 본 발명에 따라 변환 코딩 데이터의 오차 절감 실제 영역 조작을 수행하는 예시적인 시스템을 도시하는 블럭도,
도 17a는 본 발명에 따라 새로운 변환 코딩 데이터 내의 원하지 않는 오차가 감축되거나 제거되도록 JPEG 코딩 영상 데이터의 실제 영역 처리를 수행하는 예시적인 방법을 도시하는 블럭도,
도 17b는 본 발명에 따라 새로운 변환 코딩 데이터 내의 원하지 않는 오차가 감축되거나 제거되도록 JPEG 코딩 영상 데이터의 실제 영역 처리를 수행하는 예시적인 시스템을 도시하는 블럭도,
도 18a는 본 발명에 따라 각 반복(iteration)이 도 16a에 설명한 것과 같을 때, 변환 코딩 데이터의 오차 절감 실제 영역 조작의 다수 반복을 수행하는 예시적인 방법을 도시하는 블럭도,
도 18b는 본 발명에 따라 각 반복(iteration)이 도 16b에 설명한 것과 같을 때, 변환 코딩 데이터의 오차 절감 실제 영역 조작의 다수 반복을 수행하는 예시적인 시스템을 도시하는 블럭도,
도 19a는 정변환으로의 입력으로 반올림된 숫자 대신 고정밀도 숫자를 사용하는 도 8c와 동일한 8 × 8 블럭 수치적 개시점(numerical starting point)을 도시하는 도면,
도 19b는 정변환으로의 입력으로 내림된 숫자 대신 고정밀도 숫자를 사용하는 도 8d와 동일한 8 × 8 블럭 수치적 개시점을 도시하는 도면,
도 19c는 도 8f와 동일한 8 × 8 블럭 수치적 단계를 도시하는 도면,
도 19d는 클리핑 전 반올림한 역 DCT의 결과가 양자화가 뒤따르는 정변환으로 입력되는 수치적 결과를 도시하는 도면.
도면의 주요 부분에 대한 부호의 설명
115 : 변환 데이터 125 : 역변환기
135 : 고정밀도 실수값 데이터 145 : 정수 변형기 및 클리퍼
155 : 정수 실제 영역 데이터 165 : 출력 디바이스
1115 : 조작기 1125 : 고정밀도 데이터
본 발명의 이러한 목적, 특징, 장점은 도면과 함께 후속하는 상세한 설명을 고려함으로써 명백해질 것이다.
본 발명은 디지털 데이터 처리에 의해 발생하는 오차를 감소시키거나 제거하는 방법, 시스템, 컴퓨터 제품을 제공한다. 우선, 오차의 소스를 분석하고 설명한다. 이후에는 오차 감소 및 제거를 위한 본 발명의 개념을 설명한다. 특별히 유의할 점은 본 명세서의 배경 기술 부분에서 채용한 데이터 조작 및/또는 처리 방법이 각각의 디지털 처리의 구현으로 인해 오차가 계속적으로 발생하는 디지털 기법을 사용하였다는 것이다. 수년 간 채용된 이들 기법에 의하면, 원래 데이터의 정밀도를 유지할 수 없었고, 처리가 진행됨에 따라 현상을 표시하는 데이터가 계속 열화되었다. 이는 이전의 처리에 의해 전달된 오차를 포함하는 데이터에 대해 처리를 수행하는 경우에 특히 유해하다. 이로 인해, 처리가 진행됨에 따라 데이터가 계속 손상되어 그 유용성이 점점 떨어지게 된다.
본 발명의 발명자에 의해 인식된 이러한 문제의 심각성을 이제 설명하겠다. 본 명세서에서 도시한 도면에서, 선택적인 단계는 점선 및/또는 박스로 나타내었음을 유의하여야 한다.
본 발명의 개념이 대부분의 디지털 처리 기법에서 유용하다는 것에 주목하여야 한다. 그러나, 이어지는 상세한 설명은 주로 영상 데이터에 관한 것이다. 이는 세계적으로 채용되고 있는 영상 데이터 압축 표준의 일반적인 유용성과 계속적인 사용 때문이다. 이들 표준에서는 설명할 오차가 디지털 데이터에 발생하고, 그 오차가 발생한 데이터를 계속 채용하고 처리할 필요가 있다. 이들 표준은 기본적으로 본 발명과는 다르다. 따라서, 영상 기법이 본 발명을 설명하는 좋은 예가 된다.
도 1a는 역변환 방법(100)을 도시하고 있다. 변환 영역 데이터 'A'(110)는 역변환 단계(120)에서 처리되어, 고정밀도 실수값 데이터(high-precision real-valued data)(130)를 발생시킨다. 고정밀도 데이터(130)는 정수로 변형되고 클리핑되어(140), 정수 실제 영역 데이터(integer real-domain data)를 발생시킨다. 어떤 경우에는 정수값 데이터가 출력 디바이스(160)로 보내지기도 한다.
도 1b는 역변환 시스템(105)을 도시하고 있다. 변환 영역 데이터 'A'(110)는 역변환기(125)에 의해 처리되어, 고정밀도 실수값 데이터(135)를 발생시킨다. 고정밀도 데이터(135)는 정수 변형기 및 클리퍼(145)로 입력되어 정수 실제 영역 데이터(155)를 발생시킨다. 어떤 경우에는, 정수값 데이터가 디스플레이 모니터, 텔레비전 세트, 오디오 플레이어와 같은 출력 디바이스(165)로 입력되기도 한다.
도 2a는 변환 코딩(즉, 양자화) 데이터를 디코딩하는 방법(200)을 도시한다. 정수 변환 코딩 데이터 'B'(210)는 전술한 수학식 (2)에서의 양자화 값을 이용하여 역양자화(220)된다. 이어서, 역양자화 단계의 결과는 역변환 단계(120)로 입력될 수 있고, 도 1a에서와 같이 디코딩이 진행된다.
도 2b는 변환 코딩(즉, 양자화) 데이터를 디코딩하는 시스템(205)을 도시하고 있다. 정수 변환 코딩 데이터 'B'(215)는 전술한 수학식 (2)에서와 같은 양자화 값을 갖는 역양자화기(225)로 입력된다. 역양자화기의 출력은 역변환기(125)의 입력으로서 전달되고, 도 1b에서와 같이 디코딩이 진행된다.
본 발명의 한 측면은 변환 데이터와 변환 코딩 데이터를 모두 조작하는 것과 관련된다. "조작"과 "처리"라는 용어는 본 명세서에서 상호 교환가능하게 사용된다. 조작은 많은 상이한 결과를 얻기 위해 채용될 수 있다. 예를 들어, 영상 데이터는 인쇄되기 이전에 스케일링(scaling) 및/또는 회전에 의해 처리되어야 하는 경우가 종종 있다. 두 개의 소스로부터의 데이터는 영상의 크로마 키잉(chroma-keying)이나 오디오의 믹싱(mixing)을 수행할 때와 같이 병합될 수 있다. 데이터의 수동 조작(manual manipulation)은 편집이나 색채 보정(color correction)에 종종 필요하다. 이러한 변환 데이터의 조작은 도 1a 및/또는 도 2a의 변환 디코딩의 결과인 정수 실제 영역 데이터에 대해 종종 수행된다.
변환 데이터의 조작을 위한 과정(300)이 도 3에 도시되어 있다. 정수 데이터(150)는 소정 형태의 조작 단계(310)를 겪게 된다. 이 조작 단계(310)가 정수 출력을 발생시키지 않으면, 조작 결과(340)는 다시 정수로 변형되고 클리핑된다(320). 결과 정수 데이터(330)는 저장, 전송 및/또는 출력 디바이스(160)로 보내질 수 있다. 정수로의 변형 및 클리핑 단계(140)가 정수 입력(150)을 수용하는 조작 이전에 수행되므로, 결과 오차는 조작 단계(340)로부터의 데이터 출력이 적어도 작은 오차를 포함하도록 만든다. 전술한 데이터 조작 과정에서는 입력 데이터 전체가 하나의 소스로부터 올 필요가 없다는 점에 주목하여야 한다. 예를 들어, 여러 유형의 데이터 조작은 두 개 이상의 소스로부터의 데이터를 병합하는 단계를 포함한다. 이는 오디오 데이터의 믹싱이나 영상의 병합과 같은 조작을 포함한다. 도면에서 도시하고 전반적으로 설명한 과정은 이러한 유형의 조작에도 동일하게 잘 적용된다. 따라서, 설명한 임의의 과정에서 사용한 "입력 데이터"는 실제로는 하나 이상의 소스로부터 온 것일 수 있다.
조작 후의 데이터가 변환 영역으로 재인코딩되어야 하는 경우가 종종 있다. 실제 영역 데이터에 대해 조작이 수행되지 않을 때 디코딩 및 재인코딩 과정이 무손실(lossless)이라는 사실은 바람직하다. 즉, 정변환 작업이 역변환 작업의 역변환 유형과 동일한 유형의 변환 작업을 이용할 때, 데이터는 처음 존재했던 것과 정확히 일치하는 변환 영역 데이터를 가져온다는 것이다. 그러나, 도 4에 도시한 바와 같이 정수로의 변형과 허용된 범위로의 클리핑에 의해 오차가 발생한다. 도 4는 정변환 디바이스(410)로의 입력으로 사용되는 정수 데이터(150)를 도시하고 있는데, 정변환 디바이스(410)는 정수값 데이터를 입력으로 받아들인다. 결과 변환 데이터 'A1'(420)은 역변환 디바이스로의 입력이었던 원래 변환 데이터 'A'(110)와는 다르다. 이는 정수로의 변형과 클리핑 과정(140)으로 인해 과정 중에 오차가 발생하였기 때문이다. 이러한 과정의 각각의 반복(iteration), 또는 "세대(generation)" 후에 데이터의 변화에 의해 야기되는 문제를, 본 명세서에서는 "다중 세대 문제(multi-generation problem)"라 지칭한다.
또한, 변환 코딩 데이터에 대한 다중 세대 문제를 도 5에서 설명하고 있다. 도 5에서 새로운 변환 영역 데이터(420)는 양자화되어(510) 새로운 변환 코딩 데이터 'B1'(520)을 발생시킨다. 발생한 오차가 양자화 스텝(quantization step)의 절반보다 큰 경우에만 양자화 데이터가 변할 수 있다는 점을 인식하는 것은 중요하며,
여기서 ε은 이 변환 계수에서 발생한 오차이다. 이는 λi각각이 수학식 (2)에서와 같이 역양자화에 의해 발생하였으므로, 이미 양자화 값의 배수이기 때문이다. 따라서, 오차가 충분히 작아지도록 제어하는 것이 유리하다. 오차가 충분히 작으면, 새로운 변환 코딩 데이터는 원래의 변환 코딩 데이터와 정확하게 일치하게 될 것이다. 반올림을 통한 정수로의 변형에 의해 발생한 최대 가능 오차는 변형 중의 내림에 의해 발생한 오차의 절반이다.
도 6은 영상 조작을 데이터에 대해 수행한 후, 결과 수정 데이터(resulting modified data)를 변환 영역으로 재변환하는 경우를 도시하고 있다. 정수 데이터(150)는 도 3에 도시한 것과 같이 조작되어 새로운 정수값 데이터(610)를 발생시킨다. 이들 새로운 정수값 데이터(610)는 정변환(410)으로의 입력으로 사용되어, 새로운 변환 데이터 'A2'(620)를 발생시킨다. 전술한 과정이 어떠한 조작도 하지 않고 변환 데이터(110) 내에 변화를 발생시킨다는 사실은, 조작 수행 시 원하는 조작에서 기인한 것 외에 변환 데이터(110) 내에 원하지 않는 변화가 존재한다는 것을 보여준다.
도 6의 과정을 실시하는 방법의 예가 도 7a에 도시되어 있다. 도시한 이 방법(700)은 JPEG 코딩 영상 데이터와 같은 코딩 데이터에 대해 실제 영역 조작을 수행한다. 코딩 데이터 'C'(710)는 엔트로피 디코딩되는데(720), 이는 JPEG 코딩 데이터를 위해 JPEG 표준에서 정의된 것이다. 엔트로피 디코딩 단계(720)는 데이터를 양자화 DCT 계수로 압축해제한다. 이들 양자화 계수는 역양자화되고(730), 역변환 단계로 전달되는데, 이 시스템에서 역변환 단계는 2 차원 8 × 8 역 DCT(740)이다. 결과 실수값 영상 데이터는 정수로 반올림되고 허용된 범위(예컨대, [0, 255])로 클리핑되어(750), 허용된 범위 내에 있는 정수값 영상 데이터(754)를 발생시킨다.
예를 들어, 영상 조작이 상호작용 과정(an interactive process)인 경우, 조작 전에 데이터를 보여 줄 필요가 있다면, 영상은 디스플레이 디바이스(758)로 보내지기도 한다. 이어서, 영상은 조작되어(762), 소정의 원하는 변화를 발생시킨다. 조작 결과가 비정수 데이터이면 영상 데이터는 정수로 변형되고, 예컨대 범위 [0, 255]로 클리핑된다. 이러한 방식으로, 영상 데이터(772)는 다시 디스플레이될 수 있다(758). 새로운 실제 영역 영상 데이터(772)는 정 DCT 단계(776)로 전달되고, 결과 DCT 계수는 양자화되어(780) 새로운 양자화 DCT 계수(quantized DCT coefficient)(784)를 발생시킨다. 다음으로, 이들 계수(784)가 엔트로피 인코딩되어(788) 원래 코딩 데이터 'C'(710)와는 다른 새로운 코딩 데이터 'C1'(710)을 발생시킨다. 이제, 새로운 코딩 데이터 'C1'(792)은 영상 조작(762)에 의해 영상에 만들어진 원하는 변화 뿐 아니라 변형 및 클리핑 단계(750, 768)에 의한 오차도 포함하게 된다.
도 6에 도시한 과정을 실시하는 시스템의 예가 도 7b에 도시되어 있다. 이 시스템(705)은 코딩 데이터에 대해 실제 영역 조작을 수행한다. 코딩 데이터 'C'(715)는 엔트로피 디코더(725)로 입력되는데, 이는 JPEG 코딩 데이터를 위해 JPEG 표준에서 정의한 것이다 엔트로피 디코더(725)는 데이터를 양자화 DCT 계수로 압축해제한다. 이들 양자화 계수는 역양자화기(735)로 입력되고, 그 결과는 역변환기로 전달되는데, 이 시스템에서 역변환기는 2 차원 8 × 8 역 DCT기(745)이다. 결과 실수값 영상 데이터는 정수로 반올림되고 (예를 들어 범위 [0, 255]로) 클리핑되어(755), 허용된 범위 내에 있는 정수값 영상 데이터(759)를 발생시킨다.
예를 들어, 영상 조작이 상호작용 과정인 경우, 조작 전에 데이터를 보여 줄 필요가 있다면, 영상은 디스플레이 디바이스(763)로 보내질 수도 있다. 영상은 조작기(767)에 의해 조작되어 소정의 원하는 변화를 발생시킨다. 조작 결과가 비정수 데이터이면 영상 데이터는 다른 정수 변형기 및 클리퍼(773)로 전달될 수도 있다. 이러한 방식으로, 영상 데이터(777)는 다시 디스플레이될 수 있다(763). 새로운 실제 영역 영상 데이터(777)는 정 DCT기(781)로 전달되고, 결과 DCT 계수는 양자화기(785)로 입력되어, 새로운 양자화 DCT 계수(789)를 발생시킨다. 다음으로, 이들 계수(789)가 엔트로피 인코더(793)로 입력되어 원래 코딩 데이터 'C'(715)와는 다른 새로운 코딩 데이터 'C1'(797)을 발생시킨다. 이제, 새로운 코딩 데이터 'C1'(797)은 영상 조작기(767)에 의해 영상에 만들어진 원하는 변화 뿐 아니라 정수 변형기 및 클리퍼(755, 773)로 인한 오차도 포함하게 된다.
도 8a는 8 × 8 DCT 루미넌스 블럭(luminance blocks)에 대한 예시적인 JPEG 루미넌스 양자화 행렬(804)을 도시하고 있고, 도 8b는 8 × 8 DCT 크로미넌스 블럭(chrominance blocks)에 대한 예시적인 JPEG 크로미넌스 양자화 행렬(814)을 도시하고 있다. 도 8a에서 최소 양자화 값은 10이고, 도 8b에서 최소 양자화 값은 17이다. 64 개의 샘플 각각에 있어서 반올림으로 인한 최대 가능 오차가 0.5이므로, 반올림에 의한 정수로의 변형에 따른 비양자화 정변환 계수(unquantized forward transform coefficients) 내의 최대 오차는 (도 8c에 도시한 바와 같이) 4이다. 도 8a와 도 8b에 도시한 양자화 행렬에 대해, 이러한 크기의 오차는 모든 값의 절반 미만이며 양자화 중에 사라질 것이다. 그러나, 하이 엔드 인쇄(high end printing)나 디지털 스튜디오 편집(digital studio editing)과 같은 고 품질 응용에 있어서는, 양자화 행렬 값이 훨씬 더 작다. 어떤 경우에는, DC(가장 왼쪽 위) 항이 1로 매우 작아서 최대 품질을 보존한다. 이 때는 반올림 오차가 의미있게 된다.
내림으로 인한 최대 가능 오차는 각 샘플에 대해 1 보다 약간 작다. 이는 비양자화 정변환 계수의 오차의 거의 두 배이다. 도 8a의 양자화 행렬에 대해, 8 개의 양자화 값은 이 오차가 변환 코딩 데이터를 변화시킬 수 있도록 충분히 작다.
다중 세대 문제를 보여주는 수치적인 예가 도 8c에 도시되어 있다. 이 예에서, 사용된 변환은 JPEG 정지 영상 압축 표준에서 사용된 것과 같은 8 × 8 DCT이다. 변환 영역 계수 세트(822)는 그 중 하나(상수, 즉 DC 항)만이 0이 아니며, 역변환에 의해 조작되어 실제 영역 데이터 블럭(824)을 발생시킨다. 이러한 경우, 데이터는 모두 128.5인 64 개의 값으로 이루어진다. 8 비트 데이터에 대한 128의 JPEG 레벨 시프트(JPEG level shift)를 적용하였음에 유의하여야 한다. 실제 영역 데이터는 가장 가까운 정수(826)로 반올림되는데, 이 경우에는 각각의 값이 129로 반올림된다. 이어서, 정변환이 적용되어 새로운 변환 영역 계수(828)를 발생시킨다. 그 결과인 새로운 변환 영역 계수(828)가 초기 변환 계수(822)와 상당히 다른 것을 볼 수 있다. 이는 매우 바람직하지 못한 결과이다.
이 예는 DC 양자화 값이 1, 2, 또는 4로 세팅된 경우의 변환 코딩 데이터에도 적용될 수 있다. 이 경우, 변환 계수(822)는 변환 코딩 값 4, 2, 또는 1로부터 각각 발생할 것이다. 새로운 변환 계수(828)의 양자화는 결과 DC 양자화 값을 2, 4, 또는 8로 각각 바꿀 것이다.
다중 세대 문제를 나타내는 다른 수치적인 예가 도 8d에 도시되어 있다. 이번에 사용된 변환도 JPEG 정지 영상 압축 표준에서 사용되는 8 × 8 DCT이다. 변환 영역 계수 세트(832)는 그 중 하나(상수, 즉 DC 항)만이 0이 아니며 역변환되어 실제 영역 데이터(834)를 발생시킨다. 이 경우, 데이터는 모두 128.875인 64 개의 값으로 이루어진다. 8 비트 데이터를 위한 128의 JPEG 레벨 시프트가 적용된 것에 유의하여야 한다. 실제 영역 데이터는 가장 가까운 정수(836)로 내림되는데, 이 경우 각각의 값은 128로 세팅된다. 이어서, 정변환이 적용되어 새로운 변환 영역 계수(838)를 발생시킨다. 그 결과인 새로운 변환 계수(838)는 초기 변환 계수(832)와 상당히 다르다는 것을 알 수 있다. 이는 매우 바람직하지 못한 결과이다.
정수로의 변형 시 실제 영역 반올림이나 내림으로 인해 발생하는 오차를 살펴보았는데, 이제는 실제 영역 클리핑이 어떻게 오차를 야기하는지를 살펴보겠다. 도 8e는 실제 영역 클리핑(850)의 예를 도시하고 있다. 이 예는 1 차원 DCT를 이용하여 문제를 설명하고 있다. 도 8e는 8 개의 샘플로 이루어진 1 개의 데이터 블럭을 나타내는 막대 그래프(854)를 도시하고 있다. 나타난 데이터는 두 개의 주파수 성분만을 갖는데, 점선으로 표시한 상수, 즉 DC 성분과, 점선 주위에 대칭되는 교류 파형을 나타내는 교류, 즉, AC 성분이다. 이들 성분의 크기, 즉 각각의 DCT 계수는 고정밀도 값이다. 양자화 수행 시, 이들 DCT 계수는 가장 가까운 양자화 레벨로 반올림된다. 변환 영역 양자화 후의 데이터가 막대 그래프(858)로 도시되어 있다. 도시한 예에서, DC 계수는 작은 양자화 값을 가지므로, 양자화가 DC 레벨을 많이 변화시키지는 않는다. 도시한 AC 계수는 큰 양자화 값을 가지므로, 양자화에 의해 상당한 변화를 겪는다. 이 예에서는 양자화로 인해 AC 성분이 거의 두 배가 된 것을 볼 수 있다. 이들 양자화 값은, 예를 들어, 크로미넌스 영상 데이터를 압축할 때 사용된 양자화 값을 반영한다. 따라서, 양자화 후에 나타난 데이터는 음(negative)의 값을 갖는 부분을 포함하게 된다. 이는 실제 영역 음의 값을 갖는 변환 영역 데이터가 역변환 후에 음의 값을 포함하지 않는 원래 실제 영역 데이터로부터 어떻게 발생되는지를 보여 준다.
막대 그래프(862)는 실제 영역 클리핑 후 막대 그래프(858)로부터 발생한 데이터를 나타낸다. 이들 실제 데이터의 음의 부분은 0으로 바뀌었다. 이로 인해, 데이터의 DC 계수가 증가하여 오차가 발생하게 된다. DC 계수에 대한 양자화 값이 일반적으로 작기 때문에, 이 오차는 수학식 (3)에서 주어진 것과 같이 양자화 데이터 내의 변화를 야기한다.
실제 영역 클리핑에 의해 발생할 가능성이 있는 오차를 더 설명하기 위해, 수치적인 예(870)가 도 8f와 도 8g에 도시되고 있다. 이 예는 도 5에서 설명한 시스템을 채용하고 있다. 이 예는 영상의 변환 코딩에 사용되는 2 차원 8 × 8 DCT를 이용하여 전술한 문제를 설명한다. 초기 양자화 DCT 계수를 행렬(874)로 나타내고 있다. 두 개의 계수만을 제외하고는 모두 0인데, 두 개의 0이 아닌 계수는 DC 계수와 고주파수 계수 하나이다. 도 8a에 도시한 양자화 행렬을 이용한 역양자화 후의 계수를 행렬(878)로 나타내고 있다. 이들 변환 데이터에 역 DCT를 수행하고 128의 레벨 시프트가 추가되면, 행렬(882)에 도시한 것과 같은 실제 데이터가 발생한다. 행렬(882)에 도시한 데이터는 이미 정수로 반올림되었지만 허용된 범위로 클리핑되지는 않았다. 이들 실제 데이터가 음의 값을 몇 개 포함하고 있는 것을 볼 수 있다. 클리핑 후, 실제 데이터(882)는 행렬(886)로 나타낸 것과 같은 클리핑 실수 데이터(clipped real data)를 발생시킨다. 이들 데이터는 각각의 음의 값을 0으로 대체하였다는 것을 제외하고는 행렬(882)과 동일하다. 이어서, 실제 영역 데이터에 정 DCT가 적용되어 새로운 반올림 변환 데이터(rounded transform data)(890)가 발생한다. 새로운 변환 데이터는 이전의 변환 데이터(890)와는 상당히 다름을 볼 수 있다. 도 8a에 도시한 양자화 행렬을 이용하여 양자화가 수행된 후, 새로운 변환 코딩 데이터가 발생한다. 변환 데이터에 있어서 결과적인 변화는 양자화 후의 변환 코딩 데이터에 변화를 발생시킬 정도로 충분히 크다. 이것은 상당히 바람직하지 못한 결과이다.
많은 경우, 데이터를 디코딩하고, 조작하고, 재인코딩하는 과정이 여러 번 수행될 필요가 있다. 이들 경우에 있어서, 이들 과정의 각 반복은 "세대"라고 지칭된다. 정수로의 변형과 허용된 범위로의 클리핑으로 인해 발생한 전술한 오차는 여러 번의 반복이 수행됨에 따라 축적되어 데이터의 심각한 열화를 초래할 수 있다. 앞으로 기술할 것은 반올림(또는 내림) 및/또는 클리핑으로 인해 발생하는 오차의 예를 나타내는 것일 뿐이라는 것을 인식해야 한다. 보다 많거나 적은 오차를 발생시키는 다른 예도 가능하다.
이 문제는 도 9에 도시한 것과 같이 보통 다중 세대의 디코딩과 재인코딩이 뒤따름에 따라 더욱 심각해진다. 초기 변환 코딩 데이터 'D0'(910)은 역양자화 및 역변환되고(920), 정수로 변형 및 허용된 범위로 클리핑되어(930) 정수값 실제 영역 데이터(940)를 발생시킨다. 실제 영역 데이터(940)는 정변환 및 양자화 단계(950)로 전달되어 새로운 변환 코딩 데이터 'D1'(960)을 발생시킨다. 이러한 전체 과정은 수 차례 반복되고, 소정의 수 'n' 회의 반복 후 최종 변환 코딩 데이터 'Dn'(970)이 발생한다. 각 단계의 오차 때문에, 최종 데이터 'Dn'(970)은 원래 데이터와 상당히 다를 것이다.
이러한 문제를 나타내는 경우는 도 10에 도시한 변환 코딩 데이터의 실제 영역 조작을 수 차례 반복함에 따라 상당히 악화된다. 도 9에 도시한 단계 외에도, 소정 형태의 조작(310)이 실제 영역 데이터에 수행되고, 이어서 정수로의 변형과 클리핑(320)을 겪게 된다. 정변환 및 양자화 후, 결과 양자화 변환 계수(1010)는 도 5에서와 같은 소정의 오차를 포함하게 된다. 'n' 번의 세대 후, 최종 변환 양자화 계수(1020)는 상당히 큰 원하지 않는 오차를 가질 수도 있다.
변환 데이터를 오차 절감 처리하는 예시적인 방법(1100)이 도 11a에 도시되어 있다. 변환 데이터 'A'(110)는 역변환(120)을 통해 전달되어 도 1a에서와 같이 고정밀도 실제 영역 데이터(130)를 발생시킨다. 정수값 입력을 취하는 출력 디바이스(160)로 실제 영역 데이터를 전달할 필요가 있거나 임의의 다른 이유로 조작 전에 정수값 데이터를 생성할 필요가 있는 경우, 정수로의 변형 및 허용된 범위로의 클리핑(140)이 고정밀도 실제 영역 데이터에 영향을 미치지 않으면서 조작 이전에 수행된다. 실제 영역 데이터의 원하는 조작(1110)은 고정밀도 데이터를 입력으로 수용하고 고정밀도 데이터(1120)를 출력으로 발생시키는 방법을 이용하여 수행된다. 이 조작 방법(1110)은 도 3에서 전술한 정수에 대한 조작(310)과 개념적으로 동일하게 데이터에 대한 처리를 수행하지만, 대신 고정밀도 데이터에 대해 작업한다. 정수값 입력을 취하는 출력 디바이스(160)로 조작 실제 영역 데이터(manipulated real-domain data)를 전달할 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 데이터를 생성할 필요가 있는 경우, 정수로의 변형 및 허용된 범위로의 클리핑 단계(140)는 처리 데이터의 고정밀도에 영향을 미치지 않으면서 조작 이후에 수행된다.
본 발명에 따라 변환 데이터를 오차 절감 처리하는 예시적인 시스템이 도 11b에 도시되어 있다. 변환 데이터 'A'(115)는 역변환기(125)를 통해 전달되어 도 1b에서와 같이 고정밀도 실제 영역 데이터(135)를 발생시킨다. 정수값 입력을 취하는 출력 디바이스(165)로 실제 영역 데이터를 전달할 필요가 있거나, 임의의 다른 이유로 조작 전에 정수값 데이터를 생성할 필요가 있는 경우, 정수 변형기 및 클리퍼(145)는 고정밀도 실제 영역 데이터에 영향을 미치지 않으면서 조작 전에 작업한다. 고정밀도 데이터를 입력으로 수용하고 고정밀도 데이터(1125)를 출력으로 발생시키는 조작기(1115)는 실제 영역 데이터에 대해 작업한다. 이 조작기(1115)는 도 3에서 전술한 정수에 대한 조작(310)과 개념적으로 동일하게 데이터에 대한 처리를 수행하지만, 대신 고정밀도 데이터에 대해 작업한다. 정수값 입력을 취하는 출력 디바이스(160)로 조작 실제 영역 데이터(manipulated real-domain data)를 전달할 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 데이터를 생성할 필요가 있는 경우, 정수 변형기 및 클리퍼(145)는 처리 데이터의 고정밀도에 영향을 미치지 않으면서 조작 이후에 작업한다.
정변환 단계가 뒤따르는 역변환을 수행하는 방법(1200)을 채용하는 본 발명의 일 실시예가 도 12a에 도시되어 있다. 변환 데이터 'A'(110)는 역변환(120)을 통해 전달되어 도 1a에서와 같이 고정밀도 실제 영역 데이터(130)를 발생시킨다. 정수값 입력을 취하는 출력 디바이스(160)로 실제 영역 데이터를 전달할 필요가 있거나 임의의 다른 이유로 조작 전에 정수값 데이터를 생성할 필요가 있는 경우, 정수로의 변형 및 허용된 범위로의 클리핑 단계(140)는 고정밀도 실제 영역 데이터에 영향을 미치지 않으면서 수행된다. 고정밀도 데이터(130)는 실수값 데이터를 입력으로 사용하는 정변환(1210)의 입력으로 사용된다. 정변환(1210)이 역변환의 반대 기능을 하면 반올림과 클리핑으로 인한 오차가 변환 데이터 'A3' 내에 존재하지 않으므로, 결과 변환 데이터 'A3'(1220)은 역변환(120)으로의 입력이었던 원래 변환 데이터 'A'(110)와 동일하다. 다른 정변환이 사용되면 정변환(1210)은 다른 변환 데이터 'A3'(1220)을 발생시킬 것이다. 이로 인해 반올림과 클리핑으로 인한 오차가 정변환 입력 내에 존재하지 않으면서 변환 사이의 변형이 가능하다.
정변환기가 뒤따르는 역변환기를 사용하는 시스템(1205)을 채용하는 본 발명의 일 실시예가 도 12b에 도시되어 있다. 변환 데이터 'A'(115)는 역변환기(125)를 통해 전달되어 도 1b에서와 같이 고정밀도 실제 영역 데이터(135)를 발생시킨다. 정수값 입력을 취하는 출력 디바이스(165)로 실제 영역 데이터를 전달할 필요가 있거나 임의의 다른 이유로 조작 전에 정수값 데이터를 생성할 필요가 있는 경우, 정수 변형기 및 클리퍼(145)는 고정밀도 실제 영역 데이터(135)에 영향을 미치지 않으면서 작업한다. 고정밀도 데이터(135)는 실수값 데이터를 입력으로 사용하는 정변환기(1215)의 입력으로 사용된다. 정변환기(1215)가 역변환기의 반대 기능을 구현하면 반올림과 클리핑으로 인한 오차가 변환 데이터 'A3' 내에 존재하지 않으므로, 결과 변환 데이터 'A3'(1225)은 역변환기(125)로의 입력이었던 원래 변환 데이터 'A'(115)와 동일하다. 다른 정변환이 사용되면 정변환기(1215)는 다른 변환 데이터 'A3'(1225)을 발생시킬 것이다.
도 13a는 변환 데이터의 오차 절감 실제 영역 조작을 수행하는 방법(1300)을 도시하고 있다. 이 방법은 도 11a에 설명한 방법(1100)을 확장함으로써 이루어진다. 이 경우, 고정밀도 데이터(1120)는 고정밀도 데이터를 입력으로 수용하는 정변환(1210)으로의 입력으로서 전달되어, 반올림 및/또는 클리핑 오차 없이 새로운 변환 데이터 'A4'(1310)를 발생시킨다.
도 13b는 변환 데이터의 오차 절감 실제 영역 조작을 수행하는 시스템(1305)을 도시하고 있다. 이 방법은 도 11b에 설명한 시스템(1105)을 확장함으로써 이루어진다. 이 경우, 고정밀도 데이터(1125)는 고정밀도 데이터를 입력으로 수용하는 정변환기(1215)로의 입력으로서 전달되어, 반올림 및/또는 클리핑 오차 없이 새로운 변환 데이터 'A4'(1310)를 발생시킨다.
변환 코딩 데이터의 오차 절감 실제 영역 조작을 수행하는 방법이 도 14a에 도시되어 있다. 도 14a는 정수 변환 코딩 데이터 'B'(210)가 역양자화되고(220), 그 출력이 역변환(120)을 통해 전달되어 도 2a에서와 같이 고정밀도 실제 영역 데이터(130)를 발생시키는 것을 도시하고 있다. 정수값 입력을 취하는 출력 디바이스(160)로 실제 영역 데이터를 전달할 필요가 있거나, 임의의 다른 이유로 조작 전에 정수값 데이터(150)를 생성할 필요가 있는 경우, 정수로의 변형 및 허용된 범위로의 클리핑(140)이 고정밀도 실제 영역 데이터(130)에 영향을 미치지 않으면서 수행된다. 실제 영역 데이터의 원하는 조작(1110)은 고정밀도 데이터를 입력으로 수용하고 고정밀도 데이터(1410)를 출력으로 발생시키는 방법을 이용하여 수행된다. 이 조작(1110)은 도 3에서 전술한 정수에 대한 조작(310)과 개념적으로 동일하게 데이터에 대한 처리를 수행하지만, 대신 고정밀도 데이터에 대해 작업한다. 정수값 입력을 취하는 출력 디바이스(160)로 조작 실제 영역 데이터를 전달할 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 데이터를 생성할 필요가 있는 경우, 정수로의 변형 및 허용된 범위로의 클리핑 단계(140)가 처리 데이터(1410)의 고정밀도에 영향을 미치지 않으면서 조작(1110) 이후에 수행된다.
변환 코딩 데이터의 오차 절감 실제 영역 조작을 수행하는 방법이 도 14b에 도시되어 있다. 도 14b는 정수 변환 코딩 데이터 'B'(215)가 역양자화기(225)로 입력되고, 그 출력이 역변환기(125)를 통해 전달되어 도 2b에서와 같이 고정밀도 실제 영역 데이터(135)를 발생시키는 것을 도시하고 있다. 정수값 입력을 취하는 출력 디바이스(165)로 실제 영역 데이터(135)를 전달할 필요가 있거나, 임의의 다른 이유로 조작 전에 정수값 데이터(155)를 생성할 필요가 있는 경우, 정수 변형기 및 클리퍼(145)는 고정밀도 실제 영역 데이터(135)에 영향을 미치지 않으면서 조작 이전에 데이터에 대해 작업한다. 실제 영역 데이터의 원하는 조작기(1115)는 고정밀도 데이터를 입력으로 수용하고 고정밀도 데이터(1415)를 출력으로 발생시키는 조작기(1115)를 이용하여 수행된다. 이 조작기(1115)는 도 3에서 전술한 정수에 대한 조작(310)과 개념적으로 동일하게 데이터에 대한 처리를 수행하지만, 대신 고정밀도 데이터에 대해 작업한다. 정수값 입력을 취하는 출력 디바이스(165)로 조작 실제 영역 데이터를 전달할 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 데이터를 생성할 필요가 있는 경우, 정수 변형기 및 클리퍼(145)는 처리 데이터(1415)의 고정밀도에 영향을 미치지 않으면서 조작(1115) 이후에 비정수 데이터(1415)에 대해 작업한다.
변환 코딩 데이터의 실제 영역 변형 방법(1500)의 일 실시예가 도 15a에 도시되어 있다. 고정밀도 데이터(130)는 실수값 데이터를 입력으로 수용하는 정변환(1210)으로의 입력으로 사용된다. 정변환(1210)의 출력은 양자화된다(1510). 원하는 시스템 구현에 따라, 정변환 작업(1210)은 역변환 작업(120)에서 사용한 것과는 다른 변환을 채용할 수 있다. 예를 들어, 정변환(1210)이 푸리에 변환을 사용하는 반면, 역변환(120)은 역 DCT 변환을 사용할 수 있다. 정변환 작업(1210)이 역변환 작업(120)의 반대 기능이고, 역양자화 단계(220)와 양자화 단계(1510)에서 사용된 양자화 값이 동일하면, 결과 정수 변환 코딩 데이터 'B2'(1520)는 역양자화 단계(220)로의 입력이었던 원래 정수 변환 코딩 데이터 'B'(210)와 동일하다는 사실에 주목하여야 한다. 다른 정변환이 사용되면 정변환(1210)은 다른 정수 변환 코딩 데이터 'B2'를 발생시킬 것이다. 마찬가지로, 역양자화(220)와 양자화(1510)에서 서로 다른 양자화 값을 사용하여도, 다른 정수 변환 코딩 데이터(1520)를 발생시킨다. 따라서, 이 방법은 반올림 및 클리핑으로 인한 오차가 정변환(1210) 입력(130) 내에 존재하지 않으면서 변환 및 양자화 행렬 사이의 변형을 허용한다.
양자화 행렬 사이의 변형은 보다 거칠 수도 있고 보다 세밀할 수도 있는 양자화임에 유의하여야 한다. 예를 들어, JPEG 국제 표준으로부터 MPEG 국제 표준으로 데이터를 변형할 때, 양자화는 보다 거칠게 될 것이다. 편집 처리 중에 보다 높은 품질의 JPEG 독립 영상(independent images)이 필요하다. 보다 거칠고, 보다 압축가능한 MPEG 영상은 원하는 대역폭 객체(bandwidth objectives)를 달성하는 데 이용된다. 한편, 중요한 수동 편집(significant hand editing) 후에 JPEG 영상을 압축할 때에는, 변화를 보존하기 위해 양자화가 보다 세밀할 것이다.
변환 코딩 데이터의 실제 영역 변형 시스템(1505)의 일 실시예가 도 15b에 도시되어 있다. 고정밀도 데이터(135)는 실수값 데이터를 입력으로 수용하는 정변환기(1215)로의 입력으로 사용된다. 정변환기(1215)의 출력은 양자화기(1515)로 입력된다. 원하는 시스템 구현에 따라, 정변환기(1215)는 역변환기(125)에서 사용한 것과는 다른 변환을 채용할 수 있다. 예를 들어, 정변환기(1215)가 푸리에 변환을 사용하는 반면, 역변환기(125)는 역 DCT 변환을 사용할 수 있다. 정변환기(1215)가 역변환기(125)의 반대 결과를 발생시키고, 역양자화기(225)와 양자화기(1515)에서 사용된 양자화 값이 동일하면, 결과 정수 변환 코딩 데이터 'B2'(1525)는 역양자화기(225)로의 입력이었던 원래 정수 변환 코딩 데이터 'B'(215)와 동일하다. 다른 정변환이 사용되면 정변환기(1215)는 다른 정수 변환 코딩 데이터 'B2'를 발생시킬 것이라는 점에 주목하여야 한다. 마찬가지로, 역양자화기(225)와 양자화기(1515)에서 서로 다른 양자화 값을 사용하여도, 다른 정수 변환 코딩 데이터(1525)를 발생시킨다. 따라서, 이 시스템에 의하면 반올림 및 클리핑으로 인한 오차가 정변환기(1215) 입력(135) 내에 존재하지 않게 하면서 변환 및 양자화 행렬 사이의 변형이 가능하다.
변환 코딩 데이터의 오차 절감 실제 영역 조작을 수행하는 방법(1600)은 도 16a에서 설명한 바와 같이 도 14a에서 설명한 방법(1400)을 확장함으로써 이루어진다. 고정밀도 데이터(1410)는 고정밀도 데이터를 입력으로 수용하는 정변환(1210)으로의 입력으로서 전달된다. 정변환으로부터의 출력값은 양자화되어(1510) 새로운 변환 코딩 데이터 'B3'(1610)을 발생시킨다.
변환 코딩 데이터의 오차 절감 실제 영역 조작을 수행하는 시스템(1605)은 도 16b에서 설명한 바와 같이 도 14b에서 설명한 시스템(1405)을 확장함으로써 이루어진다. 고정밀도 데이터(1415)는 고정밀도 데이터를 입력으로 수용하는 정변환기(1215)로의 입력으로서 전달된다. 정변환기로부터의 출력값은 양자화기(1515)로 입력되어 새로운 변환 코딩 데이터 'B3'(1615)을 발생시킨다.
변환 코딩 데이터의 오차 절감 실제 영역 조작 방법(1700)의 일 실시예가 도 17a에 도시되어 있다. 선택된 실시예는 DCT를 이용하여 변환 코딩된 코딩 영상(coded images)의 실제 영역 조작 방법이다. 코딩 데이터 'C'(710)는 무손실 엔트로피 디코딩 단계(720)에 의해 디코딩되어 양자화된 DCT 계수를 발생시킨다. 이들 계수는 역양자화되고(730) 역 DCT(740)를 통해 전달되어 고정밀도 실제 영역 데이터(1710)를 발생시킨다. 정수값 입력을 취하는 디스플레이 디바이스(758)로 조작 전에 영상을 전달할 필요가 있거나 임의의 다른 이유로 조작 전에 정수값 데이터(754)를 생성할 필요가 있는 경우에는, 정수로의 변형 및 허용된 범위로의 클리핑 단계(750)가 고정밀도 실제 영역 영상 데이터(1710)에 영향을 미치지 않으면서 조작(1720) 전에 수행된다. 이어서, 영상의 원하는 조작(1720)이 고정밀도 데이터를 입력으로 수용하고 고정밀도 데이터(1730)를 출력으로 발생시키는 방법을 이용하여 수행된다. 정수값 입력을 취하는 디스플레이(758)로 조작 영상 데이터(manipulated image data)를 전달할 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 영상 데이터(1750)를 생성할 필요가 있는 경우에는, 정수로의 변형 및 허용된 범위로의 클리핑 단계(1740)가 처리 영상 데이터(processed image data)(1730)에 영향을 미치지 않으면서 조작(1720) 이후에 수행된다. 고정밀도 영상 데이터(1730)는 고정밀도 데이터를 입력으로 수용하는 정 DCT(1760)에 대한 입력으로 전달된다. 정 변환(1760)으로부터의 출력값은 양자화되어(780) 새로운 정수 DCT 계수(1770)를 발생시킨다. 이들 계수(1770)는 무손실 엔트로피 인코딩 단계(788)에 의해 인코딩되어 새로운 코딩 데이터 'C2'(1780)를 발생시킨다. 전술한 수학식 (3)에서 설명한 바와 같이, 정변환 및 역변환과 조작 시스템이 발생시킨 오차가 양자화 스텝의 절반 미만일 정도로 충분히 정밀하면, DCT 계수에는 오차가 전혀 발생하지 않는다.
변환 코딩 데이터의 오차 절감 실제 영역 조작 시스템(1705)의 일 실시예가 도 17b에 도시되어 있다. 선택된 실시예는 DCT를 이용하여 변환 코딩된 코딩 영상(coded images)의 실제 영역 조작 방법을 구현한다. 코딩 데이터 'C'(715)는 무손실 엔트로피 디코더(725)에 의해 디코딩되어 양자화된 DCT 계수를 발생시킨다. 이들 계수는 역양자화기(735)로 보내진 후, 역 DCT기(745)를 통해 전달되어 고정밀도 실제 영역 데이터(1715)를 발생시킨다. 정수값 입력을 취하는 디스플레이 디바이스(763)로 조작 전에 영상을 전달할 필요가 있거나 임의의 다른 이유로 조작 전에 정수값 데이터(759)를 생성할 필요가 있는 경우에는, 정수 변형기 및 클리퍼(755)가 고정밀도 실제 영역 영상 데이터(1715)에 영향을 미치지 않으면서 조작(1725) 전에 작업한다. 이어서, 영상의 원하는 조작을 수행하는 조작기(1725)가 고정밀도 데이터를 입력으로 수용하고 고정밀도 데이터(1735)를 출력으로 발생시키는 방법을 이용하여 수행된다. 정수값 입력을 취하는 디스플레이(763)로 조작 영상 데이터를 전달할 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 영상 데이터(1755)를 생성할 필요가 있는 경우에는, 선택 사양인 정수 변형기 및 클리퍼(1745)가 처리 영상 데이터(1735)에 영향을 미치지 않으면서 조작(1725) 이후에 정수값 데이터(1755)를 발생시킨다. 고정밀도 영상 데이터(1735)는 고정밀도 데이터를 입력으로 수용하는 정 DCT기(1765)에 대한 입력으로 전달된다. 정 DCT기(1765)로부터의 출력값은 양자화기(785)로 보내져 새로운 정수 DCT 계수(1775)를 발생시킨다. 이들 계수(1775)는 무손실 엔트로피 인코더(793)에 의해 인코딩되어 새로운 코딩 데이터 'C2'(1785)를 발생시킨다. 전술한 수학식 (3)에서 설명한 바와 같이, 정변환 및 역변환과 조작 시스템이 발생시킨 오차가 양자화 스텝의 절반 미만일 정도로 충분히 정밀하면, DCT 계수에는 오차가 전혀 발생하지 않는다.
정변환 및 양자화 단계와 역변환 및 역양자화 단계와 함께 조작 단계를 교대로 수행하여, 변환 코딩 데이터의 실제 영역 오차 절감 조작을 여러 단계에서 수행하는 방법(1800)이 도 18a에 도시되어 있다. 일반적으로, 각 조작은 데이터에 대해 다른 작업을 수행할 것이다. 예를 들어, 디지털 스튜디오 편집에 있어서, 첫 번째 조작은 영상의 색채 보정일 수 있다. 두 번째 조작은 크로마 키잉 방법을 이용하여 색채 보정된 영상을 배경과 병합하는 것일 수 있다. 세 번째 조작은 영상에 하이라이트(highlight)를 추가하는 것일 수 있다. 네 번째 조작은 영상을 잘라서 16 : 9의 영화 종횡비를 4 : 3의 텔레비전 종횡비로 바꾸는 것일 수 있다. 영상을 인쇄함에 있어서, 첫 번째 조작은 영상을 90 °회전시켜 인쇄 방향으로 영상을 위치시키는 것일 수 있다. 두 번째 조작은 수 개의 독립 영상을 하나의 합성 영상으로 병합하는 것일 수 있다. 세 번째 조작은 색채 변환(color conversion)일 수 있다.
도 18a에 도시한 바와 같이, 변환 코딩 데이터 'D0'(910)은 역양자화되고 역변환(920)을 통해 전달되어 고정밀도 실제 영역 데이터(1810)를 발생시킨다. 어떠한 이유로든 정수값 데이터를 발생시킬 필요가 있으면, 고정밀도 데이터(1810)는 실제 영역 데이터(1810)의 고정밀도에 영향을 미치지 않으면서 정수로 변형되고 허용된 범위로 클리핑된다(1820). 이어서, 실제 영역 데이터의 원하는 조작(1110)은 고정밀도 데이터(1810)를 입력으로 수용하고 고정밀도 데이터(1840)를 출력으로 발생시키는 방법을 이용하여 수행된다. 이러한 정수값 출력 데이터를 발생시키는 것이 바람직한 경우, 고정밀도 데이터(1810)는 출력 데이터의 고정밀도에 영향을 미치지 않으면서 정수로 변형되고 허용된 범위로 클리핑될 수 있다(1830). 고정밀도 출력 데이터는 정변환 및 양자화(1850)의 입력으로 전달되어 새로운 변환 코딩 데이터 'F1'(1860)을 발생시킨다. 역양자화 및 역변환, 조작, 정변환 및 양자화 과정은 매 반복 시마다 조작(1870)을 달리하면서 여러 번 반복될 수 있다. 여러 단계 후에, 최종 변환 코딩 데이터 'Fn'(1880)이 반올림 및/또는 클리핑 오차가 감소되거나 제거된 채로 발생한다. 정수로의 변환 및 클리핑 단계 중 어느 하나로부터의 결과인 출력은 다중화기를 갖거나 갖지 않는 출력 디바이스(1890)로 보내질 수 있다.
정변환기 및 양자화기의 작업과 역양자화기 및 역변환기의 작업과 함께 조작기의 작업을 교대로 수행하여, 변환 코딩 데이터의 실제 영역 오차 절감 조작을 여러 단계에서 수행하는 시스템(1805)이 도 18b에 도시되어 있다. 변환 코딩 데이터 'D0'(1815)은 역양자화기 및 역변환기(1819)로 인가되어 고정밀도 실제 영역 데이터(1823)를 발생시킨다. 어떠한 이유로든 정수값 데이터를 발생시킬 필요가 있으면, 고정밀도 데이터(1823)는 실제 영역 데이터(1810)의 고정밀도에 영향을 미치지 않으면서 정수 변형기 및 클리퍼(1827)에 의해 작업될 것이다. 이어서, 조작기(1115)는 실제 영역 데이터(1823)에 대해 작업을 수행하여 원하는 조작을 수행하고 고정밀도 데이터(1845)를 출력으로 발생시킨다. 이러한 정수값 출력 데이터를 발생시키는 것이 바람직한 경우, 고정밀도 데이터(1845)는 출력 데이터의 고정밀도에 영향을 미치지 않으면서 정수 변형기 및 클리퍼(1835)로 입력될 수 있다. 고정밀도 출력 데이터는 정변환기 및 양자화기(1855)의 입력으로 전달되어 새로운 변환 코딩 데이터 'F1'(1865)을 발생시킨다. 역양자화기 및 역변환기, 조작기, 정변환기 및 양자화기 작업은 매 반복 시마다 조작기(1875)를 달리하면서 여러 번 반복될 수 있다. 여러 단계 후에, 최종 변환 코딩 데이터 'Fn'(1885)이 반올림 및/또는 클리핑 오차가 감소되거나 제거된 채로 발생한다. 특정 실시예에서, 정수 변형기 및 클리퍼 모듈 중 어느 하나로부터의 출력은 출력 디바이스(1890)로 보내진다. 코딩된 영상 데이터에 대해, 출력 디바이스는 디스플레이 또는 텔레비전 세트일 수 있다. 코딩된 오디오 데이터에 대해, 출력 디바이스는 플레이어 및/또는 녹음기일 수 있다.
본 발명이 다중 세대 문제의 한 측면을 어떻게 해결하는지를 보여주는 수치적인 예가 도 19a에 도시되어 있다. 단 하나(상수, 즉 DC 항)만이 0이 아닌 변환 영역 계수 세트(822)는 역변환에 의해 작업되어 실제 영역 데이터 블럭(824)을 발생시킨다. 이 경우, 데이터는 모두 128.5인 64 개의 값으로 이루어져 있다. 8 비트를 위한 128의 JPEG 레벨 시프트가 적용되었음에 유의하여야 한다. 이어서, 정변환이 적용되어 새로운 변환 영역 계수(1910)를 발생시킨다. 새로운 변환 계수(1910)가 초기 변환 계수(822)와 동일함을 알 수 있다. 이는 반올림 오차가 정 DCT로 보내진 데이터 내에 존재하지 않기 때문이다.
본 발명이 다중 세대 문제의 한 측면을 어떻게 해결하는지를 보여주는 수치적인 예가 도 19b에 도시되어 있다. 단 하나(상수, 즉 DC 항)만이 0이 아닌 변환 영역 계수 세트(832)는 역변환에 의해 작업되어 실제 영역 데이터 블럭(834)을 발생시킨다. 이 경우, 데이터는 모두 128.875인 64 개의 값으로 이루어져 있다. 8 비트를 위한 128의 JPEG 레벨 시프트가 적용되었음에 유의하여야 한다. 이어서, 정변환이 적용되어 새로운 변환 영역 계수(1938)를 발생시킨다. 새로운 변환 계수(1938)가 초기 변환 계수(832)와 동일함을 알 수 있다. 이는 반올림 오차가 정 DCT로 보내진 데이터 내에 존재하지 않기 때문이다.
고정밀도 숫자를 이용하여 실제 영역 반올림이나 내림으로 인해 야기된 오차를 제거하는 방법을 살펴보았으므로, 이제는 실제 영역 클리핑 오차를 방지하는 방법도 살펴보겠다. 도 8f에서 사용한 것과 동일한 수치적 개시점(numerical starting point)과 처음 세 단계가 도 19c에 도시되어 있다. 초기 양자화 DCT 계수는 행렬(874)로 표시된다. 두 개의 계수를 제외하고는 모두 0이고, 두 개의 0이 아닌 계수는 DC 계수와 고주파수 계수 하나이다. 역양자화 이후의 계수는 행렬(878)로 표시된다. 사용된 양자화 행렬은 도 8a에 도시되어 있다. 역 DCT가 이들 변환 데이터에 대해 수행되면, 실수 데이터가 행렬(882)과 같이 발생한다. 행렬(882)에서 도시한 데이터는 이미 정수로 반올림되었으나 허용된 범위로 클리핑되지는 않았다.
도 19d는 실제 영역 데이터에 적용된 정 DCT의 결과로 새로운 반올림 변환 데이터(1944)를 도시하고 있다. 양자화가 수행되면, 새로운 변환 코딩 데이터(1948)가 발생한다. 이 예에서, 변환 데이터 내의 변화는 양자화 후 변환 코딩 데이터 내에 변화를 일으킬 정도로 크지는 않다.
세대 간의 조작의 예로는 두 개 이상의 변환 코딩 데이터 세트를 병합하는 것이 있다. 변환 코딩 영상 데이터 세트에 있어서는, 다수의 작은 영상이 보다 큰 하나의 화면으로 수집될 필요가 있으므로, 병합이 필요하다. 복사장(fan-folded) 광고 책자는 전형적으로 다수의 개별적인 그림으로 이루어진다. 오늘날의 최고 수준 레이저 프린터는 한 번에 한 쪽 이상을 인쇄한다. 이런 경우, 영상은 일반적으로 중첩되지 않지만, 양자화, JPEG DCT를 위한 8 × 8 블럭 구조와 같은 기준 눈금에 대한 위치, 또는 방향이 동일하지 않을 수도 있다. 최종 화면을 실제 영역에서 합성함으로써, 표준 과정이 각각의 부영상에 대해 사용될 수 있다. 그러면, 합성 영상은 온 더 플라이 인쇄(on-the-fly printing)를 위한 최후의 압축해제를 위해 재압축될 수 있다.
마찬가지로, 디지털 편집은 직렬로 수행되는 몇몇 독립 조작을 필요로 하는 여러 특수 효과를 포함할 수 있다. 디지털 영화는 종종 용명/용암(fade-in/fade-out) 특수 효과를 사용하여 두 개의 주요 장면 사이의 부드러운 전환을 수행한다. 이러한 특수 효과는 각각의 장면을 독립적으로 처리한 후에 이루어질 것이다. 따라서, 여러 세대의 압축해제 및 재압축이 특수 효과의 합성을 발생시키기 위한 편집에 있어 필요한 경우가 많다.
크로마 키잉은 두 개의 독립적인 비디오 데이터 스트림을 포함한다. 하나의 비디오 스트림에서는 배경이 포착된다. 다른 비디오 스트림에서는, 종종 움직이는 배우들이 포함된 행동으로 이루어진 전경이 어두운 푸른 혹은 검은 배경과 같은 비어 있는 단일 색채를 배경으로 촬영된다. 이어서, 전경 영상 내의 빈 화소가 배경 비디오로부터의 화소로 대체된다. 화소가 단일 화소 레벨에서 혼합되므로, 영상은 실제 영역에서 병합될 필요가 있다. 정수로의 변형과 클리핑에 의해 발생한 오차는 이러한 디지털 스튜디오 응용에 있어서 바람직하지 않다. 이들 오차는 본 발명을 구현함으로써 감소되거나 제거된다.
본 발명을 이용하는 다른 응용 예는 때때로 100 메가 화소 이상을 갖는 디지털 영상을 이용하는 고수준 디지털 그래픽 시장 내에 있다. 그럴듯한 광고 책자와 큰 사진(large photographic trade)은 배경(booth backdrops)이 이러한 고품질 디지털 영상을 이용한 두 가지 예일 뿐이라는 사실을 보여준다. 고 품질 손실 JPEG 압축은 전송을 유지하고 저장 비용을 낮추기 위해 때때로 사용된다. 이러한 영상이 압축해제되고 재압축되어, 하이라이트를 더하거나, 색채를 보장하거나, 텍스트 및 영상 자르기(cropping)의 추가 또는 변경과 같은 변경과 수정을 허용하므로, 의도하지 않은 오차는 본 발명의 개념을 이용하여 해결할 수 있는 문제이다.
본 발명의 개념을 위한 전술한 예는 영상 및 비디오 변환 데이터에 있어 일반적인 것이다. 인터넷의 광범위한 사용은 JPEG 및 MPEG 압축 영상 데이터의 가치를 보여주었다. JPEG 영상이 인쇄되는 경우, 축척의 변화 또는 방향의 변화와 같은 조작이 필요할 수 있다. 또한, 재압축이 뒤따르는 다른 색채 공간으로의 변환은 저장될 영상의 인쇄 준비 판(print-ready versions)을 허용할 것이다. 본 발명을 이용하면, 반올림과 클리핑으로 인한 오차를 전달함에 있어 고유한 문제점으로 극복하게 된다.
오디오 코딩 데이터도 감소된 오차를 가지고 실제 영역에서 압축해제되고, 특수 음향 효과와 믹싱되고, 다른 오디오 데이터와 병합되고, 처리될 필요가 있다. 데이터가 변환 영역에서 저장될 때, 현상을 표시하는 데이터의 변환 및 역변환을 채용하는 디지털 처리의 다른 산업적, 상업적, 군사적 응용에서도 구현될 수 있다. 따라서, 본 발명을 이용하는 것이 상당히 유리한 이러한 응용 및 다른 대표적인 응용이 존재한다.
그리고, 본 발명이 장치나 컴퓨터 제품으로 제공될 수도 있다는 점도 주목해야 한다. 예컨대, 본 발명의 방법을 컴퓨터가 수행하게 하도록, 그 자체 내에서 실시되는 컴퓨터 판독가능 프로그램 코드를 구비하는 컴퓨터 이용가능 매체를 포함하는 제조 장치로서 구현될 수도 있다.
본 발명이 특정 구성에 대해 설명되었지만, 본 발명의 내용 및 개념은 다른 구성에도 적절하며 응용가능하다는 것에 유의하여야 한다. 당업자는 본 발명의 사상과 범주를 벗어나지 않으면서 개시한 실시예에 대한 다른 수정이 이루어질 수 있다는 점을 명백히 알 것이다.
본 발명에 의하면, 역변환 후 정수로의 반올림이나 허용된 범위로의 클리핑 등에 의해 발생한 재변환 데이터에서 원하지 않는 오차를 감소시킨다.

Claims (84)

  1. 현상을 표시하는 변환 데이터(transform data)를 디지털 처리하는 방법에 있어서,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자(high-precision numbers)를 형성하는 단계와,
    ② 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 단계
    를 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  2. 제 1 항에 있어서,
    ③ 상기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑(clipping)하여 변형 데이터(converted data)를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  3. 제 1 항에 있어서,
    상기 현상은 영상인 현상 표시 변환 데이터의 디지털 처리 방법.
  4. 제 1 항에 있어서,
    상기 효과는 두 개의 데이터 세트의 크로마 키 병합(chroma-key merging)인 현상 표시 변환 데이터의 디지털 처리 방법.
  5. 제 1 항에 있어서,
    상기 효과는 영상 데이터의 색채 보정(color correction)인 현상 표시 변환 데이터의 디지털 처리 방법.
  6. 제 3 항에 있어서,
    상기 효과는 영상의 90°회전인 현상 표시 변환 데이터의 디지털 처리 방법.
  7. 제 1 항에 있어서,
    상기 고정밀도 숫자는 부동 소수점 숫자(floating point numbers)인 현상 표시 변환 데이터의 디지털 처리 방법.
  8. 제 1 항에 있어서,
    상기 고정밀도 숫자는 분수 부분을 포함하는 고정 정밀도 숫자(fixed precision numbers)인 현상 표시 변환 데이터의 디지털 처리 방법.
  9. 제 1 항에 있어서,
    상기 역변환 단계는 역 이산 코사인 변환(inverse discrete cosine transform)을 채용하는 현상 표시 변환 데이터의 디지털 처리 방법.
  10. 제 1 항에 있어서,
    상기 역변환 단계는 역 이산 웨이브렛 변환(inverse discrete wavelet transform)을 채용하는 현상 표시 변환 데이터의 디지털 처리 방법.
  11. 제 1 항에 있어서,
    상기 역변환 단계는 역 이산 푸리에 변환(inverse discrete Fourier transform)을 채용하는 현상 표시 변환 데이터의 디지털 처리 방법.
  12. 현상을 표시하는 변환 데이터를 실제 영역에서 디지털 처리하는 방법에 있어서,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ② 상기 고정밀도 숫자를 정변환하는 단계
    를 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  13. 제 12 항에 있어서,
    상기 정변환에 대한 반대 기능은 상기 역변환과는 다른 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  14. 제 13 항에 있어서,
    상기 정변환은 정 이산 코사인 변환이고 상기 역변환은 역 이산 웨이브렛 변환인 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  15. 제 1 항에 있어서,
    ④ 변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  16. 제 15 항에 있어서,
    ⑤ 상기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 변형 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  17. 제 15 항에 있어서,
    ⑥ 코딩 데이터를 엔트로피 디코딩하여 변환 코딩 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  18. 제 17 항에 있어서,
    상기 코딩 데이터는 코딩된 영상 데이터인 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  19. 제 17 항에 있어서,
    상기 코딩 데이터는 코딩된 비디오 데이터인 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  20. 제 18 항에 있어서,
    상기 코딩된 영상 데이터는 JPEG 정지 영상 국제 표준 포맷(a JPEG still image international standard format)으로 되어 있는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  21. 제 19 항에 있어서,
    상기 코딩된 비디오 데이터는 MPEG 이동 비디오 국제 표준 포맷(a MPEG motion video international standard format)으로 되어 있는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  22. 제 15 항에 있어서,
    상기 역변환 단계는 역 이산 푸리에 변환을 채용하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  23. 제 15 항에 있어서,
    상기 역변환 단계는 역 이산 웨이브렛 변환을 채용하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  24. 제 15 항에 있어서,
    상기 역변환 단계는 역 이산 푸리에 변환을 채용하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  25. 제 15 항에 있어서,
    상기 고정밀도 숫자는 분수 부분을 포함하는 고정 정밀도 숫자인 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  26. 제 12 항에 있어서,
    ③ 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 단계를 더 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  27. 현상을 표시하는 변환 코딩 데이터를 디지털 처리하는 방법에 있어서,
    ① 변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 단계와,
    ② 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ③ 상기 고정밀도 숫자를 정변환하여 정변환 데이터를 형성하는 단계와,
    ④ 상기 정변환 데이터를 양자화하여 양자화 데이터를 형성하는 단계
    를 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  28. 제 27 항에 있어서,
    ⑤ 엔트로피 디코딩을 채용하여 코딩 데이터를 엔트로피 디코딩함으로써 변환 코딩 데이터를 형성하는 단계와,
    ⑥ 엔트로피 인코딩을 채용하여 상기 양자화 데이터를 엔트로피 인코딩함으로써 인코딩 데이터를 형성하는 단계
    를 더 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  29. 제 27 항에 있어서,
    ⑦ 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 단계를 더 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  30. 제 27 항에 있어서,
    ⑧ 상기 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하여 변형 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  31. 제 29 항에 있어서,
    ⑨ 상기 정변환, 양자화, 엔트로피 인코딩, 엔트로피 디코딩, 역양자화, 역변환 단계와 함께 상기 조작 단계를 원하는 회수만큼 교대로 수행하는 단계를 더 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  32. 제 31 항에 있어서,
    상기 코딩 데이터는 압축된 데이터이고, 상기 교대 단계 각각은 압축/압축해제 사이클을 구현하는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  33. 제 31 항에 있어서,
    상기 교대 단계 각각은 상기 코딩 데이터를 재압축하고 압축해제하여 편집 작업을 가능하게 하는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  34. 제 28 항에 있어서,
    상기 코딩 데이터는 코딩된 오디오 데이터인 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  35. 제 28 항에 있어서,
    상기 코딩 데이터는 코딩된 전자기 환경 데이터(coded electromagnetic environment data)인 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  36. 제 28 항에 있어서,
    상기 코딩 데이터는 코딩된 비디오 데이터인 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  37. 제 28 항에 있어서,
    상기 코딩 데이터는 JPEG 표준 포맷으로 인코딩되는 현상 표시 변환 코딩 데이터의 디지털 처리 방법.
  38. 현상을 표시하는 제 1 레벨 변환 코딩 데이터를 실제 영역에서 디지털 처리하는 시스템에 있어서,
    ① 상기 변환 코딩 데이터로부터 변환 데이터를 생성하는 제 1 역양자화기와,
    ② 상기 변환 데이터의 실제 영역으로의 역변환을 발생시켜 고정밀도 숫자를 형성하는 제 1 역변환기와,
    ③ 상기 고정밀도 숫자를 정변환하여 정변환 데이터를 형성하는 제 1 정변환기와,
    ④ 상기 정변환 데이터를 양자화하여 양자화 데이터를 형성하는 제 1 양자화기
    를 포함하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  39. 제 38 항에 있어서,
    상기 제 1 정변환기는 상기 제 1 역변환기에 의해 채용된 제 1 변환 유형과는 다른 유형의 변환을 채용하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  40. 제 38 항에 있어서,
    상기 제 1 정변환기는 정 이산 코사인 변환을 발생시키고, 상기 제 1 역변환기는 역 이산 웨이브렛 변환을 발생시키는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  41. 제 38 항에 있어서,
    ⑤ 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 조작기를 더 포함하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  42. 제 38 항에 있어서,
    상기 제 1 역양자화기와 상기 제 1 양자화기는 동일한 양자화 값을 사용하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  43. 제 41 항에 있어서,
    양자화 변환 데이터의 부분집합만이 상이한 변환 코딩 데이터를 발생시키는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  44. 제 38 항에 있어서,
    상기 제 1 역양자화기와 상기 제 1 양자화기는 적어도 하나의 다른 양자화 값을 사용하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  45. 제 38 항에 있어서,
    ⑥ 코딩 데이터로부터 상기 변환 코딩 데이터를 형성하는 엔트로피 디코더와,
    ⑦ 상기 양자화 데이터를 인코딩하는 엔트로피 인코더
    를 더 포함하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  46. 현상을 표시하는 변환 데이터를 디지털 처리하는 시스템에 있어서,
    ① 고정밀도 숫자를 이용하여 상기 변환 데이터를 실제 영역으로 역변환하는 역변환기와,
    ② 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 조작기
    를 포함하는 현상 표시 변환 데이터의 디지털 처리 시스템.
  47. 제 46 항에 있어서,
    ③ 상기 고정밀도 숫자를 정수로 변형하는 변형기 및 상기 정수를 허용된 범위로 클리핑하는 클리퍼를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 시스템.
  48. 현상을 표시하는 변환 코딩 데이터를 디지털 처리하는 시스템에 있어서,
    ① 상기 변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 역양자화기와,
    ② 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 역변환기와,
    ③ 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 조작기
    를 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 시스템.
  49. 제 48 항에 있어서,
    ④ 상기 고정밀도 숫자를 정수로 변형하는 변형기 및 상기 정수를 허용된 범위로 클리핑하는 클리퍼를 더 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 시스템.
  50. 현상을 표시하는 변환 데이터를 실제 영역에서 디지털 처리하는 시스템에 있어서,
    ① 상기 변환 데이터의 실제 영역으로의 역변환을 발생시켜 고정밀도 숫자를 형성하는 역변환기와,
    ② 상기 고정밀도 숫자를 정변환하는 정변환기
    를 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 시스템.
  51. 제 50 항에 있어서,
    ③ 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 조작기를 더 포함하는 현상 표시 변환 코딩 데이터의 디지털 처리 시스템.
  52. 제 41 항에 있어서,
    상기 양자화 데이터는 다른 레벨의 변환 코딩 데이터를 형성하고,
    상기 시스템은
    ⑧ 상기 제 1 레벨 변환 코딩 데이터에 대해 수행된 것과 유사한 기능을 다른 레벨의 변환 코딩 데이터에 대해 수행하는 다른 역양자화기, 다른 역변환기, 다른 조작기, 다른 정변환기, 다른 양자화기를 더 포함하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  53. 제 52 항에 있어서,
    상기 제 1 조작기에 의해 발생한 효과는 상기 다른 조작기에 의해 발생한 효과와는 다른 유형의 효과인 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  54. 제 52 항에 있어서,
    상기 제 1 역양자화기, 제 1 역변환기, 제 1 정변환기, 제 1 양자화기의 기능 및 상기 다른 역양자화기, 다른 역변환기, 다른 정변환기, 다른 양자화기의 각 기능은 동일한 모듈에 의해 각각 수행되는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  55. 제 2 항에 있어서,
    ⑥ 출력 디바이스에 의한 이용을 위해 상기 변환 데이터를 제공하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  56. 제 55 항에 있어서,
    상기 출력 디바이스는 디스플레이 모니터(a display monitor)인 현상 표시 변환 데이터의 디지털 처리 방법.
  57. 제 55 항에 있어서,
    상기 출력 디바이스는 래스터 디스플레이 모니터(a raster display monitor)인 현상 표시 변환 데이터의 디지털 처리 방법.
  58. 제 1 항에 있어서,
    상기 변환 데이터는 스펙트럼 분석(spectral analysis) 정보를 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  59. 현상을 표시하는 변환 데이터를 디지털 처리하기 위해 그 자체 내에서 실시되는 컴퓨터 판독가능 프로그램 코드 수단을 구비하는 컴퓨터 이용가능 매체를 포함하는 제조 장치에 있어서, 상기 제조 장치 내의 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터로 하여금,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ② 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 단계
    를 수행하도록 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 제조 장치.
  60. 제 59 항에 있어서,
    상기 제조 장치 내의 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터로 하여금 ③ 상기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 변형 데이터를 형성하는 단계를 수행하도록 하는 컴퓨터 판독가능 프로그램 코드 수단을 더 포함하는 제조 장치.
  61. 제 59 항에 있어서,
    상기 현상은 영상인 제조 장치.
  62. 현상을 표시하는 변환 데이터를 실제 영역에서 디지털 처리하기 위해 그 자체 내에서 실시되는 컴퓨터 판독가능 프로그램 코드 수단을 구비하는 컴퓨터 이용가능 매체를 포함하는 컴퓨터 제품에 있어서, 상기 컴퓨터 제품 내의 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터로 하여금,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ② 상기 고정밀도 숫자를 정변환하는 단계
    를 수행하도록 하는 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품.
  63. 제 62 항에 있어서,
    상기 정변환의 반대 기능은 상기 역변환과는 다른 컴퓨터 프로그램 제품.
  64. 제 62 항에 있어서,
    상기 정변환은 정 이산 코사인 변환이고, 상기 역변환은 역 이산 웨이브렛 변환인 컴퓨터 프로그램 제품.
  65. 현상을 표시하는 변환 코딩 데이터를 디지털 처리하는 방법을 수행하는 기계에 의해 실행가능한 인스트럭션의 프로그램을 실제로 실시하는, 기계에 의해 판독가능한 프로그램 저장 디바이스에 있어서, 상기 방법은
    ① 상기 변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 단계와,
    ② 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ③ 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 단계
    를 포함하는 프로그램 저장 디바이스.
  66. 제 62 항에 있어서,
    상기 컴퓨터 프로그램 제품 내의 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터로 하여금
    ③ 상기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 변형 데이터를 형성하는 단계를 수행하도록 하는 컴퓨터 판독가능 프로그램 코드 수단을 더 포함하는 컴퓨터 프로그램 제품.
  67. 현상을 표시하는 변환 코딩 데이터를 디지털 처리하는 방법을 수행하는 기계에 의해 실행가능한 인스트럭션의 프로그램을 실제로 실시하는, 기계에 의해 판독가능한 프로그램 저장 디바이스에 있어서, 상기 방법은
    ① 상기 변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 단계와,
    ② 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ③ 상기 고정밀도 숫자를 정변환하여 정변환 데이터를 형성하는 단계와,
    ④ 상기 정변환 데이터를 양자화하여 양자화 데이터를 형성하는 단계
    를 포함하는 프로그램 저장 디바이스.
  68. 제 67 항에 있어서,
    상기 방법은 ⑤ 상기 고정밀도 숫자를 조작하여 효과를 발생시키는 단계를 더 포함하는 프로그램 저장 디바이스.
  69. 제 67 항에 있어서,
    상기 방법은 ⑥ 상기 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하여 변형 데이터를 형성하는 단계를 더 포함하는 프로그램 저장 디바이스.
  70. 제 67 항에 있어서,
    상기 방법은
    ⑦ 엔트로피 디코딩을 채용하여 코딩 데이터를 엔트로피 디코딩함으로써 상기 변환 코딩 데이터를 형성하는 단계와,
    ⑧ 무손실 엔트로피 인코딩을 채용하여 상기 양자화 데이터를 엔트로피 인코딩함으로써 인코딩 데이터를 형성하는 단계
    를 더 포함하는 프로그램 저장 디바이스.
  71. 제 70 항에 있어서,
    상기 방법은 ⑨ 상기 정변환, 양자화, 엔트로피 인코딩, 엔트로피 디코딩, 역양자화, 역변환 단계와 함께 상기 조작 단계를 교대로 하는 단계를 더 포함하는 프로그램 저장 디바이스.
  72. 제 71 항에 있어서,
    상기 코딩 데이터는 압축된 데이터이고, 상기 교대 단계 각각은 압축/압축해제 사이클을 구현하는 프로그램 저장 디바이스.
  73. 제 70 항에 있어서,
    상기 현상은 JPEG 표준 포맷으로 인코딩된 영상 데이터인 프로그램 저장 디바이스.
  74. 현상을 표시하는 변환 데이터를 실제 영역에서 디지털 처리하는 방법에 있어서,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ② 상기 고정밀도 숫자를 범위 외 데이터(out of range data)를 포함하는 정수로 변형하는 단계와,
    ③ 상기 정수를 정변환하여 정변환 데이터를 형성하는 단계
    를 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  75. 제 74 항에 있어서,
    ④ 상기 정수를 조작하여 효과를 발생시키는 단계를 더 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  76. 제 74 항에 있어서,
    ⑤ 상기 변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 단계와,
    ⑥ 상기 정변환 데이터를 양자화하여 양자화 데이터를 형성하는 단계
    를 더 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  77. 제 74 항에 있어서,
    ⑦ 상기 정수를 허용된 범위로 클리핑하여 변형 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  78. 제 76 항에 있어서,
    ⑧ 상기 정변환, 양자화, 역양자화, 역변환 단계와 함께 상기 조작 단계를 원하는 회수만큼 교대로 수행하는 단계를 더 포함하는 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
  79. 현상을 표시하는 변환 데이터를 디지털 처리하는 방법을 수행하는 기계에 의해 실행가능한 인스트럭션의 프로그램을 실제로 실시하는, 기계에 의해 판독가능한 프로그램 저장 디바이스에 있어서, 상기 방법은
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 고정밀도 숫자를 형성하는 단계와,
    ② 상기 고정밀도 숫자를 범위 외 데이터를 포함하는 정수로 변형하는 단계와
    ③ 상기 정수를 정변환하여 정변환 데이터를 형성하는 단계
    를 포함하는 프로그램 저장 디바이스.
  80. 제 79 항에 있어서,
    상기 방법은 ④ 상기 정수를 조작하여 효과를 발생시키는 단계를 더 포함하는 프로그램 저장 디바이스.
  81. 제 79 항에 있어서,
    상기 방법은 ⑤ 변환 코딩 데이터를 역양자화하여 상기 변환 데이터를 형성하는 단계를 더 포함하는 프로그램 저장 디바이스.
  82. 제 79 항에 있어서,
    상기 방법은 ⑥ 상기 정변환 데이터를 양자화하여 양자화 데이터를 형성하는 단계를 더 포함하는 프로그램 저장 디바이스.
  83. 제 79 항에 있어서,
    상기 방법은 ⑦ 상기 정수를 허용된 범위로 클리핑하여 변형 데이터를 형성하는 단계를 더 포함하는 프로그램 저장 디바이스.
  84. 제 17 항에 있어서,
    상기 코딩 데이터는 코딩된 오디오 데이터인 현상 표시 변환 데이터의 실제 영역 디지털 처리 방법.
KR1019990044264A 1998-11-04 1999-10-13 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템 KR100357658B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/186,247 1998-11-04
US09/186,247 US7194138B1 (en) 1998-11-04 1998-11-04 Reduced-error processing of transformed digital data
US9/186,247 1998-11-04

Publications (2)

Publication Number Publication Date
KR20000034993A true KR20000034993A (ko) 2000-06-26
KR100357658B1 KR100357658B1 (ko) 2002-10-25

Family

ID=22684203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990044264A KR100357658B1 (ko) 1998-11-04 1999-10-13 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템

Country Status (7)

Country Link
US (2) US7194138B1 (ko)
JP (1) JP3701824B2 (ko)
KR (1) KR100357658B1 (ko)
CN (1) CN100339852C (ko)
GB (1) GB2344716B (ko)
MY (1) MY130637A (ko)
SG (1) SG104256A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100465156B1 (ko) * 2001-08-31 2005-01-13 (주)씨앤에스 테크놀로지 분산산술처리방식의 dct/idct 연산기에 있어서연산오차 및 연산시간 감소방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6909812B1 (en) * 2000-07-13 2005-06-21 Lucent Technologies Inc. Methods and apparatus for nearly lossless-concatenated block transform coding
US6961473B1 (en) * 2000-10-23 2005-11-01 International Business Machines Corporation Faster transforms using early aborts and precision refinements
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
WO2005086357A1 (ja) * 2004-03-08 2005-09-15 Mitsubishi Denki Kabushiki Kaisha 符号化データの復号プログラム及び方法並びに装置
US7489826B2 (en) * 2004-10-07 2009-02-10 Infoprint Solutions Company, Llc Compensating for errors in performance sensitive transformations
US7689052B2 (en) * 2005-10-07 2010-03-30 Microsoft Corporation Multimedia signal processing using fixed-point approximations of linear transforms
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
EP2081387A4 (en) * 2007-03-28 2011-08-31 Panasonic Corp DEQUANTIZATION CIRCUIT, DEBURRENT PROCESSING AND IMAGE PLAYING DEVICE
EP2222086A1 (de) * 2009-02-18 2010-08-25 EcoDisc Technology AG Verfahren und Vorrichtung zur Vermeidung von Rundungsfehlern nach Durchführung einer inversen diskreten orthogonalen Transformation
US10447474B2 (en) * 2009-04-20 2019-10-15 Pure Storage, Inc. Dispersed data storage system data decoding and decryption
EP2452499A1 (en) * 2009-07-06 2012-05-16 Thomson Licensing Methods and apparatus for spatially varying residue coding
US20120230395A1 (en) * 2011-03-11 2012-09-13 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform with quantization matricies

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02227770A (ja) 1989-02-28 1990-09-10 Nec Corp 直交変換器
US5719964A (en) * 1990-07-27 1998-02-17 International Business Machines Corporation Array processing with fused multiply/add instruction
EP0533195A2 (en) * 1991-09-20 1993-03-24 Sony Corporation Picture signal encoding and/or decoding apparatus
US5379122A (en) * 1992-10-02 1995-01-03 Xerox Corporation Decompression of standard ADCT-compressed images
NL9301358A (nl) * 1993-08-04 1995-03-01 Nederland Ptt Transcodeerinrichting.
US5495292A (en) * 1993-09-03 1996-02-27 Gte Laboratories Incorporated Inter-frame wavelet transform coder for color video compression
JP3252567B2 (ja) 1993-10-22 2002-02-04 ソニー株式会社 高能率符号化復号化装置
US5675666A (en) 1995-03-02 1997-10-07 Sony Corportion Image data compression method and apparatus with pre-processing to compensate for the blocky effect
JP2914226B2 (ja) * 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
US6256349B1 (en) * 1995-12-28 2001-07-03 Sony Corporation Picture signal encoding method and apparatus, picture signal transmitting method, picture signal decoding method and apparatus and recording medium
GB2318472B (en) 1996-10-09 2000-11-15 Sony Uk Ltd Processing encoded signals
GB2318475B (en) * 1996-10-21 2000-08-23 B & W Loudspeakers Enclosures for loudspeaker drive units
US6009192A (en) 1996-12-19 1999-12-28 Xerox Corporation Color correction of a compressed image
KR100436649B1 (ko) 1996-12-20 2004-09-08 소니 일렉트로닉스 인코포레이티드 초당24프레임필름으로부터취해진비디오프로그램재료의상태를변화시키기위한방법및장치
US6178205B1 (en) * 1997-12-12 2001-01-23 Vtel Corporation Video postfiltering with motion-compensated temporal filtering and/or spatial-adaptive filtering
US6151361A (en) * 1997-12-29 2000-11-21 Thomson Licensing S.A. System and method for reducing multipass signal degradation
US6134350A (en) * 1998-02-18 2000-10-17 Dome Imaging Systems, Inc. Method of producing wavelets and compressing digital images and of restoring the digital images
US6256422B1 (en) * 1998-11-04 2001-07-03 International Business Machines Corporation Transform-domain correction of real-domain errors
US6243728B1 (en) * 1999-07-12 2001-06-05 Sony Corporation Of Japan Partitioned shift right logic circuit having rounding support

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100465156B1 (ko) * 2001-08-31 2005-01-13 (주)씨앤에스 테크놀로지 분산산술처리방식의 dct/idct 연산기에 있어서연산오차 및 연산시간 감소방법

Also Published As

Publication number Publication date
JP2000151415A (ja) 2000-05-30
US7724976B2 (en) 2010-05-25
SG104256A1 (en) 2004-06-21
CN1253339A (zh) 2000-05-17
GB2344716B (en) 2003-07-30
US7194138B1 (en) 2007-03-20
JP3701824B2 (ja) 2005-10-05
CN100339852C (zh) 2007-09-26
GB2344716A (en) 2000-06-14
GB9924446D0 (en) 1999-12-15
US20070160146A1 (en) 2007-07-12
MY130637A (en) 2007-07-31
KR100357658B1 (ko) 2002-10-25

Similar Documents

Publication Publication Date Title
KR100360013B1 (ko) 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템
KR100351654B1 (ko) 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템
US7724976B2 (en) Reduced error processing of transformed digital data
JP4343440B2 (ja) Dwtベース技法によって圧縮された画像を符号化するための実時間アルゴリズムおよびアーキテクチャ
US6330369B1 (en) Method and apparatus for limiting data rate and image quality loss in lossy compression of sequences of digital images
US7463777B2 (en) Method for the scaling down of data
US6563946B2 (en) Image processing apparatus and method
Richter Backwards compatible coding of high dynamic range images with JPEG
US8600181B2 (en) Method for compressing images and a format for compressed images
US6675185B1 (en) Hybrid domain processing of multi-dimensional transformed data
US7099523B2 (en) Method and system for scaling a signal sample rate
Lewis et al. Exact JPEG recompression
JP3458883B2 (ja) 画像処理方法及び画像処理装置
JPH09205552A (ja) 画像符号化方法とその装置
KUMAR et al. Designing a Image Compression for JPEG Format by Verilog HDL
JP2002300593A (ja) ディジタル信号変換方法およびその装置
JPH08265748A (ja) 画像処理方法及び画像処理装置
JPH05130418A (ja) 画像処理装置
KR19990075067A (ko) 데이터 압축 회로 및 방법
AU2004218686A1 (en) A Combined Spatial and Transform Domain Method for Compressing Image Data into a Fixed Size Buffer

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee