(57)【特許請求の範囲】
【請求項１】
画像データを符号化する符号化装置において、
Ｉピクチャ、Ｐピクチャ、Ｂピクチャを含む符号化グループ内でピクチャタイプを変更し、ピクチャタイプが変更されたピクチャに関連する各画像符号化グループの長さを変更する変更手段と、
上記変更手段により長さが変更された符号化グループのうち長さが短い第１の符号化グループと、この第１の符号化グループに隣接する長さが変更されない第２の符号化グループとの各符号化グループの長さを予め決定されている符号化画像数の範囲で調整する際に、上記第２の符号化グループ内のＰピクチャのうち、符号化難易度の大きい方のＰピクチャをＩピクチャに変更して、各画像符号化グループの長さの修正を行う修正手段と
を備える符号化装置。
【請求項２】
上記変更手段は、上記符号化グループ内でシーンがチェンジするポイントを検出したか、又はチャプター指定を行ったことにより、Ｐピクチャ又はＢピクチャをＩピクチャに変更する請求項１記載の符号化装置。
【請求項３】
上記修正手段は、上記変更手段によりピクチャタイプが変更されることにより、上記第１の符号化グループの長さが予め決定されている長さよりも短いとき、上記第１の符号化グループ内のＩピクチャをＰピクチャに変更し、上記第２の符号化グループ内のＰピクチャをＩピクチャに変更する請求項１記載の符号化装置。
【請求項４】
画像データを符号化する符号化方法において、
Ｉピクチャ、Ｐピクチャ、Ｂピクチャを含む符号化グループ内でピクチャタイプを変更し、ピクチャタイプが変更されたピクチャに関連する各画像符号化グループの長さを変更する変更工程と、
上記変更工程により長さが変更された符号化グループのうち長さが短い第１の符号化グループと、この第１の符号化グループに隣接する長さが変更されない第２の符号化グループとの各符号化グループの長さを予め決定されている符号化画像数の範囲で調整する際に、上記第２の符号化グループ内のＰピクチャのうち、符号化難易度の大きい方のＰピクチャをＩピクチャに変更して、各画像符号化グループの長さの修正を行う修正工程と
を備える符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉピクチャ、Ｐピクチャ、Ｂピクチャを所定数含んでなる画像符号化グループ（ＧＯＰ）により、ビデオ素材を符号化する符号化装置及び符号化方法に関する。
【背景技術】
【０００２】
ビデオ情報をディジタルビデオディスク（Digital Video Disk：ＤＶＤ）やビデオＣＤのようなパッケージメディアに蓄積する際、上記ビデオ情報に圧縮符号化処理を施すエンコードシステムでは、最初に素材の画像の符号化難易度（Difficulty）を測定し、その符号化難易度を元に、パッケージメディアの記録容量内の与えられたバイト数に収まるように、各ビデオ情報のフレームごとにビット配分（以下、Bit assign）処理を行ってエンコードしている。
【０００３】
例えば、上記ディジタルビデオディスク用に、ビデオ情報を圧縮符号化するビデオエンコードシステムの具体例を図１２に示す。
【０００４】
図１２において、ビデオエンコードの制御を行うビデオエンコードコントローラ１０は、システム全体を管理するスーパーバイザコントローラ１に、ネットワーク２を介して接続されている。
【０００５】
スーパーバイザコントローラ１はオペレーティングシステムを構成するプログラムの内、特にシステム全体の動きを監視し、効率的に制御するプログラムであるスーパーバイザを実行するコントローラである。このビデオエンコードシステムにおいてはＤＶＤのオーサリングシステム全体の管理を行い、ビデオ、オーディオ、字幕やメニューといった各エンコードシステムにエンコード条件を与え、エンコード結果の報告を受ける。
【０００６】
このビデオエンコードシステムの具体例に対しては、例えばv.enc というファイルによってビデオエンコード条件を指定している。そして、ビデオエンコードコントローラ１０側からは、エンコード結果のビットストリームがハードディスクドライブ（ＨＤＤ）等を複数並列に接続して記録容量と転送速度性能を向上させたＲＡＩＤ１６（Redundant Arrays of Inexpensive Diskes）上に書き込まれたアドレスv.adrと、エンコード結果のビットストリームがオーディオや字幕，メニュー等のサブピクチャとマルチプレックスされる際に必要とされるデータ(vxxx.aui)を報告している。
【０００７】
ビデオエンコードコントローラ１０は、グラフィカルユーザインターフェース（Graphical User Interfece:ＧＵＩ）１１と、後述するビット配分計算処理プログラム（Bit_Assign）を格納しているビット配分計算部１２と、このビット配分計算部１２内部のビット配分計算処理プログラム（Bit_Assign）を実行させるＭＰＥＧエンコーダコントローラ１３と、ディジタルＶＴＲコントローラ１４とを備えている。
【０００８】
ユーザは、グラフィカルユーザインターフェース１１を用い、ビット配分計算部１２の上記ビット配分計算処理プログラム（BIT_ASSIGN）と、ＭＰＥＧエンコーダコントローラ１３の３つのプログラムを管理することができる。また、ＤＶＴＲコントローラ１４も管理できる。
【０００９】
ＭＰＥＧエンコーダコントローラ１３は、上記ビット配分計算部１２内部の上記ビット配分計算処理プログラム（BIT_ASSIGN）を実行すると共に、ＭＰＥＧエンコーダ１５を制御する。また、ＤＶＴＲコントローラ１４はＤＶＴＲ１７を制御する。このＤＶＴＲ１７はＭＰＥＧエンコーダ１５に接続しており、ＭＰＥＧエンコーダ１５はエンコードした結果を表示するためにモニタ１８に接続している。さらに、ＭＰＥＧエンコーダ１５は、エンコード結果を記録するために上記ＲＡＩＤ１６にも接続している。
【００１０】
ＭＰＥＧエンコーダ１５では、動き補償予測による時間方向の冗長度の除去を行っている。また、ＭＰＥＧエンコーダ１５では、フレーム内だけで符号化されるフレーム内符号化画像をＩピクチャ（Intra Coded）、過去の画面から現在を予測することによって符号化されるフレーム間順方向予測符号化画像をＰピクチャ（Predictive Coded）、過去、未来の両方向の画像から現在を予測することによって符号化される双方向予測符号化画像をＢピクチャ（Bidirectionaly Predictive Coded）を用いて、ビデオ情報を圧縮符号化している。ここでは、必ずＩピクチャを１つ含むピクチャのまとまりを図１３に示すようなＧＯＰ（Group of Pictures）としている。この図１３において、ＧＯＰのフレーム数Ｎは１５であり、表示順のＧＯＰの先頭は、Ｉピクチャの前で、Ｐ又はＩピクチャの次のＢピクチャーである。ＧＯＰの最後は、次のＩピクチャの前の最初のＰピクチャである。
【００１１】
このビデオエンコードシステムの動作について図１４のフローチャートを参照して説明する。先ず、ステップＳ１で、スーパーバイザコントローラ１からネットワーク２経由でビデオに割り当てるビット総量や最大レートなどのエンコード条件v.encが与えられ、ＭＰＥＧエンコーダコントローラ１３はエンコード条件を設定する。その後、ステップＳ２でＭＰＥＧエンコーダコントローラ１３の制御の基にＭＰＥＧエンコーダ１５がエンコード素材の符号化難易度を測定する。ここでは、各画素のＤＣ値や動きベクトル量ＭＥも読んでおく。そして、これらの測定結果により、ファイルを作成しておく。
【００１２】
実際の符号化難易度の測定は以下のように行う。エンコード素材となるビデオ情報はＤＶＴＲ１７によってディジタルビデオカセットにマスターとして収録されており、このマスターをＤＶＴＲコントローラ１４でＤＶＴＲ１７を制御しながら再生してエンコード素材の符号化難易度を測定する。
【００１３】
ここでは、符号化の際に量子化ステップ数を固定値に設定した条件で発生ビット量を測定する。動きが多く、高い周波数成分が大きい画像では発生ビット量が大きくなり、静止画や平坦な部分が多い画像では発生ビット量が少なくなる。この発生ビット量の大きさを上記符号化難易度としている。
【００１４】
次に、ステップＳ３では、ステップＳ１で設定されたエンコード条件を元に、ステップＳ２で測定された各ピクチャの符号化難易度の大きさに応じて、ビット配分計算部１２内部のビット配分計算プログラム（BIT_ASSIGN）を実行し、割り当てビット量（ターゲット量 :target）の配分計算を行う。
【００１５】
そして、このステップＳ３でのビット配分計算による結果を使ってエンコードを実行するかどうかをＭＰＥＧエンコーダ１５に内蔵されているローカルデコーダ出力の画質によってユーザに判断させる。
【００１６】
実際には、ステップＳ４で、上記ビット配分によるビットストリームをＲＡＩＤ１６に出力しないで、任意の処理範囲を指定できるプレビユーモード（Preview）を行って、ユーザが画質をチェックする。
【００１７】
ステップＳ５の画質評価で画質に問題がない場合にはステップＳ６に進み、エンコード処理を実行するが、画質に問題がある場合には、ステップＳ８に進み、問題のある部分のレートを上げるとか、フィルターレベルを調整するといった画質調整のためのカスタマイズ作業を行ってから、ステップＳ９で再びビット配分計算部１２内部のビット配分計算処理プログラム（BIT_ASSIGN）を実行し、ビット再配分計算を行う。
【００１８】
その後、ステップＳ４に戻り、カスタマイズした部分をプレビューして、ステップＳ５で画質を確認し、すべての部分が良ければステップＳ６に進み、全体のエンコードをＭＰＥＧエンコーダ１５に実行させる。エンコード結果であるビットストリームは、ステップＳ７でＳＣＳＩ（Small Computer System Interface）経由で直接、ＲＡＩＤ１６に書き込まれる。
【００１９】
ステップＳ６でのエンコード後、ビデオエンコードコントローラ１０は上述したようなエンコード結果情報をネットワーク経由でスーパーバイザコントローラ１に報告する。
【００２０】
この図１４のフローチャートにおいて、ステップＳ２，ステップＳ４及びステップＳ６を除いた各ステップの処理はオフライン処理を意味している。
【００２１】
以下、特に、ステップＳ３で実行されるビット配分計算部１２内のビット配分計算処理について詳細に説明する。先ず、スーパーバイザコントローラ１からディスク容量の中から上記ビット総量（QTY_BYTES）と、最大ビットレート（MAXRATE）が指定されると、これに対して、ＭＰＥＧエンコーダコントローラ１３は、最大ビットレート（MAXRATE）以下になるように制限を加えた総ビット数 (USB_BYTES)を求め、この値からＧＯＰのヘッダ（GOP header）に必要なビット数(TOTAL_HEADER)を引いた値と、全体のフレーム総数からターゲット数の総和の目標値となるSUPPLY_BYTESを算出する。
【００２２】
そして、このSUPPLY_BYTESの大きさに収まるようにビット配分計算部１２内部のビット配分計算処理プログラムを実行し、各ピクチャへの割り当てビット量（以下、ターゲット量：target）を配分する。
【００２３】
このステップＳ３でのビット配分計算処理を詳細に示したのが図１５のフローチャートである。
【００２４】
先ず、ステップＳ１１で上述したように、スーパーバイザコントローラ１から送られた上記ビット総量（QTY_BYTES）と、最大ビットレート（MAXRATE）が入力されると、ＭＰＥＧエンコーダコントローラ１３は、上述したようにSUPPLY_BYTESを算出する。
【００２５】
次に、上記図１４のステップＳ２の符号化難易度の測定で作成された測定ファイルをステップＳ１２でそのまま読み込み、符号化難易度の測定の際に、併せて測定された各画像のＤＣ値や動きベクトル量ＭＥの大きさのパラメータの変化量から、ステップＳ１３でシーンが変化するポイントを見つける。
【００２６】
このステップＳ１３でのシーンチェンジ検出／処理は、本件出願人が既に特願平８-２７４０９４号明細書及び図面にて開示した「映像信号処理装置」に応じてシーンチェンジ点を検出する処理である。
【００２７】
この「映像信号処理装置」は、映像信号の各フレームの直流レベルを検出し、この直流レベルを曲線近似して得られる誤差値より、上記映像信号のシーンチェンジのフレームを検出して、シーンチェンジ点を明らかにする。
【００２８】
そして、図１６に示すように、シーンがチェンジしたとして検出したポイントは、ＰピクチャーをＩピクチャーに変更して、画質改善を計る。
【００２９】
次に、ステップＳ１４でチャプター（CHAPTER）境界処理を行う。ＤＶＤ再生装置でのチャプターサーチ時には、特定されないピクチャからジャンプしてくることになるが、その場合でも再生画像の乱れがないようにするため、図１７に示すようにチャプターの位置が必ずＧＯＰの先頭になるようにピクチャタイプを変更する。図１７ではＰピクチャをＩピクチャに変更している。
【００３０】
このようなステップＳ１２，ステップＳ１３での一連の作業の結果、ピクチャタイプ（Ｉ，Ｐ，Ｂピクチャ）の変更処理が実行されると、符号化難易度測定時のピクチャタイプが変更されるため、ステップＳ１５で変更後のピクチャタイプに合わせた符号化難易度の値に補間／補正する。
【００３１】
ステップＳ１５での符号化難易度の補間／補正によって得られた符号化難易度と、全体に与えられたビット数（SUPPLY_BYTES）に応じて、ステップＳ１６で各ピクチャごとのターゲットビット数を計算する。
【００３２】
そして、ステップＳ１７でＲＡＩＤ１６にエンコード結果のビットストリームを書き込む際のアドレスの計算を行った上で、ステップＳ１８に進み、エンコーダ用のコントロールファイルを作成する。
【００３３】
例えば、ビット配分計算の具体例として、先ずＧＯＰ単位にビット量を配分してから、各ＧＯＰ内で各ピクチャの符号化難易度に応じたビット配分を行う場合を説明する。ここでは、各ＧＯＰ毎の符号化難易度の和であるGOP_DIFFに応じて、エンコードする際のＧＯＰ単位のビット割り当て量（GOP_TARGET）を配分している。このGOP_DIFFとGOP_TARGETとを変換するもっとも簡単な関数の例を図１８に図示する。
【００３４】
この例では、縦軸YをGOP_TARGET、横軸XをGOP_DIFFとして、Y=AX+Bという評価関数を用いている。なお、全てのピクチャの符号化難易度の総和（DIFFICULTY_SUM）を算出しておく。
【００３５】
先ず、最大ビットレート以下になるように制限を加えた総ビット数USB_BYTESを、スーパーバイザコントローラ１から与えられたビット総量QTY_BYTESと、最大ビットレートMAXRATEを使って、
USB_BYTES = min (QTY_BYTES，MAXRATE × KT × total_frame_number）
・・・（１）
のように求める。
【００３６】
ここで、NTSCの場合 KT=1/8(bits)/30(Hz), PALの場合1/8(bits)/25(Hz)である。また、total_frame_number はエンコードする素材のフレーム総数、min(s,t)は s,t の内で小さい方を選択する関数である。
【００３７】
また、SUPPLY_BYTESは、上記（１）式で求めたUSB_BYTESからＧＯＰのヘッダに必要なビット数TOTAL_HEADERを引いて、
SUPPLY_BYTES = USB_BYTES - TOTAL_HEADER                ・・・（２）
のように求める。
【００３８】
次に、全てのピクチャの符号化難易度の総和は、
DIFFICULTY_SUM = Σdifficulty                          ・・・（３）
と表せる。
【００３９】
また、GOP_TARGETの最小値を次の（４）式のように、
B = GOP_MINBYTES                                       ・・・（４）
とする。
【００４０】
すると、図１８に示した評価関数のような
Σy = A×Σx + B×n
が得られる。
【００４１】
ここで、Σy = SUPPLY_BYTES,  Σx = DIFFICULTY_SUM 、n は GOP の総数である。
【００４２】
よって  A = (SUPPLY_BYTES - B×n)/ DIFFICULTY_SUM となる。すると、各ＧＯＰ毎のターゲット量は、
GOP_TARGET = A × GOP_DIFF + B                         ・・・（５）
と表せる。
【００４３】
その後、各ＧＯＰ内で各ピクチャの符号化難易度に応じたビット配分を行う。ＧＯＰ内での各ピクチャの配分は符号化難易度 の大きさに比例させた場合には、各ピクチャのターゲット量は以下の（６）式で求められる。
target(k) = GOP_TARGET × diffuculty(k)/GOP_DIFF       ・・・（６）
(1 ≦ k ≦ GOP 内の picture 数）
この場合、素材の中に極端に難しい（GOP_DIFFが大きい）ピクチャがあると、非常に大きいGOP_TARGET量となってしまい、システムで許容されている最大レートを越えてしまうため、GOP_MAXBYTESといった固定量でリミッタをかけることが必要である。また、最小のターゲット量もGOP_MINBYTESで制限する。具体的には、以下に説明するアルゴリズムによっている。
【００４４】
ＭＰＥＧビデオのエンコード時には、仮想デコーダのバッファ残量を考慮しながらビット配分することが義務付けられている。この仮想バッファ残量の計算をＶＢＶ（Video buffering Verifier） という。
【００４５】
先ず、図１９を用いてＶＢＶ計算方法を説明する。この計算の最初のOCCUPANCY_UP(0)は次の（７）式に示すように、固定値（この例では VBVMAX * 2/3 )からスタートする。
OCCUPANCY_UP(0) = VBVMAX * 2/3                        ・・・（７）
以下の OCCUPANCY_UPはグラフ上の各ピクチャの上側のポイント、OCCUPANCY_DOWNはグラフ上の各ピクチャの下側のポイントを意味している。
【００４６】
ＤＶＤのバッファサイズVBVMAX(1.75Mbits)に対して、k番目のピクチャのバッファのスタート点をOccupancy_up(k), k 番目のピクチャのターゲット量をtarget(k)とすると、ピクチャにビットを吐き出したあとのバッファ残量 OCCUPANCY_DOWN(k)は後述する（８）式で表される。このバッファには、デコーダのピックアップからビデオのデータ量に応じたビットレートのデータ量(SYSTEM_SUPPLY)が蓄積される。この供給後のバッファ残量 OCCUPANCY_UP(k+1) は次の（９）式で表される。
OCCUPANCY_DOWN(k) = OCCUPANCY_UP(k) - target(k)       ・・・（８）
OCCUPANCY_UP(k+1) = OCCUPANCY_DOWN(k) + SYSTEM_SUPPLY  ・・・（９）
この供給後のバッファ残量は、図１９の図中の右上に上がる量に相当する。供給されるビットレートが大きいほど傾きは大きくなり、バッファにデータがたまりやすくなる。バッファがいっぱいになった場合には、ピックアップからバッファへの供給がストップするため、バッファのオーバーフローに関しては考慮する必要はない。このことは、ある設定値ちょうどに制御する必要はなく、設定値以上になるように制御すれば良いことを意味している。
【００４７】
逆に、各ピクチャのデータ量が大きいと、バッファにたまったデータは減少する。このバッファ残量が一定値以下にならないようにターゲットビット量を計算する。そして、ビデオのデータ量に応じたビットレートのデータ量のSYSTEM_SUPPLYを、
SYSTEM_SUPPLY = MAXRATE(bps) * KT                      ・・・（１０）
のように求める。
【００４８】
図２０にＧＯＰ単位でのターゲットビット配分計算をおこなった例を示す。図２０の（Ａ）は評価関数とGOP_MAXRATE制限を考慮して求めたターゲット量に対して上記VBVバッファ計算をおこなった場合である。ここで、図２０の（Ａ）での［１］，［４］，「７」のピクチャでVBVバッファの下限であるVBVMINの値を下回っている。そこで、VBVがVBVMINを下回ったピクチャを含むＧＯＰのターゲット量を削減させる。ＧＯＰ内でVBV制限を加える前のターゲット量でVBV計算を実行したときのOCCUPANCYの最小値をOcc_minとすると調整量は以下の式であらわされる。ここで、制限をおこなうスタート点kstartは、OCCUPANCY_UP(k)が基準値（VBVLINE : たとえば VBVMAX * 3/4） 以上のkの値で、このときのOCCUPANCY_UP(k)の値をOcc_startとする。
【００４９】
OCCUPANCY_MIN＜ VBVMIN の時
r = (Occ_start - VBVMIN)/ (VBVSTART - Occ_min)        ・・・（１１）
各ターゲットに対して target(j) = target(j) × r （kstart ≦ j ≦ k） とする。
【００５０】
このようにして求められたターゲット量を用いて作成されたコントロールファイルによるエンコード処理を行うことで、素材の画像の難しさに応じた可変ビットレートエンコーディングが実行される。
【００５１】
【特許文献１】特開平８−９８１７９号公報
【特許文献２】特開平８−１４０１００号公報
【発明の開示】
【発明が解決しようとする課題】
【００５２】
ところで、ＤＶＤフォーマットでは、１つのＧＯＰ構造に含まれるフィールド数（以下 display_fields) がNTSCで36以下、PALで30以下という規定がある。符号化難易度測定時には、この制限を守るＧＯＰの長さでＧＯＰの構造が決められる。オフライン処理によるチャプター指定やシーンチェンジ指定が加わると、図１６、図１７のようにＩピクチャが追加されるため、ＧＯＰの数が増加し、かつ、長さの短いＧＯＰが発生することになる。
【００５３】
そもそも、Ｉピクチャはフレーム内だけで符号化されるため、符号化効率が悪い。したがって、ＧＯＰの数がむやみに増加すると符号化効率が悪くなる。また、極端に短い長さのＧＯＰが存在するということは、符号量の多いＩピクチャの間隔が狭いことを意味する。
【００５４】
図２０に示したVBVの計算の例でわかるように、大きいターゲット量のピクチャの間隔が短いとVBVバッファ制限にかかりやすくなり、その結果その部分のレートを下げなければならなくなり問題となっていた。
【００５５】
本発明は、上記実情に鑑みてなされたものであり、Ｉピクチャ、Ｐピクチャ、Ｂピクチャを所定数含んでなる画像符号化グループの長さが短くなっても符号化効率の悪化を防ぐことのできる符号化装置及び符号化方法の提供を目的とする。
【課題を解決するための手段】
【００５６】
本発明に係る符号化装置は、上記課題を解決するために、画像データを符号化する符号化装置において、Ｉピクチャ、Ｐピクチャ、Ｂピクチャを含む符号化グループ内でピクチャタイプを変更し、ピクチャタイプが変更されたピクチャに関連する各画像符号化グループの長さを変更する変更手段と、上記変更手段により長さが変更された符号化グループのうち長さが短い第１の符号化グループと、この第１の符号化グループに隣接する長さが変更されない第２の符号化グループとの各符号化グループの長さを予め決定されている符号化画像数の範囲で調整する際に、上記第２の符号化グループ内のＰピクチャのうち、符号化難易度の大きい方のＰピクチャをＩピクチャに変更して、各画像符号化グループの長さの修正を行う修正手段とを備える。
【００５７】
本発明に係る符号化方法は、上記課題を解決するために、画像データを符号化する符号化方法において、Ｉピクチャ、Ｐピクチャ、Ｂピクチャを含む符号化グループ内でピクチャタイプを変更し、ピクチャタイプが変更されたピクチャに関連する各画像符号化グループの長さを変更する変更工程と、上記変更工程により長さが変更された符号化グループのうち長さが短い第１の符号化グループと、この第１の符号化グループに隣接する長さが変更されない第２の符号化グループとの各符号化グループの長さを予め決定されている符号化画像数の範囲で調整する際に、上記第２の符号化グループ内のＰピクチャのうち、符号化難易度の大きい方のＰピクチャをＩピクチャに変更して、各画像符号化グループの長さの修正を行う修正工程とを備える。
【発明の効果】
【００５８】
本発明に係る符号化装置及び方法は、Ｉピクチャ、Ｐピクチャ、Ｂピクチャを所定数含んでなる画像符号化グループの長さが短くなっても符号化効率の悪化を防ぐことができる。
【発明を実施するための最良の形態】
【００５９】
以下、本発明に係る画像符号化方法及び装置の実施の形態について図面を参照しながら説明する。
【００６０】
この実施の形態は、例えばディジタルビデオカセットテープに記録されたビデオ素材をディジタルビデオディスク（Digital Video Disk：ＤＶＤ）用に、エンコードするためのビデオエンコードシステムであり、図１に示すような構成である。
【００６１】
このビデオエンコードシステムは、上記図１２に示したビデオエンコードシステムと基本的に構成を同じにしているが、ビデオエンコードコントローラ２０でのビット配分処理を異ならせている。なお、上記図１２と同様の動作を行う各部については同一符号を付し説明を省略する。
【００６２】
本実施の形態となる図１に示したビットエンコードシステムの基本的な動作は、上記図１４のフローチャートを参照しながら説明することができるが、制御手段となるＭＰＥＧエンコーダコントローラ２３が実行する上記ビット配分計算部２２内のビット配分プログラム（BIT_ASSIGN）は、図２に示すような処理フローとなる。
【００６３】
この図２に示す処理フローは、上記図１５に示したフローチャートのステップＳ１４とステップＳ１５との間に、ステップＳ２０としてＧＯＰ構造の修正処理工程を設けている。
【００６４】
このステップＳ２０は、ステップＳ１３，ステップＳ１４で画像符号化グループの長さが変更されたときには、隣接する複数の画像符号化グループとの間隔を、予め決定されている上記各符号化画像の数の範囲内で調整するという処理である。
【００６５】
以下、ステップＳ１３のシーンチェンジ処理や、ステップＳ１４でのチャプターの境界処理で、短くなったＧＯＰに対して、ＤＶＤフォーマットの制限内（DISPLAY_MAX:この例では36以内）で数を削減または、極端に短いＧＯＰ長（8以下）の構造を修正する例を図３〜図８を用いて説明する。ここでは後述するプルダウン（pulldown）変換処理は無いものとする。また、ＧＯＰの並びをＧＯＰ０,ＧＯＰ１,ＧＯＰ２とし、ＧＯＰ１を処理の対象とする。ただし、ＧＯＰ１のＩピクチャがチャプター指定又はシーンチェンジ指定されている場合にはこの処理は行わない。
【００６６】
先ず、図３及び図４を用い、チャプター指定に対してＧＯＰ数を削減する場合について説明する。図３の（Ａ）はチャプター指定される前の、各ＧＯＰ内の構成を示している。チャプター指定される前のＧＯＰ０の長さ、すなわちフィールド数display_fieldsと、ＧＯＰ１のフィールド数display_fieldsは共に“２４”である。ここで、ＧＯＰ１内の先頭から５番目のピクチャ（Ｂピクチャ）のときにチャプター（CHAPTERと図示する）指定されると、このＢピクチャは図３の（Ｂ）のようにＩピクチャになる。
【００６７】
このため、図３の（Ａ）のＧＯＰ１は、図３の（Ｂ）に示すようにフィールド数display_fields“８”のＧＯＰ１と、フィールド数display_fields“１６”のＧＯＰ２の二つになる。
【００６８】
しかし、この図３の（Ｂ）に示したＧＯＰ１は、フィールド数display_fieldsが“８”と極端に短いのでＩピクチャが、次のＧＯＰ２のＩピクチャと接近し過ぎることになり符号化効率が悪くなり上述したように構造の修正を必要とする。ここでは、ＧＯＰ１のＩピクチャをＰピクチャに変更することにより、上記図３の（Ｂ）のＧＯＰ１を削除し、ＧＯＰ０とＧＯＰ２よりなる図３の（Ｃ）を形成する。ＧＯＰ１の先頭Ｇ［０］とＧＯＰ２の先頭Ｇ［２］間のフィールド数display_fieldsは“３２”となるので、上述したDISPLAY_MAX“３６”以内というＤＶＤフォーマットの制限を満たすことができる。
【００６９】
チャプター指定によりＧＯＰを削減する場合を示した図３を一般化すると図４のようになる。
【００７０】
ここで、フレーム番号k1とk2の間のdisplay_fields数を次の式で表し、
display_fields(k1 〜 k2)=(k2 - k1)×2+d_adjx
d_adjを、プルダウン変換処理されている場合の補正値とする。プルダウン変換処理されていない場合には d_adjx = 0 となる。  
ＧＯＰ１のＩピクチャがチャプター、シーンチェンジ指定されていないとした場合を前提に図４は、
(G[2] - G[0])× 2 + d_adj0 ≦ DISPLAY_MAXの時、ＧＯＰ１のＩピクチャＩ［１］のピクチャタイプをＰピクチャＰ［０］に変換した状態を示す。
【００７１】
すなわち、チャプター指定によりＢピクチャをＩピクチャに変更して図４の（Ａ）に示すようにＧ［１］を先頭にしたＧＯＰ１と、Ｇ［２］を先頭にしたＧＯＰ２とを形成したが、これではＧＯＰ１のフィールド数が“８”と短いので、ＧＯＰ１のＩピクチャＩ［１］をＰピクチャＰ［１］に変換して図４の（Ｂ）に示すようにＧＯＰ１を削除している。
【００７２】
次に、図５及び図６を用いてチャプター指定に対してＧＯＰを削減できないとき、隣接する一つ前のＧＯＰ長を短くする場合について説明する。図５の（Ａ）はチャプター指定される前の、各ＧＯＰの構成を示している。チャプター指定される前のＧＯＰ０の長さ、すなわちフィールド数display_fieldsと、ＧＯＰ１のフィールド数display_fieldsは共に“３０”である。ここで、ＧＯＰ１内の先頭から５番目ピクチャであるＢピクチャの位置でチャプター指定されると、この５番目のＢピクチャは図５の（Ｂ）のようにＩピクチャになる。
【００７３】
このため、図５の（Ａ）のＧＯＰ１は、図５の（Ｂ）に示すようにフィールド数display_fields“８”のＧＯＰ１と、フィールド数display_fields“２２”のＧＯＰ２との二つのＧＯＰに分けられる。
【００７４】
ここで、ＧＯＰ０の長さが閾値（ここでは２３）以上のため、図５の（Ｂ）のＧＯＰ１のＩピクチャを図５の（Ｃ）のようにＰピクチャに変え、図５の（Ｂ）のＧＯＰ０の一番後ろのＰピクチャを図５の（Ｃ）のようにＩピクチャに変更してＧＯＰ０の長さ、すなわちフィールド数display_fieldsを“２４”フィールドに削減し、ＧＯＰ１の長さdisplay_fieldsを“１４”に伸ばしている。
【００７５】
また、図５の（Ｄ）に示すように、図５の（Ｃ）のＧＯＰ１のＩピクチャをＰピクチャに変え、図５の（Ｃ）のＧＯＰ０の後ろから４番目のピクチャであるＰピクチャをＩピクチャに変更してＧＯＰ０の長さを１８フィールドに削減し、ＧＯＰ１の長さを２０フィールドに伸ばしてもよい。
【００７６】
このように、変更の対象となるＧＯＰ０のＰピクチャは複数（この例では２個）存在するが、その場合には、Ｐピクチャの符号化難易度の大きい方を選択してＩピクチャに変更する。その理由は、符号化難易度の大きい方は、符号化予測が悪いことを意味しているため、フレーム内で処理させるように変更した方が有利だからである。
【００７７】
チャプター指定によりＧＯＰの長さを削減する場合を示した図５を一般化すると図６のようになる。
【００７８】
ここで、図６は、
(G[1] - G[0])× 2 + d_adj1≧23で、
かつ(G[2] - G[1])× 2 + d_adj2 ≦8
の変換条件のとき、
Ｉ［１］のピクチャタイプをＰピクチャＰ［１］に変更し、
さらに、ＧＯＰ０内の複数のＰピクチャの内、符号化難易度が大きい方のＰピクチャをＩピクチャに変換する場合について、二つに分けて示している。
【００７９】
変換前の図６の（Ａ）において、ＧＯＰ０の先頭から１５番目のＰピクチャＰ１５［０］が、先頭から１２番目のＰピクチャＰ１２［０］の符号化難易度より大きい場合、図６の（Ｂ）に示すように、ＰピクチャＰ１５［０］をＩピクチャに変換する。
【００８０】
一方、変換前の図６の（Ａ）において、ＧＯＰ０の先頭から１５番目のＰピクチャＰ１５［０］が、先頭から１２番目のＰピクチャＰ１２［０］の符号化難易度以下である場合、図６の（Ｃ）に示すように、ＰピクチャＰ１２［０］をＩピクチャに変換する。
【００８１】
次に、図７及び図８を用いてシーンチェンジ処理に対してＧＯＰを削減できない場合で隣接する一つ後ろのＧＯＰ長を短くする場合について説明する。図７の（Ａ）はシーンチェンジ処理される前の、各ＧＯＰの構成を示している。シーンチェンジ処理される前のＧＯＰ０とＧＯＰ１のフィールド数display_fieldsの長さは“３０”である。ここで、ＧＯＰ０内の最後のＰピクチャの位置でシーンチェンジ（Scene changeと図示する）処理されると、この最後のＰピクチャを図７の（Ｂ）のようにＩピクチャに変換する。このため、図７の（Ａ）のＧＯＰ０は二つのＧＯＰに分けられ、図７の（Ｂ）に示すようにフィールド数display_fields“２４”のＧＯＰ０’と、フィールド数display_fields“６”のＧＯＰ０になる。このＧＯＰ０の後には、フィールド数display_fields“３０”のＧＯＰ１が続いている。
【００８２】
ここで、ＧＯＰ１の長さが閾値（ここでは 23 ）以上のため、図７の（Ｃ）に示すようにＧＯＰ１のＩピクチャをＰピクチャに変え、ＧＯＰ１の先頭から６番目のピクチャであるＰピクチャをＩピクチャに変更してＧＯＰ１の長さを“２４”フィールドに削減し、ＧＯＰ０の長さを“１２”に伸ばしている。
【００８３】
この場合、変更の対象となるＰピクチャの数は上記図５の場合より制限している。その理由は、処理をフレーム番号の小さい順におこなっていることから、ＧＯＰ１の長さを短くしすぎると、次のＧＯＰの処理に影響がおよぼされることを防止するためである。
【００８４】
シーンチェンジ処理によりＧＯＰの長さを削減する場合を示した図７を一般化すると図８のようになる。
【００８５】
ここで、図８は、
(G[2] - G[1])× 2 + d_adj2≧23で、
かつ(G[1]-G[0])× 2 + d_adj1 ≦8
の変換条件のとき、
Ｉ［１］のピクチャタイプをＰピクチャに変更し、Ｐ［１］のピクチャタイプをＩピクチャに変更する様子を示している。
【００８６】
すなわち、シーンチェンジ処理によりＰピクチャをＩピクチャに変更して図７の（Ｂ）に示すようにＧＯＰ０’とＧＯＰ１とを形成したが、これではＧＯＰ０のフィールド数が“６”と短いので、ＧＯＰ１のＩピクチャＩ［１］をＰピクチャに変換し、さらにＧＯＰ１の最初のＰピクチャをＩピクチャに変換して図８の（Ｂ）に示すようにＧＯＰ１の長さを削減している。
【００８７】
このように、本発明による画像符号化方法及び装置によれば、チャプターの指定やシーンチェンジ処理されて短くなったＧＯＰを削減または、極端に短いＧＯＰ長の構造を修正することができ、符号化効率を改善することができる。
【００８８】
なお、以上には、プルダウン変換処理を考慮しない場合を説明したが、プルダウン変換処理によりdisplay_fields 数を補正する場合について以下に説明する。最初にプルダウン変換処理について説明する。
【００８９】
映画フィルムは２４コマ／秒で構成されているが、これをＮＴＳＣの３０フレーム／秒に変換するために、周期的に同じフィールド画像を繰り返す処理を行っている。ここでは、この処理を２−３プルダウン処理変換ということにする。図９に２−３プルダウン変換処理の原理を示す。プルダウンのパターンの位相は、フィルム素材からＮＴＳＣビデオ素材の変換時に決定され、多くの場合パターンは規則的に変換されている。
【００９０】
ビデオの１フレームは２フィールドで構成されるが、その内の 1st field を top_field とし、2nd field を bottom_field とする。また、同じフィールド画を繰り返す場所は repeat_first_field と呼ぶこととする。このような映画素材の場合、同じフィールドである位置がわかっていれば、エンコードの際にそのフィールドを符号化しないようにすれば、圧縮効率があがることになる。
【００９１】
このような２−３プルダウン変換処理パターンの検出及び、パターンを考慮したプルダウンパターンの自動検出手法では、エンコードの際に現在と１フレーム前の top_field, bottom_field の差分を元に repeat_first_field の位置を調べ、プルダウン位相を検出できる。
【００９２】
符号化の際の２−３プルダウン変換処理のパターンによる組合せは以下の４通りである。
0: bottom_field_first
1: bottom_field_first,  repeat_first_field
2: top_field_first
3: top_field_first,     repeat_first_field
これらをピクチャーモードと定義する。
【００９３】
次に、２−３プルダウン変換処理パターンとＮＴＳＣのロールの先頭からのビデオフレーム番号kの関係を考える。リピートされていないtop_fieldを含む位置のkのピクチャーモードをp_mode[k]とする。すると、０〜３に属さないフレーム番号が存在することがわかる。この場合のp_modeの値を４とする。
【００９４】
図１０は、p_mode[k] の状態遷移図である。プルダウンが規則正しく連続している場合には、p_mode[k]の値は、次の（１２）式に示すように、フレーム番号 kの増加にともなって５で割った余りの体（mod 5）において１ずつ増加していく。 
p_mode[k+1] = (p_mode[k] + 1 ) mod 5                   ・・・（１２）
図１１のadjust0, adjust1 はそれぞれ display_fields を数えるスタートのフレーム番号の p_mode と、終りのフレーム番号の p_mode に対する補正量を示している。たとえば、数え始めの p_mode が０の場合には、符号化されているものには前のフレームの
bottom_field が含まれているため＋１となる。数え終りの p_mode が０の場合には、最後の bottom_field が含まれていないため−１となる。
【００９５】
結局、上記図４、図６、図８でプルダウン変換処理が行われた場合、Ｇ［０］，Ｇ［１］，Ｇ［２］に対する補正量 d_adjx は以下の式で表すことができる。
adjust0[4] = {+1,+1,0,0}     ・・・（１３）
adjust1[4] = {-1,-1,0,0}     ・・・（１４）
d_adj0 = adjust0[p_mode[G[0]]] + adjust1[p_mode[G[2]]]   ・・・（１５）
d_adj1 = adjust0[p_mode[G[0]]] + adjust1[p_mode[G[1]]]   ・・・（１６）
d_adj2 = adjust0[p_mode[G[1]]] + adjust1[p_mode[G[2]]]   ・・・（１７）
このようにプルダウン変換処理により、映画フィルムをビデオに変換する場合においても、上述したようにフィールド数を補正することができるので、本発明の画像符号化方法及び装置を適用でき、チャプターの指定やシーンチェンジ処理が施されて短くなったＧＯＰを削減または、極端に短いＧＯＰ長の構造を修正することができ、符号化効率を改善することができる。
【００９６】
なお、上記画像符号化方法により圧縮画像信号が記録された記録媒体は、チャプターの指定やシーンチェンジ処理がされていても、隣接する他の画像符号化グループとの間隔が予め決定されている符号化画像数の範囲内で調整されてから、上記各符号化画像に配分するビット量が決定されている画像符号化グループを記録することになるので、符号化効率が改善された高品質の映像を提供できる。
【００９７】
また、上記画像符号化方法により符号化された画像情報を記録媒体に記録するのではなく、例えば有線回線等の伝送路を用いて伝送する画像伝送方法においては、フレーム内符号化画像、フレーム間順方向予測符号化画像、双方向予測符号化画像を所定数含んでなる画像符号化グループの長さを変更するときには、隣接する他の画像符号化グループの間隔を、予め決定されている符号化画像数の範囲内で調整してから、上記各符号化画像に配分するビット量を計算して伝送するので、チャプターの指定やシーンチェンジ処理されて短くなったＧＯＰを削減または、極端に短いＧＯＰ長の構造を修正することができ、符号化効率を改善することができる。
【図面の簡単な説明】
【００９８】
【図１】本発明に係る画像符号化方法及び装置の実施の形態となるビデオエンコードシステムの具体例のブロック図である。
【図２】上記ビデオエンコードシステムに使われるビデオエンコードコントローラ内部のビット配分計算部の実行するビット配分プログラムを説明するためのフローチャートである。
【図３】チャプター指定に対してＧＯＰ数を削減する場合の、上記ビデオエンコードシステムの動作を説明するための図である。
【図４】上記図３を一般化した図である。
【図５】チャプター指定に対してＧＯＰを削減できないとき、隣接する一つ前のＧＯＰ長を短くする場合の、上記ビデオエンコードシステムの動作を説明するための図である。
【図６】上記図５を一般化した図である。
【図７】シーンチェンジ処理に対してＧＯＰを削減できないとき、隣接する一つ後ろのＧＯＰ長を短くする場合の、上記ビデオエンコードシステムの動作を説明するための図である。
【図８】上記図７を一般化した図である。
【図９】プルダウン変換処理を説明するための図である。
【図１０】プルダウン変換処理の状態遷移図である。
【図１１】プルダウン変換処理に対するＧＯＰ内フィールド数の補正値を説明するための図である。
【図１２】従来のビデオエンコードシステムの具体例のブロック図である。
【図１３】ＧＯＰ構造を説明するための図である。
【図１４】上記従来のビデオエンコードシステムにおけるエンコード処理を説明するためのフローチャートである。
【図１５】上記図１４に示したエンコード処理におけるビット配分計算処理を説明するためのフローチャートである。
【図１６】シーンチェンジ指定によるピクチャタイプの変更を説明するための図である。
【図１７】チャプター指定によるピクチャタイプの変更を説明するための図である。
【図１８】ＧＯＰ単位の評価関数の例を示す特性図である。
【図１９】ＶＢＶの計算方法を説明するための特性図である。
【図２０】ターゲットビット配分の具体例を示す図である。
【符号の説明】
【００９９】
１  スーパーバイザコントローラ、２０  ビデオエンコードコントローラ、２２  ビット配分計算部、２３  ＭＰＥＧエンコーダコントローラ、２５  ＭＰＥＧエンコーダ
【図１】
0004650454.tif 000002
【図２】
0004650454.tif 000003
【図３】
0004650454.tif 000004
【図４】
0004650454.tif 000005
【図５】
0004650454.tif 000006
【図６】
0004650454.tif 000007
【図７】
0004650454.tif 000008
【図８】
0004650454.tif 000009
【図９】
0004650454.tif 000010
【図１０】
0004650454.tif 000011
【図１１】
0004650454.tif 000012
【図１２】
0004650454.tif 000013
【図１３】
0004650454.tif 000014
【図１４】
0004650454.tif 000015
【図１５】
0004650454.tif 000016
【図１６】
0004650454.tif 000017
【図１７】
0004650454.tif 000018
【図１８】
0004650454.tif 000019
【図１９】
0004650454.tif 000020
【図２０】
0004650454.tif 000021