説明

情報処理装置および情報処理方法、記録媒体、並びに、プログラム

【課題】延長された再エンコード区間における符号配分量を設定する。
【解決手段】基準となる再エンコード区間のエンコードにおいてVBV占有量が目標値以下となり、延長再エンコード区間が設定された場合、延長再エンコード区間のオリジナルストリーム(編集素材)のエンコード時におけるこの区間のVBV開始点のバッファ占有量をV4、再エンコード時のVBV開始点、すなわち、最長再エンコード区間の一つ前の区間における再エンコードの終了点におけるバッファ占有量をV1’、この延長再エンコード区間となるGOPのVBV目標点をV2’とすると、延長再エンコード区間に対応するオリジナルストリームの対応するGOPにおいては、符号化によりバッファ占有量がV4からV2’に変化したという実績がある。そこで、この符号化実績を利用して、V4−V1’を、VBV上昇分として担保とし、符号配分を設定する。本発明は、再生装置に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関し、特に、フレーム間予測を用いて圧縮した映像データを編集する場合に用いて好適な、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関する。
【背景技術】
【0002】
MPEG(Moving Picture Coding Experts Group/Moving Picture Experts Group)などに代表される画像圧縮方式では、フレーム間予測を用いて映像信号を圧縮符号化することで、高い圧縮効率を実現している。しかし、映像を編集することを考えた場合、フレーム間予測を用いた圧縮画像は、フレーム間に予測による圧縮信号の関連があるため、圧縮されたままの映像信号で、映像素材をつなぎ合わせることとはできない。そのため、映像素材を編集することが予め考慮されたシステムにおいては、一般的に、フレーム間予測を用いず、フレーム内での圧縮のみを用いて符号化が行われている。
【0003】
しかしながら、例えば、HD(High Definition)信号のように、高精細で情報量の多い映像信号が取り扱われる場合、フレーム内圧縮のみで符号化を行うと、低い圧縮効率しか得られないため、多量のデータを伝送したり、蓄積するためには、転送速度が速かったり、記憶容量が大きかったり、または、処理速度が速いなどの、高価なシステムが必要となってしまう。すなわち、高精細で情報量の多い映像信号を安価なシステムで取り扱うためには、フレーム間予測を用いて圧縮効率を上げることが必要となる。
【0004】
MPEGストリームを編集するために、従来、編集点(スプライス点)近傍のピクチャを一旦デコードし、非圧縮の画像信号を編集点でつなぎあわせた後、再エンコードする技術が用いられている(例えば、特許文献1)。
【特許文献1】国際公開番号WO99/05864号公報
【0005】
MPEGにおいて、Iピクチャ(I-Picture)、Pピクチャ(P-Picture)、および、Bピクチャ(B-Picture)から構成される、双方向のフレーム間予測を用いた圧縮符号化方式は、Long GOP(Group of Picture)方式の圧縮と呼ばれる。
【0006】
Iピクチャとは、フレーム内(Intra)符号化画像のことであり、他の画面とは独立に符号化されるピクチャであり、この情報のみで画像を復号することができるものである。Pピクチャとは、フレーム間(inter)順方向予測符号化画像のことであり、時間的に前(順方向)のフレームからの差分によって表現される前方向予測符号化ピクチャである。Bピクチャとは、双方向予測符号化画像のことであり、時間的に前(順方向)、または後(逆方向)、または前後(双方向)のピクチャを利用して動き補償フレーム間予測により符号化されるピクチャである。
【0007】
PピクチャやBピクチャは、データ量がIピクチャに比べて小さいため、GOPを長くすれば(すなわち、Long GOPを構成するピクチャ数を増加させれば)、映像の圧縮率を高くすることができるので、デジタル放送やDVD(Digital Versatile Disk)ビデオでの利用に適している。しかしながら、GOPが長すぎると、フレーム精度での編集コントロールが困難となり、特に、業務用用途での編集では、運用上の問題が発生する。
【0008】
Long GOP方式で圧縮された2つの映像データを所定の編集点で接続することにより編集する処理について、図1を用いて説明する。
【0009】
まず、編集対象符号化ストリーム1および編集対象符号化ストリーム2のそれぞれにおいて、編集点近傍の部分的なデコードが行われ、部分的な非圧縮の映像信号1および映像信号2が得られる。そして、非圧縮の映像信号1および映像信号2が編集点で接続されて、必要に応じて編集点付近にエフェクト(Effect)が施されて、再エンコードが行われる。そして、再エンコードされた符号化ストリームが、デコードおよび再エンコードされていない(部分的なデコードが行われた編集点近傍以外の)符号化ストリームと結合される。
【0010】
図1を用いて説明した方法は、圧縮された編集素材の映像データを全てデコードしてから、映像信号を編集点でつなぎ、再び全ての映像信号を再エンコードして編集済みの符号化ストリームを得る方法と比較して、再エンコードによる画質劣化を局所的に抑えることができるとともに、編集処理時間を大幅に短縮することができるなどの利点がある。
【発明の開示】
【発明が解決しようとする課題】
【0011】
上述したように、編集点近傍を部分的にデコードした後、非圧縮の映像信号を接続して、接続された非圧縮の映像を再エンコードし、デコードおよび再エンコードされていない部分の符号化ストリームと結合することにより、編集を行った場合、再エンコード部分と再エンコードしない部分のVBV Buffer Occupancyの連続性を保つ必要がある。
【0012】
図2を用いて、VBV Buffer Occupancyの連続性について説明する。
【0013】
編集後の符号化ストリームにおいて、VBVバッファが破綻しないようにするためには、再エンコード開始部と終了部のOccupancyを、前後に結合する再エンコードしない符号化ストリームの結合部のOccupancyに一致させる必要がある。すなわち、編集後の圧縮映像の図中Eで示される再エンコード部分の最初のIピクチャの図中Cで示されるOccupancyは、編集前の圧縮素材映像1の図中Aで示されるOccupancyと一致するように、編集後の圧縮映像の図中Eで示される再エンコード部分の次のIピクチャの図中Dで示されるOccupancyは、編集前の圧縮素材映像2の図中Bで示されるOccupancyと一致するように制御されなければならない。
【0014】
編集前後のOccupancyは、Closed GOPの場合であっても、Closed GOPでないOpen GOPである場合にも、同様に、一致させる必要がある。VBV Buffer Occupancyの連続性が保たれていない場合、デコード時にデコーダのバッファが破綻し、例えば、ピクチャスキップやフリーズなどの現象が発生する原因となり得る。
【0015】
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を容易に求めることはできない。
【0016】
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を求めるために利用することができない。
【0017】
このように、ESにおいては、VBV BufferのOccupancyを容易に求めることはできないので、ESを編集するにあたり、VBV Bufferの連続性を保つように正しく再エンコードできない場合、バッファがオーバフローまたはアンダーフローしてしまい、デコードされた映像に、例えば、ピクチャスキップやフリーズなどの現象が発生してしまう恐れがある。
【0018】
例えば、放送番組制作用途のシステムなどでは、映像にピクチャスキップやフリーズなどなどが発生することは許されない。しかし、従来、タイムスタンプが挿入されていないESを編集するにあたっては、VBV Buffer Occupancyの連続性を保つことはできなかった。
【0019】
本発明はこのような状況に鑑みてなされたものであり、ESを編集するにあたり、VBV Buffer Occupancyの連続性を保つことができるようにするものである。
【課題を解決するための手段】
【0020】
本発明の一側面の情報処理装置は、第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理を実行する情報処理装置であって、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する区間を決定する制御手段と、前記第1の符号化ストリームおよび前記第2の符号化ストリームをデコードするデコード手段と、前記第1の符号化ストリームが前記デコード手段によりデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームが前記デコード手段によりデコードされて生成された第2のベースバンド信号とが、前記編集点で接続された第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成するエンコード手段と、前記エンコード手段によるエンコード処理の発生符号量を管理する管理手段とを備え、前記制御手段は、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間を決定し、前記管理手段は、前記第1の区間において、前記エンコード手段によりエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、前記制御手段は、前記管理手段により、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間として、更に再エンコードを実行する第1の動作モードと、前記第1の区間におけるエンコード処理を再度実行させる第2の動作モードとのいずれかに基づいて、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する区間を決定する。
【0021】
前記デコード手段への前記第1の符号化ストリームおよび前記第2の符号化ストリームの供給を制御する供給制御手段を更に備えるようにすることができる。
【0022】
前記管理手段には、第1の動作モードにおいて、前記第2の区間における前記エンコード手段によるエンコード処理の発生符号量を、前記第2の符号化ストリームにおける対応する部分のオキュパンシを基に管理させるようにすることができる。
【0023】
前記管理手段には、第2の動作モードにおいて、オキュパンシの連続性が保たれなかったと判断された場合における前記第1の区間の前記第3の符号化ストリームの終了点のオキュパンシに基づいて、前記第1の区間における2回目の前記エンコード手段によるエンコード処理の発生符号量を管理させるようにすることができる。
【0024】
前記エンコード手段には、MPEGのLong GOP形式でエンコード処理を実行させるようにすることができ、前記第2の区間は、1GOPに対応する区間であるものとすることができる。
【0025】
前記エンコード手段には、MPEGのLong GOP形式でエンコード処理を実行させるようにすることができ、前記管理手段により、前記オキュパンシの連続性が保たれたと判断された場合、前記制御手段には、前記第1の区間に続く次のGOPの最初の前方向参照フレームの直前までのフレームを、再エンコードを実行する第3の区間として、更に追加させるようにすることができる。
【0026】
前記エンコード手段には、MPEGのLong GOP形式でエンコード処理を実行させるようにすることができ、前記制御手段には、前記第1の符号化ストリームにおける前記編集点を含むGOPの開始位置から、前記第2の符号化ストリームにおける前記編集点を含むGOPの終了位置までを基準区間とし、前記基準区間に含まれるフレーム数を基に、前記第1の区間を決定させるようにすることができる。
【0027】
前記制御手段には、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、N/2≦M≦Nを満たす場合、前記基準区間を前記第1の区間とさせるようにすることができる。
【0028】
前記制御手段には、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、0≦M<N/2を満たす場合、前記基準区間に1GOP加えた区間を前記第1の区間とさせるようにすることができる。
【0029】
前記制御手段には、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、N+1≦M≦2N−1を満たす場合、前記基準区間を複数GOPに分割するとともに、前記基準区間を前記第1の区間とさせるようにすることができる。
【0030】
前記制御手段には、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、N+1≦M≦2N−1を満たし、前記第1の符号化ストリームにおける前記編集点を含むGOPの開始位置から前記編集点までのフレーム数Aが、A≧N/2を満たす場合、前記基準区間を、前記編集点で2つのGOPに分割させるようにすることができる。
【0031】
前記エンコード手段には、前記編集点で分割された2つのGOPのうちの時間的に後のGOPは、表示順でI2ピクチャから開始されるように、前記第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成させるようにすることができる。
【0032】
前記制御手段には、前記編集点で分割された2つのGOPのうちの時間的に後のGOPに含まれるフレーム数Rが、N/2≦Rを満たさないとき、前記基準区間に1GOP加えた区間を前記第1の区間とし、N/2≦Rを満たすとき、前記基準区間を前記第1の区間とさせるようにすることができる。
【0033】
本発明の一側面の情報処理方法は、第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理を実行する情報処理装置の情報処理方法であって、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間を決定し、前記第1の区間内の前記第1の符号化ストリームおよび前記第2の符号化ストリームをデコードするとともに、前記第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが、前記編集点で接続された第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成し、前記第1の区間においてエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、第1の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間として、更に、再エンコードを実行し、第2の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間における再エンコード処理を再度実行するステップを含む。
【0034】
本発明の一側面のプログラムは、第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理をコンピュータに実行させるためのプログラムであって、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間を決定し、前記第1の区間内の前記第1の符号化ストリームおよび前記第2の符号化ストリームのデコードを制御するとともに、前記第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが前記編集点で接続された第3のベースバンド信号のエンコードを制御することにより、第3の符号化ストリームの生成を制御し、前記第1の区間においてエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、第1の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間として、更に、再エンコードの実行を制御し、第2の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間における再エンコード処理が再度実行されるように制御するステップを含む処理をコンピュータに実行させる。
【0035】
本発明の一側面においては、第1の符号化ストリームおよび第2の符号化ストリームのうち、再エンコードを実行する第1の区間が決定され、第1の区間内の第1の符号化ストリームおよび第2の符号化ストリームがデコードされ、第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが編集点で接続された第3のベースバンド信号がエンコードされて、第3の符号化ストリームが生成され、第1の区間においてエンコードされて生成された第3の符号化ストリームの終了点と、第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかが判断され、第1の動作モードにおいてオキュパンシの連続性が保たれなかったと判断された場合、第1の区間に続く所定の区間である第2の区間で、更に再エンコードが実行され、第2の動作モードにおいてオキュパンシの連続性が保たれなかったと判断された場合、第1の区間における再エンコード処理が再度実行される。
【0036】
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、1つの装置を構成している内部ブロックどうしであっても良い。
【0037】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【0038】
編集装置は、独立した装置であっても良いし、記録再生装置や情報処理装置の編集処理を行うブロックであっても良い。
【発明の効果】
【0039】
以上のように、本発明の一側面によれば、編集処理を行うことができ、特に、再エンコード区間と再エンコードされない区間とでVBV占有量の連続性が保たれなかった場合、同一の再エンコード区間での再エンコード処理が繰り返されるか、または、続く所定区間を再エンコード区間として更に設定して、再エンコードを実行することができる。
【発明を実施するための最良の形態】
【0040】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0041】
本発明の一側面の情報処理装置(例えば、図3の編集装置1)は、第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理を実行する情報処理装置であって、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する区間を決定する制御手段(例えば、図9の制御部101であり、そのうち、例えば、図3のCPU11に対応する部分)と、前記第1の符号化ストリームおよび前記第2の符号化ストリームをデコードするデコード手段(例えば、図9のデコーダ103)と、前記第1の符号化ストリームが前記デコード手段によりデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームが前記デコード手段によりデコードされて生成された第2のベースバンド信号とが、前記編集点で接続された第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成するエンコード手段(例えば、図3のエンコーダ27)と、前記エンコード手段によるエンコード処理の発生符号量を管理する管理手段(例えば、図9の制御部101であり、そのうち、例えば、図3のCPU20に対応する部分)とを備え、前記制御手段は、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間(例えば、最小再エンコード区間)を決定し、前記管理手段は、前記第1の区間において、前記エンコード手段によりエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、前記制御手段は、前記管理手段により、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間(例えば、延長再エンコード区間)として、更に再エンコードを実行する第1の動作モード(例えば、延長再エンコード区間設定モード)と、前記第1の区間におけるエンコード処理を再度実行させる第2の動作モード(例えば、2パスエンコードモード)とのいずれかに基づいて、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する区間を決定する。
【0042】
前記デコード手段への前記第1の符号化ストリームおよび前記第2の符号化ストリームの供給を制御する供給制御手段(例えば、図9の取得部102)を更に備えることができる。
【0043】
本発明の一側面の情報処理方法は、第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理を実行する情報処理装置(例えば、図3の編集装置1)の情報処理方法であって、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間(例えば、最小再エンコード区間)を決定し(例えば、図11のステップS2の処理)、前記第1の区間内の前記第1の符号化ストリームおよび前記第2の符号化ストリームをデコードするとともに、前記第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが、前記編集点で接続された第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成し(例えば、図16のステップS84の処理、または、図21のステップS155の処理)、前記第1の区間においてエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し(例えば、図16のステップS86の処理、または、図21のステップS158の処理)、第1の動作モード(例えば、延長再エンコード区間設定モード)において、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間(例えば、延長再エンコード区間)として、更に、再エンコードを実行し(例えば、図21のステップS159およびステップS160の処理)、第2の動作モード(例えば、2パスエンコードモード)において、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間における再エンコード処理を再度実行する(例えば、図16のステップS89およびステップS84の処理)ステップを含む。
【0044】
本発明の一側面のプログラムは、第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理をコンピュータに実行させるためのプログラムであって、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間(例えば、最小再エンコード区間)を決定し(例えば、図11のステップS2の処理)、前記第1の区間内の前記第1の符号化ストリームおよび前記第2の符号化ストリームのデコードを制御するとともに、前記第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが前記編集点で接続された第3のベースバンド信号のエンコードを制御することにより、第3の符号化ストリームの生成を制御し(例えば、図16のステップS84の処理、または、図21のステップS155の処理)、前記第1の区間においてエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し(例えば、図16のステップS86の処理、または、図21のステップS158の処理)、第1の動作モード(例えば、延長再エンコード区間設定モード)において、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間(例えば、延長再エンコード区間)として、更に、再エンコードの実行を制御し(例えば、図21のステップS159およびステップS160の処理)、第2の動作モード(例えば、2パスエンコードモード)において、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間における再エンコード処理が再度実行されるように制御する(例えば、図16のステップS89およびステップS84の処理)ステップを含む処理をコンピュータに実行させる。
【0045】
以下、図を参照して、本発明の実施の形態について説明する。
【0046】
図3は本発明を適用した編集装置1のハードウェア構成を示すブロック図である。
【0047】
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の処理に必要なデータを授受する。
【0048】
メモリ13は、CPU11が実行する処理に必要なデータを保存する。サウスブリッジ15は、HDD16のデータの書き込みおよび読み出しを制御する。HDD16には、圧縮符号化された編集用の素材が記憶される。
【0049】
PCIブリッジ17は、メモリ18のデータの書き込みおよび読み出しを制御したり、デコーダ22乃至24、または、ストリームスプライサ25への圧縮符号化データの供給を制御するとともに、PCIバス14およびコントロールバス19のデータの授受を制御する。メモリ18は、PCIブリッジ17の制御に基づいて、HDD16により読み出された、編集用素材である圧縮符号化データや、ストリームスプライサ25から供給される編集後の圧縮符号化データを記憶する。
【0050】
CPU20は、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU11から供給された制御信号やコマンドにしたがって、PCIブリッジ17、デコーダ22乃至24、ストリームスプライサ25、エフェクト/スイッチ26、エンコーダ27、および、スイッチ29が実行する処理を制御する。メモリ21は、CPU20の処理に必要なデータを記憶する。
【0051】
デコーダ22乃至デコーダ24は、CPU20の制御に基づいて、供給された圧縮符号化データをデコードし、非圧縮の映像信号(ベースバンドの画像データ)を出力する。また、デコーダ22乃至デコーダ24は、編集装置1に含まれない独立した装置として設けられていても良い。例えば、デコーダ24が、独立した装置として設けられている場合、デコーダ24は、後述する処理により編集されて生成された圧縮編集映像データの供給を受け、復号し、出力することができるようになされる。
【0052】
ストリームスプライサ25は、CPU20の制御に基づいて、供給された符号化ストリーム(圧縮映像データ)を、デコーダ24に供給したり、PCIブリッジ17を介して、メモリ18に供給して保存させる。また、ストリームスプライサ25は、エンコーダ27から、エンコード処理において取得されたデータの供給を受け、PCIブリッジ17を介して、メモリ18に供給して保存させることも可能である。
【0053】
エフェクト/スイッチ26は、CPU20の制御に基づいて、デコーダ22またはデコーダ23、もしくは、入力端子28から供給される、非圧縮の映像信号出力を切り替える、すなわち、供給された非圧縮の映像信号を所定のフレームで結合するとともに、必要に応じて、所定の範囲にエフェクトを施して、エンコーダ27に供給したり、入力端子28から供給される非圧縮の映像信号をエンコーダ27に供給する。エンコーダ27は、CPU20の制御に基づいて、供給された非圧縮の映像信号をエンコードする。
【0054】
スイッチ29は、CPU20の制御に基づいて、エフェクト/スイッチ26から出力されるベースバンド画像信号、または、ストリームスプライサ25から供給され、デコーダ24によってデコードされたベースバンド画像信号のいずれかを、外部の、例えば、表示装置などに出力する。
【0055】
次に、編集装置1の動作について説明する。
【0056】
HDD16には、Long GOPのOpen GOP方式で圧縮された複数の圧縮素材映像データが記憶されている。CPU11は、図示しない操作入力部からユーザの操作入力を受け、編集される2つのストリームと、その編集点の情報を受ける。
【0057】
CPU11は、圧縮符号化された圧縮素材映像データであるストリームAおよびストリームBのGOP構造、並びに、編集点を示す情報を基に、ストリームAおよびストリームBのうち、再エンコードを行う区間を決定する。
【0058】
このとき、CPU11は、再エンコードを試みる最小の区間として、最小再エンコード区間を決定する。最小再エンコード区間の決定について、図4乃至図6を用いて説明する。
【0059】
すなわち、図4に示されるように、ストリームAにおける編集点aを含むGOPの開始位置をαとし、ストリームBにおける編集点bを含むGOPの終了位置をβとしたとき、ストリームAおよびストリームBが編集点において接続されて生成されるストリームCにおける基準再エンコード区間は、編集点aおよびbを含むαからβまでの区間とされる。
【0060】
そして、編集点aおよびbを含むαからβまでの区間、すなわち、基準再エンコード区間に含まれるフレーム数A+Bが、これらのストリームにおける基準となる1GOPに含まれるフレーム数Nに対して、N/2≦A+B≦Nを満たす場合、図4に示されるように、基準再エンコード区間は、そのまま、最小再エンコード区間に設定される。
【0061】
そして、編集点aおよびbを含むαからβまでの区間、すなわち、基準再エンコード区間に含まれるフレーム数A+Bが、これらのストリームにおける基準となる1GOPに含まれるフレーム数Nに対して、0≦A+B<N/2を満たす場合、図5に示されるように、最小再エンコード区間は、ストリームBにおける編集点bを含むGOPの次のGOPを含ませて、αから次のGOPの終了点γまでであるものとする。
【0062】
そして、次のGOPに含まれるフレーム数がCであるとき、基準再エンコード区間に含まれるフレーム数A+Bに、ストリームBの次のGOPのフレーム数を加えた値A+B+Cは、N/2≦A+B+C≦Nを満たすか否かが判断される。N/2≦A+B+C≦Nが満たされる場合、αからγまでが1GOPとされて、最小再エンコード区間に設定される。それに対して、N/2≦A+B+C≦Nが満たされない場合、換言すれば、N<A+B+Cである場合、αからγまでを、1GOPがN/2≦x≦Nを満たすように複数のGOPに分割して、2以上のGOPを設定し、これら全てを最小再エンコード区間に設定する。
【0063】
最小再エンコード区間が、複数のGOPに分割されるとき、それぞれのGOPに含まれるフレーム数ができるだけ均等になるように分割されると好適である。例えば、2GOPに分割される場合、A+B+Cのフレーム数が偶数の場合は均等に分割され、奇数の場合は後ろが1フレーム多くなるように分割されて、2GOPとされ、この2GOPが最小再エンコード区間に設定される。
【0064】
また、このとき、αからγまでのフレーム数が、GOPの数で割り切れない値であった場合、時間的に後ろとなるGOPのフレーム数が多くなるようにすると好適である。具体的には、例えば、αからγまでのフレーム数が19であった場合、1つ目のGOPのフレーム数を9とし、2つ目のGOPのフレーム数を10とすると好適である。なぜなら、再エンコードされた符号化ストリームと、再エンコードしない部分の符号化ストリームとの接続部分のOccupancy(オキュパンシ)を合わせこむためのデコードおよびエンコードの処理において、時間的に後のGOPのフレーム数が多いほうが、符号割り当ての自由度が高くなるからである。
【0065】
更に、A+B+Cのフレーム数をできるだけ均等に分割する以外に、予め定められた所定のフレーム数で、GOPを分割するものとしても良い。例えば、2つのうちの時間的に前のGOPを構成するフレーム数が必ず所定のフレーム数(例えば、N/2またはN/2以上となる最小の整数)となるようにして、GOPが分割されるものとしても良い。また、予め定められた所定のフレーム数は、それぞれのGOPにおいて、1GOPがN/2≦x≦Nを満たす区間で定められるものとすると好適である。
【0066】
具体的には、例えば、N=15のとき、A+B+C=16であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を8とし、A+B+C=17であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を9とし、A+B+C=18であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を10とするように、2つ目のGOPのフレーム数を変化させ、同様に、A+B+C=22であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を14とするようにしても良い。
【0067】
そして、編集点aおよびbを含むαからβまでの区間、すなわち、基準再エンコード区間に含まれるフレーム数A+Bが、これらのストリームにおける基準となる1GOPに含まれるフレーム数Nに対して、N+1≦A+B≦2N−1を満たす場合、図6に示されるように、基準再エンコード区間は、基準再エンコード区間のフレーム数が偶数の場合は均等に分割され、奇数の場合は後ろが1フレーム多くなるように分割されて、2GOPとされ、この2GOPが最小再エンコード区間に設定される。
【0068】
この場合においても、αからβまでのフレーム数が、2で割り切れない値であった場合、時間的に後ろとなるGOPのフレーム数が多くなるようにすると好適である。
【0069】
また、同様にして、この場合においても、A+Bのフレーム数をできるだけ均等に分割する以外に、予め定められた所定のフレーム数で、GOPを分割するものとしても良い。例えば、2つのうちの時間的に前のGOPを構成するフレーム数が必ず所定のフレーム数(例えば、N/2またはN/2以上となる最小の整数)となるようにして、GOPが分割されるものとしても良い。
【0070】
また、N+1≦A+B≦2N−1が成り立つ場合、更に、A≧N/2であるか否かを判断し、A≧N/2が成り立つ場合、編集点をGOPの切れ目としても良い。そして、そのとき、編集点以降に対応する後ろ側のGOPの先頭をI2ピクチャとし、B0およびB1ピクチャを省略するようにしてもよい。
【0071】
このように、編集点、すなわち、大きく絵が変化する部分でGOPを分割し、編集点以降に対応する後ろ側のGOPのディスプレイ順における先頭をI2ピクチャとし、B0およびB1ピクチャを省略するものとすると、編集点以降のGOPの画質の劣化を抑制することができ、好適である。
【0072】
また、N+1≦A+B≦2N−1であり、かつ、A≧N/2である場合、最小再エンコード区間において、編集点より後ろの部分のフレーム数、すなわち、フレーム数Bが少ない場合(例えば、B≧N/2が成り立たないような場合)、編集点より後ろの部分が所定のフレーム数以上(例えば、N/2以上)となるように、ストリームBの続くGOPを最小再エンコード区間に加えるものとすると、極端に少ないフレーム数で構成されたGOPを再エンコード区間に含ませることを防止することができる。これにより、編集点よりも後ろの部分のGOPにおいて、VBV占有量の連続性を保ちつつ、それぞれのフレームに適切な発生符号量を配分することが容易となるので、好適である。
【0073】
そして、N+1≦A+B≦2N−1であるが、A≧N/2ではない場合、上述した場合と同様にして、A+Bのフレーム数をできるだけ均等に2つのGOPに分割するようにしてもよいし、上述したように、1GOPがN/2≦x≦Nを満たす区間で、予め定められた所定のフレーム数で、2つのGOPに分割するものとしても良い。
【0074】
このようにして、最小再エンコード区間を決定するようにすることにより、再エンコード区間の設定について、短いGOPを結果として残さない様にすることができ、いたずらに画質の劣化をもたらさないようにすることができる。
【0075】
そして、再エンコードを行う区間の各GOPに対し、画質の劣化をもたらさないように、かつ、出来る限り大きなGOP長となる様なエンコードを実施できるため、符号化効率が向上し、より良い画質の符号化を期待することができる。
【0076】
そして、CPU11は、ストリームAおよびストリームBを、VBV Buffer ModelのVBV占有量の連続性を守ったまま、編集点で接続して1つのストリームとする、すなわち、スプライシングするための処理を実行する。
【0077】
すなわち、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なストリーム、すなわち、ストリームAの編集点aまでの部分がデコーダ22に供給され、ストリームBの編集点b以降の部分(編集点b以降の部分のデコードに必要なフレームが編集点b以前に存在する場合は、そのフレームも含む)がデコーダ23に供給され、エフェクト/スイッチ26によって、編集点で接続され、必要に応じてエフェクトが施されるように、制御信号を生成し、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0078】
再エンコード区間および再エンコード区間前後の部分の表示が指令されている場合、CPU11は、ストリームAにおいて表示開始が指令された位置から編集点までの圧縮画像データ、および、ストリームBにおいて編集点(編集点以降の部分をデコードするために必要なフレームを含む)から表示終了が指令された位置までの圧縮画像データの、メモリ18への供給を制御するので、CPU20は、ストリームAの最小再エンコード区間以前の部分のデータは、ストリームスプライサ25を介して、デコーダ24に供給され、スイッチ29を介して、外部の表示装置などに出力され、続いて、エフェクト/スイッチ26から出力された、編集された部分のベースバンド画像データが、スイッチ29を介して、外部の表示装置などに出力されるように制御する。
【0079】
そして、編集装置1においては、最小再エンコード区間における再エンコード時の発生符号量の調節に失敗した場合、すなわち、スプライシングの実行時に再エンコードが実行される区間と実行されない区間とのVBV占有量の連続性が保たれなかった場合に、最小再エンコード区間において、再度エンコードを実行する、いわゆる、リトライ動作を実行することができるようになされている。そして、このとき、編集装置1においては、実行された最小再エンコード区間におけるエンコード処理の実績を基に、最小再エンコード区間の再エンコード処理をもう一度行うことが可能なようになされている。
【0080】
これにより、VBV占有量の連続性を保ちつつ、再エンコードを実行する区間をできるだけ小さくすることができるので、再エンコード処理により画像が劣化してしまう可能性のある領域の発生量を抑制することができる。
【0081】
これに対して、再度エンコードを実行するリトライ動作は、編集画像をリアルタイムで表示させる場合など、即時性が重要視されるような場合に、ユーザの要求を満たさない場合がある。
【0082】
そこで、編集装置1においては、スプライシングの実行時にVBV占有量の接合ができなかった場合に、再度エンコードを実行する、いわゆる、リトライ動作を実行するのみでなく、再エンコード区間自体を延ばして処理を実行することも可能なようになされている。このことにより、装置内部のエンコーダとデコーダやつなぎ動作を実行するスイッチャー(例えば、図3のエフェクト/スイッチ26)との調走などの複雑な動作は1回だけで済み、実装が楽になる。また、このような処理は、編集画像をリアルタイムで表示させる場合など、即時性が重要視されるような場合に用いると好適である。
【0083】
まず、図4乃至図6を用いて説明した最小再エンコード区間の再エンコード(デコードおよびエンコード)が実行される。CPU11は、ストリームAおよびストリームBをHDD16から読み出させ、サウスブリッジ15、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給する。そして、CPU11は、ストリームAおよびストリームBのうち、最小再エンコード区間のデータが、それぞれ、デコーダ22およびデコーダ23に供給されてデコードされ、エフェクト/スイッチ26において接続されて、必要に応じてエフェクトがかけられ、エンコーダ27に供給されるように制御する。
【0084】
CPU20は、ここで、再エンコードのVBV占有量の開始値は、最小再エンコード区間の最初、すなわち、ストリームAのaを含むGOPの先頭におけるオリジナルのVBV占有量であり、再エンコード終了時のVBV占有量の目標値は、最小再エンコード区間の次のGOPの開始のVBV占有量であるものとする。すなわち、図7に示されるように、最小再エンコード区間の最後をβとした場合、次のGOPの開始のI2ピクチャ(図中アで示される)のVBV占有量が、再エンコード終了位置のVBV占有量の目標値となる。
【0085】
そして、CPU20は、任意の発生符号量調整方法により、目標VBV占有量よりも大きなVBV占有量で最小再エンコード区間のエンコードが終了する様に再エンコードの実行を制御する。
【0086】
そして、最小再エンコード区間でのエンコード終了時に、目標VBV占有量より実際のVBV占有量が大きければ、zero stuffによって、VBV占有量を連続的とすることが可能であり、そこで動作を終了させて、再エンコード結果を得ることができる。
【0087】
目標VBV占有量よりも実際のVBV占有量を大きくすることができた場合、続いて、次GOPのcoding順の最初のPピクチャ(図7において図中イで示されるピクチャ)の直前までのフレームが、ストリームスプライサ25に供給されるとともに、デコーダ23に供給され、デコードされた後、エフェクト/スイッチ26を介して、エンコーダ27に供給されてエンコードされる。
【0088】
このとき、次GOPのcoding順の最初のPピクチャ(図7において図中イで示されるピクチャ)でのVBV占有量を目標値とし、Iピクチャ(図7において図中アで示されるピクチャ)の符号量を、オリジナルのストリームBにおける該当するIピクチャの符号量として、次GOPの先頭から最初のPピクチャ(図7において図中イで示されるピクチャ)の手前まで(IBBか、または、IB)を、PピクチャでVBV占有量を連続的とすることができる様に(VBV占有量を目標値よりも大きくする様に)、任意の発生符号調整方法により再エンコード処理が実行される。
【0089】
その結果、目標Pピクチャで、必要に応じてzero stuffを利用して、VBV占有量を連続とすることができれば、CPU20は、Iピクチャの符号を、オリジナルのストリームBにおける該当するIピクチャの符号に差し替えて、エンコード結果とし、スプライシング動作を終了させる。
【0090】
一方、目標Pピクチャで、VBV占有量を連続にすることができなかった場合、CPU20は、図7のβまでの再エンコード区間すなわち、GOP切れ目でのVBV占有量が連続となったエンコード結果をもって、スプライシング動作を終了させる。換言すれば、図7のβまでの再エンコード区間以降、次GOPのcoding順の最初のPピクチャの直前までのフレーム(例えば、図7において図中アで示されるピクチャから図中イで示されるピクチャまでの範囲)において、編集後の圧縮画像データとして、再エンコードされた圧縮画像データではなく、ストリームスプライサ25に供給されたオリジナルのストリームに含まれていたフレームが採用される。
【0091】
スプライシング動作が終了された場合、CPU20は、CPU11に対して、デコーダ22またはデコーダ23へのストリームの供給を停止させるように、制御信号を供給する。再エンコード区間のみの表示が指令されている場合、CPU11は、ストリームBのメモリ18への転送をストップさせる。また、再エンコード区間前後の部分の表示が指令されている場合、CPU11は、ストリームBのメモリ18への転送を続ける。CPU20は、エフェクト/スイッチ26から出力された、編集された部分のベースバンド画像データが、スイッチ29を介して、外部の表示装置などに出力されるのに続いて、ストリームBの再エンコード区間以後の部分のデータは、ストリームスプライサ25を介して、デコーダ24に供給され、スイッチ29を介して、外部の表示装置などに出力されるように制御する。
【0092】
これに対して、最小再エンコード区間でのエンコード終了時に、目標VBV占有量よりも占有量が小さくなってしまった場合は、zero stuffによってVBV占有量を連続にすることはできないため、CPU20は、実行された最小再エンコード区間におけるエンコード処理の実績を基に、最小再エンコード区間の再エンコード処理をもう一度行う、すなわち、上述したリトライ動作を実行するか、または、次GOPもエンコード対象として、任意の発生符号調整方法により再エンコードが継続されるように、各部を制御する。
【0093】
最小再エンコード区間の再エンコード処理をリトライするようになされている場合、CPU20は、既に実行された1回目の最小再エンコード区間におけるエンコード処理の実績を基に、最小再エンコード区間における符号配分を決定する。このようにすることにより、2回目の再エンコードにおいては、最小再エンコード区間でのエンコード終了時に、目標VBV占有量よりも占有量が小さくなってしまうようなことを防ぐことができる。このような処理が実行される動作モードを、2パスエンコードモードと称する。
【0094】
また、最小再エンコード区間でのエンコード終了時に、目標VBV占有量よりも占有量が小さくなってしまってもリトライ動作を実行せず、次のGOPを再エンコード対象とする場合、CPU20は、図8Aに示される最小再エンコード区間に対して、図8Bに示されるように、次のGOPを延長再エンコード区間とし、任意の発生符号量調整方法により、目標VBV占有量よりも大きなVBV占有量で延長再エンコード区間のエンコードが終了する様に、目標発生符号量を設定して、再エンコードを実行させる。図中γで示される、更に続くGOPの開始のVBV占有量が、再エンコード区間が延長された場合の延長再エンコード区間における再エンコード終了時のVBV占有量の目標値とされる。
【0095】
そして、図8Bに示されるγまでの再エンコード結果、目標VBV占有量よりも実際のVBV占有量を大きくすることができた場合、上述した場合と同様に、続くGOPのcoding順の最初のPピクチャ(図7において図中イで示されるピクチャ)でのVBV占有量を目標値として、再エンコードが実行される。図8Bに示されるγまでの再エンコード結果、目標VBV占有量よりも実際のVBV占有量を大きくすることができなかった場合、更に、続くGOPが次の延長再エンコード区間とされる。このような処理が実行される動作モードを、延長再エンコード区間設定モードと称する。
【0096】
なお、最小再エンコード区間、または、延長再エンコード区間に続く次のGOPにおいて、coding順で最初のPピクチャの前にBピクチャが配置されていなかった場合、GOP切れ目でのVBV占有量が連続となったエンコード結果を以って、スプライシング動作が終了される。また、ストリームAの編集点aがGOPのdisplay順先頭であった場合、最小再エンコード区間の開始はストリームBの編集点bからであるものとすることができる。
【0097】
すなわち、編集装置1においては、最小再エンコード区間の切れ目(最小再エンコード区間の最後と、続くGOPの最初と)でVBV占有量をあわせることができなかった場合、最小再エンコード区間の再エンコードを、1回目における再エンコードの実績を基にもう一度行うか、次のGOP切れ目までエンコード区間が延長されて延長再エンコード区間とされて、VBV占有量が連続性を有するまで、延長再エンコード区間が設定される。そして、再エンコード区間の切れ目でVBV占有量をあわせることができた場合、再エンコード区間の次のGOPのIピクチャにはオリジナルの符号が使用され、更に、再エンコード区間の次のGOPの最初のPピクチャまでのフレームが再エンコードされる。そして、PピクチャにおいてVBVを合わせることができれば、このPピクチャの手前までで再エンコードが終了される。また、PピクチャにおいてVBVを合わせることができなかったときには、再エンコード区間までで再エンコードが終了される。
【0098】
すなわち、編集装置1においては、スプライシング実行時の動作モードとして、リトライ動作を実行する2パスエンコードモードと、再エンコードを実行する区間を延長する延長再エンコード区間設定モードとの2つの動作モードを有する。編集装置1においては、例えば、編集装置1の構成または設定、もしくは、ユーザの操作入力などに基づいて、動作モードが設定されて、設定された動作モードに基づいた処理が実行されるようになされている。
【0099】
2パスエンコードモードにおいては、編集点を含むGOPを含んで構成される最小再エンコード区間においてのみ、VBV占有量の連続性を守って再エンコードが実行されるので、編集後のストリームにおいて、再エンコードによって画質が劣化してしまう恐れのある部分を最小にすることが可能となる。したがって、編集結果をリアルタイムで再生して確認するよりも画質をできるだけ劣化しないようにしたい場合などに、2パスエンコードモードで編集が行われると好適である。
【0100】
また、延長再エンコード区間設定モードにおいては、編集点を含むGOPにより構成される最小再エンコード区間において、目標VBV占有量よりも実際のVBV占有量を大きくすることができなかった場合においても、リトライ動作を行わないようにすることができるので、リトライ動作を含むものと比較して、実装が容易になる。また、リトライ動作を行う場合と異なり、編集結果を略リアルタイムに再生出力することが可能であるので、編集結果を略リアルタイムに再生出力する必要がある場合は、延長再エンコード区間設定モードで編集が行われると好適である。
【0101】
次に、図9は、図3の編集装置1の機能の構成例を示すブロック図である。なお、図9において、図3における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0102】
編集装置1は、制御部101、取得部102、デコーダ22およびデコーダ23を含むデコーダ103、並びに、エンコーダ27から構成される。
【0103】
制御部101は、CPU11およびCPU20に対応し、編集装置1の各部を制御する。取得部102は、制御部101の制御に基づいて、HDD16またはメモリ18から圧縮素材映像データを取得して、再エンコード区間に対応する部分は、デコーダ22またはデコーダ23を含むデコーダ103に供給する。圧縮素材映像データが記憶されるHDD16またはメモリ18が取得部102に含まれるようにしてもよいし、取得部102が編集装置1に接続されている他の装置から圧縮素材映像データを取得するものとしてもよい。また、取得部102は、必要に応じて、再エンコード区間に対応しない部分も取得し、再エンコードされた領域と接続して編集画像を生成するために(図3におけるストリームスプライサ25に)出力する。
【0104】
デコーダ103は、取得部102から供給された圧縮素材映像データをデコードし、その結果として得られた非圧縮の映像信号をエンコーダ27に供給する。なお、図9に示す編集装置1には、圧縮素材映像データをデコードするデコーダとして、2つのデコーダ22およびデコーダ23が設けられ、編集後のストリームをデコードするデコーダとして、デコーダ24が設けられているが、編集装置1に設けられるデコーダは1つであってもよいし、3以上であってもよい。
【0105】
また、制御部101は、より詳細には図10に示すような機能を有している。
【0106】
すなわち、制御部101は、CPU11およびCPU20が実行可能な機能を併せ持つものとして定義されるものである。また、CPU11は、操作入力取得部131、再エンコード区間決定部132、動作モード決定部133、ストリーム送出制御部134、および、パラメータ送出部135の機能を有し、CPU20は、ストリーム取得制御部151、パラメータ取得部152、復号制御部153、符号化制御部154、および、動作モード判定部155から構成される。
【0107】
操作入力取得部131は、ユーザによる操作入力を受けて、編集されるストリームおよび編集点に関する情報などのユーザの操作に応じた情報を取得し、取得した情報を再エンコード区間決定部132またはストリーム送出制御部134に供給する。また、操作入力取得部131は、ユーザから、動作モードを設定または変更する操作入力を受けたとき、動作モード決定部133に、動作モードに関する操作入力の内容を供給する。
【0108】
再エンコード区間決定部132は、まず、操作入力取得部131からの編集されるストリームおよび編集点に関する情報に基づいて、最小再エンコード区間を決定する。再エンコード区間決定部132は、決定された最小再エンコード区間を示す情報をパラメータ送出部135およびストリーム送出制御部134に供給する。そして、再エンコード区間決定部132は、動作モードが延長再エンコード区間設定モードであり、符号化制御部154から、ストリーム供給を停止させる要求を受けなかった場合、換言すれば、最小再エンコード区間の再エンコード処理の結果、VBV占有量が、目標値よりも下回ったために、延長再エンコード区間として次のGOPを設定することが要求された場合、延長再エンコード区間を示す情報をパラメータ送出部135およびストリーム送出制御部134に供給する。
【0109】
動作モード決定部133は、操作入力取得部131から供給されるユーザによる操作入力、または、編集装置1の設定に基づいて、動作モードを決定し、再エンコード区間決定部132および動作モード判定部155に供給する。
【0110】
パラメータ送出部135は、再エンコード区間決定部132からの最小再エンコード区間または延長再エンコード区間を示す情報に基づいて、ストリームの再エンコードに必要な各種のパラメータをパラメータ取得部152に供給する。
【0111】
ストリーム送出制御部134は、操作入力取得部131および再エンコード区間決定部132からの情報に基づいて、編集されるストリームのうちの再エンコード区間として設定された部分がデコーダ22またはデコーダ23に送出されるように、取得部102を制御する。また、ストリーム送出制御部134は、必要に応じて、編集されるストリームのうちの再エンコード区間として設定されていない部分も取得し、再エンコードされた部分と接続されるように、取得部102を制御する。また、ストリーム送出制御部134は、操作入力取得部131からの情報に基づいて、ストリームの編集、記憶、または表示などのユーザの操作に応じた処理を行うための制御信号をストリーム取得制御部151に供給する。
【0112】
ストリーム取得制御部151は、ストリーム送出制御部134からの制御信号に基づいて、編集されるストリームの取得を制御する。また、ストリーム取得制御部151は、編集されるストリームのうちの再エンコードされる区間のストリームを、復号制御部153を制御してデコードさせるとともに、符号化制御部154を制御してエンコードさせる。
【0113】
復号制御部153は、動作モード判定部155により判定される動作モードに基づいて、ストリームのデコードを制御する。パラメータ取得部152は、パラメータ送出部135からストリームの再エンコードに必要な各種のパラメータを取得し、符号化制御部154に供給する。
【0114】
符号化制御部154は、動作モード判定部155により判定される動作モードに基づいて、パラメータ取得部152から供給されるパラメータを用いて、ストリームの再エンコードを制御する。符号化制御部154は、2パスエンコードモードにおいて、最小再エンコード区間の再エンコード処理の結果、VBV占有量が、目標値よりも下回った場合、1回目のエンコード処理の結果得られる各種パラメータ(例えば、発生符号量などの実績)をエンコーダ27から取得し、2回目のエンコード処理の符号配分の決定に用いる。また、符号化制御部154は、延長再エンコード区間設定モードにおいて、最小再エンコード区間の再エンコード処理の結果、VBV占有量が、目標値よりも下回った場合、延長再エンコード区間が設定されるように、再エンコード区間決定部132に、ストリーム供給を停止させる要求を通知せず、延長再エンコード区間の設定を要求する。
【0115】
動作モード判定部155は、動作モード決定部133により決定された動作モードに基づいて、動作モードが2パスエンコードモードであるか、延長再エンコード区間設定モードであるかを判定し、判定結果を、復号制御部153および符号化制御部154に供給する。
【0116】
次に、図11および図12のフローチャートを参照して、CPU11の処理について説明する。
【0117】
ステップS1において、CPU11は、圧縮符号化された圧縮素材映像データであるストリームAおよびストリームBのGOP構造、並びに、編集点を示す情報の入力を受ける。また、CPU11は、再エンコード区間前後の部分の表示が指令されている場合、ストリームAの最小再エンコード区間以前の部分のデータが、ストリームスプライサ25を介して、デコーダ24に供給され、スイッチ29を介して、外部の表示装置などに出力されるように各部を制御させるための制御信号を生成し、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0118】
ステップS2において、図13または図14および図15を用いて後述する最小再エンコード区間決定処理が実行され、図4乃至図6を用いて説明したように、最小再エンコード区間が決定される。
【0119】
ステップS3において、CPU11は、ステップS2において、最小再エンコード区間が決定されたか否かを判断する。ステップS3において、最小再エンコード区間が決定されなかったと判断された場合、処理は、終了される。
【0120】
ステップS3において、最小再エンコード区間が決定されたと判断された場合、ステップS4において、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なパラメータを取得する。
【0121】
最小再エンコード区間の再エンコード処理を実行させるために必要なパラメータには、例えば、ストリームAにおける編集点を含むGOPまでのGOP数など、その位置を示す情報、ストリームAにおける編集点を含むGOPにおける編集点の位置を示す情報、ストリームBにおける編集点を含むGOPからストリーム終了までのGOP数など、その位置を示す情報、ストリームBにおける編集点を含むGOPにおける編集点の位置を示す情報、最小再エンコード区間のはじめのVBV値および次のGOPの最初のフレームのVBV値(すなわち、最小再エンコード区間におけるVBV目標値)、エフェクトの有無またはエフェクトの種類を示す情報などがある。
【0122】
ステップS5において、CPU11は、最小再エンコード区間のエンコード終端処理に必要なパラメータを取得する。エンコード終端処理とは、図7を用いて説明した、最小再エンコード区間の次のGOPの最初のPピクチャまでの再エンコード処理と、その結果に基づいた、編集ストリームCの生成処理である。
【0123】
最小再エンコード区間のエンコード終端処理を実行させるために必要なパラメータには、例えば、該当するGOPにおけるVBV目標値、該当するGOPの次のGOPの最初のPピクチャにおけるVBV値、該当するGOPの次のGOPのIピクチャの発生符号量、該当するGOPの次のGOPの最初のPピクチャ直前のBピクチャの数、該当するGOPの次のGOPの最初のPピクチャ直前のBピクチャにおける量子化マトリクスなどがある。
【0124】
ステップS6において、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なストリームのデコーダ22およびデコーダ23への送出を制御する。具体的には、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なストリーム、すなわち、ストリームAの編集点aまでの部分がデコーダ22に供給され、ストリームBの編集点b以降の部分(編集点b以降の部分のデコードに必要なフレームが編集点b以前に存在する場合は、そのフレームも含む)がデコーダ23に供給され、エフェクト/スイッチ26によって、編集点で接続され、必要に応じてエフェクトが施されるように、各部を制御させるための制御信号を生成し、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0125】
ステップS7において、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0126】
ステップS8において、CPU11は、最小再エンコード区間において表示出力されるストリームが、エンコーダ27への入力データとなるようにスイッチ29を制御させるための制御信号を、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0127】
ステップS9において、CPU11は、動作モードは、2パスエンコードモードであるか否かを判断する。ステップS9において、2パスエンコードモードであると判断された場合、処理は、後述するステップS15に進む。
【0128】
ステップS9において、2パスエンコードモードではないと判断された場合、動作モードは、延長再エンコード区間設定モードであるので、ステップS10において、CPU11は、次に再エンコードされる延長再エンコード区間の再エンコード処理を実行させるために必要なパラメータを取得する。
【0129】
ステップS11において、CPU11は、次に再エンコードされる延長再エンコード区間のエンコード終端処理に必要なパラメータを取得する。
【0130】
ステップS12において、CPU11は、次に再エンコードされる延長再エンコード区間の再エンコード処理を実行させるために必要なストリーム、すなわち、ストリームBの最小再エンコード区間に続くGOPのデコーダ23への送出を制御する。
【0131】
ステップS13において、CPU11は、次に再エンコードされる延長再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0132】
ステップS14において、CPU11は、コントロールバス19、PCIブリッジ17、PCIバス14、および、ノースブリッジ12を介して、CPU20から、デコーダ23へのストリーム供給を停止させる要求を受けたか否かを判断する。
【0133】
すなわち、最小再エンコード区間における再エンコード処理において、目標VBV占有量よりも大きなVBV占有量で最小再エンコード区間のエンコードが終了された場合、CPU20は、CPU11に、デコーダ23へのストリーム供給を停止させる要求を送出する。
【0134】
ステップS14において、CPU20から、デコーダ23へのストリーム供給を停止させる要求を受けていない、すなわち、最小再エンコード区間における再エンコード処理において、目標VBV占有量よりも大きなVBV占有量で最小再エンコード区間のエンコードが終了されていないと判断された場合、処理は、ステップS10に戻り、それ以降の処理が繰り返される。ステップS14において、CPU20から、デコーダ23へのストリーム供給を停止させる要求を受けたと判断された場合、処理は、後述するステップS18に進む。
【0135】
ステップS9において、2パスエンコードモードであると判断された場合、ステップS15において、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なストリームのデコーダ22およびデコーダ23への送出を制御する。具体的には、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なストリーム、すなわち、ストリームAの編集点aまでの部分がデコーダ22に供給され、ストリームBの編集点b以降の部分(編集点b以降の部分のデコードに必要なフレームが編集点b以前に存在する場合は、そのフレームも含む)がデコーダ23に供給され、エフェクト/スイッチ26によって、編集点で接続され、必要に応じてエフェクトが施されるように、各部を制御させるための制御信号を生成し、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0136】
ステップS16において、CPU11は、最小再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0137】
ステップS17において、CPU11は、コントロールバス19、PCIブリッジ17、PCIバス14、および、ノースブリッジ12を介して、CPU20から、最小再エンコード区間のエンコードが成功したことの通知を受けたか否かを判断する。ステップS17において、最小再エンコード区間のエンコードが成功したことの通知を受けていないと判断された場合、処理は、ステップS15に戻り、それ以降の処理が繰り返される。
【0138】
ステップS14において、CPU20から、デコーダ23へのストリーム供給を停止させる要求を受けたと判断された場合、または、ステップS17において、最小再エンコード区間のエンコードが成功したことの通知を受けたと判断された場合、ステップS18において、CPU11は、最終的な再エンコード区間に続くフレームとして、Iピクチャに続いてBピクチャが配置されているか否かを判断する。ステップS18において、Iピクチャに続いてBピクチャが配置されていない、すなわち、Iピクチャに続いて、Pピクチャが配置されていると判断された場合、処理は、後述するステップS21に進む。
【0139】
ステップS18において、Iピクチャに続いてBピクチャが配置されていると判断された場合、ステップS19において、CPU11は、最終的な再エンコード区間に続くIピクチャ、1枚以上のBピクチャ、および、Pピクチャ、すなわち、図7において図中アに示されるフレームから図中イに示されるフレームまでの複数のフレームは、HDD16から読み出され、サウスブリッジ15、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給されているか否かを判断する。ステップS19において、Iピクチャ、1枚以上のBピクチャ、および、Pピクチャが、メモリ18に供給されていると判断された場合、処理は、後述するステップS21に進む。
【0140】
ステップS19において、Iピクチャ、1枚以上のBピクチャ、および、Pピクチャが、メモリ18に供給されていないと判断された場合、ステップS20において、CPU11は、最終的な再エンコード区間に続くIピクチャ、1枚以上のBピクチャ、および、Pピクチャのデコーダ23への供給を制御する。
【0141】
ステップS18において、Iピクチャに続いてBピクチャが配置されていない、すなわち、Iピクチャに続いて、Pピクチャが配置されていると判断された場合、ステップS19において、Iピクチャ、1枚以上のBピクチャ、および、Pピクチャが、メモリ18に供給されていると判断された場合、または、ステップS20の処理の終了後、ステップS21において、CPU11は、再エンコード区間外において表示出力されるストリームが、ストリームスプライサ25を介してデコーダ24に供給されてデコードされ、外部の表示装置などに供給されるように各部を制御させるための制御信号を生成し、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出して、処理が終了される。
【0142】
このような処理により、CPU11は、最小再エンコード区間を決定して、最小再エンコード区間の再エンコード処理、および、エンコード終端処理に必要なパラメータを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出するとともに、再エンコード区間のストリームの、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介した、メモリ18への供給と、デコーダ23(または、必要に応じて、デコーダ22)への供給を制御することができるようになされている。
【0143】
また、CPU11は、2パスエンコードモードにおいて、最小再エンコード区間において実行される再エンコードの結果、VBV占有量が連続するまで、最小再エンコード区間の再エンコードが実行されるように、各種制御を実行するので、できるだけ少ない再エンコード区間としつつ、VBVの制約を守るようにすることができる。これにより、画質の劣化を防止することができる。
【0144】
また、CPU11は、延長再エンコード設定モードにおいて、予め、次に再エンコードされる延長再エンコード区間の再エンコード処理、および、エンコード終端処理に必要なパラメータを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出するとともに、再エンコード区間が延長された場合に続いて再エンコードされるストリームを、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18に供給させ、デコーダ23(または、必要に応じて、デコーダ22)に供給させることができるようになされている。これにより、編集装置1は、再エンコード区間が延長され、延長再エンコード区間が設定された場合であっても、処理が遅延されたりとまったりすることがないため、連続して編集画像を再生出力させることが可能となる。
【0145】
次に、図13のフローチャートを参照して、図11のステップS2において実行される処理の第1の例である、最小再エンコード区間決定処理1について説明する。
【0146】
ステップS41において、CPU11は、編集されるそれぞれのストリームにおける編集点位置の情報を基に、図4を用いて説明したように、基準再エンコード区間を決定する。すなわち、ストリームAにおける編集点aを含むGOPの開始位置をαとし、ストリームBにおける編集点bを含むGOPの終了位置をβとしたとき、ストリームAおよびストリームBが編集点において接続されて生成されるストリームCにおける基準再エンコード区間は、編集点aおよびbを含むαからβまでの区間とされる。
【0147】
ステップS42において、CPU11は、基準となる1GOPフレーム数をNとして、基準再エンコード区間に含まれるフレーム数A+Bは、N/2≦A+B≦Nを満たすか否かを判断する。
【0148】
ステップS42において、フレーム数A+Bは、N/2≦A+B≦Nを満たすと判断された場合、ステップS43において、CPU11は、基準再エンコード区間を1GOPとして、最小再エンコード区間に設定し、処理は、図11のステップS2に戻り、ステップS3に進む。
【0149】
ステップS42において、フレーム数A+Bは、N/2≦A+B≦Nを満たさないと判断された場合、ステップS44において、CPU11は、基準となる1GOPフレーム数をNとして、基準再エンコード区間に含まれるフレーム数A+Bは、N+1≦A+B≦2N−1を満たすか否かを判断する。
【0150】
ステップS44において、フレーム数A+Bは、N+1≦A+B≦2N−1を満たすと判断された場合、ステップS45において、CPU11は、図6を用いて説明したように、基準再エンコード区間のフレーム数が偶数の場合は均等に分割し、奇数の場合は後ろが1フレーム多くなるように分割して、2GOPとし、最小再エンコード区間に設定する。
【0151】
また、このとき、フレーム数A+Bが割り切れない値であった場合、時間的に後ろとなるGOPのフレーム数が多くなるようにすると好適である。なぜなら、再エンコードされた符号化ストリームと、再エンコードしない部分の符号化ストリームとの接続部分のOccupancy(オキュパンシ)を合わせこむためのデコードおよびエンコードの処理において、時間的に後のGOPのフレーム数が多いほうが、符号割り当ての自由度が高くなるからである。
【0152】
ステップS44において、フレーム数A+Bは、N+1≦A+B≦2N−1を満たさないと判断された場合、ステップS46において、CPU11は、基準となる1GOPフレーム数をNとして、基準再エンコード区間に含まれるフレーム数A+Bは、0≦A+B<N/2を満たすか否かを判断する。
【0153】
ステップS46において、フレーム数A+Bは、0≦A+B<N/2を満たさないと判断された場合、フレーム数A+Bは、2N以上の値を有するので、ステップS47において、CPU11は、エラー処理を実行し、処理は、図11のステップS2に戻り、ステップS3に進む。
【0154】
ステップS46において、フレーム数A+Bは、0≦A+B<N/2を満たすと判断された場合、ステップS48において、CPU11は、基準再エンコード区間に含まれるフレーム数A+Bに、ストリームBの次のGOPのフレーム数を加えた値A+B+Cは、N/2≦A+B+C≦Nを満たすか否かを判断する。
【0155】
ステップS48において、A+B+Cは、N/2≦A+B+C≦Nを満たさないと判断された場合、すなわち、N<A+B+Cである場合、ステップS49において、CPU11は、図5を用いて説明したように、基準再エンコード区間にストリームBの次のGOPを加えたものを、1GOPがN/2≦x≦Nを満たすように分割して、2以上のGOPを設定して、最小再エンコード区間に設定する。このとき、それぞれのGOPに含まれるフレーム数ができるだけ均等になるように分割されると好適である。例えば、2GOPに分割される場合、A+B+Cのフレーム数が偶数の場合は均等に分割され、奇数の場合は後ろが1フレーム多くなるように分割されて、2GOPとされ、この2GOPが最小再エンコード区間に設定される。
【0156】
また、このとき、フレーム数A+B+Cが割り切れない値であった場合、時間的に後ろとなるGOPのフレーム数が多くなるようにすると好適である。なぜなら、再エンコードされた符号化ストリームと、再エンコードしない部分の符号化ストリームとの接続部分のOccupancy(オキュパンシ)を合わせこむためのデコードおよびエンコードの処理において、時間的に後のGOPのフレーム数が多いほうが、符号割り当ての自由度が高くなるからである。
【0157】
更に、A+B+Cのフレーム数をできるだけ均等に分割する以外に、予め定められた所定のフレーム数で、GOPを分割するものとしても良い。例えば、2つのうちの時間的に前のGOPを構成するフレーム数が必ず所定のフレーム数(例えば、N/2またはN/2以上となる最小の整数)となるようにして、GOPが分割されるものとしても良い。また、予め定められた所定のフレーム数は、それぞれのGOPにおいて、1GOPがN/2≦x≦Nを満たす区間で定められるものとすると好適である。
【0158】
ステップS49の処理の終了後、処理は、図12のステップS2に戻り、ステップS3に進む。
【0159】
ステップS48において、A+B+Cは、N/2≦A+B+C≦Nを満たすと判断された場合、ステップS50において、CPU11は、基準再エンコード区間にストリームBの次のGOPを加えたものを1GOPとして、最小再エンコード区間に設定し、処理は、図11のステップS2に戻り、ステップS3に進む。
【0160】
このような処理により、最小再エンコード区間の設定について、短いGOPを結果として残さない様にすることができ、いたずらに画質の劣化をもたらさないようにすることができる。そして、再エンコードを行う区間の各GOPに対し、出来る限り大きなGOP長となる様なエンコードを実施できるため、符号化効率が最大となり、より良い画質の符号化を期待することができる。
【0161】
なお、ステップS45の処理においては、基準再エンコード区間内のフレーム数をできるだけ均等になるように分割するものとして説明したが、ここでは、A+Bのフレーム数をできるだけ均等に分割する以外に、予め定められた所定のフレーム数で、GOPを分割するものとしても良い。
【0162】
次に、図14および図15のフローチャートを参照して、図12のステップS2において実行される処理の第2の例である、最小再エンコード区間決定処理2について説明する。
【0163】
ステップS61乃至ステップS64において、図14のステップS41乃至ステップS44と、基本的に同様の処理が実行される。
【0164】
すなわち、CPU11は、編集されるそれぞれのストリームにおける編集点位置の情報を基に、図4を用いて説明したように、基準再エンコード区間を決定する。そして、基準となる1GOPフレーム数をNとして、基準再エンコード区間に含まれるフレーム数A+Bは、N/2≦A+B≦Nを満たすと判断された場合、基準再エンコード区間を1GOPとして、最小再エンコード区間が設定される。
【0165】
そして、フレーム数A+Bは、N/2≦A+B≦Nを満たさないと判断された場合、基準となる1GOPフレーム数をNとして、基準再エンコード区間に含まれるフレーム数A+Bは、N+1≦A+B≦2N−1を満たすか否かが判断される。フレーム数A+Bは、N+1≦A+B≦2N−1を満たさないと判断された場合、処理は、後述するステップS67に進む。
【0166】
フレーム数A+Bは、N+1≦A+B≦2N−1を満たすと判断された場合、ステップS65において、CPU11は、基準再エンコード区間のうち、編集点より前にあるフレームの数Aは、A≧N/2を満たしているか否かを判断する。ステップS65において、A≧N/2を満たしていると判断された場合、処理は、後述するステップS72に進む。
【0167】
ステップS65において、A≧N/2を満たしていないと判断された場合、ステップS66において、CPU11は、フレーム数A+Bの値に基づいた所定のフレーム数になるように分割して2GOPとし、最小再エンコード区間に設定して、処理は、図12のステップS2に戻り、ステップS3に進む。
【0168】
また、このとき、例えば、2つのうちの時間的に前のGOPを構成するフレーム数が必ず所定のフレーム数(例えば、N/2またはN/2以上となる最小の整数)となるようにして、GOPが分割されるものとしても良い。具体的には、例えば、N=15のとき、A+B=16であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を8とし、A+B=17であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を9とし、A+B=18であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を10とするように、2つ目のGOPのフレーム数を変化させ、同様に、A+B=22であれば、1つ目のGOPのフレーム数を8、2つ目のGOPのフレーム数を14とするようにしても良い。
【0169】
このようにして、時間的に前のGOPのフレーム数を、再エンコードが困難とならないような所定の値に固定しておき、後のGOPのフレーム数が多くなるように設定すると、再エンコードしない部分の符号化ストリームとの接続部分のOccupancy(オキュパンシ)を合わせこむためのデコードおよびエンコードの処理において、時間的に後のGOPのフレーム数が多いほうが、符号割り当ての自由度が高くなるため、好適である。
【0170】
ステップS64において、フレーム数A+Bは、N+1≦A+B≦2N−1を満たさないと判断された場合、ステップS67乃至ステップS71において、図14のステップS46乃至ステップS50と基本的に同様の処理が繰り返される。
【0171】
すなわち、基準となる1GOPフレーム数をNとして、基準再エンコード区間に含まれるフレーム数A+Bは、0≦A+B<N/2を満たすか否かが判断され、フレーム数A+Bは、0≦A+B<N/2を満たさないと判断された場合、フレーム数A+Bは、2N以上の値を有するので、エラー処理が実行され、処理は、図12のステップS2に戻り、ステップS3に進む。そして、フレーム数A+Bは、0≦A+B<N/2を満たすと判断された場合、基準再エンコード区間に含まれるフレーム数A+Bに、ストリームBの次のGOPのフレーム数を加えた値A+B+Cは、N/2≦A+B+C≦Nを満たすか否かが判断される。
【0172】
A+B+Cは、N/2≦A+B+C≦Nを満たさないと判断された場合、すなわち、N<A+B+Cである場合、図5を用いて説明したように、基準再エンコード区間にストリームBの次のGOPを加えたものが、1GOPがN/2≦x≦Nを満たすように分割されて、2以上のGOPが設定されて、最小再エンコード区間に設定され、処理は、図12のステップS2に戻り、ステップS3に進む。このとき、A+B+Cのフレーム数ができるだけ均等になるようにGOPを分割するようにしてもよいし、上述したように、1GOPがN/2≦x≦Nを満たす区間で、予め定められた所定のフレーム数に基づいて、GOPを分割するものとしても良い。
【0173】
そして、A+B+Cは、N/2≦A+B+C≦Nを満たすと判断された場合、基準再エンコード区間にストリームBの次のGOPを加えたものが1GOPとされて、最小再エンコード区間に設定され、処理は、図12のステップS2に戻り、ステップS3に進む。
【0174】
ステップS65において、A≧N/2を満たしていると判断された場合、ステップS72において、CPU11は、編集点をGOPの切れ目としたとき、基準再エンコード区間の編集点より後ろのGOPのGOP数Bは、N/2≦Bを満たすか否かを判断する。
【0175】
ステップS72において、基準再エンコード区間の後ろのGOPのGOP数Bは、N/2≦Bを満たすと判断された場合、ステップS73において、CPU11は、編集点をGOPの切れ目として、基準再エンコード区間を2GOPに分割し、最小再エンコード区間に設定して、処理は、図12のステップS2に戻り、ステップS3に進む。
【0176】
なお、ステップS73の処理が実行された場合、図12を用いて説明したCPU11の処理のステップS7において、CPU11は、最小再エンコード区間において編集点より後ろのGOPのディスプレイ順における先頭をI2ピクチャとする(換言すれば、B0およびB1ピクチャを省略する)ことを示す情報を、再エンコードに必要なパラメータとして、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
【0177】
ステップS72において、基準再エンコード区間の後ろのGOPのGOP数Bは、N/2≦Bを満たさないと判断された場合、ステップS74において、CPU11は、編集点をGOPの切れ目としたとき、基準再エンコード区間の後ろのGOPのGOP数Bに、ストリームBの次のGOPのフレーム数Cを加えたB+Cは、N/2≦B+C≦Nを満たすか否かを判断する。
【0178】
ステップS74において、N/2≦B+C≦Nが満たされると判断された場合、ステップS75において、CPU11は、基準再エンコード区間にストリームBの次のGOPを加えたものを、1GOP目が編集点より前、2GOP目を編集点より後ろの部分として、最小再エンコード区間に設定して、処理は、図12のステップS2に戻り、ステップS3に進む。
【0179】
ステップS74において、N/2≦B+C≦Nを満たさないと判断された場合、ステップS76において、CPU11は、B+Cは、N/2>B+Cを満たすか否かを判断する。
【0180】
ステップS76において、N/2>B+Cが満たされないと判断された場合、B+C>Nであるので、ステップS77において、CPU11は、基準再エンコード区間にストリームBの次のGOPを加えたものを、1GOP目が編集点より前、2GOP目および3GOP目を、編集点より後ろの部分、すなわち、フレーム数がB+Cフレームである部分を2GOPに分割したそれぞれのGOPであるものとして、この3GOPを最小再エンコード区間に設定し、処理は、図12のステップS2に戻り、ステップS3に進む。
【0181】
ステップS76において、N/2>B+Cが満たされると判断された場合、ステップS78において、CPU11は、更に、ストリームBの次のGOPのフレーム数を加えたフレーム数は、N/2と等しいか、または、大きいかを判断する。ステップS78において、フレーム数はN/2より小さいと判断された場合、フレーム数が、N/2と等しいか、または、大きいと判断されるまで、ステップS78の処理が繰り返される。
【0182】
ステップS78において、フレーム数が、N/2と等しいか、または、大きいと判断された場合、ステップS79において、CPU11は、基準再エンコード区間にストリームBの複数GOPを加えたものを、1GOP目が編集点より前、2GOP目を編集点より後ろの部分として、最小再エンコード区間に設定して、処理は、図12のステップS2に戻り、ステップS3に進む。
【0183】
このような処理により、最小再エンコード区間の設定について、GOPを構成するフレーム数と、編集点の位置とを考慮して、いたずらに画質の劣化をもたらさないようなGOP構成とすることができる。それにより、より良い画質の符号化を期待することができる。
【0184】
なお、ステップS66の処理においては、A+Bのフレーム数をできるだけ均等に分割する以外に、予め定められた所定のフレーム数で、GOPを分割するものとして説明したが、ここでは、基準再エンコード区間内のフレーム数をできるだけ均等になるように分割するものとしても良い。
【0185】
次に、図16のフローチャートを参照して、2パスエンコードモードにおいて実行される、CPU20の処理1について説明する。
【0186】
ステップS81において、CPU20は、図11のステップS7においてCPU11により送出された、最小再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータを取得する。
【0187】
ステップS82において、CPU20は、最小再エンコード区間のVBV開始値V1とVBV目標値V2とを取得する。
【0188】
ステップS83において、図18を用いて後述する最小再エンコード区間の符号配分決定処理が実行される。
【0189】
ステップS84において、CPU20は、決定された符号配分に基づいて、最小再エンコード区間のデコードおよびエンコード、並びに、編集点の接続の制御を開始する。すなわち、CPU20は、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU11から送出される制御信号を基に、ストリームAの最小再エンコード区間以前の部分のデータは、ストリームスプライサ25を介して、デコーダ24に供給され、スイッチ29を介して、外部の表示装置などに出力されるように、PCIブリッジ17、ストリームスプライサ25、デコーダ24、および、スイッチ29の動作を制御し、ストリームAの最小再エンコード区間のデータがデコーダ22に供給されてデコードされ、ストリームBの編集点b以降の部分(編集点b以降の部分のデコードに必要なフレームが編集点b以前に存在する場合は、そのフレームも含む)がデコーダ23に供給され、エフェクト/スイッチ26によって、デコードされたそれぞれのストリームが編集点で接続され、必要に応じてエフェクトが施された後、スイッチ29を介して、外部の表示装置などに出力されるとともに、エンコーダ27によってエンコードされるように、PCIブリッジ17、デコーダ22、デコーダ23、エフェクト/スイッチ26、エンコーダ27、および、スイッチ29の動作を制御する。
【0190】
ステップS85において、CPU20は、最小再エンコード区間の再エンコードは終了したか否かを判断する。最小再エンコード区間の再エンコードは終了していないと判断された場合、最小再エンコード区間の再エンコードは終了したと判断されるまで、ステップS85の処理が繰り返される。
【0191】
ステップS85において、最小再エンコード区間の再エンコードは終了したと判断された場合、ステップS86において、CPU20は、最小再エンコード区間の再エンコード終了点のVBV値は、VBV目標値に合致するか否かを判断する。
【0192】
例えば、ステップS82において、図17に示される最小再エンコード区間におけるVBV開始値V1とVBV目標値V2とが取得される。そして、再エンコード終了点のVBV値は、VBV目標値であるV2より大きな値となるか否かが判断される。
【0193】
ステップS86において、再エンコード終了点のVBV値は、VBV目標値に合致しないと判断された場合、ステップS87において、CPU20は、最小再エンコード区間において実施された再エンコード処理に関するパラメータとして、実際のエンコード結果によるVBV到達点、および、最小再エンコード区間の符号の総発生符号量Gを取得する。実際のエンコード結果によるVBV到達点は、例えば、図17において、V3で示される。
【0194】
ステップS88において、CPU20は、VBV目標値に対するVBV達成値の差分を求める。
【0195】
すなわち、CPU20は、図17に示されるように、最小再エンコード区間におけるVBV開始値V1とVBV目標値V2、実際のエンコード結果によるVBV到達点V3、および、最小再エンコード区間の符号の総発生符号量Gを基に、V2−V3をVBV Buffer上昇分の担保とする。
【0196】
ステップS89において、CPU20は、ステップS88において求められた、VBV目標値に対するVBV到達値の差分を基に、発生符号量の再計算を実行し、処理は、ステップS84に戻り、それ以降の処理が繰り返される。
【0197】
すなわち、CPU20は、VBV Buffer上昇分V2−V3を考慮して、最小再エンコード区間を再度エンコードする場合、TM5の発生符号目標値計算において、G‘=G−(V2−V3)−Δを用いる。ここで、Δは、画質を考慮した上での各機器で考慮するマージン分とする。
【0198】
ステップS86において、再エンコード終了点のVBV値は、VBV目標値に合致する、すなわち、Occupancyの連続性が保たれたと判断された場合、ステップS90において、図20を用いて後述するエンコード終端処理が実行され、処理が終了される。
【0199】
このような処理により、再エンコード区間の終了点において、VBV目標値に合致するか否かが判断され、VBV目標値に合致しなかった場合、1回目のエンコードの実績に基づいて、もう一度、最小再エンコード区間の再エンコードが実行されるので、2回目には、再エンコード区間の終了点において、VBV目標値に合致することができるような再エンコード処理が実行されるように符号配分が決定される可能性が高くなる。
【0200】
なお、ここでは、ステップS83において、図18を用いて後述する最小再エンコード区間の符号配分決定処理が実行されて、符号配分が決定されるものとして説明するが、ここでは、VBV目標値V2に対して、最小再エンコード区間の符号配分を決定することが可能であれば、符号配分の決定方法は、いずれの方法を用いてもよい。
【0201】
また、ここでは、最小再エンコード区間の1回目の再エンコード処理によってVBV目標値に到達しなかった場合、再度、最小再エンコード区間を再エンコードするものとして説明しているが、最小再エンコード区間が複数のGOPで構成されているとき、全てのGOPの再エンコードを繰り返すことなく、最後の1GOPのみ、または、後ろから複数のGOPのみの再エンコードを、符号配分を変更して繰り返すようにしてもよい。
【0202】
次に、図18のフローチャートを参照して、図16のステップS83において実行される最小再エンコード区間の符号配分決定処理について説明する。
【0203】
ステップS111において、CPU20は、ステップS82において取得された、最小再エンコード区間のVBV開始値V1とVBV目標値V2とに基づいて、V2−V1を求める。
【0204】
ステップS112において、CPU20は、最小再エンコード区間において、平均的な絵柄が続いた場合を仮定し、その場合の発生符号量Gを求める。
【0205】
すなわち、編集点を含んだ最小再エンコード区間に対して、VBV開始点からVBV目標点までの符号化を行う際、この部分のエンコード処理に関しては、まだ、何の実績も無いので、最小再エンコード区間の終了点において、VBV占有量がいずれの値に到達するかを推定するための根拠がない。このため、エンコード終了点におけるVBV到達点の推定処理は容易ではない。そこで、CPU20は、図19に示されるように、最小再エンコード区間に含まれる画像が平均的な絵柄である、すなわち、VBV到達点もV1となることを想定して、その場合の発生符号量Gを求める。
【0206】
そして、ステップS113において、CPU20は、V2−V1を、VBV上昇分として考慮し、最小再エンコード区間における発生符号量を求める。
【0207】
すなわち、CPU20は、最小再エンコード区間に含まれる画像が平均的な絵柄であることを想定した上で、ステップS82において取得された、最小再エンコード区間のVBV開始値V1とVBV目標値V2に基づいて、図19に示されるV2−V1を、VBV上昇分として担保する。そして、CPU20は、TM5の発生符号目標値計算において、G‘=G−(V2−V1)−Δを求める。ここで、Δは、画質を考慮した上での各機器で考慮するマージン分とする。
【0208】
そして、ステップS114において、CPU20は、ステップS113により求められた発生符号量に基づいて、最小再エンコード区間の符号配分を決定し、処理は、図16のステップS83に戻り、ステップS84に進む。
【0209】
このような処理により、最小再エンコード区間の最初の再エンコード時における発生符号量の配分が決定される。これにより、V2−V1が正の値であっても負の値であっても、TM5の発生符号目標値計算において、Gの値を最小再エンコード区間に含まれる画像が平均的な絵柄であるとしたときよりも適切な発生符号量を割り当てて、バッファアンダーフローを防止しつつ、画質劣化を抑制することが可能となる。
【0210】
次に、図20のフローチャートを参照して、図16のステップS90において実行される、エンコード終端処理について説明する。
【0211】
ステップS121において、CPU20は、次のGOPのエンコード前に、次のGOPのBピクチャの量子化マトリクスを設定する。
【0212】
ステップS122において、CPU20は、Iピクチャから次のPピクチャの直前までの区間の再エンコードを実行する。
【0213】
ステップS123において、CPU20は、VBV目標値を次のGOPの最初のPピクチャの直前のVBV値に設定し、再エンコード終了点のVBV値は、VBV目標値に合致するか否かを判断する。このとき、オリジナルのストリーム(例えば、図4などにおけるストリームB)のIピクチャのビット量を用いて、再エンコード終了点のVBV値は、VBV目標値に合致するか否かの判断が実行される。
【0214】
ステップS123において、VBV目標値に合致した、すなわち、Occupancyの連続性が保たれたと判断された場合、ステップS124において、CPU20は、再エンコードを終了し、Iピクチャをオリジナルのストリーム(例えば、図4などにおけるストリームB)のIピクチャに置き換えて、このGOPの最初のPピクチャの直前までの再エンコード画像を、編集画像として採用するように、各部を制御して、処理は、図16のステップS90に戻り、処理が終了される。
【0215】
ステップS123において、VBV目標値に合致しなかったと判断された場合、ステップS125において、CPU20は、再エンコードを終了し、前のGOPまでの再エンコード画像を採用する、すなわち、ストリームスプライサ25に供給されたオリジナルのストリームBにおいて、最初のPピクチャの前に配置されている1枚または複数枚のBピクチャを編集画像として採用する処理を実行して(換言すれば、ステップS122において再エンコードされた、次のPピクチャの直前までの区間の再エンコード結果を破棄して)、処理は、図16のステップS90に戻り、処理が終了される。
【0216】
このような処理により、GOPの切れ目でVBVが連続した場合、次のPピクチャの直前まで再エンコードされる区間が延長され、その再エンコードされる区間の終了点でVBVが連続するように、再エンコードが制御される。そして、次のPピクチャにおいてVBVが連続した場合、編集データとして、次のGOPの最初のPピクチャの直前までのBピクチャが加えられる。
【0217】
次に、図21のフローチャートを参照して、延長再エンコード区間設定モードにおいて実行される、CPU20の処理2について説明する。
【0218】
ステップS151において、CPU20は、図11のステップS7においてCPU11により送出された、最小再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータを取得する。
【0219】
ステップS152において、CPU20は、最小再エンコード区間のVBV開始値V1とVBV目標値V2とを取得する。
【0220】
ステップS153において、図18を用いて説明した、最小再エンコード区間の符号配分決定処理が実行される。
【0221】
ステップS154において、CPU20は、決定された符号配分に基づいて、最小再エンコード区間のデコードおよびエンコード、並びに、編集点の接続の制御を開始する。すなわち、CPU20は、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU11から送出される制御信号を基に、ストリームAの最小再エンコード区間以前の部分のデータは、ストリームスプライサ25を介して、デコーダ24に供給され、スイッチ29を介して、外部の表示装置などに出力されるように、PCIブリッジ17、ストリームスプライサ25、デコーダ24、および、スイッチ29の動作を制御し、ストリームAの最小再エンコード区間のデータがデコーダ22に供給されてデコードされ、ストリームBの編集点b以降の部分(編集点b以降の部分のデコードに必要なフレームが編集点b以前に存在する場合は、そのフレームも含む)がデコーダ23に供給され、エフェクト/スイッチ26によって、デコードされたそれぞれのストリームが編集点で接続され、必要に応じてエフェクトが施された後、スイッチ29を介して、外部の表示装置などに出力されるとともに、エンコーダ27によってエンコードされるように、PCIブリッジ17、デコーダ22、デコーダ23、エフェクト/スイッチ26、エンコーダ27、および、スイッチ29の動作を制御する。
【0222】
ステップS155において、CPU20は、図12のステップS13においてCPU11により送出された、延長再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータを取得する。
【0223】
ステップS156において、CPU20は、延長再エンコード区間のVBV開始値V1’とVBV目標値V2’とを取得する。
【0224】
ステップS157において、CPU20は、現在設定されている再エンコード区間(例えば、1回目のステップS157の処理においては、最小再エンコード区間、それ以降に実行されるステップS157の処理においては、延長再エンコード区間)の再エンコードは終了したか否かを判断する。ステップS157において、現在設定されている区間の再エンコードは終了していないと判断された場合、現在設定されている区間の再エンコードは終了したと判断されるまで、ステップS157の処理が繰り返される。
【0225】
ステップS157において、現在設定されている区間の再エンコードは終了したと判断された場合、ステップS158において、CPU20は、再エンコード終了点のVBV値は、VBV目標値に合致するか否かを判断する。
【0226】
ステップS158において、再エンコード終了点のVBV値は、VBV目標値に合致しないと判断された場合、ステップS159において、図22または図24を用いて後述する、延長再エンコード区間の設定処理が実行される。
【0227】
ステップS160において、CPU20は、ステップS159において決定した、次のGOP延長再エンコード区間の符号配分に基づいて、次に再エンコードされる延長再エンコード区間のデコードおよびエンコードの開始を制御し、処理は、ステップS155に戻り、それ以降の処理が繰り返される。
【0228】
ステップS158において、再エンコード終了点のVBV値は、VBV目標値に合致する、すなわち、Occupancyの連続性が保たれたと判断された場合、ステップS161において、図20を用いて説明したエンコード終端処理が実行され、処理が終了される。
【0229】
このような処理により、再エンコード区間の終了点において、VBV目標値に合致するか否かが判断され、VBV目標値に合致しなかった場合、再エンコード区間が延長されるので、再エンコードがリトライされない。そのため、編集時にリアルタイムで編集画像を表示させる場合などの応答性が向上する。
【0230】
また、ある再エンコード区間の処理が終了する前に、次に再エンコードされる延長再エンコード区間を再エンコードするために必要な情報が取得されるので、再エンコード区間が延長された場合でも、処理が遅延されるようなことがない。
【0231】
次に、図22のフローチャートを参照して、図21のステップS159において実行される処理の第1の例である、延長再エンコード区間の設定処理1について説明する。
【0232】
ステップS181において、CPU20は、ステップS156において取得された、延長再エンコード区間のVBV開始値V1´とVBV目標値V2´とに基づいて、V2´−V1´を求める。
【0233】
ステップS182において、CPU20は、延長再エンコード区間において、平均的な絵柄が続いた場合を仮定し、その場合の発生符号量Gを求める。
【0234】
すなわち、CPU20は、最小再エンコード区間における場合と同様にして、延長再エンコード区間に含まれる画像が平均的な絵柄であること、すなわち、再エンコード終了点がV1´となる場合を想定した発生符号量Gを基に、VBV Bufferの上昇分を考慮し、発生符号量G´を求めるものとする。
【0235】
そして、ステップS183において、CPU20は、V2´−V1´を、VBV上昇分として考慮し、延長再エンコード区間における発生符号量を求める。
【0236】
すなわち、CPU20は、延長再エンコード区間に含まれる画像が平均的な絵柄であることを想定した上で、ステップS156において取得された、延長再エンコード区間のVBV開始値V1´とVBV目標値V2´に基づいて、V2´−V1´、すなわち、図23に示されるV2´−V1´を、VBV上昇分として担保する。そして、CPU20は、TM5の発生符号目標値計算において、G‘=G−(V2´−V1´)−Δを求める。ここで、Δは、画質を考慮した上での各機器で考慮するマージン分とする。
【0237】
ステップS184において、CPU20は、図21のステップS155において取得した、次にエンコードされる延長再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータ、並びに、ステップS183において求められた延長再エンコード区間における発生符号量G´を基に、符号配分が決定され、延長再エンコード区間の再エンコードの設定を行い、処理は、図21のステップS159に戻り、ステップS160に進む。
【0238】
このような処理により、延長再エンコード区間における符号量の配分が求められる。
【0239】
ところで、延長再エンコード区間においては、編集点が存在しないことから、ストリームBの編集点以降のオリジナルのエンコードにおいて、オリジナルのVBV開始点からVBV目標点までの符号化実績が存在する。したがって、この符号化実績を用いて、発生符号量を算出すると好適である。例えば、オリジナルの符号化実績よりも量子化を粗くすることにより、オリジナルのVBV開始点よりVBV占有量の値の少ない延長再エンコード区間開始点からオリジナルのVBV目標点へバッファ占有量が移行するような符号配分が可能となる。
【0240】
次に、図24のフローチャートを参照して、図21のステップS159において実行される処理の第2の例である、延長再エンコード区間の設定処理2について説明する。
【0241】
ステップS201において、CPU20は、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU11から、延長再エンコード区間におけるオリジナルのVBV開始値におけるバッファ占有量V4を取得する。
【0242】
すなわち、図25に示されるように、延長再エンコード区間となるGOPのオリジナル、すなわち、編集素材であるストリームBがエンコードされた場合のこの区間におけるVBV開始点のバッファ占有量をV4、再エンコード時のVBV開始点、すなわち、最長再エンコード区間の一つ前の区間における再エンコードの終了点におけるバッファ占有量をV1´、この延長再エンコード区間となるGOPのVBV目標点をV2´とすると、延長再エンコード区間に対応するオリジナルストリーム、すなわち、編集素材であるストリームBの対応するGOPにおいては、符号化が実行されることによりバッファ占有量がV4からV2´に変化したという実績がある。この処理においては、この符号化実績を利用して、符号配分が設定される。
【0243】
ステップS202において、CPU20は、ステップS156において取得された、延長再エンコード区間のVBV開始値V1´と、ステップS201において取得された延長再エンコード区間におけるオリジナルのVBV開始値におけるバッファ占有量V4に基づいて、V4−V1´を求める。
【0244】
ステップS203において、CPU20は、図22のステップS132における場合と同様に、延長再エンコード区間において、平均的な絵柄が続いた場合を仮定し、その場合の発生符号量Gを求める。
【0245】
そして、ステップS204において、CPU20は、V4−V1´を、VBV上昇分として考慮し、延長再エンコード区間における発生符号量を求める。
【0246】
すなわち、CPU20は、延長再エンコード区間に対応するオリジナルストリーム、すなわち、編集素材であるストリームBの対応するGOPにおいては、符号化が実行されることによりバッファ占有量がV4からV2´に変化したという実績に基づいて、V4−V1´、すなわち、図25に示されるV4−V1´を、VBV上昇分として担保する。そして、CPU20は、TM5の発生符号目標値計算において、G″=G−(V4−V1´)−Δを求める。ここで、Δは、画質を考慮した上での各機器で考慮するマージン分とする。
【0247】
ステップS205において、CPU20は、図21のステップS155において取得した、次にエンコードされる延長再エンコード区間の再エンコード処理を実行させるために必要なパラメータおよびエンコード終端処理に必要なパラメータ、並びに、ステップS204において求められた延長再エンコード区間における発生符号量G″を基に、符号配分を決定して、延長再エンコード区間の再エンコードの設定を行い、処理は、図21のステップS159に戻り、ステップS160に進む。
【0248】
このような処理により、延長再エンコード区間の発生符号量の配分が決定される。これにより、V4−V1´が正の値であっても負の値であっても、TM5の発生符号目標値計算において、Gの値を最小再エンコード区間に含まれる画像が平均的な絵柄であるとしたときよりも適切な発生符号量を割り当てて、バッファアンダーフローを防止しつつ、画質劣化を抑制することが可能となる。
【0249】
なお、ここでは、コーディックの方式としてMPEGを用いた場合を例として説明しているが、フレーム相関を伴うコーディック処理を行う場合、バッファモデリングにしたがうコーディック処理を行う場合においても、本発明は適用可能であることはいうまでもない。例えば、AVC(Advanced Video Coding)/H.264などにおいて、本発明は適用可能である。
【0250】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。この場合、例えば、図3を用いて説明した編集装置1は、図26に示されるようなパーソナルコンピュータ301により構成される。
【0251】
図26において、CPU(Central Processing Unit)311は、ROM(Read Only Memory)312に記憶されているプログラム、または記憶部318からRAM(Random Access Memory)313にロードされたプログラムにしたがって、各種の処理を実行する。RAM313にはまた、CPU311が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0252】
CPU311、ROM312、およびRAM313は、バス314を介して相互に接続されている。このバス314にはまた、入出力インタフェース315も接続されている。
【0253】
入出力インタフェース315には、キーボード、マウスなどよりなる入力部316、ディスプレイやスピーカなどよりなる出力部317、ハードディスクなどより構成される記憶部318、モデム、ターミナルアダプタなどより構成される通信部319が接続されている。通信部319は、インターネットを含むネットワークを介しての通信処理を行う。
【0254】
入出力インタフェース315にはまた、必要に応じてドライブ320が接続され、磁気ディスク331、光ディスク332、光磁気ディスク333、もしくは、半導体メモリ334などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部318にインストールされる。
【0255】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0256】
この記録媒体は、図26に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク331(フロッピディスクを含む)、光ディスク332(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク333(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ334などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM312や、記憶部318に含まれるハードディスクなどで構成される。
【0257】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0258】
なお、上述の実施の形態においては、編集装置1が、それぞれ、デコーダとエンコーダを有しているものとして説明したが、デコーダおよびエンコーダが、それぞれ、独立した装置として構成されている場合においても、本発明は適用可能である。例えば、図27に示されるように、ストリームデータを復号してベースバンド信号に変換する復号装置371、ベースバンド信号を符号化してストリームデータに変換する符号化装置372が、それぞれ独立した装置として構成されていても良い。
【0259】
このとき、復号装置371は、映像素材である圧縮符号化データを復号し、符号化装置372に供給するのみならず、本発明を適用することにより符号化装置372により部分的に符号化された後、編集されて生成された圧縮符号化データの供給を受け、復号処理を行い、ベースバンド信号に変換することができる。ベースバンド信号に変換された編集後のストリームは、例えば、所定の表示装置に供給されて表示されたり、他の装置に出力されて、必要な処理が施される。
【0260】
さらに、上述の実施の形態においては、デコーダ22乃至24が、供給された圧縮符号化データを完全にデコードせず、対応するエンコーダ27が、非完全に復号されたデータの対応する部分を部分的にエンコードする場合においても、本発明は適用可能である。
【0261】
例えば、デコーダ22乃至24が、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していなかった場合、エンコーダ27は、量子化および可変長符号化処理を行うが、DCT変換処理は行わない。このような部分的な符号化(中途段階からの符号化)を行うエンコーダにおいても、本発明を適用することができるのは言うまでもない。
【0262】
さらに、上述の実施の形態においては、デコーダ22乃至24が完全に復号したベースバンド信号を、エンコーダ27が中途段階まで符号化する場合(例えば、DCT変換および量子化を行うが可変長符号化処理を行わないなど)や、デコーダ22乃至24が完全に復号していない(例えば、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していない)ため、中途段階まで符号化されているデータに対して、エンコーダ27が更に中途段階まで符号化する場合など(例えば、量子化を行うが可変長符号化処理を行わないなど)においても、本発明は適用可能である。
【0263】
更に、図27に示される復号装置371が、供給されたストリームデータを完全に復号せず、対応する符号化装置372が、非完全に復号されたデータの対応する部分を部分的に符号化する場合においても、本発明は適用可能である。
【0264】
例えば、復号装置371が、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していなかった場合、符号化装置372は、量子化および可変長符号化処理を行うが、DCT変換処理は行わない。このような部分的な復号処理(中途段階までの復号)を行う復号装置371のデコード処理、および、符号化(中途段階からの符号化)を行う符号化装置372のエンコード処理において、本発明を適用することができるのは言うまでもない。
【0265】
更に、復号装置371が完全に復号したベースバンド信号を、符号化装置372が中途段階まで符号化する場合(例えば、DCT変換および量子化を行うが可変長符号化処理を行わないなど)や、復号装置371が完全に復号していない(例えば、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していない)ため、中途段階まで符号化されているデータに対して、符号化装置372が更に中途段階まで符号化する場合など(例えば、量子化を行うが可変長符号化処理を行わないなど)においても、本発明は適用可能である。
【0266】
更に、このような部分的な復号を行う(復号処理の工程のうちの一部を実行する)符号化装置31と部分的な符号化を行う(符号化処理の工程のうちの一部を実行する)符号化装置372で構成されたトランスコーダ381においても、本発明は適用可能である。このようなトランスコーダ381は、例えば、スプライシングなどの編集を行う編集装置382、すなわち、上述した編集装置1のストリームスプライサ25やエフェクト/スイッチ26が実行可能な機能を有する編集装置が利用される場合などに用いられる。
【0267】
さらに、上述の実施の形態においては、CPU11およびCPU20がそれぞれ別の形態で構成されているが、これに限らず、編集装置1全体を制御する1つのCPUとして構成する形態も考えられる。同様に、上述の実施の形態においては、メモリ13およびメモリ21がそれぞれ別の形態で構成されているが、これに限らず、編集装置1において1つのメモリとして構成する形態も考えられる。
【0268】
さらに、上述の実施の形態においては、HDD16、デコーダ22乃至24、ストリームスプライサ25、エフェクト/スイッチ26、エンコーダ27、入力端子28、および、スイッチ29を、それぞれ、ブリッジおよびバスを介して接続し、編集装置として一体化されている場合について述べたが、本発明はこれに限らず、例えば、これらの構成要素のうちの一部が、外部から有線または無線で接続されるようにしても良いし、これらの構成要素は、この他、種々の接続形態で相互に接続されるようにしてもよい。
【0269】
さらに、上述の実施の形態においては、圧縮された編集用の素材がHDDに記憶されている場合について述べたが、本発明はこれに限らず、例えば、光ディスク、光磁気ディスク、半導体メモリ、磁気ディスク等の種々の記録媒体に記録された編集用の素材を用いて編集処理を行う場合にも適用することができる。
【0270】
さらに、上述の実施の形態においては、デコーダ22乃至24、ストリームスプライサ25、エフェクト/スイッチ26、エンコーダ27、入力端子28、および、スイッチ29は、同一の拡張カード(例えば、PCIカード、PCI−Expressカード)に搭載する形態に限らず、例えばPCI−Expressなどの技術によりカード間の転送速度が高い場合には、それぞれ別の拡張カードに搭載してもよい。
【0271】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0272】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0273】
【図1】編集と部分再エンコードについて説明するための図である。
【図2】部分再エンコードおよび編集処理を実行した場合のVBVバッファについて説明するための図である。
【図3】編集装置の構成を示すブロック図である。
【図4】最小再エンコード区間の設定について説明するための図である。
【図5】最小再エンコード区間の設定について説明するための図である。
【図6】最小再エンコード区間の設定について説明するための図である。
【図7】エンコード終端処理について説明するための図である。
【図8】再エンコード区間の延長について説明するための図である。
【図9】編集装置の機能構成を示す機能ブロック図である。
【図10】制御部の機能構成を示す機能ブロック図である。
【図11】CPU11の処理について説明するためのフローチャートである。
【図12】CPU11の処理について説明するためのフローチャートである。
【図13】最小再エンコード区間決定処理1について説明するためのフローチャートである。
【図14】最小再エンコード区間決定処理2について説明するためのフローチャートである。
【図15】最小再エンコード区間決定処理2について説明するためのフローチャートである。
【図16】CPU20の処理1について説明するためのフローチャートである。
【図17】VBV占有量について説明するための図である。
【図18】最小再エンコード区間の符号配分決定処理について説明するためのフローチャートである。
【図19】VBV占有量について説明するための図である。
【図20】エンコード終端処理について説明するためのフローチャートである。
【図21】CPU20の処理2について説明するためのフローチャートである。
【図22】延長再エンコード区間の設定処理1について説明するためのフローチャートである。
【図23】VBV占有量について説明するための図である。
【図24】延長再エンコード区間の設定処理2について説明するためのフローチャートである。
【図25】VBV占有量について説明するための図である。
【図26】パーソナルコンピュータの構成を示すブロック図である。
【図27】本発明を適用可能な異なる装置の構成について説明するための図である。
【符号の説明】
【0274】
1 編集装置, 11 CPU, 16 HDD, 20 CPU, 22乃至24 デコーダ, 25 ストリームスプライサ, 26 エフェクト/スイッチ, 27 エンコーダ, 29 スイッチ, 101 制御部, 102 取得部, 103 デコーダ, 132 再エンコード区間決定部, 133 動作モード決定部, 154 符号化制御部, 155 動作モード判定部

【特許請求の範囲】
【請求項1】
第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理を実行する情報処理装置において、
前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する区間を決定する制御手段と、
前記第1の符号化ストリームおよび前記第2の符号化ストリームをデコードするデコード手段と、
前記第1の符号化ストリームが前記デコード手段によりデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームが前記デコード手段によりデコードされて生成された第2のベースバンド信号とが、前記編集点で接続された第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成するエンコード手段と、
前記エンコード手段によるエンコード処理の発生符号量を管理する管理手段と
を備え、
前記制御手段は、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間を決定し、
前記管理手段は、前記第1の区間において、前記エンコード手段によりエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、
前記制御手段は、前記管理手段により、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間として、更に再エンコードを実行する第1の動作モードと、前記第1の区間におけるエンコード処理を再度実行させる第2の動作モードとのいずれかに基づいて、前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する区間を決定する
情報処理装置。
【請求項2】
前記デコード手段への前記第1の符号化ストリームおよび前記第2の符号化ストリームの供給を制御する供給制御手段
を更に備える請求項1に記載の情報処理装置。
【請求項3】
前記管理手段は、第1の動作モードにおいて、前記第2の区間における前記エンコード手段によるエンコード処理の発生符号量を、前記第2の符号化ストリームにおける対応する部分のオキュパンシを基に管理する
請求項1に記載の情報処理装置。
【請求項4】
前記管理手段は、第2の動作モードにおいて、オキュパンシの連続性が保たれなかったと判断された場合における前記第1の区間の前記第3の符号化ストリームの終了点のオキュパンシに基づいて、前記第1の区間における2回目の前記エンコード手段によるエンコード処理の発生符号量を管理する
請求項1に記載の情報処理装置。
【請求項5】
前記エンコード手段は、MPEGのLong GOP形式でエンコード処理を実行し、
前記第2の区間は、1GOPに対応する区間である
請求項1に記載の情報処理装置。
【請求項6】
前記エンコード手段は、MPEGのLong GOP形式でエンコード処理を実行し、
前記管理手段により、前記オキュパンシの連続性が保たれたと判断された場合、前記制御手段は、前記第1の区間に続く次のGOPの最初の前方向参照フレームの直前までのフレームを、再エンコードを実行する第3の区間として、更に追加する
請求項1に記載の情報処理装置。
【請求項7】
前記エンコード手段は、MPEGのLong GOP形式でエンコード処理を実行し、
前記制御手段は、前記第1の符号化ストリームにおける前記編集点を含むGOPの開始位置から、前記第2の符号化ストリームにおける前記編集点を含むGOPの終了位置までを基準区間とし、前記基準区間に含まれるフレーム数を基に、前記第1の区間を決定する
請求項1に記載の情報処理装置。
【請求項8】
前記制御手段は、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、N/2≦M≦Nを満たす場合、前記基準区間を前記第1の区間とする
請求項7に記載の情報処理装置。
【請求項9】
前記制御手段は、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、0≦M<N/2を満たす場合、前記基準区間に1GOP加えた区間を前記第1の区間とする
請求項7に記載の情報処理装置。
【請求項10】
前記制御手段は、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、N+1≦M≦2N−1を満たす場合、前記基準区間を複数GOPに分割するとともに、前記基準区間を前記第1の区間とする
請求項7に記載の情報処理装置。
【請求項11】
前記制御手段は、前記基準区間に含まれるフレーム数Mが、基準となる1GOPに含まれるフレーム数Nに対して、N+1≦M≦2N−1を満たし、前記第1の符号化ストリームにおける前記編集点を含むGOPの開始位置から前記編集点までのフレーム数Aが、A≧N/2を満たす場合、前記基準区間を、前記編集点で2つのGOPに分割する
請求項7に記載の情報処理装置。
【請求項12】
前記エンコード手段は、前記編集点で分割された2つのGOPのうちの時間的に後のGOPは、表示順でI2ピクチャから開始されるように、前記第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成する
請求項11に記載の情報処理装置。
【請求項13】
前記制御手段は、前記編集点で分割された2つのGOPのうちの時間的に後のGOPに含まれるフレーム数Rが、N/2≦Rを満たさないとき、前記基準区間に1GOP加えた区間を前記第1の区間とし、N/2≦Rを満たすとき、前記基準区間を前記第1の区間とする
請求項11に記載の情報処理装置。
【請求項14】
第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理を実行する情報処理装置の情報処理方法において、
前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間を決定し、
前記第1の区間内の前記第1の符号化ストリームおよび前記第2の符号化ストリームをデコードするとともに、前記第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが、前記編集点で接続された第3のベースバンド信号をエンコードして、第3の符号化ストリームを生成し、
前記第1の区間においてエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、
第1の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間として、更に、再エンコードを実行し、
第2の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間における再エンコード処理を再度実行する
ステップを含む情報処理方法。
【請求項15】
第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理をコンピュータに実行させるためのプログラムであって、
前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間を決定し、
前記第1の区間内の前記第1の符号化ストリームおよび前記第2の符号化ストリームのデコードを制御するとともに、前記第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが前記編集点で接続された第3のベースバンド信号のエンコードを制御することにより、第3の符号化ストリームの生成を制御し、
前記第1の区間においてエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、
第1の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間として、更に、再エンコードの実行を制御し、
第2の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間における再エンコード処理が再度実行されるように制御する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項16】
第1の符号化ストリームおよび第2の符号化ストリームを編集点で接続する処理をコンピュータに実行させるためのプログラムであって、
前記第1の符号化ストリームおよび前記第2の符号化ストリームのうち、再エンコードを実行する第1の区間を決定し、
前記第1の区間内の前記第1の符号化ストリームおよび前記第2の符号化ストリームのデコードを制御するとともに、前記第1の符号化ストリームがデコードされて生成された第1のベースバンド信号と、前記第2の符号化ストリームがデコードされて生成された第2のベースバンド信号とが前記編集点で接続された第3のベースバンド信号のエンコードを制御することにより、第3の符号化ストリームの生成を制御し、
前記第1の区間においてエンコードされて生成された前記第3の符号化ストリームの終了点と、前記第2の符号化ストリームにおける対応する部分とのオキュパンシの連続性が保たれたかを判断し、
第1の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間に続く所定の区間を、再エンコードを実行する第2の区間として、更に、再エンコードの実行を制御し、
第2の動作モードにおいて、前記オキュパンシの連続性が保たれなかったと判断された場合、前記第1の区間における再エンコード処理が再度実行されるように制御する
ステップを含む処理をコンピュータに実行させるためのプログラムが記録されている記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2008−66846(P2008−66846A)
【公開日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願番号】特願2006−240253(P2006−240253)
【出願日】平成18年9月5日(2006.9.5)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】