(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-03-06
(45)【発行日】2024-03-14
(54)【発明の名称】映像符号化装置、および、映像符号化方法
(51)【国際特許分類】
H04N 19/119 20140101AFI20240307BHJP
H04N 19/147 20140101ALI20240307BHJP
H04N 19/152 20140101ALI20240307BHJP
H04N 19/176 20140101ALI20240307BHJP
【FI】
H04N19/119
H04N19/147
H04N19/152
H04N19/176
(21)【出願番号】P 2023021544
(22)【出願日】2023-02-15
【審査請求日】2023-02-15
(73)【特許権者】
【識別番号】591230295
【氏名又は名称】NTTイノベーティブデバイス株式会社
(74)【代理人】
【識別番号】100083806
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【氏名又は名称】伊藤 正和
(74)【代理人】
【識別番号】100098327
【氏名又は名称】高松 俊雄
(72)【発明者】
【氏名】澤田 直樹
(72)【発明者】
【氏名】島崎 亜希子
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2017-028337(JP,A)
【文献】特開2017-005505(JP,A)
【文献】特開2016-187140(JP,A)
【文献】米国特許出願公開第2012/0269274(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
異なるサイズのブロックの組み合わせに基づいて映像を画像毎にブロック単位で符号化し、前記ブロックを任意に組み合わせた複数の組み合わせ候補の各コスト値を計算する符号化回路と、
前記ブロック単位で符号化された前記画像の符号化データを蓄積するバッファ回路と、
前記バッファ回路のバッファ残量と1画像内のブロック数または前記1画像内のブロック数に相当する指標とに基づいてオフセット値を計算するオフセット計算回路と、
前記オフセット値を含む前記各コスト値に基づいて前記複数の組み合わせ候補の中から符号化用の組み合わせを決定するブロックサイズ決定回路と、
を備える映像符号化装置。
【請求項2】
前記1画像内のブロック数に相当する指標は、
前記1画像における、全符号化データのデータ量および前記全符号化データの全オーバーヘッドのデータ量に対する、前記全符号化データの全オーバーヘッドのデータ量の比率である請求項1に記載の映像符号化装置。
【請求項3】
前記オフセット値は、前記バッファ回路のバッファ残量が第1の閾値未満の場合、第1の値であり、前記バッファ回路のバッファ残量が前記第1の閾値以上で第2の閾値未満、かつ、前記1画像内のブロック数が多い場合、第2の値であり、前記バッファ回路のバッファ残量が前記第1の閾値以上で前記第2の閾値未満、かつ、前記1画像内のブロック数が少ない場合、第3の値であり、前記バッファ回路のバッファ残量が前記第2の閾値以上の場合、ゼロの値であり、
前記第1の値は、前記第2の値よりも大きい値であり、
前記第2の値は、前記第3の値よりも大きい値であり、
前記第3の値は、前記ゼロよりも大きい値である請求項1に記載の映像符号化装置。
【請求項4】
前記コスト値は、
符号量と映像品質とのうち少なくとも1つに関する値である請求項1に記載の映像符号化装置。
【請求項5】
前記コスト値は、符号量と映像の歪量とのうち少なくとも1つに関する値であり、
前記ブロックサイズ決定回路は、
前記オフセット値を含む前記コスト値が最も小さい組み合わせ候補を前記符号化用の組み合わせとして決定する請求項1に記載の映像符号化装置。
【請求項6】
映像符号化装置で行う映像符号化方法において、
符号化回路が、異なるサイズのブロックの組み合わせに基づいて映像を画像毎にブロック単位で符号化し、前記ブロックを任意に組み合わせた複数の組み合わせ候補の各コスト値を計算し、
バッファ回路が、前記ブロック単位で符号化された前記画像の符号化データを蓄積し、
オフセット計算回路が、前記バッファ回路のバッファ残量と1画像内のブロック数または前記1画像内のブロック数に相当する指標とに基づいてオフセット値を計算し、
ブロックサイズ決定回路が、前記オフセット値を含む前記各コスト値に基づいて前記複数の組み合わせ候補の中から符号化用の組み合わせを決定する、
映像符号化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、映像符号化装置、および、映像符号化方法に関する。
【背景技術】
【0002】
映像信号の符号化は、ブロック単位で行われている。H.264では、MB(Macro Block)という16×16画素単位で符号化処理が行われていた。
【0003】
一方、HEVC(High Efficiency Video Coding)では、CU(Coding Unit)と称される64×64画素、32×32画素、16×16画素、8×8画素の4種類のブロックサイズで符号化処理が行われる。具体的には、映像信号はCTU(Coding Tree Unit)に分割され、各CTUは可変サイズのCUに分割される。CTUは、CUの組み合わせとして表現される。
【0004】
CUの組み合わせは、符号化時の演算量、符号化後の符号量、符号化後の画像品質等に基づいて、最適なCUを選択する必要がある。特許文献1~特許文献4では、様々なCU選択方法が提案されている。
【0005】
特許文献1では、CUの大きいブロックサイズから小さなブロックサイズの順に、各画素の輝度値のバラツキを示す指標のアクティビティから分散値を求め、その分散値と閾値とを比較してCUを選択する方法を開示している。
【0006】
特許文献2では、RD(Rate Distortion)コスト(発生情報量とフラグ情報を合算したもの)を算出する際に、従来では全てのブロックサイズに対してRDコストを算出していたが、プレ処理部の処理動作を行った後に決定したブロックサイズについてのみRDコストの算出を行う。これにより、従来複数回必要であったコスト算出の処理回数を1回にでき、符号化の演算量を抑制している。
【0007】
特許文献3では、予測処理の予測結果を受けて、符号化コストを計算し、その符号化コストが最小となる予測モードおよびブロックサイズの組み合わせを選択する。符号化コストは、「D+λ・R」(Dは歪み量、λは所定値、Rは符号量)の値を使用するとしている。その値の算出が困難な場合には、Dの代わりに差分絶対値等を使用し、Rには仮見積もり符号量を使用するとしている。
【0008】
更に、当該特許文献3では、符号化コストにオフセット値を設定することで、CTUの中で画像の特徴量が異なる領域が混在する場合に、複雑な領域と平坦な領域が一つのCUの中に混在することを抑制できることを開示している。この場合、オフセット値は、大きなブロックサイズを抑制してそれより小さなブロックサイズの発生比率を増加させるために加算するもの、または、CUへの分割を促進するために加算するものと示されている。
【0009】
特許文献4では、画面間予測処理において、符号化対象ピクチャの参照構造における階層の深さ(Temporal ID)と符号化済みピクチャの動きベクトルの統計値情報とに基づき、ブロックサイズ候補のコスト比較におけるオフセット値を決定し、コスト比較によりブロックサイズ候補を適切に絞り込むことで、動き探索に要する演算量を削減することが開示されている。
【0010】
当該特許文献4では、64×64ブロックサイズにのみ負のオフセット値を設定することによって、より大きいブロックサイズが選ばれやすくなるため、動きがばらけているピクチャは動きのばらけによってブロックサイズが小さくなりすぎることを防ぎ、Temporal IDが大きいピクチャではより大きなブロックで動き予測が行われることで符号量削減が望めることが示されている。オフセット値は、Temporal IDを用いて決定している。
【先行技術文献】
【特許文献】
【0011】
【文献】特開2015-109586号公報
【文献】特開2016-187140号公報
【文献】特開2017-005505号公報
【文献】特開2017-028337号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、特許文献1は、CU選択処理の演算量の低減を目的としており、符号量の低減が不十分である。特に、細かな絵柄を符号化するシーンでは、ブロックサイズが小さくなり、符号化対象のブロック数が増えるため、符号化データのオーバーヘッドが増加し、符号量の増加を抑制できず、符号化データを蓄積するバッファが供給データを蓄積しきれないというバッファ破綻が発生する恐れがあった。
【0013】
特許文献2は、CUを選択するためのコスト算出の処理回数の低減を目的としている。バッファ破綻の可能性があったとしても、プレ処理において仮決定したブロックサイズのCUをそのまま維持して処理してしまうため、必ずしも情報量の削減につながらない場合があり、バッファ破綻の可能性が生じる。
【0014】
特許文献3は、複雑な領域と平坦な領域が一つのCUの中に混在することを抑制することを目的としている。その目的を達成するため、コスト計算にオフセット値を設定することで、小さなブロックサイズの発生比率を増加させ、CUへの分割を促進するようにしているが、CU数が多い場合には必ずしも符号量の削減につながらない場合があるため、バッファ破綻の可能性が生じる。
【0015】
特許文献4は、ブロックサイズ候補を適切に絞り込んで動き探索処理を行うことで、符号化効率を低下させずに画面間予測処理に要する処理量を削減することを目的としている。コスト計算の際、64×64ブロックサイズにのみ負のオフセット値を設定することで、大きなブロックサイズが選ばれやすくなり符号量削減が望めるとしているが、処理量の低減による符号量の増加を抑制するためと考えられ、符号量の低減については十分でなく(画面内予測処理に要する処理量など)、バッファ破綻の恐れがある。また、オフセット値の計算においては、Temporal IDおよび動きベクトル統計値から算出するため、複雑な計算が必要となる。
【0016】
すなわち、映像信号の符号化処理における従来のCU選択方法では、符号量の低減が十分でないため、符号化データの出力時において、符号化データを一時蓄積するバッファ回路でバッファ破綻が生じる可能性が小さくないという課題があった。
【0017】
本開示は、上記事情に鑑みてなされたものであり、映像データの符号化時にバッファ破綻が発生する可能性を改善可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0018】
本開示の一態様の映像符号化装置は、異なるサイズのブロックの組み合わせに基づいて映像を画像毎にブロック単位で符号化し、前記ブロックを任意に組み合わせた複数の組み合わせ候補の各コスト値を計算する符号化回路と、前記ブロック単位で符号化された前記画像の符号化データを蓄積するバッファ回路と、前記バッファ回路のバッファ残量と1画像内のブロック数または前記1画像内のブロック数に相当する指標とに基づいてオフセット値を計算するオフセット計算回路と、前記オフセット値を含む前記各コスト値に基づいて前記複数の組み合わせ候補の中から符号化用の組み合わせを決定するブロックサイズ決定回路と、を備える。
【0019】
本開示の一態様の映像符号化方法は、映像符号化装置で行う映像符号化方法において、符号化回路が、異なるサイズのブロックの組み合わせに基づいて映像を画像毎にブロック単位で符号化し、前記ブロックを任意に組み合わせた複数の組み合わせ候補の各コスト値を計算し、バッファ回路が、前記ブロック単位で符号化された前記画像の符号化データを蓄積し、オフセット計算回路が、前記バッファ回路のバッファ残量と1画像内のブロック数または前記1画像内のブロック数に相当する指標とに基づいてオフセット値を計算し、ブロックサイズ決定回路が、前記オフセット値を含む前記各コスト値に基づいて前記複数の組み合わせ候補の中から符号化用の組み合わせを決定する。
【発明の効果】
【0020】
本開示によれば、映像データの符号化時にバッファ破綻が発生する可能性を低減可能な技術を提供できる。
【図面の簡単な説明】
【0021】
【
図2】イントラ/インター予測回路の構成例を示す図である。
【
図3】ブロックサイズの大きさの違いによる符号量の比較例を示す図である。
【
図4】ブロックサイズ決定回路の構成例を示す図である。
【
図5】映像符号化方法の処理フローを示す図である。
【
図6】オフセット値の計算処理フローを示す図である。
【
図7】コスト値の比較およびブロックサイズの組み合わせ選択の処理フローを示す図である。
【
図8】
図7に示したステップS301の処理イメージを示す図である。
【
図9】
図7に示したステップS302の処理イメージを示す図である。
【
図10】
図7に示したステップS303の処理イメージを示す図である。
【
図11】オフセット値のかかり方の概念を示す図である。
【
図13】本開示適用前および適用後の各ブロックサイズ数の選択比率のシミュレーション結果を示す図である。
【
図14】本開示適用前および適用後のSN比を示す図である。
【
図15】本開示適用前および適用後のバッファ残量を示す図である。
【発明を実施するための形態】
【0022】
以下、図面を参照して、本開示の実施形態を説明する。図面の記載において同一部分には同一符号を付し説明を省略する。
【0023】
[本開示の概要]
特許文献3では、小さなブロックサイズの発生比率を増加させる(CU数を多くする)ためにオフセット値を符号化コストに設定していた。反対に本開示では、大きなブロックサイズの発生比率を増加させる(CU数を少なくする)ためにオフセット値を符号化コストに設定する点に特徴がある。この点、特許文献4では、大きなブロックサイズの発生比率を増加させているが、本開示では、更に符号化データを蓄積するバッファ回路でバッファ破綻が生じないようにオフセット値を設定する点に特徴がある。
【0024】
以降、本実施形態に係る映像符号化装置について説明する。本実施形態に係る映像符号化装置は、HEVCやHEVCに準じる規格に基づく映像符号化装置である。本実施形態では、HEVCに基づいて映像符号化を行う場合を例に説明する。ただし、HEVCにおけるCUのように、符号化の基本単位が複数のブロックサイズで定義され、その複数のブロックサイズを組み合わせてピクチャ(画像)毎に映像符号化を行う映像符号化装置や映像符号化方法に適用可能である。
【0025】
[映像符号化装置の構成例]
図1は、本実施形態に係る映像符号化装置1の構成例を示す図である。映像符号化装置1は、符号化回路11と、バッファ回路12と、オフセット計算回路13と、ブロックサイズ決定回路14と、を備える。
【0026】
[符号化回路11]
符号化回路11は、映像符号化装置1に入力された画像データをピクチャ毎に、更にそれを分割したCTU毎にCUのブロック単位で符号化する回路である。符号化回路11は、予測残差生成部111と、DCT(Discrete Cosine Transform)変換部112と、量子化部113と、可変長符号化部114と、逆量子化部115と、逆DCT部116と、復号部117と、イントラ/インター予測回路118と、を備える。
【0027】
予測残差生成部111は、映像符号化装置1に入力された画像データとイントラ/インター予測回路118から出力された予測信号との差分を予測残差信号として生成する。その後、DCT変換部112、量子化部113、可変長符号化部114は、その予測残差信号を符号化し、符号化した符号化データをバッファ回路12に蓄積する。
【0028】
その際、復号部117は、逆量子化部115および逆DCT部116によって復元された予測残差信号と、イントラ/インター予測回路118で過去に予測されていた予測信号と、を基に、実際の映像データを示す復号信号を生成する。このとき、1ピクチャ分の復号信号が生成される。その後、イントラ/インター予測回路118は、その1ピクチャ分または複数ピクチャ分の復号信号に基づき、再び次の予測信号を生成する。
【0029】
なお、「予測」とは、時刻trの画像フレームから時刻tの画像フレームを予測することをいう。「予測信号」とは、時刻trの画像フレームを基に予測した時刻tの画像フレームである。時刻trとは、符号化順で時刻tよりも過去の時刻のことである。「予測残差信号」とは、予測した時刻tの画像フレームと時刻tの画像フレームとの差の信号である。予測が正確であるほど、予測残差信号は小さくなる。
【0030】
上記動作は、HEVCで行われる符号化の基本動作である。
図1に示した符号化回路11は、HEVCで符号化を行うための典型例である。符号化回路11は、
図1に示した構成に限定されず、HEVCの符号化を実行可能であればその他の構成でも構わない。
【0031】
[バッファ回路12]
バッファ回路12は、符号化回路11でCTU毎に符号化された符号化データを1ピクチャ分または複数ピクチャ分一時的に蓄積し、蓄積した1ピクチャ分または複数ピクチャ分の符号化データを映像符号化装置1から外部へ出力する回路である。
【0032】
[符号化回路11のイントラ/インター予測回路118]
符号化回路11を構成するイントラ/インター予測回路118について説明する。上記の通り、イントラ/インター予測回路118は、1ピクチャ分の復号信号に基づき、再び次の予測信号を生成する回路である。
【0033】
符号化回路11での符号化は、1ピクチャをCTUに分割したCTU毎に行われる。HEVCでは、CTUは更にCUに分割され、CU毎に符号化が行われる。CU毎の符号化によって生成された符号化データが合成されてCTUの符号化データとなる。
【0034】
HEVCで規定されているCUのブロックサイズは、64×64画素、32×32画素、16×16画素、8×8画素の4種類である。以降、それぞれを64×64、32×32、16×16、8×8と表記する。CTUからCUへの分割は、ブロックサイズ決定回路14でのブロックサイズの決定結果に基づいて行われる。
【0035】
図2は、イントラ/インター予測回路118の構成例を示す図である。イントラ/インター予測回路118は、予測信号候補生成部1181と、予測信号決定部1182と、を備える。
【0036】
予測信号候補生成部1181は、イントラ/インター予測回路118の予測時点で候補となりうるCUのブロックサイズの組み合わせの予測信号の候補を生成し、予測信号決定部1182へ供給する。この時、予測信号候補生成部1181は、生成した複数の予測信号候補にそれぞれ対応したコスト値を算出し、算出した各予測信号候補のコスト値をブロックサイズ決定回路14へ供給する。
【0037】
予測信号決定部1182は、予測信号候補生成部1181から供給された複数の予測信号候補の中から、ブロックサイズ決定回路14で決定された決定ブロックサイズに対応する予測信号候補を選択し、選択した予測信号候補を予測信号として予測残差生成部111および復号部117へ出力する。
【0038】
[コスト値]
コスト値とは、符号化データの映像品質・画像品質や符号量を表す指標・評価値である。符号化に係るコストであり、符号化コストとも言う。
【0039】
例えば、コスト値は、特許文献3に示すように、「D+λ・R」(Dは歪み量、λは所定値、Rは符号量)で計算する。Dの代わりに、差分絶対値和(SAD値:Sum of Absolute Difference)やアダマール変換後の差分絶対値和(SATD値:Sum of Absolute Transformed Difference)を使用してもよい。Rには、仮見積もり符号量を使用してもよい。
【0040】
コスト値は、映像品質の劣化量や符号量に対応するものであれば、直接それらを示す値に限定されない。それらに関連付けられた他のパラメータも使用可能である。
【0041】
コスト値は、小さいほど、少ない符号量で画像劣化量の少ない(画像品質の高い)符号化が行えることを示す。コスト値は、一般的にはブロックサイズが小さいほど小さい。従って、ブロックサイズ決定回路14で行うCUのブロックサイズの決定においては、基本的には、コスト値が小さくなる(ブロックサイズが小さくなる)ようにブロックサイズの組み合わせを選択する。
【0042】
[ブロックサイズの選択方法]
一方、大きなブロックサイズの方(CU数の少ない方)が全体の符号量が小さくなる場合がある。ブロックサイズの大きさ(CU数)の違いによる符号量の比較例を
図3に示す。
図3(a)は、4個の8×8の符号量を示す図である。
図3(b)は、1個の16×16の符号量を示す図である。
図3(a)では、1個の16×16を4個の8×8に分割した場合を示している。
【0043】
それぞれの符号量は、主にcoeffとオーバーヘッド(OH)とで構成される。coeffは、予測残差を符号化した符号化データの符号量であり、画像に直接寄与する。OHは、画像に直接寄与しない補助的情報であり、CU毎に必要である。OHは、CUの大きさによらずほぼ一定量である。
【0044】
図3の右側には、符号量の削減により、coeffを例えば1/2に削減した場合も示している。この場合、OHは符号量の削減に寄与しない。なお、符号量の削減は、例えば、量子化部113でのステップのQP(Quantization Parameter)値を上げる方法等が考えられる。
【0045】
ここで、一般的には、小さなブロックサイズの方が予測残差は小さくなるため、coeffが小さくなる傾向があり、1個の16×16よりも4個の8×8の方がOHも含めて全体の符号量は小さい。
【0046】
しかし、それぞれについてcoeffの符号量を例えば1/2に削減すると、全体の符号量は16×16の方が小さくなる。これは、ブロックサイズが小さい(CU数が多い)と符号量の削減に寄与しないOHの数がその分多くなるため、全体として符号量の削減効果が小さくなるからである。この場合、大きなブロックサイズの方が符号量の削減効果が大きい。
【0047】
従って、符号量の削減を伴う場合には、大きなブロックサイズの方が全体の符号量が小さくなる場合があると言える。そのため、バッファ回路12でバッファ破綻が発生するような状況においては、より大きなブロックサイズを選択することで、バッファ破綻を抑制することが可能となる。大きなブロックサイズの選択により多少の画質劣化が想定されるが、バッファ破綻による画質劣化に比べると許容範囲と考えられる。
【0048】
具体的には、オフセット計算回路13において、より大きなブロックサイズの発生比率を増加させる(CU数をより少なくする)ように誘導させるオフセット値を算出する。そして、ブロックサイズ決定回路14において、オフセット加算後のコスト値が最小となるブロックサイズの組み合わせを選択する。
【0049】
以降、オフセット計算回路13およびブロックサイズ決定回路14について説明する。
【0050】
[オフセット計算回路13]
オフセット計算回路13は、オフセット値を計算する回路である。具体的には、オフセット計算回路13は、1ピクチャにおけるCU数およびバッファ回路12のバッファ占有量(バッファ残量)に基づき、より大きなブロックサイズ(より少ないCU数)が選択されやすいように誘導する各ブロックサイズのオフセット値を計算する。
【0051】
1ピクチャにおけるCU数に代えて、1ピクチャにおける符号量のオーバーヘッド比率(OH比率)を用いてもよい。OH比率は、
図3に示した通り、CU数に関連付けられるからである。
【0052】
「1ピクチャにおけるCU数」および「1ピクチャにおける符号量のオーバーヘッド比率(OH比率)」について補足(例示)しておく。CU数やOH比率は、1ピクチャ毎に計算される。例えば、4つの8×8の符号量におけるCU数は、4となる。4つの8×8の符号量におけるOH比率は、「4つのOHのデータ量/{(4つのcoeff+4つのOH)のデータ量(=全符号量)}」で計算する。
【0053】
なお、オフセット値の具体的な計算方法については、後述する。このオフセット値は、ブロックサイズ決定回路14に供給される。
【0054】
[ブロックサイズ決定回路14]
ブロックサイズ決定回路14は、CTUからCUのブロックサイズへの分割の組み合わせを決定する回路である。CUのブロックサイズの組み合わせは、イントラ/インター予測回路118から供給された各組み合わせのコスト値と、オフセット計算回路13から供給されたオフセット値と、に基づいて決定される。
【0055】
なお、コスト値とは、上記の通り、符号化した際の符号量や画像品質(歪量等)を示す評価値であり、コスト値が小さい程、低符号量および低歪を示し、符号化効率がよいとされる。
【0056】
図4は、ブロックサイズ決定回路14の構成例を示す図である。ブロックサイズ決定回路14は、加算部141と、サイズ選択部142と、を備える。
【0057】
加算部141は、イントラ/インター予測回路118からのコスト値に対し、オフセット計算回路13からのオフセット値を加算する。なお、加算以外に乗算等の四則演算や係数を掛けても構わない。
【0058】
サイズ選択部142は、オフセット値加算後のコスト値を複数の組み合わせ間で比較し、オフセット値加算後のコスト値が最小となるブロックサイズの組み合わせを選択する。サイズ選択部142は、選択したブロックサイズの組み合わせを決定ブロックサイズとして予測信号決定部1182に供給する。コスト値の具体的な比較方法およびブロックサイズの組み合わせの選択方法については、後述する。
【0059】
コスト値にオフセット値を加算することで、ブロックサイズの組み合わせの選択に方向づけが行われることになる。本実施形態では、より大きなブロックサイズが選択されやすいように誘導される。オフセット値は、上記の通り、1ピクチャにおけるCU数およびバッファ回路12のバッファ占有量(バッファ残量)を基に決定する。CU数が求められない場合には、1ピクチャ分の符号量のOH比率から推定可能である。
【0060】
このように、より大きなブロックサイズが選択されるようにすることで、1ピクチャにおけるCU数の増加と、その結果としてのOH数の増加による符号量の増加と、の2点を抑制可能となる。
【0061】
一般的には、符号化回路11では、符号化における符号量の削減が行われる。符号量削減の例として、上述した量子化部113でのステップのQP値を上げる方法、量子化部113のスケーリングリストを調整して高周波成分をカットする方法等が考えられる。しかし、これら符号量の削減を図っても、符号量がバッファ回路12の蓄積容量をオーバーして全ての符号化データが映像符号化装置1から伝送されないバッファ破綻が発生する場合がある。
【0062】
一方、本実施形態では、イントラ/インター予測後の符号化を実施する際、CUのブロックサイズの組み合わせの選択時により大きなブロックサイズが選定されるので、CU数の増加やOH比率の増加による符号量の増加を抑制可能となり、バッファ破綻を解消することが可能となる。本実施形態に係る映像符号化装置1は、符号量の削減が図られてもバッファ破綻が発生するような場合に適用できる。
【0063】
[映像符号化装置1の動作]
図5は、映像符号化装置1で行う映像符号化方法の処理フローを示す図である。
【0064】
ステップS101;
まず、符号化回路11は、決定ブロックサイズに基づいて映像データをピクチャ毎にブロック単位で符号化する。そして、バッファ回路12は、ブロック単位で符号化された各ピクチャの符号化データを一時的に蓄積する。
【0065】
その際、符号化回路11は、そのブロックを任意に組み合わせた複数の組み合わせ候補に対応する複数の予測信号候補を生成し、生成した複数の予測信号候補にそれぞれ対応したコスト値を算出し、算出した各予測信号候補のコスト値をブロックサイズ決定回路14へ供給する。
【0066】
ステップS102;
次に、オフセット計算回路13は、1ピクチャにおけるCU数およびバッファ回路12のバッファ占有量(バッファ残量)に基づき、後述するように、CU数が多いほど、バッファ占有量が大きい(バッファ残量が少ない)ほど、より大きな値が設定されたオフセット値を求め、求めたオフセット値をブロックサイズ決定回路14へ供給する。
【0067】
ステップS103;
次に、ブロックサイズ決定回路14は、各予測信号候補のコスト値にオフセット値を加算し、オフセット値加算後のコスト値を複数の予測信号候補間で比較し、最小となるコスト値の予測信号候補を選択し、選択した予測信号候補を決定ブロックサイズ(符号化用のブロックサイズ組み合わせ)として決定して符号化回路11へ供給する。
【0068】
ステップS104;
最後に、符号化回路11は、決定ブロックサイズに対応する予測信号候補を選択し、選択した予測信号候補を予測信号とし、その予測信号と映像符号化装置1に入力された画像データと差分を予測残差信号として生成して符号化し、符号化した符号化データをバッファ回路12に蓄積する。
【0069】
[オフセット計算回路13の動作]
図6は、オフセット計算回路13で行うオフセット値の計算処理フローを示す図である。図中、オフセット8、オフセット16、オフセット32、オフセット64は、それぞれ、ブロックサイズ8×8、ブロックサイズ16×16、ブロックサイズ32×32、ブロックサイズ64×64の各コスト値に加算するオフセット値を示す。1ピクチャ内において、同じブロックサイズのオフセットは、CTUやCUによらず同じにできる。
【0070】
また、バッファ回路12の蓄積状況、および、1ピクチャあたりのCU数の状況によって、ブロックサイズ毎に4通りのオフセット(0、a、b、c)を設定する。オフセット(0、a、b、c)の大きさは、同じブロックサイズにおいて、0<a<b<cとする。
【0071】
以下のアルゴリズムに従って、オフセット計算回路13は、ピクチャ毎に、バッファ回路12の破綻状況およびCU数の状況からオフセット値を計算する。
【0072】
ステップS201;
まず、オフセット計算回路13は、バッファ回路12でバッファ破綻が起こっているか否かを判定する。
【0073】
ステップS202;
次に、オフセット計算回路13は、バッファ破綻が起こっていない場合(バッファ残量≧α)、数秒後にバッファ破綻の可能性があるか否かを判定する。
【0074】
ステップS203;
次に、オフセット計算回路13は、数秒後にバッファ破綻の可能性がある場合(バッファ残量<β)、CU数が多いか否かを判定する。
【0075】
ステップS204;
オフセット計算回路13は、バッファ破綻が起こっている場合(バッファ残量<α)、CU数に関係なく、オフセット8~オフセット64にc8~c64をそれぞれ設定(オフセットc設定)する。
【0076】
ステップS205;
オフセット計算回路13は、バッファ破綻が起こっていない(バッファ残量≧α)が、数秒後にバッファ破綻の可能性があり(バッファ残量<β)、CU数が多い場合(OH比率≧γ)、オフセット8~オフセット64にb8~b64をそれぞれ設定(オフセットb設定)する。
【0077】
ステップS206;
オフセット計算回路13は、バッファ破綻が起こっていない(バッファ残量≧α)が、数秒後にバッファ破綻の可能性があり(バッファ残量<β)、CU数が少ない場合(OH比率<γ)、オフセット8~オフセット64にa8~a64をそれぞれ設定(オフセットa設定)する。
【0078】
ステップS207;
オフセット計算回路13は、数秒後にバッファ破綻の可能性がない場合(バッファ残量≧β)、CU数に関係なく、オフセット8~オフセット64に0をそれぞれ設定(オフセット0設定)する。オフセット0設定は、オフセットを設定しない場合となる。
【0079】
なお、α、β、γは、経験的に求めた値である。例えば、αは、0か0に近い値(負値も可能)に設定でき、βは、比較的0に近い値に設定でき、γは、数十%程度に設定できる。
【0080】
また、1ピクチャあたりのCU数は、全体の符号量に対するOHの符号量の比率から推測することができる。CU数とOHの比率には相関関係があるため、CU数の条件を、OHの比率の条件に置き換えることができる。OH比率は、全体の符号量のうちOHの符号量が占める割合である。OHの符号量はブロックサイズに関係なくほぼ一定であるため、例えばOH比率が高いとCUの数が多い傾向にあるとわかる。このことから、CU数の傾向を推測することができる。なお、OHの比率の他に、CU数と相関があるパラメータがある場合は、それを使用することもできる。
【0081】
図6に示したフローチャートにおいては、CU数が多いほど、バッファ破綻の可能性が高いほど、より大きなオフセット値を設定する(0<a<b<c)。CU数が少ないほど、バッファ破綻の可能性が低いほど、より小さなオフセット値を設定する。つまり、CU数が多い場合(すなわち、ブロックサイズが小さい場合)には、オフセット値を比較的大きく設定する。
【0082】
即ち、ブロックサイズ決定回路14では、オフセット値をコスト値に加算し、ブロックサイズが小さい方のオフセットを比較的大きくすることで、より大きなブロックサイズが選ばれやすくなる。これにより、バッファ破綻の可能性を低減できる。
【0083】
なお、オフセットa8~a64、b8~b64、c8~c64は、既存のコスト値よりも小さい値を設定する。既存のコスト値より大きな値を設定すると、コスト値よりもオフセットの方が支配的となり、オフセットの本来の役割である微調整の範囲を超える。
【0084】
[ブロックサイズ決定回路14のサイズ選択部142の動作]
図7は、ブロックサイズ決定回路14のサイズ選択部142で行うコスト値の比較およびブロックサイズの組み合わせ選択の処理フローを示す図である。
【0085】
サイズ選択部142は、イントラ/インター予測回路118の予測信号候補生成部1181で生成されたCUのブロックサイズの組み合わせの予測信号候補の全てのコスト値に、オフセット計算回路13で決定されたオフセットを加算し、オフセット加算後のコスト値を予測信号候補間で比較し、最適な予測信号候補を選択する。
【0086】
サイズ選択部142での比較および選択の動作は、以下のステップで行われる。ここでは、CTUが64×64であり、16個の16×16に分割された場合について説明する。
【0087】
ステップS301;
まず、サイズ選択部142は、16個の16×16のそれぞれについて、4個の8×8に分割したパターンの場合と、分割しない1個の16×16のパターンの場合と、について、コスト値+オフセット値を比較する。4個の8×8のコスト値は、それぞれのコスト値+オフセットの合計値とする。そして、値が小さい方のCU分割パターンを選択する。これを16個の16×16について行う。
【0088】
ステップS302;
次に、サイズ選択部142は、ステップS301で選択した16個のCU分割パターンと、32×32の分割しないパターンの場合と、について、コスト値+オフセットを比較する。16個のCU分割パターンのコスト値は、ステップS301で選択したパターンのコスト値+オフセットの合計値とする。そして、値が小さい方のCU分割パターンを選択する。これを4個の32×32について行う。
【0089】
ステップS303;
最後に、サイズ選択部142は、ステップS302で選択した4個のCU分割パターンと、64×64の分割しないパターンの場合と、について、コスト値+オフセットを比較する。4個のCU分割パターンのコスト値は、ステップS302で選択したパターンのコスト値+オフセットの合計値とする。そして、値が小さい方のCU分割パターンを選択する。
【0090】
(ステップS301の動作)
図8は、ステップS301の処理イメージを示す図である。
【0091】
上位サイズの4分割時の左上のブロックをブロックA、右上のブロックをブロックB、左下のブロックをブロックC、右下のブロックをブロックDで示す。
【0092】
また、コストn_Mを、上位サイズの4分割時のブロックM(=A~D)におけるn×nのコスト値と定義する。オフセットnを、ピクチャにおけるサイズn×nに対するオフセットと定義する。
【0093】
但し、コストn_Mは、同じ名称でも、上位のブロックが異なれば、値は異なる。例えば、コスト8_Aは、16×16のブロックAにおける8×8のコスト値であり、オフセット8は、サイズ8×8に対するオフセットである。但し、16×16のブロックAにおける8×8は、32×32のブロックAおよびブロックBに存在するが、それらのコスト8_Aの値は、同じではない。しかし、オフセット8は、共通である。
【0094】
図8(a)に示すように、4個の16×16のうち、ブロックAは、それを4個の8×8に分割したパターンの場合と、分割しない16×16のパターンの場合とで、コスト値が比較される。4個の8×8のコスト値は、コスト8_A+オフセット8、コスト8_B+オフセット8、コスト8_C+オフセット8、コスト8_D+オフセット8の合計値となる。対して、分割しない16×16のコスト値は、コスト16_A+オフセット16である。ここでは、両者のコスト値を比較して小さい方のサイズパターンを選択する。
【0095】
また、
図8(b)、(c)、(d)についても、4個の16×16のうち、ブロックB、C、Dで、同様に4個の8×8のパターンのコスト値の合計と、分割しない16×16のパターンのコスト値とを比較し、小さい方のサイズパターンを選択する。この選択状況は、画像の状況によって変わる。
【0096】
(ステップS302の動作)
図9は、ステップS302の処理イメージを示す図である。
【0097】
図7に示したステップS301の動作では、4個に分割した8×8のパターンにするか、分割しない16×16のパターンにするかを選択した。
図9に示すステップS302では、分割した4個の16×16をステップS301で選択したパターンにするか、分割しない32×32のパターンにするかを選択する。なお、コストn_Mおよびオフセットnの定義は、
図8の説明において示した内容と同じである。
【0098】
図9(a)では、4個の32×32のうち、ブロックAについて、それを4個の16×16に分割したパターンと、分割しない32×32のパターンとで、コスト値が比較される。4個の16×16のコスト値は、ステップS301で選択したブロックAのパターンの合計コスト、ステップS301で選択したブロックBのパターンの合計コスト、ステップS301で選択したブロックCのパターンの合計コスト、ステップS301で選択したブロックDのパターンの合計コストの総合計値となる。対して、分割しない32×32のパターンのコスト値は、コスト32_A+オフセット32である。ここでは、両者のコスト値を比較して小さい方のサイズパターンを選択する。
【0099】
また、
図9(b)、(c)、(d)についても、4個の32×32のうち、ブロックB、C、Dで、同様に4個の16×16のパターンのコスト値の合計と、分割しない32×32のパターンのコスト値とを比較し、小さい方のサイズパターンを選択する。
【0100】
(ステップS303の動作)
図10は、ステップS303の処理イメージを示す図である。
【0101】
図9に示したステップS302の動作では、4個に分割した16×16のパターンにするか、分割しない32×32のパターンにするかを選択した。
図10に示すステップS303では、分割した4個の32×32をそれぞれステップS302で選択したパターンにするか、分割しない64×64のパターンのままにするかを選択する。なお、コストn_Mおよびオフセットnは、
図8の説明において示した内容と同じである。
【0102】
図10(a)では、64×64を4個の32×32に分割したパターンと、分割しない64×64のパターンについて、コスト値が比較される。4個の32×32のコスト値は、ステップS302で選択したブロックAのパターンの合計コスト、ステップS302で選択したブロックBのパターンの合計コスト、ステップS302で選択したブロックCのパターンの合計コスト、ステップS302で選択したブロックDのパターンの合計コストの総合計値となる。対して、分割しない64×64のパターンのコスト値は、コスト64+オフセット64である。ここでは、両者のコスト値を比較して小さい方のサイズパターンを選択する。なお、コスト64は、上位のサイズが無いため、“_M”は付かない。
【0103】
図10(b)に、最終的に選択されたCU分割パターンの例を示す。この例では、ステップS301において、64×64のブロックAおよびその32×32のブロックAで4個の8×8のパターンが選択され、64×64のブロックAおよびその32×32のブロックB、C、Dで16×16のパターンが選択され、ステップS302において、64×64のブロックAは、そのまま選択され、64×64のブロックB、C、Dは、それぞれ32×32のパターンが選択され、ステップS303において、64×64のブロックA、B、C、Dがそのまま選択された場合を示している。結果的に、64×64において左上の方向に、より小さなCUブロックサイズが選択されている。
【0104】
[オフセット値のかかり方]
図11は、オフセット値のかかり方の概念を示す図である。
【0105】
64×64内で、ブロックサイズのコスト値を比較する際、8×8、16×16、32×32が複数ある場合、それぞれ共通したオフセット値が加算される。また、1つのピクチャにおいても、同じブロックサイズに対して、同じオフセット値が加算される。
【0106】
[実施例]
図12は、本実施形態に係る映像符号化装置1の実施例を示す図である。
【0107】
図12は、
図8に示したステップS301の具体的なコスト値およびオフセットを設定した場合を例示している。ステップS301では、32×32のブロックAである16×16を4個の8×8(ブロックA~D)に分割した場合のコスト値と、分割しない16×16のコスト値と、が比較される。
【0108】
図12(a)は、オフセット値を加算しないでコスト値のみを比較した場合である。
図12(b)は、オフセット値加算後のコスト値を比較した場合である。なお、8×8のコスト値、コスト8_A~コスト8_Dは、ブロックA~Dで共通の100と算出され、ブロックAの16×16のコスト値、コスト16_Aは、410と算出されているものとする。また、8×8のオフセットであるオフセット8は5と算出され、16×16のオフセットであるオフセット16は3と算出されているものとする。
【0109】
図12(a)では、4個の8×8のコスト値の合計は、100×4=400となる。これを16×16のコスト値410と比較すると、前者の方が小さい。従って、この場合、4個の8×8のパターンが選択される。
【0110】
一方、
図12(b)では、4個の8×8のコスト値+オフセットの合計は、(100+5)×4=420となる。これを16×16のコスト値+オフセットの410+3=413と比較すると、後者の方が小さい。従って、この場合、16×16のパターンが選択される。
【0111】
このように、コスト値に対してオフセット値を加算することで、より大きなブロックサイズが選ばれやすくなる。なお、オフセット値は、
図6に示したアルゴリズムに則って設定するが、値は経験的に求められる。他のステップにおいても同様にオフセット値が設定される。CU数が多いほど、バッファ回路12の破綻の可能性が高いほど、大きなオフセット値がコスト値に加算されるので、より大きなブロックサイズが選ばれやすくなるように誘導される。
【0112】
[シミュレーション結果および実施形態の効果]
図13は、本開示適用前および適用後の各ブロックサイズ数の選択比率のシミュレーション結果を示す図である。
図13(a)は、本開示を適用しない従来の映像符号化装置におけるブロックサイズの選択比率を示す。
図13(b)は、本開示を適用した映像符号化装置におけるブロックサイズの選択比率を示す。
【0113】
横軸は、双方共に、ピクチャの枚数を示す。縦軸は、1ピクチャあたりの各ブロックサイズ数の比率を示す。ピクチャ枚数は、時間の経過に相当する。縦軸の数値が高いほど、対象の映像シーンにおいて、そのブロックサイズが多く選択されていることを示す。
【0114】
このシミュレーションは、マラソンがスタートした映像シーンについて行った。特に、後半の映像シーンP1は、マラソンスタート時に紙吹雪が舞うシーンである。紙吹雪が舞うシーンでは、細かな絵柄のシーンのため、それらを表現するためブロックサイズが小さくなる傾向がある。
【0115】
本開示を適用しない
図13(a)では、この映像シーンP1において、32×32に加えて16×16が目立ち、反対に64×64は減少している。また、8×8もやや存在している。一方、本開示を適用した
図13(b)では、同様の映像シーンP1において、16×16や8×8は減少し、64×64や32×32が増加している。
【0116】
この結果によって、本開示を適用した映像符号化装置1では、小さなブロックサイズが多くなるようなシーンでは、バッファ回路12の破綻可能性が推定される場合、大きなブロックサイズが選ばれやすく誘導されることが分かる。これにより、符号量が減少しバッファ回路12の破綻も解消できる。
【0117】
図14は、本開示適用前および適用後の画像符号化装置のSN比を示す図である。
【0118】
図14(a)は、本開示を適用しない場合である。
図14(b)は、本開示を適用した場合である。横軸は、映像シーン毎のピクチャの枚数、すなわち映像の時間経過を示す。縦軸は、符号化後の映像のSN比のシミュレーション結果を示す。SN比は、信号対歪を示しており、SN比が低い程、画像品質の劣化量が大きい。
【0119】
本開示を適用しない場合において、マラソンの後半の映像シーンP2や水球の映像シーンP3でバッファ回路12のバッファ破綻によってSN比が大きく劣化しているが、本開示を適用することによって、同様の映像シーンP2、P3においてSN比が大きく改善している様子を把握できる。
【0120】
図15は、本開示適用前および適用後の画像符号化装置のバッファ残量を示す図である。バッファ回路の状況のシミュレーション結果を示す。
図15(a)は、本開示を適用しない場合である。
図15(b)は、本開示を適用した場合である。横軸は、ピクチャの枚数、すなわち映像の時間経過を示す。縦軸は、バッファ回路12のバッファ残量を示す。特に、この例においては、バッファ残量がゼロ以下の部分をバッファ回路12が破綻している状況とした。
【0121】
本開示を適用しない場合、
図15(a)に示すように、後半の映像シーンP4において、バッファ残量がゼロ以下になり、バッファが破綻している。一方、本開示を適用した場合は、
図15(b)に示すように、
図15(a)においてバッファが破綻している映像シーンP4において、バッファ残量が0以上となりバッファ破綻が解消されている。
【0122】
[本実施形態の手段、作用、効果]
本開示に係る映像符号化装置1は、バッファ回路12の符号化データの蓄積状況や1ピクチャにおけるCU数の状況に応じたオフセット値を算出し、算出したオフセット値をCUの各ブロックサイズの組み合わせ候補のコスト値にそれぞれ加算し、オフセット値加算後のコスト値が最小となるブロックサイズの組み合わせを選択する。
【0123】
オフセット値には、CU数が多いほど、バッファ破綻の可能性が高いほど、より大きなオフセット値を設定し、CU数が少ないほど、バッファ破綻の可能性が低いほど、より小さなオフセット値を設定する。つまり、CU数が多い場合(すなわち、ブロックサイズが小さい場合)には、オフセット値を比較的大きく設定する。
【0124】
基本的にはコスト値が小さくなる(ブロックサイズが小さくなる)ようにブロックサイズの組み合わせを決定するが、上記オフセット値をコスト値に加算し、ブロックサイズが小さい方のオフセットを比較的大きくすることで、より大きなブロックサイズが選ばれやすくなる。
【0125】
これにより、バッファ回路12のバッファ破綻の可能性が高い場合、より大きなブロックサイズが選ばれやすく誘導でき、それにより全体の符号量を低減しバッファ回路12のバッファ破綻を抑制できる。
【0126】
[本開示の効果]
本開示によれば、映像符号化装置1が、異なるサイズのブロックの組み合わせに基づいて映像を画像毎にブロック単位で符号化し、前記ブロックを任意に組み合わせた複数の組み合わせ候補の各コスト値を計算する符号化回路11と、前記ブロック単位で符号化された前記画像の符号化データを蓄積するバッファ回路12と、前記バッファ回路のバッファ残量と1画像内のブロック数または前記1画像内のブロック数に相当する指標とに基づいてオフセット値を計算するオフセット計算回路13と、前記オフセット値を含む前記各コスト値に基づいて前記複数の組み合わせ候補の中から符号化用の組み合わせを決定するブロックサイズ決定回路14と、を備えるので、映像データの符号化時にバッファ破綻が発生する可能性を低減できる。
【0127】
本開示によれば、前記1画像内のブロック数に相当する指標は、前記1画像における、全符号化データのデータ量および前記全符号化データの全オーバーヘッドのデータ量に対する、前記全符号化データの全オーバーヘッドのデータ量の比率であるので、映像データの符号化時にバッファ破綻が発生する可能性を低減できる。
【0128】
本開示によれば、前記オフセット値は、前記バッファ回路のバッファ残量が第1の閾値未満の場合、第1の値であり、前記バッファ回路のバッファ残量が前記第1の閾値以上で第2の閾値未満、かつ、前記1画像内のブロック数が多い場合、第2の値であり、前記バッファ回路のバッファ残量が前記第1の閾値以上で前記第2の閾値未満、かつ、前記1画像内のブロック数が少ない場合、第3の値であり、前記バッファ回路のバッファ残量が前記第2の閾値以上の場合、ゼロの値であり、前記第1の値は、前記第2の値よりも大きい値であり、前記第2の値は、前記第3の値よりも大きい値であり、前記第3の値は、前記ゼロよりも大きい値であるので、映像データの符号化時にバッファ破綻が発生する可能性を低減できる。
【0129】
本開示によれば、前記コスト値は、符号量と映像品質とのうち少なくとも1つに関する値であるので、映像データの符号化時にバッファ破綻が発生する可能性を低減できる。
【0130】
本開示によれば、前記コスト値は、符号量と映像の歪量とのうち少なくとも1つに関する値であり、前記ブロックサイズ決定回路は、前記オフセット値を含む前記コスト値が最も小さい組み合わせ候補を前記符号化用の組み合わせとして決定するので、映像データの符号化時にバッファ破綻が発生する可能性を低減できる。
【符号の説明】
【0131】
1 映像符号化装置
11 符号化回路
12 バッファ回路
13 オフセット計算回路
14 ブロックサイズ決定回路
111 予測残差生成部
112 DCT変換部
113 量子化部
114 可変長符号化部
115 逆量子化部
116 逆DCT部
117 復号部
118 イントラ/インター予測回路
1181 予測信号候補生成部
1182 予測信号決定部
141 加算部
142 サイズ選択部
【要約】
【課題】映像データの符号化時にバッファ破綻が発生する可能性を改善する。
【解決手段】映像符号化装置1は、異なるサイズのブロックの組み合わせに基づいて映像を画像毎にブロック単位で符号化し、前記ブロックを任意に組み合わせた複数の組み合わせ候補の各コスト値を計算する符号化回路11と、前記ブロック単位で符号化された前記画像の符号化データを蓄積するバッファ回路12と、前記バッファ回路のバッファ残量と1画像内のブロック数または前記1画像内のブロック数に相当する指標とに基づいてオフセット値を計算するオフセット計算回路13と、前記オフセット値を含む前記各コスト値に基づいて前記複数の組み合わせ候補の中から符号化用の組み合わせを決定するブロックサイズ決定回路14と、を備える。
【選択図】
図1