JP2010541386A - ビデオ圧縮技法及びビデオ伝達技法 - Google Patents

ビデオ圧縮技法及びビデオ伝達技法 Download PDF

Info

Publication number
JP2010541386A
JP2010541386A JP2010527008A JP2010527008A JP2010541386A JP 2010541386 A JP2010541386 A JP 2010541386A JP 2010527008 A JP2010527008 A JP 2010527008A JP 2010527008 A JP2010527008 A JP 2010527008A JP 2010541386 A JP2010541386 A JP 2010541386A
Authority
JP
Japan
Prior art keywords
picture
complexity
coding
coded
determining
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.)
Granted
Application number
JP2010527008A
Other languages
English (en)
Other versions
JP5427785B2 (ja
JP2010541386A5 (ja
Inventor
レオンタリス、アサナシオス
トゥラピス、アレクサンドロス
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.)
Dolby Laboratories Licensing Corp
Original Assignee
Dolby Laboratories Licensing Corp
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 Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Publication of JP2010541386A publication Critical patent/JP2010541386A/ja
Publication of JP2010541386A5 publication Critical patent/JP2010541386A5/ja
Application granted granted Critical
Publication of JP5427785B2 publication Critical patent/JP5427785B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • H04N19/615Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding using motion compensated temporal filtering [MCTF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

実施の形態は、過去及び将来のフレーム/フィールドのピクチャーの進歩した処理方法を用い、そして1以上のコーディング経路で動作するよう設計された、レート配分及びレート制御の方法のファミリーで特徴付けられる。少なくとも2つの方法のファミリーがある。すなわち、ピクチャー先読みを伴うレート配分の方法のファミリー、及び、平均ビットレート(ABR)制御の方法のファミリーである。各方法のファミリーについて少なくとも2つの他の方法を開示している。第1の方法のファミリーにおいて、いくつかの方法はイントラレート制御を伴う。第2の方法のファミリーにおいて、いくつかの方法は高い複雑さのABR制御及び/又は低い複雑さのABR制御を伴う。これらの実施の形態では、空間コーディングパラメータの改変、コーディングの予測、複雑さの処理、複雑さの推定、複雑さのフィルタリング、ビットレートの考慮、画質の考慮、コーディングパラメータの割り当て、及び/又は階層予測構造、が含まれることがある。

Description

本発明は、ビデオの圧縮システム、記憶システム、及び/又は、伝達システムのためのビデオデータのような、ビデオデータのレート配分、レート制御、及び/又は、複雑さに関するものである。
本出願は、2007年9月28日に出願した米国暫定特許出願、表題「ビデオ圧縮技法及びビデオ伝達技法」、出願番号60/976,381、に基づく優先権を主張し、この出願は、参照としてすべて本願に組み込まれるものとする。
レート配分とレート制御とは最新のビデオ圧縮システムの不可欠な構成要素である。レート配分は、ピクチャーをコーディングするためにビットターゲットを配分する機能である。レート制御は、ピクチャーをコーディングする間にビットターゲットを取得する機構である。
圧縮したビットストリームは、レート制御を介して、伝達媒体又は目標とされた媒体に組み込まれた具体的な帯域幅の制約を満足することができる。レート制御アルゴリズムは、一般に良好な視覚的品質を保っている間に目標ビットレートを達成できるように、各ピクチャー配分されるビット数を変化させようとすることができる。圧縮したビデオビットストリーム中のピクチャーは、種々の方法でエンコードすることができる。例えば、コーディングの形式には、イントラ予測スライス、インター予測スライス、及び双方向予測スライスが含まれる。
これらの実施の形態及び他の実施の形態には、任意の以下の特徴を含めることができる。一般に、本願に記載した主題の実施の形態は、動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップを含む、ピクチャーの複雑さを推定する方法であることを特徴とする。この複雑さには、時間的特性、空間的特性、あるいは輝度的特性が含まれる。本方法は、ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断することによりピクチャーの複雑さの測定基準を推定するステップと、ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップとを有する。この方法のいくつかの実施の形態では、ピクチャーの領域内のアーティファクトのマスキングを、ピクチャーの少なくとも1つの他の領域、過去のピクチャーの少なくとも1つの他の領域、又は将来のピクチャーの少なくとも1つの他の領域とを比較するため、コーディング統計(及び/又はピクチャーの他の特性)を用いることができ、あるいは、ピクチャー中のマスキングアーティファクトを過去のピクチャー又は将来のピクチャーと比較するため、コーディング統計を用いることができ、そして、このコーディング統計を用いて、複雑さの測定基準を推定することができる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にピクチャーの複雑さを推定させることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、高品質のコード化されたビデオを生成するための方法の実施の形態が含まれる。この方法には、ビデオピクチャー同士の複雑さの情報を評価するステップが含まれ、複雑さの情報には、時間情報、空間情報、又は輝度情報が含まれ、ビデオピクチャーには、ビデオフレームが含まれる。この方法には、フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップが含まれる。パラメータには、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータが含まれる。また、本方法には、異常値を除去するため及び/又はコーディングパラメータ中の及び/又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計及び/又はビデオフレーム同士の複雑さをフィルターするステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置に高品質のコード化されたビデオを生成させることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、ピクチャーの複雑さを推定するための方法の実施の形態が含まれる。この方法には、ピクチャーを階層構造にコード化すべきかどうかを判断するステップが含まれる。この階層構造には、複数のピクチャーレベルと、異なるピクチャーレベルでのビット又はコーディングパラメータが含まれる。ピクチャーが特定の階層レベルに割り当てられることを決定すると、この方法では、ピクチャーの重要性に基づいてピクチャーをコーディングするステップが含まれる。コーディングするステップには、画質のレベルを制御し、その重要性に基づいてピクチャーの少なくとも1つのコーディングパラメータを変化させるステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にピクチャーの複雑さを推定させることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、ビデオデータのコーディング方法の実施の形態が含まれる。この方法には、マクロブロックに基づくビデオデータのパラメータをコード化するステップを伴い、コード化には、空間的統計及び時間的統計における変動を明らかにすることが含まれる。このこの方法には、複雑さの測度を生成するステップと、複雑さの測度の重要性を判断するステップと、複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを改善/上昇するためのコーディングパラメータセットを調整するために複雑さの測度を用いるステップとが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、ピクチャーのエンコーディングの実施の形態が含まれる。この方法には、現在のフレームを受け取るステップと、現在のフレームについてのビットレートの目標とビット数を設定するステップと、ピクチャーの複雑さを判断するステップとが含まれる。複雑さの判断には、同時に、それぞれの複雑さに応じたコーディングパラメータを決定するステップが含まれる。複雑さの判断にはまた、それぞれの複雑さに応じたコーディングパラメータを決定した後、それぞれの複雑さを用いてそれぞれのピクチャーをコーディングするステップと、コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、選択された最終的なコード化されたピクチャーを用いて複雑さを更新するステップとが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、ビデオのレート配分の方法の実施の形態が含まれる。この方法には、ピクチャー先読みバッファの情報を受け取るステップと、第1のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップとが含まれる。このレート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップとが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、ビデオコーディングのレート配分の方法の実施の形態が含まれる。この方法には、量子化パラメータ及びピクチャーの多数の残りビットを初期化するステップ、及びピクチャー先読みフレームの全体的な複雑さを判断するステップとが含まれる。この方法にはまた、Iコード化されたピクチャー、Pコード化されたピクチャー、又は、周期的にIコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップが含まれる。このスライス形式を決定するステップには、Iコード化されたピクチャーについて、インターコード化されたピクチャーに配分されたビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第1のレート制御モデルを採用するステップと、Pコード化されたフレームについて、予測コード化されたピクチャーに配分されたビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第2のレート制御モデルを採用するステップと、周期的にIコード化されたピクチャーについて、このこのピクチャーをコード化するための予測量子化パラメータを用いるステップとが含まれる。スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、ビデオコーディングの方法の実施の形態が含まれる。この方法には、ビデオシステム中の以前のピクチャーのコーディング統計を受け取るステップと、将来のピクチャーの先読み情報を受け取るステップとが含まれる。この方法には、現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップが含まれ、コーディングパラメータセットにはコーディングパラメータが含まれる。このコーディングパラメータには、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとが含まれる。現在のピクチャー及び以前のピクチャーには、画質及びビットレート配分を調整するためのウェイトが含まれる。この方法にはまた、現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップが含まれる。画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正する。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
一般に、本願に記載した主題の他の特徴には、レート制御の方法の実施の形態が含まれる。この方法には、この方法には、コーディングパラメータ及びレートファクターのセットの値を初期化するステップと、ビットターゲット、ビットの数、及びコーディングパラメータモディファイアを決定するステップと、ビットターゲットを有するレートファクターを決定するステップとが含まれる。この方法にはさらに、ゼロより大のフレーム、レベルゼロで予測コード化されたフレーム、レベルゼロでイントラコード化されたフレーム、及び、レベルゼロで定期的にイントラコード化されたフレームからスライス形式を決定するステップが含まれる。この方法にはまた、決定したスライス形式を選択するステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び/又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
本願は、レート制御及びレート配分の技術とシステムについて開示する。一形態において、本願は、ビデオエンコーディングのレート配分及びレート制御のための、新規な単一パスアルゴリズム及び複数パスアルゴリズムを提供する。提案するレート制御アルゴリズムは、先読み情報及び/又は過去の情報をうまく利用してレート制御及びレート配分を行うことができる。この情報は、元の信号をダウンサンプリングして低い分解能で処理することにより、軽いウェイトの以前のコーディングパス又はエンコーダのダウングレードしたバージョンの以前のコーディングパスを介して、あるいは、入力信号に関する種々の統計を計算する動き補償プレアナライザの使用を介して、あるいはそれらを組み合わせたものを介して、レート制御アルゴリズムに送られる。記載のレート制御アルゴリズムを、シーン統計とピクチャー統計を進化した予測と進化したフィルタリングにより、さらに改善することができる。統計の予測とフィルタリングでは、将来のピクチャー及び過去のピクチャーの両方からの情報を用いることができる。
ここで用いられる、用語「スライス」、「ピクチャー」及び「フレーム」は、どれを使っても意味は変わらない。ピクチャーは、例えば、フレーム又はフィールドコーディングモードで用いられ、種々のタイプの複数のスライスを用いて、あるいは、単一のスライスとしてコード化される。一般に、ここで開示したすべての技術及び方法は、異なったタイプの複数のスライスによりコード化されたピクチャーの場合においても、個々のスライスに適用することができる。多くの形態で、ピクチャーは、フレーム又はフィールドのどちらかを定義する普通名詞となり得る。フィールドは、「インターレース形式」を意味することがある一方、正反対のパリティフィールド(例えばトップフィールドとボトムフィールド)はフレームを構成することができる(このシナリオでは、フレームは異なる時間インターバルで現れる偶数及び奇数の線を持つ)。この開示では、フレーム又はフレームピクチャーについて先に説明したが、同じ技術をフィールド(例えばトップ又はボトム)にも適用することができる。
用語「アルゴリズム」は、ステップ、方法、処理、スキーム、手続、動作、プログラム、ガイドライン、技法、シーケンス、及び/又は、1組の規則又は命令を意味することがある。例えば、アルゴリズムは、ハードウェアビデオプロセッサ及び/又はソフトウェアビデオプロセッサに対する1組のビデオ処理命令である場合がある。このアルゴリズムを、1以上の計算装置及び/又は計算機は(例えば、人の指示なしで)保存し、生成し、処理することができる。開示したアルゴリズムは、ビデオに関するものとすることができ、ビデオデータを処理、圧縮、保存、伝達、受け入れ、テスト、校正、表示、及び/又は、改良することのどの組み合わせを行うための、ビデオに関するシステム及び/又は装置、機械、ハードウェア、及び/又は、製品において、生成し、実行し、関連付けし、採用することができる。
いくつかの形態では、本願は、特定のビデオシーケンスにビットをどのように効率的に配分するかについて取り組んでいる。これは、各ピクチャーに必要とされる多数のビットをどのように計算することができるかを扱い、このピクチャーが、ビットターゲットを達成するような方法でコード化されることを明らかにすることで、行うことができる。
いくつかの実施の形態において、アルゴリズムにより、将来のピクチャーの複雑さについて事前の情報を有し、この情報を用いて、ビットを、全ピクチャーを含むピクチャー内に最終的に配分するような、先読み特性の利点を用いてビットターゲットを生成することができる。時間遅れの条件がない場合、ピクチャーの前を動く先読み窓になることができ、N個の将来のピクチャーについて情報を得ることができる。また、開示した構成では、ターゲットビット数を達成するために以前のコーディングセッションからの結果を受けて反復法によりビットターゲットを使うことができる。この先読み窓は、動き補償プレフィルター又は以前のコーディングセッションからの入力を用いることができる。トランスコーディングの形態を持つ別の実施の形態において、ビデオ入力は、種々の可能なコーディングの仕組みを用いて先にエンコードされているビデオであり、先読み窓はこのビットストリームから直接入力を用いることができる。
本明細書は、過去及び将来のフレームピクチャー/フィールドピクチャー統計の進歩した処理による利益を受けることができ、単一のコーディングパス又は複数のコーディングパスにより動作するよう設計することができるレート配分アルゴリズム及びレート制御アルゴリズムの1以上のファミリーについて記載している。これらの構成では、いくつかのコーディング時間遅れをシステムの中に組み込むことができる、ピクチャー先読みを考えることもでき、またその利益を受ける。
一般に少なくとも2つのアルゴリズムファミリーを導入し記載する。すなわち、(a)先読みを有する、レート配分のためのアルゴリズム/処理のファミリー、及び(b)これも先読みの利益を受けるが(a)のアルゴリズムとしての先読みに依存しない、平均ビットレート(ABR)制御アルゴリズムのためのアルゴリズム/処理のファミリーである。各アルゴリズムのファミリーの少なくとも2つをここに記載する。アルゴリズムの第1のファミリーでは、2つの開示したアルゴリズムは、とりわけイントラレート制御の点で異なる。アルゴリズムの第2のファミリーでは、複雑性の高いABR制御と複雑性の低いABR制御の2つのアルゴリズムがそれぞれ記載されている。後者の2つのアルゴリズムは、とりわけ、少なくともレートファクターの決定に関して異なる。
本願にはいくつかのアルゴリズムが記載されており、このアルゴリズムはピクチャーの複雑さの測度に依存する。このピクチャーの複雑さは、複雑さを処理しフィルタリングする進歩した方法に沿って記載されている。また、量子化装置(QP)、ラグランジュ乗数、閾値及び量子化による丸め補正、及び階層構造ピクチャーのレート配分のような、コーディングパラメータは、包括的なシーケンス統計を包括的に考慮することによりさらに改善することができる。また、加算されたゲインにピクチャー内の視覚的な質の/配分されたビットレートを変更することのできるアルゴリズムが記載されている。
第1のファミリー中の第1のアルゴリズムは、将来のピクチャーの統計及び複雑さの測度にアクセスしておくことに依存する新しいレート配分アルゴリズムとなる。第1のファミリー中の第1のアルゴリズムは(例えば、先読みアルゴリズムと共にレート配分の項参照)、各ピクチャーのビットターゲットを生み出すことができる。このアルゴリズムは、ピクチャーをコード化するために用いるコーディングパラメータ(例えば、QP、ラグランジュ乗数)を選択する必要がない。この選択は、入力としてビットターゲットを取り、コーディングパラメータを生み出す、任意のレート制御モデルに潜在的に存在する課題となる。この任意のレート制御モデルに用いることのできるアルゴリズムには、とりわけ、2次モデル及びρドメインレート制御モデルが含まれる。一般に、このアルゴリズムは、レート制御がビットターゲットを対応する1組のコーディングパラメータに変換する限りにおいてどのようなレート制御を使ってもよい。
いくつかの実施の形態において、第1のファミリー中のアルゴリズムは、レート制御を使わなくてもよく、ピクチャー毎のビット数を決定し、その後、レート制御アルゴリズムを用いてビットをQP値のようなコーディングパラメータにマップすることもできる。このコーディングパラメータは、望みのビットレートターゲットを達成するように適合させてもよい。このアルゴリズムの形態では、過去のピクチャーの先読み窓、及び/又は、複雑さを用いて、各ピクチャーにどれだけの数のビットを割り当てるかについて決定することができる。さらに、ピクチャーのビット数をどれだけの他のピクチャーがコード化され又はコード化されることが期待されるかに基づいて(例えば、ピクチャーをどのようにエンコードするかを選択するときにピクチャーに対する将来のインパクトを考慮して)調整することができる。このファミリー中の第2のアルゴリズムは、主として、イントラコード化されたピクチャーを考慮する点で、第1のアルゴリズムと異なる。
第2のファミリーのアルゴリズム(例えば、高い複雑さ及び低い複雑さの、先読みを行うABRレート制御の章参照)は、第1のアルゴリズムと比較して将来のピクチャー(例えば、先読み)に依存する割合を少なくすることができ、以前のピクチャーの統計に対する複雑な処理を採用することができる。これらのアルゴリズムは、レート配分及びレート制御の両方を行うことができる。ビットターゲットは各ピクチャーに用意されるわけではない。その代わり、これらのアルゴリズムは、現在のピクチャーを含めてすべてのコード化されたピクチャーの平均目標ビットレートを達成しようと試みる。これらのアルゴリズムは、将来のピクチャーからの情報を含んだ複雑さの推定値を採用することができる。これらのアルゴリズムの形態では、他のフレームから予測されないフレームを計算に入れることができる。これらのアルゴリズムは、平均ビットレート(ABR)レート制御アルゴリズムとして特徴づけることができる。
第2のファミリーの第2のアルゴリズム(例えば、高い複雑さ及び低い複雑さの、先読みを行うABRレート制御の章参照)は、多くの類似性をこのファミリーの第1のアルゴリズムと共有することができ、いくつかの実施の形態では、計算の複雑さを下げるという利点をもつことができる。両方のアルゴリズムとも、レート配分及びレート制御の両方を行うことができ、将来のピクチャー情報及び以前のピクチャー情報の両方から恩恵を受ける。
アルゴリズムの第1のファミリーにおけるアルゴリズムが、局所的にどれだけのビットが配分されるかを局所的に調整することにより全体的なターゲットを完成することができる一方、第2のファミリーのアルゴリズムは、ピクチャーのビットの数を明示的に特定することを必要としないで全体的なターゲットを完成することができる。これらのアルゴリズムは、ピクチャー中に望んでいないアーティファクトをなくすためにピクチャー間の質を「平滑」にする作用を行うことができる。これらのアルゴリズムは、すべてのピクチャーに対して正確なビットターゲットを必ずしも完成する必要性なしに全体的なビットレートターゲット完成するためにコーディングパラメータを配分することができる。それ故に、第2のファミリーのアルゴリズムは、アルゴリズムの第1のファミリーより、ビット領域においてざらつきが小さくなる。言い換えると、アルゴリズムの第1のファミリーは、ビット領域で(例えば、ビットレートに関して)よく作用し、第2のファミリーのアルゴリズムは、特性領域で(例えば、歪みに関して)よく作用する。
第2のファミリーのアルゴリズムは、以前にコード化されたピクチャーからの統計を用いて目標ビットレートを取得することができるが、第2のファミリーのいくつかのアルゴリズムでは、いくつかの実施の形態でより高い複雑さを持つことができる(例えば、高い複雑さ、先読みを行うABRレート制御の章参照)。いくつかの実施の形態において、第2のファミリーのアルゴリズムは、どのようにQP値を使うかのように、いくらかの類似性を持つことができる。これらのアルゴリズムのいくつかの先読みはゼロに低下させることができ、過去からの統計は将来を予測するために用いることができる。過去の情報は、シーケンスの最初から、又はシーケンスの複数のピクチャーを用いる不自然な窓からとすることができる。
第2のファミリーのいくつかのアルゴリズムは、現在のピクチャーの複雑さを分割して量子化パラメータを生み出すために用いることのできるレートファクターfcurrもまた有することができる。複雑さ及びレートファクターとの関係を決定するために用いる方法により、圧縮効率の点に関してさらなる改善を行うことができる。さらに、異なる特性の量を、イメージシーケンスの異なる場所に配分することができる。
時間的情報、空間的情報、及び輝度情報を組み込むことにより推定の改善が可能となる、新規な、複雑さ推定アルゴリズムについても説明する(例えば、複雑さの推定の章を参照)。
さらに、階層構造のピクチャーの場合における、複雑さ推定のための、新規なアルゴリズムが記載されている(例えば、階層予測構造でのコーディングパラメータの配分についての章を参照)。複雑さ推定アルゴリズムは、記載したレート制御アルゴリズムのすべてで役に立つのみならず他の既存の及び将来のレート制御アルゴリズムで役に立つ。1つの例では、階層構造のピクチャーの場合に効率的にコーディングパラメータを配分するためにアルゴリズムが提示されている。ビットをどう配分するのか、また改装レベル間でコーディングパラメータ(例えば、QPs)をどのように調整するのか、そしてどのように依存性を判断するのかについての説明を行う。この特徴について、ピクチャーの重要性に基づき、ピクチャーのコーディングの決定方法において、決定を行うことができる。これは、ビットの数を保持するという利益又は特性を改善するという利益をもたらす。特性、及び/又は、ビットレートは、量子化装置を変化させることだけでなく、特に、ウェイト付けした予測及び直接モードタイプ、モーション予測及びモード決定のためのラグランジュ乗数、変換/量子化閾値及び適応丸めパラメータ、及び、フレームスキップのような、具体的なコーディングモード、及び/又は、コーディングツールの使用及び優先順位付けのような、他のパラメータを変化させることにより、制御することができる。
配分は、異なるレベルで行うこともできる。例えば、コーディングパラメータ(例えば、QP)は異なるユニット、及び/又は、小さなユニットに変更することができる。例えば、セグメンテーション処理は、シーンを異なる領域に分離すると考えることができる。これらの領域は、多くの既存のコーディックにみられるように重複なしとすることができるが、重複させてもよく、重複させることは、重複ブロックモーション補正技術を考慮するなら有益なことである。いくつかの領域はコード化することが簡単である一方、他の領域は複雑であり多くのビットを必要とする。同時に、異なった領域は、主観的に、又は、将来の領域、及び/又は、ピクチャーに対するコーディングの影響という点で、もっと重要である。
上述の複雑さは、フィルターすることができ、ソースコンテントの統計として構成することができる。フィルターすることには、過去のピクチャー及び将来のピクチャーを含むことができ、本願に開示した他のすべてのアルゴリズムと相乗的に作用するよう設計することもできる。
いくつかの実施の形態において、複雑さは、複数の又は並列の枠組みで決定される。複雑さは、絶対値差分和(SAD)、平均2乗誤差(MSE)、ビデオ品質指数(VQI)、その他のような、種々の客観的あるいは主観的な歪み測定基準を用いて決定することができる。例示したように、これらの歪み測定基準が決定され、異なるビット配分、及び/又は、レート制御を行い、ピクチャー又は領域のエンコーディングのための適切なコーディングパラメータの選択の自由度を追加し、又は、所定のパラメータ又は1組のパラメータの信頼性を改善するために、並列して用いられる。具体的には、すべての又はほとんどの複雑さの測定基準が、同じコーディングパラメータを結果としてもたらすなら、この1組のパラメータを用いることの信頼性を改善することができる。これらの複雑さの測定基準は、ピクチャー又は領域を複数回、明確なコーディングパラメータセットでと共に並列的にエンコードすると考えることもできる。それに続く処理では、このピクチャー/領域の最終エンコーディングのためにどのコーディングパラメータセットを選択すべきかを決定する。一例として、目標ビットレートを最良の特性で達成するコーディングパラメータセットを考えている。別の例では、代わりに結合レート歪み(joint rate distortion)の最適な性能を結果的にもたらすコーディングパラメータセットを選択する。この情報もまた、続くエンコーディング経路で保存される。
いくつかの実施の形態において、圧縮効率は、最適なコーディングパラメータの、例えば量子化パラメータの、各ピクチャーに対する選択に依存することがある。この効率は、これらのコーディングパラメータをピクチャー自身の中に効率的に分配することによりさらに改善することができる。ピクチャーの特定の領域では、圧縮アーティファクトに対してより感度を上げることもできるしその反対も可能である。従って、これに対する対応は、明細書に記載している。
いくつかの実施の形態において、ノイズを、ピクチャー及びピクチャーのシーケンスに沿ってフィルターし平滑化することができる。複雑さの点に関して、可視なコーディングの差異を減少させるために他のフレームの情報を見ることにより、フレーム間のコーディング特性を改善することができる。異なったフレーム形式が分析され、シーン変更、全体的な輝度の変化に対抗するフェードイン/フェードアウト、2つの連続するシーンを繋ぐフェード遷移に対抗するクロスフェード、ピクチャーの部分的変化に対抗する局所輝度変化、及び全体的なカメラの動きに対抗するパン/ズームのような、そのような特定の形式に対して、パラメータが提供される(例えば、複雑さのフィルタリング及び特性ビットレートの考慮の章を参照)
空間的統計及び時間的統計における変化を考慮に入れるためにマクロブロック(MB)に基づくコーディングパラメータについて説明する(例えば空間的コーディングパラメータの適用の章を参照)。時間的な複雑さの測度(例えば、SAD、モーションベクトル、ウェイト、等)、空間的な測度(例えば、エッジ情報、輝度特性及びクロミナンス特性、及びテクスチャ情報)を含む、異なる複雑さの測度を生成することができる。これらは、ついで、測度の重要さを決定する処理に用いられ、複雑さを生成し特定のコーディングパラメータ(例えば、量子化パラメータ値)にマップし、ついで、好ましいイメージ特性又は目標ビットレートに従いイメージ領域をコード化するために用いられる。特に、特定の領域の重要度を上げたり下げたりするために、その領域にさらに特性を加えるために、その結果を付加パラメータとして役立てることができる。この結果は、重要なものと感知されたものに基づいて、局所的な調整をもたらすことができる。
模範的なレート制御アルゴリズムの種々のステップをここに開示する。いくつかの実施の形態において、このレート制御のシステムには、ビデオエンコーダ、任意的な動作推定及び補償プレアナライザ、任意的な空間統計分析モジュール、コーディングパラメータを選択する1以上のレート制御モジュール、エンコーディング処理から役に立つ統計を集める1以上の統計モジュール、モーション推定及び補償(MEMC)プレアナライザから統計を集める任意的な統計モジュール、及び、任意的なMEMCプレアナライザと、ビデオエンコーダと、からの統計を融合し、レート配分と制御モジュールとを制御する、決定モジュールを含めることができる。トランスコーダの実施の形態において、統計は、開示した技術を用いて再エンコードすることのできるビットストリームから直接的に導き出すことができる。
このアルゴリズムと複雑さ推定とは、特定のコーディング標準に限定されず、コーディング標準以外で又はコーディング標準に加えて用いることができる。また、コーディングの依存性を、コーディング性能を向上させるためにビデオコーディングシステムのコーディングの仕組み間で、吟味することができる。
本特許出願に記載した技術は、ここに記載したレート制御アルゴリズムの2つのファミリーに適用できるだけでなく、他の既知のレート制御アルゴリズム及びその将来の変形にも適用できる。例えばトランスコーディングのいくつかの実施の形態において、ビットストリームですでに使用可能となっている統計は、正確なビット配分、及び/又は、改善された特性をもたらすここに開示した方法から「そのままで」用いることができるので、開示した技術を用いて複雑さの改善をもたらすことができる。
用語、「イメージ特性」は、フィールド内の1以上のピクチャー要素(例えば1以上のピクセル)を表す。用語、「ソースフィールド」は、イメージ特性に関する情報を決定又は導き出すことのできるフィールドを表す。用語、「中間フィールド」は、イメージ特性に関する情報をソースフィールドを参照して記載することのできる、ビデオシーケンス中のソースフィールドの時間的な前後にある、フィールドを表す。用語、「視差量推定」は、例えば、ビデオシーケンスの2つ以上のフィールド間、又は他のイメージ、イメージの領域、ブロック、又はピクセルと予測信号との差のモーションベクトル又は、他の動きを伴うパラメータ値を計算する技術を意味し、予測信号を効率的に予測、モデル化、又は記述することができる。視差量推定の一例は、モーション推定である。用語、「視差量推定」は、モーションベクトル又は、他の推定したパラメータの予測に関する値を表すこともできる。用語、「視差量補償」は、ビデオシーケンスの1以上の中間フィールドのイメージ特性の動き又はいくつかのパラメータを記述するためにソースフィールド中のイメージ特性の位置における空間的な変化を計算するためにモーション推定パラメータその他のパラメータが用いる技術を表す。視差量補償の1つの例では、モーション補償を行うことができる。上記用語は、ビデオコーディングコンセプト(例えば、イントラ予測及び輝度補正)に関連して用いることもできる。
ここに記載した方法及び技術は、1以上の構成部品を有するシステム、装置又は機構、機械、コンピュータプログラム製品、ソフトウェア、ハードウェア、及びそれらの組み合わせにより実施することができる。例えば、コンピュータプログラム製品はコンピュータ読み込み可能な媒体上で明らかにエンコードすることができ、データ処理を行う装置(例えば、データ処理装置)に、ここに記載した方法の1以上の動作を実行するための命令を有することができる。
1以上の実施の形態の詳細は添付図及び詳細な説明として論述する。他の特徴、形態、及び改良は詳細な説明と図面と特許請求の範囲のより明らかである。
ビデオエンコーダにおけるレート制御の概要の一例の実施の形態を示す。 予測コーディング構成の例を示す。 予測コーディング構成の例を示す。 予測コーディング構成の例を示す。 予測コーディング構成の例を示す。 ビデオコーディングシステムの例を示す。 プレアナライザであらかじめ計算された値からSAD推定を行う例を示す。 複数レート制御モデルの組み合わせの一例のフローチャートを示す。 N個のコーディングパラメータセットを用いてピクチャーのエンコーディングを行う例の線図を示す。 異なるシーン形式のフレームの例を示す。 先読み技術を用いたレート配分のアルゴリズム1における主ループを例示したフローチャートを示す。 先読み技術を用いたレート配分のアルゴリズム1における全体的複雑さctotalの例のフローチャートを示す。 先読み技術を用いたレート配分のアルゴリズム2における主ループの例のフローチャートを示す。 先読み技術を用いたレート配分のアルゴリズム2における全体的複雑さctotal及びbitsintraの例のフローチャートを示す。 先読みを有する高い複雑さを持つABRレート制御のアルゴリズムの例のフローチャートを示す。 先読みを有する低い複雑さを持つABRレート制御のアルゴリズムの例のフローチャートを示す。 提案するレート制御アルゴリズムの種々のステップのいくつかの例の線図を示す。 システムの例を示す。
種々の図における類似の参照番号及び参照記号は、類似する要素を示す。
より一般的な目的を達成するための異なる方法をもたらすために用いることのできる、一般的な構成及び技術、及びもっと具体的な実施の形態を以下に記載する。
ここで用いられるとき、用語、I_SLICE、P_SLICE、及びB_SLICE は、それぞれ、Iコード化されたピクチャー、Pコード化されたピクチャー、及びBコード化されたピクチャーを意味する。同じ概念がここで、同じ又は異なる形式の複数のスライスを用いてエンコードされたピクチャーにも拡張することができる。周期的なイントラ・ピクチャー(I_SLICE)は、イメージシーケンスにおいてランダムアクセスとエラーからの復元力を改善するために、I_SLICEとしてコード化されたピクチャーを表す。H.246/AVCの場合は、Iコード化されたピクチャーを、本当のランダムアクセスを可能とするために、IDR(instantaneous decoding refresh)ピクチャーとして信号化することができる。あるいは、ピクチャーをノンIDRとして信号化することができ、参照ピクチャーを、将来のIコード化されたピクチャー の前にコーディング順序のピクチャーにコード化されることをさけるために、測度を採用することもできる。開示したレート制御アルゴリズムは、周期的なメトラコード化されたピクチャーについて説明することができる。
良好な視覚特性を保持し、伝達媒体又は目的とする媒体に組み込まれた特定の帯域幅の制約を満足するような目標ビットレートを達成することの目的は、最適化の問題への挑戦につながる目的に匹敵する。ビデオ圧縮システムの目標には、高い圧縮性能を達成すること、例えば、圧縮されたビットストリームの固定された目標ビット数に対してできるだけ低い主観的な、及び/又は、客観的な歪み(例えば、ピーク信号対ノイズ比、二乗平均エラー、等)を達成すること、及び/又は、特定の目標特性を与える最も高い圧縮を達成することが含まれる。ビデオビデオエンコーダは、対応するデコーダによりいったんデコードされた、圧縮されたビットストリームを生成し、表示することの可能な、任意的に処理された、そして受信サイドで見ることのできる、再構成されたビデオシーケンスを生み出すことができる。
保存媒体、及び/又は、伝達媒体により、このビットストリームは受信器に送られ、種々の方法でデコードされる。これらの通信モードの各々は、以下の要求を満足するような異なる時間遅れ要求及び帯域幅要求を持つことができる。
・ビットストリームは光ディスク又は磁気ディスク、又は、非揮発性コンピュータメモリ上で保存及び通信することができ、各メモリの形式によりそれぞれの帯域幅制限を有する。この帯域幅制限は、ある時間遅れを容認することができる。
・ユーザは、インターネット上のリモートサーバからビットストリームをダウンロードすることができ、上述のメモリ上のビットストリームの保存及び通信の場合と同様に、時間遅れを持って、後の時間にオフラインで再構成したビデオを見ることができる。
・ユーザは、ネットワークにより帯域幅が制限されている、リモートインターネットサーバからビットストリームを流すことができる。ユーザは、クライアントコンピュータ又はクライアント装置で、少しの時間遅れを持ってビデオストリームを見ることができる。
・このビットストリームは、ビデオ会議のようなリアルタイムの双方向ビデオ通信、又は、スポーツ又はニュースのような、実況イベントビデオストリームのどちらかを結果としてもたらすことができる。
いくつかの実施の形態において、リアルタイム通信は、サービスの質を満足するためには、端と端とで短い遅れを伴うことがある。実況イベントのストリーミングでは、リアルタイム通信より少し長い端と端との遅れを伴うことがある。光学ディスク及び磁気ディスクによる保存及びムービーのダウンロードは、コンピュータでのデコーディング及び表示が多くのバッファ領域を持つという利点があるので、多くの時間遅れを許容することができる。ムービーショー又はTVショーのインターネットストリーミングは実況イベントのストリーミングと比べたとき、さらなる時間遅れを起こすことがある。端と端との時間遅れは、通信チャンネルとビデオコーディング処理の関数となることがある。現代的なビデオコーダは、圧縮性能を向上させるために、現在のピクチャーのコーディングに先立ち将来のピクチャーをバッファすることができる。バッファすることにより、通信遅れと再生遅れが増加する。
データパイプの容量は、各通信媒体により変化することができる。光学ディスク及び磁気ディスクは、帯域幅の点で非常に寛大である。ブルーレイディスクやHD−DVDディスクのような高容量記憶媒体は、ビット容量及びデコーダバッファサイズの両方で上限を持つ。オフライン再生は、ビットストリームがオフラインで見られるので帯域幅の点で制限されることがないかもしれないが、ハードウェア上の制限、バッファリング時間遅れ、及びハードドライブの記憶スペースに関する実際上の制限が存在することがある。インターネットストリーミング及びリアルタイム双方向ビデオ通信は、ビットストリームの通信に用いられるネットワークの帯域幅により制限を受けることがある。場合によっては、1つの通信媒体のために生成したビットストリームは、それとは異なる通信媒体を介して通信するには適切でないかもしれない。例えば、光ディスク(例えば、DVD)に記憶させたビットストリームは、おそらく5Mbpsのような高いビットレートで圧縮されているであろう。このビットストリームが不適切な帯域幅のネットワークを介して流れてきた場合、エンドユーザの体感では低下するかもしれない。
図1は、ビデオエンコーダ内のレート制御構成100の実施の形態の例を示す。レート制御の機構により、帯域幅、時間遅れ、そのビデオシステムの特性上の制限を満たす圧縮したビットストリームを生成することができる。レート制御により、ビットレートの目標が合致し、デコーダの入力バッファがオーバーフロー又は欠乏することがない。任意的に、このレート制御により、所定のビットレートの目標と時間遅れ/バッファリング制限に対してできるだけ低い歪みを達成するよう試みることができる。
図1において、ビデオ入力102は、ビデオ入力102にモーション補償とイントラ予測ブロック160を加算する加算器116に送られる。加算器116からの出力は、変換ブロック104と結合し、量子化ブロック106に続く。量子化ブロック106及び変換ブロック104はまた、レート制御150からの入力を受け取る。変換ブロック104は、レート制御ブロック150により、以下のタスクのうちの1つを行うよう命令される。すなわち(a)変換マトリックスの調整、(b)とりわけ、特定の変換された係数のサンプルの調整又はゼロ設定(閾値)である。量子化ブロック106の出力はVLCブロック108及び逆量子化ブロック110と結合する。VLCブロック108から結果として生じたビットストリーム120、及び、ブロック、領域、又はイメージをエンコードするのに必要なビット数のようなエンコーディング処理に関する情報、及び、そのような決定により持ち込まれた歪みが、レート制御150に送られる。
レート制御はまた、モーション補償及びイントラ予測ブロック160からの入力を受け取り、出力をモーション補償及びイントラ予測ブロック160、モーション推定ブロック162、変換ブロック104、ループフィルター166、及び量子化ブロック106に送る。モーション補償及びイントラ予測ブロック160は、レート制御ブロック150により、以下のタスクのうちの1つを行うよう命令される。すなわち(a)選択的にイントラ予測モードを可能又は不可能にすること、(b)とりわけ、特定のコーディングモード(例えば、スキップモード)を選択すること、である。モーション推定ブロック162は、レート制御ブロック150により、以下のタスクのうちの1つを行うよう命令される。すなわち(a)選択的にモーション補償ブロックサイズを可能又は不可能にすること、(b)モーション補償の基準として特定のフレームを用いること、(c)とりわけ、モーション推定検索範囲と双方向予測モーション推定の繰り返しの回数の調整、である。ループフィルターブロック166は、レート制御ブロック150により、以下のタスクのうちの1つを行うよう命令される。すなわち(a)インループデブロッキングフィルターのパラメータの調整、(b)とりわけ、デブロッキングフィルターのスイッチを切ること、である。
逆変換ブロック112は、逆量子化ブロック110から入力を受け取り、出力を加算器126に送る。加算器126は、逆変換ブロック112及びモーション補償及びイントラ予測ブロック160から信号を受け取り、合計した信号をループフィルター166に送る。ピクチャー基準保存164は、ループフィルター166から入力を受け取り、出力をモーション補償及びイントラ予測ブロック160及びモーション推定ブロック162に送る。モーション推定ブロック162はまた、レート制御150から入力を受け取る。ループフィルター166はまた、レート制御150から入力を受け取る。ビデオ入力102はまた、モーション補償及びイントラ予測ブロック160及びモーション推定ブロック162の入力に送られる。
対応するビットストリームを、デコーダのバッファに関する2つの制約を満足するよう構成する。すなわち、受け取ったピクチャービットはバッファに適合することができ(さもなければ、バッファオーバーフローとなる)、デコーダがピクチャーをデコードすることができるように、デコーダがピクチャーをバッファから除去するとき、ピクチャーのすべてを受け取る(さもなければ、バッファオーバーフロー、バッファの欠乏の結果となる)。ピクチャーに配分された多数のビットに影響を与えることのできる多くの方法が存在する。使ったビットの数は、コーディングパラメータを変化させることにより制御することができる。具体的には、ブロックの残りの変換係数を量子化するために用いる量子化パラメータを変化させることにより、又は、全体ブロックをスキップさせ以前のブロックをそこにコピーする信号化のような、ビット数を少なくすることの代償として視覚的特性を犠牲にするコーディングモードを選択することにより、レート制御を適用することができる。レート制御は、また、モーション推定及びコーディングモードの決定の最適化を行うラグランジュレートの歪みでも値いられるラグランジュのラムダパラメータを変化させることにより、適用することができる。また、レート制御は、とりわけ、離散コサイン変換係数(DCT)を限界化(出力ゼロ化)、又は、コードが明確なピクチャーを選択せず、代わりに、先にコード化されたピクチャーをその場所に表示させるために、選択されなかったピクチャーをスキップさせる信号を選ぶことにより(例えば、フレームスキッピング)、達成される。
レート配分及びレート制御は、量子化パラメータ値は、他の方法と比べたとき、特性/歪みとビット使用との両方に直接的に関係するので、量子化パラメータ値を変化させることにより達成することができる。レート制御のいくつかの目的は、ビットレート目標を達成し、エンコーダバッファ及びデコーダバッファの制約を満足し、任意的に、圧縮したイメージシーケンスの視覚的歪みを低くすること、であろう。さらに、これらの目的は、固定された計算の複雑さ及びメモリの量の制約の下で達成しなければならないだろう。量子化パラメータの選択では、簡単なアルゴリズム又は大局的なアルゴリズムを採用することができる。
サンプルレート制御アルゴリズムは、例えば、以下の手順を有する。ビデオシーケンス中の第1のピクチャーは、所定の量子化パラメータ値によりエンコードされる。エンコーダは、次に、結果得られたビット数を元のビットターゲットと比較することができる。結果得られたビット数がビットターゲットを越えている場合は、ビット使用量を減らすために、次のピクチャーの量子化パラメータを増加させることができる。一方、結果得られたビット数がビットターゲットより小さい場合は、次のピクチャーの量子化パラメータを減少させて、使用ビットを増やすことができる。境界にきたとき、上述の発見的アルゴリズムは、多かれ少なかれ目標ビットレートを獲得することができる。しかしビデオ特性は、部分的に、アルゴリズムの平易さに大きく影響を受ける。
レート制御アルゴリズムは、種々のコーディングツールを介して性能を達成することができる。現在のピクチャーのブロックは、あらかじめデコードされたピクチャー(中間予測)からモーション補償ブロックとして予測することができる。他のコーディング構成において、現在のピクチャーにおけるピクセルは、ピクチャー(中間予測)からの情報を用いて予測することができる。これらの技術は、コーディングモードと称することができる。現在のピクチャーと予測(中間(インター)又は内部(イントラ))との誤差は、異なる歪み指標を用いて測定することができる。一般に平均2乗誤差(MSE)、又は等価的に、誤差の平方和(SSE)、差分絶対値和(MAD)、又は等価的に、(中間又は内部)予測誤差の絶対値差分和(SAD)を用いることもできる。SAD誤差は、高いSAD誤差は、高いエントロピーをもつ未処理の予測誤差の結果であり、圧縮するために手間がかかる可能性があるので、SAD誤差は、ブロックをエンコーディングする上での難しさの指標となる。このため、予測誤差を知ることにより、量子化パラメータの値をうまく選択する上での助けとなり、あるいは、一般に、ビットレートを制御する技術を適合させるのに役立つ。
レート制御パラダイムには、ビットを各ピクチャーに割り付け、同じピクチャーにビットターゲットを一組のコーディングパラメータに変換するレート制御アルゴリズム(又はモデル)によるレート配分アルゴリズムを含めることができる。実際の状況においては、目標ビットレートを達成するために変化するコーディングパラメータは、量子化パラメータQPである。2次方程式モデルは、ビットターゲットをQPに変換することのできるような1つの技術である。他のレート制御技術には、この2次方程式モデルより計算が複雑な、ロー(ρ)領域レート制御が含まれる。
H.246/AVC、VC−1、及び、MPEG−2のようなビデオコーディックにおいて、ピクチャーを、プレディクティブ・ピクチャー(P・ピクチャー)、イントラ・ピクチャー(I・ピクチャー)、又は、バイ・プレディクティブ・ピクチャー(B・ピクチャー)としてコード化することができる。いくつかのコーディックは、その上に、スライス/ピクチャー形式(例えば、H.246/AVC内のSPスライス及びSIスライス、マルチ予測ピクチャー、等)をサポートすることができ、フレーム及びフィールドコーディングピクチャー構造を考慮することができる。同じ形式のフレーム及びフィールドコーディングピクチャーは、異なるコーディングを変更する傾向がある。Iコード化されたピクチャーは、同じピクチャーのピクセルから中間予測を用いることができる。Pコード化されたピクチャー内のブロックを、先にエンコードした基準ピクチャーからモーション補償を用いて予測することもできる。これは、デコーディング順の過去のピクチャーある必要もなく、(MPEG−2又はMPEG−4パート2の)表示順の過去のピクチャーである必要もないことに留意すべきである。この基準ピクチャーは、必ずしもピクチャー中の各ブロックと同じである必要はなく、基準ピクチャーの候補から選択することができる。Bコード化されたピクチャーは、複数の基準ピクチャーから選んだ2つのモーション補償した予測ブロックの線形結合と考えることができる。
将来コーディングモード及びピクチャー形式も、我々のレート制御でサポートすることができる。これには、とりわけ、例えば、(a)全体的なモーション補償又はアフィンモーションモデルを用いた現在のブロックの予測、(b)複数の入力フレームから全体的なモーション補償を用いて作られたパノラミックフレームを用いた現在のブロックの予測、(c)2つ以上のモーション補償予測の非線形結合、及び(d)重複ブロックモーション補償、を含むことができる。
H.246/AVCにおける結合した予測は、同じピクチャー又は同じ予測方向(過去から、又は未来から)を起源とすることができる。ピクチャーをコード化するのに有効なコーディングツール(例えば、中間(インター)予測、又は内部(イントラ)予測)コーディングモードの点からは、Iコード化されたピクチャーは、本質的にPコード化されたピクチャーの特別な例であり、Pコード化されたピクチャーは、Bコード化されたピクチャーの特別な例である。一般にIコード化されたピクチャー、Pコード化されたピクチャー、及びBコード化されたピクチャーは非常に異なったコーディング統計を持つことができる。同じ量子化パラメータとコンテンツに対して、Iコード化されたピクチャーは一般に、Pコード化されたピクチャーより多くのビットを必要とする一方、実質的な時間的相関があるイメージのシーケンスに対して、Bコード化されたピクチャーは、Pコード化されたピクチャーより、平均すれば、少ないビット数しか必要としない。また、ピクチャーは、プログレッシブフレーム又は1対のインターレースフィールドとしてコード化することができる。インターレースのカメラを用いて、テレビジョン作品として、作られたビデオコンテンツは、フィールドコーディング又はマクロブロック適応フレーム/フィールドコーディングが用いられる場合は、効率的に圧縮することができる。
圧縮したビットストリームの特性を最適化するシーケンスの統計を適用することができるコーディングのときに、ビデオコーディックは、フレキシブルな予測構成を用いることのができる。H.246/AVCにおいて、図2乃至図5に示したような、階層構造でコード化されたピクチャーとして知られる複雑な予測構造として組み立てることが可能である。これらの構造とレート制御との関連は、各スライス形式がコーディング構造における位置に影響を受けるので、重要となる。例えば、図2の構成200に示したように、レベル2(230)のBコード化されたピクチャーは、レベル2のBコード化されたピクチャーと比較して、全く異なる特性/ビットレートトレードオフを持つことができる。
図2乃至図5は相互に類似している。それぞれの階層構造において、違うレベルがあり、最も基本となるレベルはレベル0(210)である。レベル0に属するピクチャーが最も高い優先順位を持ち、レベル0より高いレベルに属するピクチャーをデコードするのに必要となる。一般にレベルlのピクチャーをデコードするためには、最初に、レベル0からレベルl−1までのレベルに属するピクチャーをデコードしなければならない。MPEG−2及びMPEG−4のような、以前のコーディング標準では、エンコーディングピクチャーnの後、2つの選択肢がある。すなわち、ピクチャーn+1を予測しエンコードするか又は、ピクチャーn+mを予測し、次いで、ピクチャーnとピクチャーn+mとをピクチャーn+1からピクチャーn+m−1までの双方向予測に用いてエンコードするかのどちらかであり、ここでm>lである。n+1からn+m−1までのピクチャーは、まず、ピクチャーnとピクチャーn+mがデコードされなければ、デコードすることができない。さらに、ピクチャーnとピクチャーn+mは、ピクチャーn+1からピクチャーn+m−1までとは独立してデコードすることができる。従って、ピクチャーnとピクチャーn+mは、優先順位の高いレベル、レベル0を持つ一方、n+1からn+m−1までのピクチャーは、レベル1である。n+1からn+m−1までのピクチャーの各々は、それぞれ独立してデコードすることができる。しかしH.246/AVCにおいて、これらのm−1の内部階層構造ピクチャー内に複雑な依存関係があり得る。まずピクチャーn+mをエンコードした後、ピクチャーnをコード化することも可能である。mの値は、エンコードしたシーケンスの1つのセクションから他のセクションに変化することができる。レベル0のピクチャーは「アンカー」ピクチャーと称することができる。
図3は、予測構造の他の例を示す。ピクチャーフレーム0がコード化された後、エンコーダは、ピクチャーフレーム8を予測しコード化する。先にコード化されたピクチャーを参照として用いて、Iコード化されたピクチャー、Pコード化されたピクチャー(表示している)、又は、Bコード化されたピクチャーを用いることで予測及びコーディングを行うことができる。次いで、ピクチャー4を、Bコード化されたピクチャーとして、ピクチャー0及び8を参照として用いてコード化することができる。ピクチャー4は、ピクチャー0及び8を参照より優先順位が低く、従って、異なるレベル、レベル1(220)、に属する。ピクチャー2を、Bコード化されたピクチャーとして、時間的に最も近いピクチャーであるピクチャー0及び4を参照として用いてコード化することができる。ここで、時間的予測距離は、一般に圧縮性能に直接影響を与え、参照が予測したピクチャーに近ければ近いほど、相関が高くなり、予測される残余が少なくなるという結果になる。ピクチャー2は、ピクチャー4より優先順位が低く、異なるレベル、レベル2(230)に属す。なお、従来のビデオコーディング(例えば、MPEG−2)からの他の新機軸として、コード化されたピクチャーを参照として保持することができ、これにはBコード化されたピクチャーが含まれる。
いくつかの実施の形態において、ピクチャー4は、参照ピクチャーとして一時メモリに蓄えておかなければならない。さもなければ、図4に示すように、ピクチャー2は、圧縮性能を下げてしまう、距離の離れたピクチャー8から予測しなければならないかもしれない。従って、ピクチャー2もまた、参照ピクチャーとして一時メモリに蓄えることができ、図5に示すように、ピクチャー1の双方向予測としてピクチャー0に関連して用いられる。次に、ピクチャー3が、参照ピクチャー2及び4を用いて、コード化することができる。ピクチャー1及び3は、ピクチャー0、2、及び4より優先順位が低く、従って、低いレベル(例えば、レベル3、図3の240、レベル2、図4及び図5の230)に属す。図3に示すように、同じ処理が、続いて、例えば、ピクチャー5、6、及び7で繰り返される。
上記説明ではBコード化されたピクチャーについて説明したが、ピクチャー1から7は、I、P、又はB形式の複数のスライスを用いることを含む、コーディック内の有効などのようなコーディングでエンコードすることもできる。さらに、ピクチャー1、3、5、7を、モーション補償予測に用いることがないことを意味する使い捨てピクチャーとして送信することができる。ピクチャー形式のこの使用は、メモリ資源を節約し、時間的拡張性をもたらす。用いられる階層構造は、恣意的であり、2進法へ分解に従う必要がない。このような構成は図4及び図5に示されている。例えば、図5乃至図7は、ピクチャー7がBコード化されたピクチャーとしてコード化することができるように、ピクチャー4及び8を用いて、図3では、違うようにコード化することができる。ピクチャー7は、レベル2に属する参照として一時メモリに蓄え留ことができる。次に、ピクチャー6は、参照としてピクチャー4及び7を用いて、Bコード化されたピクチャーとしてコード化することができる。最後に、ピクチャー5が、Bコード化されたピクチャーとして、ピクチャー4及び7を参照としてコード化することができる。この例では、ピクチャー5及び6は、レベル3に属し、使い捨てのピクチャーとして信号化することができる。
実際のビデオビットストリームは、具体的なシーンの統計に適する、コード化されたピクチャーの強さの結合を用いて生成することができる。一般に、シーケンスが固定的であればあるほど、階層構造が長くなる。異なる長さと異なる予測構成を有する階層構造は異なる速度歪み特性を有する。加えて、ビデオコンテンツは、許容できる特性レベルを維持するためには時間と共に変化し、ビットレート要求を変更する。単一のシーン内でもいくつかのピクチャーは圧縮が容易となる一方、他のピクチャーは同じ圧縮比で圧縮による目に見えるアーティファクトを生じさせることがある。
本願に開示したアルゴリズムは、(数秒間の)制限のあるピクチャー先読みを考慮することができるビデオエンコーダのレート配分及びレート制御を扱うことができる。マルチパスアルゴリズムは、これらのアルゴリズムが全体的なシーケンスのコーディング統計の知識から利益を受けることができるので、非常に高い性能を発揮することができ、それに従い、視覚的性能を最大限にするためにビットを割り当て、消費することができる。既存の高性能シングルパスレート制御アルゴリズムは、現在のピクチャーに対する量子化パラメータを選択するために過去のコーディング統計を用いることができる。これらのアルゴリズムは、目標ビットレートを達成するためにQPを変更するために用いられる現在のピクチャーについての複雑さの測度を採用する。一例として、x264オープンソースH.246/AVCエンコーダは、その複雑さの測度として、ダウンサンプルしたビデオを用いて絶対変換したモーション補償を行った差分の和を採用することができる。
本願に開示した構成は、コーディング時間遅れをシステム中に組み込むことのできる、ピクチャー先読みを考慮しその利益を受けることができる。このようなビデオコーディングシステムについては、図6に例示されている。
図6は、開示したレート配分及びレート制御アルゴリズムに用いることのできるビデオコーディングシステム600の例を示す。図6において、入力ビデオ610は事前分析ブロック625、及び、ダウンサンプリングが必要な場合は、任意的に、ダウンサンプリングブロック620に送られる。ビデオの事前分析を行った後、時間遅れブロック630、ビデオエンコーダ640、及びプレフィルター635は事前分析の出力を受け取る。時間遅れブロック630は、任意的なプレフィルター635、及び/又は、ビデオエンコーダ640に対する時間遅れを事前分析ブロック625の出力に付加することができる。ビデオエンコーダ640の出力で、出力ビットストリーム690を取得する。
[複雑さの推定]
開示したレート配分及びレート制御アルゴリズムのいくつかは、ciとして表される、現在のピクチャーの複雑さの測度に基づき、決定を行う。現在のピクチャーの複雑さにより、ピクチャーが所定の忠実度のレベルでコード化されているかどうかが示される。ピクチャーの複雑さは、一般に、時間、空間、及び輝度特性の関数であり、以下のように表現される。
i=g(ci,temporal,ci,patial,ci,luminance)
関数g()は、時間、空間、及び輝度の複雑性の線形結合又は非線形結合とすることができる。例えば、ピクチャーが非常に動作の激しいシーンに属する場合、人の視覚システム(HVS)により時間的マスキングがかけられるので、詳細は目に見えないであろう。従って、よりビットを必要とするシーンのためにビットを節約するようピクチャーをコード化することが有益になる。例えば、現在のピクチャーは比較的動きのないシーンに属すると、複雑さの測度が示している場合は、圧縮アーティファクトが平均的な観察者に見えるので、詳細を保存する。これらのピクチャーは、他のピクチャーよりはるかに高い忠実度でコード化される。ここでは、ほとんどが時間的マスキングについて説明しているが、複雑さは、空間的マスキングの関数とすることもできる。高い空間的な変化とテクスチャとを有するシーンは、ピクチャーの空間的構成(例えば、エッジ、テクスチャ)によりさらに圧縮アーティファクトをマスクすることができる。各ピクチャーの圧縮性能に影響を与える3番目の要素は、輝度マスキングであろう。一般に、高い平均輝度(明るいシーン)を持つピクチャーは、圧縮アーティファクトをマスクすることができる。平均輝度が低いピクチャーに対して反対のことが言え、圧縮アーティファクトは同じ圧縮比ではよく見える。従って、暗いシーンでは、明るいシーンに比べて、一般に、高い忠実度の圧縮比を適用すべきである。
ピクチャーの複雑さは、将来のピクチャーの複雑さ又は過去のピクチャーの複雑さの関数とすることができる。コーダは、モーション補償予測を採用するので、ピクチャーが所定の特性レベルコード化され、将来のピクチャーにおいて、コーディング順序に関して十分相関が取れていれば、この初期特性をこれらのピクチャーに伝播させることができる。この場合、将来のピクチャーが現在のピクチャーと十分関連付けられるかどうかを予測することは有益であろう。所定の条件を満足する場合、このピクチャーは、レート制御要求を与えた隣接するピクチャーと比較したとき、より良質なレベルでコード化される。複雑さをフィルタリングする上でのさらなる情報について、以下に、複雑さのフィルタリングとQP/ビットレートの考慮について記載されている。時間的複雑さは、現在のピクチャーのモーション補償予測を生み出すモーションベクトルの分散及び平均値の関数とすることができる。
平均輝度、空間的分散、及びエッジ情報のような複雑さの測度はエンコーダで測定される。しかし、時間的複雑さ/マスキング測度は、モーション推定とモーション補償を必要とし、計算の複雑さの点からは費用のかかるものとなりえる。1つの選択肢は、モーション補償を行うためにゼロモーションベクトルを使うことであるが、このようにしても、複雑さの推定及びその性能の信頼性を大幅に減少させる可能性がある。別の実施の形態では、モーション推定及びモーション補償は、低めの空間分解能及び/又は低めの時間分解能のシーケンスを考え、これらの測定量を生成する。モーション推定は、ブロック又は領域に基づくような、又は、ピクセル再帰的技術、及び伝達、アフィン、及び放物線、その他を含むモーションモデルを有するような、種々のビデオ処理アルゴリズム内のエンコーダ内で行うことができる。また、モーション推定及びモーション補償を含む別のプレアナライザを介してこの分析を既に行っておくことのできる外部の機構を経由して、この情報を用意することができる。プレアナライザは、モーション補償したSAD、及び/又は、現在のピクチャーに対する、及び/又は、所定の将来の基準ピクチャー及び所定の過去の基準ピクチャーに対する時間的相関を計測する他の客観的主観的測定基準を決定することができる。
他の実施の形態において、プレアナライザをビデオデコーダに置き換えることができる。このデコーダは、例えば、MPEG−2、MPEG−4パート2、VC−1、H263、又はAVCデコーダのうちのいずれかのデコーダ形式とすることができる。このデコーダは、サポートするフォーマットのビットストリームをデコードすることができ、モーションベクトル、DCT係数、内部(イントラ)コーディングモード及び相互コーディングモード、その他を含む種々のビットストリームからの情報をシステムに供給することができる。この情報は、プレアナライザの複雑さ測定基準の代わりの複雑さ測定基準として用いることができる。
他の実施の形態において、プレアナライザは、他のコーディング統計のなかで、モーション補償予測誤差に加えて、上記の統計をすべて供給することのできる、ビデオエンコーダの事前コーディング経路又は複数の事前コーディング経路で置き換えることができる。このコーディング経路は、現在のピクチャーに制約を受けることがあり、あるいは、全体のビデオシーケンスの全コーディング経路とすることができる。これは、複数経路ビデオエンコーダ内の複数コーディング経路の1つとすることができる。異なったソース、例えばプレアナライザ、トランスコーダ、及び以前のエンコーディング経路、からの統計は、さらに性能を向上させるために、併せて用いることもできる。
モーション推定に対応するプレアナライザにより決定され、同じ基準ピクチャーを用いなかった処理を補償する歪み指標(例えば、SAD)がコーディング処理で用いられることが生じるかもしれない。コーディング期間に、コーディングに用いる基準ピクチャー及び時間的予測距離は、ソースの統計をうまく調整するために変化することができる。例えば、非常に激しい動きで特徴付けられるシーンでは、時間的予測距離は短くすることができる一方、緩やかな動きでは、時間的予測距離は長くなる。実際のコーディング処理に使うためのピクチャー/基準に対応する測定基準を予測するために、あらかじめ計算した複雑さ測定基準を、例えばSADを、変更することがありえる。この変更は、時間的複雑さの予測を改善することができるので、計算の複雑さが少し増大させるが、圧縮性能も改善することができる。
実際のコーディング状況に近似する例において、プレアナライザは、各ピクチャーに対して4つの異なったモーション補償した歪み指標(例えば、SAD)を生成することができる。各測定基準は、単一基準ピクチャーi−1、i−2、i+1、及びi+2からの単一予測したモーション補償予測に対応する。ビデオシーケンスをコード化するために用いる予測構造は変わることができる。SAD統計は、以下のような特別なコーディング構造に適している。
(a)IPPPPPコーディング構造。時間的予測距離は、1ピクチャーとすることができる。統計SADi(n)、ここでnはi−1、i−2、i+1、及びi+2のうちの1つ、が与えられると、時間的複雑さctemporalは、SADi(i−1)に等しくなるよう設定される。
(b)IBPBPBPコーディング構造。時間的予測距離は、1つのPコード化されたピクチャーからその次までの2つのピクチャーを伴うことができる。時間的複雑さは、SADi(i−2)に等しくなるよう設定される。
(c)IBBPBBPコーディング構造。時間的予測距離は、3に等しくすることができる。この具体的な例では、しかしながら、プレアナライザから得られる歪み指標は、以前のピクチャー(i−1)及びその前のピクチャー(i−2)の基準のみを参照するよう強いられることになろう。従って、時間的複雑さ(例えば、SAD)は、時間値を外挿することにより得られる。この構造は、例えば、以下の複雑さ予測装置が採用される。
(i)ci,temporal=SADi(i-1)+2×(SADi(i-2)-SADi(i-1))
(ii)ci,temporal=SADi(i-2)+(SADi(i-2)-SADi(i-1))
(iii)ci,temporal=3×SADi(i-1)
(iv)ci,temporal=α×SADi(i-1)+β×SADi(i-2)+γ
ここで線形モデルの3つのパラメータ(α、β、及びγ)は、(i)及び(ii)のモデルに類似する値で初期化することができ、次いで、例えば線形回帰を用いてコーディング統計から更新することができる。
(v)ci,temporal=α×SADi(i-1)+β×SADi(i-2)+δ×SADi 2(i-1)+ε×SADi 2(i-2)+γ
ここで、2次方程式のモデル(α、β、γ、δ、及びε)は、例えば線形回帰を用いてコーディング統計から更新することができる。
しかし、上記推定は、近接するピクチャー、i−1、i−2、i+1、及びi+2のSADを用いることにより、さらに、改善することができる。例えば、SAD値を用いて、時間的な複雑さは以下のように推定することができる。すなわち、
i,temporal=SADi(i-2)+SADi(i-3)
この一般的な複雑さ推定装置は、以下のようになる。

Figure 2010541386
変数ηは、とりわけ、ビットレート及びバッファリングの制約のような種々の要素に応じて変動することがあり、ウェイトWn,m及びVn,mは種々の方法で初期化される。これらの変数ηは、過去のコーディング統計を用いて、及び、とりわけ、線形回帰のような技術を用いて、順応的に更新されることもある。パラメータN及びMは、プレアナライザでのモーション推定時に用いられる参照ピクチャーの番号により制約を受ける。過去の2つのピクチャーと将来の2つのピクチャーとが使われるとしたら、M=2であり、NはMと予測距離dの両方に依存する。いくつかの実施の形態ではdは3に設定される。パラメータNはN=max(d,M)に設定することができ、ウェイティングパラメータは回帰アルゴリズムにより闇雲に更新されず、そのままで用いられる。このパラメータは、むしろ、シーンの特性解析に基づき更新される。例えば、ピクチャーがシーン変動として指定される場合は、ウェイトはゼロに設定される。代替的に、ピクチャーが予測され、参照ピクチャーが異なるシーンに属する場合は、例えばシーン変化が2つのピクチャーの間で起こる場合は、ウェイトをゼロにしてしまうこともできる。予測ピクチャー又は参照ピクチャーのいずれか一方がピクチャーiと同じシーンに属さない場合は、同様の制約を適用することができる。
(d)IBBBPBBBPコーディング構造。時間的予測距離は、4に等しくすることができる。状況は、有用な歪み指標が、2以下の距離を持つ参照ピクチャーを考える、(c)の場合に類似する。時間的複雑さを推定するために用いることのできる1つの解は、上記(c)(v)で示したような、5変数の2次法的式も出るを用いる、一般的複雑さ予測装置である。使用可能な他の予測装置には以下のものが含まれる。
i,temporal=2×SADi(i-1)+3×SADi(i-2)
i,temporal=2×SADi(i-2)
i,temporal=3×SADi(i-2)-2×SADi(i-1)
i,temporal=SADi(i-2)+SADi-2(i-4)
多数の組み合わせが可能であるが、すべて(c)(v)で扱ったような一般的複雑さ予測装置の特別な場合である。
(e)IBBBBBPコーディング構造。時間的予測距離は、6に等しくすることができる。この場合も、状況は、有効なSADが、2以下の距離を持つ参照ピクチャーを用いる、(c)の場合に類似する。時間的複雑さを推定するために用いることのできる1つの解は、上記(c)(v)で示したような一般的複雑さ予測装置である。使用可能な他の予測装置には以下のものが含まれる。
(i)ci,temporal=4×SADi(i-1)+5×SADi(i-2)
(ii)ci,temporal=2×SADi(i-2)+SADi(i-1)
(iii)ci,temporal=5×SADi(i-2)-4×SADi(i-1)
(iv)ci,temporal=SADi(i-2)+SADi-2(i-4)+SADi-4(i-6)
多数の組み合わせが可能であるが、すべて先に(c)(v)で説明したような一般的複雑さ予測装置の特別な場合である。
上記時間的複雑さの決定は、主として、圧縮したビットストリーム中で最も高い優先順位(レベル0)に属するピクチャー(例えば、廃棄することができず、省略なしてディジタルコードすることが必要となるもの)に有効である。同じ決定が、廃棄することができル、すなわち低い優先順位のPコード化されたピクチャー又はBコード化されたピクチャーに適用することができる。低い優先順位を持つピクチャーが廃棄されたとき、イメージシーケンスはそれでも全長に亘ってデコードされるが、低いフレームレートでデコードされる。単方向予測可能なSAD統計が可能でありさえすらば、上記複雑さ予測は、以下の置き換えにより、最も優先順位の高いBコード化されたピクチャーで有効とすることができる。
SADi(reference)←→min(SADi(R0(i),SADi(R1(i)))
項(R0(i)及びR1(i)は、ピクチャーiの双方向に用いられる2つの参照項の指標を意味する。このシナリオにおけるSAD指標は、単方向予測可能なモーション推定のみに基づくことができる。しかし、双方向統計を利用できる場合は、双方向予測可能なSADを以下の置き換えに用いることができる。複雑さ予測の構成は両方の場合で同じである。
しかしながらIコード化されたピクチャーの複雑さは、もはや時間的相関関係に基づかなくてもよい。Iコード化されたピクチャーの複雑さを、分散、エッジ、及びテクスチャ情報のような空間的特性に依存させることができる。複雑さは、bx×byブロック(例えばbx=by=8)の分散のウェイト付けした平均、グラデーションフィルター(例えば、Sobelフィルター又はPrewittフィルター)、及び、テクスチャ特性として決定することができる。例えば、テクスチャ情報が、ブロックの変換係数の全部又は一部(例えば、高周波)の2乗和を考慮することにより導き出すことができる。いくつかの実施の形態において、変換は、離散コサイン変換又は他の変換、例えば、アダマール変換、整数DCT近似、カルーネンレーベ変換(KLT)、又はウェーブレット変換、とすることができる。複雑でないアプリケーションでは、Iコード化されたピクチャーの複雑さを、分散、及びエッジ情報のみに依存させることができる。
複雑さを推定することができ、現在のピクチャーのコーディングパラメータの割り付けに影響を与えることができる。ピクチャーをコード化した後、コーディング統計を集めて、推定した複雑さとコーディング後の実際のものとの関係を分析する後退的モデルに基づく、初期の複雑さの推定を修正することができる。修正した複雑さを続くコーディング順序でフィルタリングするときに用いることができる。複雑さのフィルタリングは、以下の章で詳細に説明する。任意的に、修正した複雑さを、イメージシーケンスをコード化するために複数コーディング経路を用いるときに、次のコーディング経路として用いることができる。
図7は、時間的予測距離が4に等しいコーディングの複雑さの推定の例を示す。図7において、上部3列のシーケンス720、740、760は統計(例えば、ピクチャー間の歪み又は複雑さ)として知られているが、特定のピクチャーがどのように相互に関係しているかの情報ではない場合がある(ピクチャーnがどのようにピクチャーn+3と関連しているかについての明確な知見はない)。しかし、他のピクチャーとの間の情報はあるかもしれない。例えば、n+1のn+3に対する依存性、及び、nとn+1との間の情報があるかもしれない。この情報を用る、例えばnとn+3との間の統計を決定するための、外挿法があるかもしれない。最下段のシーケンス760は、どのように情報(例えば、複雑さ、又は、歪み)がnとn+3との間で決定されるのかを示している。言い換えれば、未知の複雑さ(例えば、nと比較したn+3)を隣接するピクチャー(例えば、nからn+1からn+2)の情報を考慮することにより決定することができる。
図7において、複雑さを、(図6に示すように)プレアナライザであらかじめ計算しておいた特別な値中に、数値として抽出することができる。図7は、SAD 値を有するピクチャーのいくつかのシーケンス720、740、760、及び780を示す(シーケンス720について、SAD(n−2)722、SAD(n−l)724、SAD(n+l)726、SAD(n+2)728の値、シーケンス740について、SADn+1(n−1)742、SADn+1(n)744、SADn+1(n+2)746、SADn+1(n+3)748の値、シーケンス760について、SADn+2(n)762、SADn+2(n+l)764、SADn+2(n+3)766、SADn+2(n+4)768の値、シーケンス780について、SADn+1(n−l)+SADn+1(n+3)782、SADn+3(n+2)+3(SADn+3(n+l)−SADn+3(n+2))784)。図7において、過去の情報(例えばSAD(n−2)722、SAD(n−l)724)と将来の情報(例えばSAD(n+l)726、SAD(n+2)728)は、シーケンス720のフレームn725の関連情報についてのSAD推定に用いることができる。いくつかの実施の形態において、過去の統計(例えばSAD(n−2)722、SAD(n−l)724)と将来の統計(例えばSAD(n+l)726、SAD(n+2)728)はフレームn725をコード化するときに既知となる。統計は、歪みのような誤差を推定するために用いることができる。いくつかの実施の形態において、他のピクチャー2どのように1つのピクチャーが関連するかのような、いくつかの複雑さは既知となっていないかもしれない。しかし、このような未知の複雑さは他の既知の複雑さに基づき推定することができる。シーケンス780は、他の既知の統計との依存性を用いて、ピクチャーn+3(例えばn+1(n+3))と比較してピクチャーn−lの複雑さの推定をどのように形成するかを示している。例えば、SADはシーケンス720にあり、SADn+1は、シーケンス740にあり、SADn+2は、シーケンス760にあり、シーケンス780は、シーケンス720、740、760とSADn+3とを結合させたものである。
シーケンス720、740、及び760において、フレームn725、745、765は、推定値に近い範囲内にあることが知られている。例えば、隣接するピクチャーはお互いに似ているであろう。この類似性は、将来これらのピクチャーをコード化するのがどれだけ複雑化に関連する可能性がある。これは、レート配分の情報を提供することができる。コーディングが複雑であればあるほど、レート制御及びレート配分のためにより多くのビットが必要となるであろう。ピクチャーnと比べて遠いピクチャーの情報は、他のシーケンス(例えば、シーケンス780について、SADn+1(n−l)+SADn+1(n+3)782、SADn+3(n+2)+3(SADn+3(n+l)−SADn+3(n+2))784)からの歪み値に数学的演算を施すことにより推定することができる。
モーション補償されたSADが時間的複雑さを推定するために上記で用いられたとしても、上記方法では、空間的相関及び時間的相関を計測する多くの客観的及び主観的指標を適用することが可能である。予測誤差の知覚インパクトを測定する指標は、SADの代わりに用いることができる。例えば、輝度の高いピクセル値における誤差は、輝度の低いピクセル値における誤差ほど目に見えないかもしれない。さらに、従来のSAD指標は、ブロック基準となっており、予測されたブロック内の歪みを計測する。新しい技術では、ブロック境界に沿ってゆがみを計測する指標を採用することができるので、ブロック内の歪みを最小限にすることができるばかりでなく、ブロック間の歪みも同様に最小限にすることができる。後者はアーティファクトをブロックすることができるので、重要となるであろう。さらに、上述の方法は、時間的にちらつくアーティファクトをも減少させるために時間方向に拡張した歪み指標を用いることができる。例えば、現在のブロックの誤差を最小限にすることは、現在のブロックの予測誤差と予測したブロックに最も相関のある以前のピクチャーにおけるブロックの予測誤差との差を最小限にするという観点から見ると、十分ではないかもしれない。
現在のピクチャーの複雑さを予測する指標を置き換えることはさておき、複数の指標を、候補となる複数のコーディングパラメータのセットを導き出すために用いることができる。これから、他の指標を最小化することにより最適なセットの選択を行うことができる。これには、異なる複雑さ指標を利用する別のレート制御モデルを保持することを必要とする。例えば、1つのレート制御モデルでは、SADを用いてコーディングパラメータを導き出すことができる一方、他のレート制御モデルでは、時間的ちらつきを最小化するMSE又は指標を用いてコーディングパラメータを導き出すことができる。ある条件(例えば、他の包括的な指標)の下で動作する決定モジュールは、2つの候補となるセットからコーディングパラメータのおおよそのセットをを選択することができる。このコーディングパラメータは線形形式又は非線形形式の結合とすることができる。例えば、両方の指標がコーディングパラメータ、例えば、量子化パラメータQPのための値、である場合は、他の操作は必要でなくなるかもしれない。さもなければ、2つの平均、最小(楽天的配分)、最大(悲観的配分)を選択することができる。代替的な実施の形態において、2つの指標が結果として異なるパラメータとなった場合、追加の指標又は複数の追加の指標を、最適なコーディングパラメータの決定のために考慮することができる。他の実施の形態において、N個の可能性のあるコーディングパラメータ中のN個の指標を用いると仮定すれば、これらのN個の中で最も生じやすいパラメータを選択することができる。この方法の一般的な線図を図8に示す。
図8は、最終的なコーディングパラメータセットを導き出すための異なる複雑さ指標に基づく複数のレート制御モデルを結合したもののフローチャート800を示す。現在のフレームのコーディングを開始し810、バッファ状態、残りビット、及びビットレート目標を設定する820。1、2、・・・、nから複雑さを決定し830、複雑さ1のコーディングパラメータを決定し832、複雑さ2のコーディングパラメータを決定し834、複雑さnのコーディングパラメータを決定する836。次いで、最終コーディングパラメータを選択し840、デコードしたピクチャーを生成する850。続いて、モデル1、2、・・・、nを更新し860、コーディングを終了する870。
ピクチャーはN個すべてのパラメータを用いてエンコードすることができる。次いで、他の基準を満足する最終のエンコーディングのパラメータセットの選択を、例えば、歪み性能の最高のレートを持つもの、又は、バッファリング制約をうまく満足するものの選択を、行うことができる。この方法を線図で図9に示す。
図9は、N個のパラメータを用いてピクチャーのエンコーディングを行う線図を示す。現在のフレームのコーディングを開始し905、バッファ状態、残りビット、及びビットレート目標を設定する910。1、2、・・・、nから複雑さを決定し920、複雑さ1のコーディングパラメータを決定し922、複雑さ2のコーディングパラメータを決定し924、複雑さnのコーディングパラメータを見つける926。次いで、コード化したピクチャーを生成し932、934、及び936、そして、最終的なコード化したピクチャーを選択する940。続いて、モデル1、2、・・・、nを更新し、コーディングを終了する960。
他の可能性のある例として、2つのモデルを用いることができ、1つはSADを最小化するためにコーディングパラメータを決定する一方、もう一つは、バッファリングの制約を厳密に満足させるコーディングパラメータを決定する。バッファリングの制約が緩やかな場合は、2つのセットのコーディングパラメータを結合させることにより、2つの制約に良いトレードオフとなりえる。この方法は、任意の数の複雑さの形式に対して適用可能である。
[複雑さフィルタリング及び特性/ビットレートの検討]
輝度及び空間的マスキングは平均輝度、分散、及びピクチャーの端部として数値化することができるが、同じことは時間的マスキングには当てはまらない。先の章では、ピクチャーの時間的マスキングの時間的な複雑さの推定が、実際のピクチャーのモーション補償予測誤差(差の絶対値の和−SAD)の単一関数となり得ると仮定して説明した。
場合によっては、例えば、内容が高い空間的活動/テクスチャにより特徴づけられるところ、及び/又は、歪みが大きいところでは、時間的マスキングによりアーティファクトが知覚されないことがあり得る。歪みは、非常に激しい動作(不鮮明な動作を含む)により又は実際の動きをうまく捕まえるためのモーション推定処理の効率が悪いために、大きくなることがある。このような場合において、高圧縮により付加的に持ち込まれた圧縮アーティファクトが簡単には知覚できないので、この領域に配分されたビットを少なくすることができる。これにより、ある意味では、主観的に重要だと見なされる他の領域のためにビットを確保しておくことができる。しかし、このような構成は、複雑さが時間的に変動するときには問題になる。これらの変動により、圧縮したビデオビットストリームの主観的ビデオ特性に害をもたらすことの成る目に見える特性の変動がもたらせることがある。
この問題を軽減するために用いることができる技術は、以前のピクチャーの複雑さで現在のピクチャーの複雑さをフィルターすることである。現在のピクチャーに対して複雑さが顕著に変化する場合は、コーディング特性/ビットレートの変動を、なめらかにそして一般的な人間の観測者に注目される内容に、制御すべきである。
提案するレート制御アルゴリズムでは、複雑さのフィルタリングは、以前のピクチャーから将来のピクチャーの複雑さを含めるように拡張される。また、この技術が圧縮したビデオの主観的特性に有益となる理由をいくつかの例で示す。
現在のピクチャーに依存する将来のピクチャーが現在のピクチャーに比べて高いコーディングの複雑さを有する場合、及び、圧縮アーティファクトによる視覚的な影響を減少させるために時間的マスキングが役に立つと見なされる場合は、低いビットレート、又は、もともと選択されていたものより低い視覚的特性により、現在のピクチャーをエンコードするのが最適であると判断することができる。利点として、圧縮アーティファクトは時間的にマスクされるので、高い再現性でエンコードすることはそれほど重要でないかもしれないピクチャーにビットを消費することをさける手助けをすることができる。これはまた、他の視覚的に重要なピクチャーをエンコードするために節約しておいたビットを使うのに役立てることができる。
同様に、次のピクチャーが高い時間的相関性、又は等価的に、次のピクチャーに比べて低いコーディングの複雑さ/歪みを示すならば、付加した特性は可視となりこれらのピクチャーに伝達されるので、現在のピクチャーは高い再現性のレベルでコード化することができる。
現在のピクチャーのフィルターした複雑さは以下のように記述することができる。

Figure 2010541386
上記方法の新規性は、将来のピクチャーの複雑さを考慮している点のみ成らず、ピクチャーとシーケンス特性に基づきウェイト係数wjを適用する点である。変数Nは、多くの要素に依存するが、とりわけ、エンコーディングシステムに適用可能な先読み(時間遅れ)の範囲、計算及び記憶量、及びソースコンテンツのフレームレートに依存する。Nが増大するにつれて、ゆくゆくは減少に復帰する点に到達する。
ウェイト係数wjは、どのような配分にも類似するように選択した初期ウェイト係数vjの関数として決定することができる。いくつかの実施の形態において、この配分は、最大値がゼロとなる、中央に偏った(j=0)曲線とすることができる。他の実施の形態において、この曲線は、ガウス曲線、指数関数、又は1次又は2次関数とすることができる。このアルゴリズムの実施において、これらのパラメータはシーン特性情報を注意深く考慮することにより修正することができる。任意的な実施の形態において、初期パラメータvjは、推定した複雑さと観測した複雑さ(例えば、エンコードするために用いたコーディングパラメータを与えたピクチャーに使われたビット数とすることができる)との間の差異を最小にしようとする回帰的アルゴリズムを用いることにより更新することができる。ウェイトパラメータによる各シーンの形式は、j=0又はj≠0により異なる。最終のウェイトパラメータの導出による各シーンの形式の効果についての説明は以下の通りである。
[シーン変更]
シーンの推移は、過去と将来の両方向にフィルタリングする時間的拡張を制限することができる。過去におけるピクチャーのフィルタリングは、現在のピクチャーに最も近いピクチャーから始め、シーン変更に当たると一旦停止することができる。これは、現在のピクチャーに最も近いピクチャーから始め、シーン変更に当たると停止することができる将来のピクチャーのフィルタリングにも同様に当てはまる。後者の場合、シーン変更の複雑さは考慮に入れなくてもよい。ここで、k<i<kであり、現在の前後のピクチャーkとピクチャーkで、最も近いシーン変更が起こっていると仮定する。ピクチャーiの複雑さをフィルターするために用いることのできるウェイトパラメータは以下のように定められる。

Figure 2010541386
現在のピクチャーがシーン変更と指定されたとき、時間的複雑さは、動き補償SADのみに基づくものであるから、信頼性のないものとなる可能性がある。シーン変更は、このSADをビットを現在のピクチャーに配分するために用いられた場合、重大な圧縮アーティファクト又はレート制御の不安定化を生じさせる可能性のある、人為的な高いSAD値をもたらす。しかし、上述したように、ここのイントラコード化されたピクチャーの複雑さは空間的統計の関数として記載されており、従ってピクチャーは複雑さの決定に含むことができる。さらに、ここに記載したシーン変更の複雑さの推定のためのアルゴリズムは、新しいシーンに属する将来のピクチャーの複雑さを用いることができる。フィルタリングは、新しいシーン変更が検出されたとき終了することができ、そのピクチャーに属する複雑さは、以下に示す関係に用いなくてもよい。

Figure 2010541386
早期の検出を通して、厳密なバッファレート制御が必要なところで、シーン変更の検討が先行割り当てビットに好都合となる。エンコーダがすでに検出したシーン変更に近づいた場合、ビットは現在のシーンの最後のいくつかのピクチャーから除外しておき、次の新しいシーンのために残しておくことができる。これは、少し悪いQPを用いることにより、又は、シーン変更の前にピクチャーのレート制御により導き出されたコーディングパラメータと比較して少ないビットを用いるという結果になる、コーディングモード及び/又はパラメータを用いることにより実施することができる。QP又は他のコーディングパラメータにおける変化は、確実に新しいシーンに配分するのに十分なビットとするために、高いビットレートと比較して潜在的に顕著に低いビットレートとすることができる。
[フェードイン/フェードアウト]
フェード移行は、全体的な輝度の変化で特徴付けることができる。フェード期間中、動き補償SADは、同様の内容と動きを有するがフェードを構成しなかった以前のピクチャーのSAD値と比較して、動き補償SADが大きくなることがある。ウェイト付けした予測を有さない場合は、一般的にこれは正しいであろう。しかしウェイト付けした予測の場合でも、SADが大きくなる傾向がある。終端効果は、ピクチャーが高い複雑さを有し、従って圧縮アーティファクトを発見することが難しくなるというものとなるであろう。残念ながら、これは、受忍できる特性レベルで圧縮するために、フェードは多くのビットを必要とするので、フェードに関して正しくないかもしれない。その結果、開示したアルゴリズムによっては、 時間的複雑さは、近接するピクチャーの複雑さの平均として決定することができ、ここでは、ウェイト付けした予測を使うか否かによって、フェードシーン移行に属さないピクチャーは、フェードシーン移行に属するピクチャーより大きなウェイトを受けるかもしれない。同様に、シーン変更に属するピクチャーの複雑さを除外することができる。例えば、フェードインがピクチャーl1で始まりl2で終わると仮定すると、ピクチャーiはフェードインに属し、ウェイト付けしたパラメータは以下のように修正される。

Figure 2010541386
フェードアウトがあると状況は変化することがあり、関心のあるコンテンツ(例えば、フィルターすべきコンテンツ)はフェードアウトが始まる前方に位置する。例えば、フェードアウトがピクチャーl1で始まりl2で終わると仮定すると、ピクチャーiはフェードインに属し、ウェイト付けしたパラメータは以下のように修正される。

Figure 2010541386
パラメータαは1以下の値に設定すべきであり、多くの場合ゼロに等しく設定することができる。H.246/AVCビデオ コーディング標準のベースラインプロファイル(Baseline Profile)のような、エンコーダにおいて、ゼロに近い値にすべきダル。いくつかの実施の形態において、エンコーダがウェイト付けした予測をサポートするような使われ方をしていた場合、値はゼロでなくてもよい。パラメータαは、0≦α≦1のように定めることができる。パラメータβは以下のように定めることができる。すなわち、0<β≦1とし、重要な役割を果たしパラメータβが1未満である場合は、シーンの最後(フェードアウト)又は最初(フェードイン)のどちらよりも高い再現性を維持して確実にフェードをコード化することができる。これは、フェードの期間中アーティファクトの視覚性を増大することについての上記説明から導かれる。他の条件はβ>αである。
フェードをコード化するために使うことができる代替的な技術には以下が含まれる。
・ フェードの前に、ピクチャーの平均的複雑さから決定した、フェードシーン全体をコード化する同一の固定したコーディングパラメータを用いる。
・ フェードに属するピクチャーをコード化するコーディングパラメータを改善する変更要素(例えば、QP修飾子)を付加する。および、
・ 先に説明したように、パラメータβを用いて、フェードの前後にピクチャーをエンコードするために用いるコーディングパラメータより常に良好な特性となるようにフェードをエンコードするようコーディングパラメータに条件を付加する。
一般に、開示したアルゴリズムはフェード形式により少なくとも2つのモードを持つことができる。すなわち、
・ フェードインに対して、フェードをコード化するために用いるコーディングパラメータは、フェードの最後に続くピクチャーをコード化するために用いるコーディングパラメータより結果的に良好な特性とすることができる。
・ フェードアウトに対して、フェードをコード化するために用いるコーディングパラメータは、フェードの開始に先立つピクチャーをコード化するために用いるコーディングパラメータより結果的に良好な特性とすることができる。
ウェイト付けした予測を用いるとき、ウェイト付けした予測は全体的な輝度の変化を明らかにすることができるので、上記2つの条件は(パラメータαにより)緩和することができる。
上記説明したフェードは、現在のピクチャーiがフェードに属する場合に関するものである。しかし、フィルタリングをフェードでないピクチャーに適用したとき、フィルタリングの長さにより、フェードであるピクチャーの複雑さも同様に考慮することができる。この場合、フィルタリングを適用済みのピクチャーに用いることのできる方法には、フィルター済みの複雑さの値を用いて決定することが含まれる。さもなければ、用いる複雑さの値は、元の値に1を越さないパラメータを掛けた値に等しくなる。
シーン変更の場合と同様に、ビデオコーディングのウェイト付けした予測に対する支えが不十分ならば、フェードに先立ち多くのビットを使い尽くしてしまう可能性のある、先行割り当てビットを避けるため又はコーディングパラメータの使用を避けるため、フェードの早期検出をレート制御で用いることができる。
[クロスフェード]
クロスフェードは、2つの連続するシーンのフェード移行である。これらのシーンの移行に対して、ひとつの方法は、移行の前のシーンと後のシーンの複雑さの平均を最初に測定することである。1つの例では、クロスフェードがピクチャーl1で始まりピクチャーl2で終わり、ピクチャーiがクロスフェードに属すると仮定することができる。ウェイト付けパラメータは以下のように修正される。

Figure 2010541386
パラメータα及びβは、フェード自身の複雑さよりシーンの複雑さのほうにウェイト付けを大きくするように選択することができる。クロスフェードの両側のシーンに属するピクチャーはベータでウェイト付けされる一方、フェードに属するピクチャーは、現在のピクチャーiを決定する複雑さよりはるかに寄与が少ない。
クロスフェードとして指定されたピクチャーは、隣接するピクチャーの複雑さの決定に寄与し、適用された方法は、フェードイン及びフェードアウトの方法を反映させることができ、ここで、既にフィルターされたピクチャーは、フィルターされた複雑さの値に寄与する一方、フィルターされていないピクチャーは、元の複雑さの値に寄与することができる。
その結果、フェード移行をコーディングパラメータでコード化することができ、2つのシーンのピクチャーをコード化するために用いられるコーディングパラメータより、(β>αなので)良いか少なくとも同等の結果となる。コーディングパラメータは、上記フェードイン/フェードアウトについて説明したように、一定値に固定することができ、あるいは、変化させることはできるが、そのシーン自身をコード化するために用いられたコーディングパラメータより良いようにすることが条件となる。フィルター長さが両方の予測方向に対して十分長いと仮定すると、クロスフェードにおける現在のピクチャーの複雑さは、先のシーン又は後のシーンの両方の関数となるであろう。
[フラッシュ]
フラッシュは、圧縮性能に不利益をもたらす、ウェイト付けした予測を通じて、あるいは、内部(イントラ)コーディング方法の使用により最初に取り組むことができる、大規模で瞬間的な輝度の変化をもたらす。結果として、フィルターされた複雑さは、元の値に近くなるよう維持される。上述したように、シーン変更とフェードの原因となる通常のフィルターは、フラッシュピクチャーのフィルターされた複雑さを生成するのに十分適している。代替的に、中心(i=0)のウェイトは大きくすることができる。しかし、フラッシュピクチャーが近接するピクチャーのフィルタリング範囲にあるならば、そのピクチャーの以上に高い複雑さにより、フラッシュ形式でない近接するピクチャーへのビット配分が減少することがある。この問題に対処する1つの方法は、jがフラッシュである場合に、フィルタリング係数Wjを減少させることである。この係数は、負ではない1未満のパラメータにより乗算することができる。
結果として、近接するピクチャーと比較して、フラッシュとして検出されたピクチャーは低い特性(必ずしも少ないビットを使っているということではない)でコード化されることがある。このコーディングとする理由は、短いフラッシュの持続時間が圧縮アーティファクトをマスクすることができるからである。もうひとつの理由は、これらのピクチャーに使ったビットは将来のピクチャーに恩恵を与えることが稀だからである。しかし、これが起こるの1つの場合は、お互いに近接して複数のフラッシュピクチャーがあるときである。この場合、これらは同じシーンに属し、高い相関関係を持つ。従って、フラッシュは参照ピクチャーとしてバッファの役割を果たすことができる。さもなければ、フラッシュが孤立している場合、フラッシュが参照としてバッファの役割を果たさなかったとしても有益である。
[局所的な輝度の変化]
このシーンの形式はフラッシュに似ているが、輝度の空間的範囲が変化する点で異なる。輝度の変化は、一部であり全部のピクチャーを必要とはしない。なぜなら、ピクチャーの一部は過去のピクチャー及び将来のピクチャーの同様の照明特性を維持し、コーディックによりウェイト付けられた予測の支持又は不支持に依存し、そして、これらのピクチャーが予測基準として維持することができるからである。フラッシュシーン形式として上述したように、フラッシュは、予測基準がお互いに非常に近接して生じるなら、予測基準として維持されるだけである。局所的な輝度の変化を伴うピクチャーの複雑さフィルタリングは、フラッシュを有するピクチャーのフィルタリングに従うことができる。しかし、ピクチャー内で、良好な特性を、過去のピクチャー及び将来のピクチャーに同じ輝度を維持する領域に、原則として配分すべきである。ピクチャーjが局所的な照明の変化であり、隣接するピクチャーのフィルターされた複雑さを導き出すために用いられるならば、フラッシュの場合と同様に、フィルタリング係数wjが増大する。いくつかの実施の形態において、係数は、負ではないが常に1以下であるパラメータで乗算することができる。
[カメラのパン/ズーム]
カメラのパン及びズームを含む、全体的なカメラの動きに対して複雑さをフィルタリングする方法は、クロスフェードによく似ている。全体的なカメラの動きに対して、カメラの動きの前後のシーンの複雑さの平均の測定が行われる。例えば、カメラの動きがピクチャーl1で始まりピクチャーl2で終わり、ピクチャーiがカメラの動きに伴うシーンに属すると仮定すると、ウェイト付けパラメータは以下のように修正される。

Figure 2010541386
パラメータα及びβは、シーン移行の前後の2つのシーンの複雑さよりカメラの動きの複雑さのほうがウェイトが大きくなるように選択することができる。カメラの動きの両側のシーンに属するピクチャーはβでウェイト付けすることができ、カメラの動きに属するピクチャーは、現在のピクチャーiの複雑さの決定により寄与することができる。カメラの動きに属するものとして指定されたピクチャーが近接するピクチャーの複雑さの決定に寄与するとき、複雑さがまだフィルターされていないピクチャーが元の複雑さの値に寄与する一方、既に複雑さがフィルターされたピクチャーは、フィルターされた複雑さの値に寄与する。
ピクチャーの移行ではなくてシーンの開始と終了にウェイトを置く、フェード移行の複雑さのフィルタリングと比べて、逆の方法を適用することができ、その方法では移行(カメラの動き)ピクチャーの方が複雑さの決定に寄与する(α>β)。複雑さフィルタリングの例を図10に示す。
図10は、異なるシーン形式に対するピクチャーの例を示す。特に図10は、シーン形式に依存してフィルターされた複雑さを有するピクチャーの例を示す。図示したピクチャーのシーン形式は、シーン変更1010、クロスフェード形式1020、フェードイン形式1030、及びフェードアウト形式1040である。各シーン形式1010、1020、1030、1040に対して、フェード移行のための複雑さのフィルタリング期間において、最も暗いピクチャーが、複雑さの決定に最も寄与する。例えば、シーン変更形式1010のみが含まれる場合、現在のピクチャー1015が複雑さの決定に最も寄与する。
[先読みを有するレート配分]
良好な圧縮性能を得るために先読みの範囲に依存するスキームを開発した。一般に先読みを広くすればするほど、圧縮性能はよくなる。このスキームは、各ピクチャーに対してレート推定と配分(例えば、ビット目標のセット)を行うことができ、ビット目標を達成するために、任意的に潜在するレート制御を採用することができる。付加的なコーディング経路をこれらの目標に合致させるために用いることができる。所定のビット目標のための量子化パラメータ(QP)を選択する潜在的なレート制御アルゴリズムは、とりわけ、2次モデル及びρ領域レート制御モデルを含む、このファミリーのどのアルゴリズムでもよい。
各ピクチャーのビット目標を決定することができる新しいアルゴリズムをここに開示した。先読み情報は、初期エンコーディング経路、又は、モーション推定を行うことができるプレアナライザ、又は、これらの組み合わせによりもたらすことができる。この情報は、先読みが有効な各ピクチャーの、及び、既にコード化されたピクチャーの複雑さciを必要とする。各ピクチャーの複雑さciは、絶対差の動き補償和(SAD)又は、ウェイト付けした予測を用いるときのSAD、又は、時間的及び空間的ピクチャーの統計値の組み合わせを必要とする。いくつかの実施の形態において、SADは、ウェイト付けした予測と共に、又はウェイト付けした予測なしで、用いることができる。
モーション推定では、ブロックベースの及び領域ベースのモーション推定、位相相関関係、ペル・リカーシブ技術、その他を含む、どのようなアルゴリズムを用いることもでき、平行移動、アフィン変換、その他を含む、種々のモーションモデルを用いることができる。先に説明したように、完全な複雑さの決定により多くの情報が得られる。2つの代替的なレート配分アルゴリズムを以下に説明する。
この章では、用語「プレディクティブ・ピクチャー」は、単方向予測、双方向予測、及び複数方向予測のプレディクティブ・ピクチャーが含まれる。
[先読みアルゴリズムを有するレート配分]
このアルゴリズム/スキームは、将来のピクチャーの統計と複雑さの測度を利用することに依存する新規なレート配分アルゴリズムである。このアルゴリズムは各ピクチャーのビット目標を生み出すことができる。このアルゴリズムでは、ピクチャーをコード化するために用いるコーディングパラメータ(例えば、QP)を選択する必要がない。この選択は、ビット目標を入力として受け取り、コーディングパラメータを生成する、潜在的任意的レート制御モデルの仕事とすることができる。この任意的レート制御モデルに用いることのできるアルゴリズムには、とりわけ、2次モデル及びρ領域レート制御モデルを含むことができる。一般に、このアルゴリズムは、そのレート制御がビット目標を対応するコーディングパラメータセットに変換する限りにおいて、どのようなレート制御を用いることもできる。
いくつかの実施の形態において、このアルゴリズムはレート制御を用いずに、ピクチャー毎にビット数を決定することができるようにし、その後、レート制御アルゴリズムを、ビットをQP値のようなコーディングパラメータにマップさせるためにレート制御アルゴリズムを用いることができるようにしても良い。このコーディングパラメータは、求めるビットレート目標を達成するのに適するようにできる。このアルゴリズムの特徴は、そのピクチャーにどれだけのビットを割り当てるべきかを決定するために、先読みウィンドウと過去のピクチャーを用いることができる点である。さらに、1つのピクチャーに対するビット数を、他のピクチャーがコード化されているのかこれからコード化されるのかに基づき調整することができる。
このアルゴリズムにおいて、nref>0は、先読みが可能なピクチャーの数を意味し、currは、コード化すべき現在のピクチャーの指標を意味する。先読みバッファにおけるピクチャーの全体としての複雑さは以下のように決定することができる。

Figure 2010541386
ピクチャーが、先にコード化されたピクチャー、例えば、P又はBを用いて中間(インター)コード化される場合、その複雑さの元の値は加算演算で用いることができる。しかし、イントラ・ピクチャーとしてコード化される場合は、次のピクチャーの複雑さが用いられ、1つの可能性のある実施の形態では5に等しくすることのできる係数Kを乗算される。

Figure 2010541386

中間(インター)コード化されたピクチャーに配分されたビットbitsiは、下式で与えられる。

Figure 2010541386
ここで、BRは、最初の全ビット割り当てから残ったビット数であり、NRは、さらにコード化すべきピクチャーの数であり、snは、イメージシーケンスの終端に近いビットレートを過剰に欠乏させないように設計した「セイフティ・ネット」である。いくつかの実施の形態において、セイフティ・ネットの値は30に設定される。従って、ピクチャーに配分されたビットは、全体の複雑さに対するその複雑さの割合に比例し、先読みピクチャーに配分することのできる残りのビット割合に乗算する。最後に、中間(インター)コード化されたピクチャーに配分されたビットbitsiの数は、下式で与えられる。

Figure 2010541386
イントラコード化されたピクチャーが周期的に挿入されることが顕著な例外となることがあり、この場合、ピクチャーをコード化するために用いられるQPは、以前のピクチャーをコード化するために用いられるQPに近接するよう選択される。周期的に挿入されたイントラコード化されたピクチャーがシーン変更と同時に生じる場合、シーン変更の等級付けを周期的な等級付けに優先することができ、ピクチャーを通常のイントラ・ピクチャーとしてコード化することができる。他の場合において、QP値を生成するためにビット目標をレート制御モデルに供給することができる。このピクチャーをこのQP値でエンコードすることができ、そして、このピクチャーをエンコードするために用いるビットの数(例えば、bit_old)をエンコーダはチェックすることができる。これらが元の目標と閾値以上の差異がある場合、bit_new=normBits(bit_old,QP_OLD,QP_NEW)と呼ばれる関数を、ビットの使用が元の目標に近づくようになるQP_NEWを生成するために反復して用いる。ピクチャーは、次に、新しいQP値を用いて再エンコードされる。PSNR条件を用いる場合は、ピクチャーを、PSNRの最大最小条件を満足するように再エンコードすることができる。このアルゴリズムの主ループを例示した線図を図11に示し、全体の複雑さctotalの決定の概略図を図12に示す。
図11は、先読み技術を有するレート配分のアルゴリズム1の主ループを例示したフローチャート1100を示す。図11において、ビデオのコーディング開始1110と初期化1115はi=0でQP、BR、NR、及びSnについて行われる。全体の複雑さctotalを、先読みピクチャー1120に対して決定する。次いで、Iコード化されたピクチャー、又は、Pコード化されたピクチャー、又は、周期的なIコード化されたピクチャーとなる、スライス形式を決定する1125。スライス形式がIコード化されたピクチャーである場合は、bitsi,jを決定し1135、このビットのRCモデルがQPを生成する1150。スライス形式がPコード化されたピクチャーである場合は、bitsi,pを決定し1140、このビットのRCモデルがQPを生成する1155。スライス形式が周期的なIコード化されたピクチャーである場合は、以前のQP、PrevQP、プラスオフセットが用いられる1160。オフセットは、表題が「階層予測構造へのコーディングパラメータの配分」の章での係数(c)−(f)と同様にして決定される。その後、ピクチャーがコード化される1170。目標に近い場合は1175、処理すべきピクチャーがまだあるかを判断する1185。目標に近くない場合は、QPを修正し1165、再度ピクチャーをコード化する1170。コーディングするピクチャーがなくなれば、コーディングを終了することができる1190。しかし、まだピクチャーがあれば、iを増加し(例えば、i++)1180、RCモデルの更新1145、そして、BR、NR、及びprevQPを更新し1130、その後、先読みピクチャーの全体の複雑さctotalを決定する1120。
図12は、先読み技術を有するレート配分のアルゴリズム1の全体の複雑さctotalを決定するフローチャート1200を示す。図12において、処理を開始し1200、パラメータを、j=1及びctotal=0に設定する1210。Pコード化されたピクチャー及びIコード化されたピクチャーについてスライス形式が決定される1215。Pコード化されたピクチャーがある場合は、ctotal+=cjとする1225。Iコード化されたピクチャーされたピクチャーがある場合は、ctotal+=5×cj+1とする1220。パラメータのjは、ctotalを決定した後増加する1230。ピクチャーがまだある場合は1235、次のピクチャーについてスライス形式を決定する1215。ピクチャーがもうない場合は1235、この処理を終了する1240。
[先読みを有するレート配分―アルゴリズム2]
このアルゴリズムは、先読みを有するレート配分のアルゴリズム1に類似している。先読みを有するレート配分のアルゴリズム2は、将来からの情報を含む複雑さ推定を採用する。この第2のアルゴリズムの特徴は、他のピクチャーから予測されないピクチャーを考慮に入れることができる点である。
このスキームは、先の章のスキームに非常に似ているものの、これから説明するようないくつかの違いがある。イントラコード化されたピクチャーとしてコード化されていない先読みバッファにおけるピクチャーの複雑さの和を以下のように決定することができる。

Figure 2010541386
全体の複雑さには、イントラコード化されたピクチャーとしてコード化されなかったすべてのピクチャーの複雑さの値を含めることができる。上述のアルゴリズム1と比較して、このアルゴリズムの主な違いは、イントラコード化されたピクチャーをエンコードするために配分するビット数を予測する必要がある点です。この予測は、すべてのイントラコード化されたピクチャーに対して以下のように決定することができる。

Figure 2010541386
normBits()の機能は、先に説明したとおりである。パラメータwはピクチャーの幅を意味し、hはピクチャーの高さを意味する。QPNORMは固定したQP値、例えば1つの可能性のある実施の形態では24、を意味し、線形モデルの係数α及びβは、線形回帰を使って先にイントラコード化されたピクチャーからの統計を用いて決定することができる。ピクチャーにより係数を指標化する理由は、これらの係数が更新され、値が変動するからである。シーン間での異なる統計を考慮に入れて、異なる係数のセットをシーン変更に使うことができ、異なるセットを周期的なイントラコード化されたピクチャーに使うことができる。
イントラコード化されたピクチャーに配分されたビットbitsiは、以下の式で得られる。

Figure 2010541386
従って、イントラコード化されたピクチャーに配分されたビットは、全体の複雑さに対するその複雑さの比に比例するので、先読みピクチャーに配分することのできる残りのビット割り当てに乗算し、イントラコード化されたピクチャーに配分する予測ビットを減算する。
先のアルゴリズムとは違って、イントラコード化されたピクチャーをコード化するために配分されたビットは線形モデルの助けを借りて決定し、以下の式で得られる。

Figure 2010541386
周期的に挿入されたイントラコード化されたピクチャーは、上記アルゴリズム1と同様に扱われる。このアルゴリズムの主ループを例示したフローチャートを図13に示し、全体の複雑さctotalの決定を図示するために例示したフローチャートを図14に示す。
図13は、先読み技術を有するレート配分のアルゴリズム2の主ループを例示したフローチャート1300を示す。図13において、ビデオのコーディング開始1310と初期化が、イントラ線形モデルでi=0でQ、BR、NR、及びSnについて行われる。全体の複雑さctotalとbitsintraを先読みピクチャー1320に対して決定する。次いで、Iコード化されたピクチャー、又は、Pコード化されたピクチャー、又は、周期的なIコード化されたピクチャーとなる、スライス形式を決定する1325。スライス形式がIコード化されたピクチャーである場合は、bitsi,jを決定し、このビットのRCモデルがQPを生成する1350。スライス形式がPコード化されたピクチャーである場合は、bitsi,pを決定し1340、このビットのRCモデルがQPを生成する1355。スライス形式が周期的なIコード化されたピクチャーである場合は、以前のQP、PrevQP、プラスオフセットが用いられる1360。オフセットは、表題が「階層予測構造へのコーディングパラメータの配分」の章での係数(c)−(f)と同様にして決定される。その後、ピクチャーがコード化される1370。目標に近い場合は1375、処理すべきピクチャーがまだあるかを判断する1385。目標に近くない場合は、QPを修正し1365、再度ピクチャーをコード化する1370。コーディングするピクチャーがなくなれば、コーディングを終了することができる1390。しかし、まだピクチャーがあれば、iを増加し(例えば、i++)1380、RCモデルを更新し1345、そして、BR、NR、及びprevQPを更新し1330、そして、bitsintraを決定する前の線形イントラモデル、及び、先読みピクチャーの全体の複雑さctotalを更新する1320。
図14は、先読み技術を有するレート配分のアルゴリズム2のbitsintraと全体の複雑さctotalを決定するフローチャート1400を示す。図14において、処理を開始し1400、パラメータを、j=1、ctotal=0、及びbitsintra=0に設定する1410。次いで、Pコード化されたピクチャー及びIコード化されたピクチャーについてスライス形式が決定される1415。Pコード化されたピクチャーがある場合は、ctotal+=cjとする1425。Iコード化されたピクチャーされたピクチャーがある場合は、bitsintra+=bit_estimeateとする1420。項bit_estimeateは、上述のnormBits関数を用いて決定する。パラメータのjは、bitsintra又はctotalを決定した後増加する1430。ピクチャーがまだある場合は1435、Iコード化されたピクチャーに対して、bitsintra+=bit_estimeateにする1420。ピクチャーがもうない場合は1435、この処理を終了する1440。
平均ビットレート制御アルゴリズム(先読みを有する高い複雑さと低い複雑さのABRレート制御の章参照)は、レート配分制御とレート制御の両方を行うことができ、将来のピクチャー情報と以前のピクチャー情報の両方の利益を得ることができる。
先読みを有するレート配分のアルゴリズム1及び2は、局所的にどれだけのビットを配分するかを調整することにより、広範囲な目標を達成することができる一方、第2のファミリーのアルゴリズムに属する追加のアルゴリズムは、ピクチャーに対してビット数を明確に特定しなくても広範囲な目標を持つことができ達成することができる。以下に説明するように、これらのアルゴリズムは、望ましくない、ピクチャー間で目に見えるアーティファクト及び目に見える特性のふらつきを回避するために、ピクチャー間の特性を「平滑化」する作用を行う。これらのアルゴリズムは、ピクチャー毎にビット目標を達成しなくても全体のビットレート目標を達成するようにコーディングパラメータを配分することができる。従って、以下に説明するアルゴリズムは、第1のファミリーのアルゴリズムよりビット領域の粒度が細かくない。言い換えれば、第1のファミリーのアルゴリズムのアルゴリズム1及び2は、ビット領域(例えば、ビットレートに関し)でより動作し、以下に説明するアルゴリズムは、特性領域(例えば、歪に関し)でより動作する。一般に、本開示に記載したアルゴリズムのすべては、推定したピクチャーの複雑さの測度及びフィルターしたピクチャーの複雑さの測度から利益を得る。
第1のファミリーのアルゴリズムのように、下記アルゴリズムは、以前にコード化されたピクチャーからの統計を用いて目標ビットレートを取得することができるが、以下のアルゴリズムの実施の形態において、より高い複雑さが生じるかもしれない(先読みを有する高い複雑さと低い複雑さのABRレート制御の章参照)。いくつかの実施の形態において、平均ビットレートアルゴリズムは、一般に、どのようにQP値を使うかのアルゴリズムとなんらかの類似性を有する。これらのアルゴリズムにおける先読みはゼロにすることができる(例えば、過去のピクチャーの統計のみを使う)。過去の統計のみを使う場合は、この統計を、将来の統計の推定と予想を行うために用いることができる。過去の情報は、シーケンスの始まりから得ることができ、現在のピクチャーに比較的接近したシーケン内の特定の数のピクチャーを用いる、不自然で、動いているウィンドウのみを考慮することができる。さらに、いくつかの実施の形態において、イメージシーケンスの異なる部分に対して、異なる量の特性を配分することができる。
[先読みを有する高い複雑さと低い複雑さのABRレート制御]
先読みレート制御アルゴリズムを有する高い複雑さと低い複雑さのABRレート制御は、2経路レート制御アルゴリズムと共に、多くのオープンソースのビデオコーダ(例えば、x264H.246/AVC、XvidMPEG−4、FFMPEGMPEG−4、等)に類似する平均ビットレート(ABR)レート制御アルゴリズムから、アイデアを引き出すことができる。このアルゴリズムは、現在のピクチャーに対して、レート配分を導くことができ、量子化パラメータQPのような、コーディングパラメータを選択することができる。このアルゴリズムの1つの基本的な前提は、すべての以前のピクチャーについてのコーディング統計を集めることができ、QP値のような、このコーディングパラメータを現在のピクチャーに対して選択することができることである。コーディングパラメータがQPであると仮定すると、このコーディングパラメータは、基本となるQP値に修正要素を加えたものとして設定される。このQP値プラス修正要素は、現在の物を含むすべての以前にコード化されたピクチャーの目標ビットレートを達成するために選択される。基本となるQP値は、今までにコード化されたすべてのピクチャーに適用するとしたときの、目標ビットレートを達成するために期待されるQP値と等しくすることができる。この処理は、ラグランジュパラメータ、コーディングモード、閾値及び量子化による丸め、等のようなすべての可能性のあるコーディングパラメータに適用することができる。このアルゴリズムの詳細を以下に説明する。
パラメータcurrは、コード化すべきピクチャーの指標を表す。今までにコード化されたすべてのピクチャーのビット目標Bitstargetは以下のように定められる。

Figure 2010541386
ウェイトWj,iは、良い特性/高いビットレートを具体的なピクチャーに提供できるように、各ピクチャーに対して変えることができる。加えて、このウェイトは時間と共に変えることができ、従って、ウェイトに対して2重の指標が存在する。例えば、フラッシュとして検出されるピクチャーは低いウェイトを受け取る。例えば、ウェイトを変化させるものを、以下のことをするために用いることができる。
・ 開始時のような、イメージシーケンスの敏感な部分により良質の特性を与える。
・ 複雑さの測度に従いビットレート配分を変更する。
・ 特定のコーディングツールと用いられる階層構造に対するビットレートを調整する。
2つの制約条件は、平均して、currは、閾値より大きくこれらの係数の合計はcurrに加算しなければならないという点である。つまり、

Figure 2010541386
となる。この技術により、ビットレート目標を補強することができる。上述したように係数Wj,iは時間と共に変えることができる。
いくつかの実施の形態において、ピクチャーNがコード化されるとき、係数Wj,iの0からN−Mまでの和、ここでM>0、がKに等しくなる。同時に、ピクチャーN+Pがコード化されるとき、ここで、P>0であり、係数のN−Mまでの和がL≠Kになる場合がある。このアルゴリズムにおいて、この特徴は、いくつかの実施の形態において、特定のシーン又はピクチャーに対して追加のビットレートを少し注入することを許容することで、同時に、ビット目標が達成され、他の領域で視覚的にビットが不足することはなくなる。各ピクチャーがコード化された後、この技術により、量子化したパラメータを生成するために現在のピクチャーの複雑さを分割するために用いられる、レートファクターfを決定することができる。値を、fstartとfendとの間のレートファクターについて評価することができる。いくつかの実施の形態において、レートファクターfは、ビット目標と、ファクターfがそれぞれのQPを取得するために用いられるとき、今までに使われたビットbits(f)との差の絶対値を最小にすることにより、見つけることができる。以下の式がこの最小化を表す。

Figure 2010541386
ピクチャーの複雑さの値を分割することにより、これは任意的に所定のパラメータの指数を設定することになり、このファクターによりステップサイズを量子化することができ、付加した関数を用いて量子化パラメータに変換される。
項、bits(f)、は、以下に説明する包括的な処理を介して決定する。それまでにコード化されたピクチャーは、最も優先度の高いレベルに属するピクチャーを分離し、そのレベルに属さないピクチャーは、優先度の低いピクチャーとみなされる。コード化されたピクチャーについて、モーション補償の複雑さ、スライスヘッダ及びテクスチャをコード化するために用いられるビット、ピクチャーをコード化するために用いられるQP、等のような多くの利用可能なコーディング統計が存在する。過去のコーディング情報は、ファクターfにより複雑さから分離することにより得られた新しいQPと共に、この新しいQPがピクチャーをコード化するために実際に用いられるQPの代わりに使われるとすれば、ピクチャーをコード化するために消費されるであろうビットを推定するために使うことができるようになる。このビット推定の決定には、加算が含まれ、及び、現在コード化されたレベル(例えば、この場合最も優先度の高いレベル)に属するすべてのコード化されたピクチャーのために行われる。次いで、同様の処理が先にコード化された優先度の低いピクチャーのビット推定に適用される。
優先度の最も高いレベルのピクチャーに用いられる処理と比較したときの主な違いは、新しいQPの導出である。例えば、新しいQPは、隣接するアンカーピクチャーをコード化するために用いられるQPに依存することができ、いろいろな係数(例えば、これらの係数は次の階層構造へのコーディングパラメータの配分の章に記載されている)に依存することができるバラメータにより相殺することができる。
いくつかの実施の形態において、項、bits(f)、は、以下のように記述することができる。

Figure 2010541386
ここでtiは、ピクチャーiに用いられるテクスチャビットの数であり、hiはピクチャーiに用いられるヘッダービットの数である。QP2QStep()は、QP(対数スケール)値を量子化ステップ(線形スケール)値に変換する関数であり、QStep2QP()は、逆関数であり、QPiはピクチャーiをエンコードするために用いるQP値であり、ciはピクチャーiの複雑さである。
ピクチャーiが優先度の低いピクチャーであるとき、L0(i)は、優先度の最も高いレベルレベルに属するiに時間的に最も近いピクチャーを意味し、L(i)は、優先度の最も高いレベルレベルに属する2番目に近いピクチャーを意味する。項、cL0(i)及びcL(i)、は、これらのピクチャーの複雑さの値を表す。パラメータBoffset,iは、とりわけ、ピクチャーが参照として使われているかどうかに依存するBコード化されたピクチャーに適用されるQPオフセットを表す。パラメータBoffset,iの導出については、次の章、階層構造へのコーディングパラメータの配分、に詳細に記載されている。項、si、は、コード化されたピクチャーに対してスキップしたマクロブロックの数を表す。最後に、項、e、は、QPの大きな変動を避けるために用いられる指数を意味する。いくつかの実施の形態において、eは0.4に設定され0≦e≦1の制約が課せられている。関数NBQ()は、コーディング統計と以前にコード化したピクチャーのパラメータを用い、次に、これらのコーディングパラメータが変化したなら、使用ビットの推定の計算を行うどのような関数であってもよい。いくつかの実施の形態において、関数NBQ()は、以下のような出力γを持つことができる。

Figure 2010541386
この実施の形態について、パラメータαは、1より少しだけ大きい値に設定することができる一方、パラメータβは1より小さい値に設定することができる。パラメータblock_pixelsは、モーション補償のブロックを構成するピクセルの数に対応する。これらのパラメータの値は、テクスチャビットが(a)QPの減少と共に、著しく増大することがあるにもかかわらす、ヘッダービットが(b)遅いレートで増大することができるように、設定することができる。パラメータγは、ゼロより大きく1より小さくすることができ、大きな値に設定すべきである。現在のピクチャーに対してレートファクターfを決定した後、レート制御が元のビット目標を確実に達成するように用いられる項、QPmod、の決定を行うことができる。使われたビットの数bitsusedは、ピクチャーの開始からピクチャーの終了までで用いられたビットの合計として計算することができる。いくつかの実施の形態において、現在のピクチャーの指標として、開始を0に設定し、終了をcurrに設定することができるが、これらの設定は任意的である。ビットの使用をあるウィンドウを介して決定することは可能である。このことにより、イメージシーケンスの異なる部分に異なるビットレートを配分することを容易にすることができる。これは以下のように表すことができる。

Figure 2010541386
この式において、項、bi、は、ピクチャーiをコード化するために用いるビットの数を意味する。
ファクターfを推定した後、付加的なパラメータを、ビット割り当てにおいて使用過多又は使用過小になるような対処法で決定することができる。QP修正要素と呼ばれるこのパラメータは、ビットが使用過多のとき増大させ、ビットが使用過小のとき減少させることができ、一般に、ビット目標を満足しているとき、ゼロに近い値を保持する。QP修正要素パラメータは、この要素により複雑さの指数を割算することにより得られた初期推定QPに加算することができる。いくつかの実施の形態において、QP修正要素QPmodは以下の式で表すことができる。


Figure 2010541386
ここで、Zは、シーケンスの始まりと終わりとで(それぞれ、確実にビット目標へ遅く収束させるため及び速く収束させるために)異なる値をとることができる、指数である。イメージシーケンスの大部分で、Zは、ゼロより少しだけ大きな値をとることができる。この方法には、優先度の最も高いレベルに属する各ピクチャーに対して適用しなければならないレートファクターfの贅沢な計算が含まれる。現在のピクチャーをエンコードするために用いられる最終的なQPは下式で与えられる。

Figure 2010541386
レベル0でピクチャーに配分されたQPは、ピクチャーの複雑さの測定値とファクターfの関数となり、ファクターfは目標ビットレートを達成するためにQP修正要素で圧縮伸張することができよう。優先度の低いレベルに配分されたQPは、優先度の低いレベルのピクチャーが予測され従属するレベル0のピクチャーに配分されたQPの関数となろう。これらのQPは、次の章、階層構造へのコーディングパラメータの配分、に詳細に記載されている、Boffset,iで修正される。
シーン変更のような何らかのアルゴリズムを用いてあらかじめクラス分けされたいなかった、周期的にイントラコード化されたピクチャーが挿入されたとき、そのピクチャーのQPは、直近のレベル0のピクチャーをコード化するために用いられていたい量子化パラメータqの正又は負の修正要素を加えることにより取得することができる。この修正要素は、q自身の値、エンコーダの及びデコーダのバッファ充足度、及び、コード化されたコンテンツの複雑さに従属することとなろう。ビットレートの制約が緩和される場合は、同じコンテンツを非常に貧弱に又は十分すぎるほどコーディングすることにより視覚的特性が劣化することを避けることが好ましい。このアルゴリズムの線図を図15に示す。
図15は、先読みを有する複雑さの高いABRレート制御のアルゴリズムを例示したフローチャート1500である。図15において、1510でビデオコーディングを開始し、1511で、パラメータを、QP、f、及びi=0に初期化する。決定ステップ1520では、次いで、bitstarget、bitsused、及びQpmodについて決定する。次に、決定ステップ1525を実施し、abs(bitstarget−bits(f))を最小化することによりfを決定する。その後、スライス形式を決定することができる1530。レベル>0ならば、prevQP+Bi,offsetに決定することができる1535。そうでない場合、スライス形式がPコード化されたピクチャー又はBコード化されたピクチャーならば、QP=func(f、Ci)となる1540。スライス形式がIコード化されたピクチャーならば、QP=func(f、Ci)となる1545。スライス形式がIコード化されたピクチャーならば、prevQPプラスオフセットを用いる1550。このオフセットは、標題、階層構造へのコーディングパラメータの配分、の章のファクター(c)〜(f)と同様にして決定する。所定のスライス形式についてこれらが決まると、ピクチャーがコード化される1560。これ以上ピクチャーがない場合は1565、コーディングが終了する1570。まだピクチャーがある場合は1565、iを増やし(例えば、i++)1575、prevQPを更新し1580、その後、bitstarget、bitsused、及びQpmodについて決定ステップ1520を実行する。
上記先読みを有する複雑さの高いABRレート制御の説明の特徴は、固定ビットレート(CBR)又は可変ビットレート(VBR)のアプリケーションに対して、実質的にエンコーダ又はデコーダのバッファリングに制約がないとみなすことができることである。バッファリングの制約が重大であるアプリケーションに対して、レートファクターfは、エンコーダ及びデコーダで十分なバッファとするために修正することができる。fが小さい場合は、大きなQPで少ないコード化されたビットとなるようにバイアスを加え、fが大きい場合は、結果的にコード化されたビットを多くすることができる。ビットの使用がバッファのオーバーフロー又はアンダーフローにつながる場合は、ファクターfは、バッファの充足度を好ましい状態に補償し保持するために、適宜調整することができる。加えて、結果得られるビット数を推定し、エンコーダ及びデコーダのバッファ制約条件を満足するようにコーディングパラメータを調整するようなレート制御モデルと併せて、選択したコーディングパラメータを用いることができる。
[先読みを有する複雑さの低いABRレート制御]
先読みを有する複雑さの低いABRレート制御のレート制御アルゴリズムは、この実施の形態において非常に単純である点で、上述の複雑さの高いシングルパスのレート制御アルゴリズムと共通の特徴を有する。bitsused及びbitstargetの説明と導出は、上述の複雑さの高いシングルパスのレート制御アルゴリズムと同じか又は類似する。このアルゴリズムにおける1つの違いは、ファクターfの導出についてである。
ファクターfの決定において、ここでは、複雑さの和sumcmplxと呼ばれる変数の助けにより容易になる。この量は、ゼロに近い値に初期化することができ、sumcmplxはイメージの大きさに依存するであろう。いくつかの実施の形態において、sumcmplxは下式のように初期化することができる。

Figure 2010541386
いくつかの実施の形態において、パラメータδは1未満の値を取ることができ、パラメータεは、各ピクチャーに配分された平均ビットの4〜5倍になり、パラメータζは1より少し小さくすることができる。パラメータw及びhは、ピクチャーの幅と高さを意味し、block_pixelsは、ブロック中のピクセル数を表す。
複雑さの和を決定するために、最後にコード化されたピクチャーの複雑さの測度はレベル0で保存され、以下のように設定される。

Figure 2010541386
上記数値を更新することに加えて、各ピクチャーをコード化した後に、(ウェイト付けした)複雑さの和は以下のように更新される。

Figure 2010541386
ウェイトuj,iは、特定のピクチャーにより多くのビットを配分することができるように、ピクチャー毎に異なる。加えて、ウェイトは時間により異なり、従って2重指標を採用する。
フラッシュとして検出されたピクチャーは低いウェイトを受け取ることができる。任意的なコーディング順序を有する階層的コーディング構造を用いるとき、これらの変化するウェイトは役に立つ。現在のピクチャーの複雑さパラメータcmplxiは、ピクチャーをコード化するために使うビット数にそのピクチャーをコード化するために使う量子化ステップ数を乗算し、レベル0で最後にコード化されたピクチャーの複雑さで割り算したものになることができる。レベル0で最後にコード化されたピクチャーの複雑さは、現在の優先レベルを明らかにするためにファクターFで重み付けすることができる。いくつかの実施の形態において、現在のピクチャーの複雑さパラメータcmplxiは、以下のように表すことができる。

Figure 2010541386
ここでファクターFは、ピクチャーが優先順位の最も高いレベルに属すかどうかにより決まり、もし属さない場合は、その量子化パラメータを決定するために適用する修正要素により決まる。いくつかの実施の形態において、Fは以下のように選択される。

Figure 2010541386
先に述べたように、複雑さの高いABRレート制御アルゴリズムのこのアルゴリズムと先のアルゴリズムとの主な差には、レートファクターfの決定が含まれ、このアルゴリズムを非常に単純化すると、

Figure 2010541386
加えて、複雑さの高いABRレート制御アルゴリズムのアルゴリズムと同様に、ビットレート目標を達成するためにQP配分を修正することのできる追加のメカニズムが存在する。ビットが十分利用されないときは値を小さくし、ビットを使いすぎるときは値を大きくする、「オーバーフロー」と呼ばれるファクターを決定する。いくつかの実施の形態において、このファクターは以下の方法で決定される。バッファパラメータの値は、以下のように表される。

Figure 2010541386
bit_rateは、イメージシーケンスの現在のセグメントの目標ビットレートである。パラメータtは、コーディング効率とレート制御との間でのトレードオフの結果となりうる制御パラメータと呼ばれる。tが大きい場合は、高い優先順位が特性に与えられ(特性が強まる)が、ビット目標は正確には達成できないかもしれない。一方、tが小さい場合は、特性に比べてビットレートに高い優先順位が与えられる。tが小さいとき、潜在的に、高いレート制御の精度を可能にし、コーディング効率を小さくする。パラメータvjは、バッファ又は特性の制限を満足させるためにQPの配分を制御するために用いられる。これらの演算により以下のファクターを生成する。

Figure 2010541386
オーバーフローパラメータは、それぞれ、1より小さい正数と1より大きい数である、ominとomaxとの間に制限することができる。最後に、現在のピクチャーをエンコードするために用いることができるQPは複雑さの高いABRレート制御のセクションの場合と同様にして、以下のように取得することができる。

Figure 2010541386
周期的に挿入されたイントラコード化されたピクチャーの処理は、複雑さの高いABRレート制御の章での対応する説明と同じである。
アルゴリズムと比較して、この章に記載のアルゴリズムは、イメージシーケンスの敏感なパートでも多くのビットの配分の偏りを大きくすることができる。さらに、この章のアルゴリズムは、次のピクチャーに重要だと思われるピクチャーに追加ビットを配分するためにレートの適合化を組み込むことができる。上述の特徴は先に説明した本願のすべてのアルゴリズムに適用することも可能である。このアルゴリズムの一例を図16に示す。
図16は、先読みを有する複雑さの低いABRレート制御のアルゴリズムを例示したフローチャート1600である。図16において、ビデオコーディングを開始し1610、パラメータを、QP、f、及びi=0、sumcmplxに初期化する1615。決定ステップ1620では、bitstarget、bitsused、及びオーバーフローパラメータについて決定する。次いで、fをbitstarget/sumcmplxで決定する1625。その後スライス形式を決定する1630。レベル>0ならば、prevQP+Bi,offsetに決定することができる1635。そうでない場合、スライス形式がPコード化されたスライス又はBコード化されたスライスと決定されるならば、QP=func(f、Ci)となる1640。スライス形式がIコード化されたスライスと決定されるならば、QP=func(f、Ci)となる1645。スライス形式がIコード化されたピクチャーと決定されるならば、prevQPプラスオフセットを用いる1650。このオフセットは、標題、階層構造へのコーディングパラメータの配分、の章のファクター(c)〜(f)と同様にして決定する。これらの動作1635、1640、1645、1650、の少なくとも1つが終わった後、ピクチャーがコード化される1660。これ以上ピクチャーがない場合は1665、コーディングが終了する1670。まだピクチャーがある場合は6565、iを増やし(例えば、i++)1675、prevQPとsumcmplxを更新し1680、その後、bitstarget、bitsused、及びオーバーフローパラメータについて決定ステップ1620を実行する。
上記説明では、固定ビットレート(CBR)又は可変ビットレート(VBR)のアプリケーションに対して、実質的にエンコーダ又はデコーダのバッファリングに制約がないとみなすことができる。バッファリングの制約が重大であるアプリケーションに対して、レートファクターfは、エンコーダ及びデコーダで十分なバッファとするために修正することができる。fが小さい場合は、大きなQPで少ないコード化されたビットとなるようにバイアスを加え、fが大きい場合は、結果的にコード化されたビットを多くすることができる。ビットの使用がバッファのオーバーフロー又はアンダーフローにつながる場合は、ファクターfは、バッファの充足度を好ましい状態に補償し保持するために、適宜調整することができる。加えて、結果得られるビット数を推定し、エンコーダ及びデコーダのバッファ制約条件を満足するようにコーディングパラメータを調整するようなレート制御モデルと併せて、選択したコーディングパラメータを用いることができる。
[階層予測構造へのコーディングパラメータの配分]
使い捨てのピクチャー(例えば、モーション補償基準として使うために一時保存するものではないピクチャー)又は、優先順位の低いピクチャーを用いる場合、コーディングパラメータを効率的に選択するために、特別な考慮が必要であろう。使い捨てのピクチャーは、特性が将来のピクチャーに適していないので、一般に、使い捨てのピクチャーには少数のビットを使うべきである。さらに、Bコード化されたピクチャーは、平均して、Pコード化されたピクチャーより少ないSADしか生じさせない。その結果、Bコード化されたピクチャーに配分するビットは少なくても良い。ここに開示したレート制御アルゴリズムにおいて、そのようなピクチャーに用いられたコーディングパラメータは、使い捨てではなくて優先順位の最も高いレベル(例えば「アンカー」ピクチャー)に属するピクチャーをエンコードするために用いたコーディングパラメータの関数とすることができる。後者のコーディングパラメータは、基本コーディングパラメータと称することができる。いくつかの実施の形態において、コーディングパラメータにはQP値のみを含むことがでる一方、基本QP値は、baseQP=max(QPL0(i),QPL1(i))で表すことができる。階層構造におけるピクチャーの基本QP値を変化させる修正要素は、本明細書の先の章で表したようにBoffset,iと称する。
コーディングパラメータの修正要素は、以下に一覧表示し説明する多くのファクターの関数として決定することができる。
(a)時間的予測距離の影響を受け、ピクチャーが属する階層構造のレベル
(b)周期的形式(イントラ、予測、双方向、その他)
(c)他のピクチャー予測基準としてのピクチャーの使用
(d)基準コーディングパラメータ
(e)シーン形式、シーン変化、フェードイン、フェードアウト、クロスフェード、フラッシュ、その他
(f)現在のピクチャーの(主に時間的)複雑さの測度
いくつかの実施の形態において、上記修正要素の効果はBoffset,iの導出に対しては線形であり(加算的)、その他に対しては、乗算的になるであろう。例えば、他の領域(量子化ステップ)においておそらく乗算的になり、量子化パラメータ(QP)領域に変換可能となろう。線形モデルにおいて、Boffset,iは以下のように表される。

Figure 2010541386
コード化されたピクチャーのコーディングパラメータは、各ファクターの影響を受けることになろう。以下のファクターの各々の効果は、ピクチャーに対して最終のコーディングパラメータを生成するための、ビットレートの制約条件及び一時保存の制約条件のほかに、残りのファクターと結合することができる。
[ファクター(a)]
階層構造におけるすべてのピクチャーが同じ優先順位のレベル(デコーディングがアンカーピクチャーにのみ依存する場合)を有する場合、これらのピクチャーをコード化するために同様のコーディングパラメータを用いることができる。例えば、パラメータは、空間的複雑さに依存又は階層構造に置ける位置に依存するbaseQPと比較し、少し調整される。基準コーディングパラメータのときより少ないビットが配分されるように、コーディングパラメータを選択することができる。いくつかの実施の形態において、このファクターは以下のようにあらわされる。

Figure 2010541386
ここで、cは、いくつかの実施の形態において、2に等しくなるよう設定することができる。
それ以外の場合、階層構造のピクチャーの優先順位が変動する場合(例えば、階層構造における特定のピクチャーは、同じ階層構造における他のピクチャーが最初にデコードされない限り、デコードされない)、優先順位の低いレベルに属するピクチャーよりも良い特性であって、優先順位の高いレベルに属するピクチャーよりも劣る特性を生じさせるコーディングパラメータでピクチャーがコード化される。いくつかの実施の形態において、このファクターは以下のように導きさされる。

Figure 2010541386
[ファクター(b)]
スライス形式は、コーディングパラメータの選択の影響を受けることがある。ピクチャーがIコード化されたピクチャー、Pコード化されたピクチャー、又はBコード化されたピクチャーとして、又は、他の予測タイプとしてコード化することができるならば、以下の制約条件をかけることができる。すなわち、イントラコード化されたピクチャーは、予測コード化されたピクチャーに用いられるコーディングパラメータとは異なる数のビットを配分するコーディングパラメータを採用することができ、予測コード化されたピクチャーは、双方向予測コード化されたピクチャーに用いられるものとは異なる数のビットを配分するコーディングパラメータを用いることができる。いくつかの実施の形態において、基準QPは以下の値をとることができる。
Figure 2010541386
ここで、sI及びsPは変数であり、両方とも、負ではなく、いくつかの実施の形態において、sI>sPで制約される。
[ファクター(c)]
ピクチャーが基準として用いられると、予測基準として使うことができず配置されないピクチャーより良い特性でピクチャーをコード化することが重要となろう。階層構造におけるすべてのピクチャーが同じ優先順位のレベルである場合、(例えば、デコーディングがアンカーピクチャーにのみ依存する場合)、基準とならないピクチャーに用いられるコーディングパラメータに用いられるコーディングパラメータと比較して良い特性を生じるコーディングパラメータを基準ピクチャーは用いることができる。いくつかの実施の形態において、ファクターは以下のように表すことができる。
Figure 2010541386
ここで、cは、1に設定することができる非負の変数である。
そうでない場合、階層構造のピクチャーの優先順位が変動する場合(例えば、階層構造における特定のピクチャーが、同じ階層構造における他のピクチャーが最初にデコードされない限り、デコードされないかもしれない場合)、コーディングパラメータを上記段落で説明したように調整するか又は、そのままにすることができる。従って、いくつかの実施の形態において、ファクターはゼロに設定される。

Figure 2010541386
任意的に、現在のピクチャーを基準として使うかどうかを考えるだけでなく、モーション補償予測にどの基準を使うのかを考えることもできる。一般に、表示の順序に近い、より特性の良いアンカーピクチャーから直接予測されたピクチャーは、表示の順序から離れた特性のの劣るピクチャーからされたピクチャーと比べたとき、適切なコーディングパラメータの選択を通して少ないビットでコード化することができる。これは、レベルの関数のみならず位置の関数とすることもできる。
例えば、図4において、同じレベルに属するピクチャー2及び4を考える。いくつかの実施の形態において、同じ階層レベルに属していても、ピクチャー2は、ピクチャー4と比べて高い特性基準を入手することができる。他の実施の形態において、これらのピクチャーの複雑さも考慮することができ、多くの又は少数のビット及びその特性は、それぞれ、多かれ少なかれ主観的又は客観的特性に顕著に影響を与えるピクチャーに割り当てられる。
[ファクター(d)]
基準コーディングパラメータが良い特性をもたらすならば、特性の劣化が知覚されないので、階層構造のピクチャーのコーディングパラメータの質を少し下げることができる。しかし、基準コーディングパラメータが良くない特性をもたらすならば、質を下げることについては、たとえあったとしても、考えるべきではない。いくつかの実施の形態において、この修正要素は、基準QPパラメータの値と共に減少する関数とすることができる。この関数は、線型関数、非線型関数、指数関数、ガウス関数、又は、他の形式の関数とすることができる。このパラメータを導出することができるものとして、以下が含まれる。

Figure 2010541386
[ファクター(e)]
シーン形式は、階層構造におけるピクチャーのコーディングパラメータを決定する上で重要となり得る。いくつかのコーディング構成において好ましくないかもしれないが、階層構造内でシーン変化をコード化することは可能である。2つのアンカーピクチャーのうちの1つが、高い可能性でありうることであるが、新しいシーンの第1のピクチャーの内の1つを含んでいても、特性が一様でないことに起因する視覚的性能の低下を避けることが重要となるであろう。新しいシーンにおける第1の少数のピクチャーが、アンカーピクチャーとしてコード化されたものより特性がよくないことがありえるので、状況によっては、特性が一様でないことは起こり得る。このような客観的特性の問題を避けるために新しいシーンに属するピクチャーの特性は向上させておくべきである。いくつかの実施の形態において、Bi scene=−c1と設定することにより、但しc1は非負の変数である、これを達成することができる。
フェード又はウェイト付けられた予測に属するピクチャーを用いる場合は、コーディングパラメータは、ビットを少ししか使わないように調整すべきである。いくつかの実施の形態において、係数はゼロ、例えばBi scene=0、に設定される。
フラッシュがコード化されるときは、めったに知覚されないので、使うビット数はもっと少なくすることができる。いくつかの実施の形態において、これは、Bi scene=−c2、c2は非負の変数、のようにして達成することができる。
いくつかの実施の形態において、上記ファクター(a)からファクター(e)までに記載した変数は、他の、とりわけ、エンコーダ及びデコーダにおけるバッファリングの制限、平均ビットレート、最小ビットレート、及び最大ビットレートの制限、使用する基本QP、及びシーケンス統計のような他の種々の要因によって決まる。
ピクチャーの複雑さの測度は、アンカーピクチャーコーディングパラメータ(例えばQP)を導出するために最初に用いることができ、基本QPはアンカーピクチャーの関数となる。しかし、階層構造におけるピクチャー内で無視できない複雑さの変動があり、これが、現在のピクチャーの複雑さに応じてコーディングパラメータを変化させる根拠となる。ピクチャーが複雑すぎる場合、コーディングパラメータは、多くのビットを消費しないように調整すべきである。
上述のように、ピクチャーの複雑さを推定し、そして、QPのようなコーディングパラメータの調節に用いることができる。この説明はアンカーピクチャーに関する。階層構造におけるピクチャーをコード化するために用いられるコーディングパラメータの調整のためにアンカーピクチャーの複雑さを採用することは問題なく可能であるが、場合によってはこの方法は準最適なものとなる。このような場合に適切な方法は、エンコードに使う基準ピクチャーに関する問題(例えばピクチャーi)のピクチャーの時間的複雑さ(例えば、SAD)を用いることが含まれる。
例えば、コーディング順序I0−P4−B2−B1−B3の階層コーディング構造IBBBPにおいて、ピクチャー0はイントラコード化されたピクチャーとなり、ピクチャー4はPコード化されたピクチャーにコード化されるであろう。次いで、ピクチャー2は、基準として保存されるBコード化されたピクチャーとして、コード化される。最後に、 ピクチャー1及び3が、使い捨てのBコード化されたピクチャーとしてコード化される。ピクチャー0から予測したピクチャー4(例えば、「アンカー」ピクチャー)の複雑さの推定は、ピクチャー0及び2から予測したピクチャー1の複雑さの推定と比べて異なることがある。入手可能なSAD予測誤差が、単方向予測モーション推定のみを伴うならば、ピクチャー1の複雑さ推定は、c1,temporal=min(SAD1(0),SAD1(2))としてモデル化することができる。一般に階層構造内の双方向予測ピクチャーの時間的複雑さは、ci,temporal=min(SADi(R0(i)),SADi(R1(i))のように表現することができる。項、R0(i)及びR1(i)は、ピクチャーiの双方向予測に用いられる2つの基準の指標である。双方向予測SAD統計が入手できるなら、この統計を上記決定の代わりに使うべきである。
他の実施の形態において、入手可能なSAD予測誤差が、単方向予測モーション推定のみを伴うならば、ブロックレベルで最小化を適用することによりもっと正確な双方向予測SADの推定が得られる。1つの例では、Bは、ピクチャー中の全ブロックの数を示し、SADm b(n)は、ピクチャーn中のあるブロックから、ピクチャーn中のブロックbを予測するための単方向予測SAD誤差を示す。複雑さの推定は、ピクチャー内のすべてのブロックについて、2つの基準の各々から、ブロックに基づくSADの最小値の総和とすることができる。この複雑さの推定は、以下のように表すことができる。

Figure 2010541386
コーディングパラメータ修正基準は、以下の前提に基づくことができる。すなわち、階層構造におけるピクチャーの複雑さが、アンカーピクチャーの複雑さの割合又はアンカーピクチャーから導出した閾値を超える場合は、コーディングパラメータはビットの使用量を減らすよう修正すべきである。このアルゴリズムの1つの可能な実施の形態は以下のように表すことができる。

Figure 2010541386
ここで、δは、ゼロより大きい浮動小数点数であり、1以下の値をとることができる。閾値Qは、正の値をとることができ、小さな整数値、例えば2、に設定することができる。
ピクチャーの語は、上述のように最小のコーディングユニットとして表現されているが、ここに開示するすべてのアルゴリズム及び実施の形態は、フィールド/インターレース・コーディング、ピクチャー毎の複数スライスの使用、及びブロック領域に適用することができる。この方法は、任意の領域に基づくコーディングを明らかにすることもできる。
[空間的コーディングパラメータの適合]
階層予測構造にコーディングパラメータを配分するための上記説明は、どちらかというと、ピクチャーをコード化するために用いるコーディングパラメータの選択に関するものである。さらに圧縮性能を向上させるために、空間的統計の変化を起こさせるためにマクロブロックに基づき、コーディングパラメータを変化させることができる。複雑さ推定の章で上述の開示と同様に、マクロブロック(例えば16×16ピクセルのブロック)のコーディングパラメータは、いくつかの形式の複雑さの関数であるマクロブロック複雑さ測度を用いて調節することができる。H.246/AVCのような最近のビデオコーディックにおいて、コーディングパラメータは、調整して4×4ピクセルの粒度に下げることができる。このような複雑さの形式の関数は、加算又は乗算可能であり、この関数の値が高ければ高いほど、多くの圧縮アーティファクトをマスクすることができる。
一例によれば、m及びnは、それぞれ、ピクチャー中のマクロブロックの水平座標及び垂直座標を表す。また、m及びnは、マクロブロックの単位で計測したときのピクチャーの水平長さ及び垂直長さをそれぞれ表すことができる。以下の測度は、関数のパラメータであり、これらのパラメータには、空間的分散cvar、端部情報cedge、テクスチャ情報ctexture、輝度情報clum、及び時間的複雑さ情報ctemporal
(a)空間的分散cvar
この複雑さの測度は、マクロブロックベースの空間的分散の決定の形式とすることができる。第1に、ブロック中の輝度及び/又はクロミナンスピクセル値の平均値を決定することができる。第2に、各ピクセル値と先に決定した平均値との差の2乗の平均を、空間的分散として計算することができる。代替的に、ピクセル値のイントラブロック相互相関のような、空間的変動をつかまえる他の測度を用いることもできる。
(b)端部情報cedge
端部情報は、ソーベルフィルター又はプレヴィットフィルターのような端部を検出するフィルターを適用することにより集めることができる。端部情報の強さと方向は、マクロブロックにおける端部の内容を表すものとすることができる。同様の情報を、何らかの空間変換を適用し、水平周波数及び垂直周波数を表す係数を評価することにより集めることができる。
(c)テクスチャ情報ctexture
テクスチャ情報は、空間的周波数を表す特定の変換係数の2乗値の和のような種々の方法で集めることができる。このアプリケーションに適した変換には、離散コサイン変換、離散ウェーブレット変換、及びバンドレット及びエッジレット変換(band−let and edge−let transforms)
(d)輝度情報clum
このパラメータは、マクロブロックの、平均輝度及び/又は平均クロミナンスを表すことができる。
(e)時間的複雑さ情報ctemporal
この時間的複雑さは、上述のとおり、ピクチャーレベルの時間的複雑さの推定及びフィルタリング反映することができる。この時間的複雑さは、モーションベクトルの大きさに関数でもある。違いは、値が、例えばSADが、個々のブロック又はマクロブロックであることである。この種の複雑さを用いる理由のひとつは、特定のブロックが同じピクチャー内の他のモーションより顕著なモーションで特徴付けられる場合、このブロックは、モーションが圧縮アーティファクトをマスクするので、特性を劣化させてコード化することができる。
上記パラメータ(a)〜(e)から、各ブロックの最終的な空間的複雑さは、以下のように表すことができる。

Figure 2010541386
いくつかの実施の形態において、各ブロックをエンコードするために用いるQP修正要素の第1の表現は以下のように記述することができる。

Figure 2010541386
パラメータd及びbは、QPオフセットの制限及び集中化のために用いることができる一方、パラメータα、β、及びγはシミュレーションの後選択することができる。パラメータb及びdは、1つの可能性のある実施の形態において1及び2に設定することができる。選択したQPは、近接するブロックの間でQPの大きな変動を減少させるためにフィルターすることができる。例えば、近接するすべてと異なるブロックのQP値は、近接する値の平均値に設定することができる。このフィルタリングにより、QPmod,f(m,n)が生成される。ブロックをコード化するために用いられる最終のQPは、全体のピクチャーについての平均QP値が、現在のピクチャーQPのレート配分/制御により選択されたQPに確実に等しくなるように相殺される。すなわち、

Figure 2010541386

QPは、エンコーダバッファの制約条件及びデコーダバッファの制約条件を満足させるためにさらに修正を加えることができる。エンコーダが、バッファのオーバーフロー又はアンダーフローが起こりそうであると予測した場合、制約条件を満足させるために、QPを増加又は減少させることができる。目標ビットレートを達成する場合も同じである。ビットを消費しすぎる場合、以前のピクチャーからコーディングをもらい、QP値を増大することにより特定に領域に配分するビットを少なくすることができる。同様に、十分なビットが用いられないならば、特定のブロックのQP値を減少させることができる。
いくつかの実施の形態において、パラメータの配分は、ピクチャーの配置場所(例えば、現在のレベル及び時間的位置)を決定する関数とすることができる。レベル0は、最も優先順位の高いレベルを表すことができる。特に、最初にデコードされた同じレベル内で既に一度エンコードされたピクチャーをデコードすることのできるピクチャーをレベル0に有することができる。これらのピクチャーは、他の低いレベルにあるピクチャーより良い特性を持つことができる。
QP又はレート配分は、同じブロック又は他のブロック内の他のピクチャーに関して、スライス形式又は予測形式によって決めることができる。他の要素として、ピクチャーが他のピクチャーの予測に用いることができるかどうかが含まれる。例えば、いくつかのピクチャーは、廃棄することができ、特性又はビットレートに大きく寄与することはない。
図17は、提示したレート制御アルゴリズムの様々なステップのいくつかを例示した線図である。フレームコーディングを開始し1710、残りのビット、目標ビットレート、及びバッファに初期化を施す1715。上述の複雑さ推定 についての章に記載したように、現在のフレームについて複雑さの推定を決定する1720。複雑さフィルタリング及び特性/ビットレートの検討の章で記載したように、現在のフレームについて複雑さのフィルターを決定する1725。この決定1725ではシーン形式その他の検討事項を考慮に入れる。上述の、先読みを有するレート配分の章、及び/又は、先読みを有する高い複雑さと低い複雑さのシングルパスのレート制御の章に開示したように、現在のフレームに対する初期コーディングパラメータを選択する1730。上述の、階層予測構造へのコーディングパラメータの配分の章に開示したように、階層構造のフレームに対するコーディングパラメータを調整する1735。次いで、空間的コーディングパラメータの配分の章で開示したように、フレーム内で、コーディングパラメータを調整する1740。そして、フレームコーディングが終了する1750。順序、ステップ、及び/又は、ステップの形式が異なる他のフロー線図又は他の実施の形態が図17に示されている。
[システムの実施例]
図18は、ここに記載した技術(又はその組み合わせ)を採用することができるシステムの例を示したものである。この技術では1つ以上のコンピュータ1805A及び1805Bを用いることができる。ここに記載の1つ以上の方法(例えばアルゴリズム/処理)は、コンピュータ、及び/又は、ビデオディスプレー1820、伝達システム、処理システム、及び再生システムにより実施することができる。ここに記載のコンピュータは、汎用コンピュータでも、ワークステーションのような特定用途のコンピュータでも、どんなコンピュータでもよい。コンピュータ1805Bは、例えばインテル又はAMDベースのコンピュータで、Windows XP、Windows Vista、又はLinuxとすることができ、又は、マッキントッシュコンピュータとすることができる。実施の形態は、PDA1815のようなハンドヘルドコンピュータ、携帯電話1815、又はラップトップコンピュータ1805Aに関連するものとすることができる。コンピュータは、イメージの記録又は受信処理を行う装置1825、1830、1835、記憶装置1840、及び特定のビデオデータのデータ送信装置を含むことができる。
ここに記載した実施の形態のどのように組み合わせもビデオシステム及びその構成要素の一部となることができる。これらの実施の形態のどのように組み合わせも図1、及び/又は、他の構成要素の例におけるビデオエンコーダの一部となることができる。これらの実施の形態のどのように組み合わせも、ハードウェア及び/又はソフトウェアに組み込むことができる。例えば、どの実施形態もコンピュータプログラムで実行することができる。
コンピュータ、及び/又は、グラフィックプログラムは、C又はPython又はJava又はBrew又は他のプログラミング言語で記述することができる。プログラムは、例えば磁気的又は光学的な、例えば、コンピュータハードドライブ、リムーバブルディスク又はメモリースティック又はSDメディアのようなリムーバブルメディア、有線又は無線のネットワークベースの又はブルートゥースベースの(又はその他の)ネットワーク記憶装置(NAS)、又は他の固定メディア又はリムーバブルメディアのような、記憶媒体に常駐することができる。プログラムは、例えば、ローカルマシーンにここに記載の動作を行わせることができるように、ローカルマシーンに通信することのできるサーバ又は他のマシーンにより、ネットワーク1850を介して走らせることもできる。ネットワークには、ストレージエリアネットワーク(SAN)が含まれる。
ほんの少しの実施の形態を上記に詳述しただけであるが、本発明の他の実施の形態も可能である。当然のことながら、本発明の実施の形態は、ここに記載した1以上の例と均等なもの及び置き換えたものを含有する。この明細書は、他の方法でもっと一般的な目的を達成するための具体的な実施例を記載している。この記載では、実施の形態及び以下の請求項が、均等又は、修正又は、置き換えを行ったものをも含むことは了解されよう。
本明細書に記載した対象及び機能的動作は、本明細書に記載した構成、及びその均等物、又は、1つ以上のそれらの実施の形態の組み合わせを含む、ディジタルの電子回路、又は、コンピュータソフトウェア、又は、ファームウェア、又は、ハードウェアに組み込むことができる。本明細書に記載した実施の形態の対象は、1以上のコンピュータプログラム製品として、例えば、データ処理装置により実行されるか又はデータ処理装置の動作を制御するための、コンピュータ読取可能媒体にエンコードされたコンピュータプログラム命令の1以上のモジュールとして、実行することができる。コンピュータ読取可能媒体は、機械読取記憶装置、機械読取記憶回路基板、記憶装置、伝達された機械読取効果を持つ構成物、処理された通信、又は1以上のこれらの組み合わせとすることができる。用語「データ処理装置」は、プログラマブルプロセッサ、コンピュータ、又は、複数プロセッサ又はコンピュータの例を含む、データを処理するすべての設備、装置、及び機械を含有する。設備には、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、グラフィカルシステム、データベース管理システム、オペレーティングシステム、又はこれらの1つ以上の組み合わせのような、問題になっているコンピュータプログラムの環境を作り実行するコードを含むことができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアスクリプト、ソフトウェアコードとしても知られている)は、コンパイル言語又はインタープリタ言語を含む、どのようなプログラム言語で記述することもでき、コンピュータプログラムは、スタンドアローンプログラム、又は、モジュール、コンポーネント、サブルーチン、又は、コンピュータ環境で用いるのに適切な他のユニットに展開することができる。コンピュータプログラムは、必ずしもファイルシステムのファイルに対応するものでなくてもよい。プログラムは、他のプログラム又はデータを保持するファイル(例えば、マークアップ言語ドキュメント内に保存した1以上のスクリプト)の一部に、又は問題のプログラム専用の単一ファイルに、又は複数の協業的なファイル(例えば、1以上のモジュール、サブプログラム、又は、コードの一部)に記憶させることができる。コンピュータプログラムは、1つのサイトに置かれた、又は通信ネットワークでつながれた複数のサイトに分散した、1つのコンピュータ又は複数のコンピュータ配備することができる。
この明細書に記載したプロセス及びロジックフロー及び図は、入力データに作用して出力を生じさせることにより1以上のコンピュータプログラムを動作させる、1以上のプログラマブルプロセッサにより実行することができる。プロセス及びロジックフローは、特殊用途ロジック回路、例えばFPGA(フィールドプログラマブルロジックゲートアレー)又は、マイクロコントローラのような他のプログラマブルロジック装置、又はASIC(特定用途向け集積回路)により実行することもでき、このようなものとして装置に組み込むこともできる。
コンピュータプログラムを実行するのに適当なプロセッサには、一例として、汎用又は専用のマイクロプロセッサ、及び、ディジタルコンピュータの1以上のプロセッサが含まれる。一般に、プロセッサは、リードオンリーメモリ又はランダムアクセスメモリ又はその両方から命令を受け取ることができる。コンピュータの本質的な要素は、命令を実行するプロセッサと命令とデータを記憶する1以上の記憶装置である。一般に、コンピュータは、データを記憶させるための1以上の大量記憶装置を、例えば磁気ディスク、光磁気ディスク、又は光学ディスクを含むことができ、又は、データを受信又は送信又はこの両方を行うためにこれらの大量記憶装置と動作可能に結合することができる。しかし、コンピュータは、そのような装置を持つ必要はない。さらに、コンピュータは他の装置、例えば、少し例を挙げるなら、携帯電話、携帯端末(PDA)、携帯オーディオプレーヤー、グローバルポジショニングシステム(GPS)受信器、に組み込むことができる。コンピュータプログラムとデータを記憶するのに適切なコンピュータ読取可能媒体には、一例として、半導体記憶装置、例えば、EPROM、EEPROM、及び、フラッシュメモリ装置、磁気ディスク、例えば内蔵ディスク又はリムーバブルディスク、光磁気ディスク、及びCD−ROM、及びDVD−ROMディスクを含む、すべての不揮発性のメモリ、媒体、及び、記憶装置が含まれる。このプロセッサ及びメモリは、特定用途向け集積回路に組み込み又は付加することができる。
ユーザとのやり取りを行うために、本明細書に記載の対象についてのいくつかの実施の形態は、ユーザに情報を表示するための、ディスプレー装置、例えば、CRT(カソードレイチューブ)、LCD(液晶ディスプレー)、又はプラズマディスプレーモニター1820、及びキーボード及び選択スイッチ、例えば、ユーザがコンピュータに入力するためのポインティング装置、マウス、又はトラックボール、に組み込むことができる。他の種類の装置をユーザとのやり取りを行うために用いることができる。例えば、ユーザに対するフィードバックとして、あらゆる種類の感覚的フィードバック、例えば視覚的フィードバック、聴覚的フィードバック、触覚的フィードバックを用いることができ、また、ユーザからの入力は、音響、音声、又は触覚的入力を含む、どんな形式でも受け取ることができる。
本明細書に記載した対象についてのいくつかの実施の形態は、例えば、データサーバのようなバックエンド要素、又は、例えば、アプリケーションサーバのようなミドルウェア要素、又は、例えば、グラフィックユーザインターフェース、又は、ユーザが本明細書に記載した対象の実施の形態とのやり取りを行うことができるウェブブラウザ、又は、このようなバックエンド要素、ミドルウェア要素、又は、フロントエンド要素のうちの1つ以上の組み合わせを有するクライアントコンピュータのようなフロントエンド要素を含むコンピュータシステムに組み込むことができる。システムの構成要素は、例えば通信ネットワークのような、どのような形態又は媒体のディジタルデータ通信によっても相互接続することができる。通信ネットワークの例として、ローカルエリアネットワーク(LAN)及びワイドエリアネットワーク(WAN)、例えばインターネットが含まれる。
コンピュータシステムには、クライアントとサーバとを含めることができる。クライアントとサーバとは一般にお互いに離れており、通常は通信ネットワークを通じて相互に通信している。クライアントとサーバとの関係は、それぞれのコンピュータ上を走り、相互にクライアントとサーバの関係を有するコンピュータプログラムにより、生じる。
本開示には多くの詳細説明が含まれているが、これらは特許請求の範囲を解釈するためのものではなく、発明の特定の実施の形態と特徴を記載するものである。別々の実施の形態として本明細書に記載された特徴も、1つの実施の形態に統合することもできる。逆に言えば、1つの実施の形態として記載した種々の特徴は、別々の実施の形態として又は適切なサブコンビネーションとして実施することもできる。さらに、本発明の特徴が特定の組み合わせとして振る舞うように記載されていたとしても、また、当初はそのように特許が請求されていたとしても、請求項の組み合わせから1つ以上の特徴が、場合によっては、組み合わせから抽出することができ、特許請求した組み合わせは、サブコンビネーション又はサブコンビネーションの変種を導く。
同様に、動作が特定の順序で図面中に示されているが、これは、求める結果を達成するために、このような動作を図示した特定の順序、又はシーケンシャルな順序で行うことを要求するものではなく、又は、図示したすべての動作を行うことを要求するものではないことは理解すべきである。特定の環境では、マルチタスク及びパラレル処理が望ましい。さらに、上述の実施の形態における種々のシステムを分割することについて、すべての実施の形態でこのような分割が必要ではないことを理解すべきであり、記載のプログラム構成要素及びシステムは、一般に、単一のソフトウェア又はハードウェア製品又は複数のソフトウェア又はハードウェア製品パッケージに組み込むことができることは理解すべきである。
いくつかの実施の形態において、本方法/アルゴリズムを用いるシステムには、ビデオ エンコーダ、任意的なモーション推定及び補償プレアナライザ、任意的な空間的統計分析モジュール、コーディングパラメータを選択する1以上のレート制御モジュール、エンコーディング処理から有用な統計を集める複数の統計モジュール、任意的なMEMCプレアナライザ及び/又はビデオエンコーダからの統計を融合させることのできる決定モジュールを含むモーション推定及び補償プレアナライザから統計を集める任意的な統計モジュール、レート配分の制御装置、種々の制御モジュール及び/又はトランスコーダを含むことができる。
モーション推定は、ブロックベースのモーション推定及び領域ベースのモーション推定、位相相関、ペル・リカーシブ技術、その他を含むどのようなアルゴリズムを用いることもでき、並進運動、アフィン、媒介変数、その他を含む種々のモーションモデルを用いることができる。従って、本明細書には特定の実施の形態/実施例を記載した。他の実施の形態も以下の特許請求の範囲内である。

Claims (55)

  1. 動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップであって、該複雑さには、時間的特性、空間的特性、又は、輝度的特性が含まれることを特徴とするステップと、
    前記ピクチャーの複雑さの測定基準を推定するステップであって、
    ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断するステップと、
    ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップと、
    を具備することを特徴とする測定基準を推定するステップと、
    を具備することを特徴とするピクチャーの複雑さを推定する方法。
  2. 分離していると考えるられるブロックに情報を送ることにより、局所的な複雑さの情報を提供することを特徴とする請求項1に記載の方法。
  3. 前記ピクチャーに蓄えるためにブロックに情報を送ることによりピクチャーの全体的な複雑さの情報を提供することを特徴とする請求項1に記載の方法。
  4. エンコーダで前記ピクチャーコーディングするステップであって、該エンコーダは、端部情報、又は、時間的特性、空間的特性、又は、輝度特性の組み合わせを用いて複雑さの測度を決定するようになっていることを特徴とするステップをさらに具備することを特徴とする請求項1に記載の方法。
  5. 圧縮アーティファクトに対するピクチャーの1以上の領域の感度を決定するステップと、低い画質と判断された場合、該画質を向上させるためにピクチャー又はピクチャーの領域をコーディングするステップをさらに具備することを特徴とする請求項1に記載の方法。
  6. 前記ピクチャーに対して1以上のコーディングパラメータを選択するステップと、該コーディングパラメータを該ピクチャーにに分配するステップとをさらに具備することを特徴とする請求項1に記載の方法。
  7. 前記コーディングパラメータは量子化パラメータを具備し、前記方法はさらにスライス又はフレームの複雑さを推定することを特徴とすることを特徴とする請求項1に記載の方法。
  8. ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップは、
    前記ピクチャー中のマスキングアーティファクトを、前記ピクチャー中の少なくとも1つの他の領域、又は、過去のピクチャー中の少なくとも1つの他の領域、又は将来のピクチャー中の少なくとも1つの他の領域と比較するために、コーディング統計を用いるステップと、
    前記ピクチャー中のマスキングアーティファクトを、前記過去のピクチャー又は前記将来のピクチャーと比較するためにコーディング統計を用いるステップと、該コーディング統計を用いて複雑さの測定基準を推定するステップとを具備することを特徴とすることを特徴とする請求項1に記載の方法。
  9. ビデオピクチャー同士の複雑さの情報を評価するステップであって、該複雑さの情報は、時間情報又は空間情報を具備し、該ビデオピクチャーはビデオフレームを具備することを特徴とするステップと、
    フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップであって、該パラメータは、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータを具備することを特徴とするステップと、
    異常値を除去するため及前記パラメータ中の又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計量又はビデオフレーム同士の複雑さをフィルターするステップと、
    を具備することを特徴とする高品質のコード化されたビデオを生成するための方法。
  10. 前記ビデオをトランスコードするためにエンコードされたビデオに先読み窓を用いるステップをさらに具備することを特徴とする請求項9に記載の方法。
  11. 空間的に又は時間的にダウンサンプリングすることにより複雑さ情報を減少するステップであって、前記統計又は複雑さをコーディングパラメータ又はビデオ画質の急激な変動の程度を決定するために用いることを特徴とするステップをさらに具備することを特徴とする請求項9に記載の方法。
  12. ピクチャーを階層構造にコード化すべきかどうかを判断するステップであって、該階層構造は複数のピクチャーレベルを具備し、該階層構造は異なるピクチャーレベルでのビット又はコーディングパラメータをさらに具備することを特徴とするステップと、
    ピクチャーの特定の階層レベルへの割り当ての決定に基づき、該ピクチャーの重要性に基づきピクチャーをコード化するステップであって、該コード化は該ピクチャーの画質レベルを制御するステップを具備し、該コード化は該重要性に基づき該ピクチャーのコーディングパラメータの少なくとも1つを変化させるステップをさらに具備することを特徴とするステップと、
    を具備することを特徴とするピクチャーの複雑さを推定する方法。
  13. 前記コーディングパラメータは、量子化パラメータを具備し、前記方法は、前記ピクチャーのシーンの領域を分割することにより、ビット又は量子化パラメータをピクチャーに配分するステップであって、該領域は、単純領域、複雑領域、又は、他のピクチャーをコーディングために重要な領域を具備することを特徴とするステップをさらに具備し、前記方法は、スライス又はフレームの複雑さをさらに推定することを特徴とする請求項12に記載の方法。
  14. 複雑さの推定では、複数の測定基準又は並列する測定基準を採用し、該測定基準は、平均2乗誤差(MSE)、誤差の平方和(SSE)、差分絶対値和(MAD)、又は予測誤差の絶対値差分和(SAD)を含むことを特徴とする請求項13に記載の方法。
  15. マクロブロックに基づくビデオデータのパラメータをコード化するステップであって、該コード化は、空間的統計及び時間的統計における変動を明らかにするステップを具備することを特徴とするステップと、
    複雑さの測度を生成するステップと、
    複雑さの測度の重要性を判断するステップと、
    複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを上げるためにコーディングパラメータセットを調整するために複雑さの測度を用いるステップと、
    を具備することを特徴とするビデオデータをコード化する方法。
  16. 前記複雑さの測度は、空間的な測度、時間的な測度、端部の測度、輝度の測度、クロミナンスの測度、又はテクスチャの測度のいずれかからなることを特徴とする請求項15に記載の方法。
  17. 現在のフレームを受け取るステップと、
    該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
    前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
    各複雑さのコーディングパラメータを並列的に決定するステップと、
    各複雑さに対して該コーディングパラメータを決定した後、それぞれの前記複雑さを用いて、それぞれのピクチャーをコード化するステップと、
    該コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、
    該最終的なコード化されたピクチャーの選択を用いて複数の前記複雑さを更新するステップと、
    を具備することを特徴とする複雑さを決定するステップと、
    を具備することを特徴とするピクチャーをエンコードする方法。
  18. 前記複数の複雑さは、N個の複雑さを具備し、コーディングパラメータセットを、該N個の複雑さのそれぞれについて決定することを特徴とする請求項17に記載の方法。
  19. 前記それぞれの複雑さにピクチャー先読み情報を用いることにより画質のレベルを上げるステップをさらに具備することを特徴とする請求項17に記載の方法。
  20. ピクチャー先読みバッファの情報を受け取るステップと、
    第1のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップであって、
    該レート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、
    レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップと、
    を具備することを特徴とするステップと、
    を具備することを特徴とするビデオのレート配分の方法。
  21. 前記複雑さは、動き補償を行った絶対値差分和(SAD)、又は、ウェイト付けした推定を有するSAD、又は、時間的ピクチャー統計及び空間的ピクチャー統計の組み合わせを具備することを特徴とする請求項20に記載の方法。
  22. 多数のピクチャーの複雑さの合計、又は、多数のピクチャーの複雑さの線形結合又は非線形結合による全体的な複雑さを決定するステップであって、該合計は、ウェイト付けした合計を具備することを特徴とする請求項20に記載の方法。
  23. 前記ピクチャーがプレディクティブ・ピクチャーか又はノン・プレディクティブ・ピクチャー化を決定することにより、前記複雑さを決定するステップをさらに含むことを特徴とする請求項20に記載の方法。
  24. 全体ビット割り当て中の残りのビット数を考える関数と共に、前記ピクチャーに配分されたビット数を決定するステップをさらに具備することを特徴とする請求項20に記載の方法。
  25. 多数のピクチャーの複雑さのウェイト付けした合計を有する全体的な複雑さを決定するステップ、又は、前記ピクチャーがイントラ・ピクチャー推定か又はインターピクチャー推定かを決定することにより複雑さを決定するステップであって、前記コーディングパラメータのセットが量子化パラメータを具備することを特徴とする請求項20に記載の方法。
  26. ピクチャーの量子化パラメータ及び多数の残りのビットを初期化するステップと、
    ピクチャー先読みフレームの全体的な複雑さを決定するステップと、
    Iコード化されたピクチャー、Pコード化されたピクチャー、又は、周期的にIコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップと、
    Iコード化されたピクチャーについて、インターコード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第1のレート制御モデルを採用するステップと、
    Pコード化されたフレームについて、予測コード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第2のレート制御モデルを採用するステップと、
    周期的にIコード化されたピクチャーについて、このこのピクチャーをコード化するための予測量子化パラメータを用いるステップと、
    スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップと、
    を具備することを特徴とする、ビデオコーディングのためのレート配分方法。
  27. ピクチャーのビットターゲットの近接度を評価するステップと、
    コード化されたピクチャーのビットが前記ピクチャーのビットターゲットの近接度に近くない場合は、量子化パラメータを修正するステップと、
    を具備することを特徴とする請求項26に記載の方法。
  28. エンコードされたインターコード化されたピクチャーのビット数を決定するステップの後、該ピクチャーのスライス形式を決定するステップを具備することを特徴とする請求項26に記載の方法。
  29. コード化すべき他のピクチャーが存在するかどうかを判断するステップと、
    コード化すべき他のピクチャーが存在する場合は、
    選択したスライス形式に基づき前記レート制御を更新するステップと、
    以前の量子化パラメータと残りのビット数を修正するステップと、
    を具備することを特徴とする請求項26に記載の方法。
  30. ビデオシステム中の以前のピクチャーのコーディング統計受け取るステップと、
    将来のピクチャーの先読み情報を受け取るステップと、
    現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップであって、コーディングパラメータは、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとを具備し、現在のピクチャー及び以前のピクチャーは、画質及びビットレート配分を調整するためのウェイトを具備することを特徴とするステップと、
    現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップであって、画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正することを特徴とするステップと、
    を具備することを特徴とするビデオコーディングのレート制御方法。
  31. 複雑さの測度を有するビデオコーダをさらに具備し、該複雑さの測度は、前記画質を調整するために、将来のピクチャーの先読み情報と以前のピクチャーの過去のコーディング統計とを採用し、該画質を調整するために、過去のコーディング統計を用いたビデオコーダを採用することを具備し、該コーディングパラメータセットは、量子化パラメータ(QP)を構成することを特徴とする請求項30に記載の方法。
  32. コーディングパラメータのセットの値と、レートファクターの値とを初期化するステップであって、該コーディングパラメータのセットは量子化パラメータを具備することを特徴とするステップと、
    ビットターゲット、使用するビット数、及び、コーディングパラメータ修正要素を決定するステップと、
    ビットターゲットを有する前記レートファクターを決定するステップと、
    レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及びレベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと
    前記決定されたスライス形式を選択するステップと、
    を具備することを特徴とするレート制御の方法。
  33. レベルがゼロ以上のフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータ値とコーディングパラメータの修正要素とを決定するステップと、
    レベルゼロにおける予測コード化されたフレーム又はレベルゼロにおけるイントラコード化されたフレームに対して、該フレームをコーディングする前に、複雑さ及びレートファクターの関数としての量子化パラメータを決定するステップと、
    レベルゼロにおける周期的イントラコード化されたフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータを用いるステップと、
    を具備することを特徴とする請求項32に記載の方法。
  34. コーディングパラメータ及びレートファクターを初期化するステップと、
    ビットターゲット、ビットの数、及びオーバーフローパラメータを決定するステップと、
    前記ビットターゲットと、用いられた複雑さの合計との関数を有するレートファクターを決定するステップと、
    レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及び、レベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと、
    前記決定されたスライス形式を選択するステップと、
    を具備することを特徴とするレート制御の方法。
  35. レベルがゼロ以上のフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータ値とコーディングパラメータの修正要素とを決定するステップと、
    レベルゼロにおける予測コード化されたフレーム又はレベルゼロにおけるイントラコード化されたフレームに対して、該フレームをコーディングする前に、複雑さ及びレートファクターの関数としての量子化パラメータを決定するステップと、
    レベルゼロにおける周期的イントラコード化されたフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータを用いるステップと、
    を具備することを特徴とする請求項34に記載の方法。
  36. 前記コーディングパラメータは量子化パラメータを具備することを特徴とする請求項34に記載の方法。
  37. 前記方法は複雑さの推定をさらに具備することを特徴とする請求項35に記載の方法。
  38. データ処理装置にピクチャーの複雑さを推定するための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップであって、該複雑さには、時間的特性、空間的特性、又は、輝度的特性が含まれることを特徴とするステップと、
    前記ピクチャーの複雑さの測定基準を推定するステップであって、
    ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断するステップと、
    ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップと、
    を具備することを特徴とする測定基準を推定するステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  39. データ処理装置に高品質のコード化されたビデオを生成させるための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    ビデオピクチャー同士の複雑さの情報を評価するステップであって、該複雑さの情報は、時間情報又は空間情報を具備し、該ビデオピクチャーはビデオフレームを具備することを特徴とするステップと、
    フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップであって、該パラメータは、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータを具備することを特徴とするステップと、
    異常値を除去するため及前記パラメータ中の又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計量又はビデオフレーム同士の複雑さをフィルターするステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  40. データ処理装置にピクチャーの複雑さを推定するための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    ピクチャーを階層構造にコード化すべきかどうかを判断するステップであって、該階層構造は複数のピクチャーレベルを具備し、該階層構造は異なるピクチャーレベルでのビット又はコーディングパラメータをさらに具備することを特徴とするステップと、
    ピクチャーの特定の階層レベルへの割り当ての決定に基づき、該ピクチャーの重要性に基づきピクチャーをコード化するステップであって、該コード化は該ピクチャーの画質レベルを制御するステップを具備し、該コード化は該重要性に基づき該ピクチャーのコーディングパラメータの少なくとも1つを変化させるステップをさらに具備することを特徴とするステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  41. データ処理装置にビデオデータをコード化する工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    マクロブロックに基づくビデオデータのパラメータをコード化するステップであって、該コード化は、空間的統計及び時間的統計における変動を明らかにするステップを具備することを特徴とするステップと、
    複雑さの測度を生成するステップと、
    複雑さの測度の重要性を判断するステップと、
    複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを上げるためにコーディングパラメータセットを調整するために複雑さの測度を用いるステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  42. データ処理装置にピクチャーをエンコードする工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    現在のフレームを受け取るステップと、
    該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
    前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
    各複雑さのコーディングパラメータを並列的に決定するステップと、
    各複雑さに対して該コーディングパラメータを決定した後、それぞれの前記複雑さを用いて、それぞれのピクチャーをコード化するステップと、
    該コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、
    該最終的なコード化されたピクチャーの選択を用いて複数の前記複雑さを更新するステップと、
    を具備することを特徴とする複雑さを決定するステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  43. データ処理装置にビデオのレート配分の工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    ピクチャー先読みバッファの情報を受け取るステップと、
    第1のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップであって、
    該レート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、
    レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップと、
    を具備することを特徴とするステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  44. データ処理装置にビデオコーディングのためのレート配分の工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    ピクチャーの量子化パラメータ及び多数の残りのビットを初期化するステップと、
    ピクチャー先読みフレームの全体的な複雑さを決定するステップと、
    Iコード化されたピクチャー、Pコード化されたピクチャー、又は、周期的にIコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップと、
    Iコード化されたピクチャーについて、インターコード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第1のレート制御モデルを採用するステップと、
    Pコード化されたフレームについて、予測コード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第2のレート制御モデルを採用するステップと、
    周期的にIコード化されたピクチャーについて、このこのピクチャーをコード化するための予測量子化パラメータを用いるステップと、
    スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  45. データ処理装置にビデオコーディングのレート制御のための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    ビデオシステム中の以前のピクチャーのコーディング統計受け取るステップと、
    将来のピクチャーの先読み情報を受け取るステップと、
    現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップであって、コーディングパラメータは、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとを具備し、現在のピクチャー及び以前のピクチャーは、画質及びビットレート配分を調整するためのウェイトを具備することを特徴とするステップと、
    現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップであって、画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正することを特徴とするステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  46. データ処理装置にレート制御のための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
    コーディングパラメータのセットの値と、レートファクターの値とを初期化するステップであって、該コーディングパラメータのセットは量子化パラメータを具備することを特徴とするステップと、
    ビットターゲット、使用するビット数、及び、コーディングパラメータ修正要素を決定するステップと、
    ビットターゲットを有する前記レートファクターを決定するステップと、
    レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及びレベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと
    前記決定されたスライス形式を選択するステップと、
    を具備することを特徴とするコンピュータプログラム製品。
  47. 動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップであって、該複雑さには、時間的特性、空間的特性、又は、輝度的特性が含まれることを特徴とするステップと、
    前記ピクチャーの複雑さの測定基準を推定するステップであって、
    ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断するステップと、
    ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップと、
    を具備することを特徴とする測定基準を推定するステップと、
    を行うことを特徴とするビデオ処理のための1以上の装置からなるシステム。
  48. ビデオピクチャー同士の複雑さの情報を評価するステップであって、該複雑さの情報は、時間情報又は空間情報を具備し、該ビデオピクチャーはビデオフレームを具備することを特徴とするステップと、
    フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップであって、該パラメータは、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータを具備することを特徴とするステップと、
    異常値を除去するため及前記パラメータ中の又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計量又はビデオフレーム同士の複雑さをフィルターするステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
  49. ピクチャーを階層構造にコード化すべきかどうかを判断するステップであって、該階層構造は複数のピクチャーレベルを具備し、該階層構造は異なるピクチャーレベルでのビット又はコーディングパラメータをさらに具備することを特徴とするステップと、
    ピクチャーの特定の階層レベルへの割り当ての決定に基づき、該ピクチャーの重要性に基づきピクチャーをコード化するステップであって、該コード化は該ピクチャーの画質レベルを制御するステップを具備し、該コード化は該重要性に基づき該ピクチャーのコーディングパラメータの少なくとも1つを変化させるステップをさらに具備することを特徴とするステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
  50. マクロブロックに基づくビデオデータのパラメータをコード化するステップであって、該コード化は、空間的統計及び時間的統計における変動を明らかにするステップを具備することを特徴とするステップと、
    複雑さの測度を生成するステップと、
    複雑さの測度の重要性を判断するステップと、
    複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを上げるためにコーディングパラメータセットを調整するために複雑さの測度を用いるステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
  51. 現在のフレームを受け取るステップと、
    該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
    前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
    各複雑さのコーディングパラメータを並列的に決定するステップと、
    各複雑さに対して該コーディングパラメータを決定した後、それぞれの前記複雑さを用いて、それぞれのピクチャーをコード化するステップと、
    該コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、
    該最終的なコード化されたピクチャーの選択を用いて複数の前記複雑さを更新するステップと、
    を具備することを特徴とする複雑さを決定するステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
  52. ピクチャー先読みバッファの情報を受け取るステップと、
    第1のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップであって、
    該レート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、
    レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップと、
    を具備することを特徴とするステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
  53. ピクチャーの量子化パラメータ及び多数の残りのビットを初期化するステップと、
    ピクチャー先読みフレームの全体的な複雑さを決定するステップと、
    Iコード化されたピクチャー、Pコード化されたピクチャー、又は、周期的にIコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップと、
    Iコード化されたピクチャーについて、インターコード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第1のレート制御モデルを採用するステップと、
    Pコード化されたフレームについて、予測コード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第2のレート制御モデルを採用するステップと、
    周期的にIコード化されたピクチャーについて、このこのピクチャーをコード化するための予測量子化パラメータを用いるステップと、
    スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
  54. ビデオシステム中の以前のピクチャーのコーディング統計受け取るステップと、
    将来のピクチャーの先読み情報を受け取るステップと、
    現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップであって、コーディングパラメータは、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとを具備し、現在のピクチャー及び以前のピクチャーは、画質及びビットレート配分を調整するためのウェイトを具備することを特徴とするステップと、
    現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップであって、画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正することを特徴とするステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
  55. コーディングパラメータのセットの値と、レートファクターの値とを初期化するステップと、
    ビットターゲット、使用するビット数、及び、コーディングパラメータ修正要素を決定するステップと、
    ビットターゲットを有する前記レートファクターを決定するステップと、
    レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及びレベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと
    前記決定されたスライス形式を選択するステップと、
    を行うことを特徴とする1以上の装置からなるシステム。
JP2010527008A 2007-09-28 2008-09-08 ビデオ圧縮技法及びビデオ伝達技法 Active JP5427785B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US97638107P 2007-09-28 2007-09-28
US60/976,381 2007-09-28
PCT/US2008/075605 WO2009045683A1 (en) 2007-09-28 2008-09-08 Video compression and tranmission techniques

Publications (3)

Publication Number Publication Date
JP2010541386A true JP2010541386A (ja) 2010-12-24
JP2010541386A5 JP2010541386A5 (ja) 2011-10-27
JP5427785B2 JP5427785B2 (ja) 2014-02-26

Family

ID=40329263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010527008A Active JP5427785B2 (ja) 2007-09-28 2008-09-08 ビデオ圧縮技法及びビデオ伝達技法

Country Status (5)

Country Link
US (4) US9445110B2 (ja)
EP (2) EP2227020B1 (ja)
JP (1) JP5427785B2 (ja)
CN (1) CN101855910B (ja)
WO (1) WO2009045683A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140109902A (ko) * 2011-12-23 2014-09-16 인텔 코오퍼레이션 콘텐츠 적응적 고정밀 매크로블록 레이트 제어
KR101868270B1 (ko) * 2017-02-28 2018-06-15 재단법인 다차원 스마트 아이티 융합시스템 연구단 싱글 패스 일관 화질 제어를 기반으로 하는 컨텐츠 인식 비디오 인코딩 방법, 컨트롤러 및 시스템
JP2019512938A (ja) * 2016-03-09 2019-05-16 ソニー株式会社 量子化パラメータに基づくビデオ処理のためのシステム及び方法

Families Citing this family (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1810041A (zh) * 2003-06-25 2006-07-26 汤姆森许可贸易公司 利用移位帧差分进行加权预测估计的方法和设备
US8155207B2 (en) 2008-01-09 2012-04-10 Cisco Technology, Inc. Processing and managing pictures at the concatenation of two video streams
US8873932B2 (en) 2007-12-11 2014-10-28 Cisco Technology, Inc. Inferential processing to ascertain plural levels of picture interdependencies
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
EP2227020B1 (en) 2007-09-28 2014-08-13 Dolby Laboratories Licensing Corporation Video compression and transmission techniques
CN105898312A (zh) * 2007-10-05 2016-08-24 汤姆逊许可公司 用于视频编解码中速率控制精度的方法和装置
KR101336951B1 (ko) * 2007-11-02 2013-12-04 삼성전자주식회사 휴대 단말기 및 그 파노라마 이미지 촬영 모드 수행 방법
EP2101503A1 (en) * 2008-03-11 2009-09-16 British Telecommunications Public Limited Company Video coding
JP4992117B2 (ja) * 2008-03-24 2012-08-08 株式会社メガチップス 画像処理装置
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
US10123050B2 (en) 2008-07-11 2018-11-06 Qualcomm Incorporated Filtering video data using a plurality of filters
WO2010017166A2 (en) 2008-08-04 2010-02-11 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
BRPI0822986A2 (pt) * 2008-08-08 2015-06-23 Thomson Licensing Métodos e aparelhagens para detecção de inconsistências sob forma de interferências obscuras
US8750379B2 (en) * 2008-09-11 2014-06-10 General Instrument Corporation Method and apparatus for complexity-scalable motion estimation
JP5159955B2 (ja) * 2008-09-16 2013-03-13 ドルビー ラボラトリーズ ライセンシング コーポレイション 適応的ビデオ・エンコーダ制御
ES2546091T3 (es) * 2008-11-12 2015-09-18 Cisco Technology, Inc. Procesamiento de un programa de vídeo que tiene representaciones procesadas plurales de una señal de vídeo única para reconstrucción y emisión
US8897365B2 (en) * 2008-11-19 2014-11-25 Nvidia Corporation Video rate control processor for a video encoding process
US8605791B2 (en) * 2008-11-21 2013-12-10 Nvidia Corporation Video processor using an optimized slicemap representation
EP2200319A1 (en) 2008-12-10 2010-06-23 BRITISH TELECOMMUNICATIONS public limited company Multiplexed video streaming
KR101567974B1 (ko) * 2009-01-05 2015-11-10 에스케이 텔레콤주식회사 블록 모드 부호화/복호화 방법 및 장치와 그를 이용한 영상부호화/복호화 방법 및 장치
US9143803B2 (en) * 2009-01-15 2015-09-22 Qualcomm Incorporated Filter prediction based on activity metrics in video coding
EP2219342A1 (en) 2009-02-12 2010-08-18 BRITISH TELECOMMUNICATIONS public limited company Bandwidth allocation control in multiple video streaming
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
GB2469528B (en) * 2009-04-18 2011-10-05 Saffron Digital Ltd Transcoding video data
WO2010126437A1 (en) * 2009-04-28 2010-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Distortion weighing
US8949883B2 (en) 2009-05-12 2015-02-03 Cisco Technology, Inc. Signalling buffer characteristics for splicing operations of video streams
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8279926B2 (en) 2009-06-18 2012-10-02 Cisco Technology, Inc. Dynamic streaming with latticed representations of video
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
KR101624649B1 (ko) * 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US8635357B2 (en) * 2009-09-08 2014-01-21 Google Inc. Dynamic selection of parameter sets for transcoding media data
EP2302933A1 (en) * 2009-09-17 2011-03-30 Mitsubishi Electric R&D Centre Europe B.V. Weighted motion compensation of video
US8767825B1 (en) * 2009-11-30 2014-07-01 Google Inc. Content-based adaptive video transcoding framework
US20110135011A1 (en) * 2009-12-04 2011-06-09 Apple Inc. Adaptive dithering during image processing
WO2011084918A1 (en) 2010-01-06 2011-07-14 Dolby Laboratories Licensing Corporation High performance rate control for multi-layered video coding applications
CN105847806B (zh) * 2010-01-06 2019-05-03 Oppo广东移动通信有限公司 视频信息编码方法和视频信息编码系统
TW201134223A (en) * 2010-03-29 2011-10-01 Univ Nat Taiwan Perceptual video encoding system and circuit thereof
US20110255594A1 (en) * 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding
TWI421798B (zh) * 2010-04-27 2014-01-01 Novatek Microelectronics Corp 影像壓縮之位元率控制方法及其裝置
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
JP5625543B2 (ja) * 2010-06-28 2014-11-19 ソニー株式会社 符号化装置、電子機器、撮像装置、および撮像システム
US9094685B2 (en) * 2010-09-21 2015-07-28 Dialogic Corporation Efficient coding complexity estimation for video transcoding systems
US9172960B1 (en) * 2010-09-23 2015-10-27 Qualcomm Technologies, Inc. Quantization based on statistics and threshold of luminanceand chrominance
US8861617B2 (en) 2010-10-05 2014-10-14 Mediatek Inc Method and apparatus of region-based adaptive loop filtering
EP2458861A1 (en) * 2010-11-25 2012-05-30 ST-Ericsson SA Bit rate regulation module and method for regulating bit rate
US10021385B2 (en) * 2010-12-27 2018-07-10 Nec Corporation Video encoding device, video decoding device, video encoding method, video decoding method, and program
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US9066097B2 (en) * 2011-02-01 2015-06-23 Sony Corporation Method to optimize the transforms and/or predictions in a video codec
US8982960B2 (en) 2011-02-23 2015-03-17 Qualcomm Incorporated Multi-metric filtering
JP6327435B2 (ja) * 2011-03-03 2018-05-23 サン パテント トラスト 画像符号化方法、画像復号方法、画像符号化装置、及び、画像復号装置
JP5410638B2 (ja) * 2011-03-10 2014-02-05 日本電信電話株式会社 量子化制御装置及び方法、及び量子化制御プログラム
US8861593B2 (en) * 2011-03-15 2014-10-14 Sony Corporation Context adaptation within video coding modules
US8902973B2 (en) * 2011-04-05 2014-12-02 Dialogic Corporation Perceptual processing techniques for video transcoding
US8804820B2 (en) * 2011-04-21 2014-08-12 Dialogic Corporation Rate control with look-ahead for video transcoding
CN102158729B (zh) * 2011-05-05 2012-11-28 西北工业大学 无参考的视频序列编码质量客观评价方法
GB2492163B (en) 2011-06-24 2018-05-02 Skype Video coding
GB2492330B (en) 2011-06-24 2017-10-18 Skype Rate-Distortion Optimization with Encoding Mode Selection
GB2492329B (en) 2011-06-24 2018-02-28 Skype Video coding
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9060173B2 (en) * 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
EP2544450B1 (en) * 2011-07-07 2016-04-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Model parameter estimation for a rate- or distortion-quantization model function
US9369723B2 (en) * 2011-07-14 2016-06-14 Comcast Cable Communications, Llc Preserving image quality in temporally compressed video streams
WO2013019517A1 (en) 2011-08-02 2013-02-07 Ciinow, Inc. A method and mechanism for efficiently delivering visual data across a network
GB2493777A (en) 2011-08-19 2013-02-20 Skype Image encoding mode selection based on error propagation distortion map
CN104883576B (zh) 2011-08-29 2017-11-14 苗太平洋控股有限公司 以amvp模式产生预测区块的方法
GB2495468B (en) 2011-09-02 2017-12-13 Skype Video coding
GB2495469B (en) 2011-09-02 2017-12-13 Skype Video coding
GB2495467B (en) * 2011-09-02 2017-12-13 Skype Video coding
US20130179588A1 (en) * 2011-09-21 2013-07-11 General Instrument Corporation Adaptive streaming to multicast and constrained-fidelity constant bit rate encoding
WO2013043919A1 (en) * 2011-09-21 2013-03-28 General Instrument Corporation Constrained fidelity adaptive bitrate encoding systems and methods
DE102011119177A1 (de) * 2011-11-23 2013-05-23 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Verfahren zum Erstellen eines ersten Parametersatzes
US10728545B2 (en) 2011-11-23 2020-07-28 Texas Instruments Incorporated Method and system of bit rate control
US9094684B2 (en) 2011-12-19 2015-07-28 Google Technology Holdings LLC Method for dual pass rate control video encoding
JP5988577B2 (ja) * 2011-12-28 2016-09-07 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム
EP2803190B1 (en) * 2012-01-09 2017-10-25 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for multiple layered video coding systems
US9020294B2 (en) 2012-01-18 2015-04-28 Dolby Laboratories Licensing Corporation Spatiotemporal metrics for rate distortion optimization
EP2805496B1 (en) * 2012-01-19 2016-12-21 Huawei Technologies Co., Ltd. Reference pixel reduction for intra lm prediction
EP2820848B1 (en) 2012-02-29 2019-11-20 Dolby Laboratories Licensing Corporation Image metadata creation for improved image processing and content delivery
US9432694B2 (en) 2012-03-06 2016-08-30 Apple Inc. Signal shaping techniques for video data that is susceptible to banding artifacts
US9438918B2 (en) * 2012-04-23 2016-09-06 Intel Corporation Frame level rate control using motion estimated distortions
CN103428523B (zh) * 2012-05-22 2015-07-08 华为技术有限公司 评估视频质量的方法和装置
KR101373704B1 (ko) * 2012-05-29 2014-03-14 주식회사 코아로직 적응적 가중치 예측을 이용한 영상 처리 방법
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
AU2013307970A1 (en) * 2012-08-27 2015-03-12 Thomson Licensing Method and apparatus for estimating content complexity for video quality assessment
US9053191B2 (en) * 2012-08-30 2015-06-09 Facebook, Inc. Retroactive search of objects using k-d tree
US20140112384A1 (en) * 2012-10-22 2014-04-24 General Instrument Corporation Algorithms for determining bitrate for a statistical multiplexing system using scene change
US9807388B2 (en) * 2012-10-29 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Adaptive intra-refreshing for video coding units
US8948529B1 (en) 2012-10-30 2015-02-03 Google Inc. Multi-pass encoding
US9497424B2 (en) * 2012-12-05 2016-11-15 At&T Mobility Ii Llc System and method for processing streaming media of an event captured by nearby mobile phones
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
EP2952003B1 (en) * 2013-01-30 2019-07-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
WO2014130213A1 (en) 2013-02-21 2014-08-28 Dolby Laboratories Licensing Corporation Systems and methods for appearance mapping for compositing overlay graphics
US10055866B2 (en) 2013-02-21 2018-08-21 Dolby Laboratories Licensing Corporation Systems and methods for appearance mapping for compositing overlay graphics
US9621902B2 (en) * 2013-02-28 2017-04-11 Google Inc. Multi-stream optimization
US9357210B2 (en) 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9338450B2 (en) 2013-03-18 2016-05-10 Ecole De Technologie Superieure Method and apparatus for signal encoding producing encoded signals of high fidelity at minimal sizes
US9661331B2 (en) 2013-03-18 2017-05-23 Vantrix Corporation Method and apparatus for signal encoding realizing optimal fidelity
CA2809731A1 (fr) * 2013-03-18 2014-09-18 Ecole De Technologie Superieure Adaptation de fichiers video sous contraintes de taille et de resolution
US10609405B2 (en) 2013-03-18 2020-03-31 Ecole De Technologie Superieure Optimal signal encoding based on experimental data
KR101450645B1 (ko) * 2013-04-26 2014-10-15 주식회사 코아로직 비디오 비트율 제어 방법 및 장치
US20140321533A1 (en) * 2013-04-29 2014-10-30 Ati Technologies Ulc Single-path variable bit rate video compression
GB201308073D0 (en) * 2013-05-03 2013-06-12 Imagination Tech Ltd Encoding an image
US10440365B2 (en) * 2013-06-28 2019-10-08 Velos Media, Llc Methods and devices for emulating low-fidelity coding in a high-fidelity coder
US20150063461A1 (en) * 2013-08-27 2015-03-05 Magnum Semiconductor, Inc. Methods and apparatuses for adjusting macroblock quantization parameters to improve visual quality for lossy video encoding
US20150071343A1 (en) * 2013-09-12 2015-03-12 Magnum Semiconductor, Inc. Methods and apparatuses including an encoding system with temporally adaptive quantization
US9154782B2 (en) * 2013-09-16 2015-10-06 Magnum Semiconductor, Inc. Apparatuses and methods for adjusting coefficients using dead zones
US10356405B2 (en) 2013-11-04 2019-07-16 Integrated Device Technology, Inc. Methods and apparatuses for multi-pass adaptive quantization
US20150172680A1 (en) * 2013-12-16 2015-06-18 Arris Enterprises, Inc. Producing an Output Need Parameter for an Encoder
GB2518909B (en) 2013-12-16 2015-10-28 Imagination Tech Ltd Encoder adaptation
CN104159095B (zh) * 2014-02-19 2016-12-07 上海大学 一种多视点纹理视频和深度图编码的码率控制方法
US9432696B2 (en) * 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
US9516345B2 (en) 2014-03-17 2016-12-06 Qualcomm Incorporated Systems and methods for low complexity forward transforms using mesh-based calculations
JP6373033B2 (ja) * 2014-03-28 2018-08-15 キヤノン株式会社 符号化装置及び符号化方法
US10397574B2 (en) * 2014-05-12 2019-08-27 Intel Corporation Video coding quantization parameter determination suitable for video conferencing
US9288510B1 (en) * 2014-05-22 2016-03-15 Google Inc. Adaptive video transcoding based on parallel chunked log analysis
JP2016066922A (ja) * 2014-09-25 2016-04-28 ソニー株式会社 信号処理装置、撮像装置、および、それらにおける信号処理方法。
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
US10136133B2 (en) * 2014-11-11 2018-11-20 Dolby Laboratories Licensing Corporation Rate control adaptation for high-dynamic range images
FR3029381A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de composition d’une representation video intermediaire
US10021396B1 (en) * 2014-12-30 2018-07-10 Ambarella, Inc. Motion detection based on observing several pictures
MX2017008666A (es) * 2015-01-05 2017-11-17 Arris Entpr Llc Uso de estadisticas del filtro temporal de movimiento compensado (mctf) para deteccion de cambio de escena cuando ocurre una atenuacion, disolucion o corte.
US9955168B2 (en) * 2015-02-11 2018-04-24 Arris Enterprises Llc Constraining number of bits generated relative to VBV buffer
FR3033114A1 (fr) * 2015-02-19 2016-08-26 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
JP6394462B2 (ja) * 2015-03-30 2018-09-26 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
US9936203B2 (en) * 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression
US10284849B2 (en) 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
US10356428B2 (en) 2015-04-13 2019-07-16 Qualcomm Incorporated Quantization parameter (QP) update classification for display stream compression (DSC)
US10244255B2 (en) 2015-04-13 2019-03-26 Qualcomm Incorporated Rate-constrained fallback mode for display stream compression
US9781420B2 (en) * 2015-08-12 2017-10-03 Cisco Technology, Inc. Quality metric for compressed video
FR3040849A1 (fr) * 2015-09-04 2017-03-10 Stmicroelectronics (Grenoble 2) Sas Procede de compression d'un flux de donnees video
WO2017105391A1 (en) * 2015-12-14 2017-06-22 Arris Enterprises, Inc. A method to encode video with close multiple scene changes
US10171825B1 (en) * 2016-04-27 2019-01-01 Matrox Graphics Inc. Parallel compression of image data in a compression device
US10785485B1 (en) 2016-04-29 2020-09-22 Matrox Graphics Inc. Adaptive bit rate control for image compression
CN106331706B (zh) * 2016-05-03 2019-04-30 上海兆芯集成电路有限公司 基于曲线拟合的率失真优化方法以及使用该方法的装置
US10390015B2 (en) * 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
CN107920248B (zh) * 2016-10-11 2020-10-30 京东方科技集团股份有限公司 图像编解码装置、图像处理系统、训练方法和显示装置
JP6906324B2 (ja) * 2017-02-20 2021-07-21 キヤノン株式会社 符号化装置、符号化方法、及び、プログラム
US10771789B2 (en) * 2017-05-19 2020-09-08 Google Llc Complexity adaptive rate control
US10582196B2 (en) 2017-06-30 2020-03-03 Intel Corporation Generating heat maps using dynamic vision sensor events
US10349060B2 (en) * 2017-06-30 2019-07-09 Intel Corporation Encoding video frames using generated region of interest maps
CN109660825B (zh) * 2017-10-10 2021-02-09 腾讯科技(深圳)有限公司 视频转码方法、装置、计算机设备及存储介质
US10542277B2 (en) * 2017-10-24 2020-01-21 Arm Limited Video encoding
WO2019117864A1 (en) * 2017-12-12 2019-06-20 Google Llc Transcoding media content using an aggregated quality score
EP3744102A1 (en) * 2018-01-24 2020-12-02 Vid Scale, Inc. Generalized bi-prediction for video coding with reduced coding complexity
EP3550837A1 (en) * 2018-04-06 2019-10-09 Comcast Cable Communications LLC Method for generating quantization matrices based on viewing conditions
CN108924555B (zh) * 2018-05-04 2019-12-27 上海交通大学 一种适用于视频切片的码率控制比特分配方法
EP3823282A4 (en) * 2018-07-27 2021-05-19 SZ DJI Technology Co., Ltd. VIDEO ENCODING PROCESS AND DEVICE, AND COMPUTER READABLE STORAGE MEDIA
CN110166771B (zh) * 2018-08-01 2022-09-23 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机设备和存储介质
US11997275B2 (en) * 2018-08-27 2024-05-28 AT Technologies ULC Benefit-based bitrate distribution for video encoding
CN109451305B (zh) * 2018-10-26 2021-05-07 西安科锐盛创新科技有限公司 带宽压缩中的预测方法
CN111193927B (zh) * 2018-11-14 2022-09-23 腾讯科技(深圳)有限公司 编码数据处理方法、装置、计算机设备和存储介质
US10880354B2 (en) * 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
JP7224892B2 (ja) * 2018-12-18 2023-02-20 ルネサスエレクトロニクス株式会社 動画像符号化装置及びその動作方法、動画像符号化装置を搭載する車両
CN109587502B (zh) * 2018-12-29 2023-05-09 深圳市网心科技有限公司 一种帧内压缩的方法、装置、设备及计算机可读存储介质
CN109859126B (zh) * 2019-01-17 2021-02-02 浙江大华技术股份有限公司 一种视频降噪方法、装置、电子设备及存储介质
CN113302916B (zh) * 2019-01-27 2024-04-12 北京字节跳动网络技术有限公司 具有cu级别权重的双向预测的插值
US11259035B2 (en) * 2019-03-15 2022-02-22 Ati Technologies Ulc Macroblock coding type prediction
CN110677653B (zh) * 2019-09-27 2024-01-09 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110636327B (zh) * 2019-10-28 2022-02-01 成都超有爱科技有限公司 一种视频缓存方法、装置、电子设备及存储介质
US11843772B2 (en) * 2019-12-06 2023-12-12 Ati Technologies Ulc Video encode pre-analysis bit budgeting based on context and features
CN111193911B (zh) * 2020-01-15 2021-12-14 未来新视界文化科技(嘉善)有限公司 大数据视频的速传处理方法和装置
CA3178565A1 (en) * 2020-05-14 2021-11-18 Abdul REHMAN Perceptual quality assessment metric based content and viewer aware encoding
CN112839234B (zh) * 2021-01-18 2021-11-26 陕西师范大学 屏幕内容编码标准帧内图像码率的估计方法
CN112887750A (zh) * 2021-02-04 2021-06-01 成都国翼电子技术有限公司 一种基于rtmp的低时延直播方法
US11711491B2 (en) 2021-03-02 2023-07-25 Boe Technology Group Co., Ltd. Video image de-interlacing method and video image de-interlacing device
KR20220157765A (ko) * 2021-05-21 2022-11-29 삼성전자주식회사 영상 부호화 장치 및 이의 동작 방법
CN113542746B (zh) * 2021-07-13 2024-04-12 Oppo广东移动通信有限公司 视频编码方法及装置、计算机可读介质和电子设备
CN114449347B (zh) * 2022-03-03 2024-07-26 辽宁向日葵数字技术股份有限公司 一种视频渲染画面的智能优化方法
GB2611131B (en) * 2022-03-31 2023-11-22 V Nova Int Ltd Pre-analysis for video encoding
US20240137522A1 (en) * 2022-10-12 2024-04-25 City University Of Hong Kong Processing and encoding screen content video
WO2024136878A1 (en) * 2022-12-23 2024-06-27 Telefonaktiebolaget L M Ericsson (Publ) Joint bitrate adaptation and feature extraction for edge-assisted localization of mobile devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11215501A (ja) * 1998-01-23 1999-08-06 Sony Corp 画像信号符号化方法及び装置、画像複雑度予測方法及び装置
JP2001204022A (ja) * 1999-11-18 2001-07-27 Sony United Kingdom Ltd データ圧縮装置及びデータ圧縮方法
JP2004266640A (ja) * 2003-03-03 2004-09-24 Nec Corp 動画像符号化装置、動画像符号化方法、およびプログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0595536A (ja) 1991-10-01 1993-04-16 Toshiba Corp 高能率符号化信号処理装置
JPH09331531A (ja) 1996-06-13 1997-12-22 Matsushita Electric Ind Co Ltd 画像符号化装置
US6834080B1 (en) * 2000-09-05 2004-12-21 Kabushiki Kaisha Toshiba Video encoding method and video encoding apparatus
JP4127006B2 (ja) 2001-10-24 2008-07-30 ソニー株式会社 画像信号の符号化装置および符号化方法
US7251275B2 (en) * 2002-06-25 2007-07-31 General Instrument Corporation Methods and apparatus for statistical multiplexing during dual pass encoding
US20040252758A1 (en) * 2002-08-14 2004-12-16 Ioannis Katsavounidis Systems and methods for adaptively filtering discrete cosine transform (DCT) coefficients in a video encoder
EP1661409A2 (en) * 2003-08-26 2006-05-31 Thomson Licensing S.A. Method and apparatus for minimizing number of reference pictures used for inter-coding
US7295612B2 (en) * 2003-09-09 2007-11-13 Apple Inc. Determining the number of unidirectional and bidirectional motion compensated frames to be encoded for a video sequence and detecting scene cuts in the video sequence
US7409097B2 (en) * 2003-11-14 2008-08-05 Vweb Corporation Video encoding using variable bit rates
KR100834750B1 (ko) * 2004-01-29 2008-06-05 삼성전자주식회사 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법
US7453938B2 (en) * 2004-02-06 2008-11-18 Apple Inc. Target bitrate estimator, picture activity and buffer management in rate control for video coder
CN1926863B (zh) * 2004-06-27 2012-09-19 苹果公司 多通路视频编码的方法
FR2872973A1 (fr) * 2004-07-06 2006-01-13 Thomson Licensing Sa Procede ou dispositif de codage d'une sequence d'images sources
BRPI0518821B8 (pt) * 2004-12-02 2019-08-27 Interdigital Madison Patent Holdings determinação de parâmetro de quantizador para controle de taxa em codificador de vídeo
US20060233237A1 (en) * 2005-04-15 2006-10-19 Apple Computer, Inc. Single pass constrained constant bit-rate encoding
EP1964124A4 (en) 2005-12-08 2010-08-04 Vidyo Inc SYSTEMS AND METHODS FOR ERROR ACCURACY AND DIRECT ACCESS IN VIDEO COMMUNICATION SYSTEMS
US8761263B2 (en) 2006-03-27 2014-06-24 Vidyo, Inc. System and method for management of scalability information in scalable video and audio coding systems using control messages
US8494052B2 (en) 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
US8077775B2 (en) * 2006-05-12 2011-12-13 Freescale Semiconductor, Inc. System and method of adaptive rate control for a video encoder
JP5248802B2 (ja) * 2006-06-16 2013-07-31 カシオ計算機株式会社 動画符号化装置および動画符号化方法と、動画復号化装置および動画復号化方法と、動画記録装置
CA2849697A1 (en) 2006-10-16 2008-04-24 Alexandros Eleftheriadis Systems and methods for signaling and performing temporal level switching in scalable video coding
US7706384B2 (en) * 2007-04-20 2010-04-27 Sharp Laboratories Of America, Inc. Packet scheduling with quality-aware frame dropping for video streaming
EP2227020B1 (en) 2007-09-28 2014-08-13 Dolby Laboratories Licensing Corporation Video compression and transmission techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11215501A (ja) * 1998-01-23 1999-08-06 Sony Corp 画像信号符号化方法及び装置、画像複雑度予測方法及び装置
JP2001204022A (ja) * 1999-11-18 2001-07-27 Sony United Kingdom Ltd データ圧縮装置及びデータ圧縮方法
JP2004266640A (ja) * 2003-03-03 2004-09-24 Nec Corp 動画像符号化装置、動画像符号化方法、およびプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140109902A (ko) * 2011-12-23 2014-09-16 인텔 코오퍼레이션 콘텐츠 적응적 고정밀 매크로블록 레이트 제어
KR101651027B1 (ko) 2011-12-23 2016-08-24 인텔 코포레이션 콘텐츠 적응적 고정밀 매크로블록 레이트 제어
US9497241B2 (en) 2011-12-23 2016-11-15 Intel Corporation Content adaptive high precision macroblock rate control
JP2019512938A (ja) * 2016-03-09 2019-05-16 ソニー株式会社 量子化パラメータに基づくビデオ処理のためのシステム及び方法
US10499056B2 (en) 2016-03-09 2019-12-03 Sony Corporation System and method for video processing based on quantization parameter
KR101868270B1 (ko) * 2017-02-28 2018-06-15 재단법인 다차원 스마트 아이티 융합시스템 연구단 싱글 패스 일관 화질 제어를 기반으로 하는 컨텐츠 인식 비디오 인코딩 방법, 컨트롤러 및 시스템

Also Published As

Publication number Publication date
US9445110B2 (en) 2016-09-13
US20180020220A1 (en) 2018-01-18
EP2227020B1 (en) 2014-08-13
JP5427785B2 (ja) 2014-02-26
CN101855910A (zh) 2010-10-06
WO2009045683A1 (en) 2009-04-09
US20170034513A1 (en) 2017-02-02
CN101855910B (zh) 2014-10-29
US20220191493A1 (en) 2022-06-16
US12041234B2 (en) 2024-07-16
US20090086816A1 (en) 2009-04-02
EP2227020A1 (en) 2010-09-08
EP2191651A1 (en) 2010-06-02

Similar Documents

Publication Publication Date Title
JP5427785B2 (ja) ビデオ圧縮技法及びビデオ伝達技法
JP5400876B2 (ja) ビデオ符号化のための、スライス依存性に基づくレート制御モデル適合化
US8654835B2 (en) Adaptive video encoder control
Wang et al. Rate-distortion optimization of rate control for H. 264 with adaptive initial quantization parameter determination
JP4434959B2 (ja) ピクチュアベースの先読みウィンドウによるレート制御
KR101744654B1 (ko) 모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩
US8879623B2 (en) Picture-level rate control for video encoding a scene-change I picture
US8077775B2 (en) System and method of adaptive rate control for a video encoder
US8804820B2 (en) Rate control with look-ahead for video transcoding
Zhou et al. Complexity-based intra frame rate control by jointing inter-frame correlation for high efficiency video coding
EP1721467A2 (en) Rate and quality controller for h.264/avc video coder and scene analyzer therefor
Zhang et al. A two-pass rate control algorithm for H. 264/AVC high definition video coding
Wu et al. Rate control in video coding
US20240305783A1 (en) Video compression and transmission techniques
Zhang et al. Research of pseudo frame skip technology applied in H. 264
Wu et al. A Novel Total Variation Measurement Based Intra Frame Rate Control for H. 264/AVC
Huang et al. MMC02-2: H. 264 Bit-rate Control Using the 3-D Perceptual Quantization Modeling

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110822

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110831

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110906

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110906

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110831

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131202

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5427785

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250