(第1の実施形態)
以下、本発明の実施形態について図面を参照して説明する。図1は、第1の実施形態における映像符号化装置Cの構成を示すブロック図である。映像符号化装置Cは、例えば、H.265/HEVC(High Efficiency Video Coding)の標準規格に準拠する装置である。
映像符号化装置Cは、符号量制御部1及び符号化部3を備え、符号量制御部1が出力するQPに従って符号化部3が符号化対象の画像情報の符号化を行い、符号化データを出力する。ここで、画像情報は、例えば、静止画像情報であり、以下の説明において、画像情報のことをピクチャともいう。
符号化部3は、ブロック分割部30、減算器31、直交変換・量子化部32、可変長符号化部33、逆量子化・逆直交変換部34、加算器35及びイントラ予測部36を備える。符号化部3において、ブロック分割部30は、映像符号化装置Cに外部から与えられる符号化対象画像情報をブロック画像情報に分割し、分割した符号化対象ブロック画像情報をブロック目標符号量推定部11と減算器31に出力する。
減算器31は、ブロック分割部30が出力する符号化対象ブロック画像情報の各々の画素の画素値と、イントラ予測部36が出力する予測画像情報の各々の画素の画素値との差を算出して差分ブロック画像情報を生成する。また、減算器31は、生成した差分ブロック画像情報を直交変換・量子化部32に出力する。
直交変換・量子化部32は、減算器31が出力する差分ブロック画像情報に対して直交変換を行い、直交変換した差分ブロック画像情報に対して、最終QP算出部16が出力するQPに基づいて量子化を行うことによって量子化係数を生成する。また、直交変換・量子化部32は、生成した量子化係数を可変長符号化部33と、逆量子化・逆直交変換部34に出力する。
可変長符号化部33は、直交変換・量子化部32が出力する量子化係数を可変長符号化して符号化データを生成し、生成した符号化データを映像符号化装置Cの外部に出力する。また、可変長符号化部33は、符号化データを生成する際に得られるブロック画像情報の発生符号量(以下「ブロック発生符号量」という。)を累積発生符号量算出部13に出力する。また、可変長符号化部33は、符号化データを生成する際に得られる符号化対象画像情報内の符号化処理が終了した符号化済みブロック数の値を最終QP算出部16に出力する。
逆量子化・逆直交変換部34は、直交変換・量子化部32が出力する量子化係数に対して逆量子化と逆直交変換を行うことにより差分ブロック画像情報を復号して加算器35に出力する。
加算器35は、逆量子化・逆直交変換部34が出力する復号差分ブロック画像情報の各々の画素の画素値と、イントラ予測部36が出力する予測画像情報の各々の画素の画素値の和を算出して参照画像情報を生成する。また、加算器35は、生成した参照画像情報をイントラ予測部36に出力する。
イントラ予測部36は、加算器35が出力する参照画像情報に基づいて符号化対象ブロック画像情報に対応するイントラ予測による予測画像情報を生成し、生成した予測画像情報を減算器31に出力する。
符号量制御部1は、量子化パラメータ推定部20、符号量推定部21及び量子化パラメータ補正部22を備える。
量子化パラメータ推定部20は、QPの初期値を算出する。量子化パラメータ推定部20は、初期QP推定部10を備える。初期QP推定部10は、符号化対象画像情報と、当該符号化対象画像情報に対して要求する所望の要求符号量であるピクチャ目標符号量とに基づいて、初期QP(QPinit)を算出する。ここで、所望の要求符号量であるピクチャ目標符号量とは、例えば、符号化後の1画像情報当たりのビット数である。ただし、1画像情報当たりのビット数に限られるものではなく、1画素当たりのビット数やファイルサイズ等で示される値であってもよい。
符号量推定部21は、ブロック画像情報毎の目標符号量を算出する。符号量推定部21は、ブロック目標符号量推定部11を備える。ブロック目標符号量推定部11は、初期QP推定部10が出力する初期QPと、符号化対象ブロック画像情報と、ピクチャ目標符号量とに基づいて、符号化対象ブロック画像情報毎の目標符号量であるブロック目標符号量を算出する。
量子化パラメータ補正部22は、QPを補正する。量子化パラメータ補正部22は、累積目標符号量算出部12、累積発生符号量算出部13、符号量誤差算出部14、平均QP算出部15及び最終QP算出部16を備える。量子化パラメータ補正部22において、累積目標符号量算出部12は、ブロック目標符号量推定部11が出力する符号化済みのブロック画像情報のブロック目標符号量の累積値、すなわち符号化対象のブロック画像情報の直前までのブロック目標符号量の和を算出する。
累積発生符号量算出部13は、可変長符号化部33が出力する符号化済みのブロック画像情報のブロック発生符号量の累積値、すなわち符号化対象のブロック画像情報の直前までのブロック発生符号量の和を算出する。符号量誤差算出部14は、累積目標符号量算出部12が出力するブロック目標符号量の累積値と、累積発生符号量算出部13が出力するブロック発生符号量の累積値との差を算出し、当該差を符号量誤差として出力する。
平均QP算出部15は、初期QP推定部10が出力する初期QPを初期値として、符号化対象のブロック画像情報の直前までのQPの平均値である平均QPを算出する。ここで、符号化対象のブロック画像情報の直前までのQPの平均値とは、符号化対象のブロック画像情報の直前までのQPの合計値を、当該QPの個数で除算した値である。
最終QP算出部16は、符号量誤差算出部14が算出した符号量誤差と、平均QP算出部15が出力する平均QPと、可変長符号化部33が出力する符号化対象画像情報内の符号化済みブロック数の値とに基づいて、符号化対象のブロック画像情報に適用するQPを算出する。
図2は、初期QP推定部10の内部の構成を示すブロック図である。初期QP推定部10は、例えば、機械学習モデルに従って、画像情報と、ピクチャ目標符号量と、初期QPとの関係性を学習処理により推定し、推定した関係性を示す関係性情報を学習済みデータとして生成する。
初期QP推定部10は、符号化処理の運用時において、生成した関係性情報を用いて、符号化対象画像情報と、当該符号化対象画像情報に対して要求する所望のピクチャ目標符号量Btargetから初期QPを算出する。
初期QP推定部10は、演算部100、切替部130、誤差算出部131、教師QP情報記憶部132及び学習処理部133を備える。演算部100は、特徴抽出部110、全結合層120及び学習データ記憶部121を備える。
学習データ記憶部121は、全結合層120の入出力ノード間の重み係数、特徴抽出部110における畳み込み層部111−1〜111−Nの演算の際に用いられるフィルタ係数等の学習データを記憶する。
特徴抽出部110は、特徴抽出部110−1〜110−Nを備える。特徴抽出部110−1は、畳み込み層部111−1、ダウンサンプリング部112−1及び非線形変換部113−1を備える。特徴抽出部110−2〜110−Nは、特徴抽出部110−1と同一の内部構成を有しており、各々が、畳み込み層部111−2〜111−N、ダウンサンプリング部112−2〜112−N及び非線形変換部113−2〜113−Nを備える。
畳み込み層部111−1〜111−Nは、入力情報に対して、学習データ記憶部121に記憶されるフィルタ係数を適用して、畳み込み演算を行う。ダウンサンプリング部112−1〜112−Nは、各々に対応する畳み込み層部111−1〜111−Nが出力する情報に対してダウンサンプリングを行う。非線形変換部113−1〜113−Nは、各々に対応するダウンサンプリング部112−1〜112−Nが出力する情報に対して非線形変換処理を行う。
すなわち、特徴抽出部110は、画像情報に対して畳み込み演算、ダウンサンプリング及び非線形変換処理をN回繰り返して画像情報の特徴量を算出する。なお、Nの値は、1以上の整数である。
全結合層120は、1つの出力ノードと、複数の入力ノードとを有しており、特徴抽出部110が出力する特徴量を取り込む入力ノードと、ピクチャ目標符号量が与えられる入力ノードとを出力ノードに全結合する。また、全結合層120は、特徴抽出部110が出力する特徴量と、ピクチャ目標符号量とに対して学習データ記憶部121に記憶される重み係数を乗じる演算を行い、演算した結果に基づく出力値を出力する。
切替部130は、スイッチを備えており、学習処理を行う際、全結合層120の出力端子を誤差算出部131に接続する端子に接続し、符号化処理の運用時には、全結合層120の出力端子をブロック目標符号量推定部11に接続する端子に接続する。
教師QP情報記憶部132は、教師情報としてのQPの情報を予め記憶する。誤差算出部131は、切替部130が出力する全結合層120の出力値と、教師QP情報記憶部132に記憶されている教師情報との誤差を算出する。また、誤差算出部131は、算出した誤差が予め定められる閾値以下となった場合、切替部130に対して指示情報を出力してスイッチを切り替えさせ、全結合層120の出力端子をブロック目標符号量推定部11に接続する端子に接続させる。
学習処理部133は、誤差算出部131が算出した誤差に基づいて、当該誤差を小さくするように新たな学習データを算出し、学習データ記憶部121に記憶されている学習データを、算出した学習データに書き換えて更新する。誤差を小さくする演算手法としては、例えば、誤差逆伝播法等が適用される。
図3は、ブロック目標符号量推定部11の内部の構成を示すブロック図である。ブロック目標符号量推定部11は、例えば、機械学習モデルに従って、ブロック画像情報と、初期QPと、当該ブロック画像情報の複雑度合いを示す指数である複雑度との関係性を学習処理により推定し、推定した関係性を示す情報を学習済みモデルとして生成する。ここで、複雑度とは、ブロック画像情報を初期QPで符号化した際に発生するブロック発生符号量のことである。
ブロック目標符号量推定部11は、符号化処理の運用時において、生成した関係性情報を用いて、符号化対象ブロック画像情報と、初期QP推定部10が出力する初期QPと、当該符号化対象ブロック画像情報を含む符号化対象画像情報のピクチャ目標符号量とに基づいて、ブロック目標符号量を算出する。
ブロック目標符号量推定部11は、演算部200、切替部230、誤差算出部231、教師複雑度情報記憶部232、学習処理部233及び符号量算出部234を備える。演算部200は、特徴抽出部210、全結合層220及び学習データ記憶部221を備える。
学習データ記憶部221は、全結合層220の入出力ノード間の重み係数、特徴抽出部210における畳み込み層部211−1〜211−Nの演算の際に用いられるフィルタ係数等の学習データを記憶する。
特徴抽出部210は、特徴抽出部210−1〜210−Nを備える。特徴抽出部210−1は、畳み込み層部211−1、ダウンサンプリング部212−1及び非線形変換部213−1を備える。特徴抽出部210−2〜210−Nは、特徴抽出部210−1と同一の内部構成を有しており、各々が、畳み込み層部211−2〜211−N、ダウンサンプリング部212−2〜212−N及び非線形変換部213−2〜213−Nを備える。
畳み込み層部211−1〜211−Nは、入力情報に対して、学習データ記憶部221に記憶されるフィルタ係数を適用して、畳み込み演算を行う。ダウンサンプリング部212−1〜212−Nは、各々に対応する畳み込み層部211−1〜211−Nが出力する情報に対してダウンサンプリングを行う。非線形変換部213−1〜213−Nは、各々に対応するダウンサンプリング部212−1〜212−Nが出力する情報に対して非線形変換処理を行う。
すなわち、特徴抽出部210は、ブロック分割部30から与えられるブロック画像情報に対して畳み込み演算、ダウンサンプリング及び非線形変換処理をN回繰り返してブロック画像情報の特徴量を算出する。なお、Nの値は、1以上の整数である。
全結合層220は、1つの出力ノードと、複数の入力ノードとを有しており、特徴抽出部210が出力する特徴量を取り込む入力ノードと、初期QPが与えられる入力ノードとを出力ノードに全結合する。また、全結合層220は、特徴抽出部210が出力する特徴量と、初期QPとに対して学習データ記憶部221に記憶される重み係数を乗じる演算を行い、演算した結果に基づく出力値を出力する。
符号量算出部234は、全結合層220が出力する出力値をブロック画像情報の複雑度X(j)とし、当該複雑度X(j)と、ピクチャ目標符号量Btargetとに基づいて、ブロック画像情報の目標符号量T(j)を次式(7)により算出する。
式(7)において、Blk_cntは、対象としているブロック画像情報を含む画像情報に含まれるブロック数、すなわち分割数である。また、符号量算出部234は、算出したブロック目標符号量T(j)を累積目標符号量算出部12に出力する。
切替部230は、スイッチを備えており、学習処理を行う際、全結合層220の出力端子を誤差算出部231に接続する端子に接続し、符号化処理の運用時には、全結合層220の出力端子を符号量算出部234に接続する端子に接続する。
教師複雑度情報記憶部232は、教師情報としての複雑度を予め記憶する。誤差算出部231は、切替部230が出力する全結合層220の出力値と、教師複雑度情報記憶部232に記憶されている教師情報との誤差を算出する。また、誤差算出部231は、算出した誤差が予め定められる閾値以下となった場合、切替部230に対して指示情報を出力してスイッチを切り替えさせ、全結合層220の出力端子を符号量算出部234に接続する端子に接続させる。
学習処理部233は、誤差算出部231が算出した誤差に基づいて、当該誤差を小さくするように新たな学習データを算出し、学習データ記憶部221に記憶されている学習データを、算出した学習データに書き換えて更新する。誤差を小さくする演算手法としては、例えば、誤差逆伝播法等が適用される。
(第1の実施形態におけるQP算出処理)
次に、符号量制御部1によるQPの算出処理について説明する。図4は、QPの算出処理の流れを示すフローチャートである。図4に示す処理は、学習処理と符号化処理に分かれており、ステップSa1及びステップSa2における学習処理が完了して学習済みデータを生成した後、ステップSa3以降の処理において映像符号化装置Cは、符号化対象画像情報を取り込んで符号化処理を行う。初期QP推定部10は、画像情報と、当該画像情報に対応するピクチャ目標符号量と、初期QPとの関係性を示す関係性情報を学習処理により生成する(ステップSa1)。
GOP初期QP推定部17に対して、学習済みデータ、すなわち関係性情報を生成する学習処理を行わせるために、事前に、学習用の画像情報の確率分布情報と、ピクチャ目標符号量の確率分布情報とを組み合わせた情報を入力情報として用意しておく。また、当該画像情報を符号化した際に、対応するピクチャ目標符号量に最も近くなるQPの確率分布情報を教師情報として用意しておく。
QPの確率分布情報を教師情報として教師QP情報記憶部132に記憶させておき、切替部130のスイッチを、予め全結合層120の出力端子が、誤差算出部131に接続する端子に接続するように切り替えておく。特徴抽出部110が、学習用の画像情報の確率分布情報を取り込み、全結合層120が、学習用のピクチャ目標符号量の確率分布情報を取り込むことにより初期QP推定部10は、学習処理を開始する。
誤差算出部131が算出する誤差が、例えば、予め定められる閾値以下となった場合、学習処理を終了し、誤差算出部131が指示情報を切替部130に出力する。切替部130は、当該指示情報を受けてスイッチを切り替え、全結合層120の出力端子の接続先をブロック目標符号量推定部11にする。このタイミングで、学習データ記憶部121に記憶されている学習済みデータが、上述した画像情報と、ピクチャ目標符号量と、初期QPとの関係性を示す関係性情報となる。
ブロック目標符号量推定部11は、ブロック画像情報と、当該ブロック画像情報に対応する初期QPと、複雑度との関係性を示す関係性情報を学習処理により生成する(ステップSa2)。
ブロック目標符号量推定部11に対して、学習済みデータ、すなわち関係性情報を生成する学習処理を行わせるために、事前に、学習用のブロック画像情報の確率分布情報と、初期QPの確率分布情報とを組み合わせた情報を入力情報として用意しておく。また、当該ブロック画像情報を、対応する初期QPで符号化した際に発生する複雑度の確率分布情報を教師情報として用意しておく。
複雑度の確率分布情報を教師情報として教師複雑度情報記憶部232に記憶させておき、切替部230のスイッチを、予め全結合層220の出力端子が、誤差算出部231に接続する端子に接続するように切り替えておく。特徴抽出部210が、学習用のブロック画像情報の確率分布情報を取り込み、全結合層220が、学習用の初期QPの確率分布情報を取り込むことによりブロック目標符号量推定部11は、学習処理を開始する。
誤差算出部231が算出する誤差が、例えば、予め定められる閾値以下となった場合、学習処理を終了し、誤差算出部231が指示情報を切替部230に出力する。切替部230は、当該指示情報を受けてスイッチを切り替え、全結合層220の出力端子の接続先を符号量算出部234とする。このタイミングで、学習データ記憶部221に記憶されている学習済みデータが、上述したブロック画像情報と、初期QPと、複雑度との関係性を示す関係性情報となる。
映像符号化装置Cは、符号化対象画像情報と、当該符号化対象画像情報に対して要求する所望のピクチャ目標符号量とを取り込む(ステップSa3)。符号量制御部1の初期QP推定部10の演算部100は、符号化対象画像情報と、ピクチャ目標符号量とを取り込む。特徴抽出部110は、学習データ記憶部121に記憶されている学習済みデータを用いて、取り込んだ符号化対象画像情報の特徴量を算出する。
全結合層120は、特徴抽出部110が出力する特徴量と、ピクチャ目標符号量と、学習データ記憶部121に記憶されている学習済みデータとに基づいて、初期QPを算出する。初期QP推定部10は、算出した初期QPをブロック目標符号量推定部11に出力する(ステップSa4)。
ブロック目標符号量推定部11は、ブロック分割部30が出力する符号化対象ブロック画像情報と、初期QP推定部10が出力する初期QPとを取り込む。ブロック目標符号量推定部11の演算部200は、符号化対象ブロック画像情報と、初期QPとを取り込む。特徴抽出部210は、学習データ記憶部221に記憶されている学習済みデータを用いて、取り込んだ符号化対象ブロック画像情報の特徴量を算出する。
全結合層220は、特徴抽出部210が出力する特徴量と、初期QPと、学習データ記憶部221に記憶されている学習済みデータとに基づいて、ブロック目標符号量を算出する。ブロック目標符号量推定部11は、算出したブロック目標符号量を累積目標符号量算出部12に出力する(ステップSa5)。
以下、量子化パラメータ補正部22が、符号化対象画像情報の各ブロック画像情報について、ステップSa6からステップSa9の処理を繰り返し行う(ループLa1s〜La1e)。累積目標符号量算出部12は、符号化部3において符号化対象となっているブロック画像情報の直前のブロック画像情報までのブロック目標符号量の累積値である累積目標符号量Tsumを算出する。
累積発生符号量算出部13は、可変長符号化部33が出力するブロック発生符号量のうち、符号化部3において符号化対象となっているブロック画像情報の直前のブロック画像情報までのブロック発生符号量の累積値である累積発生符号量Bsumを算出する(ステップSa6)。累積目標符号量Tsumを式で表すと次式(8)となり、累積発生符号量Bsumを式で表すと次式(9)となる。
式(9)において、B(i)は、i番目のブロック画像情報のブロック発生符号量である。
符号量誤差算出部14は、累積発生符号量算出部13が出力する累積発生符号量Bsumと、累積目標符号量算出部12が出力する累積目標符号量Tsumとに基づいて、次式(10)により符号量誤差Dを算出して最終QP算出部16に出力する。
平均QP算出部15は、最終QP算出部16が出力するブロック画像情報毎のQPを取り込み、符号化部3において符号化対象となっているブロック画像情報の直前のブロック画像情報までのQPの平均値である平均QP(QPmean)を次式(11)に基づいて算出する(ステップSa7)。
最終QP算出部16は、次式(12)によりQPの補正値である補正QPをdeltaQPとして算出する(ステップSa8)。
式(12)において、BlkProc_cntは、可変長符号化部33が出力する符号化対象画像情報内の符号化済みブロック数である。また、deltaQPorgは、次式(13)に基づいて、符号量誤差算出部14が算出する符号量誤差Dから求められる値であり、kは調整パラメータ係数である。
最終QP算出部16は、平均QP算出部15が出力する平均QP(QPmean)と、算出した補正QP(deltaQP)とに基づいて、次式(14)により最終的なQPを算出して直交変換・量子化部32に出力する(ステップSa9)。
式(14)においてRound()の関数は、切り上げ、切り下げ、四捨五入等の丸め演算を行う関数を意味する。符号化部3は、符号量制御部1がブロック画像情報毎に出力するQPを用いて各ブロック画像情報の符号化を行い、全てのブロック画像情報の符号化が終了するまで処理を繰り返す。
なお、第1の実施形態の符号量制御部1において、図5に示すように、量子化パラメータ補正部22を1つの量子化パラメータ補正装置1Bとして構成するようにしてもよい。
(第2の実施形態)
図6は、第2の実施形態における映像符号化装置Caの構成を示すブロック図である。第2の実施形態の映像符号化装置Caにおいて、第1の実施形態の映像符号化装置Cと同一の構成については、同一の符号を付し、以下、異なる構成について説明する。映像符号化装置Caは、符号量制御部1aと符号化部3aを備え、符号量制御部1aが出力するQPに従って符号化部3aが符号化対象の映像情報の符号化を行い、符号化データを出力する。
符号化部3aは、GOP(Group Of Pictures)分割部41、ブロック分割部30、減算器31、直交変換・量子化部32、可変長符号化部33、逆量子化・逆直交変換部34、加算器35、イントラ予測部36、ループフィルタ部37、復号ピクチャメモリ部38、インター予測部39及びイントラ・インター切替スイッチ部40を備える。
符号化部3aにおいて、GOP分割部41は、映像情報に含まれる複数の連続した画像情報を予め定められている条件に応じた所定の枚数毎に分割する。また、GOP分割部41は、分割した複数の画像情報のセットをGOPとしてGOP初期QP推定部17とGOP目標符号量推定部18に出力する。また、GOP分割部41は、GOPに含まれる画像情報の各々を符号化順にブロック分割部30と減算器19と初期QP推定部10aに出力する。
減算器31は、ブロック分割部30が出力する符号化対象ブロック画像情報の各々の画素の画素値と、イントラ予測部36、またはインター予測部39が出力する予測画像情報の各々の画素の画素値との差を算出して差分ブロック画像情報を生成する。また、減算器31は、生成した差分ブロック画像情報をブロック目標符号量推定部11aと直交変換・量子化部32とに出力する。
加算器35は、逆量子化・逆直交変換部34が出力する復号差分ブロック画像情報の各々の画素の画素値と、イントラ予測部36またはインター予測部39が出力する予測画像情報の各々の画素の画素値の和を算出して参照画像情報を生成する。また、加算器35は、生成した参照画像情報をイントラ予測部36とループフィルタ部37とに出力する。
ループフィルタ部37は、加算器35が出力する参照画像情報にループフィルタを適用してインター予測用の参照画像情報を生成し、生成したインター予測用の参照画像情報を復号ピクチャメモリ部38に書き込んで記憶させる。復号ピクチャメモリ部38は、書込み可能なRAM(Random Access Memory)などの記憶デバイスであり、ループフィルタ部37が書き込むインター予測用の参照画像情報を記憶する。
インター予測部39は、復号ピクチャメモリ部38に記憶されているインター予測用の参照画像情報を用いて符号化対象ブロック画像情報のインター予測による予測画像情報を生成する。
イントラ・インター切替スイッチ部40は、符号化対象ブロック画像情報の予測モードに応じてスイッチを切り替え、減算器31及び加算器35を、イントラ予測部36、またはインター予測部39のいずれかに接続する。
符号量制御部1aは、量子化パラメータ推定部20a、符号量推定部21a及び量子化パラメータ補正部22を備える。符号量制御部1aにおいて、量子化パラメータ推定部20aは、GOP初期QP推定部17、減算器19及び初期QP推定部10aを備える。
量子化パラメータ推定部20aにおいて、GOP初期QP推定部17は、GOP分割部41が出力するGOPと、当該GOPに対して要求する所望の要求符号量であるビットレートと、当該GOPに含まれる画像情報のピクチャタイプをリスト化したピクチャタイプリストとに基づいて、GOP初期QPを算出する。ここで、GOP初期QPとは、GOP毎に算出する初期QPの値であり、ある1つのGOPについて算出したGOP初期QPは、当該GOPに含まれる画像情報に共通して適用される値である。
減算器19は、GOP分割部41が出力する画像情報の各々の画素の画素値と、復号ピクチャメモリ部38に記憶されている参照画像情報の各々の画素の画素値との差を算出して差分画像情報を生成し、生成した差分画像情報を初期QP推定部10aに出力する。
初期QP推定部10aは、減算器19が出力する差分画像情報、またはGOP分割部41が出力する画像情報のいずれかである入力画像情報と、当該入力画像情報に対応するピクチャタイプと、GOP目標符号量推定部18が出力する当該入力画像情報に対応するピクチャ目標符号量とに基づいて、初期QPを算出する。
符号量推定部21aは、GOP目標符号量推定部18と、ブロック目標符号量推定部11aとを備える。符号量推定部21aにおいて、GOP目標符号量推定部18は、GOP分割部41が出力するGOPと、GOP初期QP推定部17が出力するGOP初期QPと、当該GOPに含まれる画像情報のピクチャタイプをリスト化したピクチャタイプリストと、ビットレートとに基づいて、GOPに含まれる画像情報毎のピクチャ目標符号量を算出する。
ブロック目標符号量推定部11aは、減算器31が出力する差分ブロック画像情報、またはブロック分割部30が出力するブロック画像情報のいずれかである入力ブロック画像情報と、当該入力ブロック画像情報に対応するピクチャタイプと、初期QP推定部10aが出力する初期QPとに基づいて、符号化対象ブロック画像情報毎のブロック目標符号量を算出する。
図7は、GOP初期QP推定部17の内部の構成を示すブロック図である。GOP初期QP推定部17は、例えば、機械学習モデルに従って、GOPを構成する複数の画像情報と、当該GOPに含まれる画像情報のピクチャタイプをリスト化したピクチャタイプリストと、ビットレートと、GOP初期QPとの関係性を学習処理により推定し、推定した関係性を示す関係性情報を学習済みデータとして生成する。
GOP初期QP推定部17は、符号化処理の運用時において、生成した関係性情報を用いて、GOP分割部41が出力する符号化対象のGOPと、当該符号化対象のGOPに含まれる画像情報のピクチャタイプをリスト化したピクチャタイプリストと、当該符号化対象のGOPに対して要求する所望のビットレートとに基づいて、GOP初期QP(QPGOPinit)を算出する。
GOP初期QP推定部17は、演算部300、切替部330、誤差算出部331、教師QP情報記憶部332及び学習処理部333を備える。演算部300は、GOP特徴抽出部310、全結合層320及び学習データ記憶部321を備える。
学習データ記憶部321は、全結合層320の入出力ノード間の重み係数、GOP特徴抽出部310における畳み込み層部311−1〜311−Nの演算の際に用いられるフィルタ係数等の学習データを記憶する。
GOP特徴抽出部310は、GOP特徴抽出部310−1〜310−Nを備える。GOP特徴抽出部310−1は、畳み込み層部311−1、ダウンサンプリング部312−1及び非線形変換部313−1を備える。GOP特徴抽出部310−2〜310−Nは、GOP特徴抽出部310−1と同一の内部構成を有しており、各々が、畳み込み層部311−2〜311−N、ダウンサンプリング部312−2〜312−N及び非線形変換部313−2〜313−Nを備える。
畳み込み層部311−1〜311−Nは、入力情報に対して、学習データ記憶部321に記憶されるフィルタ係数を適用して、畳み込み演算を行う。ダウンサンプリング部312−1〜312−Nは、各々に対応する畳み込み層部311−1〜311−Nが出力する情報に対してダウンサンプリングを行う。非線形変換部313−1〜313−Nは、各々に対応するダウンサンプリング部312−1〜312−Nが出力する情報に対して非線形変換処理を行う。
すなわち、GOP特徴抽出部310は、GOPに含まれる各画像情報をチャネルとみなして取り込み、チャネル毎に畳み込み演算、ダウンサンプリング及び非線形変換処理をN回繰り返してGOPの特徴量を算出する。なお、Nの値は、1以上の整数である。
全結合層320は、1つの出力ノードと、複数の入力ノードとを有しており、GOP特徴抽出部310が出力する特徴量を取り込む入力ノードと、ビットレートが与えられる入力ノードと、GOPに含まれる各画像情報のピクチャタイプをリスト化したピクチャタイプリストが与えられる入力ノードとを出力ノードに全結合する。
また、全結合層320は、GOP特徴抽出部310が出力する特徴量と、ビットレートと、ピクチャタイプリストとに対して学習データ記憶部321に記憶される重み係数を乗じる演算を行い、演算した結果に基づく出力値を出力する。
切替部330は、スイッチを備えており、学習処理を行う際、全結合層320の出力端子を誤差算出部331に接続する端子に接続し、符号化処理の運用時には、全結合層320の出力端子をGOP目標符号量推定部18に接続する端子に接続する。
教師QP情報記憶部332は、教師情報としてのQPの情報を予め記憶する。誤差算出部331は、切替部330が出力する全結合層320の出力値と、教師QP情報記憶部332に記憶されている教師情報との誤差を算出する。また、誤差算出部331は、算出した誤差が予め定められる閾値以下となった場合、切替部330に対して指示情報を出力してスイッチを切り替えさせ、全結合層320の出力端子をGOP目標符号量推定部18に接続する端子に接続させる。
学習処理部333は、誤差算出部331が算出した誤差に基づいて、当該誤差を小さくするように新たな学習データを算出し、学習データ記憶部321に記憶されている学習データを、算出した学習データに書き換えて更新する。誤差を小さくする演算手法としては、例えば、誤差逆伝播法等が適用される。
図8は、GOP目標符号量推定部18の内部の構成を示すブロック図である。GOP目標符号量推定部18は、例えば、機械学習モデルに従って、GOPを構成する複数の画像情報と、当該GOPに含まれる画像情報のピクチャタイプをリスト化したピクチャタイプリストと、GOP初期QPと、ピクチャ複雑度との関係性を学習処理により推定し、推定した関係性を示す情報を学習済みモデルとして生成する。ここで、ピクチャ複雑度とは、GOPに含まれる画像情報の各々をGOP初期QPで符号化した際に発生する発生符号量のことである。
GOP目標符号量推定部18は、符号化処理の運用時において、生成した関係性情報を用いて、GOP分割部41が出力する符号化対象のGOPと、当該符号化対象のGOPに含まれる画像情報のピクチャタイプをリスト化したピクチャタイプリストと、GOP初期QP推定部17が出力するGOP初期QPと、当該符号化対象のGOPに対して要求する所望のビットレートとに基づいて、GOPに含まれる画像情報毎のピクチャ目標符号量を算出する。
GOP目標符号量推定部18は、演算部400、切替部430、誤差算出部431、教師複雑度情報記憶部432、学習処理部433及び符号量算出部434を備える。演算部400は、GOP特徴抽出部410、全結合層420及び学習データ記憶部421を備える。
学習データ記憶部421は、全結合層420の入出力ノード間の重み係数、GOP特徴抽出部410における畳み込み層部411−1〜411−Nの演算の際に用いられるフィルタ係数等の学習データを記憶する。
GOP特徴抽出部410は、GOP特徴抽出部410−1〜410−Nを備える。GOP特徴抽出部410−1は、畳み込み層部411−1、ダウンサンプリング部412−1及び非線形変換部413−1を備える。GOP特徴抽出部410−2〜410−Nは、GOP特徴抽出部410−1と同一の内部構成を有しており、各々が、畳み込み層部411−2〜411−N、ダウンサンプリング部412−2〜412−N及び非線形変換部413−2〜413−Nを備える。
畳み込み層部411−1〜411−Nは、入力情報に対して、学習データ記憶部421に記憶されるフィルタ係数を適用して、畳み込み演算を行う。ダウンサンプリング部412−1〜412−Nは、各々に対応する畳み込み層部411−1〜411−Nが出力する情報に対してダウンサンプリングを行う。非線形変換部413−1〜413−Nは、各々に対応するダウンサンプリング部412−1〜412−Nが出力する情報に対して非線形変換処理を行う。
すなわち、GOP特徴抽出部410はGOPに含まれる各画像情報をチャネルとみなして取り込み、チャネル毎に畳み込み演算、ダウンサンプリング及び非線形変換処理をN回繰り返してGOPの特徴量を算出する。なお、Nの値は、1以上の整数である。
全結合層420は、1つの出力ノードと、複数の入力ノードとを有しており、GOP特徴抽出部410が出力する特徴量を取り込む入力ノードと、ピクチャタイプリストが与えられる入力ノードと、初期QPが与えられる入力ノードとを出力ノードに全結合する。また、全結合層420は、GOP特徴抽出部410が出力する特徴量と、初期QPとに対して学習データ記憶部421に記憶される重み係数を乗じる演算を行い、演算した結果に基づく出力値を出力する。
符号量算出部434は、GOPに含まれる画像情報及び当該画像情報に対応するピクチャタイプを入力情報として与えた際の全結合層420が出力する出力値の各々を画像情報毎のピクチャ複雑度Xpic(j)とし、当該ピクチャ複雑度Xpic(j)と、ビットレートとに基づいて、各画像情報のピクチャ目標符号量Tpic(j)を次式(15)により算出する。
式(15)において、GOP_rateは、ビットレートをGOPに換算した際のレートであり、GOP_cntは、GOPに含まれる画像情報の数である。また、符号量算出部434は、算出した各画像情報のピクチャ目標符号量Tpic(j)を初期QP推定部10aに出力する。
切替部430は、スイッチを備えており、学習処理を行う際、全結合層420の出力端子を誤差算出部431に接続する端子に接続し、符号化処理の運用時には、全結合層420の出力端子を符号量算出部434に接続する端子に接続する。
教師複雑度情報記憶部432は、教師情報としてのピクチャ複雑度を予め記憶する。誤差算出部431は、切替部430が出力する符号量算出部434の出力値と、教師複雑度情報記憶部432に記憶されている教師情報との誤差を算出する。また、誤差算出部431は、算出した誤差が予め定められる閾値以下となった場合、切替部430に対して指示情報を出力してスイッチを切り替えさせ、全結合層420の出力端子を符号量算出部434に接続する端子に接続させる。
学習処理部433は、誤差算出部431が算出した誤差に基づいて、当該誤差を小さくするように新たな学習データを算出し、学習データ記憶部421に記憶されている学習データを、算出した学習データに書き換えて更新する。誤差を小さくする演算手法としては、例えば、誤差逆伝播法等が適用される。
図9は、初期QP推定部10aの内部の構成を示すブロック図である。第1の実施形態の初期QP推定部10と同一の構成については同一の符号を付し、以下、異なる構成について説明する。
初期QP推定部10aは、例えば、機械学習モデルに従って、画像情報または差分画像情報のいずれかである入力画像情報と、当該入力画像情報に対応するピクチャタイプと、ピクチャ目標符号量と、初期QPとの関係性を学習処理により推定し、推定した関係性を示す関係性情報を学習済みモデルとして生成する。
初期QP推定部10は、符号化処理の運用時において、生成した関係性情報を用いて、符号化対象の入力画像情報と、当該符号化対象の入力画像情報のピクチャタイプと、GOP目標符号量推定部18が出力するピクチャ目標符号量とに基づいて、初期QPを算出する。
初期QP推定部10aは、演算部100a、切替部130、誤差算出部131、教師QP情報記憶部132、学習処理部133及び画像選択部134を備える。演算部100aは、特徴抽出部110、全結合層120a及び学習データ記憶部121を備える。
全結合層120aは、1つの出力ノードと、複数の入力ノードとを有しており、特徴抽出部110が出力する特徴量を取り込む入力ノードと、ピクチャタイプが与えられる入力ノードと、ピクチャ目標符号量が与えられる入力ノードとを出力ノードに全結合する。また、全結合層120aは、特徴抽出部110が出力する特徴量と、ピクチャタイプと、ピクチャ目標符号量とに対して学習データ記憶部121に記憶される重み係数を乗じる演算を行い、演算した結果に基づく出力値を出力する。
画像選択部134は、画像情報のピクチャタイプが、Pピクチャ、またはBピクチャの場合、減算器19が出力する差分画像情報を選択し、選択した差分画像情報を入力画像情報として演算部100aに出力する。また、画像選択部134は、画像情報のピクチャタイプが、Iピクチャの場合、GOP分割部41が出力する画像情報を選択し、選択した画像情報を入力画像情報として演算部100aに出力する。
図10は、ブロック目標符号量推定部11aの内部の構成を示すブロック図である。第1の実施形態のブロック目標符号量推定部11と同一の構成については同一の符号を付し、以下、異なる構成について説明する。
ブロック目標符号量推定部11aは、例えば、機械学習モデルに従って、ブロック画像情報または差分ブロック画像情報のいずれかである入力ブロック画像情報と、当該入力ブロック画像情報に対応するピクチャタイプと、初期QPと、複雑度との関係性を学習処理により推定し、推定した関係性を示す情報を学習済みモデルとして生成する。
ブロック目標符号量推定部11aは、符号化処理の運用時において、生成した関係性情報を用いて、符号化対象の入力ブロック画像情報と、当該符号化対象の入力ブロック画像情報のピクチャタイプと、初期QP推定部10aが出力する初期QPと、GOP目標符号量推定部18が出力するピクチャ目標符号量とに基づいて、ブロック目標符号量を算出する。
ブロック目標符号量推定部11aは、演算部200a、切替部230、誤差算出部231、教師複雑度情報記憶部232、学習処理部233、符号量算出部234及びブロック画像選択部235を備える。演算部200aは、特徴抽出部210、全結合層220a及び学習データ記憶部221を備える。
全結合層220aは、1つの出力ノードと、複数の入力ノードとを有しており、特徴抽出部210が出力する特徴量を取り込む入力ノードと、ピクチャタイプが与えられる入力ノードと、初期QPが与えられる入力ノードとを出力ノードに全結合する。また、全結合層220aは、特徴抽出部210が出力する特徴量と、ピクチャタイプと、初期QPとに対して学習データ記憶部221に記憶される重み係数を乗じる演算を行い、演算した結果に基づく出力値を出力する。
符号量算出部234は、全結合層220が出力する出力値をブロック画像情報の複雑度X(j)とし、当該複雑度X(j)と、GOP目標符号量推定部18が出力するピクチャ目標符号量Tpic(j)とに基づいて、ブロック画像情報の目標符号量T(j)を次式(16)により算出する。
式(16)において、Blk_cntは、対象としているブロック画像情報を含む画像情報に含まれるブロック数である。
ブロック画像選択部235は、対象のブロック画像情報を含む画像情報のピクチャタイプが、Pピクチャ、またはBピクチャの場合、減算器31が出力する差分ブロック画像情報を選択し、選択した差分ブロック画像情報を入力ブロック画像情報として演算部200aに出力する。また、ブロック画像選択部235は、画像情報のピクチャタイプが、Iピクチャの場合、ブロック分割部30が出力するブロック画像情報を選択し、選択したブロック画像情報を入力ブロック画像情報として演算部200aに出力する。
(第2の実施形態におけるQP算出処理)
次に、符号量制御部1aによるQPの算出処理について説明する。図11は、QPの算出処理の流れを示すフローチャートである。図11に示す処理は、学習処理と符号化処理に分かれており、ステップSb1〜Sb4における学習処理が完了して学習済みデータを生成した後、ステップSb5以降の処理において映像符号化装置Caは、符号化対象の映像情報を取り込んで符号化処理を行う。GOP初期QP推定部17は、GOPと、ビットレートと、ピクチャタイプリストと、GOP初期QPとの関係性を示す関係性情報を学習処理により生成する(ステップSb1)。
初期QP推定部10に対して、学習済みデータ、すなわち関係性情報を生成する学習処理を行わせるために、事前に、学習用のGOPの確率分布情報と、当該GOPに対応するビットレートの確率分布情報と、当該GOPに対応するピクチャタイプリストの確率分布情報とを入力情報として用意しておく。また、当該GOPを符号化した際に、対応するビットレートに最も近くなるQPの確率分布情報を教師情報として用意しておく。
QPの確率分布情報を教師情報として教師QP情報記憶部332に記憶させておき、切替部330のスイッチを全結合層320の出力端子が、誤差算出部331に接続する端子に接続するように切り替えておく。GOP特徴抽出部310が、学習用のGOPの確率分布情報を取り込み、全結合層320が、学習用のビットレートとピクチャタイプリストの確率分布情報を取り込むことによりGOP初期QP推定部17は、学習処理を開始する。
誤差算出部331が算出する誤差が、例えば、予め定められる閾値以下となった場合、学習処理を終了し、誤差算出部331が指示情報を切替部330に出力する。切替部330は、当該指示情報を受けてスイッチを切り替え、全結合層320の出力端子の接続先をGOP目標符号量推定部18とする。このタイミングで、学習データ記憶部321に記憶されている学習済みデータが、上述したGOPと、当該GOPに対応するビットレートと、当該GOPに対応するピクチャタイプリストと、GOP初期QPとの関係性を示す関係性情報となる。
GOP目標符号量推定部18は、GOPと、ピクチャタイプリストと、GOP初期QPと、ピクチャ複雑度との関係性を示す関係性情報を学習処理により生成する(ステップSb2)。
GOP目標符号量推定部18に対して、学習済みデータ、すなわち関係性情報を生成する学習処理を行わせるために、事前に、学習用のGOPの確率分布情報と、当該GOPに対応するピクチャタイプリストの確率分布情報と、当該GOPに対応するGOP初期QPの確率分布情報とを入力情報として用意しておく。また、当該GOPに含まれる画像情報の各々を、対応するGOP初期QPで符号化した際のピクチャ複雑度の確率分布情報を教師情報として用意しておく。
ピクチャ複雑度の確率分布情報を教師情報として教師複雑度情報記憶部432に記憶させておき、切替部430のスイッチを全結合層420の出力端子が、誤差算出部431に接続する端子に接続するように切り替えておく。GOP特徴抽出部410が、学習用のGOPの確率分布情報を取り込み、全結合層420が、学習用のピクチャタイプリストと初期QPの確率分布情報を取り込むことによりGOP目標符号量推定部18は、学習処理を開始する。
誤差算出部431が算出する誤差が、例えば、予め定められる閾値以下となった場合、学習処理を終了し、誤差算出部431が指示情報を切替部430に出力する。切替部430は、当該指示情報を受けてスイッチを切り替え、全結合層420の出力端子の接続先を符号量算出部434にする。このタイミングで、学習データ記憶部421に記憶されている学習済みデータが、上述したGOPと、当該GOPに対応するピクチャタイプリストと、当該GOPに対応するGOP初期QPと、ピクチャ複雑度との関係性を示す関係性情報となる。
初期QP推定部10aは、画像情報及び差分画像情報と、ピクチャタイプと、ピクチャ目標符号量と、初期QPとの関係性を示す関係性情報を学習処理により生成する(ステップSb3)。
初期QP推定部10aに対して、学習済みデータ、すなわち関係性情報を生成する学習処理を行わせるために、事前に、学習用の入力画像情報の確率分布情報と、当該入力画像情報に対応するピクチャタイプの確率分布情報と、当該入力画像情報に対応するピクチャ目標符号量の確率分布情報とを入力情報として用意しておく。また、当該入力画像情報に対応する画像情報を符号化した際に、対応するピクチャ目標符号量に最も近くなるQPの確率分布情報を教師情報として用意しておく。
QPの確率分布情報を教師情報として教師QP情報記憶部132に記憶させておき、切替部130のスイッチを全結合層120aの出力端子が、誤差算出部131に接続する端子に接続するように切り替えておく。画像選択部134が、ピクチャタイプに従って画像情報、または差分画像情報のいずれかを入力画像情報として特徴抽出部110に出力する。特徴抽出部110が、画像選択部134が出力する学習用の入力画像情報の確率分布情報を取り込み、全結合層120aが、学習用のピクチャタイプリストとピクチャ目標符号量の確率分布情報を取り込むことにより初期QP推定部10aは、学習処理を開始する。
誤差算出部131が算出する誤差が、例えば、予め定められる閾値以下となった場合、学習処理を終了し、誤差算出部131が指示情報を切替部130に出力する。切替部130は、当該指示情報を受けてスイッチを切り替え、全結合層120aの出力端子の接続先をブロック目標符号量推定部11aとする。このタイミングで、学習データ記憶部121に記憶されている学習済みデータが、上述した入力画像情報と、当該入力画像情報に対応するピクチャタイプと、当該入力画像情報に対応するピクチャ目標符号量と、初期QPとの関係性を示す関係性情報となる。
ブロック目標符号量推定部11aは、ブロック画像情報と、当該ブロック画像情報に対応するピクチャタイプと、当該ブロック画像情報に対応する初期QPと、複雑度との関係性を示す関係性情報を学習処理により生成する(ステップSb4)。
ブロック目標符号量推定部11aに対して、学習済みデータ、すなわち関係性情報を生成する学習処理を行わせるために、事前に、学習用の入力ブロック画像情報の確率分布情報と、当該入力ブロック画像情報に対応するピクチャタイプの確率分布情報と、当該入力ブロック画像情報に対応する初期QPの確率分布情報とを入力情報として用意しておく。また、当該入力ブロック画像情報に対応するブロック画像情報を、対応する初期QPで符号化した際の複雑度の確率分布情報を教師情報として用意しておく。
複雑度の確率分布情報を教師情報として教師複雑度情報記憶部232に記憶させておき、切替部230のスイッチを符号量算出部234の出力端子が、誤差算出部231に接続する端子に接続するように切り替えておく。ブロック画像選択部235が、ピクチャタイプに従ってブロック画像情報、または差分ブロック画像情報のいずれかを入力ブロック画像情報として特徴抽出部210に出力する。特徴抽出部210が、ブロック画像選択部235が出力する学習用の入力ブロック画像情報の確率分布情報を取り込み、全結合層220aが、学習用のピクチャタイプと初期QPの確率分布情報を取り込むことによりブロック目標符号量推定部11aは、学習処理を開始する。
誤差算出部231が算出する誤差が、例えば、予め定められる閾値以下となった場合、学習処理を終了し、誤差算出部231が指示情報を切替部230に出力する。切替部230は、当該指示情報を受けてスイッチを切り替え、全結合層220aの出力端子の接続先を累積目標符号量算出部12とする。このタイミングで、学習データ記憶部221に記憶されている学習済みデータが、上述した入力ブロック画像情報と、当該入力ブロック画像情報に対応するピクチャタイプと、当該入力ブロック画像情報に対応する初期QPと、複雑度との関係性を示す関係性情報となる。
映像符号化装置Caは、符号化対象の映像情報と、当該符号化対象の映像情報に要求するビットレートと、当該符号化対象の映像情報のGOPの構成に対応するピクチャタイプリストとを取り込む(ステップSb5)。符号量制御部1aは、符号化対象の映像情報に要求するビットレートと、当該符号化対象の映像情報のGOPの構成に対応するピクチャタイプリストとを取り込むと、ステップSb6、ステップSb7及びループLb2s〜Lb2eの処理を映像情報に含まれる各GOPについて繰り返し行う(ループLb1s〜Lb1e)。
GOP初期QP推定部17の演算部300が、GOP分割部41が出力する符号化対象のGOPと、ビットレート及びピクチャタイプリストとを取り込む。GOP特徴抽出部310は、学習データ記憶部321に記憶されている学習済みデータを用いて、取り込んだ符号化対象のGOPの特徴量を算出する。全結合層320は、GOP特徴抽出部310が出力する特徴量と、ビットレートと、ピクチャタイプと、学習データ記憶部121に記憶されている学習済みデータとに基づいて、GOP初期QPを算出する。GOP初期QP推定部17は、算出したGOP初期QPをGOP目標符号量推定部18に出力する(ステップSb6)。
GOP目標符号量推定部18は、GOP分割部41が出力する符号化対象のGOPと、GOP初期QP推定部17が出力するGOP初期QPと、ピクチャタイプリストとを取り込む。GOP目標符号量推定部18の演算部400が、符号化対象のGOPと、当該GOPに対応するGOP初期QPと、当該GOPに対応するピクチャタイプリストとを取り込む。
GOP特徴抽出部410は、学習データ記憶部421に記憶されている学習済みデータを用いて、取り込んだGOPの特徴量を算出する。全結合層420は、GOP特徴抽出部410が出力する特徴量と、ピクチャタイプリストと、GOP初期QPと、学習データ記憶部421に記憶されている学習済みデータとに基づいて、符号化対象のGOPに含まれる符号化対象画像情報毎のピクチャ目標符号量を算出する。GOP目標符号量推定部18は、算出した符号化対象画像情報毎のピクチャ目標符号量を初期QP推定部10aに出力する(ステップSb7)。
符号量制御部1aの初期QP推定部10a及びブロック目標符号量推定部11aは、ステップSb8、ステップSb9及びループLb3s〜Lb3eの処理をGOPに含まれる各符号化対象画像情報について繰り返し行う(ループLb2s〜Lb2e)。
初期QP推定部10aが、GOP分割部41が出力する符号化対象画像情報、または減算器19が出力する符号化対象画像情報と参照画像情報の差分である符号化対象の差分画像情報と、当該符号化対象画像情報に対応するピクチャタイプと、GOP目標符号量推定部18が出力する当該符号化対象画像情報に対応するピクチャ目標符号量とを取り込む。
画像選択部134は、ピクチャタイプに従って、符号化対象画像情報、または符号化対象差分画像情報のいずれかを符号化対象の入力画像情報として特徴抽出部110に出力する。特徴抽出部110は、学習データ記憶部121に記憶されている学習済みデータを用いて、画像選択部134が出力する符号化対象の入力画像情報の特徴量を算出する。
全結合層120aは、特徴抽出部110が出力する特徴量と、ピクチャタイプと、ピクチャ目標符号量と、学習データ記憶部121に記憶されている学習済みデータとに基づいて、初期QPを算出する。初期QP推定部10aは、算出した初期QPをブロック目標符号量推定部11aに出力する(ステップSb8)。
ブロック目標符号量推定部11aは、ブロック分割部30が出力する符号化対象ブロック画像情報、または減算器31が出力する符号化対象ブロック画像情報と参照ブロック画像情報の差分である差分ブロック画像情報と、当該符号化対象ブロック画像情報のピクチャタイプと、初期QP推定部10aが出力する初期QPとを取り込む。
ブロック画像選択部235は、ピクチャタイプに従って、符号化対象ブロック画像情報、または符号化対象差分ブロック画像情報のいずれかを入力ブロック画像情報として特徴抽出部210に出力する。特徴抽出部210は、学習データ記憶部221に記憶されている学習済みデータを用いて、ブロック画像選択部235が出力する符号化対象の入力ブロック画像情報の特徴量を算出する。
全結合層220aは、特徴抽出部210が出力する特徴量と、初期QPと、学習データ記憶部221に記憶されている学習済みデータとに基づいて、ブロック目標符号量を算出する。ブロック目標符号量推定部11aは、算出したブロック目標符号量を累積目標符号量算出部12に出力する(ステップSb9)。
以下、量子化パラメータ補正部22が、符号化対象画像情報の各ブロック画像情報について、ステップSb10からステップSb13の処理を繰り返し行う(ループLb3s〜Lb3e)。累積目標符号量算出部12は、符号化部3において符号化対象となっているブロック画像情報の直前のブロック画像情報までのブロック目標符号量の累積値である累積目標符号量Tsumを算出する。
累積発生符号量算出部13は、可変長符号化部33が出力するブロック発生符号量のうち、符号化部3において符号化対象となっているブロック画像情報の直前のブロック画像情報までのブロック発生符号量の累積値である累積発生符号量Bsumを算出する(ステップSb10)。累積目標符号量Tsumを式で表すと次式(17)となり、累積発生符号量Bsumを式で表すと次式(18)となる。
式(18)において、B(i)は、i番目のブロック画像情報のブロック発生符号量である。
符号量誤差算出部14は、累積発生符号量算出部13が出力する累積発生符号量Bsumと、累積目標符号量算出部12が出力する累積目標符号量Tsumとに基づいて、次式(19)により符号量誤差Dを算出して最終QP算出部16に出力する。
平均QP算出部15は、最終QP算出部16が出力するブロック画像情報毎のQPを取り込み、符号化部3において符号化対象となっているブロック画像情報の直前のブロック画像情報までのQPの平均値である平均QPを次式(20)に基づいて算出する(ステップSb11)。
最終QP算出部16は、次式(21)により補正QPであるdeltaQPを算出する(ステップSb12)。
式(21)において、BlkProc_cntは、可変長符号化部33が出力する符号化対象画像情報内の符号化済みブロック数である。また、deltaQPorgは、次式(22)に基づいて、符号量誤差算出部14が算出する符号量誤差Dから求められる値であり、kは調整パラメータ係数である。
最終QP算出部16は、平均QP算出部15が出力する平均QP(QPmean)と、算出した補正QP(deltaQP)とに基づいて、次式(23)により最終的なQPを算出して直交変換・量子化部32に出力する(ステップSb13)。
式(23)においてRound()の関数は、切り上げ、切り下げ、四捨五入等の丸め演算を行う関数を意味する。符号化部3aは、符号量制御部1aがブロック画像情報毎に出力するQPを用いて各ブロック画像情報の符号化を行い、全てのブロック画像情報の符号化が終了するまで処理を繰り返す。
なお、第2の実施形態の符号量制御部1において、図12に示すように、量子化パラメータ補正部22を1つの量子化パラメータ補正装置1Bとして構成するようにしてもよい。
また、上記の第2の実施形態の構成では、初期QP推定部10aの画像選択部134は、Pピクチャ、またはBピクチャの場合、差分画像情報を選択し、Iピクチャの場合、画像情報を選択するようにしている。また、ブロック目標符号量推定部11aのブロック画像選択部235は、Pピクチャ、またはBピクチャの場合、差分ブロック画像情報を選択し、Iピクチャの場合、ブロック画像情報を選択するようにしている。しかしながら、本発明の構成は、当該実施の形態に限られない。例えば、図13に示すような映像符号化装置Cbを構成し、初期QP推定部10bは、ピクチャタイプに関わらず、画像情報のみを上述した入力画像情報として処理を行うようにしてもよいし、ブロック目標符号量推定部11bも、ピクチャタイプに関わらず、ブロック画像情報のみを上述した入力ブロック画像情報として処理を行うようにしてもよい。なお、この場合、初期QP推定部10bの構成は、初期QP推定部10aから画像選択部134を除いた構成となり、ブロック目標符号量推定部11bの構成は、ブロック目標符号量推定部11aからブロック画像選択部235を除いた構成となる。
上記の第1及び第2の実施形態の構成により、最終QP算出部16は、ブロック目標符号量推定部11が出力する符号化済みのブロック画像情報の目標符号量と、可変長符号化部33が出力する可変長符号化部33が出力する符号化済みのブロック画像情報の発生符号量及び符号化済みのブロック画像情報の数とに基づいて、符号化対象のブロック画像情報に適用するQPに対する補正QP(deltaQP)を算出する。最終QP算出部16は、符号化済みのブロック画像情報に適用したQPと、補正QP(deltaQP)とに基づいて、符号化対象のブロック画像情報に適用するQPを算出する。
すなわち、上記の第1及び第2の実施形態の構成において、累積目標符号量算出部12は、ブロック目標符号量推定部11が出力する符号化済みのブロック画像情報の目標符号量の累積値を出力する。累積発生符号量算出部13は、可変長符号化部33が出力する符号化済みのブロック画像情報の発生符号量の累積値を出力する。符号量誤差算出部14は、累積目標符号量算出部12が出力するブロック目標符号量の累積値と、ブロック発生符号量の累積値の符号量誤差Dを算出する。最終QP算出部16は、式(13)及び式(22)に基づいて、式(12)及び式(21)の第1項を算出し、第1項の値を可変長符号化部33が出力する符号化済みのブロック画像情報の数(BlkProc_cnt)で除算することで式(12)の第2項を算出する。
上記の第1及び第2の実施形態の構成では、QPの補正値である補正QP(deltaQP)の算出を2つの目的から行っている。1つ目の目的は、背景技術1を参照して述べた仮想的なバッファ、すなわち目標符号量と発生符号量の符号量誤差を直接解消することであり、これは式(12)及び式(21)における第1項に対応する。2つめの目的は、過去の符号化結果からこれから符号化する符号化対象ブロック画像情報それ自体に符号量誤差が発生しないように考慮したものであり、これは式(12)及び式(21)における第2項に対応する。
背景技術1の構成は、式(12)及び式(21)における第1項目のみから補正QPを算出する構成に相当する。そのため、過去の累積符号量誤差、すなわち符号化対象のブロック画像情報の直前までの符号量誤差を解消することができても、符号化対象のブロック画像情報において符号量誤差が発生してしまう可能性が高い。
これに対して、第1及び第2の実施形態の構成では、式(12)及び式(21)の第1項において過去の累積符号量誤差、すなわち符号化対象のブロック画像情報の直前までの符号量誤差を直接解消するとともに、式(12)及び式(21)の第2項において符号化対象のブロック画像情報の符号量誤差の発生を補正するようにしている。また、式(14)及び(23)に示すように、初期QPに対して補正QPを適用するのではなく、符号化対象ブロック画像情報の直前までのQPの平均値である平均QPに対して補正QPを適用するようにしている。初期QPに対して補正すると、もし初期QPが大きく誤っていた場合に誤差が生じてしまう。一方で、平均QPはエンコード処理が進むにつれて画像情報特性を反映したQPとなっているため、初期QPが大きく誤っていたとしても自動的に修正することができる。
これらの第1及び第2の実施形態の構成により、符号化対象の画像情報の画質を均一に保ちつつ所望の符号量とするような、より正確なQPの補正を行うことができる。したがって、目標符号量に近い符号量の制御を行うことができ、画質が向上すると共に所望の符号量、例えば、第1の実施形態では、所望のファイルサイズとしたり、第2の実施形態では所望のビットレートにしたりすることを可能としている。
なお、上記の第1及び第2の実施形態において、平均QP算出部15は、最初のブロック画像情報については、初期QP推定部10,10aが出力する初期QPを初期値として取り込み、平均QPに替えて、取り込んだ初期QPをそのまま最終QP算出部16に出力する。また、最初のブロック画像情報の場合、符号量誤差算出部14は、符号量誤差D=0として出力するため、式(13)及び式(22)によりdeltaQPorg=0となる。式(12)及び式(21)の2項目は、deltaQPorgが「0」であり、更に、符号化済みブロック数BlkProc_cntも「0」となる。そのため、最初のブロック画像情報については、最終QP算出部16は、deltaQP=0とする。したがって、最終QP算出部16は、式(14)及び式(23)に基づいて、最初のブロック画像情報に適用するQPを初期QP(QPinit)とする。
また、上記の第1及び第2の実施形態において、学習処理は並列に行われてもよいため、図4のフローチャートのステップSa1及びSa2が並列に行われてもよく、また、図11のステップSb1,Sb2,Sb3,及びSb4が並列に行われてもよい。また、図2、図3、図7〜図10における特徴抽出部110,210及びGOP特徴抽出部310,410の個数であるNは、1以上の整数であれば各々が異なる値であってもよい。
また、上記の第1及び第2の実施形態において、初期QP推定部10,10a、ブロック目標符号量推定部11,11a、GOP初期QP推定部17及びGOP目標符号量推定部18は、例えば、機械学習モデルによって学習処理を行うとしており、図2、図3、図7から図10は、例えば、ディープラーニングを行うディープニューラルネットワークの構成の一例を示したものである。しかしながら、本発明は、当該実施の形態に限られず、他の異なる構成のディープニューラルネットワークを用いて学習処理を行うようにしてもよく、また、学習処理を行うことなく数学的な演算手段に基づいて関係性を示す非線形関数を求めて、求めた非線形関数を関係性情報にするようにしてもよく、関係性を推定する所定の推定手段であればどのような手段を用いるようにしてもよい。
また、上記の第1及び第2の実施形態において、初期QP推定部10,10a、ブロック目標符号量推定部11,11a、GOP初期QP推定部17及びGOP目標符号量推定部18は、特徴抽出部110,210及びGOP特徴抽出部310,410において特徴量及び特徴量を算出するようにしているが、本発明の構成は、当該実施の形態に限られない。十分な数の入力情報があれば、特徴量を算出することなく、入力情報をそのまま全結合層320に与えて学習処理を行うようにしてもよい。ここで、入力情報とは、学習処理において与える画像情報、ピクチャ目標符号量、ブロック画像情報、初期QP、GOP、ビットレート、ピクチャタイプリスト、GOP初期QP、入力画像情報、ピクチャタイプ、ピクチャ目標符号量、入力ブロック画像情報の情報である。
また、上記の第1及び第2の実施形態において、誤差算出部131,231,331,431は、誤差が、閾値以下になった場合に学習処理を終了するとしているが、本発明の構成は、当該実施の形態に限られるものではない。「以下であるか否かを」という判定は一例に過ぎず、閾値の定め方に応じて、「未満であるか否か」を判定するようにしてもよい。すなわち、上記の閾値判定処理については、判定対象の値が、閾値未満であるか否かを判定するようにしてもよい。
また、上記の第1及び第2の実施形態において、映像符号化装置C,Ca,Cbは、例えば、H.265/HEVC(High Efficiency Video Coding)の標準規格に準拠する装置として説明したが、当該標準規格に限られるものではなく、他の標準規格に準拠する装置であってもよい。
上述した実施形態における量子化パラメータ補正装置1Bをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。