KR20060083125A - 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서 - Google Patents

중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서 Download PDF

Info

Publication number
KR20060083125A
KR20060083125A KR1020050121544A KR20050121544A KR20060083125A KR 20060083125 A KR20060083125 A KR 20060083125A KR 1020050121544 A KR1020050121544 A KR 1020050121544A KR 20050121544 A KR20050121544 A KR 20050121544A KR 20060083125 A KR20060083125 A KR 20060083125A
Authority
KR
South Korea
Prior art keywords
block
dimensional
transform
reversible
applying
Prior art date
Application number
KR1020050121544A
Other languages
English (en)
Other versions
KR101036733B1 (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
Priority claimed from US11/035,991 external-priority patent/US7305139B2/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060083125A publication Critical patent/KR20060083125A/ko
Application granted granted Critical
Publication of KR101036733B1 publication Critical patent/KR101036733B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (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)
  • Peptides Or Proteins (AREA)
  • Prostheses (AREA)

Abstract

코어 변환에 관하여 엇갈리게 정렬된 그리드 상에서 적용되는 사전/사후 필터링을 위해 가역 2차원 오버랩 연산자를 사용하여 디지털 미디어 코덱에서 사용가능한 효율적인 중복 변환이 실현된다. 2차원 중복 연산자는 개개의 블록의 포인트들의 서브셋에 대한 인터리빙된 스테이지들에서의 기본적인 변환의 시퀀스로서 재정렬되어 있고 또 계산상의 효율을 위해 여러 리프팅 스텝으로 구현되어 있는, 개별적으로 적용되는 1차원 가역 중복 연산자에 기초한다. 인터리빙된 스테이지들은 정규화된 2x2 Hadamard 변환을 수반하는 최초 단계와 마지막 단계 간에 회전 및 스케일링을 적용하는 스테이지를 포함한다.
디지털 미디어 압축, 중복 변환, 코어 변환, 사전 필터, 사후 필터

Description

중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는 방법 및 2차원 디지털 미디어 프로세서{REVERSIBLE 2-DIMENSIONAL PRE-/POST-FILTERING FOR LAPPED BIORTHOGONAL TRANSFORM}
도 1은 종래 기술에서의 종래의 블록 변환 기반 코덱의 블록도.
도 2는 역시 종래 기술에서 도 1의 블록 변환 기반 코덱과 관련하여 사전 및 사후 처리 연산으로서 구현되는 공간-영역 중복 변환(spatial-domain lapped transform)의 블록도.
도 3은 1차원 데이터에 대한 중복 변환(lapped transform) 및 역 중복 변환(inverse lapped transform) 쌍을 나타낸 블록도.
도 4는 가역 오버랩 연산자(reversible overlap operator)를 이용하는 중복 변환에 기초한 인코더의 흐름도.
도 5는 중복 변환에 기초한 디코더의 흐름도.
도 6은 블록 변환과 관련하여 사전 및 사후 필터링 연산(또는 가역 오버랩 연산자)을 사용하여 1차원 데이터에 대한 중복 변환 및 역 중복 변환 쌍을 나타낸 블록도.
도 7은 도 6의 중복 변환에서 가역 오버랩 연산자로서 사용하기 위한 선형 위상 사전(또는 사후) 필터의 구조를 나타낸 신호 흐름 그래프.
도 8은 가역 오버랩 연산자에서 사용하기 위한 4개의 리프팅(lifting) 스텝으로서의 무손실 스케일링(lossless scaling)의 신호 흐름 그래프.
도 9는 가역 오버랩 연산자에서 사용하기 위한 5개의 리프팅(lifting) 스텝으로서의 무손실 스케일링(lossless scaling)의 신호 흐름 그래프.
도 10은 무손실 단위 행렬식 스케일링(lossless unit determinant scaling)을 실현하기 위해 더 큰 차원 행렬에 적용되는 2-포인트 스케일링(2-point scaling)의 케스케이드(cascade)의 신호 흐름 그래프.
도 11은 도 7에 도시한 구조를 가지며 또 도 10의 무손실 단위 행렬식 스케일링을 사용하는 가역 오버랩 연산자(또는 사전/사후 필터)의 신호 흐름 그래프.
도 12는 도 11의 가역 오버랩 연산자의 동작의 플로우차트.
도 13은 도 11의 가역 오버랩 연산자를 사용하는 가역 중복 변환 구현의 예를 나타낸 신호 흐름 그래프.
도 14는 도 13의 예시적인 중복 변환의 DC 계수의 임펄스 응답 그래프.
도 15는 4x4 크기 블록에 대한 2차원 오버랩 연산자의 서포트(support)로서 사용되는 픽셀을 나타낸 다이어그램.
도 16은 2x2 크기 블록에 대한 2차원 오버랩 연산자의 서포트(support)로서 사용되는 픽셀을 나타낸 다이어그램.
도 17은 도 4의 인코더에 의해 인코더 측에서 적용되는 변환의 플로우차트.
도 18은 도 5의 디코더에 의해 디코더 측에서 적용되는 변환의 플로우차트.
도 19는 도 11에 도시된 1차원 가역 오버랩 연산자의 정규 표현(canonical representation)을 제공하는 신호 흐름 그래프.
도 20은 도 19의 1차원 가역 오버랩 연산자를 수평으로 또 수직으로 별도로 적용함으로써 구현되는 중복 변환에 대한 2차원 사전/사후 필터를 나타낸 신호 흐름 그래프.
도 21은 여러 스테이지에서의 2차원 필터의 수평 및 수직 동작을 인터리빙함으로써 구현되는 중복 변환을 위한 2차원 사전/사후 필터를 나타낸 신호 흐름 그래프.
도 22는 도 21의 2차원 사전/사후 필터의 일부를 형성하는 정규화된 2x2 Hadamard 연산자를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 23은 2x2 사전/사후 필터로 처리된 데이터 포인트 간의 대응 관계를 나타낸 다이어그램.
도 24는 도 21의 4x4 2차원 사전/사후 필터의 구현의 제1 스테이지에서 2x2 Hadamard 연산자가 적용되는 4x4 데이터 블록의 데이터 포인트를 나타내는 다이어그램.
도 25는 도 21의 2차원 사전 필터의 일부를 형성하는 전방 회전(forward rotation)을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 26은 도 21의 2차원 사후 필터의 일부를 형성하는 역회전(inverse rotation)을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 27은 도 21의 2차원 사전 필터의 일부를 형성하는 전방 2-포인트 회전(forward 2-point rotation)을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리 스트.
도 28은 도 21의 2차원 사후 필터의 일부를 형성하는 역 2-포인트 회전(inverse 2-point rotation)을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 29는 도 21의 4x4 2차원 사전/사후 필터의 구현의 다른 스테이지에서 도 25 내지 도 28의 회전이 적용되는 4x4 데이터 블록의 데이터 포인트를 나타내는 다이어그램.
도 30은 도 21의 4x4 2차원 사전/사후 필터의 구현의 또다른 스테이지에서 2-포인트 스케일링 동작이 적용되는 4x4 데이터 블록의 데이터 포인트를 나타내는 다이어그램.
도 31은 도 21의 2차원 사전 필터의 일부를 형성하는 전방 스케일링(forward scaling)을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 32는 도 21의 2차원 사후 필터의 일부를 형성하는 역 스케일링(inverse scaling)을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 33은 도 21의 2차원 4x4 사전 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 34는 도 21의 2차원 4x4 사후 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 35는 2차원 2x2 사전 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 36은 2차원 2x2 사후 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 37은 도 35의 2차원 사전 필터에 있어서 불충분한 데이터 포인트를 갖는 이미지 엣지(image edge)에서 적용하기 위한 1차원 2-포인트 사전 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 38은 도 36의 2차원 사전 필터에 있어서 불충분한 데이터 포인트를 갖는 이미지 엣지에서 적용하기 위한 1차원 2-포인트 사후 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 39는 도 33의 2차원 사전 필터에 있어서 불충분한 데이터 포인트를 갖는 이미지 엣지에서 적용하기 위한 1차원 4-포인트 사전 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 40은 도 34의 2차원 사전 필터에 있어서 불충분한 데이터 포인트를 갖는 이미지 엣지에서 적용하기 위한 1차원 4-포인트 사후 필터를 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 41은 도 4의 인코더에서 중복 변환을 실시하기 위해 도 21의 사전 필터와 관련하여 사용되는 전방 변환을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 42는 도 41의 전방 변환의 일부를 형성하는 변환을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 43은 도 41의 전방 변환의 일부를 형성하는 다른 변환을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 44는 도 5의 디코더에서 역 중복 변환을 실시하기 위해 도 21의 사후 필터와 관련하여 사용되는 역 변환을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 45는 도 44의 역 변환의 일부를 형성하는 변환을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 46은 도 44의 역 변환의 일부를 형성하는 다른 변환을 실현하기 위한 C 프로그래밍 언어로 된 프로그램 리스트.
도 47은 도 4 및 도 5의 개선된 공간-영역 중복 변환을 갖는 블록 변환-기반 코덱을 구현하는 데 적당한 컴퓨팅 환경의 블록도.
<도면의 주요 부분에 대한 부호의 설명>
110: 인코더
120, 121: 전방 변환
130: 양자화/엔트로피 코딩
150: 디코더
160: 역양자화/엔트로피 디코딩
170, 171: 역 변환
710: 가역 단위-행렬식 Hadamard
1110: 가역 직교 회전
1120: 가역 단위-행렬식 스케일링
본 출원은 2004년 12월 17일자로 출원된 발명의 명칭이 "효율적인 무손실 데이터 압축을 위한 가역 오버랩 연산자(Reversible Overlap Operator For Efficient Lossless Data Compression)"인 Tu 등의 미국 특허출원 제11/015,148호의 일부 계속 출원으로서, 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
본 발명은 일반적으로 중복 변환(lapped transform)을 사용하는 디지털 미디어(예를 들어, 비디오 및 이미지) 압축에 관한 것이다.
중복 변환(Lapped Transform)
중복 변환은 데이터 압축에서 사용되는 강력한 신호 처리 기술이다. 예를 들어, H.S. Malvar의 Signal Processing with Lapped Transforms. Boston, MA: Artech House(1992년)을 참조하기 바란다. 그렇지만, 현재까지, 무손실(가역) 데이터 압축을 위해 선형 위상을 갖는 효율적인 중복 변환이 공식화되지도 적용되지도 않았다.
이하에서 보다 상세히 논의되는 바와 같이, 중복 변환이 사전 필터 및 후속 데이터 변환으로서 공식화될 수 있음(및 그의 역이 역 데이터 변환 및 후속 사후 필터로서 공식화될 수 있음)은 알려져 있다. 예를 들어, H.S. Malvar의 "A pre- and post-filtering technique for the reduction of blocking effects," in Proc . Picture Coding Symposium, 스웨덴 스톡홀롬(1987년 6월), 및 T.D. Tran, J. Liang 및 C. Tu의 "Lapped Transform via Time-Domain Pre- and Post-Filtering", IEEE Trans. on Signal Processing, vol. 51, no. 6(2003년 6월)을 참조하기 바란다. 무손실 데이터 변환은 양호한 정도의 가역성을 달성하기 위해 이 공식화에서 사용될 수 있다. 지금까지, 어떤 제한된 여러가지 사전 및 사후 필터만이 가역성을 위해 선택될 수 있는 것으로 생각되었다. 이 제한된 세트는 그의 압축 성능(레이트 대 왜곡, 즉 R-D)이 아주 한정되어 있다. 최근의 논문(W. Dai 및 T. Tran의 "Regularity-constrained pre- and post-filtering for block DCT-based systems," IEEE Trans. on Signal Processing, vol. 51, pp. 2568-2581, 2003년 10월)에서, 대부분의 구성요소가 가역적이고 또 양호한 압축 특성을 갖는 구조가 제시되었다.
오디오 압축에서, 가역 중복 변환을 위한 몇가지 구조가 소개되었다. 예를 들어, R. Geiger, J. Herre, J. Koller 및 K. Brandenburg의 "IntMDCT - A link between perceptual and lossless audio coding," in Proc . IEEE Int . Conf . on Acoustics, Speech, and Signal Processing, 플로리다 올란도(2002년 5월), 및 J. Li의 "Reversible FFT And MDCT Via Matrix Lifting." in Proc . IEEE Int . Conf . on Acoustics, Speech, and Signal Processing, 캐나다 몬트리올(2004년 5월)을 참조하기 바란다. 그렇지만, 이들 구조는 수정된 이산 코사인 변환(modified discrete cosine transform, MDCT)이라고도 하는 변조된 중복 변환(modulated lapped transform, MLT) - 이의 기저 함수(basis function)는 직교이지만 대칭은 아님(즉, 기저 함수가 선형 위상이 아님) - 에만 적용가능하다. 이들 변형은 디지털 화상 압축에서와 같이, 선형 위상(대칭) 함수가 요구되는 데이터 압축 응용에는 적용할 수 없다.
화상(이미지) 압축의 경우, R-D 성능의 관점에서 최고의 성능을 보여주는 변환 중 하나가 중복 쌍직교 변환(lapped biorthogonal transform, LBT)이다. H.S. Malvar의 "Biorthogonal And Nonuniform Lapped Transforms For Transform Coding With Reduced Blocking And Ringing Artifacts," IEEE Trans. on Signal Processing, vol. 46, pp. 1043-1053(1998년 4월)을 참조하기 바란다. MLT와는 달리, LBT 기저 함수는 대칭이지만 엄밀히 말하면 직교는 아니다(LBT에서는, 해석 기저 함수가 합성 기저 함수에 대해 직교이고, 따라서 쌍직교가 된다). LBT는 이미지 압축 응용에서 성공적으로 사용되었지만, 무손실 이미지 압축에서는 아직 사용되지 않았는데 그 이유는 정수-가역 구조(integer-reversible construction)가 알려져 있지 않기 때문이다.
블록 변환 기반 코딩의 개요
변환 코딩은 많은 오디오, 이미지 및 비디오 압축 시스템에서 사용되는 압축 기술이다. 미압축 디지털 이미지 및 비디오는 일반적으로 2차원(2-D) 그리드로 정렬된 이미지 또는 비디오 프레임 내의 위치에서의 화소 또는 컬러의 샘플로서 표현 또는 캡처된다. 이것은 이미지 또는 비디오의 공간-영역 표현(spatial-domain representation)이라고 한다. 예를 들어, 이미지에 대한 일반적인 포맷은 그리드로서 정렬된 24비트 컬러 화소 샘플의 스트림으로 이루어져 있다. 각각의 샘플은 그 중에서도 특히 RGB 또는 YIQ 등의 컬러 공간 내에서 그리드 내의 픽셀 위치에서의 컬러 성분을 나타내는 숫자이다. 여러가지 이미지 및 비디오 시스템은 여러가 지 서로 다른 컬러, 공간 및 시간 샘플링 분해능을 사용할 수 있다. 이와 유사하게, 디지털 오디오는 일반적으로 시간 샘플링된 오디오 신호 스트림으로서 표현된다. 예를 들어, 일반적인 오디오 포맷은 일정한 시간 간격으로 취한 오디오 신호의 16비트 진폭 샘플의 스트림으로 이루어져 있다.
미압축된 디지털 오디오, 이미지 및 비디오 신호는 상당한 저장 및 전송 용량을 소모할 수 있다. 변환 코딩은 신호의 공간-영역 표현을 주파수-영역(또는 다른 유사한 변환 영역) 표현으로 변환한 다음에 변환-영역 표현의 어떤 일반적으로 덜 감지되는 주파수 성분의 분해능을 감소시킴으로써 디지털 오디오, 이미지 및 비디오의 크기를 감소시킨다. 이것은 일반적으로 공간 영역에서의 이미지 또는 비디오, 또는 시간 영역에서의 오디오의 컬러 또는 공간 분해능을 감소시키는 것에 비해 디지털 신호의 열화를 훨씬 덜 감지되게 해준다.
보다 구체적으로는, 도 1에 도시된 일반적인 블록 변환-기반 코덱(100)은 미압축된 디지털 이미지의 픽셀을 고정 크기의 2차원 블록(X1,...,Xn)으로 분할하며, 각각의 블록은 아마도 다른 블록과 중첩하고 있다. 공간-주파수 분석을 행하는 선형 변환(120-121)이 각 블록에 적용되는데, 이는 블록 내의 일정 간격을 두고 있는 샘플들을, 일반적으로 블록 구간에 걸쳐 대응하는 주파수 대역에서의 디지털 신호의 세기를 나타내는 일련의 주파수(또는 변환) 계수로 변환한다. 압축을 위해, 변환 계수는 선택적으로 양자화될 수 있고(130)(즉, 계수값의 최하위 비트를 누락시키거나 또는 다른 방법으로 상위 분해능 숫자 세트 내의 값을 하위 분해능으로 매 핑하는 등에 의해 분해능이 감소되고), 또한 엔트로피(entropy) 또는 가변-길이(variable-length)가 압축된 데이터 스트림으로 코딩될 수 있다(130). 디코딩 시에, 변환 계수는 원래의 컬러/공간 샘플링된 이미지/비디오 신호를 거의 재구성하기 위해 역으로 변환한다(170-171)(재구성된 블록
Figure 112005072398323-PAT00001
).
블록 변환(120-121)은 크기 N의 벡터 x에 대한 수학적 연산으로서 정의될 수 있다. 이 연산은 변환 영역 출력 y = Mx(단, M은 변형 행렬임)을 생성하는 선형 곱셈(linear multiplication)인 경우가 거의 대부분이다. 입력 데이터가 임의의 길이일 때, 이는 N 크기의 벡터로 세그먼트화되고, 블록 변환이 각 세그먼트에 적용된다. 데이터 압축을 위해, 가역 블록 변환이 선택된다. 환언하면, 행렬 M은 가역 행렬(invertible)이다. 다중 차원에서(예를 들어, 이미지 및 비디오에 있어서), 블록 변환은 일반적으로 개별적인 연산으로서 구현된다. 행렬 곱셈이 데이터의 각 차원(즉, 행과 열 둘다)을 따라 개별적으로 적용된다.
압축의 경우, 변환 계수(벡터 y의 성분)가 선택적으로 양자화될 수 있고(즉, 계수값의 최하위 비트를 누락시키거나 또는 다른 방법으로 상위 분해능 숫자 세트 내의 값을 하위 분해능으로 매핑하는 등에 의해 분해능이 감소되고), 또한 엔트로피 또는 가변-길이가 압축된 데이터 스트림으로 코딩될 수 있다.
디코더(150)에서의 디코딩 시에, 이들 연산의 역[역양자화/엔트로피 디코딩(160) 및 역 블록 변환(170-171)]이 도 1에 도시된 디코더(150) 측에서 적용된다. 데이터를 재구성할 때, 역행렬 M-1(역변환(170-171))이 승수(multiplier)로 서 변환 영역 데이터에 적용된다. 변환 영역 데이터에 적용될 때, 역변환은 원래이 시간-영역 또는 공간-영역 디지털 미디어를 거의 재구성한다.
많은 블록 변환-기반 코딩 응용에서, 변환은 양자화 계수(quantization factor)에 따라 손실 및 무손실 압축(lossy and lossless compression) 둘다를 지원하기 위해 가역인 것이 바람직하다. 예를 들어, 양자화가 없는 경우(일반적으로 양자화 계수가 1인 것으로 표현됨), 가역 변환을 이용하는 코덱은 디코딩 시에 정확하게 입력 데이터를 재현할 수 있다. 그렇지만, 이들 응용에서의 가역성의 요건은 코덱 설계의 기본이 될 수 있는 변환의 선택에 제약을 가한다.
그 중에서 특히, MPEG 및 윈도우즈 미디어(Windows Media) 등의 많은 이미지 및 비디오 압축 시스템은 이산 코사인 변환(DCT)에 기초한 변환을 이용한다. DCT는 거의 최적인 데이터 압축을 가져오는 양호한 에너지 압축(energy compaction) 특성을 갖는 것으로 알려져 있다. 이들 압축 시스템에서, 역 DCT(IDCT)는 개개의 이미지 블록을 재구성하기 위해 압축 시스템의 인코더 및 디코더 양자에서의 재구성 루프에서 이용된다. DCT에 대해서는 N. Ahmed, T. Natarajan, 및 K.R. Rao의 "Discrete Cosine Transform," IEEE Transactions on Computers, C-23, pp. 90-93(1974년 1월)에 기술되어 있다. IDCT의 예시적인 구현은 "IEEE Standard Specification for the Implementations of 8x8 Inverse Discrete Consine Transform," IEEE Std. 1180-1990(1990년 12월 6일)에 기술되어 있다.
스틸 이미지[또는 비디오 시퀀스에서 인트라 코딩된 프레임(intra coded frame)]을 압축하는 동안, MPEG-2, MPEG-4 및 Windows Media 등의 가장 통상적인 표준은 그 이미지를 정사각형 타일로 분할하고 각각의 이미지 타일에 블록 변환을 적용한다. 주어진 분할(통상 블록이라고 알려져 있음)에서의 변환 계수는 그 블록 내의 미처리 데이터 성분(raw data component)에 의해서만 영향을 받는다. 양자화 등의 인코더 측에서의 비가역 또는 손실 연산은 디코딩된 이미지에 아티팩트(artifact, 잡티)가 나타나게 한다. 이들 아티팩트는 블록에 걸쳐 독립적이며 블록화 효과(blocking effect)라고 알려진 시각적으로 거슬리는 효과를 나타낸다. 이와 마찬가지로, 오디오 데이터에 있어서도, 비중첩 블록이 독립적으로 변환 코딩될 때, 양자화 에러는 디코더에서 오디오 신호의 재구성 시에 블록 경계에서 신호의 불연속이 생기게 한다. 오디오의 경우, 주기적 클리킹 효과(periodic clicking effect)가 들린다.
블록화 효과에 대처하기 위해 몇가지 기술이 사용되며, 이 중에서 가장 인기있는 것으로는 블록 엣지간 경계(inter block edge boundary)를 평활화하는 블록화 제거 필터(deblocking filter), 및 미처리 입력 데이터와 이웃 블록 엣지로부터의 예측 간의 차를 인코딩하는 공간 외삽(spatial extrapolation)이 있다. 이들 기술이 단점이 없는 것은 아니다. 예를 들어, 블록화 제거 필터 방법은 "개루프(open loop)"이다, 즉 전방 변환 프로세스는 블록화 제거가 디코더 측에서의 재구성 이전에 수행될 거라는 사실을 고려하지 않는다. 게다가, 이들 기술 둘다는 계산 비용이 많이 든다.
블록화 효과를 최소화시키기 위해, 교차 블록 상관(cross block correlation)이 이용될 수 있다. 교차 블록 상관을 달성하는 한 방법은 H. Malvar 의 "Signal Processing with Lapped Transforms," Artech House, Norwood MA(1992년)에 기술된 중복 변환(lapped transform)을 사용하는 것이다. 중복 변환은 그의 입력이 현재 블록 내의 데이터 요소 이외에 이웃 블록 내의 몇개의 인접한 요소들에까지 걸쳐 있는 변환을 말한다. 이와 마찬가지로, 재구성 측에서 역 변환은 현재 블록 내의 모든 데이터 포인트는 물론 이웃 블록 내의 몇개의 데이터 포인트에도 영향을 미친다.
2차원(2-D) 데이터의 경우에, 중복 2D 변환은 좌, 상, 우, 하, 그리고 아마도 좌상, 우상, 좌하 및 우하의 블록의 선택 요소과 함께 현재 블록의 함수이다. 현재 변환을 계산하는 데 사용되는 이웃 블록 내의 데이터 포인트의 수를 오버랩(overlap)이라고 한다.
공간 영역 중복 변환의 개요
중복 변환은 변환 영역에서 종래의 블록 변환 이후에 변환 영역 수량들을 병합하는 단계로서 구현될 수 있다. 그 밖에, 중복 변환은 공간 영역에서 오버랩 범위 내의 픽셀들에 적용되는 사전 처리 스테이지에 의해 구현될 수 있다. 이들 2가지 구현은 수학적으로 관련되어 있으며 따라서 동등하다.
도 2는 종래의 공간-영역 중복 변환의 예를 나타낸 것이다. 도시된 예에서, 오버랩은 2 픽셀이고, 도시된 2개의 인접 블록으로부터 하나씩 2개의 픽셀이 사전 처리 스테이지(210)에서 사전 처리된다. 2개의 사전 처리된 출력은 도 1에서와 같이 코덱(100)에 의한 블록 변환-기반 코딩을 위한 블록들 각각으로 전송된다. 사전 처리 스테이지의 역이 디코딩 이후에 사후 처리 스테이지(220)에서 적용된다. 사전 처리 및 블록 변환의 신중한 선택으로, 광범위한 중복 변환이 실현될 수 있다.
중복 변환의 공간 영역 실현의 주요 이점은 기존의 블록 변환-기반 코덱이 기존의 코덱 프레임워크를 사용하여 중복 변환의 이점, 즉 감소된 블록 효과 및 더 나은 압축을 도출하기 위해 사전 및 사후 처리 스테이지로 개선될 수 있다는 것이다. 사전 처리(210) 및 사후 처리는 도 3에 나타낸 바와 같이 행렬 곱셈으로 표현될 수 있다. 종래에는, 사전 처리 및 사후 처리 행렬은 서로의 역행렬이다, 즉 사전 처리 행렬(Pf)와 역 또는 사후 처리 행렬(Pi)를 서로 곱하면 항등 행렬(I)가 된다.
정의
일반적으로, 변환의 길이 N은 어떤 변환 블록 내의 변환 계수의 수를 말한다.
변환의 서포트 (support) K는 변환 블록의 계수에 영향을 미치는 입력 데이터 포인트의 수를 말한다. 이와 마찬가지로, 이는 역 변환의 프로세스에 의하면 각각의 변환 계수에 의해 영향을 받는 출력 데이터 포인트의 수를 말한다.
이산 코사인 변환(DCT) 등의 일반적인 블록 변환의 경우, 길이 및 서포트는 동일하다. 그렇지만, 중복 변환(lapped transform, LT)은 서포트 K가 길이 N보다 큰 중요한 부류의 변환이다. 표기법 K×N은 중복 변환의 서포트 및 길이를 나타내는 데 사용된다. (K < N인 변환은 확장성(expansive)이고 따라서 데이터 압축에서 는 사용되지 않는다)
예(300)로서, 도 3에 도시된 6x4 LT(310)는 6개의 입력과 4개의 출력을 갖는 변환이다. 변환이 가역이기 때문에, 입력 중 2개가 인접 변환 블록과 공유된다. 역 중복 변환(ILT)(320)은 그의 4개의 입력으로부터 6개의 출력을 생성한다. 블록 경계 근방의 출력 데이터 포인트(이 경우 블록의 각 단부에 있는 하나의 포인트)는 2개의 인접한 역 변환 블록의 대응하는 응답을 합산함으로써 재구성된다.
압축 시스템에서 사용되는 중복 변환에 대한 제약
수학적 의미에서, 우리가 입력 및 출력 신호는 물론 중간 계산 결과를 실수(real number)로서 간주할 때, 중복 변환은 가역 구조이다. 무한 정밀도(infinite precision)가 달성될 수 있기 때문에, 입력 데이터는 양호하게는 그의 중복 변환 계수로부터 복원될 수 있다. 그렇지만, 무한 정밀도는 실제로 가능하지 않으며, 무손실 데이터 압축을 위해서는, 정수 또는 고정 정밀도 계산에 동작하면서도 변환 계수의 정수 표현이 주어진 경우 데이터를 완벽하게 재구성하는 변환을 설계해야만 한다. 이것이 수학적 가역성보다 더 강력한 조건이며, 이러한 변환을 본 명세서에서는 "무손실" 변환(lossless transform)이라고 한다. 게다가, 무손실 변환은 데이터 압축(무손실 및 손실 압축 모두)에도 역시 효율적이어야만 한다. 그 효율성은 변환된 데이터의 엔트로피에 의해 측정될 수 있으며, 그 엔트로피가 낮을수록, 변환된 데이터는 컨텍스트-기반 산술 코딩(context-based arithmetic coding) 또는 적응적 런-길이 코딩(adaptive run-length coding) 등의 표준의 엔트로피 코딩 기술에 의해 더 많이 압축될 수 있다.
본 명세서에서 정수 계산에서 가역적이고 효율적이고 무손실의 데이터 압축/복원 시스템의 기초로서 사용될 수 있는 효율적인 중복 변환의 여러가지 실시예에 대해 기술된다.
가장 효율적인 무손실 변환 설계(즉, 변환된 데이터의 엔트로피가 최소인 설계)가 되려면 변환 행렬이 단위 행렬식(즉, 변환 행렬의 행렬식이 ±1임)이어야만 함은 입증될 수 있다. 이하의 설명에서, 데이터 반올림 등의 사소한 비선형적 현상이 있을 수 있음을 알고 있지만, 변환이 행렬 곱셈으로 표현될 수 있는 것으로 가정한다. 따라서, 우리가 행렬식을 언급할 때, 버림(truncation) 또는 반올림(rounding) 측면은 고려하지 않는다.
효율적인 중복 변환은 본 명세서에서 "오버랩 연산자(overlap operator)"라고 말하는 사전 및 사후 필터를 사용하여 실현된다. 이 구현은 가역적이면서도 아주 R-D 효율적이다. 다른 응용들 중에서도 특히, 이들 새로운 오버랩 연산자는 무손실 이미지 압축에 사용될 수 있는 가역적 LBT의 구현을 가능하게 해준다. 사전 및 사후 필터는 가역적 연산을 사용한다. 게다가, 기술된 오버랩 연산자는 계산상의 효율성을 위한 단순화를 포함한다.
사전 및 사후 필터링 연산의 한 구현은 단위 행렬식 성분 행렬로 구성된 1차원 가역 오버랩 연산자를 사용한다. 보다 구체적으로는, 가역 오버랩 연산자는 평면 회전 변환(planar rotational transform) 및 단위 행렬식 평면 스케일링 변환(unit determinant planar scaling transform)의 연속으로서 구현된다. 평면 스케일링 변환은 평면 절단(planar shear) 또는 리프팅 스텝(lifting step)을 사용하여 구현될 수 있다. 게다가, 평면 회전 및 평면 절단은 가역/무손실 연산인 구현을 가지며, 그 결과 가역 오버랩 연산자를 제공한다.
예시적인 응용은 가역 오버랩 연산자의 계산상 효율적인 근사화를 사용하여 구현된 8x4 1차원 중복 변환이다.
2차원 중복 변환을 위해서는, 오버랩 연산자의 이 1차원 구현은 디지털 미디어 데이터의 블록의 수평 행에 개별적으로 적용되고, 이어서 그 데이터의 수직 열에 이 1차원 연산자를 적용한다. 이 방법은 몇 가지 단점을 가지며, 그 중 가장 심각한 것은 다음과 같다.
1. 효율적인 데이터 압축을 위한 정규화된 사전/사후 필터를 획득하는 것이 어렵거나 거의 불가능함.
2. 이러한 근사화가 달성가능한 경우 고도로 복잡함.
3. 이러한 근사화가 구현될 때 다중 필터링/리프팅 스텝으로 인해 부정확함.
본 명세서에 기술된 2차원 중복 변환의 대체 구현은 1차원 오버랩 연산자를 수평 및 수직으로 개별적으로 적용하는 방법보다 더 나은 계산상의 효율성을 달성한다. 이 대체 구현은 1차원 오버랩 연산자를 여러 스테이지로 분리하고, 오버랩 연산자의 수평 및 수직 적용의 스테이지들을 분산시킨다. 각 스테이지 내에서, 리프팅 스텝에서 구현된 정규화된 스케일링 연산이 분산된 2차원 구조에서 "교차 항(cross term)"의 소거에 주목함으로써 데이터 블록의 더 제한된 서브셋(예를 들어, 4x4 데이터 블록의 2x2 서브셋 또는 신호 쌍)에 적용될 수 있다. 이 결과 효 율적인 무스케일링(scale-free) 가역 2D 사전/사후 필터가 얻어진다.
2D 사전/사후 필터는, 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression"인 Srinivasan의 미국 특허 출원 제11/015,707호(여기에 인용함으로써 그의 내용은 본 명세서에 포함됨)에 기재된 효율적인 무스케일링 가역 2D 블록 변환 등의 가역 변환과 결합될 수 있다. 결합된 사전/사후 필터 및 변환은 이미지 및 비디오의 효과적이고 계산상 효율적인 압축(무손실 및 손실 압축 둘다)을 위해 사용될 수 있는 중복 변환을 형성한다.
본 발명의 부가의 특징 및 이점은 첨부 도면을 참조하여 진행되는 실시예들의 이하의 상세한 설명으로부터 명백하게 될 것이다.
이하의 설명은 중복 변환을 위해 가역 2차원 사전/사후 필터를 이용하는 디지털 미디어 압축 시스템 또는 코덱에 관한 것이다. 설명의 목적상, 이 2차원 사전/사후 필터링을 포함하는 압축 시스템의 실시예는 이미지 또는 비디오 압축 시스템이다. 다른 대안에서는, 다른 2D 데이터를 위해 가역 오버랩 연산자도 역시 압축 시스템 또는 코덱에 포함될 수 있다. 가역 오버랩 연산자는 디지털 미디어 압축 시스템이 압축된 디지털 미디어 데이터를 특정의 코딩 포맷으로 인코딩할 것을 요구하지 않는다.
1. 인코더/디코더
도 4 및 도 5는 가역 오버랩 연산자를 사용하는 중복 변환에 기초한, 대표적 인 2차원(2D) 데이터 인코더(400) 및 디코더(500)에서 사용되는 프로세스의 일반화된 다이어그램이다. 이 다이어그램은 2D 데이터 인코더 및 디코더를 포함하는 압축 시스템에서의 이 가역 오버랩 연산자의 사용 및 적용의 일반화된 또는 간략화된 설명을 제공한다. 이 가역 오버랩 연산자에 기초한 대체 인코더에서는, 2D 데이터 압축을 위해 이 대표적인 인코더 및 디코더에 예시된 것보다 더 많거나 더 적은 프로세스가 사용될 수 있다. 예를 들어, 어떤 인코더/디코더는 또한 컬러 변환(color conversion), 컬러 포맷, 스케일러블 코딩(scalable coding), 무손실 코딩, 매크로블록 모드, 기타 등등을 포함할 수 있다. 압축 시스템(인코더 및 디코더)은 무손실(lossless)부터 손실(lossy)까지 변화하는 양자화 파라미터에 기초할 수 있는 양자화에 따라, 2D 데이터의 무손실 및/또는 손실 압축을 제공할 수 있다.
2D 데이터 인코더(400)는 인코더에 입력으로서 제공된 2D 데이터(400)의 (일반적인 입력에 대한) 더욱 콤팩트한 표현인 압축된 비트스트림(420)을 생성한다. 예를 들어, 2D 데이터 입력은 이미지, 비디오 시퀀스의 프레임, 또는 2개의 차원을 갖는 기타의 데이터일 수 있다. 2D 데이터 인코더는 입력 데이터를, 이 대표적인 인코더에서 크기가 16x16 픽셀인 매크로블록으로 타일화(tiling)한다(430). 2D 데이터 인코더는 각각의 매크로블록을 4x4 블록(432)으로 추가로 타일화한다. "전방 오버랩(forward overlap)" 연산자가 블록 사이의 각각의 엣지에 적용되고, 그 후에 각각의 4x4 블록은 블록 변환(450)을 사용하여 변환된다. 이 블록 변환(450)은 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression"인 Srinivasan의 미국 특허 출원 제11/015,707호(여기에 인용함으로써 그의 내용은 본 명세서에 포함됨)에 기재된 가역, 무스케일링 2D 변환일 수 있다. 다른 대안에서는, 이산 코사인 변환 또는 다른 블록 변환이 본 명세서에 기술된 가역 오버랩 연산자와 함께 사용될 수 있다. 이 변환에 뒤이어서, 각각의 4x4 변환 블록의 DC 계수(460)는 유사한 일련의 처리(타일화, 전방 오버랩, 그에 뒤이은 4x4 블록 변환)를 받게 된다. 그 결과 얻어지는 DC 변환 계수 및 AC 변환 계수는 양자화(470), 엔트로피 코딩(480) 및 패킷화(490)된다.
디코더는 반대의 프로세스를 수행한다. 디코더 측에서, 변환 계수 비트가 그의 개별적인 패킷으로부터 추출되는 데(510), 이 패킷으로부터 계수 그 자체가 디코딩(520) 및 역양자화(530)된다. DC 계수(540)는 역 변환을 적용함으로써 재생성되며, DC 계수의 평면은 DC 블록 엣지에 걸쳐 적용되는 적당한 평활화 연산자(smoothing operator)를 사용하여 "역 오버랩"된다(inverse overlapped). 그 후에, 전체 데이터는 DC 계수에 4x4 역 변환(550)을 적용함으로써 재생성되고, AC 계수(542)는 비트스트림으로부터 디코딩된다. 마지막으로, 결과 이미지 평면 내의 블록 엣지는 역 오버랩 필터링된다(inverse overlap filtered)(560). 이것은 재구성된 2D 데이터 출력을 생성한다.
예시적인 구현에서, 인코더(400)(도 4)는 입력 이미지를 압축된 비트스트림(420)(예를 들어, 파일)으로 압축하고, 디코더(500)(도 5)는 무손실 또는 손실 코딩이 사용되는지에 따라 원래의 입력 또는 그의 근사를 재구성한다. 인코딩의 프로세스는 이하에서 논의되는 전방 중복 변환(LT)의 적용을 포함하며, 이 전방 중복 변환은 역시 이하에서 보다 자세히 기술되는 가역 2차원 사전/사후 필터링으로 구현된다. 디코딩 프로세스는 가역 2차원 사전/사후 필터링을 사용하는 역 중복 변환(ILT)의 적용을 포함한다.
예시된 LT 및 ILT는 엄밀한 의미에서 서로의 역이며, 따라서 이를 합하여 가역 중복 변환이라고 말할 수 있다. 가역 변환으로서, LT/ILT 쌍은 무손실 이미지 압축에 사용될 수 있다.
예시된 인코더(400)/디코더(500)에 의해 압축된 입력 데이터(410)는 여러가지 컬러 포맷(예를 들어, RGB/YUV 4:4:4 또는 YUV 4:2:0 컬러 이미지 포맷)의 이미지일 수 있다. 일반적으로, 입력 이미지는 항상 루미넌스(Y) 성분(luminance component)을 갖는다. 이미지가 RGB/YUV 4:4:4 또는 YUV 4:2:0 이미지인 경우, 그 이미지는 또한 U 성분 및 V 성분 등의 크로미넌스 성분(chrominance component)도 갖는다. 이미지의 개별적인 컬러 평면 또는 성분은 서로 다른 공간 분해능을 가질 수 있다. 예를 들어, YUV 4:2:0 컬러 포맷으로 된 입력 이미지의 경우, U 및 V 성분은 Y 성분의 폭 및 높이의 1/2을 갖는다.
전술한 바와 같이, 인코더(400)는 입력 이미지 또는 화상(picture)을 매크로블록으로 타일화한다. 예시적인 구현에서, 인코더(400)는 Y 채널에서 입력 이미지를 16x16 매크로블록으로 타일화한다(이는 컬러 포맷에 따라 U 및 V 채널에서 16x16 또는 8x8 영역일 수 있음). 각각의 매크로블록 컬러 평면은 4x4 영역 또는 블록으로 타일화된다. 따라서, 매크로블록은 이 예시적인 인코더 구현에 있어서 여러가지 컬러 포맷에 대해 이하의 방식으로 구성된다.
1. 그레이스케일 이미지의 경우, 각각의 매크로블록은 16개의 4x4 루미넌스(Y) 블록을 포함한다.
2. YUV 4:2:0 포맷 컬러 이미지의 경우, 각각의 매크로블록은 16개의 4x4 Y 블록, 및 4개의 4x4 크로미넌스(U 및 V에 대해 각각) 블록을 포함한다.
3. RGB 또는 YUV 4:4:4 컬러 이미지의 경우, 각각의 매크로블록은 Y, U 및 V 채널 각각 16개의 블록을 포함한다.
2. 오버랩 연산자를 사용하여 실현된 중복 변환
보다 일반적으로, 인코더(400)(도 4)의 오버랩 연산자(440) 및 블록 변환(450)은 도 6에 예시된 사전 필터링 연산(610) 및 그 다음에 오는 블록 데이터 변환(620)으로 분해될 수 있는 대규모급의 중복 변환(600)의 예이다. 도 6은 이러한 분해된 중복 변환의 일반화된 예이다. 이 예시된 경우에, 도 3에 도시된 6x4 중복 변환(310)은 사전 필터 연산(610) 스테이지 및 블록 변환(620) 스테이지로 분해된다. 사전 필터링 연산(610) 및 블록 변환(620)은 데이터 포인트들에 걸쳐 균등하게 엇갈리게 정렬된다. 이 예시된 6x4 중복 변환(600) 예에서, 각각의 사전 필터는 인접 블록들에 걸쳐 있는 데이터 포인트들의 길이 2 변환(length 2 transformation)이다. 디코드 측에서, 사후 필터(640)는 블록 경계에 걸쳐 역 블록 변환(630) 이후에 적용된다. 이와 유사하게, 일반적인 K×N의 경우, 사전 필터는 블록 경계에 인접한 각 블록의 (K-N)/2 개의 데이터 포인트에 적용된다.
가역성을 위해, 사전 필터(610) 및 사후 필터(640)는 서로의 역이다. 그렇지만, 무손실 중복 변환을 실현하기 위해서는, 이 조건으로 충분하지 않다. 이것 은 블록(코어) 변환(620)이 무손실 방식으로 실현되도록 하는 것에 부가하여 또한 무손실 변환이 되기 위해 사전 및 사후 필터(610, 640)를 추가로 제약한다. DCT는 그 중에서도 특히, 사다리(ladder), 격자(lattice) 또는 리프팅(lifting)-기반 방법을 사용하여 무손실 방식으로 실현될 수 있다. 예를 들어, A. A. M. L. Bruekens 및 A. W. M. van den Enden의 "New networks for perfect inversion and perfect reconstruction", IEEE J. Selected Areas Communications, vol. 10, no. 1(1992년), 및 I. Daubechies 및 W. Sweldens의 "Factoring wavelet transform into lifting steps", J. Fourier Anal. Appl., vol. 4, pp. 247-269(1998년)을 참조하기 바란다. 가역 무스케일링 2차원 변환도 역시 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression"인 Srinivasan의 미국 특허 출원 제11/015,707호(여기에 인용함으로써 그의 내용은 본 명세서에 포함됨)에 기술되어 있다. 1차원에서의 DCT에 대한 리프팅-기반의 가역 근사도 역시 알려져 있다. 예를 들어, J. Liang 및 T. D. Tran의 "Fast Multiplierless Approximations Of The DCT With The Lifting Scheme," IEEE Trans. Signal Processing, vol. 49, pp. 3032-3044(2001년 12월)을 참조하기 바란다.
효율적인 가역성은 양 스텝, 즉 사전/사후 필터 및 블록 변환이 단위 행렬식이어야 할 것을 요구한다.
3. 가역 오버랩 연산자
인코더(400)/디코더(500)(도 4 및 도 5)가 기초로 하고 있는 무손실 중복 변 환(600)의 사전 필터(610)(도 6)로서 사용하기 위한 효율적인 가역 오버랩 연산자는 선형 위상 사전 필터(linear phase pre-filter)로서 실현될 수 있으며, 이 사전 필터는 도 7에 도시된 구조로 분해된다. 이 사전 필터의 역(즉, 사후 필터(640))도 역시 동일한 구조를 갖지만 서로 다른 계수를 갖는다.
이 선형 위상 필터 구조(700)는 그의 입력 및 출력에서의 크로스-오버(cross-over) Hadamard 네트워크(710)를 비롯한 다수의 직교 성분을 갖는다. 예시된 Hadamard 네트워크(710) 내의 내부 화살표는 이 다이어그램에서 부정(negation)을 나타낸다. 구조(700)는 또한 직교 행렬 U1, U2, V1 및 V2를 포함한다. 이들 성분은 격자/리프팅 기반 방법을 사용하여 무손실 방식으로 구현될 수 있다.
게다가, 구조(700)는 영이 아닌 스케일 인자(nonzero scale factor) sI 내지 sM을 갖는다. 단위 행렬식 제약은
Figure 112005072398323-PAT00002
임을 암시한다. 모든 스케일 인자가 ±1일 때, 사전/사후 필터는, 성분 행렬 U1, U2, V1 및 V2이 무손실 격자/리프팅 스텝으로서 구현되는 무손실 변환으로서 실현될 수 있다. 그렇지만, 스케일 인자가 모두 ±1인 것은 아닌 경우, 무손실 구현은 이하에 보다 상세히 논의되는 바와 같이 해소될 난제로 남아 있다.
이 선형 위상 사전 필터 구조(700)의 경우, 무손실 사전/사후 필터쌍을 실현하는 문제는 이하의 3개의 스텝으로 줄어든다.
1. 직교 행렬 U1, U2, V1 및 V2를 위해, 필터 F를 수학식 1의 형태로 분해한다.
Figure 112005072398323-PAT00003
여기서, I는 항등 행렬이고,
Figure 112005072398323-PAT00004
이다.
2. U1, U2, V1 및 V2에 대한 무손실 구현을 도출한다.
3. 스케일링 행렬에 대한 무손실 구현을 도출한다.
스텝 1에 관하여, 2 포인트 Hadamard 변환을 정의하는 우변의 첫번째 및 마지막 행렬은 이들 스테이지를 단위 행렬식으로 만들기 위해 어떤 항들에 1/2의 인자를 포함하고 있다. 나머지는 2개의 블록 - 각각의 절반이 F의 선형 차원임 - 을 갖는 블록 대각 형태로 재정렬된다. 각각의 블록의 특이값 분해(singular value decomposition), 즉 SVD는 직교 행렬 U1, U2, V1 및 V2는 물론 스케일을 제공한다.
성분 행렬의 무손실 구현은, A. A. M. L. Bruekens 및 A. W. M. van den Enden의 "New networks for perfect inversion and perfect reconstruction", IEEE J. Selected Areas Communications, vol. 10, no. 1(1992년)에 기술된 것 등의 표준의 리프팅-기반 기술을 사용하여 스텝 2에서 도출될 수 있다.
스텝 3에서의 스케일링 행렬의 무손실 구현은 다음과 같이 해소된다. 간단함을 위해, (a) 무손실이고 (b) 첫번째 성분에 대해서는 s(0 < s < 1)에 의해 또한 두번째 성분에 대해서는 1/s에 의해 스케일링을 실현하는 어떤 2 입력 2 출력 성분을 갖는 것으로 가정한다(다른 경우는 하나 또는 양쪽 출력 신호의 부호를 반전시킴으로써 달성될 수 있다). 환언하면, 입력-출력 관계가 수학식 2와 같이 주어진다.
Figure 112005072398323-PAT00005
수학식 2에서의 변환 행렬의 행렬식은 s/s = 1이다. 이 행렬은 도 8 및 도 9에 도시한 바와 같이 4개의 리프팅 스텝 절차(800) 또는 5개의 리프팅 스텝 절차(900)에서 실현된다. 보통 리프팅 스텝들 모두를
Figure 112005072398323-PAT00006
의 형태로 근사화하며, 여기서 x는 입력이고 y는 출력이며, a, b 및 r은 정수이고, r은 나눗셈 없는 정수(division-less integer) 구현을 얻기 위해 반올림 에러 제어에 사용된다. 수학식 2에 의해 정의된 변환은 여기서 단위 행렬식 스케일링 변환(unit determinant scaling transform), 약하여 스케일링 변환(scaling transform)이라고 말한다.
흥미롭게도, 스케일링 변환은 수학식 3에 정의된 바와 같이 절단 연산(shear operation)과 밀접하게 관련되어 있다.
Figure 112005072398323-PAT00007
제약 조건
Figure 112005072398323-PAT00008
하에서, 절단 연산은 단위 행렬식을 가지 며 또 3개의 리프팅 스텝으로 실현될 수 있다.
Figure 112005072398323-PAT00009
따라서,
Figure 112005072398323-PAT00010
이다.
여기서, 절단 행렬(shear matrix)을 사이에 두고 있는 행렬에서의 스케일링 인자 1/2 및 2는 절단 리프팅 스텝들로 분산되고, 첫번째 행렬의 마지막 리프팅 스텝은 첫번째 절단 시프팅 스텝과 결합되는 반면, 마지막 행렬의 첫번째 리프팅 스텝은 첫번째 절단 리프팅 스텝과 결합된다. 도 9에 도시된 스케일링 변환의 절차(900)로서의 5 스텝 구현은 수학식 5에 기초하고 있다. 이 구조로의 단순화는 가능한 경우 수학식 1에서의 3개의 그룹 사이에서 역 연산, 즉 Hadamard 네트워크, 직교 행렬 및 스케일링 연산(이는 차례로 Hadamard 및 절단 연산으로 분해될 수 있음)을 소거함으로써 가능하게 될 수 있다.
보다 상세하게는, 절차(800)로서의 무손실 스케일링의 4 리프팅 스텝 구현의 효과적인 변환 행렬은
Figure 112005072398323-PAT00011
이며, 여기서
Figure 112005072398323-PAT00012
이다. 반면에, 절차(900)에서의 5 리프팅 스텝 구현의 효과적인 변환 행렬은
Figure 112005072398323-PAT00013
이고, 여기서
Figure 112005072398323-PAT00014
이다.
도 8에 도시된 스케일링 절차(800)가 도 9의 것보다 하나 더 적은 리프팅 스텝을 갖지만, 후자의 절차(900)는 전자에서의 4개와는 반대로 단지 3개의 자명하지 않은 리프팅 스텝(non-trivial lifting step)을 갖는다. 상기 문단에서 기술한 이유 때문에, 도 9에서의 첫번째 또는 마지막 자명한 리프팅 스텝(trivial lifting step)은 어떤 조건 하에서(예를 들어, U1, U2 및 V1이 항등 행렬일 때) 이전의 또는 이후의 변환 스텝과(예를 들어, 도 7의 양단에 있는 Hadamard 네트워크(710)과) 병합될 수 있다.
스케일링 절차는 더 큰 행렬로 용이하게 확장될 수 있다. 이것은 도 10에 예시되어 있으며, 여기서 M개의 아마도 서로 다른 스케일 인자 s1 내지 sM이 스케일링 변환의 케스케이드(1000)로서 M개의 데이터 경로에 적용된다. 이것을 가역 방식으로 달성하기 위해, 일반적으로 M-1개의 가역 스케일링 변환이 필요하다.
한가지 유용한 특별한 경우는 M개의 스케일 인자 s1 내지 sM이 형태 (s, 1/s)의 M/2개의 그룹으로 그룹화될 수 있을 때이다. 이 경우, 단지 M/2개의 가역 스케일링 변환만이 필요하다. 일례가 s1=s2=...=sM/2=s 및 sM/2+1=sM/2+2=...=sM=1/s이 다. 그룹화하는 양호한 방식은 중심축에 대해 대칭을 유지하는 것이다. 환언하면, 각 그룹이 계수 si 및 sM+1-i를 스케일링하는 것이다. M이 홀수인 경우, 그룹화되지 않는 하나의 스케일 인자가 1이며, 이는 축을 따르는 데이터 경로에 대응한다.
사전/사후 필터가 신호 밖으로 확장할 필요가 있는 경우 신호 경계 상에서, 한가지 해결책은 신호 대칭성을 확장하고 이어서 사전/사후 필터를 적용하는 것이다. 이것은 일반적으로 스케일링으로 인해 무손실 연산이 아니다. 다른 해결책은 경계 상에서 사전/사후 필터링을 건너뛰는 것이다. R-D 성능은 물론 인지 품질(예를 들어, 손실 이미지/비디오 압축에 사용되는 경우)의 관점에서 이 2개의 해결책 간에는 눈에 띄는 차이가 없다.
이제 도 11을 참조하면, 이어서 원하는 R-D 효율적인(즉, 단위 행렬식) 특성을 갖는 가역 오버랩 연산자가 가역, 단위 행렬식 Hadamard 네트워크(710), 가역 직교 회전(1000)(성분 행렬 U1, U2, V1 및 V2에 대한), 및 가역 단위-행렬식 스케일링(1120)(예를 들어, 리프팅 스텝 절차(800, 900) 또는 케스케이드(1100)를 사용함)을 포함하는 선형 위상 사전 필터 구조(700)(도 7)로서 실현된다. 사후 필터는 사전 필터와 유사하며, 동일한 구성을 사용하여 구축되지만 역 리프팅 스텝들은 역순으로 되어 있다. 이것은 도 7에 예시되어 있으며, 여기서 블록 내의 데이터 값의 수 M은 일반적으로 임의의 자연수이다. 이 예시가 짝수값을 갖는 M에 대한 것이지만, 중심 데이터 값의 "1 포인트 Hadamard" 변환이 그 자체라는 것에 주목함으 로써 홀수값도 역시 가능하다. 이 절차는 더 높은 차원의 데이터로 일반화될 수 있다.
요약하면, 가역 오버랩 연산자의 동작은 도 12에 예시되어 있다. 첫번째 스텝(1210)에서, 입력 2차원 디지털 미디어 데이터는 블록들로 타일화된다(이 역시 도 4의 인코더(400)에 대해 도시된 바와 같음). 스텝(1220)에서 가역 오버랩 연산자는 인접 타일들에 걸쳐 Hadamard 네트워크(710)를 적용한다. 이 연산자는 이어서 스텝(1230)에서 합 및 차에 가역 회전을 적용하고, 뒤이어서 스텝(1240)에서 가역 스케일링 연산자가 오게 된다. 이 다음에 다른 가역 블록 회전[스텝(1250)] 및 가역 역 Hadamard 네트워크[스텝(1260)]이 오게 된다.
이제 도 13을 참조하면, 가역 블록 회전 및 스케일링 연산자의 행렬 표현은 예를 들어 수학식 1에 기술된 계산을 사용하는 원하는 중복 연산자(lapped operator)에 달려 있다. 도 13은 도 7 및 도 11에 도시된 구조(700)를 갖는 사후 필터 및 이에 선행하는 가역 블록 변환(이 경우 4 포인트 Hadamard 변환)의 예를 나타낸 것이다. 사후 필터의 전달 함수는 수학식 6과 같다.
Figure 112005072398323-PAT00015
Hadamard의 저역 통과 성분은 도 14의 그래프에 나타낸 임펄스 응답을 생성한다.
4. 오버랩 변환 모드
한 예시적인 구현에서, 인코더(400) 및 디코더(500)는 서로 다른 유형의 변환(예를 들어, 본 명세서에 기술된 중복 변환은 물론, 오버랩 필터링이 생략되는 모드)을 사용하여 다수의 압축 모드를 지원한다. 인코딩 프로세스 동안에, 내부 파라미터 OverlapMode는 사용자에 의해 제공된다. 이 파라미터는 인코딩에 사용되는 변환의 유형을 결정하며, 비트스트림을 통해 디코더에 신호된다. 예시적인 구현에서, OverlapMode의 3가지 선택, 즉 "OL_NONE", "OL_ONE" 및 "OL_TWO"이 허용되며, 다음과 같이 동작한다.
1. OL_NONE는 블록 변환이 이미지를 압축하는 데 사용됨을 신호한다.
2. OL_ONE은 중복 변환이 고역 통과(디테일) 이미지에 사용되고 블록 변환이 저역 통과(DC) 이미지 성분에 사용됨을 신호한다.
3. OL_TWO는 중복 변환이 이미지의 고역 통과 및 저역 통과 성분 모두에 사용됨을 신호한다.
다른 인코더/디코더 구현에서, 더 적은 또는 더 많은 변환 모드가 지원될 수 있다.
예시적인 구현에서, 도 17에 도시하고 이하에 보다 상세히 기술하는 바와 같이, 중복 변환은 인코더 측에서 4x4 사전 필터[전방 오버랩(440)] 및 이 다음에 오는 4x4 블록 변환(450)으로서 구현된다. 도 18에 도시되고 이하에서 보다 상세히 기술하는 바와 같이, 디코더 측에서는, 중복 변환은 4x4 역 블록 변환(550) 및 그에 뒤따르는 4x4 사후 필터(역 오버랩(560))에 의해 구현된다. 블록 변환만이 사 용되는 경우(예를 들어, OL_NONE 모드, 및 OL_ONE 모드 압축된 이미지의 저역 통과 대역에 대해), 사전 및 사후 필터링 스텝이 생략된다.
YUV 4:2:0 포맷에서의 루미넌스 저역 통과 컬러 평면의 특별한 경우에, 필터 및 변환 블록 크기는 2x2이다. 이하의 설명은 필터/변환 크기를 언급하는 데 용어 "4x4"를 사용하며, 2x2 블록이 이 특수한 경우에 사용될 것임을 알 것이다.
도 15에 도시된 바와 같이, 이 예시적인 인코더 구현에서의 블록 변환은 자연스런 4x4 그리드(natural 4x4 grid)에 대해 수행된다. 즉, 4x4 타일 내의 픽셀들의 어레이는 매크로블록 경계와 일렬로 정렬되어 있다. 필터링 프로세스는 엇갈리게 정렬된 4x4 그리드에 대해 수행된다. 즉, 4x4 타일 내의 픽셀들의 어레이는 매크로블록 경계로부터 수평 및 수직 방향 모두에서 2만큼 오프셋되어 있다. 도 15의 다이어그램(1500)에서, 표시된 4개의 블록(1510-1513)은 변환을 위한 자연스런 그리드(natural grid)에 대응하고, 중앙에 있는 음영된(회색) 블록(1520)은 사전/사후 필터가 적용되는 영역이다. 중심 블록 내의 픽셀들은 오버랩 연산자에 대한 "서포트(support)"라고 한다. 도 16은 2x2 특별한 경우에 대한 변환 및 오버랩 연산자의 정렬(1600)을 나타낸 것이다.
예시적인 구현에서 사용되고 4x4 블록 각각에 적용되는 블록 변환은 본 명세서에서 "코어" 변환(core transform)이라고 한다. 이 코어 변환은 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression"인 Srinivasan의 미국 특허 출원 제11/015,707호(여기에 인용함으로써 그의 내용은 본 명세서에 포함됨)에 기술되고 또 이하에서 "코어 변환"이라는 제목의 섹션에서 논의되는 가역 근사 4x4 DCT를 구현한다. 코어 변환 후에, 블록은 1개의 DC 계수(460) 및 15개의 AC 계수(462)(도 4에 예시됨)의 계수 블록에 매핑된다.
사전/사후 필터[도 4의 전방 오버랩(440) 및 도 5의 역 오버랩(560)]는 코어 변환과 함께 본 명세서에서 중복 연산자(lapped operator)라고도 하는 중복 변환(lapped transform)을 구현한다.
인코더(400)(도 4)에 의해 코어 변환(450)이 적용된 후에, 화상의 모든 블록의 DC 계수(460)는 DC 서브대역(subband)을 형성하기 위해 수집된다. 코어 변환의 두번째 스테이지는 이 DC 서브대역에 적용된다. OverlapMode = OL_TWO인 경우, 두번째 스테이지 오버랩 연산자는 또한 두번째 스테이지 코어 변환 바로 전에 적용된다. 화상이 YUV_444 이미지의 Y 성분, 또는 U 또는 V 성분인 경우, DC 서브대역(460)은 4x4 블록으로 타일화되고, 첫번째 스테이지와 동일한 4x4 PCT 및 4x4 PLO가 사용된다. 그렇지만, 화상이 YUV 4:2:0 이미지의 U 또는 V 성분인 경우, DC 서브대역은 그 대신에 2x2 블록으로 타일화된다. 따라서, 2x2 PCT 및 2x2 PLO가 사용된다. 도 16은 2x2 중복 연산자에 대한 2x2 서포트(1620)를 나타낸 것으로서, 이도 역시 2x2 인접 블록(1610-1613)에 걸쳐 있다.
도 15를 참조하면, 화상의 코너 상에는, 중복 연산자가 걸쳐 있는 4개의 블록 중 하나만이 이용가능하다. 이들은 좌상 코너에 대해서는 블록 3이고, 우상에 대해서는 블록 1이며, 좌하에 대해서는 블록 2이고, 우하에 대해서는 블록 0이다. 이들 경우에, 4x4 또는 2x2 중복 연산자를 건너뛴다.
4개의 코너 이외의 픽처 경계 상에서는, 중복 연산자(1520)가 걸쳐 있는 4개의 블록 중 2개가 이용가능하다. 이들 영역에서는, 1차원 연산자만이 요구된다. 따라서, 4x4 중복 연산자는 1D 4-포인트 중복 연산자의 2가지 경우로 대체된다(2x2 중복 연산자에 대해서도 마찬가지이다).
구체적으로는, 4가지 경우가 있다(도 15를 참조함).
● 서포트(1520, 1620)는 상측 화상 경계에 걸쳐 있으며(블록 0 및 2는 이용가능하지 않고 블록 1 및 3이 이용가능함), 4-포인트 중복 연산자가 포인트(i,j,k,l) 및 포인트(m,n,o,p)에 적용되거나 2-포인트 중복 연산자가 포인트(c,d)에 적용된다.
● 서포트(1520, 1620)는 하측 화상 경계에 걸쳐 있으며(블록 1 및 3은 이용가능하지 않고 블록 0 및 2가 이용가능함), 4-포인트 중복 연산자가 포인트(a,b,c,d) 및 포인트(e,f,g,h)에 적용되거나 2-포인트 중복 연산자가 포인트(a,b)에 적용된다.
● 서포트(1520, 1620)는 좌측 화상 경계에 걸쳐 있으며(블록 0 및 1은 이용가능하지 않고 블록 2 및 3이 이용가능함), 4-포인트 중복 연산자가 포인트(c,g,k,o) 및 포인트(d,h,l,p)에 적용되거나 2-포인트 중복 연산자가 포인트(b,d)에 적용된다.
● 서포트(1520, 1620)는 우측 화상 경계에 걸쳐 있으며(블록 2 및 3은 이용가능하지 않고 블록 0 및 1이 이용가능함), 4-포인트 중복 연산자가 포인트(a,e,i,m) 및 포인트(b,f,j,n)에 적용되거나 2-포인트 중복 연산자가 포인트(a,c) 에 적용된다.
따라서, 인코더(400)(도 4)의 예시적인 구현의 인코딩 프로세스(1700)(도 17)에서 이용되는 중복 변환은 2x2 코어 변환, 4x4 코어 변환, 2x2 중복 연산자, 4x4 중복 연산자, 2-포인트 중복 연산자, 및 4-포인트 중복 연산자를 포함한다. 디코더(500)(도 5)에 의해 이용되는 디코딩 프로세스(1800)(도 18)는 손실없이 이 프로세스를 거꾸로 행한다. 역 코어 변환(inverse core transform)은 인코더의 코어 변환의 완벽한 역이고, 역 중복 연산자(inverse lapped operator)는 인코더의 중복 연산자의 완벽한 역이다. 1차원 4-포인트 중복 연산자는 "가역 오버랩 연산자"라는 제목의 상기 섹션에 기술되어 있다. 2차원 중복 연산자는 다음에 기술된다.
5. 2차원 사전/사후 필터링
한 방법에서, 2차원 사전/사후 필터링(440)(도 4)에 대한 4x4 중복 연산자는 4x4 중복 연산자 서포트(1520)(도 15)에 도 19의 4-포인트 중복 연산자(상기 "가역 오버랩 연산자"라는 제목의 섹션에서도 기술되었음)를 수평 및 수직으로 개별적으로 적용함으로써 구현될 수 있다. 4x4 중복 연산자의 이와 같은 분리가능 방법 구현(2000)은 도 20에 나타내어져 있다. 보다 상세하게는, 이 방법은 1차원 4-포인트 중복 연산자를 4x4 중복 연산자 서포트(1520)의 수직 열(즉, 열 a,e,i,m, 열 b,f,j,n, 열 c,g,k,o 및 열 d,h,l,p)에 적용하고, 이어서 1차원 4-포인트 중복 연산자를 수평 행(즉, 행 a,b,c,d, 행 e,f,g,h, 행 i,j,k,l 및 행 m,n,o,p)에 적용한다. 그렇지만, 이 방법(2000)은 상기 기술적 과제 섹션에 요약된 바와 같이 몇가 지 단점을 갖는다.
본 명세서에 기술된 인코더(400)/디코더(500)의 예시적인 구현은 이들 단점을 해소하는 2차원 사전/사후 필터링(전방 오버랩(440) 및 역 오버랩(560))을 구현하는 데 다른 방법을 사용한다. 이 다른 방법(2100)(도 21)은 이 분리 가능 방법의 수평 및 수직 필터로부터의 연산을 다수의 스테이지로 분산시킨다. 게다가, 연산들은 도 24, 도 29 및 도 30에 나타낸 바와 같이, 정규화된 무스케일링 가역 "버터플라이" 구현(normalized scale-free and reversible "butterfly" realization)을 갖는 2x2 변환을 형성하기 위해 그룹화된다. 게다가, 상기 "가역 오버랩 연산자"라는 제목의 섹션에서 기술된 리프팅 스텝에서 구현된 정규화된 스케일링 연산은 분산된 2차원 구조에서 "교차 항(cross term)"의 소거에 주목함으로써 더욱 제한된 일련의 신호쌍에 적용될 수 있다. 이 결과 효율적인 무스케일링 가역 2차원 사전/사후 필터가 얻어지며, 이는 효율적인 무스케일링 가역 2차원 블록 변환과 관련하여 이미지 및 비디오의 효과적이고 계산상 효율적인 압축(무손실 및 손실 둘다)을 위해 인코더/디코더에서 사용될 수 있는 중복 변환을 제공한다.
도 21에 나타낸 바와 같이, 한 예시된 구현에서의 이 두번째 방법은 사전/사후 필터의 수직 및 수평 연산을 3개의 스테이지로 분산시킨다. 각 스테이지 내에서, 연산들은 4x4 데이터 블록의 4 포인트의 개별적인 그룹에 대한 기본적인 2x2 연산으로 추가로 재정렬된다.
보다 구체적으로는, 사전/사후 필터의 첫번째 스테이지는 물론 마지막 스테이지는 정규화된 2포인트 Hadamard 버터플라이로서 실현된다. 이 스테이지에서의 수직 및 수평 연산은 4x4 데이터 블록 내의 4-포인트의 그룹에 개별적으로 적용되는, 도 22에 나타낸 프로그램 리스트(2200)에 정의된 바와 같은 2x2 정규화된 Hadamard 연산(이는 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression"인 앞서 언급한 Srinivasan의 미국 특허 출원 제11/015,707호(여기에 인용함으로써 그의 내용은 본 명세서에 포함됨)에 기술된
Figure 112005072398323-PAT00016
H 변환임)으로 재정렬된다. 도 23에 나타낸 바와 같이, 이 2x2 정규화된 Hadamard 연산은 2x2 입력 행렬(2300)(포인트 a, b, c 및 d)에 적용된다. 도 23 및 이 문서의 나머지에서 데이터 포인트(등가적으로 픽셀 또는 행렬 요소)와 처리 스텝 간의 대응 관계를 나타내기 위해 쉐이딩(shading)이 사용된다. 입력 행렬 [a b;c d]에 적용되는 기본적인 2x2 연산은 도 23에 나타낸 바와 같이 적절히 계산된다.
이어서, 분산된 방법(2100)(도 21)에서의 스테이지 1 및 스테이지 3이 이 2x2 정규화된 Hadamard 연산(2200)(도 22)의 데이터 블록 내의 4개의 개별적인 4-포인트 그룹(2400)(도 24), 즉 코너에 있는 4-포인트(2410), 중심의 4-포인트(2420), 상/하 엣지 4-포인트(2430) 및 좌/우 엣지에 있는 4-포인트(2440)에의 적용으로 재정렬된다.
반면, 스테이지 2 연산은 2개의 스텝을 포함하며, 첫번째 것은 회전(도 21에 나타내어져 있음)이고 두번째 것은 스케일링(도 21에 도시되어 있지 않음)이다. 일관성을 위해 모든 코덱에 의해 동일한 순서가 유지되어야만 하지만, 이들 2개의 스텝의 순서는 중요하지 않고, 역 중복 변환에 대해 중복 변환에서의 이들의 순서는 반대이다.
회전 스텝은 다시 말하면 연산을 개별적인 2x2 변환으로 재정렬함으로써 구현된다. 저역 통과 항들이 1차원 경우(도 19의 4-포인트 중복 연산자(1900)에서의 포인트 x0 및 x1)에 통과되기 때문에, 2차원에서의 저역-저역 포인트(low-low point)(즉, 양 방향에서 저역 통과)는 또다시 통과된다(즉, 이 스테이지에서 필터링되지 않는다). 이것은 도 29에서의 좌상 2x2 서브블록(2910)에 대응한다.
고역-고역 항(high-high term)(도 29)는 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression"인 앞서 언급한 Srinivasan의 미국 특허 출원 제11/015,707호에 기술된
Figure 112005072398323-PAT00017
변환인, 효율적인 2x2 정규화된 가역 회전 연산(2500)으로 구현된다. 이
Figure 112005072398323-PAT00018
변환은 도 25에 도시된 C 프로그래밍 언어 리스트(2500)로 구현될 수 있다. 자명하지 않은 리프팅 스텝(즉, 이는 3을 곱하는 것을 포함함)에서의 오프셋은 전체 바이어스(overall bias)를 최소화하도록 선택된다. 사후 필터에 대한 이 변환의 역은 도 26에 도시한 C 프로그래밍 언어 리스트(2600)로 구현될 수 있다.
고역-저역(high-low) 및 저역-고역(low-high) 항(2930)(도 29)은 1차원 필터링만을 포함하는데 그 이유는 다른 차원 연산이 통과(pass-through)이기 때문이다. 이들은 도 27에 도시된 C 프로그래밍 언어 리스트(2700)에 정의된 바와 같이 2-포 인트 회전으로 구현된다. 사후 필터에 대한 역 연산은 도 28의 C 프로그래밍 언어 리스트(2800)로 구현된다. 이들 2-포인트 회전은 실제로 잘 동작하는, 2개의 계산상 자명한 리프팅 스텝을 수반하는 간단한 근사이다. 다른 대안으로서, 다른 근사가 사용될 수 있다. 이 2-포인트 회전은 도 29에 쉐이딩으로 나타낸 바와 같이, 고역-저역 및 저역-고역 항(2930)에 대한 4 세트의 2-포인트 연산으로서 적용된다.
스테이지 2의 스케일링 스텝에 관하여, 1차원 4-포인트 중복 연산자(1900)(도 19)는 4개의 포인트를
Figure 112005072398323-PAT00019
만큼 스케일링하는 것을 포함한다. 2차원의 경우에, 스케일링 스텝은
Figure 112005072398323-PAT00020
의 그 자신과의 외적(outer product)을 실현한다. 그 결과 얻어지는 스케일링 행렬은 다음과 같다.
Figure 112005072398323-PAT00021
행렬 요소의 절반이 1이고, 따라서 이들 포인트는 단순히 통과된다. 나머지 요소는 행렬의 중심에 대해 2-포인트 연산에서 대칭적으로 쌍을 이루고 있다(즉, 도 30에서 쉐이딩으로 나타낸 바와 같이, 쌍 3010, 3020, 3030 및 3040). 최상의 레이트-왜곡 성능이 분산된 방식(2100)(도 21)의 스테이지 1 및 3과 조화되기 위해서는 대칭이 필요하다. 각 쌍에 적용된 2-포인트 스케일링 연산 자체는 도 31에 도시된 C 프로그래밍 언어 리스트(3100)로 구현된다. 사후 필터에 대한 역 2-포인트 스케일링 연산은 도 32의 리스트(3200)에 나타내어져 있다. 다른 대안으로서, 2-포인트 스케일링 프로세스에 대한 다른 근사도 역시 가능하다. 게다가, 스케일링 프로 세스는 그의 종료 연산 간의 소거에 주목하면서 스테이지 1 또는 스테이지 3 중 어느 하나의 2x2 Hadamard 연산과 결합될 수 있다.
도 33은 도 21에 나타낸 분산된 방법(2100)을 사용하는 완전한 4x4 중복 연산자의 프로그램 리스트(3300)를 나타낸 것이다. 도 17 및 도 18에 나타낸 인코더(400)/디코더(500)의 예시적인 구현에 대해 전술한 바와 같이, OL_ONE가 참인 경우, 4x4 중복 연산자는 화상의 비코너(non-corner) 및 비경계(non-boundary) 부분에 적용된다. OL_TWO가 참인 경우, 이는 또한 화상이 YUV 4:2:0 이미지의 U 또는 V 성분이 아닌 경우 그의 DC 서브대역의 비코너 및 비경계 부분에 적용된다. 다른 근사 또는 병합된 스텝들(특히 스케일링과 Hadamard 간의)을 갖는 다른 대체 구현이 가능하다.
상기 도 15에 나타낸 바와 같이, 4x4 중복 연산자는 입력 데이터 블록으로서 나타내어질 수 있는 중복 연산자 서포트에 적용된다.
Figure 112005072398323-PAT00022
이어서, 4x4 전방 중복 연산자는 이 프로그램 리스트에서 함수, PLO4x4(a,b,c,d,e,f,g,h,i,j,l,l,m,n,o,p)로서 정의된다. 전술한 바와 같이, 이 함수는 3개의 스테이지에서 2x2 Hadamard 연산(2200)(도 22), 전방 스케일링(3100)(도 31), 2-포인트 회전(2700)(도 27), 및 전방 홀수-홀수 변환(2500)(도 25)을, 도 24, 도 29 및 도 30에 나타낸 입력 블록의 포인트들의 서브그룹에 적용 하는 것을 포함한다.
도 34는 분산된 방법을 사용하는 역 4x4 중복 연산자의 구현의 프로그램 리스트(3400)를 나타낸 것이다. 역 4x4 중복 연산자의 입력 계수 블록이 이하의 블록인 경우,
Figure 112005072398323-PAT00023
연산자는 이 프로그램 리스트에서 함수 IPLO4x4(a,b,c,d,e,f,g,h,i,j,l,l,m,n,o,p)로서 정의된다. 역 4x4 중복 연산자는 3개의 스테이지에서 2x2 Hadamard 연산(2200)(도 22)(이는 그 자신의 역임), 역 홀수-홀수 변환(2600)(도 26), 역 2-포인트 회전(2800)(도 28), 및 역 스케일링(3200)(도 32)을, 도 24, 도 29 및 도 30에 나타낸 계수 블록의 포인트들의 서브그룹에 적용하는 것을 포함한다.
상기한 특별한 경우로서, 도 17 및 도 18에 나타낸 인코더/디코더의 예시적인 구현은 또한 2x2 사전/사후 필터링 연산을 적용한다. 도 35는 2x2 사전 필터링에 대한 프로그램 리스트(3500)를 나타낸 것이다. 2x2 사전/사후 필터링은 스테이지 1에 회전이 없는 것을 제외하고는 4x4 사전/사후 필터링과 유사하다. 따라서, 2x2 사전 필터링은 스테이지 2 회전 스텝을 제거한 상태에서 상기한 4x4 경우에서와 같이 실현될 수 있다. 도 36은 2x2 사후 필터링을 구현하는 프로그램 리스트(3600)를 나타낸 것이다.
도 17 및 도 18에 도시한 인코더/디코더의 예시적인 구현에서, 2D 필터링 스 텝에 충분한 픽셀이 없는 경우 이미지 엣지를 따라 1차원을 따르는 필터링도 필요하다. 1D 필터는 정규화된 무손실 리프팅 구현을 위한 간단한 방법이 없기 때문에 대응하는 2D 필터보다 더 복잡할 수 있다. 1D 사전/사후 필터링의 구현은 상기 "가역 오버랩 연산자"라는 제목의 섹션에서 논의되었다.
도 37은 1차원 2-포인트 중복 연산자의 프로그램 리스트(3700)(C 프로그래밍 언어로 됨)를 나타낸 것으로서, 이는 도 17 및 도 18의 인코더/디코더의 예시적인 구현에서 OL_TWO가 참인 경우 YUV 4:2:0의 U 및 V 성분의 DC 서브대역의 경계에 적용된다. 도 38은 1차원 역 2-포인트 중복 연산자에 대한 프로그램 리스트(3800)를 나타낸 것이다.
도 17 및 도 18의 인코더/디코더의 예시적인 구현은 또한 OL_ONE이 참인 경우, 4-포인트 중복 연산자를 화상의 경계에 적용한다. OL_TWO가 참인 경우, 4-포인트 중복 연산자는 또한 화상이 YUV 4:2:0 이미지의 U 또는 V 성분이 아닌 경우 그의 DC 서브대역의 경계에 적용된다.
Figure 112005072398323-PAT00024
로서 순서화된 입력 데이터에 대한 1차원 4-포인트 전방 중복 연산자는 도 39에 나타낸 프로그램 리스트(3900)(C 프로그램 언어로 됨)에서 함수, PLO4(a,b,c,d)로서 정의된다. 도 40에 나타낸 프로그램 리스트(4000)는 입력 계수
Figure 112005072398323-PAT00025
에 대한 4-포인트 역 중복 연산자를 정의하는 함수, IPLO(a,b,c,d)를 포함한다.
6. 코어 변환
앞서 언급한 바와 같이, 인코더/디코더의 예시적인 구현예는, 상기한 중복 연산자와 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression"인 앞서 언급한 Srinivasan의 미국 특허 출원 제11/015,707호에 기술된 가역 근사 4x4 DCT와의 결합인 중복 변환을 구현한다. 이 예시적인 구현의 인코딩 프로세스(1700)에 대해 도 17에 나타내고 디코딩 프로세스(1800)에 대해 도 18에 나타낸 바와 같이, 인코더/디코더는 2x2 코어 변환, 2x2 역 코어 변환, 4x4 코어 변환 및 4x4 역 코어 변환을 사용한다. 이들 변환의 구현은 도 41 내지 도 46에 나타내고 이하에서 논의되는 프로그램 리스트(C 프로그래밍 언어로 됨)에 정의되어 있다.
2x2 입력 블록에 대한 2x2 전방 코어 변환
Figure 112005072398323-PAT00026
은 2 스텝으로 구현될 수 있다.
1. 도 22의 Hadamard2x2a,b,c,d) 함수(2200)를 적용한다.
2. 포인트 b 및 c를 교환한다.
어떤 구현에서, 스텝 2는 양자화(quantization) 또는 지그재그 스캐닝(zigzag scanning)과 결합될 수 있다.
2x2 계수 블록에 대한 2x2 역 코어 변환
Figure 112005072398323-PAT00027
은 2 스텝으로 구현될 수 있다.
1. 포인트 b 및 c를 교환한다.
2. 도 22의 Hadamard2x2a,b,c,d) 함수(2200)를 적용한다.
어떤 구현에서, 스텝 1은 역양자화(dequantization) 또는 역 지그재그 스캐닝(inverse zigzag scanning)과 결합될 수 있다.
4x4 입력 데이터 블록에 대해 적용된 2x2 전방 코어 변환
Figure 112005072398323-PAT00028
은 2 스텝으로 구현될 수 있다.
1. 도 41에 나타낸 함수(4100), PCT4x4(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)를 적용한다. 4x4 중복 연산자와 유사하게, 이 함수는 분산된 방법을 사용하며, 여기서 연산은 데이터 블록의 포인트의 서브그룹에 대한 2x2 연산으로 정렬된다. 이들 2x2 연산은 도 42에 나타낸 함수(4200)에 구현된 홀수 변환(odd transform), 및 도 43에 나타낸 함수(4300)에 구현된 홀수-홀수 변환(odd-odd transform)을 포함한다. 회전을 구현하기 위해 더 많은 또는 더 적은 리프팅 스텝에 기초하는 다른 근사가 가능하다.
2.
Figure 112005072398323-PAT00029
로부터
Figure 112005072398323-PAT00030
로 데이터 블록을 리셔플링 (reshuffle)한다. 이것은 양자화/지그재그 스캐닝과 결합될 수 있다.
4x4 입력 계수 블록에 대한 4x4 역 코어 변환
Figure 112005072398323-PAT00031
은 이하의 2 스텝으로 구현될 수 있다.
1.
Figure 112005072398323-PAT00032
로부터
Figure 112005072398323-PAT00033
로 계수 블록을 리셔플링(reshuffle)한다. 이것은 역양자화/역 지그재그 스캐닝과 결합될 수 있다.
2. 함수(4100), PCT4x4의 역인, 도 44에 나타낸 함수(4400), IPCT4x4(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)를 적용한다. 함수(4400)는 2x2 변환, 도 45에 나타낸 함수(4500)에 의해 정의된 역 홀수 변환(inverse odd transform), 및 도 46에 나타낸 함수(4600)에 의해 정의된 역 홀수-홀수 변환(inverse odd-odd transform)을 포함한다.
7. 컴퓨팅 환경
4x4 사전/사후 필터링을 사용하는 중복 변환에 기초한 상기한 코덱은, 그 중에서도 특히, 컴퓨터, 이미지 및 비디오 레코딩, 전송 및 수신 장비, 휴대형 비디오 플레이어, 비디오 회의, 및 기타 등등을 비롯한, 디지털 미디어 신호 처리가 수행되는 각종의 장치 중 임의의 것에서 수행될 수 있다. 디지털 미디어 코딩 기술 은 하드웨어 회로는 물론 도 47에 나타낸 바와 같은 컴퓨터 또는 다른 컴퓨팅 환경 내에서 실행되는 디지털 미디어 처리 소프트웨어로 구현될 수 있다.
도 47은 기술된 실시예가 구현될 수 있는 적당한 컴퓨팅 환경(4700)의 일반화된 예를 나타낸 것이다. 본 발명이 다양한 범용 또는 전용 컴퓨팅 환경에서 구현될 수 있기 때문에, 컴퓨팅 환경(4700)은 본 발명의 사용 또는 기능의 범위에 관한 어떤 제한을 암시하려는 것이 아니다.
도 47을 참조하면, 컴퓨팅 환경(4700)은 적어도 하나의 프로세싱 유닛(4710) 및 메모리(4720)를 포함한다. 도 47에서, 이 가장 기본적인 구성(4730)은 컴퓨터 실행가능 명령어를 실행하고, 실제 또는 가상 프로세서일 수 있다. 다중 프로세싱 시스템에서, 다중 프로세싱 유닛은 처리 능력을 향상시키기 위해 컴퓨터 실행가능 명령어를 실행한다. 메모리(4720)는 휘발성 메모리(예를 들어, 레지스터, 캐쉬, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래쉬 메모리, 기타 등등), 또는 이 둘의 어떤 조합일 수 있다. 메모리(4720)는 기술된 인코더/디코더 및 변환을 구현하는 소프트웨어(4780)를 저장한다.
컴퓨팅 환경은 부가의 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환경(4700)은 저장 장치(4740), 하나 이상의 입력 장치(4750), 하나 이상의 출력 장치(4760), 및 하나 이상의 통신 연결(4770)을 포함한다. 버스, 콘트롤러, 또는 네트워크 등의 상호 연결 메카니즘(도시 생략)은 컴퓨팅 환경(4700)의 컴포넌트들을 상호 연결시킨다. 일반적으로, 오퍼레이팅 시스템 소프트웨어(도시 생략)는 컴퓨팅 환경(4700)에서 실행되는 다른 소프트웨어에 대한 오퍼레이팅 환경을 제공하며, 컴퓨팅 환경(4700)의 컴포넌트들의 활동을 조정한다.
저장 장치(4740)는 분리형 또는 비분리형일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD 또는 정보를 저장하는 데 사용될 수 있고 또 컴퓨팅 환경(4700) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(4740)는 4x4 사전/사후 필터링을 사용하는 중복 변환에 기초하여 코덱을 구현하는 소프트웨어(4780)의 명령어를 저장한다.
입력 장치(들)(4750)는 키보드, 마우스, 펜, 또는 트랙볼 등의 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(4700)에 입력을 제공하는 다른 장치일 수 있다. 오디오의 경우, 입력 장치(들)(4750)는 아날로그 또는 디지털 형태로 오디오 입력을 받는 사운드 카드 또는 유사 장치, 또는 오디오 샘플을 컴퓨팅 환경에 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(4760)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(4700)으로부터의 출력을 제공하는 다른 장치일 수 있다.
통신 연결(들)(4770)은 통신 매체를 통한 다른 컴퓨팅 개체로의 통신을 가능하게 해준다. 통신 매체는 컴퓨터 실행가능 명령어, 압축된 오디오 또는 비디오 정보, 또는 다른 데이터 등의 정보를 변조된 데이터 신호로 전달한다. 변조된 데이터 신호는 정보를 그 신호에 인코딩하는 방식으로 그의 특성 중 하나 이상이 설정 또는 변경된 신호를 말한다. 제한이 아닌 예로서, 통신 매체는 전기, 광학, RF, 적외선, 음향 또는 다른 반송파로 구현된 유선 또는 무선 기술을 포함한다.
본 명세서에서의 디지털 미디어 처리 기술은 컴퓨터 판독가능 매체의 일반적 인 관점에서 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 제한이 아닌 예로서, 컴퓨팅 환경(4700)에서, 컴퓨터 판독가능 매체는 메모리(4720), 저장 장치(4740), 통신 매체, 및 상기한 것 중 임의의 것의 조합을 포함한다.
본 명세서에서의 디지털 미디어 처리 기술은 타겟 실제 또는 가상 프로세서 상에서 컴퓨팅 환경에서 실행되는, 프로그램 모듈에 포함되어 있는 것 등의 컴퓨터 실행가능 명령어의 일반적인 관점에서 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 프로그램 모듈의 기능은 여러가지 실시예에서 원하는 바에 따라 프로그램 모듈들 간에 결합 또는 분리될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령어는 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
설명을 위해, 상세한 설명은 컴퓨팅 환경에서 컴퓨터 동작을 기술하는 데 "결정한다", "생성한다", "조정한다", 및 "적용한다" 등의 용어를 사용한다. 이들 용어는 컴퓨터에 의해 수행되는 동작에 대한 상위 레벨 추상화이며, 사람에 의해 수행되는 행위와 혼동해서는 안된다. 이들 용어에 대응하는 실제 컴퓨터 동작은 구현에 따라 달라지게 된다.
4. 가역 오버랩 연산자의 변형 및 확장
상기한 가역 오버랩 연산자의 여러가지 수정 및 확장이 행해질 수 있다. 앞서 기술한 설명이 1차원 데이터에 대한 것이지만, 동일한 절차가 다중 데이터 차원 에 개별적으로 또는 비개별적으로 적용될 수 있다.
상기한 가역 오버랩 연산자 구현에서의 직교 회전은 그의 근사로 또는 직교가 아닐 수 있는 다른 변환으로 대체될 수 있다.
게다가, 상기 설명에서의 주요 초점이 입력 데이터의 무손실 복원에 대한 것이었지만, 동일한 변환이 손실 데이터 압축에도 역시 사용될 수 있다. 이 경우, 손실은 양자화 프로세스에서, 또는 사전 필터나 사후 필터의 제한된 정밀도/근사 구현으로 인해, 또는 다른 부정확성으로 인해 또는 다수의 요인의 조합으로 인해 일어날 수 있다.
본 명세서에 기술된 가역 오버랩 연산자는 데이터 압축 이외의 영역에 적용될 수 있다. 가역 오버랩 연산자를 사용하는 중복 변환은 그 자체가 확장가능할 수 있다.
가역 오버랩 연산자는 멀티레이트 필터 뱅크, 웨이브렛, 3 이상의 블록 폭(K>2N)에 걸쳐 있는 서포트를 갖는 중복 변환을 구현하기 위해 적절히 수정된 형태로 적용될 수 있다.
가역 오버랩 연산자는, 오버랩 필터의 범위 및 형상이 데이터의 공간 범위에 걸쳐 변할 수 있는 것인, 공간적으로 변하는 방식으로 적용될 수 있다.
본 발명의 원리가 적용될 수 있는 많은 가능한 실시예를 고려할 때, 본 발명이 이하의 청구항의 범위 및 정신에 속할 수 있는 실시예 및 그의 균등물 모두를 포함하는 것으로 보아야 한다.

