JP2011055504A - ビデオ符号化のためのピクチャレベルのレート制御 - Google Patents

ビデオ符号化のためのピクチャレベルのレート制御 Download PDF

Info

Publication number
JP2011055504A
JP2011055504A JP2010196686A JP2010196686A JP2011055504A JP 2011055504 A JP2011055504 A JP 2011055504A JP 2010196686 A JP2010196686 A JP 2010196686A JP 2010196686 A JP2010196686 A JP 2010196686A JP 2011055504 A JP2011055504 A JP 2011055504A
Authority
JP
Japan
Prior art keywords
picture
current picture
rate control
complexity
distortion
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2010196686A
Other languages
English (en)
Inventor
Hung-Ju Lee
リー ファン−ジュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2011055504A publication Critical patent/JP2011055504A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】より正確で効果的なレート歪みモデルを提供し、より安定した知覚体験を与えるためによりスムースに量子化パラメータを遷移させる。
【解決手段】1以上のビデオピクチャを符号化する際のコンピュータ実装されたレート制御が開示される。QPの決定の際にピクチャタイプ、ピクチャ複雑度、およびターゲットビットカウントを考慮に入れたレート制御データを用いて1以上のビデオピクチャの一つである現在のピクチャを符号化するために使われる量子化パラメータ(QP)を決定する。QPを用いて現在のピクチャを圧縮されたフォーマットに符号化し、符号化された現在のピクチャを生成する。符号化された現在のピクチャから決定された統計データにもとづいてレート制御データを更新する。
【選択図】図1

Description

