(57)【特許請求の範囲】
【請求項１】
プルダウン変換処理の施されるビデオ素材を符号化する画像符号化方法において、
上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出工程と、
上記位相パターン検出工程が検出した位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正工程と、
上記位相パターン修正工程で修正した位相パターンに基づいて上記ビデオ素材のビット配分を計算する計算工程とを備えることを特徴とする画像符号化方法。
【請求項２】
フレーム内符号化画像、フレーム間順方向予測符号化画像、双方向予測符号化画像を用いて上記ビデオ素材を符号化することを特徴とする請求項１記載の画像符号化方法。
【請求項３】
プルダウン変換処理の施されるビデオ素材を符号化する画像符号化装置において、
上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出手段と、
上記位相パターン検出手段により検出された位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正手段と、
上記位相パターン修正手段により修正された位相パターンに基づいて上記ビデオ素材のビット配分を計算する計算手段と
を備えることを特徴とする画像符号化装置。
【請求項４】
ビデオ素材のプルダウン変換変換処理に伴う位相パターンの乱れを修正する画像処理方法において、
上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出工程と、
上記位相パターン検出工程が検出した位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正工程と
を備えることを特徴とする画像処理方法。
【請求項５】
ビデオ素材のプルダウン変換処理に伴う位相パターンの乱れを修正する画像処理装置において、
上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出手段と、
上記位相パターン検出手段により検出された位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正手段と
備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プルダウン変換処理の施されるビデオ素材を符号化する画像符号化方法及び画像符号化装置、並びにビデオ素材のプルダウン変換処理に伴う位相パターンの乱れを修正する画像処理方法及び画像処理装置に関する。
【０００２】
【従来の技術】
ビデオ情報をディジタルビデオディスク（Digital Video Disk：ＤＶＤ）やビデオＣＤのようなパッケージメディアに蓄積する際、上記ビデオ情報に圧縮符号化処理を施すエンコードシステムでは、最初に素材の画像の符号化難易度（Difficulty）を測定し、その符号化難易度を元に、パッケージメディアの記録容量内で与えられるバイト数に収まるように、各ビデオ情報のフレームごとにビット配分処理を行ってエンコードするという方法が一般に採用されている。以下、このエンコード方法を２パスエンコーディング方法という。
【０００３】
例えば、上記ディジタルビデオディスク用に、上記２パスエンコーディング方法を採用して、ビデオ情報を圧縮符号化するビデオエンコードシステムの具体例を図１２に示す。
【０００４】
図１２において、ビデオエンコードの制御を行うビデオエンコードコントローラ１０は、システム全体を管理するスーパーバイザコントローラ１に、ネットワーク２を介して接続されている。
【０００５】
スーパーバイザコントローラ１はオペレーティングシステムを構成するプログラムの内、特にシステム全体の動きを監視し、効率的に制御するプログラムであるスーパーバイザを実行するコントローラである。このビデオエンコードシステムにおいてはＤＶＤのオーサリングシステム全体の管理を行い、ビデオ、オーディオ、字幕やメニューといった各エンコードシステムにエンコード条件を与え、エンコード結果の報告を受ける。
【０００６】
このビデオエンコードシステムの具体例に対しては、例えばv.enc というファイルによってビデオエンコード条件を指定している。そして、ビデオエンコードコントローラ１０側からは、エンコード結果のビットストリームがハードディスクドライブ（ＨＤＤ）等を複数並列に接続して記録容量と転送速度性能を向上させたＲＡＩＤ１６（Redundant Arrays of Inexpensive Diskes）上に書き込まれたアドレスv.adrと、エンコード結果のビットストリームがオーディオや字幕，メニュー等のサブピクチャとマルチプレックスされる際に必要とされるデータ(vxxx.aui)を報告している。
【０００７】
ビデオエンコードコントローラ１０は、グラフィカルユーザインターフェース（Graphical User Interfece:ＧＵＩ）１１と、後述するビット配分計算処理プログラム（Bit_Assign）を格納しているビット配分計算部１２と、このビット配分計算部１２内部のビット配分計算処理プログラムを実行するＭＰＥＧエンコードコントローラ１３と、ディジタルＶＴＲコントローラ１４とを備えている。
【０００８】
ユーザは、グラフィカルユーザインターフェース１１を用い、ビット配分計算部１２の上記プログラムと、ＭＰＥＧエンコードコントローラ１３の３つのプログラムを管理することができる。また、ＤＶＴＲコントローラ１４も管理できる。
【０００９】
ＭＰＥＧエンコードコントローラ１３は、上記ビット配分計算部１２内部の上記ビット配分計算処理プログラムを実行すると共に、ＭＰＥＧエンコーダ１５を制御する。また、ＤＶＴＲコントローラ１４はＤＶＴＲ１７を制御する。このＤＶＴＲ１７はＭＰＥＧエンコーダ１５に接続しており、ＭＰＥＧエンコーダ１５はエンコードした結果を表示するためにモニタ１８に接続している。さらに、ＭＰＥＧエンコーダ１５は、エンコード結果を記録するために上記ＲＡＩＤ１６にも接続している。
【００１０】
ＭＰＥＧエンコーダ１５では、動き補償予測による時間方向の冗長度の除去を行っている。また、ＭＰＥＧエンコーダ１５では、フレーム内だけで符号化されるフレーム内符号化画像をＩピクチャ（Intra Coded）、過去の画面から現在を予測することによって符号化されるフレーム間順方向予測符号化画像をＰピクチャ（Predictive Coded）、過去、未来の両方向の画像から現在を予測することによって符号化される双方向予測符号化画像をＢピクチャ（Bidirectionaly Predictive Coded）を用いて、ビデオ情報を圧縮符号化している。ここでは、必ずＩピクチャを１つ含むピクチャーのまとまりを図１３に示すようなＧＯＰ（Group of Pictures）としている。この図１３において、ＧＯＰのフレーム数Ｎは１５であり、表示順のＧＯＰの先頭は、Ｉピクチャの前で、Ｐ又はＩピクチャの次のＢピクチャーである。ＧＯＰの最後は、次のＩピクチャの前の最初のＰピクチャである。
【００１１】
このビデオエンコードシステムの動作について図１４のフローチャートを参照して説明する。先ず、ステップＳ１で、スーパーバイザコントローラ１からネットワーク２経由でビデオに割り当てるビット総量や最大レートなどのエンコード条件v.encが与えられ、ＭＰＥＧエンコードコントローラ１３はこのエンコード条件を設定する。その後、ステップＳ２でＭＰＥＧエンコードコントローラ１３がＭＰＥＧエンコーダ１５を使ってエンコード素材の符号化難易度（Difficulty）を測定する。ここでは、各画素のＤＣ値や動きベクトル量ＭＥも読んでおく。そして、これらの測定結果により、ファイルを作成しておく。
【００１２】
実際のDifficultyの測定は以下のように行う。エンコード素材となるビデオ情報はＤＶＴＲ１７によってマスターテープであるディジタルビデオカセットから再生される。ＭＰＥＧエンコードコントローラ１３は、ＭＰＥＧエンコーダ１５を介して、ＤＶＴＲ１７によって再生されたビデオ情報の符号化難易度を測定する。ここでは、符号化の際に量子化ステップ数を固定値に設定した条件で発生ビット量を測定する。動きが多く、高い周波数成分が大きい画像では発生ビット量が大きくなり、静止画や平坦な部分が多い画像では発生ビット量が少なくなる。この発生ビット量の大きさを上記符号化難易度としている。
【００１３】
次に、ステップＳ３では、ステップＳ１で設定されたエンコード条件を元に、ステップＳ２で測定された各ピクチャーの符号化難易度の大きさに応じて、ＭＰＥＧエンコードコントローラ１３がビット配分計算部１２内部の計算プログラム（BIT_ASSIGN）を実行し、割り当てビット量（ターゲット量 :target）の配分計算を行う。
【００１４】
そして、このステップＳ３でのビット配分計算による結果を使ってエンコードを実行するかどうかをＭＰＥＧエンコーダ１５に内蔵されているローカルデコーダ出力の画質によってユーザに判断させる。
【００１５】
実際には、ステップＳ４で、上記ビット配分によるビットストリームをＲＡＩＤ１６に出力しないで、任意の処理範囲を指定できるプレビユーモード（Preview）を行って、ユーザーが画質をチェックする。
【００１６】
ステップＳ５の画質評価で画質に問題がない場合にはステップＳ６に進み、ＭＰＥＧエンコーダ１５によるエンコード処理を実行するが、画質に問題がある場合には、ステップＳ８に進み、問題のある部分のレートを上げるとか、フィルターレベルを調整するといった画質調整のためのカスタマイズ作業を行ってから、ステップＳ９でビット配分再計算を実行する。
【００１７】
その後、ステップＳ４に戻り、カスタマイズした部分をプレビューして、ステップＳ５で画質を確認し、すべての部分が良ければステップＳ６に進み、全体のエンコードをＭＰＥＧエンコーダ１５に実行させる。エンコード結果であるビットストリームは、ステップＳ７でＳＣＳＩ（Small Computer System Interface）経由で直接、ＲＡＩＤ１６に書き込まれる。
【００１８】
ステップＳ６でのエンコード後、ビデオエンコードコントローラ１０は上述したようなエンコード結果情報をネットワーク経由でスーパーバイザコントローラ１に報告する。
【００１９】
この図１４のフローチャートにおいて、ステップＳ２，ステップＳ４及びステップＳ６を除いた各ステップの処理はオフライン処理を意味している。
【００２０】
以下、特に、ステップＳ３でＭＰＥＧエンコードコントローラ１３によって実行されるビット配分計算部１２内部のビット配分計算について図１５を用いて詳細に説明する。先ず、ディスク容量の中からビデオに割り当てられたビット総量（QTY_BYTES）と、最大ビットレート（MAXRATE）がスーパーバイザコントローラ１から指定される。これに対して、ＭＰＥＧエンコードコントローラ１３は、上記ビット配分計算部１２内部のビット配分計算プログラムを実行し、最大ビットレート（MAXRATE）以下になるように制限を加えた総ビット数 (USB_BYTES)を求め、この値からＧＯＰのヘッダ（GOP header）に必要なビット数(TOTAL_HEADER)を引いた値と、全体のフレーム総数からターゲット数の総和の目標値となるSUPPLY_BYTESを算出する。そして、このSUPPLY_BYTESの大きさに収まるように各ピクチャーへの割り当てビット量（ターゲット量：target）を配分する。全てのピクチャへの割当てビット量の総和を TARGET_BYTES とすると、SUPPLY_BYTES から TARGET_BYTES を引いた値がビット配分での余り量 (REMAIN_BYTES) となる。
【００２１】
このステップＳ３でのビット配分計算処理を詳細に示したのが図１６のフローチャートである。
【００２２】
先ず、ステップＳ１１で上述したように、スーパーバイザコントローラ１から送られた上記ビット総量（QTY_BYTES）と、最大ビットレート（MAXRATE）を入力する。次に、上記図１４のステップＳ２の符号化難易度（Difficulty）の測定で作成された測定ファイルをステップＳ１２でそのまま読み込み、符号化難易度の測定の際に、併せて測定された各画像のＤＣ値や動きベクトル量ＭＥの大きさのパラメータの変化量から、ステップＳ１３でシーンが変化するポイントを見つける。
【００２３】
このステップＳ１３でのシーンチェンジ検出／処理は、本件出願人が既に特願平８-２７４０９４号明細書及び図面にて開示した「映像信号処理装置」に応じてシーンチェンジ点を検出する処理である。
【００２４】
この「映像信号処理装置」は、映像信号の各フレームの直流レベルを検出し、この直流レベルを曲線近似して得られる誤差値より、上記映像信号のシーンチェンジのフレームを検出して、シーンチェンジ点を明らかにする。そして、シーンがチェンジしたとして検出したポイントでは、ＰピクチャーをＩピクチャーに変更して、画質改善を計る。
【００２５】
この、ステップＳ１３では、チャプター（CHAPTER）境界処理も行う。ＤＶＤ再生装置でのチャプターサーチ時には、特定されないピクチャーからジャンプしてくることになるが、その場合でも再生画像の乱れがないようにするため、チャプターの位置が必ずＧＯＰの先頭になるようにピクチャータイプを変更したり、ＧＯＰ長を制限する。
【００２６】
このようなステップＳ１２，ステップＳ１３での一連の作業の結果、ピクチャータイプ（Ｉ，Ｐ，Ｂピクチャ）の変更処理が実行されると、符号化難易度（Difficulty）測定時のピクチャータイプが変更されるため、ステップＳ１４〜ステップＳ１７で変更後のピクチャータイプに合わせた符号化難易度の値に補間／補正する。
ステップＳ１４〜ステップＳ１７での符号化難易度の補間／補正によって得られた符号化難易度と、全体に与えられたビット数(SUPPLY_BYTES)に応じて、ステップＳ１８〜ステップＳ２０で各ピクチャーごとのターゲットビット数を計算する。
【００２７】
そして、ステップＳ２１でＲＡＩＤ１６にエンコード結果のビットストリームを書き込む際のアドレスの計算を行った上で、ステップＳ２２に進み、エンコーダ用のコントロールファイルを作成する。
【００２８】
例えば、ビット配分計算の具体例として、先ずＧＯＰ単位にビット量を配分し、その後、各ＧＯＰ内で各ピクチャーの符号化難易度に応じたビット配分を行うとする。ここでは、各ＧＯＰ毎の符号化難易度の和であるGOP_DIFFに応じて、エンコードする際のＧＯＰ単位のビット割り当て量（GOP_TARGET）を配分している。このGOP_DIFFとGOP_TARGET量とを変換するもっとも簡単な関数の例を図１７に図示する。この例では、縦軸YをGOP_TARGET、横軸XをGOP_DIFFとして、Y=AX+Bという評価関数を用いている。
【００２９】
先ず、最大ビットレート以下になるように制限を加えた総ビット数USB_BYTESを、スーパーバイザコントローラ１から与えられたビット総量QTY_BYTESと、最大ビットレートMAXRATEを使って、
USB_BYTES = min (QTY_BYTES，MAXRATE × KT × total_frame_number）・・・（１）
のように求める。
【００３０】
ここで、ＮＴＳＣの場合 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）の総和は、ステップＳ１７で、
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                         ・・・（５）
と表せる。
【００３７】
その後、ステップＳ２０で各ＧＯＰ内で各ピクチャーの符号化難易度（Difficulty）に応じたビット配分を行う。ＧＯＰ内での各ピクチャーの配分は符号化難易度 の大きさに比例させた場合には、各ピクチャーのターゲット量は以下の（６）式で求められる。
【００３８】
target(k) = GOP_TARGET × diffuculty(k)/GOP_DIFF       ・・・（６）
(1 ≦ k ≦ GOP 内の picture 数）
次に映画（フィルム）素材の処理について説明する。図１８に示すように、映画フィルムは２４コマ／秒で構成されているが、これをＮＴＳＣの３０フレーム／秒に変換するために、周期的に同じフィールド画像を繰り返す処理を行っている。ここでは、この処理を2/3プルダウン変換処理ということにする。
【００３９】
プルダウンのパターンの位相は、フィルム素材 -> ＮＴＳＣビデオ素材の変換時に決定され、多くの場合パターンは規則的に変換されている。
【００４０】
ビデオの１フレームは２フィールドで構成されるが、その内のファーストフィールド(1st field)をトップフィールド(top_field)とし、セカンドフィールド（2nd field）をボトムフィールド(bottom_field)とする。また、同じフィールド画を繰り返す場所はリピートファーストフィールド(repeat_first_field)と呼ぶこととする。このような映画素材の場合、同じフィールドである位置が分かっていれば、エンコードの際にそのフィールドを符号化しないようにすることで、圧縮効率を上げらることができる。
【００４１】
このような2/3プルダウンパターンの検出及び、パターンを考慮したプルダウンパターンの自動検出手法では、エンコードの際に現在と１フレーム前のtop_field, bottom_fieldの差分を元に repeat_first_field の位置を調べ、プルダウン位相を検出している。
符号化の際の2/3プルダウンパターンによる組合せは以下の４通りである。
【００４２】
0: bottom_field_first
1: bottom_field_first,  repeat_first_field
2: top_field_first
3: top_field_first,     repeat_first_field
これらをピクチャーモード(p_mode)と定義する。
【００４３】
2/3プルダウンパターンと、ＮＴＳＣによるビデオ素材の入ったビデオテープ１ロールの先頭からのビデオフレーム番号kの関係を考える。リピートされていない top_fieldを含む位置のkのピクチャモードをp_mode[k]とする。すると、図１８からわかるように、p_modeが0〜3に属さないフレーム番号が存在することがわかる。この場合の p_mode の値を4とする。
【００４４】
図１９は、p_mode[k]の状態遷移図である。プルダウンパターンが規則正しく連続している場合には、p_mode[k]の値は、次の（７）式に示すように、フレーム番号kの増加にともなって5で割った余りの体（mod 5) において１ずつ増加していく。
【００４５】
p_mode[k+1] = (p_mode[k] + 1 ) mod 5                  ・・・（７）
プルダウンパターンが乱れた場合には、次の（８）式に示すように、p_modeが0または2の場合のみ、その値を繰り返すことができる。
【００４６】
p_mode[k+1] = (p_mode[k]+1) mod 5
(p_mode[k] が 0 または 2 の場合に限る)       ・・・（８）
２パスエンコーディング方法を採用したシステムにおいては、図１４のステップＳ２での符号化難易度の測定をおこなう仮エンコードの際に、このプルダウンパターンを自動検出する。この時測定されたプルダウンパターンを元にビット配分計算し、コントロールファイルを作成する。そして、本エンコード時には、コントロールファイルに記述されたビット配分に従って符号化を実行する。
【００４７】
【発明が解決しようとする課題】
ところで、上記仮エンコードの際のプルダウンパターンの自動検出手法では、現在と１フレーム前のtop_field, bottom_fieldの差分を元にプルダウンパターンの検出を行っているので、対象となる画像が静止画像に近い場合、正しく検出できないことがある。
【００４８】
例えば、映画の最初の部分について考える。最初はタイトルシーンから始まるが、そのような映像は黒からフェードインし、映画会社のロゴがでて、黒にフェードアウトする。黒へのフェードイン／アウトのような動きが少ない部分については、上述したような現在と１フレーム前のtop_field, bottom_fieldの差分により、正確な位相を検出するのが困難であり、誤ることが多い。
【００４９】
そして、動きの少ない部分の直後、動きの激しいシーンから始まる場合には、正しい位相にロックするまでの間は、誤ったプルダウンパターンで処理されるため、エンコード結果の画像の動きが不自然になってしまうことがあった。
【００５０】
本発明は、上記実情に鑑みてなされたものであり、プルダウンパターンの位相を検出するのに、対象となる画像に動きがない場合でも、プルダウンパターンの位相を正しく検出でき、フレーム間に不自然な動きの生じるのを防ぐように、符号化処理を施すことのできる画像符号化方法及び装置の提供を目的とする。
【００５３】
【課題を解決するための手段】
本発明に係る画像符号化方法は、上記課題を解決するために、プルダウン変換処理の施されるビデオ素材を符号化する画像符号化方法において、上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出工程と、上記位相パターン検出工程が検出した位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正工程と、上記位相パターン修正工程で修正した位相パターンに基づいて上記ビデオ素材のビット配分を計算する計算工程とを備える。
【００５４】
本発明に係る画像符号化装置は、上記課題を解決するために、プルダウン変換処理の施されるビデオ素材を符号化する画像符号化装置において、上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出手段と、上記位相パターン検出手段により検出された位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正手段と、上記位相パターン修正手段により修正された位相パターンに基づいて上記ビデオ素材のビット配分を計算する計算手段とを備える。
【００５５】
本発明に係る画像処理方法は、上記課題を解決するために、ビデオ素材のプルダウン変換変換処理に伴う位相パターンの乱れを修正する画像処理方法において、上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出工程と、上記位相パターン検出工程が検出した位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正工程とを備える。
また、本発明に係る画像処理装置は、上記課題を解決するために、ビデオ素材のプルダウン変換処理に伴う位相パターンの乱れを修正する画像処理装置において、上記プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出手段と、上記位相パターン検出手段により検出された位相パターンの乱れを、位相パターンの乱れた位置のフレームの前後の位相関係に基づいて時間的に後ろの方から修正していき、修正する範囲よりも前の範囲との接続がプルダウンパターンが乱れた場合に許される所定のピクチャーモードの値を繰り返して修正する位相パターン修正手段と備える。
【００５６】
【発明の実施の形態】
以下、本発明に係る画像符号化方法及び装置の実施の形態について図面を参照しながら説明する。
【００５７】
この実施の形態は、例えばディジタルビデオカセットテープに記録されたビデオ素材をディジタルビデオディスク（Digital Video Disk：ＤＶＤ）用に、２パスエンコーディング方法を採用してエンコードするためのビデオエンコードシステムであり、図１に示すような構成である。
【００５８】
このビデオエンコードシステムは、上記図１２に示したビデオエンコードシステムと基本的に構成を同じにしているが、ビデオエンコードコントーローラ２０内部のＭＰＥＧエンコードコントローラ２３での処理を異ならせている。
【００５９】
すなわち、ＭＰＥＧエンコードコントローラ２３は、プルダウン変換処理の位相パターンの乱れを検出する位相パターン検出工程と、この位相パターン検出工程が検出した位相パターンの乱れを修正する位相パターン修正工程とを備え、上記位相パターン検出工程が上記位相パターンの乱れを検出したとき、上記位相パターン修正手段で位相を修正してから、ビット配分を計算するというビット配分計算プログラム(BIT_ASSING)をビット配分計算部２２内部で実行する。
【００６０】
本実施の形態となる図１に示したビデオエンコードシステムの基本的な動作は、上記図１４のフローチャートを参照しながら説明することができる。特に本発明で重要となるのは、ステップＳ２での符号化難易度の測定処理である。
【００６１】
ステップＳ２での符号化難易度の測定は、以下のように行うことができる。すなわち、エンコード素材となるビデオ情報はＤＶＴＲ１７によってディジタルビデオカセットから再生される。ＭＰＥＧエンコードコントローラ２３は、ＭＰＥＧエンコーダ２５を介して、ＤＶＴＲ１７によって再生されたビデオ情報の符号化難易度を測定している。
【００６２】
このとき、ビデオ素材が上述したように2/3プルダウン変換処理が必要とされる素材であるとき、ＭＰＥＧエンコードコントローラ２３は、ＭＰＥＧエンコーダ２５を制御し、上記符号化難易度の測定処理の際に、上記２／３プルダウン変換処理を自動検出する。
【００６３】
具体的には、現在と１フレーム前の上記top_field, bottom_fieldの差分を元に repeat_first_field の位置を調べ、プルダウン位相を検出している。
しかし、このプルダウンパターンの位相の自動検出時には、対象となる画像が、静止画のような動きが非常に少ないシーンである場合、上記プルダウンパターンの位相を誤検出する可能性がある。
【００６４】
素材のプルダウンパターンが規則正しいと仮定すると、上記位相パターン検出工程で検出できるプルダウンパターンの遷移が乱れたフレーム番号kは、次の（９）式を満たしていることになる。
【００６５】
p_mode[k+1] ≠ (p_mode[k] + 1) mod 5                ・・・（９）
このプルダウンパターンが乱れた位置のフレームの前後の位相関係から上記位相パターン修正工程で位相パターンを修正する。
【００６６】
例えば、マニュアルで位相パターンの修正を行う際のＧＵＩ２１を介しての設定ウインドウの具体例を図２に示す。ユーザーは、位相が乱れた位置を含む、修正する範囲のスタートとエンドのタイムコードTSとTEを指定する。図中、pm_change が“1”に設定されている範囲が修正を指定した範囲である。このようなカスタマイズパラメータ指定作業の結果は、次の表１に示すような、weight.txt というファイルとして作成する。
【００６７】
【表１】
0004161385.tif 000002
【００６８】
ここで、ENCU_nb はエンコードするビデオカセットのロールの番号、Filter（表１中にはFilと記す。）はフィルターの強さ、D_weight（D_w）はビット配分の際の重み係数を意味している。また、Scene_add（S_add）はシーンチェンジ点などでＰピクチャをＩピクチャにマニュアルで変更したい場合に用いる。また、mquant_level（Mq）は、各ピクチャーでの平坦な画像の場合のフレーム内の処理モードの選択(MQUANT ON／OFF）である。また、pm_change（pm_c）はユーザが修正を指定するときのフラグである。また、ここでは、パラメータの変化点の時間情報がタイムコード（Timecode）として表されている。
【００６９】
このweight.txtファイルを図１４のステップＳ９のビット再配分計算処理時に読み込み、指定された時間の位置で所定の処理を行うことによってプルダウンパターンを修正してからビット配分を行うことになる。
【００７０】
ここで、上記位相パターン修正工程で行う実際のプルダウンパターンの位相修正処理手順について説明する。エンコードする素材のフレーム番号の範囲を0≦k≦ kstopとし、修正する範囲(pm_change[k])の値が1のフレーム番号をkstart≦k≦ kendとする。また、フレーム番号kのフレームを符号化する際のピクチャータイプ (I, P, B picture) をp_type[k]として表す。p_mode[k]が4のフレームは符号化されないので、ピクチャータイプも指定されない。
【００７１】
先ず、図３に示すフローチャートにより、最初に修正する範囲よりも後ろのプルダウン位相と修正する範囲の位相が連続するようにしながらプルダウンパターンを時間的に後ろから前の方向に順次決定していき、次に修正する範囲よりも前の範囲との接続が状態推移のルールを守るようにする。ここで、pstart は、接続が許されるピクチャーモードを示している。
【００７２】
具体的には、kstop-1〜0までのkの値に対して1ずつkの値を小さくしていくループにおいて、ステップＳ２１、ステップＳ２２にて、p_mode_org[k] = p_mode[k]、p_type_org[k] = p_type[k] とする。
【００７３】
次に、ステップＳ２３、ステップＳ２４及びステップＳ２５でkがkstopかpm_change[k]とpm_change[k+1]が0の場合にcycle = p_mode[k] とする。
【００７４】
一方、ステップＳ２４でpm_change[k] が1の場合には、ステップＳ２６でcycle = (cycle + 4) % 5, p_mode[k] = cycle とする。
【００７５】
次に、ステップＳ２３でpm_change[k] が0でなく、ステップＳ２９で(p_mode[k]+1) % 5==p_mode[k+1]でない場合に、ステップＳ３０に進み、p_mode[k]が0or4のとき、ステップＳ３４に進み、pstart =0とする。また、ステップＳ３０でp_mode[k]が0or4でないとき、ステップＳ３１に進み、p_mode[k]が1or2であるかを判定し、ｙｅｓであればステップＳ３３に進み、pstart=2とする。ステップＳ３１でｎｏでありp_mode[k]が3のときにはステップＳ３２に進み、pstart=4とする。
【００７６】
以上の各ステップでの処理は、ステップＳ３５でjを1から1ずつ増加させるループにおいて、ステップＳ３６においてp_mode[k+j]の値がpstartと同じになるまで繰り返される。そして、ステップＳ３７でp_mode[k+j] = pstartとした後、ステップＳ３８でpstart =4の場合には、j=1の処理の後、ステップＳ３９でpstart=0としてから、ステップＳ４０でjをインクリメントして実行する。
【００７７】
この図３に示したプルダウンパターン修正の手順の具体例を図５及び図６に示す。図５及び図６の（Ａ）は、プルダウンパターン修正前のp_type_org[k]と、p_mode_org[k]を示している。ここで、例えば図５の（Ａ）でp_mode_org[k]が“2,2,2”と“0,0,0,0,0,0”のように連続した箇所を含んだところで、ユーザが上記図５の（Ｂ）のようにpm_changeを“1”にし、マニュアル設定したとする。すると、ビデオエンコードコントローラ２０のＭＰＥＧＥエンコードコントローラ２３は、修正処理を加える範囲よりも後ろのプルダウン位相と修正する範囲の位相が連続するようにしながらプルダウンパターンを時間的に後ろから前の方向に順次決定していく。次に、図５の（Ｃ）に示すように、修正する範囲よりも前の範囲との接続が図１９に示した状態推移のルールを守るように、すなわち、プルダウンパターンが乱れた場合に許されているように、p_mode[k]が“0”で連続するように、プルダウンパターンをpm_changeが“1”の範囲の前方向から修正する。
【００７８】
図６の（Ａ）にて、p_mode_org[k]が“2,2,2”と“0,0”のように連続した箇所を含んだところで、ユーザが上記図６の（Ｂ）のようにpm_changeを“1”にし、マニュアル設定した場合には、ビデオエンコードコントローラ２０のＭＰＥＧＥエンコードコントローラ２３は、修正処理を加える範囲よりも後ろのプルダウン位相と修正する範囲の位相が連続するようにしながらプルダウンパターンを時間的に後ろから前の方向に順次決定していき、最後に図６の（Ｃ）に示すように、修正する範囲よりも前の範囲との接続が図１９に示した状態推移のルールを守るように、すなわち、プルダウンパターンが乱れた場合に許されているように、p_mode[k]が“2”で連続するように、プルダウンパターンをpm_changeが“1”の範囲の前方向から修正する。
【００７９】
このようにプルダウンパターンを修正すると、修正される前と後では、p_modeの値が4になる数及び位置が異なってくる。これは、符号化されるフレームの数及び位置が変わることを意味する。それに伴い、プルダウンパターン修正後のピクチャータイプについても修正が必要となる。この手順について図４を参照しながら説明する。
【００８０】
図４のフローチャートは、1〜kstopまでのkの値に対して1ずつkの値を増加させるループである。ステップＳ４１でk=1,pshift=0と設定されてから、ステップＳ４２でp_mode[k] == p_mode_org[k]と判定したとき、ステップＳ４３でpshift=0とし、またステップｓ４４でp_type[k] = p_type_org[k]とする。
【００８１】
一方、ステップＳ４２でp_mode[k] ≠ p_mode_org[k]であり、ステップＳ４５でp_mode[k]が4であるときには、ステップＳ４６に進む。このステップＳ４６でp_mode_org[k] とp_mode_org[k+1]が同じ値で、かつp_type_org[k]がPピクチャorIピクチャの場合には、ステップＳ４７に進み、pshift=0にし、またp_type[k] = p_type_org[k] とする。
【００８２】
上記ステップＳ４６でp_mode_org[k]とp_mode_org[k+1]が同じ値で、かつp_type_org[k]がPピクチャorIピクチャでなかった場合には、ステップＳ４８に進み、pshift=-1にし、またp_type[k]=p_type_org[k-1]とする。
【００８３】
上記ステップＳ４５でp_mode[k]が4でなかったときには、ステップＳ５１に進む。そして、このステップＳ５１でp_mode_org[k]が4の時にはステップＳ５２でpshiftを0とする。
【００８４】
ステップＳ５３でp_mode[k]とp_mode[k+1]が同じ値の場合には、ステップＳ５６に進み、p_type[k] = Pピクチャとする。これ以外のとき、ステップＳ５４に進み、p_type[k] = p_type_org[k-1] とする。
【００８５】
上記ステップＳ５１でp_mode_org[k] が4でないときには、ステップＳ５５に進み、p_type[k] = p_type_org[k+pshift] とする。
【００８６】
上記図４のフローチャートを用いて、プルダウン修正後にピクチャタイプを修正した具体例を図７、図８及び図９に示す。
【００８７】
なお、符号化難易度の測定時に求められた値は、修正前のピクチャータイプに対する値なので、ピクチャータイプの修正に伴って、符号化難易度の値も補正が必要である。簡単な補正例としては、次の（１０）式に示すように、修正が必要なフレームから最も近い、同じピクチャータイプの符号化難易度の値を用いることである。
【００８８】
difficulty[k] = difficulty[kk]                        ・・・（１０）
（kk は p_type[k] == p_type_org[kk] をみたす、最も k に近い値）
次に自動修正方法について説明する。自動修正とマニュアル修正の違いは、修正する範囲を自動判別するか、マニュアル指定するかだけの違いで、それ以外は同じ手順である。
【００８９】
符号化難易度の測定時のプルダウン位相の自動設定時に位相の誤検出をする確率は50%よりも十分に小さいことから、位相が不連続になった区間の長さを調べることで正しい位相検出がおこなわれた位置を特定できる。
【００９０】
図１０に示すような測定パターンである場合、位相が不連続になった区間は、ピクチャモードp_mode[k]が前の値と同じ値を示した区間であり、このときをpd_mode=1とし、それ以外の部分ではpd_mode=0とすると、上記pd_mode=1となった部分のフレーム数Hz_countが“2”になったところから“3”になったところまでが位相が不連続になった区間である。
【００９１】
図１１にフローチャートを示す。ここでは、エンコードする素材のスタート点から数えてk番目のフレームの測定されたピクチャモードをp_mode[k]とする。また、0≦k≦kendの範囲でプルダウンパターンの初期位相の測定を行う場合を考える。
【００９２】
先ず、ステップＳ６１でps=0、error_min=kend+1とし、ステップＳ６２でk=0,error[0]=error[1]=0,Hz_count=0とする。
【００９３】
ステップＳ６３においては、k>0で、p_mode[k]とp_mode[k-1]が同じ値の区間を判断し、同じであればステップＳ６４でpd_mode=1とし、それ以外の部分ではステップＳ６５のようにpd_mode=0とする。そして、ステップＳ６６でpd_mode=1である部分のフレーム数Hz_countをカウントする。
【００９４】
次に、ステップＳ６７からステップＳ７０までで、k番目のフレームのpd_cycleをpsの初期設定値で発生させ、測定されたピクチャモードp_mode[k]と比較する。ここで違っていた場合、error[pd_mode]をカウントアップする。
【００９５】
詳細には、ステップＳ６７でフレーム番号kが５より小さいか否かを判断し、４番目までのフレームであるときには、ステップＳ６８でpd_cycle[ps][k]!=p_mode[k]とし、５番目以上のフレームであるときには、ステップＳ６９でpd_cycle[ps][k mod 5+5]!=p_mode[k]としてから、ステップＳ７０でerror[pd_mode]=error[pd_mode+1]とする。
【００９６】
ここで、素材をフィルムからビデオにフレーム変換した際のプルダウンパターンは、ほとんどの場合規則正しく行われている。そこで、エンコードする素材のプルダウンパターンが予めわかっているとする。素材の最初はチャプター指定され、必ずp_modeが“２”の状態でエンコードされなければならないことを考慮すると、プルダウンの初期パターンは、７つのパターンで表すことができる。
【００９７】
この７つのパターンをk=10まで示すと、
0004161385.tif 000003
となる。
【００９８】
次に、ステップＳ７１でk=k+1として、ステップＳ７２での判定でk>kendとなるまで、上記ステップＳ６３からステップＳ７１までの処理を繰り返す。
【００９９】
そして、ステップＳ７３でHz_countの値がkend/2+1よりも大きい場合、ステップＳ７４に進み、Hz_mode=1として測定された素材はプルダウン処理されていないと判断する。また、Hz_countの値がkend/2+1以下である場合、ステップＳ７５に進み、Hz_mode=0として測定された素材はプルダウン処理されていると判断する。
【０１００】
そして、psに対するエラーの大きさを比較し、最小のものを初期位相のモードとして決定する。すなわち、ステップＳ７６でerror[Hz_mode]がerror_minよりも小さければerror_min=error[Hz_min]とし、pd_start=psとする。
【０１０１】
ステップＳ７８でps=ps+1とし、ステップＳ７９でps>6となるまでステップＳ６２からステップＳ７８までの処理を繰り返す。
【０１０２】
このように、上記図１に示したビデオエンコードシステムの具体例では、マニュアル又は自動でビデオ素材のプルダウンパターンと一致した位相でエンコードを実行することができるので、動きのぎこちない部分が解消され、高画質が実現できる。
【０１０３】
なお、上記画像伝送方法及び装置によって、エンコードされたビデオ素材を記録している上記ＤＶＤのような記録媒体は、対象となる画像に動きがない場合でも、プルダウンパターンの位相が正しく検出されているので、フレーム間に不自然な動きを生じさせることのない、高品質の映像を記録している。
【０１０４】
さらに、上記画像伝送方法によって、エンコードされたビデオ素材を伝送するときには、対象となる画像に動きがない場合でも、プルダウンパターンの位相が正しく検出されているので、フレーム間に不自然な動きを生じさせることのない、高品質の映像を伝送できる。
【０１０５】
【発明の効果】
本発明に係る画像符号化方法及び装置によれば、プルダウンパターンの位相を検出するのに、対象となる画像に動きがない場合でも、プルダウンパターンの位相を正しく検出でき、フレーム間に不自然な動きの生じるのを防ぐように、符号化処理を施すことができる。
【図面の簡単な説明】
【図１】本発明に係る画像符号化方法及び装置の実施の形態となるビデオエンコードシステムのブロック図である。
【図２】マニュアル修正を行う際の設定ウインドウの具体例を示す図である。
【図３】位相パターン修正工程で行う実際のプルダウンパターンの位相修正処理手順を説明するためのフローチャートである。
【図４】プルダウンパターン修正後のピクチャータイプに施す、ピクチャタイプ修正処理手順を説明するためのフローチャートである。
【図５】上記図３に示したプルダウンパターン修正の手順の第１の具体例を説明するためのタイミングチャートである。
【図６】上記図３に示したプルダウンパターン修正の手順の第２の具体例を説明するためのタイミングチャートである。
【図７】上記図４に示したピクチャタイプ修正の手順の第１の具体例を説明するための図である。
【図８】上記図４に示したピクチャタイプ修正の手順の第２の具体例を説明するための図である。
【図９】上記図４に示したピクチャタイプ修正の手順の第３の具体例を説明するための図である。
【図１０】プルダウンパターンの自動修正方法について説明するためのタイミングチャートである。
【図１１】プルダウンパターンの自動修正方法について説明するためのフローチャートである。
【図１２】２パスエンコードシステムを採用した従来のビデオエンコードシステムの具体例のブロック図である。
【図１３】ＧＯＰ構造を説明するための図である。
【図１４】上記図１２に示した従来のビデオエンコードシステムの動作を説明するためのフローチャートである。
【図１５】上記従来のビデオエンコードシステムによって実行されるビット配分計算処理を説明するための図である。
【図１６】上記図１４のフローチャートに示したステップＳ３のビット配分計算処理の詳細を説明するためのフローチャートである。
【図１７】ＧＯＰ単位のビット割当処理のための評価関数を示す図である。
【図１８】プルダウン変換処理を説明するための図である。
【図１９】ピクチャーモードの状態遷移図である。
【符号の説明】
１  スーパーバイザコントローラ、２０  ビデオエンコードコントローラ、２２  ビット配分計算部、２３  ＭＰＥＧエンコードコントローラ、２５  ＭＰＥＧエンコーダ
【図１】
0004161385.tif 000004
【図２】
0004161385.tif 000005
【図３】
0004161385.tif 000006
【図４】
0004161385.tif 000007
【図５】
0004161385.tif 000008
【図６】
0004161385.tif 000009
【図７】
0004161385.tif 000010
【図８】
0004161385.tif 000011
【図９】
0004161385.tif 000012
【図１０】
0004161385.tif 000013
【図１１】
0004161385.tif 000014
【図１２】
0004161385.tif 000015
【図１３】
0004161385.tif 000016
【図１４】
0004161385.tif 000017
【図１５】
0004161385.tif 000018
【図１６】
0004161385.tif 000019
【図１７】
0004161385.tif 000020
【図１８】
0004161385.tif 000021
【図１９】
0004161385.tif 000022