(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024014393
(43)【公開日】2024-02-01
(54)【発明の名称】画像符号化装置及び画像符号化方法
(51)【国際特許分類】
H04N 19/115 20140101AFI20240125BHJP
H04N 19/14 20140101ALI20240125BHJP
H04N 19/172 20140101ALI20240125BHJP
H04N 19/142 20140101ALI20240125BHJP
【FI】
H04N19/115
H04N19/14
H04N19/172
H04N19/142
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022117181
(22)【出願日】2022-07-22
(11)【特許番号】
(45)【特許公報発行日】2023-10-04
(71)【出願人】
【識別番号】591230295
【氏名又は名称】NTTイノベーティブデバイス株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【弁理士】
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(74)【代理人】
【識別番号】100098327
【弁理士】
【氏名又は名称】高松 俊雄
(72)【発明者】
【氏名】田垣 学
(72)【発明者】
【氏名】忠石 宏一
(72)【発明者】
【氏名】池田 充郎
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159PP05
5C159PP06
5C159PP07
5C159TA23
5C159TA60
5C159TC02
5C159TC03
5C159TC14
5C159TD04
5C159TD05
5C159TD06
(57)【要約】
【課題】Pピクチャ及びBピクチャの複雑さ指標または推定符号量の演算量を低減する。
【解決手段】画像符号化装置であって、入力画像のIピクチャの複雑さ指標を、当該Iピクチャの分散値に基づいて算出する第1の算出部20と、前記入力画像のPピクチャ及びBピクチャの複雑さ指標を、Iピクチャの分散値と、Iピクチャのフレーム間差分とに基づいて算出する第2の算出部30と、Iピクチャ、Pピクチャ及びBピクチャの各複雑さ指標に基づいて、前記入力画像の符号化における符号量を制御する制御部40と、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
入力画像のIピクチャの複雑さ指標を、当該Iピクチャの分散値に基づいて算出する第1の算出部と、
前記入力画像のPピクチャ及びBピクチャの複雑さ指標を、Iピクチャの分散値と、Iピクチャのフレーム間差分とに基づいて算出する第2の算出部と、
Iピクチャ、Pピクチャ及びBピクチャの各複雑さ指標に基づいて、前記入力画像の符号化における符号量を制御する制御部と、を有する
画像符号化装置。
【請求項2】
前記第2の算出部は、Iピクチャの前記分散値と、Iピクチャの前記フレーム間差分との積に基づいて、Pピクチャ及びBピクチャの複雑さ指標を算出する
請求項1記載の画像符号化装置。
【請求項3】
Iピクチャの前記分散値は、Iピクチャのフレーム内の画素値の平均と、各画素の画素値との差分の絶対値の総和に基づいて算出され、
Iピクチャの前記フレーム間差分は、前記Iピクチャのフレームと、前記フレームの直前に入力されたフレームとの対応する各画素の画素値の差分の絶対値の総和に基づいて算出される
請求項1に記載の画像符号化装置。
【請求項4】
前記入力画像のシーンチェンジが検出された場合、シーンチェンジ直後のピクチャグループの各フレームに対して、前記第1の算出部は、Iピクチャの前記複雑さ指標を算出し、前記第2の算出部は、Pピクチャ及びBピクチャの前記複雑さ指標を算出し、
前記シーンチェンジが検出されない場合、前記第1の算出部は、Iピクチャの別の複雑さ指標を算出し、前記第2の算出部は、Pピクチャ及びBピクチャの別の複雑さ指標を算出する
請求項1に記載の画像符号化装置。
【請求項5】
前記第2の算出部は、Bピクチャの複雑さ指標を、BピクチャのTemporal ID毎に算出する
請求項1記載の画像符号化装置。
【請求項6】
前記入力画像のシーンチェンジが検出された場合、前記シーンチェンジの後のPピクチャのフレームのピクチャタイプをIピクチャに変更する前処理部を備える
請求項1記載の画像符号化装置。
【請求項7】
入力画像のIピクチャの推定符号量を、当該Iピクチャの分散値に基づいて算出する第1の符号量算出部と、
前記入力画像のPピクチャ及びBピクチャの推定符号量を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出する第2の符号量算出部と、
Iピクチャ、Pピクチャ及びBピクチャの各推定符号量に基づいて、前記入力画像の符号化における符号量を制御する制御部と、を有する
画像符号化装置。
【請求項8】
画像符号化装置が行う画像符号化方法であって、
入力画像のIピクチャの複雑さ指標を、当該Iピクチャの分散値に基づいて算出する第1の算出ステップと、
前記入力画像のPピクチャ及びBピクチャの複雑さ指標を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出する第2の算出ステップと、
Iピクチャ、Pピクチャ及びBピクチャの各複雑さ指標に基づいて、前記入力画像の符号化における符号量を制御する制御ステップと、を行う
画像符号化方法。
【請求項9】
画像符号化装置が行う画像符号化方法であって、
入力画像のIピクチャの推定符号量を、当該Iピクチャの分散値に基づいて算出する第1の算出ステップと、
前記入力画像のPピクチャ及びBピクチャの推定符号量を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出する第2の算出ステップと、
Iピクチャ、Pピクチャ及びBピクチャの各推定符号量に基づいて、前記入力画像の符号化における符号量を制御する制御ステップと、を行う
画像符号化方法。
【請求項10】
請求項1または7に記載の画像符号化装置として、コンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像符号化装置及び画像符号化方法に関する。
【背景技術】
【0002】
画像符号化において、符号量制御は記録媒体への書き込みや画像伝送を行う上で重要な役割を果たしている。高画質な画像符号化を実現するために、データ量が定められた記憶媒体への書き込みや伝送速度が定められた通信を行う上で、符号量制御の最適化を図る必要がある。
【0003】
地上デジタル放送で採用されているMPEG2 TM5(Test Model 5)等の符号化制御方法においては、I、P、Bのピクチャタイプ毎に、そのピクチャの発生符号量と平均量子化スケールとの積である複雑さ指標を、そのピクチャの符号化終了後に求め、その複雑さ指標に基づいて次のピクチャの符号量の割り当てが行われる。更に、その割り当てに基づいて次のピクチャを符号化するための量子化スケールが決定され、その量子化スケールによって符号量が制御される。
【0004】
しかし、TM5では、過去のピクチャの情報をもとに発生符号量を見積もるフィードバック方式の符号量制御である。このため、TM5では、シーンチェンジ等があった場合にその発生符号量の見積もり精度が低下し、符号量の割り当てや量子化スケールの決定が不正確となり、適確な符号量制御を行えないという問題がある。
【0005】
これに対し、符号化を行うピクチャの情報を用いて発生符号量を推定するフィードフォワード方式の符号量制御がある(特許文献1~3)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002-247584号公報
【特許文献2】特開平11-215501号公報
【特許文献3】特開2004-266640号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、符号化対象フレームの符号量予測を、過去のフレームでなく符号化対象のフレームに関する情報を用いて、各フレームの複雑さ指標を推定する。特許文献1では、シーンチェンジ後のPピクチャ及びBピクチャの複雑さ指標を計算するために、Pピクチャ及びBピクチャのそれぞれの動きベクトル探索結果より得られる予測誤差値が必要となる。これらの予測誤差値は、符号化対象フレームの入力画像とその参照フレームの入力画像との比較から求められるため、演算量が大きくなる。さらに、複雑さ指標を算出する推定式は2次の計算を含むため、これによっても演算量が大きくなる。また、予測誤差値を先行して求めるフレーム数が多いほど、符号化対象フレームと参照フレームを保持するためのメモリ量が増えるため、消費電力とコストが増加する。
【0008】
特許文献2では、入力画像のマクロブロック毎に平均値分離残差及び動き予測残差を演算し、演算した平均値分離残差及び動き予測残差のそれぞれから基準発生ビット量の双方を予測する。特許文献2では、入力画像のマクロブロック毎に、平均値分離残差による基準発生ビット量だけでなく、動き予測残差による基準発生ビット量も計算する。動き予測残差は、P、Bピクチャを符号化するときに行われる動き予測で一致した前のフレームのマクロブロックと、現フレームのマクロブロックとの画素値の差分和として計算される。従って、特許文献2も、特許文献1の予測誤差値と同様に演算量が大きくなり、メモリ量が増えてしまう。
【0009】
特許文献3では、符号化する入力画像の特徴量と、符号化で得られた複雑度とを組とした実測データを用いて複雑度を求める推定式を更新する。特許文献3でも、Pピクチャ及びBピクチャの発生符号量の推定に、動き補償結果の予測誤差値を利用し、この予測誤差値を求めるために、符号化対象フレームの画像とその参照フレームの画像との間で行われた動き探索の予測誤差値を計算する必要がある。従って、特許文献3も、多くの演算量及びメモリ量を必要とする。
【0010】
本発明は上記の課題に鑑みてなされたものであって、本発明は、Pピクチャ及びBピクチャの複雑さ指標または推定符号量の演算量を低減することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明の一態様は、画像符号化装置であって、入力画像のIピクチャの複雑さ指標を、当該Iピクチャの分散値に基づいて算出する第1の算出部と、前記入力画像のPピクチャ及びBピクチャの複雑さ指標を、Iピクチャの分散値と、Iピクチャのフレーム間差分とに基づいて算出する第2の算出部と、Iピクチャ、Pピクチャ及びBピクチャの各複雑さ指標に基づいて、前記入力画像の符号化における符号量を制御する制御部と、を有する。
【0012】
本発明の一態様は、画像符号化装置であって、入力画像のIピクチャの推定符号量を、当該Iピクチャの分散値に基づいて算出する第1の符号量算出部と、前記入力画像のPピクチャ及びBピクチャの推定符号量を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出する第2の符号量算出部と、Iピクチャ、Pピクチャ及びBピクチャの各推定符号量に基づいて、前記入力画像の符号化における符号量を制御する制御部と、を有する。
【0013】
本発明の一態様は、画像符号化装置が行う画像符号化方法であって、入力画像のIピクチャの複雑さ指標を、当該Iピクチャの分散値に基づいて算出する第1の算出ステップと、前記入力画像のPピクチャ及びBピクチャの複雑さ指標を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出する第2の算出ステップと、Iピクチャ、Pピクチャ及びBピクチャの各複雑さ指標に基づいて、前記入力画像の符号化における符号量を制御する制御ステップと、を行う。
【0014】
本発明の一態様は、画像符号化装置が行う画像符号化方法であって、入力画像のIピクチャの推定符号量を、当該Iピクチャの分散値に基づいて算出する第1の算出ステップと、前記入力画像のPピクチャ及びBピクチャの推定符号量を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出する第2の算出ステップと、Iピクチャ、Pピクチャ及びBピクチャの各推定符号量に基づいて、前記入力画像の符号化における符号量を制御する制御ステップと、を行う。
【0015】
本発明の一態様は、上記画像符号化装置として、コンピュータを機能させるプログラムである。
【発明の効果】
【0016】
本発明によれば、Pピクチャ及びBピクチャの複雑さ指標または推定符号量の演算量を低減することができる。
【図面の簡単な説明】
【0017】
【
図2】
図2は、Iピクチャのフレーム間差分を説明する図である。
【
図3】
図3は、Iピクチャの分散値、Iピクチャのフレーム間差分、及びPピクチャ或いはBピクチャの複雑さ指標の関係を示すイメージである。
【
図4】
図4は、Iピクチャのフレーム間差分に対するBピクチャの複雑さ指標の変化を示す図である。
【
図5】
図5は、シーンチェンジが発生しない場合の画像符号化装置の動作を説明するための図である。
【
図6】
図6は、シーンチェンジが発生した場合の画像符号化装置の動作を説明するための図である。
【
図7】
図7は、シーン1のシーンチェンジ直後のフレーム間差分の関係を説明する図である。
【
図8】
図8は、シーンチェンジがシーン1より1フレーム遅れたシーン2を説明する図である。
【
図9】
図9は、シーンチェンジがシーン1より2フレーム遅れたシーン3を説明する図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態を、図面を用いて説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
【0019】
図1は、本発明の実施形態の画像符号化装置の構成図である。図示する画像符号化装置は、入力部60と、前処理部10と、Iピクチャ複雑さ指標算出部20(第1の算出部)と、P,Bピクチャ複雑さ指標算出部30(第2の算出部)と、符号量制御部40と、符号化部50とを備える。画像符号化装置には、入力画像が入力される。入力画像は、一連の複数のフレーム(画像フレーム)を含む動画または映像である。
【0020】
入力部60は、入力された入力画像の各フレームに、Iピクチャ、Pピクチャ及びBピクチャのいずれかのピクチャタイプを設定し、ピクチャタイプを設定したフレームを前処理部10に出力する。Iピクチャは、当該フレーム内の情報のみで符号化されるピクチャである。Pピクチャは、符号化済の直前のIピクチャ又はPピクチャを参照して予測符号化されるピクチャである。Pピクチャは、連続するピクチャの中で前方向のみに動き予測符号化される。Bピクチャは、2つの隣接する符号済のIピクチャ又はPピクチャ又はBピクチャから予測して符号化されるピクチャである。Bピクチャは、連続する前後方向のピクチャを用いて動き予測される。なお、フレームは、ピクチャと記載される場合がある。
【0021】
入力部60は、入力される各フレームと、その直前のフレームとのフレーム間差分(フレーム間差分値)を算出し、当該フレーム間差分を用いて、シーンチェンジを検出してもよい。例えば、入力部60は、フレーム間差分が所定の閾値より大きい場合は、シーンチェンジが発生したと判定し、フレーム間差分が所定の閾値以下の場合は、シーンチェンジが発生していないと判定する。フレーム間差分は、判定対象のフレームと、そのフレームの直前に入力されたフレームとの対応する各画素の画素値の差分の絶対値の総和である。入力部60は、シーンチェンジの発生を検出すると、検知信号を前処理部10に出力する。画素値には、例えば輝度などを用いることができる。
【0022】
前処理部10は、ピクチャタイプが設定されたフレームが入力部60から入力されると、ピクチャタイプに基づいてフレームの順番を入れ替えて、符号化部50へ供給する。すなわち、前処理部10は、入力部60から出力されたフレームを符号化順に並び替える。
【0023】
前処理部10は、入力画像のシーンチェンジが検出された場合(例えば、入力部60から検知信号が入力された場合)、前記シーンチェンジの後のPピクチャのフレームのピクチャタイプをIピクチャに変更してもよい。具体的には、前処理部10は、ピクチャヘッダ内の符号化タイプを変更することで、ピクチャタイプを変更することができる。これにより、ピクチャヘッダ、符号化方法など、すべて変更後のピクチャ用に切替わる。なお、ピクチャヘッダは、符号化規格AVC(H.264)またはHEVC(H.265)の場合、「PPS(ピクチャパラメータセット)」を指す。
【0024】
前処理部10は、並び替えたフレームを符号化部50へ供給する際に、Iピクチャの分散値と、Iピクチャのフレーム間差分とを算出する。
【0025】
前処理部10は、Iピクチャのフレーム内の画素値(例えば輝度など)の平均と、各画素の画素値との差分の絶対値の総和に基づいて、Iピクチャの分散値を算出してもよい。分散値は、1フレーム内における画素値のばらつきを示す。また、分散値は、画像の絵柄の空間方向の複雑度を示しているともいえる。
【0026】
Iピクチャの分散値Xiは、例えば、以下の式で示すことができる。座標(x、y)の画素値をI(x、y)、ピクチャサイズをM×N画素、対象とするIピクチャの平均画素値をAVEとする。すなわち、Iピクチャの分散値Xiは、M×N画素ブロック内の画素値の平均値とそのブロック内の各画素の画素値との差分の絶対値の総和に相当する。
【0027】
【0028】
なお、上記の分散値の算出式は一例であって、上記の式に限定されない。画素値のばらつきを表す指標であれば、上記の以外の式を用いて算出される分散値を適用することもできる。例えば、上記式の絶対値表現は、二乗表現でも構わない。
【0029】
本実施形態では、PピクチャおよびBピクチャの複雑さ指標の算出に、Iピクチャの分散値を使用する。従って、本実施形態では、PピクチャおよびBピクチャの分散値を算出する必要はない。
【0030】
前処理部10は、Iピクチャのフレームと、当該フレームの直前に入力されたフレームとの対応する各画素の画素値の差分の絶対値の総和に基づいて、Iピクチャのフレーム間差分を算出してもよい。フレーム間差分は、対象とするIピクチャのフレームと、入力順で直前の隣接するフレームとの間の画素値のずれの総和に相当する。フレーム間差分は、入力画像の入力順で隣接するフレーム間の差分である。フレーム間差分は、画像の時間方向の変化量を表している。
【0031】
図2は、Iピクチャのフレーム間差分Yiを説明する図である。ここでは、フレームは、TOPフレームとBottomフレームとを有する。
図2では、Iピクチャのt番目のTOPフレーム201およびBottomフレーム202と、それより1つ前のいずれかのピクチャのt-1番目のTOPフレーム211およびBottomフレーム212をそれぞれ示している。
【0032】
t番目のTOPフレーム201の画素値をTOP:I(t)と、t番目のBottomフレーム202の画素値をBottom:I(t)と示す。t-1番目のTOPフレーム211の画素値をTOP:I(t-1)と、t-1番目のBottomフレーム212の画素値をBottom:I(t-1)と示す。各フレームの任意の画素は、座標(x、y)と示す。
【0033】
Iピクチャのフレーム間差分Yiは、Iピクチャのフレームと、その直前のフレームとの間の対応する各画素の画素値の差分の絶対値の総和である。任意の画素におけるフレーム間差分Dframe、及びフレーム内で集計したフレーム間差分Yiを以下の式で示す。
【0034】
各画素のフレーム間差分: Dframe=|I(x,y,t)-I(x,y,t-1)|
フレーム間差分の合計 : Yi=ΣDframe
I(x、y、t)は、符号化対象のt番目のIピクチャのフレームの任意の画素点(x、y)の画素値である。I(x、y、t-1)は、t番目のIピクチャの1つ前のt-1番目のフレームの任意の画素点(x、y)の画素値である。
【0035】
ここでは、フレーム間差分をフレーム単位で合計したが、これに限定されず、例えば、マクロブロック単位、フレームのライン方向(水平方向)単位等、種々の単位で集計したものもフレーム間差分Yiとして使用してもよい。
【0036】
このようなフレーム間差分Yiは、符号化対象のIピクチャのフレームと、その直前のフレームとの対応する各画素の画素値の差分の絶対値和を計算するだけなので、特許文献1のような動き予測誤差の計算に比べて遥かに簡易に計算できる。
【0037】
図1に戻り、Iピクチャ複雑さ指標算出部20は、前処理部10から出力されるIピクチャの分散値Xiに基づいて、Iピクチャ複雑さ指標を算出し、符号量制御部40に出力する。Iピクチャ複雑さ指標は、典型的には、Iピクチャの推定符号量と平均量子化スケールとの積で算出できる。このため、Iピクチャ複雑さ指標は、Iピクチャ推定符号量に強く関連付けられる。
【0038】
P,Bピクチャ複雑さ指標算出部30は、前処理部10から出力されるIピクチャの分散値と、前記Iピクチャのフレーム間差分とに基づいてPピクチャの複雑さ指標及びBピクチャの複雑さ指標を算出し、符号量制御部40に出力する。本実施形態では、P,Bピクチャ複雑さ指標算出部30は、Iピクチャの分散値と、Iピクチャのフレーム間差分との積に基づいて、Pピクチャ及びBピクチャの複雑さ指標を算出する。
【0039】
Pピクチャ複雑さ指標は、典型的には、Pピクチャ推定符号量と平均量子化スケールとの積で表せるため、Pピクチャ複雑さ指標は、Pピクチャ推定符号量に強く関連付けられる。また、Bピクチャ複雑さ指標は、典型的には、Bピクチャ推定符号量と平均量子化スケールとの積で表せるため、Bピクチャ複雑さ指標は、Bピクチャ推定符号量に強く関連付けられる。
【0040】
符号量制御部40は、Iピクチャ、Pピクチャ及びBピクチャの各複雑さ指標に基づいて、入力画像の符号化における符号量を制御する。具体的には、符号量制御部40は、Iピクチャ複雑さ指標算出部20およびP,Bピクチャ複雑さ指標算出部30から出力される各ピクチャの複雑さ指標を用いて各ピクチャの推定符号量を算出し、推定符号量に基づいて調整した量子化スケールを決定して符号化部50の量子化部53に出力する。なお、符号量制御部40は、各複雑さ指標を平均量子化スケールで割って、推定符号量を算出する。
【0041】
符号化部50は、入力画像を符号化する。ここでは、符号化部50は、量子化部53に設定された量子化スケールに基づいて、前処理部10から供給された入力画像の各フレーム符号化する。符号化部50における符号化処理方法は、量子化スケールが制御できる符号化方法であれば、どのような符号化方法でもよい。このような符号化方法として、例えば、MPEG2、H.264/AVC、H.265/HEVC等が適用可能である。
【0042】
図示する符号化部50は、動き補償予測誤差算出部51と、DCT部52と、量子化部53と、可変長符号化部54と、逆量子化部55と、逆DCT部56とを備える。
【0043】
Iピクチャ複雑さ指標算出部20及びP,Bピクチャ複雑さ指標算出部30が、精度の高い複雑さ指標を推定できれば、それを基に適切な量子化スケールで量子化を行うことができるため、映像ストリーム全体の発生符号量を目標符号量により近づけることができる。
【0044】
次に、各ピクチャの複雑さ指標の算出方法について、具体的に説明する。
【0045】
Iピクチャ複雑さ指標算出部20は、シーンチェンジ直後にIピクチャを符号化する場合、当該Iピクチャの分散値Xiを用いて、以下の式(1)に従ってIピクチャの複雑さ指標を計算する。αi、βiは、統計データから近似的に決定した係数(固定値)である。
【0046】
Iピクチャの複雑さ指標=αi×分散値Xi+βi 式(1)
P,Bピクチャ複雑さ指標算出部30は、PピクチャおよびBピクチャの複雑さ指標を、直前のIピクチャの分散値Xiと、当該Iピクチャのフレーム間差分Yiとを用いて、近似推定する。直前のIピクチャは、対象とするPピクチャまたはBピクチャの符号化順で直前のIピクチャを意味する。具体的には、P,Bピクチャ複雑さ指標算出部30は、シーンチェンジ直後にPピクチャを符号化する場合には、当該Pピクチャの直前のIピクチャの分散値Xiと、当該Iピクチャのフレーム間差分Yiとを用い、以下の式(2)に従って、Pピクチャの複雑さ指標を計算する。αp、βpは、統計データから近似的に決定した係数(固定値)である。
【0047】
Pピクチャの複雑さ指標=αp×分散値Xi×フレーム間差分Yi+βp 式(2)
P,Bピクチャ複雑さ指標算出部30は、シーンチェンジ直後にBピクチャを符号化する場合には、当該Bピクチャの直前のIピクチャの分散値Xiと、そのIピクチャのフレーム間差分Yiとを用い、以下の式(3)に従って、Bピクチャの複雑さ指標を計算する。αb、βbは、統計データから近似的に決定した係数(固定値)である。
【0048】
Bピクチャの複雑さ指標=αb×分散値Xi×フレーム間差分Yi+βb 式(3)
なお、式(1)、(2)、(3)のαi、αp、αbは、それぞれ異なる値であっても、同じ値であってもよい。同様に、式(1)、(2)、(3)のβi、βp、βbは、それぞれ異なる値であっても、同じ値であってもよい。
【0049】
なお、P,Bピクチャ複雑さ指標算出部30は、Bピクチャの複雑さ指標を、BピクチャのTemporal ID毎に算出してもよい。GOP(Group Of Picture)構造において、フレーム間の参照関係を階層構造で表した場合、縦方向の階層がTemporal ID(B0、B1、B2)となる。Temporal IDは、GOP構造におけるBピクチャのフレームの重要度を示すものである。GOPは、Iピクチャを含む複数フレームのグループである。階層順は、B0<B1<B2である。階層の低いピクチャ(例えばB0)程、重要度は高く、複雑さ指標も大きくなる傾向にある。逆に階層の高いピクチャ(例えばB2)は、重要度は低く、複雑さ指標も小さくなる傾向にある。
【0050】
P,Bピクチャ複雑さ指標算出部30は、Bピクチャの複雑さ指標を、BピクチャのTemporal ID毎に算出する場合、以下の式(4)に従って、Temporal IDがBnのBピクチャの複雑さ指標を計算する。nは、0,1,2のいずれかである。
【0051】
Bピクチャの複雑さ指標=αbn×分散値Xi×フレーム間差分Yi+βbn 式(4)
αbn、βbnは、Temporal ID毎に統計データから近似的に決定した係数(固定値)である。
【0052】
図3に示すグラフは、上記のPピクチャまたはBピクチャの複雑さ指標の式(2)または式(3)における、Iピクチャの分散値Xi、Iピクチャのフレーム間差分Yi、及びPピクチャ或いはBピクチャの複雑さ指標の関係を示すイメージである。
【0053】
黒点301が各ピクチャの実測値で、斜平面302が式(2)または式(3)を示したものである。なお、式(2)、(3)は、統計データから経験的に発見し、求められたものである。Iピクチャの複雑さ指標は、
図3では斜平面302の下の太線303で示され、Iピクチャの分散値Xiに従って(比例して)増加している。PピクチャまたはBピクチャの複雑さ指標は、ここでは斜平面302で表現し、Iピクチャの分散値Xiに従って増加し、また、Iピクチャのフレーム間差分Yiに従って増加している。
【0054】
なお、
図3では、式(2)、(3)の2つのパラメータ(分散値Xi、フレーム間差分Yi)による複雑さ指標を斜平面302で示しているが、これは説明の都合上平面で示したものである。
【0055】
図4は、Iピクチャのフレーム間差分に対するBピクチャの複雑さ指標の変化の様子を示す図である。
図4の横軸は、Iピクチャのフレーム間差分の値である。縦軸は、GOP内のIピクチャの複雑さ指標を100%としたときの、当該GOP内のBピクチャの平均の複雑さ指標の割合を示す。図示する例では、Temporal ID毎(B0、B1、B2)にBピクチャの複雑さ指標の平均値を算出し、Iピクチャの複雑さ指標を100%としたときのTemporal ID毎の前記平均値の割合を示す。
【0056】
Temporal ID毎の複雑さ指標の平均値は、同一GOP内のB0、B1、B1毎に算出した複雑さ指標の合計を、それぞれB0, B1, B2の数で割ることで求められる。例えば、あるGOPが符号化順に[I B1 B2 B2 B0 B1 B2 B2]で構成されている場合、当該GOP内において、B0は1枚、B1は2枚、B2は4枚となる。
【0057】
前述の通り、階層の低いピクチャ(例えばB0)程、重要度は高く、複雑さ指標も大きくなる傾向にある。逆に階層の高いピクチャ(例えばB2)程、重要度は低く、複雑さ指標も小さくなる傾向にある。なお、階層の低いピクチャは、Temporal IDの小さいピクチャを意味し、階層の高いピクチャは、Temporal IDの大きいピクチャを意味する。
【0058】
また、階層の低いピクチャは、圧縮後のデータ量が大きく、階層の高いピクチャのデコード処理、画質等に与える影響が大きい。一方、階層の高いピクチャは、自分より階層の高いピクチャが少ないこともあり他のピクチャのデコード処理、画質等に与える影響が小さくなる。また、階層構造を大きくするほど圧縮率を高くできる。なお、Temporal IDは、省略することも可能である。
【0059】
図4から、Bピクチャの複雑さ指標は、全てのTemporal ID(全ての階層)において、Iピクチャのフレーム間差分に対して、ほぼ単調増加の関係にあることが分かる。
【0060】
図5は、シーンチェンジが発生しない場合の画像符号化装置の動作を説明するための図である。
図5では、前処理部10に入力されるフレームの順番(入力順)と、前処理部10によってフレームが入れ替えられた後のフレームの順番(符号化順)と示す。図示する例では、各フレームをアルファベット(I、P、B)と数字で表している。アルファベットがピクチャタイプを示し、アルファベットの次の数字は、入力順0,1,2,3・・・を示す。例えば、“B0”は、入力画像の先頭のフレームが、Bピクチャであることを示し、“B1”は、入力画像の2番目のフレームも、Bピクチャであること示している。“I2”は、入力画像の3番目のフレームが、Iピクチャであることを示している。前処理部10に入力されるフレームには、ピクチャタイプとフレームの入力順を示す番号が設定されている。これにより、前処理部10は、入力されたフレームが何番目のフレームで、どのピクチャタイプかを特定できる。
【0061】
前処理部10は、ピクチャタイプを用いて、ピクチャ(フレーム)の順番を並べ替る。これにより、符号化部50は、先にIピクチャの符号化を行い、続けてBピクチャ及びPピクチャの符号化を行うことができる。Bピクチャの符号化は、前後の2つの隣接する符号化済のピクチャ(I又はP)から予測する必要がある。Pピクチャの符号化は、符号化済の直前のピクチャ(I又はP)から予測する必要がある。一方、Iピクチャの符号化は、他のピクチャは必要とせずフレーム内の処理で行うことができる。
【0062】
例えば、
図5に示すように入力画像のピクチャが、B0、B1、I2、B3、B4、P5、B6、B7、P8、B9、B10、P11、・・・の順で前処理部10に入力され、これらのピクチャの中でシーンチェンジが発生しないものとする。この場合、前処理部10は、I2、B0、B1、P5、B3、B4、P8、B6、B7、P11、B9・・・・のようにピクチャの順番を並べ替える。これにより、符号化部50は、例えば、前後の参照ピクチャを必要としないI2ピクチャの符号化を先に行うことで、前後のピクチャを必要とするB0ピクチャの符号化の際に、符号化済の未来のI2ピクチャを参照することができる。符号化部50は、B1ピクチャの符号化においても、同様に符号化済の未来のI2ピクチャを参照することができる。
【0063】
なお、参照関係にあるピクチャにおいては、Temporal IDが小さいものほど先に符号化する必要がある。このため、前処理部10は、Temporal IDを考慮して、ピクチャの順番を並べ替えてもよい。
【0064】
シーンチェンジが発生しない場合、Iピクチャ複雑さ指標算出部20およびP,Bピクチャ複雑さ指標算出部30は、所定の方法で各ピクチャの複雑さ指標を算出する。所定の方法は、前述の式(1)~(4)とは別の方法であって、例えばMPEG2 TM5(フィードバック方式)、特許文献1(フィードフォワード方式)などを用いることができる。すなわち、シーンチェンジが発生しない場合、Iピクチャ複雑さ指標算出部20およびP,Bピクチャ複雑さ指標算出部30は、前述の式(1)~(4)で算出される複雑さ指標とは別の複雑さ指標を算出する。
【0065】
MPEG2 TM5では、直前の同じピクチャタイプの発生符号量と平均量子化スケールとの積で算出される複雑さ指標を用いる。発生符号量は、符号化部50の可変長符号化部から出力されるビットストリームの1ピクチャ分のビット数をカウントした値である。
【0066】
この場合、Iピクチャ複雑さ指標算出部20は、対象とするIピクチャの直前のIピクチャの発生符号量と、平均量子化スケールとの積を、Iピクチャの複雑さ指標として算出する。P,Bピクチャ複雑さ指標算出部30は、対象とするPピクチャの直前のPピクチャの発生符号量と、平均量子化スケールとの積を、Pピクチャの複雑さ指標として算出する。また、P,Bピクチャ複雑さ指標算出部30は、対象とするBピクチャの直前のBピクチャの発生符号量と、平均量子化スケールとの積を、Bピクチャの複雑さ指標として算出する。前処理部10は、Iピクチャの発生符号量をIピクチャ複雑さ指標算出部20に供給し、Pピクチャの発生符号量およびBピクチャの発生符号量をP,Bピクチャ複雑さ指標算出部30に供給する。
【0067】
符号量制御部40は、Iピクチャ複雑さ指標算出部20およびP,Bピクチャ複雑さ指標算出部30から出力される各ピクチャの複雑さ指標を用いて各ピクチャの推定符号量を算出し、推定符号量に基づいて調整した量子化スケールを決定して符号化部50の量子化部53に出力する。符号量制御部40は、予定している全体の符号量に収まるように、量子化スケールを決定する。
【0068】
図6はシーンチェンジ(シーンの切り替え)が発生した場合の画像符号化装置の動作を説明するための図である。
図6では、前処理部10に入力されるフレームの順番(入力順)と、前処理部10によってフレームが入れ替えられた後のフレームの順番(符号化順)と示す。
【0069】
なお、入力部60は、入力される各フレームの画素値のフレーム間差分を取得し、その差分(変化量)の絶対値を所定の閾値と比較することにより、シーンチェンジの有無を判定する。入力部60は、シーンチェンジの発生を検知すると、検知信号を前処理部10に出力する。
【0070】
シーンチェンジが発生した場合であっても、簡易に高い精度で複雑さ指標または符号量を推定することが重要となる。特に、シーンチェンジがGOPの途中で発生した場合、符号量制御部40は、その発生時点で、各ピクチャの複雑さ指標から推定符号量を求め、その比率に応じて当該GOP内の以降のピクチャの目標符号量の配分を決める必要がある。
【0071】
シーンチェンジが発生した場合、前処理部10は、シーンチェンジの直後に入力されたPピクチャを、Iピクチャに変更する。図示する例では、前処理部10には、・・・・、P5、B6、B7、P8、B9、B10、P11、B12、B13、P14、B15、B16、・・・の入力順でピクチャ(フレーム)が入力される。この場合、前処理部10は、
図5のシーンチェンジが発生しない場合と同様に、・・・B1、P5、B3、B4、P8、B6、B7、P11、B9、B10、P14、B12・・・・のように符号化順にピクチャの順番を並べ替える。
【0072】
この時、入力順でB9が入力される時に、シーンAからシーンBへのシーンチェンジが発生した場合を想定する。例えば、B8とB9のフレーム間差分が所定の閾値より大きい場合を想定する。この場合、前処理部10は、入力部60から検知信号を受け付け、シーンチェンジ直後のPピクチャ(P11)を、Iピクチャ(I11)に変更する。すなわち、前処理部10は、シーンチェンジ直後において、参照ピクチャを必要とするPピクチャを、単独で符号化が可能なIピクチャに変更する。これにより、I11ピクチャを起点として、シーンチェンジ直後のシーンB のGOPが開始される。シーンチェンジ直後のGOPは、I11、B9、B10、P14、B12・・・・となる。
【0073】
シーンチェンジ直後のGOPの各ピクチャの複雑さ指標は、前述の通りである。すなわち、Iピクチャ複雑さ指標算出部20は、前述の式(1)に従ってIピクチャの複雑さ指標を計算する。P,Bピクチャ複雑さ指標算出部30は、前述の式(2)に従ってPピクチャの複雑さ指標を計算し、前述の式(3)または式(4)に従ってBピクチャの複雑さ指標を計算する。この場合、前処理部10は、Iピクチャの分散値をIピクチャ複雑さ指標算出部20に供給し、Iピクチャの分散値およびIピクチャのフレーム間差分をP,Bピクチャ複雑さ指標算出部30に供給する。
【0074】
シーンチェンジ直後のPピクチャでは、フレーム間予測の参照画像が、異なるシーン(ここではシーンA)の画像となるため、圧縮効率の低下、画質の劣化などが起きやすくなる。そのため、本実施形態では、シーンチェンジ直後のPピクチャを強制的にIピクチャに変えてフレーム内予測のみとすることで、圧縮効率の低下および画質の劣化を回避する。
【0075】
高画質化のために、Iピクチャは、PピクチャまたはBピクチャよりも多くの符号量を割り当てる必要がある。しかしながら、Iピクチャに過度に多くの符号量を割り当てると、画質は良くなるが、バッファ破綻しやすくなる。また、実験則からIピクチャ、Pピクチャ及びBピクチャの符号量の最適比率もシーンの映像種別によって異なることが分かっている。そこで、本実施形態の符号量制御部40は、Iピクチャの分散値とフレーム間差分とに基づいて、シーンチェンジ以降の各ピクチャの符号量割り当て比率を予測して最適化を図り、この比率に応じて、各ピクチャの符号量を全体符号量から配分する。
【0076】
なお、シーンチェンジ発生時のGOPは、入力順のP8でクローズされる。Iピクチャ複雑さ指標算出部20およびP,Bピクチャ複雑さ指標算出部30は、シーンチェンジ発生前(P8以前)のピクチャを、
図5で説明した所定の方法(MPEG2 TM5、特許文献1等)で各ピクチャの複雑さ指標を算出する。前処理部10は、シーンチェンジ発生前のピクチャに対しては、MPEG2 TM5の場合、直前の同じピクチャタイプの発生符号量をIピクチャ複雑さ指標算出部20およびP,Bピクチャ複雑さ指標算出部30に供給する。
【0077】
図7は、シーンチェンジ直後の各ピクチャのフレーム間差分の関係を説明する図である。
図7のケース1では、
図6の符号化順のシーンチェンジ直後の各ピクチャI11、B9、B10、P14、B12に、フレーム間差分の大きさ(大または小)を追加している。なお、フレーム間差分は、前述したように、入力順で隣同士のフレーム間の差分である。
【0078】
ケース1では、シーンチェンジ直後のI、P、Bの各ピクチャは、同じシーンBであるため、それぞれの分散値とフレーム間差分は近い(類似する)と想定される。特には、符号化順に並べ替えられた後、シーンチェンジ後のシーンBにおける動きが大きい場合、I11、B9、B10、P14、B12の各フレーム間差分は「大」となるが、各フレーム間差分に大きな差はない。また、シーンチェンジ後のシーンBにおける動きが小さい場合、I11、B9、B10、P14、B12の各フレーム間差分は「小」となるが、各フレーム間差分の値に大きな差はない。
【0079】
具体的には、シーンBにおいて、BピクチャおよびPピクチャのフレーム間差分は、シーンBの中で連続的な動きが続いているかどうかを示す。本実施形態では、Iピクチャ後のBピクチャおよびPピクチャのフレーム間差分を、Iピクチャのフレーム間差分と同程度(nearly equal)と見なし、符号量制御部40は、符号量配分を計算する。
【0080】
Iピクチャのフレーム間差分のみを用いる理由は、P、Bピクチャのフレーム間差分を計算しないことによる演算量の削減(演算の簡略化)の他に以下の理由がある。即ち、Iピクチャの符号化タイミングでは、同一GOPのピクチャはまだ全てが入力されていないため、フレーム間差分が計算できていないからである。例えば、
図7の符号化順のIピクチャ(I11)の符号化タイミングでは、B12は入力中で、B13、P14、B15、B16に関しては入力自体が行われていないため、前処理部10は、それらのフレーム間差分を計算できない。また、Iピクチャの符号化タイミングではP14もまだ入力されていないため、P,Bピクチャ複雑さ指標算出部30は、P14のフレーム間差分を前処理部10から入手することはできない。
【0081】
また、I、P、Bピクチャの各分散値についても、フレーム間差分と同様のことが想定され、シーンチェンジ直後の各分散値には、大きな差異はない。
【0082】
上記の想定より、Pピクチャの複雑さ指標は、Iピクチャの分散値Xi及びIピクチャのフレーム間差分Yiを使用して式(2)により計算することができる。また、Bピクチャの複雑さ指標は、Iピクチャの分散値Xi及びIピクチャのフレーム間差分Yiを使用して式(3)または式(4)により計算することができる。
【0083】
なお、シーンチェンジ後のシーンBにおける動きが大きい場合、P、Bピクチャの推定符号量が増えるため、最終的な符号量配分として、Iピクチャの符号量は減り、P、Bピクチャの符号量は増える。また、シーンチェンジ後のシーンBにおける動きが小さい場合、P、Bピクチャの推定符号量が減るため、最終的な符号量配分として、Iピクチャの符号量は増え、P、Bピクチャの符号量は減る。
【0084】
以上より、本実施形態では、画像の複雑度としての分散値だけでなく、動きの大小を示すフレーム間差分も加味して符号量配分を演算するので、より適切な符号量配分を行うことができ、バッファ破綻の防止効果がある。その結果、本実施形態では、画質の劣化を抑制し、画質を向上することができる。
【0085】
図8に示すケース2は、シーンチェンジのタイミングが、
図7のケース1に対して1ピクチャ遅くなった場合を示す。図示するケース2では、B9は、I11(変更前のP11)のシーンBと異なるシーンAに属する。仮に、符号化時に、シーンチェンジ直後のシーンBのBピクチャ(B10)の符号量推定に、B9のフレーム間差分を使用すると、B10以降の同じGOP内のBピクチャの目標符号量の推定における誤差が大きくなる。そのため、Bピクチャの複雑さ指標の算出においても、シーンチェンジの基準になるIピクチャのフレーム間差分を使用する。P14についてもケース1と同様であるため、Pピクチャの複雑さ指標の算出についても、Iピクチャのフレーム間差分を使用する。なお、各ピクチャは
図8に示す符号化順で行われるが、I11は入力順で示すようにシーンBに属する。
【0086】
図9に示すケース3は、シーンチェンジのタイミングが、
図7のケース1に対して2ピクチャ遅くなった場合を示す。図示するケース3では、B9及びB10は、I11(変更前のP11)のシーンBと異なるシーンAに属する。仮に、符号化時、シーンチェンジ直後のシーンBのBピクチャ(B12)の符号量推定に、B9またはB10のフレーム間差分を使用すると、B12以降の同じGOP内のBピクチャの目標符号量の推定における誤差が大きくなる。そのため、Bピクチャの複雑さ指標の算出においても、シーンチェンジの基準になるIピクチャのフレーム間差分を使用する。P14についてもケース1と同様であるため、Pピクチャの複雑さ指標の算出についても、Iピクチャのフレーム間差分を使用する。なお、各ピクチャは
図8に示す符号化順で行われるが、I11は入力順で示すようにシーンBに属する。
【0087】
以上説明した本実施形態の画像符号化装置は、入力画像のIピクチャの複雑さ指標を、当該Iピクチャの分散値に基づいて算出するIピクチャ複雑さ指標算出部20と、前記入力画像のPピクチャ及びBピクチャの複雑さ指標を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出するP,Bピクチャ複雑さ指標算出部30と、Iピクチャ、Pピクチャ及びBピクチャの各複雑さ指標に基づいて、前記入力画像の符号化における符号量を制御する符号量制御部40と、を有する。
【0088】
このように、本実施形態では、Pピクチャ及びBピクチャの複雑さ指標の推定に、Iピクチャの分散値およびフレーム間差分を用いる。Iピクチャのフレーム間差分は、P,Bピクチャの動き予測誤差値よりも遥かに簡易に求められ、Iピクチャの分散値は、Iピクチャの複雑さ指標の算出に用いられる。従って、本実施形態の画像符号化装置は、Pピクチャ及びBピクチャの複雑さ指標または推定符号量の演算量を低減することができる。これにより、本実施形態では、比較的少ない演算量およびメモリ量で符号量制御を行うことができる。
【0089】
このように、本実施形態では、画像の複雑さを示す分散値だけでなく、動きの大小を示すフレーム間差分も加味して符号量配分を演算するので、より適切な符号量配分を行うことができ、バッファ破綻の防止効果がある。その結果、本実施形態では、画質の劣化を抑制し、画質を向上することができる。
【0090】
図10は、本実施形態の変形例の画像符号化装置の構成図である。図示する変形例の画像符号化装置は、入力部60と、前処理部10と、Iピクチャ符号量算出部20A(第1の符号量算出部)と、P,Bピクチャ符号量算出部30A(第2の符号量算出部)と、符号量制御部40A(制御部)と、符号化部50とを備える。
【0091】
変形例の画像符号化装置は、符号量制御部40Aに入力されるデータが、複雑さ指標ではなく、推定符号量である点において、
図1に示す画像符号化装置と異なり、その他は
図1に示す画像符号化装置と同様である。推定符号量は、複雑さ指標を平均量子化パラメータで割った値である。
【0092】
Iピクチャ符号量算出部20Aは、入力画像のIピクチャの推定符号量を、当該Iピクチャの分散値に基づいて算出する。具体的には、Iピクチャ符号量算出部は、Iピクチャの分散値に基づいて算出したIピクチャの複雑さ指標(式(1))を、平均量子化スケールで割った値を、Iピクチャの推定符号量として算出する。
【0093】
P,Bピクチャ符号量算出部30Aは、入力画像のPピクチャ及びBピクチャの推定符号量を、Iピクチャの分散値及びIピクチャのフレーム間差分に基づいて算出する。具体的には、P,B ピクチャの推定符号量は、Iピクチャの分散値とIピクチャのフレーム間差分との積に基づいて算出される複雑さ指標(式(2)、式(3)、式(4))を平均量子化スケールで割った値を、Pピクチャ及びBピクチャの推定符号量として算出する。なお、平均量子化スケールは、ピクチャタイプ毎に異なる値を用いるものとする。ただし、異なるピクチャタイプで同じ平均量子化スケールの値を用いる場合があってもよい。
【0094】
符号量制御部40Aは、Iピクチャ、Pピクチャ及びBピクチャの各推定符号量に基づいて、入力画像の符号化における符号量を制御する。本変形例の符号量制御部40Aは、各ピクチャの推定符号量を用いて調整した量子化スケールを決定し、当該量子化スケールを符号化部50の量子化部53に出力する。
【0095】
本変形例の画像符号化装置は、
図1の画像符号化装置と同様に、Pピクチャ及びBピクチャの複雑さ指標または推定符号量の演算量を低減することができる。これにより、本変形例では、比較的少ない演算量およびメモリ量で符号量制御を行うことができる。
【0096】
また、本変形例の画像符号化装置は、画像の複雑度としての分散値だけでなく、動きの大小を示すフレーム間差分も加味して各ピクチャの推定符号量を算出し、当該推定符号量に基づいて符号量配分を演算するので、より適切な符号量配分を行うことができ、バッファ破綻の防止効果がある。その結果、本変形例でも、画質の劣化を抑制し、画質を向上することができる。
【0097】
上記説明した
図1および
図10の画像符号化装置には、汎用的なコンピュータシステムを用いることができる。コンピュータシステムは、例えば、CPU(Central Processing Unit、プロセッサ)と、メモリと、ストレージ(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置と、入力装置と、出力装置とを備える。メモリおよびストレージは、記憶装置である。このコンピュータシステムにおいて、CPUがメモリ上にロードされた所定のプログラムを実行することにより、画像符号化装置の各機能が実現される。
【0098】
また、画像符号化装置は、1つのコンピュータで実装されてもよく、あるいは複数のコンピュータで実装されても良い。また、画像符号化装置は、コンピュータに実装される仮想マシンであっても良い。画像符号化装置用のプログラムは、HDD、SSD、USB(Universal Serial Bus)メモリ、CD(Compact Disc)、DVD (Digital Versatile Disc)などのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【0099】
なお、本発明は上記実施形態および変形例に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記実施形態では、シーンチェンジ直後のGOPの各フレームの複雑さ指標を前述の式(1)~(4)を用いて算出することとしたが、シーンチェンジ直後のGOPと、それに続くn個(nは1以上の整数)の各フレームの複雑さ指標も、前述の式(1)~(4)を用いて算出してもよい。
【符号の説明】
【0100】
10:前処理部
20:Iピクチャ複雑さ指標算出部(第1の算出部)
30:P,Bピクチャ複雑さ指標算出部(第2の算出部)
40:符号量制御部(制御部)
50:符号化部
60:入力部
20A:Iピクチャ符号量算出部(第1の符号量算出部)
30A:P,Bピクチャ符号量算出部(第2の符号量算出部)
40A:符号量制御部(制御部)