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

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

Info

Publication number
KR100360013B1
KR100360013B1 KR1019990044265A KR19990044265A KR100360013B1 KR 100360013 B1 KR100360013 B1 KR 100360013B1 KR 1019990044265 A KR1019990044265 A KR 1019990044265A KR 19990044265 A KR19990044265 A KR 19990044265A KR 100360013 B1 KR100360013 B1 KR 100360013B1
Authority
KR
South Korea
Prior art keywords
data
transform
high precision
processing
delete delete
Prior art date
Application number
KR1019990044265A
Other languages
English (en)
Other versions
KR20000034994A (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 KR20000034994A publication Critical patent/KR20000034994A/ko
Application granted granted Critical
Publication of KR100360013B1 publication Critical patent/KR100360013B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Multimedia (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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 디지털 처리에서 오차 열화 데이터(error degraded data)를 채용함으로 인한 문제점 해결에 관한 것이다. 본 발명은 특히 반올림 오차(rounding errors)와 클리핑 오차(clipping errors)로 인한 어떠한 처리도 하지 않고, 역변환 및 정변환 주기 중에 변환 데이터가 열화되는 다중 세대 문제(multi-generation problem)를 해결한다. 본 발명은 변환 코딩 데이터(transformed-coded data)의 오차 절감 처리(reduced-error processing) 방법, 시스템 및 장치를 제공한다. 변환 데이터를 역변환한 후, 고정밀도 숫자(high-precision numbers)가 정수로 변형(convert)되고 허용된 범위로 클리핑(clip)되어 변형 데이터(converted data)를 형성한다. 변형 데이터로부터 역변환의 고정밀도 결과를 감산함으로써 고정밀도 차분(high-precision differences)을 얻는다. 변형 데이터는 조작되고 정수 데이터를 예상하는 출력 디바이스로 보내질 수 있다. 처리 고정밀도 숫자(processed high-precision numbers)는 고정밀도 차분을 처리 변형 데이터(processed converted data)에 가산함으로써 형성된다. 따라서, 반올림 및 클리핑 오차가 처리 고정밀도 숫자 내에서 상당히 감소한다. 처리 고정밀도 숫자는 변환 영역으로의 정변환을 포함하는 후속의 처리를 위해 사용된다. 본 발명의 다른 실시예에서는, 조작 변형 데이터(manipulated converted data)가 변형 데이터와 여전히 동일한 경우마다 조작 변형 데이터 대신 고정밀도 숫자를 선택함으로써 처리 고정밀도 숫자가 생성된다. 본 발명은 디지털 변환 데이터를 채용하는 많은 응용에 있어 유리하며, MPEG 코딩, JPEG 코딩, 웨이브렛 코딩 비디오 및 오디오 데이터 편집 중에 디지털 스튜디오에서 사용하기에 특히 유리하다.

Description

현상 표시 변환 데이터의 디지털 처리 방법 및 시스템{ERROR REDUCTION IN TRANSFORMED DIGITAL DATA}
본 발명은 본 출원과 동일자로 출원된, 발명자 엠 브라이트(M. Bright) 등의 "Reduced-error processing of transformed digital data"라는 명칭의 대리인 관리 번호 YO998-331 및 발명자 제이 미첼(J. Mitchell) 등의 "Transform-domain correction n of real-domain errors"라는 명칭의 대리인 관리 번호 YO998-372와 관련있으며, 본 명세서에서 전체적으로 참조로서 인용한다.
본 발명은 디지털 데이터의 변환 코딩(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 비트/샘플 정수이다. 정수로 반올림하는 것이 전형적이기는 하지만, 몇몇 프로그래밍 언어는 내림에 의해 부동 소수점에서 정수로 변형한다. 이러한 내림에 의한 정수로의 변형을 수용하는 소프트웨어로 구현하는 경우에는 역변환으로부터의 출력인 실제 영역 정수에 더 큰 오차가 발생한다.
본 명세서에서 사용된 "고정밀도"라는 용어는 어떤 값을 정수로 저장할 때 사용되는 정밀도보다 정확한 정밀도로 저장되는 수의 값을 지칭한다. 고정밀도 숫자의 예로는 숫자의 부동 소수점이나 고정 소수점 표시가 있다.
디지털 처리 기법 및 변환 데이터의 역변환 후 반올림과 클리핑 등에 의해 야기되는 부정확성에 관한 전술한 문제점에 비추어 볼 때, 본 발명의 한 측면은 실제 영역에서 변환 데이터를 처리하는 방법을 제공한다. 이 방법은 역변환 후 정수로의 반올림이나 허용된 범위로의 클리핑 등에 의해 발생한 재변환 데이터에서 원하지 않는 오차를 감소시킨다. 일 실시예에서, 본 방법은 발생한 실제 영역 데이터가 고정밀도 숫자 형태가 되도록 변환 데이터를 역변환하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 고정밀도 숫자로부터 변형 클리핑 정수(converted and clipped integers)를 감산하여 고정밀도 차분을 형성하는 단계와, 이들 변형 클리핑 정수를 조작하는 단계와, 처리 단계가 완료된 후 조작 정수(manipulated integers)를 고정밀도 차분에 가산하여 조작 고정밀도 숫자(manipulated high-precision numbers)를 생성하는 단계를 포함한다.
본 발명의 다른 측면은 실제 영역에서 변환 코딩 데이터를 처리하는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑에 의해 발생한 오차를 감소시킨다. 일 실시예에서, 이 방법은 변환 코딩 데이터를 역양자화하는 단계와, 발생한 변환 데이터를 역변환하여 발생한 실제 영역 데이터가 고정밀도 숫자 형태가 되도록 하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 변형 클리핑 정수를 고정밀도 숫자로부터 감산하여 고정밀도 차분을 형성하는 단계와, 이들 변형 클리핑 정수를 조작하는 단계와, 처리 단계가 완료된 후 조작 정수를 고정밀도 차분에 가산하여 조작 고정밀도 숫자를 생성하는 단계를 포함한다.
본 발명의 또 다른 측면은 변환 코딩 데이터를 실제 영역에서 처리하여 새로운 변환 코딩 데이터를 발생시키는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑에 의한 오차를 감소시킨다. 일 실시예에서본 방법은, 변환 코딩 데이터를 역양자화하는 단계와, 발생한 변환 데이터를 역변환하여 발생한 실제 영역 데이터가 고정밀도 숫자의 형태가 되도록 하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 변형 클리핑 데이터를 고정밀도 숫자로부터 감산하여 고정밀도 차분을 형성하는 단계와, 이들 변형 클리핑 정수를 처리하는 단계와, 처리 단계가 완료된 후 처리 정수를 고정밀도 차분에 가산하여 처리 고정밀도 숫자를 형성하는 단계와, 처리 고정밀도 숫자를 정변환하는 단계와, 새로운 변환 데이터를 양자화하는 단계를 포함한다. 정변환 및 역변환과 처리 중의 오차가 충분히 작으면, 새로운 양자화 변환 영역 데이터에서 원하지 않는 오차가 발생하지 않을 것이다.
본 발명의 또 다른 측면은 실제 영역에서 고정밀도 차분을 처리하여 새로운 고정밀도 차분을 발생시키는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑에 의해 발생하는 오차를 감소시킨다. 일 실시예에서, 본 방법은 발생한 실제 영역 데이터가 고정밀도 숫자의 형태가 되도록 변환 데이터를 역변환하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 변형 클리핑 정수를 고정밀도 숫자로부터 감산하여 고정밀도 차분을 형성하는 단계와, 이들 변형 클리핑 정수를 조작하는 단계와, 이들 고정밀도 차분을 조작하는 단계와, 처리 단계가 완료된 후 조작 정수를 조작 고정밀도 차분에 가산하여 조작 고정밀도 숫자를 생성하는 단계를 포함한다.
본 발명의 또 다른 측면은 변환 코딩 데이터를 실제 영역에서 처리하는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑에의한 오차를 감소시킨다. 일 실시예에서 본 방법은, 변환 코딩 데이터를 역양자화하는 단계와, 발생한 변환 데이터를 역변환하여 발생한 실제 영역 데이터가 고정밀도 숫자의 형태가 되도록 하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 변형 클리핑 데이터를 고정밀도 숫자로부터 감산하여 고정밀도 차분을 형성하는 단계와, 이들 변형 클리핑 정수를 조작하는 단계와, 이들 고정밀도 차분을 조작하는 단계와, 처리 단계가 완료된 후 조작 정수를 조작 고정밀도 차분에 가산하여 조작 고정밀도 숫자를 생성하는 단계를 포함한다.
본 발명의 또 다른 측면은 변환 코딩 데이터를 실제 영역에서 처리하여 새로운 변환 코딩 데이터를 발생시키는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑에 의한 오차를 감소시킨다. 일 실시예에서 본 방법은, 변환 코딩 데이터를 역양자화하는 단계와, 발생한 변환 데이터를 역변환하여 발생한 실제 영역 데이터가 고정밀도 숫자의 형태가 되도록 하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 변형 클리핑 데이터를 고정밀도 숫자로부터 감산하여 고정밀도 차분을 형성하는 단계와, 이들 변형 클리핑 정수를 처리하는 단계와, 이들 고정밀도 차분을 조작하는 단계와, 처리 단계가 완료된 후 처리 정수를 처리 고정밀도 숫자에 가산하여 조작 고정밀도 숫자를 생성하는 단계와, 처리 고정밀도 숫자를 정변환하는 단계와, 새로운 변환 데이터를 양자화하는 단계를 포함한다. 정변환 및 역변환과 처리에서의 오차가 충분히 작으면, 새로운 양자화 변환 영역 데이터에서 원하지 않는 오차가 발생하지 않을 것이다.
본 발명의 또 다른 측면은 실제 영역의 고정밀도 숫자와 처리 변형 정수 데이터 중에서 선택하는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑으로 인한 오차를 감소시킨다. 일 실시예에서, 이 방법은 발생한 실제 영역 데이터가 고정밀도 숫자 형태가 되도록 변환 데이터를 역변환하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 이들 변형 클리핑 정수를 조작하는 단계와, 처리 단계가 완료된 후 조작 정수와 조작 고정밀도 숫자 중에서 선택하여 조작 고정밀도 숫자를 생성하는 단계를 포함한다.
본 발명의 또 다른 측면은 실제 영역의 고정밀도 숫자와 처리 변형 정수 데이터 중에서 선택하는 방법을 제공하는데, 이 방법은 역변환 후 정수로의 변형과 허용된 범위로의 클리핑으로 인한 오차를 감소시킨다. 일 실시예에서, 이 방법은 발생한 실제 영역 데이터가 고정밀도 숫자 형태가 되도록 변환 데이터를 역변환하는 단계와, 고정밀도 숫자를 정수로 변형하고 허용된 범위로 클리핑하는 단계와, 이들 변형 클리핑 정수를 조작하는 단계와, 고정밀도 숫자를 조작하여 조작 고정밀도 숫자를 형성하는 단계와, 처리 단계가 완료된 후 조작 정수와 고정밀도 숫자 중에서 선택하여 조작 고정밀도 숫자를 생성하는 단계를 포함한다.
본 명세서에서 설명한 방법에 대한 입력 데이터가 단일 데이터 소스로부터 올 필요는 없다. 따라서, 본 발명은 단일 소스로부터의 데이터의 실제 영역 처리에 한정되지 않으며, 영상이나 오디오 데이터의 병합과 같이 다수 소스로부터의 데이터의 실제 영역 처리에도 적용할 수 있다.
배경 기술에서 설명한 양자화는 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는 본 발명에 따라 변환 영역으로의 재-코딩(re-coding)이 뒤따르는 변환 코딩 데이터의 실제 영역 오차 절감 조작을 수행하는 예시적인 방법을 도시하는 블럭도,
도 13b는 본 발명에 따라 변환 영역으로의 재-코딩이 뒤따르는 변환 코딩 데이터의 실제 영역 오차 절감 조작을 수행하는 예시적인 시스템을 도시하는 블럭도,
도 14a는 본 발명에 따라 변환 영역으로의 재-코딩이 뒤따르는 고정밀도 차분의 처리를 포함하는 변환 코딩 데이터의 실제 영역 오차 절감 조작을 수행하는 예시적인 방법을 도시하는 블럭도,
도 14b는 본 발명에 따라 변환 영역으로의 재-코딩이 뒤따르는 고정밀도 차분의 처리를 포함하는 변환 코딩 데이터의 실제 영역 오차 절감 조작을 수행하는 예시적인 시스템을 도시하는 블럭도,
도 15a는 본 발명에 따라 새로운 변환 코딩 데이터 내의 원하지 않는 오차가감축되거나 제거되도록, 코딩된 영상 데이터의 실제 영역 처리를 수행하는 예시적인 방법을 도시하는 블럭도,
도 15b는 본 발명에 따라 새로운 변환 코딩 데이터 내의 원하지 않는 오차가 감축되거나 제거되도록, 코딩된 영상 데이터의 실제 영역 처리를 수행하는 예시적인 시스템을 도시하는 블럭도,
도 16a는 본 발명에 따라 새로운 변환 코딩 데이터 내의 원하지 않는 오차가 감축되거나 제거되도록, 고정밀도 차분의 처리를 포함하는 코딩된 영상 데이터의 실제 영역 처리를 수행하는 예시적인 방법을 도시하는 블럭도,
도 16b는 본 발명에 따라 새로운 변환 코딩 데이터 내의 원하지 않는 오차가 감축되거나 제거되도록, 고정밀도 차분의 처리를 포함하는 코딩된 영상 데이터의 실제 영역 처리를 수행하는 예시적인 시스템을 도시하는 블럭도,
도 17a는 본 발명에 따라 조작 고정밀도 숫자(manipulated high-precision numbers)와 조작 변환 데이터(manipulated converted data) 중의 선택을 포함하는 변환 데이터의 오차 절감 처리 방법을 예시하는 블럭도,
도 17b는 본 발명에 따라 조작 고정밀도 숫자와 조작 변환 데이터 중의 선택을 포함하는 변환 데이터의 오차 절감 처리 시스템을 예시하는 블럭도,
도 18a는 본 발명에 따라 변환 영역으로의 재-코딩이 뒤따르는 조작 고정밀도 숫자와 조작 변형 데이터 중의 선택을 포함하는 변환 코딩 데이터의 실제 영역 오차 절감 처리 방법을 예시하는 블럭도,
도 18b는 본 발명에 따라 변환 영역으로의 재-코딩이 뒤따르는 조작 고정밀도 숫자와 조작 변형 데이터 중의 선택을 포함하는 변환 코딩 데이터의 실제 영역 오차 절감 처리 시스템을 예시하는 블럭도.
도면의 주요 부분에 대한 부호의 설명
115 : 변환 데이터 125 : 역변환기
135 : 고정밀도 실수값 데이터 145 : 정수 변형기 및 클리퍼
155 : 정수 실제 영역 데이터 165 : 출력 디바이스
1115 : 감산기 1125 : 고정밀도 차분
1135 : 가산기 1145 : 조작 고정밀도 숫자
1165 : 조작기 1175 : 고정밀도 데이터
1185 : 정수 변형기 및 클리퍼 1195 : 정수 데이터
본 발명의 이러한 목적, 특징, 장점은 도면과 함께 후속하는 상세한 설명을 고려함으로써 명백해질 것이다.
본 발명은 디지털 데이터 처리에 의해 발생하는 오차를 감소시키거나 제거하는 방법, 시스템, 컴퓨터 제품을 제공한다. 우선, 오차의 소스를 분석하고 설명한다. 이후에는 오차 감소 및 제거를 위한 본 발명의 개념을 설명한다. 특별히 유의할 점은 본 명세서의 배경 기술 부분에서 채용한 데이터 조작 및/또는 처리 방법이 각각의 디지털 처리의 구현으로 인해 오차가 계속적으로 발생하는 디지털 기법을 사용하였다는 것이다. 수년 간 채용된 이들 기법에 의하면, 원래 데이터의 정밀도를 유지할 수 없었고, 처리가 진행됨에 따라 현상을 표시하는 데이터가 계속 열화되었다. 이는 이전의 처리에 의해 전달된 오차를 포함하는 데이터에 대해 처리를 수행하는 경우에 특히 유해하다. 이로 인해, 처리가 진행됨에 따라 데이터가 계속 손상되어 그 유용성이 점점 떨어지게 된다.
본 발명의 발명자에 의해 인식된 이러한 문제의 심각성을 이제 설명하겠다. 본 명세서에서 도시한 도면에서, 선택적인 단계는 점선 및/또는 박스로 나타내었음을 유의하여야 한다.
본 발명의 개념이 대부분의 디지털 처리 기법에서 유용하다는 것에 주목하여야 한다. 그러나, 이어지는 상세한 설명은 주로 영상 데이터에 관한 것이다. 이는 세계적으로 채용되고 있는 영상 데이터 압축 표준의 일반적인 유용성과 계속적인 사용 때문이다. 이들 표준에서는 설명할 오차가 디지털 데이터에 발생하고, 그 오차가 발생한 데이터를 계속 채용하고 처리할 필요가 있다. 이들 표준은 기본적으로 본 발명과는 다르다. 따라서, 영상 기법이 본 발명을 설명하는 좋은 예가 된다.
도 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)를 발생시킨다. 고정밀도 데이터(130)는 정수로 변형되고 클리핑되어(140) 정수 실제 영역 데이터(즉, 변형 데이터)(150)를 발생시킨다. 어떤 경우에는, 정수값 데이터가 출력 디바이스(160)로 보내지기도 한다. 정수 데이터(150)는 소정 형태의 조작(310)을 겪는다. 이 조작(310)이 정수 결과를 발생시키지 못하면, 조작 결과(340)는 다시 정수로 변형되고 클리핑된다(320). 결과 정수 데이터(330)는 저장, 전송 및/또는 출력 디바이스(160)로 보내지기도 한다.
클리핑 및 정수로의 변형(140)이 정수 입력(150)을 받아들이는 조작 이전에 수행되므로, 그 결과 오차로 인해 정수로의 변형 후의 조작 단계로부터의 데이터 출력(340)은 적어도 작은 오차를 포함하게 된다. 이 오차는 변형 데이터(150)를 고정밀도 숫자(130)로부터 감산함으로써(1110) 제거되어, 고정밀도 차분(1120)을 형성할 수 있다. 이들 차분(1120)은 조작 결과(340)에 가산되어(1130) 조작 고정밀도 숫자(1140)를 형성하는데, 조작 고정밀도 숫자(1140) 내의 클리핑 및 정수로의 변형으로 인한 오차는 감소되거나 제거된다.
본 발명의 어떤 실시예에서, 가산 단계(1130)는 지능적 가산(intelligent addition)으로서 구현된다. 이들 실시예에서, 반올림에 있어서는 0.5, 내림에 있어서는 1.0보다 큰 크기를 갖는 고정밀도 차분은 그 데이터가 클리핑되었다는 것을 나타낸다. 따라서, 클리핑 데이터에 대응하는 처리 변형 데이터가 더 이상 허용된 범위에 대한 극값(extreme value)을 갖지 않으면, 가산 단계는 처리 변형 데이터만을 지능적으로 유지한다. 이 경우, 지능적 가산은 고정밀도 차분을 변형 데이터에 가산하지 않는다. 지능적 가산의 대체적인 실시예에서, 처리 고정밀도 숫자를 위한 장래의 사용에 영향을 미치지 않는 허용 오차에 대해 임계값이 정의된다. 이 대체적인 가산 실시예에서는, 정의된 임계값보다 큰 오차만이 처리 변형 데이터에 가산된다. 다른 대체적인 지능적 가산 구현 규칙도 때때로 사용된다. 이들 대체적인 특정 가산 구현 모두는 본 명세서에서 지능적 가산으로 지칭된다. 따라서, 이들 실시예에 있어서, 본 명세서에서 가산 단계를 나타낼 때마다, 지능적 가산으로서 구현된다.
전술한 실시예는 전통적인 조작(즉, 처리)이 방해받지 않는다는 이점을 갖는다. 고정밀도 차분은 조작 단계 이전에 생성된 후, 전통적인 처리 이후에 처리 데이터에 가산된다. 클리핑 단계는 범위 끝에서(at an extreme of the range) 변형 데이터를 생성한다. 처리 변형 데이터가 더 이상 끝에 있지 않으면, 지능적 가산 단계는 반올림에 대해서는 0.5, 내림에 있어서는 1.0보다 큰 크기를 갖는 차분에 가산하지 않고 변형 데이터를 취할 것이다.
변환 데이터를 처리함에 있어서 실제 영역 오차를 변환 영역 정정하는 시스템(1105)의 실시예가 도 11b에 도시되어 있다. 변환 데이터 'A'(115)는 역변환기(125)를 통해 전달되어 도 1b에 도시한 것과 같은 고정밀도 실제 영역 데이터(135)를 발생시킨다. 정수 변형기 및 클리퍼(145)는 고정밀도 데이터(135)에 대해 조작을 가하여 정수 실제 영역 데이터(155)를 발생시킨다. 어떤 경우에는, 정수값 데이터가 출력 디바이스(165)로 보내지기도 한다. 정수 데이터를 입력으로 수용하고 정수 데이터 또는 고정밀도 데이터(1175)를 출력으로 발생시키는 조작기(1115)는 실제 영역 변환 데이터(155)에 대해 조작을 가한다. 이 조작기(1115)는 도 3에서 전술한 정수에 대한 조작(310)과 동일한 처리를 데이터에 가한다. 조작 이후, 가산기(1135)는 조작 데이터(1175)를 고정밀도 차분(1125)에 가산하여 조작 고정밀도 숫자(1145)를 형성한다. 정수값 입력을 취하는 출력 디바이스(165)로 조작 실제 영역 데이터를 전달할 필요가 있는 경우, 정수 변형기 및 클리퍼(1185)는 조작 이후에 작업하여 정수 데이터(1195)를 보장한다.
본 발명의 어떤 실시예에서, 가산기(1135)는 지능적 가산(intelligent addition)으로서 구현된다. 이들 실시예에서, 반올림에 있어서는 0.5, 내림에 있어서는 1.0보다 큰 크기를 갖는 고정밀도 차분은 그 데이터가 클리핑되었다는 것을 나타낸다. 따라서, 클리핑 데이터에 대응하는 처리 변형 데이터가 더 이상 허용된 범위에 대한 극값을 갖지 않으면, 가산 단계는 처리 변형 데이터만을 지능적으로 유지한다. 이 경우, 지능적 가산은 고정밀도 차분을 변형 데이터에 가산하지 않는다. 지능적 가산의 대체적인 실시예에서, 처리 고정밀도 숫자를 위한 장래의 사용에 영향을 미치지 않는 허용 오차에 대해 임계값이 정의된다. 이 대체적인 가산 실시예에서는, 정의된 임계값보다 큰 오차만이 처리 변형 데이터에 가산된다. 다른 대체적인 지능적 가산 구현 규칙도 때때로 사용된다. 이들 대체적인 특정 가산 구현 모두는 본 명세서에서 지능적 가산으로 지칭된다. 따라서, 이들 실시예에 있어서, 본 명세서에서 가산 단계를 나타낼 때마다, 지능적 가산으로서 구현된다.
도 12a는 변환 데이터의 실제 영역 오차 절감 조작을 수행하는 방법(1200)을 도시하고 있다. 이 방법은 도 11a에서 설명한 방법(1100)을 확장함으로써 이루어진다. 이 실시예에서, 고정밀도 차분(1120)은 고정밀도 차분 데이터를 입력으로 수용하는 조작 단계(1210)로 전달되어 새로운 고정밀도 차분(1220)을 발생시킨다. 가산 단계(1230)는 조작 고정밀도 차분(1220)을 이용하여 전통적인 조작 단계(310)의 출력에 가산하고 처리 고정밀도 출력(1240)을 형성한다.
예를 들어, 조작 단계(310)가 변환 데이터에 대해 90° 회전을 수행하는 일 실시예에서는, 고정밀도 차분도 90° 회전된다. 조작 단계(310)가 크로마 키잉 방법 등에 의해 두 개의 데이터 세트를 병합하는 경우, 고정밀도 차분은 병합되어 조작 변형 데이터에 대응할 필요가 있다. 변형 데이터의 색채 보정과 같은 소정의 조작에 있어서는, 차분이 더 이상 변화된 변형 데이터에 대응하지 않으므로 대응 차분 데이터가 제거되거나 0이 된다.
도 12b는 변환 데이터의 실제 영역 오차 절감 조작을 수행하는 시스템(1205)을 도시하고 있다. 이 시스템은 도 11b에서 설명한 시스템(1105)을 확장함으로써 이루어진다. 이 실시예에서, 고정밀도 차분(1125)은 고정밀도 차분 데이터를 입력으로 수용하는 조작기(1215)로 전달되어 새로운 고정밀도 차분(1225)을 발생시킨다. 가산기(1235)는 조작 고정밀도 차분(1225)을 이용하여 전통적인 조작기(1165)의 출력에 가산하고 처리 고정밀도 출력(1245)을 형성한다.
본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 방법(1300)이 도 13a에 도시되어 있다. 도 13a는 정수 변환 코딩 데이터 'B'(210)가 역양자화되고(220) 그 출력이 역변환(120)을 통해 전달되어 도 2a 및 도 11a에서와 같이 고정밀도 실제 영역 데이터(130)를 발생시킴을 나타내고 있다. 처리 고정밀도 데이터(1140)는 실수값 데이터를 입력으로 수용하는 정변환(1310)에 대한 입력으로 사용된다. 정변환(1310)의 출력은 양자화된다(1320). 원하는 시스템 구현에 따라, 정변환 작업(1310)은 역변환 작업(120)에서 사용된 것과 다른 변환을 채용할 수 있다. 예를 들어, 정변환(1310)이 푸리에 변환을 사용하는 반면 역변환(120)은 역 DCT 변환을 사용할 수 있다. 정변환 작업(1310)이 역변환 작업(120)의 반대 작업을 하고, 역양자화 단계(220)와 양자화 단계(1320)에서 사용된 양자화 값이 동일하며, 조작 단계(310)가 아무런 작업도 하지 않으면, 결과 정수 변환 데이터 'B1'(1330)은 역양자화 단계(220)로의 입력이었던 원래 정수 변환 데이터 'B'(210)와 동일하다. 다른 정변환이 사용되면 정변환(1310)은 다른 정수 변환 데이터 'B1'(1330)을 발생시킬 것이라는 점에 유의하여야 한다. 마찬가지로, 역양자화(220)와 양자화(1320)에서 다른 양자화 값을 사용해도 다른 정수 변환 데이터(1330)를 발생시킨다. 따라서, 이 방법은 반올림과 클리핑으로 인한 오차가 정변환(1310)으로의 입력(1140) 내에 존재하지 않도록 하면서 변환 및 양자화 행렬 사이의 변형을 허용한다.
양자화 행렬 사이의 변형은 보다 거칠 수도 있고 보다 세밀할 수도 있는 양자화임에 유의하여야 한다. 예를 들어, JPEG 국제 표준으로부터 MPEG 국제 표준으로 데이터를 변형할 때, 양자화는 보다 거칠게 될 것이다. 편집 처리 중에 보다 높은 품질의 JPEG 독립 영상(independent images)이 필요하다. 보다 거칠고, 보다 압축가능한 MPEG 영상은 원하는 대역폭 객체(bandwidth objectives)를 달성하는 데 사용된다. 한편, 중요한 수동 편집(significant hand editing) 후에 JPEG 영상을 압축할 때에는, 변화를 보존하기 위해 양자화가 보다 세밀할 것이다.
본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 시스템(1305)이 도 13b에 도시되어 있다. 도 13b는 정수 변환 코딩 데이터 'B'(215)가 역양자화기(225)에 입력되고 역변환기(125)를 통해 전달되어 도 2b 및 도 11b에서와 같이 고정밀도 실제 영역 데이터(135)를 발생시킴을 나타내고 있다. 처리 고정밀도 데이터(1145)는 실수값 데이터를 입력으로 수용하는 정변환기(1315)에 대한 입력으로 사용된다. 정변환기(1315)의 출력은 양자화기(1325)로 전달된다. 원하는 시스템 구현에 따라, 정변환기(1315)는 역변환기(125)에서 사용된 것과 다른 변환을 채용할 수 있다. 예를 들어, 정변환기(1315)가 푸리에 변환을 사용하는 반면 역변환기(125)는 역 DCT 변환을 사용할 수 있다. 정변환기(1315)가 역변환기(125)의 반대 작업을 하고, 역양자화기(225)와 양자화기(1325)에서 사용된 양자화 값이 동일하며, 조작기(1165)가 아무런 작업도 하지 않으면, 결과 정수 변환 데이터 'B1'(1335)은 역양자화기(225)로의 입력이었던 원래 정수 변환 데이터 'B'(215)와 동일하다. 다른 정변환이 사용되면 정변환기(1315)는 다른 정수 변환 데이터 'B1'을 발생시킬 것이라는 점에 유의하여야 한다. 마찬가지로, 역양자화기(225)와 양자화기(1325)에서 다른 양자화 값을 사용해도 다른 정수 변환 데이터(1335)를 발생시킨다. 따라서, 이 시스템은 반올림과 클리핑으로 인한 오차가 정변환기(1315)로의 입력(1145) 내에 존재하지 않도록 하면서 변환 및 양자화 행렬 사이의 변형을 허용한다.
본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 방법(1400)이 도 14a에 도시되어 있다. 이 방법은 도 13a에서 설명한 방법(1300)을 확장함으로써 이루어진다. 이 실시예에서, 고정밀도 차분(1120)은 고정밀도 차분 데이터를 입력으로 수용하는 조작 단계(1210)로 전달되어 새로운 조작 고정밀도 차분(1220)을 발생시킨다. 가산 단계(1230)는 조작 고정밀도 차분(1220)을 이용하여 전통적인 조작 단계(310)의 출력(340)에 가산하고 처리 고정밀도 출력(1240)을 형성한다. 처리 고정밀도 차분(1240)은 실수값 데이터를 입력으로 수용하는 정변환(1310)으로의 입력으로 사용된다. 정변환(1310)의 출력은 양자화되어(1320) 변환 코딩 데이터 'B2'(1410)를 형성한다.
본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 시스템(1405)이 도 14b에 도시되어 있다. 이 시스템은 도 13b에서 설명한 시스템(1305)을 확장함으로써 이루어진다. 이 실시예에서, 고정밀도 차분(1125)은 고정밀도 차분 데이터를 입력으로 수용하는 조작기(1215)로 전달되어 새로운 조작 고정밀도 차분(1225)을 발생시킨다. 가산기(1235)는 조작 고정밀도 차분(1225)을 이용하여 전통적인 조작기(1165)의 출력(1175)에 가산하고 처리 고정밀도 출력(1245)을 형성한다. 처리 고정밀도 차분(1245)은 실수값 데이터를 입력으로 수용하는 정변환기(1315)로의 입력으로 사용된다. 정변환기(1315)의 출력은 양자화기(1325)로 전달되어 변환 코딩 데이터 'B2'(1415)를 형성한다.
변환 코딩 데이터를 실제 영역 오차 절감 조작하는 예시적인 방법(1500)이 도 15a에 도시되어 있다. 선택된 실시예는 코딩된 영상의 실제 영역 조작 방법으로서, 코딩된 영상은 JPEG 코딩 영상과 같이 DCT를 이용하여 변환 코딩된다. 코딩 데이터 'C'(710)는 무손실 엔트로피 디코딩 단계(720)에 의해 디코딩되어 양자화 DCT 계수를 발생시킨다. 이들 계수는 역양자화되고(730) 역 DCT를 통해 전달되어(740) 고정밀도 실제 영역 데이터(1510)를 발생시킨다. 정수 변형 및 클리핑(750)은 고정밀도 데이터(1510)에 대해 조작을 가해 정수 실제 영역 데이터(754)를 발생시킨다. 어떤 경우, 정수값 데이터는 디스플레이(758)로 보내지기도 한다. 감산 단계(1520)는 고정밀도 숫자(1510)를 변형 정수 데이터(754)로부터 감산하여 고정밀도 차분(1530)을 형성한다. 정수 데이터를 입력으로 수용하고 정수 데이터 또는 고정밀도 데이터를 출력으로 발생시키는 조작 단계(762)는 실제 영역 변형 데이터(754)에 대해 조작을 가한다. 조작 후에, 가산 단계(1540)는 조작 데이터(1580)를 고정밀도 차분(1530)에 가산하여 조작 고정밀도 숫자(1550)를 형성한다. 정수값 입력을 취하는 디스플레이(758)로 조작 영상 데이터를 전달한 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 영상 데이터(772)를 생성할 필요가 있는 경우, 정수로의 변형 및 허용된 범위로의 클리핑(768)이 조작(762) 이후에 수행된다.
고정밀도 영상 데이터(1550)는 고정밀도 데이터를 입력으로 수용하는 정 DCT(1560)로의 입력으로서 전달된다. 정 DCT(1560)의 출력은 양자화되어(780) 새로운 정수 DCT 계수를 발생시킨다. 이들 계수는 무손실 엔트로피 인코딩 단계(788)에 의해 인코딩되어, 새로운 코딩 데이터 'C2'(1570)를 발생시킨다. 정 DCT 및 역 DCT와 조작 단계가 발생시키는 오차가 양자화 스텝의 절반 미만이 되도록 정 DCT 및 역 DCT와 조작 단계가 정밀하면, 수학식 (3)에서 설명한 것과 같이 DCT 계수에는 오차가 전혀 발생하지 않는다.
변환 코딩 데이터를 실제 영역 오차 절감 조작하는 예시적인 시스템(1505)이 도 15b에 도시되어 있다. 선택된 실시예는 코딩된 영상의 실제 영역 조작 시스템으로서, 코딩된 영상은 DCT를 이용하여 변환 코딩된다. 코딩 데이터 'C'(715)는 무손실 엔트로피 디코더(725)에 의해 디코딩되어 양자화 DCT 계수를 발생시킨다. 이들 계수는 역양자화기(735)로 보내진 후, 역 DCT기(745)를 통해 전달되어 고정밀도 실제 영역 데이터(1515)를 발생시킨다. 정수 변형기 및 클리퍼(755)는 고정밀도 데이터(1515)에 대해 조작을 가해 정수 실제 영역 데이터(759)를 발생시킨다. 어떤 경우, 정수값 데이터는 디스플레이(763)로 보내지기도 한다. 감산기(1525)는 고정밀도 숫자(1515)를 변형 정수 데이터(759)로부터 감산하여 고정밀도 차분(1535)을 형성한다. 정수 데이터를 입력으로 수용하고 정수 데이터 또는 고정밀도 데이터(1585)를 출력으로 발생시키는 조작기(767)는 실제 영역 변형 데이터(759)에 대해 조작을 가한다. 조작 후에, 가산기(1545)는 조작 데이터(1585)를 고정밀도 차분(1535)에 가산하여 조작 고정밀도 숫자(1555)를 형성한다. 정수값 입력을 취하는 디스플레이(763)로 조작 영상 데이터를 전달한 필요가 있거나, 임의의 다른 이유로 조작 후에 정수값 영상 데이터(777)를 생성할 필요가 있는 경우, 정수 변형기 및 클리퍼(773)는 조작기(767)의 작업 후에 정수 변형 데이터(1585)에 대해 작업한다. 조작 고정밀도 영상 데이터(1555)는 고정밀도 데이터를 입력으로 수용하는 정 DCT기(1565)로의 입력으로 전달된다. 정 DCT기(1565)의 결과는 양자화기(785)로 전달되어 새로운 정수 DCT 계수를 발생시킨다. 이들 계수는 무손실 엔트로피 인코더(793)에 의해 인코딩되어 새로운 코딩 데이터 'C2'(1575)를 발생시킨다.
본 발명에 따라 코딩 데이터를 오차 절감 처리하는 예시적인 방법(1600)이 도 16a에 도시되어 있다. 이 방법은 도 15a에서 설명한 방법(1500)을 확장함으로써 이루어진다. 이 실시예에서, 고정밀도 차분(1530)은 고정밀도 차분 데이터를 입력으로 수용하는 조작 단계(1610)로 전달되어 새로운 조작 고정밀도 차분(1620)을 발생시킨다. 가산 단계(1630)는 조작 고정밀도 차분(1620)을 이용하여 전통적인 조작 단계(762)의 출력(1580)에 가산하고 처리 고정밀도 출력(1640)을 형성한다. 처리 고정밀도 차분(1640)은 실수값 데이터를 입력으로 수용하는 정 DCT(1560)로의 입력으로 사용된다. 정변환(1560)의 출력은 양자화되어(780) 변환 코딩 데이터를 형성한다. 변환 코딩 데이터는 엔트로피 인코딩 단계(788)로 전달되어 코딩 데이터 'C3'(1650)을 발생시킨다.
본 발명에 따라 코딩 데이터를 오차 절감 처리하는 예시적인 시스템(1605)이 도 16b에 도시되어 있다. 이 방법은 도 15b에서 설명한 방법(1505)을 확장함으로써 이루어진다. 이 실시예에서, 고정밀도 차분(1535)은 고정밀도 차분 데이터를 입력으로 수용하는 조작기(1615)로 전달되어 새로운 조작 고정밀도 차분(1625)을 발생시킨다. 가산기(1635)는 조작 고정밀도 차분(1625)을 이용하여 전통적인 조작기(767)의 출력(1585)에 가산하고 처리 고정밀도 출력(1645)을 형성한다. 처리 고정밀도 차분(1645)은 실수값 데이터를 입력으로 수용하는 정 DCT기(1565)로의 입력으로 사용된다. 정변환기(1565)의 출력은 변환 코딩 데이터를 출력하는 양자화기(785)로 전달된다. 변환 코딩 데이터는 엔트로피 인코더(793)로 전달되어 코딩 데이터 'C3'(1655)을 발생시킨다.
도 17a는 변환 데이터의 실제 영역 오차 절감 조작 방법(1700)을 도시하고 있다. 이 실시예에서, 고정밀도 숫자(130)는 고정밀도 숫자를 입력으로 수용하는 조작 단계(1710)로 전달되어 새로운 조작 고정밀도 숫자(1720)를 발생시킨다. 선택 단계(1730)는 조작 고정밀도 숫자(1720)와 전통적인 조작 단계(310)로부터의 출력(340) 중에서 선택하여 처리 고정밀도 출력(1740)을 형성한다.
전통적인 조작 단계(30)가 변형 데이터에 대해 90° 회전을 수행하면, 고정밀도 숫자도 90° 회전될 필요가 있다. 전통적인 조작 단계(310)가 크로마 키잉 방법 등에 의해 두 개의 데이터 세트를 병합하는 경우, 고정밀도 숫자는 조작 단계(1710)에서 병합되어 조작 변형 데이터에 대응할 수 있다. 이와는 달리, 조작 단계는 생략될 수 있고, 선택 단계(1730)는 데이터 세트로부터 처리 변형 데이터에 가장 가까운 고정밀도 값을 선택할 수 있다. 정수로의 변형 및 클리핑 단계(140)에서 고정밀도 값이 처리 변형 데이터로 변형되지 않으면, 처리 변형 데이터는 고정밀도로 출력된다. 변형 데이터의 색채 보정과 같은 소정의 조작에 있어서는, 고정밀도 데이터가 더 이상 처리 변형 데이터와 가깝지 않으므로 처리 변형 데이터가 항상 선택될 것이다.
도 17b는 변환 데이터의 실제 영역 오차 절감 조작 시스템(1705)을 도시하고 있다. 이 실시예에서, 고정밀도 숫자(135)는 고정밀도 숫자를 입력으로 수용하는 조작기(1715)로 전달되어 새로운 조작 고정밀도 숫자(1725)를 발생시킨다. 선택기(1735)는 조작 고정밀도 숫자(1725)와 전통적인 조작기(1165)로부터의 출력 중에서 선택하여 처리 고정밀도 출력(1745)을 형성한다.
본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 방법(1800)이 도 18a에 도시되어 있다. 도 18a는 정수 변환 코딩 데이터 'B'(210)가 역양자화되고(220) 그 출력이 역변환(120)을 통해 전달되어 도 17a에서와 같이 고정밀도 실제 영역 데이터(130)를 발생시키는 것을 나타내고 있다. 처리 고정밀도 데이터(1740)는 실수값 데이터를 입력으로 수용하는 정변환(1310)으로의 입력으로 사용된다. 정변환(1310)의 출력은 양자화된다(1320). 원하는 시스템 구현에 따라, 정변환 작업(1310)은 역변환 작업(120)에서 사용한 것과는 다른 변환을 채용할 수 있다. 예를 들어, 정변환(1310)이 푸리에 변환을 사용하는 반면, 역변환(120)은 역 DCT 변환을 사용할 수 있다. 정변환 작업(1310)이 역변환 작업(120)의 반대 작업을 하고, 역양자화 단계(220)와 양자화 단계(1320)에서 사용된 양자화 값이 동일하며, 조작 단계(310)가 아무런 작업도 하지 않으면, 결과 정수 변환 데이터 'B3'(1810)은 역양자화 단계(220)로의 입력이었던 원래 정수 변환 데이터 'B'(210)와 동일하다. 다른 정변환이 사용되면 정변환(1310)은 다른 정수 변환 데이터 'B3'(1810)을 발생시킬 것이라는 점에 유의하여야 한다. 마찬가지로, 역양자화(220)와 양자화(1320)에서 다른 양자화 값을 사용해도 다른 정수 변환 데이터(1810)를 발생시킨다. 따라서, 이 방법은 반올림과 클리핑으로 인한 오차가 정변환(1310)으로의 입력(1740) 내에 존재하지 않도록 하면서 변환 및 양자화 행렬 사이의 변형을 허용한다.
본 발명에 따라 변환 코딩 데이터를 오차 절감 처리하는 예시적인 시스템(1805)이 도 18b에 도시되어 있다. 도 18b는 정수 변환 코딩 데이터 'B'(215)가 역양자화기(225)에 입력되고 역변환기(125)를 통해 전달되어 도 17b에서와 같이 고정밀도 실제 영역 데이터(130)를 발생시키는 것을 나타내고 있다. 처리 고정밀도 데이터(1745)는 실수값 데이터를 입력으로 수용하는 정변환기(1315)로의 입력으로 사용된다. 정변환기(1315)의 출력은 양자화기(1325)로 전달된다. 원하는 시스템 구현에 따라, 정변환기(1315)는 역변환기(125)에서 사용한 것과는 다른 변환을 채용할 수 있다. 예를 들어, 정변환기(1315)가 푸리에 변환을 구현하는 반면, 역변환기(125)는 역 DCT 변환을 구현할 수 있다. 정변환기(1315)가 역변환기(125)의 반대 작업을 하고, 역양자화기(225)와 양자화기(1325)에서 사용된 양자화 값이 동일하며, 조작기(1165)가 아무런 작업도 하지 않으면, 결과 정수 변환 데이터 'B3'(1815)은 역양자화기(225)로의 입력이었던 원래 정수 변환 데이터 'B'(215)와 동일하다. 다른 정변환이 사용되면 정변환기(1315)는 다른 정수 변환 데이터 'B3'을 발생시킬 것이라는 점에 유의하여야 한다. 마찬가지로, 역양자화기(225)와 양자화기(1325)에서 다른 양자화 값을 사용해도 다른 정수 변환 데이터(1815)를 발생시킨다. 따라서, 이 방법은 반올림과 클리핑으로 인한 오차가 정변환기(1315)로의 입력(1745) 내에 존재하지 않도록 하면서 변환 및 양자화 행렬 사이의 변형을 허용한다.
본 발명을 설명한 후, 도 18a의 특정 실시예를 이용하여 어떻게 도 8c의 반올림 오차가 정 DCT로의 실수 입력 내에 존재하지 않게 되는지를 나타낸다. 고정밀도 숫자의 행렬은 행렬(824)로 주어진다. 반올림 후의 변형 데이터는 행렬(826)로 주어진다. 선택 단계(1730)는 변형값 129가 128.5의 반올림된 값이므로 각 행렬 위치에 대해 고정밀도 숫자 128.5를 선택한다. 반올림 오차가 고정밀도 숫자 내에 존재하지 않으므로, 정규화된 상수에 대한 JPEG 협약을 이용하는 정 DCT는 행렬(822) 내의 원래 값을 정확하게 복원한다. 고정밀도 숫자가 변형 데이터와 구별되고 정 DCT 이전에 차분이 데이터에 더해지면 동일한 결과를 얻는다.
도 18a에서 설명한 방법을 이용하여 어떻게 도 8d의 내림 오차가 정 DCT로의 실수 입력 내에 존재하지 않게 되는지를 나타낸다. 고정밀도 숫자의 행렬은 행렬(834)로 주어진다. 내림 후의 변형 데이터는 행렬(836)로 주어진다. 선택 단계(1730)는 변형값 128이 128.875의 내림된 값이므로 각 행렬 위치에 대해 고정밀도 숫자 128.875를 선택한다. 내림 오차가 고정밀도 숫자 내에 존재하지 않으므로, 정규화된 상수에 대한 JPEG 협약을 이용하는 정 DCT는 행렬(832) 내의 원래 값을 정확하게 복원한다. 고정밀도 숫자가 변형 데이터와 구별되고 정 DCT 이전에 차분이 데이터에 더해지면 동일한 결과를 얻는다.
도 18a에서 설명한 방법을 이용하여 어떻게 도 8f 및 도 8g의 클리핑 오차가 정 DCT로의 실수 입력 내에 존재하지 않게 되는지를 나타낸다. 클리핑되지 않은 값의 행렬은 행렬(882)로 주어진다. 클리핑 후의 변형 데이터는 행렬(886)로 주어진다. 선택 단계(1730)는 클리핑된 변형값이 범위 (0)의 끝에 있으므로 클리핑되지 않은 값을 선택한다. 클리핑 오차가 정 DCT로의 입력에 존재하지 않으므로, 정규화된 상수에 대한 JPEG 협약을 이용하는 정 DCT는 행렬(878) 내의 원래 값을 정확하게 복원한다. 클리핑되지 않은 값이 변형 데이터와 구별되고 정 DCT 이전에 차분이 데이터에 더해지면 동일한 결과를 얻는다.
변환 코딩 데이터의 실제 영역 오차 절감 조작을 여러 단계에서 수행하는 본 발명의 대체적인 실시예에서는, 정변환 및 양자화 단계와 역양자화 및 역변환 단계와 함께 감산, 조작, 가산 단계를 교대로 수행하는 단계가 구현된다. 정수 출력을 전달하는 대신 각각의 정변환(950)을 수행하는 도 10을 다시 참조하면, 고정밀도숫자와 처리 변형 데이터 중에서 선택하여 고정밀도 입력을 취하는 정변환 단계로의 처리 고정밀도 숫자 입력을 형성하는 도 17a의 선택 단계(1730)는 정수로의 변형 및 클리핑으로 인한 오차를 제거한다. 도 18a는 이러한 다중 세대 방법의 한 주기를 나타낸다. 도 13a는 다중 세대 방법의 한 주기의 다른 실시예를 나타낸다. 도 14a는 고정밀도 차분에 대해 작업하는 조작 단계를 포함하는 다중 세대 방법의 한 주기의 또 다른 실시예를 나타낸다.
변환 코딩 데이터의 실제 영역 오차 절감 조작을 여러 단계에서 수행하는 본 발명의 또 다른 대체적인 실시예에서는, 정변환기 및 양자화기와 역양자화기 및 역변환기와 함께 감산기, 조작기, 가산기 교대로 이용하는 단계가 구현된다. 도 13b는 다중 세대 시스템의 한 주기를 나타낸다. 도 14b는 고정밀도 차분에 대해 작업하는 조작기를 포함하는 다중 세대 시스템의 한 주기의 다른 실시예를 나타낸다. 도 18b는 처리 고정밀도 숫자와 처리 변형 데이터 중에서 선택하여 정변환에 대한 처리 고정밀도 입력을 형성하는 선택기를 포함하는 다중 세대 시스템의 한 주기의 또 다른 실시예를 나타낸다.
일반적으로, 각각의 조작은 데이터에 대해 서로 다른 작업을 수행한다. 예를 들어, 디지털 스튜디오 편집에 있어서, 첫 번째 조작은 영상의 색채 보정일 수 있다. 두 번째 조작은 크로마 키잉 방법을 이용하여 색채 보정된 영상을 배경과 병합하는 것일 수 있다. 세 번째 조작은 영상에 하이라이트(highlight)를 추가하는 것일 수 있다. 네 번째 조작은 영상을 잘라서 16 : 9의 영화 종횡비를 4 : 3의 텔레비전 종횡비로 바꾸는 것일 수 있다. 영상을 인쇄함에 있어서, 첫 번째 조작은 영상을 90 °회전시켜 인쇄 방향으로 영상을 위치시키는 것일 수 있다. 두 번째 조작은 수 개의 독립 영상을 하나의 합성 영상으로 병합하는 것일 수 있다. 세 번째 조작은 색채 변환(color conversion)일 수 있다. 코딩된 영상 데이터에 있어서, 출력 디바이스는 디스플레이 또는 텔레비전 세트일 수 있다. 코딩된 오디오 데이터에 있어서, 출력 디바이스는 플레이어 및/또는 녹음기일 수 있다.
세대 간의 조작의 예로는 두 개 이상의 변환 코딩 데이터 세트를 병합하는 것이 있다. 변환 코딩 영상 데이터 세트에 있어서는, 다수의 작은 영상이 보다 큰 하나의 화면으로 수집될 필요가 있으므로, 병합이 필요하다. 복사장(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)를 형성하는 단계와,
    ② 상기 초기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑(clipping)하여 초기 변형 데이터(initial converted data)를 형성하는 단계와,
    ③ 상기 초기 변형 데이터를 상기 초기 고정밀도 숫자로부터 감산하여 고정밀도 차분(high-precision differences)을 형성하는 단계와,
    ④ 상기 초기 변형 데이터를 조작하여 효과를 발생시키고 처리 변형 데이터(processed converted data)를 형성하는 단계와,
    ⑤ 상기 고정밀도 차분을 상기 처리 변형 데이터에 가산하여 처리 고정밀도 숫자(processed high-precision numbers)를 형성하는 단계
    를 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 제 1 항에 있어서,
    상기 처리 고정밀도 숫자를 정변환(forward transform)하여 처리 변환 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  11. 삭제
  12. 삭제
  13. 제 1 항에 있어서,
    변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  14. 제 10 항에 있어서,
    상기 변환 코딩 데이터를 역양자화하여 상기 변환 데이터를 형성하는 단계와,
    상기 처리 변환 데이터를 양자화하여 처리 양자화 데이터를 형성하는 단계
    를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  15. 제 14 항에 있어서,
    코딩 데이터를 엔트로피 디코딩하여 상기 변환 코딩 데이터를 형성하는 단계와,
    상기 처리 양자화 데이터를 엔트로피 양자화하는 단계
    를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 현상을 표시하는 변환 데이터를 디지털 처리하는 방법에 있어서,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 초기 고정밀도 숫자를 형성하는 단계와,
    ② 상기 초기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 초기 변형 데이터를 형성하는 단계와,
    ③ 상기 초기 고정밀도 숫자를 상기 초기 변형 데이터로부터 감산하여 고정밀도 차분을 형성하는 단계와,
    ④ 상기 초기 변형 데이터를 조작하여 제 1 효과를 발생시키고 처리 변형 데이터를 형성하는 단계와,
    ⑤ 상기 고정밀도 차분을 조작하여 제 2 효과를 발생시키고 처리 고정밀도 차분(processed high-precision differences)을 형성하는 단계와,
    ⑥ 상기 처리 고정밀도 차분을 상기 처리 변형 데이터에 가산하여 처리 고정밀도 숫자를 형성하는 단계
    를 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 제 21 항에 있어서,
    상기 처리 고정밀도 숫자를 정변환하여 처리 변환 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  30. 삭제
  31. 삭제
  32. 제 21 항에 있어서,
    변환 코딩 데이터를 역양자화하여 상기 변환 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  33. 제 29 항에 있어서,
    상기 변환 코딩 데이터를 역양자화하여 상기 변환 데이터를 형성하는 단계와,
    상기 처리 변환 데이터를 양자화하여 처리 양자화 데이터를 형성하는 단계
    를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  34. 제 33 항에 있어서,
    코딩 데이터를 엔트로피 디코딩하여 상기 변환 코딩 데이터를 형성하는 단계와,
    상기 처리 양자화 데이터를 엔트로피 인코딩하는 단계
    를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  35. 삭제
  36. 삭제
  37. 삭제
  38. 현상을 표시하는 변환 데이터를 디지털 처리하는 방법에 있어서,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 초기 고정밀도 숫자를 형성하는 단계와,
    ② 상기 초기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 초기 변형 데이터를 형성하는 단계와,
    ③ 상기 초기 변형 데이터를 조작하여 효과를 발생시키고, 처리 변형 데이터를 형성하는 단계와,
    ④ 상기 고정밀도 숫자와 상기 처리 변형 데이터 중에서 선택하여 처리 고정밀도 숫자를 형성하는 단계
    를 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 제 38 항에 있어서,
    상기 처리 고정밀도 숫자를 정변환하여 처리 변환 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  44. 제 43 항에 있어서,
    변환 코딩 데이터를 역양자화하여 상기 변환 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  45. 제 44 항에 있어서,
    상기 처리 변환 데이터를 양자화하여 처리 양자화 데이터를 형성하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  46. 제 45 항에 있어서,
    코딩 데이터를 엔트로피 디코딩하여 상기 변환 코딩 데이터를 형성하는 단계와,
    상기 처리 양자화 데이터를 엔트로피 인코딩하는 단계
    를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 제 34 항에 있어서,
    정변환, 양자화, 엔트로피 인코딩, 엔트로피 디코딩, 역양자화, 역변환과 함께 조작 단계를 원하는 회수만큼 교대로 수행하는 단계를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 방법.
  54. 제 53 항에 있어서,
    상기 코딩 데이터는 압축 데이터이고, 상기 정변환, 양자화, 엔트로피 인코딩, 엔트로피 디코딩, 역양자화, 역변환 단계는 압축/압축해제 사이클을 구현하는현상 표시 변환 데이터의 디지털 처리 방법.
  55. 삭제
  56. 현상을 표시하는 제 1 레벨 변환 코딩 데이터를 실제 영역에서 디지털 처리하는 시스템에 있어서,
    ① 상기 변환 코딩 데이터로부터 변환 데이터를 생성하는 제 1 역양자화기와,
    ② 상기 변환 데이터의 실제 영역으로의 역변환을 발생시켜 고정밀도 숫자를 형성하는 제 1 역변환기와,
    ③ 상기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 변형 데이터를 형성하는 제 1 변형기 및 클리퍼와,
    ④ 상기 변형 데이터를 조작하여 효과를 발생시키고 처리 변형 데이터를 형성하는 제 1 조작기와,
    ⑤ 상기 고정밀도 숫자와 상기 처리 변형 데이터 중에서 선택하여 처리 고정밀도 숫자를 형성하는 제 1 선택기와,
    ⑥ 상기 처리 고정밀도 숫자를 정변환하여 정변환 데이터를 형성하는 제 1정변환기와,
    ⑦ 상기 정변환 데이터를 양자화하여 양자화 데이터를 형성하는 제 1 양자화기
    를 포함하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 제 56 항에 있어서,
    상기 변환 코딩 데이터를 형성하는 제 1 엔트로피 디코더와,
    상기 양자화 데이터를 인코딩하는 제 1 엔트로피 인코더
    를 더 포함하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  62. 현상을 표시하는 변환 데이터를 디지털 처리하는 시스템에 있어서,
    ① 고정밀도 숫자를 이용하여 변환 데이터의 실제 영역으로의 역변환을 수행하는 역변환기와,
    ② 상기 고정밀도 숫자를 정수로 변형하는 변형기와 상기 정수를 허용된 범위로 클리핑하는 클리퍼와,
    ③ 상기 변형 데이터를 상기 고정밀도 숫자로부터 감산하여 고정밀도 차분을 형성하는 감산기와,
    ④ 상기 변형 데이터를 조작하여 제 1 효과를 발생시키고 처리 변형 데이터를 형성하는 조작기와,
    ⑤ 상기 고정밀도 차분을 상기 처리 변형 데이터에 가산하여 처리 고정밀도 숫자를 형성하는 가산기
    를 포함하는 현상 표시 변환 데이터의 디지털 처리 시스템.
  63. 제 62 항에 있어서,
    상기 처리 고정밀도 숫자를 정변환하여 처리 변환 데이터를 형성하는 정변환기를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 시스템.
  64. 제 63 항에 있어서,
    변환 코딩 데이터를 역양자화하여 상기 변환 데이터를 형성하는 현상 표시 변환 데이터의 디지털 처리 시스템.
  65. 제 64 항에 있어서,
    상기 처리 변환 데이터를 양자화하여 처리 양자화 데이터를 형성하는 양자화기를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 시스템.
  66. 제 65 항에 있어서,
    상기 변환 코딩 데이터를 형성하는 무손실 엔트로피 디코더와,
    상기 양자화 데이터를 인코딩하는 무손실 엔트로피 인코더
    를 더 포함하는 현상 표시 변환 데이터의 디지털 처리 시스템.
  67. 제 56 항에 있어서,
    상기 양자화 데이터는 다른 레벨의 변환 코딩 데이터를 형성하고,
    상기 시스템은
    상기 제 1 레벨 변환 코딩 데이터에 대해 수행한 것과 유사한 기능을 상기 다른 레벨의 변환 코딩 데이터에 대해 수행하는 다른 역양자화기, 다른 역변환기, 다른 변형기 및 클리퍼, 다른 조작기, 다른 양자화기를 더 포함하는 현상 표시 제 1 레벨 변환 코딩 데이터의 실제 영역 디지털 처리 시스템.
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 현상을 표시하는 변환 데이터를 디지털 처리하기 위한 컴퓨터 판독가능 프로그램 코드 수단을 구비하는 기록매체에 있어서, 상기 기록매체 내의 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터로 하여금,
    ① 상기 변환 데이터를 실제 영역으로 역변환하여 초기 고정밀도 숫자를 형성하는 단계와,
    ② 상기 초기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 초기 변형 데이터를 형성하는 단계와,
    ③ 상기 초기 고정밀도 숫자를 상기 초기 변형 데이터로부터 감산하여 고정밀도 차분을 형성하는 단계와,
    ④ 상기 초기 변형 데이터를 조작하여 효과를 발생시키고 처리 변환 데이터를 형성하는 단계와,
    ⑤ 상기 고정밀도 차분을 상기 처리 변환 데이터에 가산하여 처리 고정밀도 숫자를 형성하는 단계
    를 수행하도록 하는
    기록매체.
  75. 삭제
  76. 제 74 항에 있어서,
    상기 기록매체 내의 상기 컴퓨터 판독가능 프로그램 코드 수단은 컴퓨터로 하여금 상기 처리 고정밀도 숫자를 정변환하는 단계를 수행하도록 하는 컴퓨터 판독가능 프로그램 코드 수단을 더 포함하는 기록매체.
  77. 삭제
  78. 삭제
  79. 현상을 표시하는 변환 코딩 데이터를 디지털 처리하는 방법을 수행하는 머신에 의해 실행가능한 인스트럭션의 프로그램을 기록한 기록매체에 있어서, 상기 방법은
    ① 상기 변환 코딩 데이터를 역양자화하여 변환 데이터를 형성하는 단계와,
    ② 상기 변환 데이터를 실제 영역으로 역변환하여 초기 고정밀도 숫자를 형성하는 단계와,
    ③ 상기 초기 고정밀도 숫자를 정수로 변형하고 상기 정수를 허용된 범위로 클리핑하여 초기 변형 데이터를 형성하는 단계와,
    ④ 상기 초기 고정밀도 숫자를 상기 초기 변형 데이터로부터 감산하여 고정밀도 차분을 형성하는 단계와,
    ⑤ 상기 초기 변형 데이터를 조작하여 효과를 발생시키고 처리 변형 데이터를 형성하는 단계와,
    ⑥ 상기 고정밀도 차분을 상기 처리 변형 데이터에 가산하여 처리 고정밀도 숫자를 형성하는 단계
    를 포함하는 기록매체.
  80. 제 79 항에 있어서,
    상기 방법이
    상기 처리 고정밀도 숫자를 정변환하여 정변환 데이터를 형성하는 단계와,
    상기 정변환 데이터를 양자화하여 양자화 데이터를 형성하는 단계
    를 더 포함하는 기록매체.
  81. 제 80 항에 있어서,
    상기 방법이
    엔트로피 디코딩을 채용하여 코딩 데이터를 디코딩함으로써 변환 코딩 데이터를 형성하는 단계와,
    엔트로피 인코딩을 채용하여 상기 양자화 데이터를 인코딩함으로써 인코딩 데이터를 형성하는 단계
    를 더 포함하는 기록매체.
  82. 제 81 항에 있어서,
    상기 방법이
    상기 정변환, 양자화, 엔트로피 인코딩, 엔트로피 디코딩, 역양자화, 역변환 단계와 함께 상기 감산, 조작, 가산 단계를 원하는 회수만큼 교대로 수행하는 단계를 더 포함하는 기록매체.
  83. 삭제
  84. 삭제
KR1019990044265A 1998-11-04 1999-10-13 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템 KR100360013B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/186,249 US6393155B1 (en) 1998-11-04 1998-11-04 Error reduction in transformed digital data
US9/186,249 1998-11-04
US09/186,249 1998-11-04

Publications (2)

Publication Number Publication Date
KR20000034994A KR20000034994A (ko) 2000-06-26
KR100360013B1 true KR100360013B1 (ko) 2002-11-07

Family

ID=22684212

Family Applications (1)

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

Country Status (6)

Country Link
US (2) US6393155B1 (ko)
JP (1) JP3320390B2 (ko)
KR (1) KR100360013B1 (ko)
CN (1) CN1176433C (ko)
MY (1) MY123212A (ko)
SG (1) SG87060A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2795206B1 (fr) * 1999-06-17 2001-08-31 Canon Kk Procede de modification d'orientation geometrique d'une image
US6678423B1 (en) * 2000-03-13 2004-01-13 International Business Machines Corporation Shift and/or merge of transformed data along two axes
US6671414B1 (en) * 2000-03-13 2003-12-30 International Business Machines Corporation Shift and/or merge of transformed data along one axis
US6909812B1 (en) * 2000-07-13 2005-06-21 Lucent Technologies Inc. Methods and apparatus for nearly lossless-concatenated block transform coding
US8270820B2 (en) * 2001-02-23 2012-09-18 Hewlett-Packard Development Company, L.P. Archiving and sharing of multimedia content
JP2004186934A (ja) * 2002-12-03 2004-07-02 Fuji Xerox Co Ltd 画像処理システム、画像形成装置、画像処理方法、およびプログラム
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US8218624B2 (en) * 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7602851B2 (en) * 2003-07-18 2009-10-13 Microsoft Corporation Intelligent differential quantization of video coding
US7580584B2 (en) * 2003-07-18 2009-08-25 Microsoft Corporation Adaptive multiple quantization
US7801383B2 (en) * 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
US7489826B2 (en) * 2004-10-07 2009-02-10 Infoprint Solutions Company, Llc Compensating for errors in performance sensitive transformations
US7643704B2 (en) * 2005-02-04 2010-01-05 Eastman Kodak Company Cropping a digital image and preserving reserves
JP4775756B2 (ja) * 2005-03-18 2011-09-21 富士ゼロックス株式会社 復号化装置及びそのプログラム
JP4645948B2 (ja) * 2005-03-18 2011-03-09 富士ゼロックス株式会社 復号化装置及びプログラム
US7778468B2 (en) * 2005-03-23 2010-08-17 Fuji Xerox Co., Ltd. Decoding apparatus, dequantizing method, and program thereof
JP4737711B2 (ja) * 2005-03-23 2011-08-03 富士ゼロックス株式会社 復号化装置、逆量子化方法、分布決定方法及びこのプログラム
JP2006270737A (ja) * 2005-03-25 2006-10-05 Fuji Xerox Co Ltd 復号化装置、分布推定方法、復号化方法及びこれらのプログラム
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US8059721B2 (en) * 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US7974340B2 (en) * 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
JP4468404B2 (ja) * 2007-05-02 2010-05-26 キヤノン株式会社 情報処理装置の制御方法、情報処理装置及びプログラム
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US20120230395A1 (en) * 2011-03-11 2012-09-13 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform with quantization matricies
JP2014068276A (ja) * 2012-09-26 2014-04-17 Olympus Imaging Corp 画像編集装置、画像編集方法、およびプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06112909A (ja) * 1992-09-28 1994-04-22 Sony Corp 改良dctの信号変換装置
JPH06165151A (ja) * 1992-11-25 1994-06-10 Matsushita Electric Ind Co Ltd 映像符号量制御装置
TW224553B (en) * 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
US5515388A (en) * 1993-03-19 1996-05-07 Sony Corporation Apparatus and method for preventing repetitive random errors in transform coefficients representing a motion picture signal
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
EP0671816B1 (en) * 1993-09-28 2000-03-29 Sony Corporation Encoding/decoding device with all odd or all even value rounding
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
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
JP3518717B2 (ja) * 1996-09-20 2004-04-12 ソニー株式会社 動画像符号化装置および方法、並びに動画像復号化装置および方法
GB2318472B (en) * 1996-10-09 2000-11-15 Sony Uk Ltd Processing encoded signals
US6178205B1 (en) * 1997-12-12 2001-01-23 Vtel Corporation Video postfiltering with motion-compensated temporal filtering and/or spatial-adaptive filtering

Also Published As

Publication number Publication date
US6535645B2 (en) 2003-03-18
CN1176433C (zh) 2004-11-17
SG87060A1 (en) 2002-03-19
CN1253337A (zh) 2000-05-17
JP2000151417A (ja) 2000-05-30
MY123212A (en) 2006-05-31
JP3320390B2 (ja) 2002-09-03
US20020081035A1 (en) 2002-06-27
KR20000034994A (ko) 2000-06-26
US6393155B1 (en) 2002-05-21

Similar Documents

Publication Publication Date Title
KR100360013B1 (ko) 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템
KR100351654B1 (ko) 현상 표시 변환 데이터의 디지털 처리 방법 및 시스템
US7724976B2 (en) Reduced error processing of transformed digital data
JP4343440B2 (ja) Dwtベース技法によって圧縮された画像を符号化するための実時間アルゴリズムおよびアーキテクチャ
TWI382767B (zh) 反向離散餘弦轉換計算中之誤差減少
US6330369B1 (en) Method and apparatus for limiting data rate and image quality loss in lossy compression of sequences of digital images
US9230341B2 (en) Compressed domain system and method for compression gains in encoded 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
US7099523B2 (en) Method and system for scaling a signal sample rate
JP4241517B2 (ja) 画像符号化装置及び画像復号装置
US7164369B2 (en) System for improving storage efficiency of digital files
Lewis et al. Exact JPEG recompression
JPH10191338A (ja) 画像符号化装置および画像復号装置
Kumar et al. Aggrandize Bit Plane Coding using Gray Code Method
Garg MPEG Video Transcoding in Compress Domain: By Ankit Garg
JP2002300593A (ja) ディジタル信号変換方法およびその装置
Said Compressing High Dynamic Range Photos Using the JPEG Standard
JPH05130418A (ja) 画像処理装置

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

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee