KR101550166B1 - 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어 - Google Patents

변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어 Download PDF

Info

Publication number
KR101550166B1
KR101550166B1 KR1020147034179A KR20147034179A KR101550166B1 KR 101550166 B1 KR101550166 B1 KR 101550166B1 KR 1020147034179 A KR1020147034179 A KR 1020147034179A KR 20147034179 A KR20147034179 A KR 20147034179A KR 101550166 B1 KR101550166 B1 KR 101550166B1
Authority
KR
South Korea
Prior art keywords
precision
digital media
transform
arithmetic
decoder
Prior art date
Application number
KR1020147034179A
Other languages
English (en)
Other versions
KR20150003400A (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 KR20150003400A publication Critical patent/KR20150003400A/ko
Application granted granted Critical
Publication of KR101550166B1 publication Critical patent/KR101550166B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6547Transmission by server directed to the client comprising parameters, e.g. for client setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

디지털 미디어 인코더/디코더는 디코딩에서의 계산 복잡도 및 정밀도에 관한 다양한 모드의 시그널링을 포함하고 있다. 인코더는 디코딩에서 수행되는 변환 연산의 산술 정밀도(예를 들어, 16-비트 또는 32-비트 연산을 사용함)를 나타내는 구문 요소를 전송할 수 있다. 인코더는 또한 디코더 출력에서 스케일링을 적용할지 여부를 신호할 수 있으며, 이 스케일링은 디코딩에서 중간 데이터의 더 넓은 동적 범위를 가능하게 해주지만 스케일링 연산으로 인해 계산 복잡도를 증가시킨다.

Description

변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어{COMPUTATIONAL COMPLEXITY AND PRECISION CONTROL IN TRANSFORM-BASED DIGITAL MEDIA CODEC}
본 출원은 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어에 관한 것이다.
블록 변환-기반 코딩( block transform - based coding )
변환 코딩은 많은 디지털 미디어(예를 들어, 오디오, 이미지 및 비디오) 압축 시스템에서 사용되는 압축 기법이다. 비압축된 디지털 이미지 및 비디오는 통상적으로 2차원(2D) 격자로 배열되어 있는 이미지 또는 비디오 프레임 내의 위치에 화소 또는 컬러의 샘플로서 표현되거나 포착된다. 이것은 이미지 또는 비디오의 공간-영역 표현이라고 한다. 예를 들어, 통상적인 이미지 형식은 격자로 배열되어 있는 24-비트 컬러 화소 샘플들의 스트림으로 이루어져 있다. 각각의 샘플은 컬러 공간(그 중에서도 특히, RGB 또는 YIQ 등) 내에서 격자 내의 픽셀 위치에서의 컬러 성분을 나타내는 숫자이다. 다양한 이미지 및 비디오 시스템은 다양한 서로 다른 컬러, 공간 및 시간 샘플링 분해능을 사용할 수 있다. 이와 유사하게, 디지털 오디오도 통상적으로 시간-샘플링된 오디오 신호 스트림으로 표현된다. 예를 들어, 통상적인 오디오 형식은 규칙적인 시간 간격으로 얻은 오디오 신호의 16-비트 진폭 샘플들의 스트림으로 이루어져 있다.
비압축된 디지털 오디오, 이미지 및 비디오 신호는 상당한 저장 및 전송 용량을 소비할 수 있다. 변환 코딩은 신호의 공간-영역 표현을 주파수-영역(또는 기타 유사한 변환 영역) 표현으로 변환한 다음에 변환-영역 표현의 어떤 일반적으로 덜 지각되는 주파수 성분들의 분해능을 감소시킴으로써 디지털 오디오, 이미지 및 비디오의 크기를 감소시킨다. 이렇게 하면 일반적으로 공간 영역에서의 이미지 또는 비디오의 컬러 또는 공간 분해능 또는 시간 영역에서의 오디오의 분해능을 감소시키는 것과 비교하여 디지털 신호의 지각가능한 열화가 훨씬 적어진다.
보다 구체적으로는, 도 1에 도시되어 있는 통상적인 블록 변환-기반 인코더/디코더 시스템(100)("코덱"이라고도 함)은 비압축된 디지털 이미지의 픽셀들을 고정-크기의 2차원 블록들(X1,... Xn)로 나누며, 각각의 블록이 다른 블록들과 중첩할 수도 있다. 공간-주파수 분석을 행하는 선형 변환(120-121)이 각각의 블록에 적용되어, 블록 내의 일정 간격으로 떨어져 있는 샘플들을 일련의 주파수(또는 변환) 계수들로 변환하며, 이 계수들은 일반적으로 블록 구간(block interval)에 걸쳐 대응하는 주파수 대역에서의 디지털 신호의 세기를 나타낸다. 압축의 경우, 변환 계수들이 선택적으로 양자화되고(130)(즉, 계수 값의 최하위 비트를 누락시키거나 고분해능 숫자 세트 내의 값들을 저분해능에 매핑하는 등에 의해 분해능이 감소되고) 엔트로피 또는 가변-길이 코딩되어(130), 압축된 데이터 스트림이 얻어진다. 디코딩에서, 변환 계수는 역변환되어(170-171), 원래의 컬러/공간 샘플링된 이미지/비디오 신호(재구성된 블록
Figure 112014118251524-pat00001
)를 거의 재구성한다.
블록 변환(120-121)은 크기 N의 벡터 x에 대한 수학적 연산으로서 정의될 수 있다. 이 연산이 변환 영역 출력
Figure 112014118251524-pat00002
(단 M은 변환 행렬임)를 산출하는 선형 곱셈(linear multiplication)인 경우가 아주 많다. 입력 데이터가 임의의 길이인 경우, 이 입력 데이터는 크기 N의 벡터들로 세그먼트화되고, 블록 변환이 각각의 세그먼트에 적용된다. 데이터 압축을 위해, 가역 블록 변환(reversible block transform)이 선택된다. 환언하면, 행렬 M이 가역(invertible)이다. 다중 차원에서(예를 들어, 이미지 및 비디오의 경우), 블록 변환은 통상적으로 분리가능 연산(separable operation)으로 구현된다. 행렬 곱셈은 데이터의 각각의 차원(즉, 행 및 열 둘다)을 따라 분리가능하게 적용된다.
압축의 경우, 변환 계수(벡터 y의 성분)가 선택적으로 양자화될 수 있고(즉, 계수 값의 최하위 비트를 누락시키거나 고분해능 숫자 세트 내의 값들을 저분해능에 매핑하는 등에 의해 분해능이 감소되고) 엔트로피 또는 가변-길이 코딩되어, 압축된 데이터 스트림이 얻어진다.
디코더(150)에서의 디코딩에서는, 도 1에 도시되어 있는 바와 같이, 이들 연산의 역(inverse)(역양자화/엔트로피 디코딩(160) 및 역블록 변환(inverse block transform)(170-171))이 디코더(150) 측에서 적용된다. 데이터를 재구성하는 동안, 역행렬
Figure 112014118251524-pat00003
[역변환(170-171)]이 승수(multiplier)로서 변환 영역 데이터에 적용된다. 역변환은, 변환 영역 데이터에 적용될 때, 원래의 시간-영역 또는 공간-영역 디지털 미디어를 거의 재구성한다.
많은 블록 변환-기반 코딩 응용에서, 이 변환은 바람직하게도 양자화 계수(quantization factor)에 따라 손실(lossy) 및 무손실(lossless) 압축 둘다를 지원하기 위해 가역적이다. 예를 들어, 양자화가 없는 경우(일반적으로 양자화 계수 1로 표현됨), 가역 변환을 이용하는 코덱은 디코딩 시에 입력 데이터를 정확히 재현할 수 있다. 그렇지만, 이러한 응용에서 가역성이 요구되는 것은 코덱이 설계될 수 있는 변환의 선택을 제약한다.
그 중에서도 특히, MPEG 및 Windows Media 등의 많은 이미지 및 비디오 압축 시스템은 DCT(Discrete Cosine Transform, 이산 코사인 변환)에 기초한 변환을 이용한다. DCT는 우수한 에너지 집중(energy compaction) 특성을 갖는 것으로 알려져 있으며, 그 결과 거의 최적인 데이터 압축이 얻어진다. 이러한 압축 시스템에서, 개개의 이미지 블록을 재구성하기 위해 압축 시스템의 인코더 및 디코더 둘다에서 재구성 루프에 역DCT(IDCT)가 이용된다.
양자화
양자화는 압축된 이미지의 품질 및 압축비를 제어하는 대부분의 이미지 및 비디오 코덱의 주된 메카니즘이다. 한가지 가능한 정의에 따르면, 양자화는 손실 압축에 통상 사용되는 근사 비가역 매핑 함수(approximating non-reversible mapping function)에 사용되는 용어로서, 양자화에서는 지정된 가능한 출력값 세트가 있고, 가능한 출력값 세트의 각각의 원소가 연관된 입력값 세트를 가지며, 그 결과 그 특정의 출력값이 선택되게 된다. 스칼라 또는 벡터, 균일(uniform) 또는 비균일(non-uniform), 데드존(dead zone)을 갖는 또는 데드존을 갖지 않는, 그리고 적응적(adaptive) 또는 비적응적(non-adaptive) 양자화를 비롯한 각종의 양자화 기법들이 개발되어 있다.
양자화 연산은 본질적으로 인코더에서 수행되는, 양자화 파라미터(quantization parameter) QP로 나누는 바이어스 방식 나눗셈(biased division)이다. 역양자화 또는 곱셈 연산은 디코더에서 수행되는, QP와 곱하는 곱셈이다. 이들 프로세스는 모두 원래의 변환 계수 데이터에 손실을 가져오며, 이 손실은 디코딩된 이미지에서 압축 오차(compression error) 또는 아티팩트(artifact)로서 나타난다.
디지털 미디어 코덱에서의 디코딩의 계산 복잡도 및 정밀도를 제어하는 도구 및 기법을 제공한다.
이하의 상세한 설명은 디지털 미디어 코덱에서의 디코딩의 계산 복잡도 및 정밀도를 제어하는 도구 및 기법을 제공한다. 이들 기법의 한 측면에서, 인코더는 디코더에서 사용할 스케일링 방식(scaled) 또는 비스케일링 방식(unscaled) 정밀도 모드 중 하나를 신호한다. 스케일링 방식 정밀도 모드(scaled precision mode)에서는, 입력 이미지가 인코더에서 (예를 들어, 8과) 미리 곱해진다. 디코더에서의 출력도 역시 나누고 반올림하는 것(rounded division)에 의해 스케일링된다. 비스케일링 방식 정밀도 모드에서는, 이러한 스케일링 연산이 적용되지 않는다. 비스케일링 방식 정밀도 모드에서는, 인코더 및 디코더가 변환 계수에 대한 보다 작은 동적 범위를 처리할 수 있고, 따라서 더 낮은 계산 복잡도를 갖는다.
이들 기법의 또 하나의 측면에서, 코덱은 변환 연산을 수행하는 데 요구되는 정밀도도 디코더에 신호할 수 있다. 한 구현예에서, 비트스트림 구문의 한 요소가 디코더에서의 변환에 저정밀도 산술 연산을 이용할지 여부를 신호한다.
이 요약은 이하의 상세한 설명에서 더 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다. 본 발명의 부가의 특징들 및 이점들이 첨부 도면을 참조하여 기술되는 실시예들에 대한 이하의 상세한 설명으로부터 명백하게 될 것이다.
디지털 미디어 코덱에서의 디코딩의 계산 복잡도 및 정밀도를 제어하는 도구 및 기법을 제공할 수 있다.
도 1은 종래 기술에서의 종래의 블록 변환-기반 코덱의 블록도.
도 2는 블록 패턴 코딩을 구현하는 대표적인 인코더의 흐름도.
도 3은 블록 패턴 코딩을 구현하는 대표적인 디코더의 흐름도.
도 4는 도 2 및 도 3의 대표적인 인코더/디코더의 한 구현예에 코어 변환 및 포스트-필터(중첩) 연산을 포함시키는 역 중복 변환(inverse lapped transform)을 나타낸 도면.
도 5는 변환 연산에 대한 입력 데이터 점을 식별하는 것을 나타낸 도면.
도 6은 도 2 및 도 3의 미디어 인코더/디코더를 구현하는 적합한 컴퓨팅 환경의 블록도.
이하의 설명은 변환-기반 디지털 미디어 코덱의 정밀도 및 계산 복잡도를 제어하는 기법들에 관한 것이다. 이하의 설명은 본 기법의 예시적인 구현예를 디지털 미디어 압축 시스템 또는 코덱과 관련하여 기술하고 있다. 이 디지털 미디어 시스템은 디지털 미디어 데이터를 전송 또는 저장을 위해 압축된 형태로 코딩하고, 이 데이터를 재생 또는 기타 처리를 위해 디코딩한다. 설명을 위해, 계산 복잡도 및 정밀도 제어를 구현하는 이 예시적인 압축 시스템은 이미지 또는 비디오 압축 시스템이다. 다른 대안으로서, 이 기법은 또한 기타 디지털 미디어 데이터에 대한 압축 시스템 또는 코덱 내에 구현될 수 있다. 이 계산 복잡도 및 정밀도 제어 기법에서는, 디지털 미디어 압축 시스템이 압축된 디지털 미디어 데이터를 특정의 코딩 형식으로 인코딩해야 할 필요는 없다.
1. 인코더/디코더
도 2 및 도 3은 대표적인 2차원(2D) 데이터 인코더(200) 및 디코더(300)에서 이용되는 프로세스를 일반화시켜 나타낸 도면이다. 이들 도면은 이 계산 복잡도 및 정밀도 제어 기법을 사용하여 압축을 구현하는 2D 데이터 인코더 및 디코더를 포함하는 압축 시스템을 일반화 또는 간단화시켜 나타낸 것이다. 이 제어 기법을 사용하는 대안의 압축 시스템에서, 이 대표적인 인코더 및 디코더에 나타낸 것들보다 더 많은 또는 더 적은 프로세스가 2D 데이터 처리를 위해 사용될 수 있다. 예를 들어, 어떤 인코더/디코더는 컬러 변환(color conversion), 컬러 형식(color format), 스케일러블 코딩(scalable coding), 무손실 코딩(lossless coding), 매크로블록 모드(macroblock mode), 기타 등등도 포함하고 있을 수 있다. 압축 시스템(인코더 및 디코더)은 양자화(이 양자화는 무손실(lossless)에서 손실(lossy)까지 변하는 양자화 파라미터에 기초할 수 있음)에 따라 2D 데이터의 무손실 및/또는 손실 압축을 제공할 수 있다.
2D 데이터 인코더(200)는 인코더에 입력으로서 제공되는 2D 데이터(210)의 (통상적인 입력에 대한) 보다 콤팩트한 표현인 압축된 비트스트림(220)을 생성한다. 예를 들어, 2D 데이터 입력은 이미지, 비디오 시퀀스의 프레임, 또는 2차원을 갖는 기타 데이터일 수 있다. 2D 데이터 인코더는 입력 데이터의 프레임을 블록들로 나누며(도 2에서는 일반적으로 분할(partitioning)(230)로 나타냄), 이 예시된 구현에서 이들 블록은 프레임의 평면에 걸쳐 규칙적 패턴을 형성하는 비중첩 4x4 픽셀 블록이다. 이들 블록은 매크로블록이라고 하는 클러스터(cluster)를 이루어 그룹화되어 있으며, 이 대표적인 인코더에서 그 크기가 16x16 픽셀이다. 이어서, 이 매크로블록들은 타일(tile)이라고 하는 규칙적인 구조로 그룹화된다. 이 타일들은 또한 이미지 상에 규칙적인 패턴을 형성하며, 그에 따라 수평 행에 있는 타일들은 균일한 높이를 갖고 일렬로 정렬되어 있으며 수직 열에 있는 타일들은 균일한 폭을 갖고 일렬로 정렬되어 있다. 이 대표적인 인코더에서, 타일들은 수평 및/또는 수직 방향에서 16의 배수인 임의의 크기일 수 있다. 대안의 인코더 구현은 이미지를 블록, 매크로블록, 타일, 또는 기타 크기 및 구조의 기타 단위로 나눌 수 있다.
"순방향 중첩(forward overlap)" 연산자(240)가 블록들 사이의 각각의 가장자리(edge)에 적용되고, 그 후에 각각의 4x4 블록이 블록 변환(250)을 사용하여 변환된다. 이 블록 변환(250)은, 2004년 12월 17일자로 출원된 발명의 명칭이 "손실 및 무손실 2D 데이터 압축을 위한 가역 변환(Reversible Transform For Lossy And Lossless 2-D Data Compression)"인 Srinivasan의 미국 특허 출원 제11/015,707호에 기술되어 있는 가역의 스케일 없는 2D 변환(reversible, scale-free 2D transform)일 수 있다. 중첩 연산자(240)는 2004년 12월 17일자로 출원된 발명의 명칭이 "효율적인 무손실 데이터 압축을 위한 가역 중첩 연산자(Reversible Overlap Operator for Efficient Lossless Data Compression)"인 Tu 등의 미국 특허 출원 제11/015,148호 및 2005년 1월 14일자로 출원된 발명의 명칭이 "중복 이중 직교 변환을 위한 가역 2D 프리/포스트-필터링(Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform)"인 Tu 등의 미국 특허 출원 제11/035,991호에 기술되어 있는 가역 중첩 연산자(reversible overlap operator)일 수 있다. 다른 대안으로서, 이산 코사인 변환(discrete cosine transform) 또는 기타 블록 변환 및 중첩 연산자가 사용될 수 있다. 이 변환에 뒤이어서, 각각의 4x4 변환 블록의 DC 계수(260)는 유사한 처리 연쇄(processing chain)(타일링, 순방향 중첩, 그에 뒤이은 4x4 블록 변환)를 거친다. 그 결과 얻어지는 DC 변환 계수 및 AC 변환 계수가 양자화(270)되고, 엔트로피 코딩(entropy coding)(280)되며, 패킷화(packetization)(290)된다.
디코더는 반대의 프로세스(reverse process)를 수행한다. 디코더 측에서는, 변환 계수 비트가 그 각자의 패킷으로부터 추출(310)되고, 그 패킷으로부터 이들 계수 자체가 디코딩(320)되고 역양자화(330)된다. 역변환을 적용함으로써 DC 계수(340)가 재생성되고, DC 블록 가장자리에서 적용되는 적당한 평활화 연산자(smoothing operator)를 사용하여 DC 계수의 평면이 "역중첩(inverse overlapping)"된다. 그 다음에, 4x4 역변환(350)을 DC 계수에 적용함으로써 전체 데이터가 재생성되고, AC 계수(342)가 비트스트림으로부터 디코딩된다. 마지막으로, 결과 이미지 평면에서의 블록 가장자리가 역 중첩 필터링(inverse overlap filtering)(360)된다. 이렇게 하여 재구성된 2D 데이터 출력이 생성된다.
예시적인 구현에서, 인코더(200)(도 2)는 입력 이미지를 압축된 비트스트림(220)(예를 들어, 파일)으로 압축하고, 디코더(300)(도 3)는, 무손실 또는 손실 코딩이 이용되는지에 기초하여, 원래의 입력 또는 그의 근사값을 재구성한다. 인코딩 프로세스는 이하에 기술되는 순방향 중첩 변환(LT)의 적용을 포함하며, 이 변환은 역시 이하에서 더 상세히 기술되는 가역 2차원 프리/포스트-필터링으로 구현된다. 디코딩 프로세스는 가역 2차원 프리/포스트-필터링을 사용하여 역 중첩 변환(ILT)을 적용하는 것을 포함한다.
예시된 LT 및 ILT는 정확한 의미에서 서로의 역(inverse)이고, 따라서 이들을 합하여 가역 중첩 변환(reversible lapped transform)이라고 할 수 있다. LT/ILT 쌍은, 가역 변환으로서, 무손실 이미지 압축을 위해 사용될 수 있다.
예시된 인코더(200)/디코더(300)에 의해 압축되는 입력 데이터(210)는 다양한 컬러 형식(예를 들어, RGB/YUV4:4:4, YUV4:2:2 또는 YUV4:2:0 컬러 이미지 형식)의 이미지일 수 있다. 통상적으로, 입력 이미지는 항상 루미넌스(Y) 성분을 갖는다. 입력 이미지가 RGB/YUV4:4:4, YUV4:2:2 또는 YUV4:2:0 이미지인 경우, 그 이미지는 또한 U 성분 및 V 성분 등의 크로미넌스(chrominance) 성분도 갖는다. 이미지의 개별적인 컬러 평면 또는 성분은 서로 다른 공간 분해능(spatial resolution)을 가질 수 있다. 예를 들어, YUV 4:2:0 컬러 형식의 입력 이미지의 경우, U 및 V 성분의 폭 및 높이는 Y 성분의 1/2이다.
상기한 바와 같이, 디코더(200)는 입력 이미지 또는 화상을 매크로블록으로 타일화한다. 예시적인 구현에서, 인코더(200)는 Y 채널에서 입력 이미지를 16x16 영역("매크로블록"이라고 함)(컬러 형식에 따라 U 및 V 채널에서는 16x16, 16x8 또는 8x8 영역일 수 있음)으로 타일화한다. 각각의 매크로블록 컬러 평면은 4x4 픽셀 영역 또는 블록으로 타일화된다. 따라서, 이러한 예시적인 인코더 구현을 위해 이하의 방식으로 다양한 컬러 형식에 대해 매크로블록이 작성된다.
1. 그레이스케일 이미지인 경우, 각각의 매크로블록은 16개의 4x4 루미넌스(Y) 블록을 포함하고 있다.
2. YUV4:2:0 형식의 컬러 이미지인 경우, 각각의 매크로블록은 16개의 4x4 Y 블록 및 각각 4x4인 4개의 크로미넌스(U 및 V) 블록을 포함하고 있다.
3. YUV4:2:2 형식의 컬러 이미지인 경우, 각각의 매크로블록은 16개의 4x4 Y 블록 및 각각 4x4인 8개의 크로미넌스(U 및 V) 블록을 포함하고 있다.
4. RGB 또는 YUV4:4:4 컬러 이미지인 경우, 각각의 매크로블록은 Y, U 및 V 채널 각각에 16개의 블록을 포함하고 있다.
그에 따라, 변환 이후에, 이 대표적인 인코더(200)/디코더(300)에서의 매크로블록은 3개의 주파수 서브대역(frequency sub band), 즉 DC 서브대역(DC 매크로블록), 저역통과 서브대역(저역통과 매크로블록), 및 고역통과 서브대역(고역통과 매크로블록)을 갖는다. 이 대표적인 시스템에서, 이 비트스트림에서 저역통과 및/또는 고역통과 서브대역은 선택적이다, 즉 이들 서브대역이 완전히 누락될 수 있다.
게다가, 압축된 데이터가 2가지 순서(ordering), 즉 공간 순서(spatial order) 및 주파수 순서(frequency order) 중 하나로 비트스트림 내에 패킹(pack)될 수 있다. 공간 순서의 경우, 타일 내의 동일한 매크로블록의 서로 다른 서브대역이 함께 정렬되고, 그 결과 얻어지는 각각의 타일의 비트스트림이 하나의 패킷에 기입된다. 주파수 순서의 경우, 타일 내의 서로 다른 매크로블록으로부터의 동일한 서브대역이 함께 그룹화되고, 그에 따라 타일의 비트스트림이 3개의 패킷, 즉 DC 타일 패킷, 저역통과 타일 패킷, 및 고역통과 타일 패킷에 기입된다. 그에 부가하여, 다른 데이터 계층들이 있을 수 있다.
따라서, 이 대표적인 시스템에서, 이미지는 다음과 같은 "차원"으로 구성되어 있다.
공간 차원: 프레임 → 타일 → 매크로블록,
주파수 차원: DC | 저역통과 | 고역통과, 및
채널 차원: 루미넌스 | 크로미넌스_0 | 크로미넌스_1...(예를 들어, Y|U|V 등).
상기 화살표는 계층 구조를 나타내는 반면, 상기 수직 바는 분할(partitioning)을 나타낸다.
이 대표적인 시스템이 공간, 주파수 및 채널 차원에서 압축된 디지털 미디어 데이터를 구성하지만, 더 적은, 더 많은 또는 기타 차원들을 따라 자신의 데이터를 구성하는 대안의 인코더/디코더 시스템에서 여기에 기술되는 유연성있는 양자화 방식이 적용될 수 있다. 예를 들어, 이 유연성있는 양자화 방식은 보다 많은 수의 주파수 대역, 기타 형식의 컬러 채널(예를 들어, YIQ, RGB, 기타), 부가의 이미지 채널(예를 들어, 입체 시각(stereo vision) 또는 기타 다중 카메라 어레이(multiple camera array)의 경우)을 사용하는 코딩에 적용될 수 있다.
2. 역 코어 및 중복 변환( Inverse Core and Lapped Transform )
개요
인코더(200)/디코더(300)의 한 구현에서, 디코더측에서의 역변환은 2-레벨 중복 변환(two-level lapped transform)의 형태를 취한다. 그 단계들은 다음과 같다.
Figure 112014118251524-pat00004
역 코어 변환(Inverse Core Transform, ICT)은 DC 평면이라고 하는 평면 어레이(planar array)에 배열되어 있는 재구성된 DC 및 저역통과 계수들에 대응하는 각각의 4x4 블록에 적용된다.
Figure 112014118251524-pat00005
포스트 필터 연산(post filter operation)은 선택적으로 DC 평면에서 블록들에 균등하게 걸쳐 있는 4x4 영역들에 적용된다. 게다가, 포스트 필터가 경계의 2x4 및 4x2 영역에 적용되고, 4개의 2x2 코너 영역은 그대로 둔다.
Figure 112014118251524-pat00006
그 결과 얻어지는 어레이는 제1 레벨의 변환에 대응하는 4x4 블록들의 DC 계수들을 포함하고 있다. 이 DC 계수들은 보다 큰 어레이에 [형태적으로(figuratively)] 복사되고, 재구성된 고역통과 계수들은 나머지 위치들에 채워진다.
Figure 112014118251524-pat00007
ICT가 각각의 4x4 블록에 적용된다.
Figure 112014118251524-pat00008
포스트 필터 연산이 선택적으로 DC 평면에서 블록들에 균등하게 걸쳐 있는 4x4 영역에 적용된다. 게다가, 포스트 필터는 경계의 2x4 및 4x2 영역에 적용되고, 4개의 2x2 코너 영역은 그대로 둔다.
이 프로세스는 도 4에 도시되어 있다.
포스트 필터를 적용하는 것은 압축된 비트스트림(220) 내의 OVERLAP_INFO 구문 요소에 의해 규제된다. OVERLAP_INFO는 3개의 값을 가질 수 있다.
Figure 112014118251524-pat00009
OVERLAP_INFO = 0인 경우, 포스트 필터링이 수행되지 않는다.
Figure 112014118251524-pat00010
OVERLAP_INFO = 1인 경우, 외부 포스트 필터링(outer post filtering)만이 수행된다.
Figure 112014118251524-pat00011
OVERLAP_INFO = 2인 경우, 내부 포스트 필터링(inner post filtering) 및 외부 포스트 필터링 둘다가 수행된다.
역 코어 변환( Inverse Core Transform )
코어 변환(CT)은 종래의 공지된 4x4 이산 코사인 변환(DCT)에 의해 영감을 받은 것이지만, 근본적으로 다르다. 첫번째 주요 차이점은 DCT가 선형인 반면 CT는 비선형이라는 것이다. 두번째 주요 차이점은 DCT가 실수에 대해 정의되어 있다는 사실로 인해, DCT가 정수-정수 공간에서 무손실 연산이 아니라는 것이다. CT는 정수에 대해 정의되어 있고 이 공간에서 무손실이다. 세번째 주요 차이점은 2D DCT가 분리가능 연산(separable operation)이라는 것이다. CT는 설계에 따라 비분리가능이다.
전체적인 역변환 프로세스가 다음과 같은 3개의 기본적인 2x2 변환 연산의 종속 접속(cascade)으로서 작성될 수 있다.
Figure 112014118251524-pat00012
2x2 Hadamard 변환: T_h
Figure 112014118251524-pat00013
역 1D 회전(inverse ID rotate): InvT_odd
Figure 112014118251524-pat00014
역 2D 회전(inverse 2D rotate): InvT_odd_odd
이들 변환은 비분리가능 연산(non-separable operation)으로서 구현되며, 먼저 이들에 대해 설명하고 이어서 전체적인 ICT에 대해 설명한다.
2D 2x2 Hadamard 변환 T_h
인코더/디코더는 이하의 의사코드 테이블에 나타낸 바와 같이 2D 2x2 Hadamard 변환 T_h를 구현한다. R은 값 0 또는 1만을 가질 수 있는 반올림 인자(rounding factor)이다. T_h는 인볼류토리(involutory)이다(즉, 데이터 벡터 [a b c d]에 T_h를 2번 적용하면, R이 이들 적용 간에 변하지 않는 한, 성공적으로 [a b c d]의 원래 값을 복구한다). 역 T_h(inverse T_h)는 T_h 자체이다.
Figure 112014118251524-pat00015
역 1D 회전 InvT _ odd
무손실 역 T_odd(lossless inverse of T_odd)는 이하의 테이블에 있는 의사코드에 의해 정의된다.
Figure 112014118251524-pat00016
Figure 112014118251524-pat00017
역 2D 회전 InvT _ odd _ odd
역 2D 회전 InvT_odd_odd은 이하의 테이블에 있는 의사코드에 의해 정의된다.
Figure 112014118251524-pat00018
ICT 연산
2x2 데이터와 이전에 열거한 의사코드 간의 대응관계가 도 5에 도시되어 있다. 다음 섹션에서의 변환 설명이 용이하도록 해주기 위해 4개의 그레이 레벨을 사용하여 4개의 데이터 점(data point)을 표시하는 컬러 코딩이 여기에서 소개된다.
2D 4x4 점 ICT(2D 4x4 point ICT)가 T_h, 역 T_odd 및 역 T_odd_odd를 사용하여 작성된다. 유의할 점은 역 T_h가 T_h 자체라는 것이다. ICT는 이하의 의사코드에 나타내어져 있는 2개의 스테이지(stage)로 이루어져 있다. 각각의 스테이지는 그 스테이지 내에서 임의적인 순서로 또는 동시에 행해질 수 있는 4개의 2x2 변환으로 이루어져 있다.
입력 데이터 블록이
Figure 112014118251524-pat00019
인 경우, 4x4_IPCT_lstStage() 및
4x4_IPCT_2ndStage()는 다음과 같이 정의된다.
Figure 112014118251524-pat00020
함수 2x2_ICT는 T_h와 같다.
포스트 필터링 개요
4개의 연산자가 역 중복 변환(inverse lapped transform)에서 사용되는 포스트 필터(post filter)를 결정한다. 이들은 다음과 같다.
Figure 112014118251524-pat00021
4x4 포스트 필터
Figure 112014118251524-pat00022
4 점 포스트 필터(point post filter)
Figure 112014118251524-pat00023
2x2 포스트 필터
Figure 112014118251524-pat00024
2 점 포스트 필터
포스트 필터는 T_h, InvT_odd_odd, invScale 및 invRotate를 사용한다. invRotate 및 invScale은 이하의 테이블들에 각각 정의되어 있다.
Figure 112014118251524-pat00025
Figure 112014118251524-pat00026
4x4 포스트 필터
우선, OVERLAP_INFO가 1 또는 2인 경우, 4x4 포스트 필터가 모든 컬러 평면 내의 모든 블록 교차부(block junction)(4개의 블록에 균등하게 걸쳐 있는 영역)에 적용된다. 또한, OVERLAP_INFO가 2인 경우, 4x4 필터가 모든 평면에 대해 DC 평면 내의 모든 블록 교차부에 적용되고, OVERLAP_INFO가 2이고 컬러 형식이 YUV 4:2:0 또는 YUV 4:2:2인 경우, 루마 평면(luma plane)에 대해서만 DC 평면 내의 모든 블록 교차부에 적용된다.
입력 데이터 블록이
Figure 112014118251524-pat00027
인 경우, 4x4 포스트 필터, 즉 4x4PostFilter(a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p)는 이하의 테이블에 정의되어 있다.
Figure 112014118251524-pat00028
4-점 포스트 필터
선형 4-점 필터가 이미지의 경계에 있는 2x4 및 4x2 영역에 걸쳐 있는 가장자리에 적용된다. 입력 데이터가 [a b c d]인 경우, 4-점 포스트 필터, 즉 4PostFilter(a, b, c, d)는 이하의 테이블에 정의되어 있다.
Figure 112014118251524-pat00029
2x2 포스트 필터
2x2 포스트 필터는 YUV 4:2:0 및 YUV 4:2:2 데이터의 크로마 채널에 대해 DC 평면 내의 블록들에 걸쳐 있는 영역에 적용된다. 입력 데이터가
Figure 112014118251524-pat00030
인 경우, 2x2 포스트 필터, 즉 2x2PostFilter(a, b, c, d)는 이하의 테이블에 정의되어 있다.
Figure 112014118251524-pat00031
2-점 포스트 필터
*2-점 포스트 필터는 블록들에 걸쳐 있는 경계의 2x1 및 1x2 샘플에 적용된다. 2-점 포스트 필터, 즉 2PostFilter(a, b)는 이하의 테이블에 정의되어 있다.
Figure 112014118251524-pat00032
상기한 중복 변환의 변환 연산을 수행하는 데 요구되는 정밀도를 신호하는 것은 압축된 이미지 구조체의 헤더에서 수행될 수 있다. 예시적인 구현에서, LONG_WORD_FLAG 및 NO_SCALED_FLAG는 디코더에 의해 적용될 정밀도 및 계산 복잡도를 신호하기 위해 압축된 비트스트림으로(예를 들어, 이미지 헤더로) 전송되는 구문 요소이다.
3. 정밀도 및 워드 길이
예시적인 인코더/디코더는 정수 연산을 수행한다. 게다가, 예시적인 인코더/디코더는 무손실 인코딩 및 디코딩을 지원한다. 따라서, 예시적인 인코더/디코더에 의해 요구되는 1차적 기계 정밀도(primary machine precision)는 정수이다.
그렇지만, 예시적인 인코더/디코더에서 정의되는 정수 연산은 손실 코딩의 경우에 반올림 오차(rounding error)를 유발한다. 이들 오차가 설계에 따라 작기는 하지만, 레이트 왜곡 곡선(rate distortion curve)에서 하락(drop)을 야기한다. 반올림 오차를 감소시킴으로써 코딩 성능을 향상시키기 위해, 예시적인 인코더/디코더는 2차적 기계 정밀도(secondary machine precision)를 정의한다. 이 모드에서, 입력이 8과 미리 곱해지고(즉, 3 비트만큼 좌측 시프트되고), 최종 출력이 8로 나누어지고 반올림된다(즉, 3 비트만큼 우측 시프트된다). 이들 연산은 인코더의 전단부 및 디코더의 후단부에서 수행되고, 나머지 프로세스들에서 대체로 볼 수가 없다. 게다가, 1차적 기계 정밀도로 생성되고 2차적 기계 정밀도를 사용하여 디코딩된 스트림(그 역도 마찬가지임)이 타당한 이미지를 생성하도록 양자화 레벨이 그에 따라 스케일링된다.
무손실 압축이 요망되는 경우, 2차적 기계 정밀도가 사용될 수 없다. 압축된 파일을 생성하는 데 사용되는 기계 정밀도는 헤더에 명시적으로 표시되어 있다.
2차적 기계 정밀도는 코덱에서 스케일링된 산술(scaled arithmetic)을 사용하는 것과 동등하며, 따라서 이 모드는 스케일링 방식(Scaled)이라고 한다. 1차적 기계 정밀도는 비스케일링 방식(Unscaled)이라고 한다.
예시적인 인코더/디코더는 양호한 인코딩 및 디코딩 속도를 제공하도록 설계되어 있다. 예시적인 인코더/디코더의 설계 목표는 디코더 및 디코더 둘다에서의 데이터 값이 8 비트 입력에 대해 부호있는 16 비트(16 signed bit)를 초과하지 않는 것이다. (그렇지만, 변환 스테이지 내에서의 중간 연산은 이 숫자를 초과할 수도 있다.) 양 기계 정밀도 모드에 대해서도 이와 마찬가지이다.
이와 달리, 2차적 기계 정밀도가 선택되는 경우, 중간 값의 범위 확장(range expansion)은 8 비트만큼이다. 1차적 기계 정밀도가 8과 미리 곱하는 것을 피하기 때문에, 그의 범위 확장은 8 - 3 = 5 비트이다.
제1의 예시적인 인코더/디코더는 중간 값에 대해 2개의 서로 다른 워드 길이를 사용한다. 이들 워드 길이는 16 비트 및 32 비트이다.
제2의 예시적인 비트스트림 구문 및 의미
제2의 예시적인 비트스트림 구문 및 의미는 계층적이며, 이하의 계층들, 즉 이미지(Image), 타일(Tile), 매크로블록(Macroblock) 및 블록(Block)으로 이루어져 있다.
Figure 112014118251524-pat00033

Figure 112014118251524-pat00034

Figure 112014118251524-pat00035

Figure 112014118251524-pat00036

Figure 112014118251524-pat00037
제2의 예시적인 비트스트림 구문 및 의미로부터의 어떤 선택된 비트스트림 요소가 이하에 정의되어 있다.
롱 워드 플래그(Long Word Flag) (LONG_WORD_FLAG) (1 비트)
LONG_WORD_FLAG는 1-비트 구문 요소로서, 16-비트 정수가 변환 계산에 사용될 수 있는지 여부를 지정한다. 이러한 제2의 예시적인 비트스트림 구문에서, LONG_WORD_FLAG == 0(FALSE)인 경우, 16-비트 정수 숫자 및 어레이가 변환 계산의 외부 스테이지(outer stage of transform computations)에 사용될 수 있다[변환 내에서의 중간 연산((3*a+l)>>l 등)이 더 높은 정확도로 수행된다]. LONG_WORD_FLAG == TRUE인 경우, 32-비트 정수 숫자 및 어레이가 변환 계산에 사용될 것이다.
유의할 점: LONG_WORD_FLAG의 값에 상관없이 이미지를 디코딩하는 데 32-비트 산술이 사용될 수 있다. 이러한 구문 요소는 디코더에서 구현에 가장 효율적인 워드 길이를 선택하는 데 사용될 수 있다.
스케일링없는 산술 플래그(No Scaled Arithmetic Flag)(NO_SCALED_FLAG)(1 비트)
NO_SCALED_FLAG는 1-비트 구문 요소로서, 변환이 스케일링을 사용하는지 여부를 지정한다. NO_SCALED_FLAG == 1인 경우, 스케일링이 수행되지 않을 것이다. NO_SCALED_FLAG == 0인 경우, 스케일링이 사용될 것이다. 이 경우에, 스케일링은 최종 스테이지[컬러 변환(color conversion)]의 출력을 3 비트만큼 적절히 잘라 버림(rounding down)하는 것으로 수행될 것이다.
유의할 점: 무손실 코딩이 요망되는 경우, 무손실 코딩이 이미지의 서브영역에 대해서만 사용되더라도, NO_SCALED_FLAG가 TRUE로 설정될 것이다. 손실 코딩은 어느 한 모드를 사용할 수 있다.
유의할 점: 손실 코딩의 레이트-왜곡 성능은, 스케일링이 사용될 때(즉, NO_SCALED_FLAG == FALSE일 때), 특히 낮은 QP에서 더 우수하다.
4. 롱 워드 플래그의 시그널링 및 사용
대표적인 인코더/디코더의 한 예시적인 이미지 형식은 높은 동적 범위(high dynamic range) 및 광색역(wide gamut) 형식을 비롯한 광범위한 픽셀 형식을 지원한다. 지원되는 데이터 유형으로는 부호있는 정수(signed integer), 부호없는 정수(unsigned integer), 고정 소수점(fixed-point float) 및 부동 소수점(floating-point float)이 있다. 지원되는 비트 깊이(bit depth)로는 컬러 채널마다 8, 16, 24, 32 비트가 있다. 예시적인 이미지 형식은 컬러 채널마다 최대 24 비트를 사용하는 이미지의 무손실 압축과 컬러 채널마다 최대 32 비트를 사용하는 이미지의 손실 압축을 가능하게 해준다.
이와 동시에, 예시적인 이미지 형식은 고품질 이미지 및 압축 효율을 제공하도록 설계되어 있으며, 저복잡도 인코딩 및 디코딩 구현을 가능하게 해준다.
저복잡도 구현을 지원하기 위해, 예시적인 이미지 형식에서의 변환이 동적 범위의 확장을 최소화하도록 설계되어 있다. 2-스테이지 변환은 동적 범위를 5 비트만 증가시킨다. 따라서, 이미지 비트 깊이가 컬러 채널마다 8 비트인 경우, 디코더에서 모든 변환 연산을 수행하는 데 16 비트 산술로 충분할 수 있다. 기타 비트 깊이의 경우, 더 높은 정밀도의 산술이 변환 연산에 필요하게 될지도 모른다.
변환 연산을 수행하는 데 요구되는 정밀도를 디코더가 알고 있는 경우, 특정의 비트스트림을 디코딩하는 것의 계산 복잡도가 감소될 수 있다. 이 정보는 구문 요소(예를 들어, 이미지 헤더 내의 1-비트 플래그)를 사용하여 디코더에게 신호될 수 있다. 기술된 시그널링 기법 및 구문 요소는 비트스트림을 디코딩함에 있어서의 계산 복잡도를 감소시킬 수 있다.
한 예시적인 구현에서, 1-비트 구문 요소 LONG_WORD_FLAG가 사용된다. 예를 들어, LONG_WORD_FLAG == FALSE인 경우, 16-비트 정수 숫자 및 어레이가 변환 계산의 외부 스테이지에 사용될 수 있고, LONG_WORD_FLAG == TRUE인 경우, 32-비트 정수 숫자 및 어레이가 변환 계산에 사용될 것이다.
대표적인 인코더/디코더의 한 구현에서, 16-비트 폭 워드에 대해 즉석 변환 연산(in-place transform operation)이 수행될 수 있지만, 이 변환 내에서의 중간 연산[b += (3*a+l)>>l)에 의해 주어지는 "리프팅(lifting)" 단계에서의 곱 3*a의 계산 등]은 더 높은 정확도(예를 들어, 18 비트 또는 그 이상의 정밀도)로 수행된다. 그렇지만, 이 예에서, 중간 변환 값 a 및 b 자체는 16-비트 정수로 저장될 수도 있다.
LONG_WORD_FLAG 요소의 값에 상관없이 이미지를 디코딩하는 데 32-비트 산술이 사용될 수 있다. LONG_WORD_FLAG 요소는 인코더/디코더에서 구현에 가장 효율적인 워드 길이를 선택하는 데 사용될 수 있다. 예를 들어, 인코더는 16-비트 및 32-비트 정밀도의 변환 단계가 동일한 출력값을 산출한다는 것을 검증할 수 있는 경우, LONG_WORD_FLAG 요소를 FALSE로 설정하려고 할 수 있다.
5. NO _ SCALED _ FLAG 시그널링 및 사용
대표적인 인코더/디코더에 대한 한 예시적인 이미지 형식이 높은 동적 범위(high dynamic range) 및 광색역(wide gamut) 형식을 비롯한 광범위한 픽셀 형식을 지원한다. 이와 동시에, 대표적인 인코더/디코더의 설계가 이미지 품질 및 압축 효율을 최적화시키고, 저복잡도 인코딩 및 디코딩 구현을 가능하게 해준다.
상기한 바와 같이, 대표적인 인코더/디코더는 2-스테이지의 계층적 블록-기반 변환을 사용하며, 여기서 모든 변환 단계는 정수 연산이다. 이들 정수 연산에 작은 반올림 오차가 존재하게 되면 손실 압축 동안에 압축 효율의 저하가 있게 된다. 이러한 문제점을 극복하기 위해, 대표적인 인코더/디코더의 한 구현은 디코더 연산에 대해 2가지 서로 다른 정밀도 모드, 즉 스케일링 방식 모드(scaled mode) 및 비스케일링 방식 모드(unsealed mode)를 정의한다.
스케일링 방식 정밀도 모드(scaled precision mode)에서, 입력 이미지는 인코더에서 8과 미리 곱해지고(즉, 3 비트만큼 좌측 시프트되고), 디코더에서의 최종 출력은 8로 나누어지고 반올림된다(즉, 3 비트만큼 우측 시프트된다). 스케일링 방식 정밀도 모드에서의 연산은 반올림 오차를 최소화시키며, 그 결과 레이트-왜곡 성능이 향상된다.
비스케일링 방식 정밀도 모드(unsealed precision mode)에서는, 이러한 스케일링이 없다. 비스케일링 방식 정밀도 모드에서 동작하는 인코더 또는 디코더는 변환 계수에 대해 보다 작은 동적 범위를 처리해야만 하며, 따라서 보다 낮은 계산 복잡도를 갖는다. 그렇지만, 이 모드에서 동작하는 것은 압축 효율에서 작은 불이익이 있다. 무손실 코딩(양자화 없음, 즉 양자화 파라미터 QP를 1로 설정함)은 가역성의 보장을 위해 비스케일링 방식 정밀도 모드만을 사용할 수 있다.
인코더에서 압축된 파일을 생성하는 데 사용되는 정밀도 모드는 압축된 비트스트림(220)(도 2)의 이미지 헤더에서 NO_SCALED_FLAG를 사용하여 명시적으로 신호된다. 디코더(300)가 그의 연산들에 동일한 정밀도 모드를 사용하는 것이 권장된다.
NO_SCALED_FLAG는 이미지 헤더에 있는 1-비트 구문 요소로서, 정밀도 모드를 다음과 같이 지정한다.
NO_SCALED_FLAG == TRUE인 경우, 디코더 연산에 비스케일링 방식 모드가 사용되어야만 한다.
NO_SCALED_FLAG == FALSE인 경우, 스케일링이 사용되어야만 한다. 이 경우에, 최종 스테이지(컬러 변환)의 출력을 3 비트만큼 적절히 잘라 버림(rounding down)함으로써 스케일링 방식 모드가 연산에 사용되어야만 한다.
손실 코딩에 대한 레이트-왜곡 성능은 비스케일링 방식 모드가 사용될 때(즉, NO_SCALED_FLAG == FALSE일 때), 특히 낮은 QP에서 더 우수하다. 그렇지만, 2가지 이유로 인해, 비스케일링 방식 모드가 사용될 때 계산 복잡도가 더 낮다.
비스케일링 방식 모드에서의 보다 작은 동적 범위 확장은, 특히 "LONG_WORD_FLAG"와 관련하여, 보다 짧은 워드가 변환 계산에 사용될 수 있다는 것을 의미한다. VLSI 구현에서, 감소된 동적 범위 확장은 상위 비트를 구현하는 게이트 논리의 전원이 꺼져도 괜찮다는 것을 의미한다.
스케일링 방식 모드에서는 디코더측에서 덧셈 및 3 비트만큼 우측 비트 시프트(8로 나누고 반올림하는 것을 구현)가 요구된다. 인코더측에서는, 3 비트만큼 좌측 비트 시프트가 요구된다. 이것은 전체적으로 볼 때 비스케일링 방식 모드보다 약간 더 많은 계산을 요구한다.
게다가, 비스케일링 방식 모드는 스케일링 방식 모드보다 더 많은 유효 비트의 압축을 가능하게 해준다. 예를 들어, 비스케일링 방식 모드는 32 비트 산술을 사용하여, 샘플마다 최대 27개의 유효 비트의 무손실 압축(및 압축 해제)을 가능하게 해준다. 이와 달리, 스케일링 방식 모드는 단지 24 비트에 대해 이상과 동일한 것을 가능하게 해준다. 이러한 이유는 스케일링 프로세스에 의해 유입된 3개의 부가 비트의 동적 범위 때문이다.
디코더에서의 데이터 값이 양 정밀도 모드에서 8 비트 입력에 대해 부호있는 16 비트를 초과하지 않는다. (그렇지만, 변환 스테이지 내에서의 중간 연산은 이 숫자를 초과할 수도 있다.)
유의할 점: 무손실 코딩(QP = 1)이 요망되는 경우, 이미지의 서브영역에 대해서만 무손실 코딩이 요구되더라도, NO_SCALED_FLAG가 인코더에 의해 TRUE로 설정된다.
인코더는 손실 압축을 위해 어느 한 모드를 사용할 수 있다. 디코더가 그의 연산에 NO_SCALED_MODE에 의해 신호되는 정밀도 모드를 사용하는 것이 권장된다. 그렇지만, 대부분의 경우에, 스케일링 방식 정밀도 모드로 생성되고 비스케일링 방식 정밀도 모드를 사용하여 디코딩된(그 역도 마찬가지임) 스트림이 타당한 이미지를 산출하도록 양자화 레벨이 스케일링된다.
6. 향상된 정확도를 위한 스케일링 산술
대표적인 인코더/디코더의 한 구현에서, 변환들(컬러 변환을 포함함)은 정수 변환이고 일련의 리프팅 단계들(lifting steps)를 통해 구현된다. 이들 리프팅 단계에서, 버림 오차(truncation error)는 변환 성능을 해친다. 손실 압축의 경우, 버림 오차의 피해를 최소화하고 따라서 변환 성능을 최대화하기 위해, 변환에의 입력 데이터가 몇 비트 좌측 시프트될 필요가 있다. 그렇지만, 또 하나의 아주 원하는 특징은 입력 이미지가 8 비트인 경우, 모든 변환의 출력이 16 비트 내에 있어야만 한다는 것이다. 따라서, 좌측 시프트 비트의 수는 클 수가 없다. 대표적인 디코더는 양 목표를 달성하는 스케일링 산술 기법을 구현한다. 이 스케일링 산술 기법은 버림 오차의 피해를 최소화함으로써 변환 성능을 최대화하고, 여전히 입력 이미지가 8 비트인 경우 각각의 변환 단계의 출력을 16 비트 내로 제한한다. 이것은 간단한 16-비트 구현을 가능하게 만들어준다.
대표적인 인코더/디코더에서 이용되는 변환은 정수 변환이고 리프팅 단계들에 의해 구현된다. 대부분의 리프팅 단계는 우측 시프트를 포함하며, 이 우측 시프트는 버림 오차를 야기한다. 변환은 일반적으로 많은 리프팅 단계들을 포함하며, 누적된 버림 오차는 변환 성능을 눈에 보일 정도로 손상시킨다.
버림 오차의 피해를 감소시키는 한가지 방법은 인코더에서의 변환 이전에 입력 데이터를 좌측 시프트시키고 디코더에서의 (양자화와 관련된) 변환 이후에 동일한 비트 수만큼 우측 시프트시키는 것이다. 상기한 바와 같이, 대표적인 인코더/디코더는 2-스테이지 변환 구조, 즉 선택적인 제1 스테이지 중첩 + 제1 스테이지 CT + 선택적인 제2 스테이지 중첩 + 제2 스테이지 CT를 갖는다. 실험에 의하면, 버림 오차를 최소화하기 위해 3 비트만큼 좌측 시프트하는 것이 필요하다. 따라서, 손실 변환의 경우에, 컬러 변환 이전에, 입력 데이터가 3 비트만큼 좌측 시프트될 수 있다, 즉 8과 곱해지거나 8만큼 스케일링될 수 있다(예를 들어, 상기한 스케일링 방식 모드의 경우).
그렇지만, 컬러 변환(color conversion) 및 변환(transform)은 데이터를 확장시킨다. 입력 데이터가 3 비트만큼 시프트되는 경우, 입력 데이터가 8 비트라면(모든 다른 변환의 출력은 16 비트 내에 있음), 제2 스테이지 4x4 DCT의 출력은 17-비트 동작 범위를 갖는다. 이것은 아주 바람직하지 않은데, 그 이유는 몹시 원하는 특징인 16-비트 구현을 방해하기 때문이다. 이것을 극복하기 위해, 제2 스테이지 4x4 CT 이전에, 입력 데이터가 1 비트만큼 우측 시프트되고, 따라서 그 출력도 역시 16 비트 내에 있다. 제2 스테이지 4x4 CT가 데이터의 1/16(제1 스테이지 DCT의 DC 변환 계수)에만 적용되고 그 데이터가 이미 제1 스테이지 변환에 의해 업스케일링(up-scaling)되어 있기 때문에, 이 점에서 버림 오차의 피해가 최소로 된다.
따라서, 8-비트 이미지에 대한 손실 변환의 경우에, 인코더측에서, 입력이 컬러 변환 이전에 3 비트만큼 좌측 시프트되고, 제2 스테이지 4x4 CT 이전에 1 비트만큼 우측 시프트된다. 디코더측에서, 입력은 제1 스테이지 4x4 IDCT 이전에 1 비트만큼 좌측 시프트되고, 컬러 변환 이후에 3 비트만큼 우측 시프트된다.
7. 컴퓨팅 환경
디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 시그널링을 위한 상기한 처리 기법들이, 그 중에서도 특히, 컴퓨터(서버, 데스크톱, 랩톱, 핸드헬드, 기타 등등을 비롯하여, 다양한 폼 팩터를 가짐), 디지털 미디어 레코더 및 플레이어, 이미지 및 비디오 캡처 장치(카메라, 스캐너, 기타 등등), 통신 장비(전화, 이동 전화, 회의 장비, 기타 등등), 디스플레이, 인쇄 또는 기타 프리젠테이션 장치, 기타 등등을 비롯한 각종의 디지털 미디어 인코딩 및/또는 디코딩 시스템 중 어느 것에서라도 실현될 수 있다. 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 시그널링 기법은 하드웨어 회로로, 디지털 미디어 처리 하드웨어를 제어하는 펌웨어로, 또한 도 6에 도시된 것과 같은 컴퓨터 또는 기타 컴퓨팅 환경 내에서 실행되는 통신 소프트웨어로 구현될 수 있다.
도 6은 기술된 실시예들이 구현될 수 있는 적당한 컴퓨팅 환경(600)의 일반화된 예를 나타낸 것이다. 컴퓨팅 환경(600)은 본 발명의 용도 또는 기능성의 범위에 관한 어떤 제한을 암시하기 위한 것이 아닌데, 그 이유는 본 발명이 다양한 범용 또는 특수 목적의 컴퓨팅 환경에서 구현될 수 있기 때문이다.
도 6을 참조하면, 컴퓨팅 환경(600)은 적어도 하나의 처리 장치(610) 및 메모리(620)를 포함하고 있다. 도 6에서, 이 가장 기본적인 구성(630)은 점선 내에 포함되어 있다. 처리 장치(610)는 컴퓨터 실행가능 명령어를 실행하고 실제 프로세서 또는 가상 프로세서일 수 있다. 멀티-프로세싱 시스템에서, 처리 능력을 향상시키기 위해 다수의 처리 장치가 컴퓨터 실행가능 명령어를 실행한다. 메모리(620)는 휘발성 메모리(예를 들어, 레지스터, 캐쉬, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래쉬 메모리, 기타 등등), 또는 이 둘의 어떤 조합일 수 있다. 메모리(620)는 기술된 디지털 미디어 인코딩/디코딩을 계산 복잡도 및 정밀도 시그널링 기법을 사용하여 구현하는 소프트웨어(1780)를 저장하고 있다.
컴퓨팅 환경은 부가적인 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환경(600)은 저장 장치(640), 하나 이상의 입력 장치(650), 하나 이상의 출력 장치(660) 및 하나 이상의 통신 접속(670)을 포함하고 있다. 버스, 컨트롤러, 또는 네트워크 등의 상호접속 메카니즘(도시 생략)은 컴퓨팅 환경(600)의 컴포넌트들을 상호 접속시킨다. 통상적으로, 운영 체제 소프트웨어(도시 생략)는 컴퓨팅 환경(600)에서 실행되는 기타 소프트웨어에 동작 환경을 제공하고, 컴퓨팅 환경(600)의 컴포넌트들의 동작들을 조정한다.
저장 장치(640)는 이동식 또는 비이동식일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 컴퓨팅 환경(600) 내에서 액세스될 수 있고 또 정보를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(640)는 기술된 디지털 미디어 인코딩/디코딩을 계산 복잡도 및 정밀도 시그널링 기법을 사용하여 구현하는 소프트웨어(680)에 대한 명령어를 저장하고 있다.
입력 장치(들)(650)는 키보드, 마우스, 펜, 또는 트랙볼 등의 터치 입력 장치(touch input device), 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(600)에 입력을 제공하는 다른 장치일 수 있다. 오디오의 경우, 입력 장치(들)(650)는 마이크 또는 마이크 어레이로부터 아날로그 또는 디지털 형태로 오디오 입력을 받는 사운드 카드 또는 이와 유사한 장치, 또는 컴퓨팅 환경에 오디오 샘플을 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(660)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(600)으로부터의 출력을 제공하는 다른 장치일 수 있다.
통신 접속(들)(670)은 통신 매체를 통해 다른 컴퓨팅 개체와의 통신을 가능하게 해준다. 통신 매체는 컴퓨터 실행가능 명령어, 압축된 오디오 또는 비디오 정보, 또는 기타 데이터 등의 정보를 피변조 데이터 신호로 전달한다. 피변조 데이터 신호란 신호에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호를 말한다. 제한이 아닌 예로서, 통신 매체는 전기, 광학, RF, 적외선, 음향 또는 기타 반송파로 구현되는 유선 또는 무선 기술을 포함한다.
본 명세서에 기술된 유연성있는 양자화 기법에 의한 디지털 미디어 인코딩/디코딩은 일반적으로 컴퓨터 판독가능 매체와 관련하여 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 제한이 아닌 예로서, 컴퓨팅 환경(600)에서, 컴퓨터 판독가능 매체는 메모리(620), 저장 장치(640), 통신 매체, 및 상기한 것들 중 임의의 것의 조합을 포함한다.
본 명세서에서 기술된 계산 복잡도 및 정밀도 시그널링 기법에 의한 디지털 미디어 인코딩/디코딩은 일반적으로 실제 또는 가상의 목표 프로세서(target real or virtual processor) 상의 컴퓨팅 환경에서 실행되는 프로그램 모듈에 포함되어 있는 것 등의 컴퓨터 실행가능 명령어와 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 객체, 클래스, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 프로그램 모듈들의 기능이 다양한 실시예에서 원하는 바대로 프로그램 모듈들 간에 결합되거나 분할될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령어는 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
설명을 위해, 상세한 설명은 컴퓨팅 환경에서의 컴퓨터 동작들을 기술하기 위해 "판정한다", "발생한다", "조정한다" 및 "적용한다"와 같은 용어들을 사용한다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 상위 레벨 추상화이며, 사람에 의해 수행되는 동작들과 혼동되어서는 안된다. 이들 용어에 대응하는 실제의 컴퓨터 동작들은 구현에 따라 다르다.
본 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들을 바탕으로, 이하의 청구항 및 그의 등가물의 범위 및 정신 내에 속할 수 있는 모든 이러한 실시예들을 우리의 발명으로서 청구한다.
200: 인코더 210: 2D 입력 데이터
220: 압축된 비트스트림 230: 분할
240: 순방향 중첩 250: 블록 변환
260: DC 계수 262: AC 계수
270: 양자화 280: 엔트로피 코딩
290: 패킷화 300: 디코더

