KR101702156B1 - 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치 - Google Patents

비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치 Download PDF

Info

Publication number
KR101702156B1
KR101702156B1 KR1020117030106A KR20117030106A KR101702156B1 KR 101702156 B1 KR101702156 B1 KR 101702156B1 KR 1020117030106 A KR1020117030106 A KR 1020117030106A KR 20117030106 A KR20117030106 A KR 20117030106A KR 101702156 B1 KR101702156 B1 KR 101702156B1
Authority
KR
South Korea
Prior art keywords
coding unit
rounding
offsets
macroblocks
rounding offsets
Prior art date
Application number
KR1020117030106A
Other languages
English (en)
Other versions
KR20120013437A (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 KR20120013437A publication Critical patent/KR20120013437A/ko
Application granted granted Critical
Publication of KR101702156B1 publication Critical patent/KR101702156B1/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/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/179Methods 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 a scene or a shot
    • 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/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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
    • 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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 인코딩 및 디코딩을 위한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치들이 제공된다. 장치는 입력 코딩 유닛과 참조 코딩 유닛 간의 차이에 대응하는 입력 코딩 유닛에 대한 레시듀얼을 결정하고, 적어도 하나의 변환 계수를 획득하기 위해 레시듀얼에 변환을 적용하고, 특정 양자화 단계 크기 및 라운딩 오프셋을 선택하여 적어도 하나의 변환 계수를 양자화함으로써 입력 코딩 유닛을 인코딩하기 위한 비디오 인코더(100)를 포함한다.

Description

비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치{METHODS AND APPARATUS FOR IMPROVED QUANTIZATION ROUNDING OFFSET ADJUSTMENT FOR VIDEO ENCODING AND DECODING}
[관련된 출원들에 대한 상호 참조]
본 출원은, 2009년 5월 16일 출원된 미국 특허출원 번호 제61/178,957호(대리인 번호 제PU090038호)의 이익을 주장하고 이것의 전체를 여기서 참조로서 통합한다.
[기술분야]
본 원리들은 일반적으로 비디오 인코딩 및 디코딩과 관련하고, 더 특별하게는 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정(quantization rounding offset adjustment)을 위한 방법들 및 장치와 관련한다.
대부분의 비디오 애플리케이션들이 비트 레이트 제약들이 주어지면 가장 높은 가능한 인지 품질을 찾는다. 예를 들어, 비디오 폰 시스템과 같은 낮은 비트 레이트의 애플리케이션에서, 비디오 인코더는 시각적으로 더 중요한 관심 영역들에서 강한 시각적 아티팩트들을 제거함으로써 더 높은 품질을 제공할 수 있다. 반면에, 높은 비트 레이트 애플리케이션에서, 시각적인 손실 없는 품질이 픽처들 내의 어디에서나 기대되고, 또한 비디오 인코더가 깨끗한 품질(transparent quality)을 성취할 필요가 있다. 높은 비트 레이트 애플리케이션들에서 깨끗한 시각적 품질을 획득하는 데에 하나의 도전과제는 세부사항들을 보존하는 것인데, 특히 인간의 시각적 시스템의 텍스처 마스킹 성질(texture masking property) 때문에 세부사항들의 손실이 스무스(smooth)하지 않은 영역들에서 눈에 띄는 것보다 더 눈에 띄는 스무스한 영역들에서 그러하다.
비트 레이트를 높이는 것은 품질을 개선하기 위한 가장 직접적인 접근법들 중의 하나이다. 비트 레이트가 주어지는 경우에 인코더가 가장 비주얼한 품질 개선이 획득될 수 있는 경우에 가용 비트들을 활용하도록 자신의 비트 할당 모듈을 조작한다. DVD 오서링(authoring)과 같은 비실시간 애플리케이션들에서, 비디오 인코더가, 어려운 콘텐츠 및 쉬운 콘텐츠 모두에 대해 시간에 걸쳐 일정한 품질을 갖는 비디오를 산출하도록 가변 비트 레이트(VBR: variable-bit-rate) 설계를 구현할 수 있다. 그러한 애플리케이션들에서, 가용 비트들은 일정한 품질을 획득하기 위해 다른 비디오 세그먼트들에 걸쳐 적절하게 분배된다. 대조적으로, 일정한 비트 레이트(CBR: constant-bit-rate) 시스템은 동일한 수의 비트를, 픽처들의 인코딩 곤란성에도 불구하고 하나 이상의 픽처들의 인터벌에 할당하고, 비디오 콘텐츠에 따라 변하는 시각적 품질을 산출한다. VBR 및 CBR 인코딩 시스템들 모두에 대해, 인코더는 픽처에서의 인지 모델들에 따라 비트들을 할당할 수 있다. 인간 인지(human perception)의 하나의 특성은 텍스처 마스킹인데, 이는 인간의 눈들이 텍스처링된 영역들에서보다 스무스한 영역들에서 품질의 손실에 더 민감한 이유를 설명한다. 이런 성질은 높은 시각적 품질을 획득하기 위해 스무스한 영역들에 할당될 비트들의 수를 증가시키는 데에 활용될 수 있다.
비디오 인코더에서의 양자화 프로세스는 인코딩되는 비트들의 수와 품질을 제어한다. 양자화 파라미터들을 조정함으로써 품질을 조정하는 것이 일반적이다. 예시적 목적들을 위해, 우리는 ISO/IEC(International Organization for Standardization/International Electrotechnical Commission) MPEG-4(Moving Picture Experts Group-4) Part 10 Advanced Video Coding(AVC) 표준/International Telecommunication Union, Telecommunication Sector(ITU-T) H. 264 권장(이하 "MPEG-4 AVC 표준"이라고 함)을, MPEG-4 표준상에서 본 원리들을 구현함으로써 가질 수 있는 양자화 프로세스 및 개선들을 설명하기 위한 기본적인 예로 삼겠다. 그러나, 본 원리들이 오직 MPEG-4 AVC 표준에만 제약되는 것이 아니고, 그에 따라, 본 원리들의 정신을 유지하면서 다른 비디오 코딩 표준들, 권장들, 및 그것들의 확장들에 적용될 수 있다는 것을 알아야 한다.
수학적으로, 인코더에서 변환된 계수들은 이하와 같이 양자화된다:
[수학식 1]
Figure 112011099939724-pct00001
,
여기서 W는 변환된 계수이고 양자화 레벨 Z로 양자화된다. 여기서, q는 양자화 단계 크기이고 s는 양자화 라운딩 오프셋(rounding offset)이다. 함수
Figure 112011099939724-pct00002
는 값을 가장 가까운 정수로 라운딩하고 sgn(.)은 신호의 부호를 되돌린다. 양자화 매트릭스가 적용되는 경우에 계수들은 인코더에서의 양자화 프로세스 전에 첫 번째로 스케일링된다. 0으로 양자화되는 W의 범위는 데드존(deadzone)이라고 불린다. 이런 특별한 경우에, 데드존은
Figure 112011099939724-pct00003
이다. 디코더에서, 양자화 단계 Z는 신호 W'로 재구성된다. 이는 역양자화라고 불리고 수학적으로 이하와 같이 기술된다:
[수학식 2]
Figure 112011099939724-pct00004
.
MPEG-4 AVC 표준에서의 신택스(syntax)는 q가 각각의 매크로블록(MB: macroblock)에 대해 상이한 것을 허용한다. 양자화 단계 크기(q)의 값은 파라미터 QP에 의해 인덱싱된 것들, 0 내지 51 범위 내의 정수들 중에서 선택된다. 라운딩 오프셋 파라미터 s는 역양자화에 수반되지 않고 인코더는 이것을 임의의 값으로 설정하는 탄력성을 가진다.
종래의 MPEG-4 AVC 비디오 인코더들은 양자화 라운딩 오프셋이 일정하다고 가정하고 또한 비트들의 수를 조정하고 그에 따라 품질을 조정하기 위해 양자화 단계 크기를 조정하기만 하였다.
[발명의 요약]
종래 기술의 이러한 다른 약점들 및 불이익들이, 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치를 지향하는 본 원리들에 의해 다루어진다.
본 원리들의 특징에 따르면, 장치가 제공된다. 이 장치는, 입력 코딩 유닛과 참조 코딩 유닛 간의 차이에 대응하는 상기 입력 코딩 유닛에 대한 레시듀얼을 결정하고, 적어도 하나의 변환 계수를 획득하기 위해 상기 레시듀얼에 변환을 적용하고 및 특정 양자화 단계 크기와 라운딩 오프셋을 선택함으로써 적어도 하나의 변환 계수를 양자화함으로써, 상기 입력 코딩 유닛을 인코딩하기 위한 비디오 인코더를 포함한다.
본 원리들의 다른 특징에 따르면, 비디오 인코더에서 입력 코딩 유닛을 인코딩하기 위한 방법이 제공된다. 본 방법은 상기 입력 코딩 유닛과 참조 코딩 유닛 간의 차이에 대응하는 상기 입력 코딩 유닛에 대한 레시듀얼을 결정하는 단계 및 적어도 하나의 변환 계수를 획득하기 위해 상기 레시듀얼에 변환을 적용하는 단계 및 특정 양자화 단계 크기와 라운딩 오프셋을 선택함으로써 적어도 하나의 변환 계수를 양자화하는 단계를 포함한다.
본 원리들의 또 다른 특징에 따르면, 장치가 제공된다. 본 장치는, 코딩 유닛의 원래 버전과 참조 코딩 유닛 간의 변환되고 양자화된 레시듀얼에 대응하는 적어도 하나의 양자화된 계수를 수신하고, 특정 양자화 단계 크기 및 라운딩 오프셋을 결정함으로써 적어도 하나의 역 약자화된 계수를 획득하기 위해 상기 적어도 하나의 양자화된 계수를 역양자화하고, 및 재구성된 레시듀얼을 획득하기 위해 상기 적어도 하나의 역양자화된 계수에 역변환을 적용함으로써, 상기 코딩 유닛을 디코딩하기 위한 비디오 디코더를 포함한다. 이 비디오 디코더는 상기 적어도 하나의 양자화된 계수를 포함하는 비트스트림으로부터 상기 선택된 라운딩 오프셋을 기술하는 정보를 수신한다.
본 원리들의 또 다른 특징에 따르면, 비디오 디코더에서 코딩 유닛을 디코딩하기 위한 방법이 제공된다. 본 방법은 상기 코딩 유닛의 원래 버전과 참조 코딩 유닛 간의 변환되고 양자화된 레시듀얼에 대응하는 적어도 하나의 양자화된 계수를 수신하는 단계, 특정 양자화 단계 크기와 라운딩 오프셋을 선택함으로써 적어도 하나의 역양자화된 계수를 획득하기 위해 상기 적어도 하나의 양자화된 계수를 역양자화하는 단계, 및 재구성된 레시듀얼을 획득하기 위해 상기 적어도 하나의 역양자화된 계수에 역변환을 적용하는 단계를 포함한다. 이 비디오 디코더는 상기 적어도 하나의 양자화된 계수를 포함하는 비트스트림으로부터 상기 선택된 라운딩 오프셋을 기술하는 정보를 수신한다.
본 원리들의 이러한 그리고 다른 측면들, 특징들 및 이점들이 첨부된 도면들과 연관하여 읽어보아야 할 이하의 예시적 실시예들의 상세한 설명으로부터 명백해질 것이다.
본 원리들은 이하의 예시적 도면들에 따라 더 잘 이해될 수 있다.
도 1은 본 원리의 실시예에 따라, 본 원리들이 적용될 수 있는 예시적 비디오 인코더를 도시하는 블록도.
도 2는 본 원리들의 실시예에 따라, 본 원리들이 적용될 수 있는 예시적 비디오 디코더를 도시하는 블록도.
도 3은 종래 기술에 따라, 비디오 인코더에서의 인지 품질을 개선하기 위한 양자화 조정을 위한 방법을 도시하는 흐름도.
도 4는 본 원리들의 실시예에 따라, 인지 품질을 개선하기 위해 픽처 레벨상에서의 라운딩 오프셋 조정을 위한 예시적 방법을 도시하는 흐름도.
도 5는 본 원리들의 실시예에 따라, 인지 품질을 개선하기 위해 매크로블록 레벨상에서의 라운딩 오프셋 조정을 위한 예시적 방법을 도시하는 흐름도.
도 6은 본 원리들의 실시예에 따라, 인지 품질을 개선하기 위해 매크로블록 레벨상에서의 라운딩 오프셋 조정을 위한 또 다른 예시적 방법을 도시한 흐름도.
도 7은 본 원리들의 실시예에 따라, 라운딩 오프셋을 결정하기 위한 예시적 방법을 도시하는 흐름도.
도 8은 본 원리들의 실시예에 따라, 라운딩 오프셋이 알려지고 비트스트림 으로 보내지지 않는 경우에 픽처 데이터를 디코딩하기 위한 예시적 방법을 도시하는 흐름도.
도 9는 본 원리들의 실시예에 따라, 라운딩 오프셋들을 이용하여 디코더에서 코딩 유닛을 재구성하기 위한 예시적 방법을 도시하는 흐름도.
도 10은 본 원리들의 실시예에 따라, 라운딩 오프셋들을 이용하여 인코더에서 입력 코딩 유닛을 인코딩하기 위한 예시적 방법을 도시하는 흐름도.
도 11은 본 원리들의 실시예에 따라, 라운딩 오프셋들을 선택하기 위한 예시적 방법을 도시하는 흐름도.
도 12는 본 원리들의 실시예에 따라, 라운딩 오프셋들을 적용하기 위한 예시적 방법을 도시하는 흐름도.
도 13은 본 원리들의 실시예에 따라, 라운딩 오프셋들을 이용하여 디코더에서 코딩 유닛을 디코딩하기 위한 예시적 방법을 도시하는 흐름도.
본 발명의 원리들은 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치를 지향한다.
본 상세한 설명은 본 원리들을 예시한다. 따라서, 당업자는, 여기서 명백하게 설명되거나 나타내어지지 않았지만, 본 원리들을 구현하고 또한 본 원리의 사상 및 범위에 포함되는 다양한 어레인지먼트들(arrangements)을 고안할 수 있다는 것을 알 것이다.
여기서 기재되는 모든 예들 및 조건적 언어는, 독자가 본 발명자(들)가 기술 발전에 기여한 본 발명의 원리 및 개념을 이해하는 것을 돕도록 지원하기 위한 교육적 목적들(pedagogical purposes)을 위해 의도된 것이고, 또한 그러한 특정적으로 기재된 예시들 및 조건들에만 제약되지 않는다고 해석해야 한다.
더욱이, 원리들, 특징들, 및 본 원리들의 실시예들, 뿐만 아니라, 그것의 특정한 예들을 기재하는 모든 진술들은 그것의 구조적 및 기능적 균등물들 모두를 포괄하도록 의도된다. 추가로, 그러한 균등물들이 현재 알려진 균등물들뿐만 아니라 미래에 개발될 균등물들, 즉 구조에 관계없이 동일한 기능을 수행하도록 개발될 임의의 요소들을 포함하도록 의도된다.
따라서, 예를 들어, 당업자들은 여기서 제시된 블록도들이 본 원리들을 구현하는 예시적 회로의 개념적 뷰들을 표현한다는 것을 알 것이다. 유사하게, 임의의 흐름 차트들, 흐름도들, 상태 천이 다이어그램들, 의사코드, 및 이와 유사한 것은 컴퓨터 판독가능 매체에서 실질적으로 표현되고, 따라서 그러한 컴퓨터 또는 프로세서가 명시적으로 도시되든 안되든, 컴퓨터 또는 프로세서에 의해 실행될 수 있는 여러 프로세스들을 표현한다는 것을 알 것이다.
도면들에서 도시된 여러 요소들의 기능들은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 연합하여 소프트웨어를 실행할 수 있는 하드웨어의 사용을 통해 제공될 수 있다. 프로세서에 의해 제공되는 경우에, 기능들은 단일 전용 프로세서에 의해, 단일 공유 프로세서에 의해, 또는 일부가 공유될 수 있는 복수의 개별 프로세서들에 의해 제공될 수 있다. 더욱이, 용어 "프로세서" 또는 "제어기"의 명시적 이용은 소프트웨어를 실행할 수 있는 하드웨어를 배타적으로 언급하는 것으로 해석해서는 안 되고, 함축적으로 제약 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 ROM, RAM, 및 비휘발성 저장소를 포함할 수 있다.
기존의 및/또는 주문형의 다른 하드웨어 또한 포함될 수 있다. 유사하게, 도면들에서 도시된 임의의 스위치들은 단지 개념적인 것이다. 이들의 기능은 프로그램 로직의 동작을 통해, 전용 로직을 통해, 프로그램 제어 및 전용 로직의 상호 작용을 통해, 또는 심지어 수동으로 수행될 수 있고, 특정 기술이 더 많은 것이 맥락으로부터 특정적으로 이해됨에 따라 구현자에 의해 선택 가능하다.
여기에서의 청구항들에서, 특정한 기능을 수행하기 위한 수단으로서 표명된 임의의 요소는, 예를 들어 a) 그 기능을 수행하는 회로 요소들의 조합 또는 b) 펌웨어, 마이크로코드 또는 이와 유사한 것들을 포함하는 임의 형태의 소프트웨어로서, 해당 기능을 수행하기 위해 해당 소프트웨어를 실행하기 위한 적절한 회로와 조합된 소프트웨어를 포함하여, 해당 기능을 수행하는 임의의 방식을 포괄하도록 의도된다. 그러한 청구항들에 의해 정의되는 바와 같은 본 원리들은, 여러 기재된 수단에 의해 제공되는 기능성들이 청구항들이 요구하는 방식으로 서로 조합되고 이루어진다는 사실에 근거를 두고 있다. 따라서 그러한 기능성들을 제공할 수 있는 임의의 수단들이 여기서 도시된 그것들과 동등하다고 여겨진다.
명세서에서 본 원리들의 "하나의 실시예" 또는 "실시예"뿐만이 아니라 그것들의 다른 변환들에 대한 언급은, 실시예와 연관하여 기술된 특정한 특징, 구조, 특성 등이 본 원리들의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 명세서 전체에 걸쳐서 여러 장소에서 나타나는 구절인 "하나의 실시예에서" 뿐만 아니라 "실시예에서"와 임의의 다른 변환들의 출현들은 반드시 모두 동일한 실시예를 말하는 것은 아니다.
이하의 "/", "및/또는", 및 "중 적어도 하나", 예를 들어, "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 임의의 것을 사용하는 것은 첫 번째로 리스팅된 옵션(A)만의 선택, 또는 두 번째로 리스팅된 옵션(B)만의 선택, 또는 모든 옵션들(A 및 B)의 선택을 포괄하도록 의도된다. 추가의 예로서, "A, B, 및/또는 C" 및 "A, B, 및 C 중 적어도 하나"의 경우에, 그러한 구절은 첫 번째로 리스팅된 옵션(A)의 선택, 두 번째로 리스팅된 옵션(B)만의 선택, 또는 세 번째로 리스팅된 옵션(C)만의 선택, 또는 첫 번째 및 두 번째로 리스팅된 옵션들(A 및 B)만의 선택, 또는 첫 번째 및 세 번째로 리스팅된 옵션들(A 및 C)만의 선택, 또는 두 번째 및 세 번째로 리스팅된 옵션들(B 및 C)만의 선택, 또는 모든 세 개 옵션들(A 및 B 및 C)의 선택을 포괄하도록 의도된다. 이런 사항은, 본 분야 및 관련된 기술 분야에서의 당업자에게 쉽게 명백해지는 바와 같이, 리스팅되는 항목들이 더 많은 것에 대해서도 확장될 수 있다.
또한, 여기서 이용되는 바와 같이, 단어들 "픽처" 및 "이미지"는 상호교환 가능하게 이용되고 또한 비디오 시퀀스로부터의 픽처 또는 정지 이미지를 말한다. 알려진 바와 같이, 픽처는 프레임 또는 필드일 수 있다.
추가로, 여기서 이용된 바와 같이, 구절 "픽처 영역"(또는 줄여서 간단히 "영역")은, 예를 들어 하나 이상의 임의의 크기의 블록들 또는 임의의 모양들을 포괄하는 및/또는 다른 식으로는 그것들로부터 형식화되는 픽처의 일부를 말한다. 하나 이상의 블록은, 예를 들어 초 매크로블록(super macroblock), 매크로블록, 매크로블록 구획(macroblock partition), 서브매크로블록 구획 등등과 관련할 수 있다.
더욱이, 여기서 이용된 바와 같이, 구절 "비디오 시퀀스의 일부"는 하나 이상의 픽처들의 그룹들(GOPs: Groups of Pictures), 하나 이상의 GOPs 중 하나에 포함되거나 그것에 독립적인 하나 이상의 픽처, 및/또는 하나 이상의 장면을 말한다.
더욱이, 여기서 이용된 바와 같이, 구절 "입력 코딩 유닛"은 픽처(즉, 프레임 또는 필드), 픽처 영역, 및/또는 슬라이스(slice) 중 임의의 것을 말한다.
또한, 여기서 이용된 바와 같이, 구절 "디폴트 라운딩 오프셋"은, 특정 비디오 인코더 및/또는 디코더가 부합하게 동작하는, 예를 들어 비디오 코딩 표준, 권장, 이것들의 확장, 및 기타의 것들에 대해 이용되는 것과 같은 것으로서, 특정 비디오 인코더 및 또는 디코더에 의해 전형적으로 이용되는 라운딩 오프셋(즉, 일정 라운딩 오프셋)을 말한다.
추가로, 여기서 이용된 바와 같이, 단어 "신호(signal)"는 대응하는 디코더에게 어떤 것을 표시하는 것을 말한다. 예를 들어, 인코더가, 어떤 특정 라운딩 오프셋이 인코더 측상에서 이용되었는지를 디코더가 알 수 있게 하기 위해 라운딩 오프셋들의 그룹 중의 특정한 하나를 신호할 수 있다. 이런 방식으로 동일한 기능이 인코더 측 및 디코더 측 모두에서 이용될 수 있다. 따라서, 예를 들어, 인코더는, 디코더가 동일한 특정 라운딩 오프셋을 이용할 수 있도록 특정 라운딩 오프셋을 디코더에게 송신할 수 있거나, 또는 만약 디코더가 다른 것들뿐만 아니라 이미 특정 라운딩 오프셋을 가지고 있다면 신호하는 것(signalling)은 디코더가 (송신함이 없이) 특정 라운딩 오프셋을 알고 선택하도록 단순히 허용하는 데에 이용될 수 있다. 임의의 실제 라운딩 오프셋들의 송신을 피함으로써 비트 절감들이 실현될 수 있다. 신호하는 것이 다양한 방식들로 달성될 수 있다는 점을 유의해야 한다. 예를 들어, 하나 이상의 신택스 요소, 플래그들 및 그와 같은 것이 대응하는 디코더에게 정보를 신호하는 데에 이용될 수 있다.
도 1로 넘어가서, 본 원리가 적용될 수 있는 예시적 비디오 인코더가 참조번호 100에 의해 일반적으로 표시된다. 인코더(100)는 프레임 순서화 버퍼(105)를 포함한다. 프레임 순서화 버퍼(105)의 첫 번째 출력은 인코더(100)에의 입력으로서 가용하다. 프레임 순서화 버퍼(105)의 출력은 신호 통신으로 결합기(combiner)(110)의 첫 번째 비반전 입력과 연결된다. 결합기(110)의 출력은 신호 통신으로 트랜스포머(transformer) 및 양자화기(115)의 첫 번째 입력과 연결된다. 트랜스포머 및 양자화기(115)의 출력은 신호 통신으로 엔트로피 코더(120)의 첫 번째 입력과 역트랜스포머 및 양자화기(135)의 입력과 연결된다. 엔트로피 코더의 출력은 신호 통신으로 결합기(125)의 첫 번째 비반전 입력과 연결된다. 결합기(125)의 출력은 신호 통신으로 출력 버퍼(130)의 입력과 연결된다. 출력 버퍼(130)의 첫 번째 출력은 신호 통신으로 레이트 제어기(175)의 입력과 연결된다. 레이트 제어기(175)의 출력은 신호 통신으로 트랜스포머 및 양자화기(115)의 두 번째 입력, 픽처 유형 및 매크로블록(MB) 유형 결정 모듈(170)의 입력, 및 시퀀스 파라미터 세트(SPS: Sequence Parameter Set) 및 픽처 파라미터 세트(PPS: Picture Parameter Set) 삽입기(185)의 입력과 연결된다. 픽처 유형 및 MB 유형 결정 모듈(170)의 첫 번째 출력은 신호 통신으로 프레임 순서화 버퍼(105)의 두 번째 입력과 연결된다. 픽처 유형 및 MB 유형 결정 모듈(170)의 두 번째 출력은 신호 통신으로 결합기(140)의 첫 번째 비반전 입력, 결합기(110)의 두 번째 비반전 입력, 및 스위치(165)의 출력과 연결된다. 스위치(165)의 입력은 신호 통신으로 움직임 보상기/움직임 추정기(155)의 두 번째 출력 또는 인트라 예측 모듈(160)의 출력 중 어느 하나와 연결된다. 결합기(140)의 출력은 신호 통신으로 인트라 예측 모듈(160)의 입력 및 디블록킹 필터(145)의 입력과 연결된다. 디블록킹 필터(145)의 출력은 신호 통신으로 참조 픽처 버퍼(150)의 입력과 연결된다. 참조 픽처 버퍼(150)의 출력은 신호 통신으로 움직임 보상기/움직임 추정기(155)의 입력과 연결된다. 움직임 보상기/움직임 추정기(155)의 첫 번째 출력은 신호 통신으로 엔트로피 코더(120)의 두 번째 입력과 연결된다. SPS 및 PPS 삽입기(185)의 출력은 신호 통신으로 결합기(125)의 두 번째 비반전 입력과 연결된다. SEI 삽입기(180)의 출력은 신호 통신으로 결합기(125)의 세 번째 비반전 입력과 연결된다. SEI 삽입기(180)의 입력은 메타데이터를 수신하기 위해 인코더(100)에 대한 입력으로서 쓸 수 있다. 출력 버퍼(130)의 두 번째 출력은 비트스트림을 출력하기 위해 인코더(100)의 출력으로서 쓸 수 있다.
도 2로 넘어가서, 본 발명이 적용될 수 있는 예시적 비디오 디코더가 참조번호 200에 의해 일반적으로 지시된다. 비디오 디코더(200)는 신호 통신으로 엔트로피 디코더(245)의 첫 번째 입력과 연결되는 출력을 갖는 입력 버퍼(210)를 포함한다. 엔트로피 디코더(245)의 첫 번째 출력은 신호 통신으로 역트랜스포머 및 역양자화기(250)의 첫 번째 입력과 연결된다. 역트랜스포머 및 역양자화기(250)의 출력은 신호 통신으로 결합기(225)의 두 번째 비반전 입력과 연결된다. 결합기(225)의 출력은 신호 통신으로 디블록킹 필터(265)의 두 번째 입력 및 인트라 예측 모듈(260)의 첫 번째 입력과 연결된다. 디블록킹 필터(265)의 두 번째 출력은 신호 통신으로 참조 픽처 버퍼(280)의 첫 번째 입력과 연결된다. 참조 픽처 버퍼(280)의 출력은 신호 통신으로 움직임 보상기(270)의 두 번째 입력과 연결된다.
엔트로피 디코더(245)의 두 번째 출력은 신호 통신으로 움직임 보상기(270)의 세 번째 입력 및 디블록킹 필터(265)의 첫 번째 입력과 연결된다. 엔트로피 디코더(245)의 세 번째 출력은 신호 통신으로 디코더 제어기(205)의 입력과 연결된다. 디코더 제어기(205)의 첫 번째 입력은 신호 통신으로 엔트로피 디코더(245)의 두 번째 입력과 연결된다. 디코더 제어기(205)의 두 번째 출력은 신호 통신으로 역트랜스포머 및 역양자화기(250)의 두 번째 입력과 연결된다. 디코더 제어기(205)의 세 번째 출력은 신호 통신으로 디블록킹 필터(265)의 세 번째 입력과 연결된다. 디코더 제어기(205)의 네 번째 출력은 신호 통신으로 인트라 예측 모듈(260)의 두 번째 입력, 움직임 보상기(270)의 첫 번째 입력, 및 참조 픽처 버퍼(280)의 두 번째 입력과 연결된다.
움직임 보상기(270)의 출력은 신호 통신으로 스위치(297)의 첫 번째 입력과 연결된다. 인트라 예측 모듈(260)의 출력은 신호 통신으로 스위치(297)의 두 번째 입력과 연결된다. 스위치(297)의 출력은 신호 통신으로 결합기(225)의 첫 번째 비반전 입력과 추가로 연결된다.
입력 버퍼(210)의 입력은 입력 비트스트림을 수신하기 위해 디코더(200)의 입력으로서 가용하다. 디블록킹 필터(265)의 첫 번째 출력은 출력 픽처를 출력하기 위해 디코더(200)의 출력으로서 가용하다.
라운딩 오프셋은, 비디오를 재구성하는 데에 또는 후처리(post-processing)를 위해 예를 들어 디코더(200)에서 이용될 수 있다. 이러한 상황에서, 라운딩 오프셋들은[예를 들어, 인코더(100)에 의해] 비트스트림에 임베디드되고 디코더(200)에 전달되어야 한다. 일 실시예에서, 하나의 라운딩 오프셋은 각각의 픽처 또는 픽처들의 그룹에 대해 설정될 수 있다. 또 다른 실시예에서, 라운딩 오프셋은 각각의 매크로블록에 대해 설정될 수 있고 이것의 실제 값 또는 인덱스는 각각의 매크로블록에 대해 보내진다.
위에서 주목한 바와 같이, 본 원리들은 비디오 인코딩 및 디코딩에 대한 개선된 라운딩 오프셋 조정을 위한 방법들 및 장치를 지향한다.
인지 품질(perceptual quality)을 개선하는 데 있어서 하나의 중요한 특징은 필름 그레인(film grain) 및 컴퓨터가 생성한 노이즈(computer-generated noise)와 같은 미세한 세부사항들을 보존하는 것이다. 이것은 미세한 세부사항들의 손실이 크게 눈에 띄는 스무스한 구역들에 대해 특히 중요하다. 기존의 알고리즘들에서의 공통적인 접근법은 일정한 양자화 라운딩 오프셋을 이용하면서, 이러한 스무스한 영역들 또는 스무스한 영역들을 포함하는 비디오 세그먼트들을 더 미세한 양자화 단계 크기들로 인코딩하는 것이다.
수학식 1에서부터 알 수 있는 바와 같이, 라운딩 오프셋은, 이것이 거의 제로인 작은 계수들이 양자화되는 방법을 직접적으로 제어하기 때문에 작은 계수들에 대한 표명된 제어를 갖는다. 우리가 s를 증가시키는 경우에 더 적은 계수들이 0들로 양자화되고, 양자화 단계 크기 q가 주어지면 더 많은 비트들이 작은 계수들을 위해 쓰여진다. 레이트가 주어진 경우에, 증가된 s는 비트 레이트 제약들을 만족시키기 위해 더 성긴(coarser) q와 작동할 필요가 있다. 따라서, 라운딩 오프셋을 증가시키는 것은 큰 계수들에 대한 더 많은 왜곡이라는 손해를 보면서 작은 계수들을 보존할 수 있다. 작은 계수들을 보존하는 것은, 재구성된 비디오에서 필름 그레인 및 컴퓨터 생성 노이즈를 포함하나 이들에게만 제한되지는 않는 미세한 세부사항들을 보존하기 때문에, 본 원리에 따라 라운딩 오프셋 값을 조정하는 것은, 깨끗한 시각적 품질이 기대되는 블루 레이 DVD 오서링과 같은 몇몇의 애플리케이션들에서 대한 높은 인지 품질을 획득하는 데에 매우 효과적일 수 있다.
이하의 기술에서, 우리는 TM5(Test Model version 5)를 이용하여 어떻게 더 높은 품질이 픽처 내의 스무스한 영역들에 대해 획득되는지를 예시한다. 테스트 모델은 MPEG 비디오 워킹 드래프트(MPEG video working draft)와 보조를 맞추어 발전한 것이다. 물론, 본 원리들은 TM5에만 국한되지 않고 본 원리들의 정신을 유지하면서 다른 비디오 코딩 표준들, 권장들 및/또는 그것들의 확장들과 함께 쉽게 이용될 수 있다.
더욱이, 이하의 기술에서, 우리는 투 패스 인코더(two-pass encoder)를 사용하여 어떻게 더 높은 품질이 스무스한 영역들을 포함하는 비디오 세그먼트들에 부여되는지를 보인다. 물론, 본 원리들은 투 패스 인코더에 제한되지 않고, 그에 따라 본 원리들의 정신을 유지하면서 단일 패스 인코더뿐만 아니라 투 패스보다 더 많은 패스를 이용하는 인코더 역시 이용될 수 있다.
TM5에서, 공간적 활동 측도(spatial activity measure)가 원래 화소 값들을 이용하여 네 개의 발광 프레임 조직된 서브블록(luminance frame-organized sub-blocks)(n=1, ..., 4) 및 네 개의 발광 필드 조직된 서브블록(luminance field-organized sub-blocks)(n=5, ..., 8)으로부터 MB j를 위해 계산될 수 있다:
[수학식 3]
Figure 112011099939724-pct00005
,
여기서,
[수학식 4]
Figure 112011099939724-pct00006
,
[수학식 5]
Figure 112011099939724-pct00007
,
여기서,
Figure 112011099939724-pct00008
는 n번째의 원래 8x8 블록에서 샘플 값들이다. actj는 그러면 이하와 같이 표준화된다:
[수학식 6]
Figure 112011099939724-pct00009
,
여기서, avg_act는 앞서 인코딩된 픽처의 actj의 평균값이다. 첫 번째 픽처에서, avg_act는 400으로 설정된다. mquantj는 이하와 같이 획득된다:
[수학식 7]
Figure 112011099939724-pct00010
,
여기서 Qj는 참조 양자화 파라미터이다. mquantj의 최종값은 범위[1 ... 31]로 클리핑되고 또한 인코딩 동안에 양자화 단계 사이즈를 표시하는 데에 이용된다.
따라서, TM5 양자화 방식에서, 더 작은 편차(varience)를 갖는 스무스한 매크로블록(MB)은 공간적 활성 측도 actj 및 N_actj의 더 작은 값, 및 mquantj에 의해 인덱싱된 더 미세한 양자화 단계 크기를 갖는다. 스무스한 매크로블록에 대한 더 미세한 양자화에 의해, 더 미세한 세부사항들이 보존될 수 있고 또한 더 높은 인지 품질이 획득될 수 있다.
비실시간 애플리케이션에서, 인코더는 전체 비디오를 분석할 수 있고 미세한 세부사항들을 포함하는 비디오의 세그먼트들에게 할당된 비트들의 수를 증가시킬 수 있다. 어떤 종래기술 접근법은 투 패스 인코딩 시스템을 제안하는데, 여기서 제1 패스 일정 비트 레이트(CBR: constant-bit-rate) 데이터가 제2 패스를 위한 제어 파라미터들을 준비하도록 프로세싱되었고, 제2 패스는 실제 가변 비트 레이트(VBR: variable-bit-rate) 압축을 수행하였다. 특정하게는, 제2 패스에서, i번째 픽처가 비트들의 목표 수 b2 ,i를 이하와 같이 설정한다:
[수학식 8]
Figure 112011099939724-pct00011
,
여기서, b1 ,i 및 Q1 ,i는 각각 제1 패스로부터의 비트들의 수 및 양자화 단계 크기 파라미터이고, p는 상수이고,
[수학식 9]
Figure 112011099939724-pct00012
,
여기서 Btot는 전체 가용 비트들의 수이고 N은 픽처들의 총 수이다.
이런 투 패스 인코딩 시스템에서, 스무스한 영역들을 갖는 장면과 같은 더 낮은 압축 복잡도를 갖는 장면은 더 작고 더 미세한 양자화 단계 크기들 및 더 높은 피크 신호 대 잡음비들(PSNRs:peak signal-to-noise ratios)에서 인코딩될 것인데, 이는 보통 더 높은 인지 품질을 낳는다.
앞서 기술된 바와 같이, 기존의 방법들은 스무스한 영역들에서 미세한 세부사항들을 보존하기 위해 높은 인지 품질을 성취하도록 인코더에서의 양자화 단계 크기들을 조정한다. 본 원리들의 적어도 하나의 실시예에 따르면, 우리는 스무스한 영역들에서 인지 품질을 개선하기 위해 인코더에 라운딩 오프셋 조정을 도입한다.
적어도 하나의 실시예에 따르면, 우리는 라운딩 오프셋을 조정함으로써 인지 품질을 효과적으로 개선하는 방법 및 장치를 기술한다. 따라서 우리는 재구성된 비디오에서 미세한 세부사항들을 보존하는 것을 목표로 한다. 이것은 미세한 세부사항들의 손실이 크게 눈에 띄는 스무스한 영역들에게 특히 중요하다. 바람직한 실시예에서, 본 방식은 인코더가 장면 레벨, 픽처 레벨, 매크로블록 레벨 및 그와 같은 것에 대해 라운딩 오프셋을 선택하는 것을 허용할 만큼 충분히 탄력적이다. 이것은 양자화 단계 크기가 인지 품질을 개선하도록 조정되는 인코더에 통합될 수 있다.
인지 품질 개선을 위한 양자화 조정
도 3으로 넘어가서, 비디오 인코더에서 인지 품질을 개선하기 위한 양자화 조정 방법이 참조번호 300에 의해 일반적으로 표시된다. 그런 방법에서 유일하게 조정 가능한 양자화 파라미터는 양자화 단계 크기이다. 라운딩 오프셋 파라미터는 인코딩 프로세스 전체에 걸쳐 일정하다. 본 방법 300은 기능 블록 310에게 제어를 넘기는 시작 블록 305를 포함한다. 기능 블록 310은 선택적으로 오퍼레이터의 도움을 받아 인코딩 셋업을 수행하고 제어를 기능 블록 315로 넘긴다. 기능 블록 310에 대해, 그에 의해 수행된 인코딩 셋업은 목표 비트 레이트의 셋업뿐만아니라 인코딩 프로세스에 수반된 임의의 파라미터들의 세트의 명세와 관련될 수 있다. 기능 블록 315는 입력 비디오 콘텐츠를 분석하고, 제어를 루프 제한 블록(loop limit block) 320으로 넘긴다. 기능 블록 315 및 CBR 인코딩의 경우에 대해, 콘텐츠 분석에 대한 작업은 그 콘텐츠에 기초해 현재 픽처에 대한 비트들의 목표 수의 경미한 조정을 포함할 수 있다. 기능 블록 315 및 VBR의 경우에 대해, 콘텐츠 분석 모듈이 코딩 복잡도를 획득하고 또한 가용 비트들을 비디오에 적응적으로 할당하기 위해 전체 비디오의 실제 인코딩을 포함할 수 있다. 루프 제한 블록 320은 픽처들의 변수 j=1, ..., #을 이용하여 입력 비디오 콘텐츠에 있는 각각의 픽처에 대해 루프 1을 시작하고, 제어를 기능 블록 325로 넘긴다. 기능 블록 325는 비트들의 목표 수로부터 픽처 j에 대한 참조 양자화 단계 크기 q를 계산하고, 제어를 루프 제한 블록 330으로 넘긴다. 루프 제한 블록 330은 픽처 j에서 매크로블록들(MB)의 변수 i=1, ..., #을 이용하여 현재 픽처에 있는 각각의 매크로블록들에 대해 루프 2를 시작하고, 제어를 기능 블록 335로 넘긴다. 기능 블록 335는 그 콘텐츠 및/또는 앞선 인코딩 결과들에 기초하여 MB i에 대해 양자화 단계 크기 q를 조정하고, 제어를 기능 블록 340으로 넘긴다. 기능 블록 335에 대해, 예를 들어 스무스한 MB는 인지 품질을 개선하기 위해 q를 낮출 것이다. 또 다른 예에서, 만일 앞선 MB들이 이들이 원래 할당된 비트들보다 더 많은 비트들을 이용한다면, 현재 MB가 원래 할당된 비트들보다 더 적은 비트들을 소비하도록 q를 증가시킬 것이다. 이런 계산은, 몇 개만 언급하자면 p 도메인 레이트 모델 또는 TMN8 레이트 모델에 기초할 수 있다. 기능 블록 340은 매크로블록 i를 q에서 인코딩하고, 제어를 루프 제한 블록 345로 넘긴다. 루프 제한 블록 345는 루프 2를 종료하고, 제어를 루프 제한 블록 350으로 넘긴다. 루프 제한 블록 350은 루프 1을 종료하고, 제어를 종료 블록 399로 넘긴다.
이런 접근법에서, 고정된 라운딩 오프셋이 모든 인코딩된 픽처들에게 적용되고 양자화 단계 크기만이 조정된다. 예를 들어, 대다수의 MPEG-4 AVC 표준 비디오 인코딩 애플리케이션들에서, 라운딩 오프셋은 디폴트로 INTRA 및 INTER 픽처에 대해 각각 1/3.0 및 1/6.0으로 설정된다. 비트 레이트 제약들이 주어지면, 양자화 단계 크기만을 조정하는 것이 비디오 세그먼트에게 가장 높은 가능한 인지 품질을 항상 제공하지는 못한다. 더욱이, 고정된 라운딩 오프셋은 다양한 비디오 특성들에 항상 맞는 것은 아니다.
인지 품질을 개선하기 위한 라운딩 오프셋 조정
적어도 하나의 실시예에 따르면, 우리는 인지 품질을 개선하기 위해, 양자화 단계 크기를 조정하는 것에 추가하여, 라운딩 오프셋(s)를 조정하기 위한 방법 및 장치를 기술한다. 조정은 전체 비디오, 비디오의 세그먼트, 픽처 내의 영역 및 그와 같은 것에 적용될 수 있다.
도 4 및 도 5는 양자화 조정 프로세스에서 양자화 단계 크기 외에 라운딩 오프셋을 포함하는 특정한 실시예들을 도해한다. 얼마나 많은 비트들의 수가 할당되는지에 의존하여, 도해된 실시예들은 VBR 또는 CBR을 서빙할 수 있다. 이것은 또한 멀티 패스 인코더의 부분이 될 수 있고 정보를 다른 패스들에 제공한다. 본 원리들이 적용될 수 있는 이러한 그리고 다양한 애플리케이션들 및 시나리오들은, 본 원리들의 정신을 유지하면서 본 분야 및 관련 분야의 당업자에 의해 쉽게 결정될 수 있다.
실시예 1
도 4는 어떻게 양자화 라운딩 오프셋이 인지 품질을 개선하기 위해 적응적으로 선택되는지 도해한다. 이런 방법에서, 인코더는 라운딩 오프셋 s를 자동적으로 결정하기 위해 콘텐츠를 분석한다. 결정 규칙들은 INTER 및 INTRA 코딩, 상이한 변환들, 상이한 비트 레이트들 및 그와 같은 것에 대해 개별적으로 설계될 수 있다. 분석은 인코딩될 전체 비디오에 대해 또는 계산 복잡도를 축소하기 위해 저장할 비디오의 부분에 대해 행해질 수 있다. 도 4의 작업 흐름이 전체 비디오에 적용되는 경우에 픽처들은 동일한 라운딩 오프셋을 가지는 한편으로, 작업 흐름이 한 장면에 적용되는 경우에 장면에서의 모든 픽처들이 동일한 라운딩 오프셋을 공유하고 또한 그 값은 장면마다 다를 수 있다. 장면 적응적 솔루션이 추가의 계산적 복잡도를 요구하지만, 이것은 좀 더 탄력적이고 높은 인지 품질을 획득하는데 있어서 콘텐츠에 더 잘 적응할 수 있다. 작업 흐름이 또한 하나의 개별적인 픽처에 적용될 수 있고 각각의 픽처는 상이한 라운딩 오프셋을 선택할 수 있다. 비디오가 하나의 장면에서 보통 정적이기 때문에, 상이한 라운딩 오프셋들로 하나의 장면 내에서 픽처들을 인코딩하는 것은 이 장면에서 시각적 품질 불일치를 야기할 수 있다.
도 4로 넘어가서, 인지 품질을 개선하기 위한 픽처 레벨상의 라운딩 오프셋 조정의 예시적 방법은 참조번호 400에 의해 일반적으로 표시된다. 본 방법 400은 제어를 기능 블록 410으로 넘기는 시작 블록 405를 포함한다. 기능 블록 410은 선택적으로는 오퍼레이터의 도움을 받아 인코딩 셋업을 수행하고, 기능 블록 415로 제어를 넘긴다. 기능 블록 415는 입력 비디오 콘텐츠를 분석하고 제어를 기능 블록 420으로 넘긴다. 기능 블록 420은 라운딩 오프셋 s를 적응적으로 선택하고 제어를 루프 제한 블록 425로 넘긴다. 루프 제한 블록 425는 픽처들의 변수 j=1, ..., #을 이용하여 입력 비디오 콘텐츠에서 각각의 픽처에 걸쳐 루프 1을 시작하고, 제어를 기능 블록 430으로 넘긴다. 기능 블록 430은 비트 레이트 제약 및 라운딩 오프셋 s가 주어지면 픽처 j에 대해 참조 양자화 단계 크기 q를 계산하고, 제어를 루프 제한 블록 435로 넘긴다. 루프 제한 블록 435는 픽처 j에서의 매크로블록들(MB)의 변수 i=1, ..., #을 이용하여 현재 픽처에 있는 각각의 매크로블록에 걸쳐 루프 2를 시작하고, 제어를 기능 블록 440으로 넘긴다. 기능 블록 440은 그 콘텐츠에 기초하여 MB i에 대한 양자화 단계 크기 q를 조정하고, 제어를 기능 블록 445로 넘긴다. 기능 블록 445는 q에서 매크로블록 i를 인코딩하고, 제어를 루프 제한 블록 450으로 넘긴다. 루프 제한 블록 450은 루프 2를 종료하고, 제어를 루프 제한 블록 455로 넘긴다. 루프 제한 블록 455는 루프 1을 종료하고, 제어를 종료 블록(499)으로 넘긴다.
방법 400에서, 라운딩 오프셋 값은 픽처마다의 콘텐츠에 적응하고, 또한 하나의 픽처에서의 모든 MB들은 동일한 라운딩 오프셋을 이용한다. 방법 400의 하나의 이점은, 이것이 콘텐츠에 적응한다는 것과 통합하기에 간단하다는 것이다. 방법 400의 하나의 불리한 점은, 이것이 스무스한 영역들과 텍스처링된 영역들을 구별하지 않는다는 것과 동일한 라운딩 오프셋을 모든 MB들에게 무차별적으로 할당한다는 것이다. 비트 레이트가 제한되는 경우에, 라운딩 오프셋 조정으로 인해 텍스처링된 영역들에서 소비된 추가의 비트들은, 픽처가 더 큰 양자화 단계 크기에서 인코딩하도록 야기하고 또한 인코더가 더 높은 품질을 획득하는 것을 막는다.
실시예 2
도 5는 도 4에서 기술된 방법의 변형예를 도해한다. 제안된 도 5의 방법에서, 라운딩 오프셋은 각각의 MB에 대해 결정된다. 일 실시예에서, 각각의 MB는 두 개의 미리 정의된 값 중 하나를 선택한다. 물론, 본 원리들의 실시예들은 라운딩 오프셋에 대해 오직 두 개의 미리 결정된 값에만 제한되지 않고, 그에 따라, 본 원리의 사상을 유지하면서 두 개의 값 이외의 값이 이용될 수 있다. 이런 실시예에서, 각각의 픽처는 MB들의 두 개의 클래스, 즉 텍스처링된 것 및 스무스한 것으로 나눠질 수 있다. 스무스한 구역들에서 미세한 세부사항들을 유지하는 것이 더 중요하기 때문에, 라운딩 오프셋이 더 작은 계수들을 보존하기 위해 이러한 영역들에 할당될 것이다. 대조적으로, 미세한 세부사항들의 손실은 텍스처 마스킹 효과 때문에 텍스처링된 영역들에서 덜 가시적이고, 또 다른 라운딩 오프셋이 작은 계수들에서 너무 많은 비트들을 소모하지 않고서 할당될 것이다.
도 5로 넘어가서, 인지 품질을 개선하기 위해 매크로블록 레벨에 대해 라운딩 오프셋 조정을 위한 예시적 방법이 참조번호 500에 의해 일반적으로 표시된다. 본 방법 500은 제어를 기능 블록 510으로 넘기는 시작 블록 505를 포함한다. 기능 블록 510은 선택적으로는 오퍼레이터의 도움을 받아 인코딩 셋업을 수행하고, 기능 블록 515로 제어를 넘긴다. 기능 블록 515는 입력 비디오 콘텐츠를 분석하고 입력 비디오 콘텐츠의 매크로블록들을 상이한 카테고리들로 세그먼팅하고, 제어를 루프 제한 블록 520으로 넘긴다. 루프 제한 블록 520은 픽처들의 변수 j=1, ..., #을 이용하여 입력 비디오 콘텐츠 내의 각각의 픽처에 걸쳐 루프 1을 시작하고, 제어를 기능 블록 525로 넘긴다. 기능 블록 525는 비트 레이트 제약이 주어지면 픽처 j에 대한 양자화 단계 크기 q를 계산하고, 제어를 기능 블록 530으로 넘긴다. 기능 블록 530은 각각의 매크로블록에 대해 라운딩 오프셋을 결정하고, 제어를 루프 제한 블록 535로 넘긴다. 루프 제한 블록 535는 픽처 j에서의 매크로블록들(MB)의 변수 i=1, ..., #을 이용하여 현재 픽처에 있는 각각의 매크로블록에 걸쳐 루프 2를 시작하고, 제어를 기능 블록 540으로 넘긴다. 기능 블록 540은 그 콘텐츠에 기초하여 MB i에 대한 양자화 단계 크기 q를 조정하고, 제어를 기능 블록 545로 넘긴다. 기능 블록 545는 q 및 s로 매크로블록 i를 인코딩하고, 제어를 루프 제한 블록 550으로 넘긴다. 루프 제한 블록 550은 루프 2를 종료하고, 제어를 루프 제한 블록 555로 넘긴다. 루프 제한 블록 555는 루프 1을 종료하고 제어를 종료 블록 599로 넘긴다.
방법 500에서, 라운딩 오프셋 값은 MB 레벨상의 콘텐츠에 적응한다. 이것은 미세한 세부사항들이 인지적으로 중요한 영역들에서 높은 인지 품질을 제공하고, 인코더가 다른 영역들에서 너무 많은 비트들을 소비하는 것을 막는다. 그러나, 대부분의 기존의 레이트 제어 알고리즘들은 MB 레벨 라운딩 오프셋 조정에 적응하지 않고, 이것은 목표 비트 레이트를 획득하는 데 있어서 레이트 제어 알고리즘에 도전 과제들을 지운다.
실시예 3
도 6은 도 5에서 기술된 방법 500의 변형인 방법 600을 도해한다. 방법 600에서, 라운딩 오프셋이 콘텐츠 특징 및 가용 비트들 모두를 고려함으로써 인코딩 프로세스 동안에 각각의 매크로블록에서 결정된다. 예를 들어, 실시예에서, 현재 매크로블록에 할당된 비트들의 수 및 매크로블록과의 편차에 의존하여, 인코더는 자신의 매핑 기능에 기초하여 자신의 라운딩 오프셋을 선택한다.
도 6으로 넘어가서, 인지 품질을 개선하기 위해 매크로블록 레벨에 대한 라운딩 오프셋 조정을 위한 또 다른 예시적 방법이 참조번호 600에 의해 일반적으로 표시된다. 본 방법 600은 제어를 기능 블록 610으로 넘기는 시작 블록 605를 포함한다. 기능 블록 610은 선택적으로는 오퍼레이터의 도움을 받아 인코딩 셋업을 수행하고, 기능 블록 615로 제어를 넘긴다. 기능 블록 615는 입력 비디오 콘텐츠를 분석하고, 제어를 루프 제한 블록 625로 넘긴다. 루프 제한 블록 625는 픽처들의 변수 j=1, ..., #을 이용하여 입력 비디오 콘텐츠에서 각각의 픽처에 걸쳐 루프 1을 시작하고, 제어를 기능 블록 630으로 넘긴다. 기능 블록 630은 비트 레이트 제약이 주어지면 픽처 j에 대한 양자화 단계 크기 q를 계산하고, 제어를 루프 제한 블록 635로 넘긴다. 루프 제한 블록 635는 픽처 j에서의 매크로블록들(MB)의 변수 i=1, ..., #을 이용하여 현재 픽처에 있는 각각의 매크로블록에 걸쳐 루프 2를 시작하고, 제어를 기능 블록 640으로 넘긴다. 기능 블록 640은 그 콘텐츠에 기초하여 MB i에 대한 양자화 단계 크기 q 및 라운딩 오프셋 s를 조정하고, 제어를 기능 블록 645로 넘긴다. 기능 블록 645는 q 및 s에서 매크로블록 i를 인코딩하고, 제어를 루프 제한 블록 650으로 넘긴다. 루프 제한 블록 650은 루프 2를 종료하고 제어를 루프 제한 블록 655로 넘긴다. 루프 제한 블록 655는 루프 1을 종료하고 제어를 종료 블록 699로 넘긴다.
도 5의 방법 500과 비교하면, 방법 600은 매크로블록 레벨에 대한 라운딩 오프셋 값을 선택하는 데 있어서 더욱 큰 탄력성을 제공한다. 도 5의 방법과 유사하게, 방법 600은 또한 목표 비트 레이트를 획득하는 데 있어서 레이트 제어 알고리즘에 대한 도전 과제들을 부여한다.
라운딩 오프셋을 적응적으로 선택하기 위한 방법
도 7에서, 우리는 일 실시예를 따라서 어떻게 라운딩 오프셋이 결정되는지를 예를 들어 도해한다. 본 예에서, 비디오 내의 매크로블록들은 텍스처링된 것들 또는 스무스한 것들로서 분류된다. 우리는 스무스한 영역들에 대한 라운딩 오프셋 조정에 중점을 둔다. 텍스처링된 매크로블록들에 대해서, 디폴트 라운딩 오프셋이 레이트 왜곡 성능을 최적화하기 위해 이용될 수 있다. 물론, 본 예는 라운딩 오프셋이 결정되는 하나의 방식과 관련한다. 따라서, 본 원리의 사상을 유지하면서, 여기서 제공된 본 원리들의 교시들이 주어지면 본 분야 및 관련 분야의 당업자가 라운딩 오프셋을 결정하기 위한 본 방법 및 다양한 다른 방법들을 쉽게 상정할 수 있기 때문에, 본 원리들은 예마다 이뤄지는 대로의 라운딩 오프셋을 결정하는 것에만 제한되지 않다는 것을 주목해야 한다.
도 7로 넘어가서, 라운딩 오프셋을 결정하기 위한 예시적 방법이 참조번호 700으로서 일반적으로 표시된다. 본 방법 700은 제어를 기능 블록 720으로 넘기는 시작 블록 705를 포함한다. 기능 블록 720은 인코딩 픽처들을 판독하고, 기능 블록 730으로 제어를 넘긴다. 기능 블록 730은 MB들을 텍스처링된 또는 스무딩된(smoothed) 매크로블록들로 분류하고, 제어를 기능 블록 740으로 넘긴다. 기능 블록 740은 스무스한 매크로블록들의 특징들을 분석하고 제어를 기능 블록 750으로 넘긴다. 기능 블록 750은 스무스한 영역들에 대한 라운딩 오프셋 s를 결정하고 제어를 종료 블록 799로 넘긴다. 기능 블록 740에 대하여, 일 실시예에서, 화소 도메인 또는 변환 도메인에서의 편차가 미세한 세부사항들의 힘(strength)으로서 특징을 분석하는 데에 이용될 수 있다. 더욱이 기능 블록 740에 대하여, 또 다른 실시예에서, 추정된 양자화 단계 크기에서의 0 계수들의 수가 힘을 표시하는 데에 이용될 수 있다. 그러면 특징은 기능 블록 750에 의해 라운딩 오프셋으로 매핑될 수 있다. 예를 들어, 매크로블록은 그 편차가 임계치 T1보다 작은 경우에는 라운딩 오프셋 s1을 할당하고, 편차가 T2보다 작고 T1보다 큰 경우에는 s2를 할당하고, 다른 경우에는 s3을 할당한다. 또 다른 실시예에서, 기능 또는 룩업 테이블이 편차를 라운딩 오프셋 값에 매핑하기 위해 적용될 수 있다.
도 8로 넘어가서, 라운딩 오프셋이 알려지고 비트스트림으로 보내지지 않는 경우에 픽처 데이터를 디코딩하기 위한 예시적 방법이 참조번호 800에 의해 일반적으로 표시된다. 방법 800은 제어를 기능 블록 820으로 넘기는 시작 블록 810을 포함한다. 기능 블록 820은 비트스트림을 판독하고 파싱(parse)하고, 제어를 루프 제한 블록 830으로 넘긴다. 루프 제한 블록 830은 픽처들의 변수 i=1, ..., #을 이용하여 입력 비디오 콘텐츠 내의 각각의 픽처에 걸쳐 루프를 시작하고, 제어를 기능 블록 840으로 넘긴다. 기능 블록 840은 픽처 i에 대한 양자화 단계 크기 qi를 계산하고 제어를 기능 블록 850으로 넘긴다. 기능 블록 850은 qi에서 픽처 i를 재구성하고 제어를 루프 제한 블록 860으로 넘긴다. 루프 제한 블록 860은 루프를 종료하고 종료 블록 899로 제어를 넘긴다.
도 9로 넘어가서, 라운딩 오프셋들을 이용하여 디코더에서 코딩 유닛을 재구성하기 위한 방법이 참조번호 900에 의해 일반적으로 표시된다. 방법 900은 기능 블록 920으로 제어를 넘기는 시작 블록 910을 포함한다. 기능 블록 920은 비트스트림을 판독하고 파싱하고, 제어를 루프 제한 블록 930으로 넘긴다. 루프 제한 블록 930은 코딩 유닛들의 변수 i=1, ..., #을 이용하여 입력 비디오 콘텐츠 내의 각각의 픽처에 걸쳐 루프를 시작하고, 제어를 기능 블록 940으로 넘긴다. 기능 블록 940은 코딩 유닛 i에 대한 양자화 단계 크기 qi 및 라운딩 오프셋 si를 파싱하거나 계산하고, 제어를 기능 블록 950으로 넘긴다. 기능 블록 950은 qi 및 si에서 코딩 유닛 i를 재구성하고 제어를 루프 제한 블록 960으로 넘긴다. 루프 제한 블록 960은 루프를 종료하고, 제어를 종료 블록 999로 넘긴다. 방법 900에서, 코딩 유닛은 픽처, 픽처들의 그룹, 매크로블록 또는 매크로블록들의 그룹일 수 있다.
도 10으로 넘어가서, 라운딩 오프셋들을 이용하여 인코더에서 입력 코딩 유닛을 인코딩하기 위한 예시적 방법이 참조번호 1000에 의해 일반적으로 표시된다. 본 방법이 설명 및 간결성(brevity)을 위해 인코딩 프로세스의 일부를 간단하게 도시하고 있고, 전체 코딩 프로세스를 나타내고자 하는 것은 아니라는 점을 알 것이다. 방법 1000은 기능 블록 1010으로 제어를 넘기는 시작 블록 1005을 포함한다. 기능 블록 1010은 입력 코딩 유닛과 참조 코딩 유닛 간의 차이에 대응하는 입력 코딩 유닛에 대한 레시듀얼(residual)을 결정하고, 제어를 기능 블록 1015로 넘긴다. 기능 블록 1015는 적어도 하나의 변환 계수를 획득하기 위해 레시듀얼에 변환을 적용하고, 제어를 기능 블록 1020으로 넘긴다. 기능 블록 1020은 특정 양자화 단계 크기 및 라운딩 오프셋을 선택하고 동일한 것을 적용함으로써 적어도 하나의 변환 계수를 양자화하고, 제어를 종료 블록 1099로 넘긴다.
도 11로 넘어가서, 라운딩 오프셋들을 선택하기 위한 예시적 방법이 참조번호 1100에 의해 일반적으로 표시된다. 방법 1100은, 본 원리들에 따라 라운딩 오프셋들이 그에 기초해 선택될 수 있는 몇몇의 기본 원리들을 나타내도록 의도된다.
방법 1100은 제어를 기능 블록 1110으로 넘기는 시작 블록 1105를 포함한다. 기능 블록 1110은 (코딩 유닛, 시퀀스의 일부, 코딩 유닛과 관련한 픽처, 픽처에서의 영역, 스무스한 또는 텍스처링된 영역의 분류, 인트라 또는 인터 코딩이 이용되는지 여부, 하나 이상의 변환 유형, 하나 이상의 비트 레이트, 화소 도메인 편차, 변환 도메인 편차, 및 특정 또는 또 다른 양자화 단계 크기에서의 0 계수들의 수를 포함하는 전체 비디오 시퀀스 중 적어도 하나에 응답하여) 라운딩 오프셋을 선택하고, 제어를 종료 블록 1199로 넘긴다.
도 12로 넘어가서, 라운딩 오프셋들을 적용하기 위한 예시적 방법이 참조번호 1200에 의해 일반적으로 표시된다. 방법 1200은, 본 원리에 따라 라운딩 오프셋들이 적용될 수 있는 몇몇의 항목을 나타내기 위해 의도된 것이다.
방법 1200은 제어를 기능 블록 1210으로 넘기는 시작 블록 1205를 포함한다. 기능 블록 1210은 (코딩 유닛, 시퀀스의 일부, 코딩 유닛과 관련하는 픽처, 또는 픽처의 영역을 포함하는 전체 비디오 시퀀스 중 적어도 하나에게) 라운딩 오프셋을 적용하고, 제어를 종료 블록 1299로 넘긴다.
도 13으로 넘어가서, 라운딩 오프셋들을 이용하여 디코더에서 코딩 유닛을 디코딩하기 위한 예시적 방법이 참조번호 1300에 의해 일반적으로 표시된다. 본 방법이 설명 및 간결성을 위해 인코딩 프로세스의 일부를 간단하게 도시하고, 전체 코딩 프로세스를 나타내고자 하는 것은 아니라는 점을 알 것이다. 방법 1300은 제어를 기능 블록 1310으로 넘기는 시작 블록 1305를 포함한다. 기능 블록 1310은 선택 라운딩 오프셋을 기술하는 정보를 수신하고, 또한 입력 코딩 유닛 및 참조 코딩 유닛 간의 변환되고 양자화된 차이에 대응하는 적어도 하나의 양자화된 계수를 수신하고, 제어를 기능 블록 1315로 넘긴다. 기능 블록 1315는 특정 양자화 단계 크기 및 라운딩 오프셋을 선택하고 동일한 것을 적용함으로써 적어도 하나의 역양자화된(de-quantized) 계수를 획득하기 위해 적어도 하나의 양자화된 계수를 역양자화하고, 제어를 기능 블록 1320으로 넘긴다. 기능 블록 1320은 재구성된 레시듀얼을 획득하기 위해 적어도 하나의 역양자화된 계수에 역변환을 적용하고, 제어를 종료 블록 1399로 넘긴다.
본 발명에 수반되는 많은 이점/특징의 몇몇에 대한 설명이 이제 주어질 것인데, 이것의 일부는 앞서 언급되었다. 예를 들어, 하나의 이점/특징은 입력 코딩 유닛과 참조 코딩 유닛 간의 차이에 대응하는 입력 코딩 유닛에 대한 레시듀얼을 결정하고, 적어도 하나의 변환 계수를 획득하기 위해 레시듀얼에 변환을 적용하고, 특정 양자화 단계 및 라운딩 오프셋을 선택함으로써 적어도 하나의 변환 계수를 양자화함으로써 입력 코딩 유닛을 인코딩하기 위한 비디오 인코더를 갖는 장치이다.
또 다른 이점/특징은 앞서 기술된 바와 같은 비디오 인코더를 갖는 장치인데, 여기서 라운딩 오프셋은 코딩 유닛, 시퀀스의 일부, 코딩 유닛과 관련하는 픽처, 또는 픽처의 영역을 포함하는 전체 비디오 시퀀스에 적용되도록 선택된다.
또 다른 이점/특징은 비디오 인코더를 갖는 장치인데, 여기서 라운딩 오프셋은, 앞서 기술된 바와 같이 코딩 유닛, 시퀀스의 일부, 코딩 유닛과 관련된 픽처, 또는 픽처에서의 영역을 포함하는 전체 비디오 시퀀스에 적용되도록 선택되고, 여기서 상기 일부는 하나 이상의 픽처들의 그룹에 포함되거나 이것에 독립적인 하나 이상의 픽처 또는 하나 이상의 장면이고, 상기 영역은 하나 이상의 매크로블록을 포함한다.
여전히, 또 다른 이점/특징은 비디오 인코더를 갖는 장치인데, 여기서 일부는 앞서 기술된 바와 같이 하나 이상의 픽처들의 그룹에 포함되거나 이것에 독립적인 하나 이상의 픽처 또는 하나 이상의 장면을 포함하고, 영역은 앞서 기술된 하나 이상의 매크로블록을 포함하고, 상이한 라운딩 오프셋들은 하나 이상의 장면, 하나 이상의 픽처, 및 하나 이상의 매크로블록 중 상이한 것들에 적용될 수 있다.
더욱이, 또 다른 이점/특징은 상기 기술된 바와 같은 비디오 인코더를 갖는 장치인데, 라운딩 오프셋은 화소 도메인 편차, 변환 도메인 편차, 및 특정 또는 또 다른 양자화 단계 크기에서의 0 계수들의 수 중 적어도 하나에 대한 응답으로 선택된다.
더 나아가, 또 다른 이점/특징은 상기 기술된 바와 같은 비디오 인코더를 갖는 장치인데, 여기서 라운딩 오프셋은 코딩 유닛, 비디오 시퀀스의 일부, 코딩 유닛과 관련하는 픽처, 픽처의 영역, 및 스무스한 것 또는 텍스처링된 것으로서의 영역의 분류를 포함하는 전체 비디오 시퀀스 중 적어도 변환 선택된다.
또한 또 다른 이점/특징은 비디오 인코더를 갖는 장치인데, 여기서 라운딩 오프셋은 앞서 기술된 바와 같이 코딩 유닛, 비디오 시퀀스의 일부, 코딩 유닛과 관련하는 픽처, 픽처의 영역, 및 스무스한 것 또는 텍스처링된 것으로서의 영역의 분류를 포함하는 전체 비디오 시퀀스 중 적어도 변환 선택되고, 상기 영역은 하나 이상의 매크로블록을 포함하고, 인코더에 의해 전형적으로 이용되는 디폴트 라운딩 오프셋이 텍스처링되고 분류된 매크로블록들에 적용되는 한편 라운딩 오프셋은 스무스한 것으로 분류된 매크로블록들에 대해서만 선택되고 적용된다.
추가로, 또 다른 이점/특징은 비디오 인코더를 갖는 장치인데, 여기서 영역은 하나 이상의 매크로블록을 포함하고, 인코더에 의해 전형적으로 이용되는 디폴트 라운딩 오프셋은 상기 기술된 바와 같이 텍스처링되고 분류된 매크로블록들에 적용되는 한편 라운딩 오프셋은 스무스한 것으로 분류된 매크로블록들에 대해서만 선택되고 적용되고, 라운딩 오프셋은 입력 코딩 유닛이 인트라 또는 인터 예측을 이용하는지 여부, 하나 이상의 변환 유형, 및 코딩 유닛을 인코딩하기 위한 적어도 하나의 상이한 비트 레이트 중 적어도 하나에 대한 응답으로 선택된다.
더욱이, 또 다른 이점/특징은 앞서 기술된 바와 같이 비디오 인코더를 갖는 장치인데, 여기서 인코더는 인코더에 의한 비트스트림 출력에서의 선택된 라운딩 오프셋을 기술하는 정보를 내장한다.
본 원리들의 이러한 및 다른 특징들 및 이점들은 여기서의 교시들에 기초하여 당업자들에 의해 쉽게 확인될 것이다. 본 원리들의 교시들은 하드웨어, 소프트웨어, 펌웨어, 특수 목적 프로세서들, 또는 이것들의 조합들의 다양한 형태들에서 구현될 수 있다고 이해될 것이다.
더 바람직하게는, 본 원리들의 교시들은 하드웨어 및 소프트웨어의 조합으로서 구현된다. 더욱이, 소프트웨어는 프로그램 저장 유닛상에 실재적으로 구현되는 애플리케이션 프로그램으로서 구현될 수 있다. 애플리케이션 프로그램은 임의의 적절한 아키텍처를 포함하는 기계에 업로딩되고 또한 이에 의해 실행될 수 있다. 바람직하게는, 상기 기계는 하나 이상의 중앙 프로세싱 유닛(CPU), RAM, 및 입/출력(I/O) 인터페이스와 같은 하드웨어를 갖는 컴퓨터 플랫폼상에 구현된다. 컴퓨터 플랫폼은 또한 오퍼레이팅 시스템 및 마이크로명령어 코드를 포함할 수 있다. 여기서 기술된 다양한 프로세스들 및 기능들은 CPU에 의해 실행될 수 있는 마이크로명령어 코드의 부분 또는 애플리케이션 프로그램의 부분, 또는 이것들의 임의의 조합일 수 있다. 추가로, 추가 데이터 저장 유닛 및 프린팅 유닛과 같은 다른 주변 장치 유닛들이 컴퓨터 플랫폼에 연결될 수 있다.
첨부된 도면들에 묘사된 구성 시스템 컴포넌트 및 방법의 몇몇은 바람직하게는 소프트웨어에서 구현되기 때문에, 시스템 컴포넌트들 또는 프로세스 기능 블록들 간의 실제 연결들은 본 원리들이 프로그래밍되는 방식에 의존하여 다를 수 있다. 여기서의 교시들이 주어지면, 당업자는 본 원리들의 이러한 것들 및 유사한 구현들 또는 구성들을 생각할 수 있을 것이다.
비록 설명적인 실시예들이 첨부된 도면들을 참조하여 기술되었지만, 본 원리가 그러한 특정한 실시예들에 제한되지 않고 다양한 변경들 수정들이 본 원리의 범위 또는 정신으로부터 벗어나지 않고도 당업자에 의해 달성될 수 있다고 이해될 것이다. 모든 그러한 변경들 및 수정들은 첨부된 청구항들에서 기재된 바와 같은 본 원리들의 범위 내에 포함되도록 의도된다.