Claims (20)

  1. 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는 방법으로서,
    엇갈리게 정렬된 그리드에 기초하여 상기 디지털 미디어 데이터의 제1 2차원 블록 세트에 가역 2차원 오버랩 연산자를 적용하는 단계, 및
    일렬로 정렬된 그리드에 기초하여 상기 디지털 미디어 데이터의 제2 2차원 블록 세트에 가역 2차원 블록 변환을 적용하는 단계를 포함하며,
    상기 엇갈리게 정렬된 그리드는 상기 일렬로 정렬된 그리드에 대해 공간적으로 엇갈리게 정렬되어 있고, 상기 가역 2차원 오버랩 연산자 및 상기 가역 2차원 블록 변환을 적용하는 단계는 모두 상기 2차원 디지털 미디어 데이터의 중복 변환을 실시하는 방법.
  2. 제1항의 중복 변환으로서 상기 처리를 부분적으로 사용함으로써 상기 2차원 디지털 미디어 데이터를 인코딩 및 디코딩하는 방법으로서,
    디코딩에서 상기 가역 2차원 오버랩 연산자를 적용하는 단계 및 상기 가역 2차원 블록 변환을 적용하는 단계는 상기 2차원 디지털 미디어 데이터를 인코딩할 시에 적용된 오버랩 연산자 및 블록 변환과 반대로 되어 있고 또 그의 역순으로 되어 있으며,
    상기 2차원 디지털 미디어 데이터를 인코딩 및 디코딩함에 있어서 수행되는 임의의 다른 처리와는 별개로, 디코딩에서의 중복 변환으로서의 상기 처리는 인코 딩에서의 중복 변환으로서의 상기 처리의 무손실 역(lossless inverse)인 방법.
  3. 제1항에 있어서, 상기 가역 2차원 오버랩 연산자를 적용하는 단계는, 엇갈리게 정렬된 그리드에 기초한 상기 제1 2차원 블록 세트 내의 블록에 대해,
    1차원 가역 오버랩 연산자를 수평 및 수직으로 개별적으로 적용하는 스테이지들을 인터리빙하는 복수의 스테이지에서 일련의 동작을 상기 블록에 적용하는 단계를 포함하며,
    개별적인 스테이지에서의 동작들은 상기 블록 내의 포인트들의 독립적인 서브그룹에 대한 리프팅 스텝들로서 구현된 일련의 기본 변환으로서 정렬되어 있는 방법.
  4. 제3항에 있어서, 최초 스테이지 및 마지막 스테이지에서 동작들을 적용하는 단계는 상기 블록의 4-포인트 서브셋에 정규화된 2x2 Hadamard 연산자를 적용하는 단계를 포함하는 방법.
  5. 제4항에 있어서, 4x4 포인트 크기 블록의 경우에 대해, 상기 4-포인트 서브셋은,
    상기 블록의 코너에 있는 4개의 포인트의 그룹,
    상기 블록의 중앙에 있는 4개의 포인트의 그룹,
    상기 블록의 수평 엣지에 중심을 둔 4개의 포인트의 그룹, 및
    상기 블록의 수직 엣지에 중심을 둔 4개의 포인트의 그룹을 포함하는 방법.
  6. 제4항에 있어서, 최초 스테이지와 마지막 스테이지 사이의 스테이지에서 동작들을 적용하는 단계는 상기 블록 내의 포인트들의 서브셋에 회전 변환을 적용하는 단계를 포함하는 방법.
  7. 제6항에 있어서, 4x4 포인트 크기 블록의 경우에 대해, 상기 회전 변환을 적용하는 단계는,
    상기 블록의 2x2 저역 통과, 저역 통과 서브셋 내의 포인트를 통과하는 단계,
    상기 블록의 2x2 고역 통과, 고역 통과 서브셋의 포인트들에 2x2 회전 변환을 적용하는 단계, 및
    상기 블록의 2x2 고역 통과, 저역 통과 서브셋 및 2x2 저역 통과, 고역 통과 서브셋의 독립적인 2-포인트 서브그룹에 2-포인트 회전 변환을 적용하는 단계를 포함하는 방법.
  8. 제4항에 있어서, 상기 최초 스테이지와 마지막 스테이지 사이의 다른 스테이지에서 동작들을 적용하는 단계는 상기 블록 내의 포인트들의 서브셋에 스케일링 동작을 적용하는 단계를 포함하는 방법.
  9. 제8항에 있어서, 상기 블록 내의 포인트의 서브셋에 다른 스테이지에서 스케일링 동작을 적용하는 단계 및 상기 최초 스테이지 및 마지막 스테이지에서 2x2 Hadamard 연산자를 적용하는 단계는, 상기 블록에 상기 1차원 가역 오버랩 연산자를 수평 및 수직으로 개별적으로 적용하는 것에 관하여 적어도 어떤 동작을 생략하고,
    이러한 적어도 어떤 동작은 상기 최초 스테이지 및 마지막 스테이지의 2x2 Hadamard 연산자의 동작과 상쇄되는 다른 스테이지의 스케일링 동작인 방법.
  10. 제8항에 있어서, 상기 블록 내의 포인트의 서브셋에 다른 스테이지에서 스케일링 동작을 적용하는 단계는 상기 블록에 상기 1차원 가역 오버랩 연산자를 수평 및 수직으로 개별적으로 적용하는 것에 관하여 적어도 상쇄가능한 스케일링 동작을 생략하는 방법.
  11. 제8항에 있어서, 4x4 포인트 크기 블록의 경우에 대해, 상기 스케일링 동작을 적용하는 단계는,
    상기 블록의 2x2 고역 통과, 저역 통과 서브셋 및 2x2 저역 통과, 고역 통과 서브셋 내의 포인트를 통과하는 단계, 및
    상기 블록의 2x2 고역 통과, 고역 통과 서브셋 및 상기 블록의 2x2 저역 통과, 저역 통과 서브셋에 스케일링 동작을 적용하는 단계를 포함하는 방법.
  12. 제11항에 있어서, 상기 블록의 2x2 고역 통과, 고역 통과 서브셋 및 저역 통과, 저역 통과 서브셋에 스케일링 동작을 적용하는 단계는,
    상기 블록의 중심에 대해 대칭적으로 위치한 2개의 서브셋으로부터의 포인트 쌍에 2-포인트 스케일링 동작을 적용하는 단계를 포함하는 방법.
  13. 디지털 미디어 프로세서로 하여금 2차원 디지털 미디어 데이터에 대해 제3항의 방법을 수행하도록 하는 상기 프로세서 상에서 실행가능한 소프트웨어 프로그램을 그 위에 담고 있는 적어도 하나의 프로그램 전달 매체.
  14. 디지털 미디어 프로세서로 하여금 2차원 디지털 미디어 데이터에 대해 제8항의 방법을 수행하도록 하는 상기 프로세서 상에서 실행가능한 소프트웨어 프로그램을 그 위에 담고 있는 적어도 하나의 프로그램 전달 매체.
  15. 중복 변환을 사용하여 처리될 2차원 디지털 미디어 데이터를 저장하는 데이터 저장 버퍼, 및
    엇갈리게 정렬된 그리드에 기초하여 상기 디지털 미디어 데이터의 제1 2차원 블록 세트에 가역 2차원 오버랩 연산자를 적용하고,
    일렬로 정렬된 그리드에 기초하여 상기 디지털 미디어 데이터의 제2 2차원 블록 세트에 가역 2차원 블록 변환을 적용하도록 프로그램된 프로세서를 포함하며,
    상기 엇갈리게 정렬된 그리드는 상기 일렬로 정렬된 그리드에 대해 공간적으로 엇갈리게 정렬되어 있고, 상기 가역 2차원 오버랩 연산자 및 상기 가역 2차원 블록 변환을 적용하는 것은 모두 상기 2차원 디지털 미디어 데이터의 중복 변환을 실시하는 2차원 디지털 미디어 프로세서.
  16. 제15항에 있어서, 상기 프로세서는,
    상기 가역 2차원 오버랩 연산자를 적용할 때, 상기 엇갈리게 정렬된 그리드에 기초한 상기 제1 2차원 블록 세트 내의 블록에 대해,
    1차원 가역 오버랩 연산자를 수평 및 수직으로 개별적으로 적용하는 스테이지들을 인터리빙하는 복수의 스테이지에서 일련의 동작을 상기 블록에 적용하도록 추가로 프로그램되어 있으며,
    개별적인 스테이지에서의 동작들은 상기 블록 내의 포인트들의 독립적인 서브그룹에 대한 리프팅 스텝들로서 구현된 일련의 기본 변환으로서 정렬되어 있는 2차원 디지털 미디어 프로세서.
  17. 제16항에 있어서, 상기 프로세서는, 복수의 스테이지에서 상기 일련의 동작들을 적용할 때,
    최초 및 마지막 스테이지에서 상기 블록의 4-포인트 서브셋에 정규화된 2x2 Hadamard 연산자를 적용하고,
    상기 최초 및 마지막 스테이지 사이의 스테이지에서 상기 블록 내의 포인트 들의 서브셋에 회전 변환을 적용하며,
    상기 최초 및 마지막 스테이지 사이의 상기 스테이지에서 스케일링 동작을 적용하도록 추가로 프로그램되어 있는 2차원 디지털 미디어 프로세서.
  18. 제17항에 있어서, 상기 디지털 미디어 데이터의 4x4 포인트 크기 블록의 경우에 대해, 상기 4-포인트 서브셋은,
    상기 블록의 코너에 있는 4개의 포인트의 그룹,
    상기 블록의 중앙에 있는 4개의 포인트의 그룹,
    상기 블록의 수평 엣지에 중심을 둔 4개의 포인트의 그룹, 및
    상기 블록의 수직 엣지에 중심을 둔 4개의 포인트의 그룹을 포함하는 2차원 디지털 미디어 프로세서.
  19. 제17항에 있어서, 상기 디지털 미디어 데이터의 4x4 포인트 크기 블록의 경우에 대해, 상기 프로세서는, 회전 변환을 적용할 때,
    상기 블록의 2x2 저역 통과, 저역 통과 서브셋 내의 포인트를 통과하고,
    상기 블록의 2x2 고역 통과, 고역 통과 서브셋의 포인트들에 2x2 회전 변환을 적용하며, 및
    상기 블록의 2x2 고역 통과, 저역 통과 서브셋 및 2x2 저역 통과, 고역 통과 서브셋의 독립적인 2-포인트 서브그룹에 2-포인트 회전 변환을 적용하도록 추가로 프로그램되어 있는 2차원 디지털 미디어 프로세서.
  20. 제17항에 있어서, 4x4 포인트 크기 블록의 경우에 대해, 상기 프로세서는, 상기 스케일링 동작을 적용할 때,
    상기 블록의 2x2 고역 통과, 저역 통과 서브셋 및 2x2 저역 통과, 고역 통과 서브셋 내의 포인트를 통과하고,
    상기 블록의 중심에 대해 대칭적으로 위치한 2개의 서브셋으로부터의 포인트 쌍에 2-포인트 스케일링 동작을 적용하도록 추가로 프로그램되어 있으며,
    상기 2개의 서브셋은 상기 블록의 2x2 고역 통과, 고역 통과 서브셋 및 상기 블록의 2x2 저역 통과, 저역 통과 서브셋인 2차원 디지털 미디어 프로세서.