Claims (11)

  1. 디지털 미디어 디코딩 방법으로서,
    디지털 미디어 디코더에서 압축된 디지털 미디어 비트스트림을 수신하는 단계,
    디지털 미디어 데이터의 처리 동안에 변환 계산에 사용할 산술 정밀도를 신호하는 구문 요소(syntax element)를 상기 비트스트림으로부터 파싱하는 단계, 및
    재구성된 이미지를 출력하는 단계를 포함하는, 디지털 미디어 디코딩 방법.
  2. 제1항에 있어서, 상기 구문 요소는 높은 산술 정밀도 또는 낮은 산술 정밀도 중 하나를 사용하도록 신호하는 것인, 디지털 미디어 디코딩 방법.
  3. 제2항에 있어서, 상기 높은 산술 정밀도는 32-비트 숫자 처리(32-bit number processing)이고,
    상기 낮은 산술 정밀도는 16-비트 숫자 처리인 것인, 디지털 미디어 디코딩 방법.
  4. 제2항에 있어서, 상기 압축된 디지털 미디어 비트스트림으로부터 변환 계수들의 블록들을 디코딩하는 단계,
    상기 구문 요소가 상기 높은 산술 정밀도의 사용을 신호하는 경우, 높은 산술 정밀도 처리를 사용하여 상기 변환 계수들에 역변환을 적용하는 단계, 및
    상기 구문 요소가 상기 낮은 산술 정밀도의 사용을 신호하는 경우, 낮은 산술 정밀도 처리를 사용하여 상기 변환 계수들에 역변환을 적용하는 단계를 더 포함하는, 디지털 미디어 디코딩 방법.
  5. 제4항에 있어서, 상기 높은 산술 정밀도는 32-비트 숫자 처리이고,
    상기 낮은 산술 정밀도는 16-비트 숫자 처리인 것인, 디지털 미디어 디코딩 방법.
  6. 제2항에 있어서, 상기 압축된 디지털 미디어 비트스트림으로부터 변환 계수들의 블록들을 디코딩하는 단계, 및
    상기 구문 요소를 통해 신호된 상기 산술 정밀도에 상관없이 높은 산술 정밀도 처리를 사용하여 상기 변환 계수들에 역변환을 적용하는 단계를 더 포함하는, 디지털 미디어 디코딩 방법.
  7. 디지털 미디어 인코딩 방법으로서,
    디지털 미디어 인코더에서 디지털 미디어 데이터를 수신하는 단계,
    상기 디지털 미디어 데이터의 처리 동안에 변환 계산에 낮은 정밀도 산술을 사용할지 여부를 결정하는 단계,
    변환 계산에 상기 낮은 정밀도 산술을 사용할지 여부의 상기 결정을 인코딩된 비트스트림 내의 구문 요소를 사용하여 표현하는 단계 - 상기 구문 요소는 상기 결정을 디지털 미디어 디코더에 전달하는 동작을 함 -, 및
    상기 인코딩된 비트스트림을 출력하는 단계를 포함하는, 디지털 미디어 인코딩 방법.
  8. 제7항에 있어서, 상기 결정하는 단계는,
    변환 계산을 위한 상기 낮은 정밀도 산술이 변환 계산에 높은 정밀도 산술을 사용한 것과 동일한 디코더 출력을 산출하는지 여부를 검증하는 단계, 및
    상기 검증 단계에 기초하여 상기 낮은 정밀도 산술을 사용할지 여부를 결정하는 단계를 포함하는 것인, 디지털 미디어 인코딩 방법.
  9. 제7항에 있어서, 상기 낮은 정밀도 산술은 16-비트 산술 정밀도인 것인, 디지털 미디어 인코딩 방법.
  10. 제7항에 있어서, 변환 코딩 이전에 상기 디지털 미디어 데이터의 스케일링을 적용할지 여부를 결정하는 단계, 및
    상기 스케일링을 적용할지 여부의 상기 결정을 상기 인코딩된 비트스트림 내의 구문 요소를 사용하여 표현하는 단계를 더 포함하는, 디지털 미디어 인코딩 방법.
  11. 제10항에 있어서, 스케일링을 적용할지 여부를 결정하는 상기 단계는 상기 디지털 미디어 데이터를 무손실 인코딩하는 경우 입력 디지털 미디어 데이터의 스케일링을 적용하지 않기로 결정하는 단계를 포함하는 것인, 디지털 미디어 인코딩 방법.