Claims (21)

  1. 장치로서,
    입력 코딩 유닛과 참조 코딩 유닛 간의 차이에 대응하는 상기 입력 코딩 유닛에 대한 레시듀얼을 결정하고, 적어도 하나의 변환 계수를 획득하기 위해 상기 레시듀얼에 변환을 적용하고, 양자화 단계 크기 및 라운딩 오프셋을 선택하여 적어도 하나의 변환 계수를 양자화함으로써, 상기 입력 코딩 유닛을 인코딩하기 위한 비디오 인코더(100)
    를 포함하고,
    상기 라운딩 오프셋은 스무스한 것으로 분류된 매크로블록들에 대해서만 선택되어 적용되는 한편 텍스처링된 것으로 분류된 매크로블록들에 대해서는 상기 인코더에 의해 전형적으로 사용되는 디폴트 라운딩 오프셋이 적용되는 장치.
  2. 제1항에 있어서,
    상기 라운딩 오프셋은 비디오 시퀀스의 일부, 상기 코딩 유닛과 관련하는 픽처, 상기 픽처의 영역 또는 상기 코딩 유닛을 포함하는 전체 비디오 시퀀스에 적용되도록 선택되는 장치.
  3. 제2항에 있어서,
    상기 일부는 하나 이상의 픽처들의 그룹에 포함되거나 이것에 독립적인 하나 이상의 픽처 또는 하나 이상의 장면을 포함하고, 상기 영역은 하나 이상의 매크로블록을 포함하는 장치.
  4. 제3항에 있어서, 상이한 라운딩 오프셋들은 하나 이상의 장면, 하나 이상의 픽처, 및 하나 이상의 매크로블록 중 상이한 것들에 적용될 수 있는 장치.
  5. 제1항에 있어서,
    상기 라운딩 오프셋은 화소 도메인 편차(variance), 변환 도메인 편차, 및 특정의 또는 또 다른 양자화 단계 크기에서의 0 계수들의 수 중 적어도 하나에 응답하여 선택되는 장치.
  6. 제1항에 있어서,
    상기 라운딩 오프셋은 비디오 시퀀스의 일부, 상기 코딩 유닛과 관련하는 픽처, 상기 픽처에서의 영역, 스무스한 것 또는 텍스처링된 것으로서의 영역의 분류 및 상기 코딩 유닛을 포함하는 전체 비디오 시퀀스 중 적어도 하나에 응답하여 선택되는 장치.
  7. 제6항에 있어서,
    상기 영역은 하나 이상의 매크로블록을 포함하는 장치.
  8. 제7항에 있어서, 상기 라운딩 오프셋은 상기 입력 코딩 유닛이 인트라 또는 인터 예측을 이용하여 코딩되는지 여부, 하나 이상의 변환 유형, 및 상기 코딩 유닛을 인코딩하기 위한 하나 이상의 상이한 비트 레이트 중 적어도 하나에 응답하여 선택되는 장치.
  9. 제1항에 있어서, 상기 인코더(100)는 상기 인코더에 의해 출력되는 비트스트림에 선택된 라운딩 오프셋을 기술하는 정보를 내장(embed)하는 장치.
  10. 비디오 인코더에서 입력 코딩 유닛을 인코딩하기 위한 방법으로서,
    상기 입력 코딩 유닛 및 참조 코딩 유닛 간의 차이에 대응하는 상기 입력 코딩 유닛에 대한 레시듀얼을 결정하는 단계(1010);
    적어도 하나의 변환 계수를 획득하기 위해 상기 레시듀얼에 변환을 적용하는 단계(1015);
    양자화 단계 크기 및 라운딩 오프셋을 선택함으로써 상기 적어도 하나의 변환 계수를 양자화하는 단계(1020) - 상기 라운딩 오프셋은 스무스한 것으로 분류된 매크로블록들에 대해서만 선택되어 적용되는 한편 텍스처링된 것으로 분류된 매크로블록들에 대해서는 상기 인코더에 의해 전형적으로 사용되는 디폴트 라운딩 오프셋이 적용됨 -
    를 포함하는 인코딩 방법.
  11. 제10항에 있어서,
    상기 라운딩 오프셋은 비디오 시퀀스의 일부, 상기 코딩 유닛과 관련한 픽처, 상기 픽처의 영역 또는 상기 코딩 유닛을 포함하는 전체 비디오 시퀀스에 적용되도록 선택되는(1210) 인코딩 방법.
  12. 제11항에 있어서,
    상기 일부는 하나 이상의 픽처들의 그룹에 포함되거나 이에 독립적인 하나 이상의 픽처 또는 하나 이상의 장면을 포함하고, 상기 영역은 하나 이상의 매크로블록을 포함하는 인코딩 방법.
  13. 제12항에 있어서,
    상이한 라운딩 오프셋들은 상기 하나 이상의 장면, 상기 하나 이상의 픽처, 및 상기 하나 이상의 매크로블록들 중 상이한 것들에 적용될 수 있는 인코딩 방법.
  14. 제10항에 있어서,
    상기 라운딩 오프셋은 화소 도메인 편차, 변환 도메인 편차, 및 특정의 또는 또 다른 양자화 단계 크기에서의 0 계수들의 수 중 적어도 하나에 응답하여 선택되는(1110) 인코딩 방법.
  15. 제10항에 있어서,
    상기 라운딩 오프셋은 비디오 시퀀스의 일부, 상기 코딩 유닛과 관련하는 픽처, 상기 픽처에서의 영역, 스무스한 것 또는 텍스처링된 것으로서의 영역의 분류 및 상기 코딩 유닛을 포함하는 전체 비디오 시퀀스 중 적어도 하나에 응답하여 선택되는(1110) 인코딩 방법.
  16. 제15항에 있어서,
    상기 영역은 하나 이상의 매크로블록을 포함하는 인코딩 방법.
  17. 제16항에 있어서,
    상기 라운딩 오프셋은 상기 입력 코딩 유닛이 인트라 또는 인터 예측을 이용하여 코딩되는지 여부, 하나 이상의 변환 유형, 상기 코딩 유닛을 인코딩하기 위한 하나 이상의 상이한 비트 레이트 중 적어도 하나에 응답하여 선택되는(1110) 인코딩 방법.
  18. 제10항에 있어서,
    상기 인코더에 의해 출력되는 비트스트림에 선택된 라운딩 오프셋을 기술하는 정보를 내장하는 단계를 더 포함하는 인코딩 방법.
  19. 장치로서,
    코딩 유닛의 원래 버전과 참조 코딩 유닛 간의 변환되고 양자화된 레시듀얼에 대응하는 적어도 하나의 양자화된 계수를 수신하고, 양자화 단계 크기 및 라운딩 오프셋을 결정하여 적어도 하나의 역양자화된 계수를 획득하기 위해 상기 적어도 하나의 양자화된 계수를 역양자화(de-quantize)하고, 및 재구성된 레시듀얼을 획득하기 위해 상기 적어도 하나의 역양자화된 계수에 역변환을 적용함으로써, 상기 코딩 유닛을 디코딩하기 위한 비디오 디코더(200)
    를 포함하고,
    상기 비디오 디코더는 상기 적어도 하나의 양자화된 계수를 포함하는 비트스트림으로부터 상기 선택된 라운딩 오프셋을 기술하는 정보를 수신하며,
    상기 라운딩 오프셋은 스무스한 것으로 분류된 매크로블록들에 대해서만 선택되어 적용되는 한편 텍스처링된 것으로 분류된 매크로블록들에 대해서는 인코더에 의해 전형적으로 사용되는 디폴트 라운딩 오프셋이 적용되는 장치.
  20. 비디오 디코더에서 코딩 유닛을 디코딩하기 위한 방법으로서,
    상기 코딩 유닛의 원래 버전과 참조 코딩 유닛 간의 변환되고 양자화된 레시듀얼에 대응하는 적어도 하나의 양자화된 계수를 수신하는 단계(1310);
    양자화된 단계 크기 및 라운딩 오프셋을 선택함으로써 적어도 하나의 역양자화된 계수를 획득하기 위해 상기 적어도 하나의 양자화된 계수를 역양자화하는 단계(1315);
    재구성된 레시듀얼을 획득하기 위해 상기 적어도 하나의 역양자화된 계수에 역변환을 적용하는 단계(1320)
    를 포함하고
    상기 비디오 디코더는 상기 적어도 하나의 양자화된 계수를 포함하는 비트스트림으로부터 상기 선택된 라운딩 오프셋을 기술하는 정보를 수신하며(1310),
    상기 라운딩 오프셋은 스무스한 것으로 분류된 매크로블록들에 대해서만 선택되어 적용되는 한편 텍스처링된 것으로 분류된 매크로블록들에 대해서는 상기 인코더에 의해 전형적으로 사용되는 디폴트 라운딩 오프셋이 적용되는 방법.
  21. 인코딩된 비디오 신호 데이터를 갖는 컴퓨터 판독가능 저장 매체로서,
    입력 코딩 유닛 및 참조 코딩 유닛 간의 차이에 대응하는 상기 입력 코딩 유닛에 대한 레시듀얼을 결정하고, 적어도 하나의 변환 계수를 획득하기 위해 상기 레시듀얼에 변환을 적용하고, 및 양자화 단계 크기 및 라운딩 오프셋을 선택하여 상기 적어도 하나의 변환 계수를 양자화함으로써 인코딩된 상기 입력 코딩 유닛 - 상기 라운딩 오프셋은 스무스한 것으로 분류된 매크로블록들에 대해서만 선택되어 적용되는 한편 텍스처링된 것으로 분류된 매크로블록들에 대해서는 상기 인코더에 의해 전형적으로 사용되는 디폴트 라운딩 오프셋이 적용됨 -
    을 포함하는 저장 매체.
