KR20110091849A - 중첩 변환 처리에서의 감소된 dc 이득 부정합 및 dc 누설 - Google Patents

중첩 변환 처리에서의 감소된 dc 이득 부정합 및 dc 누설 Download PDF

Info

Publication number
KR20110091849A
KR20110091849A KR1020117007934A KR20117007934A KR20110091849A KR 20110091849 A KR20110091849 A KR 20110091849A KR 1020117007934 A KR1020117007934 A KR 1020117007934A KR 20117007934 A KR20117007934 A KR 20117007934A KR 20110091849 A KR20110091849 A KR 20110091849A
Authority
KR
South Korea
Prior art keywords
operator
overlapping
overlap
inverse
transform
Prior art date
Application number
KR1020117007934A
Other languages
English (en)
Other versions
KR101683313B1 (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 KR20110091849A publication Critical patent/KR20110091849A/ko
Application granted granted Critical
Publication of KR101683313B1 publication Critical patent/KR101683313B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Discrete Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

특정 실시예에서, 디지털 미디어의 인코딩 및/또는 디코딩 동안에 중첩 연산자가 적용되고, 여기서, 중첩 연산자는 내부 중첩 연산자와 에지 및/또는 코너에서의 중첩 연산자 사이에 감소된 DC 이득 부정합 및/또는 DC 누설을 가진다. 다른 실시예에서, 중첩 처리를 위한 선택된 타일 경계 옵션을 나타내는 정보가 인코딩 및/또는 디코딩될 수 있다. 선택된 타일 경계 옵션은 중첩 연산자에서 처리하기 위한 하드 타일 경계 옵션 및 소프트 타일 경계 옵션 중 하나를 나타낸다. 중첩 변환 처리는 이어서 선택된 타일 경계 옵션에 적어도 부분적으로 기초하여 적용될 수 있다.

Description

중첩 변환 처리에서의 감소된 DC 이득 부정합 및 DC 누설{REDUCED DC GAIN MISMATCH AND DC LEAKAGE IN OVERLAP TRANSFORM PROCESSING}
변환 코딩은 많은 오디오, 이미지, 및 비디오 압축 시스템에서 사용되는 압축 기법이다. 미압축된 디지털 이미지 및 비디오는 통상적으로 2차원(2D) 격자로 배열된 이미지 또는 비디오 프레임 내의 위치에서의 화소 또는 컬러의 샘플로서 표현되거나 캡처된다. 이것을 종래에 이미지 또는 비디오의 공간-영역 표현(spatial-domain representation)이라고 한다. 예를 들어, 직사각형-형상의 이미지에 대한 전형적인 형식은 3개의 8-비트 컬러 샘플의 2차원 어레이로 이루어져 있다. 각각의 샘플은 격자 내의 공간 위치에서의 컬러 성분의 값을 나타내는 숫자이며, 여기서 각각의 컬러 성분은, 그 중에서도 특히, RGB 또는 YUV 등의 색 공간 내에서 축을 따른 진폭을 나타낸다. 이들 어레이 중 하나의 어레이에서의 개개의 샘플을 픽셀이라고 할 수 있다. [다른 통상의 사용에서, '픽셀'이라는 용어가 공간적으로 동일한 위치에 있는 n개의 컬러 성분 샘플의 n-튜플(n-tuple)을 지칭하는 데, 예를 들어, 주어진 공간 위치에 대한 R, G, 및 B 컬러 성분 값의 3-튜플 그룹을 지칭하는 데 사용된다. 그렇지만, 이 용어가 다른 대안으로서 여기에서 스칼라-값 샘플을 지칭하는 데 사용된다.] 다양한 이미지 및 비디오 시스템은 서로 다른 컬러, 공간 및 시간 샘플링 분해능을 사용할 수 있다. 이와 유사하게, 디지털 오디오는 통상적으로 시간-샘플링된 오디오 신호 스트림으로서 표현된다. 예를 들어, 전형적인 오디오 형식은 규칙적인-간격의 시간 인스턴스(time instant)에서의 오디오 신호 진폭을 나타내는 오디오 신호의 16-비트 진폭 샘플 스트림으로 이루어져 있다.
미압축된 디지털 오디오, 이미지 및 비디오 신호는 상당한 저장 및 전송 용량을 소비할 수 있다. 예를 들어, 신호를 표현하는 데 필요한 데이터의 양의 차후의 감소를 가능하게 해주기 위해 신호의 공간-영역(또는 시간-영역) 표현을 주파수-영역(또는 기타 유사한 변환 영역) 표현으로 변환함으로써, 이러한 디지털 오디오, 이미지 및 비디오를 표현하는 데 필요한 데이터의 양을 감소시키기 위해 기타 인코딩 기법에서 변환 코딩이 사용될 수 있다. 데이터의 양의 감소는 통상적으로 양자화라고 알려진 프로세스를 적용하는 것에 의해 또는 변환-영역 표현의 특정 주파수 성분의 선택적 폐기에 의해(또는 이 둘의 조합에 의해), 이어서 적응적 허프만 인코딩 또는 적응적 산술 인코딩 등의 엔트로피 인코딩 기법을 적용하는 것에 의해 달성된다. 양자화 프로세스는, 개개의 주파수 성분의 추정된 지각적 민감성의 정도에 기초하여 또는 기타 기준에 기초하여, 선택적으로 적용될 수 있다. 주어진 비트 레이트의 출력에 대해, 변환 코딩을 적절히 적용하는 것은 일반적으로, 직접적으로 공간 영역에서의 이미지 또는 비디오의 컬러 샘플 충실도 또는 공간 분해능 또는 시간 영역에서의 오디오를 감소시키는 것에 비해, 훨씬 덜 지각가능한 디지털 신호의 열화를 야기한다.
보다 구체적으로는, 전형적인 블록 변환-기반 코딩 기술은 디지털 이미지의 미압축된 픽셀을 고정-크기의 2차원 블록(X1, ... Xn)으로 분할한다. 공간-주파수 분석을 수행하는 선형 변환은 주어진 블록에 적용되어, 블록 내의 공간-영역 샘플을, 블록 구간에 걸쳐 대응하는 주파수 대역에서의 디지털 신호의 강도를 나타내는 일련의 주파수(또는 변환) 계수로 변환한다. 압축을 위해, 변환 계수가 양자화될 수 있고(즉, 계수값의 최하위 비트를 버리는 것 또는 고정밀도 숫자 집합 내의 값을 저정밀도로 다른 방식으로 매핑하는 것 등에 의해 정밀도가 감소될 수 있고) 또한 압축된 데이터 스트림으로 엔트로피 또는 가변-길이 코딩될 수 있다. 디코딩에서, 변환 계수는 역양자화되고 다시 공간 영역으로 역변환되어, 원래의 컬러/공간 샘플링된 이미지/비디오 신호를 거의 재구성할 것이다(재구성된 블록
Figure pct00001
).
블록 내의 샘플의 상관을 이용하고 따라서 압축 성능을 극대화할 수 있는 것이 변환 설계에서의 주된 요구사항이다. 많은 블록 변환-기반 코딩 응용에서, 변환 영역에서 적용되는 양자화 동작에 따라 손실 압축 및 무손실 압축 둘다를 지원하기 위해 변환이 가역적이어야만 한다. 예를 들어, 양자화가 적용되지 않는 경우, 가역 변환을 이용하는 인코딩은 대응하는 디코딩의 적용 시에 입력 데이터의 정확한 복원을 가능하게 해줄 수 있다. 그렇지만, 이들 응용에서의 가역성이라는 요구사항은 코딩 기술의 설계의 바탕이 될 수 있는 변환의 선택을 제약한다. 변환의 구현 복잡도는 또 하나의 중요한 설계 제약조건이다. 따라서, 변환 설계는 종종, 최소한의 동적 범위 확장으로 고속의 정수 구현이 달성될 수 있도록, (4, 8, 16, 32 등의 2의 거듭제곱에 의한 곱셈 또는 나눗셈을 구현하기 위해) 전방향 변환 및 역변환의 적용이 작은 정수와의 곱셈 및 기타 간단한 수학적 연산(가산, 감산 및 시프트 연산 등)만을 수반하도록 선택된다.
그 중에서도 특히, JPEG (ITU-T T.81 | ISO/IEC 10918-1) 및 MPEG-2 (ITU-T H.262 | ISO/IEC 13818-2) 등의 많은 이미지 및 비디오 압축 표준은 DCT(Discrete Cosine Transform)에 기반한 변환을 이용한다. DCT는 양호한 에너지 집중 특성을 가지는 것으로 알려져 있지만, 많은 구현에서 단점도 가진다. DCT는 N. Ahmed, T. Natarajan, 및 K.R. Rao의 "Discrete Cosine Transform," IEEE Transactions on Computers, C-23 (January 1974), pp. 90-93에 기술되어 있다.
정지 영상(또는 비디오 시퀀스 내의 인트라 코딩된 프레임)을 압축할 때, JPEG 및 MPEG-2 등의 많은 통상의 표준은 이미지를 나타내는 어레이를 8x8 샘플 블록으로 분할하고 각각의 이러한 이미지 블록에 블록 변환을 적용한다. 이들 설계에서 주어진 블록에서의 변환 계수는 블록 영역 내의 샘플값에 의해서만 영향을 받는다. 이미지 및 비디오 코딩에서, 이들 독립적으로 구성된 블록에서의 샘플의 양자화는 블록 경계에 불연속이 생기게 하고, 따라서 블록화 아티팩트(blocking artifact) 또는 블록화 효과(blocking effect)라고 알려진 시각적으로 거슬리는 아티팩트를 야기할 수 있다. 이와 유사하게, 오디오 데이터의 경우, 비중첩 블록(non-overlapping block)이 독립적으로 변환 코딩될 때, 디코더에서 오디오 신호의 재구성 시에 양자화 오차는 블록 경계에 신호의 불연속을 야기할 것이다. 오디오의 경우, 주기적인 클리킹(clicking) 효과가 들릴 수 있다.
블록화 아티팩트를 완화시키는 데 사용되는 기법은 디블록킹 필터(deblocking filter)를 사용하여 블록간 에지 경계(inter-block edge boundary)에 걸쳐 신호값을 평활화하는 것을 포함한다. 이들 기법이 결점이 없는 것은 아니다. 예를 들어, 디블록킹 기법은 상당한 계산 구현 리소스를 필요로 할 수 있다.
또 하나의 방식은 H. Malvar, "Signal Processing with Lapped Transforms," Artech House, Norwood MA, 1992에 기술된 바와 같은 랩 변환(lapped transform)을 사용하여 블록화 효과를 감소시키는 것이다. 일반적으로, 랩 변환은, 현재 블록(current block) 내의 샘플 이외에, 이웃 블록(neighboring block) 내의 일부 인접 샘플에 걸쳐 있는 입력 영역을 가지는 변환이다. 이와 마찬가지로, 재구성측에서, 역 랩 변환(inverse lapped transform)은 이웃 블록 내의 일부 디코딩된 샘플은 물론 현재 블록의 샘플에도 영향을 준다. 따라서, 역변환은 양자화의 존재에도 블록 경계에 걸쳐 연속성을 유지할 수 있으며, 결과적으로 블록화 효과의 감소를 가져온다. 랩 변환의 또 하나의 이점은 보다 큰 압축 성능을 보여주는 교차-블록 상관(cross-block correlation)을 이용할 수 있다는 것이다. 일부 랩 변환 구현예에서는, 전방향 변환 및 역변환에서 중첩 샘플 블록(overlapping block of sample)이 처리된다. 기타 구현예에서, 중첩 처리(overlap processing)가 변환 처리와 분리되고, 인코딩의 경우, 중첩 처리가 비중첩 블록에 대해 수행되는 전방향 변환 이전에 블록 경계에 걸쳐 수행되며, 디코딩의 경우, 역변환이 비중첩 블록에 대해 수행되고, 이어서 중첩 처리가 블록 경계에 걸쳐 수행된다.
2D 데이터의 경우, 일반적으로, 랩 2D 변환(lapped 2D transform)은 현재 블록의 좌, 우, 상, 하에 있는 선택된 블록 요소와 함께 현재 블록 그리고 어쩌면 현재 블록의 좌상, 우상, 좌하 및 우하에 있는 블록의 함수이다. 현재 블록에 대한 랩 변환을 계산하는 데 사용되는 이웃 블록 내의 샘플의 수를 중첩(overlap) 또는 지원(support)의 양이라고 한다.
<발명의 개요>
요약하면, 상세한 설명은 다양한 디지털 미디어 압축 및 압축 해제 기술에 관한 것이다. 예를 들어, 인코딩 및/또는 디코딩 동안 중첩 처리 동작에서 DC 이득 부정합(DC gain mismatch) 및/또는 DC 누설(DC leakage) 현상을 해소하는 다양한 기법이 적용된다.
개시된 기술의 한 측면에 따르면, 디지털 미디어 디코딩 장치는 디지털 미디어를 디코딩할 때 역 중첩 변환(inverse overlap transform)을 수행한다. 디지털 미디어 디코딩 장치는 디지털 미디어에 대해 역 주파수 변환(inverse frequency transform)을 수행한다. 이 장치는 이어서 다수의 중첩 연산자(overlap operator)를 역 주파수 변환의 결과에 적용한다. 다수의 중첩 연산자 중 제1 중첩 연산자는 내부 중첩 연산자(interior overlap operator)이고, 다수의 중첩 연산자 중 제2 중첩 연산자는 에지 또는 코너 중첩 연산자(edge or corner overlap operator)이다. 다수의 중첩 연산자 각각은 실질적으로 동등한 DC 이득을 특징으로 한다. 이것은 연산자들 간의 DC 이득 부정합을 감소시킨다.
대응하는 인코딩에서, 디지털 미디어 인코딩 장치는 디지털 미디어를 인코딩할 때 중첩 변환을 수행한다. 전처리에서, 이 장치는 다수의 중첩 연산자를 디지털 미디어 데이터 샘플에 또는 이러한 디지털 미디어 데이터 샘플의 이전의 인코딩 스테이지로부터의 결과에 적용한다. 다수의 중첩 연산자 중 제1 중첩 연산자는 내부 중첩 연산자이고, 다수의 중첩 연산자 중 제2 중첩 연산자는 에지 또는 코너 중첩 연산자이다. 다시 말하자면, 다수의 중첩 연산자 각각은 실질적으로 동등한 DC 이득을 특징으로 하며, 이는 연산자들 간의 DC 이득 부정합을 감소시키고, 그로써 압축 성능을 향상시킨다. 디지털 미디어 인코딩 장치는 중첩 전처리(overlap pre-processing)의 결과에 대해 주파수 변환을 수행한다. 감소된 DC 이득 부정합 이외에, 다수의 중첩 연산자는 많은 경우에 감소된 DC 누설을 나타낸다.
개시된 기술의 또 하나의 측면에 따르면, 디지털 미디어 디코딩 장치는 선택된 타일 경계 옵션(tile boundary option)을 나타내는 정보를 인코딩된 비트스트림으로 수신하며, 여기서 선택된 타일 경계 옵션은 중첩 연산자에 대한 하드 타일 경계 처리(hard tile boundary processing) 및 중첩 연산자에 대한 소프트 타일 경계 처리(soft tile boundary processing) 중 하나를 나타낸다. 선택된 타일 경계 옵션에 적어도 부분적으로 기초하여, 디지털 미디어 디코딩 장치는 역 중첩 처리(inverse overlap processing)를 수행한다. 예를 들어, 소프트 타일 경계 처리는 타일 경계에 걸친 중첩 처리를 특징으로 하고, 하드 타일 경계 처리는 이러한 타일 경계에 걸친 중첩 처리가 없는 것을 특징으로 한다. 일부 구현예에서, 역 중첩 처리는 감소된 DC 이득 부정합 및/또는 DC 누설을 가지도록 설계되어 있는 중첩 연산자를 적용하는 것을 포함할 수 있다.
대응하는 인코딩에서, 디지털 미디어 인코딩 장치는 중첩 연산자에 대한 하드 타일 경계 처리를 사용하는 것과 중첩 연산자에 대한 소프트 타일 경계 처리를 사용하는 것 중에서 선택을 한다. 디지털 미디어 인코딩 장치는 선택된 타일 경계 옵션에 따라 중첩 처리를 수행한다. 이 장치는 또한 선택된 타일 경계 옵션을 나타내는 정보를 인코딩된 비트스트림으로 신호한다. 일부 구현예에서, 이것은 통상적으로 낮은 압축 효율을 가지는 제1 모드(하드 타일)와 통상적으로 높은 압축 효율을 갖지만 타일들 간에 의존관계를 가지는 제2 모드(소프트 타일) 간의 전환을 가능하게 해준다.
이상의 요약은 간략한 개요에 불과하며, 본 명세서에 제시된 본 발명의 모든 특징들을 기술하기 위한 것이 아니다. 본 발명의 이상의 목적, 특징 및 이점과 기타 목적, 특징 및 이점이 첨부 도면을 참조하여 계속되는 이하의 상세한 설명으로부터 보다 명백하게 될 것이다.
도 1은 가역 중첩 연산자를 이용하는 랩 변환을 포함하는 인코더의 흐름도.
도 2는 대응하는 역 랩 변환을 포함하는 디코더의 흐름도.
도 3은 예시적인 구현예에서 제1 스테이지 중첩 변환에서 사용하기 위한 그리고 제2 스테이지의 중첩 변환에서의 전체 분해능 채널(full resolution channel)에 대한 4x4 내부, 4x1 에지, 및 2x2 코너 중첩 연산자의 레이아웃을 나타낸, 예시적인 구현예에서의 블록들의 배열을 나타낸 도면으로서, 도시된 중첩 연산자는 또한 예시적인 구현예에서의 대응하는 역 중첩 변환 스테이지에서도 사용됨.
도 4는 예시적인 구현예에서 4:2:2 다운샘플링된 색도 채널(downsampled chroma channel)에 대한 제2 스테이지 중첩 변환에서 사용하기 위한 2x2 내부, 2x1 에지, 및 1x1 코너 중첩 연산자의 레이아웃을 나타낸, 예시적인 구현예에서의 블록들의 배열을 나타낸 도면으로서, 도시된 중첩 연산자는 또한 예시적인 구현예에서의 대응하는 역 중첩 변환 스테이지에서도 사용됨.
도 5는 예시적인 구현예에서 4:2:0 다운샘플링된 색도 채널에 대한 제2 스테이지 중첩 변환에서 사용하기 위한 2x2 내부, 2x1 에지, 및 1x1 코너 중첩 연산자의 레이아웃을 나타낸, 예시적인 구현예에서의 블록들의 배열을 나타낸 도면으로서, 도시된 중첩 연산자는 또한 예시적인 구현예에서의 대응하는 역 중첩 변환 스테이지에서도 사용됨.
도 6a는 중첩 처리에 대한 하드 또는 소프트 타일 경계를 선택하고 신호하는 예시적인 방법을 나타낸 플로우차트.
도 6b는 역 중첩 처리에 대한 선택된 하드 또는 소프트 타일 경계 표시자를 수신하는 예시적인 방법을 나타낸 플로우차트.
도 7a는 감소된 DC 이득 부정합 및 감소된 DC 누설을 가지는 중첩 연산자를 사용하여 중첩 변환을 수행하는 예시적인 방법을 나타낸 플로우차트.
도 7b는 감소된 DC 이득 부정합 및 감소된 DC 누설을 가지는 중첩 연산자를 사용하여 역 중첩 변환을 수행하는 예시적인 방법을 나타낸 플로우차트.
도 8은 본 명세서에 기재된 기술을 구현하는 데 적당한 컴퓨팅 환경의 블록도.
이하의 설명은 DC 이득 부정합 및/또는 DC 누설 현상을 해소하는 전방향/역 중첩 변환 설계를 이용하는 디지털 미디어 압축 또는 압축 해제 시스템, 인코더 또는 디코더에 관한 것이다. 예시를 위해, 이들 기술을 포함하는 압축/압축 해제 시스템의 실시예는 이미지 또는 비디오 압축/압축 해제 시스템이다. 다른 대안으로서, 본 명세서에 기재된 기술은 기타 2D 데이터 또는 기타 미디어 데이터에 대한 압축 또는 압축 해제 시스템, 인코더 또는 디코더에 포함될 수 있다. 본 명세서에 기재된 기술은 디지털 미디어 압축 시스템이 압축된 디지털 미디어 데이터를 특정의 코딩 형식으로 인코딩하는 것을 필요로 하지 않는다.
이하에 제시되는 예시적인 구현예는 이미지 코딩 및 디코딩에서의 DC 이득 부정합 및/또는 DC 누설의 문제점을 해결하는 해결책을 설명한다. 예를 들어, 이들 해결책은 JPEG XR 이미지 코딩 표준(ITU-T T.832 | ISO/IEC 29199-2)에 포함될 수 있다. 그에 부가하여, 제1 및 제2 예시적인 구현예의 다양한 섹션은 JPEG XR 표준에서 참조 및/또는 정의되는 연산자를 사용한다.
구현예는 또한, 2008년 6월 30일자로 출원된 미국 특허 출원 제12/165,474호에 기재된 바와 같이, 이미지 코딩 및 디코딩에서 중첩 처리에 대한 4x4 연산자에서의 DC 누설의 문제점을 해결하는 방법에 관한 것이다.
1. 인코더/디코더
대표적이지만 일반화되고 간략화된 데이터 인코더 및 디코더가 이하에 예시되고 기술되어 있다.
도 1 및 도 2는 대표적인 2D 데이터 인코더(100) 및 대응하는 디코더(200)에서 이용되는 프로세스를 일반화하여 나타낸 도면이다. 인코더(100) 및 디코더(200)는 DC 이득 부정합 및/또는 DC 누설을 해결하는 기법을 사용하는 랩 변환에 대한 처리를 포함한다. 도면은 2D 데이터 인코더 및 디코더를 포함하는 압축 시스템 및 압축 해제 시스템에서 본 명세서에 기재된 기술의 사용 및 응용에 대한 일반화된 또는 간략화된 예시를 제공한다. 이들 감소된 DC 이득 부정합 및 DC 누설 기법에 기초한 대안의 인코더 및 디코더에서, 이 대표적인 인코더 및 디코더에 예시된 것보다 더 많은 또는 더 적은 수의 프로세스가 2D 데이터 압축에 사용될 수 있다. 예를 들어, 일부 인코더/디코더는 또한 색 변환(color conversion), 각종의 색 형식(color format) 처리, 스케일러블 코딩(scalable coding)을 포함할 수 있다. 기재된 압축 및 압축 해제 시스템(인코더 및 디코더)는, 완벽한 무손실(perfectly lossless) 표현으로부터 아주 거친(coarse)(높은 압축 비율) 표현에 이르는 넓은 범위의 선택가능 충실도에 걸쳐, 인코딩된 표현에서의 충실도 손실의 정도를 제어하는 하나 이상의 양자화 제어 매개변수에 기초할 수 있는 양자화의 적용에 따라, 2D 데이터의 무손실 및/또는 손실 압축을 제공할 수 있다.
2D 데이터 인코더(100)는 인코더(100)에 대한 입력으로서 제시되는 2D 데이터(110)의 (전형적인 입력에 대한) 더욱 축소된 표현인 압축된 비트스트림(120)을 생성한다. 예를 들어, 2D 데이터 입력은 이미지, 비디오 시퀀스의 프레임, 또는 2개의 차원을 가지는 기타 데이터(전체적으로, 이미지라고 함)일 수 있다. 영역 배열 스테이지(130)에서, 인코더(100)는 입력 데이터를 나중의 처리를 위해 블록으로 구성한다. 예를 들어, 블록은 4x4 샘플 블록, 2x4 샘플 블록, 또는 2x2 샘플 블록이다. 다른 대안으로서, 블록은 기타 크기를 가진다.
제1 전방향 중첩 처리 스테이지(140)에서, 인코더는 입력 데이터의 블록에 중첩 연산자를 적용한다. 예시적인 실시예에서, 전방향 중첩 연산자[음영된 블록(142)으로 도시됨]는 4개의 중첩 변환 연산자이다. 인코더(100)는 이어서 각자의 블록에 대해 블록 변환(150)을 수행한다.
인코더(100)는 차후의 인코딩을 위해 DC 계수를 각자의 블록의 AC 계수로부터 분리시킨다. 인코더(100)는 DC 계수에 대해 부가의 중첩 처리 및 전방향 주파수 변환 스테이지를 수행한다. 부가의 중첩 처리 스테이지는 생략될 수 있으며, 이는 제1 스테이지와 동일한 중첩 연산자 또는 다른 중첩 연산자를 사용할 수 있다. 예를 들어, 일부 구현예에서, 인코더(100)는 부가의 중첩 처리 스테이지가 수행되는지 여부를 선택하고, 이 결정을 디코더가 어느 역 중첩 처리를 수행할지를 결정하는 데 사용하도록 인코딩된 데이터로 신호할 수 있다. 인코더는 DC 계수의 부가의 중첩 변환의 결과를 양자화(170)하고, 인코더는 AC 계수를 양자화한다. 이어서, 인코더는 계수를 엔트로피 코딩(180)하고, 디코더(200)가 디코딩에서 사용할 코딩 결정(coding decision)을 나타내는 보조 정보와 함께 비트 스트림(120)으로 신호하기 위해, 엔트로피 코딩된 정보를 패킷화한다.
도 2를 참조하면, 간략한 개요로서, 디코더(200)는 역방향 프로세스를 수행한다. 디코더측에서, 변환 계수 비트가 압축된 비트스트림(205) 내의 그 각자의 패킷으로부터 추출(210)되고, 변환 계수 비트로부터 DC 및 AC 계수 자체가 디코딩(220)되고 역양자화(230)된다. 역변환을 적용함으로써 DC 계수(240)가 재발생되고, DC 계수의 평면이 DC 블록 에지에 걸쳐 적용되는 적당한 연산자를 사용하는 변환후 필터링(post-transform filtering)에서 "역 중첩"된다. 그 다음에, DC 계수에 역변환(250)을 적용함으로써 샘플 블록이 재발생되고, AC 계수(242)가 비트스트림으로부터 디코딩된다. 마지막으로, 얻어진 이미지 평면에서의 블록 에지가 역 중첩 필터링(260)된다. 제2 역 중첩 처리 스테이지는 제1 중첩 처리 스테이지와 동일한 중첩 연산자 또는 다른 중첩 연산자를 사용할 수 있다. 이것은 재구성된 2D 데이터 출력(290)을 생성한다.
2. 기재된 기술의 일반적인 일례
이 섹션은 중첩 변환 코딩 및 대응하는 디코딩의 성능을 향상시키는 기술의 일반적인 일례를 포함한다.
도 6a는 중첩 처리에 대한 하드 또는 소프트 타일 경계를 선택하고 신호하는 예시적인 방법(600)을 나타낸 것이다. 도 1을 참조하여 설명된 것과 같은 인코더는 이 기술을 수행한다. 다른 대안으로서, 다른 인코더가 이 기술을 수행한다.
610에서, 인코더는 중첩 변환 코딩 동안 중첩 처리를 수행할 때 사용하기 위해 하드 타일 경계 및 소프트 타일 경계 중 하나를 선택한다. 예를 들어, 이 선택은 인코딩될 이미지에 존재하는 타일의 수, 원하는 디코딩 계산 복잡도, 원하는 출력 품질, 사용자 설정, 개개의 타일의 개별적인 디코딩(타일간 의존관계가 없음)이 원하는 응용 특징인지 여부, 또는 기타 인자에 기초할 수 있다. 일반적으로, 이미지 내에서의 하드 타일 경계를 사용하면 타일간 의존관계가 더 적어지는데, 그 이유는 타일의 에지가 중첩 처리에 대한 이미지 경계로서 취급되기 때문이다. 이것은 어쩌면 압축 효율을 희생하여 (전체 이미지와 달리) 개개의 타일의 디코딩을 용이하게 해준다(왜냐하면 중첩 처리로 회피되었을 수 있는 블록화 아티팩트를 완화시키기 위해 더 많은 비트가 필요할지도 모르고 또한 중첩 연산이 코딩 이득이라고 알려진 변환 압축 특성을 향상시키는 것이 보통이기 때문임). 한편, 소프트 타일 경계의 사용은 타일 경계에 걸쳐 중첩 처리를 가능하게 해주지만, 디코딩을 위해 타일 간의 의존관계를 생성한다. 타일 경계 결정을 한 후에, 인코더는 그에 따라 중첩 변환 처리를 수행한다.
620에서, 인코더는 선택된 타일 경계 결정을 인코딩된 비트스트림으로 신호한다. 예를 들어, 선택된 타일 경계 결정은 별도의 구문 요소(syntax element)로서(예를 들어, 주어진 이미지에 대한 중첩 처리를 위해 하드 타일 경계가 선택되는지 소프트 타일 경계가 선택되는지를 나타내는 이미지 헤더 내의 단일 비트로서) 신호될 수 있다. 선택된 타일 경계는 또한 다른 구문 요소와 함께 또는 결합하여 신호될 수 있고, 이미지마다가 아닌 다른 방식에 기초하여 신호될 수 있다.
도 6b는 선택된 하드 또는 소프트 타일 경계 표시자를 수신하는 예시적인 방법(630)을 나타낸 것이다. 도 2를 참조하여 설명된 것과 같은 디코더가 이 기술을 수행한다. 다른 대안으로서, 다른 디코더가 이 기술을 수행한다.
640에서, 디코더는 역 중첩 처리에 대한 선택된 타일 경계 옵션을 나타내는 정보를 인코딩된 비트스트림으로 수신한다. 선택된 타일 경계 옵션은 역 중첩 처리에 대한 하드 타일 경계 및 소프트 타일 경계 중 하나를 나타낸다. 예를 들어, 선택된 타일 경계 옵션은 별도의 구문 요소 또는 결합 코딩된(jointly coded) 구문 요소로서 수신될 수 있고, 이미지에 대한 이미지 헤더로 수신되거나 어떤 다른 구문 레벨에서 수신될 수 있다.
650에서, 디코더는 선택된 타일 경계 옵션에 적어도 부분적으로 기초하여 역변환 디코딩을 수행한다. 예를 들어, 디코더는, 소프트 타일이 사용되는지 하드 타일이 사용되는지에 따라, 타일 경계에 걸쳐 역 중첩 처리를 수행하거나, 선택적으로 수행하거나, 또는 수행하지 않는다.
타일 경계 결정 표시자는 또한, 중첩 모드 옵션이 중첩 스테이지와 하드/소프트 타일링 결정의 결합을 나타내도록, 선택된 중첩 모드와 결합될 수 있다. 예를 들어, 중첩 모드 옵션의 하나의 값은 중첩이 적용되지 않는다(예를 들어, 2개의 스테이지를 가지는 계층적 중첩 변환 방식에서 제1 및 제2 중첩 스테이지가 적용되지 않는다)는 것을 나타낼 수 있고, 중첩 모드 옵션의 다른 값은 소프트 타일링에서 2개의 중첩 스테이지 중 단지 제1 중첩 스테이지만이 적용된다는 것을 나타낼 수 있으며, 중첩 모드 옵션의 다른 값은 소프트 타일링에서 2개의 중첩 스테이지가 적용된다는 것을 나타낼 수 있고, 중첩 모드 옵션의 다른 값은 하드 타일링에서 2개의 중첩 스테이지 중 단지 제1 중첩 스테이지만이 적용된다는 것을 나타낼 수 있으며, 중첩 모드 옵션의 또 다른 값은 하드 타일링에서 2개의 중첩 스테이지가 적용된다는 것을 나타낼 수 있다. 이러한 중첩 모드 옵션은 선택되고, 중첩 변환 코딩을 수행할 때 사용될 수 있으며, 인코딩된 비트스트림으로 신호될 수 있다. 인코딩된 비트스트림은 대응하는 디코더에 의해 수신되고, 선택된 중첩 모드 옵션은 디코딩되어 역 중첩 변환 디코딩을 수행할 때 사용된다.
도 7a는 인코딩 동안의 중첩 변환에서 감소된 DC 이득 부정합 및 감소된 DC 누설을 가지는 중첩 연산자를 사용하는 예시적인 방법(700)을 나타낸 것이다. 도 1을 참조하여 설명된 것과 같은 인코더가 이 기술을 수행한다. 다른 대안으로서, 다른 인코더가 이 기술을 수행한다.
710에서, 인코더는 디지털 미디어를 인코딩하고, 인코딩은 감소된 DC 이득 부정합 및 감소된 DC 누설을 가지는 복수의 중첩 연산자를 사용하는 중첩 변환 처리를 포함한다. 상세하게는, (내부 영역에 대한) 제1 중첩 연산자는 제1 DC 이득을 가지며, (에지 또는 코너 영역에 대한) 제2 중첩 연산자는 제1 DC 이득과 실질적으로 동등한 제2 DC 이득을 가진다. 서로 다른 분해능에서의 휘도 샘플(luma sample) 및 색도 샘플(chroma sample)의 블록에 대해, 실질적으로 동등한 DC 이득을 가지는 내부 중첩 연산자, 에지 중첩 연산자 및 코너 중첩 연산자의 일례가 이하에 제공된다.
720에서, 인코더는 인코딩된 비트스트림을 생성한다. 예를 들어, 비트스트림은 JPEG XR 형식 또는 기타 형식을 따른다.
도 7b는 디코딩 동안의 역 중첩 변환에서 감소된 DC 이득 부정합 및 감소된 DC 누설을 가지는 중첩 연산자를 사용하는 예시적인 방법(730)을 나타낸 것이다. 도 2를 참조하여 설명된 것과 같은 디코더가 이 기술을 수행한다. 다른 대안으로서, 다른 디코더가 이 기술을 수행한다.
740에서, 디코더는 인코딩된 비트스트림을 수신한다. 예를 들어, 비트스트림은 JPEG XR 형식 또는 기타 형식을 따른다.
750에서, 디코더는 감소된 DC 이득 부정합 및 감소된 DC 누설을 가지는 복수의 중첩 연산자를 사용하는 역 중첩 변환 처리를 수행한다. 상세하게는, (내부 영역에 대한) 제1 중첩 연산자는 제1 DC 이득을 가지며, (에지 또는 코너 영역에 대한) 제2 중첩 연산자는 제1 DC 이득과 실질적으로 동등한 제2 DC 이득을 가진다. 서로 다른 분해능에서의 휘도 샘플 및 색도 샘플의 블록에 대해, 실질적으로 동등한 DC 이득을 가지는 내부 중첩 연산자, 에지 중첩 연산자 및 코너 중첩 연산자의 일례가 이하에 제공된다.
"실질적으로 동등한 DC 이득"이라는 용어는 중첩 연산자가 정확히 동일한 DC 이득을 가져야만 한다는 것을 의미하지 않는다. 그 대신에, 동작 제약조건 및 계획된 응용을 고려하여, DC 이득 차이는 중첩 연산자 간의 DC 이득의 차이로 인해 생기는 바람직하지 않은 아티팩트를 감소(또는 심지어 제거)시킬 정도로 충분히 작아야만 한다. DC 이득의 유사성의 목표 수준은, 다른 인자들에 부가하여, 목표 구현 복잡도 대 원하는 품질에 따라 변할 수 있다. 일례로서, 이하에 제시되는 중첩 연산자 집합은 각자의 집합 내에서 실질적으로 동등한 DC 이득을 가진다.
3. 예시적인 구현예
예시적인 구현예는 랩 변환(lapped transform) 기술을 포함한다.
3.1 이론적 기초
앞서 살펴본 바와 같이, 랩 변환[중첩된 변환(overlapped transform)이라고도 함]은 개념상으로 블록 변환과 유사하다. 종래의 블록 변환은 2개의 단계를 가진다:
1. 입력 데이터를 블록 영역[1D 계열(1D series)로 된 샘플 열(string of samples) 또는 이미지와 같은 2D 데이터 집합으로 된 직사각형 블록-형상의 샘플 어레이(array of samples)로 이루어진 영역]으로 분할하는 단계, 및
2. 각각의 블록에 변환 프로세스를 적용하여 그의 주파수 성분(frequency content)을 분석/분해하는 단계.
압축 응용의 경우, 블록 변환의 출력은 양자화되고, 그 결과에 엔트로피 코딩이 적용된다. 이들 단계는 때때로 예측 프로세스 및 확률 추정 프로세스 등의 다른 동작과 결합된다. 디코딩 동안에, 디코더는 이들 처리 스테이지 각각에 대한 역 연산 또는 대략적인 역 연산을 적용한다.
블록 변환과 연관되어 있는 공지된 현상은 디코딩 프로세스로부터 생기는 재구성된 근사에서 발생할 수 있는 지각적 불연속인 블록화 아티팩트의 생성이다. 블록화 아티팩트를 완화시키는 공지된 방식은 랩 변환을 사용하는 것이다. 이상에서 설명한 바와 같이, 랩 변환에서, 변환 프로세스에 대한 입력을 형성하는 데이터 블록이 서로에 대해 중첩된다. 랩 변환의 사용에서 일어나는 한가지 문제점은 신호의 에지를 어떻게 처리하느냐이다. 입력 데이터 샘플 집합의 에지(이미지의 에지 등)에서, 보통은 인코더에 대한 랩 변환 입력의 일부가 될 데이터 중 일부가 존재하지 않는다. 시스템 설계자는 이들 에지 경우를 어떻게 처리할지를 결정해야만 한다.
이미지 코딩 기술에서, 주된 개념은 큰 이미지를 다수의 타일로 분해하는 것이다. 타일은 그림의 특정의(보통 직사각형의) 공간 이미지 영역에 정확하게 또는 대략적으로 대응하는 데이터 집합이다. 이미지를 타일로 세그먼트화하고 각각의 타일을 개별적으로 인코딩함으로써, 전체 이미지를 디코딩하지 않고 이미지의 일부에 액세스하여 이를 디코딩할 수 있다. 이미지의 특정의 영역에 액세스할 수 있는 것은 이미지가 클 경우에 특히 유용할 수 있다. 그렇지만, 큰 이미지를 작은 타일 영역으로 세그먼트화하는 것은 그림에 더 많은 에지(즉, 타일을 이미지 내의 다른 타일로부터 분리시키는 에지)를 생성할 수 있다. 이들 에지 각각에서, 블록화 아티팩트와 직접적으로 유사한 타일 경계 현상이 일어날 수 있다.
이전 버전의 JPEG XR 표준에서, 중첩 연산은, 사용가능하게 될 때, 이미지 타일 경계에 걸쳐서는 물론 블록 변환의 개별 블록 경계에 걸쳐서도 적용된다. 이 방식은 어떤 상황 하에서는 이점을 갖지만, 이 설계 선택의 결과, 타일-기반 이미지 인코딩 및 검색은 이미지 타일 경계에 걸쳐 중첩 연산이 적용되지 않는 경우보다 타일-정렬된 이미지 영역에 액세스할 때 더 많은 계산 복잡도를 가진다. 이 부가된 계산 비용은 변환 영역의 중첩 처리에 의해 유발되는 이웃 타일에 걸친 데이터 의존관계로 인한 것이며, 그 결과 특정의 타일 영역을 디코딩하기 위해, 공간적으로 이웃하는 타일에 대해 저장되는 데이터에 액세스하여 이를 적어도 부분적으로 디코딩할 필요도 있다.
이와 달리, 본 명세서에 제시된 예시적인 구현예에서, 타일 경계는 다음과 같이 2가지 유형 중 하나로서 분류된다:
- 타일의 에지가 이미지의 에지와 동일한 방식으로 취급되고, 따라서 타일 경계에 걸쳐 적용되는 변환 블록의 중첩이 없는 "하드" 타일 경계, 또는
- 타일 경계에 걸쳐 변환 블록의 중첩이 적용되는 "소프트" 타일 경계.
JPEG 1 및 JPEG 2000 등의 일부 이전의 설계에서, 모든 타일 경계는 하드 타일 경계로서 처리된다. 이와 달리, 이전의 버전의 JPEG XR 표준에서는, 타일 경계가 소프트 타일 경계로서 처리된다. 각각의 유형의 경계 처리는 실제로 어떤 상황 하에서 유용하다. 본 명세서에 제시된 예시적인 구현예에서, 인코더는 임의대로 하드 또는 소프트 타일 경계를 사용하고 그 선택을 이미지 데이터의 압축된 표현과 함께 신호하기로 선택할 수 있다. 더욱이, 본 명세서에 제시된 예시적인 구현예에서, 하드 타일 경계가 사용될 때에도, 타일 경계 옆에 있는 주어진 타일 내의 적어도 어떤 에지 샘플은 그럼에도 불구하고, 타일 내에서 내부 중첩 연산자를 적용하는 것으로 인해 문제를 야기할 수 있는 DC 이득 부정합을 감소시키기 위해, 에지 연산자로 중첩 처리된다.
예시적인 구현예는 또한 리프팅-기반(lifting-based) 변환 동작을 사용한다. "DC 누설"이라고 알려진 현상은 때때로 이러한 변환에서 문제가 될 수 있다. 변환이 DC 누설을 나타내는 경우, 어떤 상수값 입력 신호에 대해 전방향 변환의 출력이 상당한 비-DC 변환 계수를 포함할 수 있다(이 경우, DC 계수가, 이론상, 영이 아닌 유일한 주파수 계수이어야만 한다). DC 누설은 때때로 압축 성능의 손실 및 디코딩된 출력에서의 지각가능한 아티팩트(평탄한 영역에서의 물결 또는 왜곡 등)를 야기할 수 있다.
큰 이미지에서, 어떤 압축 성능의 손실 및 지각적 아티팩트가 이미지의 외측 경계 근방에서만 일어나는 것은 압축 코딩 설계에서 허용가능할 수 있다. 그렇지만, 하드 타일 경계를 사용하는 타일 세그먼트화가 이러한 현상을 일으키는 더 많은 영역을 생성하기 때문에, 설계가 하드 타일 경계 지원을 포함할지도 모를 때 에지 영역의 처리를 주의하여 설계하는 것이 더욱 중요하게 된다.
이미지 코더에서 타일 지원으로 일어나는 문제점은 또한 시스템 레벨에서 큰 "메타 이미지"의 상위 레벨 지원으로 일어날 수도 있으며, 여기서 메타 이미지는 각각이 개별적으로 인코딩되는 다수의 작은 이미지로부터 큰 데이터 집합으로서 구성된다. 다시 말하자면, 이러한 사용 시나리오에서, 이미지 에지를 주의하여 처리하는 것이 더욱 중요하게 된다.
따라서, 각각의 이미지 타일이 독립적으로 처리될 수 있도록 하드-타일-경계 코딩 옵션을 가지는 것이 바람직하다. 한가지 해결책은 타일 경계를 이미지 경계 전체와 동일하게 처리하는 것이다. 그렇지만, 어떤 경우에, 변환 설계는 이미지의 에지 근방에서 사용되는 동작에서 바람직하지 않게 높은 DC 누설 현상을 가진다. 그에 부가하여, 훨씬 더 중요한 것은, 에지 처리 동작의 출력과 이미지의 내부 영역에 대해 수행되는 처리 간에 DC 이득 차이가 있다는 것이다.
몇가지 점을 인식하면 이미지 경계 근방에서의 중첩 변환에서 DC 이득 부정합 및 DC 누설을 해결하는 데 도움이 된다. 첫째, 이전의 구현예에서, 중첩 연산자는 내부 연산자와 코너 및 에지 연산자 간의 DC 이득 부정합을 겪으며, 따라서 감소된 압축 효율 및 상당한 시각적 아티팩트를 야기한다. 둘째, 이전의 구현예에서의 에지, 코너 및 색도 내부 연산자도 역시 DC 누설을 겪으며, 이는 또한 감소된 압축 효율 및 상당한 시각적 아티팩트를 야기한다. 그에 부가하여, 4:2:0 및 4:2:2 색도 경우에서 이미지의 내부 영역의 처리에 대한 DC 누설 특성도 역시 이전의 구현예에서 문제가 된다.
3.2 예시적인 구현예의 개요
예시적인 구현예는 계층적 랩 변환을 사용한다. 변환은 4개의 스테이지를 갖는다:
1. 제1 스테이지 중첩 처리
2. 제1 스테이지 코어 변환
3. 제2 스테이지 중첩 처리
4. 제2 스테이지 코어 변환
중첩 스테이지는 코어 변환 연산자와 관련하여 경사 그리드(skewed grid)에 대해 동작한다. 즉, 코어 변환은 이미지에서 좌측 상부 픽셀과 정렬된 격자로 배열된 4x4 블록에 대해 동작한다. 중첩 스테이지는 유사한 크기를 갖지만 좌측 상단 코너 픽셀로부터 2 픽셀 수평 및 2 픽셀 수직 오프셋을 가지는 격자에 대해 동작한다. 대응하는 역 중첩 변환도 역시 4개의 스테이지, 즉 제1 스테이지 역 코어 변환, 제1 스테이지 역 중첩 처리, 제2 스테이지 역 코어 변환, 및 제2 스테이지 역 중첩 처리를 가진다.
안타깝게도, 이전에 구현된 바와 같이, 중첩 연산자는 DC 이득 부정합 및 DC 누설의 점에서 결함을 가진다. 상세하게는, 에지 중첩 연산자(중첩 스테이지의 격자 오프셋에 의해 유발되는 2 픽셀 폭 에지에서 동작하는 것)는 문제가 있다. 하드 타일링이 (하드 타일링을 가능하게 해주는 가장 자연스런 해결책으로서) 이미지의 중앙 영역에서 이들 에지 연산자의 상당한 사용을 필요로 하기 때문에, 이들 연산자에서의 문제점으로 인해 유발되는 아티팩트가 훨씬 더 명백하게 된다. 심지어 하드 타일링을 사용하지 않는 경우, 이전의 중첩 연산자는 이미지에 용납가능하지 않은 양의 가시 아티팩트를 생성한다.
본 명세서에 제시된 예시적인 구현예에서, 중첩 변환은 6개의 서로 다른 연산자를 통해 구현된다. 이들은 3개의 연산자로 된 2개의 그룹, 즉 전체 분해능 그룹 및 색도 그룹으로 그룹화되어 있다. 3개의 전체 분해능 중첩 연산자는 다음과 같다:
1. Overlap4x4 연산자 - 내부 중첩 처리 동작
2. Overlap4x1 연산자 - 에지 중첩 처리 동작
3. CornerOverlap2x2 연산자 - 코너 중첩 처리 동작.
도 3은 이들 연산자의 레이아웃의 다이어그램(300)을 나타낸 것이다. 도 3은 2 블록 x 2 블록 샘플 영역을 나타내고 있다. 점은 샘플을 나타내고, 중앙의 수평 파선 및 수직 파선은 변환 코딩 및 디코딩에 대한 블록 경계를 나타낸다. 둥근 코너 상자는 각각의 중첩 연산자에 대한 지원 영역을 나타낸다. 중앙의 4x4 샘플 영역 주변의 둥근 상자(310)는 내부 Overlap4x4 연산자를 나타내고, 4개의 코너 2x2 샘플 영역 주변의 둥근 상자(예를 들어, 320)는 CornerOverlap2x2 연산자를 나타내며, 나머지 8개의 4x1(또는 1x4) 샘플 영역 주변의 둥근 상자(예를 들어, 330)는 Overlap4x1 연산자를 나타낸다. 이들 3개의 전체 분해능 연산자는 제1 스테이지 중첩 변환에서는 모든 채널에 대해 그리고 제2 스테이지 중첩 변환에서는 전체 분해능 채널(즉, 4:4:4 샘플링 모드에서의 휘도 및 색도)에 대해 사용된다.
3개의 색도 연산자는 다음과 같다:
1. Overlap2x2 연산자 - 내부 중첩 처리 동작
2. Overlap2x1 연산자 - 에지 중첩 처리 동작
3. CornerOverlap1x1 연산자 - 코너 중첩 처리 동작. 이들 색도 연산자는 다운샘플링된(4:2:2 또는 4:2:0 재샘플링) 색도 채널의 제2 스테이지 중첩 변환에 사용된다.
도 4는 4:2:2 재샘플링(resampling)에서 색도 채널에 적용되는 이들 색도 연산자의 레이아웃의 다이어그램(400)을 나타낸 것이다. 도 4는 4:2:2 다운샘플링된 색도 채널의 제2 스테이지 중첩 변환에서 사용되는 중첩 연산자를 나타내고 있다. 2x2 블록 배열에서, 중첩 색도 연산자의 레이아웃은 4:2:2 샘플에 적용된다. 점은 샘플을 나타내고, 중앙의 수평 파선 및 수직 파선은 변환 코딩 및 디코딩에 대한 블록 경계를 나타낸다. 둥근 코너 상자(및 원)은 따라서 다양한 중첩 연산자의 영역/지원(domain/support)을 나타낸다. 중앙의 2x2 샘플 영역 주변의 둥근 상자(410)는 내부 Overlap2x2 연산자를 나타내고, 4개의 코너 1x1 샘플 영역 주변의 둥근 상자(예를 들어, 420)는 CornerOverlap1x1 연산자를 나타내며, 나머지 8개의 2x1(또는 1x2) 샘플 영역 주변의 둥근 상자(예를 들어, 430)는 Overlap2x1 연산자를 나타낸다.
도 5는 4:2:0 재샘플링에서 색도 채널에 적용되는 이들 색도 연산자의 레이아웃의 다이어그램(500)을 나타낸 것이다. 도 5는 4:2:0 다운샘플링된 색도 채널의 제2 스테이지 중첩 변환에서 사용되는 중첩 연산자를 나타내고 있다. 2x2 블록 배열에서, 중첩 색도 연산자의 레이아웃은 4:2:0 샘플에 적용된다. 점은 샘플을 나타내고, 파선은 변환 코딩 및 디코딩에 대한 블록 경계를 나타낸다. 둥근 코너 상자(및 원)은 따라서 다양한 중첩 연산자의 영역/지원을 나타낸다. 중앙의 2x2 샘플 영역(510) 주변의 둥근 상자(510)는 내부 Overlap2x2 연산자를 나타내고, 4개의 코너 1x1 샘플 영역 주변의 둥근 상자(예를 들어, 520)는 CornerOverlap1x1 연산자를 나타내며, 나머지 4개의 2x1(또는 1x2) 샘플 영역 주변의 둥근 상자(예를 들어, 530)는 Overlap2x1 연산자를 나타낸다.
이들 연산자의 설계에서 2가지 문제점, DC 이득 부정합 및 DC 누설이 발생한다. 이상적으로는, 2개의 연산자 집합(전체 분해능 및 색도) 각각에서, 3개의 연산자 모두에 대한 DC 이득 계수(gain factor)가 동등해야만 한다. DC 이득 부정합의 문제점은 3개의 DC 이득이 정합하지 않을 때 일어난다.
DC 누설은 변환에의 완벽하게 평탄한 입력(perfectly flat input)에 의해 DC 및 AC 계수 둘다가 생기는 현상이다. DC 누설은 얻어지는 AC 계수의 크기에 의해 측정된다.
이들 2가지 문제점의 결과, DC 계수만(모든 고주파 계수를 무시함)을 사용하여 코딩된 완벽하게 평탄한 이미지는 완벽하게 평탄한 재구성을 가지지 않을 것이다. 재구성된 픽셀값의 차이는 2개의 항, 즉 a) 스케일링 DC 이득 부정합(scaling DC gain mismatch)과 b) DC 누설(DC leakage)의 합으로 볼 수 있다.
차이 ~ ScalingGainMismatch + DCLeakage.
Overlap4x4 연산자에서의 DC 누설 문제에 대한 한 해결책은 미국 특허 출원 제12/165,474호에 제시되어 있다.
본 명세서에 제시된 예시적인 구현예에서, 나머지 5개의 연산자(Ovelap4x4 전체 분해능 연산자 이외의 5개의 연산자)에 대해 DC 이득 부정합 및 DC 누설을 감소시키거나 심지어 제거하는 다수의 해결책이 제시되어 있다. 나머지 5개의 연산자에서, DC 이득 부정합의 크기가 통상적으로 DC 누설의 크기보다 훨씬 더 크지만, DC 누설에 의해 야기되는 지각적 아티팩트가 일반적으로 더 거스릴 수 있다. 따라서, 해결되어야 하는 주된 문제점은 중첩 연산자들 간의 DC 이득 부정합이다. 부차적인 문제점은 중첩 연산자에서의 DC 누설이다.
다음 섹션은 소프트/하드 타일 경계 결정을 가능하게 해주는 몇가지 해결책에 대한 구문 및 의미에 대해 기술하고 있다. 이후의 섹션들은 이전의 중첩 연산자에 의해 유발되는 아티팩트를 제거하도록 설계된 새로운 중첩 연산자에 대해 기술한다. 하드 타일링 시나리오에 부가하여, 이들 새로운 중첩 연산자는 또한 하나의 큰 이미지가 독립적으로 압축되는 작은 청크(chunk)로 분할되는 "스티칭(stitching)" 시나리오에서도 유용하다. 나중에, 이미지들은 그의 원래의 관계에 따라 인접하여 디스플레이함으로써 서로 "스티칭"된다.
3.3 하드/소프트 타일링 결정에 대한 구문의 개요
예시적인 구현예는 하드 및 소프트 타일 경계 둘다를 지원한다. 소프트 타일 경계는 타일링된 이미지(tiled image) 내의 많은 수의 타일을 처리하는 데 더욱 효율적이며 블록화 아티팩트를 완화시킨다. 하드 타일 경계는 이미지 내의 제한된 수의 타일에 대한 더욱 효율적인 처리를 가능하게 해준다. 하드/소프트 타일 경계 결정에 대한 구문 및 의미와 관련하여 2가지 카테고리의 옵션이 기술되어 있다.
중요한 변경 구문. 제1 카테고리의 옵션은 이전의 구현예의 구문을 변경한다. 제1 옵션은 하드 타일링이 사용되는지 소프트 타일링이 사용되는지를 신호하는 새로운 구문 요소의 추가이다. 예를 들어, 새로운 구문 요소는 이미지 헤더 내의 플래그이다.
제2 옵션은 중첩 모드 정보를 이미 나타내는 중첩 레벨 구문 플래그(OVERLAP_MODE)에 대한 값을 추가하는 것이다. 이전의 구현예에서, OVERLAP_MODE는 이하의 3가지 가능한 값 및 대응하는 해석을 가지는 2-비트 구문 요소이다.
1. OVERLAP_MODE = 0은 어떤 중첩 처리 스테이지도 적용되지 않는다는 것을 의미한다.
2. OVERLAP_MODE = 1은 2개의 중첩 처리 스테이지 중 제1 중첩 처리 스테이지만이 적용된다는 것을 의미한다.
3. OVERLAP_MODE = 2은 중첩 처리 스테이지 둘다가 적용된다는 것을 의미한다. 제2 옵션은 OVERLAP_MODE 구문 요소를 3-비트 구문 요소로 변경한다. 상기한 중첩 모드는 소프트 타일링 모드에 대응하도록 변경되고(적어도 OVERLAP_MODE = 1 또는 OVERLAP_MODE = 2에 대해, OVERLAP_MODE = 0이 기본적으로 하드 타일 경계이고 어떤 중첩 처리도 없기 때문임), 이하의 부가적인 값 및 해석이 추가된다.
4. OVERLAP_MODE = 3은 중첩 처리 스테이지 중 제1 중첩 처리 스테이지만이 적용되고, 중첩 처리가 하드 타일링 형식으로 수행된다는 것을 의미한다.
5. OVERLAP_MODE = 4는 중첩 처리 스테이지 둘다가 적용되고, 중첩 처리가 하드 타일링 형식으로 수행된다는 것을 의미한다.
3-비트 OVERLAP_MODE 구문 요소를 지원하지 않는 디코더는 이 구문 요소를 사용하여 이미지를 성공적으로 디코딩할 수 없다. 따라서, 새로운 비트를 추가하면 레거시 디코더는 이미지를 디코딩하지 못하게 될 것이다.
역호환 구문. (디코딩으로 인해 상당한 아티팩트가 생기더라도) 레거시 디코더가 새로운 비트스트림을 처리할 수 있게 해주기 위해, 하위-버전 번호(sub-version number) 구문 요소(JPEG XR 규격에서 RESERVED_C라고 표시됨)의 사용이 사용될 수 있다. 예를 들어, 미국 특허 출원 제12/165,474호에 제시된 변경을 포함하는 비트스트림은 1의 하위-버전 값을 가지고 그렇지 않은 경우 하위-버전 값은 0이다. 하위-버전 번호의 두번째 최하위 비트는 하드 또는 소프트 타일링을 신호하는 데 사용될 수 있다. 이 방식에서, 소프트 타일의 사용은 두번째 최하위 비트를 0으로 설정함으로써 신호되고, 하드 타일의 사용은 두번째 최하위 비트를 1로 설정함으로써 신호된다. 하위-버전 값을 무시하는 레거시 디코더는 하드 및 소프트 타일링된 이미지 둘다를 성공적으로 디코딩할 것이지만, 하드 타일 이미지에 대해 상당한 아티팩트가 생길 수 있는데, 그 이유는 소프트 타일 경계 중첩 처리가 기본적으로 사용되기 때문이다. 보다 최신의 디코더라면 하위-버전 번호의 값에 응답하여, 하드 타일링이 사용될 때, 아티팩트 없이 정확하게 이미지를 디코딩할 수 있을 것이다. 하드 타일링 설정은 다음과 같이 코딩될 것이다:
HardTilingTrueFlag = (RESERVED_C >> 1) & 1.
3.4 이전의 중첩 연산자의 개요
디코더에서, 이전의 Overlap4x4 연산자는 1/(s^2)(단, s=0.8272)의 스케일링을 가지도록 설계된다. 환언하면, Overlap4x4 연산자는 DC 값을 대략 1.4614만큼 업스케일링(scale up)한다. (이것은 미국 특허 출원 제12/165,474호에 기술된 Overlap4x4 연산자이다.) 이전의 Overlap4x1 연산자는 DC 값의 1/s의 스케일링을 가지도록 설계된다. 환언하면, Overlap4x1 연산자는 DC 값을 대략 1.2089만큼 업스케일링한다. 이전의 코너 연산자 CornerOverlap2x2는 널(null)이며(어떤 동작도 수행되지 않음), 따라서 대응하는 DC 값은 1.0의 암시적 스케일링을 가진다. 이들 이전의 연산자에 관해 몇가지 관찰이 행해져야 한다. 첫째, 이전의 연산자에서의 스케일링은 통상적으로 역 중첩의 기반이 평탄하도록 보장하고, 덜 상당한 아티팩트에 부가하여, 더 큰 코딩 이득을 제공한다. 둘째, 연산자에 의해 수행되는 실제 스케일링은 정수 구현(integerized implementation)으로 인해 약간 다르다. 셋째, 대응하는 인코더 중첩 연산자는 디코더의 연산자에 대한 역 스케일링을 수행한다. 넷째, 인코더에서의 이러한 다운 스케일링(scaling down)은 무손실 코딩에 대해 어떤 영향을 미친다. 무손실 코딩의 경우, 완벽하게 평탄한 이미지라도 AC 계수를 생성할 필요가 있다(따라서 불가피하게 얼마간의 압축 효율의 손실이 있다). 다섯째, 정수 구현에서 사용되는 반올림은 분석 및 실험 결과의 일부에 작은 영향을 미친다. 상세하게는, ScalingGainMismatch 및DCLeakageRatio 등의 많은 양들이 대략적으로 선형일 뿐이다.
중첩 연산자에 대한 이하의 설명에서, 연산자에 대해 DC 누설 및 DC 이득 부정합이 계산된다. DC 누설을 계산하기 위해 이하에서 사용되는 방법은 행렬 계수에 기초한 이론적 분석과 대략 동일한 결과를 제공하며, 이 방법은 더 간단하고 더 빠르다. 마지막으로, DC 누설 및 DC 이득 부정합의 정도를 설명하기 위해, 모든 픽셀값이 1000000 (10^6)인 입력 블록을 고려함으로써 각각의 중첩 연산자에 대해 DC 스케일링 이득비 및 DC 누설이 도출된다. 이 입력을 값 X1이라고 한다.
전체 분해능에 대한 이전의 Overlap4x4 연산자. 예시적인 이전의 Overlap4x4 연산자의 경우, 입력 X1이 주어진 경우, 출력 픽셀은 값 1461540 또는 1461547을 가진다. 따라서, Overlap4x4 연산자의 ScalingGainRatio는 약 1.461543이다. 출력 값의 차이(즉, |1461540-1461547|=7)는 DC 누설로 인한 것이다. 이전의 Overlap4x4 연산자에 대한 DCLeakageRatio는 7/10^6이다.
8-비트 샘플 이미지의 경우, 최대 범위는 +/-128/(ScalingGainRatio)이다. 따라서, 8-비트 이미지에 대한 4x4 연산자의 최대 DC 누설은 (7/10^6)* 128/ScalingGainRatio = 0.000896/ScalingGainRatio = 0.000614이다. 16-비트 이미지에 대한 최대 DC 누설은 256 * 0.000614 ~ 0.157이다.
전체 분해능에 대한 이전의 Overlap4x1 연산자. 예시적인 이전의 Overlap4x1 연산자의 경우, 입력 X1이 주어진 경우, 출력 픽셀은 값 1206726 또는 1205078을 가진다. Overlap4x1의 ScalingGainRatio은 약 1.2058이다. 역 Overlap4x1 연산자에 대한 입력이 모두 동일한 값인 경우, 한 쌍의 입력값에 대한 이 연산자의 스케일링 스테이지의 행렬 표현은 다음과 같이 표현될 수 있고:
Figure pct00002
여기서 x = 3/32이고 y = 3/16이다. 입력들 중 하나에 대한 스케일링은 1 + xy + x(2 + xy) = 19771/16384 ~ 1.206726이고, 다른 입력에 대한 스케일링은 y + 1 + xy = 617/512 ~ 1.205078이다. DCLeakageRatio는 19771/16384 - 617/512= 27/16384=0.001648이다. 출력 값의 차이(1206726-1205078=1648)는 DC 누설로 인한 것이다. DCLeakageRatio는 (1648/10^6)이다. 이 DC 누설은 작지만 여전히 상당하다. 8-비트 샘플 이미지의 경우, 최대 DC 누설은 127/ScalingGainRatio * (1648/10^6) ~ 0.1788/ScalingGainRatio~0.12247이다. 16-비트 샘플 이미지의 경우, 최대 DC 누설은 +/- 46/ScalingGainRatio~31.35일 수 있다.
전체 분해능에 대한 이전의 CornerOverlap2x2 연산자. 이전의 구현예에서는, 코너에 대한 중첩 연산자가 없다. ScalingGainRatio가 1.0이고, DCLeakageRatio가 0.0이다.
이전의 전체 분해능 연산자에 대한 DC 이득 부정합의 효과. 이전의 구현예에서, 크기의 측면에서, (지각적으로 상당하지 않지만), 주된 문제점은 DC 이득 부정합이며, 최악의 경우의 효과는 이론상 다음과 같이 정량화될 수 있다. 8-비트 샘플 이미지의 경우, 에지에서, 최악의 경우의 ScalingGainMismatch는 (1.4615-1.205) * 128/ScalingGainRatio ~ 22.48일 것이다. 8-비트 샘플 이미지의 경우, 코너에서, 최악의 경우의 ScalingGainMismatch는 약 (1.4615-1.0) * 128/ScalingGainRatio ~ 59/ScalingGainRatio~40.46이다. 16-비트 샘플 이미지의 경우, 에지 및 코너에서, 최악의 경우의 ScalingGainMismatch는 각각 22.4*256 및 40.46*256 = 10,393.6일 것이다. 최악의 경우의 총 차이는 ScalingGainMismatch와 DCLeakage의 합으로서 근사화될 수 있다.
이전의 Overlap2x2 색도 연산자. 예시적인 이전의 Overlap2x2 연산자의 경우, 역 Overlap2x2 연산자에 대한 입력이 모두 동일한 값인 경우, 한 쌍의 입력값에 대한 이 연산자의 스케일링 스테이지의 행렬 표현은 다음과 같이 표현될 수 있고:
Figure pct00003
여기서 x = 1/4이고 y = 1/2이다. 입력들 중 하나에 대한 스케일링은 1 + xy + x(2 + xy) = 53/32=1.656235이고, 다른 입력에 대한 스케일링은 y + 1 + xy = 13/8= 1.625이다. DCLeakageRatio는 53/32 - 13/8= 1/32=0.03125이다.
이전의 Overlap2x1 색도 연산자. 예시적인 이전의 Overlap2x1 연산자의 경우, 역 Overlap2x1 연산자에 대한 입력이 모두 동일한 값인 경우, 한 쌍의 입력값에 대한 이 연산자의 스케일링 스테이지의 행렬 표현은 다음과 같이 표현될 수 있고:
Figure pct00004
여기서 x = 1/8이고 y = 1/4이다. 입력들 중 하나에 대한 스케일링은 1 + xy + x(2 + xy) = 329/256=1.28515625이고, 다른 입력에 대한 스케일링은 y+1+xy = 41/32이다. DCLeakageRatio는 329/256-41/32 = 1/256 = 0.003906이다.
이전의 CornerOverlap1x1 색도 연산자. 이전의 구현예에서는, 코너에 대한 1x1 중첩 연산자가 없다. ScalingGainRatio가 1.0이고, DCLeakageRatio가 0.0이다.
3.5 Overlap4x1 연산자에 대한 해결책
Overlap4x1 연산자에 대한 3가지 해결책이 제시되며, 여기서 3가지 해결책 중 하나는 다수의 변형을 가진다. 이전의 Overlap4x1 연산자를 그의 픽셀에 걸쳐 적용하는 것은 Overlap4x1(a,b,c,d)로 나타내어져 있다.
Overlap4x1 연산자에 대한 해결책 1. 이전의 Overlap4x1 연산자의 DC 이득이 대략 Overlap4x4 연산자의 DC 이득의 제곱근이기 때문에, 제1 해결책은 이전의 Overlap4x1 연산자를 2번 적용하는 것이다. Overlap4x1Solution1(a,b,c,d)는 다음과 같이 지정된다:
1. Overlap4x1(a,b,c,d);
2. Overlap4x1(d,c,b,a).
연산자의 2번의 적용 간의 순서를 반대로 함으로써, 제1 스테이지에 의해 유입되는 DC 누설이 제2 스테이지에 의해 소거된다. 순서를 반복하는 것은 누설의 누적을 유발할 것이다. 안타깝게도, 이 해결책은 여전히 상당한 DC 이득 부정합을 겪는다.
이 Overlap4x1Solution1 연산자가 입력 X1을 받으면, 출력 샘플은 값 1454061, 1453548, 1454852 또는 1454340을 가진다. ScalingGainRatio는 대략 1.4542이다. DCLeakageRatio는 (1454852-1453548)/10^6 = 1304/10^6이다. 8-비트 샘플 이미지의 경우, 8-비트 이미지에 대한 최악의 경우의 ScalingGainMismatch는 (1.4615 - 1.4542)* 128/ScalingGainRatio = 0.9344/ScalingGainRatio~0.64이다. 최악의 경우의 DCLeakage는 127/ScalingGainRatio * 1304/10^6 ~ 0.16561/ScalingGainRatio일 수 있다. 16-비트 샘플 이미지의 경우, 최악의 경우의 ScalingGainMismatch는 0.9344*256/ScalingGainRatio ~ 239.2064/ScalingGainRatio ~ 163이다. 최악의 경우의 DC 누설이 256*0.16561/ScalingGainRatio ~ 42.39/ScalingGainRatio~28.76일 수 있다. 복잡도의 측면에서, 이 해결책은 종래의 Overlap4x1 연산자의 복잡도의 대략 2배이다.
Overlap4x1 연산자에 대한 해결책 2. 해결책 2는 본질적으로 해결책 1과 유사하며, 하나의 연산자를 동일한 샘플에 2번 적용하는 것을 수반한다. 그렇지만, 이 해결책의 경우, 이전의 Overlap4x1 연산자의 스케일링이 부가의 리프팅 단계를 추가함으로써 변경된다. 이전과 같이, Overlap4x1Solution2(a,b,c,d)는 다음과 같이 지정된다:
1. Overlap4x1Altered(a,b,c,d);
2. Overlap4x1Altered(d,c,b,a).
이들 수정은 스케일링 스테이지에서 6개의 추가의 리프팅 단계를 사용하고, 여기서 각각의 리프팅 단계는 한번의 덧셈 및 한번의 시프트를 가진다.
이 해결책 2를 뒷받침하는 생각은 DC 누설 및 DC 스케일링 이득 부정합 둘다가 최소화되도록 x 및 y를 변경하는 것이다. (본 명세서에서 사용되는 바와 같이, "최소화"는 허용가능 동작 레벨로 감소시키는 것을 의미한다.) DC 누설을 최소화시키는 조건은 다음과 같다:
1 + xy + x (2 + xy) = y + 1 + xy.
y에 대해 풀면
Figure pct00005
이 얻어진다. 이 경우에, Overlap4x1Altered 연산자의 한 스테이지의 ScalingGainRatio가 계산될 수 있다:
Figure pct00006
Overlap4x4 연산자의 DC 이득의 제곱근을 k로 표시하기로 하자. 따라서, ScalingGainMismatch를 최소화시키는 x의 값은 다음과 같이 주어진다:
Figure pct00007
또는
Figure pct00008
이 방정식을 사용하여 ScalingGainMismatch를 최소화시키는 x의 값이 구해지면, 이상의 방정식
Figure pct00009
을 사용하여 (DC 누설을 최소화시키는) y의 값이 구해질 수 있다. 이 경우에, Overlap4x4 연산자의 ScalingGainRatio
Figure pct00010
이다. 따라서, k의 값
Figure pct00011
이고, DC 스케일링 이득은 DC 스케일링 이득 부정합을 최소화시키기 위해 이 값에 가까워야 한다. 따라서, x의 값은 0.094589554에 가까워야 하고, y의 값은 이전의 방정식에 따라 선택되어야 한다.
실제로, x는 다이애딕 리프팅(dyadic lifting) 단계를 사용하여 구현될 수 있는 값으로 근사화될 수 있고, y의 값이 선택될 수 있으며, 이어서 y는 다이애딕 리프팅 단계를 사용하여 구현될 수 있는 값에 의해 근사화될 수 있다. 경험적 결과는 DC 누설을 최소화시키는 목적이 DC 스케일링 이득 부정합을 최소화시키는 목적보다 더 중요하다는 것을 보여준다. 따라서, x의 주어진 값에 대한 y의 근사화는 x의 초기 근사화보다 훨씬 더 정확해야만 한다.
Overlap4x1 연산자에 대한 해결책 2a. x = 3/32 및 y=775/4096=3/16+1/512-1/4096를 선택한다. 이 해결책은 최소 DC 누설을 가진다. 이 해결책의 DC 이득은 다음과 같다:
Figure pct00012
따라서, 이 해결책은 여전히 작은 양의 ScalingGainMismatch를 가진다. 이전의 Overlap4x1 연산자와 비교하여 x를 구현하는 부가의 리프팅 단계가 없다. y의 구현은 이전의 Overlap4x1 연산자와 비교하여 2개의 부가의 리프팅 단계를 사용한다.
Overlap4x1 연산자에 대한 해결책 2b. x = 97/1024 = 3/32 +1/1024 및 y = 49/256 = 3/16+1/256을 선택한다. 이 해결책은 최소 DC 누설을 가진다. 이 해결책의 DC 이득은 다음과 같다:
Figure pct00013
따라서, 이 해결책은 여전히 작은 양의 ScalingGainMismatch를 갖지만, Overlap4x1 연산자에 대한 해결책 2a보다는 작다. 주목할 점은, 이전의 Overlap4x1 연산자와 비교하여 x를 구현하는 하나의 부가 리프팅 단계가 있다는 것이다. y의 구현은 이전의 Overlap4x1 연산자와 비교하여 하나의 부가 리프팅 단계를 사용한다. 스케일링 스테이지가 x가 2번 적용되고 y가 1번 적용될 것을 요구하기 때문에, Overlap4x1 연산자에 대한 새로운 해결책 2b에 3개의 추가 리프팅 단계가 있다.
Overlap4x1 연산자에 대한 해결책 2c. x=775/8192, 3/32 + 1/1024 - 1/8192, 및 y = 391/2048= 3/32 + 1/512-1/2048을 선택한다. 이 해결책의 DC 이득은 다음과 같다:
Figure pct00014
따라서, 이 해결책은 최소 양의 ScalingGainMismatch를 가진다. x를 구현하는 데 2개의 추가 리프팅 단계가 있다. y를 구현하는 데 2개의 추가 리프팅 단계가 있다. 스케일링 스테이지가 x가 2번 적용되고 y가 1번 적용될 것을 요구하기 때문에, 새로운 해결책에 6개의 추가 리프팅 단계가 있다.
Overlap4x1에 대한 수정은 DC 이득 부정합 및 DC 누설 둘다를 추가로 감소시키는 이점이 있다. 해결책 1의 본질을 유지함으로써, 그의 모든 이점이 마찬가지로 유지된다. 이 연산자가 입력 X1을 받으면, 출력 픽셀 모두는 값 1461631을 가진다. ScalingGainRatio는 대략 1.4616이다. DCLeakageRatio는 대략 0이다(2-16보다 훨씬 더 작음).
8-비트 샘플 이미지의 경우, 최악의 경우의 ScalingGainMismatch는 (1.461543 - 1.461631)*128/ScalingGainRatio = 0.000088/ScalingGainRatio이다. 최악의 경우의 DCLeakage는 0이다. 16-비트 샘플 이미지의 경우, 최악의 경우의 ScalingGainMismatch는 0.000088 * 256/ScalingGainRatio=0.022528/ScalingGainRatio이다. 최악의 경우의 DCLeakage는 0이다.
Overlap4x1 연산자에 대한 해결책 2c의 복잡도의 측면에서, Overlap4x1Altered에서의 6개의 부가의 리프팅 단계는 그의 복잡도를 Overlap4x1보다 1.5배 더 크게 만든다. 따라서, 전체적인 해결책 Overlap4x1Solution2는 이전의 Overlap4x1 연산자의 복잡도보다 대략 3배의 복잡도를 가진다.
Overlap4x1 연산자에 대한 해결책 3. 이 해결책의 경우, 이전의 Overlap4x1 연산자의 스케일링 스테이지는 이전의 Overlap4x4 연산자의 스케일링 스테이지로 대체되어 새로운 연산자 Overlap4x1Solution3을 형성한다. 이 해결책은 단일-단계 해결책이며, 따라서 어떤 연산자도 반복할 필요가 없다. 이들 수정은 Overlap4x1Solution3의 DC 이득 및 DC 누설이 Overlap4x4 연산자의 DC 이득 및 DC 누설과 대략 동일하도록 보장한다. 그렇지만, 스케일링 스테이지 외부에서의 연산의 반올림 효과로 인해 여전히 어떤 작은 차이가 있다.
이 Overlap4x1Solution3 연산자가 입력 X1을 받으면, 출력 픽셀은 값 1461552, 1461547, 1461540 및 1461535를 가진다. ScalingGainRatio는 대략 1.45615435이다. DCLeakageRatio는 (1461552 - 1461535)/10^6이다.
8-비트 샘플 이미지의 경우, 최악의 경우의 ScalingGainMismatch는 (1.461543 - 1.45615435)* 128/ScalingGainRatio ~0.000064/ScalingGainRatio이다. 최악의 경우의 DCLeakage는 (1461552 - 1461535)/10^6 * 128 = 0.002176/ScalingGainRatio이다.
16-비트 샘플 이미지의 경우, 최악의 경우의 ScalingGainMismatch는 0.000064*256=0.016384/ScalingGainRatio이다. 최악의 경우의 DCLeakage는 0.002176*256=0.557056/ScalingGainRatio < 1/2이다.
예를 들어, 하나의 이전 구현예에서, 에지 4x1 샘플 블록에 대한 중첩 후필터링(overlap post filtering)은 이하의 표에 나타낸 연산을 사용하였다.
Figure pct00015
중첩 4x1 에지 연산자에 대한 해결책 3에 따라, 이하의 표에 나타낸 바와 같이 스케일링에 대한 변경이 행해진다.
Figure pct00016
여기서 InvScale() 및 InvRotate()는 다음과 같이 정의된다.
Figure pct00017
Overlap4x1 연산자의 이전의 스케일링 스테이지를 새로운 스케일링 스테이지로 대체하면 2개의 추가 스케일링 스테이지에 의해 복잡도가 증가한다. 이것은 대략 복잡도를 에지에 대한 이전의 Overlap4x1 연산자의 복잡도의 1.2배로 증가시킨다.
3.6 CornerOverlap2x2 연산자에 대한 해결책
CornerOverlap2x2 연산자에 대해 2가지 가능한 해결책이 제시된다.
CornerOverlap2x2 연산자에 대한 해결책 1. 해결책 1은 코너 픽셀을 인접 에지 픽셀과 병합하는, 코너에 대한 새로운 Overlap6x1 연산자를 개발하는 것이다. 이 해결책이 바람직하지 않은 한가지 이유는 DC 이득 부정합 및 DC 누설을 제거하기 위해 복잡한 설계를 필요로 하기 때문이다. 그에 부가하여, 이들 연산자의 배향이 수평인 경우, 이미지 폭은 3개 미만의 매크로블록이고, 이 해결책은 실패한다. 이와 유사하게, 이들 연산자의 배향이 수직인 경우, 높이가 3개 미만의 매크로블록인 4:2:0 이미지 및 높이가 2개 미만의 매크로블록인 4:2:2 이미지가 이 해결책에서는 동작하지 않는다.
CornerOverlap2x2 연산자에 대한 해결책 2. 해결책 2는 에지에 적용되는 동일한 Overlap4x1 연산자를 코너 픽셀에 라스터 스캔 순서로 적용하는 것이다. 양 연산자가 4개의 픽셀에 작용하기 때문에, 이 해결책은 코너 연산자가 에지 연산자와 정확히 동일한 DC 이득 부정합 및 DC 누설 속성을 가지는 이점이 있다.
이 해결책은 다음과 같이 나타내어진다: CornerOverlap2x2(a,b,c,d) = Overlap4x1 AppliedSolution(Top Left, Top Right, Bottom Left, Bottom Right)
특정의 구현예에서, 모든 코너에 대해 동일한 픽셀 순서로 CornerOverlap2x2 연산자가 적용된다. 이것은 모든 코너에 걸쳐 균일한 구현을 가능하게 해주는 이점이 있다. 이 구현의 단점은 회전(rotation)이 어떤 작은 오차를 유입시킬 수 있다는 것이다. Overlap4x1Solution3에서, 오차는 반올림에서만 있을 것이다. 다른 대안으로서, 회전된 순서는 각각의 코너에서 사용될 수 있다.
3.7 색도의 Overlap2x2 연산자에 대한 해결책
이전의 구현예에서의 Overlap2x2 연산자에서의 주된 문제점은 DC 누설이다. 이 섹션에서, DC 누설이 감소되도록 이 연산자의 스케일링 스테이지의 재설계가 제시된다. 이하의 섹션에서, Overlap2x1 및 CornerOverlap2x1 연산자는 이 새로운 Overlap2x2 연산자와 이득-정합하도록 재설계된다.
디코더에서의 이 새로운 Overlap2x2 연산자의 DCLeakage는 이 연산자에 대한 모든 입력을 동일한 값으로 설정함으로써 추정될 수 있다. 역 Overlap2x2 연산자에 대한 입력이 모두 동일한 값인 경우, 한 쌍의 입력값에 대한 이 연산자의 효과는 다음과 같이 표현될 수 있다:
Figure pct00018
DC 누설이 없기 위한, 조건은 다음과 같고:
1 + xy + y = x(2 + xy) + 1 + xy, 여기서 y에 대해 풀면:
y = x(2 + xy)이고, 그러면 y = 2 * x/(1 - x2)이다.
DC 누설의 양은 다음과 같이 정량화될 수 있다:
y - x(2 + xy).
이전의 Overlap2x2 연산자는 x = 1/4 및 y = 1/2의 값을 설정하고, 따라서 출력은 (1+xy +y) =13/8 및 (x(2 + xy) + 1 + xy) = 53/32이며, 이 차이는 1/32인 DC 누설에 대한 이유이다. 색도에 대한 이전의 Overlap2x2 연산자의 복잡도가 작은데, 그 이유는 x 및 y의 값이 아주 간단한 다이애딕 리프팅 단계를 사용하는 구현예를 따르기 때문이다.
일반적인 해결책이 DC 누설을 완화시키기 위해 x 및 y 둘다를 변화시킬 수 있는 반면, 이들 해결책은 통상적으로 색도에 대한 이전의 Overlap2x2 연산자보다 더 큰 복잡도를 가진다. 따라서, 복잡도의 증가를 제한하면서 DC 누설을 감소시키는 해결책이 개발되었다.
한가지 가능한 해결책에서, x=1/4의 값이 유지되고, DC 누설이 감소되도록 y의 값이 조정된다. 주목할 점은, y를 사용하는 리프팅이 일어나고, 따라서 이 해결책이 기존의 y 값을 유지하면서 x를 변화시킨 해결책과 비교하여 더 작은 복잡도를 가진다는 것이다.
색도에 대한 해결책 1 Overlap2x2 연산자. DC 누설을 제거하는 y의 값은 y = 2 * (1/4)/(1 - 1/16) = 8/15이다. 이 해결책에서의 DC 누설은 0이다. 그렇지만, y=8/15가 다이애딕 리프팅 단계를 사용하여 구현될 수 없다. 따라서, 이 해결책은 나눗셈 연산을 필요로 하기 때문에 더 높은 복잡도를 갖는다.
색도에 대한 해결책 2a Overlap2x2 연산자. 값을 y= 17/32로 설정하고, 이 해결책은 (곱셈기 없이) 다이애딕 리프팅 단계를 사용하여 1/2 + 1/32로서 구현될 수 있다. 이 값은 1/512의 DC 누설을 가진다.
색도에 대한 해결책 2b Overlap2x2 연산자. y의 값을 273/512로 설정한다. 이 해결책은 (곱셈기 없이) 다이애딕 리프팅 단계를 사용하여 1/2 + 1/32 + 1/512로서 구현될 수 있다. DC 누설의 값은 1/8192이다.
색도에 대한 해결책 2c Overlap2x2 연산자. y의 값을 4369/8192로 설정한다. 이 해결책은 (곱셈기 없이) 다이애딕 리프팅 단계를 사용하여 1/2 + 1/32 + 1/512 + 1/8192로서 구현될 수 있다. DC 누설의 값은 1/131072, 즉, 1/(2^17)이다.
주목할 점은,
따라서, DC 누설은 1/32(0.03125)로부터 1/(2^17)로 감소되었다. 따라서, DC 누설은 16-비트 정밀도 미만으로 감소되었다. 이 경우에, DC 스케일링 이득비는 1 + xy + y =54613/32768 ~ 1.666656494이다.
예를 들어, 하나의 이전 구현예에서, 내부 2x2 색도 샘플 블록에 대한 중첩 후필터링은 이하의 표에 나타낸 연산을 사용하였다.
Figure pct00019
색도에 대한 중첩 2x2 연산자에 대한 해결책 2c에 따라, 이하의 표에 나타낸 바와 같이, 1/32, 1/512 및 1/8192의 인자를 갖는 다이애딕 리프팅 연산이 추가된다. 5, 9 및 13 비트만큼 좌측 시프트(>>)는 각각 32, 512 및 8192로 나누는 것에 대응한다.
Figure pct00020
3.8 Overlap2x1 연산자에 대한 해결책
Overlap4x1 연산자에 대한 해결책과 유사하게, Overlap2x1 연산자에 대한 3개의 해결책이 제시되며, 여기서 이들 해결책 중 하나는 다수의 변형을 가진다.
Overlap2x1 연산자에 대한 해결책 1. 이전의 Overlap2x1 연산자의 DC 이득이 대략 Overlap2x2 연산자의 DC 이득의 제곱근이기 때문에, 제1 해결책은 이전의 Overlap2x1 연산자를 2번 적용하는 것이다. Overlap2x1Solution1(a,b)는 다음과 같이 지정된다:
3. Overlap2x1(a,b)
4. Overlap2x1(b,a).
연산자의 2번의 적용 간의 순서를 반대로 함으로써, 제1 스테이지에 의해 유입되는 DC 누설이 제2 스테이지에 의해 소거된다. 순서를 반복하는 것은 누설의 누적을 유발할 것이다. 안타깝게도, 이 해결책은 여전히 상당한 DC 이득 부정합을 겪는다. 복잡도의 측면에서, 이 해결책은 종래의 Overlap2x1 연산자의 복잡도의 대략 2배이다.
Overlap2x1 연산자에 대한 해결책 2. 해결책 2는 본질적으로 Overlap2x1 연산자 해결책 1과 유사하며, 하나의 연산자를 동일한 샘플에 2번 적용하는 것을 수반한다. 그렇지만, 이 해결책의 경우, 이전의 Overlap2x1 연산자의 스케일링이 부가의 리프팅 단계를 추가함으로써 변경된다. 이전과 같이, Overlap2x1Solution2(a,b)는 다음과 같이 지정된다:
3. Overlap2x1Altered(a,b)
4. Overlap2x1Altered(b,a).
Overlap2x1 연산자에 대한 이 해결책 2를 뒷받침하는 생각은 DC 누설 및 DC 스케일링 이득 부정합 둘다가 최소화되도록 x 및 y를 변경하는 것이다. DC 누설을 최소화시키는 조건은 다음과 같다:
1 + xy + x (2 + xy) = y + 1 + xy.
y에 대해 풀면
Figure pct00021
이 얻어진다. 이 경우에, Overlap2x1Altered 연산자의 한 스테이지의 ScalingGainRatio가 계산될 수 있다:
Figure pct00022
Overlap2x2 연산자의 이득의 제곱근을 k로 표시하기로 하자. 따라서, DC 스케일링 이득 부정합을 최소화시키는 x의 값은 다음과 같이 주어진다:
Figure pct00023
또는
Figure pct00024
이 방정식을 사용하여 ScalingGainMismatch를 최소화시키는 x의 값이 구해지면, 이상의 방정식
Figure pct00025
을 사용하여 (DC 누설을 최소화시키는) y의 값이 구해질 수 있다. 이 경우에, Overlap4x4 연산자의 ScalingGainRatio
Figure pct00026
이다. 따라서, k의 값
Figure pct00027
이고, DC 스케일링 이득은 DC ScalingGainMismatch을 최소화시키기 위해 이 값에 가까워야 한다. 따라서, x의 값은 0.127015153에 가까워야 하고, y의 값은 이전의 방정식에 따라 선택되어야 한다.
실제로, x는 다이애딕 리프팅 단계를 사용하여 구현될 수 있는 값으로 근사화될 수 있고, y의 값이 선택될 수 있으며, 이어서 y는 다이애딕 리프팅 단계를 사용하여 구현될 수 있는 값에 의해 근사화될 수 있다. 이 연산자의 경우, 경험적 결과는 DC 누설을 최소화시키는 목적이 DC ScalingGainMismatch를 최소화시키는 목적보다 더 중요하다는 것을 보여준다. 따라서, x의 주어진 값에 대한 y의 근사화는 x의 초기 근사화보다 훨씬 더 정확해야만 한다.
Overlap2x1 연산자에 대한 해결책 2a. x = 1/8 및 y= 65/256=1/4+1/256을 선택한다. 이 해결책은 최소 DC 누설을 가진다. 이 해결책의 DC 스케일링 이득은 다음과 같다:
Figure pct00028
따라서, 이 해결책은 여전히 작은 양의 DC ScalingGainMismatch를 가진다. 이전의 Overlap2x1 연산자와 비교하여 x를 구현하는 부가의 리프팅 단계가 없다. y의 구현은 이전의 Overlap2x1 연산자와 비교하여 하나의 부가 리프팅 단계를 사용한다.
Overlap2x1 연산자에 대한 해결책 2b. x = 65/512=1/8+1/512 및 y = 33/128=1/4+1/128을 선택한다. 이 해결책은 최소 DC 누설을 가진다. 이 해결책의 DC 스케일링 이득은 다음과 같다:
Figure pct00029
따라서, 이 해결책은 여전히 작은 양의 ScalingGainMismatch를 갖지만, Overlap2x1 연산자에 대한 해결책 2a보다는 작다. 이전의 Overlap2x1 연산자와 비교하여 x를 구현하는 하나의 부가 리프팅 단계가 있다. y의 구현은 이전의 Overlap2x1 연산자와 비교하여 하나의 부가 리프팅 단계를 요구한다. 스케일링 스테이지가 x가 2번 적용되고 y가 1번 적용될 것을 요구하기 때문에, Overlap2x1 연산자에 대한 새로운 해결책 2b에 3개의 추가 리프팅 단계가 있다.
Overlap2x1 연산자에 대한 해결책 2c. x=2081/16384 및 y=33/128을 선택한다. 이 해결책의 DC 스케일링 이득은
Figure pct00030
이다. 따라서, 이 해결책은 최소 양의 DC ScalingGainMismatch를 가진다. x를 구현하는 데 2개의 추가 리프팅 단계가 있다. y를 구현하는 데 하나의 추가 리프팅 단계가 있다. 스케일링 스테이지가 x가 2번 적용되고 y가 1번 적용될 것을 요구하기 때문에, Overlap2x1 연산자에 대한 새로운 해결책 2b에 5개의 추가 리프팅 단계가 있다. 복잡도의 측면에서, Overlap2x1Altered에서의 5개의 부가 리프팅 단계는 그의 복잡도를 이전의 Overlap2x1 연산자보다 1.5배 더 크게 만든다. 따라서, 전체적인 해결책 Overlap2x1Solution2는 이전의 Overlap2x1 연산자의 복잡도보다 대략 3배의 복잡도를 가진다.
Overlap2x1 연산자에 대한 해결책 3. 이 해결책의 경우, 이전의 Overlap2x1 연산자의 스케일링 스테이지는 이전의 Overlap2x2 연산자의 스케일링 스테이지로 대체되어 새로운 연산자 Overlap2x1Solution3을 형성한다. 이 해결책은 단일-단계 해결책이며, 따라서 어떤 연산자도 반복할 필요가 없다. 이들 수정은 Overlap2x1Solution3의 DC 이득 및 DC 누설이 Overlap2x2 연산자의 DC 이득 및 DC 누설과 대략 동일하도록 보장한다. 그렇지만, 스케일링 스테이지 외부에서의 연산의 반올림 효과로 인해 여전히 어떤 작은 차이가 있다.
예를 들어, 하나의 이전 구현예에서, 에지 2x1 색도 샘플 블록에 대한 중첩 후필터링은 이하의 표에 나타낸 연산을 사용하였다.
Figure pct00031
색도에 대한 중첩 2x1 연산자에 대한 해결책 3에 따라, 이하의 표에 나타낸 바와 같이, 1/32, 1/512 및 1/8192의 인자를 갖는 다이애딕 리프팅 연산이 추가된다. 5, 9 및 13 비트만큼 좌측 시프트(>>)는 각각 32, 512 및 8192로 나누는 것에 대응한다.
Figure pct00032
Overlap2x1 연산자의 이전의 스케일링 스테이지를 새로운 스케일링 스테이지로 대체하면 3개의 추가 스케일링 스테이지에 의해 복잡도가 증가한다. 이것은 대략 복잡도를 에지에 대한 이전의 Overlap2x1 연산자의 복잡도의 1.2배로 증가시킨다.
3.9 CornerOverlap1x1 연산자에 대한 해결책
CornerOverlap1x1 연산자는, 하나의 샘플에 대해서만 동작하기 때문에, 특정의 설계 과제를 제시한다. 따라서, DC 누설은 문제가 되지 않는 반면, DC 이득 부정합은 중요한 문제이다. 몇가지 가능한 해결책이 이하에 기술되어 있다.
엄격히 말하면, CornerOverlap1x1 연산자는 다른 중첩 연산자와 동일한 의미에서 연산자가 아니다. "1x1" 연산자는 단일 샘플 외에 어떤 지원 영역도 갖지 않을 것이다. 한편, 이하의 예시적인 1x1 연산자 해결책 중 다수는 단일 샘플과 1x1 영역 외부의 적어도 하나의 샘플로부터 구해지는 예측자 간의 예측을 필요로 한다. 간단함을 위해, 이들 코너 연산자를 코너 중첩 1x1 연산자라고 한다.
DC 스케일링은 이하에 제시되는 예시적인 1x1 연산자 해결책 중 다수가 다른 중첩 연산자와 다른 또 하나의 방식이다. 전술한 4x4, 4x1, 2x2 및 2x1 연산자의 경우, 스케일링은 중첩 연산으로부터 직접 얻어진다. 어떤 예시적인 CornerOverlap1x1 연산자에 대해 이하에 기술되는 샘플 예측 동작은 동일한 방식으로 스케일링을 야기하지 않는다. 이것이 어쩌면 집합 내의 모든 연산자에 대해 동일한 DC 이득을 갖는 목표로부터 벗어나게 할 수 있지만, 실제로 이러한 1x1 코너 연산자에 대해 대부분 유사한 스케일링이 얻어지며, 이에 대해서는 이하에서 설명한다.
CornerOverlap1x1 연산자에 대한 해결책 1. CornerOverlap2x2 연산자에 대한 해결책 1과 유사하게, 하나의 해결책은 새로운 Overlap3x1 연산자를 설계하는 것이다. 이 해결책은 유사한 단점을 가진다. 이 해결책에서는, 부가의 DC 이득 부정합 및 DC 누설 문제의 가능성에 부가하여, 최소 이미지 크기 요구사항(연산자의 방향을 따라 3개의 매크로블록)도 겪게 된다.
CornerOverlap1x1 연산자에 대한 해결책 2. 이 해결책에서는, 코너 샘플이 그의 인접 샘플과 높게 상관될 가능성이 있다는 사실이 이용된다. 중요한 점은 이 연산자가, DC 계수의 중첩 처리에서 사용되는 것을 고려할 때, 원래의 이미지 블록 각각의 평균에 대해 동작한다는 것이다. 따라서, 1x1 코너 중첩 연산자보다 앞서, 코너 샘플 및 그의 인접 샘플의 값이 비슷할 가능성이 높다. DC 이득 부정합이 제거되면, 코너 샘플 값은 중첩 변환 이후에도 그의 인접 샘플과 아주 비슷하게 될 것이다.
따라서, 이 해결책은 코너 샘플의 예측에 기초한 방식을 사용한다. 좌측 상단 코너를 일례로서 생각하고 샘플을 다음과 같이 표시한다:
Figure pct00033
좌측 상단 샘플은 A로 표시되어 있고, A의 우측에 있는 샘플은 B로 표시되어 있으며, A의 아래에 있는 샘플은 C로 표시되어 있다. 예측 방식은 다음과 같이 구현되며, 즉석 계산(in-place calculation)이 사용되는 것으로 가정한다.
1. 제2 스테이지 중첩 연산자가 적용되기 전:
a. value(A) = value(A) - (value(B) + value(C) + 1) >> 1.
2. 제2 스테이지 중첩 연산자가 적용된 후:
a. value(A) = value(A) + (value(B) + value(C) + 1) >> 1.
단계 1 이후의 A의 잔차 값(residual value)이 작을 가능성이 있기 때문에, 이 연산은 동일한 이득을 코너 샘플에 적용하는 것과 대략 동등하다. (B와 C가 상당한 값을 가질 수 있는 반면, 차이 값 A는 통상적으로 0이거나 0에 가깝다. 단계 1 이후에, (예를 들어, 에지 중첩 연산자의 적용을 통해) 인접한 B 및 C 샘플에 스케일링이 적용된다. 스케일링된 B 및 C 값이 다시 단계 2에서 차이 값 A에 가산될 때, 얻어지는 값 A는, 대부분의 경우에, B 및 C 값과 동일한 범위로 효과적으로 스케일링되었다.) 이 해결책을 나머지 3개의 코너에 적용하는 것은 간단하다.
CornerOverlap1x1 연산자에 대한 해결책 2는 회전에 대해 대칭이라는 이점이 있다. 한가지 단점은 이 해결책에서는 이미지가 적어도 폭이 2 매크로블록이고 높이가 2 매크로블록(4:2:2가 아니라 4:2:0에 대해서만)이어야 하고 그렇지 않은 경우 예측 방식이 실시가능하지 않게 된다는 것이다.
CornerOverlap1x1 연산자에 대한 해결책 3. CornerOverlap1x1 연산자에 대해 해결책 2와 유사한 또 하나의 방식이 제시된다. 일부 구현예는 중첩 변환의 각각의 스테이지를 한번에 수행할 수 없으며, 그 대신에 스테이지들을 엇갈리게 할 수 있다. 이것은, 중첩 변환 이전 또는 이후에, B 및 C 둘다에 동시에 액세스하는 것을 어렵게 만들 수 있다. 이 해결책에 대해 이하의 방식이 제시된다:
1. 제2 스테이지 중첩 연산자가 B에 적용되기 전:
a. value(A) = value(A) - value(B) >> 1.
2. 제2 스테이지 중첩 연산자가 C에 적용되기 전:
a. value(A) = value(A) - value(C) >> 1.
3. 제2 스테이지 중첩 연산자가 B에 적용된 후:
a. value(A) = value(A) + value(B) >> 1.
4. 제2 스테이지 중첩 연산자가 C에 적용된 후:
a. value(A) = value(A) + value(C) >> 1.
단계들의 순서는 1이 3보다 먼저 일어나고 2가 4보다 먼저 일어나기만 하면 된다. 이들 2가지 조건이 만족되는 한, 어떤 재정렬도 허용가능하다. CornerOverlap1x1 연산자에 대한 해결책 3은 다양한 구현예에서의 타이밍 문제로부터 벗어나는 것을 가능하게 해준다. 안타깝게도, 이 해결책은 해결책 2에서는 존재하지 않는 반올림에서의 몇몇 문제점을 가질 수 있다. 그렇지 않은 경우, 이 해결책은 CornerOverlap1x1 연산자에 대한 해결책 2와 동일한 속성을 공유한다.
CornerOverlap1x1 연산자에 대한 해결책 4. 이 해결책에서, 해결책 3은 다음과 같이 수평 방향에 대해서만 동작하도록 수정된다.
1. 제2 스테이지 중첩 연산자가 B에 적용되기 전:
a. value(A) = value(A) - value(B).
2. 제2 스테이지 중첩 연산자가 B에 적용된 후:
a. value(A) = value(A) + value(B).
이 해결책의 장점은 더 적은 횟수의 메모리 액세스를 필요로 한다는 것이다. 이는 CornerOverlap1x1 연산자에 대한 해결책 2 및 3의 절반의 샘플과 상호작용하기 때문에, 복잡도가 더 낮다. 이 해결책의 단점은 대칭성이 없고 따라서 회전에서의 문제점을 가진다는 것이다. 이 문제는 다운샘플링이 대칭성보다 더 큰 손실을 유입시킨다는 것을 고려할 때 완화된다. CornerOverlap1x1 연산자에 대한 나머지 해결책에서와 같이, 해결책 4에서, 이미지(또는 하드 타일)는 적어도 2 매크로블록의 폭을 가진다. 그렇지만, 한가지 장점은 모든 다운샘플링된 색도 연산이 유사하다는 것이다. 해결책 2(그리고 해결책 3, 5, 6 및 7)와 유사하게, A에 대한 차이를 계산하는 데 사용되는 인접 샘플이 A와 아주 유사한 값을 가질 것으로 예상된다. 단계 1 이후에, 인접 샘플이 에지 중첩 처리의 일부로서 스케일링되고, 이어서 단계 2에서 코너에 대한 차이 A에 다시 가산된다. 차이 A가 0이거나 0에 가까울 것으로 예상되기 때문에, 코너 값이 인접 샘플과 대략 동일한 범위로 스케일링된다.
CornerOverlap1x1 연산자에 대한 해결책 5. 이 해결책에서, 해결책 3은 다음과 같이 수직 방향에 대해서만 동작하도록 수정된다.
1. 제2 스테이지 중첩 연산자가 C에 적용되기 전:
a. value(A) = value(A) - value(C).
2. 제2 스테이지 중첩 연산자가 C에 적용된 후:
a. value(A) = value(A) + value(C).
이 해결책의 장점은 더 적은 횟수의 메모리 액세스를 필요로 한다는 것이다. 이는 CornerOverlap1x1 연산자에 대한 해결책 2 및 3의 절반의 샘플과 상호작용하기 때문에, 복잡도가 더 낮다. 해결책 4와 같이, 이 해결책의 단점은 대칭성이 없고 따라서 회전에서의 문제점을 가진다는 것이다. 이 문제는 다운샘플링이 대칭성보다 더 큰 손실을 유입시킨다는 것을 고려할 때 완화된다. CornerOverlap1x1 연산자에 대한 나머지 해결책에서와 같이, 해결책 5에서, 4:2:0 이미지는 적어도 2 매크로블록의 폭을 가진다. 이 해결책으로부터는 어떤 다른 크기 요구사항도 생기지 않는다. 따라서, 4:2:0 및 4:2:2 연산이 병렬이 아니며, 이는 이 해결책의 또 하나의 단점이다.
CornerOverlap1x1 연산자에 대한 해결책 6. CornerOverlap1x1 연산자에 대한 이 해결책은 해결책 4와 5의 결합이다. 구체적으로는, CornerOverlap1x1 연산자에 대해 예측이 수평인지 수직인지를 지정하기 위해 구문 요소가 비트스트림에 추가된다. 이 해결책은 회전이 간단히 지원된다는 장점이 있다. 구문 요소의 추가는 이 해결책의 단점이다.
CornerOverlap1x1 연산자에 대한 해결책 7. 이 마지막 해결책은, B의 값이 A에 대한 예측자로서 사용되는 대신에, D의 값이 예측자로서 사용되는 것을 제외하고는, 해결책 4와 유사하다. D를 예측자로서 사용하는 것의 이점은 회전 대칭이다. 그렇지만, D를 사용하는 것의 단점은 D가 B 또는 C보다 좋지 않은 매치일 수 있다는 것이다.
4. 컴퓨팅 환경
전술한 중첩 처리 기술은, 다른 일레들 중에서도 특히, 컴퓨터, 이미지 및 비디오 녹화, 전송 및 수신 장비, 휴대용 비디오 플레이어, 디지털 미디어 플레이어, 화상 회의 등을 비롯한 디지털 미디어 신호 처리가 수행되는 각종의 장치(예를 들어, 디지털 미디어 인코딩 및/또는 디코딩 장치) 중 임의의 장치에서 구현될 수 있다. 중첩 처리 기술은 하드웨어 회로로는 물론, 도 8에 도시된 것과 같은 컴퓨터 또는 기타 컴퓨팅 환경 내에서 실행되는 디지털 미디어 처리 소프트웨어로 구현될 수 있다.
도 8은 기술된 실시예가 구현될 수 있는 적당한 컴퓨팅 환경(800)의 일반화된 일례를 나타낸 것이다. 본 발명이 다양한 범용 또는 전용 컴퓨팅 환경에 구현될 수 있기 때문에, 컴퓨팅 환경(800)은 본 발명의 사용 또는 기능의 범위에 관한 어떤 제한을 암시하기 위한 것이 아니다.
도 8을 참조하면, 컴퓨팅 환경(800)은 적어도 하나의 처리 장치(810) 및 메모리 장치(820)를 포함한다. 도 8에서, 이 가장 기본적인 구성(830)은 파선 내에 포함되어 있다. 처리 장치(810)는 컴퓨터-실행가능 명령어를 실행하고, 실제 또는 가상 프로세서일 수 있다. 다중-처리 시스템에서는, 처리 능력을 향상시키기 위해 다수의 처리 장치가 컴퓨터-실행가능 명령어를 실행한다. 메모리(820)는 휘발성 메모리(예를 들어, 레지스터, 캐시, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래시 메모리 등), 또는 이 둘의 어떤 조합일 수 있다. 메모리(820)는 감소된 DC 이득 부정합을 가지는 중첩 연산자 및/또는 중첩 처리에 대한 다수의 타일 경계 옵션을 갖는 기술된 인코더/디코더를 구현하는 소프트웨어(880)를 저장한다.
컴퓨팅 환경은 부가의 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환경(800)은 저장 장치(840), 하나 이상의 입력 장치(850), 하나 이상의 출력 장치(860), 및 하나 이상의 통신 연결(870)을 포함한다. 버스, 제어기 또는 네트워크 등의 상호연결 메커니즘(도시 생략)은 컴퓨팅 환경(800)의 구성요소를 상호연결시킨다. 통상적으로, 운영 체제 소프트웨어(도시 생략)는 컴퓨팅 환경(800)에서 실행되는 다른 소프트웨어에 대한 운영 환경을 제공하고, 컴퓨팅 환경(800)의 구성요소의 활동을 조정한다.
저장 장치(840)는 이동식 또는 비이동식일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 환경(800) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(840)는 감소된 DC 이득 부정합을 가지는 중첩 연산자 및/또는 중첩 처리에 대한 다수의 타일 경계 옵션을 갖는 기술된 인코딩/디코딩을 구현하는 소프트웨어(880)에 대한 명령어를 저장한다.
입력 장치(들)(850)는 컴퓨팅 환경(800)에 입력을 제공하는, 키보드, 마우스, 펜, 또는 트랙볼 등의 터치 입력 장치, 음성 입력 장치, 스캐닝 장치 또는 기타 장치일 수 있다. 오디오의 경우, 입력 장치(들)(850)는 아날로그 또는 디지털 형태로 오디오 입력을 받아들이는 사운드 카드 또는 유사한 장치, 또는 오디오 샘플을 컴퓨팅 환경에 제공하는 CD-ROM 판독기일 수 있다. 이미지 또는 비디오의 경우, 입력 장치(들)(850)는 아날로그 또는 디지털 형태로 입력 비디오를 제공하는 카메라, TV 튜너, 또는 기타 장치일 수 있다. 출력 장치(들)(860)는 컴퓨팅 환경(800)으로부터의 출력을 제공하는, 디스플레이, 프린터, 스피커, CD-작성기(CD-writer), 또는 다른 장치일 수 있다.
통신 연결(들)(870)은 통신 매체를 통해 다른 컴퓨팅 엔터티로의 통신을 가능하게 해준다. 통신 매체는 압축된 오디오 또는 비디오 정보 등의 정보, 또는 기타 데이터를 피변조 데이터 신호로 전달한다. "피변조 데이터 신호"는 신호의 특성들 중 하나 이상이 정보를 그 신호에 인코딩하는 방식으로 설정 또는 변경된 신호이다. 제한이 아닌 일례로서, 통신 매체는 전기, 광, RF, 적외선, 음향 또는 기타 반송파로 구현되는 유선 또는 무선 기술을 포함한다.
디지털 미디어 처리 기술이 본 명세서에서 일반적으로 컴퓨터-판독가능 매체와 관련하여 기술되어 있을 수 있다. 컴퓨터-판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 이용가능한 유형의 매체(tangible media)라면 어느 것이라도 된다. 제한이 아닌 일례로서, 컴퓨팅 환경(800)에서, 컴퓨터-판독가능 매체는 메모리(820) 및 저장 장치(840), 그리고 이 둘의 조합을 포함한다. 컴퓨터-판독가능 매체는 유형의 매체이다. 컴퓨터-판독가능 매체는 피변조 데이터 신호를 포함하지 않는다.
디지털 미디어 처리 기술은 본 명세서에서 일반적으로 컴퓨팅 환경에서 실제 또는 가상의 대상 프로세서 상에서 실행되는 프로그램 모듈에 포함된 명령어 등의 컴퓨터-실행가능 명령어와 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 작업을 수행하거나 특정의 추상 데이터 형식을 구현하는 루틴, 프로그램, 라이브러리, 개체, 클래스, 구성요소, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능이 다양한 실시예에서 원하는 바에 따라 프로그램 모듈 간에 결합되거나 분할되어 있을 수 있다. 프로그램 모듈에 대한 컴퓨터-실행가능 명령어는 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
제시를 위해, 상세한 설명은 컴퓨팅 환경에서의 컴퓨터 동작을 기술하기 위해 "결정한다", "발생한다", "조정한다", 및 "적용한다"와 같은 용어를 사용한다. 이들 용어는 컴퓨터에 의해 수행되는 동작에 대한 상위-레벨 추상화이며, 사람에 의해 수행되는 동작과 혼동되어서는 안된다. 이들 용어에 대응하는 실제 컴퓨터 동작은 구현에 따라 다르다.
상세한 설명 및 첨부 도면에서 본 발명의 원리에 대해 기술하고 예시하였지만, 다양한 실시예가 이러한 원리를 벗어나지 않고 구성 및 상세에 있어서 수정될 수 있다는 것을 잘 알 것이다. 본 명세서에 기술된 프로그램, 프로세스 또는 방법이, 달리 언급하지 않는 한, 임의의 특정 유형의 컴퓨팅 환경에 관계되거나 그것으로 제한되지 않는다는 것을 잘 알 것이다. 다양한 유형의 범용 또는 전용 컴퓨팅 환경이 본 명세서에 기술된 개시 내용에 따른 동작에서 사용되거나 이를 수행할 수 있다. 소프트웨어로 나타내어진 실시예의 구성요소가 하드웨어로 구현될 수 있고, 그 반대도 마찬가지이다.
본 발명의 원리가 적용될 수 있는 많은 가능한 실시예를 고려하여, 이하의 청구항 및 그 등가물의 범위 및 사상 내에 속할 수 있는 모든 이러한 실시예를 우리의 발명으로 청구한다.

