KR100997298B1 - 멀티-패스 비디오 인코딩 방법 - Google Patents
멀티-패스 비디오 인코딩 방법 Download PDFInfo
- Publication number
- KR100997298B1 KR100997298B1 KR1020097003420A KR20097003420A KR100997298B1 KR 100997298 B1 KR100997298 B1 KR 100997298B1 KR 1020097003420 A KR1020097003420 A KR 1020097003420A KR 20097003420 A KR20097003420 A KR 20097003420A KR 100997298 B1 KR100997298 B1 KR 100997298B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- encoding
- images
- quantization parameter
- pass
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/142—Detection of scene cut or scene change
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods 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 group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
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
비디오 인코더는 다양한 인코딩 스킴을 이용함으로써 비디오 이미지들의 시퀀스(예를 들면, 비디오 프레임)를 인코딩한다. 비디오 인코딩 스킴은 통상적으로 비디오 프레임 또는 비디오 프레임의 일부(예를 들면, 비디오 프레임의 픽셀 집합)를 프레임 내(intraframe) 또는 프레임 간(interframe)의 점에서 인코딩한다. 인트라 프레임 인코딩된 프레임 또는 픽셀 집합은 다른 프레임 또는 다른 프레임의 픽셀 집합과는, 독립적으로 인코딩된 것이다. 인터 프레임 인코딩된 프레임 또는 픽셀 집합은 하나 이상의 다른 프레임 또는 다른 프레임의 픽셀 집합을 참조하여 인코딩된 것이다.
비디오 프레임을 압축할 때, 몇몇의 인코더는 인코딩되어야 할 비디오 프레임 또는 비디오 프레임의 집합에 대한 '비트 버짓(bit budget)'을 제공하는 '레이트 제어기(rate controller)'를 구현한다. 비트 버짓은 비디오 프레임 또는 비디오 프레임의 집합을 인코딩하는 데에 할당된 비트 개수를 기술한다. 비트 버짓을 효과적으로 할당함으로써, 레이트 제어기는 특정 제약사항(예를 들면, 목표 비트레이트, 등)의 관점으로 가장 품질이 좋게 압축된 비디오 스트림을 생성하는 것을 도모한다.
현재까지, 다양한 단일-패스 및 멀티-패스 레이트 제어기가 제안되어 왔다. 단일-패스 레이트 제어기는 1 패스로 연속의 비디오 이미지를 인코딩하는 인코딩 스킴에 대한 비트 버짓을 제공하는 한편, 멀티-패스 레이트 제어기는 복수의 패스로 연속의 비디오 이미지를 인코딩하는 인코딩 스킴에 대한 비트 버짓을 제공한다.
단일-패스 레이트 제어기는 실시간 인코딩 상황에 유용하다. 반면에, 멀티-패스 레이트 제어기는 제약사항 집합에 기초하여 특정 비트레이트의 인코딩을 최적화한다. 현재까지는 일부 레이트 제어기만이 자신의 인코딩의 비트레이트를 제어하는 데에 프레임 또는 프레임 내의 픽셀 집합의 공간적 또는 시간적인 복잡도를 고려한다. 또한, 대부분의 멀티-패스 레이트 제어기는 원하는 비트레이트 관점에서 프레임 및/또는 프레임 내의 픽셀 집합에 대한 최적의 양자화 파라미터를 이용하는 인코딩 솔루션(solution)을 찾기 위하여 솔루션 공간을 적절히 검색하지 않는다.
그러므로, 본 기술 분야에서는 비디오 이미지 및/또는 비디오 이미지의 일부의 공간 또는 시간 복잡도를 고려하면서 비디오 이미지의 집합을 인코딩하기 위한 비트레이트를 제어하는 새로운 기술을 이용하는 레이트 제어기가 필요하다. 또한 본 기술 분야에서는 인코딩 솔루션을 적절히 검토하여 비디오 이미지 및/또는 비디오 이미지의 일부에 대한 최적의 양자화 파라미터 집합을 이용하는 인코딩 솔루션을 식별하는 멀티-패스 제어기도 필요하다.
본 발명의 몇몇의 실시예는 복수의 이미지(예를 들면, 복수의 비디오 시퀀스 프레임)를 인코딩하는 멀티-패스 인코딩 방법을 제공한다. 이 방법은 이들 이미지를 인코딩하는 인코딩 동작을 반복적으로 수행한다. 이 인코딩 동작은 이 방법이 이미지들에 대한 양자화 파라미터를 계산하는 데에 이용하는 명목상의 양자화 파라미터에 기초한다. 몇몇의 서로 다른 인코딩 동작의 반복 시에, 방법은 몇몇의 서로 다른 명목상의 양자화 파라미터를 이용한다. 방법은 종료 기준에 도달할 때(예를 들면, 이미지들의 허용가능한 인코딩을 식별할 때) 이 반복들을 중지한다.
본 발명의 몇몇의 실시예는 비디오 시퀀스를 인코딩하기 위한 방법을 제공한다. 이 방법은 비디오의 제1 이미지의 복잡도를 정량화하는 제1 속성을 식별한다. 방법은 또한 식별된 제1 속성에 기초하여 제1 이미지를 인코딩하기 위한 양자화 파라미터를 식별한다. 그 다음, 방법은 식별된 양자화 파라미터에 기초하여 제1 이 미지를 인코딩한다. 몇몇의 실시예에서, 이 방법은 비디오의 몇몇의 이미지에 대하여 이러한 3가지 동작을 수행한다.
본 발명의 몇몇의 실시예는 비디오 이미지 및/또는 비디오 이미지의 일부의 "시각적 마스킹" 속성에 기초하여 비디오 이미지 시퀀스를 인코딩한다. 이미지 또는 이미지의 일부의 시각적 마스킹은 코딩 아티팩트가 이미지 또는 이미지 일부에서 얼마나 허용될 수 있는지에 대한 표시자이다. 이미지 또는 이미지 일부의 시각적인 마스킹 속성을 표현하기 위하여, 몇몇의 실시예는 이미지 또는 이미지 일부의 휘도 에너지를 정량화하는 시각적 마스킹 강도를 계산한다. 몇몇의 실시예에서, 휘도 에너지는 이미지 또는 이미지 일부의 평균 루마(luma) 또는 픽셀 에너지의 함수로서 측정된다.
휘도 에너지 대신에, 또는 휘도 에너지와 함께, 이미지 또는 이미지 일부의 시각적 마스킹 강도 또한 이미지 또는 이미지 일부의 활성 에너지를 정량화할 수 있다. 활성 에너지는 이미지 또는 이미지 일부의 복잡도를 표현한다. 몇몇의 실시예에서, 활성 에너지는 이미지 또는 이미지 일부의 공간적 복잡도를 정량화하는 공간 성분, 및/또는 이미지들 간의 움직임으로 인한 허용될 수 있거나 마스킹될 수 있는 왜곡 양을 정량화하는 움직임 성분을 포함한다.
본 발명의 몇몇의 실시예는 비디오 시퀀스를 인코딩하기 위한 방법을 제공한다. 이 방법은 비디오의 제1 이미지의 시각적인-마스킹 속성을 식별한다. 이 방법은 또한 식별된 시각적-마스킹 속성에 기초하여 제1 이미지를 인코딩하기 위한 양자화 파라미터를 식별한다. 그 다음, 방법은 식별된 양자화 파라미터에 기초하 여 제1 이미지를 인코딩한다.
본 발명의 새로운 특징은 첨부된 특허청구범위에 설명된다. 그러나, 설명을 위하여 본 발명의 몇몇의 실시예가 다음의 도면에 설명된다.
다음의 본 발명의 상세한 설명에서는, 본 발명의, 다양한 상세한 사항, 예, 및 실시예가 설명되고 기술된다. 그러나, 본 발명은 설명된 실시예로 한정되지 않으며 본 발명은 몇몇의 특정 상세한 사항 및 기술된 예 없이도 실행될 수 있음이 본 기술 분야에서 숙련된 기술을 가진 자에게 자명하고 명백할 것이다.
Ⅰ. 정의
이 섹션은 본 명세서에서 이용되는 몇몇의 기호에 대한 정의를 제공한다.
는 프레임 시퀀스를 인코딩하는 데에 바람직한 비트레이트인 목표 비트레이트를 나타낸다. 통상적으로, 이러한 비트레이트는 bit/sec(초 당 비트) 단위로 표현되며, 바람직한 최종 파일 사이즈, 시퀀스에서의 프레임 개수, 및 프레임레이트로부터 계산된다.
ε는 최종 비트레이트에서의 오차 허용치를 나타낸다.
QP는 양자화 파라미터를 나타낸다.
는 프레임 시퀀스에 대한 패스 p 인코딩에 이용되는 명목상의 양자화 파라미터를 나타낸다. 의 값은 제1 QP 조정 단계에서 본 발명의 멀티-패스 인코더에 의해 목표 비트레이트에 도달하도록 조정된다.
는 패스 p에서의 프레임 k에 대한 양자화 파라미터(QP)인 마스킹된 프레임 QP를 나타낸다. 몇몇의 실시예에는 이 값을 명목상의 QP 및 프레임-레벨 시각적 마스킹에 의해 계산한다.
는 프레임 k 및 패스 p의 (매크로블록 인덱스 m을 가지는) 개별적인 매크로블록에 대한 양자화 파라미터(QP)인 마스킹된 매크로블록 QP를 나타낸다. 몇몇의 실시예는 를 및 매크로블록 레벨 시각적 마스킹을 이용하여 계산한다.
는 프레임 k에 대한 마스킹 강도라 칭하는 값을 나타낸다. 마스킹 강도 는 프레임에 대한 복잡도의 측정치이며, 몇몇의 실시예에서, 이 값은 어떻게 시각적인 코딩 아티팩트(artifact)/잡음이 나타날지를 결정하고 프레임 k의 를 계산하는 데에 이용된다.
는 패스 p의 기준 마스킹 강도를 나타낸다. 기준 마스킹 강도는 프레 임 k의 를 계산하는 데에 이용되고, 제2 단계에서 본 발명의 멀티-패스 인코더에 의해 목표 비트레이트에 도달하도록 조정된다.
는 프레임 k의 인덱스 m을 가지는 매크로블록에 대한 마스킹 강도를 나타낸다. 마스킹 강도 는 매크로블록에 대한 복잡도의 측정치이고, 몇몇의 실시예에서 이 값은 시각적인 코딩 아티팩트/잡음이 어떻게 나타날지를 결정하고 를 계산하는 데에 이용된다. AMQPp는 패스 p의 프레임들에 대한 평균 마스킹된 QP를 나타낸다. 몇몇의 실시예에서, 이 값은 패스 p의 모든 프레임들에 대한 평균 로서 계산된다.
Ⅱ. 개관
본 발명의 몇몇의 실시예는 소정의 비트레이트로 프레임 시퀀스를 인코딩하는데에 있어 최상의 시각적인 품질을 이루는 인코딩 방법을 제공한다. 몇몇의 실시예에서, 이 방법은 양자화 파라미터 QP를 모든 매크로블록에 할당하는 시각적인 마스킹 프로세스를 이용한다. 이 할당은 이미지 또는 비디오 프레임의 보다 밝거나 공간적으로 복잡한 구역에서의 코딩 아티팩트/잡음이 보다 어둡거나 평탄한 구역에서의 코딩 아티팩트/잡음에 비하여 잘 보이지 않는다는 사실에 기초한다.
몇몇의 실시예에서, 이러한 시각적인 마스킹 프로세스는 본 발명의 멀티-패스 인코딩 프로세스의 일부로서 수행된다. 이러한 인코딩 프로세스는, 최종 인코딩된 비트 스트림이 목표 비트레이트에 도달하게 하기 위하여, 명목상의 양자화 파 라미터를 조정하고 기준 마스킹 강도 파라미터 을 통하여 시각적인 마스킹 프로세스를 제어한다. 이하에 더 기술될 바와 같이, 명목상의 양자화 파라미터를 조정하는 것과 마스킹 알고리즘을 제어하는 것은 각각의 화상(즉, 통상적인 비디오 인코딩 스킴에서의 각 프레임) 및 각각의 화상 내의 각각의 매크로블록에 대한 QP 값을 조정한다.
몇몇의 실시예에서, 멀티-패스 인코딩 프로세스는 전체 시퀀스에 대한 명목상의 QP 및 을 전역적으로 조정한다. 다른 실시예에서, 이 프로세스는 비디오 시퀀스를 세그먼트들로 나누고 각 세그먼트에 대하여 명목상의 QP 및 이 조정된다. 이하의 설명은 멀티-패스 인코딩 프로세스가 채용된 프레임의 시퀀스를 언급한다. 본 기술 분야에서 통상의 기술을 가진 자라면 이러한 시퀀스는 몇몇의 실시예에서는 전체 시퀀스를 포함하지만, 다른 실시예에서는 시퀀스 중 어느 한 세그먼트만을 포함함을 인식할 것이다.
몇몇의 실시예에서, 방법은 3가지 인코딩 단계를 가진다. 이들 3 단계는 (1) 패스 0에서 수행되는 초기 분석 단계, (2) 패스 1 내지 패스 에서 수행되는 제1 검색 단계, 및 (3) 패스 내지 패스 에서 수행되는 제2 검색 단계이다.
초기 분석 단계(즉, 패스 0)에서, 방법은 명목상의 QP에 대한 초기 값(인코딩의 패스 1에 이용될 QPNom(1))을 식별한다. 초기 분석 단계 중에, 방법은 제1 검 색 단계의 모든 패스에서 이용되는 기준 마스킹 강도 의 값 또한 식별한다.
제1 검색 단계에서, 방법은 인코딩 프로세스의 번의 반복(즉, 패스들)을 수행한다. 각 패스 p 중 각각의 프레임 k에 대하여, 프로세스는 프레임 k 내의 개별적인 매크로블록 m에 대한 특정 양자화 파라미터 및 특정 양자화 파라미터 를 이용함으로써 프레임을 인코딩하며, 여기서 는 를 이용하여 계산된다.
제1 검색 단계에서, 양자화 파라미터 는 패스들마다 변화하는 명목상의 양자화 파라미터 로부터 유도되기 때문에 패스들마다 변한다. 다시 말하면, 제1 검색 단계 중에 각각의 패스 p의 끝에서, 프로세스는 패스 에 대한 명목상의 을 계산한다. 몇몇의 실시예에서, 명목상의 는 이전의 패스(들)로부터의 명목상의 QP 값(들) 및 비트레이트 오차(들)에 기초한다. 다른 실시예에서, 명목상의 값은 제2 검색 단계에서 각각의 패스의 끝에서 서로 다르게 계산된다.
제2 검색 단계에서, 방법은 인코딩 프로세스의 번의 반복(즉, 개의 패스들)을 수행한다. 제1 검색 단계에서와 같이, 프로세스는 프레임 k 내의 개별적인 매크로블록 m에 대한 특정 양자화 파라미터 및 특정 양자화 파라미터 를 이용함으로써 각각의 패스 p 중에 각각의 프레임 k를 인코딩하 는데, 여기서 는 로부터 유도된다.
또한, 제1 검색 단계에서와 같이, 양자화 파라미터 는 패스들마다 변한다. 그러나, 제2 검색 단계 중에, 이러한 파라미터는 패스들마다 변하는 기준 마스킹 강도 를 이용하여 계산되기 때문에 변화하는 것이다. 몇몇의 실시예에서, 기준 마스킹 강도 는 이전 패스(들)로부터의 값(들) 및 비트레이트(들)에서의 오차에 기초하여 계산된다. 다른 실시예에서, 이러한 기준 마스킹 강도는 제2 검색 단계에서의 각각의 패스 끝에서 다른 값이 되도록 계산된다.
멀티-패스 인코딩 프로세스가 시각적인 마스킹 프로세스와 함께 기술되었지만, 본 기술 분야에서 통상의 기술을 가진 자라면 인코더는 이들 프로세스 둘다를 함께 이용할 필요는 없음을 인식할 것이다. 예를 들면, 몇몇의 실시예에서, 멀티-패스 인코딩 프로세스는 을 무시하고 상술한 제2 검색 단계를 생략함으로써 시각적인 마스킹 없이 소정의 목표 비트레이트에 근접하게 비트스트림을 인코딩하는 데에 이용된다.
시각적인 마스킹 및 멀티-패스 인코딩 프로세스는 본 명세서의 섹션 Ⅲ 및 Ⅳ에 더 기술된다.
Ⅲ. 시각적인 마스킹
명목상의 양자화 파라미터가 주어지면, 시각적인 마스킹 프로세스는 먼저 기준 마스킹 강도 () 및 프레임 마스킹 강도를 이용하여 각각의 프레임에 대 한 마스킹된 프레임 양자화 파라미터(MQP)를 계산한다. 그 다음 이 프로세스는 각각의 매크로블록에 대한 마스킹된 매크로블록 양자화 파라미터를, 프레임 및 매크로블록-레벨 마스킹 강도(φF 및 φMB)에 기초하여, 계산한다. 시각적인 마스킹 프로세스가 멀티-패스 인코딩 프로세스에 채용된다면, 몇몇의 실시예에서의 기준 마스킹 강도()는 상술하였고 후술될 바와 같이 제1 인코딩 패스 중에 식별된다.
A. 프레임-레벨 마스킹 강도 계산
1. 제1 접근법
프레임-레벨 마스킹 강도 φF(k) 를 계산하기 위하여, 몇몇의 실시예는 다음의 수학식 1을 이용한다:
여기에서,
2. 제2 접근법
다른 실시예는 프레임-레벨 마스킹 강도를 다르게 계산한다. 예를 들면, 상술한 수학식 1은 본질적으로 다음과 같이 프레임 마스킹 강도를 계산한다:
수학식 1에서, 프레임의 는 와 같고, 는 프레임의 모든 매크로블록에 대한 평균 매크로블록 SAD() 값인 와 같으며, 여기서 평균 매크로블록 SAD는 매 크로블록의 모든 4x4 블록에 대한 (에 의해 주어진) 평균 제거된 4x4 픽셀 편차의 절대값의 합과 같다. 이 는 코딩되고 있는 프레임 내의 픽셀의 영역의 공간적 전개의 총계를 측정한다.
다른 실시예는 복수의 연속되는 프레임에 걸친 픽셀 영역에서의 시간적 전개의 양을 포함하도록 활성 측정치를 확장한다. 상세히는, 이들 실시예는 다음과 같이 프레임 마스킹 강도를 계산한다.
몇몇의 실시예에서, 는 프레임들 간의 움직임에 의한, 허용될 수 있는(즉, 마스킹될 수 있는) 왜곡의 양을 정량화한다. 몇몇의 이들 실시예에서, 프레임의 는 프레임 내에 정의된 픽셀 영역의 움직임 보상된 오차 신호의 절대값 합의 정수배와 같다. 다른 실시예에서, 는 아래의 수학식 4에 의해 제공된다.
수학식 4에서, ""는 (상술한 바와 같이) 프레임의 평균 매크로블록 SAD() 값을 나타내고, (0)은 현재 프레임에 대한 이며, 음수 j는 현재 프레임 이전의 순시(time instant)를 인덱싱하고 양수 j는 현재 프레임 이후의 순시를 인덱싱한다. 그러므로, 는 현재 프레임 이전의 2개의 프레임의 평균 프레임 SAD를 나타내고, 는 현재 프레임 이후의 3개의 프레임의 평균 프레임 SAD를 나타낸다.
또한, 수학식 4에서, 변수 N 및 M은 각각 현재 프레임 이전의 프레임 개수 및 현재 프레임 이후의 프레임 개수를 나타낸다. 단순히 특정 개수의 프레임에 기초하여 값 N 및 M을 선택하는 대신에, 몇몇의 실시예는 현재 프레임 시간의 이전 및 이후 특정 시간 간격에 기초하여 값 N 및 M을 계산한다. 움직임 마스킹을 시간적인 기간에 상호 연관시키는 것은 움직임 마스킹을 설정된 수의 프레임에 상호 연관시키는 것보다 유리하다. 이는 움직임 마스킹을 시간적인 간격과의 상호 연관시 키는 것이 관찰자의 시간 기반의 시각적인 인식에 직접적으로 순응하기 때문이다. 반면에, 이러한 마스킹을 프레임 수에 상호 연관시키면 서로 다른 디스플레이가 서로 다른 프레임레이트로 비디오를 표시하기 때문에 디스플레이 간격이 변화되는 문제가 있다.
수학식 4에서, "W"는 몇몇의 실시예에서 프레임 j가 현재 프레임으로부터 진행됨에 따라 감소하는 가중치 계수를 나타낸다. 또한, 이 수학식에서, 첫번째 합산은 현재 프레임 이전에 마스킹될 수 있는 움직임의 양을 나타내고, 두번째 합산은 현재 프레임 이후에 마스킹될 수 있는 움직임의 양을 나타내며, 마지막 표현식()은 현재 프레임의 프레임 SAD를 나타낸다.
몇몇의 실시예에서, 가중치 계수는 장면 전환을 설명하도록 조정된다. 예를 들면, 몇몇의 실시예는 예견 범위 내의(즉, M 프레임 내의) 다가오는 장면 전환을 설명하지만, 장면 전환 이후의 임의의 프레임을 설명하지는 않는다. 예를 들면, 이들 실시예는 장면 전환 이후의 예견 범위 내의 프레임에 대하여 가중치 계수를 0으로 설정할 수 있다. 또한, 몇몇의 실시예는 회고 범위 내의(즉, M 프레임 내의) 장면 전환 이전 또는 장면 전환 중의 프레임을 설명하지 않는다. 예를 들면, 이들 실시예는 이전 장면과 관련되거나 이전 장면 전환 전에 있었던 회고 범위 내의 프레임에 대하여 가중치 계수를 0으로 설정할 수 있다.
3. 제2 접근법에 대한 변형
몇몇의 실시예는 의 계산을 수정하여 와 중 어느 것도 부적절하게 의 값을 제어하지 않도록 한다. 예를 들면, 몇몇의 실시예는 초기에 PFA가 와 같고, FFA가 와 같도록 정의한다.
그 다음 이들 실시예는 PFA가 FFA의 스칼라 곱보다 더 큰지를 판정한다. 그렇다면, 이들 실시예는 PFA를 상한 PFA 한계 값(예를 들면, FFA의 스칼라 곱)과 같도록 설정한다. PFA를 상한 PFA 한계 값과 같도록 설정하는 것 이외에도, 몇몇의 실시예는 FFA를 0으로 설정하고 CFA를 0으로 설정하는 것을 조합하여 수행할 수 있다. 다른 실시예는 PFA와 CFA 모두 또는 이 둘 중 하나를 PFA, CFA, 및 FFA의 가중된 조합으로 설정할 수 있다.
마찬가지로, 초기에는 가중된 합에 기초하여 PFA 및 FFA 값을 정의한 이후에, 몇몇의 실시예는 또한 FFA 값이 PFA의 스칼라 곱보다 큰지를 판정한다. 그렇다면, 이들 실시예는 FFA가 상한 FFA 한계 값(예를 들면, PFA의 스칼라 곱)과 같도록 설정한다. FFA를 상한 FFA 한계 값과 같도록 설정하는 것 이외에도, 몇몇의 실시예는 PFA를 0으로 설정하고 CFA를 0으로 설정하는 것을 조합하여 수행할 수 있다. 다른 실시예는 FFA와 CFA 모두 또는 이 둘 중 하나를 FFA, CFA, 및 PFA의 가중된 조합으로 설정할 수 있다.
몇몇의 실시예는 의 계산을 수정하여 및 중 어느 것도 의 값을 부적절하게 제어하지 않도록 한다. 예를 들면, 몇몇의 실시예는 초기에 를 scalar*(scalar* )β와 같도록 정의하고, 를 와 같도록 정의한다.
그 다음 이들 실시예는 SA가 TA의 스칼라 곱보다 큰지를 판정한다. 그렇다면, 이들 실시예는 SA가 상한 SA 한계 값(예를 들면, TA의 스칼라 곱)과 같도록 설정한다. SA를 상한 SA 한계와 같도록 설정하는 것 이외에도, 이 경우 몇몇의 실시예는 TA 값을 0 또는 TA와 SA의 가중된 조합으로 설정할 수도 있다.
마찬가지로, 초기에 지수방정식에 기초하여 SA 및 TA 값을 정의한 이후에, 몇몇의 실시예는 또한 TA 값이 SA의 스칼라 곱보다 큰지를 판정한다. 그렇다면, 이들 실시예는 TA가 상한 TA 한계 값(예를 들면, SA의 스칼라 곱)과 같도록 설정한다. TA를 상한 TA 한계와 같도록 설정하는 것 이외에도, 이 경우 몇몇의 실시예는 SA 값을 0으로 설정하거나 SA와 TA의 가중된 조합으로 설정할 수도 있다.
B. 매크로블록-레벨 마스킹 강도의 계산
1. 제1 접근법
여기서,
2. 제2 접근법
상술한 수학식 5는 본질적으로 다음과 같이 매크로블록 마스킹 강도를 계산한다:
프레임 마스킹 강도의 경우에서와 같이, 몇몇의 실시예는 복수의 연속되는 프레임에 걸친 픽셀 영역에서의 시간적 전개의 양을 포함하도록 매크로블록 마스킹 강도의 활성 측정치를 확장할 수 있다. 상세히는, 이들 실시예는 다음과 같이 매크로블록 마스킹 강도를 계산할 것이다:
여기서, Mb_Activity_Attribute는 다음의 수학식 7에 의해 주어진다:
매크로블록에 대한 Mb_Temporal_Activity_Attribute의 계산은 상술한 프레임에 대한 Mb_Temporal_Activity_Attribute의 계산과 유사할 수 있다. 예를 들면, 몇몇의 이들 실시예에서, Mb_Temporal_Activity_Attribute는 다음의 수학식 8에 의해 제공된다:
수학식 8의 변수들은 섹션 Ⅲ.A에 정의되었다. 수학식 5에서, 프레임 i 또는 j의 매크로블록 m은 현재 프레임의 매크로블록 m에서의 위치와 동일한 위치의 매크로블록일 수 있거나, 현재 프레임의 매크로블록 m에 대응하도록 초기에 예측된 프레임 i 또는 j에서의 매크로블록일 수 있다.
수학식 8이 제공한 Mb_Temporal_Activity_Attribute는 수학식 4가 제공한 프레임 Temporal_Activity_Attribute의 (상기 섹션 Ⅲ.A.3에 기술된) 수정과 유사한 방식으로 수정될 수 있다. 상세히는, 수학식 8이 제공한 Mb_Temporal_Activity_Attribute는 과거 또는 미래의 프레임의 매크로블록의 부적절한 영향을 제한하도록 수정될 수 있다.
마찬가지로, 수학식 7이 제공한 Mb_Activity_Attribute는 수학식 3이 제공한 프레임 의 (상기 섹션 Ⅲ.A.3)에 기술된 수정과 유사한 방식으로 수정될 수 있다. 상세히는, 수학식 7이 제공한 Mb_Activity_Attribute는 Mb_Spatial_Activity_Attribute 및 Mb_Temporal_Activity_Attribute의 부적절한 영향을 제한하도록 수정될 수 있다.
C. 마스킹된 QP 값의 계산
마스킹 강도의 값( 및 ) 및 기준 마스킹 강도의 값에 기초하여, 시각적인 마스킹 프로세스는 2개의 함수 및 를 이용함으로써 프레임 레벨 및 매크로블록 레벨에서 마스킹된 QP 값을 계산할 수 있다. 이들 2 함수의 의사 코드는 다음과 같다:
Ⅳ. 멀티 패스 인코딩
도 1은 본 발명의 몇몇의 실시예의 멀티-패스 인코딩 방법을 개념적으로 도시한 프로세스(100)를 나타낸다. 이 도면에 도시된 바와 같이, 프로세스(100)는 3 단계를 가지며, 이들 단계는 다음의 3개의 서브-섹션에서 기술된다.
A. 분석 및 초기 QP 선택
도 1에 도시된 바와 같이, 프로세스(100)는 먼저 멀티-패스 인코딩 프로세스의 초기 분석 단계 중에 (즉 패스 0 중에) 기준 마스킹 강도의 초기값(φR(1)) 및 명목상의 양자화 파라미터의 초기값(QPNom(1))을 계산한다(105). 초기 기준 마스킹 강도(φR(1))는 제1 검색 단계 중에 이용되는 한편, 초기 명목상의 양자화 파라미터(QPNom(1))는 제1 검색 단계의 제1 패스 중에(즉, 멀티-패스 인코딩 프로세스의 패스 1 중에) 이용된다.
패스 0의 시작 시에, φR(0)은 실험적 결과에 기초하여 선택된 몇몇의 임의의 값 또는 하나의 값(예를 들면, φR 값의 통상적인 범위의 중간 값)일 수 있다. 시퀀스의 분석 중에, 마스킹 강도 (k)가 각 프레임에 대하여 계산된 다음, 기준 마스킹 강도, φR(1), 는 패스 0의 끝에서 avg((k))와 같도록 설정된다. 기준 마스킹 강도 φR에 대한 다른 결정 또한 가능하다. 예를 들면, 값 (k)의 중앙치 또는 다른 산술 함수, 예를 들면 값 (k)의 가중된 평균으로서 계산될 수 있다.
복잡도가 변화되는 초기 QP 선택에 대한 몇 가지 접근법이 존재한다. 예를 들면, 초기 명목상의 QP가 임의의 값(예를 들면, 26)으로 선택될 수 있다. 대안으 로, 코딩 실험에 기초하여 목표 비트레이트에 대한 허용가능한 품질을 생성한다고 알려진 값이 선택될 수 있다.
초기 명목상의 QP 값은 또한 공간적 해상도, 프레임레이트, 공간/시간 복잡도, 및 목표 비트레이트에 기초하여 룩업 테이블로부터 선택될 수도 있다. 몇몇의 실시예에서, 이러한 초기 명목상의 QP 값은 이들 파라미터 각각에 의존하는 거리 측정치를 이용하는 테이블로부터 선택되거나, 이들 파라미터의 가중된 거리 측정치를 이용하여 선택될 수 있다.
이러한 초기 명목상의 QP 값은 또한 (마스킹을 하지 않고) 레이트 제어기를 이용하여 고속으로 인코딩하는 중에 선택되기 때문에 프레임 QP 값의 조정된 평균으로 설정될 수 있는데, 여기서 평균은 패스 0에 대한 비트레이트 퍼센트 비율 오차 E0에 기초하여 조정되었다. 마찬가지로, 초기 명목상의 QP는 또한 프레임 QP 값의 가중되고 조정된 평균으로 설정될 수 있는데, 여기서 각각의 프레임에 대한 가중치는 이 프레임에서, 생략된 매크로블록으로서 코딩되지 않는 매크로블록의 퍼센트에 의해 결정된다. 대안으로, 초기 명목상의 QP는 (마스킹을 하면서) 레이트 제어기를 이용하여 고속으로 인코딩하는 중에 선택되기 때문에, φR(0) 에서 φR(1) 로의 기준 마스킹 강도의 변화의 영향이 고려되는 한, 프레임 QP 값의 조정된 평균 또는 조정되고 가중된 평균으로 설정될 수 있다.
B. 제1 검색 단계: 명목상의 QP 조정
참조번호(105) 이후에, 멀티-패스 인코딩 프로세스(100)는 제1 검색 단계에 들어간다. 제1 검색 단계에서, 프로세스(100)는 시퀀스의 N1 번의 인코딩을 수행하는데, 여기에서 N1 은 제1 검색 단계 전반에 걸치는 패스들의 개수를 나타낸다. 각각의 제1 단계의 패스 중에, 프로세스는 상수 기준 마스킹 강도를 가지는 변경되는 명목상의 양자화 파라미터를 사용한다.
상세히는, 제1 검색 단계의 각각의 패스 p 중에, 프로세스(100)는 각 프레임 k에 대한 특정 양자화 파라미터 및 프레임 k 내의 각각의 개별적인 매크로블록 m에 대한 특정 양자화 파라미터 를 계산한다(107). 소정의 명목상의 양자화 파라미터 및 기준 마스킹 강도 에 대한 파라미터 및 의 계산은 섹션 Ⅲ에 기술되었다(여기서, 및 는 섹션 Ⅲ에서 기술하였던 함수 및 를 이용함으로써 계산된다.). 제1 패스(즉, 패스 1) 내지 참조번호(107)에서, 명목상의 양자화 파라미터 및 제1 단계 기준 마스킹 강도는 초기 분석 단계(105) 중에 계산되었던 파라미터 QPNom(1) 및 기준 마스킹 강도 φR(1)이다.
참조번호(107) 다음에, 프로세스는 참조번호(107)에서 계산한 양자화 파라미터 값에 기초하여 시퀀스를 인코딩한다(110). 그 다음, 인코딩 프로세스(100)는 종료되어야 하는지 여부를 판정한다(115). 서로 다른 실시예들이 전체 인코딩 프로세스를 종료하기 위한 서로 다른 기준을 가진다. 멀티-패스 인코딩 프로세스를 완전히 종료하는 탈출 조건의 예는 다음을 포함한다:
ㆍ 패스의 개수가 허용가능한 패스의 최대 개수 PMAX를 초과하였다.
몇몇의 실시예는 이들 탈출 조건 모두를 사용할 수 있는 한편, 다른 실시예는 이들 중 몇 가지만을 사용할 수 있다. 그러나 다른 실시예들이 인코딩 프로세스를 종료하기 위한 다른 탈출 조건을 사용할 수 있다.
멀티-패스 인코딩 프로세스가 종료된다고 판정한다면(115), 프로세스(100)는 제2 검색 단계를 생략하고 참조번호(145)로 이동한다. 참조번호(145)에서, 프로세스는 마지막 패스 p로부터의 비트스트림을 최종 결과로서 저장한 다음 종료한다.
반면에, 프로세스가 종료되지 않아야 한다고 판정하면(115), 제1 검색 단계를 종료해야 하는지를 판정한다(120). 마찬가지로, 서로 다른 실시예들이 제1 검색 단계를 종료하기 위한 서로 다른 기준을 가진다. 멀티-패스 인코딩 프로세스의 제1 검색 단계를 종료하는 탈출 조건의 예는 다음을 포함한다:
ㆍ패스의 개수가 P1을 초과한다, 여기서 P1은 PMAX보다 작다.
몇몇의 실시예는 이들 탈출 조건 모두를 사용할 수 있는 한편, 다른 실시예는 이들 중 몇 가지만을 사용할 수 있다. 그러나 다른 실시예들이 제1 검색 단계를 종료하기 위한 다른 탈출 조건을 사용할 수 있다.
멀티-패스 인코딩 프로세스가 제1 검색 단계를 종료한다고 판정한다면(120), 프로세스(100)는 다음 서브-섹션에서 기술될 제2 검색 단계로 진행한다. 반면에, 프로세스가 제1 검색 단계를 종료하지 않아야 한다고 판정하면(120), 제1 검색 단계의 다음 패스에 대한 명목상의 QP를 갱신한다(125)(즉, 을 정의한다). 몇몇의 실시예에서, 명목상의 는 다음과 같이 갱신된다. 패스 1의 끝에서, 이들 실시예는
를 정의하며, 여기서 는 이하 더 기술될 함수이다. 또한, 상기 수학식에서, q1 및 q2는 패스 p까지의 모든 패스들 중에서 가장 낮은 대응하는 비트레이트 오차를 가지는 패스 번호이고, q1, q2, 및 p는 다음과 같은 관계를 가진다:
다음은 InterpExtrap 함수에 대한 의사 코드이다. x가 x1과 x2 사이에 있지 않은 경우, 이 함수는 외삽법 함수임을 유의한다. 그렇지 않다면, 이 함수는 내삽법 함수이다.
명목상의 QP값은 통상적으로 정수 값으로 반올림되며 QP 값의 유효 범위 내에 주어지도록 무수리를 갖다 버린다. 본 기술 분야에서 통상의 기술을 가진 자라면 다른 실시예들은 상술한 접근법들과는 다르게 명목상의 값을 계산할 수 있음을 인식할 것이다.
참조번호(125)에서, 프로세스는 참조번호(107)로 다시 이동하여 다음 패스(즉, p :=p+1)를 시작하는데, 이 패스에서, 현재 패스 p에 대하여 각 프레임 k에 대한 특정 양자화 파라미터 및 프레임 k 내의 개별적인 매크로 블럭 각각에 대한 특정 양자화 파라미터 를 계산한다(107). 그 다음, 프로세스는 이들 새롭게 계산된 양자화 파라미터에 기초하여 프레임의 시퀀스를 인코딩한다(110). 그 다음 참조번호(110)로부터, 프로세스는 상술하였던 참조번호(115)로 이동한다.
C. 제2 검색 단계: 기준 마스킹 강도 조정
프러세스(100)가 제1 검색 단계를 종료해야 한다고 판정한다면(120), 프로세스는 참조번호(130)로 이동한다. 제2 검색 단계에서, 프로세스(100)는 N2번의 시퀀스 인코딩을 수행하는데, 여기서 N2는 제2 검색 단계의 전반에 걸친 패스들의 개수를 나타낸다. 각각의 패스 중에, 프로세스는 동일한 명목상의 양자화 파라미터 및 변경되는 기준 마스킹 강도를 이용한다.
참조번호(130)에서, 프로세스(100)는 다음 패스, 즉 패스 N1+1인 패스 p+1에 대한 기준 마스킹 강도 φR(p+1)을 계산한다. 패스 N1+1에서, 프로세스(100)는 참조번호(315)에서 프레임의 시퀀스를 인코딩한다. 서로 다른 실시예들이 서로 다른 방식으로 패스 p의 끝에서 기준 마스킹 강도 φR(p+1)를 계산한다(130). 2개의 대안적인 접근법이 후술될다.
몇몇의 실시예는 이전 패스(들)로부터의 의 비트레이트(들) 및 값(들)의 오차에 기초하여 기준 마스킹 강도 를 계산한다. 예를 들면, 패스 N1의 끝에서, 몇몇의 실시예는 를 정의한다.
패스 N1+m(m은 1보다 큰 정수)의 끝에서, 몇몇의 실시예는
를 정의한다. 대안으로 몇몇의 실시예는
를 정의하는데, 여기에서 q1 및 q2는 최상의 오차를 제공하였던 이전의 패스들이다.
다른 실시예들은 섹션 Ⅰ에서 정의하였던 AMQP를 이용함으로써 제2 검색 단계의 각 패스들의 끝에서 기준 마스킹 강도를 계산한다. 소정의 명목상의 QP에 대한 AMQP 및 에 대한 몇몇의 값을 계산하기 위한 한가지 방식은 함수 의 의사코드를 참조하여 다음에 기술된다.
AMQP를 이용하는 몇몇의 실시예는 이전 패스(들)로부터의 AMQP의 비트레이트(들) 및 값(들)에서의 오차에 기초하여 패스 p+1에 대한 소정의 AMQP를 계산한다. 그 다음 이 AMQP에 대응하는 은 의사코드가 이 서브섹션의 끝에 주어지는 함수 에 의해 주어진 검색 프로세저를 통해 구한다.
상기 의사 코드에서, 숫자 10, 12 및 0.05는 적절하게 선택된 임계값으로 교체될 수 있다.
프레임 시퀀스의 인코딩을 통하여 다음 패스(패스 p+1)에 대한 기준 마스킹 강도를 계산한 후에, 프로세스(100)는 참조번호(132)로 이동하여 다음 패스(즉, p:=p+1)를 시작한다. 각각의 인코딩 패스 p 중에 각각의 프레임 k 및 각각의 매크 로블록 m에 대하여, 프로세스는 각각의 프레임 k에 대한 특정 양자화 파라미터 및 프레임 k 내의 개별적인 매크로블록에 대한 특정 양자화 파라미터 을 계산한다(132). 소정의 명목상의 양자화 파라미터 및 기준 마스킹 강도 에 대한 파라미터 및 의 계산은 섹션 Ⅲ에 기술되었다(여기서 및 은 상기 섹션 Ⅲ에 기술에 기술되었던 함수 및 를 이용함으로써 계산된다). 제1 패스 내지 참조번호(132) 중에, 기준 마스킹 강도는 바로 이전의 참조번호(130)에서 계산되었던 것이다. 또한, 제2 검색 단계 중에, 명목상의 QP는 제2 검색 단계 전반에 걸쳐 상수를 유지하고 있다. 몇몇의 실시예에서, 제2 검색 단계 전반에 걸친 명목상의 QP는 제1 검색 단계 중에 최상의 인코딩 솔루션(즉, 가장 낮은 비트레이트 오차를 가지는 인코딩 솔루션)을 생성하는 명목상의 QP이다.
참조번호(132) 이후에, 프로세스는 참조번호(130)에서 계산된 양자화 파라미터를 이용하여 프레임 시퀀스를 인코딩한다(135). 참조번호(135) 이후에, 프로세스는 제2 검색 단계를 종료해야 하는지를 판정한다(140). 다른 실시예에서는 패스 p의 끝에서 제2 검색 단계를 종료하기 위한 서로 다른 기준을 사용한다.
이러한 기준의 예들은 다음과 같다.
ㆍ 패스의 개수가 허용되는 패스의 최대 수를 초과한다.
몇몇의 실시예는 이들 탈출 조건 모두를 사용할 수 있는 한편, 다른 실시예 는 이들 중 몇 가지만을 사용할 수 있다. 그러나 다른 실시예들이 제1 검색 단계를 종료하기 위한 다른 탈출 조건을 사용할 수 있다.
프로세스(100)가 제2 검색 단계를 종료하지 않아야 한다고 판정하면(140), 다음의 인코딩 패스를 위하여 기준 마스크 강도를 다시 계산하도록 참조번호(130)로 복귀한다. 참조번호(130)로부터, 프로세스는 참조번호(132)로 이동하여 양자화 파라미터를 계산한 다음 참조번호(135)로 이동하여 새로이 계산된 양자화 파라미터를 이용함으로써 비디오 시퀀스를 인코딩한다.
반면에, 프로세스가 제2 검색 단계를 종료한다고 판정하면(140), 참조번호(145)로 이동한다. 참조번호(145)에서, 프로세스(100)는 마지막 패스 p로부터의 비트스트림을 최종 결과로서 저장한 다음, 종료한다.
V. 디코더 입력 버퍼 언더플로우 제어
본 발명의 몇몇의 실시예는 디코더가 이용하는 입력 버퍼의 사용에 대한 최적의 인코딩 솔루션을 식별하기 위해, 목표 비트레이트를 찾기 위하여 비디오 시퀀스의 각종 인코딩을 검사하는 멀티-패스 인코딩 프로세스를 제공한다. 몇몇의 실시예에서, 이러한 멀티-패스 프로세스는 도 1의 멀티-패스 프로세스(100)를 따른다.
인코딩된 이미지의 사이즈, 디코더가 인코딩된 데이터를 수신하는 레이트, 디코더 버퍼의 사이즈, 디코딩 프로세스의 속도에서의 변동과 같은, 몇 가지 요소 때문에, 디코더 입력 버퍼("디코더 버퍼") 사용은 인코딩된 이미지 시퀀스(예를 들면, 프레임들)의 디코딩 중에 어느 정도 변동할 것이다.
디코더 버퍼 언더플로우는 해당 이미지가 디코더측에 완전히 도달하기 전에 디코더가 그 다음 이미지를 디코딩하기를 준비하는 상황을 의미한다. 몇몇의 실시예의 멀티-패스 인코더는 디코더 버퍼 언더플로우를 방지하기 위하여 디코더 버퍼를 시뮬레이션하고 시퀀스에서 선택된 세그먼트를 재-인코딩한다.
도 2는 본 발명의 몇몇의 실시예의 코덱 시스템(200)을 도시한다. 이 시스템은 디코더(205) 및 인코더(210)를 포함한다. 이 도면에서, 인코더(210)는 이 인코더가 디코더(205)의 동일 구성요소의 동작을 시뮬레이션할 수 있게 하는 몇몇의 구성요소를 가진다.
구체적으로, 디코더(205)는 입력 버퍼(215), 디코딩 프로세스(220), 및 출력 버퍼(225)를 포함한다. 인코더(210)는 시뮬레이션된 디코더 입력 버퍼(230), 시뮬레이션된 디코딩 프로세스(235), 및 시뮬레이션된 디코더 출력 버퍼(240)를 보유함으로써 이들 모듈을 시뮬레이션한다. 본 발명의 설명을 방해하지 않기 위해, 도 2는 디코딩 프로세스(220) 및 인코딩 프로세스(245)를 하나의 블록으로 나타내도록 단순화하였다. 또한, 몇몇의 실시예에서, 시뮬레이션된 디코딩 프로세스(235) 및 시뮬레이션된 디코더 출력 버퍼(240)는 버퍼 언더플로우 관리에 이용되지 않으므로 이 도면에서는 오직 예시용으로만 도시되었다.
디코더는 입력 버퍼(215)를 보유하여 들어오는 인코딩된 이미지의 레이트 및 도달 시점에 대한 변동을 제거시킨다. 디코더가 데이터를 다 소모했거나(언더플로우) 입력 버퍼를 가득 채울 경우(오버플로우), 화상 디코딩이 중지되거나 들어오는 데이터가 버려지기 때문에 디코딩이 끊기는 것이 보일 것이다. 이러한 경우들은 바람직하지 못하다.
언더플로우 상태를 제거하기 위하여, 몇몇의 실시예에서의 인코더(210)는 먼저 이미지들의 시퀀스를 인코딩하고 이 인코딩된 시퀀스를 저장 장치(255)에 저장한다. 예를 들면, 인코더(210)는 멀티-패스 인코딩 프로세스(100)를 이용하여 이미지들의 시퀀스의 제1 인코딩을 획득한다. 그 다음 디코더 입력 버퍼(215)를 시뮬레이션하고 버퍼 언더플로우를 일으켰을 이미지들을 재-인코딩한다. 모든 버퍼 언더플로우 상태가 제거된 이후에, 재-인코딩된 이미지가 네트워크 접속(인터넷, 케이블, PSTN선, 등), 비-네트워크 직접 접속, 미디어(DVD 등) 등일 수 있는 접속(255)을 통해 디코더(205)에 제공된다.
도 3은 몇몇의 실시예의 인코더의 인코딩 프로세스(300)를 도시한다. 이 프로세스는 디코더 버퍼가 언더플로우를 일으키지 않는 최적의 인코딩 솔루션을 찾기를 시도한다. 도 3에 도시된 바와 같이, 프로세스(300)은 바람직한 목표 비트레이트를 만족시키는(예를 들면, 시퀀스에서의 각각의 이미지에 대한 평균 비트레이트는 바람직한 평균 목표 비트레이트를 만족시키는) 이미지들의 시퀀스의 제1 인코딩을 식별한다(302). 예를 들면, 프로세스(300)는 멀티-패스 인코딩 프로세스(100)를 이용하여 이미지들의 시퀀스의 제1 인코딩을 획득할 수 있다(302).
참조번호(302) 이후에, 인코딩 프로세스(300)는 접속 속도(즉, 디코더가 인코딩된 데이터를 수신하는 속도), 디코더 입력 버퍼의 사이즈, 인코딩된 이미지의 사이즈, 디코딩 프로세스 속도, 등과 같은 다양한 요소를 고려함으로써 디코더 입력 버퍼(215)를 시뮬레이션한다(305). 참조번호(310)에서, 프로세스(300)는 인코 딩된 이미지의 임의의 세그먼트가 디코더 입력 버퍼를 언더플로우되게 할 것인지를 판정한다. 인코더가 언더플로우 상태를 판정하는(그리고 그 다음 제거하는) 데에 이용하는 기법은 이하 더 기술된다.
프로세스(300)가 인코딩된 이미지가 언더플로우 상태를 일으키지 않는다고 판정하면(310), 프로세스는 종료된다. 반면, 프로세스(300)가 인코딩된 이미지의 임의의 세그먼트에 버퍼 언더플로우 상태가 존재한다고 판정하면(310), 인코딩 파라미터를 이전의 인코딩 패스로부터의 이들 파라미터의 값에 기초하여 정련한다(315). 그 다음 프로세스는 언더플로우를 가지는 세그먼트를 재-인코딩하여 세그먼트 비트 사이즈를 줄인다(320). 세그먼트를 재-인코딩한 후에, 프로세스(300)는 세그먼트를 검사하여 언더플로우 상태가 제거되었는지 판정한다(325).
프로세스가 세그먼트는 여전히 언더플로우를 일으킨다고 판정한다면(325), 프로세스(300)는 참조번호(315)로 이동하여 언더플로우를 제거하도록 인코딩 파라미터를 더 정련한다. 이와는 다르게, 프로세스가 세그먼트는 임의의 언더플로우를 일으키지 않을 것이라 판정하면(325), 프로세스는 참조번호(320)에서의 마지막 반복에서 재-인코딩된 세그먼트의 끝 이후의 프레임으로서 비디오 시퀀스를 재검토하고 재-인코딩하기 위한 시작점을 지정한다(330). 그 다음, 참조번호(335)에서, 프로세스는 참조번호(330)에서 지정된 비디오 시퀀스의 일부를 참조번호(315 및 320)에서 지정된 언더플로우 세그먼트에 후속하는 제1 IDR 프레임까지(이 프레임은 포함되지 않음) 재-인코딩한다. 참조번호(335) 이후에, 프로세스는 참조번호(305)로 다시 이동하여 재인코딩 이후에 비디오 시퀀스의 나머지가 여전히 버퍼 언더플로우 를 일으키는지 판정하기 위해 디코더 버퍼를 시뮬레이션한다. 참조번호(305)로부터의 프로세스(300)의 흐름은 위에서 기술하였다.
A. 인코딩된 이미지의 시퀀스에서의 언더플로우 세그먼트 결정
상술한 바와 같이, 인코더는 인코딩되거나 재-인코딩된 이미지의 세그먼트 내의 임의의 세그먼트가 디코더 버퍼에서 언더플로우를 일으키는지 판정하기 위해 디코더 버퍼 상태를 시뮬레이션한다. 몇몇의 실시예에서, 인코더는 인코딩된 이미지의 사이즈, 대역폭과 같은 네트워크 상태, 디코더 요소(예를 들면, 입력 버퍼 사이즈, 이미지를 제거하는 초기 및 명목상의 시간, 디코딩 프로세스 시간, 각각의 이미지의 디스플레이 시간, 등)를 고려하는 시뮬레이션 모델을 이용한다.
몇몇의 실시예에서, MPEG-4 AVC 코딩된 화상 버퍼(CPB) 모델이 디코더 입력 버퍼 상태를 시뮬레이션하는 데에 이용된다. CPB는 HRD(Hypothetical Reference Decoder)의 시뮬레이션된 입력 버퍼를 칭하기 위해 MPEG-4 H. 264 표준에서 이용되는 용어이다. HRD는 인코딩 프로세스가 산출할 수 있는 스트림에 따르는 변화성에 대한 제약사항을 기술하는 가상의 디코더 모델이다. CPB 모델이 잘 알려져 있으며 이하 섹션 1에 편의를 위해 기술된다. CPB 및 HRD의 보다 상세한 설명은 "Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification(ITU-T Rec. H. 264/ISO/IEC 14496-10 AVC)"에 기재되어 있다.
1. CPB 모델을 이용하여 디코더 버퍼를 시뮬레이션하기
다음의 단락은 몇몇의 실시예에서 디코더 입력 버퍼가 CPB 모델을 이용하여 시뮬레이션 되는 방식을 기술한다. 이미지 n의 제1 비트가 CPB에 들어가기 시작하 는 시간은 다음과 같이 도출되는, 초기 도달 시점 tai(n)라고 칭한다.
ㆍ 이미지가 제1 이미지라면(즉, 이미지 0), tai(0)=0
ㆍ 이미지가 인코딩되거나 재-인코딩되고 있는 시퀀스에서의 제1 이미지가 아니라면(즉, n>0), tai(n)=MAX(taf(n-1), tai,earliest(n)).
상기 식에서,
ㆍ tai,earliest(n)=tr,n(n)-initial_cpb_removal_delay,
여기서 tr,n(n)은 이하에 기술된 바와 같이 CPB로부터의 이미지 n의 명목상의 제거 시점이며 initial_cpb_removal_delay는 초기 버퍼링 기간이다.
이미지에 대한 최후 도달 시점은
taf(n)=tai(n)+b(n)/BitRate,
에 의해 유도된다.
여기서 b(n)은 이미지 n의 비트 사이즈이다.
몇몇의 실시예에서, 인코더는 명목상의 제거 시간의 계산을, H.264 사양에서와 같이 비트 스트림의 선택적인 부분으로부터 판독하는 대신에 후술될 바와 같이 직접 계산한다. 이미지 0의 경우, CPB로부터의 이미지의 명목상의 제거 시점은
로 기술된다.
이미지 n(n>0)의 경우, CPB로부터의 이미지의 명목상의 제거 시점은
tr,n(n)=tr,n(0)+sumi=0 to n-1(ti)
로 기술되는데,
여기서 tr,n(n)은 이미지 n의 명목상의 제거 시점이며, ti는 화상 i에 대한 디스플레이 기간이다.
이미지 n의 제거 시점은 다음과 같이 기술된다.
ㆍ tr,n(n)>=taf(n)이면, tr(n)=tr,n(n),
ㆍ tr,n(n)<taf(n)이면, tr(n)=taf,n(n)
후자의 경우는 이미지 n의 사이즈, b(n)이 너무 커서 명목상의 제거 시점에서 제거를 못하는 것을 나타낸다.
2. 언더플로우 세그먼트의 탐지
이전 섹션에서 기술된 바와 같이, 인코더는 디코더 입력 버퍼 상태를 시뮬레이션하고 소정의 순시에서 버퍼의 비트 개수를 획득할 수 있다. 대안으로, 인코더는 어떻게 각각의 개별적인 이미지가 자신의 명목상의 제거 시점과 최후 도달 시점 간의 차(즉, tb(n)=tr,n(n)-taf(n))를 통해 디코더 입력 버퍼 상태를 변경하는지 추적할 수 있다. tb(n)가 0보다 작다면, 버퍼는 순시 tr,n(n)과 taf(n) 간에, 그리고 가능하다면 tr,n(n) 이전과 taf(n) 이후에 언더플로우를 겪고 있다.
언더플로우에 직접 관련된 이미지는 tb(n)이 0보다 작은지 검사함으로써 쉽 게 발견될 수 있다. 그러나, 0보다 작은 tb(n)을 가지는 이미지가 반드시 언더플로우를 일으키는 것은 아니며, 반대로 언더플로우를 일으키는 이미지가 0보다 작은 tb(n)을 가지지 않을 수 있다. 몇몇의 실시예는 언더플로우가 자신의 최악의 시점에 도달할 때까지 디코더 입력 버퍼를 계속적으로 비움으로써 언더플로우를 일으키는 연속적인 이미지 범위로서 언더플로우 세그먼트를 (디코딩 순서로) 정의한다.
도 4는 몇몇의 실시예에서 이미지의 최후 도달 시점과 명목상의 제거 시점 간의 차 tb(n) 대 이미지 번호의 도면이다. 이 도면은 1500개의 인코딩된 이미지의 시퀀스에 대하여 도시된다. 도 4a는 그 시작과 끝을 표시하는 화살표로 언더플로우 세그먼트를 도시한다. 도 4a에서는 간결함을 위하여 화살표로 명확하게 표시되지는 않았지만, 제1 언더플로우 세그먼트 이후에 일어나는 다른 언더플로우 세그먼트가 존재함에 유의한다.
도 5는 인코더가 참조번호(305)에서 언더플로우 탐지 동작을 수행하는데 이용하는 프로세스(500)를 도시한다. 프로세스(500)는 먼저 상술한 바와 같이 디코더 입력 버퍼 상태를 시뮬레이션함으로써 각각의 이미지의 최후 도달 시점 taf, 및 명목상의 제거 시점 tr,n을 결정한다(505). 이 프로세스는 버퍼 언더플로우 관리의 반복적인 프로세스 중에 여러 번 호출될 수 있기 때문에, 이미지 번호를 시작점으로서 수신하고 이러한 소정의 시작 이미지에서부터 이미지의 시퀀스를 검사함에 유의한다. 분명히, 제1 반복에서는, 시작점은 시퀀스의 제1 이미지이다.
참조번호(510)에서, 프로세스(500)는 디코더 입력 버퍼에서의 각각의 이미지의 최후 도달 시점을 디코더에 의한 그 이미지의 명목상의 제거 시점과 비교한다. 프로세스가 명목상의 제거 시점 이후에 최후 도달 시점을 가지는 이미지가 없다고(즉, 어떤 언더플로우 상태도 존재하지 않는다고) 판정한다면, 프로세스는 종료된다. 반면, 최후 도달 시점이 명목상의 제거 시점 이후에 있는 이미지가 발견된다면, 프로세스는 언더플로우가 존재한다고 판정하고 참조번호(515)로 이동하여 언더플로우 세그먼트를 식별한다.
참조번호(515)에서, 프로세스(500)는 언더플로우 상태가 증가하기를 시작하는(즉, tb(n)이 이미지 범위에 걸쳐서 음의 방향이 되지 않는) 그 다음 전역 최소값까지 디코더 버퍼를 계속적으로 비우기를 시작하는 이미지의 세그먼트로서 언더플로우 세그먼트를 식별한다. 그 다음 프로세스(500)는 종료한다. 몇몇의 실시예에서, 언더플로우 세그먼트의 시작은 관련된 인코딩 간 이미지의 집합의 시작을 나타내는 인코딩 내 이미지인 I-프레임으로 시작하도록 더 조정된다. 일단 언더플로우를 일으키고 있는 하나 이상의 세그먼트가 식별되면, 인코더는 언더플로우를 제거하는 것을 진행한다. 다음의 섹션 B는 단일-세그먼트인 경우(즉, 인코딩된 이미지의 전체 시퀀스가 단일 언더플로우 세그먼트 만을 포함할 때)의 언더플로우 제거를 기술한다. 그 다음 섹션 C는 복수의-세그먼트 언더플로우 경우에 대한 언더플로우 제거를 기술한다.
B. 단일-세그먼트 언더플로우 제거
도 4의 a를 참조해 보면, tb(n) 대 n 곡선이 감소하는 기울기를 가지고 n-축과 오직 한번만 교차한다면, 전체 시퀀스에서 오직 하나의 언더플로우 세그먼트가 존재한다. 언더플로우 세그먼트는 0과 만나는 점에 선행하는 가장 근접한 지역 극대값(local maximum)에서 시작하고, 0과 만나는 점과 시퀀스의 끝 사이의 다음의 전역 최소값(global minimum)에서 끝난다. 세그먼트의 끝점 다음에는 버퍼가 언더플로우를 극복한 경우에 기울기가 증가하는 곡선을 취하는 다른 0과 만나는 점이 올 수 있다.
도 6은 몇몇의 실시예에서 인코더가 단일한 이미지 세그먼트에서 언더플로우 상태를 제거하는 데에 이용하는(315, 320, 및 325에서) 프로세스(600)를 도시한다. 참조번호(605)에서, 프로세스(600)는 세그먼트의 끝에서 발견된 가장 긴 지연(예를 들면, 최소값 tb(n))과 버퍼로의 입력 비트레이트의 곱을 계산함으로써 언더플로우 세그먼트에서의 감소시키려는 총 비트수(ㅿB)를 추정한다.
그 다음, 참조번호(610)에서, 프로세스(600)는 최후 인코딩 패스(또는 패스들)로부터 현재 세그먼트의 총 비트 수 및 평균 마스킹된 프레임 QP(AMQP)를 이용하여 세그먼트에 대한 소정의 비트 수, BT=B-ㅿBP(여기에서 p는 세그먼트에 대한 프로세스(600)의 현재 반복 횟수이다)를 이루기 위한 소정의 AMQP를 추정한다. 이 반복이 특정 세그먼트에 대한 프로세스(600)의 첫 번째 반복이라면, AMQP 및 총 비트 수는 참조번호(302)에서 식별된 초기 인코딩 솔루션으로부터 유도된 이 세그먼트에 대한 AMQP 및 총 비트수이다. 반면에, 이 반복이 프로세스(600)의 첫 번째 반복이 아니라면, 이들 파라미터들은 프로세스(600)의 최후 패스 또는 최후 몇몇의 패스에서 획득한 인코딩 솔루션 또는 솔루션들로부터 유도될 수 있다.
그 다음, 참조번호(615)에서, 프로세스(600)는 소정의 AMQP를 이용하여 마스킹을 더 허용할 수 있는 이미지가 더 많은 비트 감소를 획득할 수 있도록 마스킹 강도 ΦF(n)에 기초하여, 평균 마스킹된 프레임 QP, MQP(n)을 수정한다. 그 다음 프로세스는 참조번호(315)에서 정의된 파라미터에 기초하여 비디오 세그먼트를 재-인코딩한다(610). 그 다음 프로세스는 세그먼트를 검사하여 언더플로우 상태가 제거되었는지 판정한다(625). 도 4의 b는 프로세스(600)가 언더플로우 세그먼트에 적용되어 이 세그먼트를 재-인코딩한 이후의 도 4의 a의 언더플로우 상태의 제거를 도시한다. 언더플로우 상태가 제거되면, 프로세스는 종료한다. 그렇지 않다면, 참조번호(605)로 이동하여 총 비트 사이즈를 줄이도록 인코딩 파라미터를 더 조정할 것이다.
C. 복수의 언더플로우 세그먼트에서의 언더플로우 제거
시퀀스에 복수의 언더플로우 세그먼트가 존재하면, 세그먼트의 재-인코딩은 모든 후속 프레임에 대하여, 버퍼가 차있는 시간 tb(n)을 변경한다. 수정된 버퍼 상태를 설명하기 위하여, 인코더는 감소하는 기울기로 처음으로 0과 만나는 점(즉, 가장 낮은 n)으로부터 시작하여, 한번에 하나의 언더플로우 세그먼트를 검색한다.
언더플로우 세그먼트는 이러한 0과 만나는 점 선행하는 가장 근접한 지역 극대값에서 시작하고, 0과 만나는 점과 다음의 0과 만나는 점(또는 더 이상 0과 만나 는 점이 없는 경우는 시퀀스의 끝) 간의 다음 전역 최소값에서 종료한다. 하나의 세그먼트를 찾은 이후에, 인코더는 그 세그먼트의 끝에서 tb(n)를 0으로 설정하고 모든 후속 프레임에 대한 버퍼 시뮬레이션을 재기함으로써 가상적으로 이 세그먼트에서의 언더플로우를 제거하고 업데이트된 버퍼 포화도(fullness)를 추정한다.
그 다음 인코더는 수정된 버퍼 포화도를 이용하여 다음 세그먼트를 검색하는 것을 계속한다. 상술한 바와 같이, 일단 모든 언더플로우 세그먼트가 식별되었다면, 인코더는 AMQP를 유도하고 단일-세그먼트 경우와 꼭 마찬가지로 다른 세그먼트와 독립적으로 각 세그먼트에 대한 마스킹된 프레임 QP를 수정한다.
본 기술 분야에서 통상의 기술을 가진 자라면 다른 실시예들이 서로 다르게 구현될 수 있음을 인식할 것이다. 예를 들면, 몇몇의 실시예는 디코더의 입력 버퍼의 언더플로우를 일으키는 복수의 세그먼트를 식별하지 않을 것이다. 그 대신, 몇몇의 실시예는 상술한 바와 같이 버퍼 시뮬레이션을 수행하여 언더플로우를 일으키는 첫번째 세그먼트를 식별할 것이다. 이렇게 세그먼트를 식별한 이후에, 이들 실시예는 그 세그먼트에서의 언더플로우 상태를 교정하도록 세그먼트를 수정한 다음 이어지는 수정된 영역을 인코딩하는 것을 재기한다. 시퀀스의 나머지를 인코딩한 이후에, 이들 실시예는 그 다음 언더플로우 세그먼트에 대하여 이러한 프로세스를 반복할 것이다.
D. 버퍼 언더플로우 관리의 적용
상술한 디코더 버퍼 언더플로우 기법은 다양한 인코딩 및 디코딩 시스템에 적용된다. 이러한 시스템의 몇몇의 예는 다음에 기술된다.
도 7은 비디오 스트리밍 서버(710)와 몇몇의 클라이언트 디코더(715-725)를 접속시키는 네트워크(705)를 도시한다. 클라이언트는 300Kb/sec 및 3Mb/sec 등의 서로 다른 대역폭을 가지는 링크를 통하여 네트워크(705)에 접속된다. 비디오 스트리밍 서버(710)는 인코더(730)로부터 인코딩된 비디오 이미지를 클라이언트 디코더(715-725)로 스트리밍하는 것을 제어하고 있다.
스트리밍 비디오 서버는 네트워크에서의 가장 느린 대역폭(즉, 300Kb/sec) 및 가장 작은 클라이언트 버퍼 사이즈를 이용하여 인코딩된 비디오 이미지를 스트리밍하기로 결정할 수 있다. 이러한 경우, 스트리밍 서버(710)는 300 Kb/sec의 목표 비트레이트에 대하여 최적화된 오직 하나의 인코딩된 이미지 집합이 필요하다. 반면, 서버는 서로 다른 대역폭 및 서로 다른 클라이언트 버퍼 상태에 대하여 최적화된 서로 다른 인코딩을 생성하고 저장할 수 있다.
도 8은 디코더 언더플로우 관리에 대한 적용의 다른 예를 도시한다. 이 예에서, HD-DVD 플레이어(805)는 비디오 인코더(810)로부터의 인코딩된 비디오 데이터를 저장한 HD-DVD(840)로부터 인코딩된 비디오 이미지를 수신하고 있다. HD-DVD 플레이어(805)는 입력 버퍼(815), 간결함을 위해 한 블록(820)으로 도시된 디코딩 모듈의 집합(820), 및 출력 버퍼(825)를 가진다.
플레이어(805)의 출력은 TV(830) 또는 컴퓨터 디스플레이 단말기(835)와 같은 디스플레이 장치로 송신된다. HD-DVD 플레이어는 매우 높은 대역폭, 예를 들면, 29.4 Mb/sec를 가질 수 있다. 디스플레이 장치에 고품질 이미지를 유지하기 위하여, 인코더는 이미지 시퀀스에서의 어떠한 세그먼트도 제시간에 디코더 입력 버퍼에 전달될 수 없을 정도로 커지지 않는 방식으로 인코딩되는 것을 보장한다.
Ⅵ. 컴퓨터 시스템
도 9는 본 발명의 실시예가 구현될 수 있는 컴퓨터 시스템을 나타낸다. 컴퓨터 시스템(900)은 버스(905), 프로세서(910), 시스템 메모리(915), 읽기 전용 메모리(920), 영구 저장 장치(925), 입력 장치(930) 및 출력 장치(935)를 포함한다. 버스(905)는 컴퓨터 시스템(900)의 다양한 내부 장치를 통신적으로 접속시키는 모든 시스템 버스, 주변 버스, 및 칩셋 버스들을 종합적으로 나타낸다. 예를 들면, 버스(905)는 프로세서(910)를 읽기 전용 메모리(920), 시스템 메모리(915), 및 영구 저장 장치(925)에 통신적으로 접속시킨다.
이들 다양한 메모리 장치(unit)로부터, 프로세서(910)는 본 발명의 프로세스를 실행하기 위하여, 실행할 명령어 및 처리될 데이터를 검색한다. 읽기 전용 메모리(ROM)(920)는 프로세서(910)와 컴퓨터 시스템의 다른 모듈이 필요로 하는 명령어와 정적인 데이터를 저장한다.
한편, 영구 저장 장치(925)는 판독-및-기록 메모리 장치이다. 이 장치는 컴퓨터 시스템(900)의 전원이 꺼졌을 때에도 명령어 및 데이터를 저장하는 비-휘발성 메모리 장치이다. 본 발명의 몇몇의 실시예는 영구 저장 장치(925)로서 (자기 디스크 또는 광 디스크 및 그 대응하는 디스크 드라이브와 같은) 대용량-저장 장치를 이용한다.
다른 실시예는 영구 저장 장치로서 (플로피 디스크 또는 zip® 디스크, 및 그 대응하는 디스크 드라이브와 같은) 이동식 저장 장치를 이용한다. 영구 저장 장치(925)와 마찬가지로, 시스템 메모리(915)는 판독-및-기록 메모리 장치이다. 그러나, 저장 장치(925)와는 다르게, 시스템 메모리는 RAM과 같은 휘발성 판독-및-기록 메모리이다. 시스템 메모리는 프로세스가 런타임시에 필요로 하는 명령어 및 데이터의 일부를 저장한다. 몇몇의 실시예에서, 본 발명의 프로세스들은 시스템 메모리(915), 영구 저장 장치(925), 및/또는 ROM(920)에 저장된다.
버스(905)는 또한 입력 장치(930) 및 출력 장치(935)에 접속된다. 입력 장치는 사용자가 컴퓨터 시스템에 정보를 전달하고 명령을 선택할 수 있게 한다. 입력 장치(930)는 문자 숫자식의 키보드 및 커서-제어기를 포함한다. 출력 장치(935)는 컴퓨터 시스템에 의해 생성된 이미지를 디스플레이한다. 출력 장치는 CRT 또는 LCD와 같은 프린터 및 디스플레이 장치를 포함한다.
마지막으로, 도 9에 도시된 바와 같이, 버스(905)는 또한 (도시되지 않은) 네트워크 어댑터를 통하여 컴퓨터(900)를 네트워크(965)에 연결한다. 이러한 방식으로, 컴퓨터는 (LAN, WAN, 또는 인터넷과 같은) 컴퓨터의 네트워크 또는 (인터넷과 같은) 네트워크의 네트워크의 일부일 수 있다. 컴퓨터 시스템(900)의 임의의 또는 모든 구성요소들이 본 발명에 관련하여 이용될 수 있다. 그러나, 본 기술 분야에서 통상의 기술을 가진 자라면 임의의 다른 시스템 구성 또한 본 발명에 관련하여 이용될 수 있음을 인식할 것이다.
본 발명은 다양한 특정 상세한 사항을 참조하여 기술되었지만, 본 기술 분야에서 통상의 기술을 가진 자라면 본 발명은 본 발명의 사상을 벗어나지 않고 다른 특정 형태로 실행될 수 있음을 인식할 것이다. 예를 들면, 디코더 입력 버퍼를 시뮬레이션하는 데에 H264 방법을 이용하는 대신 버퍼 사이즈, 버퍼에서의 이미지의 도달 및 제거 시점, 및 이미지의 디코딩 및 디스플레이 시간을 고려하는 다른 시뮬레이션 방법이 이용될 수 있다.
상술한 몇몇의 실시예는 평균 삭제된 SAD를 계산하여 매크로블록에서의 이미지 변화의 표시를 획득한다. 그러나 다른 실시예는 다르게 이미지 변화를 식별할 수 있다. 예를 들면, 몇몇의 실시예는 매크로블록의 픽셀에 대해 예상되는 이미지 값을 예측할 수 있다. 그 다음 이들 실시예는 매크로블록의 픽셀의 휘도값에서 이렇게 예측된 값을 빼고 이 뺄셈 값의 절대값을 합함으로써 매크로블록 SAD를 생성한다. 몇몇의 실시예에서, 예측된 값은 매크로블록의 픽셀의 값 뿐만 아니라 하나 이상의 이웃한 매크로블록의 픽셀 값에도 기초한다.
또한, 상술한 실시예는 유도된 공간 및 시간전 마스킹 값을 직접 이용한다. 다른 실시예는 연속되는 공간 마스킹 값에 대하여 및/또는 연속되는 시간 마스킹 값에, 비디오 이미지 전반에 걸친 이들 값의 일반적인 성향을 찾아내기 위하여 이들을 이용하기 전에 평활화 필터링을 적용할 것이다. 그러므로, 본 기술 분야에서 통상의 기술을 가지는 자라면 본 발명은 상술한 예시적인 상세에 의해 제한되지 않는다고 이해할 것이다.
도 1은 본 발명의 몇몇의 실시예의 인코딩 방법을 개념적으로 예시하는 프로세스를 도시하는 도면.
도 2는 몇몇의 실시예의 코덱 시스템을 개념적으로 도시하는 도면.
도 3은 몇몇의 실시예의 인코딩 프로세스를 도시하는 흐름도.
도 4의 a는 몇몇의 실시예에서 이미지의 명목상의 제거 시점과 최후 도달 시점 간의 차이 대 언더플로우 상태를 나타내는 이미지 번호를 도시하는 도면.
도 4의 b는 이미지의 명목상의 제거 시점과 최후 도달 시점 간의 차이 대 언더플로우 상태가 제거된 이후의 도 4의 a에 도시된 것과 동일한 이미지에 대한 이미지 번호를 도시하는 도면.
도 5는 몇몇의 실시예에서 인코더가 언더플로우 탐지를 수행하는데에 이용하는 프로세스를 도시하는 도면.
도 6은 몇몇의 실시예에서 인코더가 이미지의 단일 세그먼트에서 언더플로우 상태를 제거하는 데에 이용하는 프로세스를 도시하는 도면.
도 7은 비디오 스트리밍 응용에서의 버퍼 언더플로우 관리의 적용을 도시하는 도면.
도 8은 HD-DVD 시스템에서의 버퍼 언더플로우 관리의 적용을 도시하는 도면.
도 9는 본 발명의 일 실시예가 구현되는 컴퓨터 시스템을 도시하는 도면.
Claims (21)
- 복수의 인코딩 패스를 사용해서 복수의 이미지를 포함하는 비디오 시퀀스를 반복적으로 인코딩하는 방법으로서,비디오 인코더에 의해 제1 인코딩 패스를 위한 제1 명목상의 양자화 파라미터(nominal quantization parameter)를 정의하는 단계;상기 제1 명목상의 양자화 파라미터 및 복수의 이미지 속성에 기초하여 상기 비디오 시퀀스에 대한 제1 인코딩 솔루션을 식별하는 단계 - 상기 복수의 이미지 속성의 각각은 상기 복수의 이미지의 적어도 일부의 복잡도를 정량화함 -;상기 제1 명목상의 양자화 파라미터에 기초하여 제2 인코딩 패스를 위한 제2 명목상의 양자화 파라미터를 식별하는 단계;상기 제2 명목상의 양자화 파라미터 및 상기 복수의 이미지 속성에 기초하여 상기 비디오 시퀀스에 대한 제2 인코딩 솔루션을 식별하는 단계를 포함하고,상기 비디오 시퀀스에 대한 각각의 인코딩 솔루션은 상기 비디오 시퀀스의 각각의 이미지에 대한 인코딩을 포함하고, 상기 제1 인코딩 솔루션은 상기 제2 인코딩 솔루션과 상이한 상기 비디오 시퀀스의 이미지들의 세트의 각각에 대한 상이한 인코딩을 특정하는, 인코딩 방법.
- 제1항에 있어서,각각의 명목상의 양자화 파라미터에 기초하여 상기 복수의 이미지에 대한 복수의 이미지 특정 양자화 파라미터를 유도하는 단계; 및상기 복수의 이미지 특정 양자화 파라미터에 기초하여 상기 복수의 이미지를 인코딩하는 단계를 더 포함하는 인코딩 방법.
- 제1항에 있어서,상기 제2 명목상의 양자화 파라미터는 또한 상기 제1 인코딩 패스 동안 취한 측정(measurement taken) 에 기초하는, 인코딩 방법.
- 제1항에 있어서,상기 복수의 이미지의 허용할 수 있는 인코딩이 식별될 때, 반복적인 인코딩을 정지하는 단계를 더 포함하는, 인코딩 방법.
- 제4항에 있어서,상기 복수의 이미지의 허용할 수 있는 인코딩은 상기 복수의 이미지의 인코딩에 대한 목표 비트 레이트의 특정한 범위 이내인 상기 이미지들의 인코딩인, 인코딩 방법.
- 복수의 이미지를 인코딩하는 방법으로서,복수의 이미지 속성을 식별하는 단계 - 각각의 이미지 속성은 이미지의 적어도 일부의 복잡도를 정량화함 - ;상기 복수의 이미지의 복잡도를 정량화하는 기준 속성을 식별하는 단계;상기 식별된 이미지 속성들, 상기 기준 속성 및 명목상의 양자화 파라미터에 기초하여 상기 복수의 이미지를 인코딩하기 위한 양자화 파라미터들을 식별하는 단계;상기 식별된 양자화 파라미터들에 기초하여 상기 복수의 이미지를 인코딩하는 단계; 및상기 인코딩하는 단계가 하나 이상의 종료 기준을 만족시킬 때까지 상기 복수의 이미지 속성, 상기 기준 속성 및 상기 양자화 파라미터들을 식별하는 단계 및 상기 복수의 이미지를 인코딩하는 단계를 반복적으로 수행하는 단계 - 복수의 상이한 반복은 복수의 상이한 기준 속성을 사용함 -를 포함하는 이미지 인코딩 방법.
- 제6항에 있어서,상기 복수의 이미지 속성은 각각의 이미지의 적어도 일부의 시각적 마스킹 강도들이고, 상기 시각적 마스킹 강도들은 코딩 아티팩트들(artifacts)이 상기 이미지 또는 상기 이미지의 일부에서 얼마나 허용될 수 있는 지에 대한 표시자들인 것인, 이미지 인코딩 방법.
- 제6항에 있어서,상기 복수의 이미지 속성은 각각의 이미지의 적어도 일부의 시각적 마스킹 강도들이고, 이미지의 일부에 대한 시각적 마스킹 강도는 상기 이미지의 일부의 복잡도를 정량화하고, 상기 이미지의 일부의 복잡도를 정량화함에 있어서, 상기 시각적 마스킹 강도는 이미지들 간의 움직임으로 인한 허용될 수 있는 왜곡들의 양을 정량화하는, 이미지 인코딩 방법.
- 제6항에 있어서,상기 복수의 이미지 속성은 각각의 이미지의 적어도 일부의 시각적 마스킹 강도들이고, 특정 반복에서 시각적 마스킹 강도들은 이전 반복들의 세트로부터의 시각적 마스킹 강도들의 값들의 세트 및 비트레이트들의 세트에서의 오차에 기초하여 유도되는, 이미지 인코딩 방법.
- 제6항에 있어서,상기 복수의 이미지 속성은 각각의 이미지의 적어도 일부의 시각적 마스킹 강도들이고, 특정 반복에서 시각적 마스킹 강도들은 상기 특정 반복에서의 모든 이미지들의 양자화 파라미터들의 평균에 기초하여 유도되는, 이미지 인코딩 방법.
- 복수의 인코딩 패스를 사용하여 복수의 이미지를 포함하는 비디오 시퀀스를 반복적으로 인코딩하는 방법으로서,제1 인코딩 패스를 위해, 비디오 인코더에 의해 제1 명목상의 양자화 파라미터를 특정하는 단계;(ⅰ) 상기 제1 인코딩 패스 동안 상기 이미지에 대한 이미지 특정 양자화 파라미터를 생성하기 위해 상기 제1 명목상의 양자화 파라미터 및 복수의 이미지 속성을 사용하고 (ⅱ) 상기 이미지 특정 양자화 파라미터에 기초하여 상기 이미지를 인코딩함으로써, 상기 제1 인코딩 패스 동안 각각의 이미지를 인코딩하는 단계;제2 인코딩 패스를 위해, 상기 제1 명목상의 양자화 파라미터와 상이한 제2 명목상의 양자화 파라미터를 특정하는 단계; 및(ⅰ) 상기 제2 인코딩 패스 동안 상기 이미지에 대한 이미지 특정 양자화 파라미터를 생성하기 위해 상기 제2 명목상의 양자화 파라미터 및 상기 복수의 이미지 속성을 사용하고 (ⅱ) 상기 이미지 특정 양자화 파라미터에 기초하여 상기 이미지를 인코딩함으로써, 상기 제2 인코딩 패스 동안 각각의 이미지를 인코딩하는 단계를 포함하고,이미지들의 세트의 각각의 이미지에 대하여, 상기 제2 인코딩 패스 동안 특정된 상기 이미지 특정 양자화 파라미터는 상기 제1 인코딩 패스 동안 특정된 상기 이미지 특정 양자화 파라미터와 상이하고, 상기 복수의 이미지 속성의 각각은 상기 복수의 이미지의 적어도 일부의 복잡도를 정량화하는, 인코딩 방법.
- 제11항에 있어서,각각의 이미지에 대한 상기 이미지 특정 양자화 파라미터는 각각의 인코딩 패스 동안 상기 이미지 내의 평균 픽셀 강도에 기초하여 유도되는, 인코딩 방법.
- 제11항에 있어서,각각의 이미지에 대한 상기 이미지 특정 양자화 파라미터는 각각의 인코딩 패스 동안 상기 이미지 내의 평균 픽셀 강도의 멱함수(power fuction)에 기초하여 유도되는, 인코딩 방법.
- 제11항에 있어서,이미지는 복수의 픽셀들의 세트를 포함하고, 각각의 이미지에 대한 상기 이미지 특정 양자화 파라미터는 각각의 인코딩 패스 동안 이미지 내의 픽셀들의 모든 세트들 상의 픽셀 값들의 평균 SAD(sum of absolute differences)의 멱함수에 기초하여 유도되는, 인코딩 방법.
- 제11항에 있어서,각각의 이미지에 대한 상기 이미지 특정 양자화 파라미터는 각각의 인코딩 패스 동안 이미지들 간의 움직임으로 인한 허용될 수 있는 왜곡의 양을 정량화하는 시간적 속성에 기초하여 유도되는, 인코딩 방법.
- 제11항에 있어서,각각의 이미지에 대한 상기 이미지 특정 양자화 파라미터는 각각의 인코딩 패스 동안 상기 이미지 내에 정의된 복수의 픽셀 영역의 움직임 보상된 오차 신호(motion compensated error signal)의 절대값들의 합에 기초하여 유도되는, 인코딩 방법.
- 제11항에 있어서,현재 이미지에 대한 상기 이미지 특정 양자화 파라미터는 각각의 인코딩 패스 동안 상기 현재 이미지에 대한 픽셀 값들의 평균 SAD, 상기 현재 이미지보다 시간적으로 이전의 것인 이미지들의 세트에 대한 픽셀 값들의 평균 SAD 및 상기 현재 이미지보다 시간적으로 이후의 것인 이미지들의 세트에 대한 픽셀 값들의 평균 SAD에 기초하여 유도되는, 인코딩 방법.
- 제11항에 있어서,상기 복수의 이미지의 허용가능한 인코딩이 식별될 때 상기 인코딩 패스들을 중단하는 단계를 더 포함하는, 인코딩 방법.
- 제18항에 있어서,상기 복수의 이미지의 상기 허용가능한 인코딩은 상기 비디오 시퀀스를 인코딩 하기 위한 목표 비트레이트의 특정 범위 내에 있는 상기 이미지들의 인코딩인, 인코딩 방법.
- 적어도 하나의 프로세서에 의해 실행가능한 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서,상기 컴퓨터 프로그램은 제1항 내지 제19항 중 어느 한 항의 단계들을 구현하는 명령어들의 세트들을 포함하는, 컴퓨터 판독가능 저장 매체.
- 제1항 내지 제19항 중 어느 한 항의 단계들을 구현하기 위한 하나 이상의 프로세싱 장치를 포함하는 컴퓨터 시스템.
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US58341804P | 2004-06-27 | 2004-06-27 | |
US60/583,418 | 2004-06-27 | ||
US64391805P | 2005-01-09 | 2005-01-09 | |
US60/643,918 | 2005-01-09 | ||
US11/118,616 US8406293B2 (en) | 2004-06-27 | 2005-04-28 | Multi-pass video encoding based on different quantization parameters |
US11/118,604 US8005139B2 (en) | 2004-06-27 | 2005-04-28 | Encoding with visual masking |
US11/118,616 | 2005-04-28 | ||
US11/118,604 | 2005-04-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067017074A Division KR100909541B1 (ko) | 2004-06-27 | 2005-06-24 | 멀티-패스 비디오 인코딩 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090037475A KR20090037475A (ko) | 2009-04-15 |
KR100997298B1 true KR100997298B1 (ko) | 2010-11-29 |
Family
ID=35783274
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097003420A KR100997298B1 (ko) | 2004-06-27 | 2005-06-24 | 멀티-패스 비디오 인코딩 방법 |
KR1020097003421A KR100988402B1 (ko) | 2004-06-27 | 2005-06-24 | 멀티-패스 비디오 인코딩 방법 |
KR1020067017074A KR100909541B1 (ko) | 2004-06-27 | 2005-06-24 | 멀티-패스 비디오 인코딩 방법 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097003421A KR100988402B1 (ko) | 2004-06-27 | 2005-06-24 | 멀티-패스 비디오 인코딩 방법 |
KR1020067017074A KR100909541B1 (ko) | 2004-06-27 | 2005-06-24 | 멀티-패스 비디오 인코딩 방법 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1762093A4 (ko) |
JP (2) | JP4988567B2 (ko) |
KR (3) | KR100997298B1 (ko) |
CN (3) | CN1926863B (ko) |
HK (1) | HK1101052A1 (ko) |
WO (1) | WO2006004605A2 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7042943B2 (en) | 2002-11-08 | 2006-05-09 | Apple Computer, Inc. | Method and apparatus for control of rate-distortion tradeoff by mode selection in video encoders |
US8406293B2 (en) | 2004-06-27 | 2013-03-26 | Apple Inc. | Multi-pass video encoding based on different quantization parameters |
US8005139B2 (en) | 2004-06-27 | 2011-08-23 | Apple Inc. | Encoding with visual masking |
US8208536B2 (en) | 2005-04-28 | 2012-06-26 | Apple Inc. | Method and apparatus for encoding using single pass rate controller |
KR100918499B1 (ko) * | 2007-09-21 | 2009-09-24 | 주식회사 케이티 | 멀티 패스 인코딩 장치 및 그 방법 |
EP2227020B1 (en) * | 2007-09-28 | 2014-08-13 | Dolby Laboratories Licensing Corporation | Video compression and transmission techniques |
EP2101503A1 (en) * | 2008-03-11 | 2009-09-16 | British Telecommunications Public Limited Company | Video coding |
US8908758B2 (en) | 2010-01-06 | 2014-12-09 | Dolby Laboratories Licensing Corporation | High performance rate control for multi-layered video coding applications |
EP2568704A4 (en) | 2010-05-06 | 2013-12-18 | Nippon Telegraph & Telephone | METHOD AND DEVICE FOR CONTROLLING VIDEO CODING |
US9179165B2 (en) | 2010-05-07 | 2015-11-03 | Nippon Telegraph And Telephone Corporation | Video encoding control method, video encoding apparatus and video encoding program |
JP5286581B2 (ja) | 2010-05-12 | 2013-09-11 | 日本電信電話株式会社 | 動画像符号化制御方法,動画像符号化装置および動画像符号化プログラム |
KR101702562B1 (ko) * | 2010-06-18 | 2017-02-03 | 삼성전자 주식회사 | 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치 |
WO2013095627A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Content adaptive high precision macroblock rate control |
US9402082B2 (en) * | 2012-04-13 | 2016-07-26 | Sharp Kabushiki Kaisha | Electronic devices for sending a message and buffering a bitstream |
CN102946542B (zh) * | 2012-12-07 | 2015-12-23 | 杭州士兰微电子股份有限公司 | 已编著镜像视频区间码流重新编码及无缝接入方法和系统 |
EP2951999A4 (en) * | 2013-01-30 | 2016-07-20 | Intel Corp | CONTENT PARAMETRIC TRANSFORMATIONS FOR CODING VIDEOS OF THE NEXT GENERATION |
US20150071343A1 (en) * | 2013-09-12 | 2015-03-12 | Magnum Semiconductor, Inc. | Methods and apparatuses including an encoding system with temporally adaptive quantization |
US10313675B1 (en) | 2015-01-30 | 2019-06-04 | Google Llc | Adaptive multi-pass video encoder control |
US10742708B2 (en) | 2017-02-23 | 2020-08-11 | Netflix, Inc. | Iterative techniques for generating multiple encoded versions of a media title |
US11153585B2 (en) | 2017-02-23 | 2021-10-19 | Netflix, Inc. | Optimizing encoding operations when generating encoded versions of a media title |
US11184621B2 (en) * | 2017-02-23 | 2021-11-23 | Netflix, Inc. | Techniques for selecting resolutions for encoding different shot sequences |
US11166034B2 (en) | 2017-02-23 | 2021-11-02 | Netflix, Inc. | Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric |
US10666992B2 (en) | 2017-07-18 | 2020-05-26 | Netflix, Inc. | Encoding techniques for optimizing distortion and bitrate |
CN109756733B (zh) * | 2017-11-06 | 2022-04-12 | 华为技术有限公司 | 视频数据解码方法及装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05167998A (ja) * | 1991-12-16 | 1993-07-02 | Nippon Telegr & Teleph Corp <Ntt> | 画像の符号化制御処理方法 |
JP3627279B2 (ja) * | 1995-03-31 | 2005-03-09 | ソニー株式会社 | 量子化装置および量子化方法 |
US5956674A (en) * | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
FR2753330B1 (fr) * | 1996-09-06 | 1998-11-27 | Thomson Multimedia Sa | Procede de quantification pour codage video |
JPH10304311A (ja) * | 1997-04-23 | 1998-11-13 | Matsushita Electric Ind Co Ltd | 映像符号化装置及び映像復号化装置 |
CN1192632C (zh) * | 1997-07-29 | 2005-03-09 | 皇家菲利浦电子有限公司 | 可变比特率视频编码方法和相应的视频编码器 |
US6192075B1 (en) * | 1997-08-21 | 2001-02-20 | Stream Machine Company | Single-pass variable bit-rate control for digital video coding |
JP2001520854A (ja) * | 1998-02-20 | 2001-10-30 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ピクチャシーケンス符号化方法及び装置 |
US6278735B1 (en) * | 1998-03-19 | 2001-08-21 | International Business Machines Corporation | Real-time single pass variable bit rate control strategy and encoder |
US6289129B1 (en) * | 1998-06-19 | 2001-09-11 | Motorola, Inc. | Video rate buffer for use with push dataflow |
US6542549B1 (en) * | 1998-10-13 | 2003-04-01 | Matsushita Electric Industrial Co., Ltd. | Method and model for regulating the computational and memory requirements of a compressed bitstream in a video decoder |
US20020057739A1 (en) * | 2000-10-19 | 2002-05-16 | Takumi Hasebe | Method and apparatus for encoding video |
US6594316B2 (en) * | 2000-12-12 | 2003-07-15 | Scientific-Atlanta, Inc. | Method and apparatus for adaptive bit rate control in an asynchronized encoding system |
US6831947B2 (en) * | 2001-03-23 | 2004-12-14 | Sharp Laboratories Of America, Inc. | Adaptive quantization based on bit rate prediction and prediction error energy |
US7062429B2 (en) * | 2001-09-07 | 2006-06-13 | Agere Systems Inc. | Distortion-based method and apparatus for buffer control in a communication system |
JP3753371B2 (ja) * | 2001-11-13 | 2006-03-08 | Kddi株式会社 | 動画像圧縮符号化レート制御装置 |
US7027982B2 (en) * | 2001-12-14 | 2006-04-11 | Microsoft Corporation | Quality and rate control strategy for digital audio |
KR100468726B1 (ko) * | 2002-04-18 | 2005-01-29 | 삼성전자주식회사 | 실시간 가변 비트율 제어를 수행하는 부호화 장치 및 방법 |
JP2004166128A (ja) * | 2002-11-15 | 2004-06-10 | Pioneer Electronic Corp | 画像情報の符号化方法、符号化装置及び符号化プログラム |
CN101390296A (zh) * | 2003-06-26 | 2009-03-18 | 汤姆森特许公司 | 多通路视频速率控制以匹配滑动窗口信道限制 |
-
2005
- 2005-06-24 WO PCT/US2005/022616 patent/WO2006004605A2/en not_active Application Discontinuation
- 2005-06-24 CN CN2005800063635A patent/CN1926863B/zh active Active
- 2005-06-24 KR KR1020097003420A patent/KR100997298B1/ko active IP Right Grant
- 2005-06-24 KR KR1020097003421A patent/KR100988402B1/ko active IP Right Grant
- 2005-06-24 CN CN201210271592.1A patent/CN102833538B/zh active Active
- 2005-06-24 KR KR1020067017074A patent/KR100909541B1/ko active IP Right Grant
- 2005-06-24 JP JP2007518338A patent/JP4988567B2/ja not_active Expired - Fee Related
- 2005-06-24 EP EP05773224A patent/EP1762093A4/en not_active Withdrawn
- 2005-06-24 CN CN201210271659.1A patent/CN102833539B/zh active Active
-
2007
- 2007-06-07 HK HK07106057.0A patent/HK1101052A1/xx not_active IP Right Cessation
-
2011
- 2011-03-09 JP JP2011052098A patent/JP5318134B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20090037475A (ko) | 2009-04-15 |
EP1762093A4 (en) | 2011-06-29 |
JP5318134B2 (ja) | 2013-10-16 |
CN102833538B (zh) | 2015-04-22 |
HK1101052A1 (en) | 2007-10-05 |
JP4988567B2 (ja) | 2012-08-01 |
CN1926863A (zh) | 2007-03-07 |
KR100909541B1 (ko) | 2009-07-27 |
CN102833539B (zh) | 2015-03-25 |
KR20090034992A (ko) | 2009-04-08 |
KR100988402B1 (ko) | 2010-10-18 |
WO2006004605B1 (en) | 2006-07-13 |
JP2008504750A (ja) | 2008-02-14 |
CN1926863B (zh) | 2012-09-19 |
EP1762093A2 (en) | 2007-03-14 |
JP2011151838A (ja) | 2011-08-04 |
CN102833539A (zh) | 2012-12-19 |
CN102833538A (zh) | 2012-12-19 |
KR20070011294A (ko) | 2007-01-24 |
WO2006004605A2 (en) | 2006-01-12 |
WO2006004605A3 (en) | 2006-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100997298B1 (ko) | 멀티-패스 비디오 인코딩 방법 | |
US8005139B2 (en) | Encoding with visual masking | |
US8406293B2 (en) | Multi-pass video encoding based on different quantization parameters | |
US8879623B2 (en) | Picture-level rate control for video encoding a scene-change I picture | |
EP1372113B1 (en) | Variable bit rate video encoding method and device | |
US9071840B2 (en) | Encoder with adaptive rate control for H.264 | |
KR101518358B1 (ko) | 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어 | |
US20060233237A1 (en) | Single pass constrained constant bit-rate encoding | |
EP2027727A1 (en) | Method and apparatus for adaptively determining a bit budget for encoding video pictures | |
JP4358215B2 (ja) | 動画像符号化装置及びその方法 | |
KR20130028093A (ko) | 동화상 부호화 제어 방법, 동화상 부호화 장치 및 동화상 부호화 프로그램 | |
EP1978745A2 (en) | Statistical adaptive video rate control | |
Jing et al. | A novel intra-rate estimation method for H. 264 rate control | |
JP5649296B2 (ja) | 画像符号化装置 | |
US20040233998A1 (en) | Methods and apparatus for improving video quality in statistical multiplexing | |
JP2000261799A (ja) | 可変レート動画像符号化装置 | |
JP4362793B2 (ja) | 動画像符号化装置及びその方法 | |
JP2006086861A (ja) | 画像符号化装置 | |
EP2373028A1 (en) | Video coding estimation | |
JP4379046B2 (ja) | 動画像符号化装置及び符号量制御方法 | |
JP4329452B2 (ja) | 動画像符号化装置、動画像符号化方法、及び、プログラム | |
EP2373029A1 (en) | Video coding estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20131101 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20141107 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20151016 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20161019 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20171018 Year of fee payment: 8 |