[関連出願の相互参照]
本願は、本願と同日に出願された「シーンチェンジ検出」と題する同一出願人による同時係属の米国特許出願第12/553,069号(アトーニードケット番号SCEA08074US00)に関連し、その内容全体を参照によりここに組み入れる。
本願は、本願と同日に出願された「並列デジタルピクチャ符号化」と題する同一出願人による同時係属の米国特許出願第12/553,073号(アトーニードケット番号SCEA08077US00)に関連し、その内容全体を参照によりここに組み入れる。
本願は、本願と同日に出願された「ビデオ符号化において高速動き推定を実現するための閾値および早期停止の活用」と題する同一出願人による同時係属の米国特許出願第12/553,075号(アトーニードケット番号SCEA08078US00)に関連し、その内容全体を参照によりここに組み入れる。
[技術分野]
本発明はビデオ符号化に関し、特にいろいろなビデオ符号化環境に対する高品質レート制御器に関する。
多くのマルチメディアアプリケーションおよびデバイスにおいてデジタル信号圧縮が幅広く利用されている。符号化器/復号器(コーデック)を用いたデジタル信号圧縮により、オーディオやビデオ信号のようなストリーミングメディアをインターネット上で転送したり、CDに格納することが可能になる。H.261、H.263、DV、MPEG−1、MPEG−2、MPEG−4、VC1、AVC(H.264)を含め、多数の異なるデジタル信号圧縮の標準の規格がこれまで登場した。これらの規格は、他のビデオ圧縮技術とともに、ピクチャ内および連続するピクチャ間の空間的および時間的冗長性を除去することにより、ビデオフレームピクチャを効率的に表現することを追求している。そのような圧縮規格を用いることにより、ビデオコンテンツを高度に圧縮されたビデオビットストリームに乗せることができ、その結果、効率良くディスクに格納したり、ネットワーク上で伝送することができる。
MPEG−4(AVC)は、H.264としても知られ、それ以前の規格と比べてきわめて高い圧縮を提供するビデオ圧縮規格である。H.264規格は、以前のMPEG−2規格の最大2倍の圧縮を提供することが期待される。H.264規格はまた知覚的な品質においても改善を提供することが期待される。その結果、ますます多くのビデオコンテンツがAVC(H.264)符号化ストリームの形式で伝送されている。二つの競争するDVDフォーマットであるHD-DVDフォーマットとブルーレイ(商標)ディスクフォーマットは、必須のプレイヤ特性としてH.264/AVCハイ(high)プロファイル復号をサポートする。AVC(H.264)符号化は、"Draft of Version 4 of H.264/AVC (ITU-T Recommendation H.264 and ISO/IEC 14496-10 (MPEG-4 part 10) Advanced Video Coding)" by Gary Sullivan, Thomas Wiegand and Ajay Luthra, Joint Video Team (JVT) of ISO/IEC MPEG & ITU T VCEG (ISO/IEC JTC1/SC29/WG11 and ITU T SG16 Q.6), 14th Meeting: Hong Kong, CH 18-21 January, 2005に詳しく記載されており、その全内容をすべての目的のためにここに参照により取り込む。
ビデオ信号符号化はしばしば、所与のビットレート、所与のフレームレートおよび所与のバッファサイズでビデオを符号化すべき状況に関わる。
ビデオ信号を符号化する際、ソースビットレートと、圧縮後のビットストリームを伝送するために利用可能なチャネル帯域幅との間のミスマッチに起因するクライアントバッファのアンダーフローまたはオーバーフローを避けるような方法を取ることが望ましい。こういった問題を解決するためにレート制御スキームが開発されてきた。レート制御スキームは次の二つの主要なカテゴリに分類される。固定チャネル帯域幅ビデオ伝送向けの固定ビットレート(CBR)制御と、可変チャネル帯域幅ビデオ伝送向けの可変ビットレート(VBR)制御である。これらのレート制御スキームはさらに、レート制御演算の単位にしたがって、たとえば、マクロブロック層、スライス層、またはフレーム層のレート制御に分類することができる。レート制御スキームは、バッファステータスにしたがって各符号化ユニットに適切なビットを割り当てる方法と、割り当てられたビットで各ユニットを適切に符号化するために符号化器の量子化パラメータ(QP)を調整する方法とを決定する。
本発明の実施の形態はこのような文脈で考えられた。
マルチプロセッサアーキテクチャを含むいろいろなビデオ符号化環境に対する高品質レート制御器に関する。本発明の実施の形態は、より正確で効果的なレート歪みモデルを提供し、より安定した知覚体験を与えるためによりスムースに量子化パラメータを遷移させる。
本発明の実施の形態によれば、予め指定された符号化条件が与えられると、レート制御器は、目標ビットレートと目標視覚品質に合わせるために、ビデオシーケンスの各ピクチャフレームに対する適切な量子化パラメータの系列を生成することができる。提案されるレート制御アルゴリズムは、異なるターゲットビットレート、フレーム解像度、バッファ制約条件、メモリ制約、固定/可変ビットレート、プロセッサアーキテクチャなど、いろいろな符号化条件に対して適用できることを狙っている。
ここに記述されるレート制御アルゴリズムは、ユーザのアプリケーションの要求によって課せられるビデオビットレートとビデオ品質を制御するために提案され、開発された。上述のように、レート制御器は、完全なビデオ符号化システムの不可欠な構成要素である。予め指定された符号化条件が与えられると、レート制御器は、目標ビットレートと目標視覚品質に合わせるために、ビデオシーケンスの対応するピクチャまたはフレームに対する適切な量子化パラメータの系列を生成してもよい。提案されるレート制御アルゴリズムは、異なるターゲットビットレート、フレーム解像度、バッファ制約条件、メモリ制約、固定/可変ビットレート、プロセッサアーキテクチャなど、いろいろな符号化条件に対して適用できることを狙いとする。
本発明の教示内容は、添付の図面と併せて、以下の詳細な説明を考慮すれば容易に理解できる。
4つの段階で実行されるレート制御を説明するブロック図である。 本発明のレート制御を説明するブロック図である。 レート制御の段階2におけるターゲットビット推定器のブロック図である。 本発明のレート制御の段階2におけるQP制御器のブロック図である。 本発明の実施の形態に係るピクチャレベルのレート制御を用いたビデオ符号化を実施するための装置を説明する図である。 本発明の実施の形態に係るピクチャレベルのレート制御を用いたビデオ符号化を実施するための別の装置の例を説明する図である。 本発明の実施の形態に係るピクチャレベルのレート制御を実施するためのコンピュータ読み取り可能な命令を格納したコンピュータ読み取り可能な媒体のブロック図である。
以下の詳細な説明には、説明のための多くの具体的な詳細事項が含まれるが、それらに対する多くの変更や修正も本発明の技術範囲に含まれることは、当業者であれば誰でも理解するであろう。したがって、以下に説明する本発明の例示的な実施の形態は、クレームされた発明の普遍性をなんら損なうことなく、また限定も行うことなく記載されている。
提案するレート制御アルゴリズム100は、図1に示すように段階1、段階2、段階3、および段階4の4つの段階に分けて記述される。段階1は主にレート制御データバッファ102の初期状態を設定するために使われる。レート制御データバッファ102は、レート制御アルゴリズムに関連するデータを格納するように構成される。そのようなデータには統計データ103として、1以上の以前に符号化したピクチャに対するビット群、1以上の以前に符号化されたピクチャおよび/または現在のピクチャに関するシーケンス情報105から判定された複雑度、たとえば1以上の以前に符号化されたピクチャから推定された量子化パラメータ、および他の関連するデータが含まれてもよい。統計データにはまた、符号化されたピクチャの再構成を対応する元のピクチャと比較することによって計算された歪みが含まれてもよい。一例として、歪みは、元のピクチャと再構成されたピクチャの間の二乗誤差の和として測定してもよい。歪みはまた、ブロック、マクロブロック、スライスなどのようなピクチャの対応するサブユニット間で測定されてもよい。
シーケンス情報105には、たとえば、フレームレートおよび/または特定のGOP(group of pictures)に対するビットレートが含まれてもよい。初期化段階とも呼ぶ段階1において、ソースピクチャ107が入力され、ユーザが指定した符号化パターンおよびビデオ検出結果にもとづいて、並べ替えられる。この段階において、パラメータをリセットし、メモリおよびバッファ空間を割り当ててもよい。この段階の過程で、符号化されるべきソースピクチャ107の複雑度を調べてもよい。
段階2において、レート制御データバッファ102に収集されたデータおよびソースビデオフレームにもとづいて、ピクチャレベルの量子化パラメータ(QP)が導出される。ピクチャレベルQPは、ソースピクチャ107のピクチャタイプ、ソースピクチャ107の複雑度、推定目標(ターゲット)ビット数、および潜在的なレート歪みモデルにもとづいて導出してもよい。ピクチャ歪み、バッファフル、および以前符号化されたフレームのQPクリッピングスキームのような他のファクタを考慮に入れて、ソースピクチャ107に対する最終的なQPを決定してもよい。
段階3において、段階2で決定された最終的なQPが、ソースピクチャ107を符号化するための1以上の符号化モジュール104に送られる。各符号化モジュール104は、イントラ検索およびモード決定のような典型的なピクチャ符号化機能を実装してもよい。段階3は、たとえば、ビデオフレームを現実に符号化する呼び出し関数にQPを渡すことによって実装してもよい。その結果得られる符号化されたピクチャ109は、符号化ピクチャバッファCPBに格納される。段階3を実装するに当たり、任意の適切な符号化方法を用いてもよい。
段階4において、統計データはレート制御バッファ102に収集され、更新される。符号化されたソースピクチャ109に対応する符号化されたビットストリームのサイズが調べられ、元のソースピクチャ107に対するピクセルと、符号化されたソースピクチャ109からの再構成から得られるピクセルとの間の歪みが計算され、記録される。
レート制御データバッファに格納された統計データ103およびレート制御器200の機能ブロックとの相互作用が図2に示される。初期段階(段階1)において、予め指定された制約事項および変数を定義するためにシーケンスレベル情報105を使用してもよい。さらに、バッファ管理と、レート制御器200を他の主要なスレッドに結合させることとがこの段階で実行されてもよい。段階2において、ターゲットビット推定器106は、現在のピクチャ、フレーム、またはフィールドに対するターゲットビットカウントを推定する。推定器は、ターゲットビットカウント115を推定するために、レート制御データバッファ102におけるソースピクチャ情報113、たとえば入力されたソースピクセル、入力されたピクチャタイプ、およびMEフェーズ1のオプション情報を利用する。CBR符号化条件においては、特別なクリッピング機構を用いて、バッファオーバーフローの潜在的なリスクを低下させてもよいことに留意する。
ここで用いられるように、MEフェーズ1という表現は、動き推定(motion estimation)の第1フェーズのことである。ある実施の形態では、動きは2つのフェーズで実装されてもよい。第1は、MEフェーズ1として知られるものである。典型的にはMEフェーズ1は、多少正確さが劣るが、それでも適切な動き情報を比較的低い計算コストで取得する。この情報はきわめて最新のものであり(たとえば、現在のピクチャ情報)、ターゲットビットの割り当てを支援するために使われる。
レート制御器200の2つの重要な構成要素は、ターゲットビット推定器106とQP制御器114である。これら2つの構成要素は、図2に示すように段階2を実装するために使われてもよい。ターゲットビット推定器106の動作の詳細は図3に図示される。予め指定されたパラメータ117を用いて、初期ビット割当量(バジェット)119を計算する。予め指定されたパラメータの例には、たとえば、GOPの単位のスライディングウインドウのサイズの判定が含まれる。ある実装では、1以上のGOP(たとえば4GOP)におけるビットを初期ビット割当量として設定してもよい。もしGOPが1秒毎に設定され、目標ビットレートが1Mbps(毎秒100万ビット)であるとしたら、初期ビット割当量はスライディングウインドウにおいて4,000,000ビットである。ビット割当量更新器108は、1以上の以前のピクチャから訂正されたビットの数121にもとづいて初期ビット割当量119を更新する。その結果得られた更新後のビット割当量123はビットカウント分配器110に入力される。
ビット割当量更新器108は、初期ジッタ(たとえば、不充分な過去データによる)および見込まれるコンテンツジッタを緩和するためにビット割当量にもとづいてスライディングウインドウを用いてもよい。たとえば、毎秒6Mビットで毎秒30フレーム、毎秒1GOPのビデオシーケンスを符号化するために、スライディングウインドウのサイズは4GOP長に設定される。すなわち、スライディングウインドウにおいて、符号化されるべき4×30=120ピクチャフレームに対して4×6Mビット=24Mビットが利用可能である。選択されたスライディングウインドウのサイズは、ビットレート精度とスムースなビデオ品質の間で妥協することによって決定される。一般的に言えば、ウインドウサイズを小さくすればするほど、厳格なビットレート制御器になり、より良いビットレート収束性を得るが、その結果は、QP変動が大きくなり、不安定なビデオ品質になる。ウインドウサイズを大きくすれば、レート制御器は、より長い期間の計画にもとづいてターゲットビットカウント115を調整するために、ビット割当量により柔軟性をもたせるようになるから、より安定した品質が得られる傾向がある。しかし、より大きなウインドウの欠点は収束速度であり、結果的に、目標ビットレートに一致する正確さは劣ることになる。両極端の例は、1フレームサイズのスライディングウインドウ(たとえば、上記の例では1/30秒)と、符号化されるべきピクチャフレームの総数のスライディングウインドウである。
ターゲットビット推定器106に対する次のタスクは、現在のピクチャフレーム107にターゲットビットカウント115を割り当てる方法を決定することである。上記の例で最も簡単な方法は、120フレーム間で24Mビットを均等に分配することである。しかし、この方法は、異なる符号化ピクチャタイプ(たとえば、I(Intra)ピクチャ、P(Predictive)ピクチャ、B(Bi-predictive)ピクチャ)があるという符号化特性や、120フレームの異なるピクチャ間にコンテンツの変動があることを無視したために、非効率的な分配に陥ることがある。
本発明の実施の形態において、ターゲットビットカウントを導出する際、異なるピクチャ符号化タイプを考慮に入れる。特に、ターゲットビット推定器106は、現在のピクチャ107に対する複雑度の値125を計算する複雑度計算器112を含んでもよい。複雑度計算器は、現在のピクチャタイプ、現在の複雑度および以前に符号化されたフレームに対する1以上の過去の複雑度にもとづいて現在のピクチャ107に対する複雑度を計算してもよい。さらに、複雑度計算器112はまたコンテンツの複雑度、現実のビット使用量、および現実の歪みを考慮に入れてもよい。たとえば、これに限らないが、ピクチャフレームに対するターゲットビットカウントを決定するための3つの異なる場合を以下で議論する。
ピクチャ複雑度を表すには多くの方法がある。単純な分散は、ピクチャ複雑度の表現の中の一例に過ぎない。それに代わって洗練された表現が望まれることもある。一例として、これに限定しないが、ピクチャにおけるマクロブロックの平均分散を用いてもよい。
ケース1では、現在のピクチャ107はシーンチェンジのあるピクチャである。ケース2では、現在のピクチャ107は、正規のIピクチャであり、ケース3では、現在のピクチャは正規のPピクチャである。
ある特定の実装によれば、もし現在のピクチャ107がBピクチャであるなら、レート制御器は(それの関連する参照フレームからの)QPに単にある定数Kを足したものを割り当ててもよい。定数Kは、最新の符号化ピクチャバッファ(CPB)が一杯(フル)になることにより、それだけまたは部分的に決定される。Bピクチャを取り扱うこの方法により、符号化器はより一層、並列実行能力をもつようになる。すなわち、任意のBピクチャ符号化は、任意の2つの対応する参照フレーム内で並列に実行することができる。
以下の議論において、NはスライディングウインドウにおけるIピクチャの数、Nは当該ウインドウにおけるPピクチャの数、Nは当該ウインドウにおけるBピクチャの数である。R、RおよびRは、それぞれタイプI、PおよびBのピクチャに対する現実のビット使用量である。さらに、r、rおよびrは、それぞれI、PおよびBのピクチャに対する推定ビットカウントである。D、DおよびDとM、MおよびMは、それぞれI、PおよびBピクチャに対する歪みと複雑度を表す。次の机上の例は、時間tからt+6までのビデオシーケンスを符号化するときの現実のビット使用量の系列のサンプルシナリオである。現在のピクチャに至るまでのピクチャタイプのシーケンスはI、P、B、B、P、B、B、kである。ここでkは現在のピクチャ107を表し、これはたとえば、シーンチェンジのあるピクチャ(ケース1)、正規のIピクチャ(ケース2)、または正規のPピクチャ(ケース3)である。
レート:R(t),R(t+1),R(t+2),R(t+3),R(t+4),R(t+5),R(t+6),r(t+7).
複雑度:M(t),M(t+1),M(t+2),M(t+3),M(t+4),M(t+5),M(t+6),M(t+7).
歪み:D(t),D(t+1),D(t+2),D(t+3),D(t+4),D(t+5),D(t+6).
時間tで始まるスライディングウインドウにおけるビット割当量はWBで表される。当該ウインドウは時間tから現在のピクチャ107の前のピクチャまでのすべてのフレームを含む。一般的に、現在のピクチャに対する推定ビット使用量および複雑度をそれぞれ以下ではrおよびMと記す。
ビットカウント分配器110が、現在のピクチャ107に対するターゲットビットカウントrを推定しようとしている場合を考える。一般に、当該ウインドウは、任意のタイプのピクチャを適切な枚数もつことに留意する。
現在のピクチャがシーンチェンジのあるピクチャであるケース1では、現在のピクチャに対するターゲットビットカウント115(すなわちr(t+7))は次のように計算される。
(t+7)=WB(t+6)*AR/(N*AR/AM+N*AR/AM+N*AR/AM
ここで、ARは、もっとも最近のシーンチェンジIピクチャ(そのピクチャは除く)まで遡るすべてのkピクチャにわたる平均的な現実のビットカウントである。AMは、もっとも最近のシーンチェンジIピクチャ(そのピクチャは除く)まで遡るすべてのkピクチャにわたる平均複雑度である。ここでkは現在のピクチャに対するピクチャタイプであり、たとえば、I、PまたはBピクチャタイプのいずれかである。
現在のピクチャ107が正規のIピクチャであるケース2では、目標は、もっとも最近のPピクチャからのスムースな遷移を提供することである。そのような場合、ターゲットビットカウントは、最新のIピクチャと最新のPピクチャの間で歪み、現実のビット使用量およびピクチャ複雑度の比を計算することによって導出される。上述の例のピクチャタイプのシーケンスでは、現在のピクチャの前のもっとも最近のPピクチャはt+4のPピクチャである。現在のピクチャ107が正規のIピクチャである場合、現在のIピクチャは、コンテンツ特性の観点ではもっとも最近のIピクチャに類似していることが想定される。そのため、ビットレートをほんの微調整することだけでよい。そうでないなら、現在のフレームに対してシーンチェンジIピクチャが記録される。現在のピクチャ107が正規のIピクチャであり、シーンチェンジIピクチャではないと仮定すると、現在のピクチャに対するターゲットビットカウント115(すなわちr(t+7))は次のように計算される。
(t+7)=[R(t)/R(t+4)]*[D(t)/D(t+4)]*[M(t)/M(t+4)]*R(t+4)
現在のピクチャ107が正規のPピクチャであるケース3では、もっとも最近のI、PおよびBピクチャからの統計的なデータを用いて、ターゲットビットカウント115を計算する。たとえば、上述のピクチャシーケンスが与えられた場合、推定ビットカウントrは次のように計算される。
(t+7)=WB(t+6)*[R(t+4)/M(t+4)]/[N*R(t)/M(t)+N*R(t+4)/M(t+4)+N*R(t+6)/M(t+6))]
上記のターゲットビットカウント計算はピクチャ特性にだけ依存し、符号化ピクチャバッファCPBがCPBsizeと記される有限のサイズである状況を考慮していない。現実のアプリケーションに対しては、ビットカウント分配器108は、CPBステータスとビットレート精度にしたがって最終的なターゲットビットカウント115を調整することで、CPBオーバーフローおよびアンダーフローのリスクを減らしてもよい。そのような調整を容易にするために、ターゲットビット推定器106は、バッファ調整器116を含み、バッファ調整器116が、ターゲットビットカウント115の調整のために関連するCPBステータス情報をビットカウント分配器108に提供する。
ターゲットビットカウント115を調整する際にCPBステータス情報を考慮に入れる方法は多数ある。たとえば、一定ビットレート(CBR)アプリケーションでは、バッファがオーバーフローに近づいているか、あるいはアンダーフローに近づいているかによってターゲットビットカウント115を異なるやり方で調整してもよい。潜在的なオーバーフロー状態またはアンダーフロー状態が存在するかどうかを判定する際、符号化ピクチャバッファフルCPBfullと呼ばれる量を定義することが有益である。これは、符号化ピクチャバッファCPBの有限サイズCPBsizeに対するCPBに現在格納されているデータ量の比とみなすことができる。すなわち、CPBfull=CPBcurr/CPBsizeである。たとえば、潜在的なCPBオーバーフローは、CPBfullが増えており、あらかじめ定められた上限閾値CPBmaxを超える場合に存在する。そのような場合、ターゲットビットカウント115(r(t+7))を次のように調整してCPBオーバーフローのリスクを減らす。
(t+7)=r(t+7)*(1.0+C*(CPBfull−CPBT−MAX
ここでCは一定の乗数(たとえば2)である。
あるいは、CPBfullが減少しており、あらかじめ定められた下限閾値CPBminを下回る場合、符号化ピクチャバッファCPBは潜在的なCPBアンダーフローに近づいている。そのような状況では、ターゲットビットカウント115(すなわちr)を次のように調整してCPBアンダーフローのリスクを減らす。
(t+7)=r(t+7)*(1.0+C*(CPBmin−CPBfull
ここでCは一定の乗数(たとえば2)であり、0.0<CPBmin<CPBmax<1.0である。
可変ビットレート(VBR)アプリケーションでは、CPBオーバーフローは、長い初期遅延に起因することが多い(すなわち、CPBは符号化が始まる前にほとんどフルになっている)。そこで、ターゲットビットカウント115を次のように調整する。
もしCPBcushionがsec_thresholdより小さいならば、
(t+7)=r(t+7)*(1.0+incr_%)
ここで、CPBcushion=(CPBsize−CPB_curr)/(符号化器のターゲットビットレートtarget_bitrate)であり、0.0<incr_%<1.0である。
sec_threshold項は、時間の単位(たとえば秒)のCPBクッションに対する閾値である。一例として、これに限定しないが、CPBcushionが1秒より小さいなら、r(t+7)の値を上記の式にしたがって増やす。
図2を再び参照して、ターゲットビット推定器106はターゲットビットカウントをQP制御器114に送信する。QP制御器114は、ターゲットビットカウント115と、レート制御データバッファ102にある歪みとソースピクセル情報とを用いて、QPを導出する。一例として、限定するものではないが、QP制御器114は図4に示すようにQPを導出してもよい。具体的には、QP制御器114は、目標複雑度、2以上の以前のフレームのウインドウにわたる平均複雑度、および複雑度スタビライザファクタにもとづいて複雑度ファクタを計算する複雑度関数を実装してもよい。さらに、QP制御器114は、以前のフレーム、2以上の以前のフレームのウインドウにわたって取られた平均歪み、および歪みスタビライザファクタにもとづいて歪みファクタを計算する歪み関数を実装してもよい。また、QP制御器は、現在のフレーム107に対するターゲットビットカウント、2以上の以前のフレームのウインドウにわたって取られた平均ビットカウント、およびビットカウントスタビライザファクタにもとづいて推定されたビットカウントを計算する関数を実装してもよい。
図4に示すQP制御器114は、複雑度、歪みおよびビットカウントを計算する機能ブロック(f())を含んでもよい。各機能ブロックは、入力として1以上のスタビライザファクタを受け取ってもよい。スタビライザは、複雑度、ビットカウントおよび歪みにおける大きな変動を減らすために利用される。一例として、限定するものではないが、次のタイプの数式にしたがって推定ビットカウントAを計算する際に、平均ビットカウントBおよび平均複雑度Cにおける変動の影響を減らすために、S1、S2で示すスタビライザファクタを用いてもよい。
A=(B+S1)/(C+S2)、ここでS1およびS2はスタビライザである。
計算Aにおける平均ビットカウントおよび平均複雑度の大きな変動の影響を減らすために、レート制御器114は、スタビライザ項S1およびS2に一定または適応的な値を割り当ててもよい。これにより、レート制御器114は、たとえば、B/Cのような単純な比で得られるよりも安定した推定ビットカウントAの値を得ることができる。スタビライザの値を適切に選ぶなら、そのスタビライザの値は、(B+S1)/(C+S2)の値を安定させる傾向を示す。
同様のスタビライザ項を用いて、複雑度と歪みファクタの計算も同じように安定化させてもよい。
QP制御器114は、ビットカウント、歪みおよび複雑度のファクタにもとづいて生のQP値を決定するQP変調器を含んでもよい。QP制御器はさらに、その結果得られるQP値の範囲を制限するクリッピング機構118を含んでもよい。
想定されたレート歪みモデルに単に基づくだけの従来のアプローチとは違って、提案されたレート制御器200は、ピクチャタイプ、ピクチャ複雑度、ピクチャ歪みおよびターゲットビットカウント115といった、主要なファクタの相互作用を考慮することによって、QPを導出する。これらのファクタとその相互作用の関係を用いて、以下のアプローチを取ることができる。
図4に示すように、QP制御器114は、ビットカウント分配器110から計算されたターゲットビット割当量にもとづいて最終的なQP値127を導出する。前述のように、QP制御器114は、レート制御器200における重要な構成要素の一つである。QP制御器114は、ビットカウントおよび視覚的品質に直接的な影響を及ぼす。最高品質を達成するために、インタラクティブなアプローチを用いて、最良のQPを見つけることによって歪みを最小化してもよい。しかしこれは効率が悪い。それとは対照的に、本発明の実施の形態では、より効率の良い方法で適度に良い視覚品質を得ることを目標とする。
安定したビデオ品質を維持するために、QP制御器114は、最初は現在のピクチャ107に対するピクチャタイプにもとづいているQPを導出する。ピクチャタイプが異なれば、それに対応するQPを導出する方法も異なる。一例として、限定するものではないが、5つの異なるケースを考えることができる。(1)ビデオシーケンスの一番最初のIDRピクチャ、(2)シーンチェンジのあるIDRピクチャ、(3)正規のIDRおよびIピクチャ、(4)正規のPピクチャ、および(5)非参照Bピクチャ。
ここで、IDRピクチャ(またはIDRフレーム)は、Iピクチャ(またはIフレーム)の特別なタイプである。主な違いは、符号化器がIDRをピクチャ/フレームに割り当てるときには、フレームバッファにあるすべての参照フレームの情報がなくなることを意味することである。その結果、これらの参照フレームはそれ以降の符号化において使うことができなくなる。
ビデオシーケンスにおける最初のIDRピクチャの場合におけるQPは、複雑度、符号化条件、および一般的な前提条件にもとづいて導出される。基本的なアイデアは、IピクチャとPピクチャの関係、およびPピクチャとBピクチャの関係を符号化ビット複雑度の観点で発見することである。スライディングウインドウにおいてN枚のピクチャがあり、N=N+N+Nが成り立つ場合を考える。ここで、N,NおよびNはそれぞれ、このウインドウにおいてI、PおよびBピクチャの数である。最初のIDRに対するターゲットビットカウント115(すなわちr)は次のように計算される。
=WB/N+N/ratio+N/ratio
ratioおよびratioの値は次のように計算される。
ratio=C/bits_per_macroblock
ここでCpは定数であり、
bits_per_macroblock=target_bit_rate/(target_frame_rate*frame_width/16*frame_height/16)
である。
上記の式において、この例では、現在のピクチャはシーケンスにおける最初のピクチャであるから、picture_complexity項は、現在のピクチャに対する複雑度を指す。
ターゲットビットカウント115(r)が導出された後、単純な一次RDモデルを適用して、量子化値(ここでは現実のQPと呼ばれる)を取得する。この量子化値は最終的なQP(ここではシンタックスQPと呼ばれ、これはシンタックスエレメントであり、ビットストリームに埋め込まれる)とはかなり異なるものである。なぜなら前者のQPは量子化器において現実に使われるものであるからである。現実のQPをシンタックスQPに変換するために、式QPsyntax=6.0*log10(QPactual)/log10(2.0)が使われる。次に、QPsyntaxの結果的な値は、最小値QPminと最大値QPmaxの間のあらかじめ定められた範囲にクリップされて、最終的なQP値127が生成される。
シーンチェンジのあるIDRピクチャの場合は、新しいQPは、それ以前のすべてのIピクチャからシーンチェンジのある以前の最も近いIDRに至るまでの平均的な複雑度、平均的なビット使用、および平均的なQPを含む統計的データ103にもとづいて導出される。
QP制御器114はまず、過去のIフレームに対して(平均ビット使用/平均複雑度)で定義される古いR/M比を判定する。QP制御器114は次に、新しい相対的なR/M比を次のように導出する。
new R/M ratio=(old R/M ratio)/(r/M
ここで、rとMは、現在のフレーム107に対するターゲットビットカウントと複雑度を指す。古いR/M比は、Rk−1/Mk−1から決定される。ここで、Rk−1とMk−1は、現在のフレーム107の前のフレームに対する現実のビット利用および複雑度である。
次に、新しい現実のQP値は、
QPactual=(average QPactual)*(new R/M ratio)
にしたがって決定される。
新しい現実のQP値は、上述のように新しいシンタックスQP値に変換される。
現在のフレーム107がシーンチェンジフレームである場合、新しいQP値は、直前のフレームに対するQP値とはかなり異なることに留意する。大きなQP変動を減らすために、QPクリッピングメカニズム118は、以前のフレームとの複雑度の差を計算してもよい。次に、クリッピングメカニズム118は、QP変化を強制的に制限するためにQP変化の範囲をきめてもよい。一例であり、限定するものではないが、次のクリッピングスキームを用いてもよい。
まず、範囲QPrangeを次のように定義する。
QPrange=乗数*(max(M,Mk−1)/min(M,Mk−1))
ここで、Mk−1は現在のフレームの直前のフレームに対する複雑度である。
乗数は、経験的に決められる定数である。一例として、限定するものではないが、定数2をもつ乗数器を用いてもよい。
したがって、最終的なQP値127は、次の範囲に制限される。
[QPsyntax−QPrange,QPsyntax+QPrange
現在のピクチャ107が正規のIDRであり、Iピクチャである場合は、QP制御器114はQPsyntaxの値に直接作用する。そのピクチャフレームは正規フレームであり、それは、ビデオ特性には何ら気づきうる変化は起きていない(そうでないなら、シーンチェンジが記録されているはずである)ことを意味するから、比較的安定したQPsyntaxの値を維持するために、複雑度に対する現実のビットカウントの比にLOG演算を適用してもよい。次のRD式を用いて、以前のフレームに対するQPsyntaxの値(QPk−1で表す)から現在のフレーム107に対するQPsyntaxの値(QPで表す)を導出する。
LOG(ビットレート/複雑度)*QPsyntax=一定
上記の式にもとづいて、現在のフレーム107に対するQPsyntaxの最終的な値が次のように計算される。
QP=LOG[(Rk−1/Mk−1)*(QPk−1)]/LOG(r/M
ここで、QPk−1は、現在のフレーム107の前のフレームに対するQPsyntaxの値である。
現在のフレーム107が正規のPピクチャである場合、QP制御器114は、QPactualの値に対して対数的に演算することにより、QPsyntaxの安定した値を維持することができる。現在のフレームに対する新しい現実のQP値(QPactual_kで表す)は次のように導出される。
QPactual_k = LOG(Rk−1)*(QPactual_k−1)/LOG(r *Rk−1
その後、QPactual_kの値は上述のようにQPsyntax値に変換される。
もし現在のピクチャ107が正規のBピクチャ、すなわち、非参照Bピクチャであるなら、誤差は決して伝搬しない。したがって、その一つ前の参照フレームのシンタックスQPに単純に2を足すだけで、一定のQPを得ることができる。この状況はまた、並列符号化に対する機会を与える。なぜなら、一般に、任意の2つの連続するBピクチャ間には依存関係がないからである。ピクチャ間のデータ依存性がないことは、符号化プロセスを並列化するための入り口として役立つ。2つの参照ピクチャ内のBピクチャ符号化は並列に実行できる。
符号化段階(段階2)において、レート制御アルゴリズムは単にQPをその呼び出し関数に返してもよい。最終段階において、ビデオフレーム/フィールド符号化の直後、レート制御は現実のビット使用量(テクスチャビットとオーバーヘッドビットは分離されるであろう)、現実のピクチャ歪み、および現実のバッファフル状況を収集し、レート制御データバッファ103においてこの情報を更新する。
段階2から段階4までの処理は、一連のビデオフレームのビデオ符号化の過程で繰り返し実行されてもよい。本発明の実施の形態において、レート制御器は、参照ピクチャ(すなわち、ピラミッド符号化における参照ピクチャとして用いられる場合は、Iピクチャ、PピクチャまたはBピクチャ)に対するターゲットビットカウントを考慮することだけが必要であることに留意する。
図5は、上述のように3以上のプロセッサ上でのストリーミングデータの並列復号を実装するために用いられるコンピュータ装置500のブロック図を示す。この装置500は、一般に、複数のプロセッサモジュール501A、501B、501Cとメモリ502を備える。複数のプロセッサモジュールを用いるプロセッシングシステムの例として、プロセッサモジュール501A、501Bおよび501Cは、Cellプロセッサの構成要素である。
メモリ502は、例えば、RAM、DRAM、ROMなどの集積回路の形態を取ってもよい。メモリ502はまた、すべてのプロセッサモジュール501によってアクセス可能なメインメモリであってもよい。ある実施の形態では、プロセッサモジュール501A、501B、501Cは、関連付けられたローカルメモリ505A、505B、505Cをもつ。符号化プログラム503は、プロセッサモジュール501上で実行することができるプロセッサ読み取り可能なインストラクションの形態でメインメモリ502に格納されてもよい。符号化プログラム503は、たとえば、図1、図2、図3および図4を参照して上述したようなレート制御アルゴリズムを用いてビデオフレームデータを符号化するように構成される。具体的には、符号化プログラムは、QP値を決定する際、ピクチャタイプ、ピクチャ複雑度、ピクチャ歪みおよびターゲットビットカウントを考慮に入れるやり方でQP値を計算する。プログラム503は、任意の適切なプロセッサ読み取り可能な言語、たとえば、C、C++、JAVA(登録商標)、アセンブリ、MATLAB、フォートラン、および他の様々な言語で書かれる。レート制御データ507は、メモリ502、たとえば、上述のゆにレート制御バッファに格納される。そのようなレート制御データには、過去のフレームのウインドウに対するビット利用状況、複雑度、歪み、QPなどに関する統計データが含まれる。ある実施の形態では、符号化プログラム503の実行過程で、プロセッサモジュール501A、501B、501Cによって並列処理するために、プログラムコードおよび/またはデータ507の一部をローカルストア505A、505Bおよび505Cにロードしてもよい。
装置500はさらに、入出力(I/O)装置511、電源(P/S)512、クロック(CLK)513およびキャッシュ514などの公知のサポート機能510を備えてもよい。装置500はオプションとして、プログラムおよび/またはデータを格納するためのディスクドライブ、CD−ROMドライブ、テープドライブなどの大容量記憶装置515を備えてもよい。装置500はまた、オプションとして、装置500とユーザの相互作用を容易にするために、ディスプレイユニット516とユーザインタフェースユニット518を備えてもよい。ディスプレイユニット516は、テキスト、数値、グラフィカルシンボルや画像を表示する陰極線管(CRT)、またはフラットパネルスクリーンの形態であってもよい。ユーザインタフェース518は、キーボード、マウス、ジョイスティック、ライトペンや他の装置を備えてもよく、これらは、グラフィカルユーザインタフェース(GUI)と併せて使われてもよい。装置500はまた、ネットワークインタフェース520を含み、これにより、当該装置がインターネットのようなネットワーク上で他の装置と通信することが可能になる。これらの構成要素はハードウェア、ソフトウェア、ファームウェアまたはこれらの2以上の組み合わせによって実装される。
装置500の複数のプロセッサを用いて並列処理を効率化する付加的な方法が多数ある。たとえば、2以上のプロセッサ501A、501B、501C上でコードを複製することによって、処理ループを「アンロール(unroll)」し、各プロセッサに異なるデータ部分を処理するためにコードを実装させることができる。そのような実装によって、ループ設定に関連するレイテンシを回避することができる。
上述したように、上記のレート制御のある部分(たとえば歪み計算)はマルチプロセッサシステム上で実装される。並列処理を実装することができるマルチプロセッサシステムの一つの例は、セルプロセッサとして知られる。セルプロセッサとして分類できる異なるプロセッサアーキテクチャが多数ある。例示であり、限定するものではないが、図6は、セルプロセッサ600の一つのありうる構成を示す。セルプロセッサ600は、メインメモリ602、一つのPPE(power processor element)604、および8個のSPE(synergistic processor element)606を備える。あるいは、セルプロセッサ601は、任意の数のSPEで構成されてもよい。
例示として、セルプロセッサ600は、セル・ブロードバンド・エンジン・アーキテクチャ(CBEA)準拠のプロセッサとして知られるアーキテクチャで特徴づけられる。CBEA準拠のアーキテクチャにおいて、複数のPPEはPPEグループに結合され、複数のSPEはSPEグループに結合されてもよい。例示のために、セルプロセッサ600は、一つのSPEと一つのPPEをもつ一つのSPEグループと一つのPPEグループだけをもつとして図示している。別の構成として、セルプロセッサは、PPEの複数のグループとSPEの複数のグループを含むことができる。CBEA準拠のプロセッサは、たとえば、「セル・ブロードバンド・エンジン・アーキテクチャ」に詳細に記述されており、これは、http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/1AEEE1270EA2776387257060006E61BA/$file/CBEA_01_pub.pdfにおいてオンラインで利用可能であり、その内容を参照によりここに取り込む。
例示として、PPE604は、キャッシュが関連付けられた64ビットのパワーPCプロセッサユニット(PPU)であってもよい。PPE604はオプションとしてベクタマルチメディア拡張ユニットを含んでもよい。各SPE606は、SPU(synergistic processor unit)とローカルストア(LS)を含む。ある実装では、ローカルストアは、たとえば、コードとデータ用のおよそ256キロバイトのメモリ容量をもってもよい。SPUは、典型的にはシステム管理機能を実行しないという点で、PPUよりも単純な計算ユニットである。SPUは、SIMD(single instruction, multiple data)機能を有し、典型的にはデータ処理を行い、割り当てられたタスクを行うために(PPEにより設定されたアクセス特性にしたがって)要求されたデータ転送を開始する。SPUにより、システム600は、より高い計算ユニット密度を要求するアプリケーションを実装し、提供された命令セットを効率良く利用することができるようになる。PPE604によって管理されるシステム600の相当数のSPEによって、広範囲のアプリケーションにわたって費用対効果の高い処理が可能になる。
メモリ602、PPE604、およびSPE606は、リングタイプのエレメント相互接続バス610を介して、互いに通信したり、I/O装置608と通信する。メモリ602には、上述のレート制御データ507と共通する特徴をもつレート制御データ603が含まれる。メモリ602にはまた、上述の符号化プログラム503と共通する特徴をもつ符号化プログラム609が含まれる。少なくとも一つのSPE606のローカルストア(LS)には、符号化命令605および/またはレート制御データの一部および/または以下に説明するように並列に処理される入力されたビデオフレームデータが含まれる。PPE604のL1キャッシュには、上述の符号化プログラム503と共通する特徴をもつコード命令607が含まれる。命令605およびデータ607はまた、必要なときにSPEおよびPPEによってアクセスするためにメモリ602に格納されてもよい。
図1に示し、図2〜4を参照してさらに説明したレート制御アルゴリズムは、一連の関数呼び出しを通して、図5または図6を参照して説明したタイプの装置に実装することができる。たとえば、初期化段階(段階1)は、PicRateCtrlInit()と呼ばれる関数を呼び出すことにより実装される。PicRateCtrlInit()関数は、符号化の全体の進行において、符号化プログラム507または603の符号化SPUメイン制御スレッドによって一回だけ呼び出される。このように、PicRateCtrlInit()関数は、符号化プログラムのレート制御の部分に対する任意のエントリーポイントとして作用する。レート制御インスタンスのメモリが十分ではない場合、PicRateCtrlInit()関数は、エラーメッセージを返す。レート制御インスタンスのメモリは、レート制御バッファにおいて利用可能な空間の総量と同じである。PicRateCtrlInit()関数はまた、レート制御インスタンスのメモリがレート制御インスタンスによって現在使用中である場合にも、エラーメッセージを返す。エラー状態が全く存在しないなら、PicRateCtrlInit()関数は、レート制御ハンドルを生成し、入力されたパラメータにもとづいてメモリを割り当てる。ここではレート制御ハンドルという用語は、コンピュータプログラム実装においてよく使われるものであり、特定のタイプのポインタのことである。レート制御ハンドルは、特定のレート制御器のデータがアクセスされるメモリアドレスへのポインタである。Cellプロセッサ実装という特定のケースでは、PicRateCtrlInit()への入力は、(1)SPUスレッドコンフィグレーションバッファ、(2)テストドライバ制御パラメータ、(3)ストリームレベルのコンフィグレーション、および(4)フレームレベルコンフィグレーションが含まれる。PicRateCtrlInit()関数の出力は、ピクチャレート制御バッファ102へのハンドルである。
準備段階(図1の段階2)はPicRateCtrlPrepare()と呼ばれる関数を呼び出すことによって実装される。この関数の主なタスクは、入力されたデータにもとづいてQP値を導出することである。PicRateCtrlPrepare()関数は、各ピクチャに対して符号化の始まりにおいて呼び出され、レート制御アルゴリズムの要所である。
PicRateCtrlPrepare()関数への入力には、レート制御ハンドル、フレームレベルコンフィグレーション、入力フレームバッファ、およびレート制御データバッファが含まれる。PicRateCtrlPrepare()関数は次の演算を実装する。
・CBRの場合におけるバッファフルのチェック
・スライディングウインドウにおける総ビットレート割当量の調整
・たとえば上述のように、ターゲットビット推定器106を用いた現在のピクチャに対するターゲットビット111の決定
・ピクチャタイプがI/IDRである場合、たとえば上述のようにQP制御器114を用いたピクチャIのQPの導出
・ピクチャタイプがPである場合、たとえば上述のようにQP制御器114を用いたピクチャPのQPの導出
・ピクチャタイプが非参照Bである場合、たとえば上述のようにQP制御器114を用いた非参照ピクチャBのQPの導出
・ピクチャタイプが参照Bである場合、たとえば上述のようにQP制御器114を用いた参照ピクチャBのQPの導出
・あらかじめ指定された範囲(PicRateControlInit()で定義されてもよい)内でQPをクリッピングすることによるスムースな視覚品質の遷移の保証。この演算はQPクリッピング機構118に関して上述のように実装される。
符号化段階(段階3)は、PicRateCtrlEncode()関数を呼び出すことによって実装される。
PicRateCtrlEncode()関数は、与えられたピクチャに対する最終的なQPを取得するために呼び出される。ある実施の形態では、PicRateCtrlEncode()関数は、ピクチャの小区分(たとえば、スライスまたはマクロブロック)に対する最終的なQP値を取得するために呼び出される。このように、本発明の実施の形態は、マクロブロックレベルにおけるレート制御に拡張することができる。PicRateCtrlEncode()関数はまた、ビデオピクチャを符号化する際に従来用いられる他の関数を呼び出すことが含まれる。たとえば、ネットワーク抽象化レイヤ(NAL)符号化、ビデオ符号化レイヤ(VCL)符号化、およびデブロッキングの関数である。
上述の実施の形態にはいろいろな変形がありうる。たとえば、ある実装では、符号化段階(段階3)は、マルチプロセッサ上に分散され、並列に処理される歪み計算を含んでもよい。マルチプロセッサ実装では、ピクチャの総歪みは、セクション単位で計算され、ピクチャの異なるセクションに対する歪み計算は、各セクションに対して異なるプロセッサを用いて並列に実行される。各セクションに対する歪みは、符号化前のピクチャに対する元のピクセルと、再構築されたピクセルを比較することによって、マクロブロック単位で計算されてもよい。
ある実装では、歪み計算は、全体的な性能を向上させるためにデブロッキング前に行ってもよい。なぜなら、デブロッキングスレッドからメインスレッドまではデータパスを割り当てる必要はないからである。デブロックされたフレームにもとづく歪み計算とレート制御器用のデブロックされていないフレームにもとづく歪み計算の不一致は、実験的には無視できるものであることがわかっている。
さらに、ある実装では、ピクチャセクションの各マクロブロックにおける歪みは、既存のMB情報コンテナで運び、DMAを介してサーバに転送してもよい。そして、NAL符号化スレッドが、ピクチャの全体的な歪みを収集し、計算してもよい。このMB歪みはまた、マクロブロックベースのレート制御が実装される場合、ピクチャ品質をさらに改善するために役立つ。
更新段階(段階4)はPicRateCtrlUpdate()関数を呼び出すことによって実装される。PicRateCtrlUpdate()関数は、次の二つの状況で呼び出される。(1)ブロードバンドエンジン(BE)のようなマルチコアプロセッサにおいてMB列の符号化が完了した直後にデータを記録するために呼び出されるか、または(2)これは、最終的なビデオ符号化レイヤ(VCL)ビットストリームが生成された直後、現在のピクチャ全体に関連づけられた統計的データを収集するために呼び出される。PicRateCtrlUpdate()関数に対する入力には、これらに限定しないが、レート制御ハンドル、画像に対する未加工の(raw)カラー空間フォーマット、以前再構成されたピクチャ、ピクチャレベル符号化情報、および以前のピクチャの符号化ビットを含んでもよい。PicRateCtrlUpdate()関数は、レート制御データバッファ102を内部的に更新してもよい。
一例として、これに限定しないが、カラー空間フォーマットはYUV420であってもよい。このフォーマットは、輝度成分(Y)と2つの彩度成分(UとV)を含む。典型的には、MPEGベースのエンコーダに対する入力は、YUV420であり、これは、たとえば、解像度の観点から、Yの次元はW×Hで、UtoVはそれぞれW/2×H/2の次元をもつことを意味する。
一例であり、これに限られないが、PicRateCtrlUpdate()関数は次の演算を実装する。
・統計的データの収集
・レート制御データバッファ102における統計的データの更新
・バッファフルをチェックしてバッファオーバーフローの可能性を判定
・必要なら、バッファオーバーフローの回避メカニズムを実装
別の実施の形態によれば、上述のピクチャレベルのレート制御を実行するための命令はコンピュータ読み取り可能な記憶媒体に格納してもよい。一例として、これに限られないが、図7は、コンピュータ読み取り可能な記憶媒体700の例を示す。記憶媒体には、コンピュータ・プロセッシング・デバイスが読み取って解釈することのできるフォーマットで格納されたコンピュータ読み取り可能な命令が含まれる。一例として、これに限られないが、コンピュータ読み取り可能な記憶媒体700は、RAMまたはROMのようなコンピュータ読み取り可能なメモリ、固定ディスクドライブ(たとえば、ハードディスクドライブ)に対するコンピュータ読み取り可能なストレージディスク、またはリムーバブルディスクドライブであってもよい。さらに、コンピュータ読み取り可能な記憶媒体700は、フラッシュメモリデバイス、コンピュータ読み取り可能なテープ、CD−ROM、DVD−ROM、ブルーレイ(商標)、HD−DVD、UMD、あるいは他の光記憶媒体を含む。
記憶媒体700はオプションとして、上述のアルゴリズムの段階1を実装する命令を含むレート制御初期化命令702を含む。一例として、これに限られないが、初期化命令は、実行時に上述のPicRateCtrlInit()関数を実装するように構成される。
記憶媒体700は、レート制御準備命令704を含む。準備命令704は上述のレート制御アルゴリズムの段階2を実装するように構成される。一例として、これに限られないが、準備命令は、実行時に上述のPicRateCtrlPrepare()関数を実装するように構成される。
記憶媒体700は、符号化命令706を含む。符号化命令706は上述のレート制御アルゴリズムの段階3を実装するように構成される。一例として、これに限られないが、符号化命令は、実行時に上述のPicRateCtrlEncode()関数を実装するように構成される。
記憶媒体700は、レート制御更新命令708を含む。レート制御更新命令708は上述のレート制御アルゴリズムの段階4を実装するように構成される。一例として、これに限られないが、レート制御更新命令は、実行時に上述のPicRateCtrlUpdate()関数を実装するように構成される。
上述のレート制御アルゴリズムは、実験的なAVC符号化器に主として実装されてきた。レート制御アルゴリズムの性能は、アルゴリズムがターゲットビットレートを正確に達成するだけではなく、HRD準拠のAVCビットストリームを構成するためにCPBバッファを適切に制御することも証明している。もっとも大切なのでは、量子化パラメータを制御するための新しいレート制御アルゴリズムの効率性のおかげで、符号化器が高い忠実性と安定した視覚品質を示していることである。
本発明の好ましい実施の形態を完全な形で説明してきたが、いろいろな代替物、変形、等価物を用いることができる。したがって、本発明の範囲は、上記の説明を参照して決められるものではなく、請求項により決められるべきであり、均等物の全範囲も含まれる。ここで述べた特徴はいずれも、好ましいかどうかを問わず、他の特徴と組み合わせてもよい。請求項において、明示的に断らない限り、各項目は1またはそれ以上の数量である。請求項において「〜のための手段」のような語句を用いて明示的に記載する場合を除いて、請求項がミーンズ・プラス・ファンクションの限定を含むものと解してはならない。

Claims (21)

  1. 1以上のビデオピクチャを符号化する際のレート制御のためのコンピュータ実装された方法であって、
    a)レート制御データを用いて前記1以上のビデオピクチャの一つである現在のピクチャを符号化するために使われる量子化パラメータ(QP)を決定するステップであって、前記QPの決定の際にピクチャタイプ、ピクチャ複雑度、およびターゲットビットカウントを考慮に入れるステップと、
    b)ステップa)で決定された前記QPを用いて前記現在のピクチャを圧縮されたフォーマットに符号化し、符号化された現在のピクチャを生成するステップと、
    c)前記符号化された現在のピクチャから決定された統計データにもとづいてレート制御データを更新するステップとを含む方法。
  2. 前記1以上のビデオピクチャの1以上の連続するピクチャに対してステップa)からc)を繰り返す請求項1の方法。
  3. ステップa)は、前記QPを決定する際にピクチャ歪みを考慮に入れる請求項1の方法。
  4. ステップa)は、1以上の以前のピクチャに対する現実のビット使用量および1以上の以前のピクチャに対する複雑度にもとづいて前記現在のピクチャに対する推定ビット使用量を決定し、前記推定ビット使用量にもとづいて前記QPを計算するステップを含む請求項1の方法。
  5. ステップa)は、1以上の以前のピクチャに対する現実のビット使用量、1以上の以前のピクチャに対する複雑度、および1以上の以前のピクチャに対する歪みにもとづいて前記現在のピクチャに対する前記推定ビット使用量を決定するステップを含む請求項4の方法。
  6. 前記現在のピクチャはシーンチェンジを含み、ステップa)は、もっとも最近のシーンチェンジのIピクチャにまで遡って前記現在のピクチャと同じタイプのすべてのピクチャにわたる平均的な現実のビットカウントと、前記もっとも最近のシーンチェンジのIピクチャにまで遡って前記現在のピクチャと同じタイプのすべてのピクチャにわたる平均的な複雑度とにもとづいて、前記推定ビット使用量を決定するステップを含む請求項4の方法。
  7. 前記現在のピクチャはIピクチャであり、ステップa)は、前記現在のピクチャに先行するもっとも最近のPピクチャに対する現実のビット使用量、複雑度および歪みと、前記現在のピクチャに先行するもっとも最近のIピクチャに対する現実のビット使用量、複雑度および歪みとから、前記推定ビット使用量を決定するステップを含む請求項4の方法。
  8. 前記現在のピクチャはPピクチャであり、ステップa)は、もっとも最近のIピクチャ、PピクチャおよびBピクチャに対する現実のビット使用量と複雑度から前記推定ビット使用量を決定するステップを含む請求項4の方法。
  9. 前記現在のピクチャはBピクチャであり、ステップa)は、もっとも最近のIピクチャ、PピクチャおよびBピクチャに対する現実のビット使用量と複雑度から前記推定ビット使用量を決定するステップを含む請求項4の方法。
  10. ステップa)はさらに、前記符号化された現在のピクチャを格納するために使われるバッファのアンダーフローまたはオーバーフローを回避するように計算する方法で前記推定ビット使用量を調整するステップを含む請求項4の方法。
  11. 前記現在のピクチャに対して推定ビット使用量を決定するステップは、前記推定ビット使用量の計算に対する平均ビット使用量または平均複雑度の変動の影響を減らすために、1以上のスタビライザ項を用いる請求項4の方法。
  12. ステップa)は、所定の範囲内に前記QPの値が収まるように前記QPをクリッピングするステップを含む請求項1の方法。
  13. ステップb)は、前記符号化された現在のピクチャからの前記現在のピクチャの歪みを計算するステップを含み、前記歪みの計算は、複数のプロセッサユニット上で並列に実行される請求項1の方法。
  14. 前記歪みを計算するステップは、セクション単位で前記現在のピクチャの全体の歪みを計算し、前記現在のピクチャの異なるセクションに対する歪み計算は、それぞれの異なるセクションに対して異なるプロセッサユニットを用いて、並列に実行される請求項13の方法。
  15. NAL復号スレッドは、前記現在のピクチャの各セクションに対して計算されたセクション単位の歪みを収集し、セクション単位の歪みから前記現在のピクチャの全体的な歪みを計算する請求項14の方法。
  16. 前記歪みを計算するステップは、前記符号化された現在のピクチャのデブロッキングの前に実行される請求項13の方法。
  17. 前記ステップc)は、
    前記符号化された現在のピクチャに関する統計データを収集するステップ、
    レート制御データバッファにある統計データを更新するステップ、
    バッファオーバーフローの可能性を判定するために前記レート制御データバッファが一杯であるかどうかをチェックするステップ、または
    バッファオーバーフロー回避メカニズムを実装するステップの1以上を含む請求項1の方法。
  18. ステップa)に先だって、前記レート制御データを含むレート制御データバッファの初期ステータスを設定するステップをさらに含む請求項1の方法。
  19. 前記初期ステータスを設定するステップは、前記現在のピクチャの複雑度を計算することを含む請求項18の方法。
  20. 1以上のビデオピクチャを符号化する際のレート制御のためのコンピュータ実装されたシステムであって、
    プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記プロセッサによって実行可能な命令セットとを含み、
    前記命令は、
    a)レート制御データを用いて前記1以上のビデオピクチャの一つである現在のピクチャを符号化するために使われる量子化パラメータ(QP)を決定するための命令であって、前記QPの決定の際にピクチャタイプ、ピクチャ複雑度、およびターゲットビットカウントを考慮に入れる命令と、
    b)命令a)で決定された前記QPを用いて前記現在のピクチャを圧縮されたフォーマットに符号化し、符号化された現在のピクチャを生成するための命令と、
    c)前記符号化された現在のピクチャから決定された統計データにもとづいてレート制御データを更新するための命令とを含むシステム。
  21. コンピュータプログラム命令が格納されたコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラム命令は、実行されたときに、
    a)レート制御データを用いて前記1以上のビデオピクチャの一つである現在のピクチャを符号化するために使われる量子化パラメータ(QP)を決定するステップであって、前記QPの決定の際にピクチャタイプ、ピクチャ複雑度、およびターゲットビットカウントを考慮に入れるステップと、
    b)ステップa)で決定された前記QPを用いて前記現在のピクチャを圧縮されたフォーマットに符号化し、符号化された現在のピクチャを生成するステップと、
    c)前記符号化された現在のピクチャから決定された統計データにもとづいてレート制御データを更新するステップとを実行するように構成される記憶媒体。
