KR20070120937A - 멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를이용한 디지털 비디오 인코더용 병렬 레이트 제어 - Google Patents

멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를이용한 디지털 비디오 인코더용 병렬 레이트 제어 Download PDF

Info

Publication number
KR20070120937A
KR20070120937A KR1020077015775A KR20077015775A KR20070120937A KR 20070120937 A KR20070120937 A KR 20070120937A KR 1020077015775 A KR1020077015775 A KR 1020077015775A KR 20077015775 A KR20077015775 A KR 20077015775A KR 20070120937 A KR20070120937 A KR 20070120937A
Authority
KR
South Korea
Prior art keywords
picture
fullness
complexity
time
encoder
Prior art date
Application number
KR1020077015775A
Other languages
English (en)
Other versions
KR101228192B1 (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 KR20070120937A publication Critical patent/KR20070120937A/ko
Application granted granted Critical
Publication of KR101228192B1 publication Critical patent/KR101228192B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods 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/192Methods 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
    • H04N19/194Methods 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 involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer

Landscapes

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

Abstract

비디오 시퀀스를 구성하는 시퀀셜 픽처의 그룹에서의 픽처의 인코딩된 버전을 생성할 때 사용될 요구되는 수의 비트에 대응하는 타겟 크기(target size)를 결정하여 멀티 프로세서 비디오 인코더를 동작시키는 방법. 상기 방법은, 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도(a first degree of fullness)를 계산하는 단계, 상기 제1 충만도에 대해 처리하여 상기 코딩된 픽처의 제2 시각에서의 추정된 제2 충만도를 도출해 내는 단계, 상기 제2 충만도에 대해 처리하여 상기 픽처의 초기 타겟 크기를 도출해 내는 단계를 포함한다. 상기 제1 시각은 상기 코딩된 픽처 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각이다.
충만도, 복잡도, 픽처 버퍼, 멀티 프로세서 비디오 인코더

Description

멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를 이용한 디지털 비디오 인코더용 병렬 레이트 제어{PARALLEL RATE CONTROL FOR DIGITAL VIDEO ENCODER WITH MULTI-PROCESSOR ARCHITECTURE AND PICTURE-BASED LOOK-AHEAD WINDOW}
H.264 표준을 이하에 명시적으로 언급하며, 개시된 개념 및 원리는 특별한 비디오 코딩 표준과는 독립적이며 MPEG-2, ISO MPEG-4 part 10, AVC, 또는 부상하는 SMPTE VC-1 표준과 동등한 가치를 지닌다.
비디오 인코딩의 효율성, 특히 텔레비전 방송, 비디오 회의 등과 같은 실시간 애플리케이션의 효율성을 지속적으로 증가시키기 위해 비디오 압축 분야에는 일정한 수요가 있다. 최근의 ITU-T H.264 표준은, 알고리즘 복잡성이 대응해서 증가하지 않도록 하면서 효율성이 증가된 이러한 수요에 부합하도록 설계되어 있다. 예를 들어, H.264 비디오 스트림은, H.264 인코더의 실행의 복잡성이 MPEG-2 인코더의 경우보다 큰 크기 정도이면서, 동일한 비디오 품질을 달성하기 위해 MPEG-2 비디오 스트림의 대략 1/2의 비트 레이트를 필요로 한다.
통상적인 애플리케이션에서, 비디오 시퀀스를 구성하는 압축되지 않은 비디오 스트림은 비디오 인코더에 의해 수신되고 상기 비디오 인코더는 상기 비디오 시 퀀스에서 각 픽처의 인코딩된 버전을 생성하여, 상기 압축되지 않은 비디오 스트림의 인코딩된 버전을 생성한다. 그런 다음 상기 인코딩된 비디오 스트림은 고정 비트 레이트(constant bit rate, CBR) 채널을 통해 비디오 디코더에 전송되고 상기 비디오 디코더는 상기 인코딩된 비디오 스트림을 디코딩하여, 원래의 압축되지 않은 비디오 스트림과 이상적으로는 시각적으로 구별되지 않는, 압축되지 않은 비디오 스트림을 생성한다.
비디오 시퀀스의 픽처의 압축된 버전을 생성하기 위해 인코더가 더 많은 비트를 사용할수록, CBR 채널을 통해 상기 픽처의 압축된 버전을 전송하는데 더 많은 시간이 걸린다. 디코더 내에 인코딩된 픽처들이 수신되면, 이것들은 디코더 버퍼에 로딩되어 디코딩을 대기한다. 인코딩된 픽처의 비트는 도착하는 대로 순차적으로 디코더 버퍼에 로딩되지만, 상기 픽처의 디코드 시간에, 모든 비트가 버퍼로부터 동시에 제거된다.
이와 같이 약술한 모델에서, 특정한 기간 동안, 디코더 버퍼는 가변 개수의 픽처에 대응하는 일정한 수의 비트를 수신할 것이다. 동일한 기간 동안, 디코더는 가변 개수의 비트에 대응하는, 디코더 버퍼로부터 일정한 수의 픽처를 제거할 것이다. 디코더가 상기 기간 동안 많은 상대적으로 큰 픽처들을 전송하면, 이 기간 동안 수신된 픽처의 수는 상대적으로 작을 것이다. 이것은 디코더 버퍼가 새로운 픽처를 수신하는 것보다 더 빠른 속도로 픽처를 제거할 수 있기 때문에, 디코더 버퍼를 비우게 하거나 언더플로우 하게 할 수 있기 때문이다. 역으로, 디코더 버퍼가 상기 기간 동안 많은 상대적으로 작은 픽처들을 수신하면, 이 기간 동안 수신된 픽 처의 수는 상대적으로 클 것이다. 이것은 디코더 버퍼가 픽처들을 제거하는 것보다 더 빠르게 새로운 픽처들을 수신할 수 있기 때문에, 디코더 버퍼를 오버플로우 하게 할 수 있기 때문이다. 언더플로우 및 오버플로우 모두는 디코더에 의해 발생된 압축되지 않은 비디오 스트림의 혼란을 야기할 수 있으므로 언더플로우 및 오버플로우는 모두 발생해서는 안 된다. 그러므로 인코딩된 비디오 스트림을 발생하면서 비디오 인코더가 다운스트림 디코더의 버퍼의 충만(fullness)을 고려하는 것이 중요하다. 그렇지만, 디코더는 인코더와 통신할 수 없으므로 디코더 버퍼의 실제의 충만은 인코더에게는 소용이 없다. 이 목적을 위해, H.264와 같은 압축되지 않은 비디오 표준은 가상 기준 디코더(hypothetical reference decoder, HRD)를 정의하고 비디오 인코더는 일반적으로 가상 버퍼라 하는, HRD의 코딩된 픽처 버퍼의 수학적 모델을 유지한다. 가상 버퍼가 오버플로우/언더플로우 되지 않으면, 디코더 버퍼는 반대로 언더플로우/오버플로우 되지 않는다. 이때, 비디오 스트림의 픽처의 인코딩된 버전을 가상 버퍼의 충만을 안전한 레벨로 유지할 수 있는 크기로 함으로써 상기 인코더는 인코딩된 비디오 스트림을 조정하여 다운스트림 디코더 버퍼의 언더플로우 또는 오버플로우를 회피할 수 있다.
더욱 새롭고 계산적으로 더욱 복잡한 비디오 코딩 표준의 컴퓨팅 요건을 충족하기 위해, 병렬 처리를 사용하는 멀티 프로세서 설계를 구현할 수 있다. 예를 들어, I 픽처 및 P 픽처를 인코딩하는데 하나의 프로세서를 할당하고, 나머지 프로세서들을 B 픽처를 인코딩하는데 할당할 수 있다. I 픽처 또는 P 픽처를 인코딩하는 것보다 B 픽처를 인코딩하는 데 더 많은 컴퓨팅 사이클이 필요하고, 일반적으로 어떤 주어진 비디오 스트림에는 I 및 P 픽처보다 B 픽처가 훨씬 더 많이 있기 때문에, B 픽처를 인코딩하는 데는 더 많은 프로세서가 사용된다. 설명의 편의상, 이 예에 있어서, H.264 표준이 다르게 허용될지라도 B 픽처는 기준 픽처로서 사용되지 않는 것으로 가정한다. 이하의 픽처 그룹(GOP) 구조 설명에서, 아래 첨자는 디코딩(인코딩) 순서를 나타낸다:
I0 B2 B3 P1 B5 B6 P4 B8 B9 P7 B11 B12 P10 B14 B15 I13...
표 1은 위의 GOP의 픽처가 어떻게 멀티 프로세서 인코더에 분배될 수 있는지를 간략한 형태로 보여준다. 표 1에서, 각각의 타임 슬롯 u는 3개의 픽처에 대한 실시간 디스플레이 지속 기간을 나타내며, 그래서 입력이 NTSC 비디오인 경우, 각각의 타임 슬롯은 지속 시간이 3003/30000 초가 될 것이다.
표 1
Figure 112007050226949-PCT00001
표 1에 나타낸 바와 같이, 프로세서(1)는 I 픽처 및 P 픽처를 포함한, 모든 기준 픽처를 인코딩하는 데 사용된다. 프로세서(2, 3, 4, 5)는 B 픽처를 인코딩하는 데 사용된다. 그러므로 본 예시적인 예에서, 프로세싱 파이프라인이 초기에 채워진 후 적어도 2 타임 슬롯의 파이프라인 지연이 있게 된다. 각각의 I 픽처 또는 P 픽처는 하나의 타임 슬롯에 할당되는 반면 각각의 B 픽처는 2 타임 슬롯에 할당된다는 것에 유념하라. 모든 필요한 기준 픽처에 대한 인코딩이 완료되자마자, 기준 B 픽처의 인코딩이 병렬로 시작된다. 예를 들어, 픽처 P4의 인코딩이 완료되자마자 픽처 B5 및 B6의 인코딩이 프로세서(4 및 5)에서 병렬로 시작된다. 프로세서(1)는 다른 프로세서들의 활동과는 관계없이 I 픽처 또는 P 픽처의 인코딩을 유지한다. 표 1에서 최후의 행은 인코딩된 픽처들이 인코드 순서로 유용하게 될 때의 인코딩된 픽처들을 나타낸다. 표 1은 간략화된 예이다. 실제로는, 압축되지 않은 픽처의 수신, 픽처의 인코딩, 재구성된 픽처의 송신, 재구성된 픽처의 수신, 필요한 지연 등과 같은 더 많은 활동이 고려된다. 그렇지만, 이러한 상세한 것은 본 예에서는 필수적인 것이 아니므로 생략한다.
비디오 인코더의 중요한 작업은 인코딩된 비디오 스트림의 원하는 화질과, 이 비디오 스트림이 전송되는 채널의 비트 레이트 제한과, 디코더 버퍼에서 충만의 안전한 레벨을 유지하는 것 사이에서 적절한 균형을 찾아내는 것이다. 인코더에서의 레이트 제어 알고리즘은 가상 버퍼의 충만 및 개개의 픽처의 상대적 복잡성을 사용하여 비디오 스트림의 각각의 픽처에 대한 적절한 비트 할당을 계산한다. 시 퀀셜 인코딩에서, 레이트 제어 알고리즘은 후속의 픽처에 대한 인코딩이 시작되기 전에 각각의 픽처에 대한 인코딩이 완료되면 가상 버퍼의 충만을 검사한다. 파이프라인화된 병렬 인코더의 경우, 가상 버퍼의 충만은, 복수 화상을 동시에 그리고 비시퀀셜로 인코딩함으로써 생기는 파이프라인 지연으로 인해 레이트 제어 알고리즘에 즉시 유효하지 않다. 파이프라인화된 병렬 인코더 내의 모든 프로세서는 서로 무관하게 동작하기 때문에, "후속의 픽처(subsequent picture)"의 개념은 "약간의 정해진 지연 후의 후속의 픽처"로 대체되어야 하고 그 지연 동안 몇 개의 추가의 픽처가 인코딩될 것이므로 가상 버퍼의 충만은 변하게 된다. 예를 들어, 시퀀셜 인코딩 순서에 따르면, 픽처 B6의 인코딩이 완료된 후, 레이트 제어 알고리즘은 픽처 P7의 인코딩 전에 가상 버퍼의 충만을 검사한다. 이것은 전술한 병렬 인코더에 있어서는 불가능한 데, 왜냐하면 픽처 B6 및 P7의 인코딩은 동시에 시작되며, 픽처 B6의 인코딩이 완료되기 전에 픽처 P7의 인코딩은 완료되기 때문이다. 그러므로 레이트 제어 알고리즘은 단순히 현재의 값을 검사하기보다는 미래의 어느 포인트에서 가상 버퍼의 충만을 예측할 필요가 있다. 레이트 제어 알고리즘에 대한 요건을 복잡하게 하는, 병렬 인코더의 관련 이슈가 스터프 비트(stuff bits)에 대한 잠재적인 필요성이다. 가상 버퍼가 비워져 있거나 그렇게 될 상황에 있을 때 인코더는 인코딩된 비디오 스트림에 스터프 비트를 삽입할 필요가 있다. 하나의 픽처가 인코딩을 완료하자마자 시퀀셜 인코더의 레이트 제어 알고리즘은 얼마나 많은 비트를 스터핑하는지를 정확히 알고 있다. 그렇지만, 병렬 인코더의 레이트 제어 알고리 즘은 전술한 파이프라인 지연으로 인한 가상 버퍼의 본질적인 충만의 정확한 측정치의 비유효성 때문에 상이한 방식으로 필요한 스터프 비트의 수를 계산할 필요가 있다. 병렬 레이트 제어 알고리즘의 다른 요건은 몇 개의 픽처에 대한 몇 개의 비트 레이트 타겟(bit rate target)을 결정할 수 있는 능력이다. 표 1에 나타나 있는 바와 같이, 타임 슬롯 4의 시작에서, 예를 들어, 병렬 레이트 제어 알고리즘은 픽처 P7, B5, 및 B6에 대한 비트 레이트 타겟을 결정할 필요가 있다.
이중-패스 인코딩(dual-pass encoding)이 단일 패스 인코딩보다 더 높은 코딩 효율을 제공하는 것은 비디오 압축 분야에 폭넓게 인식되어 있다. 그렇지만, 효율성의 향상이 이중 패스 아키텍처에서 2개의 파이프라인화된 병렬 인코더를 함께 사용하는 데 따른 상대적으로 많이 드는 비용보다 중대한 것은 아니며, 또한 그러한 이중-패스 인코딩이 항상 실제의 해결책인 것도 아니다.
도 1을 참조하면, 시퀀셜 이중 패스 인코더(1)는, 인코딩되지 않은 비디오 스트림을 입력으로서 수신하고 인코딩된 단일의 프로그램 트랜스포트 스트림(SPTS)을 출력(이 출력은 애플리케이션에 따라, 가변 비트 레이트(VBR) 또는 일정 비트 레이트(CBR)로 전송될 수 있다)로서 전송하며, 제1 패스 인코더(2), 제2 패스 인코더(3) 및 저장 및 지연 유닛(4)을 포함한다. 제1 패스 인코더(2)는 제2 패스 인코더(3)에 비해 상대적으로 단순하다. 예를 들어, 제1 패스 인코더(2)에 대한 입력은 다운샘플링된 다음 제2 패스 인코더(3)에 대한 입력과 비교된다. 상기 제1 패스 인코더(2) 및 상기 저장 및 지연 유닛(4)은 압축되지 않은 비디오 스트림을 입 력으로서 수신한다. 상기 저장 및 지연 유닛(4)은 상기 단순한 제1 패스 인코더(2)가 비디오 스트림의 각각의 픽처에 대한 복잡성 정보(complexity information)를 계산하는 동안 상기 비디오 스트림을 버퍼링한다. 그런 다음 상기 비디오 스트림의 픽처들 및 대응하는 복잡성 통계치가 제2 패스 인코더에 전송된다. 제2 패스 인코더(3)는 제1 패스 인코더(2)가 발생한 상기 복잡성 정보를 활용하여 입력 비디오 스트림의 인코딩된 버전을 생성한다. 더욱 복잡한 인코더 대신에 상기 단순한 제1 패스 인코더(2)를 입력에서 사용함으로써, 단일-패스의 복잡한 인코더의 실행 비용에 가깝게 실행 비용이 절약된다. 그렇지만, 제1 패스 인코더와 제2 패스 인코더 간의 실행 차이(implementation difference)로 인해, 상기 제1 패스 인코더(2)가 발생한 복잡성 정보는 정확하게는, 상대적으로 복잡한 제2 패스 인코더(3)가 원하는 정보가 아니다.
이러한 결함에도 불구하고, 제1 패스 인코딩에서의 픽처 복잡성 추정과 제2 패스 인코딩에서의 픽처 복잡성 추정 사이의 상관(correlation)이 존재한다. 대부분의 경우, 제1 패스 인코더(2)에 있어서 상대적으로 복잡한/단순한 픽처 또는 픽처의 그룹(GOP)은 또한 제2 패스 인코더(3)에 있어서 상대적으로 복잡하고/단순하다. 그럼에도, 복잡성 통계치는 에러가 허용되는 한에서, 픽처들 및 매크로블록(MB) 사이의 중요한 관계를 나타낸다. 그러므로 단일-패스의 복잡한 코딩에 비해, 이중-패스 인코더는 단순히 약간의 더 높은 실행 비용으로 비디오 코딩 효율성 면에서 우수하다.
본 발명의 제1 관점에 따르면, 비디오 시퀀스를 구성하는 시퀀셜 픽처의 그룹에서의 픽처의 인코딩된 버전을 생성할 때 사용될 요구되는 수의 비트에 대응하는 타겟 크기(target size)를 결정하여 멀티 프로세서 비디오 인코더를 동작시키는 방법이 제공되며, 상기 방법은, a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도(a first degree of fullness)를 계산하는 단계; b) 상기 제1 충만도에 대해 처리하여 상기 코딩된 픽처의 제2 시각에서의 추정된 제2 충만도를 도출해 내는 단계; 및 c) 상기 제2 충만도에 대해 처리하여 상기 픽처의 초기 타겟 크기를 도출해 내는 단계를 포함하며, 상기 제1 시각은 상기 코딩된 픽처 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각이다.
본 발명의 제2 관점에 따르면, 비디오 시퀀스의 픽처를 인코딩하기 위해 멀티 프로세서 비디오 인코더를 준비하는 방법이 제공되며, 상기 방법은, a) 상기 픽처를 수신하는 단계; b) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 계산하는 단계; c) 제1 충만도에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계; d) 소정의 시간에 대한 상기 픽처를, 상기 소정의 시간 동안 저장하는 단계; e) 상기 픽처의 제1 복잡도를 측정하는 단계; f) 상기 픽처의 상기 제1 복잡도 및 상기 제2 충만도에 대해 처리하여 상기 픽처에 대한 소정의 타겟 크기를 도출해 내는 단계; 및 g) 상기 단계 d)에 이어서, 상기 픽처 및 상기 소정의 타겟 크기를 상기 멀티 프로세서 비디오 인코더에 제공하는 단계를 포함하며, 상기 제1 시각은 상기 코딩된 픽처 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각이다.
본 발명의 제3 관점에 따르면, 일련의 픽처 중 단일의 화상을 구성하는 일련의 매크로블록 중 소정의 매크로블록을 인코딩할 때 사용하기 위한 양자화 파라미터의 값을 결정하는 방법이 제공되며 상기 방법은, a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 추정하는 단계; b) 상기 일련의 매크로블록 중 상기 소정의 매크로블록을 선행하는 임의의 매크로블록에 대한 누적된 복잡성 측정치를 결정하는 단계; c) 상기 제1 충만도, 상기 누적된 복잡성 측정치 및 타겟 비트 수에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계; 및 d) 상기 제2 충만도에 대해 처리하여 상기 양자화 파라미터의 값을 도출해 내는 단계를 포함하며, 상기 타겟 비트의 수는 상기 단일의 픽처의 인코딩된 버전을 생성할 때 상기 일련의 매크로블록들 간에 분할될 비트 수에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각이다.
본 발명의 제4 관점에 따르면, 비디오 시퀀스의 단일의 화상을 구성하는 일련의 매크로블록에서 각각의 매크로블록을 인코딩할 때 사용하기 위한 양자화 파라미터의 값을 계산하는 방법이 제공되며, 상기 방법은, a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 추정하는 단계; b) 상기 단일의 픽처의 인코딩된 버전에 대한 타겟 크기를 결정하는 단계; c) 상기 일련의 매크로블록의 각각의 매크로블록에 대해: c1) 상기 비디오 시퀀스의 임의의 선행하는 매크로블록에 대한 누적된 복잡성 측정치를 결정하는 단계; c2) 상기 제1 충만도, 상기 누적된 복잡성 측정치 및 상기 타겟 크기에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계; 및 c3) 상기 제2 충만도에 대해 처리하여 상기 소정의 매크로블록을 인코딩할 때 사용하기 위한 상기 양자화 파라미터의 값을 도출해 내는 단계를 포함하며, 상기 타겟 크기는 상기 단일의 픽처의 인코딩된 버전을 생성할 때 상기 일련의 매크로블록들 간에 분할될 비트 수에 대응하고, 소정의 매크로블록의 인코딩된 버전의 비트의 크기는 상기 매크로블록을 인코딩할 때 사용된 상기 양자화 파라미터의 값의 함수이며, 상기 제2 시각은 상기 제1 시각 이후의 시각이다.
본 발명의 제5 관점에 따르면, 복수의 픽처를 멀티 프로세서 인코더와 병렬로 인코딩하기 전에, 인코딩된 픽처 버퍼의 충만도를 미래 시각에 추정하여 멀티 프로세서 인코더를 동작시키는 방법이 제공되며, 상기 방법은, 제1 비디오 인코딩 과정을 사용하여 상기 복수의 픽처의 인코딩된 버전을 나타내는 데 필요한 비트 수를 예측하는 단계; 상기 인코딩된 픽처의, 상기 미래 시각 이전인 제1 시각에서의 충만도를 계산하는 단계; 복수의 이전에 인코딩된 픽처의 인코딩된 버전을 나타내는 데 필요한 이전에 예측된 비트 수와 상기 복수의 이전에 인코딩된 픽처를 나타내는 데 필요한 실제의 비트 수를 비교함으로써 부정합 항목을 생성하는 단계; 및 상기 인코딩된 픽처의 상기 미래 시각에서의 추정된 충만도를 복귀시키기 위해, 상기 제1 시각에 상기 인코딩된 픽처의 상기 계산된 충만도와, 제1 픽처의 인코딩된 버전을 나타내는 데 필요한 상기 예측된 비트 수와, 상기 부정합 항목을 결합하는 단계를 포함하며, 상기 미래 시간은 상기 제1 픽처의 인코딩된 버전이 상기 코딩된 픽처에 로딩되는 시간에 대응하며, 상기 제1 시각은 상기 코딩된 픽처의 충만도를 정확하게 계산할 수 있는 가장 최근의 시각을 나타낸다.
본 발명의 제6 관점에 따르면, 인코딩된 픽처 버퍼의 언더플로우(underflow)를 나타내기 위해 멀티 프로세서 비디오 인코더를 동작시키는 방법이 제공되며, 상기 방법은, 제1 비트 수를 사용하여 비디오 시퀀스의 픽처를 인코딩하는 단계; 상기 화상의 상기 인코딩된 버전을 소정의 시간 동안 저장하는 단계; 상기 코딩된 픽처 버퍼의 충만도를 계산하는 단계; 상기 코딩된 픽처 버퍼가 언더플로우 되는 상황에 있는지를 결정하는 단계; 및 상기 코딩된 픽처 버퍼가 언더플로우 되는 상황에 있으면: 상기 코딩된 픽처 버퍼의 상기 충만도를, 상기 코딩된 픽처 버퍼가 더 이상 언더플로우 상황에 있게 되지 않는 레벨까지 증가시키는 데 필요한 스터프 비트 수(a number of stuff bits)를 계산하는 단계와, 상기 스터프 비트 수를 상기 픽처의 인코딩된 버전에 부가하여, 상기 픽처의 상기 인코딩된 버전의 크기를 제2 비트 수로 증가시키는 단계와, 상기 픽처의 상기 인코딩된 버전을 전송하는 단계를 포함한다.
본 발명의 제7 관점에 따르면, 공통 비디오 클록을 각각 공유하고 제1 패스 인코더와 제2 패스 인코더를 각각 구비하는 복수의 이중 패스(dual pass)의 멀티 프로세서 단일의 채널 인코더를 구비하는 멀티 채널 비디오 인코더를 동작시키는 방법이 제공되며, 상기 방법은, 상기 복수의 이중 패스의 멀티 프로세서 단일의 채널 인코더 각각에 대해: 복수의 순차 픽처와 임베디드 비디오 클록(embedded video clock)을 포함하는, 인코딩되지 않은 단일의 프로그램 비디오 스트림을 수신하는 단계; 상기 인코딩되지 않은 단일의 프로그램 비디오 스트림의 복사(copy)를 생성하는 단계; 상기 인코딩되지 않은 단일의 프로그램 비디오 스트림을 저장하는 단계; 상기 복사의 상기 임베디드 비디오 클록을 상기 공통의 비디오 클록과 동기화하기 위해 상기 복사의 상기 임베디드 비디오 클록을 수정하는 단계; 상기 복사에 대해 제1 패스 인코딩을 수행하여, 상기 복사에 대한 복잡성 통계치(complexity statistics)를 생성하는 단계; 및 상기 복잡성 통계치에 대해 처리하여 상기 인코딩되지 않은 단일의 프로그램 비디오 스트림 각각의 픽처들에 대한 소정의 타겟 크기를 결정하는 단계를 수행하고, 상기 복수의 이중 패스의 멀티 프로세서 단일의 채널 인코더 각각에 대해: 상기 인코딩되지 않은 단일의 프로그램 비디오 스트림에 대해 제2 패스 인코딩을 수행하는 단계; 상기 복수의 인코딩된 단일의 프로그램 비디오 스트림을 멀티 프로그램 트랜스포트 스트림에 다중화하는 단계; 및 상기 멀티 프로그램 트랜스포트 스트림을 전송하는 단계를 수행한다.
도 1은 이중 패스 인코더의 블록도이다.
도 2는 본 발명을 구현하는 단일 채널 인코더의 블록도이다.
도 3은 본 발명을 구현하는 이중-패스 인코더 내에서 제1 패스 인코더 및 제2 패스 인코더 사이의 관계를 나타내는 시간선도이다.
도 4는 본 발명을 구현하는 멀티 채널 인코더의 블록도이다.
도 5는 도 3의 멀티 채널 인코더에서 사용하기 위해 본 발명을 구현하는 단일의 채널 인코더 유닛의 블록도이다.
도 6은 서로 다른 방식으로 하나의 픽처를 매크로블록들로 분할하는 것을 나타내기 위해 상기 하나의 픽처의 2개 버전을 간략화한 도면이다.
도 7은 누적된 제1 패스 복잡성과 매핑된 누적된 제2 패스 복잡성 사이의 관계를 나타내는 일련의 그래프이다.
후술하는 본 발명의 실시예들은 어떤 하나의 비디오 인코딩 표준에 특정되는 것이 아니다. 그렇지만, 설명의 목적상, 해당되는 비디오 코딩 표준은, 인코딩 목적을 위해 개개의 픽처 또는 프레임을 매크로블록으로 분할하고 복수의 시퀀셜 픽처를 픽처의 그룹(GOP)으로 분할하는, 종래의 기술을 사용하는 것으로 가정한다.
도 2를 참조하면, 단일의 채널 이중 패스 인코더(5)는 인코딩되지 않은 비디오 스트림 IN을 입력으로서 수신하고 인코딩된 SPTS OUT(VBR 또는 CBR)을 출력으로서 전송한다. 이중 패스 인코더(5)는 멀티 프로세서 아키텍처를 가지며 로우 복잡성 제1 패스 인코더(8) 및 하이 복잡성 제2 패스 인코더(12)를 포함한다. 제1 패스 인코더(8)는 종래의 단일의 프로세서 인코더이고, 제2 패스 인코더(12)는 전술한 파이프라인화된 병렬 인코더이며 m개의 처리 유닛 16-x(x=1...m)을 포함한다. 비디오 스트림 IN의 각각의 픽처 j는 저장 및 지연 유닛(20) 및 데시메이션 유닛(decimation unit)(24)에 의해 수신된다. 상기 저장 및 지연 유닛(20)은 d 픽처의 깊이를 갖는, 뿐만 아니라 입력 스트림의 픽처들에 대한 룩-어헤드 윈도(look-ahead window)를 갖는, 선입선출(FIFO)형 버퍼로서 작동한다.
데시메이션 유닛(24)은 비디오 스트림에서 각각의 픽처 j의 분해 능(resolution)을 고정량만큼 감소시키고, 제1 패스 인코더(8) 내의 처리 유닛(도시되지 않음)의 계산 복잡성이 제2 패스 처리 유닛 16-x의 그것에 비해 낮아질 수 있도록 하기 위해, 대응하는 로우 분해능 버전 jd를 생성한다. 간단한 예로서, 데시메이션 유닛(24)이 수평 방향 및 수직 방향 모두에서 계수 2만큼 비디오 스트림 IN의 분해능을 감소시키면, 제1 패스 인코더(8)의 복잡성은 제2 패스 처리 유닛 16-x의 복잡성의 1/4로 될 뿐이므로, 이중 패스 인코더(5)가 단일의 픽처를 인코딩하는 데 필요한 총 계산 복잡성은 단일의 패스 인코더보다 대략 25% 더 많다.
데시메이트된 비디오 스트림은 제1 패스 인코더(8)에 입력되는 데, 제1 패스 인코더(8)에 의해 수행된 종래의 인코딩 프로세스 과정 중에, 픽처 및 매크로블록 레벨 복잡성 통계치가 각각의 데시메이트된 픽처 jd에 대해 계산된다. 복잡성 통계치를 사용하여 각각의 데시메이트된 픽처 jd에 대한 복잡성 측정치 cj 및 매크로블록마다의 누적된 복잡성 측정치를 발생한다. 복잡성 통계치 및 측정치는 후술되는, 록-어헤드 윈도에 저장된다. 제2 패스 인코더(12)는 비디오의 픽처 j를 수신한다. 그런 다음 픽처 j는 처리 유닛 16-x에 할당되어 인코딩된다. 제2 패스 인코더의 병렬 설계로 인해, 각각의 타임 슬롯 u의 시작에서, 복수의 픽처가 표 1에 나타낸 예에서와 유사하게, 제2 패스 인코더에 로딩된다.
이중 패스 인코더(5)가 독립식의 단일의 채널 인코더인 경우, 도 2의 실선으로 도시된 바와 같이, 제2 패스 인코더(12) 역시 제어 유닛으로서 동작할 수 있다. 대안으로, 별도의 매스터 제어 유닛(28)은 복잡성 cj를 픽처-레벨 레이트 제어 알고 리즘에 대한 입력으로서 사용하여 데시메이트되지 않은 픽처 j의 인코딩 버전의 크기에 대한 타겟 값(target value) Tj를 선택한다. 픽처-레벨 레이트 제어 알고리즘은 또한 Tj를 사용하여, 타인 슬롯 u의 끝맺음에 있어서 이중 패스 인코더의 가상 버퍼 충만(virtual buffer fullness)의 추정된 값 Bu를 계산한다. 픽처-레벨 레이트 제어 알고리즘은 제1 패스 인코더(8) 내에서 실행할 수 있다.
그러므로 제1 패스 인코더(8) 및 픽처-레벨 레이트 제어 알고리즘은 데시메이트된 픽처들을 고속으로 처리하여, 각각의 타임 슬롯 u의 시작에서, 복수의 타겟 값을 제2 패스 인코더에 동시에 제공할 수 있어야 한다. 제2 패스 인코더 유닛(5)은 Tj를 사용하여 픽처 j의 인코딩된 버전을 발생하고, 그런 다음 이 인코딩된 버전은 VBR 또는 CBR SPTS OUT의 부분으로서 이중 패스 인코더 유닛(5)으로부터 출력된다.
제2 패스 인코더(12)는 각각의 인코딩된 픽처에 관한 정보를 이동 평균 윈도(moving average window)에 저장한다. 후술되는 바와 같이, 레이트 제어 알고리즘은 픽처의 대상 크기를 계산할 때 룩-어헤드 윈도 및 이동 평균 윈도 모두에 저장된 정보를 활용한다.
단일의 채널 인코더(5)의 출력이 CBR 비디오 스트림인 경우에는, 때때로 비트를 인코더의 가상 버퍼에 스터핑하여 인코더의 가상 버퍼 충만이 네거티브가 되지 않게 할 필요가 있다. 가상 버퍼 충만의 참값(true value)은 파이프라인 지연 후까지는 유효하지 않기 때문에, 압축된 출력 스트림은 스터프 비트 인서터(30)에 서 적어도 p 타임 슬롯에 대해 버퍼링되어 정확한 스터프 비트의 수가 가산될 수 있다.
다음에는 비디오 시퀀스를 왼쪽(과거)에서부터 오른쪽(미래)으로 디스플레이 순서대로 나타내고 있다.
Figure 112007050226949-PCT00002
음의 아래 첨자는 이전에 인코딩된 픽처를 나타낸다.
표 2는 u=1로부터 시작하는 일련의 타임 슬롯에 대해 도 2에 도시된 멀티 프로세서 인코더에서의 활동성(activity)을 나타낸다. 표 1의 경우와 마찬가지로, 표 2 역시 간략화된 것이며 인코딩 활동성만을 나타낸다. 압축되지 않은 픽처의 수신, 재구성된 픽처의 전송, 재구성된 픽처의 수신, 필요한 지연 등과 같은 활동성은 레이트 제어 알고리즘의 설명에 필수적인 것이 아니므로 생략되었다.
표 2
Figure 112007050226949-PCT00003
도 3은 이중 패스 인코더(5)가 표 2에 부분적으로 표시된 비디오 시퀀스를 인코딩 처리 중에 있는 동안에 제1 패스 인코더(8)와 제2 패스 인코더(112) 사이의 시간선도를 도시하고 있다. 현재의 타임 슬롯(u=1)의 시작에서, 인코더의 레이트 제어 알고리즘은 룩-어헤드 윈도에 저장되어 있는 이전에 얻어진 제1 패스 데이터 및 이동 평균 윈도에 저장되어 있는 이전에 얻어진 제2 패스 데이터를 활용하여 픽처 I0, B-2 및 B-1에 대한 대상 크기를 계산한다. 룩-어헤드 윈도에 저장되어 있는 제1 패스 데이터는, 제2 패스 인코더에 의해 현재 인코딩된 픽처들, 및 제1 패스 인코더(8)에 의해 이전에 인코딩되었지만 제2 패스 인코더(12)에 아직 도달되지 않은 후속의 픽처들에 관계되어 있다. 이동 평균 윈도에 저장되어 있는 제2 패스 데 이터는 제2 패스 인코더(12)에 의해 최근에 인코딩된 픽처들에 관계되어 있다. 룩-어헤드 윈도 및 이동 평균 윈도의 크기가 그 안에 저장되어 있는 픽처의 수와 관련해서 클수록, 레이트 제어 알고리즘은 제2 패스 인코더에 의해 인코딩되는 픽처들에 대한 타겟 크기를 더욱 정확하게 계산할 수 있다.
이하의 기호 및 변수의 목록은 단일의 채널 인코더에 대한 픽처-레벨 레이트 제어 알고리즘이 명료하게 서술될 수 있도록 하기 위해 제공된다.
i는 단일의 채널 인코더 유닛에 대한 인덱스로서 그리고 멀티 채널 인코더 내의 단일의 채널 인코더 유닛의 대응하는 비디오 스트림에 대한 인덱스로서 사용된다. 전술되고 도 2에 도시된 실시예에서 i는 특정되지 않았다.
j는 픽수 수에 대한 인덱스로서 사용된다. 픽처들은 1부터 각각의 다음 픽처에 대해 1씩 증가하여 번호가 매겨진다.
u는 특히 제2 패스 인코더와 관련해서 타임 슬롯에 대한 인덱스로서 사용된다. 타임 슬롯은 1부터 시작하여 각각의 후속의 타임 슬롯에 대해 1씩 증가하여 번호가 매겨진다.
Uu는 타임 슬롯 u 동안 제2 패스 인코더에 의해 인코딩된 픽처의 세트를 나타내는 데 사용된다. 표 2에 도시된 예에서, U5={P12, B10, B11, B7, B8}.
k는 세트 Uu 내의 픽처들에 대한 인덱스로서 사용된다. 세트 Uu 내의 주어진 픽처 k는 비디오 스트림에 대한 대응하는 인덱스 j를 갖게 될 것이다. 사용되는 인덱스는 문맥(context)에 좌우된다.
Figure 112007050226949-PCT00004
는 단일의 채널 인코더의 가상 버퍼의 비트 크기이다. 예를 들어, MPEG-2 인코더에서 가상 버퍼는 VBV 버퍼이고 H.264 인코더에서 가상 버퍼는 코딩된 픽처 버퍼(CPB)이다.
Figure 112007050226949-PCT00005
는 특정한 표준에 의해 허용되는 최대 크기가 아니라 비디오 스트림 i에 대한 원하는 비트 레이트에 기초한 실제의 최대 크기이다.
Bi ,u는 타임 슬롯 u에서 제2 패스 인코더 내의 모든 픽처에 대한 인코딩 바로 전의 비디오 스트림 i에 대한 단일의 채널 인코더의 가상 버퍼의 추정된 충만(estimated fullness)이다.
bi,j는 제1 패스 인코더에 의해 인코딩된 바와 같이, 비디오 스트림 i로부터 j번째 픽처의 인코딩된 버전의 비트 크기이다.
qi ,j는 비디오 스트림 i의 픽처 j에 대한 제1 패스 인코더에 의해 사용되는 양자화기(quantizer)이다.
ci,j=qi , jbi ,j는 제1 패스 인코더에 의해 측정된 바와 같은 비디오 스트림 i의 픽처 j의 복잡성을 나타내는 값이다. ci,j가 제1 패스 인코더에 의해 측정된 후 룩-어헤드 윈도 내에 저장된다.
Figure 112007050226949-PCT00006
비디오 스트림 i의 픽처 j가 I타입 픽처이면,
Figure 112007050226949-PCT00007
는 정의되지 않는다.
Figure 112007050226949-PCT00008
비디오 스트림 i의 픽처 j가 P타입 픽처이면,
Figure 112007050226949-PCT00009
는 정의되지 않는다.
Figure 112007050226949-PCT00010
비디오 스트림 i의 픽처 j가 B타입 픽처이면,
Figure 112007050226949-PCT00011
는 정의되지 않는다.
Figure 112007050226949-PCT00012
는 타임 슬롯 u에서 제2 패스 인코더 내의 모든 픽처에 대한 인코딩 바로 직전의 비디오 스트림 i에 대한 단일의 채널 인코더의 가상 버퍼의 실제 충만(estimated fullness)이다.
Figure 112007050226949-PCT00013
는 제2 패스 인코더에 의해 인코딩된 바와 같이, 비디오 스트림 i로부터 j번째 픽처의 인코딩된 버전의 비트 크기이다.
Figure 112007050226949-PCT00014
는 비디오 스트림 i의 픽처 j에 대한 제2 패스 인코더에 의해 사용되는 평균 양자화기이다. 이 평균 양자화기는 개개의 매크로블록 양자화기들의 합을 매크로블록의 수로 나눈 것이다.
Figure 112007050226949-PCT00015
는 제2 패스 인코더에 의해 측정된 바와 같은 비디오 스트림 i의 픽처 j의 복잡성을 나타내는 값이다.
Figure 112007050226949-PCT00016
비디오 스트림 i의 픽처 j가 I타입 픽처이면,
Figure 112007050226949-PCT00017
는 정의되 지 않는다. 마찬가지의 정의가
Figure 112007050226949-PCT00018
Figure 112007050226949-PCT00019
에도 적용된다.
d는 저장 및 지연 유닛 내의 룩-어헤드 윈도의 깊이이다.
p는 제2 패스 인코더 파이프라인의 깊이이다.
eu는 타임 슬롯 u-p으로부터 타임 슬롯 u-1까지 인코딩된 픽처의 수이다.
mi,u는 타임 슬롯 u에 있어서, 추정된 버퍼 충만 Bi ,u와 실제의 버퍼 충만
Figure 112007050226949-PCT00020
사이의 임의의 에러를 반영하는 작은 "오정합(mismatch)" 항목이다.
Ri는 출력 비디오 스트림 i에 대한 픽처 타임(picture time) 당 총 타겟 비트 수(target total number bits)이다. 출력 비디오 스트림 i 가 CBR이면 Ri는 상수이다.
σi는 단일 채널 인코더의 가상 버퍼의 충만이 조정되는 속도에서의 "감도(sensitivity)" 계수이다. 이에 대해서는 후술한다.
Figure 112007050226949-PCT00021
는 비디오 스트림 i의 픽처 j의 인코딩된 버전에 대한 초기 타겟 크기(initial target size)이다.
Ti ,j는 비디오 스트림 i의 픽처 j에 대한 조정된 타겟 크기이다.
vu는 타임 슬롯 u-p에서부터 타임 슬롯 u-1까지 인코딩된 픽처의 모든 비트 레이트 타겟(bit rate target)에 대한 세트이다.
wi,j는 비디오 스트림 i의 픽처 j에 대한 제1 패스 복잡성 값 ci,j를, 제2 패스 복잡성 값
Figure 112007050226949-PCT00022
가 되는 근사치로 변환시키는 데 사용되는 가중치이다. 이 변환은 선형이 아니며 따라서 wi,j는 각각의 타임 슬롯에서 갱신되는 데, 왜냐하면 이것은 문맥에 좌우되기 때문이다. 더욱 상세한 설명이 이하의 식 2, 3, 4에 주어진다.
Figure 112007050226949-PCT00023
비디오 스트림 i의 픽처 j가 I타입 픽처이면,
Figure 112007050226949-PCT00024
는 정의되지 않는다. 마찬가지의 정의가
Figure 112007050226949-PCT00025
Figure 112007050226949-PCT00026
에도 적용된다.
Figure 112007050226949-PCT00027
Figure 112007050226949-PCT00028
는 wi,j의 계산에서 사용된 가중 계수이다.
Si ,k는 룩-어헤드 윈도 내의 모든 픽처에 대한 가중된 제1 패스 복잡성의 합산이다. 합산 Si,k는 제1 패스 인코더의 룩-어헤드 윈도에 대해 수행되며, 이것은 이동 평균 윈도와는 상이하다(이것은 제2 패스 인코더에 의해 이전에 인코딩된 픽처와 관계되어 있다).
N은 이동 평균 윈도 내의 픽처의 수이다. NI...NP 및 NB는 유사하게 정의된다.
픽처-레벨 레이트 제어 알고리즘은, k+(d-1)를 통해 픽처 k의 제1 패스 인코딩으로부터의 룩-어헤드 윈도 내에 저장된 데이터 및 이동 평균 윈도 내에 저장된 제2 패스 인코더에 의해 이전에 인코딩된 다른 픽처들로부터의 제2 패스 데이터를 사용하여, 타임 슬롯 u의 시작에서 제2 패스 인코더에 진입하는 각각의 픽처 k에 대한 초기 타겟 비트 수(initial target number of bits)를 계산한다. 초기 타겟 수는 다음의 식에 따라 계산된다:
Figure 112007050226949-PCT00029
가중치 wi,k는 비디오 스트림 j의 이동 평균 윈도 내의 픽처들에 있어서 이전의 제1 패스 복잡성 측정치 및 이전의 제2 패스 복잡성 측정의 함수이다. 도 2에 도시된 것과 같은 파이프라인화된 수행에 있어서, 인코딩이 완료되지 않은 픽처들에 대한 제2 패스 복잡성은 유효하지 않게 된다는 것을 유념하라.
각각의 픽처-타입(I, P, 또는 B)에 대해 하나씩의, 3개의 서로 다른 함수
Figure 112007050226949-PCT00030
가 있다. 이것들은 모두 다음과 같은 일반적인 형태를 갖는다:
Figure 112007050226949-PCT00031
Figure 112007050226949-PCT00032
Figure 112007050226949-PCT00033
가중 함수
Figure 112007050226949-PCT00034
에 대한 단순한 형태는, 적절한 픽처 타입의 이전의 제2 패스 복잡성 측정치를 동일한 픽처 타입의 이전의 제1 패스 복잡성 측정치로 나눈 비율의 이동 평균이다. 예를 들어, I-타입 픽처에 대해서:
Figure 112007050226949-PCT00035
여기서, I_set는 크기 NI로 되어 있고 그 요소들은 식 2a에서
Figure 112007050226949-PCT00036
에 대한 상기 일반적인 형태를 만족하는 최대 정수들이다. NI는 이동 평균 윈도에서 I-타입 픽처의 수이고, 시작에서 제2 패스 복잡성 측정치는 처음의 p+d 픽처에 대해 유효하지 않으며 따라서 wik는 제2 패스 픽처들의 복잡성과 데시메이트된 제1 패스 픽처들의 복잡성 사이의 상수 비(constant ratio)가 된다. 통상적으로 가장 최근의 픽처는 나머지보다 무겁게 가중되어야 하고 그래서 I-타입 픽처 가중에 대한 가중 함수
Figure 112007050226949-PCT00037
는 다음과 같이 더욱 복잡하게 구현된다:
Figure 112007050226949-PCT00038
여기서 I_set'=I_set-{k0}. P_set 및 B_set에 대한 적절한 정의를 갖는 P 픽처 및 B 픽처에 대해서 유사한 식이 존재한다.
그러므로 식 1을 참조하면, 픽처 j가 제2 패스 인코더에 의해 수신되기 전에, 가중 wi,j와 픽처 j에 대한 제1 패스 복잡성 ci,j의 적(product)은 픽처 j의 제2 패스 복잡성
Figure 112007050226949-PCT00039
의 근사치를 제공한다. 이 근사치는 축척 계수(scaling factor) Si,k에 의해 나누어진다:
Figure 112007050226949-PCT00040
여기서 d는 룩-어헤드 윈도의 크기를 나타낸다. 복잡성 비율
Figure 112007050226949-PCT00041
은 세트 Uu 내의 다른 픽처들의 근사화된 제2 패스 복잡성과 비교하여 픽처 k의 근사화 된 제2 패스 복잡성의 측정치를 나타낸다.
픽처-레벨 레이트 제어 알고리즘이 비디오 스트림 i의 픽처 k의 인코딩된 버전에 대한 Ti ,k의 근사치를 선택하기 위해, 상기 픽처-레벨 레이트 제어 알고리즘은 인코더의 가상 버퍼의 현재의 충만을 고려할 필요가 있다. 이상적으로는, 픽처-레벨 레이트 제어 알고리즘은 타임 슬롯 u에 대한 실제의 버퍼 충만
Figure 112007050226949-PCT00042
을 활용한다. 그렇지만, p 타임 슬롯의 인코더의 파이프라인 지연으로 인해 타임 슬롯 u+p 때까지 실제의 버퍼 충만
Figure 112007050226949-PCT00043
을 알려지지 않게 된다. 그러므로 이전의 타임 슬롯으로부터의 정보에 기초하여, 추정된 가상 버퍼 충만 Bi ,u는 식 1에서 실제의 가상 버퍼 충만 대신에 사용된다:
Figure 112007050226949-PCT00044
정의에 의해, Vu 및 eu는 타임 슬롯(u-p)에서부터 타임 슬롯(u-1)까지의 타겟(target) 및 픽처에 관한 것이다. 식 6은 다양한 압축 표준에 정의된 바와 같은 가상 버퍼 충만 계산에 크게 대응하지만, 이전의 계산과는 달리 가상 버퍼의 충만의 이전의 추정치를 사용한다.
이전의 타임 슬롯에 대한 가상 버퍼 충만의 추정에 있어서의 임의의 에러를 보상하기 위해, 오정합 항목 mi,u가 식 1에서 사용된다. 오정합 항목 mi,u는 가상 버퍼의 실제 충만
Figure 112007050226949-PCT00045
및 추정된 충만
Figure 112007050226949-PCT00046
에 유효한 가장 최근의 값들 사이의 차에 대응한다:
Figure 112007050226949-PCT00047
주어진 픽처의 상대적 복잡성 또는 주어진 타임 슬롯 동안의 버퍼 충만에 관계없이, 각각의 픽처에는 비음수의 비트(non-negative number of bits)가 할당되어야 한다. 주어진 픽처 k의 상대적 복잡성은 결코 네거티브가 되지 않을 것이기 때문에, 이하의 관계가 픽처 k에 대해 참(true)으로 되어야 하는 식 1의 조사에 따른다:
Figure 112007050226949-PCT00048
동작 시, 오정합 항목 mi,u-1은 상대적으로 작게 될 것이고 식 8에 대해 중요한 효과를 갖지 않게 될 것이다. 그러므로 식 8을 분석하기 위해, mi,u-1을 무시할 수 있다. 그러므로 식 8에 의해 정의된 규칙(rule)은, 가상 버퍼가 충만한 상태일 때 가장 크게 교란되는 상황에 있게 되어, 다음과 같이 된다:
Figure 112007050226949-PCT00049
초기 타겟 비트 할당이 비네거티브일 필요가 있는 것과는 달리, 더욱 복잡한 본 발명의 실시예는 최소 비트 할당값 εi,k를 산정하고, 이 할당값은 비디오 코딩 표준이 픽처 k의 픽처 타입에 대한 제2 패스 인코더에 의해 수행되는 어떤 것에 의해서도 요구되는 최소의 비트 수에 비례한다.
따라서 식 9는 다음과 같이 다시 표현될 수 있다:
Figure 112007050226949-PCT00050
픽처 특성들과는 독립적인 픽처마다의 픽처-레벨 레이트 제어 알고리즘에 의해 조정될 수 있는 식 10의 유일한 성분은 σi,k이고 적절한 픽처 타입 종속값 σi,k은 σi,k에 대해 식 10을 풀면 다음과 같이 알아낼 수 있다:
Figure 112007050226949-PCT00051
그렇지만, 오정합 항목 mi,u로 인해, 식 1에 의해 주어진, 초기 타겟 비트 할당
Figure 112007050226949-PCT00052
은 픽처 k의 픽처 타입에 사용되는 비디오 표준이 요구하는 최소 비트 수 미만인 결과를 발생할 수 있다. 그러므로 상기 초기 타겟 비트 할당은 사기 최소 비트 수와 비교되고 픽처 k에 대한 최종 비트 할당 Ti ,k로서는 더 큰 수를 사용한다. 예를 들어, H.264의 경우는 다음과 같다:
Figure 112007050226949-PCT00053
여기서 αi,k는 비트 레이트이고 표준 종속 가중(standard dependent weight)은, 픽처의 I, P, B 타입에 대한 룩-업 테이블에 의해 다음과 같이 표현된다.
Figure 112007050226949-PCT00054
Figure 112007050226949-PCT00055
Figure 112007050226949-PCT00056
도 2를 참조하면, 전술한 픽처-레벨 레이트 제어 알고리즘을 활용하면, 단일의 채널 인코더(5)의 제어 유닛은 충분한 정밀도로 제2 패스 인코더의 가상 버퍼의 충만을 예측하여, 제2 패스 인코더의 병렬 아키텍처에 고유한 파이프라인 지연에 불구하고 픽처-레벨 레이트 제어 알고리즘이 각각의 픽처에 비트 수를 할당할 수 있게 한다.
도 2에 실선으로 도시된 인코더는 단일의 채널 인코더이며 이에 따라 인덱스 i는 특정되어 있지 않다. 도 4에 도시되어 있고 도 2에 점선으로 도시되어 있는, 본 발명의 다른 실시예에서는, n개의 단일 채널 인코더 5-i(i=1...n)가 멀티 채널 인코더(32)에 설치되어 있다. 멀티 채널 인코더(32)는 n개의 인코딩되지 않은 비디오 스트림 IN-i(i=1...n)을 입력으로서 수신하고 n개의 SPTS OUT-i(i=1...n) 각각을 원하는 가변 비트 레이트로 전송한다. 원한다면, 서로 다른 비디오 인코딩 표준을 각각의 채널에 대해 사용할 수도 있다. 인코더(32)는 매스터 제어 유닛(28)을 포함하고 각각의 비디오 스트림 i의 각각의 픽처 j에 있어서, 이중 패스 인코더 5-i로부터 매스터 제어 유닛(28)에 제1 패스 복잡성 값 ci,j가 전송된다. ci,j를 수신하면, 매스터 제어 유닛(28)은 타겟 값 Ti ,j를 계산하고 이 타겟 값을 이중 패스 인코더 5-i에 다시 전송한다. Ti ,j를 수신한 후, 이중 패스 인코더 5-i는 픽처 j를 인코딩하고 그 인코딩된 버전을 OUT-i의 일부로서 전송한다. 그런 다음 SPTS OUT-i는 멀티 채널 인코더(32)로부터 전송된다. 도 3에 도시된 실시예의 픽처-레벨 레이트 제어 알고리즘은, i=1...n인 것은 제외하고, 전술한 픽처-레벨 레이트 제어 알고리즘과 동일하다.
도 3에 점선으로 표시된, 본 발명의 다른 실시예에서, n개의 SPTS 출력 OUT-i는 다중화 유닛(36)에 의해 함께 통계적으로 다중화되어, 총계 고정 비트 레이트(CBR)을 갖는 단일의 멀티 프로그램 트랜스포트 스트림(MPTS) M_OUT를 형성하는 가변 비트 레이트 스트림이다. 출력 M_OUT는 M_OUT가 버퍼링되고 역다중화된 다음 디코딩되는 다운스트림 멀티 채널 디코더(도시되지 않음)에 전송된다. n개의 입력 비디오 스트림은 결국 함께 대용량의 멀티 채널 디코더 버퍼에 모두 저장될 것이기 때문에, 멀티 채널 인코더는 모든 n개의 단일 채널 인코더에 대한 공유된 가상 버퍼 모델을 사용할 것이고 픽처-레벨 레이트 제어 알고리즘은 n개의 비디오 스트림에 대한 조인트 타겟 비트 할당 동작을 집합적으로 수행해야만 한다. 전술한 실시예에서와 같이, 출력 OUT-i는 서로 다른 비디오 코딩 표준들을 사용하여 인코딩될 수 있다. 도 4를 참조하면, 인코딩된 채널 인코더의 출력 스트림 OUT-i가 CBR MPTS에 다중화되는 경우, 제1 패스 인코더(8)에 대한 입력은 데시메이션 유닛(24) 과 제1 패스 인코더(8) 사이에 설치된 대응하는 시간에 기반한 교정기(time-based corrector)(TBC) 유닛(40)에 의해 공통 비디오 클록에 대해 시간에 기반하여 정정된다. 레이트 제어 알고리즘은 n개의 비디오 스트림이 공통 클록에 대해 동기화되지 않으면 모든 n개의 비디오 스트림에 대해 조인트 타겟 비트 레이트 할당을 정확하게 수행할 수 없다. 그렇지만, 제2 패스 인코더(12)에 대한 입력에서의 비디오 스트림을 유사하게 동기화할 필요는 없다. 제2 패스 인코더(12)에 대한 입력인 정정되지 않은 클록이 제1 패스 인코더(8)에 대한 입력인 정정된 클록으로부터 벗어나기 때문에, 때때로 2개의 픽처 시퀀스 사이에는 불일치(discrepancy)가 존재한다. 이러한 불일치는 제2 패스 인코더의 입력에 대한 제1 패스 인코더 입력으로부터 손실되는 픽처이거나 또는 그 반대의 픽처가 될 수 있다. 제2 패스 인코더(28)는 이러한 불일치를 손쉽게 취급한다. 전자의 경우, 동일한 픽처 타입의 이전의 픽처를 인코딩하는 데 사용되는 파라미터들을 사용하여 현재의 픽처를 인코딩한다. 후자의 경우에는, 제2 패스 인코더(28)가 현재의 픽처를 단순히 무시한다.
단일의 채널 인코더의 CBR 출력을 패드(pad)하기 위해 스터프 비트를 사용하는 경우와 같이, 때때로 멀티 채널 인코더의 PMTS 출력을 패드하여 인코더의 공유된 가상 버퍼 충만이 네거티브로 되지 않도록 할 필요가 있다. 스터프 비트 대신, 단일의 채널 인코딩을 위한 전술의 방법과 유사한 방법으로 널 트랜스포트 스트림 패킷(null transport stream packets)을 삽입하기도 하지만, n개의 SPTS가 함께 다중화된 이후에 상기 삽입이 발생하는 차이가 있다. 다중화기(36)로부터 출력된 후, M_OUT는 멀티 채널 널 패킷 삽입기(46)에 의해 수신된다. 압축된 출력 스트림 은 적어도 최대(p1, p2...pn) 타임 슬롯에 대해 버퍼링되어 정확한 수의 널 트랜스포트 패킷을 계산하여 부가할 수 있으며, 여기서 pi(i=1, 2, ...n)는 스트림 i에 대한 제2 패스 인코더의 파이프라인의 깊이이다.
도 4에 도시된 실시예에서, 단일의 채널 인코더 유닛 5-i는 도 5에 접선으로 도시된 적응성 프리-필터(adaptive pre-filter)(42)를 포함한다. 제1 패스 인코더(24)로부터 얻어진 픽처-레벨 복잡성 통계치를 사용하여 제2 패스 인코딩 전에 현재의 GOP에 대한 필터(42)의 세기(strength)를 제어한다. 적응성 프리-필터(42)는 로우 패스 필터이고 그 출력은 주어진 픽처의 인코딩된 버전의 크기를 감소시키도록 선택될 수 있다. 제2 패스 인코더에는 원래의 압축되지 않은 비디오 소스 또는 적응성 프리-필터(42)의 출력이 입력으로서 제공된다. 픽처-레벨 레이트 제어 알고리즘은 복잡성 통계치를 근거로 하여 이러한 결정을 내린다. 예를 들어, 동시 계류 중인 미국특허출원 제10/316,483호를 참조하라.
복수의 단일 채널 개별 인코더의 VBR 출력이 결합되어 다중화된 CBR 스트림을 형성하는, 통계적 다중화에 의해 멀티 채널 인코딩을 수행하는 경우의 픽처-레벨 레이트 제어 알고리즘은 전술한 픽처-레벨 레이트 제어 알고리즘보다는 약간 더 복잡하다. 통계적 다중화를 이용한 픽처-레벨 레이트 제어를 위해 중심 매스터 레이트 제어를 사용할 수도 있다.
서로 다른 비디오 표준(들)(MPEG-2, H.264, SMPTE VC-1 등)을 사용하여 채널들을 인코딩할 수도 있다. 단일의 채널 인코더 각각의 아키텍처는 동일하며, 픽처 -레벨 타겟 비트 할당 식은 식 1과는 다소 차이가 있다.
이하의 기호 및 변수의 목록은 통계적 다중화를 이용한 복수의 채널 인코더에 대한 픽처-레벨 레이트 제어 알고리즘이 명료하게 서술될 수 있도록 하기 위해 제공된다.
n은 멀티 채널 인코더가 수신될 수 있는 채널의 수이다.
R은 다중화된 출력 스트림 M_OUT에 대한 픽처 당 고정 비트 레이트이다.
Figure 112007050226949-PCT00057
는 n개의 단일 채널 인코더가 사용하는 공유된 가상 버퍼의 크기이다.
Bu는 타임 슬롯 u에 대한 공유된 가상 버퍼의 추정된 충만이다.
Figure 112007050226949-PCT00058
는 타임 슬롯 u에 대한 공유된 가상 버퍼의 실제의 충만이다.
mu는 전술한 mi,u와 유사한 오정합 항목이다.
픽처-레벨 레이트 제어 알고리즘은 다음 식에 따라 각각의 타임 슬롯 u 동안 비디오 스트림 i의 각각의 픽처 k에 대한 초기 타겟 비트 수를 계산한다:
Figure 112007050226949-PCT00059
Sk는 전체 복잡성이 모든 n개의 비디오 채널의 복잡성에 좌우되기 때문에 식 5와는 다르게 정의된다:
Figure 112007050226949-PCT00060
마찬가지로 mu는 mi.u와는 상이한 정의를 갖는다:
Figure 112007050226949-PCT00061
전술한 바와 같이, n 채널은 서로 다른 비디오 코딩 표준을 사용하여 인코딩될 수 있다. 그 경우, ci,j는 표준 독립이며 wi,j는 제1 패스 복잡성으로부터 제2 패스 복잡성으로 변환할 뿐만 아니라 서로 다른 비디오 코딩 표준들을 공통의 기준 표준으로 정상화한다. 특정한 픽처 k에 대한 비트 레이트 할당은 룩-어헤드 윈도 d, 채널 수 n, 및 각각의 채널의 룩-어헤드 윈도 내의 모든 픽처들의 총 복잡성을 조합하여 결정된다. 다중화된 출력 M_OUT는 CBR이기 때문에, 각각의 SPTS OUT-i는 VBR SPTS로서 인코딩된다. 픽처-레벨 레이트 제어 알고리즘은 n개의 SPTS이 비트 레이트를 결합하여 원하는 CBR을 형성하게 한다.
본 발명의 전술한 모든 실시예에서, 단일의 채널 인코더의 이중 패스 속성을 이용하여 단일의 채널 인코더의 제2 패스 인코더에서 MB-레벨 레이트 제어 알고리즘을 수행한다. 픽처-레벨 레이트 제어 알고리즘에 의해 제공된 타겟 비트 할당 Ti,k는 픽처 k의 MB들 사이에서 분할되어야 한다. 개별의 MB의 복잡성은 통상적으로 MB에서 MB까지 변하기 때문에, 일정한 할당, 예를 들어 픽처 k에서 MB의 수로 Ti,k를 분할하는 것은 통상적으로 최적의 해결책이 아니다.
제1 패스 인코더는 인코딩 프로세스 동안 매크로블록 복잡성을 측정한다. 제1 패스 인코더의 분해능 및 비트 레이트는 제2 패스 인코더의 그것들과 상이하기 때문에 또한 제2 패스 인코더에서의 모드 결정은 제1 패스 인코더에서 이루어진 모든 결정과는 관계없기 때문에, 제2 패스 인코더에 의해 측정되는 것과 같은 MB의 복잡성의 참값은 MB의 복잡성의 제1 패스 인코더의 측정치에 기초하여 정확하게 계산될 수 없다. 그렇지만, 중요한 측정치는 MB 레벨 복잡성의 참값이 아니라, 매크로블록의 상대적 복잡성이며, 즉 복잡성이 MB에서 MB까지 얼마나 변동하느냐 하는 것이다. 제1 패스 인코더가 픽처의 제2 영역에 대해 단순한/복잡한 바와 같은 픽처의 제1 영역을 측정하면, 제2 패스 인코더 역시 픽처의 제2 영역에 대해 단순한/복잡한 바와 같은 픽처의 제1 영역을 측정한다. 이 매핑 관계에 대해서는 도 5 및 도 6을 참조하여 상세히 후술한다. MB-레벨 레이트 제어 알고리즘은 이 관계를 이롭게 이용한다.
전술한 본 발명의 모든 실시예들에서의 매크로블록-레벨 레이트 제어 알고리즘은 동일하다. MB-레벨 레이트 제어의 목적은 a) 제2 패스 인코더에 의해 발생된 바와 같은 픽처 j의 인코딩된 버전의 실제 크기가 픽처-레벨 레이트 제어 알고리즘에 의해 할당된 타겟 크기 Ti ,j에 가깝게 되도록 하는 것과; b) 유용한 비트가 상대 적 MB 복잡성에 근거하여 MB들 사이에 분배되도록 하는 것이다. 전술한 바와 같이, MB의 복잡성의 실제 값은 MB 레벨 비트 할당을 결정할 때 특별히 중요하지는 않다. 특별한 MB의 상대적 복잡성이 훨씬 더 중요하며, 즉 복잡성이 MB에서 MB까지 얼마나 변동하느냐 하는 것이다. 하나의 픽처에 있어서 MB에서 MB까지의 제2 패스 복잡성 변동은 대응하는 제1 패스 MB들에 대해 제2 패스 MB들을 매핑하고 관련 제1 패스 복잡성 변동들을 비교함으로써 예측될 수 있다.
설명의 간략화를 위해, 이중 패스 인코더에 의해 수신되는 픽처들이 8x8 어레이의 64 MB로 구성되는 것으로 가정한다. 제1 패스 인코더에 대한 입력은, 제1 패스 인코더에 진입하는 픽처의 분해능이 수평 및 수직으로 1/2로 감소되도록 격감된다. 그러므로 제1 패스 인코더에 진입하는 픽처들은 도 6에 도시된 바와 같이 4x4 어레이의 16 MB로 구성될 것이다. 실제로, 하나의 픽처는 그 분해능에 따라 수백 또는 수천 개의 MB들을 포함할 수 있지만, 이러한 간략화된 예로부터 유도된 결과 및 식은 임의의 분해능에도 적용된다. 이러한 간략화는 필수적인 것은 아니며, 단지 설명의 편의를 위한 것이다. 도 6은 픽처 j의 2개의 버전을 도시하고 있다. 제1 버전에서, 픽처 j는 제1 패스 인코더에 의해 4x4 어레이의 매크로블록으로 분해되어 있다. 제2 버전에서, 픽처 j는 제2 패스 인코더에 의해 8x8 어레이의 매크로블록으로 분해되어 있다. 제1 버전에서, 각각의 MB는 단일의 대문자(A - P)로 표시되어 있고, 제2 버전에서, 각각의 MB는 소문자 접두어(a - p)와 첨자(1 - 4)로 표시되어 있다. 이하의 기호 및 변수의 목록은 도 6을 참조하여 MB-레벨 레이트 제어 알고리즘이 명료하게 서술될 수 있도록 하기 위해 제공된다:
N1은 제1 패스 인코더에 의해 발생된 소정의 픽처의 인코딩된 버전에서의 매크로블록의 수이다. 도 6에 도시된 예에서는, N1은 16이다.
k는 제1 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록 서수에 대한 인덱스로서 사용된다. 매크로블록 서수는 제로에서 시작하며 그래서 k=0...(N1-1)이고, 도 6에 도시된 예에서, k=0...15이다.
v는 제1 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록의 행(row)의 수이다. 일부 코딩 표준, 예를 들어 H.264에서 요구되지 않는, 고정 매크로블록 크기를 가정하면, v는 매크로블록의 행의 수에 대응한다. 도 6에 도시된 예에서는, v=4이다.
i는 제1 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록 서수에 대한 행 인덱스이다. 수평적 서수는 제로에서 시작하고 그래서 i=0...(v-1)이다.
h는 제1 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록의 열(column)의 수이다. 일부 코딩 표준, 예를 들어 H.264에서 요구되지 않는, 고정 매크로블록 크기를 가정하면, h는 매크로블록의 열의 수에 대응한다. 도 6에 도시된 예에서는, h=4이다.
j는 제1 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록 서수에 대한 열 인덱스이다. 수직적 서수는 제로에서 시작하고 그래서 j=0...(v-1)이다.
N2는 제2 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블 록의 수이다. 도 6에 도시된 예에서는, N2=64이다.
Figure 112007050226949-PCT00062
는 제2 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록 서수에 대한 인덱스로서 사용된다. 매크로블록 서수는 제로에서 시작하고 그래서
Figure 112007050226949-PCT00063
=0...(N2-1)이고, 도 6에 도시된 예에서,
Figure 112007050226949-PCT00064
=0...63이다.
Figure 112007050226949-PCT00065
는 제2 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록에 대한 행 인덱스이다.
Figure 112007050226949-PCT00066
는 제2 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록에 대한 열 인덱스이다.
mh 및 mv는 각각 수평 방향 및 수직 방향에서의 정수 곱셈기(integer multiplier)이며, 제1 패스 인코더와 제2 패스 인코더 사이의 분해능 차이를 나타낸다: mhmv = N2/N1이다. 도 6에 도시된 예에서, 제2 패스 인코더의 분해능은 수평 방향 및 수직 방향 모두에서 제1 패스 인코더의 분해능에 2배이며 그래서 mh=2 및 mv=2이다.
gk는 제1 패스 인코더에 의해 측정된 바와 같은 매크로블록 k의 복잡성이다. 또한, 매크로블록 k의 제1 패스 복잡성으로서도 알려져 있다.
γk는 매크로블록 0 내지 k의 누적된 제1 패스 복잡성 값이다.
uk는 인코딩이 완료된 후 제1 패스 인코더에 의해 발생된 비트 수이지만 주어진 픽처에 있어서 매크로블록 수 k를 포함하지는 않는다.
Figure 112007050226949-PCT00067
는 주어진 픽처에 있어서 매크로블록 k의 매핑된 제2 패스 복잡성이다.
Figure 112007050226949-PCT00068
.
Figure 112007050226949-PCT00069
는 매크로블록 0 내지 k의 누적된 매핑된 제2 패스 복잡성 값이며 이에 대해서는 더 후술한다.
Figure 112007050226949-PCT00070
는 인코딩이 완료된 후 제2 패스 인코더에 의해 발생된 비트 수이지만 주어진 픽처에 있어서 매크로블록 수 k를 포함하지는 않는다.
αI는 I-타입에 대한 MB-레벨 제어 감도를 조정하는 증폭 계수이다.
αP는 P-타입에 대한 MB-레벨 제어 감도를 조정하는 증폭 계수이다.
αB는 B-타입에 대한 MB-레벨 제어 감도를 조정하는 증폭 계수이다.
Qk는 제2 패스 인코더에 의해 매크로블록 k에 사용된 양자화기이다.
qmax는 양자화기의 최대값이다. 표준 종속이다. H.264에 있어서, qmax는 51이다.
Vk는 인코딩 완료 후 제2 패스 인코더의 누적된 가상 버퍼 충만이지만 매크로블록 k를 포함하지는 않는다.
Vf는 제2 패스 인코더의 가상 버퍼 초기 충만이다.
제2 패스 인코더가 매크로블록
Figure 112007050226949-PCT00071
를 인코딩할 때, 매크로블록-레벨 레이트 제어 알고리즘은 대응하는 제1 패스 매크로블록 k로부터의 복잡성 정보를 필요로 한다. 그렇지만, 도 6에 도시된 바와 같이, 제1 패스 인코더에 의해 수신된 데시메이트된 비디오 스트림은 제2 패스 인코더에 의해 수신된 원래의 비디오 스트림과는 다르게 인코딩될 것이며 주어진 픽처의 각각의 인코딩된 버전들의 매크로블록들은 동일하지 않을 것이다. 그러므로 제2 패스 인코더가 제1 패스 인코더에 의해 발생된 복잡성 정보를 사용하기 위해서, 매크로블록-레벨 레이트 제어 알고리즘은 제2 패스 매크로블록
Figure 112007050226949-PCT00072
을 제1 패스 매크로블록에 매핑하여 대응하는 제1 패스 매크로블록 k의 서수를 결정한다. 이것은 제1 패스 인코더와 제2 패스 인코더 사이의 수직 분해능 및 수평 분해능의 공지된 차이를 이용하여 달성된다:
Figure 112007050226949-PCT00073
Figure 112007050226949-PCT00074
식 17 및 식 18은 제2 패스 행 서수 및 열 서수를 각각 도출해 낸다. 그런 다음 대응하는 제1 패스 행 서수 및 열 서수는 다음과 같이 계산될 수 있다:
Figure 112007050226949-PCT00075
Figure 112007050226949-PCT00076
그런 다음 제2 패스 매크로블록
Figure 112007050226949-PCT00077
에 대응하는 제1 패스 매크로블록의 서수 k는 다음과 같이 계산될 수 있다:
Figure 112007050226949-PCT00078
도 6을 다시 참조하면, MB n2에 있어서:
Figure 112007050226949-PCT00079
Figure 112007050226949-PCT00080
식 17 내지 도 21은
Figure 112007050226949-PCT00081
를 k의 적절한 값으로 직접 매핑하기 위해 단일의 함수 map()으로 결합될 수 있다:
Figure 112007050226949-PCT00082
이에 의해 제2 패스 MB 복잡성 변동은 대응하는 제1 패스 MB에 대한 누적된 복잡성을 이용하여 예측될 수 있다:
Figure 112007050226949-PCT00083
x는 단순히 인덱스이다. 예로서, 제1 패스 MB들 A, B, C 및 D(k=0, 1, 2 및 3)는 184, 667, 190 및 122의 제1 패스 복잡성 값 gk를 각각 갖는 것으로 가정한다(이러한 숫자는 샘플 이미지로부터 얻은 정상화된 복잡성 값(normalized complexity value)이며 단지 예로만 주어진 것이다). 그러므로 이 MB에 대한 누적된 제1 패스 복잡성은 다음과 같이 된다:
Figure 112007050226949-PCT00084
제2 패스 MB
Figure 112007050226949-PCT00085
Figure 112007050226949-PCT00086
에 있어서, 식 23은 다음과 같이 된다:
Figure 112007050226949-PCT00087
나머지 제2 패스 MB에 대한 매핑된 누적된 복잡성도 유사하게 계산될 수 있다. 행
Figure 112007050226949-PCT00088
Figure 112007050226949-PCT00089
에서의 제2 패스 MB에 대한 매핑된 누적된 복잡성이 표 3에 도시되어 있다:
표 3
Figure 112007050226949-PCT00090
도 7은 위의 예에서의 누적된 제1 패스 복잡성 및 매핑된 누적된 제2 패스 복잡성 사이의 관계를 도시하고 있다.
픽처 j에 있어서, Tj가 픽처-레벨 레이트 제어 알고리즘에 의해 결정된 바와 같은 픽처 j의 인코딩된 버전의 타겟 크기이면, 매크로블록 k=0, ..., N2-1에 대한 지배 방정식(governing equations)은 이하와 같이 픽처 타입에 좌우된다:
Figure 112007050226949-PCT00091
Figure 112007050226949-PCT00092
Figure 112007050226949-PCT00093
양자화기 Qk는 다음과 같이 계산된다:
Figure 112007050226949-PCT00094
여기서,
Figure 112007050226949-PCT00095
정의에 의해, Vf는 식 6에 의해 주어진 인코더 버퍼 충만의 추정치인 Bi ,u의 복사인데, 왜냐하면 인코더 버퍼 충만의 참값이 파이프라인 지연으로 인해 즉시 유용하지 않기 때문이다. MB 레벨 알고리즘은 시퀀셜 인코더 설계(단일의 프로세서 아키텍처의 경우) 및 병렬 인코더 설계(복수의 프로세서 아키텍처의 경우) 모두에 적용된다. 시퀀셜 레이트 제어의 경우, 파이프라인 지연은 제로이고 Vf는 모든 픽처의 인코딩 후 즉시 유용하다.
본 발명은 전술한 특정한 실시예에 제한되는 것이 아니며, 첨부된 청구의 범위 및 그 등가물에 정의된 본 발명의 범주를 벗어남이 없이 다양한 변형이 이루어질 수 있음을 이해해야 한다. 예를 들어, 도 2의 데시메이션 유닛 및 제1 패스 인코더를, MPEG-2 및 H.264와 같은 제2 패스 인코더에 의해 각각 실행되는 것이 아닌, 상이하고 비교적 단순한 비디오 코딩 표준을 실행하도록 설계된 제1 패스 인코더로 대체할 수 있다는 것을 이해해야 한다. 이 경우, 픽처-레벨 레이트 제어 알고리즘은 전술한 바와 같이 다른 분해능과 반대되는 다른 코딩 표준들에 의해 생기는 픽처 복잡성의 차이를 보상할 필요가 있다. 대안으로, 압축되지 않은 비디오 스트림을 수신하는 인코더보다는, 트랜스코딩 용량에 있어서 전술한 것과 유사한 아키텍처 및 알고리즘을 적용할 수 있는데, 여기서 단일의 채널 트랜스코더는 제1 인코딩 표준에 따라 인코딩된 비디오 스트림을 수신하고, 상기 실시예들의 제1 패스 인코더는 인코딩된 입력 비디오 스트림을 디코딩하는 제1 패스 인코더로 대체되어 레이트 제어 알고리즘에 의해 필요로 되는 복잡성 정보를 발생하고, 제2 패스 인코더는 제2 비디오 코딩 표준에 따라 상기 디코딩된 비디오 스트림을 인코딩하여 전술한 방식으로 디코더에 의해 수집된 복잡성 정보를 활용한다.

