KR20070120937A - 멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를이용한 디지털 비디오 인코더용 병렬 레이트 제어 - Google Patents
멀티 프로세서 아키텍처 및 픽처 기반의 룩-어헤드 윈도를이용한 디지털 비디오 인코더용 병렬 레이트 제어 Download PDFInfo
- 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
Links
- 239000000872 buffer Substances 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000012545 processing Methods 0.000 claims description 32
- 230000009977 dual effect Effects 0.000 claims description 18
- 238000013139 quantization Methods 0.000 claims description 18
- 230000001186 cumulative effect Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 11
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 2
- 230000003467 diminishing effect Effects 0.000 claims 1
- 238000002360 preparation method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000035945 sensitivity Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 238000011045 prefiltration Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- GUGNSJAORJLKGP-UHFFFAOYSA-K sodium 8-methoxypyrene-1,3,6-trisulfonate Chemical compound [Na+].[Na+].[Na+].C1=C2C(OC)=CC(S([O-])(=O)=O)=C(C=C3)C2=C2C3=C(S([O-])(=O)=O)C=C(S([O-])(=O)=O)C2=C1 GUGNSJAORJLKGP-UHFFFAOYSA-K 0.000 description 2
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44004—Processing 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
-
- 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/115—Selection of the code volume for a coding unit prior to coding
-
- 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/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/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/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/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
- H04N19/194—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 involving only two passes
-
- 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/42—Methods 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
-
- 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/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing 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
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
표 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 타임 슬롯에 대해 버퍼링되어 정확한 스터프 비트의 수가 가산될 수 있다.
다음에는 비디오 시퀀스를 왼쪽(과거)에서부터 오른쪽(미래)으로 디스플레이 순서대로 나타내고 있다.
음의 아래 첨자는 이전에 인코딩된 픽처를 나타낸다.
표 2는 u=1로부터 시작하는 일련의 타임 슬롯에 대해 도 2에 도시된 멀티 프로세서 인코더에서의 활동성(activity)을 나타낸다. 표 1의 경우와 마찬가지로, 표 2 역시 간략화된 것이며 인코딩 활동성만을 나타낸다. 압축되지 않은 픽처의 수신, 재구성된 픽처의 전송, 재구성된 픽처의 수신, 필요한 지연 등과 같은 활동성은 레이트 제어 알고리즘의 설명에 필수적인 것이 아니므로 생략되었다.
표 2
도 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)에 좌우된다.
는 단일의 채널 인코더의 가상 버퍼의 비트 크기이다. 예를 들어, MPEG-2 인코더에서 가상 버퍼는 VBV 버퍼이고 H.264 인코더에서 가상 버퍼는 코딩된 픽처 버퍼(CPB)이다. 는 특정한 표준에 의해 허용되는 최대 크기가 아니라 비디오 스트림 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 패스 인코더에 의해 측정된 후 룩-어헤드 윈도 내에 저장된다.
는 타임 슬롯 u에서 제2 패스 인코더 내의 모든 픽처에 대한 인코딩 바로 직전의 비디오 스트림 i에 대한 단일의 채널 인코더의 가상 버퍼의 실제 충만(estimated fullness)이다.
는 비디오 스트림 i의 픽처 j에 대한 제2 패스 인코더에 의해 사용되는 평균 양자화기이다. 이 평균 양자화기는 개개의 매크로블록 양자화기들의 합을 매크로블록의 수로 나눈 것이다.
d는 저장 및 지연 유닛 내의 룩-어헤드 윈도의 깊이이다.
p는 제2 패스 인코더 파이프라인의 깊이이다.
eu는 타임 슬롯 u-p으로부터 타임 슬롯 u-1까지 인코딩된 픽처의 수이다.
Ri는 출력 비디오 스트림 i에 대한 픽처 타임(picture time) 당 총 타겟 비트 수(target total number bits)이다. 출력 비디오 스트림 i 가 CBR이면 Ri는 상수이다.
σi는 단일 채널 인코더의 가상 버퍼의 충만이 조정되는 속도에서의 "감도(sensitivity)" 계수이다. 이에 대해서는 후술한다.
Ti ,j는 비디오 스트림 i의 픽처 j에 대한 조정된 타겟 크기이다.
vu는 타임 슬롯 u-p에서부터 타임 슬롯 u-1까지 인코딩된 픽처의 모든 비트 레이트 타겟(bit rate target)에 대한 세트이다.
wi,j는 비디오 스트림 i의 픽처 j에 대한 제1 패스 복잡성 값 ci,j를, 제2 패스 복잡성 값 가 되는 근사치로 변환시키는 데 사용되는 가중치이다. 이 변환은 선형이 아니며 따라서 wi,j는 각각의 타임 슬롯에서 갱신되는 데, 왜냐하면 이것은 문맥에 좌우되기 때문이다. 더욱 상세한 설명이 이하의 식 2, 3, 4에 주어진다.
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)를 계산한다. 초기 타겟 수는 다음의 식에 따라 계산된다:
가중치 wi,k는 비디오 스트림 j의 이동 평균 윈도 내의 픽처들에 있어서 이전의 제1 패스 복잡성 측정치 및 이전의 제2 패스 복잡성 측정의 함수이다. 도 2에 도시된 것과 같은 파이프라인화된 수행에 있어서, 인코딩이 완료되지 않은 픽처들에 대한 제2 패스 복잡성은 유효하지 않게 된다는 것을 유념하라.
가중 함수 에 대한 단순한 형태는, 적절한 픽처 타입의 이전의 제2 패스 복잡성 측정치를 동일한 픽처 타입의 이전의 제1 패스 복잡성 측정치로 나눈 비율의 이동 평균이다. 예를 들어, I-타입 픽처에 대해서:
여기서, I_set는 크기 NI로 되어 있고 그 요소들은 식 2a에서 에 대한 상기 일반적인 형태를 만족하는 최대 정수들이다. NI는 이동 평균 윈도에서 I-타입 픽처의 수이고, 시작에서 제2 패스 복잡성 측정치는 처음의 p+d 픽처에 대해 유효하지 않으며 따라서 wik는 제2 패스 픽처들의 복잡성과 데시메이트된 제1 패스 픽처들의 복잡성 사이의 상수 비(constant ratio)가 된다. 통상적으로 가장 최근의 픽처는 나머지보다 무겁게 가중되어야 하고 그래서 I-타입 픽처 가중에 대한 가중 함수 는 다음과 같이 더욱 복잡하게 구현된다:
여기서 I_set'=I_set-{k0}. P_set 및 B_set에 대한 적절한 정의를 갖는 P 픽처 및 B 픽처에 대해서 유사한 식이 존재한다.
그러므로 식 1을 참조하면, 픽처 j가 제2 패스 인코더에 의해 수신되기 전에, 가중 wi,j와 픽처 j에 대한 제1 패스 복잡성 ci,j의 적(product)은 픽처 j의 제2 패스 복잡성 의 근사치를 제공한다. 이 근사치는 축척 계수(scaling factor) Si,k에 의해 나누어진다:
여기서 d는 룩-어헤드 윈도의 크기를 나타낸다. 복잡성 비율 은 세트 Uu 내의 다른 픽처들의 근사화된 제2 패스 복잡성과 비교하여 픽처 k의 근사화 된 제2 패스 복잡성의 측정치를 나타낸다.
픽처-레벨 레이트 제어 알고리즘이 비디오 스트림 i의 픽처 k의 인코딩된 버전에 대한 Ti ,k의 근사치를 선택하기 위해, 상기 픽처-레벨 레이트 제어 알고리즘은 인코더의 가상 버퍼의 현재의 충만을 고려할 필요가 있다. 이상적으로는, 픽처-레벨 레이트 제어 알고리즘은 타임 슬롯 u에 대한 실제의 버퍼 충만 을 활용한다. 그렇지만, p 타임 슬롯의 인코더의 파이프라인 지연으로 인해 타임 슬롯 u+p 때까지 실제의 버퍼 충만 을 알려지지 않게 된다. 그러므로 이전의 타임 슬롯으로부터의 정보에 기초하여, 추정된 가상 버퍼 충만 Bi ,u는 식 1에서 실제의 가상 버퍼 충만 대신에 사용된다:
정의에 의해, Vu 및 eu는 타임 슬롯(u-p)에서부터 타임 슬롯(u-1)까지의 타겟(target) 및 픽처에 관한 것이다. 식 6은 다양한 압축 표준에 정의된 바와 같은 가상 버퍼 충만 계산에 크게 대응하지만, 이전의 계산과는 달리 가상 버퍼의 충만의 이전의 추정치를 사용한다.
이전의 타임 슬롯에 대한 가상 버퍼 충만의 추정에 있어서의 임의의 에러를 보상하기 위해, 오정합 항목 mi,u가 식 1에서 사용된다. 오정합 항목 mi,u는 가상 버퍼의 실제 충만 및 추정된 충만 에 유효한 가장 최근의 값들 사이의 차에 대응한다:
주어진 픽처의 상대적 복잡성 또는 주어진 타임 슬롯 동안의 버퍼 충만에 관계없이, 각각의 픽처에는 비음수의 비트(non-negative number of bits)가 할당되어야 한다. 주어진 픽처 k의 상대적 복잡성은 결코 네거티브가 되지 않을 것이기 때문에, 이하의 관계가 픽처 k에 대해 참(true)으로 되어야 하는 식 1의 조사에 따른다:
동작 시, 오정합 항목 mi,u-1은 상대적으로 작게 될 것이고 식 8에 대해 중요한 효과를 갖지 않게 될 것이다. 그러므로 식 8을 분석하기 위해, mi,u-1을 무시할 수 있다. 그러므로 식 8에 의해 정의된 규칙(rule)은, 가상 버퍼가 충만한 상태일 때 가장 크게 교란되는 상황에 있게 되어, 다음과 같이 된다:
초기 타겟 비트 할당이 비네거티브일 필요가 있는 것과는 달리, 더욱 복잡한 본 발명의 실시예는 최소 비트 할당값 εi,k를 산정하고, 이 할당값은 비디오 코딩 표준이 픽처 k의 픽처 타입에 대한 제2 패스 인코더에 의해 수행되는 어떤 것에 의해서도 요구되는 최소의 비트 수에 비례한다.
따라서 식 9는 다음과 같이 다시 표현될 수 있다:
픽처 특성들과는 독립적인 픽처마다의 픽처-레벨 레이트 제어 알고리즘에 의해 조정될 수 있는 식 10의 유일한 성분은 σi,k이고 적절한 픽처 타입 종속값 σi,k은 σi,k에 대해 식 10을 풀면 다음과 같이 알아낼 수 있다:
그렇지만, 오정합 항목 mi,u로 인해, 식 1에 의해 주어진, 초기 타겟 비트 할당 은 픽처 k의 픽처 타입에 사용되는 비디오 표준이 요구하는 최소 비트 수 미만인 결과를 발생할 수 있다. 그러므로 상기 초기 타겟 비트 할당은 사기 최소 비트 수와 비교되고 픽처 k에 대한 최종 비트 할당 Ti ,k로서는 더 큰 수를 사용한다. 예를 들어, H.264의 경우는 다음과 같다:
여기서 αi,k는 비트 레이트이고 표준 종속 가중(standard dependent weight)은, 픽처의 I, P, B 타입에 대한 룩-업 테이블에 의해 다음과 같이 표현된다.
도 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에 대한 픽처 당 고정 비트 레이트이다.
Bu는 타임 슬롯 u에 대한 공유된 가상 버퍼의 추정된 충만이다.
mu는 전술한 mi,u와 유사한 오정합 항목이다.
픽처-레벨 레이트 제어 알고리즘은 다음 식에 따라 각각의 타임 슬롯 u 동안 비디오 스트림 i의 각각의 픽처 k에 대한 초기 타겟 비트 수를 계산한다:
Sk는 전체 복잡성이 모든 n개의 비디오 채널의 복잡성에 좌우되기 때문에 식 5와는 다르게 정의된다:
마찬가지로 mu는 mi.u와는 상이한 정의를 갖는다:
전술한 바와 같이, 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이다.
는 제2 패스 인코더에 의해 발생된 픽처의 인코딩된 버전에서의 매크로블록 서수에 대한 인덱스로서 사용된다. 매크로블록 서수는 제로에서 시작하고 그래서 =0...(N2-1)이고, 도 6에 도시된 예에서, =0...63이다.
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를 포함하지는 않는다.
αI는 I-타입에 대한 MB-레벨 제어 감도를 조정하는 증폭 계수이다.
αP는 P-타입에 대한 MB-레벨 제어 감도를 조정하는 증폭 계수이다.
αB는 B-타입에 대한 MB-레벨 제어 감도를 조정하는 증폭 계수이다.
Qk는 제2 패스 인코더에 의해 매크로블록 k에 사용된 양자화기이다.
qmax는 양자화기의 최대값이다. 표준 종속이다. H.264에 있어서, qmax는 51이다.
Vk는 인코딩 완료 후 제2 패스 인코더의 누적된 가상 버퍼 충만이지만 매크로블록 k를 포함하지는 않는다.
Vf는 제2 패스 인코더의 가상 버퍼 초기 충만이다.
제2 패스 인코더가 매크로블록 를 인코딩할 때, 매크로블록-레벨 레이트 제어 알고리즘은 대응하는 제1 패스 매크로블록 k로부터의 복잡성 정보를 필요로 한다. 그렇지만, 도 6에 도시된 바와 같이, 제1 패스 인코더에 의해 수신된 데시메이트된 비디오 스트림은 제2 패스 인코더에 의해 수신된 원래의 비디오 스트림과는 다르게 인코딩될 것이며 주어진 픽처의 각각의 인코딩된 버전들의 매크로블록들은 동일하지 않을 것이다. 그러므로 제2 패스 인코더가 제1 패스 인코더에 의해 발생된 복잡성 정보를 사용하기 위해서, 매크로블록-레벨 레이트 제어 알고리즘은 제2 패스 매크로블록 을 제1 패스 매크로블록에 매핑하여 대응하는 제1 패스 매크로블록 k의 서수를 결정한다. 이것은 제1 패스 인코더와 제2 패스 인코더 사이의 수직 분해능 및 수평 분해능의 공지된 차이를 이용하여 달성된다:
식 17 및 식 18은 제2 패스 행 서수 및 열 서수를 각각 도출해 낸다. 그런 다음 대응하는 제1 패스 행 서수 및 열 서수는 다음과 같이 계산될 수 있다:
도 6을 다시 참조하면, MB n2에 있어서:
이에 의해 제2 패스 MB 복잡성 변동은 대응하는 제1 패스 MB에 대한 누적된 복잡성을 이용하여 예측될 수 있다:
x는 단순히 인덱스이다. 예로서, 제1 패스 MB들 A, B, C 및 D(k=0, 1, 2 및 3)는 184, 667, 190 및 122의 제1 패스 복잡성 값 gk를 각각 갖는 것으로 가정한다(이러한 숫자는 샘플 이미지로부터 얻은 정상화된 복잡성 값(normalized complexity value)이며 단지 예로만 주어진 것이다). 그러므로 이 MB에 대한 누적된 제1 패스 복잡성은 다음과 같이 된다:
표 3
도 7은 위의 예에서의 누적된 제1 패스 복잡성 및 매핑된 누적된 제2 패스 복잡성 사이의 관계를 도시하고 있다.
픽처 j에 있어서, Tj가 픽처-레벨 레이트 제어 알고리즘에 의해 결정된 바와 같은 픽처 j의 인코딩된 버전의 타겟 크기이면, 매크로블록 k=0, ..., N2-1에 대한 지배 방정식(governing equations)은 이하와 같이 픽처 타입에 좌우된다:
양자화기 Qk는 다음과 같이 계산된다:
여기서,
정의에 의해, Vf는 식 6에 의해 주어진 인코더 버퍼 충만의 추정치인 Bi ,u의 복사인데, 왜냐하면 인코더 버퍼 충만의 참값이 파이프라인 지연으로 인해 즉시 유용하지 않기 때문이다. MB 레벨 알고리즘은 시퀀셜 인코더 설계(단일의 프로세서 아키텍처의 경우) 및 병렬 인코더 설계(복수의 프로세서 아키텍처의 경우) 모두에 적용된다. 시퀀셜 레이트 제어의 경우, 파이프라인 지연은 제로이고 Vf는 모든 픽처의 인코딩 후 즉시 유용하다.
본 발명은 전술한 특정한 실시예에 제한되는 것이 아니며, 첨부된 청구의 범위 및 그 등가물에 정의된 본 발명의 범주를 벗어남이 없이 다양한 변형이 이루어질 수 있음을 이해해야 한다. 예를 들어, 도 2의 데시메이션 유닛 및 제1 패스 인코더를, MPEG-2 및 H.264와 같은 제2 패스 인코더에 의해 각각 실행되는 것이 아닌, 상이하고 비교적 단순한 비디오 코딩 표준을 실행하도록 설계된 제1 패스 인코더로 대체할 수 있다는 것을 이해해야 한다. 이 경우, 픽처-레벨 레이트 제어 알고리즘은 전술한 바와 같이 다른 분해능과 반대되는 다른 코딩 표준들에 의해 생기는 픽처 복잡성의 차이를 보상할 필요가 있다. 대안으로, 압축되지 않은 비디오 스트림을 수신하는 인코더보다는, 트랜스코딩 용량에 있어서 전술한 것과 유사한 아키텍처 및 알고리즘을 적용할 수 있는데, 여기서 단일의 채널 트랜스코더는 제1 인코딩 표준에 따라 인코딩된 비디오 스트림을 수신하고, 상기 실시예들의 제1 패스 인코더는 인코딩된 입력 비디오 스트림을 디코딩하는 제1 패스 인코더로 대체되어 레이트 제어 알고리즘에 의해 필요로 되는 복잡성 정보를 발생하고, 제2 패스 인코더는 제2 비디오 코딩 표준에 따라 상기 디코딩된 비디오 스트림을 인코딩하여 전술한 방식으로 디코더에 의해 수집된 복잡성 정보를 활용한다.
Claims (25)
- 비디오 시퀀스를 구성하는 시퀀셜 픽처의 그룹에서의 픽처의 인코딩된 버전을 생성할 때 사용될 요구되는 수의 비트에 대응하는 타겟 크기(target size)를 결정하여 멀티 프로세서 비디오 인코더를 동작시키는 방법에 있어서,a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도(a first degree of fullness)를 계산하는 단계;b) 상기 제1 충만도에 대해 처리하여 상기 코딩된 픽처의 제2 시각에서의 추정된 제2 충만도를 도출해 내는 단계; 및c) 상기 제2 충만도에 대해 처리하여 상기 픽처의 초기 타겟 크기를 도출해 내는 단계를 포함하며,상기 제1 시각은 상기 코딩된 픽처 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 멀티 프로세서 비디오 인코더 동작 방법.
- 제1항에 있어서,상기 단계 c) 이전에, 상기 픽처의 제1 복잡도(a first degree of complexity)를 측정하는 단계를 더 포함하며,상기 단계 c)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처에 대한 상기 초기 타겟 크기를 도출해 내는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
- 제2항에 있어서,상기 단계 c)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처의 제2 복잡도를 도출해 내는 단계를 더 포함하며, 상기 제2 복잡도는 상기 비디오 시퀀스의 최근에 측정된 다른 픽처들에 대한 상기 픽처의 복잡성(complexity)의 측정치인, 멀티 프로세서 비디오 인코더 동작 방법.
- 제2항에 있어서,상기 픽처의 상기 인코딩된 버전은 제1 비디오 인코딩 과정을 사용하여 생성되고, 상기 픽처의 상기 제1 복잡도는 제2 비디오 인코딩 과정을 사용하여 측정되는, 멀티 프로세서 비디오 인코더 동작 방법.
- 제4항에 있어서,상기 제1 비디오 인코딩 과정은 상기 제2 비디오 인코딩 과정보다 계산적으로 더 집중적인(computationally intensive), 멀티 프로세서 비디오 인코더 동작 방법.
- 제1항에 있어서,상기 단계 c) 이전에, 상기 픽처의 수정된 버전을 생성하는 단계, 및 상기 수정된 버전을 사용하여 상기 픽처의 제1 복잡도를 측정하는 단계를 더 포함하며,상기 단계 c)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처의 상기 초기 타겟 크기를 도출해 내는 단계를 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
- 제6항에 있어서,상기 픽처의 수정된 버전은 상기 픽처를 격감(decimate)시킴으로써 생성되는, 멀티 프로세서 비디오 인코더 동작 방법.
- 제1항에 있어서,상기 단계 c) 이후에, 상기 초기 타겟 크기보다 더 큰 크기 또는 최소의 수용가능한 크기를 상기 픽처의 타겟 크기로서 선택하는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
- 제8항에 있어서,상기 픽처는 복수의 픽처 타입 중 하나로 되어 있으며,상기 최소의 수용가능한 크기는, 동일한 픽처 타입의 픽처들을 상기 픽처로서 전송하는 데 사용되는 비트 레이트의 함수인, 멀티 프로세서 비디오 인코더 동작 방법.
- 제1항에 있어서,상기 단계 c) 이전에, 부정합 항목(mismatch term)을 계산하는 단계를 더 포함하며,상기 부정합 항목은 복수의 이전에 인코딩된 픽처에 대해 계산된 이전에 계산된 타겟 크기들과 상기 복수의 이전에 인코딩된 픽처에 대한 실제의 인코딩된 크기 사이의 평균 차(average difference)에 대응하며,상기 단계 c)는, 상기 부정합 항목에 대해 처리하여 상기 픽처에 대한 상기 초기 타겟 크기를 도출해 내는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 동작 방법.
- 제1항에 있어서,최적의 양자화 파라미터를 선택하기 위해 상기 요구되는 비트를 사용하여 상기 픽처를 인코딩하는 단계 및 상기 최적의 양자화 파라미터를 이용하여 상기 픽처의 인코딩된 버전의 크기를 비트로 제어하는 단계를 더 포함하는 멀티 프로세서 비디오 인코더 동작 방법.
- 비디오 시퀀스의 픽처를 인코딩하기 위해 멀티 프로세서 비디오 인코더를 준비하는 방법에 있어서,a) 상기 픽처를 수신하는 단계;b) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 계산하는 단계;c) 제1 충만도에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계;d) 소정의 시간에 대한 상기 픽처를, 상기 소정의 시간 동안 저장하는 단계;e) 상기 픽처의 제1 복잡도를 측정하는 단계;f) 상기 픽처의 상기 제1 복잡도 및 상기 제2 충만도에 대해 처리하여 상기 픽처에 대한 소정의 타겟 크기를 도출해 내는 단계; 및g) 상기 단계 d)에 이어서, 상기 픽처 및 상기 소정의 타겟 크기를 상기 멀티 프로세서 비디오 인코더에 제공하는 단계를 포함하며,상기 제1 시각은 상기 코딩된 픽처 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 멀티 프로세서 비디오 인코더 준비 방법.
- 제12항에 있어서,상기 단계 f)는, 상기 제1 복잡도에 대해 처리하여 상기 픽처의 제2 복잡도를 도출해 내는 단계를 더 포함하며, 상기 제2 복잡도는 상기 비디오 시퀀스의 최근에 측정된 다른 픽처들에 대한 상기 픽처의 복잡성의 측정치인, 멀티 프로세서 비디오 인코더 준비 방법.
- 제12항에 있어서,상기 단계 e)는, 상기 제1 복잡도를 측정하기 전에, 상기 픽처의 상기 수정된 버전을 생성하는 단계 및 상기 수정된 버전을 이용하여 상기 제1 복잡도를 측정하는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 준비 방법.
- 제14항에 있어서,상기 픽처의 상기 수정된 버전은 상기 픽처를 격감시킴으로써 생성되는, 멀티 프로세서 비디오 인코더 준비 방법.
- 제12항에 있어서,상기 단계 f)는, 상기 제1 복잡도에 대해 처리하여 초기 타겟 크기를 도출해 내는 단계 및 상기 초기 타겟 크기보다 더 큰 크기 또는 최소의 수용가능한 크기를 상기 픽처의 소정의 타겟 크기로서 선택하는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 준비 방법.
- 제16항에 있어서,상기 픽처는 복수의 픽처 타입 중 하나로 되어 있으며,상기 최소의 수용가능한 크기는, 동일한 픽처 타입의 픽처들을 상기 픽처로서 전송하는 데 사용되는 비트 레이트의 함수인, 멀티 프로세서 비디오 인코더 준비 방법.
- 제12항에 있어서,상기 단계 c) 이전에, 부정합 항목을 계산하는 단계를 더 포함하며,상기 부정합 항목은 복수의 이전에 인코딩된 픽처에 대해 계산된 소정의 타겟 크기와 상기 복수의 이전에 인코딩된 픽처에 대한 실제의 인코딩된 크기 사이의 평균 차에 대응하며,상기 단계 c)는, 상기 부정합 항목에 대해 처리하여 상기 픽처에 대한 상기 초기 타겟 크기를 도출해 내는 단계를 더 포함하는, 멀티 프로세서 비디오 인코더 준비 방법.
- 일련의 픽처 중 단일의 화상을 구성하는 일련의 매크로블록 중 소정의 매크로블록을 인코딩할 때 사용하기 위한 양자화 파라미터의 값을 결정하는 방법에 있어서,a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 추정하는 단계;b) 상기 일련의 매크로블록 중 상기 소정의 매크로블록을 선행하는 임의의 매크로블록에 대한 누적된 복잡성 측정치를 결정하는 단계;c) 상기 제1 충만도, 상기 누적된 복잡성 측정치 및 타겟 비트 수에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계; 및d) 상기 제2 충만도에 대해 처리하여 상기 양자화 파라미터의 값을 도출해 내는 단계를 포함하며,상기 타겟 비트의 수는 상기 단일의 픽처의 인코딩된 버전을 생성할 때 상기 일련의 매크로블록들 간에 분할될 비트 수에 대응하며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 양자화 파라미터의 값 결정 방법.
- 제19항에 있어서,상기 제1 시각은 다운스트림 디코더 버퍼의 정확한 충만도를 계산할 수 있는 가장 최근의 시각에 대응하는, 양자화 파라미터의 값 결정 방법.
- 제20항에 있어서,상기 단계 d)의 상기 양자화 파라미터의 값을 이후 상기 양자화 파라미터의 제1 값이라 하면,상기 양자화 파라미터의 값 결정 방법은, 상기 양자화 파라미터의 상기 제1 값에 대해 처리하여 상기 양자화 파라미터의 제2 값을 도출해 내는 단계를 더 포함하는, 양자화 파라미터의 값 결정 방법.
- 비디오 시퀀스의 단일의 화상을 구성하는 일련의 매크로블록에서 각각의 매크로블록을 인코딩할 때 사용하기 위한 양자화 파라미터의 값을 계산하는 방법에 있어서,a) 코딩된 픽처 버퍼의 제1 시각에서의 제1 충만도를 추정하는 단계;b) 상기 단일의 픽처의 인코딩된 버전에 대한 타겟 크기를 결정하는 단계;c) 상기 일련의 매크로블록의 각각의 매크로블록에 대해:c1) 상기 비디오 시퀀스의 임의의 선행하는 매크로블록에 대한 누적된 복잡성 측정치를 결정하는 단계;c2) 상기 제1 충만도, 상기 누적된 복잡성 측정치 및 상기 타겟 크기에 대해 처리하여 상기 코딩된 픽처 버퍼의 제2 시각에서의 제2 충만도를 도출해 내는 단계; 및c3) 상기 제2 충만도에 대해 처리하여 상기 소정의 매크로블록을 인코딩할 때 사용하기 위한 상기 양자화 파라미터의 값을 도출해 내는 단계를 포함하며,상기 타겟 크기는 상기 단일의 픽처의 인코딩된 버전을 생성할 때 상기 일련의 매크로블록들 간에 분할될 비트 수에 대응하고, 소정의 매크로블록의 인코딩된 버전의 비트의 크기는 상기 매크로블록을 인코딩할 때 사용된 상기 양자화 파라미터의 값의 함수이며, 상기 제2 시각은 상기 제1 시각 이후의 시각인, 양자화 파라미터의 값 계산 방법.
- 복수의 픽처를 멀티 프로세서 인코더와 병렬로 인코딩하기 전에, 인코딩된 픽처 버퍼의 충만도를 미래 시각에 추정하여 멀티 프로세서 인코더를 동작시키는 방법에 있어서,제1 비디오 인코딩 과정을 사용하여 상기 복수의 픽처의 인코딩된 버전을 나타내는 데 필요한 비트 수를 예측하는 단계;상기 인코딩된 픽처의, 상기 미래 시각 이전인 제1 시각에서의 충만도를 계산하는 단계;복수의 이전에 인코딩된 픽처의 인코딩된 버전을 나타내는 데 필요한 이전에 예측된 비트 수와 상기 복수의 이전에 인코딩된 픽처를 나타내는 데 필요한 실제의 비트 수를 비교함으로써 부정합 항목을 생성하는 단계; 및상기 인코딩된 픽처의 상기 미래 시각에서의 추정된 충만도를 복귀시키기 위해, 상기 제1 시각에 상기 인코딩된 픽처의 상기 계산된 충만도와, 제1 픽처의 인코딩된 버전을 나타내는 데 필요한 상기 예측된 비트 수와, 상기 부정합 항목을 결합하는 단계를 포함하며,상기 미래 시간은 상기 제1 픽처의 인코딩된 버전이 상기 코딩된 픽처에 로딩되는 시간에 대응하며, 상기 제1 시각은 상기 코딩된 픽처의 충만도를 정확하게 계산할 수 있는 가장 최근의 시각을 나타내는, 멀티 프로세서 인코더 동작 방법.
- 인코딩된 픽처 버퍼의 언더플로우(underflow)를 나타내기 위해 멀티 프로세서 비디오 인코더를 동작시키는 방법에 있어서,제1 비트 수를 사용하여 비디오 시퀀스의 픽처를 인코딩하는 단계;상기 화상의 상기 인코딩된 버전을 소정의 시간 동안 저장하는 단계;상기 코딩된 픽처 버퍼의 충만도를 계산하는 단계;상기 코딩된 픽처 버퍼가 언더플로우 되는 상황에 있는지를 결정하는 단계; 및상기 코딩된 픽처 버퍼가 언더플로우 되는 상황에 있으면:상기 코딩된 픽처 버퍼의 상기 충만도를, 상기 코딩된 픽처 버퍼가 더 이상 언더플로우 상황에 있게 되지 않는 레벨까지 증가시키는 데 필요한 스터프 비트 수(a number of stuff bits)를 계산하는 단계와,상기 스터프 비트 수를 상기 픽처의 인코딩된 버전에 부가하여, 상기 픽처의 상기 인코딩된 버전의 크기를 제2 비트 수로 증가시키는 단계와,상기 픽처의 상기 인코딩된 버전을 전송하는 단계를 포함하는 멀티 프로세서 비디오 인코더 동작 방법.
- 공통 비디오 클록을 각각 공유하고 제1 패스 인코더와 제2 패스 인코더를 각각 구비하는 복수의 이중 패스(dual pass)의 멀티 프로세서 단일의 채널 인코더를 구비하는 멀티 채널 비디오 인코더를 동작시키는 방법에 있어서,상기 복수의 이중 패스의 멀티 프로세서 단일의 채널 인코더 각각에 대해:복수의 시퀀셜 픽처와 임베디드 비디오 클록(embedded video clock)을 포함하는, 인코딩되지 않은 단일의 프로그램 비디오 스트림을 수신하는 단계;상기 인코딩되지 않은 단일의 프로그램 비디오 스트림의 복사(copy)를 생성하는 단계;상기 인코딩되지 않은 단일의 프로그램 비디오 스트림을 저장하는 단계;상기 복사의 상기 임베디드 비디오 클록을 상기 공통의 비디오 클록과 동기화하기 위해 상기 복사의 상기 임베디드 비디오 클록을 수정하는 단계;상기 복사에 대해 제1 패스 인코딩을 수행하여, 상기 복사에 대한 복잡성 통계치(complexity statistics)를 생성하는 단계; 및상기 복잡성 통계치에 대해 처리하여 상기 인코딩되지 않은 단일의 프로그램 비디오 스트림 각각의 픽처들에 대한 소정의 타겟 크기를 결정하는 단계를 수행하고,상기 복수의 이중 패스의 멀티 프로세서 단일의 채널 인코더 각각에 대해:상기 인코딩되지 않은 단일의 프로그램 비디오 스트림에 대해 제2 패스 인코딩을 수행하는 단계;상기 복수의 인코딩된 단일의 프로그램 비디오 스트림을 멀티 프로그램 트랜스포트 스트림에 다중화하는 단계; 및상기 멀티 프로그램 트랜스포트 스트림을 전송하는 단계를 수행하는 멀티 채널 비디오 인코더 동작 방법.
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)
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)
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)
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 |
-
2005
- 2005-11-07 US US11/269,428 patent/US8054880B2/en active Active
- 2005-11-21 JP JP2007545501A patent/JP5236947B2/ja active Active
- 2005-11-21 CA CA2590920A patent/CA2590920C/en not_active Expired - Fee Related
- 2005-11-21 WO PCT/US2005/042384 patent/WO2006065477A2/en active Application Filing
- 2005-11-21 EP EP05852037.0A patent/EP1820281B1/en not_active Not-in-force
- 2005-11-21 KR KR1020077015775A patent/KR101228192B1/ko active IP Right Grant
-
2011
- 2011-10-05 US US13/253,937 patent/US9374615B2/en active Active
-
2012
- 2012-04-25 JP JP2012100459A patent/JP5410566B2/ja active Active
-
2013
- 2013-09-04 JP JP2013183107A patent/JP2014014148A/ja active Pending
Cited By (2)
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 |