(57)【特許請求の範囲】
【請求項１】
ビデオ素材を圧縮符号化して複数の記録領域に記録するエンコード方法において、
本エンコードに先立つプリエンコード工程と、
与えられたエンコード条件下で、各記録領域の間の画質の差を許容できるビット配分の可否を評価する評価工程と、
上記各記録領域の間の画質の差が許容できるビット配分の適正範囲を提示する提示工程と
を有し、上記与えられたエンコード条件または上記提示された適正範囲のビット配分により本エンコードを行うことを特徴とするエンコード方法。
【請求項２】
上記評価工程では、上記プリエンコード工程で測定された上記ビデオ素材の符号化難易度を用いて、上記与えられたエンコード条件により上記各記録領域に配分されるビット量と上記各記録領域ごとの符号化難易度の総和との比率を求め、その比率のばらつき量に基づいて、上記各記録領域のエンコード後の画質のばらつき量を推定することを特徴とする請求項１記載のエンコード方法。
【請求項３】
上記提示工程では、上記比率のばらつき量が所定値を越えるときに、上記各記録領域のフレーム数を固定した場合の、各記録領域に配分されるべきビット数の適正範囲値を表示することを特徴とする請求項２記載のエンコード方法。
【請求項４】
上記提示工程では、上記比率のばらつき量が所定値を越えるときに、上記各記録領域のビット配分量を固定した場合の、各記録領域に記録されるべきフレーム数の適正範囲値を表示することを特徴とする請求項２記載のエンコード方法。
【請求項５】
上記提示工程では、上記フレーム数の適正範囲内でのチャプター位置、またはシーンチェンジ検出位置を検出し、新たに記録層の境界を変更する際のビデオ素材上での適切な場所として表示することを特徴とする請求項４記載のエンコード方法。
【請求項６】
上記複数の記録領域は、ディジタルビデオディスクの複数の記録層であることを特徴とする請求項１記載のエンコード方法。
【請求項７】
複数の記録領域にシームレスアングルブロックを含むエンコードを行うエンコード方法において、
各記録領域ごとに与えられる上限が考慮されたバイト数の総和および総フレーム数からエンコードされた素材の平均レートを求める工程と、
重み係数を考慮したフレーム数の比率に従って、上記各記録領域に記録されるべきシームレスアングルブロックに割り当てられるバイト数を、上記各記録領域から確保する工程と、
上記シームレスアングルブロックに割り当てられるバイト数が差し引かれた残りのバイト数を、上記シームレスアングルブロック以外のブロックに重み係数を考慮した符号化難易度の和の比率で配分する工程と
を有することを特徴とするエンコード方法。
【請求項８】
上記エンコードされたビデオ素材の平均レートは、本エンコードに先立つプリエンコードにより求められることを特徴とする請求項７記載のエンコード方法。
【請求項９】
上記複数の記録領域は、ディジタルビデオディスクの複数の記録層であることを特徴とする請求項７記載のエンコード方法。
【請求項１０】
ビデオ素材を圧縮符号化して複数の記録領域に記録するエンコード装置において、
本エンコードに先立ってプリエンコードを行うプリエンコード手段と、
各記録領域の間の画質の差を許容できるビット配分の可否を評価する評価手段と、
上記各記録領域の間の画質の差が許容できるビット配分の適正範囲を提示する提示手段と
を備え、上記与えられたエンコード条件または上記提示された適正範囲のビット配分により本エンコードを行うことを特徴とするエンコード装置。
【請求項１１】
上記評価手段は、上記プリエンコード手段により測定された上記ビデオ素材の符号化難易度を用いて、上記与えられたエンコード条件により上記各記録領域に配分されるビット量と上記各記録領域ごとの符号化難易度の総和との比率を求め、その比率のばらつき量に基づいて、上記各記録領域のエンコード後の画質のばらつき量を推定することを特徴とする請求項１０記載のエンコード装置。
【請求項１２】
上記提示手段は、上記比率のばらつき量が所定値を越えるときに、上記各記録領域のフレーム数を固定した場合の、各記録領域に配分されるべきビット数の適正範囲値を表示することを特徴とする請求項１１記載のエンコード装置。
【請求項１３】
上記提示手段は、上記比率のばらつき量が所定値を越えるときに、上記各記録領域のビット配分量を固定した場合の、各記録領域に記録されるべきフレーム数の適正範囲値を表示することを特徴とする請求項１１記載のエンコード装置。
【請求項１４】
上記提示手段は、上記フレーム数の適正範囲内でのチャプター位置、またはシーンチェンジ検出位置を検出し、新たに記録層の境界を変更する際の素材上での適切な場所として表示することを特徴とする請求項１３記載のエンコード装置。
【請求項１５】
上記複数の記録領域は、ディジタルビデオディスクの複数の記録層であることを特徴とする請求項１０記載のエンコード装置。
【請求項１６】
複数の記録領域にシームレスアングルブロックを含むエンコードを行うエンコード装置において、
各記録領域ごとに与えられる上限が考慮されたバイト数の総和および総フレーム数からエンコードされた素材の平均レートを求める手段と、
重み係数を考慮したフレーム数の比率に従って、上記各記録領域に記録されるべきシームレスアングルブロックに割り当てられるバイト数を、上記各記録領域から確保する手段と、
上記シームレスアングルブロックに割り当てられるバイト数が差し引かれた残りのバイト数を、上記シームレスアングルブロック以外のブロックに重み係数を考慮した符号化難易度の和の比率で配分する手段と
を備えることを特徴とするエンコード装置。
【請求項１７】
上記エンコードされた素材の平均レートは、本エンコードに先立つプリエンコードにより求められることを特徴とする請求項１６記載のエンコード装置。
【請求項１８】
上記複数の記録領域は、ディジタルビデオディスクの複数の記録層であることを特徴とする請求項１６記載のエンコード装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像／音声信号を圧縮して記録媒体に記録するためのエンコード方法および装置に関し、特に画像／音声信号をディジタルビデオディスク（ＤＶＤ）などのいわゆるパッケージメディアに蓄積するために好適なエンコード方法および装置に関する。
【０００２】
【従来の技術】
ビデオ情報を圧縮符号化してディジタルビデオディスク（Digital Video Disk：ＤＶＤ）やビデオＣＤのようないわゆるパッケージメディアに蓄積するエンコードシステムでは、まず、ビデオ素材の画像の符号化難易度（Difficulty）を測定し、次に、その符号化難易度に基づいてパッケージメディアの記録容量の範囲内の与えられたバイト数に収まるように、各ビデオ情報のフレームごとにビット配分（Bit assign）処理を行う方法が一般に採用されている。以下では、このような２段階のエンコード処理を２パスエンコードという。
【０００３】
図２０は、ビデオ情報を圧縮符号化してディジタルビデオディスク（ＤＶＤ）などのオーサリングに用いられるオーサリングシステムの基本的な構成を例示している。
【０００４】
このオーサリングシステムは、ビデオエンコーダ２２，オーディオエンコーダ２１，サブタイトルエンコーダ２３，メニューエンコーダ２４，エミュレータ２６，マルチプレクサ２５等の各エンコード作業工程のための装置と、エンコード結果が書き込まれるハードディスクアレイ（ＲＡＩＤ）４と、これらの動作を統括管理するスーパーバイザ３とが、ネットワーク２で相互に接続されている。
【０００５】
このようなオーサリングシステムは、ビデオやオーディオなどの各パートのエンコード作業が同時並列的に行えるため、作業効率が非常に良い。
【０００６】
図２１は、図２０に例示したオーサリングシステムにおける、従来のビデオエンコードシステムの構成例を示している。
【０００７】
スーパーバイザ１０３は、ビデオエンコードシステムの全体を管理するものであり、ビデオ，オーディオ，メニューなどの各エンコードシステムにエンコード条件を与え、エンコード結果の報告を受ける。この例では、ファイル「v.enc 」によってビデオエンコード条件が指定され、ビデオエンコーダ側からはエンコード結果のビットストリームが書き込まれたＲＡＩＤ１０４上のアドレス「v.adr 」と、ビットストリームをマルチプレックスする際に必要なデータ「vxxx.aui」が報告される。
【０００８】
主コントローラ１１１は、ネットワーク１０２を介して接続されるスーパーバイザ１０３との間の通信により、このビデオエンコードシステム全体の動作を制御する。
【０００９】
具体的には、主コントローラ１１１は、グラフィカルユーザーインターフェース（ＧＵＩ：Graphical User Interface）部１１４の管理により、スーパーバイザ１０３からの制御を受け付けると共に、オペレータの操作を受け付け、このＧＵＩ部１１４により管理されるビットアサイン部１１５，エンコーダコントロール部１１６，ＶＴＲコントロール部１１７により、エンコーダ１１２，ビデオテープレコーダ（ＶＴＲ）１１０の動作を制御する。これにより主コントローラ１１１は、スーパーバイザ１０３から通知されたエンコード条件に従って処理対象の素材を符号化処理し、その処理結果をスーパーバイザ１０３に通知する。さらに、主コントローラ１１１は、ＧＵＩ部１１４を介してオペレータの設定を受け付けて、上記の符号化の詳細な条件を変更できるようにされている。
【００１０】
上記の主コントローラ１１１のＧＵＩ部１１４は、ビットアサイン部１１５のビット配分プログラム「BIT_ASSIGN」，エンコーダコントロール部１１６のエンコーダコントロールプログラム「CTRL_ENC」およびＶＴＲコントロール部１１７のＶＴＲコントロールプログラムの３つのプログラムを管理している。
【００１１】
また、ビットアサイン部１１５は、スーパーバイザ１０３から通知されるエンコード条件のファイル「v.enc 」に従って符号化処理の条件をフレーム単位で決定し、この条件による制御データをファイル形式「CTL file」によりコントロール部１１６に通知する。
【００１２】
このとき、ビットアサイン部１１５は、符号化処理におけるビット配分（ビットアサイン）を設定し、さらに設定された条件をオペレータの操作に応じて変更する。さらに、ビットアサイン部１１５は、データ圧縮されたビデオデータＤ２がＲＡＩＤ１０４に記録されると、そのビデオデータＤ２が書き込まれたＲＡＩＤ１０４上のアドレスのデータ「v.adr 」を、後段における多重化処理に必要なデータ量等の情報「vxxx.aui」と共にスーパーバイザ１０３に通知する。
【００１３】
エンコーダコントロール部１１６は、ビットアサイン部１１５から通知される制御ファイル「CTL file」に従ってエンコーダ１１２の動作を制御する。さらに、エンコーダコントロール部１１６は、符号化処理に要する符号化難易度「Difficulty」のデータをフレーム単位でビットアサイン部１１５に通知し、ＲＡＩＤ１０４にビデオデータＤ２が記録されると、その記録アドレスのデータ「v.adr 」，後の多重化処理に必要なデータ「vxxx．aui 」をビットアサイン部１１５に通知する。
【００１４】
ＶＴＲコントロール部１１７は、スーパーバイザ３から通知される編集リストに従ってビデオテープレコーダ（ＶＴＲ）１１０の動作を制御し、所望の編集対象の素材を再生する。
【００１５】
ビデオテープレコーダ（ＶＴＲ）１１０は、主コントローラ１１１を介してスーパーバイザ１０３から通知される編集リストに従って、磁気テープに記録されたビデオデータＤ１を再生してエンコーダ１１２に出力する。
【００１６】
エンコーダ１１２は、スーパーバイザ１０３から主コントローラ１１１を介して通知される条件に従って動作を切り換え、ＶＴＲ１１０から出力されるビデオデータＤ１を、ＭＰＥＧ（Moving Picture Experts Group）の手法により圧縮符号化する。
【００１７】
このとき、エンコーダ１１２は、符号化処理の結果を主コントローラ１１１に通知し、主コントローラ１１１は、そのデータ圧縮における符号化の条件を制御し、発生するビット量を制御する。これにより、主コントローラ１１１は、データ圧縮により発生するビット量をフレーム単位で把握できる。
【００１８】
また、エンコーダ１１２は、２パスエンコードにおける事前のエンコード条件設定の処理時（仮エンコード時）には、単にビデオデータＤ１をデータ圧縮して処理結果を主コントローラ１１１に通知するだけであるが、最終的なデータ圧縮処理時（本エンコード時）には、圧縮処理されたビデオデータＤ２をＲＡＩＤ１０４に記録し、さらにそのデータが記録されたアドレス，データ量等を主コントローラ１１に通知する。
【００１９】
モニタ装置１１３は、エンコーダ１１２によりデータ圧縮されたビデオデータＤ２をモニタできるように構成される。このビデオエンコードシステムでは、モニタ装置１１３により、オペレータがデータ圧縮処理の結果を必要に応じて確認する、いわゆるプレビューを行うことができる。そして、オペレータが、このプレビュー結果に基づいて主コントローラ１１１を操作して、符号化の条件を詳細に変更できるようにされている。
【００２０】
前述したように、いわゆるＤＶＤなどのパッケージメディアには、ビデオデータの圧縮方式としてＭＰＥＧ（Moving Picture Experts Group）が採用されている。
【００２１】
ＭＰＥＧは、動き補償予測による時間方向の冗長度を除去することによりデータ圧縮する方式であり、フレーム内だけで符号化されるＩ（Intra ）ピクチャ，過去の画面から現在を予測して符号化されるＰ（Predictive）ピクチャ，過去の画像と未来の画像とから現在を予測して符号化されるＢ（Bidirectionally Predictive）ピクチャの３種類の符号化画像が用いられる。
【００２２】
また、これらの画像は、Ｉピクチャを必ず１つ含むまとまりであるＧＯＰ（Group of Pictures ）とされる。
【００２３】
次に、従来の２パスエンコード作業について、図２０に例示したビデオエンコードシステムの構成を参照しながら説明する。
【００２４】
図２２は、図２１に例示した従来のビデオエンコードシステムにおける、２パスエンコードの基本的な処理手順を示している。
【００２５】
まず、ステップＳ５１で、スーパーバイザ１０３からネットワーク１０２を経由して、ビデオ情報に割り当てられるビット総量や最大レートなどのエンコード条件「v.enc 」が与えられ、エンコーダコントロール部１１６はこのエンコード条件に従って設定される。
【００２６】
次に、ステップＳ５２で、エンコーダコントロール部１１６が、エンコーダ１１２を使ってエンコード素材の符号化難易度（Difficulty）を測定する。このとき、素材の各画素のＤＣ値や動きベクトル量ＭＥも併せて測定される。そして、これらの測定結果に基づいてファイルが作成される。
【００２７】
符号化難易度の実際の測定は、以下のように行われる。
【００２８】
エンコード素材となるビデオ情報は、マスターテープであるディジタルビデオカセットからＶＴＲ１１０により再生される。
【００２９】
エンコーダコントロール部１１６は、エンコーダ１１２を介して、ＶＴＲ１１０により再生されたビデオ情報Ｄ１の符号化難易度を測定する。ここでは、符号化の際に量子化ステップ数を固定値に設定して発生ビット量が測定される。動きが多く、高い周波数成分が多い画像では発生ビット量が多くなり、静止画や平坦な部分が多い画像では発生ビット量が少なくなる。この発生ビット量の大きさが符号化難易度とされる。
【００３０】
次に、ステップＳ５３では、ステップＳ５１で設定されたエンコード条件に従ってステップＳ５２で測定された、各ピクチャの符号化難易度の大きさに応じて、エンコーダコントロール部１１６が、ビットアサイン部１１５内のビット配分計算プログラム「BIT_ASSIGN」を実行し、割り当てビット量（ターゲット量）の配分計算を行う。
【００３１】
そして、上記のビット配分計算の結果を使って仮エンコードを行い、ステップＳ５４で、エンコーダ１１２に内蔵されているローカルデコーダ出力の画質によって、本エンコードを実行するかどうかをオペレータに判断させるようにする。実際には、上記のビット配分によるビットストリームをＲＡＩＤ４に出力しないで、オペレータが任意の処理範囲を指定できるモードであるプレビユー（Preview ）モードで画質が確認される。
【００３２】
そして、ステップＳ５５で、画質評価が行われ、画質に問題がある場合（ＮＧ）にはステップＳ５６に進み、問題がある部分のビットレートを上げたりフィルターレベルを調整するといった画質調整のためのカスタマイズ作業が行われた後に、ステップＳ５７でビット配分再計算が実行される。
【００３３】
その後、ステップＳ５４に戻り、カスタマイズされた部分がプレビューされ、ステップＳ５５で画質が確認される。ここで、全ての部分の画質が良好であればステップＳ５８に進み、エンコーダ１１２によって、ステップＳ５７で再計算されたビット配分による素材全体についての最終的なエンコード処理（本エンコード）が実行される。
【００３４】
一方、ステップＳ５５で、画質に問題がないと判断された場合には、そのままステップＳ５８に進み、エンコーダ１１２により、ステップＳ５３で計算されたビット配分による本エンコードが実行される。
【００３５】
そして、ステップＳ５９で、エンコード結果であるビットストリームがＳＣＳＩ（Small Computer System Interface ）等を介してＲＡＩＤ１０４に書き込まれる等の後処理が行われ、２パスエンコード処理が終了する。
【００３６】
ステップＳ５８におけるエンコードの実行後、ビデオエンコーダコントロール部１１６は、上述したようなエンコード結果の情報をネットワーク１０２経由でスーパーバイザ１０３に報告する。
【００３７】
なお、この図２２の各ステップのうち、ステップＳ５２，ステップＳ５４およびステップＳ５８を除く各ステップの処理は、オフラインで行われる。
【００３８】
この一連の作業工程において、エンコード素材を１本のビデオテープに記録し切れない場合には、複数のロール（テープ）に亘って記録されることになる。このテープの入れ換え作業のため、連続してエンコードを行うことができない。
【００３９】
また、マルチアングルの場合には、その部分のタイムコードはアングルブロック間で同じなので、この場合も連続してエンコードすることができない。このような、エンコード作業を一旦中断しなければならない処理単位をエンコードユニットＥＮＣＵ(Encode unit) と定義する。
次に、上述したような２パスエンコード作業におけるビット配分計算について説明する。
【００４０】
まず、エンコード結果が蓄積されるパッケージメディアの記録容量のうちのビデオに割り当てられたビット総量「QTY_BYTES 」と最大ビットレート「MAXRATE 」とが、オーサリングシステムから指定される。これに対して、最大ビットレート以下になるように制限を加えられた総ビット数「USB_BYTES 」を求め、その値から「GOP header」に必要なビット数「TOTAL_HEADER」を引いた値と全体のフレーム総数から、ターゲット数の総和の目標値となる「SUPPLY_BYTES」を算出する。そして、この「SUPPLY_BYTES 」の大きさに収まるように、各ピクチャへの割り当てビット量（以下ターゲット(target)量という。）が配分される。
【００４１】
図２３は、図２２のステップＳ５３における、上記のビット配分計算の処理手順の一具体例を示している。
【００４２】
まず、ステップＳ６１で、上述したようにスーパーバイザから送られるビット総量「QTY_BYTES 」と最大ビットレート「MAXRATE 」が入力される。
【００４３】
次に、ステップＳ６２で、図２２のステップＳ５２で作成された符号化難易度（Difficulty）の測定結果のファイルが読み込まれる。
【００４４】
次に、ステップＳ６３で、符号化難易度と共に測定された各画像のＤＣ値や動きベクトル量ＭＥの大きさのパラメータの変化量から、シーンが変化するポイントが検出される。
【００４５】
図２４は、このようなシーンチェンジ指定されたフレームの処理を示している。
【００４６】
符号化難易度（Difficulty）測定の際に併せて測定される、各画像のＤＣ値や動きベクトル量の大きさなどのパラメータの変化量から、シーンが変化するポイントを見つけることが可能である。これにより、図２４に示すように、シーンチェンジとして検出されたＰピクチャをＩピクチャに変更して、画質改善を図ることができる。なお、ここではフレーム数Ｎ＝１５の場合を例示している。
【００４７】
次に、ステップＳ６４では、チャプター（CHAPTER ）境界処理が行われる。ディスク再生装置でのチャプターサーチ時には、再生されるピクチャが、特定されないピクチャからジャンプしてくる。その場合でも再生画像が乱れないようにするため、このチャプタ境界処理によって、チャプターの位置が必ずＧＯＰの先頭になるようにピクチャタイプが変更されたり、ＧＯＰ長が制限される。
【００４８】
図２５は、このようなチャプタ(CHAPTER )指定されたフレームの処理、すなわち、セル（CELL）境界の処理を示している。
【００４９】
そして、ステップＳ６５では、上記の一連の作業の結果として変更された、Ｉピクチャ，Ｐピクチャ，Ｂピクチャなどのピクチャタイプに合わせて符号化難易度（Difficulty）の値が補間／補正される。
これは、いわゆるＤＶＤなどの記録媒体では、１ＧＯＰのデコード時に、表示される最大のフィールド数が制限されていることから、ピクチャタイプの変更に伴ってＧＯＰ構造が変化したことにより１ＧＯＰの長さがこの制限を越えることがあるためである。そのような場合には、制限を満たすように、ＰピクチャをＩピクチャに変更してＧＯＰ長が短くされるＧＯＰ制約処理が行われる。
【００５０】
次に、ステップＳ６６では、各エンコードユニット（ＥＮＣＵ）ごとに、ビット量が配分される。
【００５１】
次に、ステップＳ６７では、ステップＳ６５における補間／補正処理によって得られた符号化難易度、およびエンコードされる素材全体に与えられたビット数「SUPPLY_BYTES」に応じて、まず各ＥＮＣＵごとにビットが配分(supply_bytes[encu_nb] )し、それがターゲットビット（Target bit）量の総和の目標値とされる。その後、各ＥＮＣＵごとに、その目標値に応じて各ピクチャ単位のビット配分が実行される。
【００５２】
そして、ステップＳ６８でエンコード結果のビットストリームを書き込む際のＲＡＩＤのアドレス（ADDRESS ）が計算された上で、ステップＳ６９でエンコーダ用のコントロールファイルが作成されて一連の処理が終了する。
【００５３】
上記のような手順により、素材の符号化難易度（Difficulty）および素材全体に与えられたビット数「SUPPLY_BYTES」に応じて、各ピクチャごとのターゲットビット数が計算され、エンコーダ用のコントロールファイルが作成される。
【００５４】
以下では、このようなビット配分の手順について、図２６に示す、素材がいわゆるアングルブロックを含む場合のビット配分例を参照しながら、さらに詳しく説明する。なお、このマルチアングルについての詳細は後述する。
【００５５】
図２７は、シームレスアングル部分に対する重み係数が考慮されたビット配分の基本的な手順を示している。
【００５６】
まず、ステップＳ７１で、パッケージメディアの記録容量のうちのビデオに割り当てられたビット総量「QTY_BYTES 」がスーパーバイザから取得される。
【００５７】
次に、ステップＳ７２では、このビット総量「QTY_BYTES 」に対して、エンコード条件として指定された総ビット数「USB_BYTES 」が求められる。
【００５８】
0003837889.tif 000002
ここで、ビデオ素材のフォーマットがＮＴＳＣ方式である場合には KT = 1/8(bits)/30(Hz)，ＰＡＬ方式である場合には KT = 1/8(bits)/25(Hz)である。また、「total_frame_number」はエンコードされる素材のフレーム総数，「min(s,t)」はｓ，ｔのうちの小さい方を選択する関数である。
【００５９】
次に、ステップＳ７３では、この「USB_BYTES 」から「GOP header」に必要なビット数の総和「TOTAL_HEADER 」を引いた値「ΣTOTAL_SUPPLY_BYTES 」が求められる。なお、総和Σは、各記録層についての和を意味している。
【００６０】
また、ステップＳ７４では、全体のフレーム総数「total_framenb 」から、シームレスアングル部分の「ALL_ANGLE_BYTES 」が計算される。ここで、最初にシームレスアングルブロックにビット配分するのは、シームレスアングルブロックには他の部分よりも厳しい制約があり、より多くのビット量が必要なことと、対応するシームレスアングルブロックに同一量のビットが割り当てられることが必要なためである。
【００６１】
各エンコードユニット（ＥＮＣＵ）のフレーム数を「ENCU_frame[encu_nb] 」とすると、
0003837889.tif 000003
このとき、対応するシームレスアングルブロックのフレーム数は互いに同じであるため、各々の「supply_bytes」も必ず同じになる。
【００６２】
次に、ステップＳ７５では、「USB_BYTES 」から「ALL_ANGLE_BYTES 」を引いた値に対し、アングルブロックではない部分の各ＥＮＣＵの「supply_bytes」、すなわち「ALL_SUPPLY_BYTES」が算出される。このとき、単純にフレーム数の比率でビット分配すると、ＥＮＣＵ間での画像の難しさにばらつきがある場合に最適なビット割当ができないため、各ＥＮＣＵでの符号難易度の総和「ENCU_diff[encu_nb]」を求めておき、ステップＳ７６ではその比率でビット量が分配される。
【００６３】
その際、ユーザーが、ＥＮＣＵ間のビット配分を、素材の段階で意識的に操作したい場合がある。例えば、映画素材の前にコマーシャルなどをいれる場合に、その部分だけはビットレートを意識的に上げたい場合などが考えられる。このような要求は、各ＥＮＣＵの符号化難易度の総和に対して、重み係数「e_weight」を設定することで実現される。
【００６４】
この重み係数は、例えば、以下の表１に示されるようなファイルで設定され、ビット計算の実行時にロードされる。
0003837889.tif 000004
【００６５】
【表１】
0003837889.tif 000005
以下では、ビット配分計算の例として、まずＧＯＰ単位にビット量を配分し、その後に各ＧＯＰ内で各ピクチャの難しさ「GOP_DIFFICULTY」に応じたビット配分を行うものとして説明する。各ＧＯＰごとのDifficultyの和である「GOP_diff」に応じて、エンコードする際のＧＯＰ単位のビット割り当て量「GOP_target」が配分される。
【００６６】
図２８は、ＧＯＰごとの符号化難易度の和「gop_diff」とエンコード時のＧＯＰ単位のビット割当て量「gop_target」とを変換するための、最も簡単な関数の例を示している。
【００６７】
この例では、「GOP_target」をY  ， 「GOP_diff」 をX とし、
DIFFICULTY_SUM = ENCU_diff[encu_nb]
として、
Y = AX + B
という形で表される評価関数が用いられる。また、全てのピクチャの「Difficulty」の総和「ENCU_diff[encu_nb]」が用られる。
B = GOP_MINBYTES                                          ---- [7]
Σy =  A×Σx + B×n
ここで、Σy = supply_bytes[encu_nb]，Σx = ENCU_diff[encu_nb]，ｎはＧＯＰの総数である。よって、
A = (supply_bytes[encu_nb] - B×n)/ ENCU_diff[encu_nb]
となる。
【００６８】
GOP_target = A × GOP_diff + B                            ---- [8]
その後、各ＧＯＰ内で各ピクチャの符号化難易度「gen_bit[k]」に応じたビット配分を行う。この「gen_bit[k]」は、仮エンコードによって測定されたｋ番目のフレームの符号化難易度の値であり、大きいほど画像が難しいことを表す。ＧＯＰ内での各ピクチャの配分は Difficulty の大きさに比例させた場合には、各ピクチャのターゲット量は以下の式で求められる。
【００６９】
target(k) = GOP_TARGET × gen_bit[k]/GOP_diff             ---- [9]
(1 ≦ k ≦ GOP 内の picture 数）
この場合、素材の中に極端に難しい（すなわち、「GOP_diff」が大きい）ピクチャがあると、非常に大きい「gop_target」量になってしまい、システムにおいて許容されている最大レートを越えてしまうため、「GOP_MAXBYTES」といった固定量でリミッタをかけることが必要である。また、最小のターゲット量も「GOP_MINBYTES」により同様に制限される。
【００７０】
ＭＰＥＧによるビデオのエンコード時には、仮想デコーダのバッファ残量を考慮しながらビット配分することが義務付けられている。この仮想バッファ残量の計算をＶＢＶ(Video buffering verifier) という。
【００７１】
以下に、この仮想バッファ残量の計算方法について説明する。
【００７２】
図２９は、ＶＢＶ計算方法を示している。
【００７３】
記録媒体がいわゆるＤＶＤの場合、バッファサイズ「VBV MAX 」(1.75Mbits )に対して、ｋ番目のピクチャのバッファのスタート点を「Occupancy_up(k) 」，ｋ番目のピクチャのターゲット量を「target(k) 」とすると、ピクチャにビットを供給した後のバッファ残量「Occupancy_down(k) 」は[7] 式で表される。
【００７４】
このバッファには、デコーダのピックアップからビデオのデータ量に応じたビットレートのデータ量「SYSTEM_SUPPLY 」が蓄積される。この供給後のバッファ残量「Occupancy_up(k+1) 」は [8] 式で表される。
【００７５】
この供給量は、図中の右上にあがる量に相当する。供給されるビットレートが大きいほど傾きは大きくなり、バッファにデータがたまりやすくなる。バッファがいっぱいになった場合には、ピックアップからバッファへの供給がストップするため、バッファのオーバーフローに関しては考慮する必要はない。このことは、ある設定値ちょうどに制御する必要はなく、設定値以上になるように制御すれば良いことを意味している。
【００７６】
逆に、各ピクチャのデータ量が大きいと、バッファにたまったデータは減少する。このバッファ残量が一定値以下にならないようにターゲットビット量を計算する。この計算の最初の「Occupancy_up(0) 」は固定値（この例ではVBV MAX×2/3 )からスタートする。
【００７７】
以下の「Occupancy_up 」はグラフ上の各ピクチャの上側のポイント、「Occupancy_down 」はグラフ上の各ピクチャの下側のポイントを意味している。
【００７８】
Occupancy_up(0) = VBV MAX × 2/3                         ---- [10]
Occupancy_down(k) = Ouucpancy_up(k) - target(k)          ---- [11]
Occupancy_up(k+1) = Ouucpancy_down(k) + SYSTEM_SUPPLY    ---- [12]
SYSTEM_SUPPLY = MAXRATE(bps)×KT                         ---- [13]
次に、以上説明したような、ＧＯＰ単位でのターゲットビット配分計算を行った例を示す。
【００７９】
図３０は、評価関数と「GOP_MAXRATE 」制限を考慮して求めたターゲット量に対して、ＶＢＶバッファ計算を行った場合のターゲットビット配分例を示している。
【００８０】
図３０中の１番目，４番目，７番目のピクチャは、ＶＢＶバッファの下限である「VBV MIN 」の値を下回っている。そこで、ＶＢＶが「VBV MIN 」を下回ったピクチャを含むＧＯＰのターゲット量を削減させる。
【００８１】
ＧＯＰ内でＶＢＶ制限を加える前のターゲット量でＶＢＶ計算を実行したときの「Occupancy 」の最小値を「Occ_min 」とすると、調整量は以下の式で表される。ここで、制限を行うスタート点「kstart」は、「Occupancy_up(k) 」が基準値「VBVLINE 」とされる。この「VBVLINE 」は、例えば、 VBV MAX×(3/4) 以上のｋの値で、このときの「Occupancy_up(k) 」の値を「Occ_start 」とする。
【００８２】
Occupancy_min ＜ VBV MIN の時
r = (Occ_start - VBV MIN)/(VBVSTART - Occ_min)           ---- [14]
各ターゲットに対して
target(j) = target(j) × r （kstart ≦ j ≦ k)
とする。
【００８３】
図３１は、上記のようなＶＢＶ制限処理を行った後のターゲットビット配分例を示している。
【００８４】
ＶＢＶ制限処理前には、ＶＢＶバッファの下限である「VBV MIN 」の値を下回っていた１番目，４番目，７番目のピクチャも、この下限値を下回らないように調整されている。
【００８５】
このようにして求められたターゲット量を用いて作成されたコントロールファイルによりエンコード処理を行うことで、素材の画像の難しさに応じて、簡単な画像には少ないビット量が割り当てられ、難しい画像により多くのビット量が割り当られるようになるため、演奏時間の中で画質のばらつきが少ない可変レートエンコーディングが実現される。
【００８６】
【発明が解決しようとする課題】
ところで、ＤＶＤ（デジタルビデオディスク）は、片面に２層の記録層を有するディスク、および両面に計４層の記録層を有するディスクのフォーマットが規定されている。
【００８７】
各記録層に記録されるビデオデータに対して、どの程度のバイト数を割り当てるかは、ディスク全体の構成に関わるため、スーパーバイザ側からエンコード条件として指定される。スーパーバイザ側でエンコード条件を決める際には、各記録層に記録される予定の素材の画像の難しさの違いは分からないため、例えば、単純に各記録層に記録されるフレーム数の比率を用いてバイト数を分配するしかない。
【００８８】
しかし、実際のエンコードでは、各記録層に記録される素材の画像にはばらつきがあるため、このようにバイト数が一律に配分された場合には、記録層の間に画質の差が生じることになる。
【００８９】
例えば、第１層の演奏時間と第２層の演奏時間とが同じである場合には、同じ量のバイト数がエンコード条件として指定される。ところが、第１層には簡単な静止画像が多く含まれ、第２層には情報量の多い画像が多く含まれる場合には、第１層の画質と第２層の画質との間に大きな差が生じることとなり、ディスク再生装置で記録層間を切替えて再生させた場合に違和感を生じさせるという問題がある。
【００９０】
図３２は、２層の記録層を有するいわゆるＤＶＤなどの記録媒体に対して、従来方式によりビット配分された例を示している。
【００９１】
エンコードユニットＥＮＣＵ１とＥＮＣＵ３とは、符号化難易度の和およびフレーム数が全く同じであり、同じエンコード条件であるにも関わらず、各記録層「Layer 1」と「layer 2」との間でのビット配分が変わってしまっている。この条件でエンコードを実行すると、ＥＮＣＵ１とＥＮＣＵ３との間には明らかな画質の差が生じてしまう。
【００９２】
図３３は、図３２に示す例における各エンコードユニット（ＥＮＣＵ）に対するビット配分結果をまとめて示している。
【００９３】
このような従来方式における記録層の間の画質の差は、エンコード後の画質評価によって始めて確認できるため、画質が望ましくないと判断された場合には、その時点でエンコード条件が変更されることになる。しかし、エンコード条件をどの程度調整してよいかは分からないため、カットアンドトライによる作業となり、効率が非常に悪いという問題がある。
【００９４】
次に、エンコード素材が、いわゆるアングルブロックを含む場合について説明する。
【００９５】
ＤＶＤ（ディジタルビデオディスク）におけるアングル再生とは、図３４に示すように、デコーダ（再生装置）側で、ユーザーが、同一の被写体の同じ時間における画像を、複数の角度から再生できるようにするものであり、切替時に再生画像が一旦中断する（黒などが挿入される）ことを許すノンシームレスアングルと、切替時に乱れることなく（シームレスに）つながるシームレスアングルとがある。ここでは、３つの角度からの画像である「Angle 1」，「Angle 2」，「Angle 3」 が切替られる場合を例示している。
【００９６】
図３５は、アングルブロックを含むデータの一例を示している。
【００９７】
この図中で、各エンコードユニットＥＮＣＵ２，ＥＮＣＵ４，ＥＮＣＵ５は、アングルの組合せを意味している。シームレスアングルの場合には、アングルの組合せであるＥＮＣＵ２，ＥＮＣＵ４，ＥＮＣＵ５において、ピクチャ数とＧＯＰ構造とが同じであるようにされる。
【００９８】
再生時にアングルを切替えると、再生装置の再生ピックアップが所定のアングルのデータの位置に移動し、データの読み出しを開始する。再生時のアングル切替えにかかるディレイを少なくするためには、この移動距離が小さいことが必要であるため、アングルブロックのデータは、ディスク上での配置がインターリーブ処理されている。インターリーブされる単位はＭ個のＧＯＰ単位で、Ｍの値はエンコード条件によって異なる。
【００９９】
図３６は、このインターリーブ処理の一例を示している。
【０１００】
このように、データをユニットごとにインターリーブする作業は、個々のアングルごとのインターリーブされるデータ量が異なる場合には、非常に複雑になり、アングル数が多いと処理時間も指数関数的に増加するため問題となる。
【０１０１】
そこで、図３６（ａ）に示すように、インターリーブされる単位内の各アングルのデータ量が、エンコード後の出力データの段階で同じになるようにビットを割り当てれば、図３６（ｂ）に示すようなダミーデータの挿入（スタッフィング）は不要となり、アングル部分でのビデオレートを上げることができる。よって、図３６（ｃ）に示すように、アングル部分のビット配分時に対応する各ＧＯＰに同じターゲット量を割り当てる。つまり、同一のシームレスアングルブロックには同じビット量を割り当てることが望ましい。
【０１０２】
図３７は、上記のようなシームレスアングルブロックの処理例を示している。
【０１０３】
再生装置側でシームレスに再生するには、ＶＢＶバッファ残量の境界での最後のピクチャのＶＢＶのバッファ残量の値と、次のスタート点のピクチャのＶＢＶのバッファ残量の値が、一定値以上に（例えば、VBV MAX * 2/3) なるように制御すればよい。
【０１０４】
図３８（ａ）は、ＶＢＶバッファ残量の制限を加えたエンコードを行った例を示している。また、図３８（ｂ）は、このエンコード結果をデコーダ（再生装置）で再生したときのバッファ残量を示している。
【０１０５】
このように、デコーダでのバッファ残量は、エンコード時のＶＢＶ計算値よりも必ず大きくなる。デコーダでは、バッファがいっぱいになった場合には、ピックアップからバッファへの供給がストップするため、バッファのオーバーフローに関しては考慮する必要はない。したがって、エンコード時にこのような条件で制限を加えれば、切替時にバッファが破綻することがないため、シームレスな切替えが補償される。
【０１０６】
また、シームレスアングルでは、ＧＯＰ単位で相互に切替えられることを想定しているため、図３９に示すように、全てのＧＯＰの最初と最後のＶＢＶの値は、一定値以上になるように制御されることになる。
【０１０７】
このように、シームレスアングルブロックは、通常のブロックに対して制約が多いため、同じビットレートを割り当てても同等の画質を得ることが困難である。そこで、シームレスアングルブロックへのビット配分を優先して行なうことが望ましい。
【０１０８】
ところが、いわゆるＤＶＤなどの記録媒体の複数の記録層に記録される、シームレスアングルブロックを含むビデオデータに対して、各記録層ごとに閉じたビット配分が実行されると、記録層によってはシームレスアングルブロックに十分なレートが割り当てられない場合がでてくる。エンコード後に十分な画質が得られなかった場合には、条件を変更して、エンコード作業を最初からやり直さなければならなくなる。
【０１０９】
ＤＶＤのようなパッケージメディアのディスク作成のためのエンコード作業は、オーディオ、ビデオ、サブタイトル、メニューなどの各パートの作業が並列して行われるため、ビデオのエンコード条件に修正が必要になった場合には、例えばオーディオのエンコードなどのビデオ以外の工程にも影響が及ぶため、ビデオ以外の工程も最初からやり直さなければならなくなる。このように、ビット配分の適否の判定が遅れるほど、エンコード作業のやり直しに伴う多くの無駄な工数がかかってしまう。
【０１１０】
本発明は、このような問題を解決するために行われたものであり、複数の記録領域に記録される圧縮ビデオデータに対してビットの配分を行う際に、与えられたエンコード条件下で、各記録領域の間の画質に大きな差が無いようにビット配分できるかどうかを評価し、画質が定められた条件を満たさない場合には、そのばらつき量を最適もしくは許容できるようにするエンコード条件の変更内容をオペレーターに提示できる機能を有する２パスのエンコード方法および装置を提供することを目的とする。
【０１１１】
【課題を解決するための手段】
上記の課題を解決するために提案する本発明のエンコード方法は、ビデオ素材を圧縮符号化して複数の記録領域に記録するエンコード方法において、本エンコードに先立つプリエンコード工程と、与えられたエンコード条件下で、各記録領域の間の画質の差を許容できるビット配分の可否を評価する評価工程と、上記各記録領域の間の画質の差が許容できるビット配分の適正範囲を提示する提示工程とを有し、上記与えられたエンコード条件または上記提示された適正範囲のビット配分により本エンコードを行うことを特徴とするものである。
【０１１２】
また、上記の課題を解決するために提案する本発明の別のエンコード方法は、複数の記録領域にシームレスアングルブロックを含むエンコードを行うエンコード方法において、各記録領域ごとに与えられる上限が考慮されたバイト数の総和および総フレーム数からエンコードされた素材の平均レートを求める工程と、
重み係数を考慮したフレーム数の比率に従って、上記各記録領域に記録されるべきシームレスアングルブロックに割り当てられるバイト数を、上記各記録領域から確保する工程と、上記シームレスアングルブロックに割り当てられるバイト数が差し引かれた残りのバイト数を、上記シームレスアングルブロック以外のブロックに重み係数を考慮した符号化難易度の和の比率で配分する工程とを有することを特徴とするものである。
【０１１３】
また、上記の課題を解決するために提案する本発明のエンコード装置は、ビデオ素材を圧縮符号化して複数の記録領域に記録するエンコード装置において、本エンコードに先立ってプリエンコードを行う手段と、各記録領域の間の画質の差を許容できるビット配分の可否を評価する評価手段と、上記各記録領域の間の画質の差が許容できるビット配分の適正範囲を提示する提示手段とを備え、上記与えられたエンコード条件または上記提示された適正範囲のビット配分により本エンコードを行うことを特徴とするものである。
【０１１４】
また、上記の課題を解決するために提案する本発明の別のエンコード装置は、複数の記録領域にシームレスアングルブロックを含むエンコードを行うエンコード装置において、各記録領域ごとに与えられる上限が考慮されたバイト数の総和および総フレーム数からエンコードされた素材の平均レートを求める手段と、
重み係数を考慮したフレーム数の比率に従って、上記各記録領域に記録されるべきシームレスアングルブロックに割り当てられるバイト数を、上記各記録領域から確保する手段と、上記シームレスアングルブロックに割り当てられるバイト数が差し引かれた残りのバイト数を、上記シームレスアングルブロック以外のブロックに重み係数を考慮した符号化難易度の和の比率で配分する手段とを備えることを特徴とするものである。
【０１１５】
上記の本発明によれば、複数の記録領域に記録される圧縮ビデオデータに対してビットの配分を行う場合に、各記録領域の間に画質の差が生じにくく、早い時点でエンコード条件の見直しや変更を行うことができるエンコード方法およびエンコード装置を提供できる。
【０１１６】
【発明の実施の形態】
以下に、本発明の好ましい実施の形態について図面を参照しながら説明する。
【０１１７】
なお、本発明の具体的な説明に先だって、以下の説明に用いる用語について説明する。
【０１１８】
encu_max          ：ENCU の個数
layer_max         ：記録層の個数
angle_num_max     ：アングルブロックに含まれるアングル数
angle_block_max   ：アングルブロック数
gen_bit[k]        ：仮エンコードによって測定されたｋ番目のフレームの符号化難易度（Difficulty）の値。大きいほど画像が難しいことを示す。
ENCU_mode[encu_nb]：対象となるＥＮＣＵがシームレスアングルであるかどうかを示す情報。シームレスアングルのとき「1」,それ以外のとき「0」。
ENCU_angle[encu_nb] ：対象となるＥＮＣＵがどのアングルブロックに属するかどうかを示す情報。シームレスアングル以外のときは「0」となる。
ENCU_weight[encu_nb]：対象となるシームレスアングルブロックのビット配分時の重み係数
ANGLE_weight[angle_blk] ：対象となるシームレスアングルブロックのビット配分時の重み係数。同一のアングルブロックでのビット配分時の重みは同じ値にするため、該当するアングルブロックの「ENCU_weight 」の平均値とする。（最大値、最小値でも良いが、この例では平均値とする。）
0003837889.tif 000006
ENCU_diff [encu_nb]： 対象となるＥＮＣＵの符号難易度
(gen_bit[k])× ENCU_weight[encu_nb] の総和
ENCU_frame[encu_nb]： 対象となるＥＮＣＵのフレーム数の総和
ENCU_layer[encu_nb]： 対象となるＥＮＣＵがどの記録層に属するかを示す情報。 0 ≦ ENCU_layer[encu_nb] ≦ layer_max
QTY_BYTES[layer_nb]： 対象となる記録層のスーパーバイザから指定された利用可能なバイト数
USB_BYTES[layer_nb]： 対象となる記録層での上限値を考慮した利用可能なバイト数
QTY_change[layer_nb]：対象となる記録層で「QTY_BYTES 」が上限値を越えていたかどうかの情報。変更された場合「１」，変更されていない場合「０」。
【０１１９】
TOTAL_HEADER[layer_nb]：対象となる記録層のＧＯＰヘッダーの総バイト数
TOTAL_FRAME [layer_nb]：対象となる記録層の総フレーム数
SUM_DIFF[layer_nb]    ：対象となる記録層のシームレスアングル以外の 重み係数を掛けた符号化難易度の総和
(ENCU_mode[encu_nb] == layer_nb かつ ENCU_mode[encu_nb] == 0 ) を満たす encu_nb に対して
SUM_DIFF[layer_nb] = ΣENCU_diff[encu_nb]                  ---- [16]
ここで、「＝」は代入を意味しているのに対し、「==」はＣ言語等で用いられるのと同様に等しいかどうかの条件判定を意味するものである。
【０１２０】
ANGLE_WFRAME[layer_nb]：対象となる記録層の重み係数の反映されたシームレスアングルだけの総フレーム量
(ENCU_mode[encu_nb] == layer_nb かつ ENCU_mode[encu_nb] > 0 ) を満たす「encu_nb」に対して
0003837889.tif 000007
SUM_WFRAME：シームレスアングルの重み係数の反映された総フレーム量
SUM_WFRAME = ΣENCU_frame[encu_nb] (ただし、ENCU_mode[encu_nb] == 0 を満たす encu_nb) + ΣANGLE_WFRAME[layer_nb]                   ---- [18]
CHECK_USB_  [layer_nb]：対象となる記録層での利用可能なバイト数の適正値
CHECK_SUPPLY[layer_nb]：対象となる記録層でのシームレスアングル以外の利用可能なバイト数の適正値
CHECK_DIFF  [layer_nb]：対象となる記録層のシームレスアングル以外の Difficulty の総和の適正値
CHECK_FRAME [layer_nb]：対象となる記録層でのシームレスアングル以外の総フレーム数の適正値
supply_bytes[encu_nb] ：対象となる ENCU に配分されたバイト数
まず、本発明の実施の形態に係るエンコード方法における、各エンコードユニット（ＥＮＣＵ）へのビット配分方法について、複数の記録領域を有する記録媒体であるＤＶＤなどの記録媒体の複数の記録層に記録される圧縮ビデオデータに対してビット配分を行う場合を例として説明する。
【０１２１】
本発明の実施の形態に係るエンコードは、従来の方式を拡張して「QTY_BYTES 」を各記録層に分けて管理する。
【０１２２】
各記録層の最大バイト数を
0003837889.tif 000008
前述したように、シームレスアングルブロックでは、対応するブロック間のビット配分量が、ほぼ同じにされなければならないため、「layer_nb」で示される記録層の各エンコードユニットＥＮＣＵへのビット配分は、シームレスアングルである場合と、それ以外である場合とで分けて行われる。
【０１２３】
すなわち、従来方式では各記録層ごとにシームレスアングルのフレームの比率でビット配分が行われていたが、本発明の実施の形態に係る方式では全ての記録層の「TOTAL_SUPPLY_BYTES」に対して、フレーム数に重み係数を考慮した比率でビット配分が行われる。
【０１２４】
このようにすることで、全ての記録層においてシームレスアングルブロックのレートを同じにできる。また、オペレータがレートを意識的にコントロールしたければ、重み係数を変えることにより実現できる。
【０１２５】
（１）シームレスアングルブロックのＥＮＣＵへのビット配分
（ENCU_layer[encu_nb] == layer_nb かつ ENCU_angle[encu_nb] == 1）
を満たす「encu_nb 」に対して、
0003837889.tif 000009
（２）シームレスアングルブロック以外のＥＮＣＵへのビット配分
（ENCU_layer[encu_nb] == layer_nb かつ ENCU_angle[encu_nb] == 0）
を満たす「encu_nb 」に対して、
0003837889.tif 000010
次に、本発明の具体的な実施例を示す。なお以下では、
Gr_min_limit = 0.9
Gr_max_limit = 1.1
とし、説明の簡略化のために
ENCU_weight[encu_nb] = 1.0
とする。
【０１２６】
図１は、いわゆるＤＶＤなどの記録媒体の２つの記録層「Layer 0 」および「Layer 1 」に記録される、それぞれシームレスアングルブロックを含む圧縮ビデオデータに対して、フレーム数の比率に応じてビット配分される例を示している。
【０１２７】
ここで、「Layer 0 」のＥＮＣＵ（エンコードユニット）２，ＥＮＣＵ４，ＥＮＣＵ５、および「Layer 1 」のＥＮＣＵ７，ＥＮＣＵ９，ＥＮＣＵ１０は、シームレスアングルからなるアングルブロック１およびアングルブロック２である。
【０１２８】
図２は、図１に例示した２つの記録層からなる記録媒体に記録される圧縮ビデオデータに対する、ビット配分の一具体例を示している。
【０１２９】
すなわち、エンコード素材から、オーディオデータやサブタイトルデータなどのデータ量を記録媒体の記録容量から差し引いたデータ量である「QTY_BYTES[0]」および「QTY_BYTES[1]」が、スーパーバイザから与えられる。
【０１３０】
この「QTY_BYTES[0]」および「QTY_BYTES[1]」は、ＤＶＤのフォーマットで規定されている最大レート制限やＶＢＶ制限などの条件を満たさない場合がある。そこで、「QTY_BYTES[0]」および「QTY_BYTES[1]」は、これらの制限を満足するようにレート制限されて「USB_BYTES[0]」および「USB_BYTES[1]」とされる。
【０１３１】
そして、「USB_BYTES[0]」および「USB_BYTES[1]」のヘッダ領域「TOTAL_HEADER[0] 」および「TOTAL_HEADER[1] 」が差し引かれたデータ量が、「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」とされる。
【０１３２】
ここで、上記の「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」ｊは、各記録層のアングル部分に対してはフレーム数の比率で配分され、アングル以外の部分には符号化難易度（Difficulty）の和の比率で配分される。
【０１３３】
つまり、「Layer 0 」のＥＮＣＵ２，ＥＮＣＵ４，ＥＮＣＵ５、および「Layer 1 」のＥＮＣＵ７，ＥＮＣＵ９，ＥＮＣＵ１０に対しては、「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」がフレーム数の比率で配分され、「Layer 0 」のＥＮＣＵ１，ＥＮＣＵ３、および「Layer 1 」のＥＮＣＵ６，ＥＮＣＵ８に対しては、「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」を符号化難易度（Difficulty）の和の比率で配分される。このように配分されたビットが、「SUPPLY_BYTES」とされる。
【０１３４】
図３および図４は、比較のために従来方式によるビット配分例を示している。以下では、この従来方式を参照しながら、本発明によるビット配分方式についてさらに説明する。
【０１３５】
図３は、従来方式により、ＤＶＤなどの記録媒体の２つの記録層「Layer 0 」および「Layer 1 」に記録される、それぞれシームレスアングルを含む対して、フレーム数の比率に応じてビット配分される様子を示している。
【０１３６】
ここで、図３（ａ）中の「Layer 0 」のＥＮＣＵ２，ＥＮＣＵ４、および「Layer 1 」のＥＮＣＵ６，ＥＮＣＵ８は、シームレスアングルからなるアングルブロック１およびアングルブロック２とされる。
【０１３７】
図３（ｂ）に示すように、これらの各記録層ごとに、ヘッダ領域「TOTAL_HEADER[0] 」および「TOTAL_HEADER[1] 」が差し引かれたデータ量が、「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」とされる。
【０１３８】
ここで、上記の「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」は、各記録層のアングル部分に対してはフレーム数の比率で配分され、アングル以外の部分に対しては符号化難易度（Difficulty）の和の比率で配分される。
なお、ここでは説明の簡略化のため、TOTAL_HEADER = 0 としている。
【０１３９】
図４は、図３の例における各エンコードユニット（ＥＮＣＵ）に対するビット配分結果をまとめて示している。
【０１４０】
この例では、アングルブロック１のレートに対して、アングルブロック２のレートが不十分であることが分かる。このように、従来方式によるビット配分では、シームレスアングルブロックにおいて、エンコード制約が厳しいため、レートが低いと満足できる画質が得られないことが非常に多い。
【０１４１】
次に、上記のような問題点を解決するために提案された、本発明の実施の形態に係るビット配分方式について説明する。
図５は、本発明の実施の形態に係る方式により、ＤＶＤの２つの記録層「Layer 0 」および「Layer 1 」に記録される、それぞれシームレスアングルを含む圧縮ビデオデータに対して、フレーム数の比率に応じてビット配分される様子を示している。
【０１４２】
図５（ａ）中の、「Layer 0 」のＥＮＣＵ２，ＥＮＣＵ４、および「Layer 1 」のＥＮＣＵ６，ＥＮＣＵ８は、図３（ａ）と同様のシームレスアングルからなるアングルブロック１およびアングルブロック２とされる。
【０１４３】
そして、図５（ｂ）に示すように、これらの各記録層から、ヘッダ領域「TOTAL_HEADER[0] 」および「TOTAL_HEADER[1] 」が差し引かれたデータ量が、「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」とされる。
【０１４４】
ここで、本発明の実施の形態に係るビット配分方式においては、上記の「TOTAL_SUPPLY_BYTES[0] 」および「TOTAL_SUPPLY_BYTES[1] 」が、最初に、各記録層のアングル部分に対して全体のレートからフレーム数の比率で配分され、次に、アングル以外の部分に対しては符号化難易度（Difficulty）の和の比率で配分される。
なお、ここでも説明の簡略化のため、TOTAL_HEADER = 0 としている。
【０１４５】
図６は、図５の例における、各エンコードユニット（ＥＮＣＵ）に対するビット配分結果をまとめて示している。
【０１４６】
このように、本発明の実施の形態に係るビット配分によれば、例えばＤＶＤの２つの記録層のどちらのアングルブロックのレートも同じにすることが可能となっている。
【０１４７】
ところが、上記のような方法により複数の記録層にビット配分すると、シームレスアングルでない部分に、符号化難易度に応じて配分されるビット量にばらつきが生じることがある。図５，図６に示したビット配分の例でも、調整前の段階では、ＥＮＣＵ３のレートとＥＮＣＵ７のレートとが大きく異なっている。
【０１４８】
このような現象は、スーパーバイザから与えられた「QTY_BYTES 」が適切でなかったために生じるが、スーパーバイザがエンコード条件を決める際には、素材の画像の難しさ（符号化難易度）の情報がまだ得られていないため、最適なエンコード条件を発行できない。
【０１４９】
そこで、このような状況においては、ビデオエンコードシステム側で、各記録層間のビット配分のばらつき量を計算し、所定の規定値を越えている場合には、警告を発し、エンコード条件の再発行を促すことが必要となる。
【０１５０】
図７は、上述した本発明の実施の形態に係るビット配分計算の基本的な手順を示している。
【０１５１】
まず、ステップＳ１でエンコード条件が入力され、ステップＳ２で符号化難易度（Difficulty）パラメータが入力さる。
【０１５２】
次に、ステップＳ３で、符号化難易度と共に測定された各画像のＤＣ値や動きベクトル量ＭＥの大きさのパラメータの変化量から、シーンが変化するポイントが検出され、画質改善のためのピクチャタイプの変更処理などが行われる。
【０１５３】
次に、ステップＳ４では、チャプター（CHAPTER ）境界処理が行われる。再生装置でのチャプターサーチ時には、再生されるピクチャが、特定されないピクチャからジャンプしてくることになる。その場合でも再生画像が乱れないようにするため、ステップＳ５では、このチャプタ境界処理によってチャプターの位置が必ずＧＯＰの先頭になるようにピクチャタイプが変更されたり、ＧＯＰ長が制限される。
【０１５４】
次に、ステップＳ６では、上記の一連の作業の結果として変更された、Ｉピクチャ，Ｐピクチャ，Ｂピクチャなどのピクチャタイプに合わせて、符号化難易度（Difficulty）の値が補間／補正される。
【０１５５】
次に、ステップＳ７では、ステップＳ６における補間／補正処理によって得られた符号化難易度、およびエンコードされる素材全体に与えられたビット数「SUPPLY_BYTES」に応じて、各エンコードユニットＥＮＣＵごとにビット配分が行われる。
【０１５６】
次に、ステップＳ８では、各記録層の間のビット配分量のばらつきが検出される。
【０１５７】
そして、ステップＳ９で、ステップＳ８で検出された記録層間のビット配分のばらつき量が許容できるかどうかが評価され、許容できない（Ｎｏ）場合にはステップＳ１０でワーニング（警告）が表示され、ステップＳ１１でエンコードを続けるかどうかがオペレータにより判断される。そして、ステップＳ１１で、当初のエンコード条件で処理を続けるとされた場合にはステップＳ１２に進む。一方、ステップＳ９で、ステップＳ８で評価された記録層間のばらつき量が許容できる（Ｙｅｓ）場合にはそのままステップＳ１２に進む。
【０１５８】
なお、ステップＳ１１でエンコードを続けないとされた場合には、ステップＳ１５で、ビット配分量などの条件の適正値がオペレータに提示されて、処理が終了される。この場合には、ステップＳ１で入力されるエンコード条件等が見直されて、エンコード条件の適否が評価される。
【０１５９】
ステップＳ１２では、ステップＳ６における補間／補正処理によって得られた符号化難易度、およびエンコードされる素材全体に与えられたビット数「SUPPLY_BYTES」に応じて、各ピクチャごとのターゲットビット（Target bit）数が計算される。
【０１６０】
次に、ステップＳ１３では、エンコード結果が記録される記録媒体のアドレス（ADDRESS ）が計算される。
【０１６１】
そして、ステップＳ１４で、エンコーダ用コントロールファイルが作成されて、ビット配分計算処理が終了する。そして、このコントロールファイルにより最終的なエンコードである本エンコードが実行される。
【０１６２】
次に、上述した各記録層の間でのビット配分のばらつき量を計算するためのアルゴリズムについて説明する。
【０１６３】
いわゆるＤＶＤなどの記録媒体の各記録層に配分されるビット量のばらつき量は、全体のシームレスアングルブロック以外のビット配分量と符号化難易度（Difficulty）の総和の比「Gr_avr 」に対して、各記録層の値が規定値以内であるかどうかにより評価される。
【０１６４】
上記の規定値に入らない場合には、各記録層に記録されるフレーム数はそのままにした場合に配分されるバイト数（「QTY_BYTES 」から「USB_BYTES 」に置き換えられている）の適正範囲が計算される。
【０１６５】
また、これとは別に、ＤＶＤなどの記録媒体の各記録層へのビット配分量を同じにした場合に、各記録層に記録されるフレーム数の適正範囲が計算される。このことは、素材が記録される境界をずらすことを意味している。
【０１６６】
以下では、以上説明した本発明の実施の形態に係るエンコード方法におけるビット配分計算について、さらに具体的に説明する。
【０１６７】
以下の説明では、複数層の場合でのフレーム数もしくはバイト数の適正値の計算は、最初の記録層から順次実行される。
【０１６８】
[STEP １] 「Gr_avr」の計算
0003837889.tif 000011
【０１６９】
[STEP ２] フレーム数固定条件での「USB_BYTES」調整範囲の提示ループ初期化
CHECK_USB_[layer_nb] = USER_BYTES[layer_nb]              ---- [27]
CHECK_SUPPLY[layer_nb] = ALL_SUPPLY_BYTES[layer_nb]      ---- [28]
CHECK_DIFF  [layer_nb] = SUM_DIFF[layer_nb]              ---- [29]
ただし、0 ≦ layer_nb ≦ layer_max)
layer_nb = 0
とする。
【０１７０】
[STEP ３] 「Gr_check」の計算
gr[layer_nb] = CHECK_SUPPLY[layer_nb]/SUM_DIFF[layer_nb] ---- [30]
GR[layer_nb] = gr[layer_nb]/Gr_avr                       ---- [31]
（１）Gr_min_limit ≦ GR[layer_nb] ≦ Gr_max_limit の場合
この記録層の画質の全体に対するばらつきは許容範囲である。
【０１７１】
Gcheck [layer_nb] = 0
（２）GR[layer_nb] < Gr_min_limit の場合
CHECK_SUPPLY[layer_nb] が CHECK_DIFF[layer_nb] に対して不足している。
【０１７２】
Gcheck [layer_nb] = 1
（３）Gr_max_limit < GR[layer_nb] の場合
CHECK_SUPPLY[layer_nb] が CHECK_DIFF[layer_nb] に対して余裕がある。
【０１７３】
Gcheck [layer_nb] = 2                                    ---- [32]
【０１７４】
[STEP ４] 調整範囲の提示
「USB_BYTES 」調整後に、「USB_BYTES 」の最大バイト数制限を越えないようにされなければならない。また、すでに最大バイト数制限を受けている記録層については「USB_BYTES 」の増加は許されない。
【０１７５】
QTY_change[layer_nb] == 0
かつ QTY_change[layer_nb+1] == 0
かつ Gcheck[layer_nb] == 1 or 2
または
QTY_change[layer_nb] == 1
かつ QTY_change[layer_nb+1] == 0
かつ Gcheck[layer_nb] == 2
または
QTY_change[layer_nb] == 0
かつ QTY_change[layer_nb+1] == 1
かつ Gcheck[layer_nb] == 1                           ---- [33]
の条件を満たす「layer_nb」の記録層の「USB_BYTES 」の調整量を提示する。
【０１７６】
MAXBYTES = MAXRATE×KT×total_framenb[layer_nb]          ---- [34]
Gr_min_limit×Gr_avr×CHECK_DIFF[layer_nb]≦ CHECK_SUPPLY[layer_nb]
かつ
0003837889.tif 000012
仮に、
CHECK_SUPPLY[layer_nb] ＝ Gr_avr×CHECK_DIFF[layer_nb]
としたとすれば、次の「layer_nb」の「CHECK_SUPPLY」は、以下のように修正される。
【０１７７】
0003837889.tif 000013
【０１７８】
[STEP ５]
layer_nb = layer_nb + 1
とし、「layer_nb」が「layer_max 」と同じ値でなければ[STEP 3]に戻る。
【０１７９】
[STEP ６]「USB_BYTES」数固定条件での記録層へのフレーム数調整範囲の提示ループ初期化
CHECK_USB_  [layer_nb] = USER_BYTES[layer_nb]
CHECK_SUPPLY[layer_nb] = ALL_SUPPLY_BYTES[layer_nb]
CHECK_DIFF  [layer_nb] = SUM_DIFF[layer_nb]
CHECK_FRAME [layer_nb] = total_frame[layer_nb]
ただし、0 ≦ layer_nb ≦ layer_max
layer_nb = 0
とする。
【０１８０】
[STEP ７] 「Gr_check」の計算
gr[layer_nb] = CHECK_SUPPLY[layer_nb]/CHECK_DIFF[layer_nb]
GR[layer_nb] = gr[layer_nb]/Gr_avr
（１）Gr_min_limit ≦ GR[layer_nb] ≦ Gr_max_limit の場合
Gcheck [layer_nb] = 0
（２）GR[layer_nb] < Gr_min_limit の場合
Gcheck [layer_nb] = 1
（３）Gr_max_limit < GR[layer_nb] の場合
Gcheck [layer_nb] = 2
【０１８１】
[STEP ８] 調整範囲の提示
フレーム数調整後に、「USB_BYTES 」の最大バイト数制限を越えないようにされなければならない。また、すでに最大バイト数制限を受けている記録層については、フレーム数の削減は許されない。
【０１８２】
QTY_change[layer_nb] == 0
かつ QTY_change[layer_nb+1] == 0
かつ Gcheck[layer_nb] == 1 or 2
または
QTY_change[layer_nb] == 1
かつ QTY_change[layer_nb+1] == 0
かつ Gcheck[layer_nb] == 2
または
QTY_change[layer_nb] == 0
かつ QTY_change[layer_nb+1] == 1
かつ Gcheck[layer_nb] == 1
の条件を満たす「layer_nb」の記録層のフレーム数の調整量が提示される。
【０１８３】
0003837889.tif 000014
を満たすフレーム数の境界が検出される。
【０１８４】
具体的には、
MAX_CHECK_DIFF = CHECK_SUPPLY[layer_nb]/Gr_min_limit/Gr_avr
MIN_CHECK_DIFF = CHECK_SUPPLY[layer_nb]/Gr_max_limit/Gr_avr
MIN_CHECK_FRAME = CHECK_USB[layer_nb]/MAXRATE/ KT
また、layer_nb == layer_max -1 のとき、
MAX_CHECK_FRAME = CHECK_FRAME[layer_nb] + CHECK_FRAME[layer_nb]
- CHECK_USB[layer_nb+1]/MAXRATE/ KT
の制約も考慮される。
【０１８５】
CHECK_FRAME[layer_nb] = CHECK_DIFF[layer_nb] = 0
とし、対象となる「layer_nb」で示される記録層のエンコードユニット（ＥＮＣＵ）のうち、シームレスアングル以外のＥＮＣＵの
gen_bit[k]×ENCU_weight[encu_nb]
（0 ≦ k ≦ k_max : k フレーム目の Difficulty の大きさ）
を演奏時間の早い順から「CHECK_DIFF[layer_nb]」に順次加算し、フレームのカウント数を「CHECK_FRAME[layer_nb] 」に順次加算していくことで、上記の条件を満たす k の範囲（フレームの範囲）を求めていく。
【０１８６】
この際に、範囲内に境界として望ましいチャプターポイントやシーンチェンジポイントがあれば、その情報も提示される。
仮に、
CHECK_DIFF[layer_nb] = CHECK_SUPPLY[layer_nb]/Gr_avr
となるように境界を変更したとして、境界変更対象となる記録層の符号化難易度（Difficulty）の総和とフレーム数を変更する。
【０１８７】
この結果、次の「layer_nb」の符号化難易度の総和とフレーム数は、以下のように修正される。
0003837889.tif 000015
【０１８８】
[STEP ９]  layer_nb = layer_nb + 1 とし、「layer_nb」が「layer_max 」と同じ値でなければ [STEP 7] に戻る。
【０１８９】
各記録層のフレーム数を変えるということは、素材の記録される場所を変えることを意味するため、素材の切れ目（シーンの切れ目）などの情報が非常に重要になる。
【０１９０】
図８は、以上説明した本発明の実施の形態に係るエンコード方法の［STEP １]〜[STEP ５]の処理の流れを示している。
【０１９１】
ステップＳ２１では、各記録層へのビット配分数「QTY_BYTES 」をスーパーバイザから受け取る。
【０１９２】
次に、ステップＳ２２では、各記録層の最大バイト数制限を考慮して「USB_BYTES 」が求められる。
【０１９３】
次に、ステップＳ２３では、各記録層の「USB_BYTES 」から「GOP_Header」のバイト数を除いたものの総和「ΣTOTAL_SUPPLY_BYTES」が求められる。
【０１９４】
次に、ステップＳ２４では、各記録層のシームレスアングルブロックの重み係数を考慮した総フレーム量「ANGLE_WFRAME」が求められ、「ΣTOTAL_SUPPLY_BYTES」がフレーム量「frame×weight」の比率で各アングルブロックに配分される。
【０１９５】
次に、ステップＳ２５では、各記録層の「TOTAL_SUPPLY_BYTES」からシームレスアングルへの配分ビット数の総和を引いて、「ALL_SUPPLY_BYTES」が求められる。
【０１９６】
次に、ステップＳ２６では、各記録層毎の符号簡易度（Difficulty）の総和「SUM_DIFF」と、各ＥＮＣＵごとの重み係数を考慮した符号簡易度の総和「ENCU_DIFF 」との比率から、「ALL_SUPPLY_BYTES」が各ＥＮＣＵブロックに配分される。
【０１９７】
そして、ステップＳ２７では、各記録層ごとのビット配分のばらつき量が計算される。このばらつき量が規定値を越えていたら、オペレータおよびスーパーバイザに警告され、適正値が計算されて提示される。
【０１９８】
以上の手順により、本発明の実施の形態に係るエンコード方法の［STEP 1］〜［STEP 5］の処理が終了する。
【０１９９】
また、図９および図１０に、前述した本発明の実施の形態に係るエンコード方法の[STEP ６]〜[STEP ９]の処理の流れを示す。これらの各ステップは、フレーム数固定の条件での USB_BYTES の調整範囲の提示方法を示している。
【０２００】
図９のステップＳ３１では、全体のビット配分のばらつき度の平均値「Gr_avr」が計算される。
【０２０１】
Gr_avr = ΣALL_SUPPLY_BYTES[layer_nb]／ΣSUM_DIFF[layer_nb]
次に、ステップＳ３２では、フレーム数固定の条件での「USB_BYTES 」調整範囲の提示用に値が初期化される。
【０２０２】
CHECK_USB_  [layer_nb] = USER_BYTES[layer_nb]
CHECK_SUPPLY[layer_nb] = ALL_SUPPLY_BYTES[layer_nb]
CHECK_DIFF  [layer_nb] = SUM_DIFF[layer_nb]
CHECK_FRAME [layer_nb] = total_framenb[layer_nb]
そして、ステップＳ３３で、layer_nb = 0 とされる。
【０２０３】
次に、図１０のステップＳ３４で、ばらつき度が判定される。
【０２０４】
Gr [layer_nb]     = CHECK_SUPPLY[layer_nb]／CHECK_DIFF[layer_nb]／Gr_avr
（１）Gr_min_limit ≦ Gr [layer_nb] ≦ Gr_max_limit の場合
Gcheck[layer_nb] = 0
（２）Gr [layer_nb] ＜ Gr_min_limit の場合
Gcheck[layer_nb] = 1
（３）Gr_min_limit  ＜ Gr [layer_nb]の場合
Gcheck[layer_nb] = 2
次に、ステップＳ３５で、以下の条件を満たす「layer_nb」の記録層の「USB_BYTES 」の調整範囲が提示される。
【０２０５】
QTY_change [layer_nb]== 0 かつ QTY_change [layer_nb+1]==0
かつ Gcheck[layer_nb]==1 or 2
または
QTY_change [layer_nb]==1 かつ QTY_change [layer_nb+1]==0
かつ Gcheck[layer_nb]==2
または
QTY_change [layer_nb]==0 かつ QTY_change [layer_nb+1]==1
かつ Gcheck[layer_nb]==1
適正範囲
Gr_min_limit × Gr_avr × CHECK_DIFF[layer_nb]≦ CHECK_SUPPLY[layer_nb]
かつ
0003837889.tif 000016
次に、ステップＳ３６で、layer_nb = layer_nb + 1 とされる。
【０２０６】
そして、ステップＳ３７で、layer_nb ＞ layer_max を満足するかどうかが判断され、この条件を満足しないときにはステップＳ３４以降の手順が繰り返される。一方、ステップＳ３７の条件を満足する場合には、図１１および図１２に示す、バイト数固定の条件でのフレーム数の調整範囲の提示方法の処理手順に進む。
【０２０７】
図１１のステップＳ３８で、USB_BYTES 数固定の条件での記録層へのフレーム数の調整範囲の提示用に値が初期化される。
【０２０８】
CHECK_USB_  [layer_nb] = USER_BYTES[layer_nb]
CHECK_SUPPLY[layer_nb] = ALL_SUPPLY_BYTES[layer_nb]
CHECK_DIFF  [layer_nb] = SUM_DIFF[layer_nb]
CHECK_FRAME [layer_nb] = total_framenb[layer_nb]
なお、ステップＳ３８に先立って、全体のビット配分のばらつき度の平均値「Gr_avr」が計算される必要があるが、図９のステップＳ３１で得られた値を用いることができる。
【０２０９】
そして、ステップＳ３９で、layer_nb = 0 とされる。
【０２１０】
次に、図１２のステップＳ４０で、ビット配分量のばらつき度が判定される。
【０２１１】
0003837889.tif 000017
次に、ステップＳ４１で、以下の条件を満たす「layer_nb」の記録層のフレーム数の調整範囲が提示される。
【０２１２】
QTY_change [layer_nb]== 0 かつ QTY_change [layer_nb+1]==0
かつ Gcheck[layer_nb]==1 or 2
または
QTY_change [layer_nb]==1 かつ QTY_change [layer_nb+1]==0
かつ Gcheck[layer_nb]==2
または
QTY_change [layer_nb]==0 かつ QTY_change [layer_nb+1]==1
かつ Gcheck[layer_nb]==1
適正範囲
MAX_CHECK_DIFF  = CHECK_SUPPLY[layer_nb]／Gr_min_limit／Gr_avr
MIN_CHECK_DIFF  = CHECK_SUPPLY[layer_nb]／Gr_max_limit／Gr_avr
MIN_CHECK_FRAME = CHECK_USB[layer_nb]／MAXRATE／kT
とすると、
MIN_CHECK_DIFF ≦ CHECK_DIFF[layer_nb] ≦ MAX_CHECK_DIFF
の条件を満たし、かつ
MIN_FRAME = CHECK_DIFF = 0
とし、layer_nb 層のＥＮＣＵのうち、シームレスアングル以外のＥＮＣＵの
Difficulty × ENCU_weight
の大きさを、演奏時間の早い順から、「CHECK_DIFF」にフレームのカウント数を、「CHECK_FRAME 」に、それぞれ順次加算していく。
【０２１３】
この際に、範囲内に境界として望ましいチャプターポイント、シーンチェンジポイントがあれば、その情報も提示される。
【０２１４】
次に、ステップＳ４２で、layer_nb = layer_nb + 1 とされる。
【０２１５】
そして、ステップＳ４３で、layer_nb ＞ layer_max を満足するかどうかが判断され、この条件を満足しないときにはステップＳ４０以降の手順が繰り返される。一方、ステップＳ４３の条件を満足する場合には、以上の処理が終了する。
【０２１６】
各記録層に割り当てるビット数やフレーム数を変更すると、「MAX_BYTES 」条件によって新たに制限を受けることになる。このことから、逆に、すでにそのような制限を受けている場合には、ビット数やフレーム数を変更できない場合があることが予想される。
【０２１７】
図１３は、２層の記録層を有する、いわゆるＤＶＤなどの記録媒体において、「MAXBYTES」制限をすでに受けている場合の処理の分類を示している。
【０２１８】
また、図１４は、４層の記録層を有する記録媒体において、上記の条件を適応させた場合の例を示している。
【０２１９】
以下に、２層の記録層を有するＤＶＤなどのディスクに対して、ビット配分を行う場合を例として、上記の処理の分類について説明する。なお、以下の説明では、
Gr_min_limit = 0.9
Gr_max_limit = 1.1
とする。
（１）GR[0] < 0.9 の場合
ALL_SUPPLY_BYTES[0] が SUM_DIFF[0] に対して不足している。
（２）1.1 < GR[0] の場合
ALL_SUPPLY_BYTES[1] が SUM_DIFF[1] に対して不足している。
（３）上記（１），（２）以外の場合
処理を行なわない。
【０２２０】
＜Ａ＞フレーム数固定の場合の USB_BYTES の適正範囲「CHECK_USB」
0.9×Gr_avr×CHECK_DIFF[0]
≦ CHECK_SUPPLY[0] ≦ 1.1×Gr_avr×CHECK_DIFF[0]
CHECK_USB[0]
= CHECK_SUPPLY[0] + ALL_ANGLE_BYTES[0] + TOTAL_HEADER[0]
【０２２１】
＜Ｂ＞「USB_BYTES」数固定の場合の記録フレーム数の適正範囲「CHECK_FRAME」
CHECK_SUPPLY[0]/1.1/Gr_avr  ≦ CHECK_DIFF[0] ≦ CHECK_SUPPLY[0]/0.9/Gr_avr
を満たす範囲を探す。
【０２２２】
「layer 0 」のシームレスアングル以外のＥＮＣＵの
gen_bit[k]×_ENCU_weight[encu_nb]
を順次加算して「CHECK_DIFF[0] 」を再計算していく過程で、上記の条件を満たすｋの範囲を求めていく。この際に、範囲内に境界として望ましいチャプターポイントやシーンチェンジポイントがあれば、その情報も提示する。
このようにして適正範囲に修正して再度ビット配分した例を、図１５〜図１８に示した。
【０２２３】
どの例においても、符号簡易度（Difficulty）の和とビット配分量との関係が理想的になっていることが分かる。
【０２２４】
次に、本発明の実施の形態に係るエンコード装置について説明する。
【０２２５】
図１９は、本発明の実施の形態に係るビデオエンコードシステムの構成例を示している。
【０２２６】
このビデオエンコードシステムは、上述した本発明の実施の形態に係るエンコード方法を適用して、ディジタルビデオディスク（ＤＶＤ）用にビデオ情報を圧縮符号化してオーサリングなどを行うために用いることができるものであり、その基本的な構成は図２１に示した従来のビデオエンコードシステムの構成とほぼ同様とすることができる。
【０２２７】
主コントローラ１１は、このビデオエンコードシステムに割り当てられた計算機により構成され、ネットワーク２を介して接続されるスーパーバイザ３との間でデータ通信を行って、このビデオエンコードシステム全体の動作を制御する。
【０２２８】
具体的には、主コントローラ１１は、グラフィカルユーザーインターフェース（ＧＵＩ：Graphical User Interface）部１４の管理により、スーパーバイザ３からの制御を受け付けると共に、図示していないオペレータの操作を受け付け、このＧＵＩ部１４により管理されるビットアサイン部１５，エンコーダコントロール部１６，ＶＴＲコントロール部１７により、エンコーダ１２，ビデオテープレコーダ（ＶＴＲ）１０の動作を制御する。これにより、主コントローラ１１は、スーパーバイザ３から通知されたエンコード条件に従って、処理対象の素材を符号化処理し、その処理結果をスーパーバイザ３に通知する。さらに、主コントローラ１１は、ＧＵＩ部１４を介してオペレータの設定を受け付けて、上記の符号化の詳細な条件を変更できるようにされている。
【０２２９】
具体的には、主コントローラ１１のＧＵＩ部１４は、ビットアサイン部１５のビット配分プログラム「BIT_ASSIGN」，エンコーダコントロール部１６のエンコーダコントロールプログラム「CTRL_ENC」およびＶＴＲコントロール部１７のＶＴＲコントロールプログラムの３つのプログラムを管理している。
【０２３０】
また、ビットアサイン部１５は、スーパーバイザ３から通知される符号化ファイル「v.enc 」に従って符号化処理の条件をフレーム単位で決定し、この条件による制御データをファイル形式「CTL file」によりコントロール部１６に通知する。
【０２３１】
このとき、ビットアサイン部１５は、符号化処理におけるビット配分を設定し、さらに設定された条件をオペレータの操作に応じて変更する。さらに、ビットアサイン部１５は、データ圧縮されたビデオデータＤ２が、エンコーダ１２かあＳＣＳＩなどを介してＲＡＩＤ４に記録されると、ＲＡＩＤ４上のアドレスデータ「v.adr 」を、後段における多重化処理に必要なデータ量等の情報「vxxx.aui」と共にスーパーバイザ３に通知する。
【０２３２】
エンコーダコントロール部１６は、ビットアサイン部１５から通知される制御ファイル「CTL file」に従って、イーサネットETHER などを介してエンコーダ１２の動作を制御する。さらに、エンコーダコントロール部１６は、符号化処理に要する符号化難易度（difficulty）のデータをフレーム単位でビットアサイン部１５に通知し、ビデオデータＤ２が記録されたＲＡＩＤ４の記録アドレスのデータ「v.adr 」，後の多重化処理に必要なデータ「vxxx．aui 」をビットアサイン部１５に通知する。
【０２３３】
ＶＴＲコントロール部１７は、スーパーバイザ１０３から通知される編集リストに従って、ＲＳ−４２２（９ピンリモート）などを介してビデオテープレコーダ（ＶＴＲ）１０の動作を制御し、所望の編集対象の素材を再生する。
【０２３４】
ビデオテープレコーダ（ＶＴＲ）１０は、主コントローラ１１を介してスーパーバイザ３から通知される編集リストに従って、磁気テープに記録されたビデオデータＤ１を再生して、処理対象の「SDI 」，「REF V 」，「TIME CODE 」をエンコーダ１２に出力する。このＶＴＲ１０としては、通常はディジタルＶＴＲが用いられる。
【０２３５】
エンコーダ１２は、スーパーバイザ３から主コントローラ１１を介して通知される条件に従って動作を切り換え、ＶＴＲ１０から出力されるビデオデータＤ１を、ＭＰＥＧ（Moving Picture Experts Group）の手法により圧縮符号化する。
【０２３６】
このとき、エンコーダ１２は、符号化処理の結果を主コントローラ１１に通知し、主コントローラ１１は、そのデータ圧縮における符号化の条件を制御し、発生するビット量を制御する。これにより、主コントローラ１１は、データ圧縮により発生するビット量をフレーム単位で把握できる。
【０２３７】
また、エンコーダ１２は、２パスエンコードにおける事前のエンコード条件設定の処理時（仮エンコード時）には、ＶＴＲ１０からはビデオデータを単にデータ圧縮して処理結果を主コントローラ１１に通知するだけであるが、最終的なデータ圧縮処理時（本エンコード時）には、圧縮処理されたビデオデータＤ２をＲＡＩＤ４に記録し、さらにそのデータが記録されたアドレス，データ量等を主コントローラ１１に通知する。
【０２３８】
モニタ装置１３は、エンコーダ１２によりデータ圧縮されたビデオデータＤ２をモニタできるように構成される。このモニタ装置１３ににより、このビデオエンコードシステムでは、オペレータがデータ圧縮処理の結果を必要に応じて確認する、いわゆるプレビューを行うことができる。そして、オペレータが、このプレビュー結果に基づいて主コントローラ１１を操作して、符号化の条件を詳細に変更できるようにされている。
【０２３９】
また、モニタ装置１３には、仮エンコード時に測定された符号化難易度に基づいて、与えられたエンコード条件によるビット配分が、記録層間に許容できない程の画質の差を生じることの警告や、適正とされるビット配分などの条件が表示される。
【０２４０】
以上のように、本発明の実施の形態に係るエンコード方法およびエンコード装置によれは、ビデオの２パスエンコード方式の場合に、スーパーバイザから与えられたエンコード条件による複数の記録層または記録領域の画質のばらつき量を本エンコードの実行前に予測し評価できる。
【０２４１】
なお、ここでは、ＤＶＤの複数層のビット配分について説明したが、必ずしも記録層間ではなく、同一記録層内に固定された、パーティションが設けられた複数の記録領域間に亘って記録されるデータに対するビット配分にも適応可能である。
【０２４２】
また、ここでは、複数の記録層を有する記録媒体に記録されるビデオデータのエンコードについて説明したが、本発明の実施の形態に係る処理の基本的なアルゴリズムは、２パス可変ビットレートエンコードを行うオーディオ処理システムで、オーディオデータを複数の固定された記録領域に対して、音質のばらつきを少なくなるようにビット配分するシステムに対しても適応可能である。
【０２４３】
【発明の効果】
本発明によれば、２パスエンコード方式の場合に、本エンコードの実行前にスーパーバイザから与えられたエンコード条件による複数の記録層または記録領域の画質のばらつき量を予測評価できるようにしたため、早い時点でスーパーバイザへの条件の見直しを促すことができ、ＤＶＤなどのパッケージメディアのディスク作成のためのエンコード作業工数を削減することができる。
【図面の簡単な説明】
【図１】２つの記録領域に記録されるシームレスアングルブロックを含むデータに対して、フレーム数の比率に応じてビット配分される様子を説明するための図である。
【図２】上記のビット配分の詳細を示す図である。
【図３】２つの記録領域に記録されるシームレスアングルブロックを含むデータに対して、従来方式によりビット配分される様子を説明するための図である。
【図４】上記の例における各エンコードユニット（ＥＮＣＵ）に対するビット配分結果をまとめて示す図である。
【図５】２つの記録領域に記録されるシームレスアングルブロックを含むデータに対して、本発明の実施の形態に係る方式によりビット配分される様子を説明するための図である。
【図６】上記の例における、各エンコードユニット（ＥＮＣＵ）に対するビット配分結果をまとめて示す図である。
【図７】本発明の実施の形態に係るビット配分計算の基本的な手順を示すフローチャートである。
【図８】本発明の実施の形態に係るエンコード方法の[STEP １]〜[STEP ５]における処理の流れを示すフローチャートである。
【図９】本発明の実施の形態に係るエンコード方法の[STEP ６]〜[STEP ９]における、フレーム数固定の条件での「USB_BYTES 」の調整範囲の提示方法についての処理の流れを示すフローチャートである。
【図１０】本発明の実施の形態に係るエンコード方法の[STEP ６]〜[STEP ９]における、フレーム数固定の条件での「USB_BYTES 」の調整範囲の提示方法についての処理の流れを示す、図９に続くフローチャートである。
【図１１】本発明の実施の形態に係るエンコード方法における、バイト数固定の条件でのフレーム数の調整範囲の提示方法についての処理の流れを示すフローチャートである。
【図１２】本発明の実施の形態に係るエンコード方法における、バイト数固定の条件でのフレーム数の調整範囲の提示方法についての処理の流れを示す、図１１に続くフローチャートである。
【図１３】２つの記録層を有する記録媒体において「MAXBYTES」制限をすでに受けている場合の処理の分類を示す図である。
【図１４】上記の条件を４つの記録層を有する記録媒体に適応した場合の処理例を説明するための図である。
【図１５】適正範囲に修正して再度ビット配分した例を示す図である。
【図１６】適正範囲に修正して再度ビット配分した例を示す図である。
【図１７】適正範囲に修正して再度ビット配分した例を示す図である。
【図１８】適正範囲に修正して再度ビット配分した例を示す図である。
【図１９】本発明の実施の形態に係るビデオエンコードシステムの構成例を示す図である。
【図２０】エンコード装置の一形態を示す図である。
【図２１】従来のビデオエンコードシステムの構成例を示す図である。
【図２２】従来のエンコード作業の流れを示すフローチャートである。
【図２３】従来のエンコード作業における、ビット配分計算処理の手順の一具体例を示すフローチャートである。
【図２４】従来のエンコード作業における、シーンチェンジの検出／処理について説明するための図である。
【図２５】従来のエンコード作業における、チャプタ(CHAPTER )指定されたフレームの処理について説明するための図である。
【図２６】本発明の実施の形態における、各エンコードユニット（ＥＮＣＵ）へのビット配分例を示す図である。
【図２７】シームレスアングル部分に対する重み係数が考慮された、本発明の実施の形態に係るビット配分の基本的な手順を示すフローチャートである。
【図２８】ＧＯＰごとの符号化難易度の和「gop_diff」とエンコード時のＧＯＰ単位のビット割当て量「gop_target」とを変換するための、最も簡単な関数の例を示す図である。
【図２９】ＶＢＶ(Video buffering verifier)計算方法について説明するための図である。
【図３０】評価関数と「GOP_MAXRATE 」制限を考慮して求めたターゲット量に対して、ＶＢＶバッファ計算を行った場合のターゲットビット配分例を示す図である。
【図３１】ＶＢＶ制限処理後のターゲットビット配分例を示す図である。
【図３２】２つの記録層を有する記録媒体に対して、従来方式によりビット配分した例を示す図である。
【図３３】２つの記録層を有する記録媒体に対して、従来方式によりビット配分した例を示す図である。
【図３４】いわゆるＤＶＤ（ディジタルビデオディスク）におけるアングルブロックおよびアングル再生について説明するための図である。
【図３５】素材がアングルブロックを含む場合について説明するための図である。
【図３６】インターリーブ処理について説明するための図である。
【図３７】シームレスアングルブロックの処理について説明するための図である。
【図３８】ＶＢＶバッファ残量の制限を加えたエンコードおよびデコードを行った場合の例を示す図である。
【図３９】シームレスアングルで、全てのＧＯＰの最初と最後のＶＢＶの値が一定値以上になるように制御される様子を説明するための図である。
【符号の説明】
２  ネットワーク、  ３  スーパーバイザ、  ４  ＲＡＩＤ、  １０  ビデオテープレコーダ（ＶＴＲ）、  １１  主コントローラ、  １２  エンコーダ、  １４  ＧＵＩ（グラフィカルユーザインターフェース）部、  １５  ビットアサイン部、  １６  エンコーダコントロール部、  １７  ＶＴＲコントロール部
【図１】
0003837889.tif 000018
【図２】
0003837889.tif 000019
【図３】
0003837889.tif 000020
【図４】
0003837889.tif 000021
【図５】
0003837889.tif 000022
【図６】
0003837889.tif 000023
【図７】
0003837889.tif 000024
【図８】
0003837889.tif 000025
【図９】
0003837889.tif 000026
【図１０】
0003837889.tif 000027
【図１１】
0003837889.tif 000028
【図１２】
0003837889.tif 000029
【図１３】
0003837889.tif 000030
【図１４】
0003837889.tif 000031
【図１５】
0003837889.tif 000032
【図１６】
0003837889.tif 000033
【図１７】
0003837889.tif 000034
【図１８】
0003837889.tif 000035
【図１９】
0003837889.tif 000036
【図２０】
0003837889.tif 000037
【図２１】
0003837889.tif 000038
【図２２】
0003837889.tif 000039
【図２３】
0003837889.tif 000040
【図２４】
0003837889.tif 000041
【図２５】
0003837889.tif 000042
【図２６】
0003837889.tif 000043
【図２７】
0003837889.tif 000044
【図２８】
0003837889.tif 000045
【図２９】
0003837889.tif 000046
【図３０】
0003837889.tif 000047
【図３１】
0003837889.tif 000048
【図３２】
0003837889.tif 000049
【図３３】
0003837889.tif 000050
【図３４】
0003837889.tif 000051
【図３５】
0003837889.tif 000052
【図３６】
0003837889.tif 000053
【図３７】
0003837889.tif 000054
【図３８】
0003837889.tif 000055
【図３９】
0003837889.tif 000056