JP2010196686A 2009-09-02 2010-09-02 ビデオ符号化のためのピクチャレベルのレート制御 Pending JP2011055504A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/553,070 US8879623B2 (en) 2009-09-02 2009-09-02 Picture-level rate control for video encoding a scene-change I picture

Publications (1)

Publication Number Publication Date
JP2011055504A true JP2011055504A (ja) 2011-03-17

Family

ID=43417059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010196686A Pending JP2011055504A (ja) 2009-09-02 2010-09-02 ビデオ符号化のためのピクチャレベルのレート制御

Country Status (4)

Country Link
US (3) US8879623B2 (ja)
EP (1) EP2306735B1 (ja)
JP (1) JP2011055504A (ja)
CN (2) CN102006471B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022500901A (ja) * 2018-11-14 2022-01-04 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 符号化の対象となるデータ処理方法、装置、及びコンピュータプログラム

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8379718B2 (en) 2009-09-02 2013-02-19 Sony Computer Entertainment Inc. Parallel digital picture encoding
US8848799B2 (en) * 2009-09-02 2014-09-30 Sony Computer Entertainment Inc. Utilizing thresholds and early termination to achieve fast motion estimation in a video encoder
FR2954036B1 (fr) * 2009-12-11 2012-01-13 Thales Sa Procede et systeme pour la determination de parametres de codage sur des flux a resolution variable
US20120249869A1 (en) * 2009-12-14 2012-10-04 Thomson Licensing Statmux method for broadcasting
US20110255594A1 (en) 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding
CA2798012A1 (en) 2010-05-07 2011-11-10 Nippon Telegraph And Telephone Corporation Video encoding to prevent decoder buffer underflow by re-encoding selected pictures in a video sequence using a retry count or a retry point
CN102870415B (zh) * 2010-05-12 2015-08-26 日本电信电话株式会社 活动图像编码控制方法、活动图像编码装置以及活动图像编码程序
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US8711928B1 (en) 2011-10-05 2014-04-29 CSR Technology, Inc. Method, apparatus, and manufacture for adaptation of video encoder tuning parameters
US9432704B2 (en) * 2011-11-06 2016-08-30 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
JP6080375B2 (ja) 2011-11-07 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9438918B2 (en) * 2012-04-23 2016-09-06 Intel Corporation Frame level rate control using motion estimated distortions
US9398302B2 (en) * 2013-03-08 2016-07-19 Mediatek Inc. Image encoding method and apparatus with rate control by selecting target bit budget from pre-defined candidate bit budgets and related image decoding method and apparatus
GB2514777B (en) * 2013-06-03 2018-12-19 Displaylink Uk Ltd Management of memory for storing display data
KR20160053988A (ko) * 2013-10-25 2016-05-13 미디어텍 인크. 전송 동기화 이벤트에 따라 압축된 픽처의 전송을 제어하는 방법 및 장치
US10356405B2 (en) * 2013-11-04 2019-07-16 Integrated Device Technology, Inc. Methods and apparatuses for multi-pass adaptive quantization
US9485456B2 (en) 2013-12-30 2016-11-01 Akamai Technologies, Inc. Frame-rate conversion in a distributed computing system
US10397574B2 (en) * 2014-05-12 2019-08-27 Intel Corporation Video coding quantization parameter determination suitable for video conferencing
US9386317B2 (en) 2014-09-22 2016-07-05 Sony Interactive Entertainment Inc. Adaptive picture section encoding mode decision control
US10419760B2 (en) 2014-09-29 2019-09-17 Sony Interactive Entertainment Inc. Picture quality oriented rate control for low-latency streaming applications
US10097828B2 (en) * 2014-12-11 2018-10-09 Intel Corporation Rate control for parallel video encoding
US10171807B2 (en) * 2015-01-29 2019-01-01 Arris Enterprises Llc Picture-level QP rate control for HEVC encoding
US20160234496A1 (en) * 2015-02-09 2016-08-11 Qualcomm Incorporated Near visually lossless video recompression
US10015496B2 (en) 2015-03-25 2018-07-03 Samsung Display Co., Ltd. Method and apparatus for temporal reference coding with light coding systems for display systems
US9942552B2 (en) * 2015-06-12 2018-04-10 Intel Corporation Low bitrate video coding
US10200716B2 (en) 2015-06-25 2019-02-05 Sony Interactive Entertainment Inc. Parallel intra-prediction encoding/decoding process utilizing PIPCM and/or PIDC for selected sections
US10356406B2 (en) * 2016-01-19 2019-07-16 Google Llc Real-time video encoder rate control using dynamic resolution switching
US20170280139A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Apparatus and methods for adaptive calculation of quantization parameters in display stream compression
US10178390B2 (en) 2016-03-30 2019-01-08 Sony Interactive Entertainment Inc. Advanced picture quality oriented rate control for low-latency streaming applications
CN105898329A (zh) * 2016-04-12 2016-08-24 乐视控股(北京)有限公司 一种用于视频编码的码率控制方法及装置
US10616583B2 (en) 2016-06-30 2020-04-07 Sony Interactive Entertainment Inc. Encoding/decoding digital frames by down-sampling/up-sampling with enhancement information
WO2018072675A1 (en) 2016-10-18 2018-04-26 Zhejiang Dahua Technology Co., Ltd. Methods and systems for video processing
US11212536B2 (en) * 2017-07-14 2021-12-28 Sony Interactive Entertainment Inc. Negative region-of-interest video coding
US10998922B2 (en) * 2017-07-28 2021-05-04 Mitsubishi Electric Research Laboratories, Inc. Turbo product polar coding with hard decision cleaning
CN109413427B (zh) 2017-08-17 2022-04-08 腾讯科技(深圳)有限公司 一种视频帧编码方法及终端
US11871052B1 (en) * 2018-09-27 2024-01-09 Apple Inc. Multi-band rate control
CN110213585B (zh) 2018-10-31 2022-10-28 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读存储介质和计算机设备
CN109905711B (zh) * 2019-02-28 2021-02-09 深圳英飞拓智能技术有限公司 一种图像的处理方法、***及终端设备
CN110336581B (zh) * 2019-07-09 2020-11-13 北京遥感设备研究所 一种通用可配置msk或qpsk直序扩频调制***及方法
US11164339B2 (en) 2019-11-12 2021-11-02 Sony Interactive Entertainment Inc. Fast region of interest coding using multi-segment temporal resampling
CN111669594B (zh) * 2020-06-23 2022-12-02 浙江大华技术股份有限公司 一种视频编码方法、装置及计算机可读存储介质
CN115428451A (zh) * 2020-07-31 2022-12-02 Oppo广东移动通信有限公司 视频编码方法、编码器、***以及计算机存储介质
US11955067B2 (en) 2021-03-17 2024-04-09 Samsung Display Co., Ltd. Simplified rate control for an additive iterative compression system
CN115219067B (zh) * 2022-09-20 2023-01-03 金乡县成启仓储服务有限公司 一种用于大蒜仓储实时状态监测方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1075451A (ja) * 1996-08-30 1998-03-17 Sony Corp 映像データ圧縮装置およびその方法
JPH11331850A (ja) * 1998-03-16 1999-11-30 Mitsubishi Electric Corp 動画像符号化方式
JP2001008215A (ja) * 1999-06-24 2001-01-12 Victor Co Of Japan Ltd 動画像符号化装置及びその方法
JP2001512643A (ja) * 1997-02-12 2001-08-21 サーノフ コーポレイション コード化システムにおけるレート制御を最適化するための装置および方法
JP2009017127A (ja) * 2007-07-03 2009-01-22 Sony Corp 符号化装置および符号化方法
JP2009177443A (ja) * 2008-01-24 2009-08-06 Canon Inc 符号化装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5650860A (en) * 1995-12-26 1997-07-22 C-Cube Microsystems, Inc. Adaptive quantization
CN1206864C (zh) 2002-07-22 2005-06-15 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
US7492820B2 (en) * 2004-02-06 2009-02-17 Apple Inc. Rate control for video coder employing adaptive linear regression bits modeling
US20050232497A1 (en) * 2004-04-15 2005-10-20 Microsoft Corporation High-fidelity transcoding
US8793164B2 (en) * 2006-06-23 2014-07-29 Mark Sendo System and method enabling children to shop on-line
US8699561B2 (en) * 2006-08-25 2014-04-15 Sony Computer Entertainment Inc. System and methods for detecting and handling errors in a multi-threaded video data decoder
US8135063B2 (en) * 2006-09-08 2012-03-13 Mediatek Inc. Rate control method with frame-layer bit allocation and video encoder
US20080151998A1 (en) * 2006-12-21 2008-06-26 General Instrument Corporation Method and Apparatus for Providing Rate Control for Panel-Based Real Time Video Encoder

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1075451A (ja) * 1996-08-30 1998-03-17 Sony Corp 映像データ圧縮装置およびその方法
JP2001512643A (ja) * 1997-02-12 2001-08-21 サーノフ コーポレイション コード化システムにおけるレート制御を最適化するための装置および方法
JPH11331850A (ja) * 1998-03-16 1999-11-30 Mitsubishi Electric Corp 動画像符号化方式
JP2001008215A (ja) * 1999-06-24 2001-01-12 Victor Co Of Japan Ltd 動画像符号化装置及びその方法
JP2009017127A (ja) * 2007-07-03 2009-01-22 Sony Corp 符号化装置および符号化方法
JP2009177443A (ja) * 2008-01-24 2009-08-06 Canon Inc 符号化装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022500901A (ja) * 2018-11-14 2022-01-04 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 符号化の対象となるデータ処理方法、装置、及びコンピュータプログラム
JP7163485B2 (ja) 2018-11-14 2022-10-31 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 符号化の対象となるデータ処理方法、装置、及びコンピュータプログラム

