(57)【要約】【課題】画質の低下を抑制して動画像をリアルタイムに符号化できる動画符号化装置、動画符号化方法および動画符号化プログラムを提供する。【解決手段】符号化部２５は、フレーム画像を分割した複数のブロックを順に符号化する。モード選択制御部２１は、所定の期間内での符号化部２５による複数のブロックの符号化の進行状況に応じて、符号化部２５がそれぞれのブロックを符号化する符号化モードを選択する。【選択図】図１
2015177466.tif 000002
【特許請求の範囲】
【請求項１】
フレーム画像を分割した複数のブロックを順に符号化する符号化部と、
所定の期間内での前記符号化部による前記複数のブロックの符号化の進行状況に応じて、前記符号化部がそれぞれのブロックを符号化する符号化モードを選択する選択部と、
を有することを特徴とする動画符号化装置。
【請求項２】
前記選択部は、符号化モード毎の符号化のコストを前記符号化モードに応じた補正値で補正した値に基づいて符号化モードを選択する
ことを特徴とする請求項１に記載の動画符号化装置。
【請求項３】
前記選択部は、符号化モードの符号化処理にかかる処理時間情報及び処理の進捗状況から算出される補正値をコストに加算した補正コスト値が最小となる符号化モードを選択する
ことを特徴とする請求項１または２に記載の動画符号化装置。
【請求項４】
コンピュータが、
フレーム画像を分割した複数のブロックを順に所定の期間内で符号化する際の前記複数のブロックの符号化の進行状況に応じて、それぞれのブロックを符号化する符号化モードを選択し、
前記フレーム画像のそれぞれのブロックを選択された符号化モードで順に符号化する
処理を実行することを特徴とする動画符号化方法。
【請求項５】
コンピュータに、
フレーム画像を分割した複数のブロックを順に所定の期間内で符号化する際の前記複数のブロックの符号化の進行状況に応じて、それぞれのブロックを符号化する符号化モードを選択し、
前記フレーム画像のそれぞれのブロックを選択された符号化モードで順に符号化する
処理を実行させることを特徴とする動画符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画符号化装置、動画符号化方法および動画符号化プログラムに関する。
【背景技術】
【０００２】
従来から、動画像をリアルタイムで符号化する動画符号化方法が知られている。この動画符号化方法としては、例えば、Ｈ.２６４／ＭＰＥＧ（Moving  Picture  Experts  Group）−４ＡＶＣ（Advanced  Video  Coding）や、Ｈ．２６５などが挙げられる。Ｈ．２６５は、ＨＥＶＣ（High  Efficiency  Video  Coding）などとも呼ばれる。なお、「Ｈ.２６４／ＭＰＥＧ−４ＡＶＣ」を以下では、「Ｈ.２６４」とも表記する。この動画符号化方法では、複数の符号化モードが規定されている。また、この動画符号化方法では、圧縮効率・画質を向上させるために、フレーム画像を複数のマクロブロックに分割し、マクロブロック単位で最適な符号化モードを選択して符号化処理を行う。例えば、動画符号化方法では、それぞれの符号化モードで符号化した際のコストを求め、コストが小さい符号化モードを選択して符号化処理を行う。このコストは、例えば、符号化した際の画像の歪み量および符号化で発生する発生情報量から算出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００４−５３２５４０号公報
【特許文献２】特開２００７−１５９１１１号公報
【特許文献３】特開２００２−１１２２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、動画像をリアルタイムに符号化するには、フレーム画像の符号化を動画像のフレーム周期に応じた期間内で行なわなければならない。しかしながら、コストが小さい符号化モードを選択しても、フレーム周期に応じた期間内でフレーム画像の符号化を完了できない場合がある。このような場合、例えば、符号化が完了していないマクロブロックについては、符号化モードによる符号化をスキップして前のフレームのマクロブロックの情報を用いることも考えられるが、画質が低下する。
【０００５】
一側面では、画質の低下を抑制して動画像をリアルタイムに符号化できる動画符号化装置、動画符号化方法および動画符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、動画符号化装置は、符号化部と、選択部と、を有する。符号化部は、フレーム画像を分割した複数のブロックを順に符号化する。選択部は、所定の期間内での前記符号化部による前記複数のブロックの符号化の進行状況に応じて、前記符号化部がそれぞれのブロックを符号化する符号化モードを選択する。
【発明の効果】
【０００７】
本発明の一側面によれば、画質の低下を抑制して動画像をリアルタイムに符号化できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、動画符号化装置の概略構成の一例を示す図である。
【図２】図２は、モード選択制御部の概略構成の一例を示す図である。
【図３】図３は、イントラ予測の各予測モードを示した図である。
【図４】図４は、コストの補正の一例を示す図である。
【図５】図５は、各符号化モードのコスト補正値を算出した一例を示す図である。
【図６】図６は、動画符号化処理の手順の一例を示すフローチャートである。
【図７】図７は、フレーム画像の符号化の進行状況の変化の一例を示す図である。
【図８】図８は、コストの補正の一例を示す図である。
【図９】図９は、フレーム画像の符号化の進行状況の変化の一例を示す図である。
【図１０】図１０は、コストの補正の一例を示す図である。
【図１１】図１１は、動画符号化プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明に係る動画符号化装置、動画符号化方法および動画符号化プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。なお、以下では、主にＨ.２６４の符号化を行う場合を例に説明する。
【実施例１】
【００１０】
［監視対象システムの構成］
実施例１に係る動画符号化装置１０の構成について説明する。図１は、動画符号化装置の概略構成の一例を示す図である。動画符号化装置１０は、入力する動画像をリアルタイムで符号化する装置である。動画符号化装置１０は、ＬＳＩ（Large  Scale  Integration）により１チップ化したトランスコーダＬＳＩであってもよい。また、動画符号化装置１０は、動画像の符号化に用いる機器が配置されたボートであってもよい。
【００１１】
ここで、動画符号化装置１０が、動画像を符号化する流れを簡単に説明する。動画符号化装置１０には、符号化する動画像のデータが入力される。例えば、動画像が３０フレームレートで撮影されたものである場合、動画符号化装置１０には、１／３０秒の周期で動画像の各フレーム画像のデータが入力される。動画符号化装置１０は、フレーム周期に応じた所定の期間内で各フレーム画像を符号化する。例えば、動画符号化装置１０は、フレーム画像を複数のマクロブロックに分割する。そして、動画符号化装置１０は、フレーム画像の各マクロブロックの画像を順に符号化対象のブロックとし、符号化対象のブロックを各種の符号化モードで符号化した際の処理に関するコストを算出する。例えば、動画符号化装置１０は、マクロブロック毎に、イントラ予測とインター予測での処理に関するコストを算出する。イントラ予測とは、同じフレーム画像内の他のブロックの画素から符号化対象のブロックの画素を予測するものである。このイントラ予測は、フレーム内予測とも呼ばれる。インター予測とは、フレーム画像間で動き補償を行って符号化対象のブロックの画素を予測するものである。このインター予測は、フレーム間予測とも呼ばれる。そして、動画符号化装置１０は、コストの最も小さい符号化方式でマクロブロックの画像を符号化する。
【００１２】
図１の例は、フレーム画像をマクロブロック単位で符号化する流れを機能的な構成で示している。図１に示すように、動画符号化装置１０は、動画像を符号化する処理部として、フレームメモリ２０と、モード選択制御部２１と、減算部２２と、直交変換部２３と、量子化部２４と、符号化部２５とを有する。また、動画符号化装置１０は、動画像を符号化する処理部として、逆量子化部２６と、逆直交変換部２７と、加算部２８と、デブロックフィルタ２９とを有する。これら各処理部は、その全部または任意の一部が、例えば、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ＬＳＩ、ワイヤードロジックなどによるハードウェアとして実現され得る。
【００１３】
フレームメモリ２０には、符号化する際に比較対象となるフレーム画像が記憶される。例えば、フレームメモリ２０には、最大１６フレームの符号化済みのフレーム画像が記憶される。
【００１４】
モード選択制御部２１には、フレーム画像が入力される。モード選択制御部２１は、入力されたフレーム画像に対してマクロブロック単位でフレームメモリ２０に記憶された各フレーム画像からそれぞれ動きベクトルを求める。そして、モード選択制御部２１は、各フレーム画像に対して、それぞれの動きベクトルに基づく動き補償を行う。そして、モード選択制御部２１は、符号化対象のブロックの画像と、動き補償された符号化対象のブロックに対応する部分の画像との予測誤差を求め、符号化のコストを算出する。
【００１５】
また、モード選択制御部２１には、加算部２８からフレーム画像の符号化済みのブロックの画像が入力される。モード選択制御部２１は、符号化対象のブロックの周囲の符号化済みのブロックの画像から符号化対象のブロックの画像を予測し、予測された画像と、実際の画像との予測誤差を求め、符号化のコストを算出する。
【００１６】
モード選択制御部２１は、算出された符号化のコストを補正し、補正後のコストから符号化モードを選択する。この符号化のコストを補正し、補正後のコストから符号化モードを選択する処理の詳細については、後述する。モード選択制御部２１は、選択した符号化モードでの符号化対象のブロックに対応する部分の画像を減算部２２へ出力する。また、モード選択制御部２１は、選択した符号化モードで符号化するための情報を符号化部２５へ出力する。
【００１７】
減算部２２は、符号化対象のブロックの画像と、モード選択制御部２１で選択された画像との予測誤差画像を求め、直交変換部２３へ出力する。直交変換部２３は、入力された予測誤差画像に対して直交変換を行って空間周波数領域のデータに変換する。例えば、直交変換部２３は、Ｈ.２６４の方式では、予測誤差画像の整数精度の離散コサイン変換（ＤＣＴ）を行って空間周波数領域のデータに変換する。量子化部２４は、直交変換部２３により変換されたデータを量子化して、データの情報量を削減する。符号化部２５は、量子化部２４により量子化されたデータを符号化し、符号化したデータに符号化モードなど付加情報を付加して出力する。
【００１８】
一方、逆量子化部２６は、量子化部２４により量子化されたデータを逆量子化して空間周波数領域のデータに変換する。逆直交変換部２７は、逆量子化部２６により変換された空間周波数領域のデータを逆直交変換して予測誤差画像のデータに変換する。加算部２８は、予測誤差画像に、モード選択制御部２１で選択された画像を加算してマクロブロックの復元画像を生成し、モード選択制御部２１およびデブロックフィルタ２９へ出力する。モード選択制御部２１では、このマクロブロックの復元画像が、後のマクロブロックの画像のイントラ予測を行う際の予測に用いる画像となる。
【００１９】
一方、デブロックフィルタ２９は、加算部２８から出力される各マクロブロックの復元画像に対してデブロックフィルタ（Deblocking  Filter）処理を行い、マクロブロックの間のブロック・ノイズの補正を行う。例えば、デブロックフィルタ２９は、加算部２８から出力される各マクロブロックの復元画像を１フレーム分蓄積し、蓄積した各マクロブロックの復元画像の境界部分を適応的に重み付けして平滑化する。これにより、各復元画像の境界部分でのブロック・ノイズの発生を抑制できる。デブロックフィルタ２９により処理されたフレーム画像は、フレームメモリ２０に格納され、イントラ予測に用いられる。
【００２０】
［モード選択制御部の構成］
次に、モード選択制御部２１の構成について説明する。図２は、モード選択制御部の概略構成の一例を示す図である。図２の例では、モード選択制御部２１が符号化モードを選択する流れを機能的な構成で示している。図２に示すように、モード選択制御部２１は、タイマー４０と、予測画像生成部４１と、コスト算出部４２と、コスト補正部４３と、選択部４４とを有する。
【００２１】
タイマー４０は、経過時間を計測する。例えば、タイマー４０は、フレーム画像ごとに、フレーム画像に対する符号化を開始してからの経過時間を計測する。また、タイマー４０は、フレーム画像のマクロブロック毎に、後述する各符号化モードの処理にかかる処理時間を計測する。
【００２２】
予測画像生成部４１、コスト算出部４２およびコスト補正部４３は、符号化モード毎に、設けられている。図２の例では、予測画像生成部４１、コスト算出部４２およびコスト補正部４３をそれぞれ３つ例示したが、開示のシステムはこれに限定されず、符号化モード毎に設けられる。例えば、インター予測では、フレームメモリ２０に記憶された複数のフレーム画像からそれぞれ予測誤差を求めるため、予測画像生成部４１、コスト算出部４２およびコスト補正部４３を、予測誤差を求める符号化モードごとに設ける。また、イントラ予測では、符号化済みの周囲の画素から複数の予測モードで符号化対象のブロックの画素を予測して予測誤差を求めるため、予測画像生成部４１、コスト算出部４２およびコスト補正部４３を、イントラ予測の予測モード毎に設ける。図３は、イントラ予測の各予測モードを示した図である。イントラ予測では、符号化対象のブロックの画素の予測モードとして、予測モード０〜予測モード８までが定められている。図３の例では、符号化対象のブロックに対して予測値として適用する周囲の画素が矢印により示されている。例えば、予測モード０では、上側の画素の値を下側の画素の予測値として適用する。なお、予測モード２は、周囲の画素の平均値を予測値として適用する。よって、予測画像生成部４１、コスト算出部４２およびコスト補正部４３は、予測モード０〜８にそれぞれ対応して設けられる。
【００２３】
ここで、Ｈ.２６４のイントラ予測では、４ｘ４もしくは１６ｘ１６画素サイズ単位に周辺画素から、予測画像を生成するが、予測モードによって処理量が大きく異なる。例えば、図３に示すように、予測モード０、１の場合は、周辺画素をコピーして予測画像を生成する。これに対し、予測モード３〜８は、周辺画素に係数を乗算して加算するフィルタ処理をおこなって、予測画像を生成する。つまり、予測モード０、１に対して予測モード３〜８は、予測画像生成のための演算量および処理時間が格段に大きくなり、処理時間のゆらぎとなる。さらに、Ｈ.２６５では、予測モードが４倍程度に増加していることに加え、予測画像生成のためのフィルタ処理も、より多くの画素を用い、演算量も多くなっている。このため、Ｈ.２６５では、予測モード毎の処理時間の差もより大きくなっている。
【００２４】
また、Ｈ.２６４のインター予測では、最小４ｘ４から最大１６ｘ１６のサイズのうち、最も符号化コストの少ないサイズで動きベクトルおよび予測画像を生成する。その際、４ｘ４のサイズで動き探索を行って予測画像の生成を４回行う場合と、１６ｘ１６サイズで動き探索を行って１回の予測画像を生成する場合とでは、１６ｘ１６サイズで一回行う場合のほうが、４ｘ４サイズで４回行う場合より処理時間は少なくなる。その理由として、１６ｘ１６サイズの場合は、一つのベクトルが示すピクチャから予測画像を生成できる。一方、４ｘ４サイズを４つ処理する場合は、各ベクトルが異なるピクチャを参照できるため、予測画像を生成する際に、４ｘ４の小さな矩形サイズのアクセスを４回行う。このため、４ｘ４サイズの方がメモリ転送時間がトータルでは増加する。インター予測では、読み出す参照画像を、例えば、ＤＲＡＭなどの大容量メモリに保存する。このため、４ｘ４のような小さな矩形サイズの読み出しは、ＤＲＡＭのバースト転送機能が活用できずアクセス効率が悪い。また、４ｘ４サイズの場合、１６ｘ１６サイズにくらべて、発生するベクトル量が４倍となり、ベクトル情報を符号化するための処理も４倍となり処理時間増加につながる。さらに、Ｈ.２６５の場合は、最大サイズが６４ｘ６４にまで拡大しているため、最小の処理量と最大の処理量との差がより大きくなる。
【００２５】
予測画像生成部４１は、それぞれの符号化モードでの予測画像を生成する。
【００２６】
コスト算出部４２は、符号化のコストを算出する。例えば、コスト算出部４２は、符号化モードで符号化したときの歪み量Ｄと、符号化に必要な情報Ｒとを算出する。例えば、コスト算出部４２は、予測画像生成部４１により生成された予測画像と符号化対象のブロックの画像を対応する画素毎に比較して、歪み量Ｄとして画素値の二乗誤差の合計を算出する。また、例えば、コスト算出部４２は、符号化に必要な情報Ｒとして、符号化モードで符号化したときの発生する情報量や、動きベクトル、符号化モード情報などを算出する。コスト算出部４２は、歪み量Ｄと、符号化に必要な情報Ｒとを加算した値をコストＪとする。すなわち、コスト算出部４２は、歪み量Ｄと、符号化に必要な情報Ｒとを加算してコストＪを算出する。
【００２７】
コスト補正部４３は、コスト算出部４２により算出されたコストＪを補正する。例えば、コスト補正部４３は、符号化モード毎のコスト補正値τをコストＪに加算して補正する。
【００２８】
図４は、コストの補正の一例を示す図である。図４の例では、符号化モードＡ〜Ｃについて、歪み量Ｄ、符号化に必要な情報Ｒ、コストＪ、コスト補正値τ、補正されたコストが示されている。例えば、符号化モードＡは、歪み量Ｄが「２０」、符号化に必要な情報Ｒが「３０」であるため、「２０」と「３０」を加算した結果、コストＪが「５０」となっている。また、符号化モードＡは、コストＪが「５０」、コスト補正値τが「３０」であるため、「５０」と「３０」を加算した結果、補正後のコストが「８０」となっている。また、符号化モードＣは、歪み量Ｄが「４０」、符号化に必要な情報Ｒが「１５」であるため、「４０」と「１５」を加算した結果、コストＪが「５５」となっている。また、符号化モードＣは、コストＪが「５５」、コスト補正値τが「１０」であるため、「５５」と「１０」を加算した結果、補正後のコストが「６５」となっている。
【００２９】
このコスト補正値τは、処理負荷が大きい符号化モードほど大きいものとして予め設定してもよい。例えば、符号化の処理の負荷が高いものほど値を大きく設定してもよい。また、コスト補正値τは、管理者等が値を調整可能としてもよい。また、コスト補正値τは、算出してもよい。
【００３０】
ここで、コスト補正値τを算出する一例を説明する。例えば、タイマー４０により各符号化モードの処理にかかる処理時間を計測する。そして、コスト補正部４３は、各符号化モードの処理にかかる時間とコスト値、および、マクロブロックの基準処理時間からコスト補正値τを算出する。
【００３１】
例えば、符号化モードの処理時間をＴとし、コスト値をＪとし、基準処理時間をＴＡとし、補正値をＮとする。この場合、コスト補正値τは、例えば、以下の（１）式により算出する。
【００３２】
τ＝（Ｊ×（Ｔ／ＴＡ）−Ｊ）／Ｎ      （１）
【００３３】
補正値Ｎは、補正度合いを調整する係数である。例えば、補正値Ｎは、「１」や「４」などの数値とする。
【００３４】
コスト補正値τを算出する具体例を説明する。例えば、１９２０ｘ１０８８画素サイズのフレーム画像を３０枚／秒で処理する場合、一枚のフレーム画像の処理に使える時間は、３３３３３．３３・・・μsである。マクロブロックのサイズを１６ｘ１６画素サイズとした場合、１９２０ｘ１０８８画素サイズのフレーム画像におけるマクロブロックの個数は、横方向で１９２０／１６＝１２０個、縦方向で１０８８／１６＝６８であるため、１２０×６８＝８１６０個である。つまり、１つのマクロブロックの処理に費やせる時間は、３３３３３．３３・・・／８１６０μsとなり、およそ４μsとなる。これを基準処理時間ＴＡとする。
【００３５】
図５は、各符号化モードのコスト補正値を算出した一例を示す図である。図５に示すように、符号化モードＡは、処理時間が１μsであり、コスト値Ｊが５０であるものとする。また、符号化モードＢは、処理時間が３μsであり、コスト値Ｊが４０であるものとする。また、符号化モードＣは、処理時間が１０μsであり、コスト値Ｊが３０であるものとする。また、基準処理時間ＴＡが、４μsであり、補正値Ｎが２であるものとする。
【００３６】
この場合、コスト補正値τは、それぞれ以下のように算出される。
【００３７】
符号化モードＡ：（５０×（１μs／４μs)−５０)／２＝−１８．７５
符号化モードＢ：（４０×（３μs／４μs)−４０）／２＝−５
符号化モードＣ：（３０×（１０μs／４μs)−３０）／２＝２２．５
【００３８】
選択部４４は、コスト補正部４３により補正されたコストに基づいて符号化モードを選択する。例えば、選択部４４は、補正されたコストが小さい符号化モードを選択する。例えば、選択部４４は、図４の例の場合、符号化モードＣを選択する。この選択された符号化モードの予測画像が減算部２２へ出力されて、符号化対象のブロックの画像の符号化が行われる。
【００３９】
このように、動画符号化装置１０は、符号化モード毎に、符号化のコストＪを算出し、コストＪをコスト補正値τにより補正したコストに基づいて符号化モードを選択することにより、フレーム画像の符号化が遅延することを抑制できる。また、フレーム画像のマクロブロックを何れかの符号化モードで符号化できるため、画質の低下も抑制できる。
【００４０】
［処理の流れ］
次に、本実施例に係る動画符号化装置１０が動画像を符号化する動画符号化処理の流れについて説明する。図６は、動画符号化処理の手順の一例を示すフローチャートである。この動画符号化処理は、所定のタイミング、例えば、フレーム画像の各マクロブロックを符号化するタイミングでそれぞれ実行される。
【００４１】
図６に示すように、予測画像生成部４１は、それぞれの符号化モードでの予測画像を生成する（Ｓ１０）。コスト算出部４２は、それぞれの符号化モードの符号化のコストＪを算出する（Ｓ１１）。コスト補正部４３は、コスト算出部４２により算出された各符号化モードの符号化のコストＪを補正する（Ｓ１２）。選択部４４は、補正されたコストが小さい符号化モードを選択し（Ｓ１３）、処理を終了する。これにより、動画符号化装置１０では、複数のブロックの符号化の進行状況に応じて、それぞれのブロックを符号化する符号化モードが選択される。動画符号化装置１０は、マクロブロックに、図６に示す処理が行われ、選択された符号化モードで符号化が行われる。
【００４２】
［効果］
上述してきたように、本実施例に係る動画符号化装置１０は、フレーム画像を分割した複数のブロックを順に符号化する。そして、動画符号化装置１０は、フレーム周期に応じた所定の期間内での複数のブロックの符号化の進行状況に応じて、それぞれのブロックを符号化する符号化モードを選択する。これにより、動画符号化装置１０は、画質の低下を抑制して動画像をリアルタイムに符号化できる。
【００４３】
また、本実施例に係る動画符号化装置１０は、符号化モード毎の符号化のコストを当該符号化モードに応じた補正値で補正した値に基づいて符号化モードを選択する。これにより、動画符号化装置１０は、フレーム画像の符号化が遅延することを抑制できる。
【実施例２】
【００４４】
次に、実施例２について説明する。実施例２に係る動画符号化装置１０の構成は、実施例１と同様であるため、主に異なる部分について説明する。
【００４５】
コスト補正部４３は、フレーム画像毎に、符号化の進行状況を求める。例えば、コスト補正部４３は、タイマー４０により計測される時間と、フレーム画像内で符号化が完了したマクロブロックの割合から、フレーム画像内での符号化の進行状況を算出する。例えば、コスト補正部４３は、フレーム画像内での符号化の進行状況として、モード判定処理時点における、理想的な進捗での符号化が完了したブロック数ｎと実際に符号化が完了したブロック数ｍの差分から、例えば、以下の（２）式により、遅延の状態を示す係数γを算出する。
【００４６】
γ＝（ｎ−ｍ）／ｎ      （２）
【００４７】
図７は、フレーム画像の符号化の進行状況の変化の一例を示す図である。図７の横軸は、時間を示す。図７の縦軸は、フレーム画像で符号化が完了したブロック数を示す。図７の破線は、フレーム画像の各マクロブロックをフレーム周期内で符号化する際の理想的な処理の進行状況を示す。ここで、図７に示すように、フレーム画像を符号化する際の実施の進行状況が理想的な処理の進行状況に対して遅れた場合、理想的な進捗での符号化が完了したブロック数ｎよりも実際に符号化が完了したブロック数ｍが小さい。このため、理想的な処理より遅延している場合、係数γは、０．０〜１．０の範囲内で求まる。
【００４８】
コスト補正部４３は、算出した係数γを用いてコスト補正値τを補正する。例えば、コスト補正部４３は、コスト補正値τに遅延の状態の係数γを乗算することで補正する。なお、コスト補正値τの補正方法は、これに限定されるものではない。
【００４９】
そして、コスト補正部４３は、符号化モード毎に、コスト補正値τをコストＪに加算して補正したコストを算出する。この場合、補正されたコストは、例えば、以下の（３）式により算出される。
【００５０】
補正されたコスト＝Ｄ＋Ｒ＋τ×γ        （３）
【００５１】
図８は、コストの補正の一例を示す図である。図８の例では、符号化モードＡ〜Ｃについて、歪み量Ｄ、符号化に必要な情報Ｒ、コストＪ、コスト補正値τ、係数γ、補正されたコストが示されている。例えば、符号化モードＡは、歪み量Ｄが「２０」、符号化に必要な情報Ｒが「３０」であるため、「２０」と「３０」を加算した結果、コストＪが「５０」となっている。また、符号化モードＡは、コストＪが「５０」、コスト補正値τが「３０」、係数γが「０．９」であるため、補正後のコストが「７７」となっている。また、符号化モードＣは、歪み量Ｄが「４０」、符号化に必要な情報Ｒが「１５」であるため、「４０」と「１５」を加算した結果、コストＪが「５５」となっている。また、符号化モードＣは、コストＪが「５５」、コスト補正値τが「１０」、係数γが「０．９」であるため、補正後のコストが「６４」となっている。
【００５２】
選択部４４は、補正されたコストが小さい符号化モードを選択する。例えば、選択部４４は、図８の例の場合、符号化モードＣを選択する。
【００５３】
このように、動画符号化装置１０は、コストＪに、コスト補正値τとフレーム画像の符号化の進捗状況に応じた係数γとを乗算した値を加算して補正を行ったコストに基づいて符号化モードを選択する。これにより、動画符号化装置１０は、フレーム画像の符号化の進行状況で遅れが大きい場合、大きく補正が行われて、遅れを回復できる。
【００５４】
図９は、フレーム画像の符号化の進行状況の変化の一例を示す図である。図９の横軸は、時間を示す。図９の縦軸は、フレーム画像を符号化した割合を示す。図９の破線は、フレーム画像の各マクロブロックをフレーム周期内で符号化する際の理想的な処理の進行状況を示す。ここで、図９に示すように、フレーム画像を符号化する際の実施の進行状況が理想的な処理の進行状況に対して遅れた場合、大きく補正が行われる。これにより、符号化の遅れを回復でき、フレーム周期内でフレーム画像の符号化が完了するようになるため、安定して動画像をリアルタイムに符号化できる。
【００５５】
［効果］
上述してきたように、本実施例に係る動画符号化装置１０は、符号化モードの符号化処理にかかる処理時間情報及び処理の進捗状況から算出される補正値をコストに加算した補正コスト値が最小となる符号化モードを選択する。これにより、動画符号化装置１０は、安定して動画像をリアルタイムに符号化できる。
【実施例３】
【００５６】
次に、実施例３について説明する。実施例３に係る動画符号化装置１０の構成は、実施例１、２と同様であるため、主に異なる部分について説明する。
【００５７】
本実施例では、各符号化モードを符号化の処理にかかる処理時間に応じて予めランクを設定しておく。例えば、処理時間が短い符号化モードほど高いものとして、各符号化モードにランクを設定する。
【００５８】
コスト補正部４３は、フレーム画像毎に、符号化の進行状況を求める。例えば、コスト補正部４３は、フレーム画像毎に、実施例２と同様に、遅延の状態を示す係数γを算出する。係数γは、遅延が多いほど値が小さくなる。コスト補正部４３は、進行状況に応じたランクから符号化モードを選択する。例えば、コスト補正部４３は、進行状況の遅れが大きいほど、高いランクから符号化モードを選択する。例えば、コスト補正部４３は、係数γが小さいほど高くランクの閾値を決定する。そして、コスト補正部４３は、閾値以上のランクの符号化モードから、符号化モードを選択する。
【００５９】
図１０は、コストの補正の一例を示す図である。図１０の例では、符号化モードＡ〜Ｃについて、歪み量Ｄ、符号化に必要な情報Ｒ、コストＪ、ランクが示されている。例えば、符号化モードＡは、歪み量Ｄが「２０」、符号化に必要な情報Ｒが「３０」であり、ランクが「３」となっている。また、符号化モードＣは、歪み量Ｄが「４０」、符号化に必要な情報Ｒが「１２」であり、ランクが「１」となっている。図１０の例では、ランクは、値が小さいものほどランクが高いものとする。
【００６０】
コスト補正部４３は、スケジュールが遅延なく進行している場合、歪み量Ｄと符号化に必要な情報Ｒを加算したコストＪをそれぞれ算出して最もコストの小さい符号化モードを選択する。図１０の例では、コスト補正部４３は、符号化モードＡを選択する。
【００６１】
一方、スケジュールの遅延がしきい値以内であれば、コスト補正部４３は、ランク３を除いたランク２以上から最もコストの小さい符号化モードを選択する。図１０の例では、コスト補正部４３は、符号化モードＣを選択する。
【００６２】
また、スケジュールの遅延がしきい値以上であれば、コスト補正部４３は、ランク２、３を除いたランク１から最もコストの小さい符号化モードを選択する。図１０の例では、コスト補正部４３は、符号化モードＣを選択する。
【００６３】
このように、動画符号化装置１０は、フレーム画像を符号化する際の理想的な処理の進行状況に対する実施の進行状況の遅れが大きいほど、処理時間が長い符号化モードを除外して、それぞれのブロックを符号化する符号化モードを選択する。これにより、動画符号化装置１０は、フレーム画像の符号化の進行状況で遅れが大きい場合、大きく補正が行われて、遅れを回復できる。
【００６４】
［効果］
上述してきたように、本実施例に係る動画符号化装置１０は、フレーム画像の符号化の進行状況に応じて、処理時間が長い符号化モードを除外し、処理時間が短い符号化モードからブロックを符号化する符号化モードを選択する。これにより、動画符号化装置１０は、安定して動画像をリアルタイムに符号化できる。
【実施例４】
【００６５】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６６】
例えば、上記の実施例では、動画の符号化として、Ｈ.２６４、Ｈ.２６５を用いて説明したが、符号化方式はこれに限定されない。例えば、複数の符号化モードについてそれぞれ符号化のコストを求めて符号化モードを決定する符号化方式であれば何れの符号化方式にも適用できる。
【００６７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、動画符号化装置１０のモード選択制御部２１、減算部２２、直交変換部２３、量子化部２４、符号化部２５、逆量子化部２６、逆直交変換部２７、加算部２８およびデブロックフィルタ２９の各処理部が適宜統合されてもよい。また、モード選択制御部２１についても、タイマー４０、予測画像生成部４１、コスト算出部４２、コスト補正部４３および選択部４４の各処理部が適宜統合されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６８】
［動画符号化プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１１は、動画符号化プログラムを実行するコンピュータを示す図である。
【００６９】
図１１に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＨＤＤ（Hard  Disk  Drive）３２０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３００〜３４０の各部は、バス４００を介して接続される。
【００７０】
ＨＤＤ３２０には上記のモード選択制御部２１、減算部２２、直交変換部２３、量子化部２４、符号化部２５、逆量子化部２６、逆直交変換部２７、加算部２８およびデブロックフィルタ２９の各処理部と同様の機能を発揮する動画符号化プログラム３２０ａが予め記憶される。なお、動画符号化プログラム３２０ａについては、適宜分離しても良い。
【００７１】
また、ＨＤＤ３２０は、各種情報を記憶する。例えば、ＨＤＤ３２０は、ＯＳや処理に用いる各種データを記憶する。
【００７２】
そして、ＣＰＵ３１０が、動画符号化プログラム３２０ａをＨＤＤ３２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、動画符号化プログラム３２０ａは、動画符号化装置１０の各処理部と同様の動作を実行する。
【００７３】
なお、上記した動画符号化プログラム３２０ａについては、必ずしも最初からＨＤＤ３２０に記憶させることを要しない。
【００７４】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【００７５】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７６】
１０    動画符号化装置
２０    フレームメモリ
２１    モード選択制御部
２２    減算部
２３    直交変換部
２４    量子化部
２５    符号化部
２６    逆量子化部
２７    逆直交変換部
２８    加算部
２９    デブロックフィルタ
４０    タイマー
４１    予測画像生成部
４２    コスト算出部
４３    コスト補正部
４４    選択部
【図１】
2015177466.tif 000003
【図２】
2015177466.tif 000004
【図３】
2015177466.tif 000005
【図４】
2015177466.tif 000006
【図５】
2015177466.tif 000007
【図６】
2015177466.tif 000008
【図７】
2015177466.tif 000009
【図８】
2015177466.tif 000010
【図９】
2015177466.tif 000011
【図１０】
2015177466.tif 000012
【図１１】
2015177466.tif 000013