JP5318134B2 - マルチパスのビデオ符号化 - Google Patents

マルチパスのビデオ符号化 Download PDF

Info

Publication number
JP5318134B2
JP5318134B2 JP2011052098A JP2011052098A JP5318134B2 JP 5318134 B2 JP5318134 B2 JP 5318134B2 JP 2011052098 A JP2011052098 A JP 2011052098A JP 2011052098 A JP2011052098 A JP 2011052098A JP 5318134 B2 JP5318134 B2 JP 5318134B2
Authority
JP
Japan
Prior art keywords
image
encoding
images
input buffer
sequence
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.)
Expired - Fee Related
Application number
JP2011052098A
Other languages
English (en)
Other versions
JP2011151838A (ja
JP2011151838A5 (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.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/118,616 external-priority patent/US8406293B2/en
Priority claimed from US11/118,604 external-priority patent/US8005139B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2011151838A publication Critical patent/JP2011151838A/ja
Publication of JP2011151838A5 publication Critical patent/JP2011151838A5/ja
Application granted granted Critical
Publication of JP5318134B2 publication Critical patent/JP5318134B2/ja
Expired - Fee Related 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
    • 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/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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、マルチパスのビデオ符号化に関する。
ビデオ符号器は、様々な符号化方式を使用することにより、ビデオイメージ(動画像)(例えば、ビデオフレーム)のシーケンスを符号化する。ビデオ符号化方式は、通常、ビデオフレーム、またはビデオフレームの諸部分(例えば、ビデオフレーム中のピクセルの集合(ピクセルセット))をフレーム内、またはフレーム間に関して符号化する。フレーム内符号化されたフレームまたはピクセルセットとは、他のフレーム、または他のフレームの中のピクセルセットとは独立に符号化されたフレームまたはピクセルセットである。フレーム間符号化されたフレームまたはピクセルセットとは、1以上の他のフレーム、または1以上の他のフレームの中の1以上のピクセルセットを参照して符号化されたフレームまたはピクセルセットである。
ビデオフレームを圧縮する際、一部の符号器は、符号化されるべきビデオフレームまたはビデオフレームの集合(ビデオフレームセット)のための「ビット予算(bit budget)」を提供する、「レートコントローラ」を実施する。ビット予算は、ビデオフレームまたはビデオフレームセットを符号化するのに割り当てられたビットの数を指定する。ビット予算を効率的に割り当てることにより、レートコントローラは、ある制約(例えば、目標ビットレート、その他)に鑑みて、最高品質の圧縮されたビデオストリームを生成しようと試みる。
今日まで、様々な単一パスのレートコントローラおよびマルチパスのレートコントローラが、提案されてきた。単一パスのレートコントローラは、一連のビデオイメージを1回のパスで符号化する符号化方式のためのビット予算を提供するのに対して、マルチパスのレートコントローラは、一連のビデオイメージを複数回のパスで符号化する符号化方式のためのビット予算を提供する。
単一パスのレートコントローラは、リアルタイムの符号化状況において役立つ。他方、マルチパスのレートコントローラは、一連の制約に基づく特定のビットレートに関する符号化を最適化する。符号化におけるビットレートを制御する際に、フレームまたはフレーム内のピクセルセットの空間的複雑性、または時間的複雑性を考慮に入れる、レートコントローラは、現在、多くはない。また、ほとんどのマルチパスのレートコントローラは、所望されるビットレートに鑑みて、フレームおよびフレーム内のピクセルセットのうちの少なくとも一方に関して、最適な量子化パラメータを使用する符号化ソリューションを求めて、解空間を十分に探索することもしない。
したがって、当技術分野において、新規な技術を使用して、ビデオイメージの集合(ビデオイメージセット)を符号化するためのビットレートを制御しながら、ビデオイメージおよびビデオイメージの諸部分のうちの少なくとも一方の空間的複雑性、または時間的複雑性を考慮する、レートコントローラの必要性が存在する。また、当技術分野において、符号化ソリューションを十分に調べて、ビデオイメージおよびビデオイメージの諸部分のうちの少なくとも一方に関して、最適な量子化パラメータセットを使用する符号化ソリューションを特定する、マルチパスのレートコントローラの必要性も存在する。
本発明の一部の実施形態は、いくつかのイメージ(例えば、ビデオシーケンスのいくつかのフレーム)を符号化するマルチパス符号化方法を提供する。本方法は、それらのイメージを符号化する符号化操作を繰り返し実行する。符号化操作は、本方法がイメージに関する量子化パラメータを計算するために使用する、名目量子化パラメータ(nominal QP)に基づく。符号化操作の数回の異なる繰り返し中、本方法は、いくつかの異なる名目量子化パラメータを使用する。本方法は、終了の基準に達すると(例えば、本方法が、許容できるイメージの符号化を特定すると)、繰り返しを停止する。
本発明の一部の実施形態は、ビデオシーケンスを符号化するための方法を提供する。本方法は、ビデオの中の第1のイメージの複雑性を定量化する第1の属性を特定する。また、本方法は、特定された第1の属性に基づき、第1のイメージを符号化するための量子化パラメータも特定する。次に、本方法は、特定された量子化パラメータに基づき、第1のイメージを符号化する。一部の実施形態では、この方法は、ビデオの中のいくつかのイメージに関して、以上3つの操作を実行する。
本発明の一部の実施形態は、ビデオイメージ、およびビデオイメージの諸部分のうちの少なくとも一方の「視覚マスキング」属性に基づき、ビデオイメージのシーケンスを符号化する。イメージ、またはイメージの一部の視覚マスキングは、そのイメージまたはイメージ部分の中で、どれだけの符号化アーチファクトが許容されることが可能であるかの指標である。イメージまたはイメージ部分の視覚マスキング属性を表現するのに、一部の実施形態は、そのイメージまたはイメージ部分の輝度エネルギーを定量化する視覚マスキング強度を計算する。一部の実施形態では、輝度エネルギーは、イメージまたはイメージ部分の平均ルーマ(Luma,輝度)エネルギーまたは平均ピクセルエネルギーの関数として測定される。
輝度エネルギーの代わりに、または輝度エネルギーと併せて、イメージまたはイメージ部分の視覚マスキング強度は、イメージまたはイメージ部分の活動エネルギーも定量化することが可能である。活動エネルギーは、イメージまたはイメージ部分の複雑性を表現する。一部の実施形態では、活動エネルギーは、イメージまたはイメージ部分の空間的複雑性を定量化する空間的成分、および、イメージ間の動きに起因する、許容されマスキングされることが可能な歪みの量を定量化する動き成分のうちの少なくとも一方を含む。
本発明の一部の実施形態は、ビデオシーケンスを符号化するための方法を提供する。本方法は、ビデオの中の第1のイメージの視覚マスキング属性を特定する。また、本方法は、特定された視覚マスキング属性に基づき、第1のイメージを符号化するための量子化パラメータも特定する。次に、本方法は、特定された量子化パラメータに基づき、第1のイメージを符号化する。
本発明の新規な諸特徴は、添付の特許請求の範囲で示される。しかし、説明のため、本発明のいくつかの実施形態が、以下の図で示される。
本発明の一部の実施形態の符号化方法を概念的に示すプロセスを示す図である。 一部の実施形態のコーデックシステムを概念的に示す図である。 一部の実施形態の符号化プロセスを示す流れ図である。 (a)は、一部の実施形態におけるアンダフロー条件を示す、イメージ番号に対するイメージの名目除去時間と最終到着時間の差のプロットである。(b)は、アンダフロー条件が解消された後の、図4aに示されたのと同一のイメージに関する、イメージ番号に対するイメージの名目除去時間と最終到着時間の差のプロットである。 一部の実施形態において、アンダフロー検出を実行するのに符号器が使用するプロセスを示す図である。 一部の実施形態において、イメージの単一のセグメントの中でアンダフロー条件を解消するのに符号器が利用するプロセスを示す図である。 ビデオストリーミングアプリケーションにおけるバッファアンダフロー管理の応用例を示す図である。 HD−DVDシステムにおけるバッファアンダフロー管理の応用例を示す図である。 本発明の一実施形態が実施されるコンピュータシステムを示す図である。
本発明の以下の詳細な説明では、本発明の多数の詳細、実施例、および実施形態が示され、説明される。しかし、本発明は、示される諸実施形態に限定されないこと、ならびに本発明は、説明される特定の詳細および実施例の一部を伴うことなしに実施されてもよいことが、当業者には明瞭かつ明白であろう。
[I.定義]
このセクションは、本明細書で使用されるいくつかの記号に関する定義を与える。
は、フレームシーケンスの符号化に対して所望されるビットレートである、目標ビットレートを表す。通常、このビットレートは、毎秒のビット数単位(ビット/秒)で表現され、所望される最終ファイルサイズ、シーケンスの中のフレーム数、およびフレームレートから計算される。
は、パスpの終了時における、符号化されたビットストリームのビットレートを表す。
は、パスpの終了時における、ビットレートの誤差のパーセンテージを表す。一部のケースでは、そのパーセンテージは、
Figure 0005318134
として計算される。
εは、最終ビットレートの許容誤差を表す。
εは、第1のQP探索段階に関するビットレートの許容誤差を表す。
QPは、量子化パラメータを表す。
QPNom(p)は、フレームシーケンスに関する、パスpでの符号化において使用される名目量子化パラメータ(nominal QP)を表す。QPNom(p)の値は、目標ビットレートに達するように、第1のQP調整段階において本発明のマルチパス符号器によって調整される。
MQP(k)は、パスpにおけるフレームkに関する量子化パラメータ(QP)である、マスキングされたフレームQPを表す。一部の実施形態は、名目QP、およびフレームレベルでの視覚マスキングを使用することにより、この値を計算する。
MQPMB(p)(k,m)は、フレームkおよびパスpにおける個別のマクロブロック(マクロブロックインデックスmを有する)に関する量子化パラメータ(QP)である、マスキングされたマクロブロックQPを表す。一部の実施形態は、MQP(k)およびマクロブロックレベルでの視覚マスキングを使用することにより、MQPMB(p)(k,m)を計算する。
φ(k)は、フレームkに関するマスキング強度と呼ばれる値を表す。マスキング強度φ(k)は、フレームに関する複雑性の尺度であり、一部の実施形態では、この値は、符号化アーチファクト/雑音が、どれだけ目に見えるように現れるかを判定するのに使用され、フレームkのMQP(k)を計算するのに使用される。
φR(p)は、パスpにおける基準マスキング強度を表す。基準マスキング強度は、フレームkのMQP(k)を計算するのに使用され、目標ビットレートを達成するために、第2の段階において本発明のマルチパス符号器によって調整される。
φMB(k,m)は、フレームkの中のインデックスmを有するマクロブロックに関するマスキング強度を表す。マスキング強度φMB(k,m)は、マクロブロックに関する複雑性の尺度であり、一部の実施形態では、符号化アーチファクト/雑音が、どれだけ目に見えるように現れるかを判定するのに使用され、MQPMB(p)(k,m)を計算するのに使用される。
AMQPは、パスpにおけるフレーム群にわたる平均のマスキングされたQPを表す。一部の実施形態では、この値は、パスpにおけるすべてのフレームにわたる平均のMQP(k)として計算される。
[II.概要]
本発明の一部の実施形態は、所与のビットレートでフレームシーケンスを符号化することに関して、最良の視覚的品質を実現する符号化方法を提供する。一部の実施形態では、この方法は、量子化パラメータQPをすべてのマクロブロックに割り当てる視覚マスキングプロセスを使用する。この割り当ては、イメージまたはビデオフレームの中のより明るい領域内、または空間的に複雑な領域内の符号化アーチファクト/雑音が、より暗い領域内、または均一の領域内におけるほどは、目に見えないという認識に基づく。
一部の実施形態では、この視覚マスキングプロセスは、本発明のマルチパス符号化プロセス(マルチパスの符号化プロセス)の一環として実行される。この符号化プロセスは、最終的な符号化されたビットストリームが、目標ビットレートに達するようにするために、名目量子化パラメータを調整し、基準マスキング強度パラメータφを介して、視覚マスキングプロセスを制御する。後段でさらに説明されるとおり、名目量子化パラメータを調整すること、およびマスキングアルゴリズムを制御することにより、各ピクチャ(すなわち、通常のビデオ符号化方式においては、各フレーム)に関するQP値、および各ピクチャ内の各マクロブロックが調整される。
一部の実施形態では、マルチパス符号化プロセスは、シーケンス全体に関する名目QPおよびφを全体的に調整する。他の諸実施形態では、このプロセスは、ビデオシーケンスをセグメントに分割し、各セグメントに関して、名目QPおよびφが調整される。後段の説明は、マルチパス符号化プロセスが使用されるフレームシーケンスについて述べる。そのシーケンスには、一部の実施形態では、シーケンス全体が含まれるのに対して、他の諸実施形態では、あるシーケンスのあるセグメントだけが含まれることが、当業者には認識されよう。
一部の実施形態では、本方法は、3つの符号化段階を有する。これら3つの段階は、(1)パス0において実行される初期分析段階、(2)パス1乃至パスNにおいて実行される第1の探索段階、および(3)パスN+1乃至N+Nにおいて実行される第2の探索段階である。
初期分析段階において(すなわち、パス0中に)、本方法は、名目QP(符号化のパス1において使用されるべきQPNom(1))の初期値を特定する。また、初期分析段階中、本方法は、第1の探索段階におけるすべてのパスにおいて使用される、基準マスキング強度φの値も特定する。
第1の探索段階で、本方法は、符号化プロセスのN回の繰り返し(すなわち、N回のパス)を実行する。各パスp中に各フレームkに関して、プロセスは、特定の量子化パラメータMQP(k)、ならびにフレームk内の個々のマクロブロックmに関する特定の量子化パラメータMQPMB(p)(k,m)を使用することによってフレームを符号化する。ただし、MQPMB(p)(k,m)は、MQP(k)を使用して計算される。
第1の探索段階において、量子化パラメータMQP(k)は、パスとパスの間で変化する名目量子化パラメータQPNom(p)から導出されるので、パスとパスの間で変化する。つまり、第1の探索段階中、各パスpの終りに、プロセスは、パスp+1に関する名目QPNom(p+1)を計算する。一部の実施形態では、名目QPNom(p+1)は、先行するパスからの名目QP値およびビットレート誤差に基づく。他の諸実施形態では、名目QPNom(p+1)値は、第2の探索段階において各パスの終りに、異なる形で計算される。
第2の探索段階で、本方法は、符号化プロセスのN回の繰り返し(すなわち、N回のパス)を実行する。第1の探索段階の場合と同様に、プロセスは、特定の量子化パラメータMQP(k)、ならびにフレームk内の個々のマクロブロックmに関する特定の量子化パラメータMQPMB(p)(k,m)を使用することにより、各パスp中に各フレームkを符号化する。ただし、MQPMB(p)(k,m)は、MQP(k)から導出される。
やはり、第1の探索段階の場合と同様に、量子化パラメータMQP(k)は、パスとパスの間に変化する。しかし、第2の探索段階中、このパラメータは、パスとパスの間に変化する基準マスキング強度φR(p)を使用して計算されるという理由により変化する。一部の実施形態では、基準マスキング強度φR(p)は、先行するパスからのビットレートの誤差、およびφの値に基づいて計算される。他の諸実施形態では、この基準マスキング強度は、第2の探索段階において各プロセスの終りに、異なる値となるように計算される。
マルチパス符号化プロセスは、視覚マスキングプロセスに関連して説明されるが、符号器は、これら両方のプロセスを一緒に使用しなくてもよいことが、当業者には認識されよう。例えば、一部の実施形態では、マルチパス符号化プロセスは、φを無視し、前述した第2の探索段階を省くことにより、視覚マスキングなしに、所与の目標ビットレート近傍のビットストリームを符号化するのに使用される。
視覚マスキングおよびマルチパス符号化プロセスを、本出願のセクションIIIおよびセクションIVにおいてさらに説明する。
[III.視覚マスキング]
名目量子化パラメータが与えられると、視覚マスキングプロセスはまず、基準マスキング強度(φ)およびフレームのマスキング強度(φ)を使用して、各フレームに関するマスキングされたフレーム量子化パラメータ(MQP)を計算する。次に、このプロセスは、フレームレベルおよびマクロブロックレベルのマスキング強度(φおよびφMB)に基づき、各マクロブロックに関するマスキングされたマクロブロック量子化パラメータ(MQPMB)を計算する。視覚マスキングプロセスが、マルチパス符号化プロセスにおいて使用される場合、一部の実施形態における基準マスキング強度(φ)は、前述し、後段でさらに説明するとおり、第1の符号化パス中に特定される。
<A.フレームレベルのマスキング強度を計算すること>
1.第1のアプローチ
フレームレベルのマスキング強度φ(k)を計算するのに、一部の実施形態は、以下の数式(A)を使用する。すなわち、
φ(k)=C*power(E*avgFrameLuma(k),β)*power(D*avgFrameSAD(k),α), (A)
ただし、
・avgFrameLuma(k)は、bが、1以上の整数である(例えば、b=1またはb=4)、b×bの領域を使用して計算される、フレームk内の平均ピクセル輝度であり、
・avgFrameSAD(k)は、フレームk内のすべてのマクロブロックにわたるMbSAD(k,m)の平均であり、
・MbSAD(k,m)は、インデックスmを有するマクロブロック内のすべての4×4ブロックに関する関数、Calc4×4MeanRemovedSAD(4×4_block_pixel_values)によって与えられる値の合計であり、
・α、C、D、およびEは、定数であり、かつ(或いは)、局所的な統計に適合されており、
かつ、
・power(a,b)は、aを意味する。
関数Calc4×4MeanRemovedSADに関する擬似コードは、以下のとおりである。すなわち、
Calc4x4MeanRemovedSAD(4x4_block_pixel_values)

所与の4×4ブロック内のピクセル値の平均値を計算する;
ピクセル値から平均値を引き、絶対値を計算する;
1つ前の工程で得られた絶対値を合計する;
合計を返す(return the sum;);
2.第2のアプローチ
他の諸実施形態は、フレームレベルのマスキング強度を異なる形で計算する。例えば、前述した数式(A)は、フレームのマスキング強度を基本的に以下のように計算する。すなわち、
φ(k)=C*power(E*Brightness_Attribute,exponent0)*
power(scalar*Spatial_Activity_Attribute,exponent1)
である。
数式(A)では、フレームのBrightness_Attributeは、avgFrameLuma(k)と等しくなり、Spatial_Activity_Attributeは、フレーム内のすべてのマクロブロックにわたる平均マクロブロックSAD(MbSAD(k,m))値であるavgFrameSAD(k)と等しくなる。ただし、平均マクロブロックSADは、マクロブロック内のすべての4×4ブロックに関する(Calc4×4MeanRemovedSADによって与えられる)平均隔たり4×4ピクセル偏差(mean removed 4x4 pixel variation)の絶対値の合計に等しい。このSpatial_Activity_Attributeは、符号化されているフレーム内のピクセル領域内における空間的イノベーション(空間的変化)の量を測定する。
他の諸実施形態は、いくつかの連続するフレームにわたるピクセル領域内の時間的イノベーション(時間的変化)の量を含むように活動性(activity)の尺度を拡張する。具体的には、それらの実施形態は、以下のとおりフレームのマスキング強度を計算する。すなわち、
φ(k)=C*power(E*Brightness_Attribute,exponent0)*
power(scalar*Activity_Attribute,exponent1) (B)
である。
この数式では、Activity_Attributeが、以下の数式(C)によって与えられる。すなわち、
Activity_Attribute=G*power(D*Spatial_Activity_Attribute,exponent_beta)+
E*power(F*Temporal_Activity_Attribute,exponent_delta) (C)
である。
一部の実施形態では、Temporal_Activity_Attributeは、フレーム間の動きに起因する、許容される(すなわち、マスキングされる)ことが可能な歪みの量を定量化する。それらの実施形態の一部では、フレームのTemporal_Activity_Attributeは、ある定数に、フレーム内の定義されたピクセル領域の動き補償された誤差信号の絶対値の合計を掛けた値に等しい。他の諸実施形態では、Temporal_Activity_Attributeは、以下の数式(D)によって与えられる。すなわち、
Figure 0005318134
である。
数式(D)では、「avgFrameSAD」は、(前述したとおり、)フレーム内の平均マクロブロックSAD(MbSAD(k,m))値を表し、avgFrameSAD(0)は、現在のフレームに関するavgFrameSADであり、負のjは、現在のフレームより前の時間インスタンスを指し示し、正のjは、現在のフレームより後の時間インスタンスを指し示す。このため、avgFrameSAD(j=−2)は、現在のフレームより前の2つのフレームの平均フレームSADを表し、avgFrameSAD(j=3)は、現在のフレームより後の3つのフレームの平均フレームSADを表す。
また、数式(D)において、変数Nおよび変数Mは、現在のフレームより前のフレームの数、および現在のフレームより後のフレームの数をそれぞれ示す。特定のフレーム数に基づいて値Nおよび値Mを単に選択する代わりに、一部の実施形態は、現在のフレームの時間より前の、特定の時間の長さ、およびその時間より後の、特定の時間の長さに基づき、値Nおよび値Mを計算する。動きマスキングを時間的長さと互いに関係付けることは、動きマスキングを所定のフレーム数と互いに関係付けることよりも有利である。これは、動きマスキングを時間的長さと互いに関係付けることが、見る人の時間ベースの視覚的認識にまさに一致しているからである。他方、そのようなマスキングをフレーム数と互いに関係付けることには、異なるディスプレイが、異なるフレームレートでビデオを提示するので、表示時間が定まらないという難点がある。
数式(D)において、「W」は、一部の実施形態では、フレームjが、現在のフレームから離れるにつれ、減少する重み係数を指す。やはり、この数式において、第1の合計は、現在のフレームより前にマスキングされることが可能な動きの量を表し、第2の合計は、現在のフレームより後にマスキングされることが可能な動きの量を表し、最後の項(avgFrameSAD(0))は、現在のフレームのフレームSADを表す。
一部の実施形態では、重み係数は、シーン変化を考慮に入れるように調整される。例えば、一部の実施形態は、ルックアヘッド範囲内(すなわち、M個のフレームの範囲内)の来たるべきシーン変化を考慮に入れるが、シーン変化後のいずれのフレームも考慮に入れない。例えば、それらの実施形態は、シーン変化後のルックアヘッド範囲内のフレームに関しては、重み係数を0に設定することが可能である。また、一部の実施形態は、ルックビハインド範囲内(すなわち、N個のフレームの範囲内)で、シーン変化に先立つフレーム、またはシーン変化時のフレームを考慮に入れない。例えば、それらの実施形態は、前のシーンに関係する、または前のシーン変化の前に来るルックビハインド範囲内のフレームに関しては、重み係数を0に設定することが可能である。
3.第2のアプローチの変形例
a)Temporal_Activity_Attributeに対する過去のフレーム、および将来のフレームの影響を制限すること
前述の数式(D)は、Temporal_Activity_Attributeを基本的に以下の関係で表現する。すなわち、
Temporal_Activity_Attribute=Past_Frame_Activity+Future_Frame_Activity+
Current_Frame_Activity
ただし、Past_Frame_Activity(PFA)は、
Figure 0005318134
に等しく、Future_Frame_Activity(FFA)は、
Figure 0005318134
に等しく、Current_Frame_Activity(CFA)は、avgFrameSAD(current)に等しい。
一部の実施形態は、Temporal_Activity_Attributeの計算を変更して、Past_Frame_Activityも、Future_Frame_Activityも、Temporal_Activity_Attributeの値を過度にコントロールしないようにする。例えば、一部の実施形態は、最初、PFAが、
Figure 0005318134
と等しくなり、FFAが、
Figure 0005318134
と等しくなるように定義する。
これらの実施形態は、次に、PFAが、スカラー掛けるFFAより大きいかどうかを判定する。大きい場合、それらの実施形態は、次に、PFAを、PFA上限値(例えば、スカラー掛けるFFA)と等しくなるように設定する。PFA上限値と等しくなるようにPFAを設定することに加え、一部の実施形態は、FFAを0に設定することと、CFAを0に設定することの組み合わせも実行することができる。他の諸実施形態は、PFAとCFAのいずれか、または両方を、PFA、CFA、およびFFAの重み付き組み合わせに設定することが可能である。
同様に、PFA値およびFFA値を重み付き合計に基づいて最初に定義した後、一部の実施形態は、FFA値が、スカラー掛けるPFAより大きいかどうかも判定する。大きい場合、それらの実施形態は、次に、FFAを、FFA上限値(例えば、スカラー掛けるPFA)と等しくなるように設定する。FFA上限値と等しくなるようにFFAを設定することに加え、一部の実施形態は、PFAを0に設定することと、CFAを0に設定することの組み合わせも実行することができる。他の諸実施形態は、FFAとCFAのいずれか、または両方を、FFA、CFA、およびPFAの重み付き組み合わせに設定することが可能である。
(重み付き合計に基づく、PFA値およびFFA値の初期計算後の)続いて行われるPFA値およびFFA値の可能な調整により、これらの値のいずれかが、Temporal_Activity_Attributeを過度にコントロールすることも防止される。
b)Spatial_Activity_AttributeおよびTemporal_Activity_AttributeのActivity_Attributeに対する影響を制限すること
前述の数式(C)は、基本的に、以下の関係でActivity_Attributeを表す。すなわち、
Activity_Attribute=Spatial_Activity+Temporal_Activity
ただし、Spatial_Activityは、scalar(scalarSpatial_Activity_Attribute)βに等しく、Temporal_Activityは、scalar(scalarTemporal_Activity_Attribute)Δに等しい。
一部の実施形態は、Activity_Attributeの計算を変更して、Spatial_Activityも、Temporal_Activityも、Activity_Attributeの値を過度にコントロールしないようにする。例えば、一部の実施形態は、最初、Spatial_Activity(SA)が、scalar(scalarSpatial_Activity_Attribute)βと等しくなるように定義し、Temporal_Activity(TA)が、scalar(scalarTemporal_Activity_Attribute)Δと等しくなるように定義する。
それらの実施形態は、次に、SAが、スカラー掛けるTAよりも大きいかどうかを判定する。大きい場合、それらの実施形態は、次に、SAを、SA上限値(例えば、スカラー掛けるTA)と等しくなるように設定する。そのようなケースにおいてSA上限と等しくなるようにSAを設定することに加え、一部の実施形態は、TA値を、0に、またはTAとSAの重み付き組み合わせに設定することも可能である。
同様に、指数方程式に基づいてSA値およびTA値を最初に定義した後、一部の実施形態は、TA値が、スカラー掛けるSAよりも大きいかどうかも判定する。大きい場合、それらの実施形態は、次に、TAを、TA上限値(例えば、スカラー掛けるSA)と等しくなるように設定する。そのようなケースにおいてTA上限と等しくなるようにTAを設定することに加え、一部の実施形態は、SA値を0に、またはSAとTAの重み付き組み合わせに設定することも可能である。
(指数方程式に基づく、SA値およびTA値の初期計算後の)続いて行われるSA値およびTA値の可能な調整により、これらの値のいずれかが、Activity_Attributeを過度にコントロールすることも防止される。
<B.マクロブロックレベルのマスキング強度を計算すること>
1.第1のアプローチ
一部の実施形態では、マクロブロックレベルのマスキング強度φMB(k,m)は、以下のとおり計算される。すなわち、
φMB(k,m)=A*power(C*avgMbLuma(k,m),β)*power(B*MbSAD(k,m),αMB), (F)
ただし、
・avgMbLuma(k,m)は、フレームk、マクロブロックmにおける平均ピクセル輝度であり、
・αMB、β、A、B、およびCは、定数であり、かつ(或いは)、局所的な統計に適合されている。
2.第2のアプローチ
前述した数式(F)は、マクロブロックのマスキング強度を基本的に以下のとおり計算する。すなわち、
φMB(k,m)=D*power(E*Mb_Brightness__Attribute,exponent0)*
power(scalar*Mb_Spatial_Activity_Attribute,exponent1)
である。
数式(F)において、マクロブロックのMb_Brightness_Attributeは、avgMbLuma(k,m)に等しく、Mb_Spatial_Activity_Attributeは、avgMbSAD(k)に等しい。このMb_Spatial_Activity_Attributeは、符号化中のマクロブロック内のピクセル領域内における空間的イノベーションの量を測定する。
フレームのマスキング強度の場合と全く同様に、一部の実施形態は、いくつかの連続するフレームにわたるピクセル領域内の時間的イノベーションの量を含むように、マクロブロックのマスキング強度における活動性の尺度を拡張することが可能である。具体的には、それらの実施形態は、マクロブロックのマスキング強度を以下のとおり計算する。すなわち、
φMB(k,m)=D*power(E*Mb_Brightness__Attribute,exponent0)*
power(scalar*Mb_Activity_Attribute,exponent1)
ただし、Mb_Activity_Attributeは、以下の数式(H)によって与えられる。すなわち、
Mb_Activity_Attribute=F*power(D*Mb_Spatial_Activity_Attribute,exponent_beta)+
G*power(F*Mb_Temporal_Activity_Attribute,exponent_delta) (H)
である。
マクロブロックに関するMb_Temporal_Activity_Attributeの計算は、フレームに関するMb_Temporal_Activity_Attributeの前述した計算と同様であることが可能である。例えば、それらの実施形態の一部では、Mb_Temporal_Activity_Attributeは、以下の数式(I)によって与えられる。すなわち、
Figure 0005318134
である。
数式(I)の中の変数は、セクションIII.Aにおいて定義された。数式(F)において、フレームi内、またはフレームj内のマクロブロックmは、現在のフレーム内のマクロブロックmと同一の位置におけるマクロブロックであることが可能である。或いは、フレームi内、またはフレームj内のマクロブロックmは、現在のフレーム内のマクロブロックmと一致すると最初に予測されたフレームi内、またはフレームj内のマクロブロックであることが可能である。
数式(I)によって与えられるMb_Temporal_Activity_Attributeは、数式(D)によって与えられる、フレームのTemporal_Activity_Attributeの変更(前述のセクションIII.A.3で説明された)と同様の形で変更されることが可能である。具体的には、数式(I)によって与えられるMb_Temporal_Activity_Attributeは、過去のフレーム内、および将来のフレーム内におけるマクロブロックの過度の影響を制限するように変更されることが可能である。
同様に、数式(H)によって与えられるMb_Activity_Attributeも、数式(C)によって与えられる、フレームのActivity_Attributeの変更(セクションIII.A.3で前述した)と同様の形で変更されることが可能である。具体的には、数式(H)によって与えられるMb_Activity_Attributeは、Mb_Spatial_Activity_AttributeおよびMb_Temporal_Activity_Attributeの過度の影響を制限するように変更されることが可能である。
<C.マスキングされたQP値を計算すること>
マスキング強度の値(φおよびφMB)、および基準マスキング強度の値(φ)に基づき、視覚マスキングプロセスは、2つの関数CalcMQPおよびCalcMQPforMBを使用することにより、フレームレベルおよびマクロブロックレベルにおけるマスキングされたQP値を計算することができる。これら2つの関数に関する擬似コードは、以下のとおりである。すなわち、
CalcMQP(nominalQP,φ(k),maxQPFrameAdjustment)