Also Published As

Publication number Publication date
CN103402099A (zh) 2013-11-20
CN103402099B (zh) 2016-12-07
US20190297347A1 (en) 2019-09-26
EP2306735A1 (en) 2011-04-06
CN102006471A (zh) 2011-04-06
US20110051806A1 (en) 2011-03-03
US20150016513A1 (en) 2015-01-15
CN102006471B (zh) 2013-09-25
US8879623B2 (en) 2014-11-04
EP2306735B1 (en) 2018-10-17

Similar Documents

Publication Publication Date Title
JP2011055504A (ja) ビデオ符号化のためのピクチャレベルのレート制御
JP5180294B2 (ja) ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御
TW404132B (en) A real-time single pass variable bit rate control strategy and encoder
TW404137B (en) Method and apparatus for adaptively encoding an information stream
JP4988567B2 (ja) マルチパスのビデオ符号化
US7301999B2 (en) Quantization method and system for video MPEG applications and computer program product therefor
US10178390B2 (en) Advanced picture quality oriented rate control for low-latency streaming applications
JP5087627B2 (ja) 効果的なレート制御および拡張したビデオ符号化品質のためのρ領域フレームレベルビット割り当てのための方法
JP5173409B2 (ja) 符号化装置および符号化装置を備えた動画像記録システム
EP2027727A1 (en) Method and apparatus for adaptively determining a bit budget for encoding video pictures
US20090074075A1 (en) Efficient real-time rate control for video compression processes
JP4221655B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
JP4668767B2 (ja) 動画像符号化装置及び動画像符号化プログラム
JP2008085673A (ja) 動画像符号化装置及びその方法
JP7343817B2 (ja) 符号化装置、符号化方法、及び符号化プログラム
US20150163484A1 (en) Variable bitrate encoding for multiple video streams
RU2587412C2 (ru) Управление скоростью передачи видео на основе гистограммы коэффициентов преобразования
Wu et al. Rate control in video coding
Xu et al. Rate control for consistent visual quality of H. 264/AVC encoding
JP4962609B2 (ja) 動画像符号化装置及び動画像符号化プログラム
Sanz-Rodríguez et al. A parallel H. 264/SVC encoder for high definition video conferencing
Overmeire et al. Constant quality video coding using video content analysis
JP2007300557A (ja) 画像符号化装置及び画像符号化方法
JP4186544B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
Liu Fast and adaptive H. 264/AVC video coding for network based applications

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110912

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111025