(57)【要約】【課題】記録済みの符号化ストリームと仮想バッファをどのタイミングで接続しても、仮想バッファがアンダーフローしないよう、適切に符号量を制御し、シームレス記録とプリ記録を同時に実現可能にする技術を提供する。【解決手段】生成された符号化ストリームに含まれるピクチャを復号処理のために保持した場合に想定される仮想バッファの占有量を算出し、占有量の情報に従い符号化手段における発生符号量を制御する動画像符号化装置であり、符号化ストリームにおけるピクチャグループの開始毎に、記録媒体に書き込み済みの符号化ストリームの終端における仮想バッファの占有量と一致する初期値を有する仮想バッファを設定し、該仮想バッファの占有量を符号化ストリームに含まれるピクチャのサイズに基づき更新し、算出した複数の仮想バッファの占有量のうち最小の占有量と発生符号量とを比較し、該発生符号量が最小の占有量を上回らないように制御する。【選択図】図１
2014017626.tif 000002
【特許請求の範囲】
【請求項１】
画像を符号化して符号化ストリームを生成する符号化手段と、
前記生成された符号化ストリームを保持する保持手段と、
前記保持手段が保持する符号化ストリームを、記録開始の指示に応じて記録媒体に書き込む書き込み手段と
を備える動画像符号化装置であって、
前記生成された符号化ストリームに含まれるピクチャを復号処理のために保持した場合に想定される仮想バッファの占有量を算出する算出手段と、
前記占有量の情報に従い前記符号化手段における発生符号量を制御する符号量制御手段と
をさらに備え、
前記算出手段は、前記符号化ストリームにおけるピクチャグループの開始毎に、前記書き込み手段が前記記録媒体に書き込みを行った符号化ストリームの終端における仮想バッファの占有量と一致する初期値を有する仮想バッファを設定し、該仮想バッファの占有量を前記符号化ストリームに含まれるピクチャのサイズに基づき更新し、
前記符号量制御手段は、前記算出手段が算出した複数の仮想バッファの占有量のうち最小の占有量と前記発生符号量とを比較し、該発生符号量が前記最小の占有量を上回らないように制御することを特徴とする動画像符号化装置。
【請求項２】
前記算出手段は、前記設定した仮想バッファについて所定数のピクチャグループに相当する数のピクチャにより該仮想バッファの占有量を更新した後、該仮想バッファを破棄することを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
前記書き込み手段は、前記記録開始の指示を受け付けた場合、該指示を受け付けた時点より所定数のピクチャグループだけ遡って、前記記録媒体への書き込みを開始することを特徴とする請求項１または２に記載の動画像符号化装置。
【請求項４】
画像を符号化して符号化ストリームを生成する符号化手段と、
前記生成された符号化ストリームを保持する保持手段と、
前記保持手段が保持する符号化ストリームを、記録開始の指示に応じて記録媒体に書き込む書き込み手段と
を備える動画像符号化装置の制御方法であって、
算出手段が、前記生成された符号化ストリームに含まれるピクチャを復号処理のために保持した場合に想定される仮想バッファの占有量を算出する算出工程と、
符号量制御手段が、前記占有量の情報に従い前記符号化手段における発生符号量を制御する符号量制御工程とを備え、
前記算出工程では、前記符号化ストリームにおけるピクチャグループの開始毎に、前記書き込み手段が前記記録媒体に書き込みを行った符号化ストリームの終端における仮想バッファの占有量と一致する初期値を有する仮想バッファを設定し、該仮想バッファの占有量を前記符号化ストリームに含まれるピクチャのサイズに基づき更新し、
前記符号量制御工程では、前記算出工程において算出された複数の仮想バッファの占有量のうち最小の占有量と前記発生符号量とを比較し、該発生符号量が前記最小の占有量を上回らないように制御することを特徴とする動画像符号化装置の制御方法。
【請求項５】
コンピュータを請求項１乃至３のいずれか１項に記載の動画像符号化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像符号化装置及びその制御方法、コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、記憶媒体にディスク媒体やハードディスク、メモリを用いてハイビジョン記録を行うビデオカメラが製品化されている。これらのビデオカメラは、小型で持ち運びも容易であり、かつ高画質の映像を記録できるため、今後ますます普及していくと思われる。このような機器では、記録時にはMPEG4  part-10:AVC(ISO/IEC 14496-10、別名H．２６４)のような圧縮符号化されたビデオストリーム（符号化ストリーム）で記録媒体に映像を保存し、ハイビジョン記録を行う。上記圧縮符号化方式では、画像間の相関を利用したフレーム間予測（インター予測）と、フレーム内の相関を利用したフレーム内予測（イントラ予測）を用いるとともに、算術符号化を用いることで高効率な圧縮符号化を実現している。
【０００３】
H.264では一定の転送レートで符号化ストリームが入力され、デコード時刻に各ピクチャの符号化ストリームが引き抜かれる仮想的なバッファが規定されている。そして、圧縮符号化時には、仮想バッファが破綻しないように符号量を制御することで、生成された符号化ストリームの再生互換を保つことができる。
【０００４】
複数のシーンを記録した際には、各シーンの符号化ストリームの仮想バッファをシームレスに結合するようなシームレス記録を行うことで、デコーダーが各シーンを跨いで再生する際に、止まることなく滑らかに再生できる。また、撮影時に予期せぬ撮影チャンスを逃さないために、記録開始前に入力された映像を符号化してバッファリングしておき、記録が開始されると所定の時間遡って記録を行うプリ記録機能を備えたビデオカメラも登場している。
【０００５】
シームレス記録に必要なバッファ占有量と時刻情報をシームレス情報として管理情報に記録する符号化装置が提案されている。（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３０６２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記提案技術の構成では、前回記録した記録済みの符号化ストリームと、プリ記録無しで符号化されたストリームとをシームレスに接続可能である。しかし、前回記録した、記録済みの符号化ストリームとプリ記録された符号化ストリームとを接続する場合、プリ記録は記録開始前に入力された映像を符号化するため、仮想バッファの占有量が遷移する。そのため、記録開始時の仮想バッファ占有量は、記録開始の指示がなされるタイミングによって異なってしまう。
【０００８】
そのため、記録済みの符号化ストリームの終端の仮想バッファ占有量と、記録開始の指示後に記録されるファイル先頭の仮想バッファ占有量がシームレスに接続できずに、仮想バッファがアンダーフローを起こしてしまう可能性があるため、シームレス記録とプリ記録を同時に実現することができないという問題がある。
【０００９】
そこで本発明は、記録済みの符号化ストリームと仮想バッファをどのタイミングで接続しても、仮想バッファがアンダーフローしないよう、適切に符号量を制御し、シームレス記録とプリ記録を同時に実現可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するための本発明は、画像を符号化して符号化ストリームを生成する符号化手段と、
前記生成された符号化ストリームを保持する保持手段と、
前記保持手段が保持する符号化ストリームを、記録開始の指示に応じて記録媒体に書き込む書き込み手段と
を備える動画像符号化装置であって、
前記生成された符号化ストリームに含まれるピクチャを復号処理のために保持した場合に想定される仮想バッファの占有量を算出する算出手段と、
前記占有量の情報に従い前記符号化手段における発生符号量を制御する符号量制御手段と
をさらに備え、
前記算出手段は、前記符号化ストリームにおけるピクチャグループの開始毎に、前記書き込み手段が前記記録媒体に書き込みを行った符号化ストリームの終端における仮想バッファの占有量と一致する初期値を有する仮想バッファを設定し、該仮想バッファの占有量を前記符号化ストリームに含まれるピクチャのサイズに基づき更新し、
前記符号量制御手段は、前記算出手段が算出した複数の仮想バッファの占有量のうち最小の占有量と前記発生符号量とを比較し、該発生符号量が前記最小の占有量を上回らないように制御することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、記録済みの符号化ストリームと仮想バッファをどのタイミングで接続しても、仮想バッファがアンダーフローしないよう、適切に符号量を制御し、シームレス記録とプリ記録を同時に実現可能にする技術を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】発明の実施形態に対応する動画像符号化装置の構成図である。
【図２】発明の実施形態に対応する復号化側から見た仮想バッファのモデルを示す構成図及び復号化側から見た仮想バッファの占有量の遷移を示す図である。
【図３】発明の実施形態に対応する仮想バッファ占有量の遷移を示す図である。
【図４】発明の実施形態に対応する符号化部の制御を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら本発明の好適な実施の形態を説明する。
【００１４】
図１は、発明の実施形態に対応する動画像符号化装置の構成の一例を示す図である。本動画像符号化装置は、直前に記録された符号化ストリームと、新たにプリ記録して記録したストリームとをシームレスに接続するように符号化するものである。図１の動画像符号化装置において、各ブロックは専用ロジック回路やメモリを用いてハードウェア的に構成されてもよい。或いは、メモリに記憶されている処理プログラムをＣＰＵ等のコンピュータが実行することにより、ソフトウェア的に構成されてもよい。
【００１５】
図１を参照して動画像符号化装置における符号化処理について説明する。画像入力部１０１は、撮像素子より画像信号を入力し、符号化部１０２へと出力する。符号化部１０２は、モード制御部１０８より記録停止かつ符号化開始（以後、プリ記録期間と呼ぶ）、または記録開始の指示がなされると、入力された画像に関して、所定の画素ブロックを単位として、予め蓄積された前後のフレームからの動きを検出する。そして、フレーム間で動き検出された結果である動きベクトルに基づいて動き補償を行う。所定の画素ブロックとは、例えば１６×１６画素からなる符号化ブロック（マクロブロック）である。フレーム内符号化を行う場合には入力画像を用いて、フレーム間符号化を行う場合には、動き補償後のデータと元画像との差分信号を用いて、直行変換、量子化を行い、エントロピー符号化して符号化ストリームを生成し、符号化ストリーム保持部１０３へと出力する。なお、Ｈ．２６４等の予測符号化処理は公知なので、詳細な説明は本明細書では省略する。符号化結果として、発生符号量と、ＰＳＮＲ（Peak Signal to Noise Ratio）などの符号化劣化情報を符号化制御部１０７へと出力する。
【００１６】
符号化ストリーム保持部１０３は、符号化ストリームを一定量保持する。ファイル書き込み部１０４は、ユーザから記録開始の指示に応じて、所定の期間遡った時刻に符号化された、符号化ストリーム保持部１０３に保持された符号化ストリームをファイルの先頭として記録媒体１０５へと書き込みを開始する。以後、ユーザから記録停止の指示があるまで、符号化部１０２が生成した符号化ストリームを記録媒体１０５へと書き込む処理を継続する。仮想バッファ占有量更新部１０６は、符号化部１０２の発生符号量と符号化劣化情報に基づいて仮想バッファの占有量を更新し、符号化制御部１０７へと通知する。仮想バッファとは、生成された符号化ストリームに含まれるピクチャを復号処理のために保持した場合に想定されるバッファである。ここで符号化劣化情報となるＰＳＮＲは、入力画像と、符号化した入力画像を復号処理して得られる局所復号画像から算出される。ＰＳＮＲとは、符号化による画像の劣化度合いを示す指標であり、ｄＢ（デシベル）と呼ばれる単位で表現される。その算出方法は、入力画像と局所復号画像との差分の二乗和を用いて行われ、算出結果であるＰＳＮＲ値が大きいときは符号化劣化が少なく、ＰＳＮＲ値が小さいときは符号化劣化が多いことを意味する。
【００１７】
プリ記録期間では、各ＧＯＰを起点とした、直前の記録済みストリームの終端とシームレスに接続した仮想バッファ占有量を保持、および更新する。また、仮想バッファの更新開始から所定の期間を経過した仮想バッファ占有量は破棄する。ユーザから記録開始の指示がなされると、記録される符号化ストリームと合致した仮想バッファ占有量以外を破棄する。以後、残された仮想バッファ占有量を更新していく。仮想バッファ占有量の更新方法についての詳細は、後述する。
【００１８】
符号化制御部１０７は、符号化部１０２の符号化の指標である、発生符号量の目標値（以後、割り当て符号量と呼ぶ）や量子化幅の目標値を符号化部へと通知する。モード制御部１０８は、ユーザの指示に従って、記録開始や記録停止、符号化開始や符号化停止などを符号化部１０２や仮想バッファ占有量更新部１０６、ファイル書き込み部１０４へと通知する。入力部１０９は、ユーザからの指示入力を受け付けるための操作部である。例えば、記録開始の指示や記録停止の指示を受け付けることができる。
【００１９】
図２(a)は、復号化側から見た仮想バッファのモデルを示す構成図である。図２(b)は、復号化側から見た仮想バッファの占有量の遷移を示す図である。図２(a)及び図２(b)を参照して、仮想バッファ占有量更新部１０６における仮想バッファ占有量の更新方法を説明する。
【００２０】
図２(a)において、仮想バッファ２０１は、復号化時に記録媒体１０５から符号化ストリームを転送速度Rmaxで入力する。仮想バッファの大きさは規格で決められており、例えばH.264では最大で転送速度Rmaxの１秒相当と規定されている。復号化部２０２は、仮想バッファ２０１からデコード時刻毎に1ピクチャのデータを取り出し、復号化処理を行う。
【００２１】
次に、図２(b)を用いて、仮想バッファ占有量の算出方法について説明する。縦軸は仮想バッファの占有量、横軸は時間をそれぞれ表している。仮想バッファ２０１には、転送速度Rmaxで符号化ストリームが記録媒体１０５より入力される。そしてI2ピクチャのデコード時刻になると、Ｉ２ピクチャの符号化ストリームのデータが復号化部２０２に転送される。これによりデコード時刻においてP_I2であった仮想バッファ占有量から符号量sizeI2分が減少する。続いて、B0ピクチャのデコード時刻まで同様に転送速度Rmaxで符号化ストリームが記録媒体１０５より入力される。なお、時間Tはピクチャの表示周期でありフレームレートの逆数である。
【００２２】
また、時刻t1のように転送された符号化ストリームの合計が仮想バッファ２０１の容量（２３０ＫＢ）に到達した場合は、記録媒体からの入力がストップされる。その後、Ｐ５ピクチャのデコード時刻において、Ｐ５ピクチャの符号化ストリームのデータが復号化部２０２に転送されると、記録媒体１０５から仮想バッファへのデータ転送が再開される。次に図３を参照して、プリ記録開始から記録開始直後までの、仮想バッファ占有量更新部１０６が更新する仮想バッファ占有量の遷移を説明する。図３では、１ピクチャグループ（ＧＯＰ）＝６ピクチャとし、プリ記録は、記録開始直前の３ＧＯＰをファイルの先頭とし、仮想バッファの更新開始から破棄までの期間を３ＧＯＰとしている。なお、更新開始から破棄までの期間は３ＧＯＰに限定されるものではなく、所定数のＧＯＰとすることができる。
【００２３】
実線３０１は、０ＧＯＰ目に更新が開始された仮想バッファ占有量の遷移を示す。点線３０２は、１ＧＯＰ目に更新が開始された仮想バッファ占有量の遷移を示す。一点鎖線３０３は、２ＧＯＰ目に更新が開始された仮想バッファ占有量の遷移を示す。点線３０４は、３ＧＯＰ目に更新が開始された仮想バッファ占有量の遷移を示す。点線３０５は、直前の記録済みストリーム終端の仮想バッファ占有量を示す。
【００２４】
本実施形態においてプリ記録期間では、各ＧＯＰを起点とした複数の仮想バッファを保持し、これをＧＯＰに含まれるピクチャのサイズに基づいて更新し、更新開始から３ＧＯＰが経過すると破棄するようにしている。図３に示すように、各ＧＯＰの開始毎に新たな仮想バッファが設定される。各仮想バッファの更新開始時のバッファ占有量（初期値）は、直前の記録済ストリーム終端の仮想バッファ占有量に一致する。この間、符号量制御部では、各仮想バッファがアンダーフローしないように制御する。
【００２５】
具体的に、プリ記録期間０ＧＯＰ目では、仮想バッファ３０１のみが保持され、更新されている。続くプリ記録期間１ＧＯＰ目では、仮想バッファ３０１と仮想バッファ３０２とが保持され、更新されている。更にプリ記録期間２ＧＯＰ目では、仮想バッファ３０１と仮想バッファ３０２、仮想バッファ３０３とが保持され、更新されている。更にプリ記録期間３ＧＯＰ目では、仮想バッファ３０１は３ＧＯＰ分が保持されたので破棄され、仮想バッファ３０２、と仮想バッファ３０３、仮想バッファ３０４とが保持され、更新されている。プリ記録期間４ＧＯＰ目では、モード制御部１０８より記録開始の指示がなされる。
【００２６】
このため、仮想バッファ３０３、仮想バッファ３０４は破棄される。そして、これ以降、記録開始時点で３ＧＯＰを保持しており、実際に記録される符号化ストリームと合致する仮想バッファ３０２のみが保持され、更新される。なお仮想バッファ３０２は、直前の記録済みストリーム終端の仮想バッファ占有量３０５からバッファ占有量の更新を行っているため、新たにプリ記録して記録したストリームは、直前に記録された符号化ストリームとの間で仮想バッファをシームレスに接続することができる。
【００２７】
図４は、符号化制御部１０７の制御を示すフローチャートである。図４を用いて、符号化部１０２より通知される発生符号量と、仮想バッファ占有量更新部１０６より通知される仮想バッファ占有量とを用いた、符号化部１０２への符号化制御を説明する。当該処理は、ピクチャの符号化を行う際にピクチャ単位に実行される。
【００２８】
Ｓ４０１では、符号化部１０２より発生符号量と符号化劣化情報を取得する。Ｓ４０２では、符号化部１０２より取得した発生符号量と符号化劣化情報を用いて、符号化劣化の度合いが一定になるように割り当て符号量の制御を行う。劣化度合いが少なければ、次の入力画像の符号化に用いる割り当て符号量を減らし、劣化度合いが多ければ、劣化を抑えるために割り当て符号量を増やすように、割り当て符号量を算出する。即ち、符号化劣化情報のＰＳＮＲを所定の閾値と比較して、ＰＳＮＲの値が閾値以下の場合には、割当て符号量を増やす。一方で、ＰＳＮＲの値が閾値より大きい場合は、割当て符号量を減らす。これにより、ＰＳＮＲの値を閾値に近づけるように制御を行う。
【００２９】
Ｓ４０３では、仮想バッファ占有量更新部１０６より、プリ記録期間で保持された複数の仮想バッファ占有量を取得する。Ｓ４０４では、取得した仮想バッファ占有量のうち最小の占有量と、Ｓ４０３で算出した割り当て符号量とを比較する。仮想バッファ占有量よりも割り当て符号量の方が大きければ（Ｓ４０４で「ＹＥＳ」）Ｓ４０５へ移行する。一方、仮想バッファ占有量が割り当て符号量以下であれば（Ｓ４０４で「」ＮＯ）Ｓ４０６へ移行する。
【００３０】
Ｓ４０５では、割り当て符号量を取得した仮想バッファ占有量のうち最小の占有量を上回らないように、割り当て符号量を変更する。これにより符号化部１０２における発生符号量はどのタイミングにおいても最小の占有量よりも大きくなることがない。よって、復号時にバッファからピクチャを読み出す際にバッファのアンダーフローが生ずることが無くなる。Ｓ４０６では、割り当て符号量を符号化部１０２へと通知する。
【００３１】
以上のように、プリ記録期間のうち、どのタイミングでユーザから記録開始の指示がなされても、直前に記録された符号化ストリームと、新たにプリ記録して記録したストリームとを接続しても、仮想バッファがアンダーフローすることがないように符号化できる。よって、プリ記録を用いて記録した符号化ストリームのうち、各シーンを跨いで再生する際にも、デコーダーがシームレスに再生でき、ユーザに好適な動画像符号化装置を提供することができる。
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014017626.tif 000003
【図２】
2014017626.tif 000004
【図３】
2014017626.tif 000005
【図４】
2014017626.tif 000006