(57)【特許請求の範囲】
【請求項１】
（ａ）符号化されるシーケンスを複数の時間部分に分割するステップと、
（ｂ）前記シーケンスを分析して、各時間部分に対して、複数の符号化品質設定に従って、前記符号化品質設定と、（ｉ）前記時間部分に対する品質メトリックと（ｉｉ）前記符号化品質設定で前記時間部分を符号化することによって生成されるビット数と、の関係を確立するデータを決定するステップと、
（ｃ）目標品質及び目標ビットレートと共に前記データを分析して、１つの時間部分ごとに１つの符号化品質設定ずつ、１組の符号化品質設定を選択するステップと、
（ｄ）前記選択された１組の符号化品質設定を使用して、前記シーケンスを符号化するステップと、
を含み、
受信された複数の時間部分と再生された複数の時間部分とにおけるビット数に依存して、関連するバッファ充満を有する、受信機バッファを介して、前記目標ビットレートで、符号化されたビデオが送信される場合に、前記１組の符号化品質設定は、前記シーケンスに対する結合品質コストを最小化するのに役立ち、
結合品質コストを最小化することは、前記受信機バッファの充満に依存してビタビアルゴリズムの複数の状態値を有する、ビタビアルゴリズムを利用し、
最低結合品質コストを有する最適経路を得るために、ビタビトレリスを通る複数の経路が取り除かれる一方で、前記最適経路に沿う任意の段階において、バッファの充満に関連付けられている制限を超えないことを保証し、
前記結合品質コストは、個々の品質コストの和であり、
前記個々の品質コストの各々は、前記目標品質からの、それぞれの前記符号化された時間部分の品質メトリックの偏差の量の関数であり、
前記関数は、前記偏差の絶対値が大きくなるのに従って、前記コストが全体的に増加する関数である、
ビデオ符号化方法。
【請求項２】
各時間部分は、他のフレームに関係なく符号化されるフレームから始まる、請求項１に記載のビデオ符号化方法。
【請求項３】
各時間部分は、持続時間で少なくとも５フレームである、請求項１に記載のビデオ符号化方法。
【請求項４】
各時間部分は、５秒以下の持続時間を有する、請求項１乃至３の何れか１項に記載のビデオ符号化方法。
【請求項５】
各時間部分は、１秒以下の持続時間を有する、請求項１又は２に記載のビデオ符号化方法。
【請求項６】
前記符号化品質設定は、量子化ステップサイズの設定である、請求項１乃至５の何れか１項に記載のビデオ符号化方法。
【請求項７】
前記シーケンスを分析するステップは、複数の異なる符号化品質設定における各時間部分の試行的符号化を含む、請求項１乃至６の何れか１項に記載のビデオ符号化方法。
【請求項８】
前記目標ビットレートが指定され、
前記目標ビットレートに対応する前記目標品質を決定するステップを含む、請求項１乃至７の何れか１項に記載のビデオ符号化方法。
【請求項９】
前記指定された目標ビットレートと選択された複数の目標品質値とを用いて、ステップ（ｃ）に従って、複数の試行的分析を反復的に行なって、前記反復中に実際の品質の変化の測度を次第に低減することによって、前記目標品質が決定される、請求項８に記載のビデオ符号化方法。
【請求項１０】
前記目標品質は、
（Ａ）目標品質範囲の上限及び下限（ｘ０，ｘ１）を定義するステップと、
（Ｂ）前記目標品質からの、前記上限及び前記下限における品質の標準偏差（ｓ０，ｓ１）を測定するステップと、
（Ｃ）前記上限と前記下限との間の中間目標品質点（ｘ２）を選択するステップと、
（Ｄ）前記上限と前記下限との間の他の異なる中間目標品質点（ｘ３）を選択するステップと、
（Ｅ）前記２つの中間目標品質点における品質の標準偏差（ｓ２，ｓ３）を測定するステップと、
（Ｆ）前記２つの中間目標品質点のうちの上方中間目標品質点における標準偏差が、前記２つの中間目標品質点のうちの下方中間目標品質点における標準偏差よりも、小さいか又は大きいかに従って、
（ｉ）前記下限を前記下方中間目標品質点に置き換えて、別の中間目標品質点を選択して、前記別の中間目標品質点における品質の標準偏差を測定するか、又は、
（ｉｉ）前記上限を前記上方中間目標品質点に置き換えて、更に別の中間目標品質点を選択して、前記更に別の中間目標品質点における品質の標準偏差を測定するステップと、
（Ｇ）ステップ（Ｆ）を少なくとも１回繰り返すステップと、
を含む、請求項９に記載のビデオ符号化方法。
【請求項１１】
（ｉ）第１の目標品質を定義するステップと、
（ｉｉ）前記第１の目標品質を使用して得られた品質の標準偏差と平均品質とを測定するステップと、
（ｉｉｉ）前記標準偏差が閾値を越えている場合に、前記第１の目標品質を、前記得られた平均品質に設定するステップと、
（ｉｖ）ステップ（ｉｉ）と（ｉｉｉ）とを少なくとも１回繰り返すステップと、
によって、前記目標品質を決定する、請求項９に記載のビデオ符号化方法。
【請求項１２】
前記目標品質が指定され、
前記目標品質に対応する前記目標ビットレートを決定するステップを含む、請求項１乃至７の何れか１項に記載のビデオ符号化方法。
【請求項１３】
前記指定された目標品質と選択された複数の目標ビットレートとを用いて、ステップ（ｃ）に従って、複数の試行的分析を反復的に行なって、前記反復中に実際の品質の変化の測度を次第に低減することによって、前記目標ビットレートが決定される、請求項１２に記載のビデオ符号化方法。
【請求項１４】
前記目標ビットレートは、
（Ａ）目標ビットレート範囲の上限及び下限を定義するステップと、
（Ｂ）前記上限及び前記下限の各々を使用して得られた品質の標準偏差と平均品質とを測定するステップと、
（Ｃ）前記目標品質が、前記２つの平均品質によって定義される前記目標ビットレートの範囲外にある場合に、ステップ（Ａ）、（Ｂ）、及び（Ｃ）を繰り返すステップと、
（Ｄ）前記上限と前記下限との間の中間目標ビットレートを選択するステップと、
（Ｅ）前記上限と前記下限との間の他の異なる中間目標ビットレートを選択するステップと、
（Ｆ）前記２つの中間目標ビットレートにおける品質の標準偏差を測定するステップと、
（Ｇ）前記２つの中間目標ビットレートのうちの上方中間目標ビットレートにおける標準偏差が、前記２つの中間目標ビットレートのうちの下方中間目標ビットレートにおける標準偏差よりも、小さいか又は大きいかに従って、
（ｉ）前記下限を前記下方中間目標ビットレートに置き換えて、別の中間目標ビットレートを選択して、前記別の中間目標ビットレートにおける品質の標準偏差を測定するか、又は、
（ｉｉ）前記上限を前記上方中間目標ビットレートに置き換えて、更に別の中間目標ビットレートを選択して、前記更に別の中間目標ビットレートにおける品質の標準偏差を測定するステップと、
（Ｈ）ステップ（Ｇ）を少なくとも１回繰り返すステップと、
を含む、請求項１３記載のビデオ符号化方法。
【請求項１５】
前記コスト測度は、前記目標品質からの、それぞれの前記符号化された時間部分の品質メトリックの偏差の関数であり、
前記関数は、偏差が大きくなるのに従って、勾配が大きくなる関数である、請求項１乃至１４の何れか１項に記載の方法。
【請求項１６】
前記関数は、前記偏差の二乗である、請求項１５に記載のビデオ符号化方法。
【請求項１７】
前記結合品質コストは、時間部分の品質メトリックの偏差と、前記時間部分の前の時間部分の品質メトリックの偏差との関数である寄与を含む、請求項１乃至１６の何れか１項に記載のビデオ符号化方法。
【請求項１８】
ステップ（ｃ）においてバッファの充満を予測するステップと、
ステップ（ｄ）においてバッファの充満を監視して、前記バッファの充満が、前記予測されたバッファの充満と所定の程度、異なる場合に、将来の時間部分に対して、ステップ（ｃ）の前記分析を繰り返すステップと、
を含む、請求項１乃至１７の何れか１項に記載のビデオ符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ符号化に関する。
【発明の概要】
【０００２】
本発明によると、
（ａ）符号化されるシーケンスを複数の時間部分に分割するステップと、
（ｂ）前記シーケンスを分析して、各時間部分に対して、複数の符号化品質設定に従って、前記符号化品質設定と、（ｉ）前記時間部分に対する品質メトリックと（ｉｉ）前記符号化品質設定で前記時間部分を符号化することによって生成されるビット数と、の関係を確立するデータを決定するステップと、
（ｃ）目標品質及び目標ビットレートと共に前記データを分析して、１つの時間部分ごとに１つの符号化品質設定ずつ、１組の符号化品質設定を選択するステップと、
（ｄ）前記選択された１組の符号化品質設定を使用して、前記シーケンスを符号化するステップと、
を含み、
前記選択された１組の符号化品質設定は、符号化されたビデオを、指定サイズの送信機バッファ及び受信機バッファを介して、前記目標ビットレートで送信するという制約内で、前記シーケンスに対する結合品質コストを最小化するのに役立ち、
受信機バッファの初期充満は、オーバーフローも、アンダーフローも生じず、
前記結合品質コストは、個々の品質コストの和であり、
前記個々の品質コストの各々は、前記目標品質からの、それぞれの符号化された時間部分の前記品質メトリックの、偏差の量の関数であり、
前記関数は、前記偏差の絶対値が大きくなるのに従って、前記コストが全体的に増加する関数である、
ビデオ符号化方法、が提供される。
【０００３】
本発明の他の態様は、請求項に定義されている。
【０００４】
ここで、添付の図面を参照して、本発明の幾つかの実施形態を記載する。
【図面の簡単な説明】
【０００５】
【図１】ビデオコーダのブロック図である。
【図２】図１のビデオコーダの動作を説明するフローチャートである。
【図３】ビタビ復号の動作を説明するトレリス図である。
【図４】ビタビ復号の動作を説明するトレリス図である。
【図５】ビタビ復号の動作を説明するトレリス図である。
【図６】ビタビ復号の動作を説明するトレリス図である。
【図７】ビタビ復号の動作を説明するトレリス図である。
【図８】ある特定のコーダパラメータ間の相互関係を示すグラフである。
【図９】ある特定のコーダパラメータ間の相互関係を示すグラフである。
【図１０】ある特定のコーダパラメータ間の相互関係を示すグラフである。
【発明を実施するための形態】
【０００６】
図１に示されている装置は、ビデオインターフェイス１を具備し、ビデオインターフェイス１は、ディジタルで符号化されたビデオ信号を、圧縮されていない形で、ビデオ入力２において受信する。プロセッサ３は、ディスク記憶装置４に記憶されているプログラムの制御の下で動作して、メモリ５とビデオ出力バッファ６とにアクセスする。ビデオ出力バッファ６は、ビデオ出力７に供給する。プログラムは、汎用オペレーティングシステム40とビデオ符号化ソフトウェアとを含み、ビデオ符号化ソフトウェアは、次に簡潔に記載される符号化方法の１つ以上を実施する。このソフトウェアは、以下の幾つかのプログラム(又はプログラム群)を具備する。
【０００７】
−制御ソフトウェア41、
−圧縮ソフトウェア42、
−知覚品質評価ソフトウェア43。
【０００８】
ここで、図２のフローチャートを参照して、本発明の第１のバージョンに従って、ビデオ符号化方法を記載する。このバージョンでは、符号化されたビデオは、バッファ６に記憶されて、バッファ６から出力７に一定のビットレートｂで読み出されるものとする。対応するデコーダ(従来のものであるので、示されていない)には、デコーダバッファがある。デコーダバッファは、符号化されたビデオを、この同じ一定のレートで受信する。デコーダは、必要に応じて又必要な場合に、デコーダバッファからデータを読み出す。この説明において、「バッファサイズ」は、バッファが収めることができる最大ビット数を意味し、「バッファの内容量（buffer content）」又は「バッファの充満（buffer fullness）」は、任意の定められた時間にバッファに実際に記憶されているビット数を意味する。別段の記載がない限り、この説明の中でバッファの充満との記載は、デコーダバッファを指すが、デコーダバッファの充満と、コーダバッファの充満とは、関連しているので、一方に関して表されている任意の特徴を、他方に関して表すこともできることに注意すべきである。
【０００９】
ステップ100において、ディジタルで符号化されたビデオフレームのシーケンスは、入力１で受信されて、ディスク４に記憶される。このバージョンでは、プロセスの開始前に、シーケンス全体が取り込まれているものとするが、これは、実際には不可欠なことではない。ステップ101において、シーケンスは、Ｎ個のチャンク（chunk）又は部分に分割され、各チャンク又は部分は、１つ以上のフレームから構成されている。チャンク間の境界のタイミング及びチャンクの長さの選択に対する制約については、後述する。次に、可変量子化ステップサイズ（quantiser step size）を有する適切なビデオ符号化アルゴリズムを使用して、複数の量子化ステップサイズＱｋ（ｋ＝１・・・Ｋ）の各々において、試行的符号化プロセスを行なう。このバージョンでは、ＩＴＵ−Ｔ勧告Ｈ．２６４に従って、符号化を行なう。
【００１０】
ステップ102において、ステップサイズは第１の試行値Ｑ１に設定され、ステップ103において、この１つのステップサイズを適用するように設定された圧縮ソフトウェア72を使用して、シーケンスを符号化する。各チャンクを符号化するために使用されるビット数は、メモリ５に記録される。ｂ（ｉ）は、チャンクｉを符号化するために使用されるビット数である。次に、ステップ104において、知覚品質評価ソフトウェア73を使用して、各チャンクを評価して、関連するチャンクに対して、瞬間平均オピニオンスコア（instantaneous mean opinion score）ｉＭＯＳ（ｉ）の形式の品質測度（quality measure）を（０乃至５の範囲で）生成する。これらのスコアもメモリ５に記憶される。示されているように、符号化の後に、品質の評価が続くが、実際には、各符号化されたチャンクが得られたときに、後のチャンクの試行的符号化と並行して、各符号化されたチャンクを評価することが望ましい。105において、１組のステップサイズのうちのＫ個のステップサイズ全てについて、試行的符号化が行なわれたかどうかをチェックする。全てに対して行なわれていなければ、106において、ステップサイズを、その組の中の次の値に設定して、ステップ103から、プロセスを繰り返す。
【００１１】
Ｋ回の試行が全て行なわれると、各チャンクを符号化するために使用すべきステップサイズがどれかを決定するタスクがある。その目的は、バッファがオーバーフローすることも、アンダーフローすることも許されないという条件のもとで、一定の品質のうちの１つを得ることである。バッファのプレロードは許される。即ち、デコーダに到着する最初のビット間に遅延ｔ０があり、受信機バッファの充満がｂｔ０ビットである時に、デコーダが復号を開始する。
【００１２】
適度に一定の品質を維持するために、目標品質ｉＭＯＳＴを定義して、この目標品質からの品質の偏差を最小にする努力をすることが好ましい。ビットレートｂを特定するか、又は特定の目標品質ｉＭＯＳＴが必要であり得る。その理由は、これらの変数は相互に依存するからである。次のステップ(フローチャート中のステップ107)では、これらの変数のうちのどちらかを特定して、他方の変数の値を決定する。このステップの詳細は後述する。
【００１３】
次のステップ(108)では、ビタビアルゴリズムを使用して、各チャンクに対して、量子化ステップサイズを選択する。結果として得られるステップサイズの組は、バッファのオーバーフローとアンダーフローとを避けるという最優先要求を条件として、目標からの品質の偏差の程度を示す全体的なコスト測度（cost measure）を最小化又はほぼ最小化するという基準を満たすようなものである。ここでは、目標からの偏差の二乗の和を選択する。即ち、
【数１】
0005599715.tif 000002
【００１４】
トレリスを構築すると、アルゴリズムを視覚化することができる。開始ノードから、第１のチャンクの各符号化のノードに導く経路があり、これらのノードの各々から、第２のチャンクなどの各符号化に進む経路を加える。各経路上の各ノードは、関連する状態と総コストとを有する。状態値は、デコーダバッファの充満であり、実際的な数の候補状態を与えるために適切に量子化される。総コストは、符号化品質の一貫性についての累積測度である。
【００１５】
２本以上の経路が１つの状態に収束する場合に、ベルマンの最適性原理を援用する。ベルマンの最適性原理は、各ブランチに関して、コストが独立していて且つ追加的である場合に、ある副経路が最適経路の一部であるならば、その副経路は最適であることを示している。これは、経路のうちの２本以上が収束する場合に、全最適経路には、最低総コストを有する経路のみが存在し得るということと同じである。次に、ビタビアルゴリズムを適用して、トレリスから準最適経路（sub-optimal path）を取り除く。更に、バッファのオーバーフロー又はアンダーフローの何れかに相当する状態に達した任意の経路を取り除く。
【００１６】
初期状態又はバッファレベルは開始遅延に直接に対応するが、初期状態又はバッファレベルを任意に選択することができる。良い開始点は５０％の充満であるが、品質の一貫性又はレベルに大きく影響しないならば、これよりも低い初期充満を使用できることが、テストによって示されている。
【００１７】
第１のノードにおいて、バッファの充満は、初期状態ｂｔ０である。チャンクの再生持続期間に相当する次の期間ｔｃ中に、２つのことが発生する。即ち、別のデータｂｔｃビットが届くことと、第１のチャンクを復号するために、バッファからｂ１ビットが取り出されることである。従って、Ｊチャンク期間後に、デコーダバッファの充満は、次の通りである。
【数２】
0005599715.tif 000003
【００１８】
なお、当然に、ｂｊの値は、特定のトレリス経路に対する量子化ステップサイズに対応する値である。
【００１９】
符号化されるビットの総数、即ち、
【数３】
0005599715.tif 000004
【００２０】
が、バッファに入るビットの総数、即ち、シーケンス中のチャンク数のｂｔｃ倍に等しいという制約を満たすために、(後述を参照すべきであるが)最終状態はゼロのバッファ充満に対応するか、又は、最後のチャンクの後にレートｂでダミーデータによってバッファを埋め続けるならば、最終状態は初期状態に等しくなるはずである。次に、トレリスを通る１本の経路のみを残して、他の最終状態に至る全経路を取り除くことができる。１本の経路は、初期状態とバッファサイズの制約とを考慮して、最適経路である。
【００２１】
図３は、各チャンクを符号化した場合の、３つのみの量子化インデックスを用いたトレリスを示しており、２つのチャンクがトレリスに追加されている。ノードの第３のカラムにおけるノードの１つにおいて、２本の経路が収束している。この点までのより高いコストを有する経路を取り除くことができ、点線で示されている。図４は、もう１つのチャンクの符号化をトレリスに追加した結果を示している。ノードの右端のカラムにおいて、幾つかの経路が、様々なノードに収束している。ここでも、この点までのより高いコストを有する経路を取り除くことができ、点線で示されている。１本の経路がバッファサイズを超え、オーバーフローに至ると、取り除くことができる。従って、子ノードを有さない第３のカラムにおける１つのノードがあり、そのノードまでの経路を取り除くことができることを示している。図５は、図４の点線の経路を取り除いて、ビデオの第４のチャンクの符号化を追加した結果を示している。ここでも、取り除かれる経路が点線で示されている。図６は、図５の点線の経路を取り除いて、ビデオの第５のチャンクの符号化を追加した結果を示している。ここでも、取り除かれる経路が点線で示されている。図７は、図６の点線の経路を取り除いた結果を示している。この例では、符号化するチャンクは、５個のみである。初期状態(初期のバッファの充満)に至らない全ての経路は、ビットレートの制約を満たさない符号化に対応するので、取り除くことができる。これにより、トレリスを通る最適経路のみが残る。トレリスを通る最適経路は、強調表示された経路として示されており、最適符号化に対応する。
【００２２】
最適経路が決定されると、各チャンクに対する量子化ステップサイズが分かる。これらの値は、最終的な符号化ステップ109に送られ、最終的な符号化ステップ109において、符号化ソフトウェアは、チャンクを符号化して、符号化されたデータをバッファ６に入力する。
【００２３】
ここで、実施についての幾つかの更なる詳細を提供し、幾つかの代替例を記載する。
【００２４】
Ａ.チャンクへの分割
ビデオシーケンスをチャンクに分割することに関して、ここでは、独立性と、品質変化のユーザの知覚との２つについての考察を行なう。既に記載したように、各チャンクのコスト測度が独立していること、即ち、他のチャンクに対して選択された量子化ステップサイズから独立していることが、ビタビアルゴリズムの適用に必要である。他のフレームに関係なく符号化されるフレーム（「Ｉフレーム」）の場合には、必ず独立しており、チャンクは１つのＩフレームで構成することができる。フレーム間予測符号化が使用される場合に、Ｐフレームのビット数と品質は、予測子として使用される前のＩ又はＰフレームの符号化にかなり左右される。しかしながら、チャンクが十分な長さを有するならば、全体としてチャンクの知覚品質に対する影響は比較的に小さく、許容できることが分かった。逆に、チャンクが長過ぎないならば、チャンクの持続期間における品質の変化は、知覚的に重要ではない。これらの考察は、チャンクに分割するための次のガイドラインに結び付く。
【００２５】
（長さが、例えば通常は１秒、最大で５秒という制限を条件として）チャンクは、
−Ｉフレームのみから構成されるビデオ信号の場合には、
１フレーム又は任意の数のフレームであり、
−Ｐフレームのみを挟むＩフレームから構成されるビデオ信号の場合には、
（ａ）Ｉフレームから始まる任意のシーケンス、又は、
（ｂ）通常は５フレーム以上の、十分に長いシーケンスであって、全体として検討されるチャンクの品質において、前のフレームに対する依存が重要な要素ではない任意のシーケンス、の何れかであり、
−ＰフレームとＢフレームとを有するＩフレームから構成されるビデオ信号の場合には、
同じルールが適用されるが、チャンクに分割するときに、(取り込んで表示するのではなく)符号化する順序でフレームを検討すべきであることに注意すべきである。
【００２６】
チャンクの境界を場面の変化に合わせるようにすることは、有益であり得る。
【００２７】
通常、全てのチャンクが同じ長さを有することが好ましいが、これは厳密に不可欠なことではない。異なる長さが使用される場合には、チャンクの長さに比例して、コストを加重すべきである。
【００２８】
Ｂ.エンコーダ
上述のＨ．２６４符号化に加えて、品質とビットレートとのトレードオフを可能にする任意の圧縮システム、例えば、ＩＴＵ−Ｔ勧告Ｈ．２６３及びＩＳ １３８１８−２を使用することができる。量子化ステップサイズを変えることによってトレードオフを行なうことは、実際には不可欠なことではない。代りに(又は、加えて)、例えば、フィルタリング及びサブサンプリング動作を使用することによって、符号化される空間解像度を変えることができ、変換ベースのシステムの場合には、変換係数を選択的に捨てることができる。
【００２９】
Ｃ.量子化ステップサイズ
プロトタイプでは、ステップ103において、１７個の量子化ステップサイズからなる１つの組が検査された。１７個の量子化ステップサイズは、２０乃至３６の整数値の量子化パラメータに対応している。これは好結果を与えたが、処理電力がかなり要求され、より少ない値が好ましいかもしれない。魅力的な１つのオプションでは、少数の、恐らく２又は３の、量子化パラメータに対する結果を得て、補完によって、ビット数ｂ（ｉ）と品質ｉＭＯＳ(ｉ)とを推定する。
【００３０】
ビット数を推定するためには、非線形補間が好ましいと予想される。Ｈ．２６４において、量子化ステップサイズは、指数関数的に一様に拡張するので、量子化パラメータにおける６の変化は、ステップサイズを２倍又は２分の１にすることに相当する。非常に小さなステップサイズの場合に、これはビットレートを２分の１又は２倍にすることに相当する。しかしながら、量子化プロセスにおけるデッドゾーンは、実際にはこれが起こらないことを意味する。５秒のクリップのテストにおいて、１ステップの変化率が通常１．１乃至１．２の範囲である場合に、量子化パラメータにおける５の変化に対して、ビットレートは平均で２倍(２分の１)になることが分かった。
【００３１】
(なお、
【数４】
0005599715.tif 000005
【００３２】
である。従って、少数の符号化を行なうと、各チャンクに対するデータ点に曲線ｙ＝Ａ・ｎｘ(ｘ＝量子化パラメータ、ｙ＝ビット数)を合わせることができる。）
ビデオの定められたチャンクに対して、品質ｉＭＯＳ(ｉ)が量子化ステップサイズと共にほぼ線形に変化することが、テストで分かったので、品質ｉＭＯＳ(ｉ)を推定するために、線形補間を使用できることが分かった。
【数５】
0005599715.tif 000006
【００３３】
Ｃは、ビデオのチャンクのテクスチャによって決まる定数である。
【００３４】
Ｄ.知覚品質評価
記載されている方法は、任意の特定の品質メトリックを前提としていない。実際には、知覚品質メトリックを使用することは不可欠ではなく、実際には、信号対雑音比、又は量子化ステップサイズ自体でさえ、使用することができる。しかしながら、知覚品質メトリック、即ち、人間の観察者に対するマスキング効果の主観的な効果を考慮したものが、好ましい。特に魅力的な１つの方法は、我々の同時継続中の国際特許出願ＰＣＴ／ＧＢ２００６／００４１５５号（公開ＷＯ２００７／０６６０６６号)に記載されている。
【００３５】
Ｅ．目標ビットレート及び目標品質
図２のフローチャートのステップ107に戻ると、これに代わる実施が２つある。
【００３６】
第１に、ユーザが目標ビットレートｂを指定した場合であって、目標品質(ｉＭＯＳＴ)を決定しなければならない場合を検討する。図８及び９は、目標ビットレートとバッファサイズとの幾つかの組み合わせに対して、目標ｉＭＯＳを変化させる効果を示したグラフである。これらは説明の目的で示されており、符号化を行なうために、図示されているデータを生成する必要はない。これらは、ある範囲の目標ｉＭＯＳ値に対して、ビタビアルゴリズムを試行的に実行することによって生成された。図８は、目標ｉＭＯＳ値に対する総コストについて作図している。第１の曲線は、目標ビットレートに関する。目標ビットレートは、(既に生成された、ｉＭＯＳ及びビット数のデータを使用して)各チャンクに対して、４．０に最も近い品質を与える量子化ステップサイズを選択して、対応するビット数を加えて、平均ビットレートをとることによって計算された。これらのステップサイズを使用して、シーケンスを符号化して送信する場合に、バッファのオーバーフローを回避するために必要なバッファサイズの０．１倍に、バッファサイズを設定した。同様のやり方で、それぞれ３．７、３．８５、及び４．１５に等しい一定のｉＭＯＳと、０．２５、０．１、及び０．２５のバッファサイズとに対するものに相当するビットレートについて、他の曲線を生成した。図９は、同じテストについて、実際のｉＭＯＳの標準偏差について作図している。
【００３７】
使用すべき目標ｉＭＯＳを決定する１つの方法は、以下のような反復方法であり、図１０に示されている。この例において、反復は、標準偏差(即ち、テストで得られた実際の平均ｉＭＯＳからの偏差の二乗の和の平方根)を低減する目標を有するが、その代わりに、分散のような、品質変化の別の測度、又は上述の総コスト(即ち、テストで使用された目標ｉＭＯＳからの偏差の二乗の和)を使用することができる。第１に、目標ｉＭＯＳの下限ｘ０＝０．０に対して、ビタビアルゴリズムを行なって、シーケンスに対する実際のｉＭＯＳの標準偏差ｓ０を与え、上限ｓ１＝５．０に対して、アルゴリズムを繰り返して、対応する標準偏差ｓ１を見付ける。
【００３８】
１．下限目標品質（ｘ０）を設定する。
【００３９】
２．上限目標品質（ｘ１）を設定する。
【００４０】
３．指定目標ビットレートｂを用いて、ビタビアルゴリズムを行なって、目標品質のこれらの２つの値における品質の標準偏差（ｓ０とｓ１）を決定する。
【００４１】
次に、範囲を分割する。
【００４２】
４．下限目標品質（ｘ０）と上限目標品質（ｘ１）との間の下方中間目標品質（ｘ２）を設定する。この分割は黄金比であることが好ましく、従って、以下の通りである。
【数６】
0005599715.tif 000007
【００４３】
５．ビタビアルゴリズムを使用して、この点における品質の標準偏差（ｓ２）を決定する。
【００４４】
６．下方中間目標品質（ｘ２）と上限目標品質（ｘ１）との間の上方中間目標品質（ｘ３）を設定する。この分割は黄金比であることが好ましく、従って、以下の通りである。
【数７】
0005599715.tif 000008
【００４５】
７．この点における品質の標準偏差（ｓ３）を決定する。
【００４６】
新たな点（ｘ３，ｓ３）における標準偏差が、前の点（ｘ２，ｓ２）における標準偏差よりも、小さいか又は大きいかに応じて、現在の下限（ｘ０，ｓ０）又は上限（ｘ１，ｓ１）の何れかが置き換えられる。
【００４７】
８．ケース１−上方中間目標品質（ｘ３）の標準偏差（ｓ３）が、下方中間目標品質（ｘ２）の標準偏差（ｓ２）よりも小さい場合。下限目標品質（ｘ０）を下方中間目標品質（ｘ２）に置き換える。現在ある上方中間目標品質（ｘ３）が、新たな下方中間目標品質になる。
【００４８】
又は、
９．ケース２−上方中間目標品質（ｘ３）の標準偏差（ｓ３）が、下方中間目標品質（ｘ２）の標準偏差（ｓ２）よりも大きい場合。上限目標品質（ｘ１）を上方中間目標品質（ｘ３）に置き換える。現在ある下方中間目標品質（ｘ２）が、新たな上方中間目標品質になる。
【００４９】
標準偏差ｓ２及びｓ３が等しい場合は、何れか一方の選択肢を選択することができる。
【００５０】
図１０に示されているケースでは、（ｘ０，ｓ０）が置き換えられる。これを検討から外し、（ｘ２，ｓ２）が新たな下限になる。
【００５１】
次に、新たな点（ｘ４，ｓ４）を計算する。
【００５２】
１０．ケース１−下方中間目標品質と上限との間にある新たな上方中間目標品質を選択する。
【００５３】
又は、
１１．ケース２−上方中間目標品質と下限との間にある新たな下方中間目標品質を選択する。
【００５４】
１２．ステップ８及び９を繰り返す。
【００５５】
１３．任意で、ステップ１０、１１、及び１２を、ζ回繰り返す。なお、ζは、整数≧０である。
【００５６】
１４．従って、求められた結果は、残りの中間目標品質である。
【００５７】
各反復において、上限と下限との差は、黄金比によって調整される。テストでは、２０回の反復を使用して、上限と下限との最終的な差は０．０００５３５になった。
【００５８】
代わりの方法は、高速探索に関わる。好結果を得るのに、通常は２回の反復で十分であることが分かった。
【００５９】
１）第１の品質を定義する。テストでは、目標ｉＭＯＳを５．０に設定する。
【００６０】
２）指定目標ビットレートｂを用いて、ビタビアルゴリズムを行なって、ｉＭＯＳの標準偏差と平均ｉＭＯＳとを計算する。
【００６１】
３）ｉＭＯＳのこの標準偏差が閾値を越えている場合に、目標ｉＭＯＳを平均ｉＭＯＳに設定して、ステップ２及び３を少なくとも１回繰り返す。
【００６２】
どれくらい小さい標準偏差が許容できるかに関して、不確かである場合には、代わりに、終了条件を設けてもよい。終了条件は、それが前の反復よりも著しく小さくならないこと、及びそれが大きくなる場合には必ず止めることに基づく。即ち、標準偏差σｉが前の値よりも（所定のマージン分）下がらなくなるまで、即ち、σｉ≧σｉ−１−ｍまで繰り返す。新たな標準偏差が前の値より大きい場合は、平均品質の前の値に戻らなければならない。
【００６３】
第２の状況は、ユーザが目標品質(ｉＭＯＳＴ)を指定する場合であって、平均ビットレートｂを決定しなければならない場合である。
【００６４】
ここで、ｉＭＯＳの標準偏差(又は、既に記載したような、変化の他の測度)が目標ビットレートで決まることは、図８の目標ｉＭＯＳの場合と非常に似ていることが、テストで示された。従って、このアプローチは、前に使用したアプローチに非常に似ており、基本的な発想は、最小値の右又は左のビットレートから始まって、反復的に最小値に近付いていくというものである。新たな問題を提起する唯一の点は、最小値よりもそれぞれ小さく又は大きくなるように、ビットレートの下限又は上限の初期値を選択するということである。実際には、任意の値を選択してもよい。その後で、目標よりも低いビットレートが使用されている場合には、結果として得られた平均ｉＭＯＳが目標ｉＭＯＳよりも低いことが分かり、目標よりも高いビットレートが使用されている場合には、結果として得られた平均ｉＭＯＳが目標ｉＭＯＳよりも高いことが分かることによって、確かめることができる。従って、プロセスは、以下の通りである（なお、ステップ４及び５は同じであるが、ステップ５のみがループである）。
【００６５】
１）２つのビットレートを選択する。２つのビットレートは、下限目標ビットレートと上限目標ビットレートとであり、目標ビットレートの両端である可能性が高い。
【００６６】
２）上限及び下限の各々を使用して、指定目標品質(ｉＭＯＳＴ)について、ビタビアルゴリズムを実行して、ｉＭＯＳの標準偏差と平均ｉＭＯＳとを決定する。
【００６７】
３）平均によって定義された範囲外に、目標品質がある場合に、ステップ１、２、及び３を繰り返す。
【００６８】
４）下限目標ビットレートと上限目標ビットレートとの間の下方中間目標ビットレートを設定することによって、新たな評価点を選択する。この分割は黄金比であることが好ましい。
【００６９】
５）ビタビアルゴリズムを再び実行して、ｉＭＯＳの平均と標準偏差とを得る。
【００７０】
６）新たな評価点を選択して、ビタビアルゴリズムを実行して、ｉＭＯＳの標準偏差を計算する。下方中間目標ビットレートと上限目標ビットレートとの間の上方中間目標ビットレートを設定する。この分割は黄金比であることが好ましい。
【００７１】
７）上方中間目標ビットレートで得られた品質の標準偏差と平均品質とを測定する。
【００７２】
黄金分割探索の原理を使用して、端にある評価点のうちの１つを削除することによって、ｉＭＯＳの最も小さい標準偏差を見付ける。
【００７３】
８）ケース１−上方中間目標ビットレートの標準偏差が、下方中間目標ビットレートの標準偏差よりも小さい場合。下限目標ビットレートを下方中間目標ビットレートに置き換える。現在ある上方中間目標ビットレートが、新たな下方中間目標ビットレートになる。
【００７４】
又は、
９）ケース２−上方中間目標ビットレートの標準偏差が、下方中間目標ビットレートの標準偏差よりも大きい場合。上限目標ビットレートを上方中間目標ビットレートに置き換える。現在ある下方中間目標ビットレートが、新たな上方中間目標ビットレートになる。
【００７５】
これらが等しい場合は、何れか一方の選択肢を選択することができる。
【００７６】
１０）ケース１−下方中間目標ビットレートと上限目標ビットレートとの間にある新たな上方中間目標ビットレートを選択する。
【００７７】
又は、
１１）ケース２−上方中間目標ビットレートと下限目標ビットレートとの間にある新たな下方中間目標ビットレートを選択する。
【００７８】
目標ビットレートに対して、より高い精度が要求される場合に、これらのステップが繰り返され得る。
【００７９】
１２）ステップ８及び９を繰り返す。
【００８０】
１３）任意で、ステップ１０、１１、及び１２をζ回繰り返す。なお、ζは、整数≧０である。
【００８１】
１４）結果は、残りの中間目標ビットレートである。
【００８２】
Ｆ．コスト測度
コスト測度は品質の差の関数であるので、一般に、差が大きくなるのに従って、コストが大きくなる。通常、全体的な効果が実質的に連続的に大きくなるならば、このルールから、小さな偏差は、結果に影響を与えない可能性が高いことを意味する。通常は、品質の差の法（modulus）の単調増加関数が適切であるが、（例えば）目標よりも低い品質を、同じ偏差で、目標よりも高い品質よりも、一層不利にする非対称関数は排除されない。更に、勾配が単調に増加する関数も推奨される。我々が評価した関数は、次のものを含む。
【数８】
0005599715.tif 000009
【００８３】
Ｌｉｎｅａｒ（線形）と、Ｅｘｐｏｎｅｎｔｉａｌ１（指数関数１）は、目標ｉＭＯＳからの大きな偏差をあまり不利にしないので、達成する性能がより小さいことが分かった。他の全ては適切に働くが、上述のように、Ｓｑｕａｒｅ（二乗）が好ましい。
【００８４】
品質の変化を一層不利にする改善点として、各チャンクとその前のチャンクとの間の品質の差の関数として、追加のコストの項を加えてもよい。
【００８５】
例えば、チャンクｊ（ｊ＝２・・・Ｎ）について、追加の項β(ｉＭＯＳ（ｊ）−ｉＭＯＳ（ｊ−１））２を加えてもよい（なお、βは、ある重み係数であって、（必須ではないが）好ましくは１未満である）。
【数９】
0005599715.tif 000010
【００８６】
Ｇ．トレリス状態の量子化
テストでは、許容状態数が３０乃至１０，０００で変化するように、ビタビアルゴリズムで使用されるバッファレベルの量子化を変化させた。妥当な結果は３０状態で達成されたが、３００状態を使用すると、はるかに一貫した品質を達成できるという結果が示された。更に多くの状態を使用すると、より一層の一貫性(ｉＭＯＳのより低い標準偏差)が達成されるが、要求される計算の複雑さの増加に対して、利益が小さかった。
【００８７】
Ｈ．チャンクの相互依存或いは不正確なｉＭＯＳ又はｂ（ｉ）を伴うビタビ復号
実施された方法では、定められた量子化ステップサイズを使用してシーケンス全体を符号化することによって、各チャンクに対するコスト(ｉＭＯＳ)を得る。従って、ある残留相互依存がある場合において、チャンクが前のチャンクと異なるステップサイズで符号化されるときは必ず、得られた結果は僅かに不正確になる。上述のセクションＣに記載されているように補間を使用すると、誤差が更に生じ得る。品質メトリックが不正確であることは、達成できたであろう最適値から、結果が僅かに離れることを意味するだけであり、(あまり）問題はない。しかしながら、ビット数の不正確な値は、より重大であり得る。その理由は、実際にはバッファのアンダーフロー又はオーバーフローに導くトレリス経路が、取り除かれるべきであるのに、取り除かれないことを意味する場合があるからである。この問題に対する解決策では、符号化中に、予想状態からのバッファ状態の偏差を監視して、その偏差を使用して、そこから、ビタビアルゴリズムの再実行をトリガする。別の代案は、シーケンス全体に対してビタビアルゴリズムを実行するのではなく、シーケンスをサブシーケンスに分割して、各サブシーケンスを独立して符号化するか、又は(畳み込み符号の復号において一般的な)スライディングウィンドウにより実行し得るというものである。これは、アルゴリズムの以前の演算によって生成されたものではなく、実際のバッファレベルが適用されることを想定している。
【００８８】
Ｉ．ゼロで終了しない効果
選択されるべきトレリス経路が生き残り経路であって、ゼロのバッファ充満で終了すること(又は、全ての本物のデータが使い尽くされた後で、ダミーデータが受信機バッファに入り続けた場合に、生き残り経路は、初期の充満に等しいバッファの充満で終了するが、ゼロのバッファ充満の量と同じことである)は、既に記載した。異なる経路を選択する効果を検討することが重要である。
【００８９】
より大きな充満値で終了する経路を選択することが可能である。これは、本物のデータによるバッファの充満が必要以上に早く終了したために、復号終了時に、デコーダバッファの中により多くのダミーデータがあることに相当する。その理由は、この選択により得られた１組の量子化ステップサイズが、選択されたビットレートで運ぶことができるよりも、僅かにより少ない符号化ビットを生成するからである。送信が予想よりも僅かに早く終了するという主要な効果があるので、拒絶すべきではない。これは、送信容量の無駄が多いので、他の解決案よりも、品質の変化が相当に少ないか、又はゼロの充満で終了する生き残り経路がない限り、特に魅力的ではない。
【００９０】
より小さな充満値で終了する経路を選択することも可能である。これは、本物のデータによるバッファの充満がより遅く終了するので、復号終了時に、デコーダバッファの中により少ないダミーデータがあることに相当する。極端な場合に、ダミーデータは全く存在せず、バッファは空で終了する。ビデオを符号化するために使用されるビット総数、Ｂは、次の式によって与えられる。
【数１０】
0005599715.tif 000011
【００９１】
なお、平均符号化ビットレートは、最早ｂでないが、送信ビットレートは、ｂに等しいままである。  
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
［１］（ａ）符号化されるシーケンスを複数の時間部分に分割するステップと、
（ｂ）前記シーケンスを分析して、各時間部分に対して、複数の符号化品質設定に従って、前記符号化品質設定と、（ｉ）前記時間部分に対する品質メトリックと（ｉｉ）前記符号化品質設定で前記時間部分を符号化することによって生成されるビット数と、の関係を確立するデータを決定するステップと、
（ｃ）目標品質及び目標ビットレートと共に前記データを分析して、１つの時間部分ごとに１つの符号化品質設定ずつ、１組の符号化品質設定を選択するステップと、
（ｄ）前記選択された１組の符号化品質設定を使用して、前記シーケンスを符号化するステップと、
を含み、
前記選択された１組の符号化品質設定は、符号化されたビデオを、指定サイズの送信機バッファ及び受信機バッファを介して、前記目標ビットレートで送信するという制約内で、前記シーケンスに対する結合品質コストを最小化するのに役立ち、
受信機バッファの初期充満は、オーバーフローも、アンダーフローも生じず、
前記結合品質コストは、個々の品質コストの和であり、
前記個々の品質コストの各々は、前記目標品質からの、それぞれの前記符号化された時間部分の品質メトリックの偏差の量の関数であり、
前記関数は、前記偏差の絶対値が大きくなるのに従って、前記コストが全体的に増加する関数である、
ビデオ符号化方法。
［２］各時間部分は、他のフレームに関係なく符号化されるフレームから始まる、前記［１］に記載のビデオ符号化方法。
［３］各時間部分は、持続時間で少なくとも５フレームである、前記［１］に記載のビデオ符号化方法。
［４］各時間部分は、５秒以下の持続時間を有する、前記［１］乃至［３］の何れか１つに記載のビデオ符号化方法。
［５］各時間部分は、１秒以下の持続時間を有する、前記［１］又は［２］に記載のビデオ符号化方法。
［６］ステップ（ｃ）における前記分析は、ビタビアルゴリズムを使用して行なわれる、前記［１］乃至［５］の何れか１つに記載のビデオ符号化方法。
［７］前記符号化品質設定は、量子化ステップサイズの設定である、前記［１］乃至［６］の何れか１つに記載のビデオ符号化方法。
［８］前記シーケンスを分析するステップは、複数の異なる符号化品質設定における各時間部分の試行的符号化を含む、前記［１］乃至［７］の何れか１つに記載のビデオ符号化方法。
［９］前記目標ビットレートが指定され、
前記目標ビットレートに対応する前記目標品質を決定するステップを含む、前記［１］乃至［８］の何れか１つに記載のビデオ符号化方法。
［１０］前記指定された目標ビットレートと選択された複数の目標品質値とを用いて、ステップ（ｃ）に従って、複数の試行的分析を反復的に行なって、前記反復中に実際の品質の変化の測度を次第に低減することによって、前記目標品質が決定される、前記［９］に記載のビデオ符号化方法。
［１１］前記目標品質は、
（Ａ）目標品質範囲の上限及び下限（ｘ０，ｘ１）を定義するステップと、
（Ｂ）前記目標品質からの、前記上限及び前記下限における品質の標準偏差（ｓ０，ｓ１）を測定するステップと、
（Ｃ）前記上限と前記下限との間の中間目標品質点（ｘ２）を選択するステップと、
（Ｄ）前記上限と前記下限との間の他の異なる中間目標品質点（ｘ３）を選択するステップと、
（Ｅ）前記２つの中間目標品質点における品質の標準偏差（ｓ２，ｓ３）を測定するステップと、
（Ｆ）前記２つの中間目標品質点のうちの上方中間目標品質点における標準偏差が、前記２つの中間目標品質点のうちの下方中間目標品質点における標準偏差よりも、小さいか又は大きいかに従って、
（ｉ）前記下限を前記下方中間目標品質点に置き換えて、別の中間目標品質点を選択して、前記別の中間目標品質点における品質の標準偏差を測定するか、又は、
（ｉｉ）前記上限を前記上方中間目標品質点に置き換えて、更に別の中間目標品質点を選択して、前記更に別の中間目標品質点における品質の標準偏差を測定するステップと、
（Ｇ）ステップ（Ｆ）を少なくとも１回繰り返すステップと、
を含む、前記［１０］に記載のビデオ符号化方法。
［１２］（ｉ）第１の目標品質を定義するステップと、
（ｉｉ）前記第１の目標品質を使用して得られた品質の標準偏差と平均品質とを測定するステップと、
（ｉｉｉ）前記標準偏差が閾値を越えている場合に、前記第１の目標品質を、前記得られた平均品質に設定するステップと、
（ｉｖ）ステップ（ｉｉ）と（ｉｉｉ）とを少なくとも１回繰り返すステップと、
によって、前記目標品質を決定する、前記［１０］に記載のビデオ符号化方法。
［１３］前記目標品質が指定され、
前記目標品質に対応する前記目標ビットレートを決定するステップを含む、前記［１］乃至［８］の何れか１つに記載のビデオ符号化方法。
［１４］前記指定された目標品質と選択された複数の目標ビットレートとを用いて、ステップ（ｃ）に従って、複数の試行的分析を反復的に行なって、前記反復中に実際の品質の変化の測度を次第に低減することによって、前記目標ビットレートが決定される、前記［１３］に記載のビデオ符号化方法。
［１５］前記目標ビットレートは、
（Ａ）目標ビットレート範囲の上限及び下限を定義するステップと、
（Ｂ）前記上限及び前記下限の各々を使用して得られた品質の標準偏差と平均品質とを測定するステップと、
（Ｃ）前記目標品質が、前記２つの平均品質によって定義される前記目標ビットレートの範囲外にある場合に、ステップ（Ａ）、（Ｂ）、及び（Ｃ）を繰り返すステップと、
（Ｄ）前記上限と前記下限との間の中間目標ビットレートを選択するステップと、
（Ｅ）前記上限と前記下限との間の他の異なる中間目標ビットレートを選択するステップと、
（Ｆ）前記２つの中間目標ビットレートにおける品質の標準偏差を測定するステップと、
（Ｇ）前記２つの中間目標ビットレートのうちの上方中間目標ビットレートにおける標準偏差が、前記２つの中間目標ビットレートのうちの下方中間目標ビットレートにおける標準偏差よりも、小さいか又は大きいかに従って、
（ｉ）前記下限を前記下方中間目標ビットレートに置き換えて、別の中間目標ビットレートを選択して、前記別の中間目標ビットレートにおける品質の標準偏差を測定するか、又は、
（ｉｉ）前記上限を前記上方中間目標ビットレートに置き換えて、更に別の中間目標ビットレートを選択して、前記更に別の中間目標ビットレートにおける品質の標準偏差を測定するステップと、
（Ｈ）ステップ（Ｇ）を少なくとも１回繰り返すステップと、
を含む、前記［１４］に記載のビデオ符号化方法。
［１６］前記コスト測度は、前記目標品質からの、それぞれの前記符号化された時間部分の品質メトリックの偏差の関数であり、
前記関数は、偏差が大きくなるのに従って、勾配が大きくなる関数である、前記［１］乃至［１５］の何れか１つに記載の方法。
［１７］前記関数は、前記偏差の二乗である、前記［１６］に記載のビデオ符号化方法。
［１８］前記結合品質コストは、時間部分の品質メトリックの偏差と、前記時間部分の前の時間部分の品質メトリックの偏差との関数である寄与を含む、前記［１］乃至［１７］の何れか１つに記載のビデオ符号化方法。
［１９］ステップ（ｃ）においてバッファの充満を予測するステップと、
ステップ（ｄ）においてバッファの充満を監視して、前記バッファの充満が、前記予測されたバッファの充満と所定の程度、異なる場合に、将来の時間部分に対して、ステップ（ｃ）の前記分析を繰り返すステップと、
を含む、前記［１］乃至［１８］の何れか１つに記載のビデオ符号化方法。
【符号の説明】
【００９２】
２・・・ビデオ入力、４・・・ディスク記憶装置、40・・・汎用オペレーティングシステム、41・・・制御ソフトウェア、42・・・圧縮ソフトウェア、43・・・知覚品質評価ソフトウェア、７・・・ビデオ出力。
【図１】
0005599715.tif 000012
【図２】
0005599715.tif 000013
【図３】
0005599715.tif 000014
【図４】
0005599715.tif 000015
【図５】
0005599715.tif 000016
【図６】
0005599715.tif 000017
【図７】
0005599715.tif 000018
【図８】
0005599715.tif 000019
【図９】
0005599715.tif 000020
【図１０】
0005599715.tif 000021