KR1020117030106A 2009-05-16 2010-05-12 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치 KR101702156B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17895709P 2009-05-16 2009-05-16
US61/178,957 2009-05-16
PCT/US2010/001404 WO2010134963A1 (en) 2009-05-16 2010-05-12 Methods and apparatus for improved quantization rounding offset adjustment for video encoding and decoding

Publications (2)

Publication Number Publication Date
KR20120013437A KR20120013437A (ko) 2012-02-14
KR101702156B1 true KR101702156B1 (ko) 2017-02-13

Family

ID=42562502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117030106A KR101702156B1 (ko) 2009-05-16 2010-05-12 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치

Country Status (6)

Country Link
US (1) US9001889B2 (ko)
EP (1) EP2430836B1 (ko)
JP (1) JP5749710B2 (ko)
KR (1) KR101702156B1 (ko)
CN (1) CN102428702B (ko)
WO (1) WO2010134963A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2828013C (en) * 2011-02-25 2016-07-26 Blackberry Limited Methods and devices for data compression using offset-based adaptive reconstruction levels
MX2014004776A (es) * 2011-10-17 2014-07-09 Kt Corp Metodo de transformacion adaptable con base en la prediccion en pantalla y aparato que usa el metodo.
FR2985879A1 (fr) * 2012-01-17 2013-07-19 France Brevets Procede de quantification dynamique pour le codage de flux de donnees
KR101757341B1 (ko) 2013-01-29 2017-07-14 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에.베. 저-복잡도 음조-적응 오디오 신호 양자화
GB2519070A (en) * 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
US9930346B2 (en) * 2014-04-15 2018-03-27 Qualcomm Incorporated System and method for flatness detection for display stream compression (DSC)
GB2534604B (en) * 2015-01-29 2021-11-10 British Broadcasting Corp Video encoding and decoding with adaptive quantisation
US10404986B2 (en) 2015-03-30 2019-09-03 Netflix, Inc. Techniques for optimizing bitrates and resolutions during encoding
US9787987B2 (en) 2015-04-27 2017-10-10 Harmonic, Inc. Adaptive pre-filtering based on video complexity and output bit rate
US9955160B1 (en) * 2015-04-27 2018-04-24 Harmonic, Inc. Video encoding using adaptive pre-filtering
KR102390162B1 (ko) 2015-10-16 2022-04-22 삼성전자주식회사 데이터 인코딩 장치 및 데이터 인코딩 방법
US10574988B2 (en) * 2015-11-19 2020-02-25 Qualcomm Incorporated System and methods for reducing slice boundary visual artifacts in display stream compression (DSC)
US10448056B2 (en) * 2016-07-15 2019-10-15 Qualcomm Incorporated Signaling of quantization information in non-quadtree-only partitioned video coding
KR20180092774A (ko) * 2017-02-10 2018-08-20 삼성전자주식회사 샘플 적응적 오프셋 처리를 수행하는 영상 처리 장치 및 영상 처리 방법
US10931950B2 (en) 2018-11-19 2021-02-23 Intel Corporation Content adaptive quantization for video coding
CN113302938A (zh) * 2019-01-11 2021-08-24 北京字节跳动网络技术有限公司 整数mv运动补偿
CN113366839B (zh) * 2019-01-31 2024-01-12 北京字节跳动网络技术有限公司 视频编解码中的细化量化步骤
US11979572B2 (en) * 2020-06-22 2024-05-07 Apple Inc. Adaptive quantizer design for video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060126724A1 (en) 2004-12-10 2006-06-15 Lsi Logic Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
US20060268990A1 (en) * 2005-05-25 2006-11-30 Microsoft Corporation Adaptive video encoding using a perceptual model
WO2009048501A2 (en) 2007-10-05 2009-04-16 Thomson Licensing Method and apparatus for rate control accuracy in video encoding and decoding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040179608A1 (en) 2003-02-27 2004-09-16 Intel Corporation Multiple-description coding methods and apparatus
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
JP2006067302A (ja) 2004-08-27 2006-03-09 Toshiba Corp 画像符号化装置、画像符号化方法および画像符号化プログラム
JP2006157881A (ja) 2004-11-08 2006-06-15 Toshiba Corp 可変長符号化装置及びその方法
US20060098733A1 (en) 2004-11-08 2006-05-11 Kabushiki Kaisha Toshiba Variable-length coding device and method of the same
US7889790B2 (en) * 2005-12-20 2011-02-15 Sharp Laboratories Of America, Inc. Method and apparatus for dynamically adjusting quantization offset values
WO2009045682A2 (en) * 2007-09-28 2009-04-09 Athanasios Leontaris Treating video information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060126724A1 (en) 2004-12-10 2006-06-15 Lsi Logic Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
US20060268990A1 (en) * 2005-05-25 2006-11-30 Microsoft Corporation Adaptive video encoding using a perceptual model
WO2009048501A2 (en) 2007-10-05 2009-04-16 Thomson Licensing Method and apparatus for rate control accuracy in video encoding and decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문1 WEDI ET AL:"Quantization offsets for video coding", IEEE International Symposium on Circuits and systems, vol.1 2005*

Also Published As

Publication number Publication date
US9001889B2 (en) 2015-04-07
CN102428702A (zh) 2012-04-25
EP2430836B1 (en) 2016-08-17
WO2010134963A1 (en) 2010-11-25
EP2430836A1 (en) 2012-03-21
KR20120013437A (ko) 2012-02-14
CN102428702B (zh) 2016-02-17
US20120051421A1 (en) 2012-03-01
JP2012527160A (ja) 2012-11-01
JP5749710B2 (ja) 2015-07-15

Similar Documents

Publication Publication Date Title
KR101702156B1 (ko) 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치
US10194154B2 (en) Methods and apparatus for embedded quantization parameter adjustment in video encoding and decoding
US11722669B2 (en) Methods and apparatus for determining quantization parameter predictors from a plurality of neighboring quantization parameters
US8848788B2 (en) Method and apparatus for joint quantization parameter adjustment
KR101320260B1 (ko) 비디오 신호 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
EP2548372B1 (en) Methods and apparatus for implicit adaptive motion vector predictor selection for video encoding and decoding
KR101810263B1 (ko) 분류-기반 루프 필터에 대한 방법들 및 장치
WO2014139396A1 (en) Video coding method using at least evaluated visual quality and related video coding apparatus
KR101599561B1 (ko) 비디오 인코딩 및 디코딩에서 레이트 제어 정밀도를 위한 방법 및 장치
US20100183070A1 (en) Method and apparatus for improved video encoding using region of interest (roi) information
KR101603747B1 (ko) 비디오 인코딩에서 속도 제어 정확성을 위한 방법 및 장치
KR101378749B1 (ko) 성김에 기반한 아티팩트 제거 필터링에서 가변 변환들에 응답하여 필터 파라미터 결정 및 선택을 위한 방법과 장치
US20120002722A1 (en) Method and apparatus for region-based filter parameter selection for de-artifact filtering
KR100823145B1 (ko) 관심영역 기반의 영상 화질개선장치 및 양자화기기 및 그동작 방법
KR101193790B1 (ko) 비디오 코덱 양자화를 위한 방법 및 장치

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
FPAY Annual fee payment

Payment date: 20200114

Year of fee payment: 4