Claims (25)

  1. 비디오 시퀀스를 구성하는 시퀀셜 픽처의 그룹에서의 픽처의 인코딩된 버전을 생성할 때 사용될 요구되는 수의 비트에 대응하는 타겟 크기(target size)를 결정하여 멀티 프로세서 비디오 인코더를 동작시키는 방법에 있어서,
    a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도(a first degree of fullness)를 계산하는 단계;
    b) 상기 제1 충만도에 대해 처리하여 상기 코딩된 픽처의 제2 시각에서의 추정된 제2 충만도를 도출해 내는 단계; 및
    c) 상기 제2 충만도에 대해 처리하여 상기 픽처의 초기 타겟 크기를 도출해 내는 단계
    를 포함하며,
    상기 제1 시각은 상기 코딩된 픽처 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 멀티 프로세서 비디오 인코더 동작 방법.
  2. 제1항에 있어서,
    상기 단계 c) 이전에, 상기 픽처의 제1 복잡도(a first degree of complexity)를 측정하는 단계를 더 포함하며,
    상기 단계 c)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처에 대한 상기 초기 타겟 크기를 도출해 내는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
  3. 제2항에 있어서,
    상기 단계 c)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처의 제2 복잡도를 도출해 내는 단계를 더 포함하며, 상기 제2 복잡도는 상기 비디오 시퀀스의 최근에 측정된 다른 픽처들에 대한 상기 픽처의 복잡성(complexity)의 측정치인, 멀티 프로세서 비디오 인코더 동작 방법.
  4. 제2항에 있어서,
    상기 픽처의 상기 인코딩된 버전은 제1 비디오 인코딩 과정을 사용하여 생성되고, 상기 픽처의 상기 제1 복잡도는 제2 비디오 인코딩 과정을 사용하여 측정되는, 멀티 프로세서 비디오 인코더 동작 방법.
  5. 제4항에 있어서,
    상기 제1 비디오 인코딩 과정은 상기 제2 비디오 인코딩 과정보다 계산적으로 더 집중적인(computationally intensive), 멀티 프로세서 비디오 인코더 동작 방법.
  6. 제1항에 있어서,
    상기 단계 c) 이전에, 상기 픽처의 수정된 버전을 생성하는 단계, 및 상기 수정된 버전을 사용하여 상기 픽처의 제1 복잡도를 측정하는 단계를 더 포함하며,
    상기 단계 c)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처의 상기 초기 타겟 크기를 도출해 내는 단계를 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
  7. 제6항에 있어서,
    상기 픽처의 수정된 버전은 상기 픽처를 격감(decimate)시킴으로써 생성되는, 멀티 프로세서 비디오 인코더 동작 방법.
  8. 제1항에 있어서,
    상기 단계 c) 이후에, 상기 초기 타겟 크기보다 더 큰 크기 또는 최소의 수용가능한 크기를 상기 픽처의 타겟 크기로서 선택하는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
  9. 제8항에 있어서,
    상기 픽처는 복수의 픽처 타입 중 하나로 되어 있으며,
    상기 최소의 수용가능한 크기는, 동일한 픽처 타입의 픽처들을 상기 픽처로서 전송하는 데 사용되는 비트 레이트의 함수인, 멀티 프로세서 비디오 인코더 동작 방법.
  10. 제1항에 있어서,
    상기 단계 c) 이전에, 부정합 항목(mismatch term)을 계산하는 단계를 더 포함하며,
    상기 부정합 항목은 복수의 이전에 인코딩된 픽처에 대해 계산된 이전에 계산된 타겟 크기들과 상기 복수의 이전에 인코딩된 픽처에 대한 실제의 인코딩된 크기 사이의 평균 차(average difference)에 대응하며,
    상기 단계 c)는, 상기 부정합 항목에 대해 처리하여 상기 픽처에 대한 상기 초기 타겟 크기를 도출해 내는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
  11. 제1항에 있어서,
    최적의 양자화 파라미터를 선택하기 위해 상기 요구되는 비트를 사용하여 상기 픽처를 인코딩하는 단계 및 상기 최적의 양자화 파라미터를 이용하여 상기 픽처의 인코딩된 버전의 크기를 비트로 제어하는 단계를 더 포함하는 멀티 프로세서 비디오 인코더 동작 방법.
  12. 비디오 시퀀스의 픽처를 인코딩하기 위해 멀티 프로세서 비디오 인코더를 준비하는 방법에 있어서,
    a) 상기 픽처를 수신하는 단계;
    b) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 계산하는 단계;
    c) 제1 충만도에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계;
    d) 소정의 시간에 대한 상기 픽처를, 상기 소정의 시간 동안 저장하는 단계;
    e) 상기 픽처의 제1 복잡도를 측정하는 단계;
    f) 상기 픽처의 상기 제1 복잡도 및 상기 제2 충만도에 대해 처리하여 상기 픽처에 대한 소정의 타겟 크기를 도출해 내는 단계; 및
    g) 상기 단계 d)에 이어서, 상기 픽처 및 상기 소정의 타겟 크기를 상기 멀티 프로세서 비디오 인코더에 제공하는 단계
    를 포함하며,
    상기 제1 시각은 상기 코딩된 픽처 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 멀티 프로세서 비디오 인코더 준비 방법.
  13. 제12항에 있어서,
    상기 단계 f)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처의 제2 복잡도를 도출해 내는 단계를 더 포함하며, 상기 제2 복잡도는 상기 비디오 시퀀스의 최근에 측정된 다른 픽처들에 대한 상기 픽처의 복잡성의 측정치인, 멀티 프로세서 비디오 인코더 준비 방법.
  14. 제12항에 있어서,
    상기 단계 e)는, 상기 제1 복잡도를 측정하기 전에, 상기 픽처의 상기 수정된 버전을 생성하는 단계 및 상기 수정된 버전을 이용하여 상기 제1 복잡도를 측정하는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 준비 방법.
  15. 제14항에 있어서,
    상기 픽처의 상기 수정된 버전은 상기 픽처를 격감시킴으로써 생성되는, 멀티 프로세서 비디오 인코더 준비 방법.
  16. 제12항에 있어서,
    상기 단계 f)는, 상기 제1 복잡도에 대해 처리하여 초기 타겟 크기를 도출해 내는 단계 및 상기 초기 타겟 크기보다 더 큰 크기 또는 최소의 수용가능한 크기를 상기 픽처의 소정의 타겟 크기로서 선택하는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 준비 방법.
  17. 제16항에 있어서,
    상기 픽처는 복수의 픽처 타입 중 하나로 되어 있으며,
    상기 최소의 수용가능한 크기는, 동일한 픽처 타입의 픽처들을 상기 픽처로서 전송하는 데 사용되는 비트 레이트의 함수인, 멀티 프로세서 비디오 인코더 준비 방법.
  18. 제12항에 있어서,
    상기 단계 c) 이전에, 부정합 항목을 계산하는 단계를 더 포함하며,
    상기 부정합 항목은 복수의 이전에 인코딩된 픽처에 대해 계산된 소정의 타겟 크기와 상기 복수의 이전에 인코딩된 픽처에 대한 실제의 인코딩된 크기 사이의 평균 차에 대응하며,
    상기 단계 c)는, 상기 부정합 항목에 대해 처리하여 상기 픽처에 대한 상기 초기 타겟 크기를 도출해 내는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 준비 방법.
  19. 일련의 픽처 중 단일의 화상을 구성하는 일련의 매크로블록 중 소정의 매크로블록을 인코딩할 때 사용하기 위한 양자화 파라미터의 값을 결정하는 방법에 있어서,
    a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 추정하는 단계;
    b) 상기 일련의 매크로블록 중 상기 소정의 매크로블록을 선행하는 임의의 매크로블록에 대한 누적된 복잡성 측정치를 결정하는 단계;
    c) 상기 제1 충만도, 상기 누적된 복잡성 측정치 및 타겟 비트 수에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계; 및
    d) 상기 제2 충만도에 대해 처리하여 상기 양자화 파라미터의 값을 도출해 내는 단계
    를 포함하며,
    상기 타겟 비트의 수는 상기 단일의 픽처의 인코딩된 버전을 생성할 때 상기 일련의 매크로블록들 간에 분할될 비트 수에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 양자화 파라미터의 값 결정 방법.
  20. 제19항에 있어서,
    상기 제1 시각은 다운스트림 디코더 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하는, 양자화 파라미터의 값 결정 방법.
  21. 제20항에 있어서,
    상기 단계 d)의 상기 양자화 파라미터의 값을 이후 상기 양자화 파라미터의 제1 값이라 하면,
    상기 양자화 파라미터의 값 결정 방법은, 상기 양자화 파라미터의 상기 제1 값에 대해 처리하여 상기 양자화 파라미터의 제2 값을 도출해 내는 단계를 더 포함하는, 양자화 파라미터의 값 결정 방법.
  22. 비디오 시퀀스의 단일의 화상을 구성하는 일련의 매크로블록에서 각각의 매크로블록을 인코딩할 때 사용하기 위한 양자화 파라미터의 값을 계산하는 방법에 있어서,
    a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 추정하는 단계;
    b) 상기 단일의 픽처의 인코딩된 버전에 대한 타겟 크기를 결정하는 단계;
    c) 상기 일련의 매크로블록의 각각의 매크로블록에 대해:
    c1) 상기 비디오 시퀀스의 임의의 선행하는 매크로블록에 대한 누적된 복잡성 측정치를 결정하는 단계;
    c2) 상기 제1 충만도, 상기 누적된 복잡성 측정치 및 상기 타겟 크기에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계; 및
    c3) 상기 제2 충만도에 대해 처리하여 상기 소정의 매크로블록을 인코딩할 때 사용하기 위한 상기 양자화 파라미터의 값을 도출해 내는 단계
    를 포함하며,
    상기 타겟 크기는 상기 단일의 픽처의 인코딩된 버전을 생성할 때 상기 일련의 매크로블록들 간에 분할될 비트 수에 대응하고, 소정의 매크로블록의 인코딩된 버전의 비트의 크기는 상기 매크로블록을 인코딩할 때 사용된 상기 양자화 파라미터의 값의 함수이며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 양자화 파라미터의 값 계산 방법.
  23. 복수의 픽처를 멀티 프로세서 인코더와 병렬로 인코딩하기 전에, 인코딩된 픽처 버퍼의 충만도를 미래 시각에 추정하여 멀티 프로세서 인코더를 동작시키는 방법에 있어서,
    제1 비디오 인코딩 과정을 사용하여 상기 복수의 픽처의 인코딩된 버전을 나타내는 데 필요한 비트 수를 예측하는 단계;
    상기 인코딩된 픽처의, 상기 미래 시각 이전인 제1 시각에서의 충만도를 계산하는 단계;
    복수의 이전에 인코딩된 픽처의 인코딩된 버전을 나타내는 데 필요한 이전에 예측된 비트 수와 상기 복수의 이전에 인코딩된 픽처를 나타내는 데 필요한 실제의 비트 수를 비교함으로써 부정합 항목을 생성하는 단계; 및
    상기 인코딩된 픽처의 상기 미래 시각에서의 추정된 충만도를 복귀시키기 위해, 상기 제1 시각에 상기 인코딩된 픽처의 상기 계산된 충만도와, 제1 픽처의 인코딩된 버전을 나타내는 데 필요한 상기 예측된 비트 수와, 상기 부정합 항목을 결합하는 단계
    를 포함하며,
    상기 미래 시간은 상기 제1 픽처의 인코딩된 버전이 상기 코딩된 픽처에 로딩되는 시간에 대응하며, 상기 제1 시각은 상기 코딩된 픽처의 충만도를 정확하게 계산할 수 있는 가장 최근의 시각을 나타내는, 멀티 프로세서 인코더 동작 방법.
  24. 인코딩된 픽처 버퍼의 언더플로우(underflow)를 나타내기 위해 멀티 프로세서 비디오 인코더를 동작시키는 방법에 있어서,
    제1 비트 수를 사용하여 비디오 시퀀스의 픽처를 인코딩하는 단계;
    상기 화상의 상기 인코딩된 버전을 소정의 시간 동안 저장하는 단계;
    상기 코딩된 픽처 버퍼의 충만도를 계산하는 단계;
    상기 코딩된 픽처 버퍼가 언더플로우 되는 상황에 있는지를 결정하는 단계; 및
    상기 코딩된 픽처 버퍼가 언더플로우 되는 상황에 있으면:
    상기 코딩된 픽처 버퍼의 상기 충만도를, 상기 코딩된 픽처 버퍼가 더 이상 언더플로우 상황에 있게 되지 않는 레벨까지 증가시키는 데 필요한 스터프 비트 수(a number of stuff bits)를 계산하는 단계와,
    상기 스터프 비트 수를 상기 픽처의 인코딩된 버전에 부가하여, 상기 픽처의 상기 인코딩된 버전의 크기를 제2 비트 수로 증가시키는 단계와,
    상기 픽처의 상기 인코딩된 버전을 전송하는 단계
    를 포함하는 멀티 프로세서 비디오 인코더 동작 방법.
  25. 공통 비디오 클록을 각각 공유하고 제1 패스 인코더와 제2 패스 인코더를 각각 구비하는 복수의 이중 패스(dual pass)의 멀티 프로세서 단일의 채널 인코더를 구비하는 멀티 채널 비디오 인코더를 동작시키는 방법에 있어서,
    상기 복수의 이중 패스의 멀티 프로세서 단일의 채널 인코더 각각에 대해:
    복수의 시퀀셜 픽처와 임베디드 비디오 클록(embedded video clock)을 포함하는, 인코딩되지 않은 단일의 프로그램 비디오 스트림을 수신하는 단계;
    상기 인코딩되지 않은 단일의 프로그램 비디오 스트림의 복사(copy)를 생성하는 단계;
    상기 인코딩되지 않은 단일의 프로그램 비디오 스트림을 저장하는 단계;
    상기 복사의 상기 임베디드 비디오 클록을 상기 공통의 비디오 클록과 동기화하기 위해 상기 복사의 상기 임베디드 비디오 클록을 수정하는 단계;
    상기 복사에 대해 제1 패스 인코딩을 수행하여, 상기 복사에 대한 복잡성 통계치(complexity statistics)를 생성하는 단계; 및
    상기 복잡성 통계치에 대해 처리하여 상기 인코딩되지 않은 단일의 프로그램 비디오 스트림 각각의 픽처들에 대한 소정의 타겟 크기를 결정하는 단계
    를 수행하고,
    상기 복수의 이중 패스의 멀티 프로세서 단일의 채널 인코더 각각에 대해:
    상기 인코딩되지 않은 단일의 프로그램 비디오 스트림에 대해 제2 패스 인코딩을 수행하는 단계;
    상기 복수의 인코딩된 단일의 프로그램 비디오 스트림을 멀티 프로그램 트랜스포트 스트림에 다중화하는 단계; 및
    상기 멀티 프로그램 트랜스포트 스트림을 전송하는 단계
    를 수행하는 멀티 채널 비디오 인코더 동작 방법.
KR1020077015775A 2004-12-10 2005-11-21 멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를이용한 디지털 비디오 인코더용 병렬 레이트 제어 KR101228192B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US63511604P 2004-12-10 2004-12-10
US60/635,116 2004-12-10
US11/269,428 2005-11-07
US11/269,428 US8054880B2 (en) 2004-12-10 2005-11-07 Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
PCT/US2005/042384 WO2006065477A2 (en) 2004-12-10 2005-11-21 Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window

Publications (2)

Publication Number Publication Date
KR20070120937A true KR20070120937A (ko) 2007-12-26
KR101228192B1 KR101228192B1 (ko) 2013-01-30

Family

ID=36583800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077015775A KR101228192B1 (ko) 2004-12-10 2005-11-21 멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를이용한 디지털 비디오 인코더용 병렬 레이트 제어

Country Status (6)

Country Link
US (2) US8054880B2 (ko)
EP (1) EP1820281B1 (ko)
JP (3) JP5236947B2 (ko)
KR (1) KR101228192B1 (ko)
CA (1) CA2590920C (ko)
WO (1) WO2006065477A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101108640B1 (ko) * 2009-02-17 2012-01-31 가시오게산키 가부시키가이샤 동영상을 기록하는 기록 장치, 기록 방법 및 컴퓨터로 판독 가능한 기록 매체
US9223620B2 (en) 2010-02-01 2015-12-29 Samsung Electronics Co., Ltd. Apparatus and method for processing data