QPFrameAdjustment=β*(φ(k)-φ)/φ
[minQPFrameAdjustment,,maxQPFrameAdjustment]の範囲内に入るようにQPFrameAdjustmentをクリッピングする;
maskedQPofFrame=nominalQP+QPFrameAdjustment;
許容範囲内に入るようにmaskedQPofFrameをクリッピングする;
(フレームkに関する)maskedQPofFrameを返す;


CalcMQPforMB(maskedQPofFrame,φ(k),φMB(k,m),maxQPMacroblockAdjustment)

if(φ(k)>T) ただし、Tは、適切に選択された閾値
QPMacroblockAdjustment=βMB*(φMB(k,m)-φ(k))/φ(k);
else
QPMacroblockAdjustment=0;
[minQPMacroblockAdjustment,,maxQPMacroblockAdjustment]の範囲内に入るようにQPMacroblockAdjustmentをクリッピングする;
maskedQPofMacrobleck=maskedQPofFrame+QPMacroblockAdjustment;
有効なQP値範囲内に入るようにmaskedQPofMacroblockをクリッピングする;
maskedQPofMacroblockを返す;

である。
前述の関数において、βおよびβMBは、所定の定数であること、または局所的な統計に適合させられることが可能である。
[IV.マルチパス符号化]
図1は、本発明の一部の実施形態に係るマルチパス符号化方法を概念的に示すプロセス100を提示する。この図に示されるとおり、プロセス100は、以下の3つのサブセクションで説明される3つの段階を有する。
<A.分析および初期(最初の)QP選択>
図1に示されるとおり、プロセス100は、最初、マルチパス符号化プロセスの初期分析段階中に(すなわち、パス0中に)、基準マスキング強度(φR(1))の初期値、および名目量子化パラメータ(QPNom(1))の初期値を計算する(105で)。初期基準マスキング強度(φR(1))は、第1の探索段階中に使用されるのに対して、初期名目量子化パラメータ(QPNom(1))は、第1の探索段階の第1のパス中に(すなわち、マルチパス符号化プロセスのパス1中に)使用される。
パス0の始めに、φR(0)は、何らかの任意の値、または実験的結果に基づいて選択された値(例えば、φ値の通常の範囲の中央値)であることが可能である。シーケンスの分析中、各フレームに関してマスキング強度φ(k)が計算され、次に、基準マスキング強度φR(1)が、パス0の終りにおいてavg(φ(k))と等しくなるように設定される。また、基準マスキング強度φに関する他の決定も可能である。例えば、基準マスキング強度φは、値φ(k)の中央値として、または例えば、値φ(k)の重み付き平均値などの、値φ(k)に関する他の算術関数として計算されてもよい。
異なる複雑性を有する、初期QP選択のいくつかのアプローチが存在する。例えば、初期名目QPは、任意の値(例えば、26)として選択されることが可能である。代わりに、符号化実験に基づき、目標ビットレートに対して許容できる品質をもたらすことが知られている値が、選択されることも可能である。
また、初期名目QP値は、空間分解能、フレームレート、空間的/時間的複雑性、および目標ビットレートに基づき、ルックアップテーブルから選択されることも可能である。一部の実施形態では、この初期名目QP値は、以上のパラメータの各々に基づく距離の尺度を使用して、テーブルから選択されてもよい。あるいは、以上のパラメータの重み付き距離の尺度を使用して選択されてもよい。
また、この初期名目QP値は、レートコントローラを使用する(マスキングなしの)高速符号化中に、フレームQP値が選択されるにつれ、フレームQP値の調整された平均に設定されることも可能である。ただし、その平均は、パス0に関するビットレートパーセンテージのレート誤差Eに基づいて調整されている。また、同様に、初期名目QPは、フレームQP値の重み付きの調整された平均に設定されることも可能である。ただし、各フレームに関する重みは、飛ばされるマクロブロック(スキップドマクロブロック)として符号化されない、そのフレーム内のマクロブロックのパーセンテージによって決まる。代わりに、初期名目QPは、基準マスキング強度をφR(0)からφR(1)に変更することの効果が考慮に入れられる限り、レートコントローラを使用する(マスキングなしの)高速符号化中に、フレームQP値が選択されるにつれ、フレームQP値の調整された平均、または調整された重み付き平均に設定されることも可能である。
<B.第1の探索段階:名目QP調整>
105の後、マルチパス符号化プロセス100は、第1の探索段階に入る。第1の探索段階では、プロセス100は、シーケンスに対するN回の符号化を実行する。ただし、Nは、第1の探索段階中のパスの回数を表す。第1の段階の各パス中、プロセスは、変化する名目量子化パラメータを、一定の基準マスキング強度とともに使用する。
具体的には、第1の探索段階における各パスp中、プロセス100は、各フレームkに関する特定の量子化パラメータMQP(k)、およびフレームk内のそれぞれの個別のマクロブロックに関する特定の量子化パラメータMQPMB(p)(k,m)を計算する(107で)。所与の名目量子化パラメータQPNom(p)および基準マスキング強度φR(p)に関するパラメータMQP(k)およびMQPMB(p)(k,m)の計算は、セクションIIIで説明されている(ただし、MQP(k)およびMQPMB(p)(k,m)は、セクションIIIで前述した関数、CalcMQPおよびCalcMQPforMBを使用して計算される)。107中の第1のパス(すなわち、パス1)において、名目量子化パラメータおよび第1段階の基準マスキング強度は、初期分析段階105中に計算されたパラメータQPNom(1)および基準マスキング強度φR(1)である。
107の後、プロセスは、107で計算された量子化パラメータ値に基づき、シーケンスを符号化する(110で)。次に、符号化プロセス100は、終了すべきかどうかを判定する(115で)。異なる実施形態は、全体的な符号化プロセスを終了させることに関して、異なる基準を有する。マルチパス符号化プロセスを完全に終了させる終了条件の実施例には、以下が含まれる。すなわち、
・|E|<εである場合。ただし、εは、最終ビットレートにおける許容誤差である。
・QPNom(p)が、QP値の有効範囲の上限または下限にある場合。
・パスの回数が、容認できるパスの最大回数PMAXを超えた場合。
一部の実施形態は、以上の終了条件のすべてを使用する可能性があるのに対して、他の諸実施形態は、これらの条件の一部だけを使用する可能性がある。さらに別の諸実施形態は、符号化プロセスを終了させることに関して、他の終了条件を使用することが可能である。
マルチパス符号化プロセスが、終了することを決めた場合(115で)、プロセス100は、第2の探索段階を省き、145に進む。145で、プロセスは、最後のパスpからのビットストリームを最終結果として保存し、その後、終了する。
他方、プロセスが、終了すべきではないと判定した場合(115で)、プロセスは、次に、第1の探索段階を終了させるべきかどうかを判定する(120で)。やはり、異なる諸実施形態は、第1の探索段階を終了させることに関して、異なる基準を有する。マルチパス符号化プロセスの第1の探索段階を終了させる終了条件の実施例には、以下が含まれる。すなわち、
・QPNom(p+1)が、QPNom(q)と同一であり、かつq≦pである場合(その場合、ビットレートの誤差は、名目QPを変更しても、それよりも下げることができない)。
・|E|<εであり、ε>εである場合。ただし、εは、第1の探索段階に関するビットレートの許容誤差である。
・パスの回数が、Pを超えている場合。ただし、Pは、PMAx未満である。
・パスの回数が、P未満であるPを超えており、かつ|E|<εであり、ε>εである場合。
一部の実施形態は、以上の終了条件のすべてを使用する可能性があるのに対して、他の諸実施形態は、これらの条件の一部だけを使用する可能性がある。さらに別の諸実施形態は、第1の探索段階を終了させることに関して、他の終了条件を使用することが可能である。
マルチパス符号化プロセスが、第1の探索段階を終了させることを決めた場合(120で)、プロセス100は、次のサブセクションで説明される、第2の探索段階に進む。他方、プロセスが、第1の探索段階を終了させるべきではないと判定した場合(120で)、プロセスは、第1の探索段階における次のパスに関する名目QPを更新する(125で)(すなわち、QPNom(p+1)を定義する)。一部の実施形態では、名目QPNom(p+1)は、以下のとおり更新される。パス1の終りで、それらの実施形態は、
QPNom(p+1)=QPNom(p)+χE
と定義する。ただし、χは、定数である。パス2からパスNまでの各パスの終りで、それらの実施形態は、次に、
QPNom(p+1)=InterpExtrap(0,Eq1,Eq2,QPNom(q1),QPNom(q2)
と定義する。ただし、InterpExtrapは、以下にさらに説明される関数である。また、上の数式では、q1およびq2は、パスpまでのすべてのパスの中で最低である、対応するビットレート誤差を有するパス番号であり、q1、q2、およびpは、以下の関係を有する。すなわち、
1≦q1≦q2≦p
である。
以下は、InterpExtrap関数に関する擬似コードである。xが、x1からx2までの間にない場合、この関数は、補外(外挿)関数であることに留意されたい。それ以外の場合、この関数は、補間(内挿)関数である。
InterpExtrap(x,x1,x2,y1,y2)
{
if(x2 != x1) y = y1 + (x - x1) * (y2 - y1) / (x2 - x1);
else y = y1;
return y;
名目QP値は、通常、整数値に丸められ、QP値の有効範囲内に入るようにクリッピングされる。他の諸実施形態は、前述したアプローチとは異なる形で、名目QPNom(p+1)値を計算することも可能であることが、当業者には認識されよう。
125の後、プロセスは、107に戻り、次のパス(すなわち、p:=p+1)を開始し、このパスに関して、各フレームkに関する特定の量子化パラメータMQP(k)、ならびに現在のパスpに関するフレームk内のそれぞれの個別のマクロブロックmに関する特定の量子化パラメータMQPMB(p)(k,m)を計算する(107で)。次に、プロセスは、それらの新たに計算された量子化パラメータに基づき、フレームシーケンスを符号化する(110で)。そして、110から、プロセスは、前述した115に進む。
<C.第2の探索段階:基準マスキング強度調整>
プロセス100は、第1の探索段階を終了すべきであると判定した場合(120で)、130に進む。第2の探索段階で、プロセス100は、シーケンスのN回の符号化を実行する。ただし、Nは、第2の探索段階中のパスの回数を表す。各パス中、プロセスは、同一の名目量子化パラメータ、および変化する基準マスキング強度を使用する。
130で、プロセス100は、パスN+1である次のパス、すなわちパスp+1に関する基準マスキング強度φR(p+1)を計算する。パスN+1において、プロセス100は、135でフレームシーケンスを符号化する。異なる諸実施形態は、パスpの終りに、異なる形で基準マスキング強度φR(p+1)を計算する(130で)。2つの代替のアプローチを以下に説明する。
一部の実施形態は、先行するパスからのビットレートの誤差、およびφの値に基づき、基準マスキング強度φR(p)を計算する。例えば、パスNの終りに、一部の実施形態は、
φR(N1+1)=φR(N1)+φR(N1)×Konst×EN1
であると定義する。
mが、1より大きい整数であるパスN+mの終りに、一部の実施形態は、
φR(N1+m)=InterpExtrap(0,EN1+m−2,EN1+m−1,φR(N1+m−2),φR(N1+m−1)
であると定義する。
代わりに、一部の実施形態は、
φR(N1+m)=InterpExtrap(0,EN1+m−q2,EN1+m−q1,φR(N1+m−q2),φR(N1+m−q1)
であると定義する。ただし、q1およびq2は、最良の誤差を与えた先行するパスである。
他の諸実施形態は、セクションIで定義されたAMQPを使用することにより、第2の探索段階における各パスの終りに、基準マスキング強度を計算する。所与の名目QP、およびφの何らかの値に関してAMQPを計算するための1つのやり方を、関数GetAvgMaskedQPの擬似コードに関連して以下に説明する。
GetAvgMaskedQP(nominalQP,φ)
{
sum=0;
for(k=0;k<numframes;k++){
MQP(k)=CalcMQP(nominalQP,φ(k),maxQPFrameAdjustment)を使用して
計算された、フレームkに関するmaskedQP; //前段を参照
sum+=MQP(k);
}
return sum/numframes;
}
AMQPを使用する一部の実施形態は、先行するパスからのビットレートの誤差、およびAMQPの値に基づき、パスp+1に関する所望されるAMQPを計算する。そのAMQPに対応するφR(p+1)が、次に、関数Search(AMQP(p+1),φR(p))によって与えられる探索手続きを介して求められる。この関数の擬似コードは、このサブセクションの終りにおいて与えられる。
例えば、パスNの終りにおいて一部の実施形態は、AMQPN1+1を計算する。ただし、
>1である場合、AMQPN1+1=InterpExtrap(0,EN1−1,EN1,AMQPN1−1,AMQPN1)であり、かつ
=1である場合、AMQPN1+1=AMQPN1である。
次に、以上の実施形態は、
φR(N1+1)=Search(AMQPN1+1,φR(N1)
であると定義する。
パスN+mの終りに(ただし、mは、1より大きい整数)、一部の実施形態は、
AMQPN1+m=InterpExtrap(0,EN1+m−2,EN1+m−1,AMQPN1+m−2,AMQPN1+m−1
であり、かつ
φR(N1+m)=Search(AMQPN1+m,φR(N1+m−1)
であると定義する。
所望されるAMQP、およびφの何らかの既定値が与えられると、所望されるAMQPに対応するφは、一部の実施形態では、以下の擬似コードを有するSearch関数を使用して求められることが可能である。すなわち、
Search(AMQP,φ)
{
interpolateSuccess=True; //別の設定が行われるまで

reLumaSad0=refLumaSad1=refLumaSadx=φ;
errorInAvgMaskedQp=GetAvgMaskedQp(nominalQp,refLumaSadx)-AMQP;
if(errorInAvgMaskedQp>0){
ntimes=0;
do{
ntimes++;
refLumaSad0=(refLumaSad0*1.1);
errorInAvgMaskedQp=GetAvgMaskedQp(nominalQp,refLumaSad0)-amqp;
}while(errorInAvgMaskedQp>0 && ntimes<10);
if(ntimes>=10) interpolateSuccess=False;
}
else{ //errorInAvgMaskedQp<0
ntimes=0;
do{
ntimes++;
refLumaSad1=(refLumaSad1*0.9);
errorInAvgMaskedQp=GetAvgMaskedQp(nominalQp,refLumaSad1)-amqp;
}while(errorInAvgMaskedQp<0 && ntimes<10);
if(ntimes>=10) interpolateSuccess=False;
}
ntimes=0;
do{
ntimes++;
refLumaSadx=(refLumaSad0+refLumaSad1)/2; //単純な連続近似
errorInAvgMaskedQp=GetAvgMaskedQp(nominalQp,refLumaSadx)-AMQP;
if(errorInAvgMaskedQp>0) refLumaSad1=refLumaSadx;
else refLumaSad0=refLumaSadx;
}while(ABS(errorInAvgMaskedQp)>0.05 && ntimes<12);
if(ntimes>=12) interpolateSuccess=False;
}
if(interpolateSuccess) return refLumaSadx;
else return φ
}
である。
以上の擬似コードにおいて、数値10、12、および0.05は、適切に選択された閾値で置き換えられてもよい。
フレームシーケンスの符号化を介して、次のパス(パスp+1)に関する基準マスキング強度を計算した後、プロセス100は、132に進み、次のパス(すなわち、p:=p+1)を開始する。各符号化パスp中の各フレームk、および各マクロブロックmに関して、プロセスは、各フレームkに関する特定の量子化パラメータMQP(k)、ならびにフレームk内の個々のマクロブロックmに関する特定の量子化パラメータMQPMB(p)(k,m)を計算する(132で)。所与の名目量子化パラメータQPNom(p)、および基準マスキング強度φR(p)に関するパラメータMQP(k)およびMQPMB(p)(k,m)の計算は、セクションIIIにおいて説明されている(ただし、MQP(k)およびMQPMB(p)(k,m)は、セクションIIIにおいて前述した関数、CalcMQPおよびCalcMQPforMBを使用することによって計算される)。132の間の第1のパス中、基準マスキング強度は、130において計算されたばかりの基準マスキング強度である。また、第2の探索段階中、名目QPも、第2の探索段階全体を通して、一定のままである。一部の実施形態では、第2の探索段階中の名目QPは、第1の探索段階中に最良の符号化ソリューションをもたらした(すなわち、最低のビットレート誤差の符号化ソリューションをもたらした)名目QPである。
132の後、プロセスは、130で計算された量子化パラメータを使用してフレームシーケンスを符号化する(135で)。135の後、プロセスは、第2の探索段階を終了させるべきかどうかを判定する(140で)。異なる諸実施形態は、パスpの終りに第2の探索段階を終了させることに関して、異なる基準を使用する。そのような基準の実施例は、以下のとおりである。すなわち、
・|E|<εの場合。ただし、εは、最終ビットレートの許容誤差である。
・パスの回数が、許容されるパスの最大回数を超えている場合。
一部の実施形態は、以上の終了条件のすべてを使用する可能性があるのに対して、他の諸実施形態は、これらの条件の一部だけを使用する可能性がある。さらに別の諸実施形態は、第1の探索段階を終了させることに関して、他の終了条件を使用することが可能である。
プロセス100は、第2の探索段階を終了させるべきでないと判定すると(140において)、130に戻り、符号化の次のパスに関する基準マスキング強度を再計算する。130から、プロセスは、132に進んで、量子化パラメータを計算し、次に、135に進んで、その新たに計算された量子化パラメータを使用することにより、ビデオシーケンスを符号化する。
他方、プロセスは、第2の探索段階を終了させることを決めた場合(140で)、145に進む。145で、プロセス100は、最後のパスpからのビットストリームを最終結果として保存し、その後、終了する。
[V.復号器入力バッファアンダフロー制御]
本発明の一部の実施形態は、復号器によって使用される入力バッファの使用に関して最適な符号化ソリューションを特定するため、ビデオシーケンスの目標ビットレートに対する様々な符号化を調べるマルチパス符号化プロセスを提供する。一部の実施形態は、このマルチパスプロセスは、図1のマルチパス符号化プロセス100に従う。
復号器入力バッファ(「復号器バッファ」)の使用率は、符号化されたイメージシーケンス(例えば、フレーム)の復号化中、ある程度変動する。これは、符号化されたイメージのサイズの変動、復号器が符号化されたデータを受け取る速度、復号器バッファのサイズ、復号化プロセスの速度、その他の、様々な要因のためである。
復号器バッファアンダフローとは、イメージが、復号器側に完全に到着する前に、復号器が、次のイメージを復号化する準備ができている状況を意味する。一部の実施形態のマルチパス符号器は、復号器バッファをシミュレートし、シーケンス内の選択されたセグメントを再符号化して、復号器バッファアンダフローを防止する。
図2は、本発明の一部の実施形態のコーデックシステム200を概念的に示す。このシステムは、復号器205および符号器210を含む。この図では、符号器210は、符号器210が、復号器205の同様のコンポーネントの動作をシミュレートすることを可能にする、いくつかのコンポーネントを有する。
具体的には、復号器205は、入力バッファ215と、復号化プロセス220と、出力バッファ225とを有する。符号器210は、シミュレートされた復号器入力バッファ230、シミュレートされた復号化プロセス235、およびシミュレートされた復号器出力バッファ240を保持することにより、以上のモジュールをシミュレートする。本発明の説明を妨げないように、図2は、復号化プロセス220および符号化プロセス245を単一のブロックとして示すように単純化されている。また、一部の実施形態では、シミュレートされた復号化プロセス235、およびシミュレートされた復号器出力バッファ240は、バッファアンダフロー管理のために利用されず、したがって、この図では、単に例示のために示されている。
復号器は、入力バッファ215を保持して、入ってくる符号化イメージの速度および到着時間の変動を平滑化する。復号器に、データがなくなった(アンダフロー)場合、または入力バッファがいっぱいになった場合(オーバフロー)、ピクチャ復号化が止まるので、または入ってくるデータが破棄されるので、目に見える復号化の不連続が存在する。これらのケースのいずれも、望ましくない。
アンダフロー条件を解消するために、符号器210は、一部の実施形態では、イメージシーケンスをまず符号化し、それらをストレージ255の中に格納する。例えば、符号器210は、マルチパス符号化プロセス100を使用して、イメージシーケンスの第1の符号化を獲得する。次に、符号器210は、復号器入力バッファ215をシミュレートし、バッファアンダフローを生じさせるイメージを再符号化する。すべてのバッファアンダフロー条件が取り除かれた後、再符号化されたイメージが、ネットワーク接続(インターネット、ケーブル、PSTN線、その他)、非ネットワークの直接接続、媒体(DVD、その他)、その他であることが可能な接続260を介して、復号器205に供給される。
図3は、一部の実施形態の符号器の符号化プロセス300を示す。このプロセスは、復号器バッファがアンダフローになることを生じさせない最適な符号化ソリューションを見出そうと試みる。図3に示されるとおり、プロセス300は、所望される目標ビットレートを満たすイメージシーケンスの第1の符号化(例えば、シーケンス内の各イメージに関する平均ビットレートが、所望される平均目標ビットレートを満たす)を特定する(302で)。例えば、プロセス300は、マルチパス符号化プロセス100を使用して(302で)、イメージシーケンスの第1の符号化を得ることが可能である。
302の後、符号化プロセス300は、接続速度(すなわち、復号器が、符号化されたデータを受け取る速度)、復号器入力バッファのサイズ、符号化されたイメージのサイズ、復号化プロセス速度、その他などの、様々な要因を考慮することにより、復号器入力バッファ215をシミュレートする(305で)。310で、プロセス300は、符号化されたイメージのセグメントが復号器入力バッファをアンダフローさせるかどうかを判定する。アンダフロー条件を判定する(その後、解消させる)のに符号器が使用する技術は、後段でさらに説明する。
符号化されたイメージが、アンダフロー条件を生じさせないとプロセス300が判定した場合(310で)、プロセスは、終了する。他方、符号化されたイメージのいずれかのセグメント内にバッファアンダフロー条件が存在するとプロセス300が判定した場合(310で)、プロセス300は、符号化パラメータを、先行する符号化プロセスからのそれらのパラメータの値に基づき、改良する(315で)。次に、プロセスは、アンダフローを伴うセグメントを再符号化して(320で)、セグメントのビットサイズを小さくする。セグメントを再符号化した後、プロセス300は、そのセグメントを調べて(325で)、アンダフロー条件が解消されたかどうかを判定する。
セグメントが、依然として、アンダフローを生じさせるとプロセスが判定した場合(325で)、プロセス300は、315に進んで、アンダフローを解消するように符号化パラメータをさらに改良する。一方、セグメントが、アンダフローを全く生じさせないとプロセスが判定した場合(325で)、プロセスは、ビデオシーケンスを再検査して再符号化するための開始点を、320における前回の繰り返しにおいて再符号化されたセグメントの終りの後のフレームとして指定する(330で)。次に、335で、プロセスは、315および320で指定されたアンダフローセグメントの後に続く最初のIDRフレームまで(かつ、そのフレームを除外して)、330で指定されたビデオシーケンスの部分を再符号化する。335の後、プロセスは、305に戻り、復号器バッファをシミュレートして、ビデオシーケンスの残りの部分が、再符号化の後、依然として、バッファアンダフローを生じさせるかどうかを判定する。305からのプロセス300の流れを、以上に説明した。
<A.符号化されたイメージのシーケンス内のアンダフローセグメントを特定すること>
前述したとおり、符号器は、復号器バッファ条件をシミュレートして、符号化された、または再符号化されたイメージシーケンス内のいずれかのセグメントが、復号器バッファの中でアンダフローを生じさせるかどうかを判定する。一部の実施形態では、符号器は、符号化されたイメージのサイズ、帯域幅などのネットワーク条件、復号器要因(例えば、入力バッファサイズ、イメージを除去するのにかかる初期時間および名目時間、復号化プロセス時間、各イメージの表示時間、その他)を考慮するシミュレーションモデルを使用する。
一部の実施形態では、MPEG−4 AVC符号化ピクチャバッファ(CPB)モデルが、復号器入力バッファの状態をシミュレートするのに使用される。CPBは、MPEG−4 H.264標準において、仮想参照デコーダ(Hypothetical Reference Decoder)(HRD)のシミュレートされた入力バッファを指すのに使用される用語である。HRDは、符号化プロセスが、生成することができる適合するストリームの変動性に対する制約を指定する仮想の復号器モデルである。CPBモデルは、周知であるが、便宜上、以下のセクション1で説明する。CPBおよびHRDのより詳細な説明は、Draft ITU−T Recommendation and Final Draft International Standard of Joint Video Specification(ITU−T Rec.H.264/ISO/IEC 14496−10 AVC)で見ることができる。
1.CPBモデルを使用して、復号器バッファをシミュレートすること
以下の段落は、一部の実施形態において、CPBモデルを使用して、復号器入力バッファがどのようにシミュレートされるかを説明する。イメージnの最初のビットが、CPBに入り始める時間は、初期到着時間tai(n)と呼ばれ、以下のとおり導出される。すなわち、
・イメージが、最初のイメージ(すなわち、イメージ0)である場合、tai(0)=0であり、
・イメージが、符号化されている、または再符号化されているシーケンス内の最初のイメージではない場合(すなわち、n>0である場合)、tai(n)=Max(taf(n−1),tai,earliest(n))
である。
上の数式において、
・tai,earliest(n)=tr,n(n)−initial_cpb_removal_delay
である。ただし、tr,n(n)は、以下に指定されるCPBからのイメージnの名目除去時間であり、initial_cpb_removal_delayは、初期バッファリング期間である。
イメージnに関する最終到着時間は、
af(n)=tai(n)+b(n)/BitRate
によって導出される。ただし、b(n)は、イメージnのサイズ(単位はビット)である。
一部の実施形態では、符号器は、H.264規格におけるように、ビットストリームのオプションの部分(オプショナルパート)から名目除去時間を読み取る代わりに、以下に説明されるとおり、名目除去時間の独自の計算を行う。イメージ0に関して、CPBからのイメージの名目除去時間は、
r,n(0)=initial_cpb_removal_delay
によって指定される。
イメージn(n>0)に関して、CPBからのイメージの名目除去時間は、
r,n(n)=tr,n(0)+sumi=0乃至n−1(t
によって指定される。ただし、tr,n(n)は、イメージnの名目除去時間であり、tは、ピクチャiに関する表示時間である。
イメージnの除去時間は、以下のとおり指定される。
・tr,n(n)>=taf(n)である場合、t(n)=tr,n(n)であり、
・tr,n(n)<taf(n)である場合、t(n)=taf(n)である。
イメージnのサイズ、b(n)が、余りにも大きいため、名目除去時間における除去が妨げられることを示すのは、この後者(t(n)=taf(n))のケースである。
2.アンダフローセグメントの検出
前のセクションで説明されるとおり、符号器は、復号器入力バッファの状態をシミュレートし、所与の時点におけるバッファ内のビット数を獲得することができる。或いは、符号器は、その名目除去時間と最終到着時間の差(すなわち、t(n)=tr,n(n)−taf(n))を介して、それぞれの個別のイメージが、復号器入力バッファの状態をどのように変化させるかを追跡することができる。t(n)が、0未満である場合、バッファは、時点tr,n(n)と時点taf(n)の間にアンダフローを来たしており、場合によっては、tr,n(n)より前、およびtaf(n)の後にもアンダフローを来たしている。
アンダフローに直接に関わっているイメージは、t(0)が、0未満であるかどうかを試験することにより、容易に見出すことができる。しかし、0未満のt(n)を有するイメージは、必ずしもアンダフローを生じさせるわけではなく、逆に、アンダフローを生じさせるイメージは、0未満のt(n)を有さない可能性もある。一部の実施形態は、アンダフローセグメントを次のように定義する。すなわち、アンダフローがその最悪の点に達するまで、復号器入力バッファを絶えず空にすることによってアンダフローを生じさせる、一続きの連続するイメージ(復号化順の)として定義する。
図4は、一部の実施形態における、イメージ数に対する、名目除去時間と最終イメージ到着の差t(n)のプロットである。このプロットは、1500個の符号化されたイメージのシーケンスに関して描かれている。図4aは、アンダフローセグメントを示し、矢印が、そのセグメントの始まりと終りを示している。簡明にするため、矢印によって明示されていない、第1のアンダフローセグメントの後に出現する別のアンダフローセグメントが、図4aに存在することに留意されたい。
図5は、305におけるアンダフロー検出動作を実行するのにエンコーダが使用するプロセス500を示す。プロセス500は、前述したとおり、復号器入力バッファの状態をシミュレートすることにより、各イメージの最終到着時間、taf、および名目除去時間、tr,nをまず判定する(505で)。このプロセスは、バッファアンダフロー管理の繰り返しプロセス中に数回、呼び出されることが可能であるので、あるイメージ番号を開始点として受け取り、その与えられた開始イメージからイメージシーケンスを調べることに留意されたい。明らかに、最初の繰り返しに関して、開始点は、シーケンス内の最初のイメージである。
510で、プロセス500は、復号器入力バッファにおける各イメージの最終到着時間を、復号器によるそのイメージの名目除去時間と比べる。名目除去時間より後の最終到着時間を有するイメージが全く存在しないとプロセスが判定した(すなわち、アンダフロー条件は、全く存在しない)場合、プロセスは、終了する。他方、最終到着時間が、名目除去時間より後であるイメージが見つかった場合、プロセスは、アンダフローが存在すると判定し、515に進んで、アンダフローセグメントを識別する。
515で、プロセス500は、アンダフロー条件が改善し始める(すなわち、t(n)が、一続きのイメージにわたってさらに負にならない)次の大域最小値まで、復号器バッファが、絶えず空にされることが始まるイメージのセグメントとして、アンダフローセグメントを識別する。次いで、プロセス500は、終了する。一部の実施形態では、アンダフローセグメントの始まりは、関連するフレーム間符号化されたイメージセットの開始を示すフレーム内符号化されたイメージであるIフレームで始まるように、さらに調整される。アンダフローを生じさせる1つまたは複数のセグメントが特定されると、符号器は、そのアンダフローを解消することに取りかかる。以下のセクションBが、単一セグメントのケース(すなわち、符号化されたイメージのシーケンス全体が、単一のアンダフローセグメントだけを含む)におけるアンダフローの解消を説明する。その後、セクションCが、マルチセグメントのアンダフローのケースに関するアンダフローの解消を説明する。
<B.単一セグメントのアンダフローの解消>
図4(a)を参照すると、t(n)対nの曲線が、下降する傾きでn軸と1回だけ交差する場合、シーケンス全体の中に1つだけのアンダフローセグメントが存在する。アンダフローセグメントは、ゼロ交差点より前の最も近い局所最大値で始まり、ゼロ交差点とそのシーケンスの終りの間の、次の大域最小値で終わる。バッファが、アンダフローから回復する場合、セグメントの終点の後には、上昇する傾きを持つ曲線による別のゼロ交差点が続き得る。
図6は、一部の実施形態において、単一のイメージセグメント内でアンダフロー条件を解消するのに符号器が利用する(315、320、および325で)プロセス600を示す。605で、プロセス600は、バッファに入る入力ビットレートと、セグメントの終りで見られる最長の遅延(例えば、最小t(n))との積を計算することにより、ビットの総数を推定して、アンダフローセグメント内の(ΔB)を小さくする。
次に、610で、プロセス600は、前回の符号化パス(または直近の複数回のパス)からの、現在のセグメント内の平均のマスキングされたフレームQP(AMQP)、および総ビット数を使用して、そのセグメントに関する所望されるビット数、B=B−ΔBを得るための所望されるAMQPを推定する。ただし、pは、そのセグメントに関するプロセス600の現在の繰り返し回数である。その繰り返しが、特定のセグメントに関するプロセス600の最初の繰り返しである場合、AMQPおよび総ビット数は、302で特定された初期(最初の)符号化ソリューションから導出された、そのセグメントに関するAMQPおよび総ビット数である。他方、その繰り返しが、プロセス600の最初の繰り返しではない場合、それらのパラメータは、プロセス600の前回のパス、または前の数回のパスにおいて得られた符号化ソリューション、または符号化ソリューション群から導出されることが可能である。
次に、615で、プロセス600は、所望されるAMQPを使用して、マスキング強度φ(n)に基づく、平均のマスキングされたフレームQP、MQP(n)を変更して、より多くのマスキングを許容することができるイメージが、より多くのビット削減を受けるようにする。次に、プロセスは、315で定義されたパラメータに基づき、ビデオセグメントを再符号化する(620で)。次に、プロセスは、セグメントを調べて(625で)、アンダフロー条件が解消されたかどうかを判定する。図4(b)は、プロセス600が、アンダフローセグメントに適用されて、そのセグメントを再符号化した後の、図4(a)のアンダフロー条件の解消を示す。アンダフロー条件が解消されると、プロセスは、終了する。それ以外の場合、プロセスは、605に戻り、総ビットサイズを小さくするように符号化パラメータをさらに調整する。
<C.複数のアンダフローセグメントに対するアンダフロー解消>
シーケンス内に複数のアンダフローセグメントが存在する場合、セグメントの再符号化により、すべての後続のフレームに関するバッファ充満時間、t(n)が変わる。変更されたバッファ条件を考慮に入れるのに、符号器は、下降する傾きを有する最初のゼロ交差点から(すなわち、最低のnで)始めて、一度に1つのアンダフローセグメントを探索する。
アンダフローセグメントは、そのゼロ交差点より前の最も近い局所最大値で始まり、そのゼロ交差点と次のゼロ交差点(あるいは、ゼロ交差がもはや存在しない場合、シーケンスの終り)の間の、次の大域最小値で終わる。1つのセグメントを見出した後、符号器は、そのセグメントの終りにおいてt(n)を0に設定し、すべての後続のフレームに関してバッファシミュレーションを再び行うことにより、そのセグメントの中のアンダフローを仮想的に除去し、更新されたバッファ充満度を推定する。
次に、符号器は、変更されたバッファ充満度を使用して、次のセグメントを探索することを続ける。すべてのアンダフローセグメントが、前述したとおり、特定されると、符号器は、単一セグメントのケースと全く同じように、他のセグメントとは独立に、各セグメントに関して、AMQPを導出し、マスキングされたフレームQPを変更する。
他の諸実施形態は、異なる形で実施されることも可能であることが、当業者には認識されよう。例えば、一部の実施形態は、復号器の入力バッファのアンダフローを生じさせる複数のセグメントを特定しない。代わりに、一部の実施形態は、前述したバッファシミュレーションを実行して、アンダフローを生じさせる第1のセグメントを特定する。そのようなセグメントを特定した後、それらの実施形態は、そのセグメントを訂正して、そのセグメントの中のアンダフロー条件を正し、その後、訂正された部分の後から符号化を再開する。シーケンスの残りの部分の符号化の後、それらの実施形態は、次のアンダフローセグメントに関して、そのプロセスを繰り返す。
<D.バッファアンダフロー管理の応用例>
前述した復号器バッファアンダフローに関する技術は、多数の符号化システムおよび復号化システムに適用される。そのようなシステムのいくつかの実施例を以下に説明する。
図7は、ビデオストリーミングサーバ710といくつかのクライアント復号器715〜725を接続するネットワーク705を示す。クライアントは、毎秒300kbや毎秒3Mbなどの、異なる帯域幅を有するリンクを介してネットワーク705に接続される。ビデオストリーミングサーバ710は、符号器730からクライアント復号器715〜725への符号化されたビデオイメージのストリーミングを制御している。
ストリーミングビデオサーバは、ネットワークにおける最も遅い帯域幅(すなわち、毎秒300Kb)、および最小のクライアントバッファサイズを使用して、符号化されたビデオイメージをストリーミングすることを決めることが可能である。そのケースでは、ストリーミングサーバ710は、毎秒300Kbの目標ビットレートに対して最適化された1つだけの符号化されたイメージセットを必要とする。他方、サーバは、異なる帯域幅、および異なるクライアントバッファ条件に対して最適化された、異なる符号化を生成し、格納することができる。
図8は、復号器のアンダフロー管理のための応用例の別の実施例を示す。この実施例では、HD−DVDプレーヤ805が、ビデオ符号器810からの符号化されたビデオデータを格納しているHD−DVD840から、符号化されたビデオイメージを受け取っている。HD−DVDプレーヤ805は、入力バッファ815と、簡明にするために1つのブロック820として示された復号化モジュールセットと、出力バッファ825とを有する。
プレーヤ805の出力は、TV830またはコンピュータディスプレイ端末装置835などのディスプレイデバイスに送られる。HD−DVDプレーヤは、非常に高い帯域幅、例えば、毎秒29.4Mbを有することが可能である。ディスプレイデバイス上で高品質のイメージを維持するため、符号器は、ビデオイメージが次のように符号化されることを確実にする。すなわち、イメージシーケンスにおいて、復号器入力バッファに時間どおり送り届けられることが不可能なほど大きなセグメントが存在しないようにする。
[VI.コンピュータシステム]
図9は、本発明の一実施形態が実施されるコンピュータシステムを提示する。コンピュータシステム900は、バス905と、プロセッサ910と、システムメモリ915と、読み取り専用メモリ920と、永久記憶デバイス925と、入力デバイス群930と、出力デバイス群935とを含む。バス905は、コンピュータシステム900の多数の内部デバイスを通信するように接続するすべてのシステムバス、周辺バス、およびチップセットバスをひとまとめにして表す。例えば、バス905は、プロセッサ910を、読み取り専用メモリ920、システムメモリ915、および永久記憶デバイス925と通信するように接続する。
以上の様々なメモリユニットから、プロセッサ910は、本発明のプロセスを実行するために、実行されるべき命令、および処理されるべきデータを取り出す。読み取り専用メモリ(ROM)920が、プロセッサ910、ならびにコンピュータシステムの他のモジュール群によって必要とされている静的データおよび命令を格納する。
他方、永久記憶デバイス925は、読み取り−書き込みメモリデバイスである。このデバイスは、コンピュータシステム900がオフである場合でも、命令およびデータを格納する不揮発性メモリユニットである。本発明の一部の実施形態は、大容量記憶デバイス(磁気ディスクまたは光ディスク、ならびにその対応するディスクドライブなどの)を永久記憶デバイス925として使用する。
他の諸実施形態は、取り外し可能な記憶デバイス(フロッピー(登録商標)ディスクまたはzip(登録商標)ディスク、ならびにその対応するディスクドライブなど)を永久記憶デバイスとして使用する。永久記憶デバイス925と同様に、システムメモリ915は、読み取り書き込みメモリデバイスである。しかし、記憶デバイス925とは異なり、システムメモリは、ランダムアクセスメモリなどの、揮発性読み取り−書き込みメモリである。システムメモリは、プロセッサが、ランタイムに必要とする命令およびデータの一部を格納する。一部の実施形態では、本発明のプロセスは、システムメモリ915、永久記憶デバイス925、および、読み取り専用メモリ920のうちの少なくとも1つの中に格納される。
また、バス905は、入力デバイス群930および出力デバイス群935にも接続する。入力デバイス群は、ユーザが、コンピュータシステムに対して情報を通信し、コマンドを選択することを可能にする。入力デバイス群930には、英数字キーボードおよびカーソルコントローラが含まれる。出力デバイス群935は、コンピュータシステムによって生成されたイメージを表示する。出力デバイス群には、プリンタ、ならびに陰極線管(CRT)または液晶ディスプレイ(LCD)などのディスプレイデバイスが含まれる。
最後に、図9に示されるとおり、バス905は、コンピュータ900を、ネットワークアダプタ(図示せず)を介してネットワーク965にも接続する。このようにして、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、またはイントラネットなど)、またはネットワークのネットワーク(インターネットなど)の一部であることが可能である。コンピュータシステム900のコンポーネントのいずれか、またはすべてが、本発明に関連して使用されることが可能である。しかし、他の任意のシステム構成が、本発明に関連して使用されることも可能であることが当業者には認識されよう。
本発明を多数の特定の詳細に関連して説明してきたが、本発明は、本発明の趣旨を逸脱することなく、他の特定の形態で実施されることも可能であることが当業者には認識されよう。例えば、復号器入力バッファをシミュレートするH264の方法を使用することの代わりに、バッファサイズ、バッファの中のイメージの到着時間および除去時間、ならびにイメージの復号化時間および表示時間を考慮する他のシミュレーション方法を使用してもよい。
前述したいくつかの実施形態は、平均の除去されたSADを計算して、マクロブロック内のイメージ変化の指示を得た。しかし、他の諸実施形態は、異なる形でイメージ変化を識別することが可能である。例えば、一部の実施形態は、マクロブロックのピクセルの予期されるイメージ値を予測することが可能である。それらの実施形態は、次に、その予測値をマクロブロックのピクセルの輝度値から引き、それらの減算の絶対値を合計することにより、マクロブロックSADを生成する。一部の実施形態では、予測値は、そのマクロブロック内のピクセルの値だけでなく、近隣のマクロブロックの1つまたは複数のマクロブロックの中のピクセルの値にも基づく。
また、前述した諸実施形態は、導出された空間的マスキング値および時間的マスキング値を直接に使用する。他の諸実施形態は、連続する空間的マスキング値および連続する時間的マスキング値のうちの少なくとも一方に平滑化フィルタリングを適用してから、それらの値を使用することを、ビデオイメージを介してそれらの値の一般的な傾向を選び出すために行う。このため、本発明は、以上の例示的な詳細によって限定されないことが、当業者には理解されよう。

Claims (27)

  1. 複数のイメージを含んだビデオシーケンスを符号化する方法であって、
    各々の特定のイメージ属性が少なくとも特定のイメージの特定の一部分に関する複雑性を定量化する、複数のイメージ属性を特定するステップと、
    前記ビデオシーケンスのイメージセットにおいて認識可能であろう符号化アーチファクトの量を定量化する基準視覚マスキング強度を特定するステップと、
    前記特定された複数のイメージ属性と、前記基準視覚マスキング強度と、名目量子化パラメータとに基づいて、前記複数のイメージを符号化するための量子化パラメータを特定するステップと、
    前記特定された量子化パラメータに基づいて、前記複数のイメージを符号化するステップと、
    前記複数のイメージ属性を特定するステップと、前記基準視覚マスキング強度を特定するステップと、前記量子化パラメータを特定するステップと、前記符号化するステップとを、繰り返し実行して前記符号化を最適化するステップと、
    を備え、
    前記繰り返すステップでの、複数の異なる繰り返しにおいて、複数の異なる基準視覚マスキング強度が使用される
    ことを特徴とする方法。
  2. 前記複数のイメージ属性は、各々のイメージの少なくとも一部分に関する視覚マスキング強度であり、
    前記視覚マスキング強度は、ビデオシーケンスが前記方法に従って符号化され復号化された後に、前記ビデオシーケンスの視聴者にとって認識できない符号化アーチファクトの量を推定するためのものである
    ことを特徴とする請求項1に記載の方法。
  3. 前記複数のイメージ属性は、各々のイメージの少なくとも一部分に関する視覚マスキング強度であり、
    イメージの一部分に関する視覚マスキング強度は、前記イメージの前記一部分に関する複雑性を定量化し、
    イメージの一部分に関する前記複雑性を定量化する際に、前記視覚マスキング強度は、前記符号化するステップの結果生じるものの符号化されたイメージが復号化された後に視認可能な歪みは発生しないような圧縮アーチファクトの量に関する指標を提供する
    ことを特徴とする請求項1に記載の方法。
  4. 複数の符号化パスを用いて複数のイメージを含んだビデオシーケンスを符号化する方法であって、
    第1の符号化パスのために、ビデオ符号器が、前記ビデオシーケンスのイメージセットにおいて認識可能であろう符号化アーチファクトの量を定量化する第1の基準視覚マスキング強度を特定するステップと、
    前記第1の符号化パスにおいて各イメージを符号化するステップであって、(i)前記第1の基準視覚マスキング強度と当該イメージにおいて認識され得る符号化アーチファクトの量を定量化するイメージ固有の視覚マスキング強度とを用いて、イメージ固有の量子化パラメータを生成し、(ii)前記第1の符号化パスにおいて生成された前記イメージ固有の量子化パラメータを用いて当該イメージに対して量子化操作を実行することにより当該イメージを符号化することにより、各イメージを符号化するステップと、
    第2の符号化パスのために、前記第1の基準視覚マスキング強度とは異なる第2の基準視覚マスキング強度を特定するステップと、
    前記第2の符号化パスにおいて各イメージを符号化するステップであって、(i)前記第2の基準視覚マスキング強度と当該イメージの前記イメージ固有の視覚マスキング強度とを用いて、イメージ固有の量子化パラメータを生成し、(ii)前記第2の符号化パスにおいて生成された前記イメージ固有の量子化パラメータを用いて当該イメージに対して量子化操作を実行することにより当該イメージを符号化することにより、各イメージを符号化するステップと、
    を備え、
    前記ビデオシーケンス中の前記イメージセットの各イメージについて、前記第2の符号化パスにおいて生成される前記イメージ固有の量子化パラメータは、前記第1の符号化パスにおいて生成される前記イメージ固有の量子化パラメータとは異なることを特徴とする方法。
  5. 前記複数のイメージに関して許容できる符号化が識別されると前記複数の符号化パスを停止するステップをさらに備えることを特徴とする請求項4に記載の方法。
  6. 前記複数のイメージに関して許容できる符号化は、前記ビデオシーケンスの符号化に関する目標ビットレートに関して特定の範囲内に収まる、前記複数のイメージの符号化であることを特徴とする請求項5に記載の方法。
  7. イメージのための前記イメージ固有の視覚マスキング強度は、前記イメージ内に定義された複数のピクセル領域に関する動き補償された誤差信号の絶対値の総和に基づいて導出されることを特徴とする請求項4に記載の方法。
  8. イメージのための前記イメージ固有の視覚マスキング強度は、前記イメージ内の平均ピクセル輝度に基づいて導出されることを特徴とする請求項4に記載の方法。
  9. イメージのための前記イメージ固有の視覚マスキング強度は、イメージ間の動きに起因する耐えられ得る歪みの量を定量化する時間的属性に基づいて導出されることを特徴とする請求項4に記載の方法。
  10. 前記第2の基準視覚マスキング強度は、前記第1の符号化パスからのビットレート誤差に基づくことを特徴とする請求項4に記載の方法。
  11. 前記第2の基準視覚マスキング強度は、前記第1の符号化パスにおける前記複数のイメージに亘るイメージ固有の量子化パラメータの平均に基づくことを特徴とする請求項4に記載の方法。
  12. イメージのための前記イメージ固有の視覚マスキング強度は、前記イメージ内の平均ピクセル輝度のパワー関数に基づいて導出されることを特徴とする請求項4に記載の方法。
  13. 各イメージに関する前記イメージ固有の量子化パラメータは、当該イメージの全体よりも小さい、当該イメージの一部分のためのものであることを特徴とする請求項4に記載の方法。
  14. 各イメージに関する前記視覚マスキング強度は、当該イメージの全体よりも小さい、当該イメージの一部分のためのものであることを特徴とする請求項4に記載の方法。
  15. 各イメージに関する前記イメージ固有の量子化パラメータは、当該イメージの全体のためのものであることを特徴とする請求項4に記載の方法。
  16. 各イメージに関する前記視覚マスキング強度は、当該イメージの全体のためのものであることを特徴とする請求項4に記載の方法。
  17. ビデオイメージのシーケンスを符号化する方法であって、
    複数の符号化パラメータを用いて前記ビデオイメージのシーケンスを符号化することにより、現在の符号化ソリューションを生成するステップと、
    前記現在の符号化ソリューションによって符号化された前記ビデオイメージのシーケンスの中から複数のビデオイメージを特定するステップであって当該複数のビデオイメージの各々は、符号化中にデコーダ入力バッファをシミュレートするために使用される参照デコーダの入力バッファからの除去時刻よりも時間的に後である前記入力バッファへの到着時刻を持っていて前記入力バッファのアンダフローを連続的に悪化させるものである、ステップと、
    前記複数のビデオイメージの符号化パラメータのセットを調整するステップと、
    現在の符号化ソリューションとして指定される新たな符号化ソリューションを生成するために、前記調整された符号化パラメータのセットを用いて、前記複数のビデオイメージを符号化するステップと、
    前記ビデオイメージのシーケンスの符号化が前記参照デコーダの前記入力バッファのアンダフローを引き起こさなくなるまで、前記特定するステップ、前記調整するステップ、及び前記新たな符号化ソリューションを生成するために符号化する前記ステップを繰り返すステップと、
    を備えることを特徴とする方法。
  18. 前記新たな符号化ソリューションが入力バッファのアンダフローを引き起こさない場合に、前記アンダフローを連続的に悪化させていた前記複数のビデオイメージの後の最初のイメージから始まる前記ビデオイメージのシーケンスの残りを符号化するステップ
    を更に備えることを特徴とする請求項17に記載の方法。
  19. 前記ビデオイメージのシーケンスを符号化する前記ステップは、
    前記参照デコーダの参照デコーダ入力バッファを用いて前記デコーダの前記デコーダ入力バッファをシミュレートするステップと、
    前記参照デコーダの前記入力バッファのアンダフローを防止しつつ前記ビデオイメージのシーケンスを符号化するためのビット数を選択するために前記シミュレーションを利用するステップと、
    を含む
    ことを特徴とする請求項17に記載の方法。
  20. 記デコーダ入力バッファをシミュレートする前記ステップは、前記デコーダが符号化されたデータを受信するネットワークの状態を考慮するステップを更に含む
    ことを特徴とする請求項19に記載の方法。
  21. 記デコーダ入力バッファをシミュレートする前記ステップは、前記デコーダ入力バッファのサイズを考慮するステップを更に含む
    ことを特徴とする請求項19に記載の方法。
  22. 記デコーダ入力バッファをシミュレートする前記ステップは、前記デコーダ入力バッファからの初期除去遅延を考慮するステップを更に含む
    ことを特徴とする請求項19に記載の方法。
  23. 前記複数のビデオイメージの各符号化のための目標ビットレートを満たすステップを更に備え、
    前記目標ビットレートを満たすことは複数の品質基準のうちの1つであり、
    生成される各符号化ソリューションは、前記複数の品質基準の全てを満たす
    ことを特徴とする請求項17に記載の方法。
  24. デコーダの入力バッファのアンダフローを除去する方法であって、
    パラメータセットを用いてイメージのシーケンスを符号化するステップと、
    前記イメージのシーケンスの各イメージについて、
    前記入力バッファに対する前記イメージの到着時刻を特定するステップと、
    前記入力バッファからの前記イメージの除去時刻を特定するステップと、
    前記イメージの前記到着時刻と前記除去時刻とを比較するステップと、
    を備え、更に
    前記イメージのシーケンスの中から複数のイメージを特定するステップであって、当該複数のイメージの各々は、前記イメージの除去時刻よりも時間的に後である前記イメージの到着時刻を持つことで前記アンダフローに寄与するものである、ステップと、
    前記入力バッファの前記アンダフローを除去するために、前記パラメータセットを調整し、当該調整されたパラメータセットを用いて前記特定された複数のイメージを符号化することを繰り返すステップと、
    を備えることを特徴とする方法。
  25. Iフレームから開するように前記複数のイメージを調整するステップを更に備える
    ことを特徴とする請求項24に記載の方法。
  26. 少なくとも1つのプロセッサによって実行可能なコンピュータプログラムを格納したコンピュータ可読媒体であって、前記コンピュータプログラムは請求項1乃至25のいずれか1項に記載の方法を実施する命令セットを含むことを特徴とするコンピュータ可読媒体。
  27. 請求項1乃至25のいずれか1項に記載の方法の各ステップを実施する手段を含むことを特徴とするコンピュータシステム。
JP2011052098A 2004-06-27 2011-03-09 マルチパスのビデオ符号化 Expired - Fee Related JP5318134B2 (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US58341804P 2004-06-27 2004-06-27
US60/583,418 2004-06-27
US64391805P 2005-01-09 2005-01-09
US60/643,918 2005-01-09
US11/118,604 2005-04-28
US11/118,616 2005-04-28
US11/118,616 US8406293B2 (en) 2004-06-27 2005-04-28 Multi-pass video encoding based on different quantization parameters
US11/118,604 US8005139B2 (en) 2004-06-27 2005-04-28 Encoding with visual masking

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007518338A Division JP4988567B2 (ja) 2004-06-27 2005-06-24 マルチパスのビデオ符号化

Publications (3)

Publication Number Publication Date
JP2011151838A JP2011151838A (ja) 2011-08-04
JP2011151838A5 JP2011151838A5 (ja) 2012-05-10
JP5318134B2 true JP5318134B2 (ja) 2013-10-16

Family

ID=35783274

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007518338A Expired - Fee Related JP4988567B2 (ja) 2004-06-27 2005-06-24 マルチパスのビデオ符号化
JP2011052098A Expired - Fee Related JP5318134B2 (ja) 2004-06-27 2011-03-09 マルチパスのビデオ符号化

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007518338A Expired - Fee Related JP4988567B2 (ja) 2004-06-27 2005-06-24 マルチパスのビデオ符号化

Country Status (6)

Country Link
EP (1) EP1762093A4 (ja)
JP (2) JP4988567B2 (ja)
KR (3) KR100909541B1 (ja)
CN (3) CN102833539B (ja)
HK (1) HK1101052A1 (ja)
WO (1) WO2006004605A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7042943B2 (en) 2002-11-08 2006-05-09 Apple Computer, Inc. Method and apparatus for control of rate-distortion tradeoff by mode selection in video encoders
US8406293B2 (en) 2004-06-27 2013-03-26 Apple Inc. Multi-pass video encoding based on different quantization parameters
US8005139B2 (en) 2004-06-27 2011-08-23 Apple Inc. Encoding with visual masking
US8208536B2 (en) 2005-04-28 2012-06-26 Apple Inc. Method and apparatus for encoding using single pass rate controller
KR100918499B1 (ko) * 2007-09-21 2009-09-24 주식회사 케이티 멀티 패스 인코딩 장치 및 그 방법
WO2009045683A1 (en) * 2007-09-28 2009-04-09 Athanasios Leontaris Video compression and tranmission techniques
EP2101503A1 (en) * 2008-03-11 2009-09-16 British Telecommunications Public Limited Company Video coding
US8908758B2 (en) 2010-01-06 2014-12-09 Dolby Laboratories Licensing Corporation High performance rate control for multi-layered video coding applications
CA2798008C (en) 2010-05-06 2015-10-20 Nippon Telegraph And Telephone Corporation Method for controlling video encoding if a decoder underflow condition is detected
BR112012028184A2 (pt) 2010-05-07 2016-08-02 Nippon Telegraph & Telephone método de controle de codificação de vídeo, aparelho de codificação de vídeo e programa de codificação de vídeo
RU2527740C2 (ru) 2010-05-12 2014-09-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ управления кодированием видео, устройство кодирования видео и программа кодирования видео
KR101702562B1 (ko) 2010-06-18 2017-02-03 삼성전자 주식회사 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치
KR101651027B1 (ko) * 2011-12-23 2016-08-24 인텔 코포레이션 콘텐츠 적응적 고정밀 매크로블록 레이트 제어
US9402082B2 (en) * 2012-04-13 2016-07-26 Sharp Kabushiki Kaisha Electronic devices for sending a message and buffering a bitstream
CN102946542B (zh) * 2012-12-07 2015-12-23 杭州士兰微电子股份有限公司 已编著镜像视频区间码流重新编码及无缝接入方法和系统
EP2952003B1 (en) * 2013-01-30 2019-07-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US20150071343A1 (en) * 2013-09-12 2015-03-12 Magnum Semiconductor, Inc. Methods and apparatuses including an encoding system with temporally adaptive quantization
US10313675B1 (en) 2015-01-30 2019-06-04 Google Llc Adaptive multi-pass video encoder control
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US10715814B2 (en) 2017-02-23 2020-07-14 Netflix, Inc. Techniques for optimizing encoding parameters for different shot sequences
US11166034B2 (en) 2017-02-23 2021-11-02 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US10742708B2 (en) 2017-02-23 2020-08-11 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
US10666992B2 (en) 2017-07-18 2020-05-26 Netflix, Inc. Encoding techniques for optimizing distortion and bitrate
CN109756733B (zh) * 2017-11-06 2022-04-12 华为技术有限公司 视频数据解码方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05167998A (ja) * 1991-12-16 1993-07-02 Nippon Telegr & Teleph Corp <Ntt> 画像の符号化制御処理方法
JP3627279B2 (ja) * 1995-03-31 2005-03-09 ソニー株式会社 量子化装置および量子化方法
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
FR2753330B1 (fr) * 1996-09-06 1998-11-27 Thomson Multimedia Sa Procede de quantification pour codage video
JPH10304311A (ja) * 1997-04-23 1998-11-13 Matsushita Electric Ind Co Ltd 映像符号化装置及び映像復号化装置
DE69830979T2 (de) * 1997-07-29 2006-05-24 Koninklijke Philips Electronics N.V. Verfahren und vorrichtung zur videocodierung mit variabler bitrate
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
JP2001520854A (ja) * 1998-02-20 2001-10-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ピクチャシーケンス符号化方法及び装置
US6278735B1 (en) * 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder
US6289129B1 (en) * 1998-06-19 2001-09-11 Motorola, Inc. Video rate buffer for use with push dataflow
DE69930216T2 (de) * 1998-10-13 2006-12-07 Matsushita Electric Industrial Co., Ltd., Kadoma Regelung des Rechen- und Speicheraufwands zur Datenfolgekompression in einem Videodekoder
US20020057739A1 (en) * 2000-10-19 2002-05-16 Takumi Hasebe Method and apparatus for encoding video
US6594316B2 (en) * 2000-12-12 2003-07-15 Scientific-Atlanta, Inc. Method and apparatus for adaptive bit rate control in an asynchronized encoding system
US6831947B2 (en) * 2001-03-23 2004-12-14 Sharp Laboratories Of America, Inc. Adaptive quantization based on bit rate prediction and prediction error energy
US7062429B2 (en) * 2001-09-07 2006-06-13 Agere Systems Inc. Distortion-based method and apparatus for buffer control in a communication system
JP3753371B2 (ja) * 2001-11-13 2006-03-08 Kddi株式会社 動画像圧縮符号化レート制御装置
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
KR100468726B1 (ko) * 2002-04-18 2005-01-29 삼성전자주식회사 실시간 가변 비트율 제어를 수행하는 부호화 장치 및 방법
JP2004166128A (ja) * 2002-11-15 2004-06-10 Pioneer Electronic Corp 画像情報の符号化方法、符号化装置及び符号化プログラム
KR101017770B1 (ko) * 2003-06-26 2011-02-28 톰슨 라이센싱 슬라이딩 윈도 채널 제약에 부합하는 멀티패스 비디오레이트 제어

Also Published As

Publication number Publication date
EP1762093A4 (en) 2011-06-29
WO2006004605A2 (en) 2006-01-12
KR100909541B1 (ko) 2009-07-27
EP1762093A2 (en) 2007-03-14
WO2006004605B1 (en) 2006-07-13
WO2006004605A3 (en) 2006-05-04
KR20090037475A (ko) 2009-04-15
KR20070011294A (ko) 2007-01-24
CN102833539A (zh) 2012-12-19
KR100997298B1 (ko) 2010-11-29
JP2011151838A (ja) 2011-08-04
CN102833539B (zh) 2015-03-25
CN1926863B (zh) 2012-09-19
CN102833538B (zh) 2015-04-22
CN102833538A (zh) 2012-12-19
KR100988402B1 (ko) 2010-10-18
CN1926863A (zh) 2007-03-07
HK1101052A1 (en) 2007-10-05
JP4988567B2 (ja) 2012-08-01
KR20090034992A (ko) 2009-04-08
JP2008504750A (ja) 2008-02-14

Similar Documents

Publication Publication Date Title
JP5318134B2 (ja) マルチパスのビデオ符号化
US8811475B2 (en) Multi-pass video encoding solution for buffer underflow
US8005139B2 (en) Encoding with visual masking
US20190297347A1 (en) Picture-level rate control for video encoding
US8559501B2 (en) Method and apparatus for adaptively determining a bit budget for encoding video pictures
JP5351040B2 (ja) 映像符号化規格に対応した映像レート制御の改善
US6529631B1 (en) Apparatus and method for optimizing encoding and performing automated steerable image compression in an image coding system using a perceptual metric
JP5180294B2 (ja) ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御
US20060233237A1 (en) Single pass constrained constant bit-rate encoding
JPH0865677A (ja) 動画像符号化装置
JP2008085673A (ja) 動画像符号化装置及びその方法
US20040233998A1 (en) Methods and apparatus for improving video quality in statistical multiplexing
JP2004328150A (ja) 動画像符号化装置及び方法
JP2000261799A (ja) 可変レート動画像符号化装置
Overmeire et al. Constant quality video coding using video content analysis
JP4329452B2 (ja) 動画像符号化装置、動画像符号化方法、及び、プログラム
JP4379046B2 (ja) 動画像符号化装置及び符号量制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110325

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120321

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130520

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: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130709

R150 Certificate of patent or registration of utility model

Ref document number: 5318134

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees