(57)【要約】【課題】動き予測を用いて符号化を行う際に、参照フレーム数を適切に決定することが可能な符号化装置、符号化方法およびプログラムを提供する。【解決手段】動き予測を用いて動画像の符号化処理を行う符号化装置であって、動画像のフレームレートを取得する取得手段と、フレームレートに応じて動画像のフレームごとに参照フレーム数の設定を行う設定手段と、符号化対象のフレームと、設定に基づき取得される参照フレームとを用いて動き予測を行う予測手段を備える。【選択図】図１
2018191136.tif 000002
【特許請求の範囲】
【請求項１】
動き予測を用いて動画像の符号化処理を行う符号化装置であって、
前記動画像のフレームレートを取得する取得手段と、
前記フレームレートに応じて前記動画像のフレームごとに参照フレーム数の設定を行う設定手段と、
符号化対象のフレームと、前記設定に基づき取得される参照フレームとを用いて前記動き予測を行う予測手段を備えることを特徴とする符号化装置。
【請求項２】
前記設定手段は、前記フレームレートが高いほど前記参照フレーム数が少ない前記設定を行うことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記設定手段は、前記フレームレートが高いほど、前記動画像のうち前記設定を行うフレームの割合を増やすことを特徴とする請求項１または２に記載の符号化装置。
【請求項４】
前記動き予測に用いられる参照フレームを、前記符号化対象のフレームとの時間的距離が近いものから優先的に選択する選択手段をさらに備えることを特徴とする請求項１乃至３のいずれか１項に記載の符号化装置。
【請求項５】
前記設定手段は、前記フレームレートが所定の閾値よりも高い場合に、前記参照フレーム数を１とする前記設定を行うことを特徴とする請求項１乃至４のいずれか１項に記載の符号化装置。
【請求項６】
前記設定手段は、１フレーム期間内に前記動画像の各フレームの符号化処理が完了するように前記設定を行うことを特徴とする請求項１乃至５のいずれか１項に記載の符号化装置。
【請求項７】
前記設定手段は、フレームあたりの処理時間が一定であるファームウェア処理を考慮して前記設定を行うことを特徴とする請求項６に記載の符号化装置。
【請求項８】
符号量に応じた複数の階層に分類された複数の参照フレームのうち前記符号量が多い上位の階層に属する参照フレームを優先的に、前記符号化対象のフレームとの動き予測に用いられる参照フレームを選択する第２の選択手段をさらに備えることを特徴とする請求項１乃至７のいずれか１項に記載の符号化装置。
【請求項９】
前記第２の選択手段は、同階層に分類された参照フレームの中から、前記動き予測を行わないＩフレーム、前記動き予測において前方向予測を行うＰフレーム、前記動き予測において双方向予測を行うＢフレームの順で選択することを特徴とする請求項８に記載の符号化装置。
【請求項１０】
ＨＥＶＣ（High Efficiency Video Coding）における時間識別子を用いて前記階層を表すことを特徴とする請求項８または９に記載の符号化装置。
【請求項１１】
動き予測を用いた動画像の符号化方法であって、
前記動画像のフレームレートを取得するステップと、
前記フレームレートに応じて前記動画像のフレームごとに参照フレーム数の設定を行うステップと、
符号化対象のフレームと、前記設定に基づき取得される参照フレームとを用いて前記動き予測を行うステップを備えることを特徴とする符号化方法。
【請求項１２】
コンピュータを請求項１乃至１０のいずれか１項に記載の符号化装置の各手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は符号化装置、符号化方法およびプログラムに関し、特に動画像の動き予測を行う符号化装置、符号化方法およびプログラムに関する。
【背景技術】
【０００２】
動画像の国際標準符号化規格であるＨ．２６４、ＨＥＶＣ（High Efficiency Video Coding）などの符号化方式では、動き予測という技術が用いられている。動き予測は、符号化を行う対象フレームと、対象フレームとは時間的に異なる参照フレームとの間で動きを検出し、その動き情報に基づいて動画像圧縮を行うことにより、符号化効率を高めるものである。
【０００３】
特許文献１には、画像の動き量に応じて参照フレーム数を変える技術が提案されている。この技術によれば、動き量が小さい場合に参照フレーム数を減らすことで、動き予測にかかる処理量を低減することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−９４４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
動き予測においては、複数の参照フレームを用いて符号化する方が１つの参照フレームを用いた場合と比べて動き予測の精度は高くなるが、その分、処理量は増えてしまう。一方、特許文献１の技術のように処理量を考慮して参照フレーム数を減らすと動き予測の精度が低下し、画質劣化の原因となり得る。このように参照フレーム数を適切に設定することはシステムにとって非常に重要な要素である。
【０００６】
本発明は、上述の問題に鑑みてなされたものであって、動き予測を用いて符号化を行う際に、参照フレーム数を適切に決定することが可能な符号化装置、符号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る符号化装置は、動き予測を用いて動画像の符号化処理を行う符号化装置であって、前記動画像のフレームレートを取得する取得手段と、前記フレームレートに応じて前記動画像のフレームごとに参照フレーム数の設定を行う設定手段と、符号化対象のフレームと、前記設定に基づき取得される参照フレームとを用いて前記動き予測を行う予測手段を備えることを特徴とする。
【０００８】
本発明の一実施形態に係る符号化方法は、動き予測を用いた動画像の符号化方法であって、前記動画像のフレームレートを取得するステップと、前記フレームレートに応じて前記動画像のフレームごとに参照フレーム数の設定を行うステップと、符号化対象のフレームと、前記設定に基づき取得される参照フレームとを用いて前記動き予測を行うステップを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、動き予測を用いて符号化を行う際に、参照フレーム数を適切に決定することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係る画像処理装置のブロック図である。
【図２】第１実施形態に係る符号化装置のハードウェア構成を示すブロック図である。
【図３】第１実施形態に係る動き予測における予測構造を説明するための図である。
【図４】第１実施形態に係る予測構造の一例を示す図である。
【図５】第１実施形態に係る符号化装置の動作を示すフローチャートである。
【図６】第２実施形態に係る予測構造の一例を示す図である。
【図７】第２実施形態に係る符号化装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら本発明の好適な実施の形態を説明する。
［第１実施形態］
図１は、本実施形態に係る画像処理装置１０のブロック図である。画像処理装置１０は、動画像の符号化処理を行う機能を有しており、例えばデジタルカメラ、デジタルビデオカメラ、スマートフォン、タブレットコンピュータ、ハードディスクレコーダなどであり得る。以下、画像処理装置１０としてデジタルビデオカメラを例に挙げて説明する。画像処理装置１０は、符号化装置１００、光学系１０１、撮像部１０２、現像処理部１０３、記録メディア１１１を備えている。画像処理装置１０は、光学系１０１、撮像部１０２、現像処理部１０３を用いて被写体を撮像し、動画像を取得することができる。また、画像処理装置１０は、符号化装置１００を用いて動画像を符号化し、符号化された動画像を記録メディア１１１に記録することができる。
【００１２】
光学系１０１は、光学フィルタ、ズームレンズ、フォーカスレンズ、絞り、シャッタを含み、被写体像を撮像部１０２の撮像面に結像させる。撮像部１０２は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）、ＣＣＤ（Charge Coupled Device）などのイメージセンサと、Ａ／Ｄ（Analog/Digital）変換器を含む。イメージセンサは光学系１０１からの被写体像を電気信号に変換し、Ａ／Ｄ（Analog/Digital）変換器はアナログの電気信号をデジタルの画像データに変換する。撮像部１０２は、不図示の制御部からのタイミング信号に応じて画像データを取得し、現像処理部１０３に出力する。制御部は、例えば撮像モードなどの設定情報に基づいて、撮像部１０２の駆動レート（フレームレート）を変更することができる。
【００１３】
現像処理部１０３は、撮像部１０２からの画像データに対して、デベイヤー（デモザイク）処理、キズ補正、ノイズ除去、拡大縮小処理、ＹＣｂＣｒ形式への色変換などの画像処理を行う。画像処理後の画像データは、圧縮符号化を行うことができる形式を有しており、符号化処理の対象となる。以下、動画撮像時における画像処理後の画像データを符号化対象フレームと称する。符号化対象フレームは、現像処理部１０３から符号化装置１００に入力される。
【００１４】
符号化装置１００は、入力された符号化対象フレームに対して、Ｈ．２６４、ＨＥＶＣ方式などによる符号化処理を行う。以下の説明において、符号化装置１００は、ＨＥＶＣ方式による符号化処理を行うものとする。
【００１５】
符号化装置１００は、動き予測部１０５、直交変換部１０７、量子化部１０８、量子化制御部１０９、可変長符号化部１１０の機能を有している。さらに、符号化装置１００は、逆量子化部１１２、逆直交変換部１１３、動き補償部１１４、デブロッキングフィルタ部１１５、適応オフセット処理部１１６、参照フレーム設定部１１７の機能を有している。また、符号化装置１００は、符号化フレームバッファ１０４、参照フレームバッファ１０６をメモリ内に有している。
【００１６】
符号化フレームバッファ１０４は、現像処理部１０３から入力された符号化対象フレームを順次格納する。符号化対象フレームは、符号化が行われる順序で読み出される。動き予測部１０５は、符号化フレームバッファ１０４から符号化対象フレームを読み出すとともに、参照フレーム設定部１１７による設定に従って、１つまたは複数の参照フレームを参照フレームバッファ１０６から読み出す。動き予測部１０５は、符号化対象フレームと参照フレームとの間でブロックマッチングをとり、動きベクトルの検出を行う。
【００１７】
すなわち、動き予測部１０５は、符号化対象フレームのブロック（以下対象ブロック）ごとに、すべての参照フレーム内で最も類似したブロック（以下予測ブロック）を探索し、対象ブロックに対する予測ブロックの位置のずれを動きベクトルとして検出する。動き予測部１０５は、符号化対象フレームと、検出された動きベクトルが示す位置の予測フレーム（予測ブロックの集合）との間で画素値の差分をとり、その差分からなる差分フレームを直交変換部１０７に出力する。また、動き予測部１０５は、ローカルデコードフレームの生成用に、予測フレームを動き補償部１１４に出力する。動き予測部１０５は、参照フレーム設定部１１７による設定に基づく動き予測を行う予測手段として機能する。
【００１８】
直交変換部１０７は、動き予測部１０５からの差分フレームに対して離散コサイン変換を行う。直交変換部１０７は、離散コサイン変換により得られた変換係数を量子化部１０８に出力する。量子化部１０８は、直交変換部１０７からの変換係数に対して量子化を行う。量子化は、量子化制御部１０９から入力される量子化ステップサイズに従って行われる。量子化部１０８は、量子化された変換係数を可変長符号化部１１０と逆量子化部１１２に出力する。量子化部１０８からの変換係数は、可変長符号化部１１０による符号化ストリーム生成のために使用され、逆量子化部１１２によるローカルデコードフレーム生成のために使用される。
【００１９】
量子化制御部１０９は、可変長符号化部１１０から入力される発生符号量に基づいて、量子化ステップサイズを決定する。量子化制御部１０９は、予め設定された目標とする符号量（例えば符号化ストリームのビットレート）になるように量子化ステップサイズを決定することができる。
【００２０】
可変長符号化部１１０は、量子化後の変換係数に対してジグザグスキャン、オルタネートスキャンなどを行って変換係数列を取得し、変換係数列に対して可変長符号化を行う。可変長符号化部１１０は、さらに動きベクトル、量子化ステップサイズ、ブロック分割情報、適応オフセットパラメータなどの符号化方式情報を可変長符号化し、可変長符号化後の変換係数列に付加することにより、符号化ストリームを生成する。符号化ストリームは、記録メディア１１１に記録される。また、可変長符号化部１１０は、可変長符号化の際にブロックごとの発生符号量を算出し、量子化制御部１０９に出力する。記録メディア１１１は、フラッシュメモリ、ハードディスクなどであって、符号化装置１００から脱着可能に構成され得る。
【００２１】
逆量子化部１１２は、量子化部１０８からの量子化後の変換係数に対して逆量子化を行い、ローカルデコード用の変換係数を生成する。この変換係数は逆直交変換部１１３に出力される。逆直交変換部１１３は、逆量子化部１１２からの変換係数に対して逆離散コサイン変換を行い、差分フレームを復元する。復元された差分フレームは動き補償部１１４に出力される。
動き補償部１１４は、動き予測部１０５からの予測フレームと、逆直交変換部１１３からの差分フレームを加算することにより、ローカルデコードフレームを生成する。ローカルデコードフレームは、デブロッキングフィルタ部１１５に出力される。
【００２２】
デブロッキングフィルタ部１１５は、動き補償部１１４からのローカルデコードフレームに対してデブロッキングフィルタ処理を行う。デブロッキングフィルタ処理は、ブロック境界の歪みを低減する。デブロッキングフィルタ処理後のローカルデコードフレームは、適応オフセット処理部１１６に出力される。
【００２３】
適応オフセット処理部１１６は、適応オフセット処理として、バンドオフセット処理またはエッジオフセット処理のいずれかの選択を行う。適応オフセット処理は、ブロック内部のリンギング歪みを低減する。適応オフセット処理部１１６は、適応オフセット処理を行うために必要なバンド位置、エッジ方向、オフセット値などの適応オフセットパラメータを決定し、デブロッキングフィルタ部１１５からのローカルデコードフレームに対して適応オフセット処理を行う。
【００２４】
適応オフセット処理部１１６は、ローカルデコードフレームを参照フレームバッファ１０６に格納する。ローカルデコードフレームは、後続の符号化対象フレームを符号化するための参照フレームとして、動き予測部１０５によって読み出され得る。また、適応オフセット処理部１１６は、適応オフセット処理として選択した処理と適応オフセットパラメータを可変長符号化部１１０に出力する。これらの情報は、符号化ストリームを生成するために使用される。なお、適応オフセット処理部１１６は、適応オフセット処理を行わず、デブロッキングフィルタ部１１５からのローカルデコードフレームをそのまま参照フレームバッファ１０６に格納してもよい。
【００２５】
参照フレーム設定部１１７は、符号化対象フレームごとに参照フレーム数および参照フレームの設定を行い、動き予測部１０５に出力する。参照フレーム設定部１１７は、動画撮像時において、フレームレートに応じて参照フレーム数を変更することができる。参照フレーム設定部１１７は、例えば撮像部１０２の垂直同期信号を計測することでフレームレートを取得してもよく、フレームに付加されたフレーム情報から取得してもよい。すなわち、参照フレーム設定部１１７は、動画像のフレームレートを取得する取得手段、フレームレートに応じて動画像のフレームごとに参照フレーム数の設定を行う設定手段、動き予測に用いられる参照フレームを選択する選択手段として機能する。
【００２６】
図２は、本実施形態に係る符号化装置１００のハードウェア構成を示すブロック図である。符号化装置１００は、ＣＰＵ（Central Processing Unit）２０１、ＲＡＭ（Random Access Memory）２０２、ＲＯＭ（Read Only Memory）２０３、入出力インターフェース２０４、バス２０５を備えている。
【００２７】
ＣＰＵ２０１は、ＲＯＭ２０３から所定のプログラムを読み出し、実行することにより、符号化装置１００の各部の機能を実現する。ＣＰＵ２０１は、処理で得られたデータをＲＡＭ２０２に記憶させるとともに、入出力インターフェース２０４を介して外部とデータの交換を行う。ＲＡＭ２０２は、ＣＰＵ２０１によって実行されるプログラムの作業用メモリとして使用され、処理中のデータ、ＲＯＭ２０３から読み出されたプログラム、データなどを一時的に記憶する。ＲＡＭ２０２は、符号化フレームバッファ１０４、参照フレームバッファ１０６として機能し得る。ＲＯＭ２０３は、符号化装置１００の各部の機能を実現するためのプログラムなどを格納する。入出力インターフェース２０４は、符号化装置１００を現像処理部１０３、記録メディア１１１と通信可能に接続する。
【００２８】
図３は、本実施形態に係る動き予測における予測構造を説明するための図である。ここでは、ランダムアクセス符号化における階層的な予測構造を例として説明する。横軸はフレームの表示順、縦軸はフレームが属する符号化階層を示している。フレーム間を結ぶ矢印は、動き予測の際の参照関係を示している。すなわち、矢印元のフレームは、矢印先のフレームを参照フレームとして用いた動き予測に基づいて符号化される。
【００２９】
動画像のフレームは、Ｉ（Intra coded）フレーム、Ｐ（Predictive coded）フレーム、Ｂ（Bi-directional predictive coded）フレームに分類される。図３に示す「Ｉ」、「Ｐ」、「Ｂ」はそれぞれＩフレーム、Ｐフレーム、Ｂフレームを表している。Ｉフレームは、動き予測を行わないフレームであって、動き予測部１０５による処理が行われずにフレーム内の情報のみで符号化される。Ｐフレームは、動き予測において前方向予測を行うフレームであって、過去のフレームを参照して符号化される。Ｂフレームは、動き予測において双方向予測を行うフレームであって、過去と未来の両方のフレームを参照して符号化される。
【００３０】
ここで、符号化階層に関して階層番号を以下のように定義する。Ｉフレーム３０１とＰフレーム３０２の符号化階層を階層番号０、Ｂフレーム３０３の符号化階層を階層番号１とする。また、Ｂフレーム３０４、３０５の符号化階層を階層番号２、Ｂフレーム３０６〜３０９の符号化階層を階層番号３とする。このとき、階層番号が小さいほど上位階層として定義する。また、下位階層から上位階層への参照、あるいは同階層間の参照は可能だが、上位階層から下位階層への参照はできない。符号化階層を表す階層番号として、ＨＥＶＣにおける時間識別子（ＴｅｍｐｏｒａｌＩＤ）を用いることができる。
【００３１】
階層番号が小さいほど、すなわち上位階層へ行くほどフレームに割り当てられる符号量（符号化後のデータ量）は多くなる。図３の例では、階層０に属するＩフレーム３０１とＰフレーム３０２の符号量が最も多く、階層１に属するＢフレーム３０３、階層２に属するＢフレーム３０４、３０５、階層３に属するＢフレーム３０６〜３０９の順で符号量が少なくなる。
【００３２】
それぞれのフレームに対する参照関係は以下とする。Ｐフレーム３０２はＩフレーム３０１を参照する。Ｂフレーム３０３は、Ｉフレーム３０１とＰフレーム３０２を参照する。Ｂフレーム３０４は、Ｉフレーム３０１とＢフレーム３０３を参照する。Ｂフレーム３０５は、Ｐフレーム３０２とＢフレーム３０３を参照する。Ｂフレーム３０６は、Ｉフレーム３０１とＢフレーム３０４を参照する。Ｂフレーム３０７は、Ｂフレーム３０３とＢフレーム３０４を参照する。Ｂフレーム３０８は、Ｂフレーム３０３とＢフレーム３０５を参照する。Ｂフレーム３０９は、Ｐフレーム３０２とＢフレーム３０５を参照する。
【００３３】
異なる符号化階層に属するフレームは、参照先までの時間的距離（以下参照距離）がそれぞれ異なる。参照距離は、動画像のフレーム間隔であるフレーム期間の数によって表される。例えば、階層０において、Ｉフレーム３０１を参照するＰフレーム３０２の参照距離は８フレーム期間である。階層１において、Ｉフレーム３０１とＰフレーム３０２を参照するＢフレーム３０３の参照距離は４フレーム期間である。また、階層２において、Ｉフレーム３０１およびＢフレーム３０３と、Ｂフレーム３０３およびＰフレーム３０２をそれぞれ参照するＢフレーム３０４とＢフレーム３０５の参照距離は２フレーム期間である。同様に、階層３において、前後のフレームをそれぞれ参照するＢフレーム３０６〜３０９の参照距離は１フレーム期間である。このように、下位階層へ行くほど参照距離は短くなる。
【００３４】
次に、図３に示した予測構造を用いて、以下の２種類の動画像Ａ、Ｂの符号化処理を考える。動画像Ａのフレームレートは６０Ｐ（６０フレーム／秒、プログレッシブ走査）、解像度は４０９６×２１６０画素である。動画像Ｂのフレームレート２４０Ｐは（２４０フレーム／秒、プログレッシブ走査）、解像度は２０４８×１０８０画素である。動画像Ｂを動画像Ａと比較すると、フレームレートが４倍になっているのに対して、解像度は１／４倍となっているので、実質的な単位時間あたりのデータ量は変わらない。また、図３より、Ｉフレーム３０１とＰフレーム３０２を除くＢフレーム３０３〜３０９のそれぞれが参照するフレーム数は２つである。
【００３５】
ところで、符号化処理は、ハードウェア処理と、レジスタ設定などを行うファームウェア処理の２つに大きく分類される。ハードウェア処理は単位時間あたりの処理性能が一定であり、解像度に応じてフレームあたりの処理時間は変化する。これに対して、ファームウェア処理はフレームあたりの処理時間が一定である。これを踏まえて、動画像Ｂの符号化処理を行う際のハードウェア処理とファームウェア処理をそれぞれ考える。
【００３６】
ハードウェア処理については、解像度が１／４になるためフレームあたりの処理時間は１／４になるが、フレームレートは４倍となるため、動画像Ａと比べて処理時間は変わらない。一方で、ファームウェア処理については、解像度が１／４になってもフレームあたりの処理時間は変わらないのに対し、フレームレートは４倍となるため、動画像Ａと比べて処理時間は増えてしまう。
【００３７】
したがって、高フレームレートである動画像Ｂの符号化処理において、ハードウェア処理とファームウェア処理を合わせた全体の処理時間は、動画像Ａの符号化処理と比べて長くなってしまう。すなわち、動画像Ａと動画像Ｂのように、実質的な単位時間あたりのデータ量が同じであっても、符号化処理を行う際には、高フレームレートの動画像Ｂの方がより長い処理時間を必要とする。よって、単位時間あたりのデータ量のみを考慮して動画像の符号化処理を行うと、１フレーム期間内に符号化対象フレームの処理を完了できない処理遅延が発生するおそれがある。このような処理遅延が発生するとリアルタイムの符号化処理が困難となり、多量のバッファが必要となり得る。処理遅延を回避するためには符号化装置１００の処理性能を上げる必要があり、その分の回路規模を増やさなければならない。
【００３８】
本実施形態の符号化装置１００は、高フレームレートの動画像を処理する場合に、一部の符号化対象フレームに対して参照フレーム数を複数から１に制限する。これにより、符号化処理にかかる処理時間が削減され、高フレームレート化による処理時間の増加を抑制することができる。高フレームレートとは、例えば２４０ｆｐｓ（frames per second）、３００ｆｐｓ、６００ｆｐｓ、９６０ｆｐｓ、１２００ｆｐｓなどである。
【００３９】
通常、参照フレーム数を減らすと画質劣化の原因となるが、高フレームレートでは、フレーム間の画像相関が高いことから、参照フレーム数を減らしても画質劣化は少なくなる。このとき、参照フレーム数が少ない（例えば１）設定にするフレームは、図３に示した予測構造において、参照距離が近い下位階層に属するものから優先的に選択される。具体的には、まず、参照距離が１フレーム期間である階層３のＢフレーム３０６〜３０９が選択される。次に、参照距離が２フレーム期間である階層２のＢフレーム３０４、３０５が選択される。最後に、参照距離が４フレーム期間である階層１のＢフレーム３０３が選択される。参照距離が小さい下位階層に属するフレーム間の相関は高いと考えられるため、このような選択方法によって、参照フレーム数を減らすことに起因する画質劣化をより少なくすることができる。
【００４０】
高フレームレートの動画像Ｂを符号化するときの予測構造の一例を図４に示す。図４の予測構造は、フレーム間の参照関係を除いて図３に示した予測構造と同様である。図４のＩフレーム４０１、Ｐフレーム４０２、Ｂフレーム４０３〜４０９は、それぞれ図３のＩフレーム３０１、Ｐフレーム３０２、Ｂフレーム３０３〜３０９に対応している。
【００４１】
図４に示す予測構造では、階層３に属するＢフレーム４０６〜４０９が参照するフレーム数は１つである。前後のフレームのうちどちらのフレームを選ぶかについては、より劣化の少ないフレームを選択する。これは、より劣化の少ないフレームを参照フレームとして選択した方が動き予測に起因する画質劣化を少なくできるからである。ここで、劣化の少ないフレームとは、多くの符号量が割り当てられているフレーム、すなわち上位階層に属するフレームを指す。
【００４２】
これらを踏まえ、参照フレーム数を少なくする際の参照フレームの選択方法について、図４を用いて具体的に説明する。ここでは、参照フレーム数を２から１に変更する例を説明する。Ｂフレーム４０６が参照可能なフレームは、Ｂフレーム４０４とＩフレーム４０１である。Ｂフレーム４０４の階層番号が２であるのに対して、Ｉフレーム４０１の階層番号は０であるため、Ｉフレーム４０１はＢフレーム４０４よりも上位階層にある。したがって、Ｂフレーム４０６の参照フレームは、より上位階層に属するＩフレーム４０１とする。
【００４３】
同様にして、Ｂフレーム４０７は、階層番号が１のＢフレーム４０３と階層番号が２のＢフレーム４０４を参照可能であり、階層番号がより小さい、すなわちより上位階層にあるＢフレーム４０３が参照フレームとして選択される。また、Ｂフレーム４０８は、階層番号が１のＢフレーム４０３と階層番号が２のＢフレーム４０５を参照可能であり、階層番号がより小さい、すなわちより上位階層にあるＢフレーム４０３が参照フレームとして選択される。また、Ｂフレーム４０９は、階層番号が０のＰフレーム４０２と階層番号が２のＢフレーム４０５を参照可能であり、階層番号がより小さい、すなわちより上位階層にあるＰフレーム４０２が参照フレームとして選択される。このように、多くの符号量が割り当てられたより劣化の少ない参照フレームを選択することで、参照フレーム数を２から１に変更することに起因する画質劣化をより少なくすることができる。
【００４４】
図５は、本実施形態に係る符号化装置１００の動作を示すフローチャートである。ここでは、画像処理装置１０が動画像を撮像する際の動作を説明する。符号化装置１００は、符号化フレームバッファ１０４に格納された動画像の各フレームについて以下の処理を行う。
【００４５】
まず、動き予測部１０５は、符号化対象フレームを入力する（ステップＳ１０１）。すなわち、動き予測部１０５は、符号化フレームバッファ１０４から符号化処理の対象となるフレームを読み出す。次に、参照フレーム設定部１１７は、撮像中の動画像のフレームレートを取得する（ステップＳ１０２）。例えば、参照フレーム設定部１１７は、符号化対象フレームの付加情報からフレームレートを取得する。
【００４６】
続いて、参照フレーム設定部１１７は、取得したフレームレートが所定の閾値よりも高いか否かを判断する（ステップＳ１０３）。フレームレートが所定の閾値以下である場合（ステップＳ１０３でＮＯ）、参照フレーム設定部１１７は、参照フレーム数を所定数に設定する（ステップＳ１０４）。例えば、参照フレーム設定部１１７は、図３に示すように、対応するフレームタイプ（Ｉフレーム、Ｐフレーム、Ｂフレーム）に関わらず参照フレーム数を２に設定する。
【００４７】
一方、フレームレートが所定の閾値より高い場合（ステップＳ１０３でＹＥＳ）、参照フレーム設定部１１７は、参照フレーム数を制限し、参照フレーム数が少ない設定を行う（ステップＳ１０５）。例えば、参照フレーム設定部１１７は、符号化対象フレームが図４に示す階層３のＢフレーム４０６〜４０９のいずれかに対応する場合、符号化対象フレームの参照フレーム数を１に設定する。参照フレーム数の制限方法は、フレームレートが高いほど参照フレーム数を少なくするものであればよい。
【００４８】
続いて、参照フレーム設定部１１７は、参照フレーム数に基づいて参照フレームを選択する（ステップＳ１０６）。例えば、参照フレーム数が１に設定され、かつ符号化対象フレームが図４のＢフレーム４０７に対応する場合、参照フレーム設定部１１７は、Ｂフレーム４０３を参照フレームとして選択する。動き予測部１０５は、選択された参照フレームを参照フレームバッファ１０６から読み出すととともに、符号化対象フレームと参照フレームを用いて動き予測を行う（ステップＳ１０７）。
【００４９】
次に、符号化装置１００は、動き予測を用いて符号化処理を行う（ステップＳ１０８）。すなわち、動き予測部１０５は、動きベクトルに基づく差分フレームを直交変換部１０７に出力する。直交変換部１０７は、差分フレームの離散コサイン変換を行い、変換係数を量子化部１０８に出力する。量子化部１０８は、変換係数の量子化を行い、量子化後の変換係数を可変長符号化部１１０に出力する。可変長符号化部１１０は、変換係数列の可変長符号化を行い、符号化ストリームを出力する。
【００５０】
以上のように、本実施形態によれば、フレームレートが高い場合に参照フレーム数を減らす設定を行う。符号化対象フレームは、参照フレームとの時間的距離が近いものから順に参照フレーム数が減らされる。さらに、そのときの参照フレームとしては、より劣化の少ない、すなわち上位階層に対応する参照フレームが選択される。これにより、画質劣化を抑えつつ、動き予測に必要な処理量を低減することができる。
【００５１】
また、フレームレートが高くなるほど、フレームあたりの処理にかけられる時間が短くなるのに対し、ファームウェア処理はフレームあたりの処理時間が変わらない。このため、高フレームレート化を行うと符号化処理が間に合わなくなってしまう場合がある。これに対し、本実施形態によれば、フレームレートが高い動画像に対して、参照フレーム数が少ないフレームを増加させる。すなわち、動画像のうち参照フレーム数を減らす設定をするフレームの割合を高くする。これにより、回路規模を増大させずに符号化処理にかかる時間の増加を抑制し、遅延の発生を防ぐことができる。
【００５２】
［第２実施形態］
本実施形態では、第１実施形態よりもフレームレートが高い動画像について説明する。以下、第１実施形態との差異を中心に説明する。
【００５３】
以下の２種類の動画像Ａ、Ｃの符号化処理を考える。動画像Ａのフレームレートは６０Ｐ（６０フレーム／秒、プログレッシブ走査）、解像度は４０９６×２１６０画素である。動画像Ｃのフレームレート９６０Ｐは（９６０フレーム／秒、プログレッシブ走査）、解像度は１０２４×５４０画素である。動画像Ｃを動画像Ａと比較すると、フレームレートが１６倍になっているのに対して、解像度は１／１６倍になっているため、実質的な単位時間あたりのデータ量は変わらない。次に、動画像Ｃの符号化処理を行う際のハードウェア処理とファームウェアの処理をそれぞれ考える。
【００５４】
ハードウェア処理については、解像度が１／１６になるのでフレームあたりの処理時間は１／１６になるが、フレームレートは１６倍となるため、動画像Ａと比べて処理時間は変わらない。一方で、ファームウェア処理については、解像度が１／１６になってもフレームあたりの処理時間は変わらないのに対し、フレームレートは１６倍となるため、第１実施形態の動画像Ｂと比べてさらに処理時間は増えてしまう。
【００５５】
本実施形態の符号化装置１００は、第１実施形態の符号化装置よりもさらに多くの符号化対象フレームに対して参照フレーム数を複数から１に制限する。すなわち、第１実施形態では、参照距離が１フレーム期間の符号化対象フレームに対して参照フレーム数を１に設定していたが、さらに参照距離が２フレーム期間の符号化対象フレームに対しても参照フレーム数を１に設定する。動画像Ｃを符号化するときの予測構造の一例を図６に示す。図６の予測構造は、フレーム間の参照関係を除いて図３に示した予測構造と同様である。図６のＩフレーム６０１、Ｐフレーム６０２、Ｂフレーム６０３〜６０９は、それぞれ図３のＩフレーム３０１、Ｐフレーム３０２、Ｂフレーム３０３〜３０９に対応している。
【００５６】
Ｂフレーム６０４は階層番号が０のＩフレーム６０１と階層番号が１のＢフレーム６０３を参照可能であり、階層番号がより小さい、すなわちより上位階層にあるＩフレーム６０１が参照フレームとして選択される。同様にして、Ｂフレーム６０５は階層番号が０のＰフレーム６０２と階層番号が１のＢフレーム６０３が参照可能であり、階層番号がより小さい、すなわちより上位階層にあるＰフレーム６０２が参照先として選択される。
【００５７】
次に、さらに動き予測にかかる処理量を低減するために、動画像のうち参照フレーム数を１に設定するフレームの割合を増やす場合について説明する。例えば参照距離が４フレーム期間のＢフレーム６０３についても参照フレーム数を１に設定する。Ｂフレーム６０３は階層番号が０のＩフレーム６０１と階層番号が０のＰフレーム６０２を参照可能であり、どちらのフレームも共に階層番号が０、すなわち同階層にある。そこで次に、参照可能なフレームが同階層にある場合の参照フレームの選択方法を説明する。
【００５８】
階層番号が同じ場合、すなわち同階層においては、フレームタイプがＩフレーム、Ｐフレーム、Ｂフレームの順で割り当てられる符号量が多くなる。したがって、参照フレーム数が複数から１に変更される符号化対象フレームの参照フレームとして、より多くの符号量が割り当てられているＩフレーム６０１が選択される。
【００５９】
図７は、本実施形態に係る符号化装置１００の動作を示すフローチャートである。ステップＳ２０１からステップＳ２０３までの処理は、第１実施形態におけるステップＳ１０１からステップＳ１０３までの処理と同様である。
【００６０】
参照フレーム設定部１１７は、取得したフレームレートが所定の第１閾値よりも高いか否かを判断する（ステップＳ２０３）。第１閾値は例えば２４０ｆｐｓである。フレームレートが第１閾値以下である場合（ステップＳ２０３でＮＯ）、参照フレーム設定部１１７は、参照フレーム数を所定数に設定する（ステップＳ２０５）。例えば、参照フレーム設定部１１７は、図３に示すように、対応するフレームタイプに関わらず参照フレーム数を２に設定する。
【００６１】
フレームレートが第１閾値より高い場合（ステップＳ２０３でＹＥＳ）、参照フレーム設定部１１７は、さらにフレームレートが所定の第２閾値よりも高いか否かを判断する（ステップＳ２０４）。第２閾値は例えば９６０ｆｐｓである。フレームレートが第２閾値以下である場合（ステップＳ２０４でＮＯ）、参照フレーム設定部１１７は、下位階層に属するフレームの参照フレーム数を制限する（ステップＳ２０６）。例えば、参照フレーム設定部１１７は、符号化対象フレームが図６に示す階層３のＢフレーム６０６〜６０９のいずれかに対応する場合、参照フレーム数を１に設定する。
【００６２】
一方、フレームレートが第２閾値より高い場合（ステップＳ２０４でＹＥＳ）、参照フレーム設定部１１７は、上位階層に属するフレームに対する参照フレーム数を制限する（ステップＳ２０７）。例えば、参照フレーム設定部１１７は、符号化対象フレームが図６に示す階層２のＢフレーム６０４または６０５に対応する場合、参照フレーム数を１に設定する。
【００６３】
続いて、参照フレーム設定部１１７は、参照フレーム数に基づいて参照フレームを選択する（ステップＳ２０８）。例えば、参照フレーム数が１に設定され、かつ符号化対象フレームが図６のＢフレーム６０４に対応する場合、参照フレーム設定部１１７は、Ｉフレーム６０１を参照フレームとして選択する。以降のステップＳ２０８からステップＳ２１０までの処理は、第１実施形態におけるステップＳ１０６からステップＳ１０８までの処理と同様である。
【００６４】
本実施形態によれば、下位階層に属するフレームに加えて、上位階層に属するフレームも参照フレーム数の制限対象とする。フレームレートが高いほど、動画像のうち参照フレーム数を制限するフレームの割合を増加させる。これにより、回路規模を増大させずに符号化処理にかかる時間の増加を抑制し、遅延の発生を防ぐことができる。
【００６５】
[変形実施形態]
以上、好適な実施形態に基づいて本発明を説明したが、本発明はこれらの実施形態に限定されるものではなく、要旨を逸脱しない範囲での様々な形態も本発明に含まれる。例えば、参照フレームの所定数は２に限定されず、符号化装置１００で採用された符号化方式で設定可能な任意の数（例えば３〜１６）とすることができる。また、動き予測における符号化階層の数も４に限定されない。さらに、フレームレートを３以上の異なる閾値と比較してもよく、フレームレートが高いほど参照フレーム数を減らすように、フレームレートに応じて参照フレーム数が制限される階層を任意に設定することができる。
【００６６】
本発明が適用され得る対象は、上述の実施形態で説明した符号化装置１００に限定されるものではない。例えば、符号化装置１００を複数の装置から構成されるシステムとした場合であっても上述の実施形態と同様の機能を実現することが可能である。
【００６７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１００  符号化装置
１０４  符号化フレームバッファ
１０５  動き予測部
１０６  参照フレームバッファ
１０７  直交変換部
１０８  量子化部
１０９  量子化制御部
１１０  可変長符号化部
１１２  逆量子化部
１１３  逆直交変換部
１１４  動き補償部
１１５  デブロッキングフィルタ部
１１６  適応オフセット処理部
１１７  参照フレーム設定部
【図１】
2018191136.tif 000003
【図２】
2018191136.tif 000004
【図３】
2018191136.tif 000005
【図４】
2018191136.tif 000006
【図５】
2018191136.tif 000007
【図６】
2018191136.tif 000008
【図７】
2018191136.tif 000009