(57)【要約】【課題】動き補償予測を用いて動画像を符号化する際に、動きベクトルを検出する前に各フレームに適したf_codeを動的にかつ簡単に決定することができる情報処理装置、動画像符号化方法およびプログラムを提供する。【解決手段】本発明に係る情報処理装置１０は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、符号化部２０および記憶部群５０などを有する。ＣＰＵ１１は、ＲＯＭ１３内に記憶されたプログラムに従って、符号化部２０をはじめとする情報処理装置１０の処理動作を制御する。ＣＰＵ１１は、ＲＯＭ１３内に記憶された符号化プログラムおよびプログラムの実行のために必要なデータを、ＲＡＭ１２へロードし、符号化プログラムに従って動きベクトルを検出する前に各フレームに適したf_codeを動的にかつ簡単に決定する処理を実行する。【選択図】  図１
2009159028.tif 000002
【特許請求の範囲】
【請求項１】
入力されるフレームを動き補償付き予測を用いて符号化する情報処理装置であって、
入力されたフレームの動きベクトル検出を行う前に前記入力されたフレームに適用すべきf_codeを決定するf_code決定手段、
を備え、
前記f_code決定手段は、
前記入力されたフレームより前に動きベクトル検出された過去のフレームに適用されたf_codeと、前記f_codeを適用されて前記過去のフレームで検出された動きベクトルの大きさの分布とにもとづいて、新たなf_codeを決定し、この新たなf_codeを前記入力されたフレームに適用すべきf_codeとする、
ことを特徴とする情報処理装置。
【請求項２】
前記f_code決定手段は、
前記入力されたフレームの種別を判定するフレーム種別判定手段と、
前記フレーム種別判定手段により前記入力されたフレームが前方予測符号化されるべきフレームであると判定された場合、前記過去のフレームで検出された動きベクトルについて、所定の大きさ以上の大きさを有する動きベクトルの個数が第１の閾値以上であると、前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより大きい値とし、前記過去のフレームで検出された動きベクトルについて、前記所定の大きさより小さい他の所定の大きさ以上の大きさを有する動きベクトルの個数が第２の閾値以下であると、前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより小さい値とするf_code更新手段と、
を有する請求項１記載の情報処理装置。
【請求項３】
前記f_code決定手段は、
前記過去のフレームの動きベクトル検出を行う際に、検出された動きベクトルの大きさの分布を取得するサイズ分布取得手段、
を有する請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記f_code決定手段は、
前記過去のフレームで検出された動きベクトルについて、前記過去のフレームに適用されたf_codeのもとで許容される最大の大きさをもつ動きベクトルの個数が第１の閾値より多いかどうか判定する第１の個数判定手段と、
前記過去のフレームで検出された動きベクトルについて、前記過去のフレームに適用されたf_codeから１を減じたf_codeのもとで許容される最大の大きさより大きい動きベクトルの個数が第２の閾値より少ないかどうか判定する第２の個数判定手段と、
をさらに有し、
前記f_code更新手段は、
前記第１の個数判定手段により前記第１の閾値より多いと判定されると、前記過去のフレームに適用されたf_codeに１を加えた値を前記入力されたフレームに適用すべきf_codeの値とし、前記第２の個数判定手段により前記第２の閾値より少ないと判定されると、前記過去のフレームに適用されたf_codeに１を減じた値を前記入力されたフレームに適用すべきf_codeの値とする、
請求項２または請求項３に記載の情報処理装置。
【請求項５】
前記f_code更新手段は、
前記フレーム種別判定手段により前記入力されたフレームが双方向予測符号化されるべきフレームであると判定されると、前記過去のフレームに適用されたf_codeと、前記過去のフレームと前記入力されたフレームとのフレーム間隔とにもとづいて、前記入力されたフレームに適用すべきf_codeを決定する、
請求項２ないし請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
入力されるフレームを動き補償付き予測を用いて符号化する動画像符号化方法であって、
入力されたフレームの動きベクトル検出を行う前に前記入力されたフレームに適用すべきf_codeを決定するステップと、
このf_codeを用いて前記入力されたフレームの動きベクトル検出を行うステップと、
を有し、
前記f_codeを決定するステップは、
前記入力されたフレームより前に動きベクトル検出された過去のフレームに適用されたf_codeと、前記f_codeを適用されて前記過去のフレームで検出された動きベクトルの大きさの分布とにもとづいて、新たなf_codeを決定し、この新たなf_codeを前記入力されたフレームに適用すべきf_codeとするステップである、
ことを特徴とする動画像符号化方法。
【請求項７】
前記f_codeを決定するステップは、
前記入力されたフレームの種別を判定するステップと、
前記フレームの種別を判定するステップで前記入力されたフレームが前方予測符号化画像であると判定され、かつ、前記過去のフレームで検出された動きベクトルについて、所定の大きさ以上の大きさを有する動きベクトルの個数が第１の閾値以上である場合には、前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより大きい値とするステップと、
前記フレームの種別を判定するステップで前記入力されたフレームが前方予測符号化画像であると判定され、かつ、前記過去のフレームで検出された動きベクトルについて、前記所定の大きさより小さい他の所定の大きさ以上の大きさを有する動きベクトルの個数が第２の閾値以下である場合には、前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより小さい値とするステップと、
を有する請求項６記載の動画像符号化方法。
【請求項８】
前記過去のフレームの動きベクトル検出を行う際に、前記過去のフレームに適用されたf_codeにもとづいて検出された動きベクトルの大きさの分布を取得するステップ、
をさらに有する請求項７記載の動画像符号化方法。
【請求項９】
前記f_codeを決定するステップは、
前記過去のフレームで検出された動きベクトルについて、前記過去のフレームに適用されたf_codeのもとで許容される最大の大きさをもつ動きベクトルの個数が第１の閾値より多いかどうか判定する第１の個数判定ステップと、
前記過去のフレームで検出された動きベクトルについて、前記過去のフレームに適用されたf_codeから１を減じたf_codeのもとで許容される最大の大きさより大きい動きベクトルの個数が第２の閾値より少ないかどうか判定する第２の個数判定ステップと、
をさらに有し、
前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより大きい値とするステップは、
前記第１の個数判定ステップで前記第１の閾値より多いと判定されると、前記過去のフレームに適用されたf_codeに１を加えた値を前記入力されたフレームに適用すべきf_codeの値とするステップであり、
前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより小さい値とするステップは、
前記第２の個数判定手段により前記第２の閾値より少ないと判定されると、前記過去のフレームに適用されたf_codeに１を減じた値を前記入力されたフレームに適用すべきf_codeの値とするステップである、
請求項７または請求項８に記載の動画像符号化方法。
【請求項１０】
前記f_codeを決定するステップは、
前記フレームの種別を判定するステップで前記入力されたフレームが双方向予測符号化画像であると判定されると、前記過去のフレームに適用されたf_codeと、前記過去のフレームと前記入力されたフレームとのフレーム間隔とにもとづいて、前記入力されたフレームに適用すべきf_codeを決定する、
請求項７ないし請求項９のいずれか１項に記載の動画像符号化方法。
【請求項１１】
コンピュータに、入力されるフレームを動き補償付き予測を用いて符号化させるためのプログラムであって、
コンピュータに、
入力されたフレームの動きベクトル検出を行う前に前記入力されたフレームに適用すべきf_codeを決定するステップと、
このf_codeを用いて前記入力されたフレームの動きベクトル検出を行うステップと、
を実行させ、
前記f_codeを決定するステップは、
前記入力されたフレームより前に動きベクトル検出された過去のフレームに適用されたf_codeと、前記f_codeを適用されて前記過去のフレームで検出された動きベクトルの大きさの分布とにもとづいて、新たなf_codeを決定し、この新たなf_codeを前記入力されたフレームに適用すべきf_codeとするステップである、
ことを特徴とするプログラム。
【請求項１２】
前記f_codeを決定するステップは、
前記入力されたフレームの種別を判定するステップと、
前記フレームの種別を判定するステップで前記入力されたフレームが前方予測符号化画像であると判定され、かつ、前記過去のフレームで検出された動きベクトルについて、所定の大きさ以上の大きさを有する動きベクトルの個数が第１の閾値以上である場合には、前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより大きい値とするステップと、
前記フレームの種別を判定するステップで前記入力されたフレームが前方予測符号化画像であると判定され、かつ、前記過去のフレームで検出された動きベクトルについて、前記所定の大きさより小さい他の所定の大きさ以上の大きさを有する動きベクトルの個数が第２の閾値以下である場合には、前記入力されたフレームに適用すべきf_codeを前記過去のフレームに適用されたf_codeより小さい値とするステップと、
を有する請求項１１記載のプログラム。
【請求項１３】
コンピュータに、
前記過去のフレームの動きベクトル検出を行う際に、前記過去のフレームに適用されたf_codeにもとづいて検出された動きベクトルの大きさの分布を取得するステップ、
をさらに実行させるための請求項１２記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償予測を用いて動画像を符号化する情報処理装置、動画像符号化方法およびプログラムに関する。
【背景技術】
【０００２】
従来、この種の動き補償予測を用いて動画像を符号化する技術に、特開平９−５５９４１号公報（特許文献１）に開示されたものがある。
【０００３】
この特許文献１に開示された画像符号化装置は、１フレーム分の入力映像信号の動きベクトルを前フレームの映像信号を用いて検出し、検出した動きベクトルにもとづいて前フレームの映像信号に対して動き補償して圧縮符号化処理を行う画像符号化装置であって、動きベクトルの分布範囲を検出する分布検出手段と、検出された分布範囲にもとづいて動きベクトルのサーチ範囲を予測して設定する制御手段とを備える。
【０００４】
この画像符号化装置は、入力されるフレームごとに動的に設定されるサーチ範囲で、入力映像信号の動きベクトルを検出するようになっている。このため、動きベクトルに適したサーチ範囲をフレームごとに動的に決定することができる。
【特許文献１】特開平９−５５９４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、マクロブロック単位で動きベクトル検出とビットストリームへの符号化を行う場合には、動きベクトル検出を行う前にf_codeを決めておく必要がある。しかし、従来の技術では、f_codeを決定するためには、まず動きベクトルのサーチ範囲を設定した後、f_codeを決定することになり、非常に複雑な処理が必要となってしまう。
【０００６】
本発明は、上述した事情を考慮してなされたもので、動き補償予測を用いて動画像を符号化する際に、動きベクトルを検出する前に各フレームに適したf_codeを動的にかつ簡単に決定することができる情報処理装置、動画像符号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、上述した課題を解決するために、入力されるフレームを動き補償付き予測を用いて符号化する情報処理装置であって、入力されたフレームの動きベクトル検出を行う前に前記入力されたフレームに適用すべきf_codeを決定するf_code決定手段、を備え、前記f_code決定手段は、前記入力されたフレームより前に動きベクトル検出された過去のフレームに適用されたf_codeと、前記f_codeを適用されて前記過去のフレームで検出された動きベクトルの大きさの分布とにもとづいて、新たなf_codeを決定し、この新たなf_codeを前記入力されたフレームに適用すべきf_codeとする、ことを特徴とするものである。
【０００８】
一方、本発明に係る動画像符号化方法は、上述した課題を解決するために、入力されるフレームを動き補償付き予測を用いて符号化する動画像符号化方法であって、入力されたフレームの動きベクトル検出を行う前に前記入力されたフレームに適用すべきf_codeを決定するステップと、このf_codeを用いて前記入力されたフレームの動きベクトル検出を行うステップと、を有し、前記f_codeを決定するステップは、前記入力されたフレームより前に動きベクトル検出された過去のフレームに適用されたf_codeと、前記f_codeを適用されて前記過去のフレームで検出された動きベクトルの大きさの分布とにもとづいて、新たなf_codeを決定し、この新たなf_codeを前記入力されたフレームに適用すべきf_codeとするステップである、ことを特徴とする方法である。
【０００９】
さらに、本発明に係るプログラムは、上述した課題を解決するために、コンピュータに、入力されるフレームを動き補償付き予測を用いて符号化させるためのプログラムであって、コンピュータに、入力されたフレームの動きベクトル検出を行う前に前記入力されたフレームに適用すべきf_codeを決定するステップと、このf_codeを用いて前記入力されたフレームの動きベクトル検出を行うステップと、を実行させ、前記f_codeを決定するステップは、前記入力されたフレームより前に動きベクトル検出された過去のフレームに適用されたf_codeと、前記f_codeを適用されて前記過去のフレームで検出された動きベクトルの大きさの分布とにもとづいて、新たなf_codeを決定し、この新たなf_codeを前記入力されたフレームに適用すべきf_codeとするステップである、ことを特徴とするプログラムである。
【発明の効果】
【００１０】
本発明に係る情報処理装置、動画像符号化方法およびプログラムによれば、動き補償予測を用いて動画像を符号化する際に、動きベクトルを検出する前に各フレームに適したf_codeを動的にかつ簡単に決定することができる。
【発明を実施するための最良の形態】
【００１１】
本発明に係る情報処理装置、動画像符号化方法およびプログラムの実施の形態について、添付図面を参照して説明する。
【００１２】
図１は、本発明に係る情報処理装置１０の第１実施形態を示す概略的な全体構成図である。
【００１３】
情報処理装置１０は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、操作受付部１４、表示出力部１５、ネットワーク接続部１６、符号化部２０および記憶部群５０を有する。
【００１４】
ＣＰＵ１１は、ＲＯＭ１３内に記憶されたプログラムに従って、符号化部２０をはじめとする情報処理装置１０の処理動作を制御する。ＣＰＵ１１は、ＲＯＭ１３内に記憶された符号化プログラムおよびプログラムの実行のために必要なデータを、ＲＡＭ１２へロードし、符号化プログラムに従って動きベクトルを検出する前に各フレームに適したf_codeを動的にかつ簡単に決定する処理を実行する。
【００１５】
ＣＰＵ１１は、符号化プログラムによって、少なくとも符号化制御部およびf_code決定部３４として機能する。この各部は、ＲＡＭ１２の所要のワークエリアを、データの一時的な格納場所として利用する。なお、この機能実現部は、ＣＰＵ１１を用いることなく回路などのハードウエアロジックによって構成してもよい。
【００１６】
ＲＡＭ１２は、ＣＰＵ１１が実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。
【００１７】
ＲＯＭ１３は、情報処理装置１０の起動プログラム、符号化プログラムや、これらのプログラムを実行するために必要な各種データを記憶する。
【００１８】
なお、ＲＯＭ１３は、磁気的もしくは光学的記録媒体または半導体メモリなどの、ＣＰＵ１１により読み取り可能な記録媒体を含んだ構成を有し、ＲＯＭ１３内のプログラムおよびデータの一部または全部は電子ネットワークを介してダウンロードされるように構成してもよい。また、ＨＤＤ（ハードディスク）は、補助記憶装置として用いられる磁気的記録媒体である。
【００１９】
操作受付部１４は、たとえばキーボード、タッチパネル、テンキーなどの一般的な入力装置により構成され、ユーザの操作に対応した操作入力信号をＣＰＵ１１に出力する。
【００２０】
表示出力部１５は、たとえば液晶ディスプレイやＣＲＴディスプレイなどの一般的な表示出力装置により構成され、ＣＰＵ１１の制御に従って各種情報を表示する。
【００２１】
ネットワーク接続部１６は、ネットワークの形態に応じた種々の情報通信用プロトコルを実装する。ネットワーク接続部１６は、この各種プロトコルに従って情報処理装置１０と他の電気機器とを接続する。この接続には、電子ネットワークを介した電気的な接続などを適用することができる。ここで電子ネットワークとは、電気通信技術を利用した情報通信網全般を意味し、ＬＡＮ（Local Area Network）やインターネット網のほか、電話通信回線網、光ファイバ通信ネットワーク、ケーブル通信ネットワークおよび衛星通信ネットワークなどを含む。
【００２２】
符号化部２０は、ＣＰＵ１１の符号化制御部の制御に従って、入力された動画像を符号化してビットストリームとして出力する。符号化部２０は、入力されたピクチャの動きベクトル検出を行う前に、この入力されたフレームに適用すべきf_codeを決定する。一方、出力されたビットストリームは、ＲＡＭ１２やＨＤＤなどの記憶媒体に記憶される。情報処理装置１０としてＤＶＤ／ＨＤＤ記録再生装置などを用いた場合には、このビットストリームは、ＨＤ  ＤＶＤなどに記録されても良い。また、ビットストリームは、ネットワーク接続部１６を介してネットワーク上に送信されてもよい。
【００２３】
図２は、図１に示す符号化部２０の構成例を示す概略的なブロック図である。なお、この符号化部２０は、構成の一部または全部を、コンピュータによりプログラムを実行させて機能させることもできる。
【００２４】
符号化部２０は、動画像入力端子２１、スイッチ２２ａおよび２２ｂ、減算回路２３、ＤＣＴ回路２４（図２のＤＣＴ）、量子化回路２５（図２のＱｕａｎｔ）、可変長符号化回路２６（図２のＶＬＣ）、ストリームバッファ２７、動画像出力端子２８、逆量子化回路２９（図２のＩＱｕａｎｔ）、逆ＤＣＴ回路３０（図２のＩＤＣＴ）、加算回路３１、フレームメモリ３２、動き補償予測回路３３およびf_code決定部３４を有する。
【００２５】
動画像入力端子２１から入力された動画像がフレーム内予測符号化されるべきピクチャ（以下、Ｉピクチャという）である場合は、動き補償予測を行う必要がない。この場合、ＣＰＵ１１は、スイッチ２２ａを図２の上方の配線と短絡してこのピクチャが減算回路２３を経ないようにするとともに、スイッチ２２ｂを開放する（イントラモード）。
【００２６】
一方、動画像入力端子２１から入力された動画像が前方予測符号化されるべきピクチャ（以下、Ｐピクチャという）または双方向予測符号化されるべきピクチャ（以下、Ｂピクチャという）である場合は、動き予測を行う。この場合、ＣＰＵ１１は、スイッチ２２ａを図２の下方の配線と短絡してこのピクチャが減算回路２３を経るようにするとともに、スイッチ２２ｂを短絡する（インターモード）。
【００２７】
入力されたピクチャ（以下、入力ピクチャという）は、ＤＣＴ回路２４で離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）され、量子化回路２５で量子化（Quantize）され、可変長符号化回路２６で可変長符号化（ＶＬＣ：Variable Length Coding）されることにより符号化されて、ストリームバッファ２７を介して動画像出力端子２８からビットストリームとして出力される。また、量子化されたデータは逆量子化回路２９にも供給されて逆量子化され、逆ＤＣＴ回路３０で逆ＤＣＴ処理を施されることにより、Ｉピクチャの元データに戻される。この元データは加算回路３１を介してフレームメモリ３２に記憶される。この結果、入力ピクチャは、後に入力されるピクチャが符号化される際に参照可能なピクチャ（以下、参照ピクチャという）となる。
【００２８】
動き補償予測回路３３は、入力ピクチャの動きベクトル検出と動き補償を行う。以下、参照ピクチャがＩピクチャであり入力ピクチャがＰピクチャである場合の例について説明する。
【００２９】
動きベクトル検出は、フレームメモリ３２に記憶されている参照ピクチャを利用してブロックマッチング処理を実行することにより行われる。本実施形態においては、この動きベクトル検出が行われる前に、f_code決定部３４により入力ピクチャに適用すべきf_codeを決定することができるため、このf_codeを適用して入力ピクチャの動き補償予測を行う。
【００３０】
動き補償は、フレームメモリ３２に記憶された参照ピクチャのデータから、検出された動きベクトルに見合ったブロックデータを読出すことにより、参照ピクチャに対して行われる。動き補償予測回路３３は、動き補償した参照ピクチャを減算回路２３に出力する。
【００３１】
減算回路２３は、入力ピクチャと動き補償された参照ピクチャのブロック同士の残差データを出力し、この残差データをＤＣＴ回路２４および量子化回路２５を介して可変長符号化回路２６に与える。
【００３２】
可変長符号化回路２６は、減算回路２３から受けた残差データおよび動き補償予測回路３３から受けた動きベクトルに対して可変長符号をわりあてて符号化データとして出力する。また、量子化された残差データは逆量子化回路２９にも供給され、逆量子化および逆ＤＣＴ変換を介して復号されて加算回路３１に与えられる。また、インターモードの場合、加算回路３１には、動き補償予測回路３３から動き補償した参照ピクチャが与えられる。この場合、加算回路３１は、復号された残差データと動き補償した参照ピクチャとを加算して入力ピクチャの元データを取得し、この元データをフレームメモリ３２に記憶させる。この結果、入力ピクチャ（Ｐピクチャ）は、後に入力されるピクチャが符号化される際に参照可能なピクチャとなる。
【００３３】
図３は、図２に示すf_code決定部３４の構成例を示す概略的なブロック図である。
【００３４】
f_code決定部３４は、f_code決定部３４は、サイズ分布取得部３５、ピクチャ種別判定部３６、個数判定部群３７、f_code更新部４２および上限監視部４３を有し、入力されたピクチャに対する動きベクトル検出が行われる前に、入力ピクチャに適用すべきf_codeを決定する。
【００３５】
サイズ分布取得部３５は、動き補償予測回路３３により入力ベクトルに対する動きベクトル検出が行われる際に、検出された動きベクトルのそれぞれの大きさを取得して、必要に応じて記憶部群５０の動きベクトル数記憶部群５３に記憶させる。この動きベクトル検出において用いられるf_codeは、f_code記憶部５１に記憶されているf_codeである。このf_code記憶部５１に記憶されているf_codeは、入力されたピクチャに対する動きベクトル検出が行われるごとに、f_code更新部４２によって更新される。
【００３６】
ピクチャ種別判定部３６は、入力されたピクチャがＩ、Ｐ、Ｂのいずれのピクチャであるかを判定する。
【００３７】
個数判定部群３７は、入力されたピクチャがＰピクチャである場合に、所定の大きさ以上の大きさを有する動きベクトルの個数と、閾値記憶部５２にあらかじめ記憶されている閾値とを比較し、いずれが大きいかを判定する。この判定の結果は、f_codeをピクチャの動きベクトルの大きさの分布に応じて動的に変更するためにf_code更新部４２に利用される。本実施形態においては、個数判定部群３７が第１〜第４の個数判定部４１３８〜４１を有し、閾値記憶部５２には第１〜第４の閾値Ｎｔｈ１〜Ｎｔｈ４が記憶され、各個数判定部３８〜４１が各閾値Ｎｔｈ１〜Ｎｔｈ４を用いる場合の例について示す。
【００３８】
f_code更新部４２は、過去のピクチャに適用されたf_codeと、過去のピクチャの動きベクトルの分布と、個数判定部群３７の判定結果などにもとづいて、次に入力されるピクチャに適用すべきf_codeを決定し、f_code記憶部５１に記憶されたf_codeを更新する。
【００３９】
上限監視部４３は、あらかじめ設定されたf_codeの上限値f_codeＭＡＸより、f_code記憶部５１に記憶されているf_codeのほうが大きい場合に、f_code記憶部５１に記憶されているf_codeをf_codeＭＡＸに修正するようf_code更新部４２に指示する。f_codeＭＡＸの値としては、たとえば符号化サイズにもとづいて決定するとよい。
【００４０】
記憶部群５０は、f_code記憶部５１、閾値記憶部５２および動きベクトル数記憶部群５３を有する。
【００４１】
f_code記憶部５１は、f_code更新部４２により書込まれるf_codeを記憶する。このf_codeは、動き検出された後、かつ、次に入力されるピクチャの動き検出を実行する前に、f_code更新部４２により更新される。f_code記憶部５１に記憶されているf_codeは、ピクチャが入力されると、動き補償予測回路３３および可変長符号化回路２６により利用される。なお、本実施形態においては、入力されたピクチャがＰピクチャである場合のみ、f_code記憶部５１に記憶されるf_codeが更新される場合の例について示す。
【００４２】
閾値記憶部５２は、個数判定部群３７に用いられる閾値を記憶する。この閾値は、動きベクトルの大きさの分布に応じてf_codeを動的に変更するために用いられる。本実施形態においては、閾値記憶部５２に第１〜第４の閾値Ｎｔｈ１〜Ｎｔｈ４が記憶されている場合の例について示す。
【００４３】
動きベクトル数記憶部群５３は、サイズ分布取得部３５に制御されて、所定の大きさを有する動きベクトルの数を記憶する。本実施形態においては、動きベクトル数記憶部群５３は、第１の動きベクトル数記憶部５４、第２の動きベクトル数記憶部５５、第３の動きベクトル数記憶部５６の３つの記憶部を有する場合の例について示す。
【００４４】
第１の動きベクトル数記憶部５４は、動き補償予測回路３３によって現在動きベクトルを検出されているピクチャについて、動きベクトルの大きさＭｍｖが、このピクチャに適用されているf_codeのもとでとりうる最大の大きさｍｖＭＡＸ（f_code）と等しい大きさを有する動きベクトルの数Ｎ１を記憶する。この第１の動きベクトル記憶部に記憶される個数が多いと、現在適用されているf_codeが、符号化対象となっている動画像にとってやや小さいと考えられる。
【００４５】
第２の動きベクトル数記憶部５５は、現在動きベクトルを検出されているピクチャについて、動きベクトルの大きさＭｍｖが、このピクチャに適用されているf_codeから１を減じたf_codeのもとでとりうる最大の大きさｍｖＭＡＸ（f_code−１）より大きい動きベクトルの数Ｎ２を記憶する。この第２の動きベクトル記憶部に記憶される個数が少ないと、現在適用されているf_codeから１を減じたf_codeでも、符号化対象となっている動画像にとっては十分であると考えられる。
【００４６】
第３の動きベクトル数記憶部５６は、現在動きベクトルを検出されているピクチャについて、動きベクトルの大きさＭｍｖが、このピクチャに適用されているf_codeから１を減じたf_codeのもとでとりうる最大の大きさｍｖＭＡＸ（f_code−２）より大きい動きベクトルの数Ｎ３を記憶する。この第３の動きベクトル記憶部に記憶される個数が少ないと、現在適用されているf_codeから２を減じたf_codeでも、符号化対象となっている動画像にとっては十分であると考えられる。
【００４７】
次に、本実施形態に係る情報処理装置１０の動作の一例について説明する。
【００４８】
まず、動きベクトルのサイズ分布を取得する処理の手順について説明する。なお、本実施形態においては、入力されたピクチャがＰピクチャである場合のみ、動きベクトルのサイズ分布を取得する場合の例について示す。
【００４９】
図４は、図３に示すサイズ分布取得部３５により、f_code記憶部５１に記憶されているf_codeにもとづいて動きベクトルのサイズ分布を取得する際の手順を示すフローチャートである。図４において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００５０】
この手順は、f_code記憶部５１にf_codeが記憶され、動画像入力端子２１にＰピクチャが入力された時点でスタートとなる。なお、f_code記憶部５１には、一連の動画像入力前には適当なf_codeの値（たとえば４など）が記憶されているものとする。
【００５１】
まず、ステップＳ１において、サイズ分布取得部３５は、f_code記憶部５１に記憶されているf_codeの値を取得する。
【００５２】
次に、ステップＳ２において、サイズ分布取得部３５は、取得したf_codeのもとでとりうる最大の動きベクトルの大きさｍｖＭＡＸ（f_code）の大きさを算出する。
【００５３】
次に、ステップＳ３において、サイズ分布取得部３５は、取得したf_codeから１を減じたf_code（つまりf_code−１）のもとでとりうる最大の動きベクトルの大きさｍｖＭＡＸ（f_code−１）の大きさを算出する。
【００５４】
次に、ステップＳ４において、サイズ分布取得部３５は、取得したf_codeから２を減じたf_code（つまりf_code−２）のもとでとりうる最大の動きベクトルの大きさｍｖＭＡＸ（f_code−２）の大きさを算出する。
【００５５】
次に、ステップＳ５において、サイズ分布取得部３５は、動きベクトル数記憶部群５３に記憶されている値をゼロにリセットする。
【００５６】
次に、ステップＳ６において、サイズ分布取得部３５は、動き補償予測回路３３から、入力されたピクチャのあるブロックに対して、f_code記憶部５１に記憶されているf_codeを適用することにより検出した動きベクトルについて、少なくともこの動きベクトルの大きさｍｖを取得する。
【００５７】
次に、ステップＳ７において、サイズ分布取得部３５は、動き補償予測回路３３から取得した動きベクトルの大きさｍｖが、ｍｖＭＡＸ（f_code−２）より大きいか否かを判定する。大きい場合はステップＳ８に進む。小さい場合は、ステップＳ１３に進む。
【００５８】
次に、ステップＳ８において、サイズ分布取得部３５は、第３の動きベクトル数記憶部５６の値を１だけ増加させる。
【００５９】
次に、ステップＳ９において、サイズ分布取得部３５は、動き補償予測回路３３から取得した動きベクトルの大きさｍｖが、ｍｖＭＡＸ（f_code−１）より大きいか否かを判定する。大きい場合はステップＳ１０に進む。小さい場合は、ステップＳ１３に進む。
【００６０】
次に、ステップＳ１０において、サイズ分布取得部３５は、第２の動きベクトル数記憶部５５の値を１だけ増加させる。
【００６１】
次に、ステップＳ１１において、サイズ分布取得部３５は、動き補償予測回路３３から取得した動きベクトルの大きさｍｖが、ｍｖＭＡＸ（f_code）と等しいか否か判定する。等しい場合はステップＳ１２に進む。小さい場合は、ステップＳ１３に進む。
【００６２】
次に、ステップＳ１２において、サイズ分布取得部３５は、第１の動きベクトル数記憶部５４の値を１だけ増加させる。
【００６３】
次に、ステップＳ１３において、サイズ分布取得部３５は、入力されたピクチャについて、動きベクトルが未検出のブロックがないかどうか判定する。未検出ブロックがある場合は、ステップＳ６に戻り、引き続き、入力されたピクチャについてf_code記憶部５１に記憶されているf_codeを適用することにより検出される動きベクトルの大きさの分布を取得する。一方、未検出ブロックがない場合は、一連の手順は終了となる。
【００６４】
以上の手順により、f_code記憶部５１に記憶されているf_codeにもとづいて動きベクトルのサイズ分布を取得することができる。
【００６５】
続いて、新たに入力されるピクチャについて、動きベクトル検出を行う前に適用すべきf_codeを決定する際の手順について説明する。
【００６６】
図５は、前回のＰピクチャに適用されたf_codeと、このf_codeを適用されて前回のＰピクチャで検出された動きベクトルについてサイズ分布取得部３５が取得した大きさの分布とにもとづいて、新たに入力されるピクチャに適用すべきf_codeを決定する際の手順を示すフローチャートである。図５において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００６７】
この手順は、f_code記憶部５１にf_codeが記憶され、このf_codeが適用されたＰピクチャについてサイズ分布取得部３５により動きベクトルの大きさの分布が取得されて動きベクトル数記憶部群５３の値が確定し、この動きベクトルの大きさの分布が取得されたＰピクチャの次に符号化されるべきピクチャが入力された時点でスタートとなる。
【００６８】
この手順のスタートの時点では、f_code記憶部５１には、まだ前回のＰピクチャに適用されたf_codeが記憶されていることに注意する。
【００６９】
まず、ステップＳ２１において、ピクチャ種別判定部３６は、入力されたピクチャがＩピクチャであるか否か判定する。Ｉピクチャである場合は、ステップＳ３３に進む。一方、Ｉピクチャでない場合は、ステップＳ２２に進む。
【００７０】
次に、ステップＳ２２において、ピクチャ種別判定部３６は、入力されたピクチャがＢピクチャであるか否かを判定する。Ｂピクチャである場合は、ステップＳ３２に進む。一方、Ｂピクチャでない場合は、ステップＳ２３に進む。
【００７１】
次に、ステップＳ２３において、第１の個数判定部３８は、第１の動きベクトル数記憶部５４から、前回のＰピクチャについて、動きベクトルの大きさｍｖがｍｖ＝ｍｖＭＡＸ（f_code）である動きベクトルの数Ｎ１を取得する。また、第１の個数判定部３８は、閾値記憶部５２から、第１の閾値Ｎｔｈ１を取得する。そして、第１の個数判定部３８は、Ｎ１がＮｔｈ１より多いか否か判定する。Ｎ１がＮｔｈ１より多い場合は、ステップＳ２９に進む。一方、少ない場合は、ステップＳ２４に進む。
【００７２】
Ｎｔｈ１としては、たとえば、１フレームのマクロブロックの所定の割合の値などを設定する。この所定の割合以上のマクロブロックで、動きベクトルの大きさｍｖがｍｖ＞ｍｖＭＡＸ（f_code−１）であるならば、f_codeは小さすぎたと判断することができる。この割合は、必要に応じて設定すればよく、たとえば１０％や５０％といった値を用いることができる。
【００７３】
次に、ステップＳ２４において、第２の個数判定部３９は、第２の動きベクトル数記憶部５５から、前回のＰピクチャについて、動きベクトルの大きさｍｖがｍｖ＞ｍｖＭＡＸ（f_code−１）である動きベクトルの数Ｎ２を取得する。また、第２の個数判定部３９は、閾値記憶部５２から、第２の閾値Ｎｔｈ２を取得する。そして、第２の個数判定部３９は、Ｎ２がＮｔｈ２より少ないか否か判定する。Ｎ２がＮｔｈ２より少ない場合は、ステップＳ２６に進む。一方、多い場合は、ステップＳ２５に進む。
【００７４】
次に、ステップＳ２５において、f_code更新部４２は、f_code記憶部５１に記憶されているf_codeの値を更新せず、ステップＳ３４に進む。
【００７５】
一方、ステップＳ２６において、第３の個数判定部４０は、第３の動きベクトル数記憶部５６から、前回のＰピクチャについて、動きベクトルの大きさｍｖがｍｖ＞ｍｖＭＡＸ（f_code−２）である動きベクトルの数Ｎ３を取得する。また、第３の個数判定部４０は、閾値記憶部５２から、第３の閾値Ｎｔｈ３を取得する。そして、第３の個数判定部４０は、Ｎ３がＮｔｈ３より少ないか否か判定する。Ｎ３がＮｔｈ３より少ない場合は、ステップＳ２８に進む。一方、多い場合は、ステップＳ２７に進む。
【００７６】
次に、ステップＳ２７において、f_code更新部４２は、f_code記憶部５１に記憶されているf_codeから１を減じるようf_codeを更新し、ステップＳ３４に進む。
【００７７】
一方、ステップＳ２８において、f_code更新部４２は、f_code記憶部５１に記憶されているf_codeから２を減じるようf_codeを更新し、ステップＳ３４に進む。
【００７８】
他方、ステップＳ２９において、第４の個数判定部４１は、第１の動きベクトル数記憶部５４から、前回のＰピクチャについて、動きベクトルの大きさｍｖがｍｖ＝ｍｖＭＡＸ（f_code）である動きベクトルの数Ｎ１を取得する。また、第４の個数判定部４１は、閾値記憶部５２から、第４の閾値Ｎｔｈ４を取得する。第４の閾値Ｎｔｈ４は、第１の閾値Ｎｔｈ１より大きい値である。そして、第４の個数判定部４１は、Ｎ４がＮｔｈ４より多いか否か判定する。Ｎ４がＮｔｈ４より多い場合は、ステップＳ３１に進む。一方、少ない場合は、ステップＳ３０に進む。
【００７９】
次に、ステップＳ３０において、f_code更新部４２は、f_code記憶部５１に記憶されているf_codeに１を加えるようf_codeを更新し、ステップＳ３４に進む。
【００８０】
一方、ステップＳ３１において、f_code更新部４２は、f_code記憶部５１に記憶されているf_codeに２を加えるようf_codeを更新し、ステップＳ３４に進む。
【００８１】
他方、ステップＳ２２において入力されたピクチャがＰピクチャではないと判定された場合、つまり、このピクチャがＢピクチャであると識別された場合は、ステップＳ３２において、f_code更新部４２は、前回のＰピクチャとこの入力されたＢピクチャとのフレーム間隔にもとづいて、このＢピクチャに適用すべきf_codeを決定してこのＢピクチャに適用すべきf_codeの情報を可変長符号化回路２６および動き補償予測回路３３に与える。このとき、Ｐピクチャ以外のf_codeはf_code記憶部５１に記憶させない点に注意する。
【００８２】
たとえば、フレーム表示順序が左から右へＰ１Ｂ１Ｂ２Ｐ２Ｂ３Ｂ４Ｐ３・・・と進む場合について考える。前回のＰピクチャがＰ２であり、入力されたＢピクチャがＢ１である場合は、このＢピクチャＢ１には、前方予測ではＰ２に対するf_codeから２を減じた値を適用する。前方予測はＰ１を基準ピクチャとするため、Ｂ１はＰ２から遠い位置にあると考えるためである。一方、後方予測ではＰ２に対するf_codeから１を減じた値を適用する。後方予測はＰ２を基準ピクチャとするため、Ｂ１はＰ１から近い位置にあると考えるためである。
【００８３】
他方、ステップＳ２１において、入力されたピクチャがＩピクチャであると判定された場合は、ステップＳ３３において、f_code更新部４２は、このＩピクチャに適用すべきf_codeが１５である旨の情報を可変長符号化回路２６および動き補償予測回路３３に与える。このとき、Ｐピクチャ以外のf_codeはf_code記憶部５１に記憶させない点に注意する。なお、f_code＝１５は、Ｉピクチャを符号化する際に用いられる一般的な値であることから本実施形態ではこの値をとる場合の例について説明したが、Ｉピクチャの符号化を実行する上で支障のない数値であれば、この値（１５）に限定されるものではない。
【００８４】
そして、ステップＳ３４において、上限監視部４３は、あらかじめ設定されたf_codeの上限値f_codeＭＡＸより、f_code記憶部５１に記憶されているf_codeのほうが大きい場合に、f_code記憶部５１に記憶されているf_codeをf_codeＭＡＸに修正するようf_code更新部４２に指示する。f_codeＭＡＸの値としては、たとえば符号化サイズにもとづいて決定するとよい。これは、必要以上にf_codeが大きくなっていってしまうのを防ぐためである。
【００８５】
f_code更新部４２は、必要に応じてf_code記憶部５１に記憶されているf_codeの値を修正し、一連の手順は終了となる。
【００８６】
以上の手順により、前回のＰピクチャに適用されたf_codeと、このf_codeを適用されて前回のＰピクチャで検出された動きベクトルについてサイズ分布取得部３５が取得した大きさの分布とにもとづいて、新たに入力されるピクチャに適用すべきf_codeを決定することができる。
【００８７】
本実施形態に係る情報処理装置１０によれば、動きベクトルの検出前に、入力されたピクチャに適用すべきf_codeを、非常に容易に決定することができる。このため、従来の動きベクトルのサーチ範囲の制御を行う技術にくらべ、非常に簡単な処理ですばやくf_codeを取得することができる。
【００８８】
また、本実施形態に係る情報処理装置１０は、固定のf_codeではなく、入力されるピクチャごとに動的に決定したf_codeを用いる。このため、画像の動きに適したf_codeを利用することができる。したがって、本実施形態に係る情報処理装置１０によれば、符号化効率を落とすことなく動きベクトルを符号化することができる。
【００８９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【００９０】
たとえば、f_code決定部３４が利用する閾値は本実施形態で示した例より多くても構わない。また、動きベクトルの大きさの分布は、より詳細な分布を取得するようにしても構わない。たとえば閾値を増やす場合には、f_code決定部３４でf_codeを増加させる場合は、前回のＰピクチャに適用されたf_codeでとりえる最大の動きベクトルが検出された回数の閾値を、Ｎｔｈ１およびＮｔｈ４に加えてさらに設定しておいてもよい。
【００９１】
閾値を増やす場合、より急激な動きに追従することができる。また、取得する動きベクトルの大きさの分布を詳細なものにする場合、より画像の動きに忠実なf_codeを適用することができる。なお、これらの場合、処理が若干複雑になることに注意すべきである。
【００９２】
また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【図面の簡単な説明】
【００９３】
【図１】本発明に係る情報処理装置の第１実施形態を示す概略的な全体構成図。
【図２】図１に示す符号化部の構成例を示す概略的なブロック図。
【図３】図２に示すf_code決定部の構成例を示す概略的なブロック図。
【図４】図３に示すサイズ分布取得部により、f_code記憶部に記憶されているf_codeにもとづいて動きベクトルのサイズ分布を取得する際の手順を示すフローチャート。
【図５】前回のＰピクチャに適用されたf_codeと、このf_codeを適用されて前回のＰピクチャで検出された動きベクトルについてサイズ分布取得部が取得した大きさの分布とにもとづいて、新たに入力されるピクチャに適用すべきf_codeを決定する際の手順を示すフローチャート。
【符号の説明】
【００９４】
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＲＯＭ
１４  操作受付部
１５  表示出力部
１６  ネットワーク接続部
２０  符号化部
２１  動画像入力端子
２２ａ、２２ｂ  スイッチ
２３  減算回路
２４  ＤＣＴ回路（ＤＣＴ）
２５  量子化回路（Ｑｕａｎｔ）
２６  可変長符号化回路（ＶＬＣ）
２７  ストリームバッファ
２８  動画像出力端子
２９  逆量子化回路（ＩＱｕａｎｔ）
３０  逆ＤＣＴ回路（ＩＤＣＴ）
３１  加算回路
３２  フレームメモリ
３３  動き補償予測回路
３４  f_code決定部
３５  サイズ分布取得部
３６  ピクチャ種別判定部
３７  個数判定部群
３８  第１の個数判定部
３９  第２の個数判定部
４０  第３の個数判定部
４１  第４の個数判定部
４２  f_code更新部
４３  上限監視部
５０  記憶部群
５１  f_code記憶部
５２  閾値記憶部
５３  動きベクトル数記憶部群
５４  第１の動きベクトル数記憶部
５５  第２の動きベクトル数記憶部
５６  第３の動きベクトル数記憶部
【図１】
2009159028.tif 000003
【図２】
2009159028.tif 000004
【図３】
2009159028.tif 000005
【図４】
2009159028.tif 000006
【図５】
2009159028.tif 000007