Families Citing this family (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
WO2006096612A2 (en) * 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
US8422546B2 (en) * 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
JP4389883B2 (ja) * 2006-01-30 2009-12-24 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム、符号化方法のプログラムを記録した記録媒体
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8130828B2 (en) * 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US20070237237A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Gradient slope detection for video compression
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
US8155207B2 (en) 2008-01-09 2012-04-10 Cisco Technology, Inc. Processing and managing pictures at the concatenation of two video streams
US8875199B2 (en) 2006-11-13 2014-10-28 Cisco Technology, Inc. Indicating picture usefulness for playback optimization
US8873932B2 (en) 2007-12-11 2014-10-28 Cisco Technology, Inc. Inferential processing to ascertain plural levels of picture interdependencies
US20080115175A1 (en) * 2006-11-13 2008-05-15 Rodriguez Arturo A System and method for signaling characteristics of pictures' interdependencies
US8416859B2 (en) 2006-11-13 2013-04-09 Cisco Technology, Inc. Signalling and extraction in compressed video of pictures belonging to interdependency tiers
US8238424B2 (en) * 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8396118B2 (en) * 2007-03-19 2013-03-12 Sony Corporation System and method to control compressed video picture quality for a given average bit rate
US20080240257A1 (en) * 2007-03-26 2008-10-02 Microsoft Corporation Using quantization bias that accounts for relations between transform bins and quantization bins
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) * 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8958486B2 (en) 2007-07-31 2015-02-17 Cisco Technology, Inc. Simultaneous processing of media and redundancy streams for mitigating impairments
US8804845B2 (en) 2007-07-31 2014-08-12 Cisco Technology, Inc. Non-enhancing media redundancy coding for mitigating transmission impairments
KR100937590B1 (ko) * 2007-10-23 2010-01-20 한국전자통신연구원 다중 품질 서비스 영상 콘텐츠 제공 시스템 및 그것의업그레이드 방법
KR20100106327A (ko) 2007-11-16 2010-10-01 디브이엑스, 인크. 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
US8968087B1 (en) 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US8997161B2 (en) 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
US8750390B2 (en) * 2008-01-10 2014-06-10 Microsoft Corporation Filtering and dithering as pre-processing before encoding
US8345774B2 (en) * 2008-01-11 2013-01-01 Apple Inc. Hypothetical reference decoder
US8160132B2 (en) 2008-02-15 2012-04-17 Microsoft Corporation Reducing key picture popping effects in video
US8416858B2 (en) 2008-02-29 2013-04-09 Cisco Technology, Inc. Signalling picture encoding schemes and associated picture properties
KR100939917B1 (ko) 2008-03-07 2010-02-03 에스케이 텔레콤주식회사 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
JP2009272706A (ja) * 2008-04-30 2009-11-19 Toshiba Corp 動画像トランスコード装置およびその方法
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8711154B2 (en) * 2008-06-09 2014-04-29 Freescale Semiconductor, Inc. System and method for parallel video processing in multicore devices
WO2009152450A1 (en) 2008-06-12 2009-12-17 Cisco Technology, Inc. Picture interdependencies signals in context of mmco to assist stream manipulation
US8971402B2 (en) 2008-06-17 2015-03-03 Cisco Technology, Inc. Processing of impaired and incomplete multi-latticed video streams
US8699578B2 (en) 2008-06-17 2014-04-15 Cisco Technology, Inc. Methods and systems for processing multi-latticed video streams
US8705631B2 (en) 2008-06-17 2014-04-22 Cisco Technology, Inc. Time-shifted transport of multi-latticed video for resiliency from burst-error effects
EP2139179A1 (en) * 2008-06-26 2009-12-30 THOMSON Licensing Method and apparatus for reporting state information
US9571856B2 (en) * 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8249168B2 (en) * 2008-11-06 2012-08-21 Advanced Micro Devices, Inc. Multi-instance video encoder
CN102210147B (zh) * 2008-11-12 2014-07-02 思科技术公司 处理具有[aar]单个视频信号的多个处理后的表示的视频[aar]节目以用于重建和输出
US9143788B2 (en) * 2008-11-13 2015-09-22 Thomson Licensing Multiple thread video encoding using HRD information sharing and bit allocation waiting
US8840476B2 (en) 2008-12-15 2014-09-23 Sony Computer Entertainment America Llc Dual-mode program execution
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
JP5681641B2 (ja) 2009-01-07 2015-03-11 ソニック アイピー, インコーポレイテッド オンラインコンテンツのためのメディアガイドの特異的、収集的および自動的な生成
US8737475B2 (en) * 2009-02-02 2014-05-27 Freescale Semiconductor, Inc. Video scene change detection and encoding complexity reduction in a video encoder system having multiple processing devices
WO2010096767A1 (en) * 2009-02-20 2010-08-26 Cisco Technology, Inc. Signalling of decodable sub-sequences
US8782261B1 (en) 2009-04-03 2014-07-15 Cisco Technology, Inc. System and method for authorization of segment boundary notifications
US8949883B2 (en) 2009-05-12 2015-02-03 Cisco Technology, Inc. Signalling buffer characteristics for splicing operations of video streams
FR2945697B1 (fr) * 2009-05-18 2016-06-03 Actimagine Procede et dispositif de compression d'une sequence video
US9179161B2 (en) * 2009-05-20 2015-11-03 Nissim Nissimyan Video encoding
GB2517102B (en) * 2009-06-01 2015-03-25 Sony Comp Entertainment Us Qualified video delivery
US8506402B2 (en) 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
US8279926B2 (en) 2009-06-18 2012-10-02 Cisco Technology, Inc. Dynamic streaming with latticed representations of video
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US20110222837A1 (en) * 2010-03-11 2011-09-15 Cisco Technology, Inc. Management of picture referencing in video streams for plural playback modes
BR112012028184A2 (pt) 2010-05-07 2016-08-02 Nippon Telegraph & Telephone método de controle de codificação de vídeo, aparelho de codificação de vídeo e programa de codificação de vídeo
CA2798354C (en) * 2010-05-12 2016-01-26 Nippon Telegraph And Telephone Corporation A video encoding bit rate control technique using a quantization statistic threshold to determine whether re-encoding of an encoding-order picture group is required
US8560331B1 (en) 2010-08-02 2013-10-15 Sony Computer Entertainment America Llc Audio acceleration
KR102000618B1 (ko) 2010-09-13 2019-10-21 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
US20120069895A1 (en) * 2010-09-17 2012-03-22 David Frederique Blum High Quality Video Encoder
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
PL3309970T3 (pl) * 2011-06-24 2023-09-25 Sun Patent Trust Sposób dekodowania obrazu
US8832412B2 (en) * 2011-07-20 2014-09-09 Broadcom Corporation Scalable processing unit
US9392295B2 (en) 2011-07-20 2016-07-12 Broadcom Corporation Adaptable media processing architectures
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
CN108989847B (zh) 2011-08-30 2021-03-09 帝威视有限公司 用于编码和流处理视频的系统和方法
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US20130077674A1 (en) * 2011-09-23 2013-03-28 Media Excel Korea Co. Ltd. Method and apparatus for encoding moving picture
US8923388B2 (en) * 2011-11-21 2014-12-30 Texas Instruments Incorporated Early stage slice cap decision in video coding
US8793393B2 (en) * 2011-11-23 2014-07-29 Bluespace Corporation Video processing device, video server, client device, and video client-server system with low latency thereof
US9094684B2 (en) 2011-12-19 2015-07-28 Google Technology Holdings LLC Method for dual pass rate control video encoding
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
JP5843631B2 (ja) * 2012-01-26 2016-01-13 日本電信電話株式会社 フレームレート制御方法,フレームレート制御装置およびフレームレート制御プログラム
US9532080B2 (en) 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
WO2014015110A1 (en) 2012-07-18 2014-01-23 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9128858B1 (en) * 2013-01-29 2015-09-08 Pmc-Sierra Us, Inc. Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values
US9092353B1 (en) 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US9350990B2 (en) * 2013-02-28 2016-05-24 Sonic Ip, Inc. Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
US9357210B2 (en) * 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9397701B1 (en) 2013-03-11 2016-07-19 Microsemi Storage Solutions (Us), Inc. System and method for lifetime specific LDPC decoding
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9450610B1 (en) 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US20140328384A1 (en) * 2013-05-02 2014-11-06 Magnum Semiconductor, Inc. Methods and apparatuses including a statistical multiplexer with global rate control
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
WO2015095166A2 (en) * 2013-12-16 2015-06-25 Arris Enterprises, Inc. Producing an output need parameter for an encoder
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
CA2952823A1 (en) * 2014-06-25 2015-12-30 Arris Enterprises Llc A method for using a decoder or look-ahead encoder to control an adaptive pre-filter
US9417804B2 (en) 2014-07-07 2016-08-16 Microsemi Storage Solutions (Us), Inc. System and method for memory block pool wear leveling
US10097828B2 (en) * 2014-12-11 2018-10-09 Intel Corporation Rate control for parallel video encoding
US9955168B2 (en) * 2015-02-11 2018-04-24 Arris Enterprises Llc Constraining number of bits generated relative to VBV buffer
US9936203B2 (en) 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression
US10356428B2 (en) 2015-04-13 2019-07-16 Qualcomm Incorporated Quantization parameter (QP) update classification for display stream compression (DSC)
US10284849B2 (en) 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
US10244255B2 (en) 2015-04-13 2019-03-26 Qualcomm Incorporated Rate-constrained fallback mode for display stream compression
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
BR112019022007A2 (pt) 2017-04-21 2020-05-12 Zenimax Media Inc. Sistemas e métodos para vetores de movimento gerados em jogos
CA3059743A1 (en) 2017-04-21 2018-10-25 Zenimax Media Inc. Systems and methods for deferred post-processes in video encoding
TWI755616B (zh) 2017-04-21 2022-02-21 美商時美媒體公司 用於編碼器導引自適應性品質演現的系統及方法
GB2590034B (en) 2017-04-21 2021-12-22 Zenimax Media Inc Systems and methods for player input motion compensation by anticipating motion vectors and/or caching repetitive motion vectors
KR102358294B1 (ko) 2017-04-21 2022-02-08 제니맥스 미디어 인크. 프리-인코딩된 로드 추정 기반 인코더 힌팅을 위한 시스템들 및 방법들
US10771789B2 (en) * 2017-05-19 2020-09-08 Google Llc Complexity adaptive rate control
US11368692B2 (en) * 2018-10-31 2022-06-21 Ati Technologies Ulc Content adaptive quantization strength and bitrate modeling
JP7238441B2 (ja) * 2019-02-04 2023-03-14 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
US11039149B2 (en) * 2019-08-01 2021-06-15 Qualcomm Incorporated Dynamic video insertion based on feedback information
CN117676141A (zh) * 2022-09-08 2024-03-08 华为技术有限公司 图像编解码方法、装置、编码器、解码器和系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2660138B1 (fr) 1990-03-26 1992-06-12 France Telecom Cnet Dispositif de codage/decodage de signaux d'image.
US5038209A (en) * 1990-09-27 1991-08-06 At&T Bell Laboratories Adaptive buffer/quantizer control for transform video coders
JP2946982B2 (ja) 1993-01-06 1999-09-13 松下電器産業株式会社 画面分割符号化装置
JPH07264580A (ja) * 1994-03-17 1995-10-13 Toshiba Corp 映像信号伝送方法並びに映像信号送信装置及び映像信号受信装置
JPH07284096A (ja) * 1994-04-06 1995-10-27 Nec Corp 多チャンネル画像伝送装置
US6055270A (en) * 1994-04-20 2000-04-25 Thomson Cosumer Electronics, Inc. Multiplexer system using constant bit rate encoders
KR0170937B1 (ko) * 1994-12-14 1999-03-20 배순훈 영상 데이타 부호화 장치
JP3137863B2 (ja) * 1995-02-08 2001-02-26 日本電信電話株式会社 動画像の符号化制御方法
JP3857342B2 (ja) * 1995-04-28 2006-12-13 ソニー株式会社 画像符号化方法及び画像符号化装置
EP0779744A3 (en) 1995-12-06 1997-08-20 Thomson Multimedia Sa Method and device for coding digital video signals
US6044396A (en) * 1995-12-14 2000-03-28 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Method and apparatus for utilizing the available bit rate in a constrained variable bit rate channel
US5764293A (en) * 1995-12-26 1998-06-09 C-Cube Microsystems, Inc. Method of encoding video using master and slave encoders wherein bit budgets for frames to be encoded are based on encoded frames
JPH10191331A (ja) * 1996-12-25 1998-07-21 Sony Corp 画像データの符号化方法及び装置
US6038256A (en) * 1996-12-31 2000-03-14 C-Cube Microsystems Inc. Statistical multiplexed video encoding using pre-encoding a priori statistics and a priori and a posteriori statistics
JPH10313463A (ja) * 1997-03-12 1998-11-24 Matsushita Electric Ind Co Ltd 映像信号符号化方法及び符号化装置
US20020154694A1 (en) * 1997-03-21 2002-10-24 Christopher H. Birch Bit stream splicer with variable-rate output
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
JPH11196410A (ja) 1997-12-25 1999-07-21 Victor Co Of Japan Ltd 動画像符号化方法、動画像符号化装置及び動画像信号記録媒体
US6192154B1 (en) * 1998-01-26 2001-02-20 International Business Machines Corporation Two-pass encoding method of digital motion video sequences for constant-or variable bit rate
US6259733B1 (en) * 1998-06-16 2001-07-10 General Instrument Corporation Pre-processing of bit rate allocation in a multi-channel video encoder
IL160386A (en) * 1999-04-06 2005-11-20 Broadcom Corp Video encoding and video/audio/data multiplexing device
US6674796B1 (en) * 2000-02-14 2004-01-06 Harmonic, Inc. Statistical multiplexed video encoding for diverse video formats
JP4203707B2 (ja) * 2001-01-31 2009-01-07 日本電気株式会社 事前解析を用いた動画像符号化装置、動画像符号化方法、及びそのプログラム。
US7099389B1 (en) * 2002-12-10 2006-08-29 Tut Systems, Inc. Rate control with picture-based lookahead window

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101108640B1 (ko) * 2009-02-17 2012-01-31 가시오게산키 가부시키가이샤 동영상을 기록하는 기록 장치, 기록 방법 및 컴퓨터로 판독 가능한 기록 매체
US9223620B2 (en) 2010-02-01 2015-12-29 Samsung Electronics Co., Ltd. Apparatus and method for processing data