Claims (15)

  1. 디지털 미디어 디코딩 장치(800)를 사용하여 디지털 미디어를 디코딩하는 데 사용되는 역 중첩 변환(inverse overlap transform)(260)을 수행하는 방법으로서,
    상기 디지털 미디어 디코딩 장치에서, 디지털 미디어에 대해 역 주파수 변환(inverse frequency transform)(250)을 수행하는 단계; 및
    상기 디지털 미디어 디코딩 장치에서, 상기 역 주파수 변환의 결과에 복수의 중첩 연산자(overlap operators)를 적용하는 단계 - 상기 복수의 중첩 연산자는 적어도 제1 중첩 연산자 및 제2 중첩 연산자를 포함하고, 상기 제1 중첩 연산자는 내부 중첩 연산자이며, 상기 제2 중첩 연산자는 에지 또는 코너 중첩 연산자이고, 상기 복수의 중첩 연산자 각각은 실질적으로 동등한 DC 이득을 특징으로 함 -(750)를 포함하는 방법.
  2. 제1항에 있어서, 상기 적용하는 단계의 일부로서,
    상기 제1 중첩 연산자는 이미지 및/또는 타일의 내부 4x4 샘플 영역(310)에 적용되고,
    상기 제2 중첩 연산자는 상기 이미지 및/또는 타일의 에지 4x1 샘플 영역(330)에 적용되는 에지 중첩 연산자이며,
    상기 복수의 중첩 연산자 중 제3 중첩 연산자는 상기 이미지 및/또는 타일의 코너 2x2 샘플 영역(320)에 적용되는 것인 방법.
  3. 제2항에 있어서, 상기 제1 중첩 연산자는 스케일링 스테이지(scaling stage)를 포함하고, 상기 제2 중첩 연산자는 상기 제1 중첩 연산자의 상기 스케일링 스테이지를 사용하는 것인 방법.
  4. 제2항에 있어서, 상기 역 중첩 변환은 다수의 스테이지를 가지는 계층적 역 변환(hierarchical inverse transform)이고, 상기 제1, 제2 및 제3 중첩 연산자는 상기 다수의 스테이지 중 제1 스테이지에서 적어도 하나의 채널의 샘플에 적용되는 것인 방법.
  5. 제2항에 있어서, 상기 역 중첩 변환은 다수의 스테이지를 가지는 계층적 역 변환이고, 상기 제1, 제2 및 제3 중첩 연산자는 상기 다수의 스테이지 중 제2 스테이지에서 복수의 전체 분해능 채널 각각의 샘플에 적용되는 것인 방법.
  6. 제2항에 있어서, 상기 제1 중첩 연산자는 주어진 스케일링 스테이지에서의 제1 스케일링을 포함하고, 상기 제2 중첩 연산자는 상기 주어진 스케일링 스테이지에서의 제2 스케일링을 포함하며, 상기 주어진 스케일링 스테이지는
    Figure pct00034
    인 방법.
  7. 제2항에 있어서, 상기 코너 2x2 샘플 영역에 적용된 상기 제3 중첩 연산자는, 상기 코너 2x2 샘플 영역의 좌측-상단, 우측-상단, 좌측-하단 및 우측-하단 샘플들을 중간의 4x1 샘플 영역으로서 재정렬한 후에, 상기 제2 중첩 연산자를 사용하여 적용되는 것인 방법.
  8. 제1항에 있어서, 상기 역 중첩 변환은 다수의 스테이지를 가지는 계층적 역 변환이고, 상기 적용하는 단계의 일부로서,
    상기 제1 중첩 연산자는 이미지 및/또는 타일의 내부 2x2 샘플 영역(410, 510)에 적용되고,
    상기 제2 중첩 연산자는 상기 이미지 및/또는 타일의 에지 2x1 샘플 영역(430, 530)에 적용되는 에지 중첩 연산자이며,
    상기 복수의 중첩 연산자 중 제3 중첩 연산자는 상기 이미지 및/또는 타일의 코너 1x1 샘플 영역(420, 520)에 적용되고,
    상기 제1, 제2 및 제3 중첩 연산자는, 상기 다수의 스테이지 중 제1 스테이지에서, 다운샘플링된 색도 채널의 샘플에 적용되는 것인 방법.
  9. 제8항에 있어서, 상기 제1 중첩 연산자 및 상기 제2 중첩 연산자는 1/32, 1/512, 및 1/8192의 인자를 가지는 다이애딕 리프팅 단계들(dyadic lifting steps)을 포함하는 것인 방법.
  10. 제8항에 있어서, 상기 제3 중첩 연산자는 수평 인접 위치 B에서의 샘플값을 사용하여 위치 A에서의 샘플값에 적용되고, 상기 제3 중첩 연산자는,
    중첩 연산자들이 위치 B에서의 샘플값에 적용되기 전에, 위치 A에서의 샘플값으로부터 위치 B에서의 샘플값을 차감함으로써 위치 A에서의 샘플값을 조정하고,
    중첩 연산자들이 위치 B에서의 샘플값에 적용된 후에, 위치 A에서의 샘플값에 위치 B에서의 샘플값을 가산함으로써 위치 A에서의 샘플값을 조정함으로써 구현되는 것인 방법.
  11. 디지털 미디어 디코딩 장치(800)를 사용하여 디지털 미디어를 디코딩하는 방법으로서,
    상기 디지털 미디어 디코딩 장치에서,
    선택된 타일 경계 옵션(tile boundary option)을 나타내는 정보를 인코딩된 비트스트림으로 수신하는 단계(640) - 상기 선택된 타일 경계 옵션은 중첩 연산자에 대한 하드 타일 경계 처리(hard tile boundary processing) 및 중첩 연산자에 대한 소프트 타일 경계 처리(soft tile boundary processing) 중 하나를 나타냄 -; 및
    상기 선택된 타일 경계 옵션에 적어도 부분적으로 기초하여, 역 중첩 처리를 수행하는 단계(650)를 포함하는 방법.
  12. 제11항에 있어서, 상기 선택된 타일 경계 옵션이 중첩 연산자에 대한 소프트 타일 경계 처리를 나타낼 때, 타일 경계에 걸쳐 역 중첩 연산을 사용하여 상기 역 중첩 처리를 수행하는 단계; 및
    상기 선택된 타일 경계 옵션이 중첩 연산자에 대한 하드 타일 경계 처리를 나타낼 때, 타일 경계에 걸쳐 역 중첩 연산을 사용하지 않고 상기 역 중첩 처리를 수행하는 단계를 더 포함하고, 상기 역 중첩 처리는 DC 이득 부정합(mismatch)을 감소시키기 위해 각자의 타일 경계의 적어도 한쪽에서의 에지 샘플에 대한 역 중첩 연산을 여전히 포함하는 것인 방법.
  13. 제11항에 있어서, 상기 선택된 타일 경계 옵션은 이미지 헤더로 신호되는 것인 방법.
  14. 제11항에 있어서, 상기 선택된 타일 경계 옵션이 중첩 연산자에 대한 소프트 타일 경계 처리를 나타낼 때, 현재 타일에 대한 역 중첩 처리는 적어도 하나의 공간적으로 이웃하는 타일을 적어도 부분적으로 디코딩하는 단계를 포함하고,
    상기 선택된 타일 경계 옵션이 중첩 연산자에 대한 하드 타일 경계 처리를 나타낼 때, 상기 현재 타일에 대한 역 중첩 처리는 공간적으로 이웃하는 타일을 디코딩하는 단계와 독립적인 것인 방법.
  15. 디지털 미디어 디코딩 장치가 제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 프로그램되게 하는 컴퓨터-실행가능 명령어를 저장하는 컴퓨터-판독가능 매체.
