IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7238441動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
<>
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図1
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図2
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図3
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図4
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図5
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図6
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図7
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図8
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図9
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図10
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図11
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図12
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図13
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図14
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図15
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図16
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図17
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図18
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図19
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図20
  • 特許-動画像符号化装置、動画像符号化方法及び動画像符号化プログラム 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-06
(45)【発行日】2023-03-14
(54)【発明の名称】動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
(51)【国際特許分類】
   H04N 19/115 20140101AFI20230307BHJP
   H04N 19/152 20140101ALI20230307BHJP
   H04N 19/172 20140101ALI20230307BHJP
   H04N 19/174 20140101ALI20230307BHJP
   H04N 19/31 20140101ALI20230307BHJP
【FI】
H04N19/115
H04N19/152
H04N19/172
H04N19/174
H04N19/31
【請求項の数】 16
(21)【出願番号】P 2019018157
(22)【出願日】2019-02-04
(65)【公開番号】P2020127120
(43)【公開日】2020-08-20
【審査請求日】2021-11-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】雷 旭穎
(72)【発明者】
【氏名】三好 秀誠
(72)【発明者】
【氏名】小林 俊輔
(72)【発明者】
【氏名】山下 和博
【審査官】田中 純一
(56)【参考文献】
【文献】特表2008-523720(JP,A)
【文献】米国特許出願公開第2006/0126728(US,A1)
【文献】特開平11-004445(JP,A)
【文献】特開2008-306705(JP,A)
【文献】米国特許出願公開第2008/0304564(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
時間方向に分割されたSOP単位の動画像をダウンコンバートし、先行して符号化処理を行う先行符号化部と、
前記先行して符号化処理を行った結果に基づいて、前記SOP単位の動画像に含まれる各処理単位の目標符号量を算出し、算出した目標符号量に基づいて各処理単位について符号化処理が行われた場合の仮のバッファ位置を算出する算出部と、
前記SOP単位の動画像において、各処理単位について符号化処理が行われるごとに、実際の伝送バッファの位置と仮のバッファ位置との誤差を算出し、まだ符号化処理が行われていない各処理単位の目標符号量を補正する補正部と
を有する動画像符号化装置。
【請求項2】
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各処理単位の目標符号量の比率に基づいて、前記誤差を、各処理単位の目標符号量に分配することで、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、請求項1に記載の動画像符号化装置。
【請求項3】
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各処理単位の目標符号量の比率と、まだ符号化処理が行われていない各処理単位の階層とに基づいて、前記誤差を、各処理単位の目標符号量に分配することで、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、請求項1に記載の動画像符号化装置。
【請求項4】
前記処理単位は、前記SOP単位の動画像に含まれるフレームである、請求項1乃至3のいずれか1項に記載の動画像符号化装置。
【請求項5】
前記処理単位は、前記SOP単位の動画像に含まれる各フレームを、空間方向に分割したスライスである、請求項1乃至3のいずれか1項に記載の動画像符号化装置。
【請求項6】
前記先行符号化部は、前記時間方向及び前記空間方向に分割された動画像をダウンコンバートし、先行して符号化処理を行うことで、前記SOP単位の動画像に含まれる各フレームの各スライスの符号化難易度を推定し、
前記算出部は、推定された各フレームの各スライスの符号化難易度に基づいて、各フレームの目標符号量を算出し、算出した各フレームの目標符号量に基づいて各フレームの仮のバッファ位置を算出する、請求項5に記載の動画像符号化装置。
【請求項7】
前記算出部は、推定された各フレームの各スライスの符号化難易度に基づいて、各フレームの各スライスの目標符号量を算出し、
前記補正部は、前記算出部により算出された各フレームの仮のバッファ位置と、フレーム内の各スライスの目標符号量の比率とに基づいて、各スライスの仮のバッファ位置を算出する、請求項6に記載の動画像符号化装置。
【請求項8】
前記補正部は、各スライスについて符号化処理が行われるごとに取得した各スライスの発生符号量と、各スライスのバッファ回復量とに基づいて、各スライスの実際のバッファ位置を算出する、請求項7に記載の動画像符号化装置。
【請求項9】
前記補正部は、算出した各スライスの仮のバッファ位置と、算出した各スライスの実際のバッファ位置とに基づいて、各スライスの誤差を算出する、請求項8に記載の動画像符号化装置。
【請求項10】
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各フレームについて、対応するスライス同士の目標符号量の比率に基づいて、対応するスライスの誤差を分配することで、まだ符号化処理が行われていない各フレームについて、対応するスライスの目標符号量を補正する、請求項9に記載の動画像符号化装置。
【請求項11】
前記補正部は、前記算出部により算出された各フレームの仮のバッファ位置と、フレーム内の補正後の各スライスの目標符号量の比率とに基づいて、各スライスの仮のバッファ位置を算出する、請求項10に記載の動画像符号化装置。
【請求項12】
前記補正部は、前記各スライスのバッファ回復量を、フレーム内の補正後の各スライスの目標符号量の比率に基づいて算出する、請求項10に記載の動画像符号化装置。
【請求項13】
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各フレームのうち、所定の符号化順序のフレームについて、対応するスライス同士の目標符号量の比率に基づいて、対応するスライスの誤差を分配することで、該所定の符号化順序のフレームについて、対応するスライスの目標符号量を補正する、請求項9に記載の動画像符号化装置。
【請求項14】
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各フレームについて、対応するスライス同士の目標符号量の比率に基づいて、対応するスライスの誤差を分配する際、参照フレームであるか否かに応じて異なる補正係数を乗算して分配することで、まだ符号化処理が行われていない各フレームについて、対応するスライスの目標符号量を補正する、請求項9に記載の動画像符号化装置。
【請求項15】
時間方向に分割されたSOP単位の動画像をダウンコンバートし、先行して符号化処理を行い、
前記先行して符号化処理を行った結果に基づいて、前記SOP単位の動画像に含まれる各処理単位の目標符号量を算出し、算出した目標符号量に基づいて各処理単位について符号化処理が行われた場合の仮のバッファ位置を算出し、
前記SOP単位の動画像において、各処理単位について符号化処理が行われるごとに、実際の伝送バッファの位置と仮のバッファ位置との誤差を算出し、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、
処理をコンピュータが実行する動画像符号化方法。
【請求項16】
時間方向に分割されたSOP単位の動画像をダウンコンバートし、先行して符号化処理を行い、
前記先行して符号化処理を行った結果に基づいて、前記SOP単位の動画像に含まれる各処理単位の目標符号量を算出し、算出した目標符号量に基づいて各処理単位について符号化処理が行われた場合の仮のバッファ位置を算出し、
前記SOP単位の動画像において、各処理単位について符号化処理が行われるごとに、実際の伝送バッファの位置と仮のバッファ位置との誤差を算出し、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、
処理をコンピュータに実行させるための動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像符号化装置、動画像符号化方法及び動画像符号化プログラムに関する。
【背景技術】
【0002】
8K・120Hzの動画像を時間方向及び空間方向に分割し、複数のエンコーダを用いて並列処理することで、リアルタイムの符号化処理を行い、ビットストリームを伝送する動画像符号化装置の開発が進められている。
【0003】
当該動画像符号化装置では、伝送するビットストリームを保持する伝送バッファにおいてアンダフローまたはオーバフローが発生しないよう、レートコントローラがSOP(Structure Of Picture)単位で各フレームの目標符号量を算出する。そして、各エンコーダが、算出された目標符号量のもとで発生符号量を制御しながら、各フレームの符号化処理を行う。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2008-085673号公報
【文献】特開2000-232644号公報
【文献】特開2002-232882号公報
【非特許文献】
【0005】
【文献】“8K120Hz HEVC リアルタイムコーデック装置の開発”、2018 映像情報メディア学会年次大会、no.22C-1、Aug.2018
【文献】“8K120Hz HEVC エンコーダの高効率・高画質アーキテクチャの開発”、2018 映像情報メディア学会年次大会、no.22C-2、Aug.2018
【文献】“A Study on the Required Video Bit-rate for 8K 120-Hz HEVC/H.265 Temporal Scalable Coding,”2018 Picture Coding Symposium (PCS),San Francisco.CA,pp.106-110,2018
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、目標符号量と実際の発生符号量とが一致するとは限らず、例えば、目標符号量よりも実際の発生符号量が大きい状態が続き、誤差が累積すると、伝送バッファにおいてアンダフローが発生する。
【0007】
一つの側面では、バッファにおいてアンダフローが発生しないように動画像の符号化処理を制御することを目的としている。
【課題を解決するための手段】
【0008】
一態様によれば、動画像符号化装置は、
時間方向に分割されたSOP単位の動画像をダウンコンバートし、先行して符号化処理を行う先行符号化部と、
前記先行して符号化処理を行った結果に基づいて、前記SOP単位の動画像に含まれる各処理単位の目標符号量を算出し、算出した目標符号量に基づいて各処理単位について符号化処理が行われた場合の仮のバッファ位置を算出する算出部と、
前記SOP単位の動画像において、各処理単位について符号化処理が行われるごとに、実際の伝送バッファの位置と仮のバッファ位置との誤差を算出し、まだ符号化処理が行われていない各処理単位の目標符号量を補正する補正部とを有する。
【発明の効果】
【0009】
バッファにおいてアンダフローが発生しないように動画像の符号化処理を制御することができる。
【図面の簡単な説明】
【0010】
図1】第1の実施形態に係る動画像符号化装置の適用例を示す図である。
図2】第1の実施形態に係る動画像符号化装置のハードウェア構成の一例を示す図である。
図3】比較例の動画像符号化装置の機能構成の一例を示す図である。
図4】符号化処理時のSOP内の各フレームの関係を説明するための図である。
図5】伝送バッファ位置を説明するための図である。
図6】比較例の動画像符号化装置による符号化処理における、フィードバック制御を説明するための図である。
図7】比較例の動画像符号化装置による符号化処理における、各フレームの仮の伝送バッファ位置及び実際の伝送バッファ位置を示す図である。
図8】比較例の動画像符号化装置による符号化処理における、アンダフローの発生例を示す図である。
図9】第1の実施形態に係る動画像符号化装置の符号化処理時の制御の概要を、伝送バッファ位置の観点から説明するための図である。
図10】第1の実施形態に係る動画像符号化装置の機能構成の一例を示す図である。
図11】第1の実施形態に係る動画像符号化装置の機能構成の詳細を示す図である。
図12】各スライスの仮の伝送バッファ位置の算出方法を説明するための図である。
図13】スライス[0]の実際の伝送バッファ位置の具体例及びスライス[0]の誤差の具体例を示す図である。
図14】スライス単位の目標符号量の第2の補正方法を示す図である。
図15】スライス単位の目標符号量の第2の補正方法による補正処理の具体例を示す第1の図である。
図16】第1の実施形態に係る動画像符号化装置による符号化処理の流れを示すフローチャートである。
図17】スライス[0]の仮の伝送バッファ位置の具体例及びスライス[0]の実際の伝送バッファ位置の具体例を示す図である。
図18】第2の実施形態に係る動画像符号化装置による符号化処理の流れを示すフローチャートである。
図19】第3の実施形態に係る動画像符号化装置の機能構成の詳細を示す図である。
図20】第3の実施形態に係る動画像符号化装置による符号化処理の流れを示すフローチャートである。
図21】スライス単位の目標符号量の第2の補正方法による補正処理の具体例を示す第2の図である。
【発明を実施するための形態】
【0011】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0012】
[第1の実施形態]
<動画像符号化装置の適用例>
はじめに、第1の実施形態に係る動画像符号化装置の適用例について説明する。図1は、第1の実施形態に係る動画像符号化装置の適用例を示す図である。図1に示すように、第1の実施形態に係る動画像符号化装置120は、例えば、映像表示システム100に適用され、撮像装置110により生成された8K・120Hzの動画像をリアルタイムに符号化し、ビットストリームを動画像復号装置130に伝送する。動画像復号装置130では、動画像符号化装置120より伝送されたビットストリームを復号し、映像表示装置140に出力する。これにより、映像表示装置140では、8K・120Hzの映像を表示することができる。
【0013】
<動画像符号化装置のハードウェア構成>
次に、動画像符号化装置120のハードウェア構成について説明する。図2は、第1の実施形態に係る動画像符号化装置のハードウェア構成の一例を示す図である。図2(a)に示すように、動画像符号化装置120は、制御装置210、信号変換装置220、符号化装置230、再構成装置240を有する。
【0014】
このうち、信号変換装置220、符号化装置230、再構成装置240のハードウェア構成の詳細は割愛し、ここでは、制御装置210のハードウェア構成の詳細について説明する。図2(b)は、制御装置210のハードウェア構成の詳細を示す図である。
【0015】
図2(b)に示すように、制御装置210は、CPU(Central Processing Unit)211、ROM(Read Only Memory)212、RAM(Random Access Memory)213を有する。CPU211、ROM212、RAM213は、いわゆるコンピュータを形成する。
【0016】
また、制御装置210は、補助記憶装置214、表示装置215、操作装置216、I/F(Interface)装置217、ドライブ装置218を有する。なお、制御装置210の各ハードウェアは、バス219を介して相互に接続されている。
【0017】
CPU211は、補助記憶装置214にインストールされている各種プログラム(例えば、後述する動画像符号化プログラム等)を実行する演算デバイスである。
【0018】
ROM212は、不揮発性メモリである。ROM212は、補助記憶装置214にインストールされている各種プログラムをCPU211が実行するために必要な各種プログラム、データ等を格納する主記憶デバイスとして機能する。具体的には、ROM212はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【0019】
RAM213は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリである。RAM213は、補助記憶装置214にインストールされている各種プログラムがCPU211によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【0020】
補助記憶装置214は、各種プログラムを格納する補助記憶デバイスである。表示装置215は、制御装置210の内部状態を表示する表示デバイスである。操作装置216は、制御装置210に対して各種指示を入力するための入力デバイスである。I/F装置217は、信号変換装置220、符号化装置230との間で信号を送受信するための接続デバイスである。
【0021】
ドライブ装置218は、コンピュータ読み取り可能な記録媒体をセットするためのデバイスである。ここでいう記録媒体には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。あるいは、記録媒体には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0022】
なお、補助記憶装置214にインストールされる各種プログラムは、例えば、配布された記録媒体がドライブ装置218にセットされ、該記録媒体に記録された各種プログラムがドライブ装置218により読み出されることでインストールされてもよい。
【0023】
<動画像符号化装置の機能の詳細>
次に、動画像符号化装置120の機能の詳細について説明する。ただし、以下では、まず、比較例の動画像符号化装置の機能について説明し、比較例の動画像符号化装置を用いた場合の問題点について説明する(下記(1))。その後、当該問題点を解決するための機能を中心に、第1の実施形態に係る動画像符号化装置120の詳細について説明する(下記(2))。
【0024】
(1)比較例の動画像符号化装置の機能の説明
(1-1)比較例の動画像符号化装置の機能構成
はじめに、比較例の動画像符号化装置の機能構成について説明する。図3は、比較例の動画像符号化装置の機能構成の一例を示す図である。図3に示すように、比較例の動画像符号化装置300は、受信部301、時空間分割部302、ダウンコンバータ303、先行符号化部304、レートコントローラ305、8K120Hzエンコーダ306、ストリーム結合部307を有する。なお、各機能ブロックを囲む点線は、各機能ブロックが実現されるハードウェア(図2参照)を示している。
【0025】
受信部301は、撮像装置110により生成された8K・120Hzの動画像を受信する。
【0026】
時空間分割部302は、8K・120Hzの動画像を時間方向及び空間方向に分割し(時分割及び空間分割し)、複数台の4K60Hzエンコーダに入力する。
【0027】
図3の例は、時空間分割部302が、動画像内の連続する24フレームを、8フレームずつ3つのSOPに時分割し、各SOPを、8K60Hzエンコーダ306_1~306_3に入力する様子を示している。
【0028】
また、図3の例は、時空間分割部302が、各SOPに含まれる各フレームを、4つに空間分割し、8K60Hzエンコーダに含まれる4つの4K60Hzエンコーダそれぞれにわけて入力する様子を示している。
【0029】
なお、時空間分割部302では、ARIB(Association of Radio Industries and Business)規格に基づく形状により、空間分割を行うものとする。時空間分割部302が空間分割することで得られる各領域を、以下では、“スライス”と称す。また、時空間分割部302が空間分割することで得られる4つのスライスを、本実施形態では、スライス[0]、スライス[1]、スライス[2]、スライス[3]と称す。図3の例は、スライス[0]~スライス[2]については、縦方向の画素数が“1088”であり、スライス[3]については縦方向の画素数が“1056”であることを示している。
【0030】
ダウンコンバータ303は、時空間分割部302により時分割及び空間分割された、8K・120Hzの動画像をダウンコンバートすることで4K・60Hzの動画像を生成する(これにより、各SOPに含まれるフレームは4フレームとなる)。
【0031】
先行符号化部304は、各SOPにおいて、4フレームにそれぞれ含まれる4スライスについて符号化処理を行い、符号化結果から、スライス単位の符号化難易度(GCM:Global Complexity Measure)を算出する。なお、GCMは、量子化ステップ(Quant)と発生符号量(bits)との積により算出される。
【0032】
先行符号化部304は、算出したGCM(4K・60Hzの動画像1SOPの各フレームの各スライスのGCM)に基づいて、8K・120Hzの動画像1SOPの各フレームの各スライスのGCMを推定する。更に、先行符号化部304は、推定したGCMを、レートコントローラ305に通知する。
【0033】
なお、図3の例では、ダウンコンバータ303と先行符号化部304とを別々に設けているが、ダウンコンバータ303は、先行符号化部304の一部として設けられてもよい。
【0034】
レートコントローラ305は、先行符号化部304より通知された8K・120Hzの動画像1SOPの各フレームの各スライスのGCMに基づいて、1SOPの各フレームの目標符号量と、1SOPの各フレームの仮の伝送バッファ位置(残量)とを算出する。
【0035】
ここで、伝送バッファ位置とは、4K60Hzエンコーダにより符号化処理されたビットストリームを保持するバッファ(例えば、再構成装置内に設けられた伝送用のバッファ)の残量を指す。このうち、符号化処理前に予め算出した伝送バッファ位置を、“仮の伝送バッファ位置”と称し、符号化処理後に発生符号量に基づいて算出した伝送バッファ位置を、“実際の伝送バッファ位置”と称す。
【0036】
なお、伝送バッファ位置(残量)の算出方法については、下記(1-3)において詳説し、各フレームの目標符号量の算出方法については、下記(1-4)において詳説する。
【0037】
また、レートコントローラ305は、1SOPの各フレームに含まれる4スライスそれぞれのGCMの比率に基づいて、算出した1SOPの各フレームの目標符号量を、各スライスに分割し、1SOPの各フレームの各スライスの目標符号量を算出する。
【0038】
また、レートコントローラ305は、1SOPの各フレームの各スライスの目標符号量を、対応する4K60Hzエンコーダに通知する。例えば、レートコントローラ305は、8K60Hzエンコーダ306_1に含まれる4つの4K60Hzエンコーダそれぞれに、1SOPの各フレームの各スライスの目標符号量を通知する。
【0039】
また、レートコントローラ305は、対応する4つの4K60Hzエンコーダそれぞれから、1SOPの各フレームの各スライスについて符号化処理を行った際の発生符号量について、フィードバックを受け付ける。そして、レートコントローラ305は、受け付けた発生符号量をフレーム単位で合算し、各フレームの実際の伝送バッファ位置を算出する。
【0040】
例えば、レートコントローラ305は、8K60Hzエンコーダ306_1に含まれる4つの4K60Hzエンコーダそれぞれから、各フレームの各スライスについて符号化処理を行った際の発生符号量について、フィードバックを受け付ける。そして、レートコントローラ305は、各フレームの実際の伝送バッファ位置を算出する。
【0041】
8K120Hzエンコーダ306は、8K60Hzエンコーダ306_1~306_3を有する。8K60Hzエンコーダ306_1~306_3それぞれが並列に符号化処理を行うことで、8K120Hzエンコーダ306は、8K・120Hzの動画像をリアルタイムに符号化することができる。
【0042】
また、8K60Hzエンコーダ306_1~306_3は、それぞれ、4つの4K60Hzエンコーダを有する。4つの4K60Hzエンコーダそれぞれが並列に符号化処理を行うことで、8K60Hzエンコーダ306_1~306_3は、それぞれ、8K・60Hzの動画像をリアルタイムに符号化することができる。
【0043】
4K60Hzエンコーダでは、レートコントローラ305より通知された、1SOPの各フレームの各スライスの目標符号量のもとで発生符号量を制御しながら、1SOPの各フレームの各スライスについて符号化処理を行う。
【0044】
ストリーム結合部307は、8K60Hzエンコーダ306_1~306_3それぞれから出力されるビットストリームを結合することで、8K・120Hzビットストリームを生成し、伝送する。
【0045】
(1-2)符号化処理時のSOP内の各フレームの関係
次に、8K60Hzエンコーダ306_1~306_3それぞれに含まれる、4K60Hzエンコーダが符号化処理する際の、SOP内の各フレームの関係について説明する。図4は、符号化処理時のSOP内の各フレームの関係を説明するための図である。図4において、横軸は、1SOPに含まれる各フレーム(8フレーム)の表示順序を表しており、縦軸は、各フレームの階層を識別するTID(Temporal ID)を示している(上にいくほど階層が深く、下にいくほど階層が浅いことを示している)。また、“I”はI(Intra)ピクチャ、“P”はP(Predictive)ピクチャ、“B”はBピクチャをそれぞれ表す。
【0046】
また、図4内に示す各矩形(“B”の文字を含む各矩形)は、1SOPに含まれる各フレームを表しており、“B”の右下の数字は、符号化(または復号)順序を示している。更に、各矩形からのびる矢印は、各矩形で表されるフレームが符号化処理の際に参照する参照先のフレームを示している。
【0047】
例えば、“B”の文字を含む矩形で表されるフレームは、表示順序が0番目のフレームであり、符号化順序が1番目のフレームであることを示している。また、“B”の文字を含む矩形で表されるフレームは、符号化処理の際に、
・1つ前のSOPに含まれる、表示順序が7番目のフレーム(“I/P/B”の文字を含む矩形で表されるフレーム)、
・同一SOPに含まれる、表示順序が7番目のフレーム(“I/P/B”の文字を含む矩形で表されるフレーム)、
のいずれか一方または両方を参照することを示している。
【0048】
(1-3)伝送バッファ位置の説明
次に、伝送バッファ位置(残量)について説明する。図5は、伝送バッファ位置を説明するための図である。図5において、横軸は、1SOPに含まれる各フレームの符号化順序を示しており、縦軸は、伝送バッファの位置(残量)を示している。
【0049】
また、図5において、“R”はビットレート[ビット/秒]を、“P”はフレームレート[Hz]を、“B”は、伝送バッファの容量[ビット]を表している。更に、“D(n)”は、符号化順序がn番目のフレームの発生符号量[ビット]を表している。なお、ここでは、“R”が固定であるとする(CBR:Constant Bit Rate)。
【0050】
図5に示すように、例えば、8K60Hzエンコーダ306_1が1SOPの各フレームについて符号化処理を行った場合、フレーム単位の実際の伝送バッファ位置は、矢印に沿って遷移する。
【0051】
具体的には、符号化順序が0番目のフレームについて符号化処理が開始される前は、実際の伝送バッファ位置が符号501で示す位置にあったところ、符号化処理が行われると、発生符号量(D(0))の分だけ下がり、符号502で示す位置に遷移する。
【0052】
その後、符号化順序が1番目のフレームについて符号化処理が開始される前までの間に、実際の伝送バッファ位置は、バッファ回復量(R/P)の分だけ上がり、符号503で示す位置に遷移する。以降、同様の処理が繰り返されることで、実際の伝送バッファ位置は上下に遷移し、1SOPの全フレームの符号化処理が行われることで、符号515に示す位置に遷移する。
【0053】
ここで、図5の上記説明において、符号化順序がn番目のフレームの発生符号量D(n)を、符号化順序がn番目のフレームの目標符号量に読み替えることで、符号501、503、515で示す位置は、各フレームの仮の伝送バッファ位置を表すことになる。
【0054】
なお、本実施形態においては、符号501で示す位置を、1SOPの先頭の実際の伝送バッファ位置(または1SOPの先頭の仮の伝送バッファ位置)と称する。また、符号515で示す位置を、1SOPの終端の実際の伝送バッファ位置(または1SOPの終端の仮の伝送バッファ位置)と称する。
【0055】
レートコントローラ305では、実際の伝送バッファ位置(残量)が、オーバフロー領域及びアンダフロー領域に含まれることがないように、1SOPの各フレームの目標符号量を算出する。これにより、各フレームの発生符号量D(n)が各フレームの目標符号量と一致している限りにおいては、レートコントローラ305は、伝送バッファにおいてオーバフローまたはアンダフローが発生することなく、符号化処理を制御することができる。
【0056】
一方で、各フレームの発生符号量D(n)が各フレームの目標符号量と一致せず、かつ発生符号量D(n)が伝送バッファの回復量R/Pよりも小さい状態が続くと、伝送バッファにおいてはオーバフローが発生する。なお、伝送バッファにおいてオーバフローが発生した場合、動画像復号装置130では、発生符号量の不足分としてダミーデータを挿入することで対処する。
【0057】
また、各フレームの発生符号量D(n)が各フレームの目標符号量と一致せず、かつ発生符号量D(n)が伝送バッファの回復量R/Pよりも大きい状態が続くと、伝送バッファにおいてはアンダフローが発生する。なお、伝送バッファにおいてアンダフローが発生した場合、動画像復号装置130では、発生符号量の超過分を取り戻すことができない。このため、レートコントローラ305では、伝送バッファにおいてアンダフローが発生することがないように、各フレームの目標符号量を算出することが求められる。
【0058】
(1-4)比較例の動画像符号化装置におけるフィードバック制御
しかしながら、各フレームの目標符号量と各フレームの発生符号量D(n)とは必ずしも一致せず、仮の伝送バッファ位置と実際の伝送バッファ位置との間には、誤差が発生する。このため、比較例の動画像符号化装置300では、上述したように発生符号量をフィードバックし、実際の伝送バッファ位置を算出することで誤差の累積を抑えている。
【0059】
そこで、以下では、比較例の動画像符号化装置300による符号化処理における、フィードバック制御について説明する。図6は、比較例の動画像符号化装置による符号化処理における、フィードバック制御を説明するための図である。
【0060】
上述したように、8K・120Hzの動画像1SOP分がダウンコンバートされることで得られた4K・60Hzの動画像(4フレーム)について、先行符号化部304では、先行符号化することで、4スライスの各GCMを算出する(図6の処理I)。図6の例では、算出した4スライスの各GCMを、GCM4K[0]~GCM4K[3]としている。なお、図6の例では、1番手前のフレームについてのみ4スライスの各GCMを示しているが、残りの3フレームについても同様に、4スライスの各GCMが算出されているものとする。
【0061】
続いて、先行符号化部304では、算出した4スライスの各GCMに基づいて、8K・120Hzの動画像のGCMを推定する(図6の処理II)。図6の例では、推定した4スライスの各GCMを、GCM8K[0]~GCM8K[3]としている。なお、図6の例では、1番手前のフレームについてのみ4スライスの各GCMを示しているが、残りの7フレームについても同様に、4スライスの各GCMが推定されているものとする。
【0062】
続いて、レートコントローラ305では、8K・120Hzの動画像の各GCMに基づいて、フレーム単位の目標符号量と、各フレームの仮の伝送バッファ位置とを算出する(図6の処理III)。なお、図6の例では、1番手前のフレームについてのみ目標符号量を示しているが、残りの7フレームについても同様に目標符号量が算出されているものとする。
【0063】
続いて、レートコントローラ305では、フレーム単位の目標符号量と、スライス単位で推定した各GCMの比率とに基づいて、各スライスの目標符号量を算出する(図6の処理IV)。図6の例では、算出した4スライスの目標符号量を、SliceTarget[0]~SliceTarget[3]としている。なお、図6の例では、1番手前のフレームについてのみ4スライスの目標符号量を示しているが、残りの7フレームについても同様に、4スライスの目標符号量が算出されているものとする。
【0064】
続いて、レートコントローラ305では、4スライスの目標符号量1SOP分(8フレーム分)を、対応する各4K60Hzエンコーダに通知する。そして、各4K60Hzエンコーダでは、通知されたスライス単位の目標符号量のもとで各フレームの各スライスについて符号化処理を行う(図6の処理V)。そして、各4K60Hzエンコーダでは、符号化処理を行った際の各スライスの発生符号量を、レートコントローラ305にフィードバックする(図6の処理VI)。これにより、レートコントローラ305では、フィードバックされた発生符号量に基づいて、フレーム単位の実際の伝送バッファ位置を算出し、フレーム単位の目標符号量の算出に反映することで、誤差の累積を抑えている。
【0065】
(1-5)比較例の動画像符号化装置におけるフィードバック制御の問題点
次に、比較例の動画像符号化装置300におけるフィードバック制御の問題点について説明する。図7は、比較例の動画像符号化装置による符号化処理における、各フレームの仮の伝送バッファ位置及び実際の伝送バッファ位置を示す図である。
【0066】
図7において、グラフ701~704は、レートコントローラ305において算出された、1SOPに含まれる各フレームの仮の伝送バッファ位置を表している。
【0067】
このうち、グラフ701は、8K60Hzエンコーダ306_1において符号化処理されるSOPに含まれる各フレームの仮の伝送バッファ位置を表している。レートコントローラ305では、1SOPの各フレーム721について算出した目標符号量に基づいて、各フレームの仮の伝送バッファ位置を算出する。
【0068】
8K60Hzエンコーダ306_1の各4K60Hzエンコーダでは、レートコントローラ305により算出されたスライス単位の目標符号量のもとで符号化処理を行い、各フレームのビットストリーム731を生成する。
【0069】
グラフ711は、8K60Hzエンコーダ306_1により符号化処理が行われることで遷移する、各フレームの実際の伝送バッファ位置を示している。グラフ711の例は、各フレームの実際の伝送バッファ位置が仮の伝送バッファ位置と一致している場合を示している。なお、グラフ711において先頭の実際の伝送バッファ位置は、1SOP前のSOPの終端の仮の伝送バッファ位置によって更新される。
【0070】
グラフ702は、8K60Hzエンコーダ306_2において符号化処理されるSOPに含まれる各フレームの仮の伝送バッファ位置を表している。レートコントローラ305では、1SOPの各フレーム722について算出した目標符号量に基づいて、各フレームの仮の伝送バッファ位置を算出する。
【0071】
8K60Hzエンコーダ306_2の各4K60Hzエンコーダでは、レートコントローラ305により算出されたスライス単位の目標符号量のもとで符号化処理を行い、各フレームのビットストリーム732を生成する。
【0072】
グラフ712は、8K60Hzエンコーダ306_2により符号化処理が行われることで遷移する、各フレームの実際の伝送バッファ位置を示している。グラフ712の例は、各フレームの実際の伝送バッファ位置が仮の伝送バッファ位置と一致している場合を示している。なお、グラフ712において先頭の実際の伝送バッファ位置は、1SOP前のSOPの終端の仮の伝送バッファ位置によって更新される。
【0073】
グラフ703は、8K60Hzエンコーダ306_3において符号化処理されるSOPに含まれる各フレームの仮の伝送バッファ位置を表している。レートコントローラ305では、1SOPの各フレーム723について算出した目標符号量に基づいて、各フレームの仮の伝送バッファ位置を算出する。
【0074】
8K60Hzエンコーダ306_3の各4K60Hzエンコーダでは、レートコントローラ305により算出されたスライス単位の目標符号量のもとで符号化処理を行い、各フレームのビットストリーム733を生成する。
【0075】
グラフ713は、8K60Hzエンコーダ306_3により符号化処理が行われることで遷移する、各フレームの実際の伝送バッファ位置を示している。グラフ713の例は、各フレームの実際の伝送バッファ位置が仮の伝送バッファ位置と一致している場合を示している。なお、グラフ713において先頭の実際の伝送バッファ位置は、1SOP前のSOPの終端の仮の伝送バッファ位置によって更新される。
【0076】
このように、レートコントローラ305では、グラフ701~703に示す、3SOP分の各フレームの目標符号量及び仮の伝送バッファ位置を、並列して算出する。これにより、8K60Hzエンコーダ306_1~306_3では、符号化処理を並列に実行することができる。
【0077】
一方で、装置間の通信によって8K60Hzエンコーダで生成したストリームの発生符号量をレートコントローラ305にフィードバックするのは時間がかかる。例えば、ビットストリーム731を生成した際の発生符号量がレートコントローラ305にフィードバックされるのは、次の3SOP分の各フレームの目標符号量及び仮の伝送バッファ位置を算出するタイミングとなる。
【0078】
図7の例は、符号化順序が0番目のフレームの発生符号量が、3SOP後の各フレーム724において、符号化順序が1番目(全体の通し番号では、25番目)のフレームの目標符号量の算出に反映されることを示している。
【0079】
同様に、図7の例は、符号化順序が1番目のフレームの発生符号量が、3SOP後の各フレーム724において、符号化順序が2番目(全体の通し番号では、26番目)のフレームの目標符号量の算出に反映されることを示している。
【0080】
同様に、図7の例は、符号化順序が2番目のフレームの発生符号量が、3SOP後の各フレーム724において、符号化順序が3番目(全体の通し番号では、27番目)のフレームの目標符号量の算出に反映されることを示している。
【0081】
このように、比較例の動画像符号化装置300の場合、発生符号量が、現在符号化処理中のSOPから数えて、3SOP後の各フレームの目標符号量に反映されることになる。このため、現在符号化処理中のSOPの各フレームの発生符号量や、1SOP後または2SOP後の各フレームの発生符号量が、全て、フレーム単位の目標符号量と一致していれば、伝送バッファにおいてオーバフローまたはアンダフローが発生することはない。一方で、各フレームの発生符号量が、フレーム単位の目標符号量と一致しておらず、かつ、発生符号量がバッファ回復量よりも小さい(または大きい)状態が続くと、伝送バッファにおいてオーバフローまたはアンダフローが発生することになる。
【0082】
図8は、比較例の動画像符号化装置による符号化処理における、アンダフローの発生例を示す図である。図8において、グラフ811~813は、図7のグラフ711~713に、各フレームの仮の伝送バッファ位置と一致しない実際の伝送バッファ位置を加筆したものである。
【0083】
図8の例によれば、グラフ811に示すように、1SOP目において、符号化順序が0番目のフレームが符号化処理される前は、仮の伝送バッファ位置と実際の伝送バッファ位置とが一致していた。しかしながら、図8の例によれば、1SOP目の各フレームの符号化処理が進むことで両者の誤差が徐々に大きくなっている。
【0084】
この結果、グラフ812に示すように、2SOP目においては、先頭の仮の伝送バッファ位置と先頭の実際の伝送バッファ位置とが一致せず、かつ、符号化処理が進むことで両者の誤差は更に大きくなっている。
【0085】
この結果、グラフ813に示すように、3SOP目においては、先頭の仮の伝送バッファ位置と実際の伝送バッファ位置との誤差は更に広がり、符号化順序が0番目のフレームの符号化処理が行われた時点で、アンダフローが発生している。
【0086】
このように、比較例の動画像符号化装置300の場合、発生符号量がフィードバックされるまでの間において、
・各フレームの発生符号量が、各フレームの目標符号量と一致せず、かつ、
・各フレームの発生符号量が伝送バッファの回復量よりも大きい状態または小さい状態、
が続くと、アンダフローまたはオーバフローが発生することになる。
【0087】
(2)第1の実施形態に係る動画像符号化装置の機能の説明
比較例の動画像符号化装置300における上記問題を解決すべく、第1の実施形態に係る動画像符号化装置120では、各SOPの終端で仮の伝送バッファ位置と実際の伝送バッファ位置とが一致するように制御する。
【0088】
図9は、第1の実施形態に係る動画像符号化装置の符号化処理時の制御の概要を、伝送バッファ位置の観点から説明するための図である。図9に示すように、レートコントローラ305で算出された1SOPの先頭の仮の伝送バッファ位置と、実際の伝送バッファ位置とは一致していたものの、符号化順序が0番目のフレームの符号化処理が行われた時点で、誤差が発生したとする。
【0089】
このような場合でも、第1の実施形態に係る動画像符号化装置120では、1SOPの終端で仮の伝送バッファ位置と実際の伝送バッファ位置とが一致するように、1フレームの符号化処理が完了するごとに、次のフレームの目標符号量を逐次補正する。
【0090】
これにより、第1の実施形態に係る動画像符号化装置120によれば、1SOPの終端で仮の伝送バッファ位置と、実際の伝送バッファ位置とを一致させることができる(図9の符号900参照)。この結果、第1の実施形態に係る動画像符号化装置120によれば、SOP間で誤差が累積していくことがなくなり、伝送バッファにおいてアンダフローまたはオーバフローが発生することを回避することができる。
【0091】
なお、第1の実施形態に係る動画像符号化装置120では、目標符号量の補正を、スライス単位で行う。このため、第1の実施形態に係る動画像符号化装置120では、目標符号量の補正に際して、
・スライス単位の仮の伝送バッファ位置、
・スライス単位の実際の伝送バッファ位置、
・スライス単位の誤差、
を算出する。以下、第1の実施形態に係る動画像符号化装置の機能の詳細について説明する。
【0092】
(2-1)第1の実施形態に係る動画像符号化装置の機能構成
はじめに、第1の実施形態に係る動画像符号化装置120の機能構成について説明する。図10は、第1の実施形態に係る動画像符号化装置の機能構成の一例を示す図である。図3に示した比較例の動画像符号化装置300の機能構成とは、制御装置210の機能構成において相違する。
【0093】
図10に示すように、第1の実施形態に係る動画像符号化装置120の場合、動画像符号化プログラムが実行されることで、制御装置210は、ダウンコンバータ303、先行符号化部304として機能する。また、制御装置210は、レートコントローラ1000、個別制御部1010_1~1010_3として機能する。つまり、図3とは、制御装置210のレートコントローラ1000の機能と、制御装置210が個別制御部1010_1~1010_3を有する点とにおいて相違する。
【0094】
レートコントローラ1000は算出部の一例であり、上述したレートコントローラ305の機能に加えて、1SOPの各フレームの仮の伝送バッファ位置を、個別制御部1010_1~1010_3に通知する機能を有する。
【0095】
個別制御部1010_1~1010_3は補正部の一例であり、レートコントローラ1000から、
・1SOPの各フレームの各スライスの目標符号量、
・1SOPの各フレームの仮の伝送バッファ位置、
を取得する。
【0096】
また、個別制御部1010_1~1010_3は、8K60Hzエンコーダ306_1~306_3がそれぞれ有する各4K60Hzエンコーダから、各フレームの各スライスの符号化処理が完了するごとに、スライス単位の発生符号量を取得する。
【0097】
また、個別制御部1010_1~1010_3は、各フレームの各スライスの符号化処理が行われるごとに、次のフレームの各スライスの目標符号量を補正する。また、個別制御部1010_1~1010_3は、補正後の各スライスの目標符号量を、8K60Hzエンコーダ306_1~306_3がそれぞれ有する各4K60Hzエンコーダに通知する。
【0098】
(2-2)第1の実施形態に係る動画像符号化装置の機能構成の詳細
次に、第1の実施形態に係る動画像符号化装置120の機能構成の詳細について説明する。図11は、第1の実施形態に係る動画像符号化装置の機能構成の詳細を示す図である。ただし、図11では、説明の簡略化のため、レートコントローラ1000、個別制御部1010_1、8K60Hzエンコーダ306_1に含まれる4つの4K60Hzエンコーダのうち、スライス[0]を符号化処理する4K60Hzエンコーダのみを示している。
【0099】
図11に示すように、個別制御部1010_1は、目標符号量保存部1101、発生符号量保存部1102、目標符号量再計算部1103を有する。
【0100】
目標符号量保存部1101は、レートコントローラ1000から通知される、1SOPの各フレームの各スライスの目標符号量を保存する。また、目標符号量保存部1101は、レートコントローラ1000から通知される、1SOPの各フレームの仮の伝送バッファ位置を保存する。
【0101】
発生符号量保存部1102は、4K60Hzエンコーダが各フレームのスライス[0]の符号化処理を完了するごとに、各フレームのスライス[0]の発生符号量を、4K60Hzエンコーダより取得し、保存する。
【0102】
目標符号量再計算部1103は、目標符号量保存部1101より、
・1SOPの各フレームの各スライスの目標符号量と、
・1SOPの各フレームの仮の伝送バッファ位置と、
を読み出し、1SOPの各フレームのスライス[0]の仮の伝送バッファ位置を算出する。なお、“1SOPの各フレームの各スライスの仮の伝送バッファ位置の算出方法”は、下記(2-3)において後述する。
【0103】
また、目標符号量再計算部1103は、発生符号量保存部1102より、処理対象のフレームの1つ前のフレームのスライス[0]の発生符号量を読み出し、実際の伝送バッファ位置を算出する。なお、“実際の伝送バッファ位置の算出方法”は、下記(2-4)において後述する。
【0104】
また、目標符号量再計算部1103は、
・処理対象のフレームのスライス[0]について符号化処理を開始する前の時点での仮の伝送バッファ位置と、
・処理対象のフレームのスライス[0]について符号化処理を開始する前の時点での実際の伝送バッファ位置と、
に基づいて、スライス[0]の誤差を算出する。なお、“誤差の算出方法”は、下記(2-4)において後述する。
【0105】
また、目標符号量再計算部1103は、算出したスライス[0]の誤差を用いて、SOP内においてまだ符号化処理が行われていないフレームのスライス[0]の目標符号量を補正し、補正後のスライス[0]の目標符号量を、4K60Hzエンコーダに通知する。
【0106】
また、図11に示すように、4K60Hzエンコーダは、レート制御部1111、差分画像生成部1112、直交変換/量子化部1113、可変長符号化部1114を有する。また、4K60Hzエンコーダは、逆直交変換/逆量子化部1115、加算部1116、復号画像生成部1117、動き探索部1118、予測画像生成部1119を有する。
【0107】
差分画像生成部1112は、時空間分割部302より、8K・120Hzの動画像の各フレームのスライス[0]をSOP単位で取得する。また、差分画像生成部1112は、処理対象のフレームのスライス[0]と、予測画像生成部1119にて生成された予測画像(フレームごとに予め定められた参照先(図4))との差分を算出し、予測残差信号を生成する。
【0108】
レート制御部1111は、目標符号量再計算部1103より通知された、処理対象のフレームについての補正後のスライス[0]の目標符号量のもとで、量子化ステップを調整する。
【0109】
直交変換/量子化部1113は、予測残差信号に対して直交変換処理を実行するとともに、調整された量子化ステップのもとで、直交変換処理を実行した予測残差信号を量子化し、量子化信号を生成する。
【0110】
可変長符号化部1114は、量子化信号を可変長符号化することで、ビットストリームを生成する。可変長符号化部1114は、生成したビットストリームを、ストリーム結合部307に出力するとともに、レートコントローラ1000、個別制御部1010_1に出力する。
【0111】
逆直交変換/逆量子化部1115は、量子化信号を逆量子化したうえで、逆直交変換処理を実行する。
【0112】
加算部1116は、逆直交変換/逆量子化部1115より出力された信号に対して、予測画像生成部1119にて生成された予測画像を加算することで、復号画像を生成する。
【0113】
復号画像生成部1117は、生成された復号画像に対して各種フィルタ処理を行い、動き探索部1118、予測画像生成部1119に通知する。
【0114】
動き探索部1118は、時空間分割部302より、8K・120Hzの動画像の各フレームのスライス[0]をSOP単位で取得し、復号画像を用いて、フレーム間で動き補償を行う。
【0115】
予測画像生成部1119は、復号画像に基づいてフレーム内予測を行う。また、予測画像生成部1119は、復号画像に基づいてフレーム間予測を行う。更に、予測画像生成部1119は、フレーム内予測を行うことで得た予測画像またはフレーム間予測を行うことで得た予測画像のいずれか一方を、差分画像生成部1112及び加算部1116に出力する。
【0116】
(2-3)各スライスの仮の伝送バッファ位置の算出方法
次に、1SOPに含まれる各フレームの各スライスの仮の伝送バッファ位置の算出方法について説明する。図12は、各スライスの仮の伝送バッファ位置の算出方法を説明するための図である。
【0117】
上述したように、目標符号量再計算部1103では、目標符号量保存部1101から、
・1SOPの各フレームの各スライスの目標符号量、
・1SOPの各フレームの仮の伝送バッファ位置、
を読み出す。目標符号量再計算部1103では、図12に示すように、各フレームにおいて、読み出した各スライスの目標符号量の比率に基づいて、読み出した各フレームの仮の伝送バッファ位置から、各フレームの各スライスの仮の伝送バッファ位置を算出する。具体的には、下式に基づいて、各フレームの各スライスの仮の伝送バッファ位置を算出する。
【0118】
【数1】
【0119】
ここで、kはスライスの番号であり、0~3の値をとる。また、SliceTarget[k]は、k番目のスライスの目標符号量である。また、EstFrameCpbBocは、フレーム単位の仮の伝送バッファ位置であり、EstSliceCpbBoc[k]は、k番目のスライスの仮の伝送バッファ位置である。
【0120】
上式に示すように、目標符号量再計算部1103では、スライス単位の仮の伝送バッファ位置を算出するにあたり、フレーム単位の仮の伝送バッファ位置を4等分しない。これは、空間分割された4スライスの画像(絵柄)の複雑さには、ばらつきがあるからである。4スライスの画像の複雑さにばらつきがあるにも関わらず、フレーム単位の仮の伝送バッファ位置を4等分して、各スライスの仮の伝送バッファ位置を算出することとすると、スライス単位のレート制御を正確に実行することが困難になることが考えられる。そこで、目標符号量再計算部1103では、フレーム内の各スライスの目標符号量の比率に基づいて、各スライスの仮の伝送バッファ位置を算出する。
【0121】
(2-4)実際の伝送バッファ位置の算出方法及び誤差の算出方法
次に、目標符号量再計算部1103による、スライス単位の実際の伝送バッファ位置の算出方法及びスライス単位の誤差の算出方法について説明する。
【0122】
上述したように、実際の伝送バッファ位置を算出するにあたっては、発生符号量とバッファ回復量が用いられる。このため、目標符号量再計算部1103では、スライス単位の実際の伝送バッファ位置を算出するにあたり、スライス単位の発生符号量と、スライス単位のバッファ回復量とを取得する。
【0123】
ここで、目標符号量再計算部1103では、スライス単位のレート制御を正確にするために、スライス単位のバッファ回復量を、フレーム内の各スライスの目標符号量の比率に従って計算する(下式参照)。
【0124】
【数2】
【0125】
上式において、(R/P)frameは、フレーム単位のバッファ回復量を示しており、(R/P)slice[k]は、k番目のスライスのバッファ回復量を示している。
【0126】
そして、目標符号量再計算部1103では、上式に基づいて算出したスライス単位のバッファ回復量のもと、スライス単位の発生符号量を用いて、下式に基づいて、スライス単位の実際の伝送バッファ位置を算出する。
【0127】
【数3】
【0128】
ここで、nは符号化順序を表し、1~8の値をとる。また、SliceBits[n-1]は、符号化順序が(n-1)番目のフレームのスライス[0]について符号化処理が行われた際の発生符号量を示す。なお、上式に示すように、ここでは、1SOPの先頭のスライス[0]の仮の伝送バッファ位置と、1SOPの先頭のスライス[0]の実際の伝送バッファ位置とが一致していることを前提としている。
【0129】
続いて、スライス単位の誤差の算出方法について説明する。目標符号量再計算部1103では、スライス単位の仮の伝送バッファ位置とスライス単位の実際の伝送バッファ位置とに基づき、下式を用いて、スライス単位の誤差(SliceError[n])を算出する。
【0130】
【数4】
【0131】
次に、目標符号量再計算部1103が算出した実際の伝送バッファ位置の具体例及び誤差の具体例について説明する。図13は、スライス[0]の実際の伝送バッファ位置の具体例及びスライス[0]の誤差の具体例を示す図であり、
・符号化順序が0番目のフレームのスライス[0]について符号化処理が行われ、
・符号化順序が1番目のフレームのスライス[0]について符号化処理が開始される前、
の様子を示している。
【0132】
図13の例では、スライス[0]の先頭の仮の伝送バッファ位置(EstSliceCpbBoc[0])と、スライス[0]の先頭の実際の伝送バッファ位置(SliceCpbBoc[0])とが一致している。
【0133】
また、図13の例では、符号化順序が0番目のフレームのスライス[0]について符号化処理が行われた際の発生符号量がSliceBits[0]であるとしている。このため、符号化順序が0番目のフレームのスライス[0]について符号化処理が行われた時点で、実際の伝送バッファ位置は、符号1401で示す位置となる。
【0134】
また、図13の例では、符号化順序が1番目のフレームのスライス[0]について符号化処理が開始されるまでの間に、スライス[0]の実際の伝送バッファ位置は、スライス[0]のバッファ回復量である(R/P)slice[0]だけ上がっている。このため、図13の例では、符号化順序が1番目のフレームのスライス[0]について符号化処理が開始される前の時点で、スライス[0]の実際の伝送バッファ位置は、SliceCpbBoc[1]となっている。
【0135】
一方で、目標符号量再計算部1103では、符号化順序が1番目のフレームのスライス[0]について符号化処理が開始される前の時点での、スライス[0]の仮の伝送バッファ位置については既に算出済みである。具体的には、目標符号量再計算部1103では、上記(2-3)で示した式に基づいて、スライス[0]の仮の伝送バッファ位置(EstSliceCpbBoc[1])を算出している。
【0136】
このため、目標符号量再計算部1103では、符号化順序が1番目のフレームのスライス[0]について符号化処理が開始される前の時点で、スライス[0]の誤差を、
SliceError[1]=EstSliceCpbBoc[1]-SliceCpbBoc[1]
として算出する。
【0137】
(2-5)目標符号量の補正方法
次に、目標符号量再計算部1103によるスライス単位の目標符号量の補正方法について説明する。上述したとおり、目標符号量再計算部1103では、スライス単位の誤差を解消するために、各フレームの各スライスについて符号化処理が行われるごとに、まだ符号化処理が行われていない残りのフレームの各スライスの目標符号量を補正する。なお、目標符号量再計算部1103による、各スライスの目標符号量の補正方法として、ここでは2通りの補正方法について説明する。
【0138】
第1の補正方法は、処理対象のフレームの1つ前のフレームのスライス[0]の符号化処理が行われ、処理対象のフレームのスライス[0]の符号化処理が開始される前の時点での誤差を、処理対象のフレームのスライス[0]の目標符号量から減算する方法である。
【0139】
第1の補正方法によれば、処理対象のフレームのスライス[0]の符号化処理が行われることで、処理対象のフレームのスライス[0]の符号化処理が開始される前の時点での誤差を解消することができる。
【0140】
ただし、第1の補正方法の場合、減算する誤差が大きいと、処理対象のフレームのスライス[0]の目標符号量がゼロになる可能性があるという問題がある。
【0141】
一方、第2の補正方法は、処理対象のフレームのスライス[0]の目標符号量がゼロになることがないよう、誤差を、まだ符号化処理が行われていない残りの各フレームのスライス[0]の目標符号量に分配する方法である。
【0142】
具体的には、目標符号量再計算部1103では、下式に基づいて、誤差分配後の各フレームのスライス[0]の目標符号量であるSliceTarget’[m+1]を算出する(mは処理対象のフレームの1つ前のフレームの符号化順序を表す)。
【0143】
【数5】
【0144】
上記第2の補正方法を図14を用いて更に詳細に説明する。図14は、スライス単位の目標符号量の第2の補正方法を示す図である。目標符号量再計算部1103では、図14に示すように、算出したスライス[0]の誤差を、1SOP内の各フレームのうち、符号化処理が行われていない残りのフレームのスライス[0]の目標符号量に分配する。これにより、第2の補正方法によれば、1SOPの終端で、スライス[0]の仮の伝送バッファ位置と実際の伝送バッファ位置とを一致させることができるとともに、残りのフレームのスライス[0]の目標符号量がゼロになることを回避することができる。
【0145】
(2-6)目標符号量の補正処理の具体例
次に、目標符号量再計算部1103による、スライス単位の目標符号量の第2の補正方法による補正処理の具体例について説明する。図15は、スライス単位の目標符号量の第2の補正方法による補正処理の具体例を示す第1の図である。このうち、図15(a)は、m=3の場合の目標符号量の補正処理の具体例を示している。
【0146】
図15(a)に示すように、符号化順序が3番目のフレームの符号化処理が行われ、処理対象のフレームとして、符号化順序が4番目のフレームの符号化処理が開始される前の時点で、スライス[0]の誤差がSliceError[3]であったとする。
【0147】
一方で、目標符号量再計算部1103により算出された、符号化順序が4番目のフレームのスライス[0]の目標符号量が、SliceTarget[4]であったとする。また、目標符号量再計算部1103により算出された、符号化順序が5番目、6番目、7番目のフレームのスライス[0]の目標符号量が、それぞれ、SliceTarget[5]~SliceTarget[7]であったとする。
【0148】
この場合、例えば、符号化順序が4番目のフレームについての、補正後のスライス[0]の目標符号量であるSliceTarget’[4]は、
SliceTarget[4]-SliceError[3]×(SliceTarget[4]/(SliceTarget[5]~[7]の和))
により算出される。
【0149】
なお、符号化順序が5番目~7番目のフレームについての、補正後のスライス[0]の目標符号量であるSliceTarget’[5]~[7]についても同様の方法により算出される。
【0150】
図15(b)は、表示順序及び符号化順序と発生符号量との関係を示した図である。図15(b)に示すように、表示順序が0、2、4、6番目のフレーム(符号化順序が1、3、5、7番目のフレーム)は、符号化処理が行われた際の発生符号量が小さい。一方、表示順序が3、7番目のフレーム(符号化順序が0、2番目のフレーム)は、符号化処理が行われた際の発生符号量が大きい。
【0151】
このように、発生符号量は符号化順序ごとに異なる。このため、誤差を分配するにあたっては、分配先のフレームの符号化順序を考慮する必要がある。一方で、上記第2の補正方法によれば、残りのフレームのスライス[0]同士の目標符号量の比率に応じて誤差が分配される。つまり、第2の補正方法によれば、もともとの目標符号量が小さいものについては、減算量を小さくし、もともとの目標符号量が大きいものについては、減算量を大きくするように誤差を分配することができる。この結果、第2の補正方法によれば、分配先のフレームの符号化順序を考慮した適切な補正を実現することができる。
【0152】
(2-7)第1の実施形態に係る動画像符号化装置による符号化処理の流れ
次に、第1の実施形態に係る動画像符号化装置120による符号化処理全体の流れについて説明する。図16は、第1の実施形態に係る動画像符号化装置による符号化処理の流れを示すフローチャートである。
【0153】
ステップS1601において、受信部301は、8K・120Hzの1SOP分の動画像を受信し、ダウンコンバータ303は、1SOP分の動画像をダウンコンバートし、4K・60Hzの動画像を生成する。また、先行符号化部304は、ダウンコンバートされた動画像について先行符号化処理を行う。
【0154】
ステップS1602において、先行符号化部304は、先行符号化処理の結果に基づき、4K・60Hzの動画像の1SOPに含まれる各フレームについて、スライス単位のGCMを算出する。更に、先行符号化部304は、算出したスライス単位のGCMに基づいて、8K・120Hzの動画像の1SOPに含まれる各フレームについて、スライス単位のGCMを推定する。
【0155】
ステップS1603において、レートコントローラ1000は、8K・120Hzの動画像の1SOPの各フレームの目標符号量を算出するとともに、1SOPの各フレームの仮の伝送バッファ位置を算出する。
【0156】
ステップS1604において、レートコントローラ1000は、8K・120Hzの動画像の1SOPの各フレームのスライス単位の目標符号量を算出する。
【0157】
ステップS1605において、個別制御部1010_1~1010_3は、フレーム内の各スライスの目標符号量の比率によって、1SOPの各フレームの各スライスの仮の伝送バッファ位置を算出する。
【0158】
ステップS1606において、個別制御部1010_1~1010_3は、フレーム内の各スライスの目標符号量の比率によって、1SOPの各フレームのスライス単位のバッファ回復量を計算する。
【0159】
ステップS1607において、個別制御部1010_1~1010_3は、処理対象のフレームの1つ前のフレームの各スライスについて、各4K60Hzエンコーダにより符号化処理が行われた際の、各スライスの発生符号量を取得する。
【0160】
ステップS1608において、個別制御部1010_1~1010_3は、取得した各スライスの発生符号量に基づいて、処理対象のフレームの各スライスについて符号化処理が開始される前の時点での、各スライスの実際の伝送バッファ位置を算出する。
【0161】
ステップS1609において、個別制御部1010_1~1010_3は、処理対象のフレームの各スライスについて符号化処理が開始される前の時点での、各スライスの誤差を算出する。
【0162】
ステップS1610において、個別制御部1010_1~1010_3は、ステップS1609において算出した各スライスの誤差を、SOP内においてまだ符号化処理が行われていない各フレームの、対応するスライス同士の目標符号量の比率で分配する。
【0163】
ステップS1611において、個別制御部1010_1~1010_3は、符号化処理が行われていない各フレームの各スライスの目標符号量を、分配した誤差に基づいて補正する。
【0164】
ステップS1612において、各4K60Hzエンコーダは、処理対象のフレームの各スライスについて、補正後の各スライスの目標符号量のもとで符号化処理を行う。また、個別制御部1010_1~1010_3は、符号化処理が行われたフレームの次のフレームを処理対象のフレームとする。
【0165】
なお、ステップS1607からステップS1612の各処理は、1SOPに含まれる全てのフレームについて実行され、1SOPに含まれる全てのフレームについて各処理が実行されると、1SOP分の符号化処理が終了する。
【0166】
以上の説明から明らかなように、第1の実施形態に係る動画像符号化装置120では、8K・120Hzの動画像をダウンコンバートし、1SOPごとに先行符号化することで、1SOPの各フレームの各スライスの目標符号量を算出する。また、第1の実施形態に係る動画像符号化装置120では、1SOPに含まれる各フレームについて、スライス単位の符号化処理が行われるごとに、実際の伝送バッファの位置と仮の伝送バッファの位置との誤差を、スライス単位で算出する。更に、第1の実施形態に係る動画像符号化装置120では、算出したスライス単位の誤差を、1SOP内においてまだ符号化処理が行われていないフレームの、対応するスライス同士の目標符号量の比率に基づいて分配し、スライス単位の目標符号量を補正する。
【0167】
これにより、第1の実施形態に係る動画像符号化装置120では、1SOPの終端のフレームの符号化処理が行われた時点で、仮の伝送バッファの位置と実際の伝送バッファの位置とを一致させることができる。
【0168】
この結果、第1の実施形態に係る動画像符号化装置120によれば、伝送バッファにおいてアンダフローまたはオーバフローが発生することを回避することができる。
【0169】
[第2の実施形態]
上記第1の実施形態では、フレーム単位の仮の伝送バッファ位置から、スライス単位の仮の伝送バッファ位置を算出するにあたり、フレーム内の各スライスの目標符号量の比率を用いるものとして説明した。しかしながら、1SOP内において符号化処理が進むにつれて、各スライスの目標符号量は、順次、補正されていく。そこで、第2の実施形態では、各スライスの仮の伝送バッファ位置を算出するにあたり、フレーム内の補正後の各スライスの目標符号量の比率を用いる。
【0170】
また、上記第1の実施形態では、スライス単位のバッファ回復量を算出するにあたり、フレーム内の各スライスの目標符号量の比率を用いるものとして説明した。しかしながら、1SOP内において符号化処理が進むにつれて、各スライスの目標符号量は、順次、補正されていく。そこで、第2の実施形態では、スライス単位のバッファ回復量を算出するにあたり、フレーム内の補正後の各スライスの目標符号量の比率を用いる。
【0171】
以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
【0172】
(1)各スライスの仮の伝送バッファ位置の算出方法
はじめに、各スライスの仮の伝送バッファ位置の算出方法について説明する。上記第1の実施形態で説明したように、各フレームの各スライスについて符号化処理が行われるごとに、目標符号量再計算部1103では、スライス単位の誤差を算出する。そして、目標符号量再計算部1103では、SOP内においてまだ符号化処理が行われていない各フレームの各スライスの目標符号量を補正する。
【0173】
一方で、上記第1の実施形態で説明したように、目標符号量再計算部1103では、目標符号量保存部1101から、
・1SOPの各フレームの各スライスの目標符号量、
・1SOPの各フレームの仮の伝送バッファ位置、
を読み出し、フレーム内の各スライスの目標符号量の比率に基づいて各スライスの仮の伝送バッファ位置を算出する。
【0174】
このとき、第2の実施形態では、各スライスの目標符号量が補正されていた場合には、フレーム内の補正後の各スライスの目標符号量の比率を用いて、各スライスの仮の伝送バッファ位置を算出する。具体的には、下式に基づいて、各スライスの仮の伝送バッファ位置を算出する。
【0175】
【数6】
【0176】
(2)スライス単位のバッファ回復量の算出方法
次に、スライス単位のバッファ回復量の算出方法について説明する。上記第1の実施形態で説明したように、1フレームの各スライスについて符号化処理が行われるごとに、目標符号量再計算部1103では、スライス単位の誤差を算出する。そして、目標符号量再計算部1103では、SOP内においてまだ符号化処理が行われていない各フレームの各スライスの目標符号量を補正する。
【0177】
一方で、上記第1の実施形態で説明したように、目標符号量再計算部1103では、各フレームにおいてスライス単位のバッファ回復量を、フレーム内の各スライスの目標符号量の比率に従って算出する。
【0178】
このとき、第2の実施形態では、各スライスの目標符号量が補正されていた場合には、フレーム内の補正後の各スライスの目標符号量の比率を用いて、各スライスのバッファ回復量を算出する。具体的には、下式に基づいて、各スライスのバッファ回復量を算出する。
【0179】
【数7】
【0180】
(3)仮の伝送バッファ位置の具体例及び実際の伝送バッファ位置の具体例
次に、スライス[0]の仮の伝送バッファ位置の具体例及びスライス[0]の実際の伝送バッファ位置の具体例について説明する。図17は、スライス[0]の仮の伝送バッファ位置の具体例及びスライス[0]の実際の伝送バッファ位置の具体例を示す図である。
【0181】
このうち、図17(a)は、符号化順序が1番目のフレームのスライス[0]について符号化処理が開始される前の伝送バッファ位置を示している。ここで、スライス[0]の先頭の仮の伝送バッファ位置(EstSliceCpbBoc[0])と、スライス[0]の先頭の実際の伝送バッファ位置(SliceCpbBoc[0])とは一致している。
【0182】
このため、図17(a)の時点で、目標符号量再計算部1103では、
・スライス[0]の仮の伝送バッファ位置(EstSliceCpbBoc[1])を算出するにあたり、符号化順序が0番目のフレーム内の各スライスの目標符号量の比率を用いる。
・スライス[0]の実際の伝送バッファ位置(SliceCpbBoc[1])を算出するにあたり、符号化順序が0番目のフレーム内の各スライスの目標符号量の比率に基づく、バッファ回復量(R/P)slice[0]を用いる。
【0183】
一方、図17(b)は、符号化順序が2番目のフレームのスライス[0]について符号化処理が開始される前の伝送バッファ位置を示している。ここで、符号化順序が1番目のフレームのスライス[0]について符号化処理が開始される前の時点で、誤差(SliceError[1])が発生しているため、符号化順序が1番目のフレームのスライス[0]については目標符号量が補正されている。
【0184】
このため、図17(b)の時点で、目標符号量再計算部1103は、
・スライス[0]の仮の伝送バッファ位置(EstSliceCpbBoc[2])を算出するにあたり、符号化順序が1番目のフレーム内の補正後の各スライスの目標符号量の比率を用いる。
・スライス[0]の実際の伝送バッファ位置(SliceCpbBoc[2])を算出するにあたり、符号化順序が1番目のフレーム内の補正後の各スライスの目標符号量の比率に基づく、バッファ回復量(R/P)slice[1]を用いる。
【0185】
(4)第2の実施形態に係る動画像符号化装置による符号化処理の流れ
次に、第2の実施形態に係る動画像符号化装置120による符号化処理全体の流れについて説明する。図18は、第2の実施形態に係る動画像符号化装置による符号化処理の流れを示すフローチャートである。図16を用いて説明した符号化処理との相違点は、ステップS1801とステップS1802である。
【0186】
ステップS1801において、個別制御部1010_1~1010_3は、フレーム内の各スライスの目標符号量の比率を用いて、処理対象のフレームの1つ前のフレームのスライス単位のバッファ回復量を計算する。このとき、個別制御部1010_1~1010_3では、処理対象のフレームについて、スライス単位の目標符号量が補正されていた場合には、フレーム内の補正後の各スライスの目標符号量の比率を用いて、バッファ回復量を計算する。
【0187】
ステップS1802において、個別制御部1010_1~1010_3は、フレーム内の各スライスの目標符号量の比率を用いて、処理対象のフレームの各スライスについて符号化処理を開始する前の時点での、各スライスの仮の伝送バッファ位置を算出する。このとき、個別制御部1010_1~1010_3では、スライス単位の目標符号量が補正されていた場合には、フレーム内の補正後の各スライスの目標符号量の比率を用いて、各スライスの仮の伝送バッファ位置を算出する。
【0188】
以上の説明から明らかなように、第2の実施形態に係る動画像符号化装置では、各スライスの仮の伝送バッファ位置を算出するにあたり、フレーム内の補正後の各スライスの目標符号量の比率を用いる。また、第2の実施形態に係る動画像符号化装置では、スライス単位のバッファ回復量を算出するにあたり、フレーム内の補正後の各スライスの目標符号量の比率を用いる。
【0189】
これにより、第2の実施形態に係る動画像符号化装置によれば、仮の伝送バッファ位置と実際の伝送バッファ位置との誤差を、より的確に算出することが可能となる。
【0190】
[第3の実施形態]
上記第1及び第2の実施形態では、目標符号量の補正を、SOP内において符号化処理が行われていない残りの全てのフレームの各スライスについて行うものとして説明した。一方で、上述したように、SOP内の各フレームは、階層ごとに発生符号量が異なる。
【0191】
このため、仮の伝送バッファ位置と実際の伝送バッファ位置との誤差が大きいときに、発生符号量の小さいフレーム(階層が深いフレーム)の各スライスの目標符号量を補正すると、補正後の各スライスの目標符号量がゼロになる可能性がある。
【0192】
そこで、第3の実施形態では、目標符号量の補正を、SOP内において符号化処理が行われていない残りのフレームのうち、階層の浅いフレームの各スライスについて行う。以下、第3の実施形態について、上記第1及び第2の実施形態との相違点を中心に説明する。
【0193】
(1)第3の実施形態に係る動画像符号化装置の機能構成の詳細
はじめに、第3の実施形態に係る動画像符号化装置120の機能構成の詳細について説明する。図19は、第3の実施形態に係る動画像符号化装置の機能構成の詳細を示す図である。図10と同様、図19では、レートコントローラ1000、個別制御部1010_1、8K60Hzエンコーダ306_1に含まれる4つの4K60Hzエンコーダのうち、スライス[0]を符号化処理する4K60Hzエンコーダのみを示している。
【0194】
図10との相違点は、個別制御部1010_1が階層情報取得部1901を有する点である。階層情報取得部1901は、時空間分割部302より、8K・120Hzの動画像の各フレームのスライス[0]をSOP単位で取得する。また、階層情報取得部1901は、取得した各フレームのスライス[0]のうち、所定の符号化順序のフレーム(例えば、符号化順序が偶数番目のフレーム)のスライス[0]を、目標符号量再計算部1103に通知する。符号化順序が偶数番目のフレームは、階層が浅いため、当該フレームのスライス[0]を符号化処理した場合、発生符号量が大きいからである。
【0195】
(2)第3の実施形態に係る動画像符号化装置による符号化処理の流れ
次に、第3の実施形態に係る動画像符号化装置120による符号化処理の流れについて説明する。図20は、第3の実施形態に係る動画像符号化装置による符号化処理の流れを示すフローチャートである。図16を用いて説明した符号化処理との相違点は、ステップS2001とステップS2002である。
【0196】
ステップS2001において、個別制御部1010_1~1010_3は、ステップS1609で算出した各スライスの誤差を、SOP内においてまだ符号化処理が行われていない階層の浅い各フレームの、対応するスライス同士の目標符号量の比率で分配する。
【0197】
ステップS2002において、個別制御部1010_1~1010_3は、SOP内においてまだ符号化処理が行われていない、階層の浅いフレームの各スライスの目標符号量を、分配した各スライスの誤差に基づいて補正する。
【0198】
以上の説明から明らかなように、第3の実施形態に係る動画像符号化装置では、目標符号量の補正を、符号化処理が行われていない残りのフレームのうち、階層の浅いフレームの各スライスについて行う。
【0199】
これにより、第3の実施形態に係る動画像符号化装置によれば、スライス単位の目標符号量を適切に補正することが可能となる。
【0200】
[第4の実施形態]
上記第1の実施形態では、SOP内においてまだ符号化処理が行われていない残りのフレームのスライス単位の目標符号量を補正するにあたり、残りのフレームの対応するスライス同士の目標符号量の比率に応じて誤差を分配するものとして説明した。
【0201】
しかしながら、残りのフレームには、階層の浅いフレームと階層の深いフレームとが含まれ、階層の浅いフレームの方が、符号化処理の際に、より多くのフレームから参照される(以下、このようなフレームを参照フレームと称す)。一方、階層の深いフレームは、符号化処理の際に、他のフレームから参照されない(以下、このようなフレームを非参照フレームと称す)。
【0202】
一般に、符号化処理においては、参照フレームの画質を向上させることで、動画像全体の画質が向上する。このため、第4の実施形態では、まだ符号化処理が行われていない残りのフレームの各スライスの目標符号量を補正するにあたり、参照フレームか否かに応じて、補正量を調整する。以下、第4の実施形態について、上記第1の実施形態との相違点を中心に説明する。
【0203】
図21は、スライス単位の目標符号量の第2の補正方法による補正処理の具体例を示す第2の図である。図21(a)に示すように、符号化順序が3番目のフレームについて符号化処理が行われ、符号化順序が4番目のフレームの符号化処理が開始される前の時点で、スライス[0]の誤差がSliceError[3]であったとする。
【0204】
一方で、目標符号量再計算部1103により算出された、符号化順序が4番目のフレームのスライス[0]の目標符号量が、SliceTarget[4]であったとする。また、個別制御部1010_1により算出された、符号化順序が5番目、6番目、7番目のフレームのスライス[0]の目標符号量が、それぞれ、SliceTarget[5]~SliceTarget[7]であったとする。
【0205】
ここで、図21(b)に示すように、符号化順序が4番目から7番目のフレームのうち、4番目のフレームと6番目のフレームは参照フレームであり、5番目のフレームと7番目のフレームは非参照フレームである。
【0206】
そこで、目標符号量再計算部1103では、4番目のフレームのスライス[0]の目標符号量と、6番目のフレームのスライス[0]の目標符号量を補正するにあたり、目標符号量を減算する場合にあっては、誤差の分配を少なくする。具体的には、目標符号量の比率に、1未満の補正係数を乗算したうえで、スライス[0]の目標符号量を補正する。
【0207】
また、目標符号量再計算部1103では、4番目のフレームのスライス[0]の目標符号量と、6番目のフレームのスライス[0]の目標符号量を補正するにあたり、目標符号量を加算する場合にあっては、誤差の分配を多くする。具体的には、目標符号量の比率に、1以上の補正係数を乗算したうえで、スライス[0]の目標符号量を補正する。
【0208】
また、目標符号量再計算部1103では、5番目のフレームのスライス[0]の目標符号量と、7番目のフレームのスライス[0]の目標符号量を補正するにあたり、目標符号量を減算する場合にあっては、誤差の分配を多くする。具体的には、目標符号量の比率に、1以上の補正係数を乗算したうえで、スライス[0]の目標符号量を補正する。
【0209】
また、目標符号量再計算部1103では、5番目のフレームのスライス[0]の目標符号量と、7番目のフレームのスライス[0]の目標符号量を補正するにあたり、目標符号量を加算する場合にあっては、誤差の分配を少なくする。具体的には、目標符号量の比率に、1未満の補正係数を乗算したうえで、スライス[0]の目標符号量を補正する。
【0210】
以上の説明から明らかなように、第4の実施形態に係る動画像符号化装置では、SOP内においてまだ符号化処理が行われていない残りのフレームのスライス単位の目標符号量を補正するにあたり、参照フレームか否かに応じて、補正量を調整する。
【0211】
これにより、第4の実施形態に係る動画像符号化装置によれば、復号後の動画像の画質を向上させることができる。
【0212】
[その他の実施形態]
上記第1乃至第4の実施形態では、8K60Hzエンコーダ306_1~306_3が、それぞれ、4つの4K60Hzエンコーダを有するものとして説明した。また、上記第1乃至第4の実施形態では、4つの4K60Hzエンコーダが、それぞれ、8K・120Hzの動画像の1SOP分の各フレームの1スライス分を符号化処理するものとして説明した。
【0213】
しかしながら、8K60Hzエンコーダ306_1~306_3が、それぞれ、8K・120Hzの動画像の1SOP分の各フレームを符号化処理するようにしてもよい。この場合、時空間分割部302では、時分割のみを行い、空間分割を行う必要はなくなる。
【0214】
つまり、上記第1乃至第4の実施形態では、符号化処理の処理単位を1スライスとして説明したが、符号化処理の処理単位は1フレームであってもよい。具体的には、個別制御部1010_1~1010_3は、処理対象のフレームの符号化処理が行われるごとに、フレーム単位の実際の伝送バッファ位置と仮の伝送バッファ位置との誤差を算出してもよい。また、個別制御部1010_1~1010_3は、フレーム単位の誤差に基づいて、SOP内において符号化処理が行われていない残りの各フレームの目標符号量を補正してもよい。これにより、スライス単位で目標符号量を補正する場合と同様の効果が得られる。
【0215】
また、上記第1乃至第4の実施形態では、4K60Hzエンコーダが符号化処理する際の符号化方式について特に言及しなかったが、符号化方式は任意である(例えば、H.265/HEVCであってもよいし、H.264/MPEG4 AVCであってもよい)。
【0216】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
時間方向に分割されたSOP単位の動画像をダウンコンバートし、先行して符号化処理を行う先行符号化部と、
前記先行して符号化処理を行った結果に基づいて、前記SOP単位の動画像に含まれる各処理単位の目標符号量を算出し、算出した目標符号量に基づいて各処理単位について符号化処理が行われた場合の仮のバッファ位置を算出する算出部と、
前記SOP単位の動画像において、各処理単位について符号化処理が行われるごとに、実際の伝送バッファの位置と仮のバッファ位置との誤差を算出し、まだ符号化処理が行われていない各処理単位の目標符号量を補正する補正部と
を有する動画像符号化装置。
(付記2)
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各処理単位の目標符号量の比率に基づいて、前記誤差を、各処理単位の目標符号量に分配することで、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、付記1に記載の動画像符号化装置。
(付記3)
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各処理単位の目標符号量の比率と、まだ符号化処理が行われていない各処理単位の階層とに基づいて、前記誤差を、各処理単位の目標符号量に分配することで、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、付記1に記載の動画像符号化装置。
(付記4)
前記処理単位は、前記SOP単位の動画像に含まれるフレームである、付記1乃至3のいずれかの付記に記載の動画像符号化装置。
(付記5)
前記処理単位は、前記SOP単位の動画像に含まれる各フレームを、空間方向に分割したスライスである、付記1乃至3のいずれかの付記に記載の動画像符号化装置。
(付記6)
前記先行符号化部は、前記時間方向及び前記空間方向に分割された動画像をダウンコンバートし、先行して符号化処理を行うことで、前記SOP単位の動画像に含まれる各フレームの各スライスの符号化難易度を推定し、
前記算出部は、推定された各フレームの各スライスの符号化難易度に基づいて、各フレームの目標符号量を算出し、算出した各フレームの目標符号量に基づいて各フレームの仮のバッファ位置を算出する、付記5に記載の動画像符号化装置。
(付記7)
前記算出部は、推定された各フレームの各スライスの符号化難易度に基づいて、各フレームの各スライスの目標符号量を算出し、
前記補正部は、前記算出部により算出された各フレームの仮のバッファ位置と、フレーム内の各スライスの目標符号量の比率とに基づいて、各スライスの仮のバッファ位置を算出する、付記6に記載の動画像符号化装置。
(付記8)
前記補正部は、各スライスについて符号化処理が行われるごとに取得した各スライスの発生符号量と、各スライスのバッファ回復量とに基づいて、各スライスの実際のバッファ位置を算出する、付記7に記載の動画像符号化装置。
(付記9)
前記補正部は、算出した各スライスの仮のバッファ位置と、算出した各スライスの実際のバッファ位置とに基づいて、各スライスの誤差を算出する、付記8に記載の動画像符号化装置。
(付記10)
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各フレームについて、対応するスライス同士の目標符号量の比率に基づいて、対応するスライスの誤差を分配することで、まだ符号化処理が行われていない各フレームについて、対応するスライスの目標符号量を補正する、付記9に記載の動画像符号化装置。
(付記11)
前記補正部は、前記算出部により算出された各フレームの仮のバッファ位置と、フレーム内の補正後の各スライスの目標符号量の比率とに基づいて、各スライスの仮のバッファ位置を算出する、付記10に記載の動画像符号化装置。
(付記12)
前記補正部は、前記各スライスのバッファ回復量を、フレーム内の補正後の各スライスの目標符号量の比率に基づいて算出する、付記10に記載の動画像符号化装置。
(付記13)
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各フレームのうち、所定の符号化順序のフレームについて、対応するスライス同士の目標符号量の比率に基づいて、対応するスライスの誤差を分配することで、該所定の符号化順序のフレームについて、対応するスライスの目標符号量を補正する、付記9に記載の動画像符号化装置。
(付記14)
前記補正部は、前記SOP単位の動画像において、まだ符号化処理が行われていない各フレームについて、対応するスライス同士の目標符号量の比率に基づいて、対応するスライスの誤差を分配する際、参照フレームであるか否かに応じて異なる補正係数を乗算して分配することで、まだ符号化処理が行われていない各フレームについて、対応するスライスの目標符号量を補正する、付記9に記載の動画像符号化装置。
(付記15)
時間方向に分割されたSOP単位の動画像をダウンコンバートし、先行して符号化処理を行い、
前記先行して符号化処理を行った結果に基づいて、前記SOP単位の動画像に含まれる各処理単位の目標符号量を算出し、算出した目標符号量に基づいて各処理単位について符号化処理が行われた場合の仮のバッファ位置を算出し、
前記SOP単位の動画像において、各処理単位について符号化処理が行われるごとに、実際の伝送バッファの位置と仮のバッファ位置との誤差を算出し、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、
処理をコンピュータが実行する動画像符号化方法。
(付記16)
時間方向に分割されたSOP単位の動画像をダウンコンバートし、先行して符号化処理を行い、
前記先行して符号化処理を行った結果に基づいて、前記SOP単位の動画像に含まれる各処理単位の目標符号量を算出し、算出した目標符号量に基づいて各処理単位について符号化処理が行われた場合の仮のバッファ位置を算出し、
前記SOP単位の動画像において、各処理単位について符号化処理が行われるごとに、実際の伝送バッファの位置と仮のバッファ位置との誤差を算出し、まだ符号化処理が行われていない各処理単位の目標符号量を補正する、
処理をコンピュータに実行させるための動画像符号化プログラム。
【0217】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0218】
120 :動画像符号化装置
210 :制御装置
220 :信号変換装置
230 :符号化装置
240 :再構成装置
301 :受信部
302 :時空間分割部
303 :ダウンコンバータ
304 :先行符号化部
305 :レートコントローラ
306 :8K120Hzエンコーダ
306_1~306_3 :8K60Hzエンコーダ
307 :ストリーム結合部
1001_1~1001_3 :個別制御部
1101 :目標符号量保存部
1102 :発生符号量保存部
1103 :目標符号量再計算部
1901 :階層情報取得部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21