1 編集装置, 11 CPU, 16 HDD, 20 CPU, 22乃至24 デコーダ, 25 ストリームスプライサ, 26 エフェクト/スイッチ, 27 エンコーダ, 量子化部175, 183 量子化制御部, 191 イントラAC算出部, 192 発生符号量算出部, 193 GC算出部, 194 目標符号量算出部, 195 ME残差算出部, 401 編集装置, 427 エンコーダ, 428 入力端子, 451 MPEG_ES_editing_information, 461 MXF Header, 462 Elementary Stream Header, 551 発生符号量検出部, 552 バッファ占有量解析部, 553 バッファ占有量決定部, 554 コマンドおよび制御情報生成部
以下、図を参照して、本発明の実施の形態について説明する。
図4は本発明を適用した編集装置1のハードウェア構成を示すブロック図である。
CPU(Central Processing Unit)11は、ノースブリッジ12に接続され、例えば、HDD(Hard disk Drive)16に記憶されているデータの読み出しなどの処理を制御したり、CPU20が実行する編集処理を制御するためのコマンドを生成し、出力する。ノースブリッジ12は、PCIバス(Peripheral Component Interconnect/Interface)14に接続され、例えば、CPU11の制御に基づいて、サウスブリッジ15を介して、HDD16に記憶されているデータの供給を受けて、PCIバス14、PCIブリッジ17を介して、メモリ18に供給する。また、ノースブリッジ12は、メモリ13とも接続されており、CPU11の処理に必要なデータを授受する。
メモリ13は、CPU11が実行する処理に必要なデータを保存する。サウスブリッジ15は、HDD16のデータの書き込みおよび読み出しを制御する。HDD16には、圧縮符号化された編集用の素材が記憶されている。
PCIブリッジ17は、メモリ18のデータの書き込みおよび読み出しを制御したり、デコーダ22乃至24、または、ストリームスプライサ25への圧縮符号化データの供給を制御するとともに、PCIバス14およびコントロールバス19のデータの授受を制御する。メモリ18は、PCIブリッジ17の制御に基づいて、HDD16により読み出された、編集用素材である圧縮符号化データや、ストリームスプライサ25から供給される編集後の圧縮符号化データを記憶する。
CPU20は、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU11から供給されたコマンドにしたがって、PCIブリッジ17、デコーダ22乃至24、ストリームスプライサ25、エフェクト/スイッチ26、および、エンコーダ27が実行する処理を制御する。メモリ21は、CPU20の処理に必要なデータを記憶する。
デコーダ22乃至デコーダ24は、CPU20の制御に基づいて、供給された圧縮符号化データをデコードし、非圧縮の映像信号を出力する。ストリームスプライサ25は、CPU20の制御に基づいて、供給された圧縮映像データを、所定のフレームで結合する。また、デコーダ22乃至デコーダ24は、編集装置1に含まれない独立した装置として設けられていても良い。例えば、デコーダ24が、独立した装置として設けられている場合、デコーダ24は、後述する処理により編集されて生成された圧縮編集映像データの供給を受け、復号し、出力することができるようになされる。
エフェクト/スイッチ26は、CPU20の制御に基づいて、デコーダ22またはデコーダ23から供給される、非圧縮の映像信号出力を切り替える、すなわち、供給された非圧縮の映像信号を所定のフレームで結合するとともに、必要に応じて、所定の範囲にエフェクトを施して、エンコーダ27に供給する。エンコーダ27は、CPU20の制御に基づいて、供給された非圧縮の映像信号をエンコードして、圧縮符号化された圧縮映像データを、ストリームスプライサ25に出力する。
次に、第1の実施の形態における編集装置1の動作について説明する。
HDD16には、図5に示されるLong GOPのOpen GOP方式で圧縮された圧縮素材映像1および圧縮素材映像2のデータが記憶されている。図5において、圧縮された圧縮素材映像1および圧縮素材映像2は、表示されるピクチャ順(display order)で記載されている。
CPU11は、サウスブリッジ15を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、HDD16から、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータを読み出させ、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させて記憶させるとともに、編集点を示す情報と、編集開始を示すコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
CPU20は、CPU11から供給された編集点を示す情報を基に、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータのうち、再エンコードを行う範囲を決定する。そして、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1のデータのうち、再エンコードを行う範囲のピクチャと、参照する必要があるピクチャに対応する圧縮素材映像1のデータをデコーダ22に供給させるとともに、圧縮素材映像2のデータのうち、再エンコードを行う範囲のピクチャと、参照する必要があるピクチャに対応する圧縮素材映像2のデータをデコーダ23に供給させる。
すなわち、このとき、圧縮素材映像1のうち、Bピクチャ36およびBピクチャ37が再エンコードを行う範囲に含まれている場合、Bピクチャ36およびBピクチャ37をデコードするために、Iピクチャ31、および、Pピクチャ32乃至Pピクチャ35もデコードされる。また、同様に、圧縮素材映像2のうち、Bピクチャ38およびBピクチャ39が再エンコードを行う範囲に含まれている場合、Bピクチャ38およびBピクチャ39をデコードするために、Iピクチャ40もデコードされる。
また、このとき、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲のピクチャを、ストリームスプライサ25に供給させる。
CPU20は、デコーダ22およびデコーダ23を制御して、供給された圧縮符号化されたデータをデコードさせる。
デコーダ22およびデコーダ23は、CPU20の制御に基づいて、供給されたデータをデコードし、復号されて得られた素材映像1および素材映像2の信号をエフェクト/スイッチ26に供給する。エフェクト/スイッチ26は、CPU20の制御に基づいて、所定のカット(Cut)編集点(スプライス点)で、非圧縮の復号素材映像1と復号素材映像2の信号を接続して、必要に応じて、エフェクトを施し、再エンコード用の非圧縮の編集映像信号を生成し、再エンコードに必要な再エンコード用参照画像(図5においては、Bピクチャ42およびBピクチャ43のエンコードに必要なPピクチャ41に対応する画像データ)とともに、エンコーダ27に供給する。
また、デコーダ22およびデコーダ23は、後段のエンコーダ27によるエンコード処理に必要な情報を抽出し、コントロールバス19を介して、CPU20に供給することができる。CPU20は、デコーダ22またはデコーダ23から供給された、後段のエンコーダ27によるエンコード処理に必要な情報を、コントロールバス19を介して、エンコーダ27に供給する。
エンコーダ27は、CPU20の制御に基づいて、エフェクト/スイッチ26から供給された、再エンコード用の非圧縮の編集映像信号をエンコードする。
そのとき、エンコーダ27は、図5に示されるように、双方向予測符号化を行うBピクチャ42およびBピクチャ43をエンコードするために、参照画として、1つ前のPピクチャ41を用いなければならない。また、ディスプレイオーダにおいて、再エンコードの最後のピクチャがPピクチャとなるように、ピクチャタイプを決定することにより、再エンコードの最後のピクチャ以降のピクチャをエンコードのための参照画として用いなくてもよいようにすることができる。
換言すれば、再エンコード終了点がGOPの切れ目(すなわち、Bピクチャ以外)となるようなピクチャタイプで再エンコードを行うようにすることにより、編集用の圧縮素材映像データがOpenGOPであっても、再エンコードの最後のピクチャ以降のピクチャをエンコードのための参照画として用いる必要がなくなる。
そして、エンコーダ27において再エンコードされた映像データは、ストリームスプライサ25に供給される。そして、ストリームスプライサ25は、CPU20の制御に基づいて、PCIブリッジ17から供給された、圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲の圧縮素材映像1および圧縮素材映像2と、エンコーダ27から供給されたエンコードされた映像データとを接続し、圧縮編集映像データを生成する。
具体的には、ストリームスプライサ25は、CPU20の制御に基づいて、PCIブリッジ17から供給された、圧縮素材映像1のPピクチャ46とエンコーダ27から供給されたエンコードされた映像データのBピクチャ42とがディスプレイオーダで連続するように接続され、エンコーダ27から供給されたエンコードされた映像データのPピクチャ45と、PCIブリッジ17から供給された、圧縮素材映像2のIピクチャ47とがディスプレイオーダで連続するように接続されるように、ストリームをつなぎ合わせる。
そして、ストリームスプライサ25は、CPU20の制御に基づいて、作成した圧縮編集映像データをPCIブリッジ17に供給して、メモリ18に保存させるとともに、デコーダ24に供給してデコードさせ、編集結果確認用のモニタなどに出力させて表示させたり、デコードされて生成されたベースバンド信号を、他の装置に出力させる。
図示しない操作入力部から、編集されて生成された圧縮編集映像データの保存が指令された場合、CPU11は、PCIブリッジ17を制御して、メモリ18に保存されている圧縮編集映像データを読み出させ、PCIバス14およびノースブリッジ12を介して、サウスブリッジ15に供給させるとともに、サウスブリッジ15を制御して、供給された圧縮編集映像データをHDD16に供給させて保存させる。
実際のエンコードはコーディングオーダ(coding order)で行われ、エンコーダ27においてエンコードされた圧縮映像も、コーディングオーダで出力される。図5を用いて説明した場合に対応させて、圧縮された信号におけるピクチャの並びをコーディングオーダで示したものを図6に示す。
編集対象である圧縮素材映像1および編集対象である圧縮素材映像2のそれぞれのデータにおいて、編集点を含む再エンコード範囲が決定され、再エンコード範囲の圧縮素材映像1および圧縮素材映像2がデコードされて、非圧縮の素材映像1の信号および素材映像2の信号が生成される。そして、カット(Cut)編集点において、非圧縮の素材映像1の信号と素材映像2とが接続されて、接続された素材映像1および素材映像2が、最後のピクチャがPピクチャ(またはIピクチャ)となるように部分再エンコードされて、圧縮映像データが生成され、再エンコードしない部分の圧縮映像データと接続されて、圧縮された編集映像データが生成される。
接続された素材映像1および素材映像2が部分再エンコードされて生成された圧縮映像データと、再エンコードしない部分の圧縮映像データとは、再エンコードしない部分の圧縮素材映像1のデータにおいて、コーディングオーダで最後のピクチャであって、ディスプレイオーダ14番目のピクチャであるB13ピクチャと、再エンコードされて生成された圧縮映像データにおいて、コーディングオーダで先頭のピクチャであって、ディスプレイオーダ3番目のピクチャであるI2ピクチャとが接続される。そして、再エンコードされて生成された圧縮映像データにおいて、コーディングオーダで最後のピクチャであって、ディスプレイオーダ16番目のピクチャであるP15ピクチャ(Pピクチャ45)と、再エンコードしない部分の圧縮素材映像2において、コーディングオーダで先頭のピクチャであって、データのディスプレイオーダ3番目のピクチャであるI0ピクチャ(Iピクチャ47)とが接続される。すなわち、接続された素材映像1および素材映像2が部分再エンコードされて生成された圧縮映像データと、再エンコードしない部分の圧縮映像データとは、GOPの切替え部分に関係なく接続されて、圧縮された編集映像データが生成される。
このように、ディスプレイオーダにおいて、再エンコードの最後のピクチャであるP15ピクチャ(Pピクチャ45)は、コーディングオーダでも再エンコードの最後のピクチャとなる。このようにして、ピクチャタイプを決定することにより、再エンコードの最後のピクチャ以降のピクチャをエンコードのための参照画として用いなくてもよいようにすることができる。
なお、ここでは、再エンコード範囲の圧縮素材映像1および圧縮素材映像2がデコードされるものとして説明したが、デコード範囲は、再エンコード範囲に基づいて、再エンコード範囲とは個別に定められるものとしてもよい。すなわち、デコード範囲は、再エンコード範囲と同一の範囲であっても、再エンコード範囲を含むそれ以上の範囲であってもよい。
このとき、VBV(Video Buffering Verifier)バッファも考慮して再エンコードを行う必要がある。図7を用いて、編集を行う場合のVBVバッファについて説明する。
エンコードを行うにあたっては、VBVバッファがオーバーフロー(over flow)、または、アンダーフロー(under flow)しないようにそれぞれのピクチャに発生符号量を割り当てることで、後段のデコーダが正常にデコードを行えるように制御されなくてはならない。特に、編集のための部分的な再エンコードを行う場合、部分再エンコードしない部分に関して(特に、再エンコードを行う部分と再エンコードを行わない部分の接続点付近において)も、VBVバッファがオーバーフローまたはアンダーフローしないように再エンコードを行う必要がある。
再エンコードされた圧縮映像データのバッファの状態により影響を受けるのは、再エンコードされた圧縮映像信号の後に結合される再エンコードしない部分の圧縮映像データである。この再エンコードしない部分の圧縮映像データが、オーバーフローまたはアンダーフローしないための十分条件は、編集前後において、再エンコードされた圧縮映像信号と再エンコードしない部分の圧縮映像データとの接続部分のOccupancy(オキュパンシ)が一致することであり、換言すれば、再エンコードされた圧縮映像信号の後に結合される再エンコードしない部分の圧縮編集映像データの最初のIピクチャまたはPピクチャ、すなわち、図7において、Aで示されるIピクチャに続く、図7においてDで示されるPピクチャのOccupancyが、圧縮素材映像2データの図7においてBで示されるIピクチャの次のIピクチャまたはPピクチャ、すなわち、図7において、Cで示されるPピクチャのOccupancyに等しくなることである。よって再エンコードを行う場合は、上記条件を満たす値になるように、再エンコード終了時点(図7のAで示される部分)のバッファのOccupancyを制御する必要がある。
このようにすることにより、VBVバッファの破綻をできるだけ防止するようにすることができる。
しかしながら、Aで示されるIピクチャおよびその次のIまたはPピクチャの発生符号量によっては、Aで示されるIピクチャのOccupancyを制御するだけでは、図7を用いて説明したように、Dで示されるPピクチャのOccupancyが、圧縮素材映像2データの図7においてCで示されるPピクチャのOccupancyに等しくなるようにすることができないため、VBVバッファが破綻してしまう恐れがある。
図8を用いて、VBVバッファが破綻してしまう場合について説明する。
一般的に、Iピクチャの発生符号量およびPピクチャの発生符号量は、Bピクチャの発生符号量よりも大きい。例えば、再エンコードして生成された圧縮映像データの後に結合される、再エンコードしない圧縮素材映像2のデータの先頭のIピクチャであるI2ピクチャの発生符号量B、および、次のPピクチャであるP5ピクチャの発生符号量Cが大きい場合について考える。
このとき、編集されて生成される圧縮編集映像のうちの、部分エンコードされた部分に続く部分エンコードされない部分の先頭のIピクチャに続くPピクチャにおけるDで示される部分のOccupancyが、編集前の圧縮素材映像2データのCで示される部分のOccupancyに等しくなるように、Aで示されるIピクチャのOccupancyを制御しようとしても、連続するPピクチャの符号発生量が多いために、図中Dに示されるように、バッファをアンダーフローしてしまう。この例では、編集後のI0ピクチャにおけるAで示されるIピクチャのOccupancyは、ほぼ、バッファの最大値であるため、再エンコード部分において、発生符号量をどのように制御しても、図中Dに示される部分でバッファのアンダーフローを避けることができない。すなわち、図5および図6を用いて説明した方法では、デコーダでの復号処理を100%保障することができない。
そこで、CPU20は、VBVバッファが破綻しない条件を守って再エンコードが行われるように、デコーダ22およびデコーダ23、ストリームスプライサ25、エフェクト/スイッチ26、並びに、エンコーダ27が実行する処理を制御するようにすることができる。
次に、Long GOPのOpen GOP方式で圧縮された映像信号において、VBVバッファが破綻しない条件を守って編集することができる、第2の実施の形態について説明する。
第2の実施の形態における編集装置1の動作について説明する。
CPU11は、サウスブリッジ15を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、HDD16から、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータを読み出させ、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させて記憶させるとともに、編集点を示す情報と、編集開始を示すコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
CPU20は、CPU11から供給された編集点を示す情報を基に、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータのうち、再エンコードを行う範囲を決定する。
具体的には、CPU20は、圧縮素材映像1において、再エンコードする区間の開始点を、部分再エンコードされた圧縮映像の前に結合する、再エンコードしない部分の圧縮映像のディスプレイオーダで最後のピクチャのピクチャタイプが、IピクチャまたはPピクチャになるように決定する。
すなわち、CPU20は、例えば、図9に示されるように、再エンコードしない部分の圧縮素材映像1のディスプレイオーダで最後のピクチャのピクチャタイプがPピクチャ46になるように、再エンコードする区間の開始点を、圧縮素材映像1において、Pピクチャ35の次のBピクチャ36に決定する。換言すれば、CPU20は、再エンコードしない部分の圧縮映像がGOPの終了位置となるようにすることにより、エンコード処理が行いやすいようにすることができる。
また、CPU20は、圧縮素材映像2において、再エンコードする区間の終了点を、部分再エンコードされた圧縮映像の後に結合する、再エンコードしない部分の圧縮映像のディスプレイオーダで最初のピクチャのピクチャタイプがIピクチャになるように決定する。
すなわち、CPU20は、例えば、図9に示されるように、再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のピクチャのピクチャタイプがIピクチャ47になるように、再エンコードする区間の終了点を、圧縮素材映像2において、Iピクチャ40の前のBピクチャ39に決定する。
そして、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1のデータのうち、再エンコードを行う範囲のピクチャと、Bピクチャ36およびBピクチャ37をデコードするために参照する必要があるピクチャである、Iピクチャ31、Pピクチャ32、Pピクチャ33、Pピクチャ34、および、Pピクチャ35のデータをデコーダ22に供給させるとともに、圧縮素材映像2のデータのうち、再エンコードを行う範囲のピクチャと、Bピクチャ38およびBピクチャ39をデコードするために参照する必要があるピクチャである、Iピクチャ40のデータをデコーダ23に供給させる。
また、このとき、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲のピクチャを、ストリームスプライサ25に供給させる。
CPU20は、デコーダ22およびデコーダ23を制御して、供給された圧縮符号化されたデータをデコードさせる。
デコーダ22およびデコーダ23は、CPU20の制御に基づいて、供給されたデータをデコードし、復号されて得られた素材映像1および素材映像2の信号をエフェクト/スイッチ26に供給する。
また、デコーダ22およびデコーダ23は、後段のエンコーダ27によるエンコード処理に必要な情報を抽出し、コントロールバス19を介して、CPU20に供給することができる。CPU20は、デコーダ22またはデコーダ23から供給された、後段のエンコーダ27によるエンコード処理に必要な情報を、コントロールバス19を介して、エンコーダ27に供給する。
エフェクト/スイッチ26は、CPU20の制御に基づいて、所定のカット(Cut)編集点(スプライス点)で、非圧縮の復号素材映像1と復号素材映像2の信号を接続して、必要に応じて、エフェクトを施し、再エンコード用の非圧縮の編集映像信号を生成し、再エンコードに必要な再エンコード用参照画像(図9においては、Bピクチャ42およびBピクチャ43のエンコードに必要なPピクチャ41、並びに、Bピクチャ72およびBピクチャ73のエンコードに必要なIピクチャ74に対応する画像データ)とともに、エンコーダ27に供給する。
CPU20は、圧縮素材映像2のうち、再エンコードを行う部分において、ディスプレイオーダで最後に位置する連続するBピクチャの枚数nの情報を取得する。再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のピクチャのピクチャタイプは、上述したように、Iピクチャになるように決定されているので、Bピクチャの枚数nは、すなわち、再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のIピクチャと、編集後にそのIピクチャの直前に存在するIピクチャまたはPピクチャとの間にあるBピクチャの枚数である。図9における場合では、Bピクチャの枚数nは、Bピクチャ38およびBピクチャ39の2枚である。
更に、CPU20は、再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のIピクチャの直前に存在するIピクチャまたはPピクチャ、換言すれば、再エンコードする範囲の最後に存在するIピクチャまたはPピクチャのピクチャタイプの情報を取得する。図9における場合では、再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のIピクチャの直前に存在するIピクチャまたはPピクチャは、Pピクチャ61である。
そして、CPU20は、エンコーダ27が実行する処理において、再エンコード終了点付近のBピクチャタイプの枚数が編集前の圧縮素材映像2と同一となり、そのBピクチャの直前のピクチャのピクチャタイプがIピクチャまたはPピクチャとなるように、エンコーダ27を制御する。また、CPU20は、Bピクチャの直前のピクチャのピクチャタイプも、編集前の圧縮素材映像2と同一となるように制御すると好適である。
すなわち、CPU20は、図9における場合では、編集前の圧縮素材映像2のBピクチャ38およびBピクチャ39と、再エンコードにおけるBピクチャ72およびBピクチャ73のピクチャタイプをそろえ、再エンコードにおけるBピクチャ72およびBピクチャ73の直前をPピクチャ71とする。
エンコーダ27は、CPU20の制御に基づいて、エフェクト/スイッチ26から供給された、再エンコード用の非圧縮の編集映像信号をエンコードする。
そして、エンコーダ27において再エンコードされた映像データは、ストリームスプライサ25に供給される。ストリームスプライサ25は、CPU20の制御に基づいて、PCIブリッジ17から供給された、圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲の圧縮素材映像1および圧縮素材映像2と、エンコーダ27から供給されたエンコードされた映像データとを接続し、圧縮編集映像データを生成する。
具体的には、ストリームスプライサ25は、CPU20の制御に基づいて、PCIブリッジ17から供給された、圧縮素材映像1のPピクチャ46とエンコーダ27から供給されたエンコードされた映像データのBピクチャ42とがディスプレイオーダで連続するように接続され、エンコーダ27から供給されたエンコードされた映像データのBピクチャ73と、PCIブリッジ17から供給された、圧縮素材映像2のIピクチャ47とがディスプレイオーダで連続するように接続されるように、ストリームをつなぎ合わせる。
なお、ここでも、再エンコード範囲の圧縮素材映像1および圧縮素材映像2がデコードされるものとして説明したが、デコード範囲は、再エンコード範囲に基づいて、再エンコード範囲とは個別に定められるものとしてもよい。すなわち、デコード範囲は、再エンコード範囲と同一の範囲であっても、再エンコード範囲を含むそれ以上の範囲であってもよい。
実際のエンコードはコーディングオーダで行われ、エンコーダ27においてエンコードされた圧縮映像も、コーディングオーダで出力される。図9を用いて説明した場合に対応させて、圧縮された信号におけるピクチャの並びをコーディングオーダで示したものを図10に示す。
すなわち、ストリームスプライサ25は、CPU20の制御に基づいて、再エンコードされた部分と再エンコードされていない部分の接続点において、エンコードされた映像データにおいて、コーディングオーダでPピクチャ71に続くBピクチャ81と、圧縮素材映像2のIピクチャ47(再エンコードされていないIピクチャ)とがコーディングオーダで連続するように接続され、圧縮素材映像2のIピクチャ47と、エンコードされた映像データのBピクチャ72とがコーディングオーダで連続するように接続され、エンコードされた映像データにおいて、コーディングオーダでBピクチャ72に続くBピクチャ73と、圧縮素材映像2のPピクチャ82とがコーディングオーダで連続するように接続されるように、ストリームをつなぎ合わせる。
換言すれば、ストリームスプライサ25は、コーディングオーダにおいて、再エンコードされた区間の最後のIピクチャまたはPピクチャに続く、n枚の再エンコードされたBピクチャの前に、再エンコードされていないIピクチャが入るように、ストリームをつなぎ合わせる。
そして、ストリームスプライサ25は、CPU20の制御に基づいて、作成した圧縮編集映像データをPCIブリッジ17に供給して、メモリ18に保存させるとともに、デコーダ24に供給してデコードさせ、編集結果確認用のモニタなどに出力させて表示させたり、デコードされて生成されたベースバンド信号を、他の装置に出力させる。デコーダ24が、独立した装置として構成されている場合、デコーダ24に対応する装置は、図9および図10を用いて説明したようにして生成された、換言すれば、再エンコードされた区間の最後のIピクチャまたはPピクチャに続く、n枚の再エンコードされたBピクチャの前に、再エンコードされていないIピクチャが入る編集後の圧縮映像データの供給を受けてこれをデコードし、デコードされて生成されたベースバンド信号を出力することができるようになされる。
次に、図11を用いて、図9および図10を用いて説明した、再エンコードを利用した編集処理を行う場合のVBVバッファについて説明する。
図9および図10を用いて説明した、再エンコードを利用した編集処理が行われた場合、コーディングオーダにおいて、再エンコードの最後のn枚のBピクチャの前に、再エンコードしないIピクチャが挿入される。したがって、図11に示されるように、再エンコードされないIピクチャの発生符号量の情報(図11においては、Fで示される部分)が圧縮素材映像2の対応するIピクチャの発生符号量の情報(図11においては、Bで示される部分)から求められて、再エンコード範囲から最後のn枚のBピクチャを除いた部分(図11のEで示される部分)は、再エンコードされない最初のIピクチャでVBVバッファが、オーバーフローまたはアンダーフローしないように、発生符号量が割り当てられて、再エンコードが行われ、VBVバッファのOccupancyが計算される。
その後、再エンコードしない部分の圧縮映像のVBVバッファが、オーバーフローまたはアンダーフローしないようにするため、再エンコードしない部分の圧縮映像の先頭のIピクチャの次に位置するIピクチャまたはPピクチャのOccupancyが編集前後で一致するように、再エンコード部分の最後のn枚のBピクチャ(図11においては、Gで示される部分)において、発生符号量が制御されて、エンコードが行なわれる。すなわち、図11において、編集前のCで示される発生符号量と、編集後のHで示される発生符号量は同一であるため、編集前のIで示されるOccupancyに、編集後のJで示されるOccupancyが一致するように、n枚のBピクチャの再エンコードが行われる。これにより、図11において、KおよびLで示される部分でバッファのアンダーフローは発生しない。
この方法では、再エンコードが行われている部分と再エンコードが行われない部分の圧縮映像の結合部におけるピクチャタイプが、編集前後で保存されているので、図11に示されるように、再エンコードが行われている部分に接続される、再エンコードが行われない部分の先頭のIピクチャの発生符号量Fと、次のIピクチャまたはPピクチャの発生符号量Hが大きくても、編集前の圧縮素材映像2のデータでVBVバッファの制約が満たされていれば、編集後の圧縮映像でも制約を満たすようにエンコードが行われるようにすることが可能である。
以上、図4乃至図11を用いて、双方向のフレーム間予測を用いて圧縮した映像データを編集することができる編集装置1が実行する処理の第1の実施の形態および第2の実施の形態について説明した。
このように、編集点付近の所定の範囲のピクチャをデコードして結合した後、再エンコードを行うようになされている編集方法においては、VBV BufferのOccupancyが連続になるよう、再エンコードを行う部分と行わない部分の接続点付近のOccupancyを制御する必要がある。よって、第2の実施の形態において、再エンコード開始点のIピクチャのVBV Occupancyが小さく、再エンコード終了点の前のIピクチャのVBV Occupancyが大きい場合、バッファのアンダーフローを避けるためには、Bit rateから想定される本来の符号量(ピクチャ数×bit_rate/frame_rateにより求められる)より少ない符号量しか発生させることができない。このような場合、同じBit rateで再エンコードすると画質は低下する。
ここで、再エンコード開始点のIピクチャと、再エンコード終了点の前のIピクチャとのVBV Occupancyを比較することにより、想定されている本来の符号量が発生されているか否かが判断されるのは、GOPにおいて同一の位置でVBV Occupancyを比較するためである。
また、上述したように、編集点付近においては、必要に応じて、エフェクトが施される。このとき、エフェクトの種類によっては、エフェクトがかけられた部分の符号化難易度が高くなり、通常の符号量で符号化した場合、再エンコード後の画質は低下する。
エンコーダ27が、VBR(Variable Bit Rate)でエンコードを行い、かつ、編集素材の圧縮映像データの編集点付近のBit rateが、最大Bit rateよりも低く、再エンコードを行うときにBit rateを上げることが可能な場合は、再エンコード範囲のうちの符号化難易度の高い部分でBit rateを上げることで、画質を維持することができる。しかしながら、エンコーダ27が、CBR(Constant Bit Rate)でエンコードを行っている場合や、編集素材の圧縮映像データの編集点付近のBit rateが、最大Bit rateとほぼ同じ場合には、再エンコード範囲のうちの符号化難易度の高い部分でBit Rateを上げてエンコードに使用できる符号量を増やすことができないので、画質を維持することができない。
Bit Rateを上げることができない状況で、編集点付近の符号化難易度が高くなった場合や、VBV Bufferの連続性を保つために、Bit rateから想定される本来の符号量より少ない符号量しか使えない場合、発生符号量を制御することにより、本来の発生符号量にできるだけ近い発生符号量を与えることができるようにし、画質の劣化を防ぐようにする必要がある。そこで、編集装置1においては、VBV BufferのOccupancyが連続になるように制御されることにより、想定されている本来の符号量が発生されていなかったり、編集点付近にエフェクトが施されることにより、その部分の符号化難易度が高くなった場合、上述した実施の形態2における再エンコード範囲を延長し、エンコーダ27によるエンコード処理の発生符号量を編集点付近で増加させるように制御することにより、画質の低下を防止するようにすることができる。
再エンコード範囲を延長し、エンコーダ27によるエンコード処理の発生符号量を編集点付近で増加させるように制御する、第3の実施の形態について、以下に説明する。
まず、図11を用いて説明した場合のように、編集点を含む最小の再エンコード区間を考える。編集点を含むエフェクト区間を、以下、Editing Durationと称するものとする。
再エンコード開始点および終了点のVBV Occupancyの連続性を維持するため、再エンコード開始点、終了点のVBV Occupancyが一致されるように、エンコーダ27によるエンコードがCPU20によって制御される。
通常、PピクチャまたはBピクチャよりもIピクチャの発生符号量が多いため、GOPの先頭ではOccupancyが小さくなり、後半では大きくなる。符号量割り当てにおいて、GOP単位で等しい符号量(1GOPのピクチャ数×bit_rate/frame_rate)が割り当てられるようになされている場合、GOPの先頭のIピクチャにおいては、いずれも同一のOccupancyとなる。したがって、GOP単位で等しい符号量が割り当てられていない場合、再エンコードを行う区間のGOPの先頭と次のGOPの先頭のOccupancyを比較することで、そのGOPで使用できる符号量が平均より多いか少ないかを判断することができる。すなわち、上述したように、再エンコード開始点のIピクチャと、再エンコード終了点の前のIピクチャとのVBV Occupancyを比較することにより、想定されている本来の符号量が発生されているか否かを判断することができる。
また、再エンコード終了点とその直前の再エンコードしないIピクチャとの間のピクチャ(図11においてGで示されるBピクチャ)は、エンコード条件にほとんど変化がないので、この部分における再エンコード時の符号量が、編集前の圧縮映像と同一であるものと仮定して、編集前の圧縮映像の再エンコード終了点の直前の再エンコードしないIピクチャのVBV Occupancyを、再エンコードされる区間の終了点のVBV Occupancyとみなすことができる。また、Editing Durationを含む最小のGOPをEditing GOP Durationと称した場合、Editing GOP Durationの先頭のIピクチャと、Editing GOP Durationの次のIピクチャとは、再エンコード開始点のIピクチャと、再エンコード終了点の前のIピクチャと等しい。
したがって、式(1)に示されるように、編集前の圧縮素材映像1の再エンコード開始点に対応するピクチャ、換言すれば、Editing GOP Durationの先頭のIピクチャに対応する編集前のピクチャのVBV Occupancyから、編集前の圧縮素材映像2の再エンコード終了点の直前の再エンコードしないIピクチャ、換言すれば、Editing GOP Durationの次のIピクチャに対応する編集前のピクチャのVBV Occupancyを引いた値である、Occupancy差分値を求めることで、Editing Durationで使用できる符号量が、bit rateから得られる平均値より少ないかどうかを、実際のエンコードを行う前に判断することができる。
Occupancy差分値=vbv_edit_gop_start−vbv_edit_last_i・・・(1)
したがって、CPU20は、Editing GOP Durationで使用できる符号量が平均値より少ない場合、PCIブリッジ17を制御して、再エンコード区間をEditing GOP Durationの前後に延長させ、エンコーダ27を制御して、Editing GOP Durationに割り当てられる発生符号量を増加させる。
また、メモリ21には、予め、エフェクトの種類と符号化難易度の上昇率との関係を示すテーブルを予め保存しておくか、または、エフェクトの種類と対応する係数、および、その係数を用いて符号化難易度に対応する値を算出することができる計算式を予め保存しておくものとする。CPU20は、メモリ21に記憶されたテーブルを参照したり、所定の計算式を用いて、エフェクトの種類に対応する符号化難易度を取得し、その符号化難易度を基に、PCIブリッジ17を制御して、再エンコード区間をEditing GOP Durationの前後に延長させ、エンコーダ27を制御して、Editing GOP Durationに割り当てられる発生符号量を増加させる。
CPU20は、エンコーダ27により再エンコードが行われる前に、Editing GOP Durationに割り当てられる発生符号量と、再エンコード区間の延長量を予め決定するようにしても良いし、エンコーダ27により再エンコードが行われるのと平行して、Editing GOP Durationに割り当てられる発生符号量と、再エンコード区間の延長量を逐次算出して更新することができるようにしても良い。このとき、CPU20は、Editing GOP Durationに割り当てられる発生符号量と、再エンコード区間の延長量を算出するために、再エンコードされるピクチャの符号化難易度に関する情報を取得する必要がある。HDD16に記録されている圧縮映像素材とともに、対応する符号化難易度の情報がすでに用意されている場合、CPU11が、サウスブリッジ15およびノースブリッジ12を介して、HDD16から符号化難易度の情報を読み出し、ノースブリッジ12、PCIバス14、PCIブリッジ、および、コントロールバス19を介して、CPU20に供給するようにしても良い。また、デコーダ22および23がデコード時に符号化難易度の情報を取得して、コントロールバス19を介して、CPU20に供給するようにしても良いし、エンコーダ27がエンコード時に取得した符号化難易度の情報を、コントロールバス19を介して、CPU20に供給するようにしても良い。
このようにして、編集装置1においては、VBV BufferのOccupancyが連続になるように制御されることにより、想定されている本来の符号量が発生されていなかったり、編集点付近にエフェクトが施されることにより、その部分の符号化難易度が高くなった場合、上述した方法で決定される最小の再エンコード範囲を延長し、エンコーダ27によるエンコード処理の発生符号量を編集点付近で増加させるように制御することにより、画質の低下を防止するようにすることができる。
図12は、エンコーダ27の構成を示すブロック図である。
エンコーダ27に外部から供給された画像データは前処理部171に入力される。前処理部171は、順次入力される画像データの各フレーム画像を、16画素×16ラインの輝度信号、および輝度信号に対応する色差信号によって構成されるマクロブロックに分割し、必要に応じて、並べ替えたり、画像データの各フレーム画像を、16画素×16ラインの輝度信号、および輝度信号に対応する色差信号によって構成されるマクロブロックに分割したマクロブロックデータを生成して、演算部172、動きベクトル検出部173、および、量子化制御部183のイントラAC算出部191に供給する。
動きベクトル検出部173は、マクロブロックデータの入力を受け、各マクロブロックの動きベクトルを、マクロブロックデータ、および、フレームメモリ184に記憶されている参照画像データを基に算出し、動きベクトルデータとして、動き補償部181に送出する。
演算部172は、前処理部171から供給されたマクロブロックデータについて、各マクロブロックの画像タイプに基づいた動き補償を行う。具体的には、演算部172は、Iピクチャに対してはイントラモードで動き補償を行い、Pピクチャに対しては、順方向予測モードで動き補償を行い、Bピクチャに対しては、双方向予測モードで動き補償を行うようになされている。
イントラモードとは、符号化対象となるフレーム画像をそのまま伝送データとする方法であり、順方向予測モードとは、符号化対象となるフレーム画像と過去参照画像との予測残差を伝送データとする方法であり、双方向予測モードとは、符号化対象となるフレーム画像と、過去と将来の参照画像との予測残差を伝送データとする方法である。
まず、マクロブロックデータがIピクチャであった場合、マクロブロックデータはイントラモードで処理される。すなわち、演算部172は、入力されたマクロブロックデータのマクロブロックを、そのまま演算データとしてDCT(Discrete Cosine Transform :離散コサイン変換)部174に送出する。DCT部147は、入力された演算データに対しDCT変換処理を行うことによりDCT係数化し、これをDCT係数データとして、量子化部175に送出する。
量子化部175は、発生符号量制御部192から供給される量子化インデックスデータQ(j+1)に基づいて、入力されたDCT係数データに対して量子化処理を行い、量子化DCT係数データとして、VLC(Variable Length Code;可変長符号化)部177および逆量子化部178に送出する。量子化部175は、発生符号量制御部192から供給される量子化インデックスデータQ(j+1)に応じて、量子化処理における量子化ステップサイズを調整することにより、発生する符号量を制御することができるようになされている。
逆量子化部178に送出された量子化DCT係数データは、量子化部175と同じ量子化ステップサイズによる逆量子化処理を受け、DCT係数データとして、逆DCT部179に送出される。逆DCT部179は、供給されたDCT係数データに逆DCT処理を施し、生成された演算データは、演算部180に送出され、参照画像データとしてフレームメモリ184に記憶される。
そして、演算部172は、マクロブロックデータがPピクチャであった場合、マクロブロックデータについて、順方向予測モードよる動き補償処理を行い、Bピクチャであった場合、マクロブロックデータについて、双方向予測モードによる動き補償処理を行う。
順方向予測モードにおいて、動き補償部181は、フレームメモリ184に記憶されている参照画像データを、動きベクトルデータに応じて動き補償し、順方向予測画像データ、または、双方向予測画像データを算出する。演算部172は、マクロブロックデータについて、動き補償部181より供給される順方向予測画像データ、または、双方向予測画像データを用いて減算処理を実行する。
すなわち、動き補償部181は、順方向予測モードにおいて、フレームメモリ184の読み出しアドレスを、動きベクトルデータに応じてずらすことによって、参照画像データを読み出し、これを順方向予測画像データとして演算部172および演算部180に供給する。演算部172は、供給されたマクロブロックデータから、順方向予測画像データを減算して、予測残差としての差分データを得る。そして、演算部172は、差分データをDCT部174に送出する。
演算部180には、動き補償部181より順方向予測画像データが供給されており、演算部180は、逆DCT部179から供給された演算データに、順方向予測画像データを加算することにより、参照画像データを局部再生し、フレームメモリ184に出力して記憶させる。
また、双方向予測モードにおいて、動き補償部181は、双方向予測画像データを演算部172および演算部180に供給する。演算部172は、供給されたマクロブロックデータから、双方向予測画像データを減算して、予測残差としての差分データを得る。そして、演算部172は、差分データをDCT部174に送出する。
演算部180には、動き補償部181より双方向予測画像データが供給されており、演算部180は、逆DCT部179から供給された演算データに、双方向予測画像データを加算することにより、参照画像データを局部再生する。
かくして、エンコーダ27に入力された画像データは、動き補償予測処理、DCT処理および量子化処理を受け、量子化DCT係数データとして、VLC部177に供給される。VLC部177は、量子化DCT係数データに対し、所定の変換テーブルに基づく可変長符号化処理を行い、その結果得られる可変長符号化データをバッファ182に送出するとともに、マクロブロックごとの符号化発生ビット数を表す発生符号量データB(j)を、量子化制御部183の発生符号量制御部192、およびGC(Global Complexity)算出部193にそれぞれ送出する。
GC算出部193は、発生符号量データB(j)を、マクロブロックごとに順次蓄積し、1ピクチャ分の発生符号量データB(j)が全て蓄積された時点で、全マクロブロック分の発生符号量データB(j)を累積加算することにより、1ピクチャ分の発生符号量を算出する。
そしてGC算出部193は、1ピクチャの発生符号量と量子化ステップサイズの平均値との積を算出することにより、画像の難しさ(以下、これをGCと称する)を表すGCデータを求め、これを目標符号量算出部194に供給する。GCデータは、符号化難易度を示す指標のうちのひとつである。
目標符号量算出部194は、CPU20の制御に基づいて、目標発生符号量の算出を行う。すなわち、目標符号量算出部194は、CPU20の制御に基づいて、必要に応じて、編集点付近のピクチャの発生符号量を増加させ、延長された再エンコード範囲のピクチャの発生符号量が減少されるように、GC算出部193から供給されるGCデータを基に、次のピクチャの目標発生符号量データを算出し、算出した目標発生符号量データを発生符号量制御部192に送出する。
ME残差算出部195は、入力されるマクロブロックデータを基に、ME残差情報を算出して、発生符号量制御部192に出力する。ここで、ME残差情報とは、ピクチャ単位で算出されるものであり、1つ前のピクチャと次のピクチャにおける輝度の差分値の合計値である。ME残差情報は、符号化難易度を示す指標のうちのひとつである。
イントラAC算出部191は、イントラAC(intra AC)を算出し、発生符号量制御部192に出力する。
イントラACは、MPEG方式におけるDCT処理単位のDCTブロックごとの映像データとの分散値の総和として定義されるパラメータであって、映像の複雑さを指標し、映像の絵柄の難しさおよび圧縮後のデータ量と相関性を有する。すなわち、イントラACとは、DCTブロック単位で、それぞれの画素の画素値から、ブロックごとの画素値の平均値を引いたものの絶対値和の、画面内における総和である。イントラACは、符号化難易度を示す指標のうちのひとつである。
発生符号量制御部192は、バッファ182に格納される可変長符号化データの蓄積状態を常時監視しており、蓄積状態を表す占有量情報を基に量子化ステップサイズを決定するようになされている。
また、発生符号量制御部192は、ME残差算出部195から供給されたME残差、および、イントラAC算出部191から供給されたイントラACを基に、符号化難易度が高いか否かを検出し、符号化難易度の高いピクチャに対して発生符号量を増やすために量子化ステップサイズを小さくするようになされているとともに、目標発生符号量データTpiよりも実際に発生したマクロブロックの発生符号量データB(j)が多い場合、発生符号量を減らすために量子化ステップサイズを大きくし、また目標発生符号量データTpiよりも実際の発生符号量データB(j)が少ない場合、発生符号量を増やすために量子化ステップサイズを小さくするようになされている。
量子化部175は、量子化インデックスデータQ(j+1)に基づいて、次のマクロブロックに応じた量子化ステップサイズを決定し、量子化ステップサイズによってDCT係数データを量子化する。
これにより、量子化部175は、1つ前のピクチャの実際の発生符号量データB(j)に基づいて算出された、次のピクチャの目標発生符号量にとって最適な量子化ステップサイズによって、DCT係数データを量子化することができる。
かくして、量子化部175では、バッファ182のデータ占有量に応じて、バッファ182がオーバーフローまたはアンダーフローしないように量子化し得るとともに、デコーダ側のVBVバッファがオーバーフロー、またはアンダーフローしないように量子化した量子化DCT係数データを生成することができる。
なお、エンコーダ27は、上述した機能の中で、少なくとも、符号化難易度を検出する、または、取得して、発生符号量を制御することができる機能のいずれかを有していれば、図12に記載されたすべての符号化難易度の検出手段または符号化難易度の取得手段を有していなくても良い。
このようにして、エンコーダ27は、発生符号量を制御して、データをエンコードすることができる。
次に、第3の実施の形態における編集装置1の動作について説明する。
CPU11は、サウスブリッジ15を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、HDD16から、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータを読み出させ、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させて記憶させるとともに、編集点を示す情報と、編集開始を示すコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
CPU20は、CPU11から供給された編集点を示す情報を基に、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータのうち、予め、再エンコードを行う範囲を決定するか、または、再エンコードする仮の範囲を決定する。
具体的には、CPU20は、圧縮素材映像1において、最小の再エンコードする区間の開始点を、第2の実施の形態における場合と同様にして、部分再エンコードされた圧縮映像の前に結合する、再エンコードしない部分の圧縮映像のディスプレイオーダで最後のピクチャのピクチャタイプが、IピクチャまたはPピクチャになるように決定する。
すなわち、CPU20は、例えば、図9を用いて説明したように、最小の再エンコード区間に対する再エンコードしない部分の圧縮素材映像1のディスプレイオーダで最後のピクチャのピクチャタイプがPピクチャ46になるように、最小の再エンコードする区間の開始点を、圧縮素材映像1において、Pピクチャ35の次のBピクチャ36に決定する。換言すれば、CPU20は、再エンコードしない部分の圧縮映像がGOPの終了位置となるようにすることにより、エンコード処理が行いやすいようにすることができる。
また、CPU20は、圧縮素材映像2において、最小の再エンコードする区間の終了点を、第2の実施の形態における場合と同様にして、部分再エンコードされた圧縮映像の後に結合する、再エンコードしない部分の圧縮映像のディスプレイオーダで最初のピクチャのピクチャタイプがIピクチャになるように決定する。
すなわち、CPU20は、例えば、図9を用いて説明したように、最小の再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のピクチャのピクチャタイプがIピクチャ47になるように、最小の再エンコードする区間の終了点を、圧縮素材映像2において、Iピクチャ40の前のBピクチャ39に決定する。
そして、CPU20は、エンコーダ27により再エンコードが行われる前に、Editing GOP Durationに割り当てられる発生符号量と、再エンコード区間の延長量を予め決定する場合、Editing Durationを含む最小のGOPであるEditing GOP Durationの開始点のピクチャのVBV OccupancyからEditing GOP Durationの次のIピクチャのVBV Occupancyを引いた値である、式(1)を用いて説明した、Occupancy差分値を求める。そして、CPU20は、Occupancy差分値が負であるとき、編集区間で使用できる符号量が、bit rateから得られる平均値より少ないので、その値の絶対値に応じて再エンコード区間を増加させる。
再エンコード区間の増加量は、Occupancy差分値を基に算出することができる。再エンコード区間の増加量は、例えば、次の式(2)を用いて算出することができる。
k_1×|vbv_edit_gop_startvbv_edit_last_i|/bit_rate・・・(2)
ここで、k_1は、再エンコード区間の増加の傾きを決めるために、経験的または実験的に求められる係数である。また、再エンコード区間の増加の単位は、例えば、GOP単位に増加させるようにしてもよい。また、CPU20は、Occupancy差分値が負でないときは、再エンコード区間を増加させない。
また、CPU20は、CPU11から供給される、編集に関する命令を基に、編集点付近にエフェクトを施すことが指令されているか、および、エフェクトが施される場合は、どのエフェクトが用いられるかを検出する。そして、CPU20は、メモリ21に記憶されたテーブルを参照したり、所定の計算式を用いて、エフェクトの種類に対応する符号化難易度を取得し、その符号化難易度を基に、再エンコード区間をEditing GOP Durationの前後に延長させる。
そのとき、CPU20は、符号化難易度の上昇率をもとに、Editing Duration外の再エンコード区間からEditing Durationに割り振る符号量を決定する。この時、Editing Durationに割り振られる符号量には上限があるので、例えば、次の式(3)を用いて、上限以下となるようにEditing Durationへ割り振る符号量bit_supplementを決定する。
bit_supplement=min(k_2×difficulty_variation×editing_length,
bit_supplement_start_max+bit_supplement_end_max)
・・・(3)
ここで、k_2は、符号化難易度の上昇率に対する符号配分量比率を決める係数であり、実験的にまたは経験的に定められるものである。difficulty_variationは、符号化難易度に対応する係数であり、editing_lengthは、Editing Durationの長さに対応する値である。また、bit_supplement_start_maxは、Editing Durationより時間的に前に延長された再エンコード区間に含まれるピクチャからEditing Durationの部分に割り当てられる符号量の最大値であり、bit_supplement_end_maxは、diting Durationより時間的に後ろに延長された再エンコード区間に含まれるピクチャからEditing Durationの部分に割り当てられる符号量の最大値である。
Editing Durationより時間的に前に延長された再エンコード区間に含まれるピクチャからEditing Durationの部分に割り当てられる符号量を、bit_supplement_start、diting Durationより時間的に後ろに延長された再エンコード区間に含まれるピクチャからEditing Durationの部分に割り当てられる符号量を、bit_supplement_end、Editing Duration以外の延長された再エンコード区間から、Editing Durationに符号量を割り当てるために、Editing Duration外の再エンコード区間から減らす符号量の割合をsubtract_ratioとしたとき、Editing Duration外の再エンコード区間の長さ、すなわち、Editing Durationより前の再エンコード区間に必要な最低限のピクチャ枚数P1とEditing Durationより後の再エンコード区間に必要な最低限のピクチャ枚数P2は、Editing Durationに割り振る符号量から、次の式(4)および式(5)により決定される。
P1=picture_rate×bit_supplement_start/(bit_rate×subtract_ratio)
・・・(4)
P2=picture_rate×bit_supplement_end/(bit_rate×subtract_ratio)
・・・(5)
ここで、P1,P2は、ともに整数でなければならないので、演算結果が整数でない場合、P1およびP2は、小数点以下を切り上げた値となる。また、GOP単位で再エンコードが行なわれる場合は、式(4)および式(5)により算出されたピクチャ数以上で、再エンコード区間がGOP単位となる値をEditing Durationより前の再エンコード区間のピクチャ数とする。
また、CPU20は、エンコーダ27により再エンコードが行われるのと平行して、Editing GOP Durationに割り当てられる発生符号量と、再エンコード区間の延長量を決定する場合、Editing Durationより前に延長する再エンコード区間の延長の長さと、前に延長された再エンコード区間からEditing Durationに割り振る符号量のみを、エフェクトの種類などから仮に算出するか、または、所定の固定の値とし、それ以降の処理により、エンコーダ27により再エンコードが行われるのと平行して、Editing Durationより後ろに延長する再エンコード区間の延長の長さと、後ろに延長された再エンコード区間からEditing Durationに割り振る符号量を決定する。
このようにして、CPU20は、エンコード処理の実行に先立って、再エンコード区間の延長を決定、または、仮に決定する。
図13に示されるように、CPU20が決定した、延長された再エンコード区間の全体を、再エンコードDurationと称し、再エンコードDurationのうち、Editing Duration以外の部分を、No Editing再エンコードDurationと称し、再エンコードDurationのうち、Editing GOP Duration以外の部分を、No Editing再エンコードGOP Durationと称するものとする。
発生符号量が減少されてしまうNO Editing再エンコードDuration範囲内のピクチャにおいては、画質が低下してしまう恐れがあるが、発生符号量の減少量が少量であれば、画質低下を視覚的に無視できる程度に抑制することができる。そこで、NO Editing再エンコードDuration範囲は、NO Editing再エンコードDuration範囲内のピクチャの画質低下を視覚的に無視できる程度に広い範囲とすると好適である。すなわち、上述した式(2)におけるk_1は、NO Editing再エンコードDuration範囲内のピクチャの画質低下を視覚的に無視できる程度に、NO Editing再エンコードDurationを広い範囲とすることができるような値として、経験的または実験的に求められるようになされると好適である。
そして、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1のデータのうち、再エンコードを行う範囲である再エンコードDurationに含まれるピクチャと、再エンコードDurationに含まれるピクチャをデコードするために参照する必要があるピクチャのデータをデコーダ22に供給させるとともに、圧縮素材映像2のデータのうち、再エンコードDurationに含まれるピクチャと、再エンコードDurationに含まれるピクチャをデコードするために参照する必要があるピクチャのデータをデコーダ23に供給させる。
また、このとき、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲のピクチャを、ストリームスプライサ25に供給させる。
CPU20は、デコーダ22およびデコーダ23を制御して、供給された圧縮符号化されたデータをデコードさせる。
デコーダ22およびデコーダ23は、CPU20の制御に基づいて、供給されたデータをデコードし、復号されて得られた素材映像1および素材映像2の信号をエフェクト/スイッチ26に供給する。
また、デコーダ22およびデコーダ23は、必要に応じて、例えば、デコード時に取得された符号化難易度など、後段のエンコーダ27によるエンコード処理の制御に必要な情報を抽出し、コントロールバス19を介して、CPU20に供給することができる。
エフェクト/スイッチ26は、CPU20の制御に基づいて、所定のカット(Cut)編集点(スプライス点)で、非圧縮の復号素材映像1と復号素材映像2の信号を接続して、必要に応じて、Editing Durationの範囲のピクチャにエフェクトを施し、再エンコード用の非圧縮の編集映像信号を生成し、再エンコードに必要な再エンコード用参照画像とともに、エンコーダ27に供給する。
CPU20は、圧縮素材映像2のうち、再エンコードを行う範囲である再エンコードDurationにおいて、上述した第2の実施の形態における場合と同様にして、ディスプレイオーダで最後に位置する連続するBピクチャの枚数nの情報を取得する。再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のピクチャのピクチャタイプは、上述したように、Iピクチャになるように決定されているので、Bピクチャの枚数nは、すなわち、再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のIピクチャと、編集後にそのIピクチャの直前に存在するIピクチャまたはPピクチャとの間にあるBピクチャの枚数である。
更に、CPU20は、再エンコードしない部分の圧縮素材映像2のディスプレイオーダで最初のIピクチャの直前に存在するIピクチャまたはPピクチャ、換言すれば、再エンコードする範囲の最後に存在するIピクチャまたはPピクチャのピクチャタイプの情報を取得する。
そして、CPU20は、エンコーダ27が実行する処理において、再エンコード終了点付近のBピクチャタイプの枚数が編集前の圧縮素材映像2と同一となり、そのBピクチャの直前のピクチャのピクチャタイプがIピクチャまたはPピクチャとなるように、エンコーダ27を制御する。また、CPU20は、Bピクチャの直前のピクチャのピクチャタイプも、編集前の圧縮素材映像2と同一となるように制御すると好適である。
すなわち、CPU20は、図9を用いて説明した場合と同様にして、再エンコードを行う範囲と行わない範囲の接続点付近の編集前後のピクチャタイプを決定する。
そして、エンコーダ27は、CPU20の制御に基づいて、エフェクト/スイッチ26から供給された、再エンコード用の非圧縮の編集映像信号をエンコードする。
Occupancy差分値が負であることに基づいて、または、Editing Durationに施されるエフェクトの種類に基づいて、再エンコード区間が延長された場合、ピクチャへの符号量配分は、例えば、TM5を用いて発生符号量が制御されているとき、GOPの先頭のピクチャで、GOP内でまだ符号化されていないピクチャに対して割り当てられる符号量Rを更新する際に、式(6)により算出される値を符号量Rに加えるようにすれば良い。
(vbv_re_enc_start−vbv_re_enc_last_i)×N_gop/N_total_gop・・・(6)
ここで、vbv_re_enc_startは再エンコードDurationの開始点のVBV Buffer Occupancyであり、vbv_re_enc_last_iは、再エンコードDuration終了点直前の再エンコードしないIピクチャのVBV Buffer Occupancyであり、N_gopは、GOP内のピクチャ数、N_total_gopは、再エンコードDurationのピクチャ数から、再エンコードDuration終了点直前の再エンコードしないIピクチャとの間のBピクチャの数Nを除いた再エンコードするピクチャ数である。
図14を参照して、再エンコード区間が延長されない場合と延長された場合のエンコードについて説明する。
図14のAにおいて、ピクチャ211、ピクチャ212、ピクチャ213、および、ピクチャ214は、Iピクチャであり、発生符号量が多い。図14のAに示されるように、再エンコード区間が延長されなかった場合、すなわち、Editing GOP Durationに対して、再エンコードDurationが、上述した第2の実施の形態における場合と同様にして決定された場合、ピクチャ212のOccupancy216が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ213のOccupancy217が、編集前と同じであるように制御されて、再エンコードされるピクチャ219および220が、Bピクチャとしてエンコードされて、再エンコードされないPピクチャであるピクチャ221のOccupancy218が、編集前と同じであるように制御される。
ここで、ピクチャ212のOccupancy216とピクチャ213のOccupancy217とを基に、上述した式(1)を用いてOccupancy差分値が算出され、Occupancy差分値が負であると判断されて、再エンコード区間が延長されたり、区間215にエフェクトが施され、符号化難易度が上昇したために、再エンコード区間が延長された場合、Editing GOP Durationに対して、再エンコードDurationは、図14のBに示されるようにその前後に延長される。
このとき、ピクチャ211のOccupancy225が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ214のOccupancy234が、編集前と同じであるように制御されて、再エンコードされるピクチャ235および236が、Bピクチャとしてエンコードされて、再エンコードされないPピクチャであるピクチャ237のOccupancy238が、編集前と同じであるように制御される。
そして、Editing GOP Durationのピクチャ212のOccupancy226は、発生符号量の再配分により、図14のAにおける場合よりも増加する。また、ピクチャ212の次のIピクチャであるピクチャ223は再エンコードされ、そのOccupancy228は、通常のアルゴリズムによって算出される。
また、VBVの制約を満たすために、No Editing再エンコードDurationからEditing Durationに割り振り可能な符号量の最大値は制限される。図15を用いて、割り振り可能な符号量について説明する。
図15のAにおいて、ピクチャ251、ピクチャ252、ピクチャ253、および、ピクチャ254は、Iピクチャであり、発生符号量が多い。図15のAに示されるように、再エンコード区間が延長されなかった場合、すなわち、Editing GOP Durationに対して、再エンコードDurationが、上述した第2の実施の形態における場合と同様にして決定された場合、ピクチャ252のOccupancy255が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ253のOccupancy258が、編集前と同じであるように制御されて、再エンコードされるピクチャ261および262が、Bピクチャとしてエンコードされて、再エンコードされないPピクチャであるピクチャ263のOccupancy259が、編集前と同じであるように制御される。
このとき、Editing Durationより前のNo Editing再エンコードDurationから、Editing GOP Durationに割り振る発生符号量が最大になるのは、Editing GOP Durationの最初のピクチャであるピクチャ252のVBV Occupancy255がVBV Bufferの最大値と等しくなるときである。よって、Editing Durationより前の再エンコード区間から割り振り可能な発生符号量の最大値は、VBV Bufferの最大値と圧縮素材映像1におけるEditing GOP Durationの最初のピクチャのVBV Occupancy255との差分である。ただし、Editing GOP Duration以前のピクチャでオーバーフローが発生しないように、最大値にマージンを持たせる必要がある。よって、VBV Bufferの最大値から、圧縮素材映像1におけるEditing GOP Durationの最初のピクチャのVBV Occupancy255を減算し、その値から、更に、所定のマージンを減算した値を、最大割り振り値とするようにしてもよい。
同様に、Editing GOP Durationより後の再エンコードDurationから、Editing GOP Durationに割り振る発生符号量が最大になるのは、Editing GOP Durationの最後のピクチャ、すなわち、再エンコードDuration終了点直前の再エンコードしないIピクチャであるピクチャ253の直前のピクチャ256のデコード後のVBV Occupancy257が0になるときである。よって、Editing Durationより後のNo Editing再エンコードDurationから割り振り可能な発生符号量の最大値は、圧縮素材映像2におけるEditing Durationの最後のピクチャのVBV Occupancyから、このピクチャの発生符号量を引いた値、すなわち、図中Occupancy257で示される値である。ただし、Editing Duration以降のピクチャでアンダーフローが発生しないように、最大値にマージンを持たせる必要がある。よって、圧縮素材映像2におけるEditing Durationの最後のピクチャであるピクチャ256のデコード後のVBV Occupancyから、このピクチャの発生符号量を減算した値、すなわち、このピクチャのデコード後のVBV Occupancy257から、更に所定のマージンを減算した値を最大割り振り量とする。
そして、図15のBに示されるように、再エンコード区間が延長された場合、ピクチャ271のOccupancy251が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ254のOccupancy278が、編集前と同じであるように制御されて、再エンコードされるピクチャ281および282が、Bピクチャとしてエンコードされて、再エンコードされないPピクチャであるピクチャ283のOccupancy286が、編集前と同じであるように制御される。
そして、Editing GOP Durationのピクチャ252のOccupancy272は、発生符号量の再配分により、図15のAに示される最大割り振り量に対応して、図15のAにおける場合よりも増加されてもオーバーフローされないようになされている。また、ピクチャ252の次のIピクチャであるピクチャ253の直前のピクチャ256のOccupancy273は、図15のAに示される最大割り振り量に対応して、図15のAにおける場合よりも増加する。そして、ピクチャ252の次のIピクチャであるピクチャ253は再エンコードされ、そのOccupancy275が、通常のアルゴリズムで算出されても、再デコード後のOccupancy276は、アンダーフローしないようになされている。
また、CPU20は、エンコーダ27により再エンコードが行われるのと平行して、Editing GOP Durationに割り当てられる発生符号量と、再エンコード区間の延長量を決定する場合、CPU11、デコーダ22、または、エンコーダ27から、Editing GOP Durationの前のNo Editing再エンコードGOP Durationの符号化難易度を取得し、そして、エンコーダ27から、Editing GOP Durationの符号化難易度の情報を取得して、符号化難易度が上昇したか否かを判断し、その判断結果を基に、Editing GOP Durationの後ろのNo Editing再エンコードGOP Durationの長さと、Editing GOP Durationの後ろのNo Editing再エンコードGOP Durationから、Editing GOP Durationに割り当てる符号量を算出する。
ここで、エンコーダ27からCPU20に供給される符号化難易度の指標としては、図12を用いて説明したGC算出部193により算出されるGlobal Complexity Measure、イントラAC算出部191により算出されるイントラAC(IntraMADと称される場合もあるが、同義である)、または、ME残差算出部195により算出されるME残差などが用いられる。
そして、エンコーダ27において再エンコードされた映像データは、ストリームスプライサ25に供給される。ストリームスプライサ25は、CPU20の制御に基づいて、PCIブリッジ17から供給された、圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲の圧縮素材映像1および圧縮素材映像2と、エンコーダ27から供給されたエンコードされた映像データとを接続し、圧縮編集映像データを生成する。
具体的には、ストリームスプライサ25は、CPU20の制御に基づいて、PCIブリッジ17から供給された、図13に示される再エンコードしない部分の圧縮素材映像1のPピクチャ205とエンコーダ27から供給されたエンコードされた映像データのBピクチャ202とがディスプレイオーダで連続するように接続され、エンコーダ27から供給されたエンコードされた映像データのBピクチャ203と、PCIブリッジ17から供給された、圧縮素材映像2のIピクチャ206とがディスプレイオーダで連続するように接続されるように、ストリームをつなぎ合わせる。そして、ストリームスプライサ25は、再エンコード用の参照画像であるPピクチャ201と、Iピクチャ204とを破棄する。すなわち、ストリームスプライサ25は、コーディングオーダにおいて、再エンコードされた区間の最後のIピクチャまたはPピクチャに続く、n枚の再エンコードされたBピクチャの前に、再エンコードされていないIピクチャが入るように、ストリームをつなぎ合わせる。
そして、ストリームスプライサ25は、CPU20の制御に基づいて、作成した圧縮編集映像データをPCIブリッジ17に供給して、メモリ18に保存させるとともに、デコーダ24に供給してデコードさせ、編集結果確認用のモニタなどに出力させて表示させる。
このような処理により、第3の実施の形態においては、上述した第2の実施の形態における場合と同様の処理により編集時のピクチャタイプが制御されるとき、必要に応じて、再エンコード区間を延長し、符号割当てを変更することにより、編修点付近の画質の劣化を防ぐようにすることができる。
また、ここでも、デコード範囲は、再エンコード範囲に基づいて、再エンコード範囲とは個別に定められるものとしてもよい。すなわち、デコード範囲は、再エンコード範囲と同一の範囲であっても、再エンコード範囲を含むそれ以上の範囲であってもよい。
また、図5乃至図8を用いて説明した第1の実施の形態における場合と同様の処理により編集時のピクチャタイプが制御されるときにも、上述した場合と同様にして、第3の実施の形態における符号発生量の制御を適用することが可能である。以下、第3の実施の形態の処理を、第1の実施の形態における場合に適用させた処理において、上述した処理と異なる部分について主に説明するものとし、基本的に同様の処理が実行される部分の説明については、適宜、省略する。
第1の実施の形態における場合と同様の処理により編集時のピクチャタイプが制御されるときにも、VBV BufferのOccupancyが連続になるよう、再エンコードを行う部分と行わない部分の接続点付近のOccupancyを制御する必要がある。通常、Iピクチャの発生符号量が多いため、GOPの先頭ではOccupancyが小さくなり、後半では大きくなる。GOP単位で等しい符号量(1GOPのピクチャ数×bit_rate/frame_rate)が割り当てられた場合、それぞれのGOPの先頭のIピクチャのOccupancyは等しくなるので、GOP単位で等しい符号量が割り当てられない場合、再エンコードを行う区間のGOPの先頭と次のGOPの先頭のOccupancyを比較することにより、そのGOPで使用できる符号量が平均より多いか少ないかを判断することができる。すなわち、上述した場合と同様にして、再エンコード開始点のIピクチャと、再エンコード終了点の後のIピクチャとのVBV Occupancyを比較することにより、想定されている本来の符号量が発生されているか否かを判断することができる。
したがって、上述した式(1)を用いて、編集前の圧縮素材映像1の再エンコード開始点に対応するピクチャ、換言すれば、Editing GOP Durationの先頭のIピクチャに対応する編集前のピクチャのVBV Occupancyから、編集前の圧縮素材映像2の再エンコード終了点の直後の再エンコードしないIピクチャ、換言すれば、Editing GOP Durationの次のIピクチャに対応する編集前のピクチャのVBV Occupancyを引いた値である、Occupancy差分値を求めることで、Editing Durationで使用できる符号量が、bit rateから得られる平均値より少ないかどうかを、実際のエンコードを行う前に判断することができる。
したがって、CPU20は、Editing GOP Durationで使用できる符号量が平均値より少ない場合、同様にして、再エンコード区間をEditing GOP Durationの前後に延長させ、エンコーダ27を制御して、Editing GOP Durationに割り当てられる発生符号量を増加させる。
また、メモリ21にも、同様にして、予め、エフェクトの種類と符号化難易度の上昇率との関係を示すテーブルを予め保存しておくか、または、エフェクトの種類と対応する係数、および、その係数を用いて符号化難易度に対応する値を算出することができる計算式を予め保存しておくようにすることにより、CPU20は、メモリ21に記憶されたテーブルを参照したり、所定の計算式を用いて、エフェクトの種類に対応する符号化難易度を取得し、その符号化難易度を基に、再エンコード区間をEditing GOP Durationの前後に延長させ、延長されて設定された再エンコードDurationの範囲により求められるデコード範囲のデータをデコードさせて、接続させた後、エンコーダ27に供給させる。そして、CPU20は、エンコーダ27を制御して、No Editing再エンコードDuration に割り当てられる発生符号量を減少させ、Editing GOP Durationに割り当てられる発生符号量を増加させることができる。
図16を参照して、再エンコード区間が延長されない場合と延長された場合のエンコードについて説明する。
図16のAにおいて、ピクチャ301、ピクチャ302、ピクチャ303、および、ピクチャ304は、Iピクチャであり、発生符号量が多い。図16のAに示されるように、再エンコード区間が延長されなかった場合、すなわち、Editing GOP Durationに対して、再エンコードDurationが、上述した第1の実施の形態における場合と同様にして決定された場合、ピクチャ302のOccupancy305が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ303の直後にPピクチャであるピクチャ308が配置されるように制御され、ピクチャ308のOccupancy309が、編集前と同じであるように制御される。
ここで、ピクチャ302のOccupancy305とピクチャ303のOccupancy306とを基に、上述した式(1)を用いてOccupancy差分値が算出され、Occupancy差分値が負であると判断されて、再エンコード区間が延長されたり、区間310にエフェクトが施され、符号化難易度が上昇したために、再エンコード区間が延長された場合、Editing GOP Durationに対して、再エンコードDurationは、図16のBに示されるようにその前後に延長される。
このとき、ピクチャ301のOccupancy321が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ304の直後にPピクチャであるピクチャ327が配置されるように制御され、ピクチャ327のOccupancy328が、編集前の対応するPピクチャ311のOccupancy312(図16のA)と同じであるように制御される。
そして、Editing GOP Durationのピクチャ302のOccupancy322は、発生符号量の再配分により、図16のAにおける場合よりも増加する。また、ピクチャ302の次のIピクチャであるピクチャ303は再エンコードされ、そのOccupancy323と続くピクチャのピクチャタイプは、通常のアルゴリズムに従って決定される。
また、VBVの制約を満たすために、No Editing再エンコードDurationからEditing Durationに割り振り可能な符号量の最大値は制限される。図17を用いて、割り振り可能な符号量について説明する。
図17のAにおいて、ピクチャ341、ピクチャ342、ピクチャ343、および、ピクチャ344は、Iピクチャであり、発生符号量が多い。図17のAに示されるように、再エンコード区間が延長されなかった場合、すなわち、Editing GOP Durationに対して、再エンコードDurationが、上述した第1の実施の形態における場合と同様にして決定された場合、ピクチャ342のOccupancy345が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ343の直後にPピクチャ347が配置されるように制御され、Pピクチャ347のOccupancy348が、編集前と同じであるように制御される。
このとき、Editing Durationより前のNo Editing再エンコードDurationから、Editing GOP Durationに割り振る発生符号量が最大になるのは、Editing GOP Durationの最初のピクチャであるピクチャ342のVBV Occupancy345がVBV Bufferの最大値と等しくなるときである。よって、Editing Durationより前の再エンコード区間から割り振り可能な発生符号量の最大値は、VBV Bufferの最大値と圧縮素材映像1におけるEditing GOP Durationの最初のピクチャのVBV Occupancy345との差分である。ただし、Editing GOP Duration以前のピクチャでオーバーフローが発生しないように、最大値にマージンを持たせる必要がある。よって、VBV Bufferの最大値から、圧縮素材映像1におけるEditing GOP Durationの最初のピクチャのVBV Occupancy345を減算し、その値から、更に、所定のマージンを減算した値を、最大割り振り値とするようにしてもよい。
同様に、Editing GOP Durationより後の再エンコードDurationから、Editing GOP Durationに割り振る発生符号量が最大になるのは、Editing GOP Durationの最後のピクチャ、すなわち、再エンコードDuration終了点直前の再エンコードしないIピクチャが、再エンコード範囲が延長することによりエンコードされるピクチャ343の直前のピクチャ361(図中の円内に記載されている)のデコード後のVBV Occupancy362が0になるときである。よって、Editing Durationより後のNo Editing再エンコードDurationから割り振り可能な発生符号量の最大値は、圧縮素材映像2におけるEditing Durationの最後のピクチャのVBV Occupancyから、このピクチャの発生符号量を引いた値である。ただし、Editing Durationの次のIピクチャでアンダーフローが発生しないように、最大値にマージンを持たせる必要がある。よって、圧縮素材映像2におけるEditing Durationの最後のピクチャであるピクチャ361のデコード後のVBV Occupancy362から、このピクチャの発生符号量を減算した値、すなわち、このピクチャのデコード後のVBV Occupancy362から、更に所定のマージンを減算した値を最大割り振り量とする。
そして、図17のBに示されるように、再エンコード区間が延長された場合、ピクチャ341のOccupancy371が、編集前と同じであるように制御され、再エンコードされないIピクチャであるピクチャ344の直後にPピクチャ380が配置されるように制御され、Pピクチャ380のOccupancy381が、編集前の対応するピクチャであるPピクチャ349のOccupancy350(図7A)と同じであるように制御される。
そして、Editing GOP Durationのピクチャ342のOccupancy372は、発生符号量の再配分により、図17のAに示される最大割り振り量に対応して、図17のAにおける場合よりも増加されてもオーバーフローされないようになされている。また、ピクチャ342の次のIピクチャであるピクチャ343は再エンコードされ、そのOccupancy363と続くピクチャのピクチャタイプが、通常のアルゴリズムにより設定されても、再デコード後のOccupancy364は、アンダーフローしないようになされている。
すなわち、再エンコード区間が延長された図17のBにおける場合、Editing GOP Durationと再エンコード区間がほぼ等しい図17のAにおける場合と比較して、Editing GOP Durationの最後の部分のピクチャタイプが変更されている。すなわち、再エンコード区間が延長されることにより、Editing GOP Durationの最後の部分は再エンコードされる(再エンコード区間の最後ではなくなる)ので、その部分のピクチャタイプは通常のアルゴリズムにより決定されるので、編集前の圧縮素材と同一になる。よって、Editing GOP Durationの最後の部分に与えられる符号の割り振り量の最大値を考える場合、図15を用いて説明した第2の実施の形態に適用させた場合と同様の処理が実行される。
次に、図18のフローチャートを参照して、本発明を適用した編集装置1が実行する編集処理1について説明する。
ステップS1において、CPU11は、図示しない操作入力部から、編集開始を指令するユーザからの操作入力を受け、サウスブリッジ15を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、HDD16から、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータを読み出させ、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させて記憶させるとともに、編集点を示す情報と、編集開始を示すコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
ステップS2において、メモリ18は、圧縮符号化された2つの編集素材データを取得する。
ステップS3において、図19または図21を用いて後述するデコード範囲決定処理が実行される。
ステップS4において、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された2つの編集素材データから、決定されたデコード範囲のデータをデコードおよび再エンコードするために必要なデータを抽出させ、デコーダ22およびデコーダ23にそれぞれ供給させる。また、このとき、CPU20は、PCIブリッジ17を制御して、再エンコードされない部分の圧縮符号化された編集素材データを、ストリームスプライサ25に供給させる。PCIブリッジ17は、CPU20の制御に基づいて、メモリ18に記憶されている圧縮符号化された2つの編集素材データから、決定されたデコード範囲のデータをデコードおよび再エンコードするために必要なデータを抽出し、デコーダ22およびデコーダ23にそれぞれ供給するとともに、再エンコードされない部分の圧縮符号化された編集素材データを、ストリームスプライサ25に供給する。
また、このとき、CPU20は、必要に応じて、例えば、施されるエフェクトの種類など、再エンコードDurationに含まれるピクチャの符号化難易度に関する情報を取得することが可能である。
ステップS5において、CPU20は、デコーダ22およびデコーダ23を制御して、決定されたデコード範囲のデータをデコードさせる。デコーダ22およびデコーダ23は、CPU20の制御に基づいて、供給された圧縮符号化された編集素材データをデコードして、エフェクト/スイッチ26に供給する。
ステップS6において、CPU20は、エフェクト/スイッチ26を制御して、デコードされたデータを編集点で接続させて、必要に応じて、エフェクトをかけさせる。エフェクト/スイッチ26は、CPU20の制御に基づいて、供給された非圧縮の復号映像素材を編集点で接続して、必要に応じて、エフェクトをかけ、エンコーダ27に供給する。
ステップS7において、図20または図22を用いて後述する再エンコードおよび接続処理が実行され、ステップS7の処理の終了後、処理は終了される。
このような処理により、Long GOPのOpen GOP構造の圧縮映像データの編集点付近を部分的にデコードし、デコードされた非圧縮の映像信号を所定の編集点で接続した後、再エンコードを行い、デコードおよび再エンコードされていない部分の圧縮映像データと接続することにより、Long GOPのOpen GOP構造の圧縮映像データの編集を実現することができる。
次に、図19のフローチャートを参照して、エンコード処理前に予め再エンコード範囲の延長量と符号の割り振り量が決定される場合に図18のステップS3において実行される、デコード範囲決定処理1について説明する。
ステップS21において、CPU20は、図15または図17を用いて説明した方法で算出される、Editing Durationの開始点および終了点における符号量の割り振り量の最大値を取得する。
ステップS22において、CPU20は、CPU11から供給された情報を基に、再エンコードが行われる部分にエフェクトが施されるか否かを判断する。
ステップS22において、再エンコードが行われる部分にエフェクトが施されると判断された場合、ステップS23において、CPU20は、施されるエフェクトの種類を取得する。
ステップS22において、再エンコードが行われる部分にエフェクトが施されないと判断された場合、または、ステップS23の処理の終了後、ステップS24において、CPU20は、メモリ21に記録されているテーブル情報を参照し、エフェクトが施されるか否かと、施されるエフェクトの種類を基に、符号化難易度の上昇率を求める。
ステップS25において、CPU20は、所定の計算式などを用いて、符号化難易度の上昇分に対応する符号量の割り振り量を決定する。ここで、CPU20は、符号化難易度の上昇が大きいほど割り振り量が多くなるように、符号量の割り振り量を決定する。
ステップS26において、CPU20は、符号化難易度の上昇分に対応する符号量の割り振り量と、Occupancy差分値を比較する。
ステップS27において、CPU20は、符号化難易度の上昇分に対応する符号量の割り振り量は、Occupancy差分値よりも小さいかまたは等しい値に対応するか否かを判断する。
ステップS27において、符号化難易度の上昇分に対応する符号量の割り振り量は、Occupancy差分値よりも小さいかまたは等しい値に対応すると判断された場合、ステップS28において、CPU20は、符号割り振り量を0とし、再エンコードを行う範囲は、Editing Durationとほぼ同じ、最小の再エンコード範囲であるものとする。
ステップS27において、符号化難易度の上昇分に対応する符号量の割り振り量は、Occupancy差分値よりも大きい値に対応すると判断された場合、ステップS29において、CPU20は、符号化難易度の上昇分に対応する符号量の割り振り量からOccupancy差分値を引いた値を符号割り振り量とする。
ステップS30において、CPU20は、符号割り振り量が最大値の制約を満たすように、編集点の前後に割り当てられる符号量を決定する。ここで、編集点の前後に割り当てられる符号量は、符号割り振り量の最大値の制約を満たしつつ、できるだけ均等に割り当てるようにすると好適である。
ステップS31において、CPU20は、ステップS27において算出された符号割り振り量を基に、例えば、上述した式(4)および式(5)を用いて、または、エフェクトが施されない場合は上述した式(2)を用いて、再エンコード区間の増加量を算出する。すなわち、ステップS31において、算出された符号割り振り量を基に、再エンコードdurationが決定される。
ステップS28、または、ステップS31の処理の終了後、ステップS32において、CPU20は、再エンコードを行う範囲から、そのために必要なデコードを行う範囲を決定し、処理は、図18のステップS3に戻り、ステップS4に進む。
このような処理により、エンコード処理前に予め再エンコード範囲の延長量と符号の割り振り量が決定されて、決定された再エンコード範囲の延長量、換言すれば、決定された再エンコードdurationを基に、デコード範囲が決定される。
次に、図20のフローチャートを参照して、図19を用いて説明したデコード範囲決定処理1が実行された場合に、図18のステップS7において実行される再エンコードおよび接続処理1について説明する。
ステップS51において、エンコーダ27の目標符号量算出部194は、CPU20から供給される制御信号を基に、再エンコード範囲の変更により必要に応じて割り振られる符号割り振り量が0であるか否かを判断する。
ステップS51において、符号割り振り量が0ではないと判断された場合、ステップS52において、目標符号量算出部194は、供給された符号量割り振り量の情報に基づいて、発生符号量の目標値を算出し、発生符号量算出部192に供給する。発生符号量算出部192は供給された目標発生符号量を基に、量子化部175の発生符号量を制御し、エンコーダ27の各部は、図12を用いて説明したように、供給された非圧縮映像データのエンコードを行って、ストリームスプライサ25に供給する。
ステップS51において、符号割り振り量が0であると判断された場合、ステップS53において、目標符号量算出部194は、通常のアルゴリズムに基づいて、目標発生符号量を算出し、エンコーダ27の各部は、図12を用いて説明したように、供給された非圧縮映像データのエンコードを行って、ストリームスプライサ25に供給する。
ステップS52またはステップS53の処理の終了後、ステップS54において、ストリームスプライサ25は、再エンコードされた部分と、再エンコードされていない部分の圧縮映像データを接続し、処理は、図18のステップS7に戻り、処理が終了される。
このような処理により、決定された再エンコードdurationにおいて、決定された符号割り振り量に基づいて発生符号量が制御されて、エンコードが実行され、再エンコードされた部分と、再エンコードされていない部分の圧縮映像データが接続される。
次に、図21のフローチャートを参照して、エンコード処理を実行しつつ、再エンコード範囲の延長量と符号の割り振り量を算出して補正する場合に図18のステップS3において実行される、デコード範囲決定処理2について説明する。
ステップS71において、CPU20は、例えば、予めユーザにより行われた設定などにより、最小の再エンコード部分に対して時間的に前の部分、すなわち、Editing GOP Durationに対して時間的に前の部分の再エンコード範囲の延長量および符号の割り振り量は、予め定められた値を用いるものとなされているか否かを判断する。
ステップS71において、予め定められた値を用いるものとなされていると判断された場合、ステップS72において、CPU20は、メモリ21から、最小の再エンコード部分に対して時間的に前の部分の再エンコード範囲の延長量および符号の割り振り量として予め定められた値を読み出し、再エンコード範囲を設定し、処理は、図18のステップS3に戻り、ステップS4に進む。
ステップS71において、予め定められた値を用いるものとなされていないと判断された場合、ステップS73乃至ステップS75において、図19のステップS22乃至ステップS24と同等の処理が実行される。
すなわち、CPU11から供給された情報を基に、再エンコードが行われる部分にエフェクトが施されるか否かが判断され、再エンコードが行われる部分にエフェクトが施されると判断された場合、施されるエフェクトの種類が取得され、エフェクトが施されるか否かと、施されるエフェクトの種類を基に、メモリ21に記録されているテーブル情報が参照されて、符号化難易度の上昇率が求められる。
ステップS76において、CPU20は、符号化難易度の上昇分に対応する、最小の再エンコード部分に対して時間的に前の部分の符号量の割り振り量を決定する。
ステップS77において、CPU20は、ステップS75において算出された符号の割り振り量を基に、例えば、上述した式(5)を用いて、最小の再エンコード部分に対して時間的に前の部分の再エンコード区間の増加量を算出する。すなわち、ステップS76において、算出された符号割り振り量を基に、再エンコードdurationが仮に決定される。
ステップS78において、CPU20は、最小の再エンコード部分に対して時間的に前の部分の再エンコードを行う範囲から、そのために必要なデコードを行う範囲を仮に決定し、処理は、図18のステップS3に戻り、ステップS4に進む。
このような処理により、エンコード処理前に、最小の再エンコード部分に対して時間的に前の部分、すなわち、Editing GOP Durationに対して時間的に前の部分の再エンコード範囲の延長量と符号の割り振り量が仮に決定されて、決定された再エンコード範囲の前方向の延長量、換言すれば、決定された前方向の再エンコードdurationを基に、仮のデコード範囲が決定される。
次に、図22のフローチャートを参照して、図21を用いて説明したデコード範囲決定処理2が実行された場合に、図18のステップS7において実行される再エンコードおよび接続処理2について説明する。
ステップS91において、CPU20は、コントロールバス19を介して、CPU11またはデコーダ22から、最小の再エンコード部分に対して時間的に前の部分の再エンコードの延長部分の符号化難易度を示す情報を取得する。
ステップS92において、CPU20は、エンコーダ27を制御して、仮に決定されたデコード範囲においてデコードされた再エンコードDurationのピクチャのうち、Editing GOP Durationより時間的に前の部分の先頭のピクチャから、エンコードを開始させる。エンコーダ27は、CPU20の制御に基づいて、エフェクト/スイッチ26から供給された非圧縮の映像データのエンコードを開始する。
ステップS93において、CPU20は、エンコーダ27において、最小の再エンコード部分のエンコードが開始されたか否か、すなわち、Editing GOP Durationのエンコードが開始されたか否かを判断する。ステップS93において、最小の再エンコード部分のエンコードが開始されていないと判断された場合、最小の再エンコード部分のエンコードが開始されたと判断されるまで、ステップS93の処理が繰り返される。
ステップS93において、最小の再エンコード部分のエンコードが開始されたと判断された場合、ステップS94において、CPU20は、エンコーダ27から供給される、エンコードが実行されたピクチャの符号化難易度を示す情報を取得する。
ステップS95において、CPU20は、エンコーダ27から供給されるエンコードが実行されたピクチャの符号化難易度を示す情報を基に、符号化難易度情報の上昇率を算出する。
ステップS96において、CPU20は、ステップS95における符号化難易度情報の上昇率の算出結果を基に、最小の再エンコード部分に対して時間的に後ろの部分の再エンコード範囲の延長量および符号の割り振り量を算出する。
ステップS97において、CPU20は、ステップS96における算出結果を基に、PCIブリッジ17を制御して、再エンコードされる範囲に基づいて、デコーダ23に供給されるデータとストリームスプライサ25に供給されるデータとを決定させるとともに、エンコーダ27を制御して、エンコード処理における発生符号量を制御させる。エンコーダ27は、CPU20の制御に基づいて、供給される非圧縮映像データのエンコード処理における発生符号量を制御する。
ステップS98において、CPU20は、エンコーダ27によるエンコード処理が終了したか否かを判断する。ステップS98において、エンコード処理が終了されていないと判断された場合、処理は、ステップS94に戻り、それ以降の処理が繰り返される。すなわち、エンコーダ27による再エンコードDurationのエンコード処理が終了されるまで、再エンコード範囲の延長量および符号の割り振り量の算出処理が繰り返されて、再エンコード範囲の延長量および符号の割り振り量が更新される。
ステップS98において、エンコード処理が終了されたと判断された場合、エンコードされて生成された圧縮符号化データは、ストリームスプライサ25に供給されているので、ステップS99において、ストリームスプライサ25は、再エンコードされた部分と、再エンコードされていない部分の圧縮映像データを接続し、処理は、図18のステップS7に戻り、処理が終了される。
このような処理により、エンコード処理実行中に、更新された再エンコードdurationにおいて、更新された符号割り振り量に基づいて発生符号量が制御されて、エンコードが実行され、再エンコードされた部分と、再エンコードされていない部分の圧縮映像データが接続される。
なお、上述した一連のフローチャートを用いて説明した処理においても、再エンコード範囲の圧縮素材映像1および圧縮素材映像2がデコードされるものとして説明したが、デコード範囲は、再エンコード範囲に基づいて、再エンコード範囲とは個別に定められるものとしてもよい。すなわち、デコード範囲は、再エンコード範囲と同一の範囲であっても、再エンコード範囲を含むそれ以上の範囲であってもよい。
また、発生符号量が減少されてしまうNO Editing再エンコードDuration範囲内のピクチャにおいては、画質が低下してしまう恐れがあるが、発生符号量の減少量が少量であれば、画質低下を視覚的に無視できる程度に抑制することができる。そこで、本発明においては、NO Editing再エンコードDuration範囲内のピクチャの画質低下を視覚的に無視できる程度に、NO Editing再エンコードDuration範囲を広い範囲として、その範囲に割り当てられるべき発生符号量を、符号化難易度が高くなったEditing Durationのピクチャの画質維持に使用するようにしたので、編集後の画像の画質は全体的に劣化が抑制されたものとなる。
以上説明したように、本発明を適用して発生符号量を制御することにより、再エンコードを必要とするLong GOP方式の圧縮映像データ編集において、ビットレートを上げることができない状況でも、例えば、エフェクトなどが施されることにより、符号化難易度の上昇した編集点付近の画質を維持することが可能になる。
ところで、上述したように、編集点近傍を部分的にデコードした後、非圧縮の映像信号を接続して、接続された非圧縮の映像を再エンコードし、デコードおよび再エンコードされていない部分の圧縮映像データと結合することにより、編集を行った場合、再エンコード部分と再エンコードしない部分のVBV Buffer Occupancyの連続性を保つ必要がある。
図23を用いて、VBV Buffer Occupancyの連続性について説明する。
編集後の圧縮映像データにおいて、VBVバッファが破綻しないようにするためには、再エンコード開始部と終了部のOccupancyを、前後に結合する再エンコードしない圧縮映像データの結合部のOccupancyに一致させる必要がある。すなわち、編集後の圧縮映像の図中Eで示される再エンコード部分の最初のIピクチャの図中Cで示されるOccupancyは、編集前の圧縮素材映像1の図中Aで示されるOccupancyと一致するように、編集後の圧縮映像の図中Eで示される再エンコード部分の次のIピクチャの図中Dで示されるOccupancyは、編集前の圧縮素材映像2の図中Bで示されるOccupancyと一致するように制御されなければならない。
編集前後のOccupancyは、Closed GOPの場合であっても、Closed GOPでないOpen GOPである場合にも、同様に、一致させる必要がある。VBV Buffer Occupancyの連続性が保たれていない場合、デコード時にデコーダのバッファが破綻し、例えば、ピクチャスキップやフリーズなどの現象が発生する原因となり得る。
PS(Program Stream)やTS(Transport Stream)においては、SCR(System Clock Reference)またはPCR(Program Clock Reference)と、PTS(Presentation Time Stamp)やDTS(Decoding Time Stamp)から、各ピクチャのVBV BufferのOccupancyを求めることができる。しかしながら、ES(Elementary Stream)においては、VBV BufferのOccupancyを容易に求めることはできない。
ESにおいては、Picture HeaderのVBV Delayの値から、それぞれのピクチャのVBV BufferのOccupancyを求めることができる。しかしながら、Picture HeaderのVBV Delayのパラメータには、正確な値が入っているとは限らないため、VBV Delayのパラメータから算出されたOccupancyの値に信憑性がある(正確である)とはいえない。また、VBR(Variable Bit Rate)でエンコードされたESにおいては、VBV Delayの値が固定値となるので、VBV BufferのOccupancyを求めるために利用することができない。
このように、ESにおいては、VBV BufferのOccupancyを容易に求めることはできないので、ESを編集するにあたり、VBV Bufferの連続性を保つように正しく再エンコードできない場合、バッファがオーバフローまたはアンダーフローしてしまい、デコードされた映像に、例えば、ピクチャスキップやフリーズなどの現象が発生してしまう恐れがある。タイムスタンプが挿入されていないESを編集するにあたっては、VBV Buffer Occupancyの連続性を保つことは困難であった。
そこで、ESを編集するにあたり、VBV Buffer Occupancyの連続性を保つことができるようにする必要がある。
図24は本発明を適用した編集装置401のハードウェア構成を示すブロック図である。
すなわち、図24の編集装置401は、エンコーダ27に代わってエンコーダ427が設けられ、エフェクト/スイッチ26に外部から非圧縮の映像信号を供給する入力端子428が新たに設けられている以外は、基本的に、図4を用いて説明した編集装置1と同様の構成を有するものである。
すなわち、エフェクト/スイッチ26は、CPU20の制御に基づいて、デコーダ22またはデコーダ23、もしくは、入力端子28から供給される、非圧縮の映像信号出力を切り替える、すなわち、供給された非圧縮の映像信号を所定のフレームで結合するとともに、必要に応じて、所定の範囲にエフェクトを施して、エンコーダ427に供給したり、入力端子28から供給される非圧縮の映像信号をエンコーダ427に供給する。
また、エンコーダ427は、CPU20の制御に基づいて、供給された非圧縮の映像信号をエンコードするとともに、必要に応じて、エンコード時に、例えば、各ピクチャのOccupancyの情報などの、所定の情報を取得して、圧縮符号化された圧縮映像データと、必要に応じて取得された情報とを、ストリームスプライサ25に出力することができる。
例えば、入力端子28から非圧縮の映像データが入力された場合、入力された非圧縮の映像データは、エフェクト/スイッチ26に供給され、エンコーダ427に供給される。エンコーダ427は、供給された非圧縮の映像データをエンコードするとともに、VBV Buffer Occupancyの情報を取得して、エンコードされた圧縮映像データとともに、ストリームスプライサ25に供給する。ストリームスプライサ25は、VBV Buffer Occupancyの情報とエンコードされた圧縮映像データとを、PCIブリッジ17を介して、メモリ18に供給して保存させる。
CPU11は、ノースブリッジ12、PCIバス14、およびPCIブリッジ17を介して、メモリ18から、エンコーダ427によりエンコードされた圧縮映像データと取得されたVBV Buffer Occupancyの情報とを読み出し、サウスブリッジ15を介して、HDD16に供給して、ハードディスクに記憶させる。このとき、VBV Buffer Occupancyの情報は、対応する圧縮映像データに多重化して記憶されるようにしても良いし、圧縮映像データとは異なるファイルデータとして記憶されるようにしても良い。
VBV Buffer Occupancyの情報をES(Elementary Stream)に埋め込む場合、例えば、図25に示されるように、SMPTE328で規定されているMPEG_ES_editing_information451のユーザデータ領域に埋め込む(記述する)ようにすることができる。
図26および図27を用いて、MPEG_ES_editing_information451にVBV Buffer Occupancyの情報を埋め込む場合のシンタクスについて説明する。
図26に示されるように、ユーザデータには、8ビットのUser_IDが記載され、続いて、VBV_dataが記載される。図27に示されるように、VBV_dataには、8ビットのData_IDと、8ビットのVBV Buffer Occupancyが記載される。エンコーダ427において取得されたVBV Buffer Occupancyの情報は、VBV_dataのVBV Buffer Occupancyに記載することができる。
また、ファイル交換のためのフォーマットとして、例えば、MXF(Material eXchange Format)が提案され、現在標準化されつつある。MXFは、ファイル交換に加えて、ストリーミングを考慮したフォーマットであり、例えば、HD、MPEG、DVなどといった、あらゆるフォーマットを内包する素材交換ファイルフォーマットとして標準化が進んでいる。
ESがMXFにラップされる場合のデータ構造について、図28を用いて説明する。
図28に示されるように、MXF Header Data, IdentiferおよびPicture Coding Typeの情報が含まれているMXF Header461に続く、SequenceHeader, Extensions and User DataおよびPicture Headerが含まれているElementary Stream Header462のうちのExtensions and User Dataに、図25乃至図27を用いて説明した場合と同様のMPEG_ES_editing_information451が記載されている。MXF Header461に含まれているIdentiferには、映像信号をエンコードしたエンコーダの機種またはエンコーダの製造元の会社名などを特定できる情報を記録するようにしても良い。
VBV Buffer Occupancyが埋め込まれた圧縮映像データをラップしているMXFデータの特定の位置に、エンコーダの機種またはエンコーダの製造元の会社名などを特定できる情報を記載することにより、このMXFを取得した各種装置(各種装置には、本発明を適用した編集装置1が含まれることは言うまでもない)において、MXFにラップされた圧縮映像データにVBV Buffer Occupancyの情報が埋め込まれているか否かを容易に判断することが可能となる。
また、このMXFを取得した各種装置(各種装置には、本発明を適用した編集装置1が含まれることは言うまでもない)においては、VBV Buffer Occupancyが必要なフレームの先頭位置を特定し、その先頭位置を基に、VBV Buffer Occupancyが埋め込まれている位置を特定することにより、VBV Buffer Occupancyが記載されている位置を容易に検出することができるので、MXFから、VBV Buffer Occupancyを容易に抽出することができるようになされている。
フレームの先頭位置は、MXF headerにあるため簡単に求めることができる。そして、その先頭位置からVBV Buffer Occupancyが埋め込まれている場所は、図28に示されるXとYのビットサイズを用いて、X+Yを算出することにより検出することができる。図28において図中Xで示されているサイズは、MXF Header461からElementary Stream Header462のうちのpicture層のuser dataまでのサイズと等しく、図28において図中Yで示されているサイズは、User Dataの先頭から、MPEG_ES_editing_information451のVBV Buffer Ocuupancyが記載されているData_typeまでのサイズと等しい。
Sequence層とPicture層のヘッダサイズは、エンコード時にピクチャタイプにより決められるものであり、基本的に、それらのヘッダのサイズは変更されない。例えば、メモリ21に、identifierおよびpicture coding typeに対応するヘッダサイズが記載されたテーブルデータを予め記憶させる。MXF Header461には、図28に示されるように、identifierおよびpicture coding typeが埋め込まれているので、後述する編集処理2において、CPU20は、identifierに記載された情報を基に、このMXFデータをエンコードしたエンコーダを特定し、テーブルデータを参照することにより、picture coding typeに対応するSequence層とPicture層のヘッダサイズを容易に検出することができる。
また、user dataにおいてVBV Buffer Occupancyが埋め込まれている位置も、エンコード時に決められるものであり、この位置も、基本的に変更されないものである。例えば、メモリ21に、identifierに対応するuser dataにおけるVBV Buffer Occupancyの記録位置が記載されたテーブルデータを予め記憶させておく。後述する編集処理2において、CPU20は、identifierに記載された情報を基に、このMXFデータをエンコードしたエンコーダを特定し、テーブルデータを参照することにより、user dataにおいてVBV Buffer Occupancyが埋め込まれている位置を容易に検出することができる。
このように、図28に示されるようなMXFデータ形式でESをラップすることにより、このMXFデータを取得した編集装置1または他の同様の装置において、MXFデータにおいてidentifierに記載された映像信号をエンコードしたエンコーダの機種またはエンコーダの製造元の会社名などを特定できる情報を基に、容易にVBV Buffer Occupancy情報が記載されている位置を検出し、この情報を抽出することが可能となるので、圧縮データを解析することなく、迅速にVBV Buffer Occupancyの情報を抽出することが可能となり、編集処理2を容易に、かつ、迅速に行うことができるようになる。
なお、ESがMXFでラップされていない場合、多重化されたVBV Buffer Occupancy情報を取得するには、ESを解析しなければならない。しかしながら、フレームごとにMPEG_ES_editing_information451が存在し、その中にVBV Buffer Occupancyが記載されているので、ESの先頭から解析を実行し、VBV Buffer Occupancyを検索する必要はなく、VBV Buffer Occupancyの情報を求める必要があるフレームのみを検索するようにすれば良いので、VBV Buffer Occupancyを求めるためのデータの解析処理は複雑ではなく、また、多くの時間をかけなくても十分実行可能な処理である。
すなわち、HDD16には、Long GOPのOpen GOP方式で圧縮された圧縮素材映像1および圧縮素材映像2のデータが、VBV Buffer Occupancyの情報と対応付けられて、または、VBV Buffer Occupancyの情報を多重化されて記憶されている。圧縮素材映像1および圧縮素材映像2のデータは、上述したように、MXFでラップされていても良い。
CPU11は、サウスブリッジ15を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、HDD16から、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータと、それぞれに対応するVBV Buffer Occupancyの情報、または、VBV Buffer Occupancyの情報が多重化された圧縮素材映像1のデータおよび圧縮素材映像2のデータを読み出させ、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させて記憶させるとともに、編集点を示す情報と、編集開始を示すコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
CPU20は、CPU11から供給された編集点を示す情報を基に、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータのうち、再エンコードを行う範囲を決定する。そのとき、CPU20は、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータに多重化されている、または、別ファイルとして存在するVBV Buffer Occupancyの情報を取得し、再エンコードを行う範囲の先頭のIピクチャおよび再エンコードを行う範囲に接続される先頭のIピクチャのVBV Buffer Occupancyを検出し、エンコーダ427に供給して、再エンコードを行う範囲の先頭のIピクチャおよび再エンコードを行う範囲に接続される先頭のIピクチャVBV Buffer Occupancyが編集前後で一致するように、エンコード処理を制御する。
そして、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1のデータのうち、再エンコードを行う範囲のピクチャと、参照する必要があるピクチャに対応する圧縮素材映像1のデータをデコーダ22に供給させるとともに、圧縮素材映像2のデータのうち、再エンコードを行う範囲のピクチャと、参照する必要があるピクチャに対応する圧縮素材映像2のデータをデコーダ23に供給させる。
また、このとき、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲のピクチャを、ストリームスプライサ25に供給させる。
CPU20は、デコーダ22およびデコーダ23を制御して、供給された圧縮符号化されたデータをデコードさせる。
デコーダ22およびデコーダ23は、CPU20の制御に基づいて、供給されたデータをデコードし、復号されて得られた素材映像1および素材映像2の信号をエフェクト/スイッチ26に供給する。エフェクト/スイッチ26は、CPU20の制御に基づいて、所定のカット(Cut)編集点(スプライス点)で、非圧縮の復号素材映像1と復号素材映像2の信号を接続して、必要に応じて、エフェクトを施し、再エンコード用の非圧縮の編集映像信号を生成し、再エンコードに必要な再エンコード用参照画像とともに、エンコーダ427に供給する。
エンコーダ427は、CPU20の制御に基づいて、エフェクト/スイッチ26から供給された、再エンコード用の非圧縮の編集映像信号をエンコードする。
このとき、エンコーダ427は、CPU20から供給された再エンコードを行う範囲の先頭のIピクチャおよび再エンコードを行う範囲に接続される先頭のIピクチャVBV Buffer Occupancyを基に、再エンコードを行う範囲の先頭のIピクチャおよび再エンコードを行う範囲に接続される先頭のIピクチャVBV Buffer Occupancyが編集前後で一致するように、エンコード処理を実行する。そして、エンコーダ427は、再エンコード時に得られるVBV Buffer Occupancyの情報を取得する。
そして、エンコーダ427において再エンコードされた映像データおよび再エンコード時のVBV Buffer Occupancyの情報は、ストリームスプライサ25に供給される。ストリームスプライサ25は、CPU20の制御に基づいて、PCIブリッジ17から供給された、圧縮素材映像1および圧縮素材映像2のデータのうちの再エンコードを行わない範囲の圧縮素材映像1および圧縮素材映像2と、エンコーダ427から供給されたエンコードされた映像データとを接続し、圧縮編集映像データを生成する。
そして、ストリームスプライサ25は、CPU20の制御に基づいて、作成した圧縮編集映像データおよび再エンコード時のVBV Buffer Occupancyの情報をPCIブリッジ17に供給して、メモリ18に保存させるとともに、作成された圧縮編集映像データを、デコーダ24に供給させてデコードさせ、編集結果確認用のモニタなどに出力させて表示させたり、デコードされて生成されたベースバンド信号を、他の装置に出力させる。デコーダ24が、独立した装置として構成されている場合、デコーダ24に対応する装置は、再エンコードされた編集後の圧縮映像データの供給を受けてこれをデコードし、デコードされて生成されたベースバンド信号を出力することができるようになされる。
図示しない操作入力部から、編集されて生成された圧縮編集映像データの保存が指令された場合、CPU11は、PCIブリッジ17を制御して、メモリ18に保存されている圧縮編集映像データおよび再エンコード時のVBV Buffer Occupancyの情報を読み出させ、PCIバス14およびノースブリッジ12を介して、サウスブリッジ15に供給させるとともに、サウスブリッジ15を制御して、供給された圧縮編集映像データおよび再エンコード時のVBV Buffer Occupancyの情報をHDD16に供給させて保存させる。このときも、VBV Buffer Occupancyの情報は、対応する圧縮編集映像データに多重化するようにしても良いし、異なるファイルのデータとして、対応付けて保存されるようにしても良い。
このようにすることにより、圧縮符号化データには、ピクチャごとにVBV Buffer Occupancyの情報が対応付けられて保存されるとともに、VBV Buffer Occupancyを次のエンコード処理において利用するようにすることにより、VBV Buffer Occupancyの連続性を保つことが可能になる。
また、VBV Buffer Occupancyの情報は対応する圧縮編集映像データに多重化するようにしても良いし、異なるファイルのデータとして、対応付けて保存されるようにしても良いものとして説明した。たしかに、圧縮符号化データにピクチャごとにVBV Buffer Occupancyの情報を対応付けて保存し、VBV Buffer Occupancyを次のエンコード処理において利用することにより、VBV Buffer Occupancyの連続性を保つためには、VBV Buffer Occupancyの情報は、対応する圧縮編集映像データに多重化するようにしても良いし、異なるファイルのデータとして、対応付けて保存されるようにしても良い。
しかしながら、VBV Buffer Occupancyの情報を、異なるファイルのデータとして、対応付けるようにした場合、例えば、記録フォーマットが変更されたり、データ伝送フォーマットが変更された場合に、異なるファイルのデータとして付随されるべきVBV Buffer Occupancyの情報が失われてしまう恐れがある。
通常、非圧縮のデータを圧縮符号化する処理を実行するエンコーダは、virtual buffer verifierというバッファモデルを用いて、デコーダのスタンダードバッファが破綻されることがないように、ピクチャごとの発生符号量を調整してエンコードを行うようになされている。すなわち、このvbv_bufferの遷移を表す指標が、vbv buffer occupancyであり、エンコーダは、occupancyを計算しながら、レートコントロールを実行する。
上述したように、従来においては、バッファ管理を必要とするデータストリームの編集は、例えば、TSやPSなどのタイムスタンプが付随しているストリームを対象として実行されてきたが、タイムスタンプなどの時間情報が付随されていないESにおいては、TSやPSなどのタイムスタンプが付随しているストリームと同様のバッファの管理の手法を用いることはできない。
一般的に、エンコーダは、非圧縮のデータを圧縮符号化する処理を実行した場合、vbv_occupancyから、vbv_delayを計算して、ESのシンタクスに、vbv buffer occupancyに関する情報として記載するものとなされているが、上述したように、例えば、VBRの場合には、vbv_delay=0xffffと記載するものとして運用されているなど、vbv_delayの値を信用できない(vbv_delayの値が正確ではない)場合がある。
本来、ストリームに関する情報は、ストリームに多重化することにより、ストリームの供給を受けた装置によって必ず再現可能なようになされているのが好ましい。すなわち、ストリームに関する情報であるVBV Buffer Occupancyの情報がESのストリームに間違えなく多重化されていれば、記録フォーマットが変更されたり、データ伝送フォーマットが変更された場合であっても、記録フォーマットまたは伝送フォーマットにかかわらず、ESのストリームの供給を受けた装置によって、VBV Buffer Occupancyの情報を再現することが可能となるので、VBV Buffer Occupancyの情報は、ESのストリームに多重化されているほうが好適である。
次に、図29のフローチャートを参照して、データ生成処理について説明する。
ステップS111において、エンコーダ427は、エフェクト/スイッチ26を介して、入力端子28から入力された非圧縮の映像データを取得する。
ステップS112において、エンコーダ427は、非圧縮の映像データをエンコードするとともに、VBV Buffer Occupancyの情報を取得して、エンコードされた圧縮映像データとともに、ストリームスプライサ25に供給する。ストリームスプライサ25は、VBV Buffer Occupancyの情報とエンコードされた圧縮映像データとをPCIブリッジ17を介して、メモリ18に供給して保存させる。
ステップS113において、CPU11は、ノースブリッジ12、PCIバス14、およびPCIブリッジ17を介して、メモリ18から、エンコーダ427によりエンコードされた圧縮映像データと取得されたVBV Buffer Occupancyの情報とを読み出して取得する。
ステップS114において、CPU11は、読み出したVBV Buffer Occupancyを、図25乃至図28を用いて説明したように、圧縮映像データのESのMPEG_ES_editing_information451に格納する。
ステップS115において、CPU11は、図示しない操作入力部から供給されるユーザの操作入力に基づいて、VBV Buffer Occupancyが格納されたMPEG_ES_editing_information451を有するESを、MXFにラップするか否かを判断する。
ステップS115において、ESをMXFにラップすると判断された場合、ステップS116において、CPU11は、エンコーダ427の機種、または、編集装置1の開発会社名などを特定可能なIDを、図28に示したようにヘッダ(MXF Header461)のIdentiferに記載する。
ステップS115において、ESをMXFにラップしないと判断された場合、または、ステップS6の処理の終了後、データ生成処理は終了される。
データ生成処理により生成された、VBV Buffer Occupancyの情報が、ESのストリームに多重化されたデータは、編集用の素材データとして、HDD16のハードディスクに記録されたり、外部に出力される。
このような処理により、VBV Buffer Occupancyの情報が、ESのストリームに多重化されるので、記録フォーマットが変更されたり、データ伝送フォーマットが変更された場合であっても、記録フォーマットまたは伝送フォーマットにかかわらず、ESのストリームの供給を受けた装置によって、VBV Buffer Occupancyの情報を再現することが可能となる。
次に、図30のフローチャートを参照して、編集処理2について説明する。
ステップS121において、CPU11は、図示しない操作入力部から、編集開始を指令するユーザからの操作入力を受け、サウスブリッジ15を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、HDD16から、圧縮符号化された圧縮素材映像1のデータおよび圧縮素材映像2のデータを読み出させ、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させて記憶させるとともに、編集点を示す情報と、編集開始を示すコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
ステップS122において、メモリ18は、圧縮符号化された2つの編集素材データを取得する。
ステップS123において、CPU20は、CPU11から供給された、編集点を示す情報と、編集開始を示すコマンドを基に、圧縮符号化された編集素材データのデコード範囲を決定する。デコード範囲を決定する処理は、例えば、図18のステップS3において実行される、図19を用いて説明したデコード範囲決定処理1または図21を用いて説明したデコード範囲決定処理21であってもよい。PCIブリッジ27は、CPU20の制御に基づいて、メモリ18に記憶されている圧縮符号化された2つの編集素材データから、決定されたデコード範囲のデータをデコードおよび再エンコードするために必要なデータを抽出し、デコーダ22およびデコーダ23にそれぞれ供給するとともに、再エンコードされない部分の圧縮符号化された編集素材データを、ストリームスプライサ25に供給する。
ステップS124において、図31を用いて後述するOccupancy抽出処理が実行される。
ステップS125において、CPU20は、デコーダ22およびデコーダ23を制御して、決定されたデコード範囲のデータをデコードさせる。デコーダ22およびデコーダ23は、CPU20の制御に基づいて、供給された圧縮符号化された編集素材データをデコードして、エフェクト/スイッチ26に供給する。
ステップS126において、CPU20は、エフェクト/スイッチ26を制御して、デコードされたデータを編集点で接続させて、必要に応じて、エフェクトをかけさせる。エフェクト/スイッチ26は、CPU20の制御に基づいて、供給された非圧縮の復号映像素材を編集点で接続して、必要に応じて、エフェクトをかけ、エンコーダ427に供給する。
ステップS127において、CPU20は、エンコーダ427を制御して、編集点で接続された非圧縮の復号映像素材を、抽出されたVBV Buffer Occupancyの情報を用いて再エンコードさせる。エンコーダ427は、CPU20から供給されたVBV Buffer Occupancyの情報を利用して、図23を用いて説明したように、再エンコード区間前後のVBV Buffer Occupancyを連続させるために、編集前後で再エンコード区間の先頭のIピクチャおよび再エンコード区間の次のIピクチャのVBV Buffer Occupancyが一致するように、編集点で接続された非圧縮の復号映像素材の再エンコードを行うとともに、再エンコード時に得られるVBV Buffer Occupancyの情報を取得し、再エンコードされた圧縮符号化された映像データとVBV Buffer Occupancyの情報を、ストリームスプライサ25に供給する。
ステップS128において、ストリームスプライサ25は、供給された再エンコードされた圧縮符号化された映像データと再エンコードされない部分の圧縮符号化された編集素材データを接続し、編集された圧縮符号化データを生成して、VBV Buffer Occupancyの情報とともに、PCIブリッジ17を介してメモリ18に供給して記憶させ、処理は終了される。
なお、ステップS123において、デコード範囲を決定する処理として、図19を用いて説明したデコード範囲決定処理1が実行された場合、ステップS127およびステップS128においては、図20を用いて説明した再エンコードおよび接続処理1と基本的に同様の処理が実行され、ステップS123において、デコード範囲を決定する処理として、図21を用いて説明したデコード範囲決定処理2が実行された場合、ステップS127およびステップS128においては、図22を用いて説明した再エンコードおよび接続処理2と基本的に同様の処理が実行される。
このような処理により、Long GOPのOpen GOP構造の圧縮映像データの編集点付近を部分的にデコードし、デコードされた非圧縮の映像信号を所定の編集点で接続した後、VBV Buffer Occupancyの情報を利用して、再エンコードを行う範囲の先頭のIピクチャおよび再エンコードを行う範囲に接続される先頭のIピクチャVBV Buffer Occupancyが編集前後で一致するように、再エンコードを行い、デコードおよび再エンコードされていない部分の圧縮映像データと接続することにより、VBVバッファの破綻を防止して、Long GOPのOpen GOP構造の圧縮映像データの編集を実現することができる。
次に、図31のフローチャートを参照して、図30のステップS124において実行されるOccupancy抽出処理について説明する。
ステップS141において、CPU20は、メモリ18に保存されている編集に用いられるデータは、MXFに準拠したデータであるか否かを判断する。ステップS141において、編集に用いられるデータは、MXFに準拠したデータではないと判断された場合、処理は、後述するステップS149に進む。
ステップS141において、編集に用いられるデータは、MXFに準拠したデータであると判断された場合、ステップS142において、CPU20は、図28を用いて説明したMXF Header461のIdentifierに記載されている情報を基に、編集に用いられるデータは、図29を用いて説明したデータ生成処理によりデータを生成することができる特定のエンコーダによってエンコードされた圧縮符号化データであるか否かを判断する。
ステップS142において、特定のエンコーダによってエンコードされた圧縮符号化データであると判断された場合、CPU20は、ステップS143において、圧縮映像素材1のデータを検索し、ステップS144において、再エンコードの開始位置のピクチャであるか否かを判断する。ステップS144において、再エンコードの開始位置のピクチャであると判断されなかった場合、処理は、ステップS143に戻り、再エンコードの開始位置のピクチャが検索されるまで、処理が繰り返される。
ステップS144において、再エンコードの開始位置のピクチャであると判断された場合、ステップS145において、図32を用いて後述するOccupancy記録位置検出処理が実行される。
CPU20は、ステップS146において、圧縮映像素材2のデータを検索し、ステップS147において、再エンコードの終了位置のピクチャであるか否かを判断する。ステップS147において、再エンコードの終了位置のピクチャであると判断されなかった場合、処理は、ステップS146に戻り、再エンコードの終了位置のピクチャが検索されるまで、処理が繰り返される。
ステップS147において、再エンコードの終了位置のピクチャであると判断された場合、ステップS148において、図32を用いて後述するOccupancy記録位置検出処理が実行される。
ステップS141において、編集に用いられるデータは、MXFに準拠したデータではないと判断された場合、ステップS149において、CPU20は、エレメンタリストリームを解析する。
ステップS150において、CPU20は、再エンコードの開始位置と終了位置に対応するピクチャを抽出し、図25を用いて説明したMPEG_ES_editing_information451の所定の位置を検索し、Occupancyデータが記載されているか否かを判断する。
ステップS150において、Occupancyデータが記載されていると判断された場合、ステップS151において、CPU20は、Occupancyデータを取得する。
ステップS142において、特定のエンコーダによってエンコードされた圧縮符号化データではないと判断された場合、ステップS148の処理の終了後、ステップS150において、Occupancyデータが記載されていなかったと判断された場合、または、ステップS151の処理の終了後、ステップS152において、CPU20は、Occupancyは取得できたか否かを判断する。
ステップS152において、Occupancyが取得できたと判断された場合、ステップS153において、CPU20は、取得されたOccupancyのデータを、コントロールバス19を介して、エンコーダ427に出力し、処理は、図30のステップS124に戻り、ステップS125に進む。
ステップS152において、Occupancyが取得できなかったと判断された場合、ステップS154において、CPU20は、必要に応じて、ユーザにOccupancyのデータが取得できなかったことを通知し、処理は、図30のステップS124に戻り、ステップS125に進む。
このような処理により、ESの状態に応じて、Occupancyがストリームから抽出されて、エンコーダ427に供給されるので、エンコーダ427は、編集前の正しいOccupancyの情報を基に、VBVバッファを破綻させないようにエンコードを行うようにすることができる。
次に、図32のフローチャートを参照して、図31のステップS145およびステップS148において実行される、Occupancy記録位置検出処理について説明する。
ステップS171において、CPU20は、MXF Header461から、pictura_coding_typeとIdentifierの情報を取得する。
ステップS172において、CPU20は、取得したpictura_coding_typeとIdentifierの情報を用いて、メモリ21に保存されているテーブルデータを参照することなどにより、図28を用いて説明したように、MXF Header461からpicture層のuser dataまでのサイズXと、User Dataの先頭からMPEG_ES_editing_informationのVBV Buffer OcuupancyがあるData_typeまでのサイズYを算出する。
ステップS173において、CPU20は、ステップS172における算出結果XおよびYを基に、X+Ybyteのデータを読み飛ばす。
ステップS174において、CPU20は、X+Ybyteのデータを読み飛はした次の2byteはVBV_data_IDであるか否かを判断する。
ステップS174において、次の2byteはVBV_data_IDであると判断された場合、ステップS175において、CPU20は、次の4byteをOccupancyのデータとして取得し、処理は、図31のステップS145またはステップS148に戻り、ステップS146またはステップS149に進む。
ステップS174において、次の2byteはVBV_data_IDではないと判断された場合、ステップS176において、CPU20は、Occupancyのデータは、MXFデータには含まれていないと認識し、処理は、図31のステップS145またはステップS148に戻り、ステップS146またはステップS149に進む。
このような処理により、図28を用いて説明したMXFデータのMXF Header461から、pictura_coding_typeとIdentifierの情報を取得し、それらの情報を基に、データの全体を解析することなく、Occupancyの情報を取得することが可能となる。したがって、再エンコード処理時にOccupancyの情報を用いるにあたって、処理速度が速くなる。
このように、本発明を適用することにより、VBV Buffer Occupancyの情報を利用して、再エンコードを行う範囲の先頭のIピクチャおよび再エンコードを行う範囲に接続される先頭のIピクチャVBV Buffer Occupancyが編集前後で一致するように、再エンコードを行い、デコードおよび再エンコードされていない部分の圧縮映像データと接続することができる。
したがって、本発明を適用した編集装置1においては、タイムスタンプを用いないESとして蓄積された素材映像を、VBV Bufferの制約を満たして編集することができる。これにより、VBVバッファの破綻を防止して、Long GOPのOpen GOP構造の圧縮映像データの編集を実現することができるので、ピクチャのスキップやフリーズなどが発生しない圧縮編集映像を作成することが可能になり、放送番組制作用途のシステムなどで、圧縮効率の高いLONG GOPの圧縮映像の編集を利用することが可能になる。
なお、図29乃至図32のフローチャートを用いて説明した処理においても、再エンコード範囲の圧縮素材映像1および圧縮素材映像2がデコードされるものとして説明したが、デコード範囲は、再エンコード範囲に基づいて、再エンコード範囲とは個別に定められるものとしてもよい。すなわち、デコード範囲は、再エンコード範囲と同一の範囲であっても、再エンコード範囲を含むそれ以上の範囲であってもよい。
ところで、また、MPEG2システムで規定されている多重ストリームにおいては、トランスポートストリーム(Transport Stream)であっても、プログラムストリーム(Program Stream)であっても、それぞれの一つ下のLayerは、PES(Packetaized Elementary Stream)であり、PESパケットヘッダには、オーディオ・ビデオの提示時刻を与えるPTS(プレゼンテーションタイムスタンプ)と復号開始時刻を与えるDTS(デコーディングタイムスタンプ)のほか、パケット単位のスクランブリングを行う制御信号やエラー検出のためのCRCなどの情報が含まれている。
エンコーダは、DTSおよびPTS、ならびに、現buffer残有量を基に、ストリーム内にvbv_delay情報がある無しにかかわらず、バッファ占有量の制御が可能である。しかしながら、時間情報を持たないVBR(Variable Bit Rate:可変ビットレート)方式で圧縮されたES(Elementary Stream)を扱う場合、vbv_delayの値は最大値で固定されており、バッファの占有量を知る手段がない。そのため、エンコーダは、エンコードしようとするフレームの情報だけでバッファ占有量を判断することができない。
このような、時間指定のないストリームをエンコードする場合、VBRにおいては、バッファ占有量は上限を超えない(バッファ占有量は所定時間VBV_MAXに張り付いたようになる)ので、バッファは破綻しないが、アンダーフローを起こした場合には、バッファが破綻し、出力される画像に影響が発生する。
このような、時間指定のないストリームをエンコードする場合、シーケンスの開始点において、バッファの上限から再生を始めるなど、再エンコード区間の発生符合量を制限することにより、バッファアンダフローを防止することが一般的である。
しかしながら、編集点近傍において発生符号量を制限するようにした場合、再エンコードによって発生されるストリームの最終ピクチャ近傍で発生符号量を十分に割り当てることが出来なくなるなど、場合によっては著しく画像品質を落とすことがある。
次に、時間情報を有さないVBRのESを編集する場合に、再エンコード部分と再エンコードしない部分のVBV Buffer Occupancyの連続性を保つための処理の例として、図4または図24のCPU11が、再エンコード区間と再エンコードされない区間との接続点におけるバッファ占有量を決定する方法について説明する。
すなわち、CPU11は、HDD16に記録されているデータのうちの2つの映像素材である編集対象圧縮映像データ1(以下、素材1とも称する)および編集対象圧縮映像データ2(以下、素材2とも称する)を読み出して、編集点の近傍のみを部分的にデコードさせ、接続した後に再エンコードして編集させる場合、再エンコード時に仮想バッファ占有量の規格を満たして、再エンコード部分と再エンコードしない部分のバッファ占有量の連続性を維持しつつ、結合点前後のバッファ占有量に制限をできるだけ少なくして発生符号量を十分に割り当てることができるような再エンコード範囲の最初のバッファ占有量の下限値と最後のバッファ占有量の上限値を決定し、CPU20が実行する編集処理を制御するためのコマンドなどとともに出力することができる。再エンコード範囲の最初と最後のバッファ占有量の設定値の決定の詳細については後述するが、このようにすることにより、再エンコード範囲に発生符号量をより多く与えることが可能であるので、編集点近傍の画像品質の劣化を可能な限り防止することができる。
HDD16には、VBR(variable bit rate)で圧縮された素材1および素材2のデータが記憶されている。
CPU11は、HDD16に保持されている圧縮符号化された映像素材のうち、図示しない操作入力部から供給されたユーザの操作入力を基に、編集に用いられる素材として選択された圧縮符号化された素材1のデータおよび素材2のデータの発生符号量に関する情報を取得し、この情報を基に、再エンコード範囲の最初と最後のバッファ占有量を決定する。
図33は、CPU11が編集点付近の再エンコードにおける発生符号量を決定し、再エンコード区間を決定するために有する機能を説明するための機能ブロックである。
発生符号量検出部551は、HDD16に保存されている、編集される素材1および素材2の発生符号量を検出し、バッファ占有量解析部552に供給する。発生符号量の検出方法は、例えば、HDD16に保存されている、編集される素材1および素材2のデータを解析することにより、符号量(すなわち、ピクチャヘッダ間の符号量)を検出するようにしてもよいし、編集される素材1および素材2のデータをデコーダ22乃至24で一旦デコードさせて、バッファの蓄積量を検出するようにしてもよい。
バッファ占有量解析部552は、発生符号量検出部551から供給された、素材1および素材2の発生符号量の情報を基に、再エンコードを行わない範囲と再エンコード区間との接続点付近におけるバッファ占有量のモデル状態を解析する。
VBR方式で圧縮された画像においては、図34に示されるように、バッファ占有量は上限を超えない(バッファ占有量は所定時間VBV_MAXに張り付いたようになる)ので、バッファは破綻しないが、アンダーフローを起こした場合には、バッファが破綻し、出力される画像に影響が発生する。
CBR(Constant Bit Rate)方式で符号化されたストリームを取り扱う場合においては、bit_rate_value(Sequence_header),bit_rate_extension(Sequence_extension)、および、vbv_delay(picture_header)の値を基にして、対象となるピクチャのバッファ内の位置を算出することによってバッファ占有量を算出することができるが、VBRの場合、この算出の基となる、vbv_delayの値が、最大値(0xFFFF)となっているため、正しいバッファ占有量を計算することができない。
このように再生時間情報が記載されていないエレメンタリストリームを扱うとき、エンコードされたストリームの先頭からデコードすることができれば、エンコーダが意図したバッファ占有量の軌跡を再現することが出来るが、常識的に考えれば、デコードは、ストリームの先頭からばかり行われるわけではない。したがって、エンコーダは、アンダーフローによる画像欠落が発生しないようなバッファ占有量の仮想的な軌跡を算出しなければならない。
そこで、バッファ占有量解析部552は、発生符号量検出部551により検出された、再エンコードを行わない範囲と再エンコード区間との接続点付近におけるバッファ占有量を解析するための第1のモデル状態として、図35に示されるように、再エンコード区間と接続される、素材2の最初のピクチャにおけるバッファ占有量がVBV_MAXとなる場合を、再エンコード区間の終了点付近に十分な符号量を割り当てることができないWorst caseとして、再エンコード区間の最後の素材2と再エンコードされない素材2との接続点付近のバッファ占有量の仮想的な軌跡を算出する。
また、バッファ占有量解析部552は、再エンコードを行わない範囲と再エンコード区間との接続点付近におけるバッファ占有量を解析するための第2のモデル状態として、図36に示されるように、再エンコード区間と素材1との接続点におけるバッファ占有量が0となる場合を、再エンコード区間の開始点付近に十分な符号量を割り当てることができないWorst caseとして、再エンコードされない素材1と再エンコード区間の素材1との接続点付近のバッファ占有量の仮想的な軌跡を算出する。
そして、バッファ占有量解析部552は、算出した第1のモデルと第2のモデルのバッファ占有量の仮想的な軌跡を、バッファ占有量決定部553に供給する。
なお、バッファ占有量解析部552における解析範囲が長ければ長いほど、よりよい制御ができる可能性が向上し、その一方で、処理時間がかかってしまう。解析範囲は、例えば、再生時間で1乃至2秒間程度に対応する範囲や、素材となる圧縮符号化データがMPEGのLONG GOP方式で符号化されているものである場合、1乃至2GOP程度が適当であるが、経験的または実験的に適宜設定可能な値とすることができる。
エンコーダは、VBRであっても、VBVバッファの規定を守るようにバッファ管理を行いながらエンコードを行っているので、再エンコード区間に続く、再エンコードしない区間の素材2のいずれかのピクチャにおいてバッファ占有量が上限にあたれば、それ以降のバッファ占有量は下限を下回ることはないといえる。したがって、図35に示されるWorst caseのように、素材2の再エンコード区間と接続される最初のフレームのバッファ占有量が上限にあたるように再エンコード区間におけるバッファ制御を行えば、規格違反をせずに編集処理を行うことが可能となる。
しかしながら、このようなWorst caseにおいては、再エンコード区間の最後のバッファ占有量が、上限VBV_MAXから「最高ビットレート×1frame時間」だけ低い値からVBV_MAXまでの間のいずれかの値となるように制御を行わなければならない。このため、再エンコード区間の符号配分の制限が非常に厳しいものとなり、画質が劣化してしまう恐れが生じる。
そこで、バッファ占有量決定部553は、素材2の再エンコード区間と接続される最初のピクチャがVBV_MAXとなるWorst caseにおいて、図35のαおよびβに示されるように、バッファ占有量がVBV_MAXに張り付いている状態が存在するか否かを探索する。図35のαおよびβに示されるように、バッファ占有量がVBV_MAXに張り付いている状態が存在する場合、αおよびβに示される区間だけ、バッファ占有量の仮想的な軌跡を下方に修正し、再エンコード区間の最後のバッファ占有量の値を低くしつつ、再エンコードしない区間の素材2のいずれかのピクチャにおいてバッファ占有量が上限となっている状態を求める。ただし、バッファ占有量決定部553は、このとき、アンダーフローが発生しない範囲でバッファ占有量の仮想的な軌跡を下方に修正する。
具体的には、図35において、「最高ビットレート×αで示される区間」だけ、バッファ占有量の仮想的な軌跡が下方に修正された場合、アンダーフローが発生しなければ、再エンコード区間の最後のバッファ占有量の値は、矢印581に示される領域よりも広い矢印582に示される領域の範囲内で制御することができる。また、更に、「最高ビットレート×βで示される区間」だけ、バッファ占有量の仮想的な軌跡が下方に修正された場合、アンダーフローが発生しなければ、再エンコード区間の最後のバッファ占有量の値は、矢印582に示される領域よりも更に広い矢印583に示される領域の範囲内で制御することができる。
このようにすることにより、再エンコード区間の終了点におけるバッファ占有量の下限値をWorst caseよりも減少させる(少ない値に設定可能にする)ことができるため、再エンコード区間の最後のフレームに配分可能な符号量の上限値を増加させることができる。これにより、再エンコード区間におけるバッファ占有量の制御の自由度が増し、再エンコード区間における符号配分のコントロールが容易になるので、再エンコード区間の画質の劣化を防ぐようにすることが可能となる。
また、図36に示されるように、再エンコード区間と素材1との接続点におけるバッファ占有量が0となるWorst caseにおいて、再エンコード区間の最初のフレームに、「最高ビットレート×1frame時間」の符号量以下しか割り当てることができないため、画質が劣化してしまう恐れが生じる。
素材1は、VBVバッファの規定を守るようにバッファ管理が行われている圧縮画像である。そこで、Worst caseを基準とした素材1の解析範囲内のバッファ占有量の仮想的な軌跡において、バッファ占有量がアンダーフローしているピクチャが存在する場合、そのアンダーフローの分だけ、バッファ占有量の仮想的な軌跡を上方に修正しても、再エンコード区間においてはVBVバッファの規定を守った制御を行うことが可能となる。すなわち、バッファ占有量決定部553は、Worst caseを基準とした素材1の解析範囲内のバッファ占有量の仮想的な軌跡において、バッファ占有量がアンダーフローしているピクチャが存在する場合、そのアンダーフローの分だけ、バッファ占有量の仮想的な軌跡を上方に修正して、再エンコード範囲の最初のバッファ占有量を決定する。これにより、再エンコード区間の開始点におけるバッファ占有量の上限値を増加させる(大きな値に設定可能にする)ことができ、最初のフレームに配分可能な符号量の自由度を増加させることができるので、画質の劣化を防止することが可能となる。
具体的には、図36において、素材1の解析範囲内のバッファ占有量で最も大きくアンダーフローしている矢印601で示されるバッファ占有量の分だけ、矢印602で示されるようにバッファ占有量の仮想的な軌跡を上方に修正した場合、再エンコード範囲の最初のバッファ占有量は、矢印603で示される「最高ビットレート×1frame時間」の符号量以下の範囲内から、矢印603で示される「最高ビットレート×1frame時間」の符号量+矢印602に対応する、矢印604で示される範囲内の発生符号量を割り当てることが可能になるので、画質の劣化を防止することが可能となる。
コマンドおよび制御情報生成部554は、バッファ占有量決定部553により決定された再エンコード区間における先頭と最後のバッファ占有量の値を取得し、これらの情報と、ユーザにより指定された編集点の情報と、編集開始コマンドを生成する。
次に、図37のフローチャートを参照して、本発明を適用した編集装置1が実行する編集処理3について説明する。
ステップS201において、CPU11は、図示しない操作入力部から、編集開始を指令するユーザからの操作入力を受ける。
ステップS202において、CPU11は、図示しない操作入力部から供給されたユーザの操作入力を基に、サウスブリッジ15を制御して、HDD16から、圧縮符号化された素材1のデータおよび素材2のデータをコピーし、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させて記憶させるとともに、編集点、デコード区間(または、再エンコード区間)を示す情報と、編集開始を示すコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。メモリ18は、圧縮符号化された2つの編集素材データを取得する。
ステップS203において、CPU20は、CPU11から供給された、編集点を示す情報と、編集開始を示すコマンドを基に、圧縮符号化された編集素材データのデコード範囲を決定する。デコード範囲を決定する処理は、例えば、図18のステップS3において実行される、図19を用いて説明したデコード範囲決定処理1または図21を用いて説明したデコード範囲決定処理21であってもよい。また、CPU20は、決定したデコード範囲をCPU11に供給する。
ステップS204において、図38を用いて後述する、バッファ占有量決定処理が実行される。CPU11は、再エンコード区間の開始点および終了点におけるバッファ占有量を示す情報を、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
ステップS205において、CPU20は、PCIブリッジ17を制御して、メモリ18に記憶されている圧縮符号化された2つの編集素材データから、デコードされる範囲のデータと、必要に応じて、この範囲のデータをデコードおよび再エンコードするために必要なデータを抽出させ、デコーダ22およびデコーダ23にそれぞれ供給させる。
また、このとき、CPU20は、PCIブリッジ17を制御して、再エンコードされない部分の圧縮符号化された編集素材データを、ストリームスプライサ25に供給させる。PCIブリッジ17は、CPU20の制御に基づいて、メモリ18に記憶されている圧縮符号化された2つの編集素材データから、決定されたデコード範囲のデータと、必要に応じて、この範囲のデータをデコードおよび再エンコードするために必要なデータを抽出し、デコーダ22およびデコーダ23にそれぞれ供給するとともに、再エンコードされない部分の圧縮符号化された編集素材データを、ストリームスプライサ25に供給する。
また、このとき、CPU20は、必要に応じて、例えば、再エンコード範囲の画像に施されるエフェクトの種類や、再エンコードに含まれるピクチャの符号化難易度に関する情報を取得することが可能である。
ステップS206において、CPU20は、デコーダ22およびデコーダ23を制御して、決定されたデコード範囲のデータをデコードさせる。デコーダ22およびデコーダ23は、CPU20の制御に基づいて、供給された圧縮符号化された編集素材データをデコードして、エフェクト/スイッチ26に供給する。
ステップS207において、CPU20は、エフェクト/スイッチ26を制御して、デコードされたデータを編集点で接続させて、必要に応じて、エフェクトをかけさせる。エフェクト/スイッチ26は、CPU20の制御に基づいて、供給された非圧縮の復号映像素材を編集点で接続して、必要に応じて、エフェクトをかけ、エンコーダ27に供給する。
ステップS208において、CPU20は、エンコーダ27に再エンコード区間の開始点および終了点におけるバッファ占有量を示す情報を供給するとともに、エンコーダ27を制御して、デコードされて編集点で接続された画像データを再エンコードさせる。エンコーダ27は、CPU20の制御に基づいて、再エンコード区間の開始点および終了点におけるバッファ占有量を示す情報に基づいて、VBVバッファの規定を満たすようにして、デコードされて編集点で接続された画像データのうち、再エンコード区間の画像データの再エンコードを行い、ストリームスプライサ25に供給する。
ステップS209において、ストリームスプライサ25は、再エンコードされた部分と、再エンコードされていない部分の圧縮映像データを接続し、処理が終了する。
このような処理により、2つの映像素材(圧縮映像データ)の編集点付近を部分的にデコードし、デコードされた非圧縮の映像信号を所定の編集点で接続した後、再エンコードを行い、デコードおよび再エンコードされていない部分の圧縮映像データと接続することにより、圧縮映像データの編集を実現することができる。
なお、ステップS202において、デコード範囲を決定する処理として、図19を用いて説明したデコード範囲決定処理1が実行された場合、ステップS208およびステップS209においては、図20を用いて説明した再エンコードおよび接続処理1と基本的に同様の処理が実行され、ステップS202において、デコード範囲を決定する処理として、図21を用いて説明したデコード範囲決定処理2が実行された場合、ステップS208およびステップS209においては、図22を用いて説明した再エンコードおよび接続処理2と基本的に同様の処理が実行される。
また、このとき、エンコーダ27は、設定された再エンコード区間の開始点および終了点におけるバッファ占有量を示す情報に基づいて、VBVバッファの規定を満たすようにして、再エンコードするので、従来における場合よりも発生符号量の割り当ての自由度が増し、画質の劣化を防ぐことができる。
次に、図38のフローチャートを参照して、図37のステップS204において実行される、バッファ占有量決定処理について説明する。
ステップS241において、発生符号量検出部551は、ステップS203において決定された再エンコード区間に基づいて、再エンコード区間と再エンコードされない区間の接続点近傍の所定の範囲の素材1および素材2の発生符号量を検出し、バッファ占有量解析部552に供給する。
ステップS242において、バッファ占有量解析部552は、図35を用いて説明した様に、素材2において、再エンコード区間の境界の次のピクチャのバッファ占有量が上限となるWorst caseにおいて、所定の範囲のバッファ占有量を解析し、Worst caseにおける仮想的なバッファ占有量の軌跡を求めて、バッファ占有量決定部553に供給する。
ステップS243において、バッファ占有量決定部553は、解析された、Worst caseにおける仮想的なバッファ占有量の軌跡において、VBV_MAXを超えている部分があるか否かを判断する。
ステップS243において、VBV_MAXを超えている部分があると判断された場合、ステップS244において、バッファ占有量決定部553は、VBV_MAXを超えている部分の時間(例えば、図35におけるα、β)を基に、バッファアンダフローを起こさない条件を満たすように、再エンコード区間の最後のバッファ占有量を決定し、処理は、ステップS246に進む。
ステップS243において、VBV_MAXを超えている部分がないと判断された場合、ステップS245において、バッファ占有量決定部553は、Worst caseにおける仮想的なバッファ占有量の軌跡を元に、再エンコード区間の最後のバッファ占有量を決定する。
ステップS244またはステップS245の処理の終了後、ステップS246において、バッファ占有量解析部552は、図36を用いて説明した様に、素材1において、再エンコード区間の境界のバッファ占有量が下限となるWorst caseにおいて、所定の範囲のバッファ占有量を解析し、Worst caseにおける仮想的なバッファ占有量の軌跡を求めて、バッファ占有量決定部553に供給する。
ステップS247において、バッファ占有量決定部553は、解析された、Worst caseにおける仮想的なバッファ占有量の軌跡において、アンダーフローが発生しているか否かを判断する。
ステップS247において、アンダーフローが発生していると判断された場合、ステップS248において、バッファ占有量決定部553は、図36を用いて説明した様に、バッファアンダフロー分、仮想的な軌跡を上方に修正し、再エンコード区間の最初のバッファ占有量を決定し、処理は、ステップS250に進む。
ステップS247において、アンダーフローが発生していないと判断された場合、ステップS249において、バッファ占有量決定部553は、Worst caseにおける仮想的なバッファ占有量の軌跡を元に、再エンコード区間の最初のバッファ占有量を決定する。
ステップS248またはステップ2471の処理の終了後、ステップS250において、コマンドおよび制御情報生成部554は、再エンコード区間の開始点および終了点におけるバッファ占有量を示す情報とを生成して、CPU20に出力し、処理は、図37のステップS204に戻り、ステップS205に進む。
このような処理により、可変ビットレート方式で圧縮された画像の編集を行う場合に、素材のデータを全て解析することなく、再エンコード区間のバッファ制御を容易にし、画質を向上させることができるような、再エンコード区間および再エンコード区間の開始点および終了点におけるバッファ占有量を決定することができる。
以上説明した処理によって、可変ビットレート方式で圧縮された画像の編集が、編集点近傍の一部分だけのデコードおよび再エンコードで可能になる。
また、可変ビットレート方式で圧縮された画像を編集する際に、再エンコード区間と再エンコードされない区間とのつなぎの点の近傍の仮想バッファのバッファ占有量の遷移状態を調べ、再エンコード区間のピクチャに割り当てられる符号量を増やすことができるようにしたので、制御が容易になり、画質の劣化を防止して、高画質な編集画像を得ることができるようになる。
なお、図37および図38のフローチャートを用いて説明した処理においても、デコード範囲は、再エンコード範囲に基づいて、再エンコード範囲とは個別に定められるものとしてもよい。すなわち、デコード範囲は、再エンコード範囲と同一の範囲であっても、再エンコード範囲を含むそれ以上の範囲であってもよい。
以上のように、第1の圧縮映像データと第2の圧縮映像データとを編集点で接続して編集する処理を制御することができ、特に、時間情報を有さないVBRの圧縮映像データにおいて、デコードされて前記編集点で接続された前記第1の圧縮映像データとおよび前記第2の圧縮映像データの再エンコード範囲の開始点と終了点におけるバッファ占有量を、再エンコード範囲に割り当てられる発生符号量の自由度が増すように設定することができる。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。この場合、例えば、図4を用いて説明した編集装置1、図24を用いて説明した編集装置401は、図39に示されるようなパーソナルコンピュータ701により構成される。
図39において、CPU(Central Processing Unit)711は、ROM(Read Only Memory)712に記憶されているプログラム、または記憶部718からRAM(Random Access Memory)713にロードされたプログラムにしたがって、各種の処理を実行する。RAM713にはまた、CPU711が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU711、ROM712、およびRAM713は、バス714を介して相互に接続されている。このバス714にはまた、入出力インタフェース715も接続されている。
入出力インタフェース715には、キーボード、マウスなどよりなる入力部716、ディスプレイやスピーカなどよりなる出力部717、ハードディスクなどより構成される記憶部718、モデム、ターミナルアダプタなどより構成される通信部719が接続されている。通信部719は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース715にはまた、必要に応じてドライブ720が接続され、磁気ディスク731、光ディスク732、光磁気ディスク733、もしくは、半導体メモリ734などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部718にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図39に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク731(フロッピディスクを含む)、光ディスク732(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク733(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ734などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM712や、記憶部718に含まれるハードディスクなどで構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、上述の実施の形態においては、編集装置1または編集装置401が、それぞれ、デコーダとエンコーダを有しているものとして説明したが、デコーダおよびエンコーダが、それぞれ、独立した装置として構成されている場合においても、本発明は適用可能である。例えば、図40に示されるように、ストリームデータを復号してベースバンド信号に変換する復号装置771、ベースバンド信号を符号化してストリームデータに変換する符号化装置772が、それぞれ独立した装置として構成されていても良い。
このとき、復号装置771は、映像素材である圧縮符号化データを復号し、符号化装置772に供給するのみならず、本発明を適用することにより符号化装置772により部分的に符号化された後、編集されて生成された圧縮符号化データの供給を受け、復号処理を行い、ベースバンド信号に変換することができる。ベースバンド信号に変換された編集後のストリームは、例えば、所定の表示装置に供給されて表示されたり、他の装置に出力されて、必要な処理が施される。
さらに、上述の実施の形態においては、デコーダ22乃至24が、供給された圧縮符号化データを完全にデコードせず、対応するエンコーダ27が、非完全に復号されたデータの対応する部分を部分的にエンコードする場合においても、本発明は適用可能である。
例えば、デコーダ22乃至24が、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していなかった場合、エンコーダ27は、量子化および可変長符号化処理を行うが、DCT変換処理は行わない。このような部分的な符号化(中途段階からの符号化)を行うエンコーダにおいても、本発明を適用することができるのは言うまでもない。
さらに、上述の実施の形態においては、デコーダ22乃至24が完全に復号したベースバンド信号を、エンコーダ27が中途段階まで符号化する場合(例えば、DCT変換および量子化を行うが可変長符号化処理を行わないなど)や、デコーダ22乃至24が完全に復号していない(例えば、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していない)ため、中途段階まで符号化されているデータに対して、エンコーダ27が更に中途段階まで符号化する場合など(例えば、量子化を行うが可変長符号化処理を行わないなど)においても、本発明は適用可能である。
更に、図40に示される復号装置771が、供給されたストリームデータを完全に復号せず、対応する符号化装置772が、非完全に復号されたデータの対応する部分を部分的に符号化する場合においても、本発明は適用可能である。
例えば、復号装置771が、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していなかった場合、符号化装置772は、量子化および可変長符号化処理を行うが、DCT変換処理は行わない。このような部分的な復号処理(中途段階までの復号)を行う復号装置771のデコード処理、および、符号化(中途段階からの符号化)を行う符号化装置772のエンコード処理において、本発明を適用することができるのは言うまでもない。
更に、復号装置771が完全に復号したベースバンド信号を、符号化装置772が中途段階まで符号化する場合(例えば、DCT変換および量子化を行うが可変長符号化処理を行わないなど)や、復号装置771が完全に復号していない(例えば、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していない)ため、中途段階まで符号化されているデータに対して、符号化装置772が更に中途段階まで符号化する場合など(例えば、量子化を行うが可変長符号化処理を行わないなど)においても、本発明は適用可能である。
更に、このような部分的な復号を行う(復号処理の工程のうちの一部を実行する)符号化装置451と部分的な符号化を行う(符号化処理の工程のうちの一部を実行する)符号化装置772で構成されたトランスコーダ781においても、本発明は適用可能である。このようなトランスコーダ781は、例えば、スプライシングなどの編集を行う編集装置782、すなわち、上述した編集装置1または編集装置401のストリームスプライサ25やエフェクト/スイッチ26が実行可能な機能を有する編集装置が利用される場合などに用いられる。
さらに、上述の実施の形態においては、CPU11およびCPU20がそれぞれ別の形態で構成されているが、これに限らず、編集装置1または編集装置401全体を制御する1つのCPUとして構成する形態も考えられる。同様に、上述の実施の形態においては、メモリ13およびメモリ21がそれぞれ別の形態で構成されているが、これに限らず、編集装置1または編集装置401において1つのメモリとして構成する形態も考えられる。
さらに、上述の実施の形態においては、HDD16、デコーダ22乃至24、ストリームスプライサ25、エフェクト/スイッチ26、および、エンコーダ27を、それぞれ、ブリッジおよびバスを介して接続し、編集装置として一体化されている場合について述べたが、本発明はこれに限らず、例えば、これらの構成要素のうちの一部が、外部から有線または無線で接続されるようにしても良いし、これらの構成要素は、この他、種々の接続形態で相互に接続されるようにしてもよい。
さらに、上述の実施の形態においては、圧縮された編集用の素材がHDDに記憶されている場合について述べたが、本発明はこれに限らず、例えば、光ディスク、光磁気ディスク、半導体メモリ、磁気ディスク等の種々の記録媒体に記録された編集用の素材を用いて編集処理を行う場合にも適用することができる。
さらに、上述の実施の形態においては、デコーダ22乃至24、ストリームスプライサ25、エフェクト/スイッチ26、および、エンコーダ27は、同一の拡張カード(例えば、PCIカード、PCI−Expressカード)に搭載する形態に限らず、例えばPCI−Expressなどの技術によりカード間の転送速度が高い場合には、それぞれ別の拡張カードに搭載してもよい。
また、本発明は、MPEG方式による情報処理装置の他、これに類似する符号化又は復号化のアルゴリズムを有する方式の情報処理装置に適用することができる。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。