KR1020050121544A 2005-01-14 2005-12-12 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서 KR101036733B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/035,991 2005-01-14
US11/035,991 US7305139B2 (en) 2004-12-17 2005-01-14 Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform

Publications (2)

Publication Number Publication Date
KR20060083125A true KR20060083125A (ko) 2006-07-20
KR101036733B1 KR101036733B1 (ko) 2011-05-24

Family

ID=36577456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050121544A KR101036733B1 (ko) 2005-01-14 2005-12-12 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서

Country Status (8)

Country Link
EP (1) EP1684521B1 (ko)
KR (1) KR101036733B1 (ko)
CN (2) CN1805548B (ko)
AU (1) AU2005239628B2 (ko)
BR (1) BRPI0506196A (ko)
CA (1) CA2529914C (ko)
MX (1) MXPA05014004A (ko)
RU (1) RU2412473C2 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101036711B1 (ko) * 2004-12-17 2011-05-24 마이크로소프트 코포레이션 효과적인 무손실 데이터 압축을 위한 가역적 오버랩 연산자
KR20110091849A (ko) * 2008-10-10 2011-08-16 마이크로소프트 코포레이션 중첩 변환 처리에서의 감소된 dc 이득 부정합 및 dc 누설
US8036274B2 (en) 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
US8447591B2 (en) 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
KR20190042058A (ko) * 2016-08-31 2019-04-23 디티에스, 인코포레이티드 부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101552918B (zh) * 2008-03-31 2011-05-11 联咏科技股份有限公司 高通系数的区块类型信息的产生方法与其产生电路
CN101552919B (zh) * 2008-04-02 2011-03-02 联咏科技股份有限公司 具有执行重叠滤波以及核心转换的运算方法及其装置
KR101054644B1 (ko) * 2008-11-25 2011-08-08 에스케이 텔레콤주식회사 동작 추정 기반 영상 부호화/복호화 장치 및 방법
WO2011081637A1 (en) * 2009-12-31 2011-07-07 Thomson Licensing Methods and apparatus for adaptive coupled pre-processing and post-processing filters for video encoding and decoding
CN102572432B (zh) * 2010-12-23 2016-12-14 马维尔国际贸易有限公司 用于视频帧旋转的方法和装置
WO2012101708A1 (ja) * 2011-01-28 2012-08-02 日本電気株式会社 2次元信号符号化装置
CN102665076B (zh) * 2012-04-28 2014-04-02 武汉科技大学 一种重叠变换后置滤波器的构造方法
RU2509437C1 (ru) * 2012-07-17 2014-03-10 Федеральное государственное унитарное предприятие "Государственный научно-исследовательский институт авиационных систем" Способ формирования целочисленных ортогональных декоррелирующих матриц заданных размеров для прямого и обратного декоррелирующего преобразования видеоизображений и устройство для его осуществления
FR2994517A1 (fr) * 2012-08-10 2014-02-14 I Ces Innovative Compression Engineering Solutions Procede, notamment pour optimiser la compression d'un fichier video et/ou audio, utilisant un codec affectant un poids en bits par seconde au fichier compresse correspondant, et systeme associe.
CN109190083B (zh) * 2018-07-19 2023-04-28 珠海市杰理科技股份有限公司 阵列信号的对齐方法、装置、计算机设备和存储介质
CN110233626B (zh) * 2019-07-05 2022-10-25 重庆邮电大学 基于二维自适应量化的机械振动信号边缘数据无损压缩方法
NO346137B1 (en) * 2020-06-17 2022-03-14 Pexip AS Method, computer program and system for detecting changes and moving objects in a video view

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859788A (en) * 1997-08-15 1999-01-12 The Aerospace Corporation Modulated lapped transform method
US6487574B1 (en) * 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6101129A (en) * 1999-04-14 2000-08-08 Advanced Micro Devices, Inc. Fast chip erase mode for non-volatile memory
US6771829B1 (en) * 1999-10-23 2004-08-03 Fastvdo Llc Method for local zerotree image coding
EP1202219A1 (en) * 2000-10-30 2002-05-02 Fast Video, LLC Fast lapped image transforms
ATE363183T1 (de) * 2001-08-24 2007-06-15 Koninkl Philips Electronics Nv Addieren von halbbildern eines bildes
FI112424B (fi) * 2001-10-30 2003-11-28 Oplayo Oy Koodausmenetelmä ja -järjestely
US7155065B1 (en) * 2002-03-27 2006-12-26 Microsoft Corporation System and method for progressively transforming and coding digital data
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US7395210B2 (en) * 2002-11-21 2008-07-01 Microsoft Corporation Progressive to lossless embedded audio coder (PLEAC) with multiple factorization reversible transform
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
US7471850B2 (en) 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101036711B1 (ko) * 2004-12-17 2011-05-24 마이크로소프트 코포레이션 효과적인 무손실 데이터 압축을 위한 가역적 오버랩 연산자
US8036274B2 (en) 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
US8447591B2 (en) 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
KR20110091849A (ko) * 2008-10-10 2011-08-16 마이크로소프트 코포레이션 중첩 변환 처리에서의 감소된 dc 이득 부정합 및 dc 누설
KR20190042058A (ko) * 2016-08-31 2019-04-23 디티에스, 인코포레이티드 부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법