KR1020147034179A 2007-02-21 2008-02-20 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어 KR101550166B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US89103107P 2007-02-21 2007-02-21
US60/891,031 2007-02-21
US11/772,076 2007-06-29
US11/772,076 US8942289B2 (en) 2007-02-21 2007-06-29 Computational complexity and precision control in transform-based digital media codec
PCT/US2008/054473 WO2008103766A2 (en) 2007-02-21 2008-02-20 Computational complexity and precision control in transform-based digital media codec

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020097017002A Division KR101507183B1 (ko) 2007-02-21 2008-02-20 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어

Publications (2)

Publication Number Publication Date
KR20150003400A KR20150003400A (ko) 2015-01-08
KR101550166B1 true KR101550166B1 (ko) 2015-09-03

Family

ID=41556839

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147034179A KR101550166B1 (ko) 2007-02-21 2008-02-20 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어
KR1020097017002A KR101507183B1 (ko) 2007-02-21 2008-02-20 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020097017002A KR101507183B1 (ko) 2007-02-21 2008-02-20 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어

Country Status (11)

Country Link
US (1) US8942289B2 (ko)
EP (1) EP2123045B1 (ko)
JP (2) JP5457199B2 (ko)
KR (2) KR101550166B1 (ko)
CN (1) CN101617539B (ko)
BR (1) BRPI0807465B1 (ko)
HK (1) HK1140341A1 (ko)
IL (1) IL199994A (ko)
RU (1) RU2518417C2 (ko)
TW (1) TWI471013B (ko)
WO (1) WO2008103766A2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7949054B2 (en) * 2006-06-01 2011-05-24 Microsoft Corporation Flexible data organization for images
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
JP5340091B2 (ja) * 2008-12-19 2013-11-13 キヤノン株式会社 画像符号化装置及びその制御方法
US8676849B2 (en) * 2009-03-12 2014-03-18 Microsoft Corporation Storing lossless transforms of data
KR20110135786A (ko) * 2010-06-11 2011-12-19 삼성전자주식회사 깊이 전이 데이터를 이용한 3d 비디오 인코딩/디코딩 장치 및 방법
US8879628B2 (en) 2011-02-21 2014-11-04 Dolby Laboratories Licensing Corporation Floating point video coding
US8781238B2 (en) 2011-09-08 2014-07-15 Dolby Laboratories Licensing Corporation Efficient decoding and post-processing of high dynamic range images
US11184623B2 (en) 2011-09-26 2021-11-23 Texas Instruments Incorporated Method and system for lossless coding mode in video coding
KR20130040132A (ko) * 2011-10-13 2013-04-23 한국전자통신연구원 이종 ip 네트워크를 통한 미디어 코덱에 독립적인 미디어 데이터 전송 방법
JP6157114B2 (ja) * 2012-12-28 2017-07-05 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US8817179B2 (en) * 2013-01-08 2014-08-26 Microsoft Corporation Chroma frame conversion for the video codec
GB2521349A (en) * 2013-12-05 2015-06-24 Sony Corp Data encoding and decoding
JP6220722B2 (ja) * 2014-04-17 2017-10-25 アンリツ株式会社 ミリ波帯用電波ハーフミラーおよびその透過係数平坦化方法
US10582269B2 (en) 2014-07-11 2020-03-03 Lg Electronics Inc. Method and device for transmitting and receiving broadcast signal
EP3169072A4 (en) * 2014-07-11 2017-11-15 LG Electronics Inc. -1- Method and device for transmitting and receiving broadcast signal
WO2016017961A1 (ko) 2014-07-29 2016-02-04 엘지전자 주식회사 방송 신호 송수신 방법 및 장치
JP6324590B2 (ja) * 2017-05-25 2018-05-16 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6915483B2 (ja) * 2017-09-27 2021-08-04 富士フイルムビジネスイノベーション株式会社 画像処理装置、画像処理システムおよびプログラム
EP3471271A1 (en) * 2017-10-16 2019-04-17 Acoustical Beauty Improved convolutions of digital signals using a bit requirement optimization of a target digital signal
CN113573057B (zh) 2018-02-01 2023-07-18 寰发股份有限公司 具有视频数据自适应量化的视频编码或解码方法和装置
JP2018142969A (ja) * 2018-04-11 2018-09-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050018774A1 (en) 2003-07-22 2005-01-27 Lsi Logic Corporation Method and/or circuit for binary arithmetic decoding decisions before termination

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63219066A (ja) 1987-03-06 1988-09-12 Matsushita Electric Ind Co Ltd 直交変換装置
US4922537A (en) * 1987-06-02 1990-05-01 Frederiksen & Shu Laboratories, Inc. Method and apparatus employing audio frequency offset extraction and floating-point conversion for digitally encoding and decoding high-fidelity audio signals
US5357594A (en) * 1989-01-27 1994-10-18 Dolby Laboratories Licensing Corporation Encoding and decoding using specially designed pairs of analysis and synthesis windows
US5379351A (en) * 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
US5319724A (en) 1990-04-19 1994-06-07 Ricoh Corporation Apparatus and method for compressing still images
JP2945487B2 (ja) * 1990-12-26 1999-09-06 株式会社日立製作所 行列乗算器
JPH04282988A (ja) 1991-03-12 1992-10-08 Sony Corp データ変換装置及び方法
US5168375A (en) * 1991-09-18 1992-12-01 Polaroid Corporation Image reconstruction by use of discrete cosine and related transforms
KR0150955B1 (ko) * 1992-05-27 1998-10-15 강진구 비트고정을 위한 영상압축방법과 신장방법 및 그 장치
US5394349A (en) * 1992-07-10 1995-02-28 Xing Technology Corporation Fast inverse discrete transform using subwords for decompression of information
JPH0645949A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0645948A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0654307A (ja) 1992-07-29 1994-02-25 Casio Comput Co Ltd データ圧縮装置
JPH06105296A (ja) 1992-09-18 1994-04-15 Sony Corp 可変長符号化および復号化方法
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
JP3069455B2 (ja) * 1992-12-22 2000-07-24 富士写真フイルム株式会社 画像データ圧縮伸張装置における量子化・逆量子化回路
US5995539A (en) * 1993-03-17 1999-11-30 Miller; William J. Method and apparatus for signal transmission and reception
JP3697717B2 (ja) * 1993-09-24 2005-09-21 ソニー株式会社 2次元離散コサイン変換装置および2次元逆離散コサイン変換装置
US5587708A (en) * 1994-01-19 1996-12-24 Industrial Technology Research Institute Division technique unified quantizer-dequantizer
JP3046224B2 (ja) * 1994-07-26 2000-05-29 三星電子株式会社 固定ビット率の符号化方法および装置とこれを利用した高速探索のためのトラッキング方法
EP0714212A3 (en) * 1994-11-21 1999-03-31 SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH Video decoder using concurrent processing and resource sharing
US5864637A (en) * 1995-04-18 1999-01-26 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selective reduction of spatial resolution
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
JP2778622B2 (ja) * 1995-06-06 1998-07-23 日本電気株式会社 2次元dct回路
JP2914226B2 (ja) 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
JP3274593B2 (ja) * 1995-09-27 2002-04-15 日本電気株式会社 可逆変換可能な変換装置及び逆変換装置
US5825929A (en) * 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
US6085221A (en) * 1996-01-08 2000-07-04 International Business Machines Corporation File server for multimedia file distribution
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
JP3168922B2 (ja) * 1996-08-27 2001-05-21 日本ビクター株式会社 デジタル画像情報の記録再生装置
JPH1091614A (ja) 1996-09-13 1998-04-10 Hitachi Ltd Idctの整数化法
JPH10107644A (ja) * 1996-09-26 1998-04-24 Sony Corp 量子化装置および方法、並びに、符号化装置および方法
SG54383A1 (en) * 1996-10-31 1998-11-16 Sgs Thomson Microelectronics A Method and apparatus for decoding multi-channel audio data
US5883823A (en) 1997-01-15 1999-03-16 Sun Microsystems, Inc. System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6351570B1 (en) * 1997-04-01 2002-02-26 Matsushita Electric Industrial Co., Ltd. Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding
US6058215A (en) * 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
US6134270A (en) * 1997-06-13 2000-10-17 Sun Microsystems, Inc. Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
US6057855A (en) * 1997-07-02 2000-05-02 Hewlett-Packard Company Method and apparatus for providing polygon pixel sub-sample information using incremental means
JPH11122624A (ja) * 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
US6006179A (en) * 1997-10-28 1999-12-21 America Online, Inc. Audio codec using adaptive sparse vector quantization with subband vector classification
US6137916A (en) * 1997-11-17 2000-10-24 Sony Electronics, Inc. Method and system for improved digital video data processing using 8-point discrete cosine transforms
WO1999029112A1 (en) * 1997-12-01 1999-06-10 Matsushita Electric Industrial Co., Ltd. Image processor, image data processor and variable length encoder/decoder
KR100441466B1 (ko) * 1997-12-19 2004-07-23 인피니언 테크놀로지스 아게 상수 팩터 승산을 위한 장치와 비디오 압축(mpeg)을 위한 상기 장치의 사용방법
RU2201654C2 (ru) 1997-12-23 2003-03-27 Томсон Лайсенсинг С.А. Способ низкошумового кодирования и декодирования
JP3953183B2 (ja) 1998-03-27 2007-08-08 パナソニック コミュニケーションズ株式会社 画像通信方法および画像通信装置
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
US6073153A (en) * 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6154762A (en) * 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6301304B1 (en) * 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
GB9819648D0 (en) * 1998-09-10 1998-11-04 Nds Ltd Determining visually noticeable differences between two images
US6353808B1 (en) * 1998-10-22 2002-03-05 Sony Corporation Apparatus and method for encoding a signal as well as apparatus and method for decoding a signal
DE69813912T2 (de) * 1998-10-26 2004-05-06 Stmicroelectronics Asia Pacific Pte Ltd. Digitaler audiokodierer mit verschiedenen genauigkeiten
US7194138B1 (en) * 1998-11-04 2007-03-20 International Business Machines Corporation Reduced-error processing of transformed digital data
US6421464B1 (en) * 1998-12-16 2002-07-16 Fastvdo Llc Fast lapped image transforms using lifting steps
US6363117B1 (en) * 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
US6473534B1 (en) * 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
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
US6574651B1 (en) * 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6507614B1 (en) * 1999-10-19 2003-01-14 Sony Corporation Efficient de-quantization in a digital video decoding process using a dynamic quantization matrix for parallel computations
US7028063B1 (en) * 1999-10-26 2006-04-11 Velocity Communication, Inc. Method and apparatus for a DFT/IDFT engine supporting multiple X-DSL protocols
AU2063401A (en) 1999-12-06 2001-06-12 Hrl Laboratories, Llc Variable precision wavelets
WO2001052550A1 (en) * 2000-01-12 2001-07-19 Koninklijke Philips Electronics N.V. Image data compression
JP3593944B2 (ja) * 2000-03-08 2004-11-24 日本電気株式会社 画像データ処理装置及びそれに用いる動き補償処理方法
JP4560694B2 (ja) 2000-04-05 2010-10-13 ソニー株式会社 符号化装置及びその方法
US6606725B1 (en) * 2000-04-25 2003-08-12 Mitsubishi Electric Research Laboratories, Inc. MAP decoding for turbo codes by parallel matrix processing
SE522261C2 (sv) * 2000-05-10 2004-01-27 Global Ip Sound Ab Kodning och avkodning av en digital signal
FR2818053B1 (fr) * 2000-12-07 2003-01-10 Thomson Multimedia Sa Procede et dispositif de codage pour l'affichage d'un zoom d'une image codee mpeg2
US8374237B2 (en) * 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
JP4063508B2 (ja) * 2001-07-04 2008-03-19 日本電気株式会社 ビットレート変換装置およびビットレート変換方法
US20030112873A1 (en) 2001-07-11 2003-06-19 Demos Gary A. Motion estimation for video compression systems
US7123655B2 (en) * 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US7185037B2 (en) * 2001-08-23 2007-02-27 Texas Instruments Incorporated Video block transform
KR100433709B1 (ko) 2001-08-31 2004-05-31 (주)씨앤에스 테크놀로지 행렬 변화를 통한 분산산술처리 방식의 이산여현변환 방법
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7295609B2 (en) * 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
AU2002351389A1 (en) * 2001-12-17 2003-06-30 Microsoft Corporation Skip macroblock coding
KR100924850B1 (ko) * 2002-01-24 2009-11-02 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
US7379498B2 (en) * 2002-03-11 2008-05-27 Broadcom Corporation Reconstructing a compressed still image by transformation to a compressed moving picture image
JP2003348598A (ja) 2002-04-12 2003-12-05 Seiko Epson Corp メモリ効率のいい圧縮領域ビデオ処理のための且つ因数分解及び整数近似法を用いる高速逆動き補償のための方法並びに装置
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US6944224B2 (en) * 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US7197525B2 (en) * 2002-11-26 2007-03-27 Analog Devices, Inc. Method and system for fixed point fast fourier transform with improved SNR
US7075530B2 (en) * 2003-02-27 2006-07-11 International Business Machines Corporation Fast lighting processors
US7330866B2 (en) * 2003-07-01 2008-02-12 Nvidia Corporation System for frequency-domain scaling for discrete cosine transform
US8218624B2 (en) * 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7502415B2 (en) * 2003-07-18 2009-03-10 Microsoft Corporation Range reduction
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
JP4617644B2 (ja) * 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US20050036548A1 (en) * 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of bit budget adjustment in dual pass encoding
US8014450B2 (en) * 2003-09-07 2011-09-06 Microsoft Corporation Flexible range reduction
KR100965881B1 (ko) 2003-10-10 2010-06-24 삼성전자주식회사 비디오 데이터 인코딩 시스템 및 디코딩 시스템
WO2005076614A1 (en) 2004-01-30 2005-08-18 Matsushita Electric Industrial Co., Ltd. Moving picture coding method and moving picture decoding method
US20050213835A1 (en) * 2004-03-18 2005-09-29 Huazhong University Of Science & Technology And Samsung Electronics Co., Ltd. Integer transform matrix selection method in video coding and related integer transform method
US20050259729A1 (en) 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
JP4241517B2 (ja) 2004-06-15 2009-03-18 キヤノン株式会社 画像符号化装置及び画像復号装置
JP4074868B2 (ja) * 2004-12-22 2008-04-16 株式会社東芝 画像符号化制御方法及びその装置
CN101662683B (zh) 2005-04-14 2012-05-30 汤姆森特许公司 空间可缩放视频解码方法和空间可缩放视频解码器
WO2007010690A1 (ja) 2005-07-22 2007-01-25 Mitsubishi Electric Corporation 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法、画像符号化プログラム、画像復号プログラム、ならびに画像符号化プログラムを記録したコンピュータ読み取り可能な記録媒体、画像復号プログラムを記録したコンピュータ読み取り可能な記録媒体
CN100539437C (zh) * 2005-07-29 2009-09-09 上海杰得微电子有限公司 一种音频编解码器的实现方法
US8548265B2 (en) * 2006-01-05 2013-10-01 Fastvdo, Llc Fast multiplierless integer invertible transforms
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
CN101636761B (zh) * 2007-03-23 2013-07-24 汤姆森特许公司 修改编码的比特流
CA2689634C (en) * 2007-06-14 2016-08-23 Thomson Licensing Modifying a coded bitstream
US20120014431A1 (en) * 2010-07-14 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050018774A1 (en) 2003-07-22 2005-01-27 Lsi Logic Corporation Method and/or circuit for binary arithmetic decoding decisions before termination