KR1020117007934A 2008-10-10 2009-10-09 중첩 변환 처리에서의 감소된 dc 이득 부정합 및 dc 누설 KR101683313B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10466808P 2008-10-10 2008-10-10
US61/104,668 2008-10-10
US12/571,365 US8275209B2 (en) 2008-10-10 2009-09-30 Reduced DC gain mismatch and DC leakage in overlap transform processing
US12/571,365 2009-09-30
PCT/US2009/060249 WO2010042875A2 (en) 2008-10-10 2009-10-09 Reduced dc gain mismatch and dc leakage in overlap transform processing

Publications (2)

Publication Number Publication Date
KR20110091849A true KR20110091849A (ko) 2011-08-16
KR101683313B1 KR101683313B1 (ko) 2016-12-06

Family

ID=42098915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117007934A KR101683313B1 (ko) 2008-10-10 2009-10-09 중첩 변환 처리에서의 감소된 dc 이득 부정합 및 dc 누설

Country Status (14)

Country Link
US (1) US8275209B2 (ko)
EP (1) EP2332334A4 (ko)
JP (1) JP5306469B2 (ko)
KR (1) KR101683313B1 (ko)
CN (1) CN102177714B (ko)
AR (1) AR073820A1 (ko)
AU (1) AU2009303343B2 (ko)
BR (1) BRPI0918932A2 (ko)
CA (1) CA2735973C (ko)
MX (1) MX2011003530A (ko)
MY (1) MY159055A (ko)
RU (1) RU2518932C2 (ko)
TW (2) TWI540845B (ko)
WO (1) WO2010042875A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008109389A (ja) * 2006-10-25 2008-05-08 Canon Inc 画像処理装置および画像処理装置の制御方法
EP2294826A4 (en) * 2008-07-08 2013-06-12 Mobile Imaging In Sweden Ab COMPRESSION METHOD OF IMAGES AND FORMAT OF COMPRESSED IMAGES
JP5199956B2 (ja) * 2009-06-16 2013-05-15 キヤノン株式会社 画像復号装置及びその制御方法
JP5199955B2 (ja) * 2009-06-16 2013-05-15 キヤノン株式会社 画像復号装置及びその制御方法
AP3992A (en) 2011-07-15 2017-01-08 Ge Video Compression Llc Sample array coding for low-delay
CA2873496A1 (en) 2012-05-14 2013-11-21 Luca Rossato Encoding and decoding based on blending of sequences of samples along time
US9224213B2 (en) * 2013-12-31 2015-12-29 Facebook, Inc. Systems and methods for context based image compression
CN113011585B (zh) * 2021-03-19 2023-09-26 上海西井科技股份有限公司 消除拼接算子的编译优化方法、系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004064190A (ja) * 2002-07-25 2004-02-26 Ricoh Co Ltd 画像処理装置、方法、プログラムおよび記録媒体
KR20060069256A (ko) * 2004-12-17 2006-06-21 마이크로소프트 코포레이션 효과적인 무손실 데이터 압축을 위한 가역적 오버랩 연산자
KR20060083125A (ko) * 2005-01-14 2006-07-20 마이크로소프트 코포레이션 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서
WO2008057308A2 (en) * 2006-11-08 2008-05-15 Thomson Licensing Methods and apparatus for in-loop de-artifact filtering

