以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(ビットストリーム結合装置)
3.第3の実施の形態(ビットストリーム結合装置)
4.第4の実施の形態(ビットストリーム結合装置)
5.第5の実施の形態(コンピュータ)
6.第6の実施の形態(応用例)
7.第7の実施の形態(セット・ユニット・モジュール・プロセッサ)
<1.第1の実施の形態>
<スマートレンダリング編集>
従来、動画像の編集において、複数の動画像同士を結合する編集がある。一般的に、デジタル信号処理において動画像データはデータサイズが大きいので、符号化(圧縮)されて利用されることが多い。画像データの汎用的な符号化方式として、例えばMPEG(Moving Picture Experts Group)、AVC(Advanced Video Coding)、HEVC(High Efficiency Video Coding)等がある。
このように符号化された動画像データを用いて、上述したような動画像同士の結合を行う場合、複数本のビットストリームから1本のビットストリームを生成することになる。その際、各ビットストリームをすべて復号して非圧縮の状態にしてから結合し、結合後の動画像を符号化して1本のビットストリームを生成する方法が考えられるが、その場合、ビットストリームのデータサイズが大きくなればなるほど、処理の負荷が大きなものとなってしまうおそれがある。
そこで、例えば特許文献1や特許文献2に記載のように、このように符号化された動画像データをフレーム精度で切り出し編集する際に、エンコード時間を短くし且つ画質を劣化させない技術としてスマートレンダリング編集が考えられた。
ところで、AVCやHEVCにおいては、ビットストリームを破綻なく伝送するために、仮想参照デコーダ(HRD(Hypothetical reference decoder))という概念が導入されている。エンコーダは、仮想参照デコーダを破綻させないようにビットストリームを生成する必要がある。上述したスマートレンダリング編集における符号化においても同様である。
しかしながら、スマートレンダリング編集において、単純に、動画の所定のエンコード区間を符号化しただけでは、結合したビットストリーム同士の関係が考慮されていないため、結合した部分を超えて(結合後のビットストリーム全体において)仮想参照デコーダを破綻させないようにすることを保証することができない。結合後のビットストリームが正しく復号することができるようにするためには、ビットストリームに含まれる仮想参照デコーダに関する情報を適切に書き換える等の煩雑な作業が必要であった。
例えば、図1は、画像データがAVCで符号化されたビットストリーム同士を結合する場合の例を示している。図1のAは、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図1の結合においては、ストリームBの先頭がストリームAの終端に接続される。図1のBは、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。
以下において、このような結合に用いられる、ストリームAを結合されるビットストリーム(ストリーム)とも称し、ストリームBを結合するビットストリーム(ストリーム)とも称する。
図1のBに示されるように、この例の場合、結合するビットストリームであるストリームB(StreamB)の先頭のCpbRemovalDelayを、結合されるビットストリームであるストリームA(StreamA)の終端のCpbRemovalDelay+1にする必要がある。そのためには、ユーザがストリームA(StreamA)の終端のCpbRemovalDelayを調べ、ストリームB(StreamB)の先頭のCpbRemovalDelayを更新しなければならず、煩雑な作業を必要とした。
図2は、画像データがHEVCで符号化されたビットストリーム同士を結合する場合の例を示している。図2のAは、図1のAと同様に、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図2の結合も図1と同様に行われる。すなわち、ストリームBの先頭がストリームAの終端に接続される。図2のBは、図1のBと同様に、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。
図2に示されるように、HEVCでは、ビットストリームを簡単に結合させる目的で、Buffering Period SEI(Supplemental Enhancement Information)にconcatenation_flagが追加された。concatenation_flag=1の場合は、ビットストリームが結合されたことを表しており、Cpb(Coded Picture Buffer(符号化済みピクチャバッファ))の引き抜きタイミングを表す、AuNominalRemovalTimeの計算方法が変更される。この際、Picture Timing SEIに示されるau_cpb_removal_delay_minus1を計算に使用しないことが特徴となる。
HEVCのビットストリームの場合、このconcatenation_flag=1とするだけで日本のビットストリームを結合してもHRD的に破たんのないストリームを生成することが出来る。
図3は、concatenation_flag=1の時のAuNominalRemovalTimeの実際の計算方法の例を表したものである。この計算を見るとpicture timing SEIのau_cpb_removal_delay_minus1を使わずにシームレスな結合が出来ていることが分かる。
このようにHEVCでは、concatenation_flagを使うことで簡単にビットストリームを結合できる場合がある。しかしながら、常に、このように簡単にビットストリームを結合することができるわけではない。
図4は、AVCのビットストリームの結合においてBピクチャ(B-picture)を含むようなリオーダが発生する場合の例である。図4のAは、図1のAと同様に、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図4のBは、図1のBと同様に、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。この場合、図1と同様の処理でビットストリームを結合することができる。
これに対して、HEVCのビットストリームの結合においてBピクチャ(B-picture)を含むようなリオーダが発生する場合、AVCよりも処理が複雑になるおそれがあった。図5は、その場合の例を示している。図5のAは、図2のAと同様に、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図5のBは、図2のBと同様に、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。
図5に示されるように、この例の場合、結合するビットストリームであるストリームB(StreamB)のconcatenation_flag=1とし、IDR(Instantaneous Decoding Refresh)ピクチャでcpb_removal_delay=0として運用し、ユーザは、結合されるビットストリームであるストリームA(StreamA)の終端のprevNonDiscardablePicの位置を確認して、ストリームB(StreamB)のauCpbRemovalDelayDeltaMinus1を書き換える必要があった。つまり、煩雑な作業を必要とした。図5の例の場合、ストリームA(StreamA)の終端のprevNonDiscardablePicは、(n+3)のピクチャ(nal_unit_typeがTRAIL_R)であるので、ストリームB(StreamB)のauCpbRemovalDelayDeltaMinus1=2である。
そこで、HEVCにおいてビットストリームを結合する前にシンタクス(Syntax)を適切に設定することでより容易にビットストリーム同士を結合することができるようにする。
<画像符号化装置>
例えば、画像データの符号化の際に、その画像データの処理対象であるカレントピクチャの、位置に関する情報と参照に関する情報とに基づいて、仮想参照デコーダに関するヘッダ情報を設定し、その画像データを符号化した符号化データと、その設定されたヘッダ情報とを含むビットストリームを生成するようにする。
ヘッダ情報とは、各階層(シーケンス/ピクチャ/スライス/タイル/最大符号化単位/符号化単位等)に対して、各階層に設定されたデータに先立ってパース(参照する)情報又は各階層に設定されたデータとは独立してパース(参照する)情報を意味する。例えば、ビデオパラメータセット(VPS(Video Parameter Set))、シーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、スライスヘッダ(Slice Header)、ナルユニットタイプ(nal_unit_typ)、SEI(Supplemental Enhancement Information)等の情報がヘッダ情報に該当する。ヘッダ情報は、ビットストリームのシンタクスとして明示的に定義された情報だけではなく、各階層の先頭に位置する情報も含む。
図6は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図6に示される画像符号化装置100は、例えば、HEVCの予測処理、またはそれに準ずる方式の予測処理を用いて動画像の画像データを符号化する。
図6に示されるように画像符号化装置100は、画面並べ替えバッファ111、演算部112、直交変換部113、量子化部114、可逆符号化部115、蓄積バッファ116、逆量子化部117、および逆直交変換部118を有する。また、画像符号化装置100は、演算部119、イントラ予測部120、ループフィルタ121、フレームメモリ122、インター予測部123、および予測画像選択部124を有する。
さらに、画像符号化装置100は、レート制御部125およびnal_unit_type判定部126を有する。
画面並べ替えバッファ111は、入力された画像データの各フレームの画像をその表示順に記憶し、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部112に供給する。また、画面並べ替えバッファ111は、フレームの順番を並び替えた画像を、イントラ予測部120およびインター予測部123にも供給する。
演算部112は、画面並べ替えバッファ111から読み出された画像から、予測画像選択部124を介してイントラ予測部120若しくはインター予測部123から供給される予測画像を減算し、その差分情報(残差データ)を直交変換部113に供給する。例えば、イントラ符号化が行われる画像の場合、演算部112は、画面並べ替えバッファ111から読み出された画像から、イントラ予測部120から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部112は、画面並べ替えバッファ111から読み出された画像から、インター予測部123から供給される予測画像を減算する。
直交変換部113は、演算部112から供給される残差データに対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部113は、その直交変換により得られた変換係数を量子化部114に供給する。
量子化部114は、直交変換部113から供給される変換係数を量子化する。量子化部114は、レート制御部125から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部114は、量子化された変換係数を可逆符号化部115に供給する。
可逆符号化部115は、量子化部114において量子化された変換係数を任意の符号化方式で符号化する。また、可逆符号化部115は、イントラ予測のモードを示す情報などをイントラ予測部120から取得し、インター予測のモードを示す情報や差分動きベクトル情報などをインター予測部123から取得する。さらに、可逆符号化部115は、nal_unit_type判定部126において設定されたconcatenation_flagやnal_unit_type等の情報を取得する。
可逆符号化部115は、これらの各種情報を任意の符号化方式で符号化し、符号化データ(符号化ストリームとも称する)のヘッダ情報の一部とする(多重化する)。可逆符号化部115は、符号化して得られた符号化データを蓄積バッファ116に供給して蓄積させる。
可逆符号化部115の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ116は、可逆符号化部115から供給された符号化データを、一時的に保持する。蓄積バッファ116は、所定のタイミングにおいて、保持している符号化データを、画像符号化装置100の外部に出力する。すなわち、蓄積バッファ116は、符号化データを伝送する伝送部でもある。
また、量子化部114において量子化された変換係数は、逆量子化部117にも供給される。逆量子化部117は、その量子化された変換係数を、量子化部114による量子化に対応する方法で逆量子化する。逆量子化部117は、その逆量子化により得られた変換係数を、逆直交変換部118に供給する。
逆直交変換部118は、逆量子化部117から供給された変換係数を、直交変換部113による直交変換処理に対応する方法で逆直交変換する。逆直交変換部118は、逆直交変換された出力(復元された残差データ)を演算部119に供給する。
演算部119は、逆直交変換部118から供給された、復元された残差データに、予測画像選択部124を介してイントラ予測部120若しくはインター予測部123から供給される予測画像を加算し、局所的に再構成された画像(以下、再構成画像と称する)を得る。その再構成画像は、イントラ予測部120およびループフィルタ121に供給される。
イントラ予測部120は、演算部119から参照画像として供給される再構成画像である処理対象ピクチャ内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部120は、予め用意された複数のイントラ予測モードでこのイントラ予測を行う。
イントラ予測部120は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ111から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部120は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部124に供給する。
また、上述したように、イントラ予測部120は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部115に供給し、符号化させる。
ループフィルタ121は、デブロックフィルタや適応ループフィルタ等を含み、演算部119から供給される再構成画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ121は、再構成画像に対してデブロックフィルタ処理を行うことにより再構成画像のブロック歪を除去する。また、例えば、ループフィルタ121は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ121が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ121は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部115に供給し、それを符号化させるようにすることもできる。
ループフィルタ121は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ122に供給する。
なお、ループフィルタ121が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ121は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部115に供給し、それを符号化させるようにすることもできる。
フレームメモリ122は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、インター予測部123に供給する。
インター予測部123は、画面並べ替えバッファ111から供給される入力画像と、フレームメモリ122から読み出した参照画像とを用いてインター予測処理を行う。より具体的には、インター予測部123は、動き予測を行って動きベクトルを検出し、その動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。
インター予測部123は、候補となる全てのインター予測モードで予測画像を生成する。インター予測部123は、画面並べ替えバッファ111から供給される入力画像と、生成した差分動きベクトルの情報などを用いて、各予測画像のコスト関数値を評価し、最適なモードを選択する。インター予測部123は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部124に供給する。
インター予測部123は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部115に供給し、符号化させる。必要な情報としては、例えば、生成された差分動きベクトルの情報や、予測動きベクトル情報として、予測動きベクトルのインデックスを示すフラグなどがある。
予測画像選択部124は、演算部112演算部119に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部124は、予測画像の供給元としてイントラ予測部120を選択し、そのイントラ予測部120から供給される予測画像を演算部112や演算部119に供給する。また、例えば、インター符号化の場合、予測画像選択部124は、予測画像の供給元としてインター予測部123を選択し、そのインター予測部123から供給される予測画像を演算部112や演算部119に供給する。
レート制御部125は、蓄積バッファ116に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部114の量子化動作のレートを制御する。
nal_unit_type判定部126は、画面並べ替えバッファ111から、当該ピクチャがストリームの先頭のピクチャであるか否かを示す情報(isFirstPicture)、当該ピクチャがストリームの終端のピクチャであるか否かを示す情報(isLastPicture)、並びに、当該ピクチャが参照されるか否か(参照ピクチャであるか否か)を示す情報(isReferencePicture)を取得する。
nal_unit_type判定部126は、ビットストリームの結合を示す情報(concatenation_flag)、ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報(auCpbRemovalDelayMinus1)、並びに、ナルユニットタイプを示す情報(nal_unit_type)を設定する。
より具体的には、例えば、処理対象であるカレントピクチャがストリームの先頭のピクチャである場合、nal_unit_type判定部126は、concatenation_flagを「1(すなわち、真)」に設定し、auCpbRemovalDelayMinus1を「0(すなわち、最小値)」に設定し、nal_unit_typeをIDR_W_RADL若しくはIDR_N_LP(すなわち、IDRピクチャであることを示す値)に設定する。
また、例えば、処理対象であるカレントピクチャがストリームの先頭でなく終端のピクチャである場合、nal_unit_type判定部126は、concatenation_flagを「0(すなわち、偽)」に設定し、auCpbRemovalDelayMinus1を「0(すなわち、最小値)」に設定し、nal_unit_typeをTRAIL_R(すなわち、テンポラルサブレイヤでない、参照されるトレーリングピクチャであることを示す値)に設定する。
さらに、例えば、処理対象であるカレントピクチャがストリームの先頭でも終端でもなく、参照ピクチャである場合、nal_unit_type判定部126は、concatenation_flagを「0(すなわち、偽)」に設定し、auCpbRemovalDelayMinus1を「0(すなわち、最小値)」に設定し、nal_unit_typeをTRAIL_R(すなわち、テンポラルサブレイヤでない、参照されるトレーリングピクチャであることを示す値)に設定する。
また、例えば、処理対象であるカレントピクチャがストリームの先頭でも終端でもなく、参照ピクチャでもない場合、nal_unit_type判定部126は、concatenation_flagを「0(すなわち、偽)」に設定し、auCpbRemovalDelayMinus1を「0(すなわち、最小値)」に設定し、nal_unit_typeをTRAIL_N(テンポラルサブレイヤでない非参照ピクチャであることを示す値)に設定する。
nal_unit_type判定部126は、以上のように設定したこれらの情報(concatenation_flag、auCpbRemovalDelayMinus1、nal_unit_type等)を可逆符号化部115に供給し、それらの情報が、可逆符号化部115において生成されるビットストリームに含められるようにする。
<レート制御部>
図7は、レート制御部125の主な構成例を示すブロック図である。図7に示される世に、レート制御部125は、HRDトレース部141およびTarget Bit決定部142を有する。
HRDトレース部141は、画面並べ替えバッファ111から、処理対象であるカレントピクチャの位置に関する情報と、仮想参照デコーダの調整を行う区間であるかを示す情報とを取得する。より具体的には、HRDトレース部141は、カレントピクチャの位置に関する情報として、例えば、当該ピクチャがストリームの終端のピクチャであるか否かを示す情報(isLastPicture)を取得する。また、HRDトレース部141は、仮想参照デコーダの調整を行う区間であるかを示す情報として、例えば、符号化済みピクチャバッファ(CPB)のトレースレート(trace_rate)、フレームレート(frame_rate)、およびCPBサイズ(cpb_size)等を取得する。これらのパラメータは、図8に示されるように、符号化済みピクチャバッファ(CPB)に関する情報である。また、HRDトレース部141は、蓄積バッファ116から発生符号量(発生ビット量)を示す情報を取得する。
HRDトレース部141は、これらの仮想参照デコーダ(HRD)に関する制御情報や発生符号量に基づいて、符号化済みピクチャバッファ(CPB)位置を示す情報(cpb_pos)を算出する。HRDトレース部141は、算出したCPB位置を示す情報(cpb_pos)をTarget Bit決定部142に供給する。
Target Bit決定部142は、HRDトレース部141からCPB位置を示す情報(cpb_pos)を取得する。また、Target Bit決定部142は、終端で期待されるCPB位置を示す情報(target_cpb_pos)と、CPBの終端を調整する期間であるか否かを示す情報(isAdjustPeriod)とを、HRDトレース部141を介して画面並べ替えバッファ111から取得する。
Target Bit決定部142は、これらの情報に基づいて、発生符号量の目標値を示す情報であるターゲットビット(target bit)を算出する。Target Bit決定部142は、算出したターゲットビット(target bit)を量子化部114に供給する。
以上のように、画像符号化装置100は、各種パラメータを適宜設定することにより、以下の条件を満たすようにビットストリームを生成する。
・結合されるビットストリームの終端のnal_unit_typeがprevNonDiscardablePicの条件を満たす(例えば、TRAIL_Rなど)。
・結合されるビットストリームの終端のcpb位置が結合するビットストリーム先頭のcpb位置よりも高い。シンタクス的には、initial_cpb_removal_delayの値が高い。
・結合するビットストリームの先頭がconcatenation_flag=1である。
・結合するビットストリームの先頭のauCpbRemovalDelayDeltaMinus1が適切に設定されている(例えば、auCpbRemovalDelayDeltaMinus1=0)。
これらの条件を満たすことにより、ビットストリームは、他のビットストリームと単純に結合することができる。つまり、ユーザが各ビットストリームに含まれる仮想参照デコーダに関する情報を適切に書き換えなくても、結合後のビットストリームが仮想参照デコーダを破綻させないように、それらのビットストリームを結合させることができる。すなわち、画像符号化装置100は、エンコードするときに結合することを事前に考慮して符号化を行うので、他のビットストリームとより容易に結合することができる状態のビットストリームを生成することができる。
<符号化処理の流れ>
次に、画像符号化装置100により実行される各処理の流れの例を説明する。最初に、符号化処理の流れの例を、図9のフローチャートを参照して説明する。
符号化処理が開始されると、画面並べ替えバッファ111は、ステップS101において、入力された動画像の各フレーム(ピクチャ)の画像をその表示する順番に記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS102において、画面並べ替えバッファ111は、ビデオパラメータセット(VPS(Video Parameter Set))、シーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、スライスヘッダ、SEI等の、各種ヘッダ情報を生成する。
ステップS103において、イントラ予測部120は、イントラ予測処理を行い、予測画像を生成する。また、ステップS104において、インター予測部123は、インター予測処理を行い、予測画像を生成する。
ステップS105において、予測画像選択部124は、コスト関数値等に基づいて、ステップS103のイントラ予測処理により生成された予測画像と、ステップS104のインター予測処理により生成された予測画像のいずれか一方を選択する。
ステップS106において、演算部112は、ステップS101の処理によりフレーム順を並び替えられた入力画像と、ステップS105の処理により選択された予測画像との差分を演算する。つまり、演算部112は、入力画像と予測画像との残差データを生成する。このようにして求められた残差データは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS107において、直交変換部113は、ステップS106の処理により生成された残差データを直交変換する。
ステップS108において、量子化部114は、ステップS107の処理により得られた直交変換係数を量子化する。
ステップS109において、逆量子化部117は、ステップS108の処理により生成された量子化された係数(量子化係数とも称する)を、その量子化の特性に対応する特性で逆量子化する。
ステップS110において、逆直交変換部118は、ステップS109の処理により得られた直交変換係数を逆直交変換する。
ステップS111において、演算部119は、ステップS110の処理により復元された残差データに、ステップS105の処理により選択された予測画像を加算することにより、再構成画像の画像データを生成する。
ステップS112においてループフィルタ121は、ステップS111の処理により生成された再構成画像の画像データにループフィルタ処理を行う。これにより、再構成画像のブロック歪み等が除去される。
ステップS113において、フレームメモリ122は、ステップS112の処理により得られた復号画像データを記憶する。
ステップS114において、nal_unit_type判定部126は、ナルユニットタイプ(nal_unit_type)判定処理を行い、ビットストリームの結合を示す情報(concatenation_flag)、ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報(auCpbRemovalDelayMinus1)、並びに、ナルユニットタイプを示す情報(nal_unit_type)を設定する。
ステップS115において、可逆符号化部115は、ステップS108の処理により得られた、量子化された係数を符号化する。すなわち、残差データに対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部115は、ステップS105の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部115、イントラ予測部120から供給される最適イントラ予測モード情報、または、インター予測部123から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する(ビットストリームに含めるようにする)。
さらに、可逆符号化部115は、ステップS114において設定された、ビットストリームの結合を示す情報(concatenation_flag)、ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報(auCpbRemovalDelayMinus1)、並びに、ナルユニットタイプを示す情報(nal_unit_type)を符号化し、符号化データに付加する(ビットストリームに含めるようにする)。
ステップS116において蓄積バッファ116は、ステップS115の処理により得られた符号化データ等を蓄積する。蓄積バッファ116に蓄積された符号化データ等は、ビットストリームとして適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS117において、レート制御部125は、ステップS116の処理により蓄積バッファ116に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部114の量子化動作のレートを制御する。また、レート制御部125は、量子化パラメータに関する情報を、量子化部114に供給する。
ステップS117の処理が終了すると、符号化処理が終了する。
<ナルユニットタイプ判定処理の流れ>
次に、図9のステップS114において実行されるナルユニットタイプ判定処理の流れの例を、図10のフローチャートを参照して説明する。
ナルユニットタイプ判定処理が開始されると、nal_unit_type判定部126は、ステップS131において、ステップS102において生成されたヘッダ情報の中からisFirstPictureを取得する。ステップS132において、nal_unit_type判定部126は、ステップS102において生成されたヘッダ情報の中からisLastPictureを取得する。ステップS133において、nal_unit_type判定部126は、ステップS102において生成されたヘッダ情報の中からisReferencePictureを取得する。
ステップS134において、nal_unit_type判定部126は、concatenation_flagを「0(偽)」に設定する。ステップS135において、nal_unit_type判定部126は、auCpbRemovalDelayMinus1を「0(最小値)」に設定する。
ステップS136において、nal_unit_type判定部126は、isFirstPictureの値が真(true)であるか否かを判定する。isFirstPictureの値が真(true)、すなわち、処理対象であるカレントピクチャがストリームの先頭のピクチャであると判定された場合、処理は、ステップS137に進む。
ステップS137において、nal_unit_type判定部126は、concatenation_flagを「1(真)」に設定する。また、ステップS138において、nal_unit_type判定部126は、カレントピクチャのナルユニットタイプ(nal_unit_type)を、IDR_W_RADL若しくはIDR_N_LP(すなわち、IDRピクチャであることを示す値)に設定する。ステップS138の処理が終了すると、ナルユニットタイプ判定処理が終了し、処理は図9に戻る。
また、ステップS136において、isFirstPictureの値が偽(false)であり、処理対象であるカレントピクチャがストリームの先頭のピクチャでないと判定された場合、処理は、ステップS139に進む。
ステップS139において、nal_unit_type判定部126は、isLastPictureの値が真(true)であるか否かを判定する。isLastPictureの値が真(true)、すなわち、処理対象であるカレントピクチャがストリームの終端のピクチャであると判定された場合、処理は、ステップS140に進む。
ステップS140において、nal_unit_type判定部126は、カレントピクチャのナルユニットタイプ(nal_unit_type)を、TRAIL_R(すなわち、テンポラルサブレイヤでない、参照されるトレーリングピクチャであることを示す値)に設定する。ステップS140の処理が終了すると、ナルユニットタイプ判定処理が終了し、処理は図9に戻る。
また、ステップS139において、isLastPictureの値が偽(false)であり、処理対象であるカレントピクチャがストリームの終端のピクチャでないと判定された場合、処理は、ステップS141に進む。
ステップS141において、nal_unit_type判定部126は、isReferencePictureの値が真(true)であるか否かを判定する。isReferencePictureの値が真(true)、すなわち、処理対象であるカレントピクチャが参照ピクチャであると判定された場合、処理は、ステップS142に進む。
ステップS142において、nal_unit_type判定部126は、カレントピクチャのナルユニットタイプ(nal_unit_type)を、TRAIL_R(すなわち、テンポラルサブレイヤでない、参照されるトレーリングピクチャであることを示す値)に設定する。ステップS142の処理が終了すると、ナルユニットタイプ判定処理が終了し、処理は図9に戻る。
また、ステップS141において、isReferencePictureの値が偽(false)であり、処理対象であるカレントピクチャが参照ピクチャでないと判定された場合、処理は、ステップS143に進む。
ステップS143において、nal_unit_type判定部126は、カレントピクチャのナルユニットタイプ(nal_unit_type)を、TRAIL_N(テンポラルサブレイヤでない非参照ピクチャであることを示す値)に設定する。ステップS143の処理が終了すると、ナルユニットタイプ判定処理が終了し、処理は図9に戻る。
<レート制御処理の流れ>
次に、図11のフローチャートを参照して、図9のステップS117において実行されるレート制御処理の流れの例を説明する。
レート制御処理が開始されると、HRDトレース部141は、ステップS151において、HRDトレース処理を行い、CPB位置を算出する。ステップS152において、Target Bit決定部142は、ターゲットビット決定処理を行い、ターゲットビット(Target Bit)を算出する。
ステップS152の処理が終了すると、レート制御処理が終了し、処理は図9に戻る。
<HRDトレース処理の流れ>
次に、図11のステップS151において実行されるHRDトレース処理の流れの例を、図12のフローチャートを参照して説明する。
HRDトレース処理が開始されると、HRDトレース部141は、ステップS161において、ステップS102において生成されたヘッダ情報の中からtrace_rateを取得する。ステップS162において、HRDトレース部141は、ステップS102において生成されたヘッダ情報の中からframe_rateを取得する。ステップS163において、HRDトレース部141は、ステップS102において生成されたヘッダ情報の中からcpb_sizeを取得する。
ステップS164において、HRDトレース部141は、trace_rateと符号化済みピクチャバッファ(CPB)の初期引き抜き遅延(CBPへのビットストリームの入力開始から、最初のアクセスユニット(AU)の引き抜き時刻までの時間)とに基づいて、CPB位置を以下の式(1)のように初期化する。
cpb_pos = trace_rate * initial_cpb_removal_delay / 90000 ・・・(1)
ステップS165において、HRDトレース部141は、各画像で発生する符号量(generated_bits)を取得する。ステップS166において、HRDトレース部141は、ステップS102において生成されたヘッダ情報の中からisLastPictureを取得する。
ステップS167において、HRDトレース部141は、ステップS165においてgenerated_bitsを用いて、以下の式(2)のようにCPB位置(cpb_pos)を更新する(引き抜き分を減算する)。
cpb_pos -= generated_bits ・・・(2)
ステップS168において、HRDトレース部141は、trace_rate およびframe_rateに基づいて、以下の式(3)のようにCPB位置(cpb_pos)を更新する(バッファ流入分を追加する)。
cpb_pos += trace_rate / frame_rate ・・・(3)
ステップS169において、HRDトレース部141は、cpb_sizeを用いて、以下の式(4)のように、クリップ処理を行う。
cpb_pos = min(cpb_pos, cpb_size) ・・・(4)
ステップS170において、HRDトレース部141は、isLastPictureが真(true)であるか否かを判定する。isLastPictureが偽(false)であり、カレントピクチャがストリームの終端のピクチャでないと判定された場合、処理は、ステップS165に戻り、それ以降の処理が繰り返される。すなわち、各ピクチャについて、ステップS165乃至ステップS170の各処理が実行される。
ステップS170において、isLastPictureが真(true)であり、カレントピクチャがストリームの終端のピクチャであると判定された場合、HRDトレース処理が終了し、処理は図11に戻る。
<ターゲットビット決定処理の流れ>
次に、図13のフローチャートを参照して、図11のステップS152において実行されるターゲットビット決定処理の流れの例を説明する。
ターゲットビット決定処理が開始されると、Target Bit決定部142は、ステップS181において、HRDトレース処理(図12)において算出されたCPB位置を示す情報(cpb_pos)を取得する。また、ステップS182において、Target Bit決定部142は、ステップS102において生成されたヘッダ情報の中から、終端で期待されるCPB位置を示す情報(target_cpb_pos)を取得する。さらに、ステップS183において、Target Bit決定部142は、ステップS102において生成されたヘッダ情報の中から、CPBの終端を調整する期間であるか否かを示す情報(isAdjustPeriod)を取得する。
ステップS184において、Target Bit決定部142は、発生符号量の目標値を示す情報であるターゲットビット(target bit)を算出する。このtarget bit算出方法は、任意である。
ステップS185において、Target Bit決定部142は、isAdjustPeriodが真であり、かつ、cpb_posがtarget_cpb_posよりも低い位置にあるか否か(isAdjustPeriod && cpb_pos < target_cpb_pos)を判定する。
isAdjustPeriodが真であり、かつ、cpb_posがtarget_cpb_posよりも低い位置にあると判定された場合、処理はステップS186に進む。
ステップS186において、Target Bit決定部142は、終端で期待されるCPBの位置に収束させるように、target bitを以下の式(5)を用いて算出する。
target bit -= gain * (target_cpb_pos - cpb_pos) ・・・(5)
なお、ここで、gainには、画像終端に近づくに従って大きな値を用いると良い。ここで算出されたターゲットビット(target bit)は、量子化部114に供給され利用される。つまり、量子化部114は、このターゲットビット(target bit)を用いて量子化を行う。ステップS186の処理が終了すると、ターゲットビット決定処理が終了し、処理は図11に戻る。
また、ステップS185において、isAdjustPeriodが偽であるか、若しくは、cpb_posがtarget_cpb_posよりも高い位置にある(cpb_pos ≧ target_cpb_pos)と判定された場合、ステップS186の処理が省略され、ターゲットビット決定処理が終了し、処理は図11に戻る。
<ビットストリームの結合>
図14は、上述した各処理を実行する画像符号化装置100が生成するビットストリームを結合する場合の例を示している。図14のAは、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図14の結合においては、ストリームBの先頭がストリームAの終端に接続される。図14のBは、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。
図14に示されるように、この場合、Stream B concatenation_flag=1とし、IDRでcpb_removal_delay=0として運用する。また、Stream Aの終端のピクチャは、prevNonDiscardablePicにするため、そのnal_unit_typeがTRAIL_Rとされる。このようにすることにより、Initial_cpb_removal_delayが正しい値であれば、ビットストリーム同士を単純に接続することができる。つまり、画像符号化装置100は、上述した各処理を実行することにより、他のビットストリームとより容易に結合することができる状態のビットストリームを生成することができる。
<2.第2の実施の形態>
<ビットストリーム結合装置>
以上においては、画像データを符号化してビットストリームを生成する際に、そのビットストリームを、より容易に他のビットストリームと結合することができる状態にするように説明したが、このように、より容易に他のビットストリームと結合することができる状態にするのは、ビットストリームを結合する前であれば、どのようなタイミングであっても可能である。
例えば、ビットストリームを結合する直前に行うようにしてもよい。以下にその例を説明する。図15は、ビットストリーム結合装置の主な構成例を示す図である。図15に示されるビットストリーム結合装置200は、スマートレンダリング編集によって、ビットストリーム同士を結合する処理を行う装置である。例えば、ビットストリーム結合装置200は、ストリームAおよびストリームBを入力し、ストリームAの終端にストリームBの先頭を接続してストリームA+Bを生成し、出力する。
図15に示されるように、ビットストリーム結合装置200は、バッファ判定部211、nal_unit_type書き換え部212、Buffering Period書き換え部213、およびビットストリーム結合部214を有する。
バッファ判定部211は、バッファ判定処理を行い、ストリームA+BにおいてCPBが破綻しないように適宜再エンコードを行う。nal_unit_type書き換え部212は、ストリームAの終端のnal_unit_typeをprevNonDiscardablePicに該当する値に書き換える。Buffering Period書き換え部213は、Buffering Period SEIのシンタクスを書き換える。例えば、Buffering Period書き換え部213は、ストリームBの先頭のconcatenation_flagを「1(真)」に書き換え、ストリームBの先頭のauCpbRemovalDelayMinus1を「0(最小値)」に書き換える。ビットストリーム結合部214は、以上のように仮想参照デコーダに関する各種情報を更新したビットストリーム同士(例えばストリームAとストリームB)を結合する。
このようにすることにより、ビットストリーム結合装置200は、結合前に、各種パラメータを適宜設定することにより、以下の条件を満たすようにビットストリームを生成する。
・結合されるビットストリームの終端のnal_unit_typeがprevNonDiscardablePicの条件を満たす(例えば、TRAIL_Rなど)。
・結合されるビットストリームの終端のcpb位置が結合するビットストリーム先頭のcpb位置よりも高い。シンタクスでは、initial_cpb_removal_delayの値が高い。
・結合するビットストリームの先頭がconcatenation_flag=1である。
・結合するビットストリームの先頭のauCpbRemovalDelayDeltaMinus1が適切に設定されている(例えば、auCpbRemovalDelayDeltaMinus1=0)。
これらの条件を満たすことにより、ビットストリームは、他のビットストリームと単純に結合することができるようになる。つまり、ユーザが各ビットストリームに含まれる仮想参照デコーダに関する情報を適切に書き換えなくても、結合後のビットストリームが仮想参照デコーダを破綻させないように、それらのビットストリームを結合させることができる。すなわち、ビットストリーム結合装置200は、結合する各ビットストリームを、より容易にビットストリーム同士を結合することができる状態にしてから、それらを結合するので、より容易にビットストリーム同士を結合することができる。
<ビットストリーム結合処理の流れ>
次に、ビットストリーム結合装置200により実行される各処理の流れの例を説明する。最初に、ビットストリーム結合処理の流れの例を、図16のフローチャートを参照して説明する。
ビットストリーム結合処理が開始されると、ビットストリーム結合装置200のバッファ判定部211は、ステップS201においてストリームAを取得し、ステップS202においてストリームBを取得する。
ステップS203において、バッファ判定部211は、バッファ判定処理を行い、各ストリームのCPB位置の調整を行う。
ステップS204において、nal_unit_type書き換え部212は、ナルユニット書き換え処理を行い、結合されるストリームAの終端のnal_unit_typeをprevNonDiscardablePicに該当する値に書き換える。
ステップS205において、Buffering Period書き換え部213は、バッファリングピリオド書き換え処理を行い、ストリームBの先頭のconcatenation_flagを「1(真)」に書き換え、ストリームBの先頭のauCpbRemovalDelayMinus1を「0(最小値)」に書き換える。
ステップS206において、ビットストリーム結合部214は、以上のように仮想参照デコーダに関する各種情報を更新したビットストリーム同士を結合する。例えば、ビットストリーム結合部214は、ストリームAの終端にストリームBの先頭を接続する。
ステップS207において、ビットストリーム結合部214は、結合したビットストリーム(ストリームA+B)をビットストリーム結合装置200の外部に出力する。
ステップS207の処理が終了すると、ビットストリーム結合処理が終了する。
<バッファ判定処理の流れ>
次に、図17のフローチャートを参照して、図16のステップS203において実行されるバッファ判定処理の流れの例を説明する。バッファ判定処理が開始されると、ステップS221において、バッファ判定部211は、ストリームAの終端のCPB位置(cpb_pos_A)を算出する。ステップS222において、バッファ判定部211は、ストリームBの終端のCPB位置(cpb_pos_B)を算出する。
ステップS223において、バッファ判定部211は、cpb_pos_A < cpb_pos_Bが真であるか否かを判定する。cpb_pos_A < cpb_pos_Bが真であると判定された場合、処理は、ステップS224に進む。
ステップS224において、バッファ判定部211は、仮想参照デコーダが破綻しないように、cpb_pos_Aがcpb_pos_Bより大きくなるように再エンコードする。この再エンコードの仕方は任意である。例えば、バッファ判定部211が、ストリームAを再エンコードするようにしてもよい。また、再エンコードするピクチャの範囲は任意である。例えば、ストリームAの終端のピクチャのみを再エンコードするようにしてもよいし、ストリームAの終端から数ピクチャを再エンコードするようにしてもよい。さらにその際、各ピクチャの圧縮率を、終端に向かって徐々に大きくなるようにしてもよい。逆にストリームBを再エンコードするようにしてもよい。
ステップS224の処理が終了すると、処理は、図16に戻る。また、ステップS223において、cpb_pos_A < cpb_pos_Bが偽であると判定された場合、ステップS224の処理が省略され、バッファ判定処理が終了し、処理は図16に戻る。
<ナルユニットタイプ書き換え処理の流れ>
次に、図18のフローチャートを参照して、図16のステップS204において実行されるナルユニットタイプ書き換え処理の流れの例を説明する。ナルユニットタイプ書き換え処理が開始されると、nal_unit_type書き換え部212は、ステップS241において、ストリームAの終端のnal_unit_typeであるnal_unit_type_Aを調べる(参照する)。
ステップS242において、nal_unit_type書き換え部212は、ステップS241の調査結果に基づいて、nal_unit_type_AがprevNonDisCardablePicに該当するか否かを判定する。該当しないと判定された場合処理はステップS243に進む。
ステップS243において、nal_unit_type書き換え部212は、nal_unit_type_AをprevNonDsicardableに該当するnal_unit_typeに書き換える。ステップS243の処理が終了すると、ナルユニットタイプ書き換え処理が終了し、処理は図16に戻る。
また、ステップS242において、nal_unit_type_AがprevNonDisCardablePicに該当すると判定された場合、ステップS243の処理が省略され、ナルユニットタイプ書き換え処理が終了し、処理は図16に戻る。
<バッファリングピリオド書き換え処理の流れ>
次に、図19のフローチャートを参照して、図16のステップS205において実行されるバッファリングピリオド書き換え処理の流れの例を説明する。
バッファリングピリオド書き換え処理が開始されると、Buffering Period書き換え部213は、ストリームBの先頭のBuffering Period SEIを調べる。ステップS261において、Buffering Period書き換え部213は、ストリームBの先頭のBuffering Period SEIのconcatenation_flagが「1(真)」であるか否かを判定する。concatenation_flagが「0(偽)」であると反映された場合、処理はステップS262に進む。
ステップS262において、Buffering Period書き換え部213は、concatenation_flagを「1(真)」に書き換える。ステップS262の処理が終了すると、処理は、ステップS263に進む。
また、ステップS261において、concatenation_flagが「1(真)」であると反映された場合、ステップS262の処理が省略され、処理はステップS263に進む。
ステップS263において、Buffering Period書き換え部213は、ストリームBの先頭のBuffering Period SEIのauCpbRemovalDelayDeltaMinus1が「0(最小値)」であるか否かを判定する。auCpbRemovalDelayDeltaMinus1が「0(最小値)」でないと反映された場合、処理はステップS264に進む。
ステップS264において、Buffering Period書き換え部213は、そのauCpbRemovalDelayDeltaMinus1を「0(最小値)」に設定する。ステップS264の処理が終了すると、バッファリングピリオド書き換え処理が終了し、処理は図16に戻る。
また、ステップS263において、ストリームBの先頭のBuffering Period SEIのauCpbRemovalDelayDeltaMinus1が「0(最小値)」であると判定された場合、ステップS264の処理が省略され、バッファリングピリオド書き換え処理が終了し、処理は図16に戻る。
<ビットストリームの結合>
図20は、上述した各処理を実行するビットストリーム結合装置200がビットストリームを結合する場合の例を示している。図20のAは、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図20の結合においては、ストリームBの先頭がストリームAの終端に接続される。図20のBは、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。
図20に示されるように、この場合、Stream Bのconcatenation_flag=1とし、IDRでcpb_removal_delay=0として運用する。また、Stream Aの終端のピクチャは、prevNonDiscardablePicにするため、そのnal_unit_typeがTRAIL_Rとされる。このようにすることにより、ビットストリーム同士を単純に接続することができる。つまり、ビットストリーム結合装置200は、上述した各処理を実行することにより、より容易にビットストリーム同士を結合することができる。
<3.第3の実施の形態>
<ビットストリーム結合装置>
図21は、ビットストリーム結合装置の他の構成例を示す図である。図21に示されるビットストリーム結合装置300は、ビットストリーム結合装置200(図15)の場合と同様に、スマートレンダリング編集によって、ビットストリーム同士を結合する処理を行う装置である。例えば、ビットストリーム結合装置300は、ストリームAおよびストリームBを入力し、ストリームAの終端にストリームBの先頭を接続してストリームA+Bを生成し、出力する。
図21に示されるように、ビットストリーム結合装置300は、バッファ判定部211、prevNonDiscardablePic探索部312、Buffering Period書き換え部213、およびビットストリーム結合部214を有する。
prevNonDiscardablePic探索部312は、prevNonDiscardablePicの位置を探索する。また、Buffering Period書き換え部213は、この場合、ストリームBの先頭のconcatenation_flagを「1(真)」に書き換え、ストリームBのauCpbRemovalDelayDeltaMinus1を(auCpbRemovalDelayDelta-1)に書き換える。
このようにすることにより、ビットストリーム結合装置300は、結合前に、各種パラメータを適宜設定することにより、以下の条件を満たすようにビットストリームを生成する。
・結合されるビットストリームの終端のcpb位置が結合するビットストリームの先頭のcpb位置よりも高い。シンタクスとしてはinitial_cpb_removal_delayの値が高い。
・結合するビットストリームの先頭がconcatenation_flag=1である。
・結合するビットストリームの先頭のauCpbRemovalDelayDeltaMinus1が適切に設定されている(例えばauCpbRemovalDelayDeltaMinus1=2)
これらの条件を満たすことにより、ビットストリームは、他のビットストリームと単純に結合することができる。つまり、ユーザが各ビットストリームに含まれる仮想参照デコーダに関する情報を適切に書き換えなくても、結合後のビットストリームが仮想参照デコーダを破綻させないように、それらのビットストリームを結合させることができる。すなわち、ビットストリーム結合装置300は、結合する各ビットストリームを、より容易にビットストリーム同士を結合することができる状態にしてから、それらを結合するので、より容易にビットストリーム同士を結合することができる。
<ビットストリーム結合処理の流れ>
次に、ビットストリーム結合装置300により実行される各処理の流れの例を説明する。最初に、ビットストリーム結合処理の流れの例を、図22のフローチャートを参照して説明する。
ビットストリーム結合処理が開始されると、ビットストリーム結合装置300のバッファ判定部211は、ステップS301においてストリームAを取得し、ステップS302においてストリームBを取得する。
ステップS303において、バッファ判定部211は、図16のステップS203の場合と同様にバッファ判定処理(図17)を行い、各ストリームのCPB位置の調整を行う。
ステップS304において、prevNonDiscardablePic探索部312は、プレブノンディスカーダブルピクチャ探索処理を行い、prevNonDiscardablePicの位置を探索する。
ステップS305において、Buffering Period書き換え部213は、バッファリングピリオド書き換え処理を行い、ストリームBの先頭のconcatenation_flagを「1(真)」に書き換える等の処理を行う。
ステップS306において、ビットストリーム結合部214は、図16のステップS206の場合と同様に、以上のように仮想参照デコーダに関する各種情報を更新したビットストリーム同士を結合する。例えば、ビットストリーム結合部214は、ストリームAの終端にストリームBの先頭を接続する。
ステップS307において、ビットストリーム結合部214は、図16のステップS206の場合と同様に、結合したビットストリーム(ストリームA+B)をビットストリーム結合装置200の外部に出力する。
ステップS307の処理が終了すると、ビットストリーム結合処理が終了する。
<プレブノンディスカーダブルピクチャ探索処理の流れ>
次に、図23のフローチャートを参照して、図22のステップS304において実行されるプレブノンディスカーダブルピクチャ探索処理の流れの例を説明する。
プレブノンディスカーダブルピクチャ探索処理が開始されると、prevNonDiscardablePic探索部312は、ステップS321において、ストリームAの終端のprevNonDiscardablePicの位置を調べる。
ステップS322において、prevNonDiscardablePic探索部312は、ビットストリーム終端のアクセスユニット(AU)の位置と、prevNonDiscardablePicの差分auCpbRemovalDelayDeltaを算出する。
ステップS322が終了すると、プレブノンディスカーダブルピクチャ探索処理が終了し、処理は図22に戻る。
<バッファリングピリオド書き換え処理の流れ>
次に、図22のステップS305において実行されるバッファリングピリオド書き換え処理の流れの例を、図24のフローチャートを参照して説明する。
バッファリングピリオド書き換え処理が開始されると、Buffering Period書き換え部213は、ストリームBの先頭のBuffering Period SEIを調べる。ステップS341において、Buffering Period書き換え部213は、ストリームBの先頭のBuffering Period SEIのconcatenation_flagが「1(真)」であるか否かを判定する。concatenation_flagが「0(偽)」であると反映された場合、処理はステップS342に進む。
ステップS342において、Buffering Period書き換え部213は、concatenation_flagを「1(真)」に書き換える。ステップS342の処理が終了すると、処理は、ステップS343に進む。
また、ステップS341において、concatenation_flagが「1(真)」であると反映された場合、ステップS342の処理が省略され、処理はステップS343に進む。
ステップS343において、Buffering Period書き換え部213は、ストリームBの先頭のBuffering Period SEIのauCpbRemovalDelayDeltaMinus1を「auCpbRemovalDelayDelta - 1」に書き換える。ステップS343の処理が終了すると、バッファリングピリオド書き換え処理が終了し、処理は図22に戻る。
<ビットストリームの結合>
図25は、上述した各処理を実行するビットストリーム結合装置300がビットストリームを結合する場合の例を示している。図25のAは、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図25の結合においては、ストリームBの先頭がストリームAの終端に接続される。図25のBは、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。
図25に示されるように、この場合、Stream Bのconcatenation_flag=1とし、IDRでcpb_removal_delay=0として運用する。また、Stream Aの終端のprevNonDiscardablePicの位置を確認してauCpbRemovalDelayDeltaMinus1が書き換えられる。このようにすることにより、ビットストリーム同士を単純に接続することができる。つまり、ビットストリーム結合装置300は、上述した各処理を実行することにより、より容易にビットストリーム同士を結合することができる。
<4.第4の実施の形態>
<ビットストリーム結合装置>
図26は、ビットストリーム結合装置の他の構成例を示す図である。図26に示されるビットストリーム結合装置400は、ビットストリーム結合装置200(図15)の場合と同様に、スマートレンダリング編集によって、ビットストリーム同士を結合する処理を行う装置である。例えば、ビットストリーム結合装置400は、ストリームAおよびストリームBを入力し、ストリームAの終端にストリームBの先頭を接続してストリームA+Bを生成し、出力する。
図26に示されるように、ビットストリーム結合装置300は、バッファ判定部211、prevNonDiscardablePic探索部312、prevCpbRemovalDelay探索部413、Buffering Period書き換え部414、Picture Timing SEI書き換え部415、およびビットストリーム結合部214を有する。
prevCpbRemovalDelay探索部413は、prevCpbRemovalDelayを探索する。Buffering Period書き換え部414は、Buffering Period SEIのシンタクスを書き換える。Picture Timing SEI書き換え部415は、Picture Timing SEIのシンタクスを書き換える。
このようにすることにより、ビットストリーム結合装置400は、結合前に、各種パラメータを適宜設定することにより、以下の条件を満たすようにビットストリームを生成する。
・結合されるビットストリームの終端のcpb位置が結合するビットストリームの先頭のcpb位置よりも高いこと。シンタクスとしては、initial_cpb_removal_delayの値が高い。
・結合するビットストリームの先頭がconcatenation_flag=0である。
・結合するビットストリームの先頭のauCpbRemovalDelayDeltaMinus1が適切に設定されている(例えば、auCpbRemovalDelayDeltaMinus1=2)。
・結合するビットストリームの先頭のau_cpb_removal_delay_minus1が、結合されるビットストリームの終端のau_cpb_removal_delay_minus1+1である。
これらの条件を満たすことにより、ビットストリームは、他のビットストリームと単純に結合することができるようになる。つまり、ユーザが各ビットストリームに含まれる仮想参照デコーダに関する情報を適切に書き換えなくても、結合後のビットストリームが仮想参照デコーダを破綻させないように、それらのビットストリームを結合させることができる。すなわち、ビットストリーム結合装置400は、結合する各ビットストリームを、より容易にビットストリーム同士を結合することができる状態にしてから、それらを結合するので、より容易にビットストリーム同士を結合することができる。
<ビットストリーム結合処理の流れ>
次に、ビットストリーム結合装置400により実行される各処理の流れの例を説明する。最初に、ビットストリーム結合処理の流れの例を、図27のフローチャートを参照して説明する。
ビットストリーム結合処理が開始されると、ビットストリーム結合装置200のバッファ判定部211は、ステップS401においてストリームAを取得し、ステップS402においてストリームBを取得する。
ステップS403において、バッファ判定部211は、図16のステップS203の場合と同様に、バッファ判定処理(図17)を行い、各ストリームのCPB位置の調整を行う。
ステップS404において、prevNonDiscardablePic探索部312は、図22のステップS304の場合と同様に、プレブノンディスカーダブルピクチャ探索処理を行い、prevNonDiscardablePicの位置を探索する。
ステップS405において、prevCpbRemovalDelay探索部413は、プレブCpbリムーバルディレイ探索処理を行い、prevCpbRemovalDelayの位置を探索する。
ステップS406において、Buffering Period書き換え部414は、バッファリングピリオド書き換え処理を行い、ストリームBの先頭のconcatenation_flagを「0(真)」に書き換え、ストリームBの先頭のauCpbRemovalDelayDeltaMinus1をauCpbRemovalDelayDelta - 1に書き換える。
ステップS407において、Picture Timing SEI書き換え部415は、ピクチャタイミングSEI書き換え処理を行い、Picture Timing SEIのシンタクスを書き換える。
ステップS408において、ビットストリーム結合部214は、以上のように仮想参照デコーダに関する各種情報を更新したビットストリーム同士を結合する。例えば、ビットストリーム結合部214は、ストリームAの終端にストリームBの先頭を接続する。
ステップS409において、ビットストリーム結合部214は、結合したビットストリーム(ストリームA+B)をビットストリーム結合装置200の外部に出力する。
ステップS409の処理が終了すると、ビットストリーム結合処理が終了する。
<プレブCpbリムーバルディレイ探索処理の流れ>
次に、図27のステップS405において実行されるプレブCpbリムーバルディレイ探索処理の流れの例を、図28のフローチャートを参照して説明する。
プレブCpbリムーバルディレイ探索処理が開始されると、prevCpbRemovalDelay探索部413は、ステップS421において、結合されるストリームAの終端のPicture Timing SEIのau_cpb_removal_delay_minus1をprevCpbRemovalDelayとする。
ステップS421の処理が終了すると、プレブCpbリムーバルディレイ探索処理が終了し、処理は図27に戻る。
<バッファリングピリオド書き換え処理の流れ>
次に、図27のステップS406において実行されるバッファリングピリオド書き換え処理の流れの例を、図29のフローチャートを参照して説明する。
バッファリングピリオド書き換え処理が開始されると、Buffering Period書き換え部414は、ステップS441において、結合するストリームBの先頭のBuffering Period SEIのconcatenation_flagの値が「1(真)」であるか否かを判定する。concatenation_flag == 1であると判定された場合、処理はステップS442に進む。
ステップS442において、Buffering Period書き換え部414は、concatenation_flagの値を「0(偽)」に書き換える。ステップS442の処理が終了すると、処理はステップS443に進む。また、ステップS441において、concatenation_flag == 1でない(concatenation_flag == 0である)と判定された場合、ステップS442の処理は省略され、処理はステップS443に進む。
ステップS443において、Buffering Period書き換え部414は、auCpbRemovalDelayDeltaMinus1の値を(auCpbRemovalDelayDelta - 1)に書き換える(すなわち、auCpbRemovalDelayDeltaMinus1 = auCpbRemovalDelayDelta - 1とする)。
ステップS443の処理が終了すると、バッファリングピリオド書き換え処理が終了し、処理は図27に戻る。
<ピクチャタイミングSEI書き換え処理の流れ>
次に、図27のステップS407において実行されるピクチャタイミングSEI書き換え処理の流れの例を、図30のフローチャートを参照して説明する。
ピクチャタイミングSEI書き換え処理が開始されると、Picture Timing SEI書き換え部415は、ステップS461において、結合するストリームBの先頭のPicture Timing SEIのau_cpb_removal_delay_minus1をprevCpbRemovalDelay + 1に書き換える。
ステップS461の処理が終了すると、ピクチャタイミングSEI書き換え処理が終了し、処理は図27に戻る。
<ビットストリームの結合>
図31は、上述した各処理を実行するビットストリーム結合装置400がビットストリームを結合する場合の例を示している。図31のAは、結合前の各ビットストリーム(ストリームA、ストリームB)の一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。図31の結合においては、ストリームBの先頭がストリームAの終端に接続される。図31のBは、その結合後のビットストリームであるストリームA+Bの一部(接続される部分の近傍の)のフレームについてのパラメータ(例えば仮想参照デコーダに関するパラメータ等)の例を示している。
図31に示されるように、この場合、Stream Bのconcatenation_flag=0とし、IDRでau_cpb_removal_delay_minus1=0として運用する。なお、stream Bの先頭のau_cpb_removal_delay_minus1は、Stream Aの終端のprevCpbRemovalDelay + 1にする。そして、Stream Aの終端のprevNonDiscardablePicの位置を確認してauCpbRemovalDelayDeltaMinus1が書き換えられる。
このようにすることにより、ビットストリーム同士を単純に接続することができる。つまり、ビットストリーム結合装置400は、上述した各処理を実行することにより、より容易にビットストリーム同士を結合することができる。
<付加情報>
なお、ビットストリームには、上述したような結合の際に行われる処理に使用される情報を付加するようにしてもよい。例えば、prevNonDiscardablePicは、ビットストリーム中のどこにあるのかわからないため、上述したように探索しなければならならいが、そのためには、ビットストリームの終端から各ピクチャの情報を参照しなければならず、処理の負荷が増大する恐れがある。
そこで、どのピクチャがprevNonDiscardablePicであるかを示す情報を予めビットストリーム中に含めるようにしてもよい。このようにすることにより、その情報に基づいてprevNonDiscardablePicをより容易に探索することができ、処理の負荷の増大を抑制することができる。
このようなprevNonDiscardablePicを示す情報は、ビットストリームのどのような位置に付加するようにしてもよい。例えば、アクセスユニット(AU)の先頭に配置するようにしてもよい。また、GOPの先頭に配置するようにしてもよい。また、例えば、AUの先頭とGOPの先頭のように、同一の情報を複数の位置に配置するようにしてもよい。ビットストリームは、編集により、その一部がカットされたりするおそれがあるため、このように同一の情報を複数の位置に配置することにより、そのような編集により情報が欠落することを抑制することができる。
また、このような付加情報として、例えば、prevNonDiscardablePicを探索する範囲を指定する情報をビットストリームに付加するようにしてもよい。このような情報に基づいて探索範囲を限定することにより、処理の負荷が不要に増大するのを抑制することができる。
もちろん、ビットストリームに付加する情報は任意であり、上述した例に限定されない。
本技術の適用範囲は、画像データを符号化可能なあらゆる画像符号化装置並びに画像データのビットストリームを結合可能なあらゆる画像処理装置に適用することができる。
また、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる装置に適用することができる。
<5.第5の実施の形態>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図32は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図32に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
上述した実施形態に係る画像符号化装置及びビットストリーム結合装置は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<6.第6の実施の形態>
<第1の応用例:テレビジョン受像機>
図33は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース(I/F)部909、制御部910、ユーザインタフェース(I/F)部911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース部909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース部909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース部911は、制御部910と接続される。ユーザインタフェース部911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース部909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、例えば映像信号処理部905が、上述した画像符号化装置100の機能を有するようにしてもよい。例えば、映像信号処理部905が、デコーダ904から供給される画像データを上述した方法で符号化するようにしてもよい。映像信号処理部905は、その符号化により得られた符号化データ(ビットストリーム)を、例えば、外部インタフェース部909に供給し、外部インタフェース部909からテレビジョン装置900の外部に出力させる。したがって、テレビジョン装置900は、処理対象となる画像を符号化したビットストリームを、より容易に他のビットストリームと結合可能な状態にして出力することができる。
また、例えば、映像信号処理部905が、上述したビットストリーム結合装置(ビットストリーム結合装置200乃至ビットストリーム結合装置400のいずれか)の機能を有するようにしてもよい。例えば、映像信号処理部905が、第2の実施の形態乃至第4の実施の形態において説明した方法でスマートレンダリング編集を行って、ビットストリーム同士を結合することができるようにしてもよい。このようにすることにより、テレビジョン装置900(映像信号処理部905)は、より容易にビットストリーム同士を結合することができる。映像信号処理部905は、例えば、このようにして得られた符号化データ(ビットストリーム)を外部インタフェース部909に供給し、外部インタフェース部909からテレビジョン装置900の外部に出力させたりすることができる。
<第2の応用例:携帯電話機>
図34は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929に供給し、その記憶媒体に書き込ませる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929に供給し、その記憶媒体に書き込ませる。
さらに、画像表示モードにおいて、記録再生部929は、記憶媒体に記録されている符号化ストリームを読み出して画像処理部927へ出力する。画像処理部927は、記録再生部929から入力される符号化ストリームを復号し、画像データを表示部930に供給し、その画像を表示させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、例えば画像処理部927が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、画像処理部927が、画像データを上述した方法で符号化するようにしてもよい。このようにすることにより、携帯電話機920は、画像データを符号化して、より容易に他のビットストリームと結合可能な状態にしたビットストリームを出力したり、記録したりすることができる。
また、例えば、画像処理部927が、上述したビットストリーム結合装置(ビットストリーム結合装置200乃至ビットストリーム結合装置400のいずれか)の機能を有するようにしてもよい。例えば、画像処理部927が、第2の実施の形態乃至第4の実施の形態において説明した方法でスマートレンダリング編集を行って、ビットストリーム同士を結合することができるようにしてもよい。このようにすることにより、携帯電話機920(画像処理部927)は、より容易にビットストリーム同士を結合することができる。画像処理部927は、例えば、このようにして得られた符号化データ(ビットストリーム)を、記録再生部929に供給してその記憶媒体に書き込ませたり、通信部922を介して送信させたりすることができる。
<第3の応用例:記録再生装置>
図35は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データおよび映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース(I/F)部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、およびユーザインタフェース(I/F)部950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
外部インタフェース部942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース部942は、例えば、IEEE(Institute of Electrical and Electronic Engineers)1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部942を介して受信される映像データおよび音声データは、エンコーダ943へ入力される。即ち、外部インタフェース部942は、記録再生装置940における伝送部としての役割を有する。
エンコーダ943は、外部インタフェース部942から入力される映像データおよび音声データが符号化されていない場合に、映像データおよび音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD部944は、映像および音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD部944は、映像および音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録および読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVD(Digital Versatile Disc)ディスク(DVD-Video、DVD-RAM(DVD - Random Access Memory)、DVD-R(DVD - Recordable)、DVD-RW(DVD - Rewritable)、DVD+R(DVD + Recordable)、DVD+RW(DVD + Rewritable)等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像および音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD部944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD部944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD部948へ出力する。また、デコーダ947は、生成した音声データを外部のスピーカへ出力する。
OSD部948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD部948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース部950は、制御部949と接続される。ユーザインタフェース部950は、例えば、ユーザが記録再生装置940を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、エンコーダ943が、画像データを上述した方法で符号化するようにしてもよい。このようにすることにより、記録再生装置940は、画像データを符号化して、より容易に他のビットストリームと結合可能な状態にしたビットストリームを出力したり、記録したりすることができる。
また、例えば、エンコーダ943が、上述したビットストリーム結合装置(ビットストリーム結合装置200乃至ビットストリーム結合装置400のいずれか)の機能を有するようにしてもよい。例えば、エンコーダ943が、画像データの符号化だけでなく、第2の実施の形態乃至第4の実施の形態において説明した方法でスマートレンダリング編集を行って、ビットストリーム同士を結合することができるようにしてもよい。このようにすることにより、記録再生装置940(エンコーダ943)は、より容易にビットストリーム同士を結合することができる。
<第4の応用例:撮像装置>
図36は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース(I/F)部966、メモリ部967、メディアドライブ968、OSD部969、制御部970、ユーザインタフェース(I/F)部971、およびバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース部971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、および制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース部966またはメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース部966またはメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD部969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD部969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース部966は、例えばUSB入出力端子として構成される。外部インタフェース部966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース部966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース部966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース部966は、撮像装置960における伝送部としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース部971は、制御部970と接続される。ユーザインタフェース部971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース部971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、画像処理部964が、画像データを上述した方法で符号化するようにしてもよい。このようにすることにより、撮像装置960は、画像データを符号化して、より容易に他のビットストリームと結合可能な状態にしたビットストリームを出力したり、記録したりすることができる。
また、例えば、画像処理部964が、上述したビットストリーム結合装置(ビットストリーム結合装置200乃至ビットストリーム結合装置400のいずれか)の機能を有するようにしてもよい。例えば、画像処理部964が、第2の実施の形態乃至第4の実施の形態において説明した方法でスマートレンダリング編集を行って、ビットストリーム同士を結合することができるようにしてもよい。このようにすることにより、撮像装置960(画像処理部964)は、より容易にビットストリーム同士を結合することができる。
なお、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えばMPEG DASH等のようなHTTPストリーミングにも適用することができる。つまり、このような複数の符号化データ間で、符号化や復号に関する情報を共有することもできる。
<7.第7の実施の形態>
<実施のその他の例>
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
<ビデオセット>
本技術をセットとして実施する場合の例について、図37を参照して説明する。図37は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図37に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図37に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図37の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図37のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図37において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図37に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本技術を適用することができる。したがって、ビデオセット1300は、本技術を適用したセットとして実施することができる。
<ビデオプロセッサの構成例>
図38は、本技術を適用したビデオプロセッサ1332(図37)の概略的な構成の一例を示している。
図38の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図38に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図37)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、上述した各実施の形態に係る画像符号化装置の機能を有するようにすればよい。また、例えば、エンコード・デコードエンジン1407が、上述した各実施の形態に係るビットストリーム結合装置の機能を有するようにしてもよい。例えば、エンコード・デコードエンジン1407が、第2の実施の形態乃至第4の実施の形態において説明した方法でスマートレンダリング編集を行って、ビットストリーム同士を結合することができるようにしてもよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置やビットストリーム結合装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
<ビデオプロセッサの他の構成例>
図39は、本技術を適用したビデオプロセッサ1332の概略的な構成の他の例を示している。図39の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
より具体的には、図39に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図39に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図39に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、上述した各実施の形態に係る画像符号化装置を実現する機能ブロックを有するようにすればよい。また、例えば、コーデックエンジン1516が、上述した各実施の形態に係るビットストリーム結合装置の機能を有するようにしてもよい。例えば、コーデックエンジン1516が、第2の実施の形態乃至第4の実施の形態において説明した方法でスマートレンダリング編集を行って、ビットストリーム同士を結合することができるようにしてもよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置やビットストリーム結合装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
<装置への適用例>
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図33)、携帯電話機920(図34)、記録再生装置940(図35)、撮像装置960(図36)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図33)、携帯電話機920(図34)、記録再生装置940(図35)、撮像装置960(図36)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
また、本明細書では、各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
なお、本技術は以下のような構成も取ることができる。
(1) 画像データの処理対象であるカレントピクチャの、位置に関する情報と参照に関する情報とに基づいて、仮想参照デコーダに関するヘッダ情報を設定する設定部と、
前記画像データを符号化し、前記画像データの符号化データと、前記設定部により設定されたヘッダ情報とを含むビットストリームを生成する符号化部と
を備える画像符号化装置。
(2) 前記設定部は、ナルユニットタイプを示す情報を設定する
(1)、(3)乃至(9)のいずれかに記載の画像符号化装置。
(3) 前記設定部は、ビットストリームの結合を示す情報をさらに設定する
(1)、(2)、(4)乃至(9)のいずれかに記載の画像符号化装置。
(4) 前記設定部は、前記ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報をさらに設定する
(1)乃至(3)、(5)乃至(9)のいずれかに記載の画像符号化装置。
(5) 前記設定部は、前記カレントピクチャが先頭のピクチャである場合、
前記ナルユニットタイプを示す情報を、IDRピクチャであることを示す値に設定し、 前記ビットストリームの結合を示す情報を真に設定し、
前記ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報を最小値に設定する
(1)乃至(4)、(6)乃至(9)のいずれかに記載の画像符号化装置。
(6) 前記設定部は、前記カレントピクチャが終端のピクチャである場合、
前記ナルユニットタイプを示す情報を、テンポラルサブレイヤでない、参照されるトレーリングピクチャであることを示す値に設定し、
前記ビットストリームの結合を示す情報を偽に設定し、
前記ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報を最小値に設定する
(1)乃至(5)、(7)乃至(9)のいずれかに記載の画像符号化装置。
(7) 前記設定部は、前記カレントピクチャが、先頭でも終端でも無く、かつ、参照ピクチャである場合、
前記ナルユニットタイプを示す情報を、テンポラルサブレイヤでない、参照されるトレーリングピクチャであることを示す値に設定し、
前記ビットストリームの結合を示す情報を偽に設定し、
前記ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報を最小値に設定する
(1)乃至(6)、(8)、(9)のいずれかに記載の画像符号化装置。
(8) 前記設定部は、前記カレントピクチャが、先頭でも終端でも無く、かつ、参照ピクチャでもない場合、
前記ナルユニットタイプを示す情報を、テンポラルサブレイヤでない非参照ピクチャであることを示す値に設定し、
前記ビットストリームの結合を示す情報を偽に設定し、
前記ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を示す情報を最小値に設定する
(1)乃至(7)、(9)のいずれかに記載の画像符号化装置。
(9) 前記カレントピクチャの位置に関する情報と、前記仮想参照デコーダの調整を行う区間であるかを示す情報と、発生符号量を示す情報とに基づいて、符号量の目標値を設定するレート制御部をさらに備える
(1)乃至(8)のいずれかに記載の画像符号化装置。
(10) 画像データの処理対象であるカレントピクチャの、位置に関する情報と参照に関する情報とに基づいて、仮想参照デコーダに関するヘッダ情報を設定し、
前記画像データを符号化し、前記画像データの符号化データと、設定されたヘッダ情報とを含むビットストリームを生成する
画像符号化方法。
(11) 画像データが符号化された符号化データを含むビットストリームに含まれる、仮想参照デコーダに関するヘッダ情報を、前記ビットストリームを他の前記ビットストリームと結合できるように更新する更新部
を備える画像処理装置。
(12) 前記更新部は、結合されるビットストリームの終端の符号化済みピクチャバッファの位置と、結合するビットストリームの先頭の前記符号化済みピクチャバッファの位置との関係が適切となるように、前記ビットストリームを再符号化する
(11)、(13)乃至(19)のいずれかに記載の画像処理装置。
(13) 前記更新部は、前記ビットストリームの終端のナルユニットタイプを示す情報を、プレブノンディスカーダブルピクチャに該当する値に更新する
(11)、(12)、(14)乃至(19)のいずれかに記載の画像処理装置。
(14) 前記更新部は、符号化済みピクチャバッファからの読み出しに関する情報を、ビットストリームの結合に適した値に更新する
(11)乃至(13)、(15)乃至(19)のいずれかに記載の画像処理装置。
(15) 前記更新部は、前記ビットストリームの終端のプレブノンディスカーダブルピクチャを探索し、探索結果に基づいて、前記ビットストリームの終端のアクセスユニットとプレブノンディスカーダブルピクチャとの位置の差を更新する
(11)乃至(14)、(16)乃至(19)のいずれかに記載の画像処理装置。
(16) 前記更新部は、前記ビットストリームの終端の、符号化済みピクチャバッファおよび復号済みピクチャバッファからの読み出しに関する情報を、ビットストリームの結合に適した値に更新する
(11)乃至(15)、(17)乃至(19)のいずれかに記載の画像処理装置。
(17) 前記更新部は、前記ビットストリームの先頭の、符号化済みピクチャバッファおよび復号済みピクチャバッファからの読み出しに関する情報を、ビットストリームの結合に適した値に更新する
(11)乃至(16)、(18)、(19)のいずれかに記載の画像処理装置。
(18) 前記更新部は、結合するビットストリームの先頭のアクセスユニットの符号化済みピクチャバッファからの読み出し遅延を示す情報を、結合されるビットストリームの終端の符号化済みピクチャバッファからの読み出し遅延を示す情報に基づく値に更新する
(11)乃至(17)、(19)のいずれかに記載の画像処理装置。
(19) 前記更新部により更新された前記ビットストリームを他のビットストリームと結合する結合部をさらに備える
(11)乃至(18)のいずれかに記載の画像処理装置。
(20) 画像データが符号化された符号化データを含むビットストリームに含まれる、仮想参照デコーダに関するヘッダ情報を、前記ビットストリームを他の前記ビットストリームと結合できるように更新する
画像処理方法。