Also Published As

Publication number Publication date
RU2005138722A (ru) 2007-06-20
CN1805548A (zh) 2006-07-19
AU2005239628B2 (en) 2010-08-05
EP1684521A2 (en) 2006-07-26
CN1805548B (zh) 2011-05-25
KR101036733B1 (ko) 2011-05-24
EP1684521A3 (en) 2010-12-08
CA2529914C (en) 2014-01-28
CA2529914A1 (en) 2006-07-14
EP1684521B1 (en) 2019-07-03
BRPI0506196A (pt) 2006-09-19
RU2412473C2 (ru) 2011-02-20
CN102158711B (zh) 2013-03-13
CN102158711A (zh) 2011-08-17
AU2005239628A1 (en) 2006-08-03
MXPA05014004A (es) 2006-07-13

Similar Documents

Publication Publication Date Title
KR101036733B1 (ko) 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서
JP4771803B2 (ja) 重ね合わせ双直交変換のための可逆2次元プリ/ポストフィルタリング
CA2526366C (en) Reversible overlap operator for efficient lossless data compression
EP1913521B1 (en) Simd lapped transform-based digital media encoding/decoding
BRPI0506196B1 (pt) Method for encoding and decoding two-dimensional digital media data and two-dimensional digital media processor

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20140417

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 9