Also Published As

Publication number Publication date
HK1140341A1 (en) 2010-10-08
TWI471013B (zh) 2015-01-21
CN101617539B (zh) 2013-02-13
EP2123045A2 (en) 2009-11-25
US20080198935A1 (en) 2008-08-21
BRPI0807465A8 (pt) 2017-01-17
EP2123045B1 (en) 2018-10-17
KR20090115726A (ko) 2009-11-05
RU2009131599A (ru) 2011-02-27
BRPI0807465A2 (pt) 2014-06-03
WO2008103766A3 (en) 2008-11-27
CN101617539A (zh) 2009-12-30
TW200843515A (en) 2008-11-01
JP5457199B2 (ja) 2014-04-02
BRPI0807465B1 (pt) 2020-05-26
IL199994A (en) 2015-11-30
WO2008103766A2 (en) 2008-08-28
IL199994A0 (en) 2010-04-15
KR20150003400A (ko) 2015-01-08
EP2123045A4 (en) 2013-03-13
JP2010519858A (ja) 2010-06-03
US8942289B2 (en) 2015-01-27
RU2518417C2 (ru) 2014-06-10
JP2014078952A (ja) 2014-05-01
KR101507183B1 (ko) 2015-03-30

Similar Documents

Publication Publication Date Title
KR101550166B1 (ko) 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어
US11863749B2 (en) Flexible quantization
EP1672517B1 (en) Reversible transform for lossy and lossless 2-D data compression
US9123089B2 (en) Signaling and uses of windowing information for images
CA2617632C (en) Prediction of transform coefficients for image compression
KR101465817B1 (ko) 크로마 샘플 위치 정보의 시그널링 및 사용
RU2518932C2 (ru) Уменьшенное рассогласование коэффициентов усиления постоянной состовляющей (dc) и dc-утечки при обработке преобразования с перекрытием

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee