(57)【要約】【課題】  動画シーケンスの符号化レートを制御する際に、最適な量子化ステップサイズを高速にサーチする。【解決手段】  スキップバイナリ・サーチ部１０は、動画シーケンスのｍ［０］フレーム毎のフレームを用いて、バイナリ・サーチにより量子化ステップサイズΔｓｋｉｐを求める。量子化ステップサイズ補正部１１は、Δｓｋｉｐ及びそのときの発生ビットレートと、直前のループでの量子化ステップサイズΔｌａｓｔ及びそのときの発生ビットレートとから、直線近似により目標ビットレートＲとなる量子化ステップサイズΔａを求める。第１の符号化部１２は、量子化ステップサイズΔａで動画シーケンスをｍ［１］（＜ｍ［０］）フレーム毎に符号化し、量子化ステップサイズ予測部１３は、直線近似により目標ビットレートＲとなる量子化ステップサイズΔｅを求める。第２の符号化部１４は、量子化ステップサイズΔｅで全フレームを符号化する。【選択図】  図１
2007049563.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御装置であって、
上記動画シーケンスの第１のスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ手段と、
上記スキップバイナリ・サーチ手段における量子化ステップサイズと発生ビットレートとの関係を表す近似直線を求め、この近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正手段と、
上記量子化ステップサイズ補正手段により補正された量子化ステップサイズで上記動画シーケンスを第２のスキップフレーム数毎に符号化する第１の符号化手段と、
上記第１の符号化手段により発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測手段と、
上記量子化ステップサイズ予測手段により予測された量子化ステップサイズで上記動画シーケンスの全フレームを符号化する第２の符号化手段と
を備えることを特徴とする符号化レート制御装置。
【請求項２】
上記第２のスキップフレーム数は、上記第１のスキップフレーム数よりも小さいことを特徴とする請求項１記載の符号化レート制御装置。
【請求項３】
上記量子化ステップサイズ予測手段は、上記量子化ステップサイズ補正手段により補正された量子化ステップサイズと当該量子化ステップサイズにより発生した発生ビットレートとで表される点を通る直線を求め、この直線を用いて、目標ビットレートとなる量子化ステップサイズを求めることを特徴とする請求項１記載の符号化レート制御装置。
【請求項４】
上記量子化ステップサイズ予測手段は、上記量子化ステップサイズ補正手段により補正された量子化ステップサイズと当該量子化ステップサイズにより発生した発生ビットレートとで表される点を通り、且つ上記近似直線と平行な直線を求め、この直線を用いて、目標ビットレートとなる量子化ステップサイズを求めることを特徴とする請求項３記載の符号化レート制御装置。
【請求項５】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御装置であって、
上記動画シーケンスのスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ手段と、
上記スキップフレーム数が１となるまで段階的に小さくなるように、上記スキップフレーム数を一段階更新するスキップフレーム数更新手段と、
量子化ステップサイズと発生ビットレートとの関係を表す近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正手段と、
上記量子化ステップサイズ補正手段により補正された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新手段により更新されたスキップフレーム数毎に符号化する第１の符号化手段と、
上記スキップフレーム数が１となっており、且つ上記第１の符号化手段により発生した発生ビットレートが目標ビットレートと近似することを第１の終了条件とし、該第１の終了条件を満たしているかを判別する第１のループ終了判別手段と、
上記第１の終了条件を満たしていない場合に、上記第１の符号化手段により発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測手段と、
上記量子化ステップサイズ予測手段により予測された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新手段により更新されたスキップフレーム数毎に符号化する第２の符号化手段と、
上記スキップフレーム数が１となっており、且つ上記第２の符号化手段により発生した発生ビットレートが目標ビットレートと近似することを第２の終了条件とし、該第２の終了条件を満たしているかを判別する第２のループ終了判別手段とを備え、
上記スキップフレーム数更新手段は、上記第２の終了条件を満たしていない場合に、上記スキップフレーム数をさらに一段階更新する
ことを特徴とする符号化レート制御装置。
【請求項６】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御方法であって、
上記動画シーケンスの第１のスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、
上記スキップバイナリ・サーチ工程における量子化ステップサイズと発生ビットレートとの関係を表す近似直線を求め、この近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、
上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを第２のスキップフレーム数毎に符号化する第１の符号化工程と、
上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、
上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスの全フレームを符号化する第２の符号化工程と
を有することを特徴とする符号化レート制御方法。
【請求項７】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御方法であって、
上記動画シーケンスのスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、
上記スキップフレーム数が１となるまで段階的に小さくなるように、上記スキップフレーム数を一段階更新するスキップフレーム数更新工程と、
量子化ステップサイズと発生ビットレートとの関係を表す近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、
上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第１の符号化工程と、
上記スキップフレーム数が１となっており、且つ上記第１の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第１の終了条件とし、該第１の終了条件を満たしているかを判別する第１のループ終了判別工程と、
上記第１の終了条件を満たしていない場合に、上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、
上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第２の符号化工程と、
上記スキップフレーム数が１となっており、且つ上記第２の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第２の終了条件とし、該第２の終了条件を満たしているかを判別する第２のループ終了判別工程とを有し、
上記スキップフレーム数更新工程では、上記第２の終了条件を満たしていない場合に、上記スキップフレーム数をさらに一段階更新する
ことを特徴とする符号化レート制御方法。
【請求項８】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御処理をコンピュータに実行させるプログラムであって、
上記動画シーケンスの第１のスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、
上記スキップバイナリ・サーチ工程における量子化ステップサイズと発生ビットレートとの関係を表す近似直線を求め、この近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、
上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを第２のスキップフレーム数毎に符号化する第１の符号化工程と、
上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、
上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスの全フレームを符号化する第２の符号化工程と
を有することを特徴とするプログラム。
【請求項９】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御処理をコンピュータに実行させるプログラムであって、
上記動画シーケンスのスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、
上記スキップフレーム数が１となるまで段階的に小さくなるように、上記スキップフレーム数を一段階更新するスキップフレーム数更新工程と、
量子化ステップサイズと発生ビットレートとの関係を表す近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、
上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第１の符号化工程と、
上記スキップフレーム数が１となっており、且つ上記第１の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第１の終了条件とし、該第１の終了条件を満たしているかを判別する第１のループ終了判別工程と、
上記第１の終了条件を満たしていない場合に、上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、
上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第２の符号化工程と、
上記スキップフレーム数が１となっており、且つ上記第２の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第２の終了条件とし、該第２の終了条件を満たしているかを判別する第２のループ終了判別工程とを有し、
上記スキップフレーム数更新工程では、上記第２の終了条件を満たしていない場合に、上記スキップフレーム数をさらに一段階更新する
ことを特徴とするプログラム。
【請求項１０】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御処理をコンピュータに実行させるプログラムが記録された記録媒体であって、
上記動画シーケンスの第１のスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、
上記スキップバイナリ・サーチ工程における量子化ステップサイズと発生ビットレートとの関係を表す近似直線を求め、この近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、
上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを第２のスキップフレーム数毎に符号化する第１の符号化工程と、
上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、
上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスの全フレームを符号化する第２の符号化工程と
を有することを特徴とするプログラムが記録された記録媒体。
【請求項１１】
複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御処理をコンピュータに実行させるプログラムが記録された記録媒体であって、
上記動画シーケンスのスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、
上記スキップフレーム数が１となるまで段階的に小さくなるように、上記スキップフレーム数を一段階更新するスキップフレーム数更新工程と、
量子化ステップサイズと発生ビットレートとの関係を表す近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、
上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第１の符号化工程と、
上記スキップフレーム数が１となっており、且つ上記第１の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第１の終了条件とし、該第１の終了条件を満たしているかを判別する第１のループ終了判別工程と、
上記第１の終了条件を満たしていない場合に、上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、
上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第２の符号化工程と、
上記スキップフレーム数が１となっており、且つ上記第２の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第２の終了条件とし、該第２の終了条件を満たしているかを判別する第２のループ終了判別工程とを有し、
上記スキップフレーム数更新工程では、上記第２の終了条件を満たしていない場合に、上記スキップフレーム数をさらに一段階更新する
ことを特徴とするプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画シーケンスの符号化レートを制御する符号化レート制御装置及びその方法、並びにプログラム及び記録媒体に関する。
【背景技術】
【０００２】
動画シーケンスをビットプレーン符号化方式に従って符号化する場合、一般的に用いられるレート制御方法として、符号化後に目標ビットレートとなるように符号化パスを切り捨てるトランケーションによるレート制御と、符号化前に与える量子化ステップサイズのみでレート制御を行うマルチループレート制御とが知られている。
【０００３】
前者の方法は、１回の符号化で正確なレート制御が可能であるため処理時間が短いという特徴がある。その反面、各フレームの符号量の配分が一定であるため、フレーム間の符号化難易度が異なる場合には画質のばらつきが大きくなり、画質が悪くなってしまう。一方、後者の方法は、各フレームの符号量の配分が可変であり、符号化難易度が高いフレームには多くの符号量を割り当て、符号化難易度が低いフレームには少ない符号量を割り当てることができるため、画質のばらつきが小さく、良好な画質が得られるという特徴がある。その反面、符号化前に量子化ステップサイズと発生ビットレートとの関係を知ることはできないため、正確にレート制御を行うには全てのフレームを繰り返し符号化して最適な量子化ステップサイズをサーチする必要があり、処理時間が長くかかってしまう。
【０００４】
このように、何れの方法も一長一短であるが、例えばデジタルシネマのようなノンリニアで画質を追求する用途には、マルチループレート制御が好ましい。
【０００５】
ところで、マルチループレート制御における最適な量子化ステップサイズのサーチ方法としては、バイナリ・サーチ（二分木探索）が一般的である（特許文献１参照）。バイナリ・サーチは、ソートされているデータの中から目標値を探し出すアルゴリズムである。このバイナリ・サーチでは、サーチ範囲を中間点で２つに分けて目標値が何れの側に存在するかを判定し、目標値が存在する側の範囲を中間点で繰り返し２つに分けることにより、目標値を発見する。量子化ステップサイズと発生ビットレートとは量子化ステップサイズが大きくなるに従って発生ビットレートが減少する関係を有するため、ソートされているデータと見なすことができ、バイナリ・サーチを使用することができる。
【０００６】
バイナリ・サーチを用いて最適な量子化ステップサイズをサーチする手順を図１１のフローチャートを用いて説明する。ここでは、量子化ステップサイズのサーチ範囲の最大値をΔｍａｘ、最小値をΔｍｉｎ、量子化ステップサイズがΔであるときの発生ビットレートをＲ（Δ）、目標ビットレートをＲ、ループ打ち切りの判定に使用する閾値をＴｈとする。
【０００７】
先ずステップＳ２１において、サーチ範囲の最大値Δｍａｘと最小値Δｍｉｎとの平均値を量子化ステップサイズΔとし、ステップＳ２２において、動画シーケンスの全てのフレームを量子化ステップサイズΔで符号化し、発生ビットレートＲ（Δ）を求める。
【０００８】
続いてステップＳ２３において、目標ビットレートＲと発生ビットレートＲ（Δ）との差の絶対値が閾値Ｔｈ未満であるか否かを判別し、閾値Ｔｈ以上である場合には、ステップＳ２４において、目標ビットレートＲが発生ビットレートＲ（Δ）未満であるか否かを判別する。目標ビットレートＲが発生ビットレートＲ（Δ）未満である場合には、ステップＳ２５においてΔｍｉｎにΔをセットしてステップＳ２１に戻り、目標ビットレートＲが発生ビットレートＲ（Δ）以上である場合には、ステップＳ２６においてΔｍａｘにΔをセットしてステップＳ２１に戻る。
【０００９】
一方、ステップＳ２３において、目標ビットレートＲと発生ビットレートＲ（Δ）との差の絶対値が閾値Ｔｈ未満である場合には、処理を終了する。
【００１０】
【特許文献１】特開平１０−１９１３４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
このように、バイナリ・サーチを用いることにより、最適な量子化ステップサイズを確実に求めることができるが、実用レベルの精度でレート制御を行うためには、全てのフレームを５〜１０回程度符号化する必要があり、処理時間が長くなってしまう。そこで、最適な量子化ステップサイズをより高速にサーチする方法が望まれていた。
【００１２】
本発明は、このような従来の実情に鑑みて提案されたものであり、動画シーケンスの符号化レートを制御する際に、最適な量子化ステップサイズを高速にサーチすることが可能な符号化レート制御装置及びその方法、並びにプログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した目的を達成するために、本発明に係る符号化レート制御装置は、複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御装置であって、上記動画シーケンスの第１のスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ手段と、上記スキップバイナリ・サーチ手段における量子化ステップサイズと発生ビットレートとの関係を表す近似直線を求め、この近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正手段と、上記量子化ステップサイズ補正手段により補正された量子化ステップサイズで上記動画シーケンスを第２のスキップフレーム数毎に符号化する第１の符号化手段と、上記第１の符号化手段により発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測手段と、上記量子化ステップサイズ予測手段により予測された量子化ステップサイズで上記動画シーケンスの全フレームを符号化する第２の符号化手段とを備えることを特徴とする。
【００１４】
また、本発明に係る符号化レート制御装置は、複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御装置であって、上記動画シーケンスのスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ手段と、上記スキップフレーム数が１となるまで段階的に小さくなるように、上記スキップフレーム数を一段階更新するスキップフレーム数更新手段と、量子化ステップサイズと発生ビットレートとの関係を表す近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正手段と、上記量子化ステップサイズ補正手段により補正された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新手段により更新されたスキップフレーム数毎に符号化する第１の符号化手段と、上記スキップフレーム数が１となっており、且つ上記第１の符号化手段により発生した発生ビットレートが目標ビットレートと近似することを第１の終了条件とし、該第１の終了条件を満たしているかを判別する第１のループ終了判別手段と、上記第１の終了条件を満たしていない場合に、上記第１の符号化手段により発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測手段と、上記量子化ステップサイズ予測手段により予測された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新手段により更新されたスキップフレーム数毎に符号化する第２の符号化手段と、上記スキップフレーム数が１となっており、且つ上記第２の符号化手段により発生した発生ビットレートが目標ビットレートと近似することを第２の終了条件とし、該第２の終了条件を満たしているかを判別する第２のループ終了判別手段とを備え、上記スキップフレーム数更新手段は、上記第２の終了条件を満たしていない場合に、上記スキップフレーム数をさらに一段階更新することを特徴とする。
【００１５】
また、上述した目的を達成するために、本発明に係る符号化レート制御方法は、複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御方法であって、上記動画シーケンスの第１のスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、上記スキップバイナリ・サーチ工程における量子化ステップサイズと発生ビットレートとの関係を表す近似直線を求め、この近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを第２のスキップフレーム数毎に符号化する第１の符号化工程と、上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスの全フレームを符号化する第２の符号化工程とを有することを特徴とする。
【００１６】
また、本発明に係る符号化レート制御方法は、複数のフレームで構成された動画シーケンスの符号化レートを制御する符号化レート制御方法であって、上記動画シーケンスのスキップフレーム数毎のフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートと近似する量子化ステップサイズを求めるスキップバイナリ・サーチ工程と、上記スキップフレーム数が１となるまで段階的に小さくなるように、上記スキップフレーム数を一段階更新するスキップフレーム数更新工程と、量子化ステップサイズと発生ビットレートとの関係を表す近似直線を用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ補正工程と、上記量子化ステップサイズ補正工程にて補正された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第１の符号化工程と、上記スキップフレーム数が１となっており、且つ上記第１の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第１の終了条件とし、該第１の終了条件を満たしているかを判別する第１のループ終了判別工程と、上記第１の終了条件を満たしていない場合に、上記第１の符号化工程にて発生した発生ビットレートを用いて、目標ビットレートとなる量子化ステップサイズを求める量子化ステップサイズ予測工程と、上記量子化ステップサイズ予測工程にて予測された量子化ステップサイズで上記動画シーケンスを上記スキップフレーム数更新工程にて更新されたスキップフレーム数毎に符号化する第２の符号化工程と、上記スキップフレーム数が１となっており、且つ上記第２の符号化工程にて発生した発生ビットレートが目標ビットレートと近似することを第２の終了条件とし、該第２の終了条件を満たしているかを判別する第２のループ終了判別工程とを有し、上記スキップフレーム数更新工程では、上記第２の終了条件を満たしていない場合に、上記スキップフレーム数をさらに一段階更新することを特徴とする。
【００１７】
また、本発明に係るプログラムは、上述した符号化レート制御処理をコンピュータに実行させるものであり、本発明に係る記録媒体は、そのようなプログラムが記録されたコンピュータ読み取り可能なものである。
【発明の効果】
【００１８】
本発明に係る符号化レート制御装置及びその方法、並びにプログラム及び記録媒体によれば、動画シーケンスの符号化レートを量子化ステップサイズにより制御する際に、最適な量子化ステップサイズを高速にサーチすることが可能とされる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、動画シーケンスをビットプレーン符号化方式に従って符号化する際の符号化レートを制御する符号化レート制御装置及びその方法に適用したものである。
【００２０】
（第１の実施の形態）
第１の実施の形態における符号化レート制御装置の概略構成を図１に示す。図１に示すように、符号化レート制御装置１は、スキップバイナリ・サーチ部１０と、量子化ステップサイズ補正部１１と、第１の符号化部１２と、量子化ステップサイズ予測部１３と、第２の符号化部１４とから構成されている。
【００２１】
スキップバイナリ・サーチ部１０は、（ｎ＋１）フレーム（Ｉｎ［０］〜Ｉｎ［ｎ］）からなる動画シーケンスと目標ビットレート（Ｒ［ｂｐｐ］）とを入力する。スキップバイナリ・サーチ部１０は、動画シーケンスのスキップフレーム数Ｍに基づくフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートＲと近似する量子化ステップサイズΔｓｋｉｐを求める。なお、スキップフレーム数Ｍは、動画像シーケンスを何フレーム毎に符号化するかを表したものである。例えば、全フレーム数が２０フレームでＭ＝１０の場合、スキップバイナリ・サーチ部１０は、図２に示すように、図中斜線を付した２フレームのみを符号化してバイナリ・サーチを行う。これにより、バイナリ・サーチに要する処理時間を約１／Ｍに削減することができる。
【００２２】
スキップバイナリ・サーチ部１０の処理手順を図３のフローチャートを用いて説明する。ここでは、量子化ステップサイズのサーチ範囲の最大値をΔｍａｘ、最小値をΔｍｉｎ、量子化ステップサイズがΔ、且つスキップフレーム数Ｍ＝ｍであるときの発生ビットレートをＲ（Δ，ｍ）、目標ビットレートをＲ、ループ打ち切りの判定に使用する閾値をＴｈとする。なお、サーチ範囲は、量子化ステップサイズが通常取り得る十分に広い範囲とする。
【００２３】
先ずステップＳ１において、サーチ範囲の最大値Δｍａｘと最小値Δｍｉｎとの平均値を量子化ステップサイズΔとし、ステップＳ２において、動画シーケンスのＭ（＝ｍ［０］）フレーム毎のフレームを量子化ステップサイズΔで符号化し、発生ビットレートＲ（Δ，ｍ［０］）を求める。
【００２４】
ここで、ステップＳ２の詳細について図４のフローチャートを用いて説明する。
【００２５】
先ずステップＳ１１において、フレームインデクスｉ、符号化フレーム数インデクスｊ、及び発生ビットレートＲ（Δ，ｍ）を全て０に初期化し、ステップＳ１２において、ｉをＭで除算したときの剰余が０であるか否かを判別する。剰余が０である場合にはステップＳ１３に進み、剰余が０でない場合にはステップＳ１５に進む。
【００２６】
続いてステップＳ１３において、フレームＩｎ［ｉ］を量子化ステップサイズΔで符号化する。フレームＩｎ［ｉ］を量子化ステップサイズΔで符号化した際に発生する符号量をｒ（Δ，Ｍ，ｉ）とする。続いてステップＳ１４において、符号量ｒ（Δ，Ｍ，ｉ）を加算し、発生符号量ｒａｌｌ（Δ，Ｍ）を求める。最終的には、符号化した全てのフレームの符号量ｒ（Δ，Ｍ，ｉ）を加算したものが、発生符号量ｒａｌｌ（Δ，Ｍ）となる。また、ステップＳ１４では、ｊの値を１インクリメントする。
【００２７】
続いてステップＳ１５において、ｉの値を１インクリメントし、ステップＳ１６において、ｉの値がｎ以下であるか否かを判別する。ｉの値がｎ以下である場合にはステップＳ１２に戻り、ｉの値がｎよりも大きい場合にはステップＳ１７に進む。ステップＳ１７では、ステップＳ１４で求めた発生符号量ｒａｌｌ（Δ，Ｍ）から発生ビットレートＲ（Δ，ｍ）［ｂｐｐ］を算出する。フレーム画像の水平サイズをＸｓｉｚｅとし、垂直サイズをＹｓｉｚｅとすると、発生ビットレートＲ（Δ，ｍ）は、以下の式（１）、
Ｒ（Δ，Ｍ）＝ｒａｌｌ（Δ，Ｍ）／（Ｘｓｉｚｅ＊Ｙｓｉｚｅ＊ｊ）  ・・・(1)
のように算出される。
【００２８】
図３に戻って、ステップＳ３において、目標ビットレートＲと発生ビットレートＲ（Δ，ｍ［０］）との差の絶対値が閾値Ｔｈ未満であるか否かを判別し、閾値Ｔｈ以上である場合には、ステップＳ４において、目標ビットレートＲが発生ビットレートＲ（Δ，ｍ［０］）未満であるか否かを判別する。目標ビットレートＲが発生ビットレートＲ（Δ，ｍ［０］）未満である場合には、ステップＳ５においてΔｍｉｎにΔをセットしてステップＳ７に進み、目標ビットレートＲが発生ビットレートＲ（Δ，ｍ［０］）以上である場合には、ステップＳ６においてΔｍａｘにΔをセットしてステップＳ７に進む。ステップＳ７では、Δｌａｓｔ（＝Δ）とＲ（Δｌａｓｔ，ｍ［０］）とを記憶してステップＳ１に戻る。
【００２９】
一方、ステップＳ３において、目標ビットレートＲと発生ビットレートＲ（Δ，ｍ［０］）との差の絶対値が閾値Ｔｈ以上である場合には、ステップＳ８において、Δｓｋｉｐ（＝Δ）とＲ（Δｓｋｉｐ，ｍ［０］）とを記憶して処理を終了する。
【００３０】
スキップバイナリ・サーチ部１０は、得られた量子化ステップサイズΔｓｋｉｐ及びそのときの発生ビットレートＲ（Δｓｋｉｐ，ｍ［０］）と、直前のループでの量子化ステップサイズΔｌａｓｔ及びそのときの発生ビットレートＲ（Δｌａｓｔ，ｍ［０］）とを、量子化ステップサイズ補正部１１及び量子化ステップサイズ予測部１３に供給する。
【００３１】
図１に戻って、量子化ステップサイズ補正部１１は、スキップバイナリ・サーチ部１０から供給されたΔｓｋｉｐ、Ｒ（Δｓｋｉｐ，ｍ［０］）とΔｌａｓｔ、Ｒ（Δｌａｓｔ，ｍ［０］）とを用いて、量子化ステップサイズの微調整を行う。
【００３２】
スキップバイナリ・サーチを行った際の、量子化ステップサイズ（横軸）と発生ビットレート（縦軸）との関係の一例を図５に示す。この図５は、図３のループを９回繰り返して量子化ステップサイズΔｓｋｉｐを求めた例を示すものである。図中の数字は量子化ステップサイズΔｓｋｉｐに到達するまでに符号化を行った順番を示している。図５の四角で囲った部分を拡大して図６に示す。図６から分かるように、量子化ステップサイズと発生ビットレートとの関係は、狭い範囲で見れば直線近似できる。量子化ステップサイズ補正部１１は、この直線性を利用して量子化ステップサイズの補正を行う。
【００３３】
すなわち、量子化ステップサイズ補正部１１は、図７に示すように、スキップバイナリ・サーチの結果である点９（Δｓｋｉｐ，Ｒ（Δｓｋｉｐ，ｍ［０］））と直前のループにおける点８（Δｌａｓｔ，Ｒ（Δｌａｓｔ，ｍ［０］））とを直線で結んで目標ビットレートＲとの交点を求め、交点の横軸の値を補正後の量子化ステップサイズΔａとする。量子化ステップサイズ補正部１１は、量子化ステップサイズΔａを第１の符号化部１２に供給する。
【００３４】
第１の符号化部１２は、量子化ステップサイズ補正部１１から供給された量子化ステップサイズΔａで、動画シーケンスをスキップフレーム数ｍ［１］毎に符号化する。実際の処理手順は、図４のフローチャートと同様であるため、説明を省略する。
【００３５】
この第１の符号化部１２の目的は、スキップバイナリ・サーチ部１０よりも符号化フレーム数を多くする（スキップフレーム数Ｍを小さくする）ことで、量子化ステップサイズの推定精度を高めることである。したがって、スキップフレーム数ｍ［０］とｍ［１］との関係は、ｍ［０］＞ｍ［１］となる。
【００３６】
第１の符号化部１２は、発生ビットレートＲ（Δａ，ｍ［１］）を量子化ステップサイズ予測部１３に供給する。
【００３７】
量子化ステップサイズ予測部１３は、スキップバイナリ・サーチ部１０から供給されたΔｓｋｉｐ、Ｒ（Δｓｋｉｐ，ｍ［０］）、Δｌａｓｔ、Ｒ（Δｌａｓｔ，ｍ［０］）と、第１の符号化部１２から供給されたＲ（Δａ，ｍ［１］）とを用いて、量子化ステップサイズの微調整を行う。この量子化ステップサイズ予測部１３においても、量子化ステップサイズと発生ビットレートとの関係が直線近似できることを利用する。
【００３８】
すなわち、量子化ステップサイズ予測部１３は、図８に示すように、点（Δｓｋｉｐ，Ｒ（Δｓｋｉｐ，ｍ［０］））と点（Δｌａｓｔ，Ｒ（Δｌａｓｔ，ｍ［０］））とを結ぶ直線Ａと平行で且つ点（Δａ，Ｒ（Δａ，ｍ［１］））を通る直線Ｂを想定し、直線Ｂと目標ビットレートＲとの交点の横軸の値を、量子化ステップサイズΔｅとする。量子化ステップサイズ予測部１３は、量子化ステップサイズΔｅを第２の符号化部１４に供給する。
【００３９】
第２の符号化部１４は、量子化ステップサイズ予測部１３から供給された量子化ステップサイズΔｅで、動画シーケンスを全フレーム符号化する。実際の処理手順は、図４のフローチャートにおいてＭ＝１とした場合と同様であるため、説明を省略する。第２の符号化部１４は、符号化により生成されたコードストリームを外部に出力する。
【００４０】
以上のように、第１の実施の形態における符号化レート制御装置１では、従来のように全てのフレームを繰り返し符号化して最適な量子化ステップサイズをサーチするのではなく、スキップフレーム数ｍ［０］毎のフレームを符号化して直線近似により量子化ステップサイズΔａを求め、この量子化ステップサイズΔａでスキップフレーム数ｍ［１］（＜ｍ［０］）毎のフレームを符号化して直線近似により量子化ステップサイズΔｅを求める。これにより、符号化レート制御装置１では、最適な量子化ステップサイズをより高速にサーチすることができる。
【００４１】
（第２の実施の形態）
第１の実施の形態は処理手順がシンプルであり、レート制御が完了するまでの符号化フレーム数が、動画シーケンスに余り依存しない特徴がある。しかしながら、フレーム間の絵柄の変化が非常に激しい動画シーケンスでは、目標通りのレート制御が行えない場合がある。そこで、第２の実施の形態における符号化レート制御装置は、レート制御が困難な動画シーケンスであっても精度が保証できるように、目標ビットレートに到達するまでループを繰り返す。
【００４２】
第２の実施の形態における符号化レート制御装置の概略構成を図９に示す。図９に示すように、符号化レート制御装置２は、スキップバイナリ・サーチ部２０と、スキップフレーム数更新部２１と、量子化ステップサイズ補正部２２と、第１の符号化部２３と、第１のループ終了判別部２４と、量子化ステップサイズ予測部２５と、第２の符号化部２６と、第２のループ終了判別部２７とから構成されている。この図９では、データの流れを実線で示し、処理の流れを破線で示す。
【００４３】
スキップバイナリ・サーチ部２０は、上述したスキップバイナリ・サーチ部１０と同じ動作を行う。すなわち、（ｎ＋１）フレーム（Ｉｎ［０］〜Ｉｎ［ｎ］）からなる動画シーケンスと目標ビットレート（Ｒ［ｂｐｐ］）とを入力し、動画シーケンスのスキップフレーム数Ｍ（＝ｍ［０］）に基づくフレームを、バイナリ・サーチアルゴリズムに従って量子化ステップサイズを変更しながら符号化し、発生ビットレートが目標ビットレートＲと近似する量子化ステップサイズΔｓｋｉｐを求める。スキップバイナリ・サーチ部２０は、得られた量子化ステップサイズΔｓｋｉｐ及びそのときの発生ビットレートＲ（Δｓｋｉｐ，ｍ［０］）と、直前のループでの量子化ステップサイズΔｌａｓｔ及びそのときの発生ビットレートＲ（Δｌａｓｔ，ｍ［０］）とを、量子化ステップサイズ補正部２２及び量子化ステップサイズ予測部２５に供給する。
【００４４】
スキップフレーム数更新部２１は、スキップフレーム数Ｍをｍ［ｉ］からｍ［ｉ＋１］(ｉ＝０から開始する）に更新する。スキップフレーム数を段階的に小さくすることによって量子化ステップサイズの推定精度を高めるため、ｍ［ｉ］＞ｍ［ｉ＋１］の関係となる。但し、ｍ［ｉ］が最小値である１になった場合、ｍ［ｉ＋１］は１となる。ｍ［ｉ］は、例えばｍ［ｉ］＝｛１２０，４８，６，１，１，１，１・・・｝のようになる。
【００４５】
量子化ステップサイズ補正部２２は、量子化ステップサイズの微調整を行う。この量子化ステップサイズ補正部２２は、１回目のループ（ｉ＝１）では、上述した量子化ステップサイズ補正部１１と同様の動作を行う。すなわち、スキップバイナリ・サーチ部２０から供給されたΔｓｋｉｐ、Ｒ（Δｓｋｉｐ，ｍ［０］）、Δｌａｓｔ、Ｒ（Δｌａｓｔ，ｍ［０］）を用いて直線近似することにより、量子化ステップサイズΔａを算出する。一方、２回目以降のループ（ｉ≧２）では、補正方法は同じであるが、第１の符号化部２３から供給されたΔａ、Ｒ（Δａ，ｍ［ｉ−１］）（上述のΔｌａｓｔ、Ｒ（Δｌａｓｔ，ｍ［０］）に相当）と、第２の符号化部２６から供給されたΔｅ，Ｒ（Δｅ，ｍ［ｉ−１］）（上述のΔｓｋｉｐ，Ｒ（Δｓｋｉｐ，ｍ［０］）に相当）とを用いて直線近似することにより、量子化ステップサイズΔａを算出する。
【００４６】
第１の符号化部２３は、量子化ステップサイズ補正部２２から供給された量子化ステップサイズΔａで、動画シーケンスをスキップフレーム数ｍ［ｉ］毎に符号化する。第１の符号化部２３は、発生ビットレートＲ（Δａ，ｍ［ｉ］）を第１のループ終了判別部２４に供給する。
【００４７】
第１のループ終了判別部２４は、スキップフレーム数ｍ［ｉ］＝１で、且つ発生ビットレートＲ（Δａ，ｍ［ｉ］）と目標ビットレートＲとの差の絶対値が閾値Ｔｈ未満であることを終了条件として、この終了条件を満たしているか否かを判別する。終了条件を満たしている場合、第１の符号化部２３で符号化されたコードストリームが外部に出力され、処理が完了となる。一方、終了条件を満たしていない場合、量子化ステップサイズ予測２５に進み、処理を続ける。
【００４８】
量子化ステップサイズ予測部２５は、量子化ステップサイズの微調整を行う。この量子化ステップサイズ予測部２５は、１回目のループ（ｉ＝１）では、上述した量子化ステップサイズ予測部１３と同様の動作を行う。すなわち、スキップバイナリ・サーチ部２０から供給されたΔｓｋｉｐ、Ｒ（Δｓｋｉｐ，ｍ［０］）、Δｌａｓｔ、Ｒ（Δｌａｓｔ，ｍ［０］）と、第１の符号化部２３から供給されたＲ（Δａ，ｍ［ｉ］）とを用いることにより、量子化ステップサイズΔｅを算出する。一方、２回目以降のループ（ｉ≧２）では、補正方法は同じであるが、第１の符号化部２３から供給されたΔａ、Ｒ（Δａ，ｍ［ｉ−１］）（上述のΔｌａｓｔ、Ｒ（Δｌａｓｔ，ｍ［０］）に相当）と、第２の符号化部２６から供給されたΔｅ，Ｒ（Δｅ，ｍ［ｉ−１］）（上述のΔｓｋｉｐ，Ｒ（Δｓｋｉｐ，ｍ［０］）に相当）とを用いることにより、量子化ステップサイズΔｅを算出する。
【００４９】
第２の符号化部２６は、量子化ステップサイズ予測部２５から供給された量子化ステップサイズΔｅで、動画シーケンスをスキップフレーム数ｍ［ｉ］毎に符号化する。第２の符号化部２６は、発生ビットレートＲ（Δｅ，ｍ［ｉ］）を第２のループ終了判別部２７に供給する。
【００５０】
第２のループ終了判別部２７は、スキップフレーム数ｍ［ｉ］＝１で、且つ発生ビットレートＲ（Δｅ，ｍ［ｉ］）と目標ビットレートＲとの差の絶対値が閾値Ｔｈ未満であることを終了条件として、この終了条件を満たしているか否かを判別する。終了条件を満たしている場合、第２の符号化部２６で符号化されたコードストリームが外部に出力され、処理が完了となる。一方、終了条件を満たしていない場合、スキップフレーム数更新部２１に戻り、ループを繰り返す。
【００５１】
ｍ［ｉ］＝｛１２０，４８，６，１，１，１，１・・・｝とした場合、ごく一部の動画シーケンスを除くと、図１０に示す処理手順になることが殆どである。すなわち、動画シーケンスを１２０フレーム毎に符号化して量子化ステップサイズΔａを求め、この量子化ステップサイズΔａで動画シーケンスを４８フレーム毎に符号化して量子化ステップサイズΔｅを求め、この量子化ステップサイズΔｅで動画シーケンスを４８フレーム毎に符号化して量子化ステップサイズΔａを求める。さらに、量子化ステップサイズΔａで動画シーケンスを６フレーム毎に符号化して量子化ステップサイズΔｅを求め、この量子化ステップサイズΔｅで動画シーケンスを６フレーム毎に符号化して量子化ステップサイズΔａを求める。最後に、この量子化ステップサイズΔａで動画シーケンスを全フレーム符号化する。
【００５２】
以上のように、第２の実施の形態における符号化レート制御装置２では、第１のループ終了判別部２４又は第２のループ終了判別部２７において終了条件を満たすまでループを繰り返すため、符号化レート制御の精度が保証される。
【００５３】
以上、本発明を実施するための最良の形態について説明したが、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００５４】
例えば、上述した実施の形態では、動画シーケンスをビットプレーン符号化方式に従って符号化するものとして説明したが、これに限定されるものではなく、全フレームについてフレーム内符号化を行うのであれば、ＭＰＥＧ（Moving Picture Experts Group）方式等の他の画像符号化方式にも適用可能である。
【００５５】
また、上述した実施の形態における一連の処理は、ソフトウェアにより実行することもできる。この場合、そのソフトウェアを構成するプログラムをコンピュータの専用ハードウェアに予め組み込むようにしてもよく、また、各種プログラムをインストールすることで各種機能を実行することが可能な汎用のパーソナルコンピュータなどに対して、ネットワークや記録媒体を介してインストールするようにしてもよい。
【図面の簡単な説明】
【００５６】
【図１】第１の実施の形態における符号化レート制御装置の概略構成を示す図である。
【図２】同符号化レート制御装置内のスキップバイナリ・サーチ部におけるスキップフレーム数を説明する図である。
【図３】同スキップバイナリ・サーチ部の処理手順を説明するフローチャートである。
【図４】動画シーケンスのＭフレーム毎のフレームを量子化ステップサイズΔで符号化する手順を説明するフローチャートである。
【図５】スキップバイナリ・サーチを行った際の、量子化ステップサイズと発生ビットレートとの関係の一例を示す図である。
【図６】図５の四角で囲った部分を拡大して示す図である。
【図７】同符号化レート制御装置内の量子化ステップサイズ補正部で量子化ステップサイズを求める様子を示す図である。
【図８】同符号化レート制御装置内の量子化ステップサイズ予測部で量子化ステップサイズを求める様子を示す図である。
【図９】第２の実施の形態における符号化レート制御装置の概略構成を示す図である。
【図１０】同符号化レート制御装置における一般的な処理手順を示す図である。
【図１１】バイナリ・サーチを用いて最適な量子化ステップサイズをサーチする手順を説明するフローチャートである。
【符号の説明】
【００５７】
１，２  符号化レート制御装置、１０  スキップバイナリ・サーチ部、１１  量子化ステップサイズ補正部、１２  第１の符号化部、１３  量子化ステップサイズ予測部、１４  第２の符号化部、２０  スキップバイナリ・サーチ部、２１  スキップフレーム数更新部、２２  量子化ステップサイズ補正部、２３  第１の符号化部、２４  第１のループ終了判別部、２５  量子化ステップサイズ予測部、２６  第２の符号化部、２７  第２のループ終了判別部
【図１】
2007049563.tif 000003
【図２】
2007049563.tif 000004
【図３】
2007049563.tif 000005
【図４】
2007049563.tif 000006
【図５】
2007049563.tif 000007
【図６】
2007049563.tif 000008
【図７】
2007049563.tif 000009
【図８】
2007049563.tif 000010
【図９】
2007049563.tif 000011
【図１０】
2007049563.tif 000012
【図１１】
2007049563.tif 000013