<第1実施の形態>
[編集システムの第1実施の形態の構成例]
図7は、本技術を適用した編集システムの第1実施の形態の構成例を示すブロック図である。
図7の編集システム10は、記録機11、再生機12、編集機13、およびリファレンス信号発生器14により構成される。
記録機11(情報処理装置)は、再生機12と同軸ケーブルで接続されている。記録機11は、自分自身に装着された記録メディアに、映像データなどの下地データをLong GOP構造を有するMPEG方式で可変長符号化して記録する。また、記録機11は、編集機13と制御線で接続されている。この制御線は、例えばRS−422規格の9ピンケーブルである。さらに、記録機11は、制御線を介して各種の信号を編集機13に送信する。
また、記録機11は、編集機13から制御線を介して送信されてくる制御信号に応じて、再生機12からHD−SDI(High Definition Serial Digital Interface)信号として送信されてくる編集データを、記録メディアに記録されている下地データの編集範囲に挿入する。なお、このとき、記録機11は、下地データのビットレートをGOP単位で局所的なビットレート(以下、局所ビットレートという)として算出し、その局所ビットレートに基づいて編集データを含む置換データを可変長符号化する。
再生機12は、記録機11と同様に、編集機13と制御線で接続されている。再生機12は、編集機13から制御線を介して送信されてくる制御信号に応じて、自分自身に装着された記録メディアに記録されているデータを編集データとして読み出し、HD−SDI信号として記録機11に供給する。また、再生機12は、制御線を介して各種の信号を編集機13に送信する。
編集機13は、例えばリモートコントローラにより構成される。編集機13は、ユーザからの指示に対応する制御信号を、制御線を介して送信することにより、記録機11および再生機12を制御し、インサート編集を行う。即ち、編集機13は、記録機11および再生機12を制御して、記録機11の記録メディアに記録されている下地データの編集範囲に、再生機12により再生された編集データを上書きさせる。
リファレンス信号発生器14は、記録機11、再生機12、および編集機13の制御のタイミング、並びに、記録や再生のタイミングの基準となるリファレンス信号を発生し、記録機11、再生機12、および編集器13に供給する。
[記録機の詳細構成例]
図8は、図7の記録機11の詳細構成例を示すブロック図である。
図8に示すように、記録機11は、CPU(Central Processing Unit)21、ベースバンド入出力処理部22、ビデオデコーダ23、ビデオエンコーダ24、バッファメモリ25、および記録メディア26により構成される。
CPU21は、編集機13からの制御信号などに基づいて、他のブロックをフレーム単位またはGOP単位で制御する。
例えば、CPU21は、編集機13から供給されるユーザにより指定されたイン点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのイン点を含むGOPの先頭のピクチャ以降のピクチャの読み出しを開始させる。また、CPU21は、編集機13から供給されるユーザにより指定されたアウト点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのアウト点を含むGOPの終端のピクチャの読み出しの終了時に、読み出しを停止させる。
また、CPU21は、他のブロックを監視する。CPU21は、タイムコードなどの記録機11の情報を表す信号を編集機13に送信する。
ベースバンド入出力処理部22は、セレクタ31を有する。ベースバンド入出力処理部22は、再生機12からHD−SDI信号として送信されてくる編集データまたは下地データを取得し、セレクタ31に供給する。なお、この下地データは、再生機12以外の図示せぬ機器から供給されてもよいし、予め記録機11の図示せぬメモリに記録されていてもよい。
また、ベースバンド入出力処理部22は、ビデオデコーダ23から供給される、記録メディア26に記録されている下地データの復号結果をセレクタ31に供給する。
セレクタ31は、再生機12から送信されてくる復号された下地データをビデオエンコーダ24に供給する。また、セレクタ31は、CPU21の制御により、ビデオデコーダ23から供給される下地データと編集データのいずれかを選択し、選択された下地データまたは編集データを、置換データとしてビデオエンコーダ24に供給する。
具体的には、イン点やアウト点がGOPの途中にある場合、GOPの先頭からイン点までの下地データや、アウト点からGOPの終端までの下地データを、再度可変長符号化したり、可変長符号化時に参照画として用いたりする必要がある。従って、このような場合、セレクタ31は、GOPの先頭からイン点までの下地データや、アウト点からGOPの終端までの下地データを選択し、置換データとしてビデオエンコーダ24に供給する。
ビデオデコーダ23は、バッファメモリ25に記憶されている、Long GOP構造を有するMPEG方式で可変長符号化されている下地データを読み出し、復号する。ビデオデコーダ23は、下地データの復号結果をベースバンド入出力処理部22に供給する。
ビデオエンコーダ24は、セレクタ31から供給される置換データまたは下地データをLong GOP構造を有するMPEG方式で可変長符号化する。また、ビデオエンコーダ24は、可変長符号化された置換データまたは下地データを記録データとしてバッファメモリ25に供給する。
バッファメモリ25は、ビデオエンコーダ24から供給される記録データを一時的に保持する。また、バッファメモリ25は、その記録データを読み出し、記録メディア26に供給する。さらに、バッファメモリ25は、記録メディア26から供給される下地データを一時的に保持する。
記録メディア26は、光ディスク、フラッシュメモリなどのリムーバブルメディアやHDD(Hard Disk Drive)などの大容量記録メディアにより構成される。記録メディア26は、CPU21からの制御により、バッファメモリ25から読み出された記録データを、記録メディア26に記録する。具体的には、例えば、記録メディア26(記録部)は、バッファメモリ25から読み出された置換データを、置き換えられる下地データが記録されている記録領域に上書きする。
また、記録メディア26は、CPU21の制御により、記録されているLong GOP構造を有するMPEG方式で可変長符号化されている下地データを読み出し、バッファメモリ25に供給する。
図9は、置換データを可変長符号化する場合のCPU21とビデオエンコーダ24の処理を詳細に説明する図である。
図9に示すように、CPU21は、例えば、下地データの符号量、VBV Delay等を用いてGOP単位で局所ビットレートを算出し、ビデオエンコーダ24に供給する。また、CPU21は、符号化制御部41から供給される可変長符号化された置換データの符号量およびVBV占有量、並びに、下地データの符号量およびVBV占有量に基づいて、下地データと置換データの符号量およびVBV占有量の差分を算出する。そして、CPU21は、その符号量およびVBV占有量の差分を用いて符号量誤差を算出し、その符号量誤差に基づいて、その符号量誤差に対応するGOP以降の下地データの局所ビットレートを算出する。即ち、CPU21は、符号量誤差を局所ビットレートの算出にフィードバックする。
ビデオエンコーダ24は、セレクタ31(図8)から供給される置換データの可変長符号化を制御する符号化制御部41を有している。符号化制御部41は、CPU21によるフレーム単位またはGOP単位の制御よりも細かい単位での符号化制御を行う。具体的には、例えば、符号化制御部41は、CPU21から供給される局所ビットレートに基づいてビデオエンコーダ24による可変長符号化を制御する。また、符号化制御部41は、可変長符号化された置換データの符号量とVBV占有量を取得し、CPU21に供給する。
なお、本実施の形態では、局所ビットレートは、GOP単位で取得されるものとするが、取得単位はGOP単位に限定されず、フレーム単位などであってもよい。
[CPUの処理の説明]
図10および図11は、CPU21の処理を説明する図である。
図10に示すように、CPU21は、GOP単位で局所ビットレートを算出する。具体的には、図11に示すように、CPU21は、再エンコード範囲の先頭のGOPについては、下地データの符号量、VBV Delayなどを用いて、以下の式(3)により局所ビットレートを算出する。
なお、式(3)において、R(n)はフレームnのビットレートを表し、d(n)はフレームnの符号量を表す。また、τ(n)はフレームnのVBV Delayを表し、t(n)はフレームnのピクチャがVBVバッファから除去される時刻を表す。さらに、Xは、局所ビットレートの算出に用いられるフレームの数を表す。
式(3)によれば、局所ビットレートの算出範囲のVBV Delayに1が加えられている。これは、VBV占有量がVBV Delayに量子化された際に切り上げ処理を行ったことと等しい。従って、式(3)によれば、局所ビットレートはより小さく算出される。即ち、局所ビットレートの誤差は、実際の値よりも小さくなる方向の誤差となる。その結果、VBV占有量が接続されたときに下地データの符号量よりも置換データの符号量の方が少なくなる。従って、置き換えられる下地データの記録領域に置換データを確実に収めることができる。
また、CPU21は、図11に示すように、以下の式(4)を用いて下地データと置換データの符号量誤差を算出する。
diff(n)={(d(n)-d´(n))+(O´(n)-O(n)} ・・・(4)
なお、式(4)において、diff(n)はフレームnの符号量誤差を表す。また、d(n),d´(n)は、それぞれ、フレームnの下地データの符号量、置換データの符号量を表し、O´(n),O(n)は、それぞれ、フレームnの下地データのVBV占有量と置換データのVBV占有量を表す。従って、d(n)−d´(n)は、下地データと置換データの符号量の差分であり、O´(n)−O(n)は、下地データと置換データのVBV占有量の差分である。
再エンコード範囲内の各フレームの符号量誤差の和が0以上である場合、VBV占有量の連続性を保ちながら、置き換えられる下地データの記録領域に置換データを収めることができる。
ここで、各GOPでは符号量誤差が0以上になるように局所ビットレートがより小さく算出されるので、置換データの可変長符号化が進むにつれて符号量誤差が蓄積する。そこで、CPU21は、蓄積された符号量誤差のうちのVBV占有量の連続性を保つために必要ではない分の符号量を有効に活用するため、再エンコード範囲の先頭のGOP以外のGOPについては、以下の式(5)に示すように、符号量誤差を局所ビットレートの算出にフィードバックする。
なお、式(5)において、R(n)はフレームnのビットレートを表し、d(n)はフレームnの符号量を表す。また、τ(n)はフレームnのVBV Delayを表し、t(n)はフレームnのピクチャがVBVバッファから除去される時刻を表す。さらに、Xは局所ビットレートの算出に用いられるフレームの数を表し、diff(n)はフレームnの符号量誤差を表す。また、Σdiff(n−Y)はフレームY(1≦Y)からフレームnまでの符号量誤差の和を表し、coefはフィードバック係数を表す。
以上のようにフィードバックが行われることにより、符号量誤差が負になる可能性がある。従って、フィードバック係数coefは符号量誤差の和が負とならない範囲で決定する。また、フィードバック係数coefは固定でも良いし、GOP長等によって適応的に変化させてもよい。
[記録機の処理の説明]
図12は、図8の記録機11による最終GOP以外符号化処理を説明するフローチャートである。この最終GOP以外符号化処理は、再エンコード範囲の最終GOP以外の各GOPを処理対象としてGOPごとに行われる。
図12のステップS11において、CPU21は、下地データの処理対象のGOPの符号量、VBV Delay等を用いて、そのGOPの局所ビットレートを算出する。
具体的には、処理対象のGOPが再エンコード範囲の開始GOPである場合、CPU21は、上述した式(3)により局所ビットレートを算出する。一方、処理対象のGOPが再エンコード範囲の開始GOP以外のGOPである場合、CPU21は、そのGOPの前のGOPを処理対象として後述するステップS16の処理で算出された符号化誤差も用いて、上述した式(5)により局所ビットレートを算出する。
ステップS12において、CPU21は、ステップS11で算出された局所ビットレートがフォーマットの規定値以上であるかどうかを判定する。ステップS12で局所ビットレートがフォーマットの規定値以上であると判定された場合、ステップS13において、CPU21は、局所ビットレートを規定値に補正する。これは、新たに可変長符号化されたストリームがフォーマットに違反しないようにするためであり、また、置換データを、置き換えられる下地データの記録領域に確実に収めるためである。CPU21は、補正後の局所ビットレートを、符号化制御部41に供給し、処理をステップS14に進める。
一方、ステップS12で局所ビットレートがフォーマットの規定値以上ではないと判定された場合、CPU21は、ステップS11で算出された局所ビットレートをそのまま符号化制御部41に供給する。そして処理はステップS14に進む。
ステップS14において、ビデオエンコーダ24は、符号化制御部41の制御により、符号化制御部41から供給される処理対象のGOPの局所ビットレートに基づいて、入力された置換データに対して可変長符号化を行う。
ステップS15において、符号化制御部41は、ステップS14の処理により得られる可変長符号化結果の各フレームの符号量とVBV占有量を取得し、CPU21に供給する。
ステップS16において、CPU21は、符号化制御部41から供給される各フレームの符号量とVBV占有量、並びに、下地データの対応するフレームの符号量およびVBV占有量を用いて、上述した式(4)により各フレームの符号量誤差を算出する。この符号量誤差は、次のGOPの局所ビットレートの算出にフィードバックされる。
図13は、図8の記録機11による最終GOP符号化処理を説明するフローチャートである。この最終GOP符号化処理は、再エンコード範囲の最終GOPを処理対象として行われる。
図13のステップS31乃至S35の処理は、図12のステップS11乃至S15の処理と同様であるので、説明は省略する。
ステップS35の処理後、ステップS36において、符号化制御部41は、置換データの可変長符号化により得られるVBV占有量の軌跡が、VBV占有量目標ピクチャのVBV占有量と接続可能であるかどうかを判定する。
具体的には、符号化制御部41は、再エンコード範囲の最終フレームの置換データのVBV占有量、符号量、および符号量誤差がフィードバックされて算出された局所ビットレートに基づいて、その最終フレームの次のフレームのVBV占有量を予測する。
そして、符号化制御部41は、予測されるVBV占有量が、再エンコード範囲の最終フレームの次フレームに格納されているVBV Delayから変換された実際のVBV占有量の計算値より大きい場合、VBV占有量の軌跡が接続可能であると判定する。一方、予測されるVBV占有量が実際のVBV占有量の計算値より大きくはない場合、VBV占有量の軌跡が接続可能ではないと判定する。
ステップS36でVBV占有量の軌跡が接続可能であると判定された場合、ステップS37において、符号化制御部41は、VBV占有量を接続するVBV占有量接続処理を行い、処理を終了する。なお、このVBV占有量接続処理の詳細は、後述する図14のフローチャートを参照して説明する。
一方、ステップS36でVBV占有量の軌跡が接続可能ではないと判定された場合、処理はステップS38に進む。
ステップS38において、CPU21は、ステップS35の処理で取得された各フレームの符号量とVBV占有量、並びに、下地データの対応するフレームの符号量およびVBV占有量を用いて、上述した式(5)により符号量誤差を算出する。そして、CPU21は、現在の再エンコード範囲の最終フレームの次のフレームを新たな最終フレームとして新たな最終GOPに含めて、処理をステップS31に戻す。そして、置換データの可変長符号化により得られるVBV占有量の軌跡が、VBV占有量目標ピクチャのVBV占有量と接続可能であると判定されるまで、ステップS31乃至S36およびS38の処理が繰り返される。
図14は、図13のステップS37のVBV占有量接続処理の詳細を説明するフローチャートである。
図14のステップS41において、符号化制御部41は、最終フレームの次のフレームのVBV占有量の予測値と実際のVBV占有量の計算値の両方のVBV占有量が等しくなるように、インサート編集後の再エンコード範囲の最終フレームにスタッフィングデータを付加する。
ステップS42において、符号化制御部41は、再エンコード範囲の最終フレームの次のフレームのVBV Delayを、再エンコード範囲の可変長符号化に用いられた局所ビットレートを用いて再計算し、書き換える。これは、符号量誤差がフィードバックされて最終フレームの局所ビットレートが算出された結果、編集の前後でビットレートが変化するためである。ステップS42の処理後、処理は終了する。
以上のように、記録機11は、下地データの局所ビットレートを算出するので、より正確に置換データのビットレートを下地データのビットレートに追従させることができる。その結果、量子化誤差範囲内でVBV占有量の連続性を保ちながら、確実に置換データの符号量を下地データの符号量以下に抑えることができる。これにより、各符号量が可変であるLong GOP構造を有する符号化ストリームを記録する記録メディアに対しても、従来のVTRで行われていたインサート編集を行い、確実に成功させることができる。
また、下地データよりも十分に低いビットレートに固定して置換データを可変長符号化することにより編集の成功率を向上させる方法に比べて、符号量の無駄を抑制することができる。その結果、画質の劣化を抑制することができる。また、記録機11は、局所的な符号量ではなくビットレートで可変長符号化を制御するので、下地データの符号量に影響されることなく、置換データに合わせて効率良く符号量を配分することができる。その結果、画質の偏りを抑制することができる。
<第2実施の形態>
[編集システムの第2実施の形態の構成例]
図15は、本技術を適用した編集システムの第2実施の形態の構成例を示すブロック図である。
図15に示す構成のうち、図7の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図15の編集システム100の構成は、主に、記録機11の代わりに記録機111が設けられている点が図7の構成と異なる。
図15の記録機111は、図7の記録機11と同様に、再生機12と同軸ケーブルで接続されている。記録機111は、記録機11と同様に、自分自身に装着された記録メディアに、下地データをLong GOP構造を有するMPEG方式で可変長符号化して記録する。また、記録機111は、記録機11と同様に、編集機13と制御線で接続されている。さらに、記録機111は、記録機11と同様に、制御線を介して各種の信号を編集機13に送信する。
また、記録機111は、編集機13から制御線を介して送信されてくる制御信号に応じて、再生機12からHD−SDI信号として送信されてくる編集データを、記録メディアに記録されている下地データの編集範囲に挿入する。なお、このとき、記録機111は、VBV Delayから変換されることによりVBV占有量がとり得る誤差の最大値(以下、誤差最大値という)分だけ、VBVバッファに対応するVBV占有量の上限値と下限値を狭めることにより、仮想的なVBV占有量の上限値と下限値を設定する。そして、記録機111は、置換データのVBV占有量が、仮想的なVBV占有量の上限値と下限値を超えないように、置換データを可変長符号化する。
[記録機の詳細構成例]
図16は、図15の記録機111の詳細構成例を示すブロック図である。
図16に示す構成のうち、図8の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図16の記録機111の構成は、主に、CPU21、ビデオエンコーダ24の変わりに、CPU121、ビデオエンコーダ122が設けられている点が図8の構成と異なる。
CPU121は、編集機13からの制御信号などに基づいて、他のブロックをフレーム単位またはGOP単位で制御する。
例えば、CPU121は、下地データのビットレートの最大値に基づいて、そのビットレートを90000で除算した値などを誤差最大値として算出し、ビデオエンコーダ122に供給する。また、CPU121は、図8のCPU21と同様に、編集機13から供給されるユーザにより指定されたイン点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのイン点を含むGOPの先頭のピクチャ以降のピクチャの読み出しを開始させる。また、CPU121は、CPU21と同様に、編集機13から供給されるユーザにより指定されたアウト点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのアウト点を含むGOPの終端のピクチャの読み出しの終了時に、読み出しを停止させる。
また、CPU121は、CPU21と同様に、他のブロックを監視する。CPU21は、タイムコードなどの記録機111の情報を表す信号を編集機13に送信する。
ビデオエンコーダ122は、セレクタ31から供給される下地データをLong GOP構造を有するMPEG方式で可変長符号化する。また、ビデオエンコーダ122は、CPU121から供給される誤差最大値に基づいて、セレクタ31から供給される置換データを、Long GOP構造を有するMPEG方式で可変長符号化する。また、ビデオエンコーダ122は、図8のビデオエンコーダ24と同様に、可変長符号化された置換データまたは下地データを記録データとしてバッファメモリ25に供給する。
図17は、置換データを可変長符号化する場合のCPU121とビデオエンコーダ122の処理を詳細に説明する図である。
図17に示すように、CPU121は、例えば、下地データのビットレートの最大値に基づいて、そのビットレートを90000で除算した値などを誤差最大値として算出し、ビデオエンコーダ122に供給する。
ビデオエンコーダ122は、セレクタ31(図16)から供給される置換データの可変長符号化を制御する符号化制御部141を有している。符号化制御部141は、CPU121によるフレーム単位またはGOP単位の制御よりも細かい単位での符号化制御を行う。
具体的には、例えば、符号化制御部141は、CPU121から供給される誤差最大値に基づいて、VBVバッファに対応する実際のVBV占有量の上限値から誤差最大値を減算した値をVBV占有量の仮想的な上限値とする。また、符号化制御部141は、CPU121から供給される誤差最大値に基づいて、VBVバッファに対応する実際のVBV占有量の下限値に誤差最大値を加算した値をVBV占有量の仮想的な下限値とする。そして、符号化制御部141は、置換データのVBV占有量が仮想的なVBV占有量の上限値と下限値を超えないように、ビデオエンコーダ122による置換データの可変長符号化を制御する。
なお、第2実施の形態では、誤差最大値は、下地データのビットレートの最大値/90000などの固定値であるものとするが、記録機111が記録機11と同様に局所ビットレートを算出する場合には、誤差最大値は、局所ビットレートにより変化する値であってもよい。この場合、誤差最大値は、局所ビットレートに基づいてGOPごとに決定される。
[置換データの可変長符号化の説明]
図18乃至図20は、符号化制御部141の制御による置換データの可変長符号化を説明する図である。
なお、図18乃至図20において、点線は下地データのVBV占有量の時間的変化を表している。また、図18において、太い実線は、占有量誤差が0である場合の置換データのVBV占有量の時間的変化を表している。さらに、図19および図20において、太い実線は、占有量誤差が0ではない場合の置換データのVBV占有量の時間的変化を表し、細い実線は、占有量誤差が0である場合の置換データのVBV占有量の時間的変化を表している。
置換データのVBV占有量が仮想的なVBV占有量の上限値と下限値を超えないように、置換データは可変長符号化されるので、図18に示すように、占有量誤差が0である場合、置換データのVBV占有量は、仮想的なVBV占有量の下限値から仮想的なVBV占有量の上限値までの範囲内になる。
また、図19に示すように、再エンコード範囲の開始ピクチャの占有量誤差が、上方向の誤差最大値である場合、置換データのVBV占有量は仮想的なVBV占有量の上限値を超える。しかしながら、開始ピクチャのVBV占有量の占有量誤差は誤差最大値であるので、置換データのVBV占有量は、VBVバッファに対応する実際のVBV占有量の上限値を超えない。従って、オーバーフローが発生しない。
一方、図20に示すように、再エンコード範囲の開始ピクチャの占有量誤差が、下方向の誤差最大値である場合、置換データのVBV占有量は仮想的なVBV占有量の下限値を超える。しかしながら、開始ピクチャのVBV占有量の占有量誤差は誤差最大値であるので、置換データのVBV占有量は、VBVバッファに対応する実際のVBV占有量の下限値を超えない。従って、アンダーフローが発生しない。
以上のように、記録機111は、VBVバッファに対応する実際のVBV占有量の上限値および下限値を誤差最大値分だけ狭めて置換データを可変長符号化するので、VBV Delayから変換する際に生じる占有量誤差が最大値である場合にも、置換データのVBV占有量の軌跡は、実際のVBV占有量の上限値を上回ったり、下限値を下回ったりしない。従って、編集後のデータにおいてアンダーフローおよびオーバーフローが発生しない。
なお、再エンコード範囲の開始ピクチャのVBV占有量が仮想的なVBV占有量の上限値または下限値を超えている場合には、VBV占有量を接続するために、開始ピクチャのVBV占有量の上限値と下限値を実際のVBV占有量の上限値と下限値のままにして、置換データの可変長符号化を行うようにしてもよい。この場合、開始ピクチャ以降のピクチャのVBV占有量の上限値および下限値を、仮想的なVBV占有量の上限値および下限値にすることができる。また、開始ピクチャ以降のピクチャのVBV占有量の上限値または下限値の一方を、開始ピクチャのVBV占有量にすることもできる。勿論、置換データの可変長符号化自体を行わないようにすることもできる。
また、VBV占有量目標ピクチャのVBV占有量が仮想的なVBV占有量の上限値または下限値を超えている場合には、そのままVBV占有量接続処理が行われるようにしてもよいし、VBV占有量目標ピクチャが仮想的なVBV占有量の上限値および下限値を超えないVBV占有量に対応するピクチャになるまで、可変長符号化が続けられるようにしてもよい。
さらに、再エンコード範囲の開始ピクチャのVBV占有量が、仮想的なVBV占有量の上限値または下限値を超えている場合、符号化制御部141は、その上限値または下限値を開始ピクチャのVBV占有量に補正し、VBV占有量目標ピクチャのVBV占有量が、仮想的なVBV占有量の上限値または下限値を超えている場合、その上限値または下限値をVBV占有量目標ピクチャのVBV占有量に補正するようにしてもよい。
[記録機の処理の説明]
図21は、図16の記録機111による編集符号化処理を説明するフローチャートである。この編集符号化処理は、例えば、ビデオエンコーダ122に置換データが入力されたとき開始される。
図21のステップS111において、CPU121(図17)は、可変長符号化されている下地データからビット精度を有するVBV占有量が取得可能であるかどうかを判定する。符号化制御部141は、この判定を外部からの入力に応じて行ってもよいし、可変長符号化されている下地データを解析して行ってもよい。
ステップS111でビット精度を有するVBV占有量が取得可能ではないと判定された場合、CPU121は、可変長符号化されている下地データに含まれる下地データのビットレートの最大値から誤差最大値を算出し、符号化制御部141に供給する。そして、ステップS112において、符号化制御部141は、CPU121から供給される誤差最大値に基づいて、仮想的なVBV占有量の上限値と下限値を計算する。そして、処理はステップS113に進む。
一方、ステップS111でビット精度を有するVBV占有量が取得可能であると判定された場合、処理はステップS113に進む。
ステップS113において、ステップS112の処理が行われた場合、ビデオエンコーダ122は、符号化制御部141の制御により、VBV占有量が仮想的なVBV占有量の上限値と下限値を超えないように、置換データに対して可変長符号化を行う。また、ステップS112の処理が行われなかった場合、ビデオエンコーダ122は、符号化制御部141の制御により、VBVバッファに対応する実際のVBV占有量の上限値と下限値を超えないように、置換データに対して可変長符号化を行う。
ステップS114において、ビデオエンコーダ122は、可変長符号化されたピクチャが再エンコード範囲の最終ピクチャであるかどうかを判定する。ステップS114で可変長符号化されたピクチャが再エンコード範囲の最終ピクチャではないと判定された場合、処理はステップS113に戻り、可変長符号化されたピクチャが再エンコード範囲の最終ピクチャになるまで、ステップS113およびS114の処理が繰り返される。
一方、ステップS114で可変長符号化されたピクチャが最終ピクチャであると判定された場合、処理はステップS115に進む。ステップS115において、符号化制御部141は、符号化制御部41と同様に、置換データの可変長符号化により得られるVBV占有量の軌跡がVBV占有量目標ピクチャのVBV占有量と接続可能であるかどうかを判定する。
ステップS115でVBV占有量の軌跡が接続可能であると判定された場合、ステップS116において、符号化制御部141は、図14のVBV占有量接続処理を行う。
一方、ステップS115でVBV占有量の軌跡が接続可能ではないと判定された場合、符号化制御部141は、現在の再エンコード範囲の最終フレームの次のフレームを再エンコード範囲に含めて、処理をステップS113に戻す。そして、置換データの可変長符号化により得られるVBV占有量の軌跡が、VBV占有量目標ピクチャのVBV占有量と接続可能であると判定されるまで、ステップS113乃至S115の処理が繰り返される。
以上の処理を行うことにより、記録機111は、Long GOP構造を有するビット精度のVBV占有量が取得できない符号化ストリームに対しても、VBVバッファをオーバーフローさせたり、アンダーフローさせたりすることなく、インサート編集を行うことができる。これにより、各符号量が可変であるLong GOP構造を有する符号化ストリームを記録する記録メディアに対しても、従来のVTRで行われていたインサート編集を行い、確実に成功させることができる。
<第3実施の形態>
[編集システムの第3実施の形態の構成例]
図22は、本技術を適用した編集システムの第3実施の形態の構成例を示すブロック図である。
図22に示す構成のうち、図7の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図22の編集システム200の構成は、主に、記録機11の代わりに記録機211が設けられている点が図7の構成と異なる。
図22の記録機211は、図7の記録機11と同様に、再生機12と同軸ケーブルで接続されている。記録機211は、記録機11と同様に、自分自身に装着された記録メディアに、下地データをLong GOP構造を有するMPEG方式で可変長符号化して記録する。また、記録機211は、記録機11と同様に、編集機13と制御線で接続されている。さらに、記録機211は、記録機11と同様に、制御線を介して各種の信号を編集機13に送信する。
また、記録機211は、編集機13から制御線を介して送信されてくる制御信号に応じて、再生機12からHD−SDI信号として送信されてくる編集データを、記録メディアに記録されている下地データの編集範囲に挿入する。なお、このとき、記録機211は、VBV占有量目標ピクチャのVBV占有量をVBV占有量目標ピクチャのVBV Delayに1を加えた値から算出し、そのVBV占有量に基づいて置換データを可変長符号化する。
[記録機の詳細構成例]
図23は、図22の記録機211の詳細構成例を示すブロック図である。
図23に示す構成のうち、図8の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図23の記録機211の構成は、主に、CPU21、ビデオエンコーダ24の変わりに、CPU221、ビデオエンコーダ222が設けられている点が図8の構成と異なる。
CPU221は、編集機13からの制御信号などに基づいて、他のブロックをフレーム単位またはGOP単位で制御する。
例えば、CPU221(算出部)は、VBV占有量目標ピクチャのVBV占有量をVBV占有量目標ピクチャのVBV Delayに1を加えた値から算出し、ビデオエンコーダ222に供給する。また、CPU221は、図8のCPU21と同様に、編集機13から供給されるユーザにより指定されたイン点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのイン点を含むGOPの先頭のピクチャ以降のピクチャの読み出しを開始させる。また、CPU221は、CPU21と同様に、編集機13から供給されるユーザにより指定されたアウト点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのアウト点を含むGOPの終端のピクチャの読み出しの終了時に、読み出しを停止させる。
また、CPU221は、CPU21と同様に、他のブロックを監視する。CPU21は、タイムコードなどの記録機211の情報を表す信号を編集機13に送信する。
ビデオエンコーダ222は、セレクタ31から供給される下地データをLong GOP構造を有するMPEG方式で可変長符号化する。また、ビデオエンコーダ222は、CPU221から供給されるVBV占有量目標ピクチャのVBV占有量に基づいて、セレクタ31から供給される置換データを、Long GOP構造を有するMPEG方式で可変長符号化する。また、ビデオエンコーダ222は、図8のビデオエンコーダ24と同様に、可変長符号化された置換データまたは下地データを記録データとしてバッファメモリ25に供給する。
図24は、置換データを可変長符号化する場合のCPU221とビデオエンコーダ222の処理を詳細に説明する図である。
図24に示すように、CPU221は、VBV占有量目標ピクチャのVBV占有量をVBV占有量目標ピクチャのVBV Delayに1を加えた値から算出し、ビデオエンコーダ222に供給する。
ビデオエンコーダ222は、セレクタ31(図23)から供給される置換データの可変長符号化を制御する符号化制御部241を有している。符号化制御部241は、CPU221によるフレーム単位またはGOP単位の制御よりも細かい単位での符号化制御を行う。
具体的には、例えば、符号化制御部241は、CPU221から供給されるVBV占有量目標ピクチャのVBV占有量に置換データの最終ピクチャのVBV占有量が接続するように、ビデオエンコーダ222(符号化部)による置換データの可変長符号化を制御する。
なお、VBV占有量目標ピクチャのVBV Delayに1を加えた値からVBV占有量目標ピクチャのVBV占有量を算出することは、VBV占有量がVBV Delayに量子化される際に切り上げ処理が行われたことと等しい。従って、このようにして算出されたVBV占有量目標ピクチャのVBV占有量に基づいて置換データの可変長符号化が行われることにより、VBV占有量が占有量誤差を有する場合であっても、置換データの符号量が下地データの符号量を超過しないようにすることができる。なお、VBV Delayの量子化時の小数点以下の値の扱いは規格で定められていない。
[VBV占有量目標ピクチャのVBV占有量の算出による効果]
図25は、CPU221におけるVBV占有量目標ピクチャのVBV占有量の算出による効果を説明する図である。
CPU221は、VBV占有量目標ピクチャのVBV Delayに1を加えた値からVBV占有量目標ピクチャのVBV占有量を算出するので、図25に示すように、最終ピクチャのVBV占有量が上方向の占有量誤差を有する。従って、図25に示すように、再エンコード範囲の開始ピクチャのVBV占有量が下方向の占有量誤差を有する場合、開始ピクチャと最終ピクチャの両方の占有量誤差分だけ下地データの符号量が余り、置換データの符号量が下地データの符号量を超過しなくなる。
なお、VBV占有量目標ピクチャのVBV Delayに1を加えた値からVBV占有量目標ピクチャのVBV占有量が、VBVバッファに対応する実際のVBV占有量の上限値および下限値を超える場合には、超えなくなるまで、再エンコード範囲が延長される。
[記録機の処理の説明]
図26は、図23の記録機211の編集符号化処理を説明するフローチャートである。この編集符号化処理は、例えば、ビデオエンコーダ222に置換データが入力されたとき開始される。
図26のステップS211において、CPU221(図24)は、再エンコード範囲の開始ピクチャのVBV占有量を算出し、符号化制御部241に供給する。
ステップS212において、ビデオエンコーダ222は、符号化制御部241の制御により、ステップS211で算出されたVBV占有量を起点として、VBVバッファがオーバーフローおよびアンダーフローしないように、置換データに対して可変長符号化を行う。
ステップS213において、ビデオエンコーダ222は、符号化されたピクチャが再エンコード範囲の最終ピクチャであるかどうかを判定する。ステップS213で符号化されたピクチャが再エンコード範囲の最終ピクチャではないと判定された場合、処理はステップS212に戻り、符号化されたピクチャが再エンコード範囲の最終ピクチャになるまで、ステップS212およびS213の処理が繰り返される。
一方、ステップS213で符号化されたピクチャが最終ピクチャであると判定された場合、CPU221は、VBV占有量目標ピクチャのVBV Delayに1を加えた値からVBV占有量目標ピクチャのVBV占有量を計算し、符号化制御部241に供給する。そして、ステップS214において、符号化制御部241は、CPU221から供給される、VBV占有量目標ピクチャのVBV Delayに1を加えた値から計算されたVBV占有量目標ピクチャのVBV占有量が、VBVバッファに対応する実際のVBV占有量の上限値を超えたかどうかを判定する。
ステップS214でVBV占有量目標ピクチャのVBV占有量が実際のVBV占有量の上限値を超えていないと判定された場合、処理はステップS215に進む。
ステップS215において、符号化制御部241は、符号化制御部41と同様に、置換データの可変長符号化により得られるVBV占有量の軌跡がVBV占有量目標ピクチャのVBV占有量と接続可能であるかどうかを判定する。
ステップS215でVBV占有量の軌跡が接続可能であると判定された場合、ステップS216において、符号化制御部241は、図14のVBV占有量接続処理を行い、処理を終了する。
一方、ステップS214でVBV占有量目標ピクチャのVBV占有量が実際のVBV占有量の上限値を超えたと判定された場合、または、ステップS215でVBV占有量の軌跡が接続可能ではないと判定された場合、符号化制御部241は、現在の再エンコード範囲の最終フレームの次のフレームを再エンコード範囲に含めて、処理をステップS212に戻す。そして、VBV占有量目標ピクチャのVBV占有量が実際のVBV占有量の上限値を超えず、置換データの可変長符号化により得られるVBV占有量の軌跡が、VBV占有量目標ピクチャのVBV占有量と接続可能であると判定されるまで、ステップS212乃至214またはステップS212乃至S215の処理が繰り返される。
なお、編集符号化処理は、下地データのビットレートと置換データのビットレートが一致する場合にのみ行われるようにしてもよい。
以上の処理を行うことにより、記録機211は、下地データと置換データのビットレートが一致する場合に、置き換えられる下地データの記録領域に、確実に置換データを収めることができる。これにより、各符号量が可変であるLong GOP構造を有する符号化ストリームを記録する記録メディアに対しても、従来のVTRで行われていたインサート編集を行い、確実に成功させることができる。
また、記録機211は、記録機111と同様に、仮想的なVBV占有量の上限値および下限値を設定するようにしてもよい。この場合、ステップS214では、VBV占有量目標ピクチャのVBV占有量が仮想的なVBV占有量の上限値を超えたかどうかが判定される。
<第4実施の形態>
[編集システムの第4実施の形態の構成例]
図27は、本技術を適用した編集システムの第4実施の形態の構成例を示すブロック図である。
図27に示す構成のうち、図7の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図27の編集システム250の構成は、主に、記録機11の代わりに記録機251が設けられている点が図7の構成と異なる。
図27の記録機251は、図7の記録機11と同様に、再生機12と同軸ケーブルで接続されている。記録機251は、記録機11と同様に、自分自身に装着された記録メディアに、下地データをLong GOP構造を有するMPEG方式で可変長符号化して記録する。また、記録機251は、記録機11と同様に、編集機13と制御線で接続されている。さらに、記録機251は、記録機11と同様に、制御線を介して各種の信号を編集機13に送信する。
また、記録機251は、編集機13から制御線を介して送信されてくる制御信号に応じて、再生機12からHD−SDI信号として送信されてくる編集データを、記録メディアに記録されている下地データの編集範囲に挿入する。
なお、このとき、記録機251は、記録機11、記録機111、および記録機211と同様の処理を行う。具体的には、記録機251は、記録機11と同様に、下地データのビットレートをGOP単位で局所ビットレートとして算出する。また、記録機251は、記録機111と同様に、誤差最大値分だけ、VBVバッファに対応するVBV占有量の上限値と下限値を狭めることにより、仮想的なVBV占有量の上限値と下限値を設定する。さらに、記録機251は、記録機211と同様に、VBV占有量目標ピクチャのVBV占有量をVBV占有量目標ピクチャのVBV Delayに1を加えた値から算出する。そして、記録機251は、局所ビットレート、仮想的なVBV占有量の上限値と下限値、およびVBV占有量目標ピクチャのVBV占有量に基づいて、編集データを含む置換データを可変長符号化する。
[記録機の詳細構成例]
図28は、図27の記録機251の詳細構成例を示すブロック図である。
図28に示す構成のうち、図8の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図28の記録機251の構成は、主に、CPU21、ビデオエンコーダ24の代わりに、CPU261、ビデオエンコーダ262が設けられている点が図8の構成と異なる。
CPU261は、編集機13からの制御信号などに基づいて、他のブロックをフレーム単位またはGOP単位で制御する。
例えば、CPU261(算出部)は、図8のCPU21と同様に、下地データの符号量、VBV Delay等を用いてGOP単位で局所ビットレートを算出し、ビデオエンコーダ262に供給する。また、CPU261は、局所ビットレートに基づいて、その局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、ビデオエンコーダ262に供給する。さらに、CPU261は、VBV占有量目標ピクチャのVBV占有量をVBV占有量目標ピクチャのVBV Delayに1を加えた値から算出し、ビデオエンコーダ262に供給する。
また、CPU261は、図8のCPU21と同様に、編集機13から供給されるユーザにより指定されたイン点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのイン点を含むGOPの先頭のピクチャ以降のピクチャの読み出しを開始させる。また、CPU261は、CPU21と同様に、編集機13から供給されるユーザにより指定されたアウト点を示す制御信号に基づいて、記録メディア26を制御し、記録メディア26からのアウト点を含むGOPの終端のピクチャの読み出しの終了時に、読み出しを停止させる。
さらに、CPU261は、CPU21と同様に、他のブロックを監視する。CPU261は、タイムコードなどの記録機251の情報を表す信号を編集機13に送信する。
ビデオエンコーダ262は、セレクタ31から供給される下地データをLong GOP構造を有するMPEG方式で可変長符号化する。そして、ビデオエンコーダ262は、CPU261から供給される局所ビットレート、VBV占有量誤差値、およびVBV占有量目標ピクチャのVBV占有量に基づいて、セレクタ31から供給される置換データを、Long GOP構造を有するMPEG方式で可変長符号化する。また、ビデオエンコーダ262は、図8のビデオエンコーダ24と同様に、可変長符号化された置換データまたは下地データを記録データとしてバッファメモリ25に供給する。
図29は、置換データを可変長符号化する場合のCPU261とビデオエンコーダ262の処理を詳細に説明する図である。
図29に示すように、CPU261は、例えば、図9のCPU21と同様に、符号化制御部271から供給される可変長符号化された置換データの符号量およびVBV占有量、並びに、下地データの符号量およびVBV占有量に基づいて、符号量誤差を算出する。そして、CPU261は、CPU21と同様に、下地データの符号量、VBV Delay、符号量誤差等を用いてGOP単位で局所ビットレートを算出し、ビデオエンコーダ262に供給する。
また、CPU261は、例えば、局所ビットレートに基づいて、その局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、ビデオエンコーダ262に供給する。さらに、CPU261は、図24のCPU221と同様に、VBV占有量目標ピクチャのVBV占有量をVBV占有量目標ピクチャのVBV Delayに1を加えた値から算出し、ビデオエンコーダ262に供給する。
ビデオエンコーダ262は、セレクタ31(図28)から供給される置換データの可変長符号化を制御する符号化制御部271を有している。符号化制御部271は、CPU261によるフレーム単位またはGOP単位の制御よりも細かい単位での符号化制御を行う。
具体的には、例えば、符号化制御部271は、CPU261から供給されるVBV占有量誤差値に基づいて、VBVバッファに対応する実際のVBV占有量の上限値からVBV占有量誤差値を減算した値をVBV占有量の仮想的な上限値とする。また、符号化制御部271は、CPU261から供給されるVBV占有量誤差値に基づいて、VBVバッファに対応する実際のVBV占有量の下限値にVBV占有量誤差値を加算した値をVBV占有量の仮想的な下限値とする。
そして、符号化制御部271は、CPU261から供給される局所ビットレートに基づいて、置換データのVBV占有量が仮想的なVBV占有量の上限値と下限値を超えないように、かつ、CPU261から供給されるVBV占有量目標ピクチャのVBV占有量に置換データの最終ピクチャのVBV占有量が接続するように、ビデオエンコーダ262(符号化部)による置換データの可変長符号化を制御する。また、符号化制御部271は、可変長符号化された置換データの符号量とVBV占有量を取得し、CPU261に供給する。
[記録機の処理の説明]
図30は、図27の記録機251による編集符号化処理を説明するフローチャートである。この編集符号化処理は、例えば、ビデオエンコーダ262に置換データが入力されたとき開始される。
図30のステップS311において、記録機251は、再エンコード範囲の開始ピクチャに関する処理である開始ピクチャ処理を行う。この開始ピクチャ処理の詳細は、後述する図31を参照して説明する。
ステップS312において、記録機251は、置換データに対して符号化処理を行う。この符号化処理の詳細は、後述する図32を参照して説明する。
ステップS313において、記録機251は、再エンコード範囲の最終ピクチャに関する処理である最終ピクチャ処理を行う。この最終ピクチャ処理の詳細は、後述する図33を参照して説明する。
図31は、図30のステップS311の開始ピクチャ処理の詳細を説明するフローチャートである。
図31のステップS331において、CPU261(図28)は、可変長符号化されている下地データから、開始ピクチャのビット精度を有するVBV占有量が取得可能であるかどうかを判定する。符号化制御部271は、この判定を外部からの入力に応じて行ってもよいし、可変長符号化されている下地データを解析して行ってもよい。
ステップS331でビット精度を有するVBV占有量が取得可能ではないと判定された場合、処理はステップS332に進む。ステップS332において、CPU261は、再エンコード範囲の開始GOPの下地データの符号量、VBV Delay等を用いて、上述した式(3)により、その開始GOPの局所ビットレートを算出する。
ステップS333において、CPU261は、ステップS332で算出された局所ビットレートがフォーマットの規定値以上であるかどうかを判定する。ステップS333で局所ビットレートがフォーマットの規定値以上であると判定された場合、ステップS334において、CPU261は、局所ビットレートを規定値に補正し、符号化制御部271に供給する。また、CPU261は、補正後の局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、符号化制御部271に供給する。そして、処理はステップS335に進む。
一方、ステップS333で局所ビットレートがフォーマットの規定値以上ではないと判定された場合、CPU261は、ステップS332で算出された局所ビットレートをそのまま符号化制御部271に供給する。また、CPU261は、その局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、符号化制御部271に供給する。そして処理はステップS335に進む。
ステップS335において、符号化制御部271は、CPU261から供給されるVBV占有量誤差値に基づいて、VBVバッファの仮想的なVBV占有量の上限値と下限値を計算し、CPU261に供給する。
ステップS336において、CPU261は、再エンコード範囲の開始ピクチャの下地データのVBV Delayと、開始GOPの局所ビットレートに基づいて、その開始ピクチャのVBV占有量を計算する。
ステップS337において、CPU261は、再エンコード範囲の開始ピクチャのVBV占有量が、符号化制御部271から供給される仮想的なVBV占有量の上限値または下限値を超えているかどうかを判定する。
ステップS337で再エンコード範囲の開始ピクチャのVBV占有量が、仮想的なVBV占有量の上限値または下限値を超えていると判定された場合、CPU261は、再エンコード範囲の開始ピクチャのVBV占有量を符号化制御部271に供給する。
そして、ステップS338において、符号化制御部271は、再エンコード範囲の開始ピクチャのVBV占有量が超えている仮想的なVBV占有量の上限値または下限値を、再エンコード範囲の開始ピクチャのVBV占有量に変更する。
このように、符号化制御部271は、再エンコード範囲の開始ピクチャのVBV占有量が仮想的なVBV占有量の上限値または下限値を超えている場合、VBV占有量が、その開始ピクチャのVBV占有量以内である場合には、VBVバッファがアンダーフローまたはオーバーフローしないと推測する。そして、符号化制御部271は、再エンコード範囲の開始ピクチャのVBV占有量が超えている仮想的なVBV占有量の上限値または下限値を、再エンコード範囲の開始ピクチャのVBV占有量に変更する。その結果、VBVバッファのアンダーフローおよびオーバーフローを防止しつつ、VBV占有量の許容範囲が狭まることによる画質劣化を抑制することができる。
ステップS338の処理後、処理は図30のステップS311に戻り、処理はステップS312に進む。
なお、ステップS337で再エンコード範囲の開始ピクチャのVBV占有量が、仮想的なVBV占有量の上限値または下限値を超えていると判定された場合、符号化制御部271は、VBVバッファがオーバーフローまたはアンダーフローする可能性があるとみなして、ステップS338の処理を行わずに編集符号化処理を終了するようにしてもよい。
一方、ステップS337で再エンコード範囲の開始ピクチャのVBV占有量が、仮想的なVBV占有量の上限値または下限値を超えていないと判定された場合、処理は図30のステップS311に戻り、処理はステップS312に進む。
また、ステップS331でビット精度を有するVBV占有量が取得可能であると判定された場合、ステップS339において、CPU261は、VBV Delay等に基づいて、上述した式(2)により、再エンコード範囲の開始ピクチャのVBV占有量を計算する。そして、処理は図30のステップS311に戻り、処理はステップS312に進む。
図32は、図30のステップS312の符号化処理の詳細を説明するフローチャートである。この符号化処理は、GOP単位で行われる。
図32のステップS351において、CPU261は、再エンコード範囲の処理対象のGOPの下地データの符号量、VBV Delay等を用いて、そのGOPの局所ビットレートを算出する。なお、最初のステップS351の処理では、再エンコード範囲の開始GOPが処理対象のGOPとされる。
ステップS352において、CPU261は、図31のステップS333の処理と同様に、ステップS351で算出された局所ビットレートがフォーマットの規定値以上であるかどうかを判定する。ステップS352で局所ビットレートがフォーマットの規定値以上であると判定された場合、ステップS353において、CPU261は、局所ビットレートを規定値に補正し、符号化制御部271に供給する。また、CPU261は、補正後の局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、符号化制御部271に供給する。そして、処理はステップS354に進む。
一方、ステップS352で局所ビットレートがフォーマットの規定値以上ではないと判定された場合、CPU261は、ステップS351で算出された局所ビットレートをそのまま符号化制御部271に供給する。また、CPU261は、その局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、符号化制御部271に供給する。そして処理はステップS354に進む。
ステップS354において、符号化制御部271は、処理対象のGOPが、再エンコード範囲の開始GOPであるかどうかを判定する。ステップS354で処理対象のGOPが、再エンコード範囲の開始GOPではないと判定された場合、処理はステップS355に進む。ステップS355において、符号化制御部271は、CPU261から供給される処理対象のGOPのVBV占有量誤差値に基づいて、仮想的なVBV占有量の上限値と下限値を計算する。
このように、符号化制御部271は、局所ビットレートに基づいて仮想的なVBV占有量の上限値と下限値をGOP単位で計算するので、より正確に仮想的なVBV占有量の上限値と下限値を設定することができる。その結果、VBVバッファのアンダーフローおよびオーバーフローの発生を防止しつつ、VBV占有量の許容範囲が狭まることによる画質劣化を抑制することができる。ステップS355の処理後、処理はステップS356に進む。
一方、ステップS354で処理対象のGOPが、再エンコード範囲の開始GOPであると判定された場合、処理はステップS355をスキップし、ステップS356に進む。
ステップS356において、ビデオエンコーダ262は、符号化制御部271の制御により、置換データに対して可変長符号化を行う。具体的には、仮想的なVBV占有量の上限値と下限値が計算された場合、ビデオエンコーダ262は、局所ビットレートに基づいて、VBV占有量が仮想的なVBV占有量の上限値と下限値を超えないように、置換データに対して可変長符号化を行う。一方、仮想的なVBV占有量の上限値と下限値が計算されていない場合、ビデオエンコーダ262は、局所ビットレートに基づいて、VBV占有量がVBVバッファに対応する実際のVBV占有量の上限値と下限値を超えないように、置換データに対して可変長符号化を行う。
ステップS357において、符号化制御部271は、可変長符号化結果の各フレームの符号量とVBV占有量を取得し、CPU261に供給する。
ステップS358において、ビデオエンコーダ262は、処理対象のGOPが再エンコード範囲の最終GOPであるかどうかを判定する。ステップS358で処理対象のGOPが再エンコード範囲の最終GOPではないと判定された場合、処理はステップS359に進む。
ステップS359において、CPU261は、符号化制御部271から供給される各フレームの符号量とVBV占有量、並びに、下地データの対応するフレームの符号量およびVBV占有量を用いて、上述した式(4)により各フレームの符号量誤差を算出する。なお、再エンコード範囲の開始ピクチャの下地データのVBV占有量は、ステップS336またはS339の処理で計算されたものである。また、それ以外のピクチャのVBV占有量は、そのピクチャを含むGOPの局所ビットレートとVBV Delayに基づいて計算される。
ステップS359の処理後、CPU261は、現在の処理対象の次のGOPを新たな処理対象とし、処理をステップS351に戻す。このとき、ステップS351の処理では、ステップS359の処理で計算された符号量誤差も用いて局所ビットレートが算出される。そして、以降の処理が繰り返される。
一方、ステップS358で処理対象のGOPが再エンコード範囲の最終GOPであると判定された場合、処理は、図30のステップS312に戻り、ステップS313に進む。
図33は、図30のステップS313の最終ピクチャ処理の詳細を説明するフローチャートである。
図33のステップS361において、CPU261は、再エンコード範囲の最終GOPの次のGOPの下地データの符号量、VBV Delay等を用いて、そのGOPの局所ビットレートを算出する。
ステップS362において、CPU261は、図31のステップS333の処理と同様に、ステップS361で算出された局所ビットレートがフォーマットの規定値以上であるかどうかを判定する。ステップS362で局所ビットレートがフォーマットの規定値以上であると判定された場合、ステップS363において、CPU261は、局所ビットレートを規定値に補正し、符号化制御部271に供給する。また、CPU261は、補正後の局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、符号化制御部271に供給する。そして、処理はステップS364に進む。
一方、ステップS362で局所ビットレートがフォーマットの規定値以上ではないと判定された場合、CPU261は、ステップS361で算出された局所ビットレートをそのまま符号化制御部271に供給する。また、CPU261は、その局所ビットレートを90000で除算した値などをVBV占有量誤差値として算出し、符号化制御部271に供給する。そして処理はステップS364に進む。
ステップS364において、CPU261は、符号化制御部271から供給される再エンコード範囲の最終GOPの次のGOPの下地データの局所ビットレートと、VBV占有量目標ピクチャのVBV Delayに1を加えた値からVBV占有量目標ピクチャのVBV占有量を計算する。そして、CPU261は、そのVBV占有量を符号化制御部271に供給する。
ステップS365において、符号化制御部271は、ステップS364で計算されたVBV占有量目標ピクチャのVBV占有量が、再エンコード範囲の最終GOPの仮想的なVBV占有量の上限値を超えているかどうかを判定する。
ステップS365で、VBV占有量目標ピクチャのVBV占有量が、再エンコード範囲の最終GOPの仮想的なVBV占有量の上限値を超えていないと判定された場合、処理はステップS366に進む。
ステップS366において、符号化制御部271は、再エンコード範囲の最終ピクチャの置換データのVBV占有量、符号量、および最終GOPの局所ビットレートに基づいて、VBV占有量目標ピクチャのVBV占有量を予測する。
ステップS367において、符号化制御部271は、ステップS366により予測されるVBV占有量が、ステップS364で計算された実際のVBV占有量の計算値より大きいかどうかを判定する。
ステップS367で予測されるVBV占有量が実際のVBV占有量の計算値より大きいと判定された場合、ステップS368において、符号化制御部271は、両方のVBV占有量が等しくなるように、再エンコード範囲の最終ピクチャの置換データにスタッフィングデータを付加する。
ステップS369において、符号化制御部271は、VBV占有量目標ピクチャのVBV Delayを、再エンコード範囲の可変長符号化に用いられた局所ビットレートを用いて再計算し、書き換える。ステップS369の処理後、処理は図30のステップS313に戻り、処理は終了する。
一方、ステップS365でVBV占有量目標ピクチャのVBV占有量が仮想的な上限値を超えていると判定された場合、または、ステップS367で予測されるVBV占有量が実際のVBV占有量の計算値以下であると判定された場合、処理はステップS370に進む。
ステップS370において、符号化制御部271は、ステップS361で計算された局所ビットレートに基づいて、仮想的なVBV占有量の上限値と下限値を超えないように、再エンコード範囲の最終フレームの次のフレームの下地データを可変長符号化する。また、符号化制御部271は、そのフレームを再エンコード範囲の新たな最終フレームとする。そして、処理はステップS361に戻り、以降の処理が繰り返される。
なお、ステップS364の処理後、VBV占有量目標ピクチャのVBV占有量が仮想的な上限値または下限値を超えている場合、VBV占有量が、そのVBV占有量目標ピクチャのVBV占有量以内である場合には、VBVバッファがアンダーフローまたはオーバーフローしないと推測し、ステップS366乃至S370の処理が行われるようにしてもよい。
また、上述したように、記録機11(111,211,251)は、インサート編集後の再エンコード範囲の最終ピクチャにスタッフィングデータを付加することにより、インサート編集前後のVBV占有量を一致させる。従って、記録機11(111,211,251)は、ユーザによりイン点が指定された時点で、アウト点の指定を待たずに、最終GOP以外符号化処理または編集符号化処理を開始することができる。
さらに、第2および第4実施の形態では、置換データの可変長符号化時に、置換データのVBV占有量が仮想的な上限値と下限値が超えないようにされたが、下地データの可変長符号化時にも、下地データのVBV占有量が誤差最大値に基づく仮想的な上限値と下限値を超えないようにすることができる。
また、第1、第3、および第4実施の形態では、VBV占有量がVBV Delayに量子化される際に切り上げ処理が行われた場合の下地データの符号量に、置換データの符号量が一致するように、置換データの可変長符号化が行われる。即ち、置換データのVBV占有量がVBV Delayに量子化される際の割り算の余りがゼロになるように置換データが可変長符号化される。従って、同一の編集範囲のインサート編集が再度行われる場合には、インサート編集前後の符号量が一致し、インサート編集により符号量は減少しない。
本技術は、外部の機器から送信されてきたTS(Transport Stream)の所定の範囲を、可変長符号化された置換データに置き換えて伝送することによりインサート編集を行う編集システムにも適用することができる。この場合、編集システム250には、図34に示すように、図28の記録メディア26の代わりに通信部281が設けられた通信機280が、記録機251の代わりに設けられる。通信部281は、CPU261からの制御により、外部の機器からTSを受信し、そのTSに含まれる、Long GOP構造を有するMPEG方式で可変長符号化されている下地データとしてのデータをバッファメモリ25に供給する。また、通信部281(伝送部)は、CPU261からの制御により、受信された下地データを、バッファメモリ25から読み出された置換データに置き換えてTSを生成し、伝送する。また、図示は省略するが、編集システム10(100,200)においても同様に、記録メディア26の代わりに通信部281が設けられた通信機が、記録機11(111,211)の代わりに設けられる。
また、本技術における符号化方式は、Long GOP構造を有するMPEG方式に限定されず、ISO−IEC 13838−2/ITU−T H.262方式、ISO−IEC 14496−10/ITU−T H.264方式、ISO−IEC 13818−1/ ITU−T H222.0方式などの高効率符号化方式であってもよい。
<第5実施の形態>
[コンピュータの構成例]
図35は、上述した記録機11(111,211,251)の一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)301,ROM(Read Only Memory)302,RAM(Random Access Memory)303は、バス304により相互に接続されている。
バス304には、さらに、入出力インタフェース305が接続されている。入出力インタフェース305には、入力部306、出力部307、記憶部308、通信部309、およびドライブ310が接続されている。
入力部306は、キーボード、マウス、マイクロフォンなどよりなる。出力部307は、ディスプレイ、スピーカなどよりなる。記憶部308は、ハードディスクや不揮発性のメモリなどよりなる。通信部309は、ネットワークインタフェースなどよりなる。ドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア311を駆動する。
以上のように構成されるコンピュータでは、CPU301が、例えば、記憶部308に記憶されているプログラムを、入出力インタフェース305及びバス304を介して、RAM303にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU301)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア311に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア311をドライブ310に装着することにより、入出力インタフェース305を介して、記憶部308にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部309で受信し、記憶部308にインストールすることができる。その他、プログラムは、ROM302や記憶部308に、あらかじめインストールしておくことができる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。