本発明の実施の形態について、図面を参照して説明する。
(第1実施形態)
図1は、本発明の第1実施形態に係る面内予測符号化装置の構成を示すブロック図である。本実施形態の面内予測符号化装置150aは、面内予測モード候補の決定方法を、面内予測符号化装置に与えられた資源量に基づいて切り替える点に特徴を有している。
面内予測符号化装置150aは、図1に示すように、面内予測符号化装置に与えられた資源量172を元にして、試行する面内予測モード候補を面内予測モード候補指定情報170として指定する面内予測モード候補決定部156aと、同一画面内の符号化後の画素としての面内予測用参照画素群162を入力とし面内予測画像164と面内予測モード情報163を出力とする面内予測実行部151と、入力画像161と面内予測画像164と面内予測モード情報163を入力とし予測差分画像165を出力とする予測差分計算部152と、予測差分画像165を入力とし評価値166を出力とする符号化効率評価部153と、面内予測モード情報163と予測差分画像165と評価値166を入力とし予測差分画像168と面内予測モード情報167を出力とする面内予測モード決定部154と、面内予測モード情報167と予測差分画像168を入力とし符号化画像169出力とする符号化部155とを備えている。
面内予測モード候補決定部156aは、面内予測モードを決定するために試行する面内予測モード候補を、面内予測モード候補指定情報170として指定する。このとき、面内予測モード候補決定部156aは、面内予測符号化装置に与えられた資源量172に基づいて面内予測モード候補決定方法を切り替えて、面内予測モード候補を決定する。
図2は面内予測モード候補決定部156aの構成を示すブロック図である。面内予測モード候補決定部156aは、図2(a)に示すように比較器180a、180b、論理ゲート181a、181b、およびモード候補決定部182a〜182cを備え、面内予測符号化装置に与えられた資源量に応じて、試行する面内予測モードの候補を決定する。比較器180a、180bは、図2(b)に示すように入力される値aおよび値bを比較し、値aが値b以下であれば[1]を出力し、それ以外であれば[0]を出力する。ここでは、比較器180aは、入力された、面内予測符号化装置に与えられた資源量172が閾値TH1以下の場合は[1]を出力し、閾値TH1を超える場合は[0]を出力する。同様に、比較器180bは、入力された、面内予測符号化装置に与えられた資源量172が閾値TH2以下の場合は[1]を出力し、閾値TH1を超える場合は[0]を出力する。ここで、閾値TH1は閾値TH2未満であるとする。論理ゲート181a、181b、比較器180aは、モード候補決定部182a〜182cを切り替えるための動作イネーブル信号185a〜185cを生成する。
動作イネーブル信号185aは、面内予測符号化装置に与えられた資源量172が閾値TH1以下の場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185aが値[1]である場合、モード候補決定部182aが有効となり、このモード候補決定部182aによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
動作イネーブル信号185bは、面内予測符号化装置に与えられた資源量172が閾値TH1よりも大きく、かつ閾値TH2以下である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185bが値[1]である場合、モード候補決定部182bが有効となり、このモード候補決定部182bによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
動作イネーブル信号185cは、面内予測符号化装置に与えられた資源量172が閾値TH2よりも大きい場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185cが値[1]である場合、モード候補決定部182cが有効となり、このモード候補決定部182cによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
ここで、モード候補決定部182aは、資源量をあまり必要とせずに面内予測モード候補を簡易に決定し、またモード候補決定部182bは、モード候補決定部182aに比べて資源量をより多く必要とするが、より高い精度で面内予測モード候補を決定することが可能であり、さらにモード候補決定部182cは、モード候補決定部182bに比べて資源量をさらにより多く必要とし、より高い精度で面内予測モード候補を決定することが可能なモード候補決定部である。なお上記資源量とは、例えばハードウェア処理サイクル数や、ソフトウェア処理量などを指し、必要とする資源量とは、モード候補決定部だけでなく、面内予測符号化装置150a全体が、予測単位ブロック1つあたりに必要とする資源量のことを指すものとする。また面内予測モード候補決定にあたっての精度については、通常、決定した候補の中で最も符号化効率の高い面内予測モードを用いて符号化を行った際の符号化効率がより高い場合に、より精度の高い候補決定方法である、という。
モード候補決定部182a〜cの例を述べる。モード候補決定部182aは、常にDC予測モードのみを面内予測モード候補とする。モード候補決定部182bは、対象ブロック内の画像のエッジ方向を抽出し、その方向に近い予測方向を持つ面内予測モード1個と、DC予測モードとを候補として決定する。モード候補決定部182cは、対象ブロック内の画像のエッジ方向を抽出し、その方向に近い予測方向を持つ面内予測モード3個と、DC予測モードとを候補として決定する。画像のエッジ方向に近い面内予測モードを候補として選ぶのは、エッジと平行な方向では画素同士の相関が高く、精度の高い予測が可能と考えられるからである。なお、上記エッジ方向の検出方法は、どのような方法を用いても良く、例えば良く知られているソーベルフィルタを用いて水平・垂直方向のエッジの度合いを算出するなどが考えられる。
これにより、面内予測符号化装置に与えられた資源量が増加した場合には、それを有効利用し、より符号化効率の高い面内予測が可能となるような、モード候補決定部に切り替えることができる。
面内予測実行部151は、面内予測モード候補指定情報170で指定された面内予測モード候補それぞれを用いて面内予測を時分割で順次実行する。すなわち、面内予測実行部151は、面内予測用参照画素群162から対象ブロックの画素を、各面内予測モードを用いて面内予測し、その予測画像を面内予測画像164として出力する。加えて、面内予測実行部151は、面内予測画像164を生成する際に用いた予測モードに関する情報を、面内予測モード情報163として出力する。
図3は面内予測実行部151の構成を示すブロック図である。面内予測実行部151は、図3に示すようにカウンタ部253、面内予測モード切替部252、面内予測部251、および予測候補有効性判定部254を備え、指定された面内予測モード候補それぞれを用いた面内予測を時分割で順次実行する。カウンタ部253は、カウント値出力257として、値[0]から値[8]までを順次出力する。カウント値出力257の値のカウントアップ動作は、予測完了信号256か判定値258のいずれかが値[0]から値[1]に変化した後に1度のみ実行する。予測候補有効性判定部254は、カウント値出力257で示される値を面内予測モード情報として持つ面内予測モードが、面内予測モード候補指定情報170で示される面内予測モード候補に含まれている場合に、判定値258を値[0]として出力し、面内予測モード情報163として、カウント値出力257の値を出力する。そうでない場合は、判定値258を値[1]として出力し、面内予測モード情報163の値は更新しない。面内予測モード切替部252、面内予測部251は、背景技術において説明した通りである。
なお、面内予測参照画素群162のうち一部もしくは全てが参照不能である場合(例えば、対象ブロックが画面端のブロックで参照画素が存在しない場合、もしくは参照画素が符号化の順序によりまだ符号化されていない場合など)など必要な参照画素が使用できない場合には、指定された面内予測モード候補であっても面内予測を行わなくても構わない。
予測差分計算部152、符号化効率評価部153、面内予測モード決定部154、符号化部155に関しては、背景技術において説明した通りである。
図4は、面内予測符号化装置150aにおける面内予測符号化方法を説明するフローチャートである。ただし、これは予測単位ブロックあたりの処理を示している。
まず、面内予測符号化装置に与えられた資源量172としてのnum_cycleを取得する(ステップS51)。この資源量num_cycleと、閾値TH1とを比較する(ステップS52)。この結果、資源量num_cycleが閾値TH1以下である場合(ステップS52でYes)には、面内予測モード候補決定方法aにより面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS54)。すなわち、モード候補決定部182aが面内予測モード候補指定情報valid_mode[i]を設定する。ここで、i=0,1,・・・,8は各面内予測モードを示しており、例えば、面内予測モード候補指定情報valid_mode[0]は、面内予測モード情報が値[0]である面内予測モードが、面内予測モード候補であるかどうかを示し、面内予測モード候補指定情報valid_mode[0]が値[0]である場合は、面内予測モード候補ではないことを意味し、面内予測モード候補指定情報valid_mode[0]が値[1]である場合は、面内予測モード候補であることを意味する。一方、資源量num_cycleが閾値TH1よりも大きい場合(ステップS52でNo)は、資源量num_cycleと閾値TH2とを比較する(ステップS53)。この結果、資源量num_cycleが閾値TH2以下である場合(ステップS53でYes)は、面内予測モード候補決定方法bにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS55)。すなわち、モード候補決定部182bが面内予測モード候補指定情報valid_mode[i]を設定する。そして、資源量num_cycleが閾値TH2よりも大きい場合(ステップS53でNo)は、面内予測モード候補決定方法cにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS56)。すなわち、モード候補決定部182cが面内予測モード候補指定情報valid_mode[i]を設定する。
以上により、面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値をあらかじめ設定しておき、加えて、変数min_costに、評価値166の取り得る最大値よりも大きい値を代入しておく(ステップS11)。次に面内予測モード情報163をmodeとして、mode=0,1,・・・,8に対して(ステップS12)、順次、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)を実行する。その際、面内予測モード候補指定情報valid_mode[mode]が値[0]である場合には、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)をスキップする(ステップS57)。mode=0,1,・・・,8に対する一連の手順を終了した後、符号化画像169を生成する(ステップS20)。なお、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜S20)に関しては、背景技術において説明した通りである。また、符号化の処理(ステップS20)は、予測単位ブロックを単位とせず、いくつかの予測単位ブロックに対応する、最も評価値166の小さい面内予測モードを示す面内予測モード情報best_mode、およびその面内予測モードにおける予測差分画像best_diffImgが求まった後、一括して実行するなどしてもよい。
なお、以上の面内予測符号化方法は、コンピュータを用いてプログラムとして実現することも可能である。
以上のように、面内予測符号化装置に与えられた資源量が増加した場合には、それに応じて、符号化効率のより高い、より資源量を多く必要とする面内予測符号化を行うように、面内予測候補決定方法を切り替える。これによって、単位時間あたりの利用資源量の最大値を維持しながら、面内予測符号化の符号化効率向上が可能となり、ハードウェアコストやソフトウェア処理量を抑えた符号化効率向上が可能となる。
(第2実施形態)
図5は、本発明の第2実施形態に係る面内予測符号化装置の構成を示すブロック図である。本実施形態の面内予測符号化装置150bは、面内予測モード候補の決定方法を、符号化画像サイズ情報に基づいて切り替える点に特徴を有している。
面内予測符号化装置150bは、図5に示すように符号化画像サイズ情報173を元にして、試行する面内予測モード候補を面内予測モード候補指定情報170として指定する面内予測モード候補決定部156bと、同一画面内の符号化後の画素としての面内予測用参照画素群162を入力とし面内予測画像164と面内予測モード情報163を出力とする面内予測実行部151と、入力画像161と面内予測画像164と面内予測モード情報163を入力とし予測差分画像165を出力とする予測差分計算部152と、予測差分画像165を入力とし評価値166を出力とする符号化効率評価部153と、面内予測モード情報163と予測差分画像165と評価値166を入力とし予測差分画像168と面内予測モード情報167を出力とする面内予測モード決定部154と、面内予測モード情報167と予測差分画像168を入力とし符号化画像169出力とする符号化部155とを備えている。
面内予測モード候補決定部156bは、面内予測モードを決定するために試行する面内予測モード候補を、面内予測モード候補指定情報170として指定する。このとき、面内予測モード候補決定部156bは、符号化画像サイズ情報173に基づいて面内予測モード候補決定方法を切り替えて、面内予測モード候補を決定する。ここで、符号化画像サイズ情報173は、符号化画像横幅値173aと符号化画像縦幅値173bとを合わせたものである。
図6は、面内予測モード候補決定部156bの構成を示すブロック図である。面内予測モード候補決定部156bは、図6に示すように比較器180a、180b、論理ゲート181a、181c〜181g、およびモード候補決定部182a〜182cを備え、符号化画像サイズに応じて、試行する面内予測モードの候補を決定する。ここでは、比較器180aは、入力された符号化画像横幅値173aが値[352]以下の場合は値[1]を出力し、符号化画像縦幅値173aが値[352]を超える場合は値[0]を出力する。同様に、比較器180bは、入力された符号化画像縦幅値173bが値[240]以下の場合は値[1]を出力し、符号化画像縦幅値173bが値[240]を超える場合は値[0]を出力する。論理ゲート181d〜181fは、モード候補決定部182a〜182cを切り替えるための動作イネーブル信号185a〜185cを生成する。
動作イネーブル信号185aは、符号化画像横幅値173aが値[352]を超え、かつ符号化画像縦幅値173bが値[240]を超える場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185aが値[1]である場合、モード候補決定部182aが有効となり、このモード候補決定部182aによって面内予測モード候補が決定され、決定された単一もしくは複数の面内予測モード候補が面内予測モード候補指定情報170として出力される。
動作イネーブル信号185bは、符号化画像横幅値173aが値[352]以下で、かつ符号化画像縦幅値173bが値[240]を超えるか、または、符号化画像横幅値173aが値[352]を超え、かつ符号化画像縦幅値173bが値[240]以下であるかの、いずれかの場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185bが値[1]である場合、モード候補決定部182bが有効となり、このモード候補決定部182bによって面内予測モード候補が決定され、決定された単一もしくは複数の面内予測モード候補が、面内予測モード候補指定情報170として出力される。
動作イネーブル信号185cは、符号化画像横幅値173aが値[352]以下で、かつ符号化画像縦幅値173bが値[240]以下である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185cが値[1]である場合、モード候補決定部182cが有効となり、このモード候補決定部182cによって面内予測モード候補が決定され、決定された単一もしくは複数の面内予測モード候補が、面内予測モード候補指定情報170として出力される。
これにより、符号化画像サイズが小さい場合には、その分、面内予測符号化装置に与えられた資源量が増加するために、より処理サイクルを多く必要とするが、その分より符号化効率の高い面内予測が可能となるような、モード候補決定部に切り替えることができる。
予測差分計算部152、符号化効率評価部153、面内予測モード決定部154、符号化部155に関しては、背景技術において説明した通りである。また、面内予測実行部151に関しては、第1実施形態において説明した通りである。
図7は、面内予測符号化装置150bにおける面内予測符号化方法を説明するフローチャートである。ただし、これは予測単位ブロックあたりの処理を示している。
まず、符号化画像サイズ情報173である符号化画像横幅値ImgWidth、符号化画像縦幅値ImgHeightを取得する(ステップS151)。この符号化画像横幅値ImgWidthと値[352]とを、符号化画像縦幅値ImgHeightと値[240]とを比較する(ステップS152)。この結果、符号化画像横幅値ImgWidthが値[352]よりも大きく、かつ符号化画像縦幅値ImgHeightが値[240]よりも大きい場合(ステップS152でYes)、面内予測モード候補決定方法aにより面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS54)。すなわち、モード候補決定部182aが面内予測モード候補指定情報valid_mode[i]を設定する。それ以外の場合(ステップS152でNo)は、さらに符号化画像横幅値ImgWidthと値[352]とを、符号化画像縦幅値ImgHeightと値[240]とを比較する(ステップS153)。この結果、符号化画像横幅値ImgWidthが値[352]よりも大きいか、または符号化画像縦幅値ImgHeightが値[240]よりも大きい場合(ステップS153でYes)は、面内予測モード候補決定方法bにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS55)。すなわち、モード候補決定部182bが面内予測モード候補指定情報valid_mode[i]を設定する。そして、それ以外の場合(ステップS153でNo)は、面内予測モード候補決定方法cにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS56)。すなわち、モード候補決定部182cが面内予測モード候補指定情報valid_mode[i]を設定する。
以上により、面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値をあらかじめ設定しておき、加えて、変数min_costに、評価値166の取り得る最大値よりも大きい値を代入しておく(ステップS11)。次に面内予測モード情報163をmodeとして、mode=0,1,・・・,8に対して(ステップS12)、順次、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)を実行する。その際、面内予測モード候補指定情報valid_mode[mode]が値[0]である場合には、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)をスキップする(ステップS57)。mode=0,1,・・・,8に対する一連の手順を終了した後、符号化画像169を生成する(ステップS20)。なお、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜S20)に関しては、背景技術において説明した通りである。また、符号化の処理(ステップS20)は、予測単位ブロックを単位とせず、いくつかの予測単位ブロックに対応する、最も評価値166の小さい面内予測モードを示す面内予測モード情報best_mode、およびその面内予測モードにおける予測差分画像best_diffImgが求まった後、一括して実行するなどしてもよい。
なお、以上の面内予測符号化方法は、コンピュータを用いてプログラムとして実現することも可能である。
以上のように、符号化画像サイズが小さくなった場合には、面内予測符号化を行う予測単位ブロック数が減少するために、結果として予測単位ブロック数あたり面内予測符号化装置に与えられる資源量が増加する。ゆえに、符号化画像サイズが小さくなった場合に、符号化効率のより高い、より資源量を多く必要とする面内予測符号化を行うように、面内予測候補決定方法を切り替える。これによって、単位時間あたりの利用資源量の最大値を維持しながら、面内予測符号化の符号化効率向上が可能となり、ハードウェアコストやソフトウェア処理量を抑えた符号化効率向上が可能となる。
(第3実施形態)
図8は、本発明の第3実施形態に係る面内予測符号化装置の構成を示すブロック図である。本実施形態の面内予測符号化装置150cは、面内予測モード候補の決定方法を、符号化画像のフレームレートに基づいて切り替える点に特徴を有している。
面内予測符号化装置150cは、図8に示すように符号化画像フレームレート情報174を元にして、試行する面内予測モード候補を面内予測モード候補指定情報170として指定する面内予測モード候補決定部156cと、同一画面内の符号化後の画素としての面内予測用参照画素群162を入力とし面内予測画像164と面内予測モード情報163を出力とする面内予測実行部151と、入力画像161と面内予測画像164と面内予測モード情報163を入力とし予測差分画像165を出力とする予測差分計算部152と、予測差分画像165を入力とし評価値166を出力とする符号化効率評価部153と、面内予測モード情報163と予測差分画像165と評価値166を入力とし予測差分画像168と面内予測モード情報167を出力とする面内予測モード決定部154と、面内予測モード情報167と予測差分画像168を入力とし符号化画像169出力とする符号化部155とを備えている。
面内予測モード候補決定部156cは、面内予測モードを決定するために試行する面内予測モード候補を、面内予測モード候補指定情報170として指定する。このとき、面内予測モード候補決定部156cは、符号化画像フレームレート情報174に基づいて面内予測モード候補決定方法を切り替えて、面内予測モード候補を決定する。
図9は、面内予測モード候補決定部156cの構成を示すブロック図である。面内予測モード候補決定部156cは、図9に示すように比較器180a、180b、論理ゲート181a、181b、およびモード候補決定部182a〜182cを備え、符号化画像のフレームレートに応じて、試行する面内予測モードの候補を決定する。ここでは、比較器180aは、入力された符号化画像フレームレート情報174が閾値TH1以下の場合は[1]を出力し、閾値TH1を超える場合は[0]を出力する。同様に、比較器180bは、入力された符号化画像フレームレート情報174が閾値TH2よりも大きい場合は[0]を出力し、閾値TH2以下場合は[1]を出力する。ここで、閾値TH1は閾値TH2未満であるとする。論理ゲート181a、181b、比較器180aは、モード候補決定部182a〜182cを切り替えるための動作イネーブル信号185a〜185cを生成する。
動作イネーブル信号185aは、符号化画像フレームレート情報174が閾値TH2を超える場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185aが値[1]である場合、モード候補決定部182aが有効となり、このモード候補決定部182aによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
動作イネーブル信号185bは、符号化画像フレームレート情報174が閾値TH1よりも大きく、かつ閾値TH2以下である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185bが値[1]である場合、モード候補決定部182bが有効となり、このモード候補決定部182bによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
動作イネーブル信号185cは、符号化画像フレームレート情報174が閾値TH1以下である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185cが値[1]である場合、モード候補決定部182cが有効となり、このモード候補決定部182cによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
これにより、符号化画像のフレームレートが減少した場合には、その分、面内予測符号化装置に与えられた資源量が増加するために、より処理サイクルを多く必要とするが、その分より符号化効率の高い面内予測が可能となるような、モード候補決定部に切り替えることができる。
予測差分計算部152、符号化効率評価部153、面内予測モード決定部154、符号化部155に関しては、背景技術において説明した通りである。また、面内予測実行部151に関しては、第1実施形態において説明した通りである。
図10は、面内予測符号化装置150cにおける面内予測符号化方法を説明するフローチャートである。ただし、これは予測単位ブロックあたりの処理を示している。
まず、符号化画像フレームレート情報174としての値frame_rateを取得する(ステップS251)。このフレームレート情報frame_rateと、閾値TH2とを比較する(ステップS252)。この結果、フレームレート情報frame_rateが閾値TH2よりも大きい場合(ステップS252でYes)には、面内予測モード候補決定方法aにより面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS54)。すなわち、モード候補決定部182aが面内予測モード候補指定情報valid_mode[i]を設定する。それ以外の場合(ステップS252でNo)は、フレームレート情報frame_rateと閾値TH1とを比較する(ステップS253)。この結果、フレームレート情報frame_rateが閾値TH1よりも大きい場合(ステップS253でYes)は、面内予測モード候補決定方法bにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS55)。すなわち、モード候補決定部182bが面内予測モード候補指定情報valid_mode[i]を設定する。そして、フレームレート情報frame_rateが閾値TH1以下の場合(ステップS253でNo)は、面内予測モード候補決定方法cにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS56)。すなわち、モード候補決定部182cが面内予測モード候補指定情報valid_mode[i]を設定する。
以上により、面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値をあらかじめ設定しておき、加えて、変数min_costに、評価値166の取り得る最大値よりも大きい値を代入しておく(ステップS11)。次に面内予測モード情報163をmodeとして、mode=0,1,・・・,8に対して(ステップS12)、順次、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)を実行する。その際、面内予測モード候補指定情報valid_mode[mode]が値[0]である場合には、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)をスキップする(ステップS57)。mode=0,1,・・・,8に対する一連の手順を終了した後、符号化画像169を生成する(ステップS20)。なお、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜S20)に関しては、背景技術において説明した通りである。また、符号化の処理(ステップS20)は、予測単位ブロックを単位とせず、いくつかの予測単位ブロックに対応する、最も評価値166の小さい面内予測モードを示す面内予測モード情報best_mode、およびその面内予測モードにおける予測差分画像best_diffImgが求まって後、一括して実行するなどしてもよい。
なお、以上の面内予測符号化方法は、コンピュータを用いてプログラムとして実現することも可能である。
以上のように、符号化画像のフレームレートが減少した場合には、面内予測符号化を行う予測単位ブロック数が減少するために、結果として予測単位ブロック数あたり面内予測符号化装置に与えられる資源量が増加する。ゆえに、符号化画像のフレームレートが減少した場合に、符号化効率のより高い、より資源量を多く必要とする面内予測符号化を行うように、面内予測候補決定方法を切り替える。これによって、単位時間あたりの利用資源量の最大値を維持しながら、面内予測符号化の符号化効率向上が可能となり、ハードウェアコストやソフトウェア処理量を抑えた符号化効率向上が可能となる。
(第4実施形態)
図11は、本発明の第4実施形態に係る面内予測符号化装置の構成を示すブロック図である。本実施形態の面内予測符号化装置150fは、面内予測モード候補の決定方法を、符号化画像のピクチャの予測タイプに基づいて切り替える点に特徴を有している。
面内予測符号化装置150fは、図11に示すようにピクチャの予測タイプ情報175を元にして、試行する面内予測モード候補を面内予測モード候補指定情報170として指定する面内予測モード候補決定部156fと、同一画面内の符号化後の画素としての面内予測用参照画素群162を入力とし面内予測画像164と面内予測モード情報163を出力とする面内予測実行部151と、入力画像161と面内予測画像164と面内予測モード情報163を入力とし予測差分画像165を出力とする予測差分計算部152と、予測差分画像165を入力とし評価値166を出力とする符号化効率評価部153と、面内予測モード情報163と予測差分画像165と評価値166を入力とし予測差分画像168と面内予測モード情報167を出力とする面内予測モード決定部154と、面内予測モード情報167と予測差分画像168を入力とし符号化画像169出力とする符号化部155とを備えている。
面内予測モード候補決定部156fは、面内予測モードを決定するために試行する面内予測モード候補を、面内予測モード候補指定情報170として指定する。このとき、面内予測モード候補決定部156fは、ピクチャの予測タイプ情報175に基づいて面内予測モード候補決定方法を切り替えて、面内予測モード候補を決定する。
ここで、ピクチャの予測タイプとは、対象ブロックを含む符号化対象ピクチャが、画面間予測を行わないタイプを「I」、1つのピクチャを参照して予測画像を生成する画面間予測を行うタイプを「P」、1つまたは複数のピクチャを参照して予測画像を生成する画面間予測を行うタイプを「B」とする。また、ピクチャの予測タイプ情報175としては、予測タイプIが値[2]、予測タイプPが値[1]、予測タイプBが値[0]を有するものとする。なお、ピクチャを分割した一定領域(以下、スライスと呼ぶ)単位で予測タイプを切り替える場合は、ピクチャの予測タイプの代わりに、スライスの予測タイプを参照してもよい。
図12は、面内予測モード候補決定部156fの構成を示すブロック図である。面内予測モード候補決定部156fは、図12に示すように比較器180a、180b、論理ゲート181a、181b、およびモード候補決定部182a〜182cを備え、ピクチャの予測タイプに応じて、試行する面内予測モードの候補を決定する。ここでは、比較器180aは、入力されたピクチャの予測タイプ情報175が値[0]以下の場合は[1]を出力し、値[0]を超える場合は[0]を出力する。同様に、比較器180bは、入力されたピクチャの予測タイプ情報175が値[1]以下の場合は[1]を出力し、値[1]を超える場合は[0]を出力する。論理ゲート181a、181b、比較器180aは、モード候補決定部182a〜182cを切り替えるための動作イネーブル信号185a〜185cを生成する。
動作イネーブル信号185aは、ピクチャの予測タイプ情報175が値[0]以下の場合、すなわち予測タイプが「B」である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185aが値[1]である場合、モード候補決定部182aが有効となり、このモード候補決定部182aによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
動作イネーブル信号185bは、ピクチャの予測タイプ情報175が値[0]よりも大きく、かつ値[1]以下である場合、すなわち予測タイプが「P」である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185bが値[1]である場合、モード候補決定部182bが有効となり、このモード候補決定部182bによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
動作イネーブル信号185cは、ピクチャの予測タイプ情報175が値[1]よりも大きい場合、すなわち予測タイプが「I」である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185cが値[1]である場合、モード候補決定部182cが有効となり、このモード候補決定部182cによって面内予測モード候補が決定され、面内予測モード候補指定情報170として出力される。
予測差分計算部152、符号化効率評価部153、面内予測モード決定部154、符号化部155に関しては、背景技術において説明した通りである。また、面内予測実行部151に関しては、第1実施形態において説明した通りである。
図13は、面内予測符号化装置150fにおける面内予測符号化方法を説明するフローチャートである。ただし、これは予測単位ブロックあたりの処理を示している。
まず、ピクチャの予測タイプ情報175としての値pic_typを取得する(ステップS351)。この予測タイプ情報pic_typと、値[0]とを比較する(ステップS352)。この結果、予測タイプ情報pic_typが値[0]以下である場合(ステップS352でYes)には、面内予測モード候補決定方法aにより面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS54)。すなわち、モード候補決定部182aが面内予測モード候補指定情報valid_mode[i]を設定する。一方、予測タイプ情報pic_typが値[0]よりも大きい場合(ステップS352でNo)は、予測タイプ情報pic_typと値[1]とを比較する(ステップS353)。この結果、予測タイプ情報pic_typが値[1]以下である場合(ステップS353でYes)は、面内予測モード候補決定方法bにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS55)。すなわち、モード候補決定部182bが面内予測モード候補指定情報valid_mode[i]を設定する。そして、予測タイプ情報pic_typが値[1]よりも大きい場合(ステップS353でNo)は、面内予測モード候補決定方法cにより面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する(ステップS56)。すなわち、モード候補決定部182cが面内予測モード候補指定情報valid_mode[i]を設定する。
以上により、面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値をあらかじめ設定しておき、加えて、変数min_costに、評価値166の取り得る最大値よりも大きい値を代入しておく(ステップS11)。次に面内予測モード情報163をmodeとして、mode=0,1,・・・,8に対して(ステップS12)、順次、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)を実行する。その際、面内予測モード候補指定情報valid_mode[mode]が値[0]である場合には、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)をスキップする(ステップS57)。mode=0,1,・・・,8に対する一連の手順を終了した後、符号化画像169を生成する(ステップS20)。なお、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜S20)に関しては、背景技術において説明した通りである。また、符号化の処理(ステップS20)は、予測単位ブロックを単位とせず、いくつかの予測単位ブロックに対応する、最も評価値166の小さい面内予測モードを示す面内予測モード情報best_mode、およびその面内予測モードにおける予測差分画像best_diffImgが求まって後、一括して実行するなどしてもよい。
なお、以上の面内予測符号化方法は、コンピュータを用いてプログラムとして実現することも可能である。
以上のように、予測タイプIでは動き探索等をする必要がないので、Iピクチャでは動き探索等をする必要がないので多くの処理量(資源量)を消費することができ、予測タイプPでは片方向の動き探索を行うため中程度の処理量を消費でき、予測タイプBでは双方向の動き探索を行うため少ない処理量しか消費できない。ゆえに、予測タイプPである場合には予測タイプBである場合に比較して、符号化効率のより高い、資源量を多く必要とする面内予測符号化を行うように、予測タイプIである場合には予測タイプPである場合に比較して、さらに符号化効率の高い、より資源量を多く必要とする面内予測符号化を行うように、面内予測候補決定方法を切り替える。これによって、単位時間あたりの利用資源量の最大値を維持しながら、面内予測符号化の符号化効率向上が可能となり、ハードウェアコストやソフトウェア処理量を抑えた符号化効率向上が可能となる。
(第5実施形態)
図14は、本発明の第5実施形態に係る面内予測符号化装置の構成を示すブロック図である。本実施形態の面内予測符号化装置150dは、面内予測モード候補数を、面内予測符号化装置に与えられた資源量に基づいて切り替える点に特徴を有している。
面内予測符号化装置150dは、図14に示すように面内予測符号化装置に与えられた資源量172を元にして、試行する面内予測モード候補を面内予測モード候補指定情報170として指定する面内予測モード候補決定部156dと、同一画面内の符号化後の画素としての面内予測用参照画素群162を入力とし面内予測画像164と面内予測モード情報163を出力とする面内予測実行部151と、入力画像161と面内予測画像164と面内予測モード情報163を入力とし予測差分画像165を出力とする予測差分計算部152と、予測差分画像165を入力とし評価値166を出力とする符号化効率評価部153と、面内予測モード情報163と予測差分画像165と評価値166を入力とし予測差分画像168と面内予測モード情報167を出力とする面内予測モード決定部154と、面内予測モード情報167と予測差分画像168を入力とし符号化画像169出力とする符号化部155とを備えている。
面内予測モード候補決定部156dは、面内予測モードを決定するために試行する面内予測モード候補を、面内予測モード候補指定情報170として指定する。このとき、面内予測モード候補決定部156dは、面内予測符号化装置に与えられた資源量172に基づいて面内予測モード候補数を切り替える。
図15は、面内予測モード候補決定部156dの構成を示すブロック図である。面内予測モード候補決定部156dは、図15に示すように比較器180a、180b、論理ゲート181a、181b、およびスイッチ232a〜232cを備え、面内予測符号化装置に与えられた資源量に応じて、試行する面内予測モードの候補を決定する。ここでは、比較器180aは、入力された、面内予測符号化装置に与えられた資源量172が閾値TH1以下の場合は[1]を出力し、閾値TH1を超える場合は[0]を出力する。同様に、比較器180bは、入力された、面内予測符号化装置に与えられた資源量172が閾値TH2以下の場合は[1]を出力し、閾値TH1を超える場合は[0]を出力する。ここで、閾値TH1は閾値TH2未満であるとする。論理ゲート181a、181b、比較器180aは、スイッチ232a〜232cを切り替えるための動作イネーブル信号185a〜185cを生成する。
動作イネーブル信号185aは、面内予測符号化装置に与えられた資源量172が閾値TH1以下の場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185aが値[1]である場合、スイッチ232aがONとなり、値[0x0007]を面内予測モード候補指定情報170として出力する。
動作イネーブル信号185bは、面内予測符号化装置に与えられた資源量172が閾値TH1よりも大きく、かつ閾値TH2以下である場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185bが値[1]である場合、スイッチ232bがONとなり、値[0x001F]を面内予測モード候補指定情報170として出力する。
動作イネーブル信号185cは、面内予測符号化装置に与えられた資源量172が閾値TH2よりも大きい場合に値[1]を有し、それ以外の場合は値[0]を有する。動作イネーブル信号185cが値[1]である場合、スイッチ232cがONとなり、値[0x01FF]を面内予測モード候補指定情報170として出力する。
ここで、面内予測モード候補指定情報170の値は、2進数で第n位の桁が値[1]であれば、面内予測モード情報が値[n−1]として表される面内予測モードを、面内予測モード候補として含めることを意味し、2進数で第n位の桁が値[0]であれば、面内予測モード情報が値[n−1]として表される面内予測モードを、面内予測モード候補として含めないことを意味する。すなわち、面内予測モード候補指定情報170が値[0x0007]である場合には、面内予測モード0〜2が面内予測モード候補として含まれる。また、面内予測モード候補指定情報170が値[0x001F]である場合には、面内予測モード0〜4が面内予測モード候補として含まれる。さらに、面内予測モード候補指定情報170が値[0x01FF]である場合には、面内予測モード0〜8のすべてが面内予測モード候補として含まれる。
これにより、面内予測符号化装置に与えられた資源量が増加した場合には、それを有効利用し、より多くの面内予測モード候補に対して面内予測を試行することが可能となる。なお、以上に示した面内予測モード候補指定情報170の決定方法は、面内予測モード候補数を切り替えるための一例にすぎず、面内予測符号化装置に与えられた資源量に対して面内予測モード候補数が単調増加するような面内予測モード候補指定情報170の決定方法であれば良い。
予測差分計算部152、符号化効率評価部153、面内予測モード決定部154、符号化部155に関しては、背景技術において説明した通りである。また、面内予測実行部151に関しては、第1実施形態において説明した通りである。
図16は、面内予測符号化装置150dにおける面内予測符号化方法を説明するフローチャートである。ただし、これは予測単位ブロックあたりの処理を示している。
まず、面内予測符号化装置に与えられた資源量172としてのnum_cycleを取得する(ステップS51)。この資源量num_cycleと、閾値TH1とを比較する(ステップS52)。この結果、資源量num_cycleが閾値TH1以下である場合(ステップS52でYes)には、面内予測モード候補指定情報valid_mode[i](i=0,1,2,・・・8)のうち、3つの値を1に、それ以外を0に設定する(ステップS354)。それ以外の場合(ステップS52でNo)は、資源量num_cycleと閾値TH2とを比較する(ステップS53)。この結果、資源量num_cycleが閾値TH2以下である場合(ステップS53でYes)は、面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)のうち、5つの値を1に、それ以外を0に設定する(ステップS355)。そして、資源量num_cycleが閾値TH2よりも大きい場合(ステップS53でNo)は、面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)をすべて1に設定する(ステップS356)。
以上により、面内予測モード候補指定情報170としてのvalid_mode[i](i=0,1,・・・,8)の値をあらかじめ設定しておき、加えて、変数min_costに、評価値166の取り得る最大値よりも大きい値を代入しておく(ステップS11)。次に面内予測モード情報163をmodeとして、mode=0,1,・・・,8に対して(ステップS12)、順次、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)を実行する。その際、面内予測モード候補指定情報valid_mode[mode]が値[0]である場合には、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜19)をスキップする(ステップS57)。mode=0,1,・・・,8に対する一連の手順を終了した後、符号化画像169を生成する(ステップS20)。なお、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS13〜S20)に関しては、背景技術において説明した通りである。また、符号化の処理(ステップS20)は、予測単位ブロックを単位とせず、いくつかの予測単位ブロックに対応する、最も評価値166の小さい面内予測モードを示す面内予測モード情報best_mode、およびその面内予測モードにおける予測差分画像best_diffImgが求まって後、一括して実行するなどしてもよい。
なお、以上の面内予測符号化方法は、コンピュータを用いてプログラムとして実現することも可能である。
以上のように、面内予測符号化装置に与えられた資源量が増加した場合には、それを有効利用し、より多くの面内予測モード候補に対して面内予測を試行することが可能となる。これによって、単位時間あたりの利用資源量の最大値を維持しながら、面内予測符号化の符号化効率向上が可能となり、ハードウェアコストやソフトウェア処理量を抑えた符号化効率向上が可能となる。
なお、第2〜第4実施形態において記述したように、面内予測符号化装置に与えられた資源量そのものの代わりに、符号化画像サイズ情報、もしくは符号化フレームレート情報、もしくはピクチャの予測タイプ情報を参照してもよい。すなわち、符号化画像サイズもしくは、符号化フレームレートが小さい場合には面内予測候補数を増加させるようなしくみとすることで、単位時間あたりの利用資源量の最大値を維持しながら、面内予測符号化の符号化効率向上が可能となり、ハードウェアコストやソフトウェア処理量を抑えた符号化効率向上が可能となる。
(第6実施形態)
図17は、本発明の第6実施形態に係る面内予測符号化装置の構成を示すブロック図である。本実施形態の面内予測符号化装置150eは、面内予測モードの決定を行う際に、簡易的に面内予測符号化画像を作成する点に特徴を有している。
面内予測符号化装置150eは、図17に示すように面内予測モード候補決定部156aと、面内予測簡易実行部191と、符号化効率評価部153bと、面内予測モード決定部154bと、面内予測実行部192と、予測差分計算部152と、符号化部155とを備えている。
面内予測簡易実行部191は、面内予測モード候補指定情報170で指定された面内予測モード候補それぞれを用いて面内予測を時分割で順次実行する。このとき、面内予測簡易実行部191は、例えば図18(a)に示すように対象ブロックのすべての画素ではなく、間引きを行った一部の画素について、面内予測用参照画素群162aから各面内予測モードを用いて面内予測し、その予測画像を簡易面内予測画像193として出力する。さらに、面内予測簡易実行部191は、簡易面内予測画像193を生成する際に用いた予測モードに関する情報を、面内予測モード情報163として出力する。
符号化効率評価部153bは、簡易面内予測画像193を元に、符号化効率を計算する。例えば、簡易面内予測画像193の各画素値の絶対値和を計算し、これをもって評価値166として出力する。なお、簡易面内予測画像193以外の情報、例えば、周辺の符号化済みブロックの符号化データよりその面内予測モード情報をさらに参照して評価値166を計算するなどしてもよい。また、符号化部155において、周辺の符号化済みブロックの面内予測モードと、対象ブロックの面内予測モードとの差分を符号化するような方式を採用している場合、周辺の符号化済みブロックの面内予測モードをさらに参照するなどして評価値166を計算することが可能である。
面内予測モード決定部154bは、面内予測簡易実行部191において、時分割で順次試行される面内予測モードに対して、符号化効率評価部153bより出力される評価値166が最も小さい面内予測モードを、面内予測モード情報167として出力する。
面内予測実行部192は、面内予測モード情報167で指定された面内予測モードを用いて、面内予測用参照画素群162bから対象ブロックのすべての画素を面内予測し、その予測画像を面内予測画像164として出力する。
なお、面内予測モード候補決定部156aは、第1実施形態において説明した通りである。また、予測差分計算部152、符号化部155に関しては、背景技術において説明した通りである。
図19は、面内予測符号化装置150eにおける面内予測符号化方法を説明するフローチャートである。ただし、これは予測単位ブロックあたりの処理を示している。
まず、面内予測符号化装置に与えられた資源量num_cycleに基づいて面内予測モード候補指定情報valid_mode[i](i=0,1,・・・,8)の値を設定する処理(ステップS51〜S56)、および変数min_costに評価値166の取り得る最大値よりも大きい値を代入する処理(ステップS11)については、第1実施形態と同様である。
次に、面内予測モード情報163をmodeとして、mode=0,1,・・・,8に対して(ステップS12)、順次、面内予測モード候補指定情報valid_mode[mode]が値[0]であるか否かの判定を行う(ステップS57)。この判定の結果、面内予測モード候補指定情報valid_mode[mode]が値[0]でない場合(ステップS57でNo)、対象ブロックの一部の画素について面内予測を行い、簡易面内予測画像193であるpredImg’(mode)を生成する(ステップS58)。次に、この簡易面内予測画像predImg’(mode)に基づいて、面内予測モードmodeに対応する評価値166であるcost(mode)を計算する(ステップS59)。この評価値cost(mode)を、値min_costと比較し(ステップS16)、評価値cost(mode)の方がより小さい場合(ステップS16でYes)に、変数min_costに評価値cost(mode)を格納し(ステップS17)、変数best_modeに予測モード情報modeを格納する(ステップS18)。
また、面内予測モード候補指定情報valid_mode[mode]が値[0]である場合(ステップS57でYes)、面内予測画像predImg(mode)の生成処理以降の一連の手順(ステップS58〜18)をスキップする。
次に、簡易面内予測画像predImg’(mode)の生成処理以降の一連の手順(ステップS58〜ステップS18)がmode=0,1,・・・,8に対して実行されると、面内予測モード情報best_modeに対応する面内予測モードを用いて面内予測を行い、面内予測画像164であるpredImg(best_mode)を生成する(ステップS60)。続いて、生成した面内予測画像predImg(best_mode)と、入力画像161との予測差分画像168であるbest_diffImgを生成する(ステップS61)。次に、この予測差分画像best_diffImgと、面内予測モード情報best_modeとに対して符号化を行い、符号化画像169を生成する(ステップS20)。
なお、以上の面内予測符号化方法は、コンピュータを用いてプログラムとして実現することも可能である。
以上のように、簡易的に作成した面内予測符号化画像を用いて、面内予測モード候補の中から面内予測モードを決定しているので、より少ない資源量で面内予測符号化を行うことができる。
また、本実施形態では、面内予測簡易実行部191において、対象ブロックのすべての画素ではなく、間引きを行った一部の画素について面内予測し、その予測画像を簡易面内予測画像193として出力を行っているが、これに限られるものではない。例えば、ブロック単位の処理がパイプライン処理される等によって対象ブロックの左および上に隣接する画素がまだ復号されていない場合等には、面内予測簡易実行部191は、図18(b)に示すように復号画素195に替えて入力画素196に基づいて、対象ブロックの画素を面内予測し、その予測画像を簡易面内予測画像193として出力を行っても構わない。また、例えば対象ブロックの左に隣接する画素が入力画素で、対象ブロックの上に隣接する画素が復号画素というように、復号画素および入力画素が混ざっていても構わない。
また、上記各実施形態において、面内予測モード候補決定部は、面内予測モード候補を決定する際に、水平解像度を落として符号化する場合、フィールド単位に符号化する場合、水平および垂直解像度を落として符号化する場合、等の状況に応じて面内予測モード候補を決定しても構わない。例えば、図20(a)に示すように解像度を落とさずに符号化する場合が図20(e)に示すように面内予測モード候補が面内予測モード0〜4であるとすると、図20(b)に示すように水平解像度を落として符号化する場合に図20(f)に示すように面内予測モード候補を面内予測モード0〜2、5、7というように垂直方向の面内予測モードに偏って決定することが可能である。
また、図20(c)に示すようにフィールド単位に符号化する場合に図20(g)に示すように面内予測モード候補を面内予測モード0〜2、6、8というように水平方向の面内予測モードに偏って決定することが可能である。また、図20(d)に示すように水平および垂直解像度を落として符号化する場合に図20(h)に示すように面内予測モード候補をすべての面内予測モード0〜8というように決定することが可能である。
(第7実施形態)
図21は、本発明の第7実施形態に係る面内予測符号化装置の構成を示すブロック図である。本実施形態の面内予測符号化装置300は、面内予測を行う単位である面内予測単位(単位ブロックサイズ)におけるそれぞれの面内予測モード候補の決定を、面内予測符号化装置に与えられた資源量に基づいて切り替える点に特徴を有している。
面内予測符号化装置300は、図21に示すように4×4面内予測部301と、8×8面内予測部302と、16×16面内予測部303と、面内予測モード候補決定部304と、符号化部305とを備えている。
4×4面内予測部301、8×8面内予測部302、および16×16面内予測部303は、それぞれ第1実施形態の面内予測符号化装置150a(図1)の構成のうち符号化部155および面内予測モード候補決定部156a以外を備えている。なお、ここでは説明を省略する。
面内予測モード候補決定部304は、符号化画像サイズ情報に基づいて面内予測モード候補を決定し、4×4面内予測部301、8×8面内予測部302、および16×16面内予測部303へそれぞれ4×4面内予測モード候補指定情報、8×8面内予測モード候補指定情報、16×16面内予測モード候補指定情報を出力する。このとき、面内予測モード候補決定部304は、画像サイズ(=画像横幅値×画像縦幅値)が大きい場合には全単位ブロックサイズの予測モード候補数の総和が小さくなるよう予測モード候補数を削減する。すなわち、4×4面内予測部301、8×8面内予測部302、および16×16面内予測部303すべてで必要な総処理量を削減する。なお、N×N面内予測(Nは自然数)とは、N×N画素ブロックを予測単位とした面内予測を意味する。ここでは、画像サイズが大きい場合は、小さい単位ブロックサイズを用いた予測方式における予測モード候補数を優先的に削減する。
図22(a)〜(f)は予測モード候補指定情報で指定される予測モード候補の数の一例を示す図である。ここで、各単位ブロックサイズの予測方式に関して、「○」は全予測モードを候補とし、「△」は予測モードの一部を候補とし、「×」は予測を行わないことを示している。また、画像サイズの「大」「中」「小」の分類については、所定の閾値を2つ用いて分類することができる。
例えば、図22(a)に示す例では、画像サイズが「大」である場合に、4×4面内予測を行わない。また、図22(b)に示す例では、画像サイズが「大」である場合に、4×4面内予測を行わず、さらに8×8面内予測の候補を減らし、画像サイズが「中」である場合に、4×4面内予測の候補を減らしている。図22(a)〜(f)に示す例は、図22(a)から図22(f)へ順に、全単位ブロックサイズの予測モード候補数の総和が少なくなる例を示している。また、図22(d)に示す例では、画像サイズ「中」→「大」で、8×8面内予測、16×16面内予測で共に予測モード候補を削減しているが、8×8面内予測の候補をより多く削減することで効率的な削減が可能となる。
また、全単位ブロックサイズの予測モード候補数の総和は、画像サイズに対し単調減少するように、画像サイズが「大」であるときに少なく、画像サイズが「小」であるときに多くなるように設定される。
符号化部305は、入力される4×4面内予測モード情報および4×4予測差分画像、8×8面内予測モード情報および8×8予測差分画像、または16×16面内予測モード情報および16×16予測差分画像を符号化処理し、符号化画像を出力する。符号化処理は、予測差分画像に関しては、DCT変換などの周波数変換を行った後変換係数を量子化し、その値を可変長符号化あるいは算術符号化等によって符号化を行う。また、面内予測モード情報に関しては可変長符号化あるいは算術符号化等によって符号化を行う。
以上のように、画像サイズが大きい場合には全単位ブロックサイズの予測モード候補数の総和が小さくなるよう予測モード候補数を削減しているので、単位時間あたりの利用資源量の最大値を維持しながら、面内予測符号化の符号化効率向上が可能となり、ハードウェアコストやソフトウェア処理量を抑えた符号化効率向上が可能となる。
なお、上記説明では、面内予測モード候補決定部304は、画像サイズが大きい場合に全単位ブロックサイズの予測モード候補数の総和が小さくなるよう予測モード候補数を削減しているが、これに限られるものではない。例えば、面内予測モード候補決定部304は、画像サイズが大きい場合に全単位ブロックサイズの予測モード候補数の総和が小さくなるよう予測モード候補数を削減するのに加えて、画像サイズが小さい場合は、大きい単位ブロックサイズを用いた予測方式における予測モード候補数を削減するようにしても構わない。
図23(a)〜(d)はこの場合の予測モード候補指定情報で指定される予測モード候補の数の一例を示す図である。ここで、図22と同様に各単位ブロックサイズの予測方式に関して、「○」は全予測モードを候補とし、「△」は予測モードの一部を候補とし、「×」は予測を行わないことを示している。また、画像サイズの「大」「中」「小」の分類については、所定の閾値を2つ用いて分類することができる。
例えば、図23(a)に示す例では、図22(e)に示す例を元にしており、画像サイズが「中」である場合に、8×8面内予測の候補を増やして16×16面内予測の候補を減らし、画像サイズが「小」である場合に、4×4面内予測の候補を増やして16×16面内予測の候補を減らしている。同様に、図23(b)に示す例では、図22(e)に示す例を元にしており、図23(c)、(d)に示す例では、図22(f)に示す例を元にしている。
ここで、全単位ブロックサイズの予測モード候補数の総和は画像サイズに対し単調減少するように設定するため、大きい単位ブロックサイズの予測モード候補数を削減する代わりに、小さい単位ブロックサイズの予測モード候補数をさらに増加させることが可能となる。画像サイズが小さい場合は小さい単位ブロックサイズの予測の方が、予測効率が高い傾向にあるため、限られた処理量でより高画質な面内予測符号化を行うことが可能となる。
なお、上記各実施形態において、例えばバッテリ駆動時等では、装置の消費電力を減らすことで長時間駆動を実現できる。消費電力を減らすための方法として、装置の演算量を減らす方法が考えられる。これは、「与えられた資源量」を減らすことに相当する。すなわち、各実施の形態において、消費電力を減らす目的で、「与えられた資源量」を削減してもよい。
また、上記各実施形態において、面内予測モード候補決定部は、面内予測符号化装置に与えられた資源量に応じて、面内予測モード候補の数を「0」として、その面内予測方式での予測を行わず、他の面内予測方式、または面間予測方式等を用いて符号化しても構わない。
また、上記各実施形態において、符号化部は、さらに符号化効率の評価を行って、他の面内予測方式、または面間予測方式等を用いて符号化しても構わない。
(第8実施形態)
さらに、上記各実施形態で示した面内予測符号化方法の構成を実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記各実施形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
図24は、本発明の第8実施形態として、上記第1実施形態から第7実施形態の面内予測符号化方法を格納したフレキシブルディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
図24(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図24(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクFD上に割り当てられた領域に、上記プログラムとしての面内予測符号化方法が記録されている。
また、図24(c)は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムとしての面内予測符号化方法をフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記面内予測符号化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ハードディスク、CD−ROM、メモリカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
(第9実施形態)
本発明の第9実施形態として、面内予測符号化装置、面内予測符号化方法、および面内予測符号化プログラムの応用例と、それを用いたシステムとを図25〜図28を用いて説明する。
図25は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107〜ex110が設置されている。
このコンテンツ供給システムex100は、例えば、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex107〜ex110を介して、コンピュータex111、PDA(personal digital assistant)ex112、カメラex113、携帯電話ex114、カメラ付きの携帯電話ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図25のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex107〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、PDC(Personal Digital Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple
Access)方式、若しくはGSM(Global System for Mobile Communications)方式の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
また、ストリーミングサーバex103は、カメラex113から基地局ex109、電話網ex104を通じて接続されており、カメラex113を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラex116で撮影した動画データはコンピュータex111を介してストリーミングサーバex103に送信されてもよい。カメラex116はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex116で行ってもコンピュータex111で行ってモードちらでもよい。また、符号化処理はコンピュータex111やカメラex116が有するLSIex117において処理することになる。なお、画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な記録媒体である何らかの蓄積メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込んでもよい。さらに、カメラ付きの携帯電話ex115で動画データを送信してもよい。このときの動画データは携帯電話ex115が有するLSIで符号化処理されたデータである。
このコンテンツ供給システムex100では、ユーザがカメラex113、カメラex116等で撮影しているコンテンツ(例えば、音楽ライブを撮影した映像等)を符号化処理してストリーミングサーバex103に送信する一方で、ストリーミングサーバex103は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114等がある。このようにすることでコンテンツ供給システムex100は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。なお、コンテンツの符号化処理に際しては、上記実施形態の面内予測符号化装置、面内予測符号化方法、および面内予測符号化プログラムを用いても良い。例えば、コンピュータex111、PDAex112、カメラex113、携帯電話ex114等は、上記実施形態で示した面内予測符号化装置および面内予測符号化プログラムを備えていてもよい。
一例として携帯電話について説明する。
図26は、上記実施形態のメディアデータ表示装置を用いた携帯電話ex115を示す図である。携帯電話ex115は、基地局ex110との間で電波を送受信するためのアンテナex201、CCDカメラ等の映像、静止画を撮ることが可能なカメラ部ex203、カメラ部ex203で撮影した映像、アンテナex201で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex202、操作キーex204群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex208、音声入力をするためのマイク等の音声入力部ex205、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex207、携帯電話ex115に記録メディアex207を装着可能とするためのスロット部ex206を有している。記録メディアex207はSDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(Electrically Erasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものである。
さらに、携帯電話ex115について図27を用いて説明する。携帯電話ex115は表示部ex202および操作キーex204を備えた本体部の各部を統括的に制御するようになされた主制御部ex311に対して、電源回路部ex310、操作入力制御部ex304、画像符号化部ex312、カメラインターフェース部ex303、LCD(Liquid Crystal Display)制御部ex302、画像復号化部ex309、多重分離部ex308、記録再生部ex307、変復調回路部ex306および音声処理部ex305が同期バスex313を介して互いに接続されている。
電源回路部ex310は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex115を動作可能な状態に起動する。
携帯電話ex115は、CPU、ROMおよびRAM等でなる主制御部ex311の制御に基づいて、音声通話モード時に音声入力部ex205で集音した音声信号を音声処理部ex305によってディジタル音声データに変換し、これを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理および周波数変換処理を施した後にアンテナex201を介して送信する。また携帯電話ex115は、音声通話モード時にアンテナex201で受信した受信信号を増幅して周波数変換処理およびアナログディジタル変換処理を施し、変復調回路部ex306でスペクトラム逆拡散処理し、音声処理部ex305によってアナログ音声信号に変換した後、これを音声出力部ex208を介して出力する。
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex204の操作によって入力された電子メールのテキストデータは操作入力制御部ex304を介して主制御部ex311に送出される。主制御部ex311は、テキストデータを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理および周波数変換処理を施した後にアンテナex201を介して基地局ex110へ送信する。
データ通信モード時に画像データを送信する場合、カメラ部ex203で撮像された画像データをカメラインターフェース部ex303を介して画像符号化部ex312に供給する。また、画像データを送信しない場合には、カメラ部ex203で撮像した画像データをカメラインターフェース部ex303およびLCD制御部ex302を介して表示部ex202に直接表示することも可能である。
画像符号化部ex312は、カメラ部ex203から供給された画像データを圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex308に送出する。また、このとき同時に携帯電話ex115は、カメラ部ex203で撮像中に音声入力部ex205で集音した音声を音声処理部ex305を介してディジタルの音声データとして多重分離部ex308に送出する。
なお、画像符号化部ex312は、上記実施形態の面内予測符号化装置としての機能を果たすものであっても良い。
多重分離部ex308は、画像符号化部ex312から供給された符号化画像データと音声処理部ex305から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理および周波数変換処理を施した後にアンテナex201を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex201を介して基地局ex110から受信した受信信号を変復調回路部ex306でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex308に送出する。
また、アンテナex201を介して受信された多重化データを復号化するには、多重分離部ex308は、多重化データを分離することにより画像データの符号化ビットストリームと音声データの符号化ビットストリームとに分け、同期バスex313を介して当該符号化画像データを画像復号化部ex309に供給すると共に当該音声データを音声処理部ex305に供給する。
次に、画像復号化部ex309は、画像データの符号化ビットストリームを復号することにより再生動画像データを生成し、これを、LCD制御部ex302を介して表示部ex202に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。
このとき同時に音声処理部ex305は、音声データをアナログ音声信号に変換した後、これを音声出力部ex208に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図28に示すようにディジタル放送用システムにも上記実施形態の面内予測符号化装置、面内予測符号化方法、および面内予測符号化プログラムを組み込むことができる。具体的には、放送局ex409では映像情報を放送用エンコーダex430およびカメラex430で符号化処理し、生成された符号化ビットストリームが電波を介して通信または放送衛星ex410に伝送される。これを受けた放送衛星ex410は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex406で受信し、テレビ(受信機)ex401またはセットトップボックス(STB)ex407などの装置により符号化ビットストリームを復号化してこれを再生する。また、アンテナex411を有する車ex412で放送衛星ex410からまたは基地局ex107等から信号を受信し、車ex412が有するカーナビゲーションex413等の表示装置に動画を再生することも可能である。ここで、放送用エンコーダex430およびカメラex430などの装置が上記実施形態の面内予測符号化装置を備えていてもよい。また、上記実施形態の面内予測符号化方法を用いるものであってもよい。さらに、上記実施形態の面内予測符号化プログラムを備えていてもよい。
さらに、画像信号を符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクex421に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex420がある。さらにSDカードex422に記録することもできる。また、レコーダex420の他に、コンピュータex403やカーナビゲーションex413に、前記記録媒体に画像信号を符号化して記録する機能を持たせることも可能である。なお、DVDディスクex421やSDカードex422などに記録する際に、画像信号を上記実施形態の面内予測符号化装置を介して記録することも可能である。
カーナビゲーションex413の構成は例えば図27に示す構成のうち、カメラ部ex203とカメラインターフェース部ex303を除いた構成が考えられ、同様なことがレコーダex420やコンピュータex111等でも考えられる。
また、上記携帯電話ex114等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式が考えられる。
このように、上記実施形態の面内予測符号化装置、面内予測符号化方法、および面内予測符号化プログラムを上述したいずれの機器・システムにも用いることが可能であり、上記実施形態で説明した効果を得ることができる。
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
また、各実施形態の各機能ブロックは典型的には集積回路であるLSIとして実現される。このLSIは1チップ化されても良いし、複数チップ化されても良い。(例えばメモリ以外の機能ブロックが1チップ化されていても良い。)ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。