Family Cites Families (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754492A (en) 1985-06-03 1988-06-28 Picturetel Corporation Method and system for adapting a digitized signal processing system for block processing with minimal blocking artifacts
US4698672A (en) 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
US5297236A (en) 1989-01-27 1994-03-22 Dolby Laboratories Licensing Corporation Low computational-complexity digital filter bank for encoder, decoder, and encoder/decoder
JP2639176B2 (ja) 1990-05-28 1997-08-06 日本電気株式会社 2次元信号符号化復号化方法とその符号化装置・復号化装置
JP3052516B2 (ja) 1990-12-21 2000-06-12 カシオ計算機株式会社 符号化データ処理装置
JPH0591459A (ja) 1990-12-21 1993-04-09 Casio Comput Co Ltd 電子カメラ
JP2549479B2 (ja) 1991-12-06 1996-10-30 日本電信電話株式会社 動き補償フレーム間帯域分割符号化処理方法
KR0148130B1 (ko) 1992-05-18 1998-09-15 강진구 블럭킹아티팩트를 억제시키는 부호화/복호화 방법 및 그 장치
JP3401823B2 (ja) 1993-03-31 2003-04-28 ソニー株式会社 画像コーデック用プロセッサ
US5438590A (en) * 1993-05-24 1995-08-01 Comstream Corporation Transmitting and receiving apparatus and method including punctured convolutional encoding and decoding
US5982459A (en) 1995-05-31 1999-11-09 8×8, Inc. Integrated multimedia communications processor and codec
FR2737931B1 (fr) 1995-08-17 1998-10-02 Siemens Ag Procede destine au traitement de blocs d'images decodes d'un procede de codage d'images a base de blocs
US5959673A (en) 1995-10-05 1999-09-28 Microsoft Corporation Transform coding of dense motion vector fields for frame and object based video coding applications
US6064776A (en) 1995-10-27 2000-05-16 Kabushiki Kaisha Toshiba Image processing apparatus
US6041145A (en) * 1995-11-02 2000-03-21 Matsushita Electric Industrial Co., Ltd. Device and method for smoothing picture signal, device and method for encoding picture and device and method for decoding picture
US5850294A (en) 1995-12-18 1998-12-15 Lucent Technologies Inc. Method and apparatus for post-processing images
KR100196838B1 (ko) 1995-12-23 1999-06-15 전주범 블럭벌 상관 관계에 의한 부호화 장치
JP3130464B2 (ja) * 1996-02-02 2001-01-31 ローム株式会社 データ復号装置
US5805739A (en) 1996-04-02 1998-09-08 Picturetel Corporation Lapped orthogonal vector quantization
JPH1070717A (ja) 1996-06-19 1998-03-10 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像復号化装置
JP2907146B2 (ja) 1996-09-11 1999-06-21 日本電気株式会社 メモリlsiの特定箇所探索方法および探索装置
US5802107A (en) * 1996-09-13 1998-09-01 Zenith Electronics Corporation Symbol rotator
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US5999656A (en) 1997-01-17 1999-12-07 Ricoh Co., Ltd. Overlapped reversible transforms for unified lossless/lossy compression
KR100261253B1 (ko) 1997-04-02 2000-07-01 윤종용 비트율 조절이 가능한 오디오 부호화/복호화 방법및 장치
US5973755A (en) 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
AU8055798A (en) 1997-06-05 1998-12-21 Wisconsin Alumni Research Foundation Image compression system using block transforms and tree-type coefficient truncation
US6151296A (en) * 1997-06-19 2000-11-21 Qualcomm Incorporated Bit interleaving for orthogonal frequency division multiplexing in the transmission of digital signals
JP3375539B2 (ja) 1997-07-14 2003-02-10 ペンタックス株式会社 画像圧縮装置および画像伸張装置
US5859788A (en) 1997-08-15 1999-01-12 The Aerospace Corporation Modulated lapped transform method
TW364269B (en) 1998-01-02 1999-07-11 Winbond Electronic Corp Discreet cosine transform/inverse discreet cosine transform circuit
US6393156B1 (en) 1998-01-07 2002-05-21 Truong Q. Nguyen Enhanced transform compatibility for standardized data compression
US6393061B1 (en) 1998-05-15 2002-05-21 Hughes Electronics Corporation Method for reducing blocking artifacts in digital images
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6115689A (en) 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6154762A (en) 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6073153A (en) 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6253165B1 (en) 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
US6011625A (en) 1998-07-08 2000-01-04 Lockheed Martin Corporation Method for phase unwrapping in imaging systems
US6421464B1 (en) 1998-12-16 2002-07-16 Fastvdo Llc Fast lapped image transforms using lifting steps
US6487574B1 (en) 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6496795B1 (en) 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
US6370502B1 (en) 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6771829B1 (en) 1999-10-23 2004-08-03 Fastvdo Llc Method for local zerotree image coding
US6377916B1 (en) * 1999-11-29 2002-04-23 Digital Voice Systems, Inc. Multiband harmonic transform coder
US6865229B1 (en) 1999-12-14 2005-03-08 Koninklijke Philips Electronics N.V. Method and apparatus for reducing the “blocky picture” effect in MPEG decoded images
US6771828B1 (en) 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
US6968564B1 (en) * 2000-04-06 2005-11-22 Nielsen Media Research, Inc. Multi-band spectral audio encoding
US7177358B2 (en) 2000-06-27 2007-02-13 Mitsubishi Denki Kabushiki Kaisha Picture coding apparatus, and picture coding method
US6832232B1 (en) 2000-07-10 2004-12-14 Advanced Micro Devices, Inc. Dual-block inverse discrete cosine transform method
CN1266649C (zh) 2000-09-12 2006-07-26 皇家菲利浦电子有限公司 视频编码方法
EP1202219A1 (en) 2000-10-30 2002-05-02 Fast Video, LLC Fast lapped image transforms
JP2002182693A (ja) 2000-12-13 2002-06-26 Nec Corp オーディオ符号化、復号装置及びその方法並びにその制御プログラム記録媒体
TW589870B (en) 2000-12-19 2004-06-01 Pts Corp Adaptive transforms
JP2002304624A (ja) 2001-04-05 2002-10-18 Canon Inc フィルタ処理装置及び撮像装置
US7027654B1 (en) 2001-08-16 2006-04-11 On2 Technologies Video compression system
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7460993B2 (en) 2001-12-14 2008-12-02 Microsoft Corporation Adaptive window-size selection in transform coding
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US6763068B2 (en) 2001-12-28 2004-07-13 Nokia Corporation Method and apparatus for selecting macroblock quantization parameters in a video encoder
JP2003283840A (ja) 2002-03-25 2003-10-03 Canon Inc フィルタ処理装置およびフィルタ処理方法
US7155065B1 (en) 2002-03-27 2006-12-26 Microsoft Corporation System and method for progressively transforming and coding digital data
US7006699B2 (en) 2002-03-27 2006-02-28 Microsoft Corporation System and method for progressively transforming and coding digital data
US7110941B2 (en) 2002-03-28 2006-09-19 Microsoft Corporation System and method for embedded audio coding with implicit auditory masking
JP3855827B2 (ja) 2002-04-05 2006-12-13 ソニー株式会社 2次元サブバンド符号化装置
US7275036B2 (en) 2002-04-18 2007-09-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding a time-discrete audio signal to obtain coded audio data and for decoding coded audio data
US7120297B2 (en) 2002-04-25 2006-10-10 Microsoft Corporation Segmented layered image system
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7376280B2 (en) 2002-07-14 2008-05-20 Apple Inc Video encoding and decoding
US7330596B2 (en) * 2002-07-17 2008-02-12 Ricoh Company, Ltd. Image decoding technique for suppressing tile boundary distortion
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US7031392B2 (en) 2002-09-20 2006-04-18 Seiko Epson Corporation Method and apparatus for video deblocking
US7227901B2 (en) 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
TWI286706B (en) * 2002-11-28 2007-09-11 Shenzhen Syscan Technology Co Two-dimensional barcode card and the decoding method
JP2004201047A (ja) 2002-12-19 2004-07-15 Ricoh Co Ltd 画像処理装置、プログラム及び記憶媒体
US7542036B2 (en) 2003-02-19 2009-06-02 California Institute Of Technology Level set surface editing operators
US7239990B2 (en) 2003-02-20 2007-07-03 Robert Struijs Method for the numerical simulation of a physical phenomenon with a preferential direction
US7167522B2 (en) 2003-02-27 2007-01-23 Texas Instruments Incorporated Video deblocking filter
US7471726B2 (en) 2003-07-15 2008-12-30 Microsoft Corporation Spatial-domain lapped transform in digital media compression
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US20080075377A1 (en) 2003-07-29 2008-03-27 Topiwala Pankaj N Fast lapped image transforms using lifting steps
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7315822B2 (en) 2003-10-20 2008-01-01 Microsoft Corp. System and method for a media codec employing a reversible transform obtained via matrix lifting
KR101044940B1 (ko) 2004-06-23 2011-06-28 삼성전자주식회사 에지 플로우 방향성 필터와 커블릿 변환을 이용한 블록현상 제거 방법 및 장치
US8374238B2 (en) 2004-07-13 2013-02-12 Microsoft Corporation Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video
US7471850B2 (en) 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
US7305139B2 (en) 2004-12-17 2007-12-04 Microsoft Corporation Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform
KR100676226B1 (ko) 2005-04-06 2007-01-30 엠텍비젼 주식회사 동영상 코덱의 후처리 방법 및 이를 위한 에지 보상 및 향상 필터링 방법
US7613761B2 (en) 2005-06-27 2009-11-03 The Aerospace Corporation Haar wavelet transform embedded lossless type II discrete cosine transform
US7805476B2 (en) 2005-06-27 2010-09-28 The Aerospace Corporation Extended Haar transform
US7640283B2 (en) 2005-06-27 2009-12-29 The Aerospace Corporation Shared Haar wavelet transform
US7634525B2 (en) 2005-06-27 2009-12-15 The Aerospace Corporation Haar wavelet transform embedded lossless type IV discrete cosine transform
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US20080137982A1 (en) 2006-12-06 2008-06-12 Ayahiro Nakajima Blurring determination device, blurring determination method and printing apparatus
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
US8054886B2 (en) 2007-02-21 2011-11-08 Microsoft Corporation Signaling and use of chroma sample positioning information
CN101046964B (zh) * 2007-04-13 2011-09-14 清华大学 基于重叠变换压缩编码的错误隐藏帧重建方法
US8447591B2 (en) 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004064190A (ja) * 2002-07-25 2004-02-26 Ricoh Co Ltd 画像処理装置、方法、プログラムおよび記録媒体
KR20060069256A (ko) * 2004-12-17 2006-06-21 마이크로소프트 코포레이션 효과적인 무손실 데이터 압축을 위한 가역적 오버랩 연산자
KR20060083125A (ko) * 2005-01-14 2006-07-20 마이크로소프트 코포레이션 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서
WO2008057308A2 (en) * 2006-11-08 2008-05-15 Thomson Licensing Methods and apparatus for in-loop de-artifact filtering

Also Published As

Publication number Publication date
AU2009303343B2 (en) 2014-06-19
TW201019615A (en) 2010-05-16
MX2011003530A (es) 2011-04-21
CA2735973A1 (en) 2010-04-15
US8275209B2 (en) 2012-09-25
CA2735973C (en) 2017-12-19
RU2518932C2 (ru) 2014-06-10
EP2332334A2 (en) 2011-06-15
AR073820A1 (es) 2010-12-01
TW201628342A (zh) 2016-08-01
KR101683313B1 (ko) 2016-12-06
CN102177714A (zh) 2011-09-07
WO2010042875A3 (en) 2010-07-08
MY159055A (en) 2016-12-15
JP5306469B2 (ja) 2013-10-02
TWI540845B (zh) 2016-07-01
CN102177714B (zh) 2014-01-08
JP2012505613A (ja) 2012-03-01
AU2009303343A1 (en) 2010-04-15
RU2011113975A (ru) 2012-10-20
US20100092098A1 (en) 2010-04-15
WO2010042875A2 (en) 2010-04-15
EP2332334A4 (en) 2012-06-06
TWI603590B (zh) 2017-10-21
BRPI0918932A2 (pt) 2015-12-01

Similar Documents

Publication Publication Date Title
US8724916B2 (en) Reducing DC leakage in HD photo transform
US8515194B2 (en) Signaling and uses of windowing information for images
JP5065272B2 (ja) 画像圧縮に関する変換係数の予測
JP5457199B2 (ja) 変換ベースのデジタル・メディア・コーデックにおける計算の複雑性及び精度の制御
TWI445392B (zh) 單一指令多重資料重疊轉換式數位媒體編碼/解碼
CA2735973C (en) Reduced dc gain mismatch and dc leakage in overlap transform processing
KR101465817B1 (ko) 크로마 샘플 위치 정보의 시그널링 및 사용
US7949054B2 (en) Flexible data organization for images
JP2005515727A (ja) 複合文書の圧縮のためのコーダに整合したレイヤ分離および補間
JP7283024B2 (ja) 画像の符号化方法、復号化方法、エンコーダ、およびデコーダ
CN114641995A (zh) 对编码树单元进行编码和解码的方法、设备和系统
JP2024056945A (ja) 符号化ユニットを復号および符号化する方法、装置およびプログラム
EP4298793A1 (en) Buffers for video coding in palette mode
EP2887667A1 (en) Coding of high dynamic range images

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right