Also Published As

Publication number Publication date
EP1820281A2 (en) 2007-08-22
US9374615B2 (en) 2016-06-21
JP2008523720A (ja) 2008-07-03
JP5410566B2 (ja) 2014-02-05
WO2006065477A3 (en) 2007-01-04
EP1820281B1 (en) 2017-09-13
JP5236947B2 (ja) 2013-07-17
JP2014014148A (ja) 2014-01-23
US8054880B2 (en) 2011-11-08
US20060126728A1 (en) 2006-06-15
CA2590920C (en) 2018-05-01
EP1820281A4 (en) 2009-06-03
US20120027082A1 (en) 2012-02-02
JP2012182816A (ja) 2012-09-20
WO2006065477A2 (en) 2006-06-22
KR101228192B1 (ko) 2013-01-30
CA2590920A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
KR101228192B1 (ko) 멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를이용한 디지털 비디오 인코더용 병렬 레이트 제어
US9866838B2 (en) Apparatus for dual pass rate control video encoding
KR100343352B1 (ko) 일정 비트 레이트 혹은 가변 비트 레이트를 위한 디지털 동영상 시퀀스 2-패스 부호화 방법
KR100756596B1 (ko) 비디오 데이터 부호화 장치 및 비디오 데이터 부호화 방법
US6091776A (en) Delay balanced video encoder system
US6522693B1 (en) System and method for reencoding segments of buffer constrained video streams
US6008848A (en) Video compression using multiple computing agents
US6229849B1 (en) Coding device and method
US20080151998A1 (en) Method and Apparatus for Providing Rate Control for Panel-Based Real Time Video Encoder
US20100158126A1 (en) Integrated Transcoding
US20100150168A1 (en) Method and apparatus for multiplexing of digital video
EP1588557A2 (en) Rate control with picture-based lookahead window
KR100269424B1 (ko) 영상부호화시스템의콘트롤러
US6226326B1 (en) Coding device and coding method
EP0803163A1 (en) A multiplexer system using constant bit rate encoders
WO2001039508A1 (en) Video transmission
US20100272170A1 (en) Image encoding apparatus, image encoding method and medium on which image encoding program is recorded
JPH11252572A (ja) 符号量配分装置
KR100337103B1 (ko) 데이터신호의복잡도결정장치
JP4755239B2 (ja) 映像符号量制御方法,映像符号化装置,映像符号量制御プログラムおよびその記録媒体
EP0756788B1 (en) Parameter sampling apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160111

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170116

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180109

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 7