KR101323066B1 - 텍스처 레벨에 기반한 양자화 조정 - Google Patents

텍스처 레벨에 기반한 양자화 조정 Download PDF

Info

Publication number
KR101323066B1
KR101323066B1 KR1020087024247A KR20087024247A KR101323066B1 KR 101323066 B1 KR101323066 B1 KR 101323066B1 KR 1020087024247 A KR1020087024247 A KR 1020087024247A KR 20087024247 A KR20087024247 A KR 20087024247A KR 101323066 B1 KR101323066 B1 KR 101323066B1
Authority
KR
South Korea
Prior art keywords
encoder
block
picture
texture
quantization
Prior art date
Application number
KR1020087024247A
Other languages
English (en)
Other versions
KR20090006080A (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 KR20090006080A publication Critical patent/KR20090006080A/ko
Application granted granted Critical
Publication of KR101323066B1 publication Critical patent/KR101323066B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

비디오 인코더는 시퀀스 내의 현재 화상의 현재 평탄한 영역을 식별하고, 적어도 하나의 과거 및/또는 미래의 화상 내의 대응하는 영역이 평탄한지의 여부를 결정함으로써 시간 분석을 수행한다. 시간 분석에 적어도 부분에 기반하여, 인코더는 현재의 평탄한 영역 내의 양자화를 조정한다. 인코더는 시퀀스에 대한 차분 양자화 간격을 결정하고, 이 간격은 간격 번호를 포함한다. 간격은 인코더로 하여금, 적어도 예측된 차분 양자화된 화상 다음의 예측된 화상들의 적어도 간격 숫자에 대한 차분 양자화를 생략하도록 강제한다. 인코더는 현재 화상 내의 텍스처를 분석하고, 평탄성 문턱값을 정한다. 평탄성 문턱값에 따라, 인코더는 텍스처 데이터를 평탄성 문턱값과 비교하고, 현재의 화상 내의 적어도 하나의 평탄한 영역의 발견에 기반하여 현재의 화상의 적어도 부분에 대한 차분 양자화를 조정한다.
양자화, 경사 기울기 영역, 텍스처, 컨투어링 아티팩트, 양자화 조정

Description

텍스처 레벨에 기반한 양자화 조정{QUANTIZATION ADJUSTMENT BASED ON TEXTURE LEVEL}
DVD, 인터넷을 통한 음악 배포, 및 디지털 카메라가 점점 더 보편화됨에 따라, 디지털 미디어가 흔하게 되었다. 엔지니어들은 디지털 오디오, 비디오 및 이미지를 효율적으로 처리하면서 품질을 여전히 유지하기 위해 각종 기법을 사용한다. 이들 기법을 이해하기 위해서는, 오디오, 비디오 및 이미지 정보가 컴퓨터에서 어떻게 표현되고 처리되는지를 이해하는 것이 도움이 된다.
I. 컴퓨터에서의 미디어 정보의 표현
컴퓨터는 미디어 정보를, 그 정보를 표현하는 일련의 숫자로서 처리한다. 예를 들어, 하나의 숫자가 화상의 작은 요소 영역 각각에 대한 밝기의 세기 또는 적색, 녹색 또는 청색 등의 컬러 성분의 세기를 표현할 수 있으며, 따라서 화상의 디지털 표현은 하나 이상의 이러한 숫자들의 어레이로 이루어져 있다. 각각의 이러한 숫자를 샘플(sample)이라고 할 수 있다. 컬러 이미지의 경우, 각각의 요소 영역(elemental region)의 컬러를 표현하는 데 하나 이상의 샘플을 사용하는 것이 관례이고, 통상적으로 3개의 샘플이 사용된다. 요소 영역에 대한 이들 샘플의 세트를 픽셀이라고 할 수 있으며, 단어 "픽셀"은 "화소(picture element)"의 개념을 나타내는 축약이다. 예를 들어, 하나의 픽셀은 요소 영역을 표현하는 데 필요한 적색, 녹색 및 청색 광의 세기를 표현하는 3개의 샘플로 이루어져 있을 수 있다. 이러한 픽셀 유형을 RGB 픽셀이라고 한다. 샘플 깊이(sample depth), 해상도 및 프레임 레이트(frame rate)(비디오의 경우)를 비롯한 몇가지 인자들이 미디어 정보의 품질에 영향을 준다.
샘플 깊이는 샘플을 표현하는 데 사용될 수 있는 숫자들의 범위를 나타내는, 보통 비트 단위로 측정되는 속성이다. 샘플에 대해 많은 값들이 가능할 때, 품질이 높아질 수 있는데, 그 이유는 그 숫자가 미묘한 세기 변동 및/또는 큰 범위의 값들을 포착할 수 있기 때문이다. 해상도는 일반적으로 어떤 기간(오디오의 경우) 또는 공간(이미지 또는 개개의 비디오 화상의 경우)에 걸친 샘플들의 수를 말한다. 고해상도를 갖는 이미지는 다른 이미지들보다 생생하게 보이는 경향이 있고 분간할 수 있는 유용한 상세를 더 많이 포함하고 있다. 프레임 레이트는 비디오의 시간 해상도에 대한 통상적인 용어이다. 높은 프레임 레이트를 갖는 비디오는 다른 비디오보다 자연스런 물체의 매끄러운 움직임을 더 잘 표현하는 경향이 있고, 마찬가지로 시간 차원에서 더 많은 상세를 포함하는 것으로 생각될 수 있다. 이들 인자 모두에 있어서, 고품질에 대한 트레이드오프는, 표 1에 나타낸 바와 같이, 샘플 깊이, 해상도 및 프레임 레이트를 표현하는 데 필요한 비트 레이트(bit rate)의 측면에서의 정보의 저장 및 전송 비용이다.
원시 비디오(raw video)의 서로 다른 품질 레벨에 대한 비트 레이트
픽셀별 비트(샘플 깊이 x 픽셀별 샘플) 해상도(픽셀 단위,
폭 x 높이)
프레임 레이트
(프레임/초)
비트 레이트
(메가비트/초)
8(값 0-255, 단색) 160x120 7.5 1.2
24(값 0-255, RGB) 320x240 15 27.6
24(값 0-255, RGB) 640x480 30 221.2
24(값 0-255, RGB) 1280x720 60 1327.1
고품질 비디오(HDTV 등)를 저장 및 전송하는 데 높은 비트 레이트가 필요함에도 불구하고, 회사 및 소비자는 고품질 컨텐츠를 생성, 배포 및 재생하는 데 점점 더 컴퓨터에 의존하고 있다. 이 때문에, 엔지니어들은 디지털 미디어의 비트 레이트를 감소시키기 위해 압축(소스 코딩 또는 소스 인코딩이라고도 함)을 사용한다. 압축은 정보를 더 낮은 비트 레이트의 형태로 변환함으로써 정보를 저장 및 전송하는 비용을 감소시킨다. 압축이 무손실(lossless)일 수 있고, 이 무손실 압축에서는 비디오의 품질이 떨어지지 않으며 비트 레이트의 감소가 비디오의 복잡도에 의해 제한된다. 또는, 압축이 손실(lossy)일 수 있으며, 이 손실 압축에서는, 비디오의 품질이 떨어지지만 비트 레이트의 감소가 더 극적이다. 압축 해제(decompression)(디코딩이라고도 함)는 압축된 형태로부터 원래의 정보를 재구성한다. "코덱"은 인코더/디코더 시스템을 말한다.
일반적으로, 비디오 압축 기법은 "인트라" 압축("intra" compression) 및 "인터" 또는 예측 압축("inter" or predictive compression)을 포함한다. 비디오 프레임의 경우, 인트라 압축 기법은 개개의 프레임[통상적으로 I-프레임 또는 키 프레임(key frame)이라고 함]을 압축한다. 인터 압축 기법은 선행 프레임(preceding frame) 및/또는 후속 프레임(following frame)을 참조하여 프레임을 압축하고, 인터-압축된 프레임은 통상적으로 예측 프레임(predicted frame), P-프레임 또는 B-프레임이라고 한다.
II. WMV(Windows Media Video) 버전 8 및 9에서의 인터 및 인트라 압축
마이크로소프트의 WMV(Windows Media Video) 버전 8 ["WMV8"]은 비디오 인코더 및 비디오 디코더를 포함하고 있다. WMV8 인코더는 인트라 및 인터 압축을 사용하고, WMV8 디코더는 인트라 및 인터 압축 해제를 사용한다. WMV(Windows Media Video) 버전 9 ["WMV9"]는 많은 동작에 대해 유사한 아키텍처를 사용한다.
A. 인트라 압축(Intra Compression)
도 1은 WMV8 인코더에서의 키 프레임 내의 샘플 블록(105)의 블록-기반 인트라 압축(block-based intra compression)(100)을 나타낸 것이다. 블록은 일련의 샘플, 예를 들어, 8x8 구성의 샘플이다. WMV8 인코더는 키 비디오 프레임(key video frame)을 8x8 블록으로 분할하고, 블록(105) 등의 개개의 블록에 8x8 DCT(Discrete Cosine Transform)를 적용한다. DCT는 8x8 샘플 블록(공간 정보)을 8x8 DCT 계수 블록(115)(주파수 정보)으로 변환하는 주파수 변환의 한 유형이다. DCT 연산 자체는 무손실이거나 거의 무손실이다. 그렇지만, 원래의 샘플값과 비교하여, 인코더가 DCT 계수를 압축하는 쪽이 더 효율적인데, 그 이유는 중요한 정보의 대부분이 저주파 계수[통상적으로, 블록(115)의 상부 좌측]에 집중되어 있고 고주파 계수[통상적으로, 블록(115)의 하부 우측]의 다수가 0 또는 0에 가까운 값을 가지기 때문이다.
이어서, 인코더는 DCT 계수를 양자화(120)하고, 그 결과 8x8 양자화된 DCD 계수 블록(125)이 얻어진다. 양자화는 손실이 있다(lossy). 저주파 DCT 계수가 높은 값을 갖는 경향이 있기 때문에, 통상적으로 양자화의 결과 정밀도의 손실(loss of precision)이 있지만 계수에 대한 정보의 완전한 손실이 있는 것은 아니다. 반면에, 고주파 DCT 계수가 0 또는 0에 가까운 값을 갖는 경향이 있기 때문에, 고주파 계수의 양자화의 결과 통상적으로 연속적인 0 값 영역이 얻어진다. 그에 부가하여, 어떤 경우에, 고주파 DCT 계수는 저주파 DCT 계수보다 더 조악(coarse)하게 양자화되고, 그 결과 고주파 DCT 계수에 대한 정밀도/정보의 손실이 더 많게 된다.
이어서, 인코더는 엔트로피 인코딩(entropy encoding)(무손실 압축의 한 형태임)을 위한 8x8 양자화된 DCT 계수 블록(125)을 준비한다. 정확한 엔트로피 인코딩 유형은 계수가 DC 계수(최저 주파수)인지, 상부 행 또는 좌측 열에 있는 AC 계수(기타 주파수)인지, 또는 다른 AC 계수인지에 따라 변할 수 있다.
인코더는 DC 계수(126)를 이웃하는 8x8 블록의 DC 계수(136)[인코딩되고 있는 블록의 이전에 인코딩된 이웃(예를 들어, 상부 또는 좌측)]와의 차분으로서 인코딩한다. [도 1은 프레임에서 인코딩되고 있는 블록의 좌측에 위치해 있는 이웃 블록(135)을 나타내고 있다.] 인코더는 이 차분을 엔트로피 인코딩(140)한다.
엔트로피 인코더는 AC 계수의 좌측 열 또는 상부 행을, 이웃하는 8x8 블록의 대응하는 좌측 열 또는 상부 행과의 차분으로서 인코딩할 수 있다. 이것은 AC 계수 예측의 일례이다. 도 1은 AC 계수의 좌측 열(127)이 이웃하는(실제로는, 좌측에 있는) 블록(135)의 좌측 열(137)과의 차분(147)으로서 인코딩되는 것을 나타낸 것이다. 차분 코딩(differential coding)은 차분 계수가 0 값을 가질 가능성을 증가시킨다. 나머지 AC 계수는 양자화된 DCT 계수 블록(125)으로부터 온 것이다. 인코더는 8x8 양자화된 AC DCT 계수 블록(145)을 스캔(150)하여 1차원 어레이(155)로 만들고, 이어서 런 길이 코딩(run length coding)(160)의 변형을 사용하여 스캔된 AC 계수를 엔트로피 인코딩한다. 인코더는 하나 이상의 run/level/last 테이블(165)로부터 엔트로피 코드(entropy code)를 선택하고 이 엔트로피 코드를 출력한다.
B. 인터 압축(Inter Compression)
WMV8 인코더에서의 인터 압축은 블록-기반 움직임 보상된 예측 코딩(block-based motion compensated prediction coding) 및 그에 뒤이은 잔차 오차(residual error)의 변환 코딩(transform coding)을 사용한다. 도 2 및 도 3은 WMV8 인코더에서의 예측 프레임의 블록-기반 인터 압축(block-based inter compression)을 나타낸 것이다. 상세하게는, 도 2는 예측 프레임(210)의 움직임 추정(motion estimation)을 나타낸 것이고, 도 3은 예측 프레임의 움직임-보상된 블록에 대한 예측 잔차(prediction residual)의 압축을 나타낸 것이다.
예를 들어, 도 2에서, WMV8 인코더는 예측 프레임(210)에서의 매크로블록(215)에 대한 움직임 벡터(motion vector)를 계산한다. 움직임 벡터를 계산하기 위해, 인코더는 참조 프레임(reference frame)(230)의 검색 영역(235)에서 검색을 한다. 검색 영역(235) 내에서, 인코더는 잘 일치하는 후보 매크로블록을 찾기 위해 예측 프레임(210)으로부터의 매크로블록(215)을 다양한 후보 매크로블록과 비교한다. 인코더는 일치하는 매크로블록에 대한 움직임 벡터(엔트로피 코딩되어 있음)를 상술하는 정보를 출력한다. 움직임 벡터는 움직임 벡터 예측자(motion vector predictor)에 대해 차분 코딩된다(differentially coded).
이 차분을 움직임 벡터 예측자에 가산함으로써 움직임 벡터를 재구성한 후에, 디코더는 참조 프레임(230)(인코더 및 디코더에서 이용가능한 이전에 재구성된 프레임)으로부터의 정보를 사용하여 매크로블록(215)에 대한 예측 매크로블록(prediction macroblock)을 계산하기 위해 이 움직임 벡터를 사용한다. 이 예측이 완전한 경우가 아주 드물며, 따라서 인코더는 보통 예측 매크로블록과 매크로블록(215) 자체 간의 픽셀 차분 블록(blocks of pixel differences)(오차 또는 잔차 블록이라고도 함)을 인코딩한다.
도 3은 WMV8 인코더에서의 오차 블록(error block)(335)의 계산 및 인코딩의 일례를 나타낸 것이다. 오차 블록(335)은 예측 블록(predicted block)(315)과 원래의 현재 블록(325) 간의 차분이다. 인코더는 DCT(340)를 오차 블록(335)에 적용하고, 그 결과 8x8 계수 블록(345)이 얻어진다. 이어서, 인코더는 DCT 계수를 양자화(350)하고, 그 결과 8x8 양자화된 DCT 계수 블록(355)이 얻어진다. 인코더는 8x8 블록(355)을 스캔하여 1차원 어레이(365)를 만들어, 계수들이 일반적으로 최저 주파수에서 최고 주파수까지 정렬되도록 한다. 인코더는 런 길이 코딩(370)의 한 변형을 사용하여 스캔된 계수들을 엔트로피 인코딩한다. 인코더는 하나 이상의 run/level/last 테이블(375)로부터 엔트로피 코드를 선택하고 이 엔트로피 코드를 출력한다.
도 4는 인터-코딩된 블록(inter-coded block)에 대한 대응하는 디코딩 프로세스(400)의 일례를 나타낸 것이다. 도 4를 요약하면, 디코더는 하나 이상의 run/level/last 테이블(415) 및 런 길이 디코딩(420)과 함께 가변 길이 디코딩(variable length decoding)(410)을 사용하여 예측 잔차를 표현하는 엔트로피-코딩된 정보를 디코딩한다(410, 420). 디코더는 1차원 어레이(425)를 역스캔(inverse scan)(430)하여, 엔트로피-코딩된 정보를 2차원 블록(435)으로 저장한다. 디코더는 그 데이터를 역양자화 및 역DCT(합하여, 440)하고, 그 결과 재구성된 오차 블록(445)이 얻어진다. 별도의 움직임 보상 경로에서, 디코더는 움직임 참조 프레임으로부터의 변위(displacement)에 대한 벡터 정보(455)를 사용하여 예측 블록(465)을 계산한다. 디코더는 예측 블록(465)을 재구성된 오차 블록(445)과 결합하여(470) 재구성된 블록(475)을 형성한다. 디코더는 또한 참조 프레임으로서 사용할 프레임을 재구성하기 위해 역양자화, 역DCT, 움직임 보상 및 결합(combining)을 수행한다.
III. 손실 압축 및 양자화(Lossy Compression and Quantization)
이전의 섹션에서는 양자화(손실 압축 메카니즘) 및 엔트로피 코딩(무손실 압축이라고도 함)에 대해 언급하였다. 무손실 압축은 충실도의 감소 없이 정보로부터 중복성을 제거함으로써 정보의 비트 레이트를 감소시킨다. 예를 들어, 모두가 완전히 동일한 색조의 적색(shade of red)인 10개의 연속적인 픽셀의 계열이 특정의 색조의 적색에 대한 코드로서 표현되고 숫자 10이 연속적인 픽셀의 "런 길이"로서 표현될 수 있으며, 이 계열은 그 색조의 적색에 대한 코드 및 그 색조의 적색을 갖는 연속적인 픽셀의 표시된 수(10)로부터 압축 해제에 의해 완벽하게 재구성될 수 있다. 무손실 압축 기법은 품질의 손상없이 비트 레이트를 감소시키지만, 비트 레이트를 어떤 지점까지만 감소시킬 수 있다. 비트 레이트의 감소는 입력 데이터의 통계적 특성 분석(statistical characterization)에서의 본질적인 가변성 정도[소스 엔트로피(source entropy)라고 함]에 의해 제한된다.
이와 반대로, 손실 압축에서는, 품질이 어느 정도 떨어지지만, 달성가능한 비트 레이트 감소가 더 극적이다. 예를 들어, 10개 픽셀의 계열(각각의 픽셀이 약간 다른 색조의 적색임)이 정확히 동일한 특정의 비슷한 적색을 갖는 10개의 픽셀로 근사화될 수 있다. 무손실 압축 기법보다 더 많이 비트 레이트를 감소시키기 위해 손실 압축 기법이 사용될 수 있지만, 비트 레이트의 감소 중 일부는 품질의 감소에 의해 달성되고, 손실된 품질이 완전히 복구될 수 있는 것은 아니다. 손실 압축이 정보의 근사화를 확립하고 무손실 압축 기법이 이 근사화를 표현하기 위해 적용되는 시스템 설계에서, 손실 압축이 종종 무손실 압축과 함께 사용된다. 예를 들어, 10개 픽셀의 계열(각각이 약간 다른 색조의 적색임)은 하나의 특정 색조의 적색에 대한 코드로서 표현될 수 있고 숫자 10은 연속적인 픽셀의 런-길이로서 표현될 수 있다. 일반적으로, 인코더는 품질과 비트 레이트를 트레이드오프하기 위해 양자화를 변화시킨다. 조악한 양자화의 결과, 많은 품질 감소가 있게 되지만, 많은 비트 레이트 감소가 가능하게 된다. 압축 해제에서, 원래의 계열이 동일한 근사화된 적색을 갖는 10개의 픽셀로서 재구성된다.
한가지 가능한 정의에 따르면, 양자화는 손실 압축에 통상 사용되는 근사 비가역 매핑 함수(approximating non-reversible mapping function)에 사용되는 용어이고, 여기에서 지정된 가능한 출력값들의 세트가 있고, 이 가능한 출력값들의 세트의 각각의 원소가 연관된 입력값들의 세트를 가지며, 이 입력값에 의해 그 특정의 출력값이 선택된다. 스칼라 또는 벡터, 균일(uniform) 또는 비균일(non-uniform), 및 적응(adaptive) 또는 비적응(non-adaptive) 양자화를 비롯한 각종의 양자화 기법이 개발되었다.
A. 스칼라 양자화기(Scalar Quantizer)
한가지 가능한 정의에 따르면, 스칼라 양자화기는 입력값 x의 양자화된 값 Q[x](때때로 재구성된 값이라고 함)로의 근사 함수 매핑(approximating functional mapping) x -> Q[x]이다. 도 5는 스칼라 양자화기에 대한 "계단형" I/O 함수("staircase" I/O function)(500)를 나타낸 것이다. 수평축은 실수 입력 변수 x에 대한 숫자 라인이고, 수직축은 대응하는 양자화된 값 Q[x]를 나타낸다. 숫자 라인은 문턱값(510) 등의 문턱값으로 분할(partition)되어 있다. 한쌍의 인접한 문턱값 사이의 주어진 범위 내의 각각의 x 값은 동일한 양자화된 값 Q[x]를 할당받는다. 예를 들어, 범위(520) 내의 각각의 x 값은 동일한 양자화된 값(530)을 할당받는다. (문턱값에서는, 시스템에 따라, 2개의 가능한 양자화된 값 중 하나가 입력 x를 할당받는다.) 종합하면, 양자화된 값 Q[x]는 불연속적인 계단형 패턴을 나타낸다. 숫자 라인을 따라 매핑이 계속되는 거리는 시스템에 따라 다르며, 통상적으로 유한한 수의 문턱값 이후에 끝난다. 숫자 라인 상에서의 문턱값의 배치는 균일한 간격으로 떨어져 있거나(도 5에 도시됨) 불균일한 간격으로 떨어져 있을 수 있다.
스칼라 양자화기는 2개의 서로 다른 스테이지로 분해될 수 있다. 제1 스테이지는 분류기 스테이지(classifier stage)이며, 여기에서 분류기 함수 매핑(classifier function mapping) x -> A[x]는 입력 x를 양자화 인덱스 A[x](종종 정수값임)에 매핑한다. 기본적으로, 분류기는 입력 숫자 라인 또는 데이터 세트를 세그먼트화한다. 도 6a는 스칼라 양자화기에 대한 일반화된 분류기(600) 및 문턱값을 나타낸 것이다. 도 5에서와 같이, 실수 변수 x에 대한 숫자 라인은 문턱값(610)과 같은 문턱값들에 의해 세그먼트화되어 있다. 범위(620)와 같은 주어진 범위 내의 각각의 x 값은 동일한 양자화된 값 Q[x]를 할당받는다. 도 6b는 스칼라 양자화기에 대한 분류기(650) 및 문턱값의 수치예를 나타낸 것이다.
제2 스테이지에서, 재구성기 함수 매핑(reconstructor functional mapping) k -> β[k]는 각각의 양자화 인덱스 k를 재구성값 β[k]에 매핑한다. 기본적으로, 재구성기는 분류기에 의해 결정된 각각의 영역의 재구성을 위해 입력 숫자 라인 세그먼트에 대해 특정의 높이를 갖는 스텝(step)을 둔다(또는 데이터 세트 값들의 서브셋을 선택한다). 재구성기 함수 매핑은, 예를 들어, 룩업 테이블을 사용하여 구현될 수 있다. 종합하면, 분류기는 다음과 같이 재구성기와 관계되어 있다.
Q[x] = β[A[x]]
통상의 용도에서, 용어 "양자화"는 종종 인코딩 동안에 수행되는 분류기 스테이지를 말하는 데 사용된다. 용어 "역양자화"는 이와 마찬가지로, 인코딩 동안에 수행되든 디코딩 동안에 수행되든지 간에, 재구성기 스테이지를 말하는 데 사용 된다.
이러한 양자화기를 사용함으로써 유입되는 왜곡은 차분 기반 왜곡 척도(difference-based distortion measure) d(x-Q[x])에 의해 계산될 수 있다. 통상적으로, 이러한 왜곡 척도는 x-Q[x]가 0으로부터 벗어남에 따라 d(x-Q[x])가 증가하는 성질을 가지며, 통상적으로 각각의 재구성값이 대응하는 분류 범위(classification region)의 범위 내에 있으며, 따라서 함수 방정식 Q[x] = x에 의해 형성되는 직선이 단계형 다이어그램의 모든 스텝을 통과하고(도 5에 도시됨), 따라서 Q[Q[x]]가 통상적으로 Q[x]와 같다. 일반적으로, 양자화기가 주어진 비트 레이트의 출력에 대해 다른 양자화기들보다 낮은 평균 왜곡값을 내는 경우, 그 양자화기가 레이트-왜곡의 측면에서는 더 나은 것으로 생각된다. 보다 형식적으로 말하면, 소스 확률 변수(source random variable) X에 대해, 왜곡 척도
Figure 112008069385609-pct00001
의 기대값(expected value)[즉, 평균(average value) 또는 통계적 평균값(statistical mean value)]이 A[x]의 같거나 더 낮은 엔트로피 H에 대해 더 낮은 경우, 양자화기가 더 나은 것으로 생각된다. 가장 흔하게 사용되는 왜곡 척도는 제곱 오차 왜곡 척도(squared error distortion measure)이며, 이 경우
Figure 112008069385609-pct00002
이다. 제곱 오차 왜곡 척도가 사용될 때, 왜곡 척도
Figure 112008069385609-pct00003
의 기대값을 평균 제곱 오차(mean squared error)라고 한다.
B. 데드존 + 균일 문턱값 양자화기(Dead Zone + Uniform Threshold Quantizer)
비균일 양자화기는 모든 분류기 영역들에 대해 균일한 간격으로 떨어져 있지 않은 문턱값을 갖는다. 한가지 가능한 정의에 따르면, 데드존 + 균일 문턱값 양자화기["DZ+UTQ"]는 0 입력값을 갖는 영역(데드존["DZ"]이라고 함)을 제외하고는 모든 분류기 영역들에 대해 균일한 간격으로 떨어져 있는 문턱값을 갖는 양자화기이다. 일반적 의미에서, DZ+UTQ는 비균일 양자화기인데, 그 이유는 DZ 크기가 다른 분류기 영역들과 다르기 때문이다.
DZ+UTQ는 2개의 파라미터에 기초하여 표현될 수 있는 분류기 인덱스 매핑 규칙(classifier index mapping rule) x -> A[x]을 갖는다. 도 7은 DZ+UTQ에 대한 계단형 I/O 함수(700)를 나타낸 것이고, 도 8a는 DZ+UTQ에 대한 일반화된 분류기(800) 및 문턱값들을 나타낸 것이다. 파라미터 s(단, s는 0보다 큼)는 DZ 이외의 모든 스텝에 대한 스텝 크기를 나타낸다. 수학적으로, i≠0인 경우, 모든 si는 s와 같다. 파라미터 z(단, z는 0보다 크거나 같음)는 다른 스텝들의 크기에 대한 DZ 크기의 비를 나타낸다. 수학적으로는, s0 = z·s이다. 도 8a에서, z는 2이고, 따라서 DZ는 폭이 다른 분류 구역(classification zone)의 2배이다. DZ+UTQ에 대한 인덱스 매핑 규칙 x -> A[x]는 다음과 같이 표현될 수 있다.
Figure 112008069385609-pct00004
여기서,
Figure 112008069385609-pct00005
는 인수보다 작거나 같은 최소의 정수를 나타내고, sign(x)는 다음과 같 이 정의되는 함수이다.
Figure 112008069385609-pct00006
Figure 112008069385609-pct00007
도 8b는, s=1이고 z=2인 경우, DZ+UTQ에 대한 분류기(850) 및 문턱값들의 수치예를 나타낸 것이다. 도 5, 도 6a 및 도 6b는 z=1인 특별한 경우의 DZ+UTQ를 나타낸 것이다. UTQ 형태의 양자화기들은 각종의 통계적 소스(statistical source)에 대해 양호한 성능을 갖는다. 상세하게는, DZ+UTQ 형태는 라플라스 소스(Laplacian source)라고 하는 통계적 확률 변수 소스에 대해 최적이다.
어떤 시스템 설계(도시 생략)에서, DZ+UTQ 분류 규칙을 충분히 특성 분석하기 위해 부가적인 고려 사항이 필요할 수 있다. 실제적인 이유로 인해, 분류 함수 A[x]로부터 얻어질 수 있는 값들의 범위를 어떤 적당한 유한 범위로 제한할 필요가 있을 수 있다. 이러한 제한을 클리핑(clipping)이라고 한다. 예를 들어, 어떤 이러한 시스템에서, 분류 규칙은 더 정확하게는 다음과 같이 정의될 수 있다.
Figure 112008069385609-pct00008
여기서, g는 A[x]의 절대값에 대한 한계이다.
각각의 양자화 인덱스에 대해 재구성값을 결정하기 위해 다른 재구성 규칙들이 사용될 수 있다. 상호 운용성을 달성하는 것에만 중점을 두고 있는 표준 및 제 품 규격은 종종, 분류 규칙을 꼭 지정할 필요 없이, 재구성값을 지정한다. 환언하면, 어떤 규격은 함수 매핑 x -> A[x]를 정의함이 없이 함수 매핑 k -> β[k]를 정의할 수 있다. 이것은 표준/규격에 부합하도록 구축된 디코더가 정보를 정확하게 재구성할 수 있게 해준다. 이와 달리, 인코더는 종종 표준/규격에 여전히 부합하면서 분류기를 원하는 방식으로 변경할 자유를 부여받는다.
양자화 문턱값을 조정하는 수많은 시스템이 개발되었다. 많은 표준 및 제품은 간단함을 위해 통상적인 중간점 재구성 규칙(mid-point reconstruction rule)[예를 들어, 통상적인 단순 분류 규칙(simple classification rule)]에 대응하는 재구성값을 지정한다. 그렇지만, 분류를 위해, 어떤 입력값들이 더 흔한(따라서 더 낮은 비트 레이트) 인덱스에 매핑되도록 문턱값들이 실제로 조정될 수 있으며, 이는 재구성값을 최적에 더 가깝게 만들어준다.
많은 시스템에서, 양자화 범위는 양자화 스텝 크기로 측정된다. 조악한 양자화(coarse quantization)는 큰 양자화 스텝 크기(넓은 범위의 입력값에 대응함)를 사용한다. 세밀한 양자화는 작은 양자화 스텝 크기를 사용한다. 종종, 시그널링 및 재구성을 위해, 양자화 스텝 크기는 최저 양자화 스텝 크기의 배수로 파라미터화된다.
C. 양자화 아티팩트(Quantization Artifact)
상기한 바와 같이, 손실 압축은 품질의 저하를 야기하는 경향이 있다. 예를 들어, 약간 다른 값들의 10개 샘플의 계열은 양자화를 사용하여 정확히 동일한 특정의 근사값을 갖는 10개 샘플로 근사화될 수 있다. 이러한 종류의 양자화는 10개 샘플의 계열을 인코딩하는 비트 레이트를 감소시킬 수 있지만, 원래의 10개 샘플에서의 상세를 손실하는 대가를 치른다.
어떤 경우에, 양자화는 미세한 상세의 단순 손실보다 더 인공적으로 보이고 시각적으로 산만한 경향이 있는 가시 아티팩트를 생성한다. 예를 들어, 평탄한 텍스처없는 컨텐츠(smooth, un-textured content)는 컨투어링 아티팩트(contouring artifact)[2개의 서로 다른 양자화 출력값의 영역들 간에 나타나는 아티팩트]에 영향받기 쉬운데, 그 이유는 사람의 시각 시스템이 평탄한 컨텐츠에서의 미묘한 변동[특히 휘도차(luma difference)]에 민감하기 때문이다. 상기 예를 사용하여, 10개 샘플의 계열의 휘도값들이 제1 샘플에서 제10 샘플까지 점진적으로 일관되게 변하는 경우를 생각해보자. 양자화는 처음 5개의 샘플값을 하나의 값으로 근사화할 수 있고 그 다음 5개 샘플값을 다른 값으로 근사화할 수 있다. 이러한 종류의 양자화가 마스킹 효과(masking effect)로 인해 텍스처 영역(textured area)에서는 가시 아티팩트를 생성하지 않을 수 있지만, 평탄한 영역에서는 재구성된 이미지에서 2개의 5개 샘플 세트 사이에 가시 라인(visible line) 또는 단차(step)를 생성할 수 있다.
IV. VC-1에서의 차분 양자화(Differential Quantization in VC-1)
차분 양자화에서, 인코더는 화상의 서로 다른 부분에 대해 양자화 스텝 크기(본 명세서의 어떤 구현들에서 양자화 파라미터, 즉 QP라고도 함)를 변화시킨다. 통상적으로, 이것은 매크로블록 레벨 또는 다른 서브-화상(sub-picture) 레벨에서 QP를 변화시키는 것을 필요로 한다. 인코더는 QP를 어떻게 변화시킬 것인지에 관 한 결정을 하고, 적절한 경우, 그 결정을 디코더에 알려준다.
예를 들어, VC-1 인코더는 선택적으로 압축을 위해 차분 양자화를 선택한다. 인코더는 QP가 개개의 화상에서의 매크로블록들 간에 변할 수 있는지 여부를 나타내기 위해 화상 레벨(picture level)보다 높은 구문 레벨(syntax level)로 비트스트림 요소(DQUANT)를 전송한다. 인코더는 화상 QP를 나타내기 위해 화상-레벨 비트스트림 요소 PQINDEX를 전송한다. DQUANT = 0인 경우, PQINDEX로 나타내어진 QP가 화상 내의 모든 매크로블록에 대해 사용된다. DQUANT = 1 또는 2인 경우, 동일한 화상 내의 서로 다른 매크로블록은 서로 다른 QP를 사용할 수 있다.
VC-1 인코더는 2개 이상의 차분 양자화 방법을 사용할 수 있다. 한 방법에서, 화상에 대해 단지 2개의 서로 다른 QP가 사용된다. 이것은 2-레벨 차분 양자화(bi-level differential quantization)라고 한다. 예를 들어, 하나의 QP는 화상 가장자리에 있는 매크로블록에 대해 사용되고, 다른 QP는 화상의 나머지에서의 매크로블록에 대해 사용된다. 이것은 화상 가장자리에서 비트를 절감하는 데 유용할 수 있으며, 화상 가장자리에서는 미세한 상세(fine detail)가 전체적인 시각적 품질을 유지하는 데 덜 중요하다. 또는, 매크로블록마다 신호되는 1-비트값은 2개의 이용가능한 QP 값 중 어느 것을 매크로블록에 사용할지를 나타낸다. 다중-레벨 차분 양자화(multi-level differential quantization)하고 하는 다른 방법에서, 화상 내의 개개의 매크로블록에 대해 많은 수의 서로 다른 QP가 사용될 수 있다.
인코더는 DQUANT가 영이 아닐 때 화상-레벨 비트스트림 요소 VOPDQUANT를 전송한다. VOPDQUANT는, 화상의 어느 부분이 화상 QP 이외의 QP를 사용할 수 있는지 를 나타내는 DQPROFILE을 포함할 수 있는 다른 요소들로 이루어져 있다. DQPROFILE이 임의의 다른 매크로블록이 화상 QP 이외의 QP를 사용할 수 있음을 나타내는 경우, 비트스트림 요소 DQBILEVEL이 존재한다. DQBILEVEL = 1인 경우, 각각의 매크로블록은 2개의 QP 중 하나를 사용한다(2-레벨 양자화). DQBILEVEL = 0인 경우, 각각의 매크로블록은 어떤 QP라도 사용할 수 있다(다중-레벨 양자화).
비트스트림 요소 MQDIFF는 2-레벨 양자화의 경우 매크로블록에 대한 1-비트 선택자(1-bit selector)를 신호하기 위해 매크로블록 레벨에서 전송된다. 다중-레벨 양자화의 경우, MQDIFF는 화상 QP와 매크로블록 QP 또는 매크로블록의 이스케이프-코딩 절대 QP(escape-coded absolute QP) 간의 차분을 나타낸다.
V. 기타 표준 및 제품
수많은 국제 표준들이 비디오 디코더의 여러 측면들 및 압축된 비디오 정보의 형식들에 대해 규정하고 있다. 직접적으로 또는 암시적으로, 이들 표준은 또한 어떤 인코더 상세에 대해서는 규정하고 있지만, 다른 인코더 상세에 대해서는 규정하고 있지 않다. 어떤 표준은 정지 영상 압축/압축 해제에 대해 언급하고 있고, 다른 표준들은 오디오 압축/압축 해제에 대해 언급하고 있다. 수많은 회사들이 오디오, 정지 영상 및 비디오에 대한 인코더 및 디코더를 생산하였다. 다양한 다른 종류의 신호[예를 들어, 초다분광 이미지(hyperspectral imagery), 그래픽, 텍스트, 금융 정보, 기타]도 또한 통상적으로 압축 기법을 사용하여 표현되고 저장 또는 전송된다.
여러가지 비디오 표준은 서로 다른 화상 유형에 대해 서로 다른 양자화 스텝 크기를 사용할 수 있게 해주고, 레이트 및 품질 제어를 위해 양자화 스텝 크기를 변화시킬 수 있게 해준다.
표준들은 통상적으로 양자화기 설계에 대해 완전히 규정하고 있지 않다. 대부분이 인코더 분류 규칙 x -> A[x] 및/또는 디코더 재구성 규칙 k -> β[k]에서 어떤 변형을 허용한다. 다수의 인코딩 설계에서 암묵적으로 DZ비 z = 2 이상을 사용한다. 예를 들어, 어떤 표준에서의 예측 영역에 대한 재구성값의 간격은 z≥2의 사용을 암시한다. 이들 예에서 표준들로부터의 재구성값은 z=2인 DZ+UTQ 분류의 사용을 위해 적절한 간격으로 떨어져 있다. z=1(또는 적어도 z<2)에 기초한 설계가 몇개의 표준에서 양자화를 위해 사용되었다. 이들 경우에, 재구성값은 0 부근에서 또한 0으로부터 떨어진 곳에서 똑같은 간격으로 떨어져 있다.
디지털 비디오에 대한 비디오 압축이 아주 중요하다는 것을 고려할 때, 비디오 압축이 개발이 많이 이루어진 분야라는 것은 놀랄만한 일이 아니다. 그렇지만, 이전의 비디오 압축 기법들의 이점이 무엇이든간에, 이전의 기법들은 이하의 기법들 및 도구들의 이점을 갖고 있지 않다.
본 출원은 비디오 내의 텍스처 레벨에 기반하여 양자화를 조정하는 기법 및 수단을 기술한다. 예를 들면, 인코딩 동안에 비트들을 할당할 때, 비디오 인코더는 평탄한 영역에 대한 적응적 평탄성 문턱값 및 평탄한 영역에 대한 시간 분석을 사용하여 비디오의 지각적(perceptual) 품질을 개선한다.
이 요약은 이하의 상세한 설명에서 더 기술되는 선택된 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며 청구된 발명 대상의 범위를 제한하는 데 사용되기 위한 것도 아니다.
한 측면에서, 비디오 인코더는 비디오 화상 시퀀스 내에서 현재 비디오 화상의 현재 평탄한 영역(예를 들면, 경사 기울기 영역)을 식별한다. 시퀀스는 이전 화상의 디스플레이는 현재 화상의 디스플레이 이전에 발생하고, 장래 화상의 디스플레이는 현재 화상의 디스플레이 이후에 발생하는 디스플레이 순서를 가지고 있다. 인코더는 현재의 평탄한 영역에서 시간 분석을 수행한다. 시간 분석은 과거 및/또는 장래 화상들 중 적어도 하나의 대응하는 영역이 평탄한지의 여부를 결정하는 단계를 포함한다. 시간 분석에 적어도 부분적으로 기반하여, 인코더는 현재의 평탄한 영역 내에서 양자화를 조정한다(예를 들면, 컨투어링 아티팩트의 도입을 피하기 위해 양자화 스텝 크기를 감소시킴). 시간 분석은 조정가능한 개수의 장래 화상들에 대해 수행될 수 있다. 시간 분석은 현재의 화상에 시간상 더 가까운 미래의 화상의 대응하는 영역 내에서의 평탄성을 더 많이 가중 할 수 있다. 인코더는 텍스처 맵을 분석하여 현재의 평탄한 영역을 식별할 수 있고, 시간 분석에서의 평균 휘도 값을 분석할 수 있다.
또 다른 측면에서, 비디오 인코더는 비디오 화상 시퀀스에 대해 차분 양자화 간격(예를 들면, 고정되거나 적응적으로 조정가능한 간격)을 결정하며, 이 간격은 간격 번호(interval number)를 포함한다. 시퀀스 내의 예측된 차분 양자화된 화상에 대해 차분 양자화를 수행할 때, 인코더는 간격을 사용한다. 간격은 인코더로 하여금, 적어도 예측된 차분 양자화된 화상들 중의 한 화상 다음의 예측된 화상들의 간격 번호에 대해 강제로 차분 양자화를 생략하도록 한다. 예를 들면, 차분 양자화는 제1 예측된 화상에 대한 하나 이상의 차분 양자화 스텝 크기의 선택하고, 제2 예측된 화상에 대한 하나 이상의 차분 양자화 스텝 크기를 변경하는 것을 포함하며, 하나 이상의 차분 양자화 스텝 크기는 제1 예측된 화상에 대한 화상 양자화 스텝 크기와 다르고, 제2 예측된 화상이 제1 예측된 화상으로부터의 간격의 외부에 있다.
또 다른 측면에서, 비디오 인코더는 분석된 텍스처에 적어도 부분적으로 기반하여, 현재 비디오 화상에서의 텍스처를 분석하고(예를 들면, 텍스처 맵을 분석함으로써), 현재 화상에 대한 평탄성 문턱값을 정한다. 인코더는 현재 화상의 텍스처 데이터를 평탄성 문턱값과 비교하고, 평탄성 문턱값에 따라 현재 화상 내에서의 적어도 하나의 평탄한 영역의 발견에 기반하여 현재 화상의 적어도 부분에 대한 차분 양자화를 조정한다. 인코더는 슬라이딩 윈도우를 블록 경사 값의 경사 값 히스토그램에 적용함으로써 텍스처를 분석할 수 있다. 차분 양자화를 조정하기 위해, 인코더는 현재의 화상 내의 편평한 블록의 퍼센트를 결정할 수 있고, 해당 퍼센트를 하나 이상의 퍼센트 문턱값과 비교할 수 있다. 또는, 인코더는 현재 화상 내의 텍스처 영역의 고립된 편평한 블록을 식별할 수 있고, 고립된 편평한 블록에 대한 차분 양자화를 생략할 수 있다.
이상의 목적, 특징 및 이점과 기타 목적, 특징 및 이점은 첨부 도면을 참조하여 기술되는 이하의 상세한 설명으로부터 더 명백하게 될 것이다.
도 1은 8x8 샘플 블록의 블록-기반 프레임내 압축(block-based intraframe compression)을 나타낸 도면.
도 2는 비디오 인코더에서의 움직임 추정(motion estimation)을 나타낸 도면.
도 3은 비디오 인코더에서의 8x8 예측 잔차 블록(block of prediction residual)에 대한 블록-기반 압축을 나타낸 도면.
도 4는 비디오 디코더에서의 8x8 예측 잔차 블록의 블록-기반 압축 해제(block-based decompression)를 나타낸 도면.
도 5는 스칼라 양자화기에 대한 계단형 I/O 함수(staircase I/O function)를 나타낸 도면.
도 6a 및 도 6b는 스칼라 양자화기에 대한 분류기 및 문턱값을 나타낸 도면.
도 7은 DZ+UTQ에 대한 계단형 I/O 함수를 나타낸 도면.
도 8a 및 도 8b는 DZ+UTQ에 대한 분류기 및 문턱값을 나타낸 도면.
도 9는 몇개의 기술된 실시예들이 구현될 수 있는 적당한 컴퓨팅 환경의 블록도.
도 10은 몇개의 기술된 실시예들이 구현될 수 있는 일반화된 비디오 인코더 시스템의 블록도.
도 11은 몇개의 기술된 실시예에서 사용되는 매크로블록 형식(macroblock format)을 나타낸 도면.
도 12는 적응적 비디오 인코딩 방법의 플로우차트.
도 13은 블록에 대한 휘도(luminance) 및 색도(chrominance) 데이터를 사용하여 픽셀 경사(pixel gradient)를 계산하는 것을 나타낸 도면.
도 14는 도 13의 블록에 대한 복수의 픽셀 경사들의 히스토그램도.
도 15는 예시적인 블록값 특성 분석 체계의 그래프.
도 16은 텍스처 정보(texture information)에 기초하여 차분 양자화(differential quantization)를 적용하는 일반화된 기법을 나타낸 플로우차트.
도 17은 텍스처 DQ 결정(texture DQ decision)을 하기 위해 시간 분석(temporal analysis)을 사용하는 기법을 나타낸 플로우차트.
도 18은 퍼센트 문턱값(percentage threshold) 및 격리된 평탄한 블록 필터링(isolated smooth block filtering)을 사용하여 텍스처 DQ 결정을 하는 기법을 나타낸 플로우차트.
도 19는 텍스처가 많은 화상(high-texture picture)에 대해 텍스처 레벨 문턱값(texture level threshold)을 선택적으로 조정하는 기법을 나타낸 플로우차트.
도 20은 적응적 텍스처-레벨 문턱값을 결정하는 예시적인 의사-코드를 나타낸 코드 다이어그램.
도 21은 경사 기울기 영역의 2개의 예를 나타낸 도면.
도 22a는 경사 기울기 영역, 텍스처 영역(textured region), 예리한 엣지 영역(sharp-edge region) 및 편평한 영역(flat region)을 갖는 예시적인 프레임을 나타낸 도면. 도 22b는 도 22a의 경사 기울기 영역에서의 컨투어링 아티팩트를 나타 낸 도면. 도 22c는 도 22b의 컨투어링 아티팩트의 매크로블록-레벨 상세를 나타낸 도면.
도 23은 일반화된 영역-기반 경사 기울기 검출 기법을 나타낸 플로우차트.
도 24는 한 구현에 따른 예시적인 경사 기울기 검출기의 블록도.
도 25는 변칙적인 경사 기울기 방향을 야기할지도 모르는 필름 그레인(film grain)을 갖는 경사 기울기 영역의 4 대 1 다운샘플링을 나타낸 도면.
도 26은 16x16 컴퍼스 연산자(compass operator) KH 및 KV의 방정식을 나타낸 도면.
도 27은 도 26의 컴퍼스 연산자를 사용하여 영역의 경사 방향을 계산하는 예시적인 의사-코드를 나타낸 코드 다이어그램.
도 28은 경사 기울기 영역이 있는지 일관성 검사(consistency checking)를 수행하는 기법을 나타낸 플로우차트.
도 29는 버킷 투표(bucket voting) 기법에서의 버킷을 나타낸 도면.
도 30은 하나 이상의 영이 아닌 AC 계수를 보존하는 데 도움을 주는 매크로블록 QP를 선택하는 예시적인 기법을 나타낸 플로우차트.
도 31은 양자화 및 역양자화 후에 경사 기울기 영역 내의 3개의 이웃 블록들에서의 DC 천이를 나타낸 도면.
도 32는 DC 천이 영역에의 컨투어링 아티팩트의 유입을 감소 또는 회피하기 위해 양자화를 조정하는 일반화된 기법을 나타낸 플로우차트.
도 33은 양자화 아티팩트의 유입을 감소 또는 회피하기 위해 DC 천이 영역에서의 양자화를 조정하는 결합 기법을 나타낸 플로우차트.
본 출원은 효율적인 비디오 압축 기법 및 도구에 관한 것이다. 다양한 기술된 실시예들에서, 비디오 인코더는 서로 다른 레이어(layer) 또는 레벨(level)을 포함하는 비트스트림 형식 또는 구문에서 사용하기 위한 비디오 인코딩 기법 및 대응하는 시그널링 기법을 포함한다. 기술된 기법 및 도구 중 어떤 것은 비월주사 프레임(interlaced frame) 또는 순차주사 프레임(progressive frame)에 적용될 수 있다.
본 명세서에 기술된 구현들에 대한 다양한 대안이 가능하다. 예를 들어, 플로우차트도를 참조하여 기술된 기법들은 플로우차트에 도시된 스테이지들의 순서를 변경함으로써, 어떤 스테이지를 반복 또는 생략함으로써, 기타 등등에 의해 수정될 수 있다. 예를 들어, 분석의 초기 스테이지들(예를 들어, 화상에 대한 텍스처 정보를 획득하는 것 또는 평탄한 영역을 검출하는 데 텍스처 분석을 수행하는 것)은 나중의 스테이지들(예를 들어, 화상에 대한 인코딩 결정을 하는 것 또는 평탄한 영역을 검출하기 위해 시간 분석을 수행하는 것)이 시작되기 전에 완료될 수 있거나, 다른 스테이지들에 대한 연산들이 블록별로, 매크로블록별로 또는 다른 영역별로 상호 교차(interleave)되어 있을 수 있다. 다른 예로서, 어떤 구현들이 특정의 매크로블록 형식과 관련하여 기술되어 있지만, 다른 형식들도 사용될 수 있다.
다양한 기법 및 도구가 결합하여 또는 독립적으로 사용될 수 있다. 다른 실 시예들은 상기한 기법 및 도구 중 하나 이상을 구현한다. 본 명세서에 기술된 어떤 기법 및 도구는 비디오 인코더에서 또는 비디오 인코딩으로 특별히 제한되지 않는 어떤 다른 시스템에서 사용될 수 있다.
I. 컴퓨팅 환경
도 9는 몇개의 기술된 실시예가 구현될 수 있는 일반화된 적당한 컴퓨팅 환경(900)의 일례를 나타낸 것이다. 이들 기법 및 도구가 다양한 범용 또는 전용 컴퓨팅 환경에서 구현될 수 있기 때문에, 이 컴퓨팅 환경(900)은 용도 또는 기능의 범위에 관하여 어떤 제한을 암시하기 위한 것이 아니다.
도 9를 참조하면, 컴퓨팅 환경(900)은 적어도 하나의 처리 장치(910) 및 메모리(920)를 포함한다. 도 9에서, 이 가장 기본적인 구성(930)은 점선 안에 포함되어 있다. 처리 장치(910)는 컴퓨터 실행가능 명령어를 실행하고, 실제 또는 가상 프로세서일 수 있다. 멀티-프로세싱 시스템에서는, 처리 능력을 향상시키기 위해 다수의 처리 장치가 컴퓨터 실행가능 명령어를 실행한다. 메모리(920)는 휘발성 메모리(예를 들어, 레지스터, 캐쉬, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래쉬 메모리, 기타), 또는 이 둘의 어떤 조합일 수 있다. 메모리(920)는 기술된 기법 및 도구 중 하나 이상를 갖는 비디오 인코더를 구현하는 소프트웨어(980)를 저장하고 있다.
컴퓨팅 환경은 부가의 특징들을 가질 수 있다. 예를 들어, 컴퓨팅 환경(900)은 저장 장치(9400, 하나 이상의 입력 장치(950), 하나 이상의 출력 장치(960), 및 하나 이상의 통신 접속(970)을 포함한다. 버스, 컨트롤러, 또는 네트 워크 등의 상호 접속 메카니즘(도시 생략)은 컴퓨팅 환경(900)의 컴포넌트들을 상호 접속시킨다. 통상적으로, 운영 체제 소프트웨어(도시 생략)는 컴퓨팅 환경(900)에서 실행되는 다른 소프트웨어에 대한 운영 환경을 제공하고, 컴퓨팅 환경(900)의 컴포넌트들의 동작들을 조정한다.
저장 장치(940)는 이동식 또는 비이동식일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, DVD, 또는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 환경(900) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(940)는 비디오 인코더를 구현하는 소프트웨어(980)에 대한 명령어들을 저장한다.
입력 장치(들)(950)는 키보드, 마우스, 펜 또는 트랙볼과 같은 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(900)에 입력을 제공하는 다른 장치일 수 있다. 오디오 또는 비디오 인코딩의 경우, 입력 장치(들)(950)는 사운드 카드, 비디오 카드, TV 튜너 카드, 또는 아날로그 또는 디지털 형태로 오디오 또는 비디오 입력을 받는 유사한 장치, 또는 오디오 또는 비디오 샘플들을 컴퓨팅 환경(900)으로 읽어들이는 CD-ROM 또는 CD-RW일 수 있다. 출력 장치(들)(960)는 디스플레이, 프린터, 스피커, CD-라이터(CD-writer), 또는 컴퓨팅 환경(900)으로부터의 출력을 제공하는 다른 장치일 수 있다.
통신 접속(들)(970)은 통신 매체를 통해 다른 컴퓨팅 개체로의 통신을 가능하게 해준다. 통신 매체는 컴퓨터-실행가능 명령어, 오디오 또는 비디오 입력 또는 출력, 또는 기타 데이터와 같은 정보를 피변조 데이터 신호로 전달한다. 피변 조 데이터 신호는 신호에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호를 말한다. 제한이 아닌 예로서, 통신 매체는 전기, 광학, RF, 적외선, 음향 또는 기타 반송파로 구현되는 유선 또는 무선 기법을 포함한다.
이들 기법 및 도구는 일반적으로 컴퓨터 판독가능 매체와 관련하여 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 제한이 아닌 예로서, 컴퓨팅 환경(900) 내에서, 컴퓨터 판독가능 매체는 메모리(920), 저장 장치(940), 통신 매체, 및 상기한 것들 중 임의의 것의 조합을 포함한다.
이들 기법 및 도구는 일반적으로 컴퓨팅 환경에서 타겟 실제 또는 가상 프로세서에서 실행되고 있는 프로그램 모듈에 포함되어 있는 것과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 객체, 클래스, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 프로그램 모듈들의 기능이 다양한 실시예들에서 원하는 바대로 프로그램 모듈들 간에 결합 또는 분할될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령어는 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
설명을 위해, 상세한 설명에서는 컴퓨팅 환경에서의 컴퓨터 동작을 기술하기 위해 "결정" 및 "분석"과 같은 용어를 사용한다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 상위-레벨 추상화이며, 사람에 의해 수행되는 행위들과 혼동해서는 안된다. 이들 용어에 대응하는 실제의 컴퓨터 동작은 구현에 따라 달라진다.
II. 일반화된 비디오 인코더
도 10은 어떤 기술된 실시예들이 구현될 수 있는 일반화된 비디오 인코더(1000)의 블록도이다. 인코더(1000)는 현재의 화상(1005)을 비롯한 일련의 비디오 화상을 수신하고 저장 장치, 버퍼 또는 통신 접속으로의 출력으로서 압축된 비디오 정보(1095)를 생성한다. 출력 비트스트림의 형식은 WMV(Windows Media Video) 또는 VC-1 형식, MPEG-x 형식(예를 들어, MPEG-I, MPEG-2, 또는 MPEG-4), H.26x 형식(예를 들어, H.261, H.262, H.263, 또는 H.264), 또는 기타 형식일 수 있다.
인코더(1000)는 비디오 화상들을 처리한다. 용어 '화상'은 일반적으로 소스 코딩된 또는 재구성된 이미지 데이터를 말한다. 순차주사 비디오의 경우, 화상은 순차주사 비디오 프레임이다. 비월주사 비디오의 경우, 화상은 문맥에 따라 비월주사 비디오 프레임, 이 프레임의 상부 필드, 또는 이 프레임의 하부 필드를 말하는 것일 수 있다. 인코더(1000)는 블록-기반이고, 프레임에 대해 4:2:0 매크로블록 형식을 사용한다. 도 11에 나타낸 바와 같이, 매크로블록(1100)은 4개의 8x8 휘도(또는 luma) 블록(Y1 내지 Y4) 및 4개의 휘도 블록과 동일 위치에 있지만 수평 및 수직 방향에서 1/2 해상도인 2개의 8x8 색도(또는 chroma) 블록(U 및 V)을 포함하며, 이들은 종래의 4:2:0 매크로블록 형식을 따른다. 필드의 경우, 동일한 또는 다른 매크로블록 구성 및 형식이 사용될 수 있다. 8x8 블록은 다른 스테이지들, 예를 들어, 주파수 변환 및 엔트로피 코딩 스테이지에서 더욱 세분될 수 있다. 인코더(1000)는 8x8 블록 및 16x16 매크로블록과 다른 크기 또는 구성의 샘플 세트에 대해 연산을 수행할 수 있다. 다른 대안으로서, 인코더(1000)는 객체-기반(object-based)이거나 다른 매크로블록 또는 블록 형식을 사용한다.
도 10으로 돌아가서, 인코더 시스템(1000)은 예측된 화상(predicted picture) 및 인트라-코딩된 키 화상(intra-coded, key picture)을 압축한다. 설명을 위해, 도 10은 인코더 시스템(1000)을 통과하는 키 화상의 경로 및 예측된 화상의 경로를 나타내고 있다. 인코더 시스템(1000)의 컴포넌트들 중 다수는 키 화상 및 예측된 화상 둘다를 압축하는 데 사용된다. 이들 컴포넌트에 의해 수행되는 정확한 동작은 압축되는 정보의 유형에 따라 달라질 수 있다.
예측된 화상(예를 들어, 순차주사 P-프레임 또는 B-프레임, 비월주사 P-필드 또는 B-필드, 또는 비월주사 P-프레임 또는 B-프레임)은 하나 이상의 다른 화상[통상적으로 참조 화상 또는 앵커(anchor)라고 함]으로부터의 예측(또는 그 화상과의 차이)의 관점에서 표현된다. 예측 잔차(prediction residual)는 예측된 화상과 원래의 화상 간의 차이이다. 이와 달리, 키 화상(예를 들어, 순차주사 I-프레임, 비월주사 I-필드, 또는 비월주사 I-프레임)은 다른 화상을 참조하지 않고 압축된다.
현재의 화상(1005)이 예측된 화상인 경우, 움직임 추정기(motion estimator)(1010)는 하나 이상의 참조 화상, 예를 들어, 화상 저장소(picture store)(1020)에 버퍼링되어 있는 재구성된 이전 화상(1025)에 대해 현재의 화상(1005)의 매크로블록 또는 다른 샘플 세트의 움직임을 추정한다. 현재의 화상(1005)이 양방향-예측 화상(bi-predictive picture)인 경우, 움직임 추정기(1010)는 최대 4개의 재구성된 참조 화상(예를 들어, 비월주사 B-필드의 경우)에 대해 현재의 화상(1005)에서의 움직임을 추정한다. 통상적으로, 움직임 추정기는 하나 이상의 시간상 이전의 참조 화상 및 하나 이상의 시간상 장래의 참조 화상에 대해 B-화상에서의 움직임을 추정하지만, B-화상이 서로 다른 시간 방향으로부터 예측될 필요는 없다. 인코더 시스템(1000)은 다수의 참조 화상에 대해 개별적인 저장소(1020, 1022)를 사용할 수 있다.
움직임 추정기(1010)는 완전-샘플, 1/2 샘플, 1/4 샘플, 또는 다른 증분 단위로 움직임을 추정할 수 있고, 화상마다 또는 다른 기준으로 움직임 추정의 정밀도를 전환할 수 있다. 움직임 추정기(1010)[및 보상기(compensator)(1030)]는 또한 프레임마다 또는 다른 기준으로 참조 화상 샘플 보간 유형들 간에[예를 들어, 바이큐빅(bicubic)과 이중 선형(bilinear) 간에] 전환할 수 있다. 움직임 추정의 정밀도는 수평 및 수직 방향에서 동일하거나 서로 다를 수 있다. 움직임 추정기(1010)는 부수 정보로서 차분 움직임 벡터 정보(differential motion vector information) 등의 움직임 정보(1015)를 출력한다. 인코더(1000)는, 예를 들어, 움직임 벡터에 대한 하나 이상의 예측자(predictor)를 계산하고, 움직임 벡터와 예측자 간의 차분을 계산하며, 이 차분을 엔트로피 인코딩함으로써 움직임 정보(1015)를 인코딩한다. 움직임 벡터를 재구성하기 위해, 움직임 보상기(1030)는 예측자와 차분 움직임 벡터를 결합한다.
움직임 보상기(1030)는 재구성된 움직임 벡터를 재구성된 화상(들)(1025)에 적용하여 움직임-보상된 현재의 화상(1035)을 형성한다. 그렇지만, 이 예측이 완벽한 경우는 드물고, 움직임-보상된 현재의 화상(1035)과 원래의 현재의 화 상(1005) 간의 차이가 예측 잔차(prediction residual)(1045)이다. 나중의 화상 재구성 동안에, 예측 잔차(1045)가 움직임 보상된 현재의 화상(1035)에 가산되어 원래의 현재의 화상(1005)에 더 가까운 재구성된 화상을 획득한다. 그렇지만, 손실 압축에서는, 어떤 정보가 여전히 원래의 현재의 화상(1005)으로부터 손실되어 있다. 다른 대안으로서, 움직임 예측기 및 움직임 보상기는 다른 유형의 움직임 추정/보상을 적용한다.
주파수 변환기(1060)는 공간 영역 비디오 정보를 주파수 영역(즉, 스펙트럼) 데이터로 변환한다. 블록-기반 비디오 화상의 경우, 주파수 변환기(1060)는 샘플 데이터 블록 또는 예측 잔차 데이터 블록에 DCT, DCT의 변형, 또는 기타 블록 변환을 적용하여, 주파수 변환 계수 블록을 생성한다. 다른 대안으로서, 주파수 변환기(1060)는 푸리에 변환 등의 다른 종래의 주파수 변환을 적용하거나 웨이블렛 또는 서브-대역 분석을 사용한다. 주파수 변환기(1060)는 8x8, 8x4, 4x8, 4x4 또는 다른 크기의 주파수 변환을 적용할 수 있다.
이어서, 양자화기(1070)는 스펙트럼 데이터 계수 블록을 양자화한다. 양자화기는 화상마다 또는 다른 기준에 따라(예를 들어, 매크로블록마다) 변하는 스텝-크기로 스펙트럼 데이터에 균일, 스칼라 양자화를 적용한다. 다른 대안으로서, 양자화기는 스펙트럼 데이터 계수에 다른 유형의 양자화, 예를 들어, 비균일, 벡터 또는 비적응적 양자화를 적용하거나, 주파수 변환을 사용하지 않는 인코더 시스템에서는 공간 영역 데이터를 직접 양자화한다. 어떤 구현에서 양자화와 관련된 기법 및 도구에 대해 이하에서 상세히 기술한다.
적응적 양자화에 부가하여, 인코더(1000)는 프레임 누락(frame dropping), 적응적 필터링(adaptive filtering), 또는 레이트 제어를 위한 다른 기법을 사용할 수 있다.
인코더(1000)는 어떤 유형의 정보(매크로블록에 대한 차분 움직임 벡터 및 잔차 정보)를 갖지 않는 매크로블록인 생략된 매크로블록에 대해 특별한 시그널링을 사용할 수 있다.
재구성된 현재의 화상이 차후의 움직임 추정/보상에 필요한 경우, 역양자화기(1076)는 양자화된 스펙트럼 데이터 계수에 대해 역양자화를 수행한다. 이어서, 역주파수 변환기(1066)는 주파수 변환기(1060)의 동작의 역을 수행하여, (예측된 화상에 대한) 재구성된 예측 잔차 또는 재구성된 키 화상을 생성한다. 현재의 화상(1005)이 키 화상인 경우, 재구성된 키 화상이 재구성된 현재의 화상(도시 생략)으로 된다. 현재의 화상(1005)이 예측된 화상인 경우, 재구성된 예측 잔차가 움직임-보상된 현재의 화상(1035)에 가산되어 재구성된 현재의 화상을 형성한다. 화상 저장소(1020, 1022) 중 하나 또는 그 둘다는 움직임 보상 예측에서 사용하기 위해 재구성된 현재의 화상을 버퍼링한다. 어떤 실시예에서, 인코더는 화상 내의 불연속 및 다른 아티팩트를 적응적으로 평탄화하기 위해 재구성된 프레임에 디블록킹 필터(de-blocking filter)를 적용한다.
엔트로피 코더(1080)는 양자화기(1070)의 출력은 물론 어떤 부수 정보[예를 들어, 움직임 정보(1015), 양자화 스텝 크기(QP)]를 압축한다. 통상적인 엔트로피 코딩 기법은 산술 코딩, 차분 코딩, 허프만 코딩, 런 길이 코딩(run length coding), LZ 코딩, 사전 코딩(dictionary coding), 및 이들의 조합을 포함한다. 엔트로피 코더(1080)는 통상적으로 서로 다른 종류의 정보(예를 들어, DC 계수, AC 계수, 서로 다른 종류의 부수 정보)에 대해 서로 다른 코딩 기법을 사용하고, 특정의 코딩 기법 내의 다수의 코드 테이블 중에서 선택을 할 수 있다.
엔트로피 코더(1080)는 멀티플렉서("MUX")(1090)에 압축된 비디오 정보(1095)를 제공한다. MUX(1090)는 버퍼를 포함할 수 있고, 버퍼 레벨 표시자(buffer level indicator)가 제어기에 피드백될 수 있다. MUX(1090) 이전 또는 이후에서, 압축된 비디오 정보(1095)는 네트워크를 통해 전송하기 위해 채널 코딩될 수 있다. 채널 코딩은 압축된 비디오 정보(1095)에 오차 검출 및 정정 데이터를 적용할 수 있다.
제어기(도시 생략)는 움직임 추정기(1010), 주파수 변환기(1060), 양자화기(1070), 역양자화기(1076), 엔트로피 코더(1080), 및 버퍼(1090) 등의 다양한 모듈로부터 입력을 수신한다. 제어기는 인코딩 동안에 중간 결과를 평가한다, 예를 들어, 왜곡을 추정하고 다른 레이트-왜곡 분석(rate-distortion analysis)을 수행한다. 제어기는 움직임 추정기(1010), 주파수 변환기(1060), 양자화기(1070) 및 엔트로피 코더(1080) 등의 모듈들과 함께 동작하여 디코딩 동안에 코딩 파라미터들을 설정 및 변경한다. 인코더가 인코딩 동안에 서로 다른 코딩 파라미터 선택을 평가할 때, 인코더는 서로 다른 파라미터 설정들을 평가하기 위해 어떤 스테이지들(예를 들어, 양자화 및 역양자화)을 반복적으로 수행할 수 있다. 인코더는 한 스테이지에서 그 다음 스테이지로 진행하기 이전에 파라미터를 설정할 수 있다. 또는, 인코더는 서로 다른 코딩 파라미터들을 결합 평가(jointly evaluate)할 수 있다. 평가될 코딩 파라미터 결정들의 트리, 및 대응하는 인코딩의 타이밍은 구현에 따라 다르다.
인코더(1000) 내의 모듈들 간의 도시된 관계들은 인코더에서의 정보의 일반적인 흐름을 나타낸 것이며, 간단함을 위해 다른 관계들은 도시되어 있지 않다. 상세하게는, 도 10은 보통 비디오 시퀀스, 화상, 매크로블록, 블록, 기타 등등에 대해 사용되는 인코더 설정, 모드, 테이블, 기타 등등을 나타내는 부수 정보를 나타내고 있지 않다. 이러한 부수 정보는, 일단 최종 결정되면, 통상적으로 부수 정보의 엔트로피 인코딩 후에, 출력 스트림으로 전송된다.
비디오 인코더의 특정의 실시예들은 통상적으로 일반화된 인코더(1000)의 변형 또는 이를 보완한 것을 사용한다. 구현 및 원하는 압축의 유형에 따라, 인코더의 모듈들이 추가되고, 생략되며, 다수의 모듈들로 분할되고, 다른 모듈들과 결합되며, 및/또는 유사한 모듈들로 대체될 수 있다. 예를 들어, 제어기는 인코더의 서로 다른 모듈들과 연관된 다수의 제어기 모듈들로 분할될 수 있다. 대안의 실시예들에서, 다른 모듈들 및/또는 기타 모듈 구성을 갖는 인코더가 기술된 기법들 중 하나 이상을 수행한다.
III. 지각 모델을 사용한 비디오 컨텐츠의 특성 분석
지각 모델(perceptual model)을 사용하여 비디오 컨텐츠가 특성 분석될 수 있다. 이것은 인코더가 서로 다른 종류의 비디오 컨텐츠에 대해 적절한 인코딩 결정을 하는 데 도움을 줄 수 있다. 인코더는 화상의 서로 다른 부분(예를 들어, 블 록, 매크로블록, 기타)에서 컨텐츠의 특성 분석을 제공하기 위해 인코딩 이전에 화상을 분석할 수 있다. 예를 들어, 비디오 화상의 비교적 평탄한 부분(파란 하늘 등)은 왜곡을 유입시키는 것이 좋지 않은 것으로 특성 분석될 수 있는데, 그 이유는 평탄한 영역에서는 어떤 종류의 품질 열화(예를 들어, 양자화 아티팩트)가 사람에 의해 더 쉽게 지각되기 때문이다. 이와 달리, 텍스처 영역에서는 왜곡이 일반적으로 덜 눈에 띈다(따라서 괜찮다).
도 12를 참조하면, 도 10을 참조하여 상기한 것과 같은 비디오 인코더는 비디오 화상의 일부분(예를 들어, 매크로블록들의 블록, 매크로블록 또는 기타 영역)을 (예를 들어, 평탄한 영역, 가장자리 영역, 텍스처 영역, 기타 등등으로서) 특성 분석하고 이 특성 분석에 따라 하나 이상의 인코딩 기법을 적응시키는 프로세스(1200)에서 적응적 인코딩 기법을 구현한다. 기술된 기법들 중 다수가, 블록, 매크로블록 또는 기타 영역에 대해서와 같이, 화상 내에서의 적응적 인코딩을 제공한다. 이들 기법은 정보를 사용하여 이미지의 서로 다른 부분을 분류하고 이들 부분을 그에 따라 인코딩한다. 보다 상세하게는, 비디오 인코더는 컨텐츠의 지각적 특성에 기초하여 컨텐츠를 분류하기 위해 화상의 부분들을 특성 분석한다.
단계(1210)에서, 비디오 인코더는 비디오 화상의 하나 이상의 부분들을 특성 분석한다. 예를 들어, 인코더는 비디오 화상의 블록 내에서의 세기 변동(intensity variance)에 기초하여 그 블록을 특성 분석한다. 한 구현에서, 인코더는 블록 또는 블록을 다운샘플링한 것 내의 픽셀들에 대해 한 픽셀과 그의 인접 픽셀들 간의 차이의 합을 계산한다. 이러한 차이의 합은 픽셀과 그의 주변 픽셀들 간의 세기 변동을 나타낸다. 예를 들어, 주변 픽셀들은 한 픽셀에 인접한 또는 거의 인접한(한 픽셀의 위쪽에 또는 아래쪽에 있는, 좌측에 또는 우측에 있는, 또는 대각 방향으로 있는 것과 같은) 2개 이상의 다른 픽셀들을 포함한다. 픽셀의 세기와 그의 주변 픽셀들의 세기 간의 차이는 휘도 및/또는 색도 데이터의 차이에 기초하여 계산된다. 환언하면, 이 차이는 휘도 샘플 및/또는 색도 샘플로 계산된다. 계산된 차이값의 평균이 픽셀에 할당된다[예를 들어, 픽셀 경사(pixel gradient)]. 블록 내의 픽셀들에 대해[예를 들어, 블록 경사(block gradient)] 또는 픽셀들의 어떤 서브샘플링된 세트에 대해 차이값이 이와 같이 계산된다. 블록에 대한 특성 분석 또는 분류(예를 들어, 평탄, 가장자리, 또는 텍스처; 텍스처 또는 비텍스처; 평탄 또는 비평탄; 기타)[블록값(block value)으로 표현될 수 있음]를 결정하기 위해 블록 내의 픽셀들에 할당된 차이값이 평가된다. 일례에서, 블록 경사에 대한 메디안 차이값(median difference value)을 결정하기 위해 블록 내의 픽셀들에 대한 픽셀 경사가 평가된다[예를 들어, 블록 메디안(block median)]. 따라서, 블록 내의 픽셀들 간의 세기 차이는 블록, 매크로블록, 또는 기타 비디오 화상 영역에 대한 세기 변동의 척도를 제공한다.
블록값을 결정하는 데 블록 메디안이 필요하지 않다. 세기 변동 또는 블록 특성 분석은 또한 블록 내의 픽셀들에 할당된 차이값들에 대한 평균값에 기초할 수 있다[예를 들어, 블록 평균(block average)]. 블록 메디안 또는 평균은 블록을 분류하는 데 사용될 수 있고 및/또는 더 미세한 제어 함수(finer-grained control function)에의 입력으로서 사용될 수 있다. 특성 분석 또는 제어 함수는 하나 이 상의 인코딩 측면들을 적응적으로 변화시킨다.
다른 대안으로서, 블록을 특성 분석하기 위해 세기 변동을 계산하지 않고, 인코더는 다른 메트릭(metric)을 사용한다.
단계(1220)에서, 인코더는 특성 분석에 기초하여 비디오 화상을 적응적으로 인코딩한다. 한 구현에서, 컨투어링 아티팩트를 제거 또는 감소시키기 위한 인코딩 기법들은 블록 특성 분석에 기초하여 수행된다. 예를 들어, 경사 기울기 검출, DC 천이 검출, AC 계수 보존, 및 적응적 차분 양자화가 어떤 평탄한 영역에 대해 수행되고, 텍스처 영역은 비트 레이트를 절감하기 위해 더 강하게 양자화된다.
도 12가 화상의 다수의 부분에 대해 특성 분석 스테이지(1210)가 적응적 인코딩 스테이지(1220)에 선행하는 것으로 도시하고 있지만, 이들 스테이지는 화상 내에서 블록마다 반복적으로 행해질 수 있거나 어떤 다른 기준에 따라 순서가 정해질 수 있다.
단계(1230)에서, 인코더는 적응적으로 인코딩된 비트 스트림을 신호한다. 예를 들어, 블록 특성 분석에 기초하여 인코딩하기 위해 인코더에서 차분 양자화가 사용되는 경우, 비디오 인코더는 차분 양자화를 비디오 디코더에 신호하기 위한 시그널링 방식을 사용하여 정보를 압축된 비트 스트림으로 인코딩한다.
단계(1240)에서, 대응하는 비디오 디코더는 비디오 화상에 대한 인코딩된 데이터를 포함하는 적응적으로 인코딩된 비트 스트림을 판독한다. 예를 들어, 비디오 디코더는 신호된 차분 양자화 정보를 판독한다. 단계(1250)에서, 디코더는 압축된 비트 스트림을 디코딩한다, 예를 들어, 신호된 차분 양자화 정보에 따라 블록 을 역양자화한다.
A. 예시적인 블록-기반 특성 분석
도 13은 휘도 및/또는 색도 데이터를 사용하여 블록들을 특성 분석하는 블록-기반 동작들을 나타낸 도면이다. 휘도 블록 "Y"(1302)은 4:2:0 매크로블록 형식으로 된 매크로블록의 8x8 블록이다. 꼭 그럴 필요는 없지만, 이 예에서, 픽셀 블록의 대응하는 색도 블록(1304, 1306)도 경사 블록(gradient block)(1308)을 계산하는 데 사용된다. 꼭 그럴 필요는 없지만, 이 예에서 나타낸 바와 같이, 휘도 블록(1302)은 (예를 들어, 한쌍의 샘플을 단순히 평균함으로써) 수평 및 수직 방향으로 2배만큼 다운샘플링(1312)되어 색도 블록의 4x4 차원과 일치하는 휘도 블록(1310)을 생성한다.
다운샘플링된 휘도 블록(1310)에 나타낸 바와 같이, 픽셀(1314)에 대한 휘도 샘플의 세기값이 다운샘플링된 휘도 블록(1310)에서 그 픽셀의 근방에 있는 4개의 픽셀에 대한 샘플들과 비교되고, 픽셀(1314)에 대한 샘플과 그 주변의 수직 및 수평 방향의 픽셀들에 대한 샘플들 간의 차이들의 합의 평균이 계산된다. 이 예에서, 픽셀(1314)은 위치 Y'(r,c)에 있다. 이 픽셀(1314)의 주변 픽셀들과 비교하여 이 픽셀(1314)에 대한 휘도 세기값의 차이들의 합의 평균은 다음과 같다.
Figure 112008069385609-pct00009
Figure 112008069385609-pct00010
나타낸 바와 같이, Y'(r,c)는 다운샘플링된 블록 Y'에서 행 r 및 열 c에 있는 픽셀(1314)의 휘도 성분이다. LI(r,c)는 픽셀(1314)이 블록 Y' 내의 그의 이웃들과 휘도 세기가 어떻게 다른지의 표시를 제공한다. 이 휘도 세기 차이 측정은 픽셀 경사의 일례이다.
선택적으로, 세기 차이를 결정하기 위해, 색도 데이터(1304, 1306)가 휘도 데이타 대신에 단독으로 고려될 수 있거나, 휘도 데이터와 함께 고려될 수 있다. 픽셀(1314)에 대한 휘도 세기값 및 색도 세기값의 차이의 합의 평균은 이하의 방정식에 나타낸 바와 같이 주변 픽셀들에 대한 샘플의 세기값들의 차이의 평균으로 표현될 수 있다.
Figure 112008069385609-pct00011
GI(r,c)는 다운샘플링된 블록에서 (r,c)에 있는 픽셀에 대한 픽셀 경사의 일례이며, 이 픽셀 경사는 픽셀(1314)이 그의 주변 픽셀 이웃들과 휘도 및 색도 세기가 어떻게 다른지의 표시를 제공한다. 이 예에서, 픽셀 경사값 GI(r,c)은 직접 수직 또는 수평인 픽셀들에 기초하며, 이웃에 있는 다른 픽셀들을 고려하지 않는다. 다른 변형들에서 픽셀 경사의 생성 시에 다른 픽셀 데이터도 고려될 수 있는 것이 생각된다. 예를 들어, 제공된 구성의 일부로서 또는 그 대신에 대각 픽셀들이 고 려될 수 있다. 또는 더 긴 길이(예를 들어, 2 또는 3개의 픽셀)에 걸친 세기 차이가 고려될 수 있다.
GI(r,c)는 단일의 픽셀이 그의 이웃들과 휘도 및 색도 세기가 어떻게 다른지의 표시를 제공한다. 전체 블록에 대한 세기 변동을 특성 분석하기 위해, 그 블록 내의 복수의 픽셀 또는 모든 픽셀에 대해 동일한 분석이 수행된다. 이러한 일례에서, 픽셀 경사 블록(1308)이 생성되고, 블록 경사가 그로부터 도출된다. 상기한 바와 같이, 픽셀 경사 또는 블록 경사를 계산하는 것은 휘도 비교만, 색도 비교만, 또는 휘도 및 색도 비교 둘다를 모두 포함할 수 있다.
바람직한 경우, GI(r,c)를 구하는 상기 방정식이 누락된 블록 경계값들을 참작하기 위해 변화될 수 있다. 예를 들어, 경계값을 참작하기 위해 방정식 GI(r,c)을 적응시킬 때 블록 밖에 있는 샘플들이 외삽되거나 블록 내의 다른 인접 샘플들과 동일한 것으로 가정될 수 있다. 또는, 방정식의 분모가 약분될 수 있거나, 어떤 방향에 있는 주변 샘플들은, 예를 들어, 그 주변 샘플들이 블록 밖에 있는 경우, 이 비교에서 무시될 수 있다. 나타낸 바와 같이, 픽셀 경사 블록(1308)은 블록 내의 모든 픽셀들에 대한 픽셀 경사 데이터를 제공할 수 있다. 또는, 픽셀 경사 블록(1308)은 블록 내의 모든 픽셀보다 적은 픽셀에 대한 픽셀 경사 데이터를 포함할 수 있다.
도 14는 도 13의 블록(1308)에서의 복수의 픽셀 경사의 히스토그램이다. 보다 구체적으로는, 히스토그램(1400)은 블록이 어떻게 특성 분석되는지 또는 평가되 는지의 시각화를 제공한다. 이 예에서, 8개의 픽셀 경사값이 30보다 낮고, 8개의 픽셀 경사값이 30보다 높다. 따라서, 이 블록 경사에 대한 메디안 값은 30이다. (짝수개의 후보의 경우, 메디안은 2개의 중간 후보값의 평균으로 계산될 수 있거나 2개의 중간 후보값 중 한쪽 또는 다른 한쪽으로 계산될 수 있다.) 메디안 값은 블록을 평탄(smooth), 텍스처(texture) 또는 가장자리(edge)로서 특성 분석하는 데 사용될 수 있다. 물론, 픽셀 경사 또는 픽셀 경사 블록이 획득된 경우, 블록을 특성 분석하는 데 다른 메트릭이 사용될 수 있다. 예를 들어, 블록들은 픽셀 경사값의 평균에 따라 특성 분석될 수 있다. 블록값이 할당된 경우, 그 블록값이 특성 분석 방식(예를 들어, 평탄 또는 비평탄; 평탄, 텍스처, 가장자리; 기타)에서 또는 더 미세한 제어 함수에서 사용될 수 있다. 적응적 인코딩 전략에서 블록이 어떻게 처리되는지를 결정하기 위해 블록값이 사용될 수 있다.
복수의 픽셀 경사를 정렬하고 정렬된 값들로부터 메디안 경사값을 선택함으로써 블록값이 선택될 수 있다. 예를 들어, {10, 14, 28, 36, 38} 등의 블록 내의 픽셀 경사값 세트는 그 세트 내의 메디안 픽셀 경사와 같은 블록값, 즉 28을 할당받는다. 다른 예에서, 블록값이 그 세트 내의 평균 경사, 즉 앞의 수치예의 경우 25.2에 기초하여 결정된다. 예를 들어, 이 세트는 블록 경사 전체 또는 그의 일부로부터 획득될 수 있다.
C. 특성 분석 정보의 예시적인 용도
도 15는 도 13 및 도 14의 예에 계속하여, 예시적인 블록 특성 분석 체계의 그래프이다. 도시된 바와 같이, 0부터 최대 30(30을 포함함)까지의 범위에 있는 블록값을 갖는 블록이 평탄한 블록으로서 특성 분석된다. 30보다 크고 60보다 작거나 같은 범위에 있는 블록값을 갖는 블록은 텍스처 블록으로서 특성 분석되고, 60보다 큰 블록값을 갖는 블록은 가장자리 블록으로서 특성 분석된다.
다른 대안으로서, 인코더는 다른 특성 분석 체계를 사용하며, 예를 들어, 이 분석 체계는 비디오 화상의 블록 또는 다른 부분에 대한 다른 및/또는 부가의 특성 분석을 포함한다. 다른 경사 및 메트릭에 대해, 이 체계는 배율(scale) 및/또는 차원의 수가 변할 수 있다.
인코더는 인코딩 결정을 할 때 비디오 화상의 블록 또는 다른 부분의 특성 분석을 사용할 수 있다. 표 2는 도 15를 참조하여 기술한 바와 같이 예시적인 적응적 코딩 방식의 특징들을 블록 특성 분석에 관계시키고 있다. 나타낸 바와 같이, 서로 다르게 특성 분석된 블록들이 하나 이상의 적응적 특징과 관련하여 다르게 취급된다.
적응적 인코딩 특징들
특성 분석 DC 천이 검출 경사 기울기 검출 양자화
평탄 낮은 QP
가장자리 아니오 아니오 높은 QP
텍스처 아니오 아니오 높은 QP
표 2에 나타낸 다양한 적응적 특징들에 대해 본 문서 전체에 걸쳐 논의되며, 이하에서 더 설명할 것이다. 다른 대안으로서, 인코더는 적응적 특징 결정(adaptive feature decision)의 블록 특성 분석(block characterization)에의 다른 매핑을 사용한다. 게다가, 본 명세서에 기술된 어떤 특징들은 비디오 컨텐츠의 특성 분석을 고려할 필요가 없다.
IV. 텍스처 레벨에 기초한 차분 양자화
차분 양자화에서, 인코더는 화상의 서로 다른 부분들에 대해 양자화 스텝 크기(본 명세서에서 어떤 구현에서는 양자화 파라미터, 즉 QP라고도 함)를 변화시킨다. 통상적으로, 이것은 매크로블록 또는 다른 서브-화상 레벨에서 QP를 변화시키는 것을 수반한다. 인코더는 QP를 어떻게 변화시킬지에 관한 결정을 하고 적절한 경우 그 결정을 디코더로 신호할 수 있다.
이전의 인코더들은 2-레벨 차분 양자화(2개의 QP 간에 변화함) 및 다중-레벨 차분 양자화(3개 이상의 QP 간에 변화함)를 사용하였다. 예를 들어, 한가지 2-레벨 차분 양자화 방법에서, 하나의 QP는 화상 가장자리에 있는 매크로블록들에 대해 사용되고, 다른 QP는 화상의 나머지에 있는 매크로블록들에 대해 사용된다. 이것은 전체적인 시각적 품질을 유지하는 데 미세한 상세가 덜 중요한 화상 가장자리에서 비트를 절감하는 데 유용할 수 있다. 다중-레벨 차분 양자화 방법에서, 화상 내의 개개의 매크로블록에 대해 더 많은 수의 서로 다른 QP가 사용될 수 있다. 예를 들어, 인코더는 매크로블록에 대해 QP를 선택하고 현재의 화상에 대한 QP와 이 매크로블록에 대한 QP 간의 차분을 신호할 수 있다.
양자화 아티팩트에 대한 지각적 감도(perceptual sensitivity)는 공간 및 시간 영역 둘다에서 비디오의 텍스처 레벨과 관계가 깊다. 높은 텍스처 레벨은 종종 품질 열화 및 양자화 아티팩트를 감출 수 있는 마스킹 효과를 가져온다. 그렇지만, 낮은 텍스처 레벨을 갖는 영역들(예를 들어, 평탄한 영역들)에서는, 열화 및 양자화 아티팩트가 더 잘 보인다. 이전의 인코더들이 비디오 화상의 어떤 부분들(예를 들어, 화상 가장자리)에 대해 양자화 조정을 하고 있지만, 본 명세서에 기술된 보다 포괄적인 컨텐츠-기반 차분 양자화는 많은 시나리오에서 개선된 레이트-왜곡 성능(rate-distortion performance)을 제공한다.
그에 따라, 기술된 기법들 및 도구들 중 다수는 더 나은 지각적 품질을 달성하도록 다양한 텍스처 레벨에 기초하여 비트를 할당하기 위해 텍스처-기반 차분 양자화(본 명세서에서 텍스처 DQ라고 함)를 사용한다. 텍스처 DQ에서, 텍스처 정보에 기초하여, 어떤 경우에는, 시간 분석 정보 등의 다른 정보에 기초하여 비디오를 코딩하기 위해 서로 다른 QP가 선택된다. 인코더는 텍스처 정보(다른 정보일 수도 있음)를 분석하고 텍스처 DQ를, 화상 내의 8x8 블록 또는 매크로블록 등의 해당 영역(텍스처 DQ 영역)에 적용한다. 기술된 기법들 및 도구들 중 다수는 잠재적인 텍스처 DQ 영역으로서 평탄한 영역에 중점을 두고 있다. 평탄한 영역은 편평한 영역(flat region)(일정한 또는 거의 일정한 컬러의 영역) 및 경사 기울기 영역(gradient slope region)(이 영역에 걸쳐 일정한 또는 거의 일정한 비율로 변하는 컬러의 영역)을 포함한다. 평탄한 영역은 작은 노이즈, 필름 그레인 또는 기타 컬러 변동의 영역이 끼어드는 경우에도 평탄한 것으로 간주될 수 있다.
도 16은 텍스처 정보에 기초하여 차분 양자화를 적용하는 일반화된 기법(1600)을 나타낸 플로우차트이다. 도 10의 인코더(1000) 등의 인코더 또는 기타 도구가 기법(1600)을 수행한다.
단계(1610)에서, 인코더는 현재의 화상에 대한 텍스처 정보(예를 들어, 서로 다른 영역들이 평탄한지, 가장자리인지 또는 텍스처 영역인지를 나타내는 특성 분석 또는 블록값)를 획득한다. 단계(1620)에서, 인코더는 현재의 화상에서 텍스처 DQ 영역(예를 들어, 컨투어링 아티팩트가 존재할지도 모르는 평탄한 영역) 또는 텍스처 DQ 영역들을 찾아낸다. 단계(1630)에서, 인코더는 텍스처 DQ 영역(들)에 텍스처 DQ를 적용하여 그 화상을 인코딩한다. 예를 들어, 평탄한 영역들은 텍스처가 많은 영역들보다 작은 QP로 코딩된다. 인코딩할 화상이 더 있는 경우, 인코더는 단계(1640)에서 그 다음 화상을 가져와서, 적절한 경우, 텍스처 DQ를 그 다음 화상에 선택적으로 적용한다. 인코더는 비디오 화상에 대한 인코딩된 데이터를, 예를 들어, 저장 장치, 통신 접속, 또는 버퍼로 출력한다.
영역이 평탄한 영역으로서 취급되어야만 하는지 여부를 결정하기 위해 여러 텍스처 DQ 영역 검출 기법들이 사용될 수 있다. 예를 들어, 인코더는, 특정의 영역이 텍스처 DQ 영역으로 간주되어야만 하는지를 결정하기 위해, 다른 텍스처 메트릭 및/또는 다른 텍스처 문턱값을 사용할 수 있다(문턱값을 적응적으로 조정할 수 있다). 적응적 양자화값 매핑은 더 나은 지각적 비디오 품질을 위해 비트를 할당하는 데 사용될 수 있다. 차분 양자화 결정은 또한 시간 분석에 기초할 수 있다(즉, 시간에 따른 영역의 특성들에 기초하여 결정을 하기 위해 장래의 화상들에 주목함).
인트라 화상(intra picture) 및 예측된 화상 둘다에 대해 차분 양자화 결정이 행해질 수 있다. 예측된 화상의 경우, 차분 양자화된 화상들 간의 P-화상 및 B-화상 차분 양자화 간격이 제어될 수 있다. 게다가, 텍스처가 우세하게 많은 영역(dominant high texture area)이 존재할 때 화상의 텍스처를 관찰함으로써, (텍스처가 우세하게 많은 영역과 비교하여) 비교적 평탄한 영역을 작은 QP로 코딩하기 위해 평탄한 영역 텍스처 문턱값이 완화될 수 있다.
상기 섹션 III에서 도 12 내지 도 15를 참조하여 기술된 것들과 유사한 기법들이 현재의 화상에 대한 텍스처 맵(texture map)을 생성하는 데 사용될 수 있다. 예를 들어, 인코더는, 섹션 III에서 기술한 바와 같이, 화상의 텍스처 레벨에 대한 경사(gradient)를 화상의 Y, U 및 V 채널에서의 1차 도함수(차분)으로서 계산한다. 계산 프로세스의 속도를 높이기 위해 매크로블록 형식이 4:2:0인 경우, 인코더는 Y 채널을 수평 및 수직 방향으로 2:1로 다운샘플링할 수 있다. 인코더는 수평 및 수직 방향 둘다에서 각각의 픽셀에 대한 Y, U 및 V의 경사를 합산한다. 전체 해상도(full resolution)의 8x8 블록의 경우, 인코더는 블록 경사값(block gradient value)으로 사용하기 위해 다운샘플링된 화상 내의 대응하는 4x4 블록에서의 경사들의 합의 평균을 계산한다. 경사들의 평균을 계산하는 것은 섹션 III에서 기술한 바와 같이 메디안을 계산하는 것보다 적은 계산 복잡도를 갖는다.
다른 대안으로서, 인코더는 어떤 다른 방식으로 화상에 대한 텍스처 정보를 획득한다. 예를 들어, 인코더는 경사를 계산하기 위해 다른 경사 방향을 선택하고, 휘도 채널에 대해서만 경사를 계산하거나, 기타 등등을 한다. 그렇지만, 텍스처 정보가 획득되거나 계산된 경우, 그 텍스처 정보는 텍스처 DQ 결정을 하는 데 사용될 수 있다.
텍스처 맵은 화상의 서로 다른 부분들의 텍스처 레벨을 나타낸다. 예를 들어, 텍스처 맵은 화상 내의 평탄한 영역(예를 들어, 블록, 매크로블록, 가장자리, 또는 기타 영역) 및 텍스처 영역을 식별하는 데 사용될 수 있다. 기술된 차분 양자화 기법들이 텍스처 맵에서의 정보에 기초하여 화상의 해당 부분들에 대해 수행될 수 있다. 다른 대안으로서, 인코더는 텍스처 맵을 먼저 생성하지 않고 텍스처 정보를 사용한다.
A. 시간 분석
현재의 비디오 화상으로부터의 텍스처 정보에 부가하여, 정확한 차분 양자화 결정을 하기 위해 시간 분석이 사용될 수 있다. 시간 분석을 사용하는 한가지 이유는, 평탄한 영역이 몇개의 화상들에 걸쳐 평탄한 채로 있는 경우, 특히 다른 화상들이 움직임 보상에서 그 평탄한 영역을 참조하는 경우, 작은 QP를 사용하는 것의 평탄한 영역에 대한 영향이 더 커지기 때문이다. 이와 달리, 평탄한 블록이 장래의 화상에서의 텍스처가 많은 블록 또는 가장자리 블록으로 대체되는 경우, 작은 QP를 사용하는 것의 한가지 이점이 상실된다. 그에 따라, 인코더는 현재의 화상에서 평탄한 영역을 찾은 후에 장래의 화상들에 주목하고 장래의 화상에서 그 영역의 평탄성이 어떻게 변하는지에 기초하여 차분 양자화 결정을 한다. 인코더는 또한 디스플레이 순서에서 현재의 비디오 화상에 선행하지만 움직임 보상에서 현재의 비디오 화상을 참조하는 이전의 화상들, 예를 들어, B-화상에 주목할 수 있다.
도 17은 텍스처 DQ 결정을 하기 위해 시간 분석을 사용하는 예시적인 기법(1700)을 나타낸 것이다. 도 10의 인코더(1000) 등의 인코더 또는 다른 도구가 기법(1700)을 수행한다.
단계(1710)에서, 인코더는 비디오 시퀀스에서의 현재의 화상 내의 현재의 블록에 대해 텍스처 분석을 수행한다. 예를 들어, 인코더는 그 블록에 대한 경사 정보에 주목한다. 인코더는 이 경사 정보를 그 블록에 대한 경사 문턱값과 비교하여 그 블록을 평탄 또는 비평탄(예를 들어, 텍스처, 가장자리)으로 분류할 수 있고, 여기서 경사 문턱값은 비디오 시퀀스의 현재의 화상 또는 다른 부분에 대해 고정되어 있거나 동적으로 설정된다. 다른 대안으로서, 인코더는 현재의 화상 내의 어떤 다른 부분에 대해 텍스처 분석을 수행한다.
단계(1720)에서, 인코더는 시간 분석을 수행한다. 인코더는 자동적으로 또는 현재의 블록이 평탄한 블록으로 분류되는 경우에만 시간 분석을 수행할 수 있다. 예를 들어, 인코더는 현재의 화상 내의 평탄한 블록이 장래의 화상에서 평탄한 채로 있는지를 결정한다. 평탄한 채로 있는 경우, 현재의 화상 내의 평탄한 영역은 나중에 더 작은 QP로 코딩된다. 또는, 인코더는 현재의 화상 내의 평탄한 블록이 이전의 화상에서 또는 이전의 화상 및 장래의 화상 둘다에서도 평탄했는지를 결정한다.
인코더가 분석하는 이전의 화상 및/또는 장래의 화상의 수는 구현에 따라 다를 수 있다. 평탄한 영역이 장래의 화상(예를 들어, 그 다음 화상 또는 어떤 다른 시간상으로 가까운 화상)에서 텍스처 영역으로 대체되는 경우, 현재의 화상 내의 평탄한 영역이 더 큰 QP로 코딩될 수 있는데, 그 이유는 더 작은 QP를 사용하는 것의 이점이 영속적일 것 같지 않기 때문이다. 한 구현에서, 시간상으로 가까운 화상은 차분 양자화 결정을 함에 있어서 멀리 있는 화상보다 더 많이 가중된다. 인코더가 주목하는 가중 및 이전의 화상 및/또는 장래의 화상의 수는 구현에 따라 다를 수 있다.
계산을 간단화하기 위해, 인코더는 현재의 블록과 장래의 화상에서의 대응하는 블록을 비교하기 위해 하나의 값을 찾을 수 있다. 예를 들어, 평탄한 블록 내에서 휘도값이 꽤 일정하기 때문에, 장래의 화상에서의 대응하는 블록들의 유사성을 측정하기 위해 그 블록에 대한 휘도값들의 평균이 계산된다. 이하의 예시적인 방정식에서, 장래의 화상 내의 대응하는 블록들의 장래의 평탄성의 "강도" S(t)는 현재의 블록 및 장래의 화상 내의 대응하는 블록의 평균 휘도값들, 2개의 장래의 화상들 내의 대응하는 블록들의 평균 휘도값들, 기타 등등 간의 가중된 차이 절대값(weighted absolute difference)의 합에 의해 계산된다.
Figure 112008069385609-pct00012
여기서, n은 시간상 "전방(look-ahead)" 화상들의 총수이고, C(n)은 2/(n*(n+l))으로 정의되는 정규화 인자이며, M(t)는 시각 t에서의 화상 내의 블록(또는 대응하는 블록)에 대한 휘도값들의 평균이다. 인코더는 또한 장래의 평탄성 대신에 또는 그에 부가하여 과거의 평탄성을 측정할 수 있다. 다른 대안으로서, 인코더는 평탄성의 시간 분석에서 다른 가중 시스템 및/또는 평탄성 메트릭을 사용한다.
다시 도 17을 참조하면, 단계(1730)에서, 인코더는 텍스처 분석 및 시간 분석의 결과를 사용하여 블록을 텍스처 DQ 블록으로 분류할지 여부를 결정한다. 예 를 들어, 인코더는 평탄한 블록에 대한 평탄성 강도 S(t)를 계산하고(다른 블록들에 대해서는 계산하지 않음), 이 평탄성 강도 S(t)를 시간 평탄성 문턱값(temporal smoothness threshold)과 비교한다. 시간 평탄성 문턱값은 고정되어 있거나 동적으로 설정될 수 있다.
도 17에서, 인코더가 현재의 블록이 평탄한 블록이고 이전 및/또는 장래의 화상에서의 대응하는 블록도 평탄하다는 것을 알아낸 경우, 단계(1740)에서 인코더는 현재의 블록을 텍스처 DQ 블록의 수에 추가한다. 인코더는 텍스처 DQ 블록의 수를 사용하여 그 화상에 대해 텍스처 DQ를 수행할지 여부를 결정한다. 다른 대안으로서, 인코더는 어떤 다른 방식으로 시간 분석을 사용하여 텍스처 DQ 결정을 한다.
분석할 블록이 더 있는 경우, 인코더는 단계(1750)에서 그 다음 블록을 가져오고 도 17에 나타낸 프로세스를 반복한다. 이것은 인코더가 현재의 비디오 화상의 블록들을 평가할 때까지 계속된다. 그 지점에서, 인코더는 인코딩 결정에서 평탄한 블록들의 수 또는 시간 분석의 다른 결과를 사용한다.
도 17이 인코더가 시간 분석을 블록마다 수행하는 것으로 나타내고 있지만, 다른 대안으로서, 인코더는 매크로블록마다 또는 어떤 다른 영역마다 시간 분석을 수행한다.
B. 텍스처 DQ 문턱값 및 격리된 평탄한 블록 필터링
인코더가 시간 분석을 사용하는지 여부와 관계없이, 인코더는 텍스처 DQ를 언제 적용할지를 결정함에 있어서 몇가지 다른 메카니즘을 사용할 수 있다. 인코 더는 DQ를 수행할지 여부 및, 수행하는 경우, 텍스처 DQ 영역에 대한 QP가 어느 정도 미세해야 하는지를 결정하는 데 하나 이상의 우세 문턱값(prevalence threshold)(예를 들어, 화상 내의 평탄한 블록의 퍼센트)을 사용할 수 있다. 예를 들어, 화상 내의 평탄한 블록들의 수 또는 퍼센트가 문턱값을 넘는 경우, 인코더는 작은 QP를 갖는 평탄한 컨텐츠를 인코딩하는 데 너무 많은 비트를 소비하는 것을 회피하기 위해 더 조악한 스텝 크기를 선택할 수 있다. 인코더는 또한 평탄한 블록의 수 또는 퍼센트가 화상에서의 텍스처 DQ를 사용하기에 충분한지 여부를 판정하기 위해 더 낮은 문턱값을 가질 수 있다.
비트 레이트를 감소시키는 다른 방법은 어떤 평탄한 블록들이 텍스처 우세 영역(predominantly textured region) 내에 있을 때 그 평탄한 블록들을 텍스처 블록으로 취급하는 것이다. 이것을 격리된 평탄한 블록 필터링이라고 할 수 있다(그렇지만 평탄한 블록이 이와 같이 필터링되기 위해 완전히 "격리"되어 있을 필요는 없음). 예를 들어, 텍스처 블록으로 둘러싸여 있는 평탄한 블록은 텍스처 블록보다 작은 QP로 코딩될 필요가 없는데, 그 이유는 평탄한 블록에서의 양자화 아티팩트가 주변의 텍스처 컨텐츠(textured content)에 의해 마스킹될 가능성이 있기 때문이다. 그 결과, 인코더는 격리된 평탄한 블록에 대해 텍스처 DQ를 수행하려고 하지 않을 수 있다. 인코더는 또한 화상에서의 평탄한 블록의 수 또는 퍼센트를 계산할 때 격리된 평탄한 블록을 무시할 수 있다.
도 18은 문턱값 및 격리된 평탄한 블록 필터링을 사용하여 텍스처 DQ 결정을 하는 예시적인 기법(1800)을 나타낸 것이다. 도 10의 인코더(1000) 등의 인코더 또는 다른 도구가 기법(18000)을 수행한다.
단계(1810)에서, 인코더는 현재의 화상에서 평탄한 블록들을 찾는다. 예를 들어, 인코더는 도 17을 참조하여 기술한 바와 같이 텍스처 분석 및 시간 분석을 수행한다. 다른 대안으로서, 인코더는 어떤 다른 방식으로 현재의 화상에서 평탄한 블록을 찾는다.
단계(1820)에서, 인코더는 격리된 평탄한 블록 필터링을 수행한다. 예를 들어, 인코더는 현재의 화상에서 비평탄 블록들에 의해 둘러싸여 있는 단일의 평탄한 블록들을 제거한다. 인코더는 격리된 평탄한 블록 필터링을 수행하기 위해 많은 다른 결정 모델을 사용할 수 있다. 예를 들어, 인코더는, 평탄한 블록의 이웃하는 블록들 전부가 텍스처 블록인 경우, 이 평탄한 블록을 단지 텍스처 블록으로 취급하려고 할 수 있다. 또는, 인코더는, 평탄한 블록의 어떤 수의 이웃하는 블록들이 텍스처 블록인 경우, 이 평탄한 블록을 텍스처 블록으로 취급하려고 할 수 있다. 또는, 인코더는 더 큰 그룹(예를 들어, 2 또는 3)에서 및/또는 블록(들)이 고립되어 있는지 여부에 대한 어떤 다른 테스트를 사용하여 격리된 평탄한 블록을 제거한다.
단계(1830)에서, 인코더는 낮은 문턱값과 대조하여 화상에서의 평탄한 블록의 퍼센트를 검사한다(예를 들어, 화상 내의 총 블록의 1-2%). 평탄한 블록의 퍼센트가 낮은 문턱값 아래로 떨어지는 경우, 인코더는 텍스처 DQ가 이 화상에 대해 사용되지 않을 것으로 판정한다(단계 1840). 평탄한 블록의 퍼센트가 낮은 문턱값을 넘는 경우, 단계(1850)에서 인코더는 높은 문턱값과 대조하여 그 퍼센트를 검사 한다. 이 높은 문턱값은 평탄한 블록에 대한 QP를 선택하는 데 사용된다. 이 퍼센트가 높은 문턱값보다 높은 경우, 인코더는 텍스처 DQ를 수행하지만 비트 레이트를 감소시키기 위해 평탄한 블록들에 대해 더 조악한 QP를 선택한다(단계 1860). 그렇지 않은 경우, 인코더는 평탄한 블록에 대해 더 미세한 QP를 선택한다(블록 1870). 분석할 화상이 더 있는 경우(단계 1880), 인코더는 다른 화상들에 대해 이 프로세스를 반복할 수 있다. 문턱값 및 문턱값 퍼센트값의 수는 구현에 따라 다를 수 있다.
다른 대안으로서, 인코더는 텍스처 DQ 문턱값을 사용하지 않고 격리된 평탄한 블록 필터링을 수행하거나 격리된 평탄한 블록 필터링 없이 텍스처 DQ 문턱값을 사용한다. 또는, 인코더는 격리된 평탄한 블록 필터링 없이 또는 DQ 문턱값을 사용하지 않고 텍스처 DQ를 수행한다.
C. 적응적 텍스처 레벨 문턱값
인코더는 주어진 블록이 텍스처 DQ 블록(또는 평탄한 블록)으로 간주되어야 하는지를 판정하기 위해 고정된 텍스처-레벨 또는 평탄성 문턱값을 사용할 수 있다. DQ 시그널링의 비트 레이트 비용(예를 들어, "모든 매크로블록" 2-레벨 DQ 시그널링 시나리오에서는 매크로블록마다 1 비트임) 및 화상의 어떤 부분들을 더 작은 QP로 양자화하는 것의 비트 레이트 비용을 고려하여, 이 문턱값은 텍스처 DQ의 비용에 대한 검사로서 역할한다. 예를 들어, 인코더는 (도 13 및 도 14를 참조하여 기술한 기법 또는 어떤 다른 기법을 사용하여) 블록에 대한 블록값을 획득하고, 블록값을 고정된 텍스처-레벨/평탄성 문턱값(예를 들어, 도 15를 참조하여 기술한 문턱값)과 비교한다.
인코더는 또한 텍스처-레벨/평탄성 문턱값을 적응적으로 변경할 수 있다. 예를 들어, 다수의 텍스처가 많은 컨텐츠를 갖는 화상에서 평탄한 블록의 지각성(perceptibility)이 변할 수 있기 때문에, 블록을 평탄한 블록으로 분류하기 위한 텍스처-레벨 문턱값이 텍스처가 중간 정도인(medium-texture) 또는 텍스처가 많은(high-texture) 화상에서 완화될 수 있다. 이것은 적응적 텍스처-레벨 문턱값의 일례이다. 인코더는 몇개의 서로 다른 문턱값이 어떤 범위의 문턱값들 내에서 선택될 수 있게 해줄 수 있다. 한 구현에서, 평탄한 블록에 대한 적응적 텍스처-레벨 문턱값이 14의 블록값 내지 30의 블록값에서 변화될 수 있다. 서로 다른 텍스처-레벨 문턱값에 대해 서로 다른 차분 양자화 매핑이 사용될 수 있다. 보다 평탄한 영역에서 품질을 향상시키기 위해 텍스처가 많은 프레임 내의 보다 평탄한 영역에 비트를 할당하는 데 적응적 텍스처 레벨 문턱값이 유용할 수 있다.
도 19는 텍스처가 많은 화상에 대한 텍스처 레벨 문턱값을 선택적으로 조정하는 기법(1900)을 나타낸 것이다. 도 10의 인코더 등의 인코더 또는 다른 도구는 기법(1900)을 수행한다. 인코더는 화상에 텍스처가 우세하게 많은 컨텐츠의 존재를 검출하는 것에 의해 텍스처 레벨 문턱값을 조정할지를 판정한다. 한 구현에서, 텍스처가 많은 컨텐츠의 검출은 텍스처 히스토그램에서 크기 10을 갖는 슬라이딩 윈도우에서 텍스처 "에너지"를 계산하는 것으로 구현된다.
도 19를 참조하면, 인코더는 적응적 텍스처-레벨 문턱값 기법(1900)의 단계(1910)에서 화상에 대한 텍스처 정보(예를 들어, 텍스처 레벨 히스토그램)를 획 득한다. 예를 들어, 인코더는 상기한 바와 같이 텍스처 맵을 획득하고 이 정보로부터 텍스처 레벨 히스토그램을 생성한다.
단계(1920)에서, 인코더는 화상이 텍스처가 많은 화상인지를 검사한다. 화상이 텍스처가 많은 화상인 경우, 인코더는 단계(1930)에서 화상에 대한 텍스처 레벨 문턱값을 조정한다. 화상이 텍스처가 많은 화상이 아닌 경우, 인코더는 텍스처 레벨 문턱값을 조정하지 않고 화상을 처리한다(블록 1940). 이어서, 인코더는 다른 화상들에 대한 텍스처 레벨 문턱값을 분석 및 선택할 수 있다(블록 1950). 다른 대안으로서, 인코더는 화상 내의 텍스처가 많은 컨텐츠의 서로 다른 레벨에 대해 서로 다른 텍스처 레벨 문턱값의 슬라이딩 스케일(sliding scale)을 적용한다.
예를 들어, 화상에서 텍스처가 우세하게 많은 컨텐츠(dominant high-texture content)의 범위를 검사하기 위해, 인코더는 화상에 대한 텍스처 히스토그램을 계산한다. 인코더는 텍스처 에너지를 계산하여 피크 또는 텍스처가 우세하게 많은 대역을 결정하기 위해 텍스처 히스토그램에 슬라이딩 윈도우를 적용한다. 수학식 8은 인코더가 이 윈도우에서 텍스처 에너지를 계산하는 한 방법을 나타낸 것이다. 슬라이딩 윈도우는 최소 텍스처 레벨 문턱값 g0(기본적으로 30임)에서부터 슬라이딩하기 시작하고, 인코더는 g0에서 윈도우값 W(g)를 계산한다. 그 윈도우에 대한 텍스처 에너지의 계산 후에 슬라이딩 윈도우는 오른쪽으로 1 만큼 천이하고, 인코더는 g0의 새로운 값에서 시작하여 그 다음 윈도우값 W(g)를 계산한다. 이것은 인코더가 히스토그램에 표현된 텍스처 레벨들 중 최대값에 도달할 때까지 계속된다.
F(g)를 픽셀마다의 텍스처 레벨의 히스토그램이라고 하자. E(g)를 텍스처 레벨에 대한 텍스처 에너지(단, E(g) = F(g) * g임)라고 하자. 인코더는 다음과 같이 슬라이딩 윈도우의 텍스처 에너지 W(g)를 계산한다.
Figure 112008069385609-pct00013
최대 슬라이딩 윈도우 에너지 W(g)가 전체 화상 에너지의 어떤 퍼센트 문턱값을 초과하는 경우, 그 최대 슬라이딩 윈도우 에너지 W(g)에 대한 g0는 평탄한 영역에 대한 문턱값을 조정하는 데 사용된다.
도 20은 g0로부터 평탄한 영역의 새로운 적응적 문턱값을 결정하는 데 사용되는 의사-코드(2000)를 나타낸 것이다. g0가 100을 넘는 경우, 이 적응적 문턱값은 30으로 설정된다. 인코더는 또한 g0가 30보다 작은지를 검사하고, 그러한 경우, 적응적 문턱값을 14로 설정한다. 그렇지 않고, 30 ≤ g0 < 100인 경우, 이 적응적 문턱값은 테이블 g_iFlatThTable로부터의 값으로 설정된다. 비디오 품질을 유지하는 데 도움을 주기 위해, 새로운 적응적 문턱값과 마지막 적응적 문턱값 간의 최대 차이의 상한은 장면 변경 키 화상(scene change key picture)을 제외한 모든 화상에 대해 +/- 4이다. 평탄한 영역의 적응적 문턱값은 텍스처 블록을 식별하는 데 사용되는 문턱값을 초과해서는 안된다. 예를 들어, 도 20에서, 가장 높은 적응적 문턱값은 30이다.
다른 대안으로서, 인코더는 어떤 다른 방식으로(예를 들어, 다른 텍스처 강도 또는 에너지 메트릭으로, 슬라이딩 윈도우 없이, 다르게 구성된 슬라이딩 윈도 우로, 테이블 또는 기타 데이터 구조 내의 다른 문턱값으로, 적응적 문턱값 간의 차이에 상한을 두지 않고, 어떤 다른 방식으로 적응적 문턱값 간의 차이에 상한을 두는 것으로, 기타 등등으로) 텍스처 레벨 문턱값을 조정한다.
D. I-화상 및 P-화상 차분 양자화
기술된 차분 양자화 기법들 및 도구들은 인트라 화상 및 예측된 화상에 대해 개별적으로 또는 결합하여 사용될 수 있다. 용어 'I-화상 차분 양자화(I-화상 DQ)'는 I-화상에 차분 양자화를 적용하는 것을 말하고, 용어 'P-화상 차분 양자화(P-화상 DQ)'는 P-화상에 차분 양자화를 적용하는 것을 말한다. I-화상 DQ를 사용하면 고품질의 I-화상이 얻어지고, 이들 I-화상에 의존하는 예측된 화상에 대해 품질 향상이 오래 유지될 수 있다. P-화상 DQ는 인트라 및 인터 블록 둘다에서 P-화상 품질을 더욱 향상시킬 수 있지만, 이 P-화상의 품질도 P-화상을 예측하는 데 사용된 화상의 품질에 의존한다. 이와 유사하게, P-화상 DQ의 나중에 예측된 화상에 대한 영향은 나중에 예측된 화상과 이 화상을 예측하는 데 사용된 화상 간의 유사성에 의존한다.
E. 차분 양자화 간격
I-화상 DQ 및 P-화상 DQ 둘다는 본 명세서에 기술된 기법들 중 하나 이상을 사용하여 서로 다른 텍스처-레벨 블록들에 대해 서로 다른 QP를 적용할지 여부를 결정한다. 품질과 비트 사용 간에 균형을 이루기 위해, P-화상 DQ에 소비되는 비트의 양을 제어하는 데 P-화상 DQ 간격이 사용될 수 있다. 예를 들어, 인코더는 매 n개의 P-화상(단, n≥1임) 중의 하나에 대해 P-화상 DQ를 사용하기로 하지만, 차동 양자화된 P-화상 간의 구간에 있는 화상들에 대해서는 P-화상 DQ를 하지 않고 넘어간다. 인코더는 어떤 P-화상의 지각적 품질을 향상시키기 위해 차동 양자화에 비트를 소비하고, 이들 품질 개선이 다른 예측된 화상들에까지 영향을 미친다. 동시에, DQ 간격은 인코더가 예측된 화상의 차동 양자화에 소비하는 비트의 전체 수를 제약하는 데 도움을 준다.
다른 대안으로서, 인코더는 또하나의 간격을 선택한다. 예를 들어, 인코더는 I-화상마다 단지 하나의 P-화상에 대해 P-화상 DQ를 사용하기로 할 수 있거나 어떤 다른 간격을 선택할 수 있다. 이 간격은 고정되어 있거나 적응적일 수 있다. 예를 들어, 인코더는 인코딩되고 있는 컨텐츠의 유형에 기초하여 P-화상 DQ 간격을 적응적으로 조정할 수 있다.
V. 경사 기울기 검출
비디오 압축에 유입되는 다양한 시각적 아티팩트 중에서, 컨투어링은 양자화에 의해 야기될 수 있는 한 특별한 아티팩트이다. 컨투어링 아티팩트는, 그렇지 않았으면 연속적이고 아주 평탄한 영역(하늘, 바다, 기타 등)에서, 사람의 눈에 의해 구조화된 경사 불연속(structured, gradient discontinuity)으로서 지각된다. 이러한 불연속은 아주 산란스러울 수 있으며, 그 화상의 다른 부분들이 시각적 왜곡이 거의 없이 코딩되어 있음에도, 사람 관찰자로 하여금 전체 화상이 심하게 왜곡된 것으로 결론을 내리게 할 수도 있다.
경사 기울기 영역은 컨투어링 아티팩트를 야기할 수 있다. 한 정의에 따르면, 어떤 영역이 평탄하거나 비교적 평탄하지만 그 영역 내에서 픽셀값들이 점진적 으로 변하는 경우 그 영역은 경사 기울기 영역(gradient slope region)으로 간주된다. 따라서, 경사 기울기 영역 및 편평한 영역 둘다가 평탄한 영역으로 간주되지만, 경사 기울기 영역은 편평한 영역과는 다르다. 한 정의에 따르면, 편평한 영역은 이 편평한 영역 전체에 걸쳐 픽셀값이 일정하거나 또는 비교적 일정한 것을 특징으로 한다. 경사 기울기 영역은 통상적으로 강한 엣지(strong edge) 및 광범위한 텍스처 상세를 갖지 않는다.
도 21은 경사 기울기 영역의 2개의 일례를 나타낸 것이다. 각각의 영역에서의 경사 기울기 방향은 화살표로 표현되어 있다. 경사 기울기 영역(2100)에서, 휘도값이 영역의 상부에서 하부로 점진적으로 증가한다. 경사 기울기 영역(2100)에서 기울기의 방향은 그 영역의 각 부분에서 동일하다. 경사 기울기 영역(2110)에서는, 휘도값이 그 영역의 중앙에서 가장자리로 점차적으로 증가한다. 경사 기울기의 방향은 경사 기울기 영역(2110) 내에서 변한다. 그렇지만, 중앙 지점을 포함하는 이웃을 제외하고는, 작은 이웃 내에서, 각각의 지점에서의 경사 기울기 방향이 그 이웃 내의 다른 지점들에서의 경사 기울기 방향으로부터 작은 각도 θ 내에 있다. 도 21에 도시된 바와 같이, 경사 기울기 영역은 경사 기울기 방향이 그 영역 전체에 걸쳐 일정한 영역들 및 경사 기울기 방향이 이웃 내에서 작은 변동을 갖는 영역들을 포함한다.
도 22a는 경사 기울기 영역(2210), 텍스처 영역(2220), 예리한-엣지 영역(2230) 및 편평한 영역(2240)을 갖는 예시적인 화상(2200)을 나타낸 도면이다. 도 22b는 경사 기울기 영역(2210)에서의 양자화 결과를 나타낸 도면이다. [예를 들어, 매크로블록(2250) 내에서] 이제 눈에 보이는 밴딩 효과(banding effect)가 컨투어 아티팩트(contour artifact)이다. 도 22c는 매크로블록(2250)의 상세를 나타낸 것이다. 매크로블록(2250)에서의 휘도 샘플의 상부 절반에 대한 변환 계수의 양자화의 결과, 68의 DC 값으로부터 균일한 값들이 얻어진다. 매크로블록(2250)에서의 휘도 샘플의 하부 절반에 대한 변환 계수의 양자화의 결과, 70의 DC 값으로부터 균일한 값들이 얻어진다. 따라서, 휘도 샘플에 대한 변환 계수의 양자화는 매크로블록(2250) 내의 상반부의 8x8 블록들과 하반부의 8x8 블록들 사이에 눈에 보이는 컨투어 아티팩트를 생성하였다.
많은 기존의 비디오 인코더는 화상에서의 컨투어링 아티팩트를 감소시키기 위해 전체 비디오 화상에 적용되는 기법들을 사용한다. 이러한 기법에서는 비트의 과다 소비가 있을 수 있으며, 컨투어링 아티팩트를 거의 또는 전혀 포함하지 않는 영역들에서는 특히 그렇다. 그에 따라, 몇가지 기술된 기법들 및 도구들은 컨투어링 아티팩트가 일어날 가능성이 있는 경사 기울기 영역을 인코더가 검출할 수 있게 해준다. 경사 기울기 영역이 검출될 때, 인코더는 경사 기울기 영역에 컨투어링 아티팩트가 유입되는 것(예를 들어, QP의 조정)을 감소시키거나 회피하는 코딩 결정을 할 수 있다. 그렇게 함으로써, 인코더는 비트를 더 효과적으로 할당할 수 있고 더 나은 시각적 품질을 달성할 수 있다.
경사 기울기 영역을 검출하기 위해, 인코더는 이하의 기법들 중 하나 이상을 구현할 수 있다.
1. 코딩 결정이 검출된 영역(들)에서의 컨투어링 아티팩트의 유입의 감소 또 는 제거에 중점을 두고 있는 경사 기울기 영역 검출.
2. 필름 그레인 등의 변칙의 존재에도 불구하고 계산 비용을 감소시키고 및/또는 정확한 경사 기울기 영역 검출을 가능하게 해주는 영역-기반 경사 추정 및 다운샘플링.
3. 국소 이웃에서의 경사 기울기 변화를 검출하는 경사 일관성 검사.
4. 화상에 경사 기울기 영역(들)이 존재하는지에 관한 이진 결정을 하는 버킷 투표.
5. 인코더가 적절한 코딩 결정을 하도록 돕기 위해 경사 기울기 마스크(예를 들어, 매크로블록 레벨에서) 및 경사 방향 맵의 생성
도 23은 일반화된 영역-기반 경사 기울기 검출 기법(2300)을 나타낸 것이다. 도 10의 인코더(1000) 등의 인코더 또는 다른 도구가 이 기법(2300)을 수행한다. 어떤 경우에, 영역-기반 경사 기울기 검출 기법(2300)은 화상에서의 각각의 픽셀에 대해 경사 기울기 방향을 찾을 필요가 없게 함으로써 경사 기울기 컨텐츠의 더 빠른 검출을 가능하게 해준다. 예를 들어, 화상이 동일한 크기의 비중첩 직사각형 영역들로 분할된다. 영역의 크기는 구현에 따라 다를 수 있다. 한 구현에서, 영역은 16x16 매크로블록(4개의 8x8 블록)이다. 양호하게는, 영역은 매크로블록 정렬(macroblock alignment)을 가능하게 해주는 크기를 갖는다.
단계(2310)에서, 인코더는 현재의 영역이 평탄한 영역인지를 검사한다. 예를 들어, 인코더는 8x8 블록의 할당된 블록 경사값이 30보다 작은 경우 그 블록이 평탄한 것으로 특성 분석되는 화상의 텍스처 맵을 사용하거나, 인코더는 섹션 III 또는 IV에서 기술된 다른 기법을 사용하여 현재의 영역이 평탄한지를 검사한다. 어떤 영역이 다수의 블록을 포함하는 경우, 그 영역은 그 영역 내에 포함된 모든 블록들이 평탄한 경우에(또는 다른 대안으로서, 어떤 최소수의 블록이 평탄한 경우에) 평탄한 영역으로 간주된다. 서로 다른 구현은 특정의 영역 또는 블록이 평탄한지를 판정하기 위해 서로 다른 기준을 사용할 수 있다. 예를 들어, 어떤 영역이 평탄한지를 판정하는 기준은 화상이 다운샘플링되는 경우 달라질 수 있다.
영역이 평탄하지 않은 경우, 그 다음 영역이 처리된다(단계 2320). 평탄한 영역에 대해, 단계(2330)에서 인코더는 경사 방향을 찾는다. 예를 들어, 인코더는 도 26 및 도 27을 참조하여 기술한 기법과 같은 기법을 사용하여 경사 방향을 찾는다. 다른 대안으로서, 인코더는 어떤 다른 기법으로 경사 방향을 찾는다.
단계(2340)에서, 인코더는 영역에 대한 경사 방향을 찾는 데 사용된 기법 및 메트릭에 의존하는 문턱값 및/또는 의사 결정 논리를 사용하여 영역에 대한 경사 기울기 결정을 한다. 처리할 영역이 더 있는 경우, 인코더는 그 다음 영역을 처리한다(단계 2320). 한 구현에서, 화상 내의 서로 다른 영역에 대한 최초의 경사 방향을 계산한 후에, 인코더는 화상에 슬라이딩 윈도우를 적용함으로써 다른 영역들에 경사 기울기가 존재하는지를 나타내는 이진 마스크(binary mask)를 생성한다. 이진 마스크 내의 정보에 의해 인코더는 정확한 경사 기울기 결정을 할 수 있게 된다.
도 24는 도 10에 도시한 것과 같은 비디오 인코더 내의 예시적인 경사 기울기 영역 검출기(GSR 검출기)(2400)의 블록도이다. GSR 검출기(2400)는 현재의 화 상(2405)으로부터의 픽셀 데이터를 입력으로 받는다.
화상 크기 및 있을지도 모를 다른 인자들에 따라, GSR 검출기(2400)는 다운샘플링 모듈(2410)에서 다운샘플링을 수행할지 여부를 결정한다. 예시적인 다운샘플링 기법들에 대해 이하에서 설명한다.
경사 계산기(gradient calculator)(2420)는 (아마도 다운샘플링되어 있는) 픽셀 데이터 및 텍스처 맵(2425)을 입력으로 받아서 평탄한 영역에 대한 경사를 계산한다. 예를 들어, 경사 계산기는 도 26 및 도 27을 참조하여 기술한 것과 같은 기법을 사용하거나 어떤 다른 기법을 사용한다. 경사 계산에서의 예시적인 영역 크기는 16x16이지만, 영역의 크기는 구현에 따라 다를 수 있다. 다운샘플링이 적용되어 있는지 여부 및 얼마나 적용되어 있는지에 따라, 경사가 계산되는 영역은 원래의 화상(2405)에서의 서로 다른 크기의 영역을 나타낼 수 있다. 경사 계산기(2420)는 평탄한 영역에 대한 경사 방향을 나타내는 맵 또는 다른 데이터 구조를 출력한다.
일관성 검사기(2430)는 평탄한 영역에 대한 계산된 경사를 받아서, 예를 들어, 이하에 기술하는 바와 같이, 그 경사의 각도 일관성(angular consistency)을 검사한다. 일관성 검사기(2430)는 계산된 경사에 대한 일관성 정보를 나타내는 일관성 맵 또는 다른 데이터 구조를 생성한다.
결정 모듈(2440)은 (일관성 검사 후에) 부가의 결정 규칙을 사용하여 평탄한 영역이 경사 기울기 영역으로 간주되어야 하는지 여부를 결정한다. 예시적인 결정 규칙 및 기준에 대해 이하에서 기술한다. 결정 모듈(2440)은 일관성 정보를 나타 내는 일관성 맵 또는 다른 데이터 구조를 고려하고, 또한 계산된 경사 방향 또는 기타 정보도 고려할 수 있다. 결정 모듈(2440)은 경사 계산에서 사용된 영역 크기와 동일한 또는 다른 크기의 영역들에 대한 결정 정보를 맵 또는 다른 데이터 구조로 출력한다.
각각의 영역에 대한 결정이 마스크 발생기(2450)에 제공되며, 이 마스크 발생기(2450)는 화상 내의 영역들에 대한 경사 기울기 결정을 나타내는 경사 기울기 마스크 및/또는 이진 경사 기울기 결정 마스크(2495)를 생성한다. 예를 들어, 마스크(2495)는 각각의 경사 기울기 영역에 대한 비트 "1" 및 다른 영역들에 대한 비트 "0"을 포함한다. 마스크 발생기(2450)는, 계산된 경사를 입력으로 받아서, 다운샘플링 및 마스크 결정을 참작하여, 원래의 화상의 서로 다른 영역에 대한 최종적인 경사 기울기를 나타내는 또하나의 마스크(2495)를 생성할 수 있다. GSR 검출기(2400)가 경사 계산 이전에 다운샘플링을 수행하는 경우, 마스크 발생기(2450)는 다운샘플링된 영역에 대한 경사 기울기를 원래의 화상의 대응하는 영역에 할당할 수 있다.
GSR 검출기(2400)의 컴포넌트들이 도 24에서 개별적인 모듈들로 도시되어 있지만, 이들 컴포넌트의 기능들은 구현에 따라 재배열되거나, 결합되거나 또는 서로 다른 모듈들로 분할될 수 있다. 게다가, 경사 기울기 검출기(2400)의 컴포넌트들이 다른 구현에서는 생략될 수 있다. 예를 들어, 다운샘플링이 필요하지 않다. GSR 검출기가 텍스처 맵을 입력으로 받을 필요가 없고, 그 대신에 어떤 다른 소스로부터 영역이 평탄한지 여부의 표시를 받을 수 있다. GSR 검출기가 일관성 검사 기를 사용할 필요가 없다. GSR 검출기가 영역이 경사 기울기 영역인지에 관한 어떤 종류의 결정을 하고 있지만, (결정 모듈 내의 결정 규칙을 비롯하여) 결정이 어떻게 행해지는지의 상세는 구현에 따라 다를 수 있다. 경사 기울기 결정이 이진 마스크에 포함될 필요가 없고 어떤 다른 방식으로 인코더의 다른 부분들로 전달될 수 있다.
A. 다운샘플링이 있는 경우 영역-기반 경사 방향 추정
계산 비용을 감소시키기 위해 영역에 대한 경사 방향을 찾기 이전에 다운샘플링이 사용될 수 있다. 한 구현에서, 원래의 화상폭이 1280보다 크고 높이가 720보다 큰 경우, 이 원래의 화상은 4 대 1 다운샘플링된다. 예를 들어, 화상폭이 1920 픽셀이고 화상 높이가 1080 픽셀인 1080p 구성에서, 디코더는 폭이 480 픽셀이고 높이가 270 픽셀인 다운샘플링된 화상을 생성한다.
일반적으로, 다운샘플링된 화상은 동일한 크기의 비중첩 직사각형 영역들로 분할된다. 예를 들어, 다운샘플링 후에, 각각의 16x16 영역은 원래의 전체 해상도 화상의 4개의 매크로블록(16개 블록)에 대응한다. 다운샘플링된 화상에서의 영역은, 이 영역에 대응하는 적어도 12개의 블록이 평탄한 경우, 평탄한 영역으로 간주된다. 영역 크기는 구현에 따라 다르며, 경사 추정에서의 영역과 원래의 화상에서의 영역 간의 관계는 다운샘플링 비율에 따라 다르다.
다운샘플링은 또한 필름 그레인 등의 변칙의 존재에도 불구하고 경사 기울기 영역 검출의 정확성을 향상시키는 데 유용하다. 예를 들어, 도 25에 도시한 바와 같이 DC 값의 블록들을 갖는 화상(2500)의 일부분을 생각해보자. 화상 일부 분(2500)의 대부분은, 화상 일부분의 상부에서 하부로 DC값을 점진적으로 증가시키는 것으로 나타내어져 있는 바와 같이, 일정한 경사 기울기 방향을 갖는다. 그렇지만, 백색 샘플값들은 전체 해상도에서 변칙적인 경사 기울기 방향을 야기하는 필름 그레인에 의해 영향을 받는 DC값을 나타낸다. 간단한 수평 및 수직 방향의 2 대 1 다운샘플링의 경우, 어두운 경계를 갖는 샘플값들이 경사 기울기 방향을 계산하는 데 사용된다. 다운샘플링된 값들이 일정한 경사 기울기를 유지하기 때문에, 필름 그레인은 경사 기울기의 검출에 영향을 주지 않는다.
다운샘플링은 다른 화상 해상도에 사용될 수 있고, 다른 다운샘플링 비율도 사용될 수 있다.
B. 경사 기울기 방향의 계산
한 구현에서, 평탄한 영역에 대한 경사 기울기 방향을 계산하기 위해, 2개의 16x16 컴퍼스 연산자(compass operator) KH 및 KY(도 26에서 정의됨)가 영역에 적용된다. 이것은 영역에 대한 2개의 경사 gx, gy를 생성하며, 하나는 수평 방향에 대한 것이고, 다른 하나는 수직 방향에 대한 것이다. 16x16 영역의 경우, 컴퍼스 연산자는 영역의 어떤 값들에 플러스 가중치를 제공하고 영역의 다른 값들에 마이너스 가중치를 제공한다. 다른 대안으로서, 컴퍼스 연산자는 어떤 다른 방식으로 경사를 계산한다.
경사 방향의 각도 표현(θ로 나타냄)은 이 2개의 경사로부터 도출되고 [0, 255] 내의 정수에 매핑된다. 도 27의 의사-코드(2700)는 도 26의 컴퍼스 연산자를 사용하여 영역에 대한 경사 방향을 계산하는 예시적인 루틴을 나타낸 것이다(
Figure 112008069385609-pct00014
은 원소끼리의 곱을 나타냄). 영역이 텍스처 영역 또는 가장자리 영역인 경우, 이 루틴은 -2를 반환한다. 영역이 평탄하지만 편평한 경우(영역에 대한 경사 gx 및 gy의 낮은 절대값으로 표시됨), 이 루틴은 -1을 반환한다. 그렇지 않은 경우, 이 루틴은, 동일한 아크탄젠트값에 대한 경사 방향(예를 들어, 플러스 아크탄젠트값이 우측 상방 경사인지 좌측 하방 경사인지)을 구분하기 위해 오프셋을 사용하여, '수직 경사 gy/수평 경사 gx'의 아크탄젠트로서 경사 기울기를 계산하고, 기울기값의 범위를 플러스 숫자로 표현한다.
다른 대안으로서, 경사 방향은 어떤 다른 방식으로 계산된다. 예를 들어, 인코더는 다른 컴퍼스 연산자, 기울기 영역에 대한 다른 문턱값, 기울기를 계산하는 다른 논리, 및/또는 기울기 정보에 대한 다른 표현을 사용한다.
C. 이웃 경사 일관성 검사
인코더는 영역이 경사 기울기 영역으로 간주되어야 하는지에 관한 정확한 결정을 하는 데 도움을 주기 위해 영역들에 대해 경사 일관성 검사(gradient consistency check)를 수행할 수 있다. 경사 일관성 검사는 경사 기울기 컨텐츠 검출에서 "잘못된 경보"를 피하는 데 도움을 준다. 한 구현에서, 경사 기울기 일관성 검사는 경사 기울기 일관성을 결정하기 위해 3x3 슬라이딩 윈도우(3개의 영역 x 3개의 영역)를 사용하는 것을 수반한다.
도 28은 경사 기울기 영역에 대한 일관성 검사를 수행하는 기법을 나타낸 것이다. 도 10의 인코더(1000)와 같은 인코더 또는 다른 도구가 이 기법(2800)을 수 행한다.
단계(2810)에서, 인코더는 화상에서 현재의 영역에 슬라이딩 윈도우를 위치시킨다. 단계(2820)에서, 인코더는 슬라이딩 윈도우 내의 영역들의 경사 방향을 검사한다. 이어서, 단계(2830)에서, 인코더는 현재의 영역에 대한 일관성 결정을 한다. 예를 들어, (다운샘플링되어 있을 수 있는) 화상에서의 검출된 평탄한 영역의 경사 방향이 주어진 경우, 3x3 이웃 영역들을 포함하는 슬라이딩 윈도우로 경사 일관성 검사가 수행된다. 이 윈도우는 래스터 스캔 순서로 이동되어, 이 윈도우를 화상의 한 영역 상에 위치시킨다(예를 들어, 윈도우를 영역의 중앙에 오게 하고, 일관성 검사를 수행한 다음에, 이 윈도우를 화상에서 좌측에서 우측으로 이동시킨다). 주어진 윈도우값에 대해, 일관성 검사는 윈도우 내의 9개 영역 모두의 최대 및 최소 gradientDirection(예를 들어, 도 27 참조) 간의 차이가 32(기울기가 0 내지 255의 숫자로 표현될 대 45도에 대응함)보다 작을 것을 요구한다. 이 조건이 만족되는 경우, 3x3 세트의 영역에 대한 이동 윈도우값(moving window value)이 1이고, 그렇지 않은 경우, 0이다. 다른 대안으로서, 인코더는 경사 방향의 일관성을 검사하는 데 다른 메카니즘을 사용한다, 예를 들어, 다른 크기의 슬라이딩 윈도우, 최대 기울기 - 최소 기울기에 대한 다른 기울기 범위 문턱값, 기울기 일관성에 대한 변동 등의 다른 척도, 및/또는 다른 검사 패턴을 사용하거나, 영역 세트가 아니라 각각의 영역에 대한 슬라이딩 윈도우값을 계산한다. 일관성 검사는 다른 표현의 기울기 정보에 대해 다르다.
인코더는 이어서 그 다음 영역 세트를 처리할 수 있다(단계 2840). 인코더 는 출력으로서 결정 정보를 나타내는 마스크 또는 다른 데이터 구조를 생성한다. 예를 들어, 인코더는 슬라이딩 윈도우를 위치시키고 화상 내의 영역 세트들에 대해 일관성 검사를 수행하며 각각의 영역 세트에 대해 1(일정한 기울기) 또는 0의 결정을 할당함으로써 획득되는 이진 일관성 마스크(본 명세서에서 consistencyMask라고 함)를 생성한다.
선택적으로, 인코더는 결정 정보에 대해 추가의 처리를 수행한다. 어떤 구현에서, 인코더는 화상에 대한 경사 일관성 결정을 세분하는 데 도움을 주기 위해 일관성 마스크에 대해 모폴로지 연산(morphological operation)을 수행한다. 2가지 가능한 모폴로지 연산은 ErodeDilate이다.
예를 들어, Erode 연산은 consistencyMask 내의 모든 비트에 대해 수행되고, 이어서 Dilate 연산이 수행된다. Erode 연산에서, 처음에 1로 표시된 비트는, 4개의 가장 가까운 픽셀(여기서, consistencyMask 내의 값) 중에서 2개 이상이 처음에 0으로 표시되어 있는 경우, 0으로 표시된다. Dilate 연산에서, 처음에 0으로 표시된 비트는, 4개의 가장 가까운 픽셀 중에서 2개 이상이 처음에 1로 표시되어 있는 경우, 1로 표시된다.
다른 대안으로서, 인코더는 모폴로지 연산 또는 결정 정보의 다른 후처리를 사용하지 않고 마스크를 생성한다.
D. 결정 규칙 및 버킷 투표
일관성 검사를 수행한 후에도, 평탄한 영역을 특별히 인코딩하는 것이 비효율적일 정도로 평탄한 영역의 영향 범위(incidence)가 낮거나 평탄한 영역이 격리 되어 있을 수 있다. 예를 들어, 모폴로지 연산을 적용한 후에도, 여전히 consistencyMask에 표현된 경사 기울기 영역이 차분 양자화를 필요로 하지 않을 정도로 격리되어 있을 수 있다. 어떤 구현에서, 인코더는 화상 내의 경사 기울기 영역에 DQ가 적용되어야 하는지를 결정하는 데 도움을 주기 위해 결정 규칙(예를 들어, 버킷 투표를 포함함)을 사용한다. 도 24의 GSR 검출기(2400)에서, 결정 모듈(2440)은 이러한 결정을 한다.
한 구현에서, 인코더는 consistencyMask에 기초하여 현재의 화상이 상당한 경사 기울기를 포함하고 있는지에 관해 하나 이상의 이진 결정을 한다. 마스크 consistencyMask는 동일한 크기의 25개 직사각형 영역(버킷이라고 함)(각각의 행에 5개의 버킷 및 각각의 열에 5개의 버킷을 가짐)으로 분할된다. ("버킷" 영역은 따라서 결정에 사용된 영역들 및 경사 계산에 사용된 영역들보다 크다.) 각각의 버킷 내의 1이 카운트된다. Buckets[i][j]이 위치 (i,j)(단, 0≤i, j≤4임)에 있는 버킷에 포함된 1의 수라고 하자. 수평 및 수직 버킷 투영(horizontal and vertical bucket projection) - 각각 버킷의 각각의 열에 있는 1의 수 및 버킷의 각각의 행에 있는 1의 수 - 은 또한 이하의 관계식에 따라 계산된다.
Figure 112008069385609-pct00015
이 구현에서, 이하의 조건들 중 어느 하나라도 만족되는 경우, 화상은 상당 한 경사 기울기를 포함하는 것으로 간주된다.
1. (버킷 분포에 상관없이) consistencyMask 내의 픽셀의 적어도 6%가 1로서 표시되어 있음, OR
2. 버킷들 중 하나 이상에서, 픽셀들의 적어도 75%가 1로 표시되어 있음, OR
3. 버킷 투영들 중 하나 이상에서, 픽셀들의 적어도 20%가 1로 표시되어 있음.
예를 들어, 960x1440 크기의 다운샘플링된 화상에 대한 16x16 영역들이 20x30 크기의 마스크(다운샘플링된 화상의 3x3 영역 세트에 대한 각각의 값)로 표현되고, 이 마스크는 차례로 25개의 버킷으로 분할되어 있으며, 각각의 버킷은 일관성 마스크의 24개 영역에 대응한다. 각각의 버킷은 consistencyMask로부터의 24 비트를 포함하며, 총 25 x 24 = 600 비트가 된다. 인코더는 각각의 버킷 내의 1의 수를 카운트하며, 한 분포가 도 29에 도시되어 있다. 인코더는 1의 총수가 모든 비트의 6%보다 많은지를 검사한다. 이 경우에, 1의 총수(도 29 참조)는 83이고, 이는 모든 비트의 6%보다 많다. 따라서, 이 경우에 상기 조건 1을 만족시키기 때문에, 인코더는 버킷 투영을 하지 않고 지나간다. 1의 총수가 조건 1의 문턱값보다 낮은 경우, 인코더는 버킷 내의 비트들의 75%가 1인지를 판정하고(조건 2), 필요한 경우, 경사 기울기 영역인 것으로 표시된 영역이, 이하에 기술되는 매크로블록-레벨 경사 기울기 마스크 등의, 경사 기울기 마스크 및 결정 마스크를 생성해야만 하도록 되어 있는지를 판정하기 위해 수평 및 수직 버킷 투영을 검사한다(조건 3).
다른 대안으로서, 인코더가 마스크 consistencyMask 또는 다른 표현으로 되어 있는 일관성 정보를 처리하기 위해 다른 결정 규칙을 사용한다. 예를 들어, 조건 1, 2 및 3에서 말한 퍼센트 문턱값은 구현에 따라 다를 수 있다. 또는, 이들 조건 중 하나 이상이 생략되거나, 이들 조건이 순서 변경되거나 대체되거나 다른 조건(예를 들어, 버킷 투영에 대한 다른 방향, 기타)으로 보완된다. 일관성 정보를 검사하는 것 이외에, 인코더는 또한 화상 내의 경사 기울기 영역에 DQ를 적용해야 하는지 또는 얼마나 적용해야 하는지를 결정할 때 경사값 및/또는 기타 정보를 고려할 수 있다. 다른 대안으로서, 인코더는 이들 조건 규칙을 모두 생략하고, 경사 기울기 마스크를 발생할 때 단순히 consistencyMask만을 사용할 수 있다.
E. 매크로블록-레벨 경사 기울기 마스크 발생
나중의 인코더 의사 결정에 유용한 형태로 경사 기울기 정보를 제공하기 위해, 인코더는 이 정보를 맵, 마스크, 또는 기타 데이터 구조에 넣는다. 이 정보는 경사 기울기 영역 존재/부존재 정보는 물론 경사 기울기 영역에 대한 실제의 경사 방향값을 포함할 수 있다.
경사 기울기 존재/부존재 정보에 대해서는, 경사 기울기 영역이 검출되는 경우, 인코더가 경사 기울기 마스크를 생성한다. 예를 들어, 인코더는, 있을 수 있는 다운샘플링을 고려하여, 영역-레벨 마스크(consistencyMask 등)를 다시 원래의 화상에 대한 매크로블록-레벨로 변환함으로써 매크로블록-레벨 경사 기울기 마스크(본 명세서에서 MBSlopeMask라고 함)를 생성한다. 유의할 점은 consistencyMask 내의 각각의 값이 원래의 화상에서의 9개의 매크로블록에 대응하거나, 화상이 4 대 1 다운샘플링되어 있는 경우, 36개 매크로블록에 대응한다는 것이다. consistencyMask에서 값 1을 갖는 각각의 비트에 대해, 인코더는 평탄하지 않은 매크로블록을 제외한 대응하는 매크로블록을 MBSlopeMask에서 1로 표시한다. 다시 평탄성을 검사하는 것은 경사 기울기 검출에서의 잘못된 경보(false alarm)를 피하는 데 도움을 준다. 예를 들어, 한 구현에서, 인코더는 텍스처 맵을 사용하여 매크로블록 내의 블록들에 대한 텍스처 정보를 획득하고, 이 매크로블록 내의 4개의 블록 모두가 평탄한 경우에만 이 매크로블록이 평탄한 것으로 간주된다.
다른 대안으로서, 인코더는 경사 결정 정보를 어떤 다른 형태로 제공하고 및/또는 매크로블록 평탄성에 대해 어떤 다른 결정을 사용한다.
경사 검출 정보에 대해서는, 각각의 영역의 경사 방향을 평탄한 그 영역의 대응하는 매크로블록에 할당함으로써 경사 방향 맵이 발생된다. 그렇게 함에 있어서, 인코더는 원래의 화상의 매크로블록과 경사 계산 이전의 다운샘플링으로 인한 경사 영역 간의 있을 수 있는 크기 차이를 참작한다.
발생된 경사 기울기 마스크 및 경사 방향 맵은 이어서 인코더에서 더 나은 코딩 결정을 하기 위해 사용된다. 일반적으로 말하면, 경사 기울기 영역 검출기에 의해 발생된 결과는 인코더에서 다른 코딩 결정을 하기 위해 사용될 수 있다. 예를 들어, 인코더는 발생된 경사 기울기 마스크 및/또는 경사 방향 맵에 기초하여 양자화 결정을 할 수 있다. 가능한 인코더 결정들 중 몇몇에 대해 이하에서 기술한다.
VI. 영이 아닌 AC 계수를 보존하기 위한 양자화 조정
일반적으로, 화상은 인코더 내의 레이트 제어 유닛에 의해 화상-레벨 양자화 파라미터를 할당받는다. 동일한 화상-레벨 QP를 사용할 때, 텍스처가 많은 매크로블록을 표현하는 데 사용되는 비트량은 통상적으로 텍스처가 적은 매크로블록을 표현하는 데 사용되는 비트량보다 훨씬 더 많다(10 내지 50배 더 많다). 그렇지만, 사람의 시각 시스템이 평탄하고 텍스처가 적은 영역에서보다 번잡하고 텍스처가 많은 영역에서 왜곡에 덜 민감하기 때문에, 텍스처가 적은 매크로블록에 작은 QP를 사용하고 텍스처가 많은 매크로블록에 큰 QP를 사용하는 것이 타당하다.
이것으로 인해 종종 사용되는 전략은 사람의 시각적 중요성에 따라 매크로블록을 분류하고(보통 블록의 변동 또는 블록 내에서의 경사의 강도를 사용하고) 어떤 지각적 가중에 비례하는 목표 비트 수를 할당하는 것이다. 수정될 각각의 매크로블록에 대한 양자화 파라미터는 가중에 따라 화상 레벨 양자화기를 수정함으로써 선택된다.
실험이 보여주듯이, 아주 낮은 변동의 평탄한 영역에서, 블록은 적당히 낮은 QP에서도 (영이 아닌 AC 계수가 남아 있지 않은 경우) DC 계수에서만 에너지를 갖도록 양자화되는 경우가 있다. 놀랍게도, 극히 평탄한 영역에서 인접한 블록들 내의 DC 값들이 블록 간에 단지 1 만큼만 변하는 경우, 지각된 일정치 않은 컨투어링 아티팩트는 절대항에서의 차이가 이와 같이 작은 경우에 예상보다 훨씬 더 심각하다. 그렇지 않은 경우 잘 코딩되는 화상 내의 비교적 작은 영역에서 이러한 유형의 아티팩트가 일어나는 것은 화상 전체에 대한 전체적인 지각된 품질을 떨어뜨릴 수 있다.
종래의 레이트-왜곡 기반 및 지각 기반 매크로블록 QP 선택 기법은 이러한 상황을 잘 처리하지 못한다. 레이트-왜곡 최적화의 경우, 절대항에서의 작은 왜곡으로 인해 평탄한 블록들이 잘 코딩된 것으로 간주되고, 따라서 이들 블록에 대해 추가의 비트가 소비되지 않는다. 반면에, 통상적인 지각-기반 방법은 매크로블록을 지각적 부류(perceptual class)로 분류하고 매크로블록의 지각적 부류에 따라 화상-레벨 양자화 파라미터에 미리 정의된 오프셋을 가산 또는 감산함으로써 양자화 파라미터를 각각의 매크로블록에 할당한다. 미리 정의된 오프셋이 너무 공격적(예를 들어, 평탄한 영역에 대한 QP를 1로 감소시킴)이지 않다면, 이러한 방법은 작은 변동을 갖는 평탄한 블록이 하나의 영이 아닌 DC 계수로 양자화되지 않고 모든 AC 계수가 0으로 양자화되도록 보장해주지 못한다. 그렇지만, 아주 공격적인 오프셋을 설정하면 매크로블록에 소비되는 비트(매크로블록은 지각적 품질을 개선시키는 데 이 비트들을 필요로 하지 않을 수 있음)를 증가시켜, 비트 레이트를 비효율적으로 상승시키고 레이트 제어를 위해 인코더에 의해 선택된 화상-레벨 양자화 파라미터와 충돌할 수 있다.
그에 따라, 이하에서 기술되는 몇가지 기법들 및 도구들은 블록킹 또는 컨투어 아티팩트의 유입을 감소 또는 제거하기 위해 평탄한 영역에 충분한 비트가 할당되도록 선택적으로 또한 주의깊게 화상 내의 비트들을 할당한다.
예를 들어, 인코더는 QP를 계산하고 평탄한 블록에 충분한 비트를 할당하도록 I-화상 내에서 각각의 매크로블록에 대한 양자화 파라미터를 선택함으로써 I-화상에서의 지각된 블록킹 아티팩트를 감소시킨다. 하나 이상의 평탄한 블록을 갖는 각각의 매크로블록에 대해, QP는 매크로블록의 블록마다 적어도 N개(단, N은 1보다 크거나 같은 정수임)의 영이 아닌 양자화된 AC 계수가 있도록 선택된다. 종종, 보존된 AC 계수는 변환의 최저 주파수 AC 기저 함수(basis function)에 대한 계수로서, 블록에 걸쳐 수평 및/또는 수직 방향으로 점진적인 값 변화의 특성을 나타낸다. 이것은 각각의 블록에 대한, 특히 낮은 변동을 갖는 평탄한 영역에 대한 시각적 품질을 지각하는 데 도움을 주는 경향이 있다. 한 구현에서, 인코더는 여전히 원하는 바에 따라 AC 계수를 보존하고 있는, 화상 QP를 초과하지 않는 가장 큰 QP를 선택한다. 영이 아닌 AC 계수가 보존되지 않는 상황(예를 들어, 아주 편평한 블록)이 있을 수 있다. 그렇지만, 일반적으로, 이와 같이, 인코더는 작은 QP에서는 비트를 소비하는 데 과도하게 공격적이지 않으며, 화상 QP와의 충돌을 감소 또는 회피한다.
N의 타당한 값에서, 선택된 QP는 대부분의 매크로블록에 대해 변하지 않고 대부분의 매크로블록에 대해 화상 QP와 동일하며, 단지 몇개의 평탄한 블록만이 영향을 받는다. N의 적당한 값은 1, 2, 3 또는 4이다. 선택된 QP는 적은 텍스처를 갖는 매크로블록에 대해 변할 가능성이 더 많다. 한 구현에서, N=1 또는 2는 화상의 비트 레이트를 그다지 증가시키지 않고 지각된 품질을 향상시킨다.
도 30은 하나 이상의 영이 아닌 AC 계수를 보존하는 데 도움을 주도록 매크로블록 QP를 선택하는 예시적인 기법(3000)을 나타낸 것이다. 도 10의 인코더(1000) 등의 인코더 또는 다른 도구가 기법(3000)을 수행한다.
단계(3010)에서, 인코더는 매크로블록의 각각의 휘도 블록의 N번째로 가장 큰 AC 계수를 찾는다. 예를 들어, N = 2인 경우, 인코더는 16x16 매크로블록의 4개의 8x8 블록 각각의 두번째로 큰 AC 계수를 찾는다. AC(0), AC(1), AC(2), 및 AC(3)을 각각 4개의 휘도 블록 0, 1, 2, 및 3에 대한 N번째로 가장 큰 계수라고 하자. 매크로블록 내의 다른 블록 구성에서, N번째 계수는 매크로블록 내의 더 많은 또는 더 적은 블록들로부터 온 것일 수 있다.
단계(3020)에서, 인코더는 이들 N번째 계수값들의 최소값을 찾는다. 4개의 블록의 N번째 계수에 대해, ACmin = min (AC(O), AC(1), AC(2), AC(3))이다. 다른 수의 블록에 대해서, ACmin은 다르게 계산된다.
단계(3030)에서, 인코더는 매크로블록에 대한 QP를, ACmin이 그 QP에 대한 데드존 문턱값 밖에 있도록 설정한다. 데드존 문턱값은, QP의 값이 양자화를 위해 사용될 때, AC 계수를 0으로 양자화하기 위한 "차단" 문턱값("cut-off" threshold)이다. 데드존 문턱값은 보통 주어진 QP에 대해 미리 정해져 있고 또 그에 비례한다. 데드존 문턱값은 0과 제1 재구성 지점 사이의 어떤 지점에서 선택된다. 인코더가 균일 양자화기 또는 비균일 양자화기 중 어느 하나를 사용할 때, 제1 재구성 지점은 QP 값 및 균일 양자화가 사용되는지 비균일 양자화가 사용되는지에 의존한다. 한 구현에서, 제1 재구성 지점은 양자화된 계수 레벨 = 1의 재구성된 값으로서, 균일 양자화의 경우, 2*QP이고, 비균일 양자화의 경우, 3*QP이다. 균일 양자화의 경우, 차단 문턱값은 따라서 0과 2*QP 사이에 있다. 비균일 양자화의 경우, 차단 문턱값은 따라서 0과 3*QP 사이에 있다. 예를 들어, 데드존 문턱값 Z(QP)는 균일 양자화의 경우 Z(QP) = 6*QP/5로서 선택되고, 비균일 양자화의 경우 Z(QP) = 2*QP로서 선택된다. 다른 대안으로서, 다른 차단 문턱값이 사용될 수 있다.
AC 계수 AC는, Abs(AC) < Z(QP)인 경우, 0으로 양자화된다. 매크로블록에 대한 QP를 설정(3030)하기 위해, 인코더는, 화상 QP에서 시작하여 양자화기에 대한 최소 QP에 도달(예를 들어, QP = 1)하거나 부등식 Abs(ACmin) >= Z(QP)이 만족될 때까지 QP를 감소시키면서, ACmin을 QP의 후보값들에 대한 Z(QP)와 비교함으로써 적어도 N개의 AC 계수를 보존하는 매크로블록에 대한 QP(QPm)를 찾을 수 있다. 부등식 Abs(ACmin) >= Z(QP)이 만족되는 경우, 인코더는 매크로블록에 대한 문턱값 QP를 부등식을 만족시키는 첫번째 QP(즉, 최고 자격의 QP)로 설정한다. 다른 대안으로서, 인코더는, 예를 들어, 최저 QP에서 시작하거나 QP 값의 이진 검색을 사용하여, 다른 논리를 사용하여 매크로블록에 대한 QP를 계산한다.
매크로블록 내의 모든 블록을 양자화하기 위해 QPm을 사용하는 프로세스는 비제약 비트 레이트 양자화(unconstrained bit rate quantization)라고 할 수 있다. 제약 비트 레이트 양자화(constrained bit rate quantization) 기법에서, 인코더는 상기한 바와 같이 매크로블록의 휘도 블록 각각에 대해 개별적으로(예를 들어, 블록 0, 1, 2 및 3에 대해 각각 QP0, QP1, QP2, 및 QP3) 원하는 수의 영이 아닌 AC 계수를 생성하는 데 필요한 최대 QP(화상 QP보다 크지 않음)를 결정한다. 당연히 QPm이 QP0, QP1, QP2, 및 QP3의 최소값이다. 비트 사용을 감소시키기 위해, 인코 더는 QPm 대신에 블록 i(단, i = 0, 1, 2, 3, 기타)를 양자화하는 데 QPi를 사용할 수 있다. 매크로블록 전체에 대해 하나의 QP를 규정하는 인코더에서, 이 인코더는, QPm을 사용하여 블록을 양자화할 때 각각의 블록 i에 대해 QPi를 사용하여 양자화되는 경우, 그 대신에 영이 아닌 그 AC 계수들만을 유지하여, 주어진 블록 내의 다른 AC 계수들이 QPm에 의한 양자화로 보존되더라도 그 블록에서 상위 N개의 영이 아닌 AC 계수만을 보존할 수 있다. 도 30에 나타낸 양자화 프로세스의 경우, 각각의 휘도 블록에 대한 양자화 프로세스는 2-패스 프로세스(two-pass process)로서 수행될 수 있다. 첫번째 패스에서, 인코더는 DCT 계수가 Z(QPi)보다 작은 경우 그 계수의 "문턱값"을 0으로 하고, 그렇지 않은 경우, 동일한 DCT 계수를 유지한다. 이어서, "문턱값이 적용되는(thresholded)" DCT 계수가 QPm을 사용하여 동일한 방식으로 양자화된다.
다른 대안으로서, 인코더는 어떤 다른 방식으로 영이 아닌 AC 계수를 보존한다. 예를 들어, 인코더는 매크로블록마다가 아닌 다른 기준으로(예를 들어, 블록마다) QP를 선택할 수 있다. 인코더는 I-화상, P-화상 또는 B-화상, 또는 이들의 조합에 대한 AC 계수를 보존할 수 있다.
최소의 가능한 QP에서 영이 아닌 양자화된 계수들의 수가 N보다 작은 경우, N이 그에 따라 조정될 수 있다.
VII. DC 천이에 대한 차분 양자화
통상적인 손실 인코딩 시나리오에서, 양자화된 DC 및 AC 계수 모두가 역양자화 후에 정확하게 복구될 수 있는 것은 아니다. 예를 들어, 어떤 비디오 코덱에서, DC 계수값은 어떤 QP 및 DC 계수값에 대해 1만큼 천이한다(즉, 그의 양자화전 값에 대해 1만큼 증가 또는 감소한다). 이러한 현상은 DC 천이의 일례이다. 어떤 DC 계수값의 표현이 하나 이상의 낮은 QP에서는 양자화 및 역양자화를 통해 무손실(lossless)이지만, 다른 높은 QP에서는 손실(lossy)이다.
모든 AC 계수가 0으로 양자화되고 DC 계수가 정확히 복구될 수 없는 몇개의 블록을 갖는 영역은 DC 천이 영역에서 눈에 보이는 컨투어링 아티팩트를 나타낼 수 있다. 컨투어링 아티팩트를 갖는 이러한 영역은 종종 평탄한 경사 기울기 영역(하늘, 바다 또는 광선 등)이다. 도 31은 양자화 및 역양자화 후에 경사 기울기 영역 내의 3개의 이웃하는 블록에서의 DC 천이를 나타낸 도면이다. 경사 기울기 영역에서 3개의 이웃하는 블록(3102, 3104, 3106)의 DC 값은 양자화 이전에 각각 68, 69 및 70이다. 양자화 및 역양자화 후에, 블록(3104)의 DC 값은 70으로 천이된다. 도 31에 나타낸 바와 같이, 3개의 이웃하는 블록의 DC 값은 이제 68, 70, 및 70이다. 이러한 블록이 경사 기울기 영역에 있는 경우, 양자화된 DC 값은 지각가능한 컨투어링 아티팩트를 야기할 수 있다. 예를 들어, 도 22a 내지 도 22c를 다시 참조하면, 경사 기울기 영역(2210)이 양자화되어, 도 22b의 눈에 보이는 컨투어링 아티팩트가 생겼다. 도 22c에 나타낸 바와 같이, 매크로블록(2250)의 상반부의 블록에 대한 DC 계수의 양자화의 결과, 68의 DC 값으로부터 재구성된 균일한 값이 얻어지는 반면, 하반부의 블록들에 대한 DC 계수의 양자화의 결과, 70의 DC 값으로부터 재구성된 균일한 값이 얻어진다.
그에 따라, DC 천이 영역을 검출하고 양자화를 조정하여 DC 천이 영역에의 컨투어링 아티팩트의 유입을 감소 또는 회피하기 위해 이하에 기술되는 몇가지 기법들 및 도구들이 비디오 인코더에 의해 사용된다.
도 32는 DC 천이 영역에의 컨투어링 아티팩트의 유입을 감소 또는 회피하기 위해 양자화를 조정하는 일반화된 기법(3200)을 나타낸 플로우차트이다. 도 10의 인코더(1000) 등의 인코더 또는 다른 도구가 기법(3200)을 수행한다.
단계(3210)에서, 인코더는 천이 영역을 검출한다. DC 천이 영역의 검색은 이전의 경사 기울기 검출에 의해 도움을 받을 수 있다. 예를 들어, 이하에 기술하는 바와 같이, 인코더는 하나 이상의 경사 기울기 영역을 검출하고(또는 이전에 계산된 경사 기울기 검출 정보를 사용하여) 이어서 경사 기울기 영역(들)에서 DC 천이 블록을 식별함으로써 DC 천이 영역을 검출한다.
단계(3220)에서, 인코더는 DC 천이 영역에서 양자화를 조정한다. 예를 들어, 인코더는 DC 천이에 의해 야기되는 컨투어링 아티팩트의 유입을 감소 또는 회피하기 위해 차분 양자화(DQ)를 사용하여 DC 천이 블록을 코딩할 수 있다. 인코더는 어떤 매크로블록에 대한 QP를 감소시키지만 다른 블록에 대한 QP를 변경하지 않는다. DC 천이 블록을 갖는 매크로블록에 대한 QP를 감소시키는 것은 매크로블록에 대해 DC 값을 무손실로 유지함으로써 컨투어링 아티팩트의 유입을 감소 또는 회피하는 데 도움이 줄 수 있다. 인코더는 DC 천이 문제를 해결하기 위해 2-레벨 DQ 또는 다중-레벨 DQ를 사용함으로써 비트 사용을 제어하면서 시각적 품질을 개선할 수 있다. 분석할 화상이 더 있는 경우, 인코더는 그 다음 화상을 처리한다(단계 3230).
다른 대안으로서, 인코더는 매크로블록마다 또는 어떤 다른 기준으로 DC 천이 영역에 대한 양자화를 조정한다.
A. 경사 기울기 검출
화상에서 하나 이상의 경사 기울기 영역을 식별하기 위해 경사 기울기 검출이 사용될 수 있다. 경사 기울기 영역(들)은 컨투어링 아티팩트를 나타내는 경향이 있으며, 양자화 후에 영역(들) 내의 블록이 영이 아닌 DC 계수값 및 단지 영인 AC 계수를 갖는 경우에 특히 그렇다. 발견되는 경우, 컨투어링 아티팩트에 기여할지도 모르는 DC 천이 블록이 있는지 이러한 영역(들)이 검사될 수 있다.
예를 들어, 인코더는 본 명세서(섹션 V)에 기술된 기법 또는 어떤 다른 기법을 사용하여 경사 기울기 영역을 찾는다. 양자화 후에 블록들에서의 유일한 영이 아닌 계수들이 DC 계수인 경우, 인코더는 그 블록들을 DC 천이 영역 조정을 위한 후보로서 취급한다. 다른 대안으로서, 인코더는 부가의 블록들을 DC 천이 영역 조정을 위한 후보로서 간주한다.
B. DC-천이 블록의 식별
인코더는 어떤 후보 블록들을 DC 천이 블록으로서 식별한다. DC 천이 블록들의 식별은 블록을 압축하는 데 사용된 양자화기 및 QP의 상세에 의존한다. 예를 들어, 어떤 재구성된 DC 계수가 한 QP에서는 그의 원래의 값으로부터 천이하지 않지만, 더 조악한 QP에서는 천이한다.
한 인코더에서의 서로 다른 QP에 대한 DC 천이 계수의 예가 이하의 표에 제공되어 있다. 이 표는 서로 다른 QP 값에 대해 DC 천이를 나타내는 DC 계수값을 나타낸 것이며, 여기서 QP는 파라미터 PQIndex(및, 가능한 경우, 1/2 스텝 파라미터)로부터 명시적으로 도출되거나, 파라미터 PQIndex(및, 가능한 경우, 1/2 스텝 파라미터)로부터 암시적으로 도출된다. 표에 열거되지 않은 DC값은 예시적인 인코더에서 표시된 QP에 대하 무손실이고, 3 아래의 QP에 대한 DC 값(표에 나타내지 않음)은 모두 무손실이다. 예시적인 인코더는 표에 나타낸 것보다 높은 QP에 대한 DC 천이 조정을 수행하지 않는다. 예시적인 인코더에서, DC 계수의 양자화는 서로 다른 양자화기(예를 들어, 균일, 비균일)에 대해 동일하다. 어느 DC 계수값이 DC 천이 계수인지는 서로 다른 비디오 코덱에서 다르게 된다. DZ 계수의 양자화가 서로 다른 양자화기에서 서로 다른 경우, 서로 다른 양자화기(예를 들어, 균일, 비균일)에 의해 서로 다른 천이 패턴이 얻어질 수 있다.
예시적인 DC-천이 계수
PQIndex(암시적 QP) PQIndex(명시적 QP) 원래의
DC
천이된
DC
원래의
DC
천이된
DC
원래의
DC
천이된
DC
Figure 112008069385609-pct00016
PQIndex(암시적 QP) PQIndex(명시적 QP) 원래의
DC
천이된
DC
원래의
DC
천이된
DC
원래의
DC
천이된
DC
Figure 112008069385609-pct00017
PQIndex(암시적 QP) PQIndex(명시적 QP) 원래의
DC
천이된
DC
원래의
DC
천이된
DC
원래의
DC
천이된
DC
Figure 112008069385609-pct00018
PQIndex(암시적 QP) PQIndex(명시적 QP) 원래의
DC
천이된
DC
원래의
DC
천이된
DC
원래의
DC
천이된
DC
Figure 112008069385609-pct00019
PQIndex(암시적 QP) PQIndex(명시적 QP) 원래의
DC
천이된
DC
원래의
DC
천이된
DC
원래의
DC
천이된
DC
Figure 112008069385609-pct00020
표 3에 나타낸 DC 천이 계수를 갖는 예시적인 인코더는 일반적으로 평탄한 영역과 다른 QP를 텍스처 영역에 사용한다. 예시적인 인코더는 통상적으로 3-5 범위의 QP를 사용하여 평탄한 영역을 인코딩한다. 상기 표 3에 나타낸 바와 같이, QP 3-5에 대해, 천이된 DC값 모두는 원래의 DC값보다 1 만큼 더 많다. 다른 인코더들은 텍스처 영역과 다른 QP를 평탄한 영역에 사용할 수 있다.
DC 천이 블록이 검출될 때 컨투어링 아티팩트의 유입을 감소 또는 회피하는 데 도움을 주기 위해, 예시적인 인코더는 DC 천이 블록을 포함하는 매크로블록에 대한 QP를 변경하여 그 매크로블록에서 DC 값을 무손실로 유지한다. 상세하게는, 예시적인 인코더는 DC 천이 블록을 포함하는 매크로블록에 대한 QP를 QP = 2로 감소시킨다. (다른 인코더는 DC 천이 영역에 대해 어떤 다른 QP를 사용할 수 있다.) 일반적으로, 인코더는 매크로블록의 블록의 DC 계수의 무손실 처리를 가져오는 가장 큰 이용가능한 QP를 선택할 수 있다.
인코더는 경사 기울기 영역(들)에서 DC 천이 블록을 결정하기 위해 블록마다 평균 휘도값을 계산하는데, 그 이유는 평균 휘도값이 (변환에서의 확장을 보상한 후에) DC 천이값에 대응하기 때문이다. 평균 휘도값에 의해 인코더는 어느 블록이 DC 천이를 갖는지를 추정 또는 예측할 수 있다. 다른 대안으로서, 인코더는, 어느 블록이 천이를 갖는지를 정확하게 식별하기 위해, 실제의 DC 값을 계산하고 DC 천이 테이블에서 이들을 탐색한다.
인코더는 경사 기울기 영역(들)에서 어떤 격리된 DC 천이 블록을 배제시키기 위해 부가의 처리를 수행할 수 있다. 예시적인 인코더에서, 현재의 블록이 경사 기울기 영역에 위치한 DC 천이 블록으로 식별되는 경우, 주변의 4개의 이웃 블록이 검사된다. 주변의 4개의 이웃 블록 중 어느 것이라도 평탄한 블록이고 현재의 블록의 천이된 DC 값보다 낮은 DC 값을 갖는 경우, 인코더는 DC 값을 무손실로 유지하기 위해 현재의 블록을 포함하는 매크로블록에 대해 QP = 2를 사용한다. 다른 대안으로서, 인코더는 이웃 블록의 검사를 수행하지 않거나 DC 천이 영역에 대해 QP의 변경을 해야 하는지를 결정하기 위해 어떤 다른 구성의 이웃 블록을 검사한다.
C. 다중-레벨 차분 양자화 비용 모델
2-레벨 DQ 및 다중-레벨 DQ는 통상적으로 서로 다른 비트 레이트 비용을 갖는다. 한 구현에서, "모든 매크로블록" 2-레벨 DQ에서는 화상 QP 또는 대안의 QP를 신호하기 위해 매크로블록당 1 비트가 사용되고, 다중-레벨 DQ에서는 화상 QP 또는 대안의 QP를 신호하기 위해 매크로블록당 적어도 3 비트가 사용된다.
인코더가 DC 천이 블록을 포함하는 평탄한 영역에서 QP를 감소시킬 수 있기 위해 다중-레벨 DQ를 사용할 수 있지만, 인코더는 그 대신에 2-레벨 DQ 시나리오에서 모든 평탄한 영역에 대해 QP를 (예를 들어, QP = 2로) 조정하고 화상의 나머지에 대해 더 조악한 화상 QP를 사용하기로 할 수 있다. 예를 들어, 인코더는 다중-레벨 DQ의 시그널링 비용이 2-레벨 DQ의 비용에 비해 너무 과다한 것으로 발견되는 경우 이것을 할 수 있다.
한 구현에서, 각각 QP = 3, 4, 5 및 6에서 QP = 2로 가는 평탄한 블록들의 비용을 계산하기 위해 이하의 표가 사용된다.
g_iSmoothBlockDiffQPCost[4] = {18, 22, 28, 36}.
이 표는 이하의 2-레벨 DQ cost B(QP) 비용 계산예에서 사용된다.
B(QP) = counts_of_total_MBs + (counts_of_biLevel_Dquan_MBs -
counts_of_DC_Shift_Blocks) * g_iSmoothBlockDiffQPCost[QP-3];
cost B(QP)는 매크로블록별 2-레벨 비용 시그널링의 비용을 참작하고 블록에 대해 3, 4, 5 또는 6 대신에 QP = 2를 사용하는 증가된 비트 비용을 추정한다.
다중-레벨 DQ cost M(QP)는 다음과 같이 계산된다.
M(QP) = (counts_of_frameQP_MBs * 3) + (counts_of_biLevel_Dquan_MBs -
counts_of_DC_Shift_Blocks)* 8 + (counts_of_DC_Shift_Blocks * 3);
cost M(QP)는 어떤 매크로블록 양자화 파라미터에 대해 이스케이프 코딩을 가정할 때 다중-레벨 DQ5의 시그널링 비용을 참작한다. B(qp) < M(qp)인 경우, 2-레벨 DQ가 사용되고 모든 평탄한 블록에 대해 QP = 2가 사용된다. 그렇지 않은 경우, 다중-레벨 DQ가 사용된다.
다른 대안으로서, 인코더는 다른 유형 또는 구성의 DQ에 대해 다른 비용 모델을 사용한다. 또는, 인코더는 DC 천이 블록이 검출되는 경우 화상 전체에 대해 QP를 감소시키거나, DC 천이 블록이 검출되는 경우 어떤 다른 기법을 사용하여 컨투어링 아티팩트의 유입을 감소 또는 회피하기 위해 양자화를 변경한다.
D. 화상 QP 전환
한 예시적인 인코더에서, 다중-레벨 DQ는 임의의 QP를 화상 QP로부터 화상 QP+6으로 신호하기 위해 3 비트를 필요로 한다. 이 범위 밖의 임의의 QP는 이스케이프 코딩을 통해 8 비트로 신호된다. 평탄한 영역에 사용되는 대안의 QP는 통상 화상 QP보다 작으며, 따라서 이스케이프 코딩을 필요로 한다.
화상 QP를 전환하는 것은 따라서 다중-레벨 DQ에 대한 코딩 오버헤드를 절감할 수 있다. 예를 들어, 인코더는 상기한 다중-레벨 비용 모델을 사용하여 화상 QP를 선택할 수 있다. 예를 들어, 3-레벨 시나리오(예를 들어, 화상 QP, 평탄한 영역 QP 및 DC 천이 QP)의 경우, 다중-레벨 DQ 비용이 화상 QP의 서로 다른 후보값에 대해 계산된다. 인코더는 최소의 오버헤드 비용을 갖는 화상 QP를 선택할 수 있다.
다른 대안으로서, 인코더는 화상 QP를 전환하기 위해 다른 기준을 사용하거나 화상 QP 전환을 수행하지 않는다.
E. 텍스처가 많은 매크로블록에 대한 조악한 양자화
다중-레벨 DQ를 사용하기로 결정을 하는 경우, 텍스처가 많은 매크로블록에 화상 QP보다 높은(조악한) QP를 할당함으로써 텍스처가 많은 매크로블록에 대해 조악한 양자화가 사용될 수 있다. (예를 들어, DC 천이 매크로블록에 대해 더 작은 QP를 사용하기 위해) 화상에 대해 다중-레벨 DQ를 사용하기로 하는 결정은 화상 QP보다 높은 매크로블록별 조악한 QP(per macroblock coarse QP)를 신호하는 데 부가적인 오버헤드 비용이 없다는 것을 의미한다. 예를 들어, 양자화 레벨에서 눈에 띄는 차이를 피하기 위해 조악한 QP로서 화상 QP + 1이 사용될 수 있거나, 어떤 다른 QP가 사용될 수 있다. 인코더가 현재의 화상에 대해 다중-레벨 DQ를 사용하기로 결정한 후에, 조악한 QP로 어느 매크로블록이 양자화되는지를 결정하기 위해 텍스처 문턱값이 사용될 수 있다.
다른 대안으로서, 인코더는 어떤 영역(예를 들어, 매크로블록)이 조악한 QP를 사용해야만 하는지를 결정하기 위해 다른 기준을 사용하거나, 조악한 QP를 사용하지 않는다.
F. 예시적인 DC 천이 양자화 기법
도 33은 양자화 아티팩트의 유입을 감소 또는 회피하기 위해 DC 천이 영역에서의 양자화를 조정하는 결합 기법(3300)을 나타낸 플로우차트이다. 도 10의 인코더(1000) 등의 인코더 또는 다른 도구가 기법(3300)을 수행한다. 이러한 결합 기법은 상기한 측면들 중 몇가지를 결합한 예이다. 다른 기법들은 이 예를 참조하여 기술된 측면들 전부를 사용하는 것은 아니거나 그 측면들을 다른 순서로 또는 대안의 방식으로 이들을 수행한다.
단계(3310)에서, 인코더는, 예를 들어, 섹션 V에 기술한 바와 같이, 현재의 화상에서 하나 이상의 경사 기울기 영역을 검출한다. 단계(3320)에서, 인코더는, 예를 들어, DC 천이 테이블을 사용하여 경사 기울기 영역(들)에서 DC 천이 블록을 검출한다.
이어서, 인코더는 화상을 어떻게 양자화할지를 결정한다. 단계(3330)에서, 인코더는 화상에 대해 2-레벨 DQ를 사용할지 여부를 결정한다. 사용하는 경우, 인코더는 DC 천이 영역에 대해(단계 3340) 또한 다른 평탄한 영역에 대해 화상 QP보다 작은 QP를 사용한다. 사용하지 않는 경우, 단계(3350)에서, 인코더는 화상에 대해 다중-레벨 DQ를 사용할지 여부를 결정한다. 사용하는 경우, 인코더는 DC 천이 영역에 대해 화상 QP보다 작은 QP를 사용하고(단계 3360), 다른 평탄한 영역에 대해 다른 QP를 사용할 수 있으며, 텍스처가 많은 매크로블록이 존재하는 경우, 텍스처가 많은 매크로블록에 대해 조악한 QP(화상 QP보다 큰 것 등)를 사용한다(단계 3370). 인코더가 2-레벨 또는 다중-레벨 DQ를 선택하지 않은 경우, 인코더는 화상 QP를 감소시키고 DC 천이 영역에 대해서(단계 3380)는 물론 다른 영역에 대해서 감소된 화상 QP를 사용한다. 또는, 인코더는 2-레벨 DQ 및 다중-레벨 DQ의 비용이 둘다 너무 높은 경우 DC 천이 영역에 대해 QP 감소를 하지 않고 건너뛴다. 인코더가 양자화 방식을 선택한 경우, 인코더는 단계(3390)에서 화상을 압축하고 단계(3395)에서 처리될 화상이 남아 있는 경우 그 다음 화상을 처리한다.
여러가지 실시예들을 참조하여 본 발명의 원리들을 기술하고 예시하였지만, 이 여러가지 실시예들이 이러한 원리들을 벗어나지 않고 구성 및 상세가 수정될 수 있다는 것을 잘 알 것이다. 본 명세서에 기술된 프로그램, 프로세스 또는 방법이, 달리 언급하지 않는 한, 임의의 특정의 유형의 컴퓨팅 환경에 관계되어 있거나 그에 제한되는 것이 아니라는 것을 잘 알 것이다. 다양한 유형의 범용 또는 전용 컴퓨팅 환경이 본 명세서에 기술된 실시 내용에 따라 사용될 수 있거나 동작들을 수행할 수 있다. 소프트웨어로 나타내어져 있는 실시예들의 구성요소가 하드웨어로 구현될 수 있으며, 그 역도 마찬가지이다.
본 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들을 고려하여, 본 발명이 이하의 청구 범위 및 그의 등가물의 범위 및 정신 내에 속하는 이러한 실시예들 전부를 포함하는 것으로 보아야 한다.

Claims (20)

  1. 비디오 인코더에서의 비디오 인코딩 방법으로서,
    비디오 화상 시퀀스에서의 현재 비디오 화상의 현재 평탄한 영역(current smooth region)을 식별하는 단계 - 상기 비디오 화상 시퀀스는 디스플레이 순서에서 복수의 이전 화상들의 디스플레이가 현재의 비디오 화상의 디스플레이 이전에 발생하고, 디스플레이 순서에서 복수의 장래 화상들의 디스플레이가 현재의 비디오 화상의 디스플레이 이후에 발생하는 디스플레이 순서를 가짐 - ;
    상기 현재 평탄한 영역에 대해 시간 분석을 수행하는 단계 - 상기 시간 분석은 상기 복수의 이전 화상들 및 상기 복수의 장래 화상들 중 적어도 하나에서의 대응하는 영역이 평탄한지를 결정하는 것을 포함하고, 상기 시간 분석은, 상기 현재의 비디오 화상으로부터 시간상 더 멀리 있는 장래 화상의 대응하는 영역에서의 평탄성보다 상기 현재의 비디오 화상에 시간상 더 가까운 장래 화상의 대응하는 영역 내의 평탄성을 더 크게 가중함 - ;
    상기 시간 분석에 기초하여, 상기 현재의 평탄한 영역에서 양자화를 조정하는 단계; 및
    상기 현재의 비디오 화상에 대해 인코딩된 데이터를 출력하는 단계
    를 포함하는 비디오 인코딩 방법.
  2. 제1항에 있어서,
    상기 현재의 평탄한 영역에서 양자화를 조정하는 단계는 상기 현재의 평탄한 영역에 대한 양자화 스텝 크기를 감소시키는 단계를 포함하는,
    비디오 인코딩 방법.
  3. 제2항에 있어서,
    상기 현재의 평탄한 영역에 대한 양자화 스텝 크기를 감소시키는 단계는 상기 현재의 비디오 화상이 재구성될 때 상기 현재의 평탄한 영역 내의 컨투어링 아티팩트(contouring artifact)의 도입을 방지하는,
    비디오 인코딩 방법.
  4. 제1항에 있어서,
    상기 시간 분석은 조정가능한 개수의 상기 복수의 미래 화상들에 대해 수행되고, 상기 조정가능한 개수는 하나 이상인,
    비디오 인코딩 방법.
  5. 제1항에 있어서,
    상기 현재의 평탄한 영역은 경사 기울기 영역(gradient slope region)인,
    비디오 인코딩 방법.
  6. 제1항에 있어서,
    상기 비디오 인코더는 텍스처 맵을 분석하여 상기 현재의 평탄한 영역을 식별하고, 상기 비디오 인코더는 상기 시간 분석에서 평균 휘도 값을 분석하는,
    비디오 인코딩 방법.
  7. 컴퓨터로 하여금 제1항의 방법을 수행하게 하는 컴퓨터 실행가능 명령어들을 저장하고 있는 하나 이상의 컴퓨터 판독가능 메모리 매체.
  8. 비디오 인코더에서의 비디오 인코딩 방법으로서,
    현재의 비디오 화상 내의 텍스처를 분석하는 단계;
    상기 현재의 비디오 화상 내의 상기 분석된 텍스처에 기초하여 상기 현재의 비디오 화상에 대한 평탄성 문턱값을 설정하는 단계;
    상기 현재의 비디오 화상의 텍스처 데이터를 상기 평탄성 문턱값과 비교하는 단계;
    상기 평탄성 문턱값에 따라 상기 현재의 비디오 화상 내의 적어도 하나의 평탄성 영역의 발견에 기초하여 상기 현재의 비디오 화상의 적어도 일부분에 대한 차분 양자화를 조정하는 단계- 상기 차분 양자화를 조정하는 단계는 상기 현재의 비디오 화상 내의 편평한(flat) 블록들의 퍼센트를 결정하는 단계 및 상기 퍼센트를 하나 이상의 퍼센트 문턱값에 비교하는 단계를 포함함 -; 및
    상기 현재의 비디오 화상에 대한 인코딩된 데이터를 출력하는 단계
    를 포함하는 비디오 인코딩 방법.
  9. 제8항에 있어서,
    상기 텍스처를 분석하는 단계는 텍스처 맵을 분석하는 단계를 포함하는,
    비디오 인코딩 방법.
  10. 제8항에 있어서,
    상기 텍스처를 분석하는 단계는 슬라이딩 윈도우를 블록 경사 값들의 경사 값 히스토그램에 적용하는 단계를 포함하는,
    비디오 인코딩 방법.
  11. 제8항에 있어서,
    상기 차분 양자화를 조정하는 단계는 상기 퍼센트와 상기 하나 이상의 퍼센트 문턱값을 비교한 결과들에 의존하는,
    비디오 인코딩 방법.
  12. 제8항에 있어서,
    상기 차분 양자화를 조정하는 단계는
    상기 현재의 비디오 화상 내의 텍스처 영역의 고립된 편평한 블록을 식별하는 단계; 및
    상기 고립된 편평한 블록에 대한 상기 차분 양자화를 생략하는 단계를 포함하는,
    비디오 인코딩 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020087024247A 2006-04-07 2007-04-09 텍스처 레벨에 기반한 양자화 조정 KR101323066B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/400,788 2006-04-07
US11/400,788 US7995649B2 (en) 2006-04-07 2006-04-07 Quantization adjustment based on texture level
PCT/US2007/008937 WO2007117707A1 (en) 2006-04-07 2007-04-09 Quantization adjustment based on texture level

Publications (2)

Publication Number Publication Date
KR20090006080A KR20090006080A (ko) 2009-01-14
KR101323066B1 true KR101323066B1 (ko) 2013-10-29

Family

ID=38581430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087024247A KR101323066B1 (ko) 2006-04-07 2007-04-09 텍스처 레벨에 기반한 양자화 조정

Country Status (6)

Country Link
US (2) US7995649B2 (ko)
EP (1) EP2005754B1 (ko)
JP (2) JP5124562B2 (ko)
KR (1) KR101323066B1 (ko)
CN (2) CN101416512B (ko)
WO (1) WO2007117707A1 (ko)

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
US7801383B2 (en) 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
GB0500805D0 (en) * 2005-01-14 2005-02-23 Snell & Wilcox Ltd Image processing
US8422546B2 (en) * 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
JP5006633B2 (ja) * 2006-03-10 2012-08-22 キヤノン株式会社 画像符号化装置、画像符号化方法、プログラム及び記憶媒体
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US7974340B2 (en) 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US7683910B2 (en) * 2006-06-29 2010-03-23 Microsoft Corporation Strategies for lossy compression of textures
US7714873B2 (en) * 2006-06-29 2010-05-11 Microsoft Corporation Strategies for compressing textures
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US20080212599A1 (en) * 2007-03-01 2008-09-04 Qualcomm Incorporated Methods and systems for encoding data in a communication network
US20080240257A1 (en) * 2007-03-26 2008-10-02 Microsoft Corporation Using quantization bias that accounts for relations between transform bins and quantization bins
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US20100020869A1 (en) * 2007-03-28 2010-01-28 Hiroshi Ikeda Coding rate conversion device and coding rate conversion method
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
AU2007201403A1 (en) * 2007-03-30 2008-10-16 Canon Kabushiki Kaisha Improvement for Spatial Wyner Ziv coding
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
EP2018070A1 (en) * 2007-07-17 2009-01-21 Thomson Licensing Method for processing images and the corresponding electronic device
US8139081B1 (en) * 2007-09-07 2012-03-20 Zenverge, Inc. Method for conversion between YUV 4:4:4 and YUV 4:2:0
US20090074058A1 (en) * 2007-09-14 2009-03-19 Sony Corporation Coding tool selection in video coding based on human visual tolerance
EP2229782A2 (en) * 2008-01-14 2010-09-22 Thomson Licensing Methods and apparatus for de-artifact filtering using multi-lattice sparsity-based filtering
US8189933B2 (en) * 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
CN101557514B (zh) * 2008-04-11 2011-02-09 华为技术有限公司 一种帧间预测编解码方法、装置及系统
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8077773B2 (en) 2008-07-19 2011-12-13 Worldplay (Barbados) Inc. Systems and methods for highly efficient video compression using selective retention of relevant visual detail
US20100014596A1 (en) * 2008-07-19 2010-01-21 Headplay (Barbados) Inc. Systems and methods for improving the quality of compressed video signals by smoothing block artifacts
US20100014777A1 (en) * 2008-07-19 2010-01-21 Headplay (Barbados) Inc. System and method for improving the quality of compressed video signals by smoothing the entire frame and overlaying preserved detail
US8139883B2 (en) * 2008-07-29 2012-03-20 Sony Corporation System and method for image and video encoding artifacts reduction and quality improvement
CN101677398A (zh) * 2008-09-19 2010-03-24 三星电子株式会社 场景切换码率控制方法
AU2008240343B2 (en) * 2008-10-31 2012-04-19 Canon Kabushiki Kaisha Rate-distortion control in DVC with no feedback
US20100114871A1 (en) * 2008-10-31 2010-05-06 University Of Southern California Distance Quantization in Computing Distance in High Dimensional Space
US8635357B2 (en) * 2009-09-08 2014-01-21 Google Inc. Dynamic selection of parameter sets for transcoding media data
JP5556996B2 (ja) * 2010-01-06 2014-07-23 ソニー株式会社 画像処理装置および方法
CN101872414B (zh) * 2010-02-10 2012-07-25 杭州海康威视软件有限公司 可去除虚假目标的人流量统计的方法及系统
US8913686B2 (en) 2010-05-07 2014-12-16 Yale University Sparse superposition encoder and decoder for communications system
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
KR101682137B1 (ko) 2010-10-25 2016-12-05 삼성전자주식회사 텍스처 및 움직임 감지를 사용한 시간적으로-일관된 변이 추정을 위한 방법 및 장치
US9271005B2 (en) * 2011-02-24 2016-02-23 Vixs Systems, Inc. Multi-pass video encoder and methods for use therewith
WO2012118358A2 (ko) * 2011-03-03 2012-09-07 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
KR20120100836A (ko) * 2011-03-03 2012-09-12 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
PL3280144T3 (pl) 2011-06-14 2021-06-14 Lg Electronics Inc. Sposób kodowania i dekodowania informacji o obrazie
JP5745175B2 (ja) * 2011-06-28 2015-07-08 サムスン エレクトロニクス カンパニー リミテッド 適応的な量子化パラメータ差分値を用いた映像の符号化及び復号化方法と装置
WO2013003823A1 (en) * 2011-06-30 2013-01-03 Huawei Technologies, Co., Ltd. Lossless coding and associated signaling methods for compound video
US20130142250A1 (en) * 2011-12-06 2013-06-06 Broadcom Corporation Region based classification and adaptive rate control method and apparatus
US10205953B2 (en) * 2012-01-26 2019-02-12 Apple Inc. Object detection informed encoding
US9363510B2 (en) 2012-03-02 2016-06-07 Qualcomm Incorporated Scan-based sliding window in context derivation for transform coefficient coding
US9491475B2 (en) 2012-03-29 2016-11-08 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
CN103428523B (zh) * 2012-05-22 2015-07-08 华为技术有限公司 评估视频质量的方法和装置
US9883180B2 (en) 2012-10-03 2018-01-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Bounded rate near-lossless and lossless image compression
WO2014055745A1 (en) 2012-10-03 2014-04-10 Broadcom Corporation 2d block image encoding
US9978156B2 (en) 2012-10-03 2018-05-22 Avago Technologies General Ip (Singapore) Pte. Ltd. High-throughput image and video compression
US9451250B2 (en) 2012-10-03 2016-09-20 Broadcom Corporation Bounded rate compression with rate control for slices
US9805442B2 (en) 2012-10-03 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Fine-grained bit-rate control
US9813711B2 (en) 2012-10-03 2017-11-07 Avago Technologies General Ip (Singapore) Pte. Ltd. Hybrid transform-based compression
US9445109B2 (en) 2012-10-16 2016-09-13 Microsoft Technology Licensing, Llc Color adaptation in video coding
KR101491591B1 (ko) * 2012-11-05 2015-02-09 주식회사 케이티 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법
CN103024383B (zh) * 2012-12-14 2016-02-10 北京工业大学 一种基于hevc框架的帧内无损压缩编码方法
CN103051901B (zh) * 2013-01-14 2015-10-28 北京华兴宏视技术发展有限公司 视频数据编码装置和视频数据编码方法
TWI524782B (zh) * 2013-01-17 2016-03-01 瑞昱半導體股份有限公司 影像處理裝置與影像處理方法
CA2898789C (en) 2013-01-29 2017-12-05 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Low-complexity tonality-adaptive audio signal quantization
US9363517B2 (en) 2013-02-28 2016-06-07 Broadcom Corporation Indexed color history in image coding
US9998750B2 (en) * 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US9392286B2 (en) 2013-03-15 2016-07-12 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
CN104077796B (zh) * 2013-03-28 2017-01-18 北京京东方光电科技有限公司 一种将二维图像转换为三维图像的方法和装置
US20150016509A1 (en) * 2013-07-09 2015-01-15 Magnum Semiconductor, Inc. Apparatuses and methods for adjusting a quantization parameter to improve subjective quality
US9344218B1 (en) 2013-08-19 2016-05-17 Zoom Video Communications, Inc. Error resilience for interactive real-time multimedia applications
US20150172660A1 (en) * 2013-12-17 2015-06-18 Magnum Semiconductor, Inc. Apparatuses and methods for providing optimized quantization weight matrices
US9794575B2 (en) 2013-12-18 2017-10-17 Magnum Semiconductor, Inc. Apparatuses and methods for optimizing rate-distortion costs in video encoding
US9930346B2 (en) * 2014-04-15 2018-03-27 Qualcomm Incorporated System and method for flatness detection for display stream compression (DSC)
US9380312B2 (en) * 2014-07-14 2016-06-28 Apple Inc. Encoding blocks in video frames containing text using histograms of gradients
US9911179B2 (en) 2014-07-18 2018-03-06 Dolby Laboratories Licensing Corporation Image decontouring in high dynamic range video processing
EP2980793A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder, system and methods for encoding and decoding
US9549188B2 (en) * 2014-07-30 2017-01-17 Intel Corporation Golden frame selection in video coding
US10979705B2 (en) * 2014-08-08 2021-04-13 Qualcomm Incorporated Method for video coding with spatial prediction mode for multi-mode video coding
WO2016060672A1 (en) 2014-10-16 2016-04-21 Hewlett-Packard Development Company, L.P. Video coding using a saliency map
US10034005B2 (en) 2015-06-05 2018-07-24 Sony Corporation Banding prediction for video encoding
CL2015002576A1 (es) * 2015-09-10 2016-05-06 Tecnologia Vvd Limitada Método de compresión de imagen y video por vectorización y un dispositivo ejecutor de dicho método en formato de circuito integrado o chip, para equipos móviles y fijos.
CN107004258B (zh) * 2015-11-16 2020-06-26 华为技术有限公司 一种视频平滑方法及装置
US10574988B2 (en) * 2015-11-19 2020-02-25 Qualcomm Incorporated System and methods for reducing slice boundary visual artifacts in display stream compression (DSC)
US10499056B2 (en) 2016-03-09 2019-12-03 Sony Corporation System and method for video processing based on quantization parameter
TWI610558B (zh) * 2016-05-26 2018-01-01 晨星半導體股份有限公司 位元分配方法及視訊編碼裝置
KR20180056313A (ko) 2016-11-18 2018-05-28 삼성전자주식회사 텍스처를 처리하는 방법 및 장치
US10580167B1 (en) * 2017-01-24 2020-03-03 Amazon Technologies, Inc. Excluding masked regions of virtual reality (VR) frames from encoder processing
US10593122B1 (en) * 2017-01-24 2020-03-17 Amazon Technologies, Inc. Mirroring edge pixels
CN108629237B (zh) * 2017-03-21 2021-11-05 中山大学 基于h.264/avc加密视频的运动异常检测方法
US10674158B2 (en) * 2017-06-15 2020-06-02 Beamr Imaging Ltd Method and system of video coding optimization
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
KR102242675B1 (ko) * 2017-11-13 2021-04-22 한국전자통신연구원 양자화 방법 및 장치
US10827173B2 (en) * 2017-11-13 2020-11-03 Electronics And Telecommunications Research Institute Method and apparatus for quantization
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
US10805629B2 (en) * 2018-02-17 2020-10-13 Google Llc Video compression through motion warping using learning-based motion segmentation
US10645418B2 (en) 2018-04-13 2020-05-05 Google Llc Morphological anti-ringing filter for lossy image compression
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
CN109034235B (zh) * 2018-07-20 2021-09-28 安徽理工大学 一种基于多特征的集成svm噪点检测方法
CN109286817B (zh) * 2018-09-19 2020-12-22 上海电力学院 一种视频编码中dct系数的量化失真信息处理方法
CN109448065B (zh) * 2018-10-11 2023-07-25 北京理工大学 一种基于梯度分块自适应测量的压缩感知方法
CN111050169B (zh) * 2018-10-15 2021-12-14 华为技术有限公司 图像编码中量化参数的生成方法、装置及终端
WO2020111981A1 (en) * 2018-11-26 2020-06-04 Huawei Technologies Co., Ltd. Apparatus and method for chrominance quantization parameter derivation
KR20210091322A (ko) * 2018-12-21 2021-07-21 후아웨이 테크놀러지 컴퍼니 리미티드 모드 및 크기 의존적 블록 레벨 제한의 방법 및 장치
CN110430430B (zh) * 2019-08-08 2021-07-06 浙江芯昇电子技术有限公司 图像处理方法及装置、存储介质、电子装置
TWI740326B (zh) * 2019-12-26 2021-09-21 宏碁股份有限公司 電腦系統及其影像補償方法
US11490083B2 (en) 2020-02-05 2022-11-01 Qualcomm Incorporated Learned low-complexity adaptive quantization for video compression
CN111770330B (zh) * 2020-06-10 2022-11-04 北京达佳互联信息技术有限公司 图像压缩方法、装置以及电子设备
US11381830B2 (en) 2020-06-11 2022-07-05 Tencent America LLC Modified quantizer
CN112505065B (zh) * 2020-12-28 2022-11-04 上海工程技术大学 一种实现室内无人机对大部件表面缺陷进行检测的方法
CN114727108A (zh) * 2021-01-04 2022-07-08 北京金山云网络技术有限公司 量化因子调整方法、装置、电子设备及存储介质
CN114125451B (zh) * 2021-12-01 2022-12-06 锐宸微(上海)科技有限公司 视频编码方法、视频编码装置及影像处理装置
CN114554204A (zh) * 2022-01-20 2022-05-27 珠海全志科技股份有限公司 一种编码图像画质调节方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999048300A1 (en) 1998-03-14 1999-09-23 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a video signal
US20020118884A1 (en) 2000-12-13 2002-08-29 Cho Hyun Duk Device and method for encoding DPCM image
US6526096B2 (en) 1996-09-20 2003-02-25 Nokia Mobile Phones Limited Video coding system for estimating a motion vector field by using a series of motion estimators of varying complexity
US20030095599A1 (en) 2001-11-17 2003-05-22 Lg Electronics Inc. Object-based bit rate control method and system thereof

Family Cites Families (350)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US762026A (en) 1902-10-24 1904-06-07 Ver Chemische Werke Actien Ges Process of making fatty acids.
GB897363A (en) 1958-08-13 1962-05-23 Harries Television Res Ltd Improvements in or relating to display devices
FR2532138B1 (fr) 1982-08-20 1986-10-10 Thomson Csf Procede de compression de debit de donnees successivement transmises entre un emetteur et un recepteur de television et systeme mettant en oeuvre le procede
FR2562364B1 (fr) 1984-04-03 1987-06-19 Thomson Csf Procede et systeme de compression de debit de donnees numeriques transmises entre un emetteur et un recepteur de television
CA1327074C (en) 1985-02-28 1994-02-15 Tokumichi Murakami Interframe adaptive vector quantization encoding apparatus and video encoding transmission apparatus
JPS63502074A (ja) 1985-12-24 1988-08-11 ブリティッシュ・ブロ−ドキャスティング・コ−ポレ−ション ビデオ信号デコーディング方法及び装置
DE3735349A1 (de) 1986-10-18 1988-04-28 Toshiba Kawasaki Kk Bildpresservorrichtung
JP2783534B2 (ja) 1986-11-13 1998-08-06 キヤノン株式会社 符号化装置
US4774574A (en) 1987-06-02 1988-09-27 Eastman Kodak Company Adaptive block transform image coding method and apparatus
US6563875B2 (en) 1987-12-30 2003-05-13 Thomson Licensing S.A. Adaptive method of encoding and decoding a series of pictures by transformation, and devices for implementing this method
US4821119A (en) 1988-05-04 1989-04-11 Bell Communications Research, Inc. Method and apparatus for low bit-rate interframe video coding
US4965830A (en) 1989-01-17 1990-10-23 Unisys Corp. Apparatus for estimating distortion resulting from compressing digital data
US5128758A (en) 1989-06-02 1992-07-07 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5179442A (en) 1989-06-02 1993-01-12 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5241395A (en) 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
JPH0828875B2 (ja) 1989-08-21 1996-03-21 三菱電機株式会社 符号化装置および復号化装置
US5144426A (en) 1989-10-13 1992-09-01 Matsushita Electric Industrial Co., Ltd. Motion compensated prediction interframe coding system
US5210623A (en) 1989-12-21 1993-05-11 Eastman Kodak Company Apparatus and method for quantizing and/or reconstructing multi-dimensional digital image signals
JP2841765B2 (ja) 1990-07-13 1998-12-24 日本電気株式会社 適応ビット割当て方法及び装置
US5146324A (en) 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
US5303058A (en) 1990-10-22 1994-04-12 Fujitsu Limited Data processing apparatus for compressing and reconstructing image data
JPH0813138B2 (ja) 1990-11-28 1996-02-07 松下電器産業株式会社 画像符号化装置
US5136377A (en) 1990-12-11 1992-08-04 At&T Bell Laboratories Adaptive non-linear quantizer
JP3187852B2 (ja) 1991-02-08 2001-07-16 ソニー株式会社 高能率符号化方法
US5333212A (en) 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
US5317672A (en) 1991-03-05 1994-05-31 Picturetel Corporation Variable bit rate speech encoder
EP0514688A2 (en) 1991-05-21 1992-11-25 International Business Machines Corporation Generalized shape autocorrelation for shape acquisition and recognition
EP0514663A3 (en) 1991-05-24 1993-07-14 International Business Machines Corporation An apparatus and method for motion video encoding employing an adaptive quantizer
KR0167367B1 (ko) 1991-06-04 1999-03-20 하비 피. 화이트 적응블록크기 영상압축방법 및 시스템
JP3152765B2 (ja) * 1991-10-31 2001-04-03 株式会社東芝 画像符号化装置
TW241350B (ko) 1991-11-07 1995-02-21 Rca Thomson Licensing Corp
US5253058A (en) 1992-04-01 1993-10-12 Bell Communications Research, Inc. Efficient coding scheme for multilevel video transmission
JP3245977B2 (ja) 1992-06-30 2002-01-15 ソニー株式会社 ディジタル画像信号の伝送装置
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
US5663763A (en) 1992-10-29 1997-09-02 Sony Corp. Picture signal encoding method and apparatus and picture signal decoding method and apparatus
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
JP3406336B2 (ja) 1992-12-15 2003-05-12 ソニー株式会社 画像符号化装置、画像符号化方法、画像復号化装置、および画像復号化方法
TW224553B (en) 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
US5412429A (en) 1993-03-11 1995-05-02 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Picture data compression coder using subband/transform coding with a Lempel-Ziv-based coder
US5510785A (en) 1993-03-19 1996-04-23 Sony Corporation Method of coding a digital signal, method of generating a coding table, coding apparatus and coding method
DE69424591T2 (de) 1993-03-29 2001-01-18 Canon Kk Verfahren zur Kontrolle der Datenmenge und Kodierer zur Durchführung desselben.
KR960010196B1 (ko) 1993-06-04 1996-07-26 배순훈 인간의 시각특성을 이용한 디씨(dc) 변환계수 양자화기
US5880775A (en) * 1993-08-16 1999-03-09 Videofaxx, Inc. Method and apparatus for detecting changes in a video display
GB2281465B (en) 1993-08-27 1997-06-04 Sony Uk Ltd Image data compression
US5724097A (en) 1993-10-18 1998-03-03 Mitsubishi Denki Kabushiki Kaisha Adaptive quantization of video based on edge detection
US6104751A (en) 1993-10-29 2000-08-15 Sgs-Thomson Microelectronics S.A. Apparatus and method for decompressing high definition pictures
BE1007807A3 (nl) 1993-11-30 1995-10-24 Philips Electronics Nv Inrichting voor het coderen van een videosignaal.
JP3224465B2 (ja) 1993-12-22 2001-10-29 シャープ株式会社 画像符号化装置
US5537440A (en) 1994-01-07 1996-07-16 Motorola, Inc. Efficient transcoding device and method
KR0183688B1 (ko) 1994-01-12 1999-05-01 김광호 영상부호화방법 및 장치
US5587708A (en) 1994-01-19 1996-12-24 Industrial Technology Research Institute Division technique unified quantizer-dequantizer
US5592226A (en) 1994-01-26 1997-01-07 Btg Usa Inc. Method and apparatus for video data compression using temporally adaptive motion interpolation
JP3197420B2 (ja) * 1994-01-31 2001-08-13 三菱電機株式会社 画像符号化装置
US5654760A (en) 1994-03-30 1997-08-05 Sony Corporation Selection of quantization step size in accordance with predicted quantization noise
CA2164627A1 (en) 1994-04-22 1995-11-02 Touradj Ebrahimi Method and device for encoding image signal and image signal decoding device
KR0148154B1 (ko) 1994-06-15 1998-09-15 김광호 움직임크기에 따른 동영상데이타의 부호화방법 및 장치
JP3954656B2 (ja) 1994-09-29 2007-08-08 ソニー株式会社 画像符号化装置及び方法
US5802213A (en) 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
US5539469A (en) 1994-12-30 1996-07-23 Daewoo Electronics Co., Ltd. Apparatus for determining motion vectors through the use of an adaptive median filtering technique
US5724456A (en) 1995-03-31 1998-03-03 Polaroid Corporation Brightness adjustment of images using digital scene analysis
US5623424A (en) 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US5781788A (en) 1995-05-08 1998-07-14 Avc Technology, Inc. Full duplex single clip video codec
US5793371A (en) 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
KR100304660B1 (ko) 1995-09-22 2001-11-22 윤종용 누적에러처리를통한비디오신호부호화방법및부호화기
US5995670A (en) 1995-10-05 1999-11-30 Microsoft Corporation Simplified chain encoding
CA2187044C (en) 1995-10-06 2003-07-01 Vishal Markandey Method to reduce perceptual contouring in display systems
US5819035A (en) 1995-10-20 1998-10-06 Matsushita Electric Industrial Co., Ltd. Post-filter for removing ringing artifacts of DCT coding
US6160846A (en) 1995-10-25 2000-12-12 Sarnoff Corporation Apparatus and method for optimizing the rate control in a coding system
US5926791A (en) 1995-10-26 1999-07-20 Sony Corporation Recursively splitting the low-frequency band with successively fewer filter taps in methods and apparatuses for sub-band encoding, decoding, and encoding and decoding
US6571019B1 (en) 1995-10-26 2003-05-27 Hyundai Curitel, Inc Apparatus and method of encoding/decoding a coded block pattern
US5761088A (en) 1995-12-18 1998-06-02 Philips Electronics North America Corporation Method and apparatus for channel identification using incomplete or noisy information
US5878166A (en) 1995-12-26 1999-03-02 C-Cube Microsystems Field frame macroblock encoding decision
US5835145A (en) 1996-01-19 1998-11-10 Lsi Logic Corporation Conversion system using programmable tables for compressing transform coefficients
JP3067628B2 (ja) * 1996-01-19 2000-07-17 日本電気株式会社 画像符号化装置
US5731837A (en) 1996-01-25 1998-03-24 Thomson Multimedia, S.A. Quantization circuitry as for video signal compression systems
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
JP3521596B2 (ja) 1996-01-30 2004-04-19 ソニー株式会社 信号符号化方法
US5786856A (en) 1996-03-19 1998-07-28 International Business Machines Method for adaptive quantization by multiplication of luminance pixel blocks by a modified, frequency ordered hadamard matrix
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5764803A (en) 1996-04-03 1998-06-09 Lucent Technologies Inc. Motion-adaptive modelling of scene content for very low bit rate model-assisted coding of video sequences
US5850482A (en) 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
US5739861A (en) 1996-05-06 1998-04-14 Music; John D. Differential order video encoding system
US5815097A (en) 1996-05-23 1998-09-29 Ricoh Co. Ltd. Method and apparatus for spatially embedded coding
US6148109A (en) 1996-05-28 2000-11-14 Matsushita Electric Industrial Co., Ltd. Image predictive coding method
US5809178A (en) 1996-06-11 1998-09-15 Apple Computer, Inc. Elimination of visible quantizing artifacts in a digital image utilizing a critical noise/quantizing factor
US6865291B1 (en) 1996-06-24 2005-03-08 Andrew Michael Zador Method apparatus and system for compressing data that wavelet decomposes by color plane and then divides by magnitude range non-dc terms between a scalar quantizer and a vector quantizer
CA2208950A1 (en) 1996-07-03 1998-01-03 Xuemin Chen Rate control for stereoscopic digital video encoding
KR100242637B1 (ko) 1996-07-06 2000-02-01 윤종용 동보상된 영상의 블록화효과 및 링잉노이즈 감소를 위한 루프필터링방법
DE69739006D1 (de) 1996-08-30 2008-11-06 Sony Corp Vorrichtung und verfahren zur aufnahme von standbildern und animationen
EP0861002B1 (en) 1996-09-06 2004-12-15 Sony Corporation Method and device for encoding data
FR2753330B1 (fr) 1996-09-06 1998-11-27 Thomson Multimedia Sa Procede de quantification pour codage video
KR100297830B1 (ko) 1996-11-09 2001-08-07 윤종용 영상단위별 비트발생량 조절 장치 및 방법
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
JPH10107644A (ja) 1996-09-26 1998-04-24 Sony Corp 量子化装置および方法、並びに、符号化装置および方法
JP3934712B2 (ja) 1996-09-27 2007-06-20 日本ビクター株式会社 映像信号符号化方法及び装置
KR100303685B1 (ko) * 1996-09-30 2001-09-24 송문섭 영상 예측부호화 장치 및 그 방법
GB2318472B (en) 1996-10-09 2000-11-15 Sony Uk Ltd Processing encoded signals
KR100198788B1 (ko) 1996-12-09 1999-06-15 정선종 차동 펄스 부호 변조기를 포함한 양자화/역양자화 회로
JP4032446B2 (ja) * 1996-12-12 2008-01-16 ソニー株式会社 映像データ圧縮装置およびその方法
US6263024B1 (en) 1996-12-12 2001-07-17 Matsushita Electric Industrial Co., Ltd. Picture encoder and picture decoder
JPH10174103A (ja) 1996-12-13 1998-06-26 Matsushita Electric Ind Co Ltd 画像符号化装置、符号化画像記録媒体、画像復号化装置、画像符号化方法、および符号化画像伝送方法
KR100604702B1 (ko) 1997-02-12 2006-07-28 미디어텍 인크. 이미지 시퀀스를 인코딩하는 장치 및 이미지 신호를 양자화하기 위해서 양자화 스케일을 생성하는 방법
EP1809044B1 (en) 1997-02-14 2008-10-01 Nippon Telegraph and Telephone Corporation Predictive decoding method of video data
US6347116B1 (en) 1997-02-14 2002-02-12 At&T Corp. Non-linear quantizer for video coding
US5969764A (en) 1997-02-14 1999-10-19 Mitsubishi Electric Information Technology Center America, Inc. Adaptive video coding method
US6373894B1 (en) 1997-02-18 2002-04-16 Sarnoff Corporation Method and apparatus for recovering quantized coefficients
US6118817A (en) 1997-03-14 2000-09-12 Microsoft Corporation Digital video signal encoder and encoding method having adjustable quantization
US5844613A (en) 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
US6633611B2 (en) 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
US6058215A (en) 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
US6088392A (en) 1997-05-30 2000-07-11 Lucent Technologies Inc. Bit rate coder for differential quantization
FI107496B (fi) 1997-07-18 2001-08-15 Nokia Mobile Phones Ltd Kuvan kompressointi
KR100244290B1 (ko) 1997-09-09 2000-02-01 구자홍 저속 전송에서의 동영상을 위한 디블록킹 필터링 방법
US6091777A (en) 1997-09-18 2000-07-18 Cubic Video Technologies, Inc. Continuously adaptive digital video compression system and method for a web streamer
AU1062999A (en) 1997-09-29 1999-04-23 Rockwell Semiconductor Systems, Inc. System and method for compressing images using multi-threshold wavelet coding
US6295379B1 (en) 1997-09-29 2001-09-25 Intel Corporation DPCM image compression with plural quantization table levels
WO1999022525A1 (en) 1997-10-23 1999-05-06 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
WO1999022524A1 (en) 1997-10-23 1999-05-06 Mitsubishi Denki Kabushiki Kaisha Image decoder, image encoder, image communication system, and encoded bit stream converter
JP4531871B2 (ja) 1997-10-30 2010-08-25 富士通セミコンダクター株式会社 画像情報処理装置及び符号装置
US6731811B1 (en) 1997-12-19 2004-05-04 Voicecraft, Inc. Scalable predictive coding method and apparatus
KR100243430B1 (ko) 1997-12-31 2000-02-01 구자홍 적응형 양자화 제어방법
US6275527B1 (en) 1998-01-14 2001-08-14 Conexant Systems, Inc. Pre-quantization in motion compensated video coding
WO1999038333A1 (en) 1998-01-26 1999-07-29 Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd. One-pass variable bit rate moving pictures encoding
CA2260578C (en) 1998-01-27 2003-01-14 At&T Corp. Method and apparatus for encoding video shape and texture information
US6360017B1 (en) 1998-03-05 2002-03-19 Lucent Technologies Inc. Perceptual-based spatio-temporal segmentation for motion estimation
US6249614B1 (en) 1998-03-06 2001-06-19 Alaris, Inc. Video compression and decompression using dynamic quantization and/or encoding
TW501022B (en) 1998-03-16 2002-09-01 Mitsubishi Electric Corp Moving picture coding system
US6278735B1 (en) 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder
US6115689A (en) 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US7313318B2 (en) 1998-06-17 2007-12-25 Victor Company Of Japan, Limited Video signal encoding and recording apparatus with variable transmission rate
US6212232B1 (en) 1998-06-18 2001-04-03 Compaq Computer Corporation Rate control and bit allocation for low bit rate video communication applications
JP2000013794A (ja) 1998-06-23 2000-01-14 Mitsubishi Electric Corp 動画像符号化装置、動画像符号化方法、動画像復号装置、および動画像復号方法
US6275614B1 (en) 1998-06-26 2001-08-14 Sarnoff Corporation Method and apparatus for block classification and adaptive bit allocation
US6314208B1 (en) 1998-07-21 2001-11-06 Hewlett-Packard Company System for variable quantization in JPEG for compound documents
AU717480B2 (en) 1998-08-01 2000-03-30 Korea Advanced Institute Of Science And Technology Loop-filtering method for image data and apparatus therefor
US6389171B1 (en) 1998-08-14 2002-05-14 Apple Computer, Inc. Method and apparatus for a digital video cassette (DVC) decode system
KR100281967B1 (ko) 1998-08-31 2001-02-15 전주범 공간 상관성을 이용한 영상 부호화 장치 및 그 방법
US6256423B1 (en) 1998-09-18 2001-07-03 Sarnoff Corporation Intra-frame quantizer selection for video compression
US6546049B1 (en) 1998-10-05 2003-04-08 Sarnoff Corporation Parameterized quantization matrix adaptation for video encoding
CN1292201A (zh) 1998-11-04 2001-04-18 三菱电机株式会社 图象解码装置和图象编码装置
US6393155B1 (en) 1998-11-04 2002-05-21 International Business Machines Corporation Error reduction in transformed digital data
US6256422B1 (en) 1998-11-04 2001-07-03 International Business Machines Corporation Transform-domain correction of real-domain errors
US6584154B1 (en) 1998-11-26 2003-06-24 Oki Electric Industry Co., Ltd. Moving-picture coding and decoding method and apparatus with reduced computational cost
US6418166B1 (en) 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6223162B1 (en) 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6473534B1 (en) 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
WO2000049570A1 (en) 1999-02-19 2000-08-24 Unisearch Limited Method for visual optimisation of embedded block codes to exploit visual masking phenomena
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
FR2794563B1 (fr) 1999-06-04 2002-08-16 Thomson Multimedia Sa Procede d'adressage de panneau d'affichage au plasma
US6490319B1 (en) 1999-06-22 2002-12-03 Intel Corporation Region of interest video coding
JP2001008215A (ja) 1999-06-24 2001-01-12 Victor Co Of Japan Ltd 動画像符号化装置及びその方法
US6263022B1 (en) 1999-07-06 2001-07-17 Philips Electronics North America Corp. System and method for fine granular scalable video with selective quality enhancement
WO2001006794A1 (en) 1999-07-20 2001-01-25 Koninklijke Philips Electronics N.V. Encoding method for the compression of a video sequence
US6408026B1 (en) 1999-08-06 2002-06-18 Sony Corporation Deadzone quantization method and apparatus for image compression
FI107495B (fi) 1999-08-13 2001-08-15 Nokia Multimedia Network Termi Menetelmä ja järjestely koodatun digitaalisen kuvabittivirran volyymin tai tahdin pienentämiseksi
JP2001136535A (ja) 1999-08-25 2001-05-18 Fuji Xerox Co Ltd 画像符号化装置および量子化特性決定装置
US6788740B1 (en) 1999-10-01 2004-09-07 Koninklijke Philips Electronics N.V. System and method for encoding and decoding enhancement layer data using base layer quantization data
US6693645B2 (en) 1999-12-01 2004-02-17 Ivast, Inc. Optimized BIFS encoder
US6765962B1 (en) 1999-12-02 2004-07-20 Sarnoff Corporation Adaptive selection of quantization scales for video encoding
US6456744B1 (en) 1999-12-30 2002-09-24 Quikcat.Com, Inc. Method and apparatus for video compression using sequential frame cellular automata transforms
US6738423B1 (en) 2000-01-21 2004-05-18 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
FI116819B (fi) 2000-01-21 2006-02-28 Nokia Corp Menetelmä kuvien lähettämiseksi ja kuvakooderi
US6600836B1 (en) 2000-01-28 2003-07-29 Qualcomm, Incorporated Quality based image compression
JP2001245303A (ja) * 2000-02-29 2001-09-07 Toshiba Corp 動画像符号化装置および動画像符号化方法
US7035473B1 (en) 2000-03-01 2006-04-25 Sharp Laboratories Of America, Inc. Distortion-adaptive visual frequency weighting
JP4254017B2 (ja) * 2000-03-10 2009-04-15 ソニー株式会社 画像符号化装置及び方法
EP1279295A1 (en) 2000-04-27 2003-01-29 Koninklijke Philips Electronics N.V. Video compression
US7289154B2 (en) 2000-05-10 2007-10-30 Eastman Kodak Company Digital image processing method and apparatus for brightness adjustment of digital images
US6876703B2 (en) 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
US6747660B1 (en) 2000-05-12 2004-06-08 Microsoft Corporation Method and system for accelerating noise
US6873654B1 (en) 2000-05-16 2005-03-29 Redrock Semiconductor, Inc Method and system for predictive control for live streaming video/audio media
JP2001358948A (ja) 2000-06-15 2001-12-26 Canon Inc 画像処理方法及び装置
US7023922B1 (en) 2000-06-21 2006-04-04 Microsoft Corporation Video coding system and method using 3-D discrete wavelet transform and entropy coding with motion information
US6593925B1 (en) 2000-06-22 2003-07-15 Microsoft Corporation Parameterized animation compression methods and arrangements
US7177358B2 (en) 2000-06-27 2007-02-13 Mitsubishi Denki Kabushiki Kaisha Picture coding apparatus, and picture coding method
US20020021756A1 (en) 2000-07-11 2002-02-21 Mediaflow, Llc. Video compression using adaptive selection of groups of frames, adaptive bit allocation, and adaptive replenishment
JP4256574B2 (ja) 2000-08-04 2009-04-22 富士通株式会社 画像信号符号化方法および画像信号符号化装置
JP3825615B2 (ja) 2000-08-11 2006-09-27 株式会社東芝 動画像符号化装置および動画像符号化方法およびプログラムを記録した媒体
JP3561485B2 (ja) 2000-08-18 2004-09-02 株式会社メディアグルー 符号化信号分離・合成装置、差分符号化信号生成装置、符号化信号分離・合成方法、差分符号化信号生成方法、符号化信号分離・合成プログラムを記録した媒体および差分符号化信号生成プログラムを記録した媒体
US6678422B1 (en) 2000-08-30 2004-01-13 National Semiconductor Corporation Method and apparatus for image data compression with low memory requirement
US6834080B1 (en) 2000-09-05 2004-12-21 Kabushiki Kaisha Toshiba Video encoding method and video encoding apparatus
US7058127B2 (en) 2000-12-27 2006-06-06 International Business Machines Corporation Method and system for video transcoding
WO2002054777A1 (en) 2000-12-28 2002-07-11 Koninklijke Philips Electronics N.V. Mpeg-2 down-sampled video generation
US6757429B2 (en) 2001-02-21 2004-06-29 Boly Media Communications Inc. Method of compressing digital images
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
FR2822284B1 (fr) 2001-03-13 2004-01-02 Thomson Multimedia Sa Procede d'affichage d'images video sur panneau d'affichage a plasma et panneaux d'affichage a plasma correspondant
US6832005B2 (en) 2001-03-23 2004-12-14 Microsoft Corporation Adaptive encoding and decoding of bi-level images
US6831947B2 (en) 2001-03-23 2004-12-14 Sharp Laboratories Of America, Inc. Adaptive quantization based on bit rate prediction and prediction error energy
US20040131116A1 (en) * 2001-03-29 2004-07-08 Akira Sugiyama Image processing apparatus, image processing method, image processing program, and recording medium
US6687294B2 (en) 2001-04-27 2004-02-03 Koninklijke Philips Electronics N.V. Distortion quantizer model for video encoding
US7206453B2 (en) 2001-05-03 2007-04-17 Microsoft Corporation Dynamic filtering for lossy compression
US6882753B2 (en) 2001-06-04 2005-04-19 Silicon Integrated Systems Corp. Adaptive quantization using code length in image compression
US6704718B2 (en) 2001-06-05 2004-03-09 Microsoft Corporation System and method for trainable nonlinear prediction of transform coefficients in data compression
US6909745B1 (en) 2001-06-05 2005-06-21 At&T Corp. Content adaptive video encoder
US6975680B2 (en) 2001-07-12 2005-12-13 Dolby Laboratories, Inc. Macroblock mode decision biasing for video compression systems
US7042941B1 (en) 2001-07-17 2006-05-09 Vixs, Inc. Method and apparatus for controlling amount of quantization processing in an encoder
US7079692B2 (en) 2001-07-24 2006-07-18 Koninklijke Philips Electronics N.V. Reduced complexity video decoding by reducing the IDCT computation in B-frames
US7801215B2 (en) 2001-07-24 2010-09-21 Sasken Communication Technologies Limited Motion estimation technique for digital video encoding applications
US6987889B1 (en) 2001-08-10 2006-01-17 Polycom, Inc. System and method for dynamic perceptual coding of macroblocks in a video frame
US7110455B2 (en) 2001-08-14 2006-09-19 General Instrument Corporation Noise reduction pre-processor for digital video using previously generated motion vectors and adaptive spatial filtering
JP4392782B2 (ja) 2001-08-21 2010-01-06 Kddi株式会社 低レート映像符号化における量子化制御方法
US6977659B2 (en) 2001-10-11 2005-12-20 At & T Corp. Texture replacement in video sequences and images
US6810083B2 (en) 2001-11-16 2004-10-26 Koninklijke Philips Electronics N.V. Method and system for estimating objective quality of compressed video data
US6993200B2 (en) 2001-11-20 2006-01-31 Sony Corporation System and method for effectively rendering high dynamic range images
JP4254147B2 (ja) 2001-11-30 2009-04-15 ソニー株式会社 画像情報符号化方法及び装置、並びにプログラム及び記録媒体
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
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
US6763068B2 (en) 2001-12-28 2004-07-13 Nokia Corporation Method and apparatus for selecting macroblock quantization parameters in a video encoder
EP1470726A1 (en) 2001-12-31 2004-10-27 STMicroelectronics Asia Pacific Pte Ltd. Video encoding
US6985529B1 (en) 2002-01-07 2006-01-10 Apple Computer, Inc. Generation and use of masks in MPEG video encoding to indicate non-zero entries in transformed macroblocks
US20030128754A1 (en) 2002-01-09 2003-07-10 Hiroshi Akimoto Motion estimation method for control on the basis of scene analysis in video compression systems
US6647152B2 (en) 2002-01-25 2003-11-11 Thomson Licensing S.A. Method and system for contouring reduction
US7430303B2 (en) 2002-03-29 2008-09-30 Lockheed Martin Corporation Target detection method and system
US7116831B2 (en) 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
MXPA04010318A (es) 2002-04-23 2005-02-03 Nokia Corp Metodo y dispositivo para indicar parametros del cuantificador en un sistema de codificacion de video.
KR20050007348A (ko) 2002-04-26 2005-01-17 더 트러스티스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕 유틸리티 기능 디스크립터에 기초하는 최적의 비디오트랜스코딩 방법 및 시스템
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US20030215011A1 (en) 2002-05-17 2003-11-20 General Instrument Corporation Method and apparatus for transcoding compressed video bitstreams
US7145948B2 (en) 2002-05-29 2006-12-05 Koninklijke Philips Electronics N.V. Entropy constrained scalar quantizer for a Laplace-Markov source
JP2004023288A (ja) * 2002-06-13 2004-01-22 Kddi R & D Laboratories Inc 動画像符号化のための前処理方式
US6961376B2 (en) 2002-06-25 2005-11-01 General Instrument Corporation Methods and apparatus for rate control during dual pass encoding
US7280700B2 (en) 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7599579B2 (en) 2002-07-11 2009-10-06 Ge Medical Systems Global Technology Company, Llc Interpolated image filtering method and apparatus
US6947045B1 (en) 2002-07-19 2005-09-20 At&T Corporation Coding of animated 3-D wireframe models for internet streaming applications: methods, systems and program products
US6891548B2 (en) * 2002-08-23 2005-05-10 Hewlett-Packard Development Company, L.P. System and method for calculating a texture-mapping gradient
JP2005538601A (ja) 2002-09-06 2005-12-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 改善された効率及び誤差回復のためのコンテンツ適応型マルチプル・ディスクリプション動き補償
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US6807317B2 (en) 2002-10-25 2004-10-19 Motorola, Inc. Method and decoder system for reducing quantization effects of a decoded image
US7139437B2 (en) 2002-11-12 2006-11-21 Eastman Kodak Company Method and system for removing artifacts in compressed images
GB0228556D0 (en) 2002-12-06 2003-01-15 British Telecomm Video quality measurement
US8054880B2 (en) 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
US7099389B1 (en) 2002-12-10 2006-08-29 Tut Systems, Inc. Rate control with picture-based lookahead window
JP4214771B2 (ja) 2002-12-12 2009-01-28 ソニー株式会社 画像処理装置およびその方法と符号化装置
KR20040058929A (ko) 2002-12-27 2004-07-05 삼성전자주식회사 Dtc 기반의 개선된 동영상 부호화 방법 및 그 장치
KR100584552B1 (ko) 2003-01-14 2006-05-30 삼성전자주식회사 동영상 부호화 및 복호화 방법과 그 장치
US7212571B2 (en) 2003-01-31 2007-05-01 Seiko Epson Corporation Method and apparatus for DCT domain filtering for block based encoding
EP1445958A1 (en) 2003-02-05 2004-08-11 STMicroelectronics S.r.l. Quantization method and system, for instance for video MPEG applications, and computer program product therefor
KR100539923B1 (ko) * 2003-02-10 2005-12-28 삼성전자주식회사 화상통화시 화자의 영상을 구분하여 차등적 부호화할 수있는 비디오 엔코더 및 이를 이용한 비디오신호의 압축방법
JP3984178B2 (ja) * 2003-02-13 2007-10-03 日本電信電話株式会社 映像符号化方法、映像符号化装置、映像符号化プログラム及びそのプログラムを記録した記録媒体
KR100977713B1 (ko) 2003-03-15 2010-08-24 삼성전자주식회사 영상신호의 글자 인식을 위한 전처리 장치 및 방법
SG140441A1 (en) 2003-03-17 2008-03-28 St Microelectronics Asia Decoder and method of decoding using pseudo two pass decoding and one pass encoding
EP1465349A1 (en) 2003-03-31 2004-10-06 Interuniversitair Microelektronica Centrum Vzw Embedded multiple description scalar quantizers for progressive image transmission
WO2005004335A2 (en) 2003-06-25 2005-01-13 Georgia Tech Research Corporation Cauchy-distribution based coding system and method
US7512180B2 (en) 2003-06-25 2009-03-31 Microsoft Corporation Hierarchical data compression system and method for coding video data
US7200277B2 (en) 2003-07-01 2007-04-03 Eastman Kodak Company Method for transcoding a JPEG2000 compressed image
US7194031B2 (en) 2003-07-09 2007-03-20 Silicon Integrated Systems Corp. Rate control method with region of interesting support
US7383180B2 (en) 2003-07-18 2008-06-03 Microsoft Corporation Constant bitrate media encoding techniques
US7343291B2 (en) 2003-07-18 2008-03-11 Microsoft Corporation Multi-pass variable bitrate media encoding
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7426308B2 (en) 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7602851B2 (en) 2003-07-18 2009-10-13 Microsoft Corporation Intelligent differential quantization of video coding
US8218624B2 (en) 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7580584B2 (en) 2003-07-18 2009-08-25 Microsoft Corporation Adaptive multiple quantization
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
JP4388771B2 (ja) 2003-07-18 2009-12-24 三菱電機株式会社 動画像復号装置、および動画像復号方法
US20050024487A1 (en) 2003-07-31 2005-02-03 William Chen Video codec system with real-time complexity adaptation and region-of-interest coding
KR100505699B1 (ko) 2003-08-12 2005-08-03 삼성전자주식회사 실시간 가변 비트율 제어로 화질을 개선시키는 비디오인코더의 인코딩율 제어기, 이를 구비한 비디오 데이터전송 시스템 및 그 방법
US7924921B2 (en) 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7162093B2 (en) 2003-09-07 2007-01-09 Microsoft Corporation Slice-layer in video codec
US20050084013A1 (en) 2003-10-15 2005-04-21 Limin Wang Frequency coefficient scanning paths
US8223844B2 (en) 2003-11-14 2012-07-17 Intel Corporation High frequency emphasis in decoding of encoded signals
US20050105612A1 (en) 2003-11-14 2005-05-19 Sung Chih-Ta S. Digital video stream decoding method and apparatus
JP4063205B2 (ja) * 2003-11-20 2008-03-19 セイコーエプソン株式会社 画像データ圧縮装置及びエンコーダ
EP1536647A1 (en) 2003-11-26 2005-06-01 STMicroelectronics Limited A video decoding device
KR20050061762A (ko) 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
US7391809B2 (en) 2003-12-30 2008-06-24 Microsoft Corporation Scalable video transcoding
KR100556340B1 (ko) 2004-01-13 2006-03-03 (주)씨앤에스 테크놀로지 영상 부호화 장치
CN101699866B (zh) 2004-01-30 2016-08-03 松下电器(美国)知识产权公司 运动图片编码方法和运动图片解码方法
US20050190836A1 (en) 2004-01-30 2005-09-01 Jiuhuai Lu Process for maximizing the effectiveness of quantization matrices in video codec systems
US7492820B2 (en) 2004-02-06 2009-02-17 Apple Inc. Rate control for video coder employing adaptive linear regression bits modeling
EP1564997A1 (en) 2004-02-12 2005-08-17 Matsushita Electric Industrial Co., Ltd. Encoding and decoding of video images based on a quantization with an adaptive dead-zone size
KR100860147B1 (ko) 2004-02-20 2008-09-24 닛본 덴끼 가부시끼가이샤 화상 부호화 방법, 그 장치 및 제어 프로그램을 기록한 컴퓨터 판독가능한 기록 매체
JP4273996B2 (ja) 2004-02-23 2009-06-03 ソニー株式会社 画像符号化装置及び方法、並びに画像復号装置及び方法
JP2005260467A (ja) * 2004-03-10 2005-09-22 Konica Minolta Opto Inc 画像処理装置
US8503542B2 (en) 2004-03-18 2013-08-06 Sony Corporation Methods and apparatus to reduce blocking noise and contouring effect in motion compensated compressed video
US7689051B2 (en) 2004-04-15 2010-03-30 Microsoft Corporation Predictive lossless coding of images and video
JP4476104B2 (ja) * 2004-04-22 2010-06-09 三洋電機株式会社 符号化回路
US7801383B2 (en) 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
US20050259729A1 (en) 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
US20050276493A1 (en) 2004-06-01 2005-12-15 Jun Xin Selecting macroblock coding modes for video encoding
CN100361534C (zh) * 2004-06-14 2008-01-09 厦门华侨电子股份有限公司 视频编码解码系统中用于去除块效应的方法及装置
WO2006007279A2 (en) 2004-06-18 2006-01-19 Thomson Licensing Method and apparatus for video codec quantization
US20070230565A1 (en) 2004-06-18 2007-10-04 Tourapis Alexandros M Method and Apparatus for Video Encoding Optimization
FR2872973A1 (fr) 2004-07-06 2006-01-13 Thomson Licensing Sa Procede ou dispositif de codage d'une sequence d'images sources
US7606427B2 (en) 2004-07-08 2009-10-20 Qualcomm Incorporated Efficient rate control techniques for video encoding
KR100678949B1 (ko) 2004-07-15 2007-02-06 삼성전자주식회사 비디오 코딩 및 디코딩 방법, 비디오 인코더 및 디코더
EP2194720A1 (en) 2004-07-20 2010-06-09 Qualcom Incorporated Method and apparatus for encoder assisted-frame rate up conversion (EA-FRUC) for video compression
US7474316B2 (en) 2004-08-17 2009-01-06 Sharp Laboratories Of America, Inc. Bit-depth extension of digital displays via the use of models of the impulse response of the visual system
US20060056508A1 (en) 2004-09-03 2006-03-16 Phillippe Lafon Video coding rate control
US7916952B2 (en) 2004-09-14 2011-03-29 Gary Demos High quality wide-range multi-layer image compression coding system
DE102004059993B4 (de) 2004-10-15 2006-08-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Bewegungsdaten-Prädiktion sowie Computerprogramm und computerlesbares Medium
US20060098733A1 (en) 2004-11-08 2006-05-11 Kabushiki Kaisha Toshiba Variable-length coding device and method of the same
US20060104350A1 (en) 2004-11-12 2006-05-18 Sam Liu Multimedia encoder
JP2006140758A (ja) 2004-11-12 2006-06-01 Toshiba Corp 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
US7620103B2 (en) 2004-12-10 2009-11-17 Lsi Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
US8031768B2 (en) 2004-12-15 2011-10-04 Maxim Integrated Products, Inc. System and method for performing optimized quantization via quantization re-scaling
EP1675402A1 (en) 2004-12-22 2006-06-28 Thomson Licensing Optimisation of a quantisation matrix for image and video coding
WO2006070787A1 (ja) 2004-12-28 2006-07-06 Nec Corporation 動画像符号化方法、及びこれを用いた装置と、コンピュータプログラム
US7653129B2 (en) 2004-12-28 2010-01-26 General Instrument Corporation Method and apparatus for providing intra coding frame bit budget
JP2008527827A (ja) 2005-01-07 2008-07-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 垂線流れに動的に基づいた量子化ステップ・サイズを用いてビデオ信号を処理する方法
US20060188014A1 (en) 2005-02-23 2006-08-24 Civanlar M R Video coding and adaptation by semantics-driven resolution control for transport and storage
US7724972B2 (en) 2005-03-01 2010-05-25 Qualcomm Incorporated Quality metric-biased region-of-interest coding for video telephony
KR100763178B1 (ko) 2005-03-04 2007-10-04 삼성전자주식회사 색 공간 스케일러블 비디오 코딩 및 디코딩 방법, 이를위한 장치
US8325797B2 (en) 2005-04-11 2012-12-04 Maxim Integrated Products, Inc. System and method of reduced-temporal-resolution update for video coding and quality control
US7876833B2 (en) 2005-04-11 2011-01-25 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive up-scaling for spatially scalable coding
RU2377736C2 (ru) 2005-04-13 2009-12-27 Нокиа Корпорейшн Кодирование, хранение и передача информации о масштабируемости
US7620252B2 (en) 2005-04-22 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for compressing an image
US7657098B2 (en) 2005-05-02 2010-02-02 Samsung Electronics Co., Ltd. Method and apparatus for reducing mosquito noise in decoded video sequence
US7684632B2 (en) 2005-05-16 2010-03-23 Hewlett-Packard Development Company, L.P. Estimating image compression quantization parameter values
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
CN100358364C (zh) * 2005-05-27 2007-12-26 上海大学 基于h.264的精细颗粒可伸缩编码的码率控制方法
EP1908303A4 (en) 2005-07-01 2011-04-06 Sonic Solutions METHOD, DEVICE AND SYSTEM FOR USE IN MULTIMEDIA SIGNAL CODING
KR100667806B1 (ko) 2005-07-07 2007-01-12 삼성전자주식회사 영상 부호화 및 복호화 방법 및 장치
US20070009042A1 (en) 2005-07-08 2007-01-11 Robert Craig Video game system using pre-encoded macro-blocks in an I-frame
US20070147497A1 (en) 2005-07-21 2007-06-28 Nokia Corporation System and method for progressive quantization for scalable image and video coding
JP5484725B2 (ja) 2005-07-21 2014-05-07 トムソン ライセンシング スケーラブルビデオコーディングのための重み付け予測方法及び装置
US20070053603A1 (en) 2005-09-08 2007-03-08 Monro Donald M Low complexity bases matching pursuits data coding and decoding
US8879857B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
US7778476B2 (en) 2005-10-21 2010-08-17 Maxim Integrated Products, Inc. System and method for transform coding randomization
US7889790B2 (en) 2005-12-20 2011-02-15 Sharp Laboratories Of America, Inc. Method and apparatus for dynamically adjusting quantization offset values
AU2006338425B2 (en) 2006-02-13 2010-12-09 Kabushiki Kaisha Toshiba Moving image encoding/decoding method and device and program
JP4529919B2 (ja) 2006-02-28 2010-08-25 日本ビクター株式会社 適応量子化装置及び適応量子化プログラム
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US20070237237A1 (en) 2006-04-07 2007-10-11 Microsoft Corporation Gradient slope detection for video compression
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
JP2007281949A (ja) 2006-04-07 2007-10-25 Matsushita Electric Ind Co Ltd 画像符号化装置、画像符号化復号システム、画像符号化方法、および画像符号化復号方法
US7974340B2 (en) 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
EP1871113A1 (en) 2006-06-20 2007-12-26 THOMSON Licensing Method and apparatus for encoding video enhancement layer with multiresolution color scalability
US7840078B2 (en) 2006-07-10 2010-11-23 Sharp Laboratories Of America, Inc. Methods and systems for image processing control based on adjacent block characteristics
US7885471B2 (en) 2006-07-10 2011-02-08 Sharp Laboratories Of America, Inc. Methods and systems for maintenance and use of coded block pattern information
US8773494B2 (en) 2006-08-29 2014-07-08 Microsoft Corporation Techniques for managing visual compositions for a multimedia conference call
US7885476B2 (en) 2006-12-14 2011-02-08 Sony Corporation System and method for effectively performing an adaptive encoding procedure
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
WO2008102601A1 (ja) 2007-02-23 2008-08-28 Panasonic Corporation 権利情報移動方法、コンテンツ再生装置、半導体装置
US20080240257A1 (en) 2007-03-26 2008-10-02 Microsoft Corporation Using quantization bias that accounts for relations between transform bins and quantization bins
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
TW200845723A (en) 2007-04-23 2008-11-16 Thomson Licensing Method and apparatus for encoding video data, method and apparatus for decoding encoded video data and encoded video signal
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8542730B2 (en) 2008-02-22 2013-09-24 Qualcomm, Incorporated Fast macroblock delta QP decision
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526096B2 (en) 1996-09-20 2003-02-25 Nokia Mobile Phones Limited Video coding system for estimating a motion vector field by using a series of motion estimators of varying complexity
WO1999048300A1 (en) 1998-03-14 1999-09-23 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a video signal
US20020118884A1 (en) 2000-12-13 2002-08-29 Cho Hyun Duk Device and method for encoding DPCM image
US20030095599A1 (en) 2001-11-17 2003-05-22 Lg Electronics Inc. Object-based bit rate control method and system thereof

Also Published As

Publication number Publication date
US20070248164A1 (en) 2007-10-25
CN101931815A (zh) 2010-12-29
JP5391290B2 (ja) 2014-01-15
JP5124562B2 (ja) 2013-01-23
JP2012085367A (ja) 2012-04-26
KR20090006080A (ko) 2009-01-14
US8767822B2 (en) 2014-07-01
US20110255595A1 (en) 2011-10-20
CN101931815B (zh) 2013-01-09
EP2005754A1 (en) 2008-12-24
JP2009533900A (ja) 2009-09-17
US7995649B2 (en) 2011-08-09
CN101416512B (zh) 2011-05-25
EP2005754A4 (en) 2014-01-22
EP2005754B1 (en) 2017-01-18
CN101416512A (zh) 2009-04-22
WO2007117707A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
KR101323066B1 (ko) 텍스처 레벨에 기반한 양자화 조정
KR101437182B1 (ko) Dc 천이 아티팩트에 대한 양자화 조정
US8130828B2 (en) Adjusting quantization to preserve non-zero AC coefficients
US20070237237A1 (en) Gradient slope detection for video compression
US8576908B2 (en) Regions of interest for quality adjustments
US8442337B2 (en) Encoding adjustments for animation content
US8331438B2 (en) Adaptive selection of picture-level quantization parameters for predicted video pictures
US8422546B2 (en) Adaptive video encoding using a perceptual model
US7974340B2 (en) Adaptive B-picture quantization control
US8189933B2 (en) Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8498335B2 (en) Adaptive deadzone size adjustment in quantization
KR20170077281A (ko) 샘플 적응성 오프셋 제어
KR20060072070A (ko) 이미지 또는 픽쳐 시퀀스를 인코딩하는데 사용될 수 있는양자화 매트릭스를 발생하는 방법 및 장치
US20150334417A1 (en) Coding a Sequence of Digital Images

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee