(57)【要約】【課題】複数の画像を同時に表示させる場合に、より簡単に画像の表示を同期させる。【解決手段】CPU９９は、メモリ１０１に記憶されている符号化ストリームを１GOPずつデコーダ１０２に転送する。CPU９９は、符号化ストリームのビットレートに応じた遅延値を取得し、その遅延値が含まれ、符号化ストリームをデコードさせるための復号コマンドを生成する。デコーダ１０２は、CPU９９により生成された復号コマンドに基づいて、遅延値により示される時間だけデコードの開始を遅延させた後、メモリ１０１から入力された符号化ストリームのデコードを開始する。本発明は、画像を編集する編集装置に適用することができる。【選択図】図５
2008085616.tif 000002
【特許請求の範囲】
【請求項１】
複数の符号化ストリームをデコードする情報処理装置において、
前記符号化ストリームをデコードするデコード手段と、
前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、前記符号化ストリームのデコードを制御する制御手段と
を備える情報処理装置。
【請求項２】
前記デコード手段によるデコードにより得られた映像信号を記憶する記憶手段をさらに備える
請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記符号化ストリームのビットレートに応じて定められる前記遅延時間だけ前記フレームのデコードの開始を遅延させる
請求項１に記載の情報処理装置。
【請求項４】
前記デコード手段は、
第１の符号化ストリームをデコードする第１のデコーダと、
第２の符号化ストリームをデコードする第２のデコーダと
を備え、
前記制御手段は、前記第１の符号化ストリームおよび前記第２の符号化ストリームのビットレートのうち、より高いビットレートに応じて定められる前記遅延時間だけ前記第１の符号化ストリームおよび前記第２の符号化ストリームを構成するフレームのデコードの開始を遅延させる
請求項３に記載の情報処理装置。
【請求項５】
前記符号化ストリームは、MPEG（Moving Picture Experts Group）規格に準拠したストリームとされ、
前記遅延時間は、前記符号化ストリームの前記デコード手段への入力に必要とされる時間と、前記フレームよりも前にデコードされる他のフレームのデコードに必要とされる時間とに基づいて定められる
請求項１に記載の情報処理装置。
【請求項６】
前記遅延時間は、前記符号化ストリームを構成するフレームの表示周期の長さの整数倍の時間とされ、
前記デコード手段は、前記表示周期に同期したクロック信号に基づいて、前記遅延時間から前記表示周期の長さの時間ずつ減算していくことで、前記フレームのデコードの開始までの時間をカウントする
請求項１に記載の情報処理装置。
【請求項７】
複数の符号化ストリームをデコードする情報処理方法において、
前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、前記符号化ストリームのデコードを制御し、
デコード手段により前記符号化ストリームをデコードする
ステップを含む情報処理方法。
【請求項８】
複数の符号化ストリームをデコードする情報処理をコンピュータに実行させるためのプログラムであって、
前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、前記符号化ストリームのデコードを制御し、
デコード手段により前記符号化ストリームをデコードする
ステップを含むプログラム。
【請求項９】
複数の符号化ストリームをデコードする情報処理をコンピュータに実行させるためのプログラムであって、
前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、前記符号化ストリームのデコードを制御し、
デコード手段により前記符号化ストリームをデコードする
ステップを含むプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、プログラム、並びに記録媒体に関し、特に、複数の画像を同時に表示させる場合に、より簡単に画像の表示を同期させることができるようにした情報処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
映像圧縮技術として、MPEG（Moving Picture Experts Group）が広く用いられている。MPEG方式で圧縮符号化されたストリームデータである符号化ストリームをデコードして再生する場合に、通常の再生以外に、高速再生を実行したり、逆方向に再生したりする技術がある。
【０００３】
例えば、１５ピクチャで１GOP（Group of Picture）を構成するMPEG Long GOPでは、デコーダへの入力においてＢピクチャを間引くことで、−３乃至３倍（速度のマイナスは、逆方向の再生であることを示す）で高速再生を行うことが可能である（例えば、特許文献１参照）。
【０００４】
ところで、符号化ストリームをデコードするハードウェアアクセラレータを利用したNLE（Non Linear Editor）等の編集装置においては、図１に示すように、編集装置の表示画面に複数の素材の画像を同時に表示させて編集を行うことができる。
【０００５】
図１では、表示画面には、編集の対象となる素材のビデオデータおよびオーディオデータの再生時間および再生位置を視覚的に表示するタイムライン領域１１と、素材の画像が表示される画像領域１２とが設けられたGUI（Graphical User Interface）が表示されている。
【０００６】
タイムライン領域１１には、画像領域１２全体に画像が表示されるトラック１として、編集される素材１を構成するビデオデータ２１−１およびオーディオデータ２２−１のそれぞれの再生時間が表示されている。すなわち、タイムライン領域１１の図中、横方向は時間を示しており、ビデオデータ２１−１およびオーディオデータ２２−１を表す長方形のそれぞれの図中、左端は素材１の再生開始時刻を示している。また、ビデオデータ２１−１およびオーディオデータ２２−１のそれぞれの右端は素材１の再生終了時刻を示している。
【０００７】
同様に、タイムライン領域１１には、画像領域１２内の図中、右上の位置に設けられた画像領域２３に画像が表示されるトラック２として、編集される素材２を構成するビデオデータ２１−２およびオーディオデータ２２−２のそれぞれの再生時間が表示されている。つまり、ビデオデータ２１−２およびオーディオデータ２２−２を表す長方形のそれぞれの左端は素材２の再生開始時刻を表しており、右端は素材２の再生終了時刻を表している。
【０００８】
また、タイムライン領域１１には、画像領域１２および画像領域２３に表示される画像、より具体的にはビデオデータにおけるフレームの位置を示すカーソル２４が表示されている。すなわち、ビデオデータ２１−１のカーソル２４により示される位置のフレームが画像領域１２に表示され、ビデオデータ２１−２のカーソル２４により示される位置のフレームが画像領域２３に表示される。
【０００９】
このカーソル２４は、ビデオデータ２１−１およびビデオデータ２１−２が正方向に再生されると、時間とともに右方向に移動し、逆方向に再生されると、時間とともに左方向に移動する。編集者は、編集装置を操作することでカーソル２４を動かしながら画像領域１２および画像領域２３に画像を表示させて編集を行う。
【００１０】
このように、編集者が編集装置を操作して、素材１の画像に素材２の画像が重畳されて表示される画像の編集を行う場合、編集装置は、カーソル２４の移動に応じて、素材１および素材２のカーソル２４により示されるフレームを同期させて表示する。
【００１１】
例えば、図２Ａに示すように、カーソル２４が、ビデオデータ２１−１のフレームＡおよびビデオデータ２１−２のフレームＢに位置する場合、編集装置のアプリケーションプログラムを実行する制御部は、ファームウェアの実行により素材のデコードを制御する処理部に対して、所定の時刻にデコードが開始されるように、ビデオデータ２１−１およびビデオデータ２１−２のフレームごとに各フレームの表示を指示するコマンドを発行する。
【００１２】
なお、図中、横方向は時間を示しており、縦線は所定の時刻を示している。また、互いに隣接する縦方向の実線の時間間隔Ｔは、編集装置におけるコマンドの実行周期、すなわち素材のフレームが表示される表示周期を示している。さらに、図中、図１における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
【００１３】
制御部は、時刻ｔ１において、フレームＡおよびそれ以降の連続するフレーム（Ａ＋１）乃至フレーム（Ａ＋３）のそれぞれの表示を指示するコマンドと、フレームＢおよびそれ以降の連続するフレーム（Ｂ＋１）乃至フレーム（Ｂ＋３）のそれぞれの表示を指示するコマンドとを処理部に対してフレームごとに発行する。
【００１４】
図２Ａの例では、制御部は、フレームＡ乃至フレーム（Ａ＋３）のそれぞれのデコードが、時刻ｔ２乃至時刻ｔ５のそれぞれにおいて開始され、フレームＢ乃至フレーム（Ｂ＋３）のそれぞれのデコードが、時刻ｔ２乃至時刻ｔ５のそれぞれにおいて開始されるように、各フレームについてコマンドを発行している。
【００１５】
処理部は制御部からコマンドが供給されると、それらのコマンドにより指定された時刻にコマンドにより指定されたフレームのデコードが開始されるように、デコーダを制御する。例えば、処理部は、時刻ｔ２になるとデコーダを制御し、素材１のフレームＡおよび素材２のフレームＢのデコードを開始させる。そして、フレームＡおよびフレームＢのデコードは、時刻ｔ２から２表示周期後の時刻ｔ４に終了する。
【００１６】
したがって、図２Ｂに示すように、時刻ｔ２に素材１を構成するビデオデータ２１−１のフレームＡがデコーダ５１−１に入力されてデコードされ、その後、時刻ｔ４にフレームバッファ５２−１に一時的に記憶された後、コンポジッタ５３に供給される。また、時刻ｔ２に素材２を構成するビデオデータ２１−２のフレームＢがデコーダ５１−２に入力されてデコードされ、その後、時刻ｔ４にフレームバッファ５２−２に一時的に記憶された後、コンポジッタ５３に供給される。
【００１７】
その後フレームＡおよびフレームＢには、コンポジッタ５３により、デコードされたフレームＡにフレームＢを重畳させる合成処理が施され、リサイザ５４により、合成処理されたフレームＡおよびフレームＢからなる画像のサイズが編集装置の表示画面の大きさとなるように縮小処理が施されて、表示画面の画像領域１２および画像領域２３に、それぞれフレームＡおよびフレームＢが表示される。
【００１８】
ここで、フレームＡおよびフレームＢのそれぞれが、デコード時に参照フレームを必要としないフレームである場合には、フレームＡおよびフレームＢのデコードの開始からデコードの終了までに必要とされる時間、すなわちデコードの処理レイテンシは、時刻ｔ２から時刻ｔ４までの時間２Ｔとなるので、フレームＡおよびフレームＢの表示の同期をとるためには、フレームバッファ５２−１およびフレームバッファ５２−２のそれぞれに、１フレーム分のビデオデータを記憶することのできる記憶容量があればよい。
【００１９】
【特許文献１】特開平８−９８１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、編集の対象となる素材のビデオデータが、MPEG Long GOP方式のビデオデータである場合、カーソル２４により示されるフレームによっては、素材１の処理レイテンシと、素材２の処理レイテンシとは異なるため、フレームバッファ５２−１およびフレームバッファ５２−２に複数フレーム分の記憶容量を設けるか、または各素材の処理レイテンシを考慮して、素材ごとに各処理を開始するタイミングをずらして各処理の制御を行う必要がある。
【００２１】
例えば、図３に示すように、カーソル２４により示される素材１および素材２のフレームが、それぞれＩ２ピクチャおよびＢ０ピクチャである場合、それぞれの素材の処理レイテンシは異なる。なお図中、横方向は時間を示しており、１つの長方形は１つのフレームを表している。また、長方形内の文字“Ｉ”、“Ｐ”または“Ｂ”は、フレームのピクチャタイプを示しており、それらのピクチャタイプの右側の数字は、GOP内におけるそのフレーム、つまりピクチャの表示される順番を示している。
【００２２】
さらに、矢印Ａ１、矢印Ａ２、矢印Ｂ１、および矢印Ｂ２のそれぞれは、１つのGOPを構成するフレームの範囲を示している。つまり、矢印Ａ１乃至矢印Ｂ２のそれぞれは、ＧＯＰ（Ｍ）、ＧＯＰ（Ｍ＋１）、ＧＯＰ（Ｎ）、およびＧＯＰ（Ｎ＋１）のそれぞれに含まれるフレームを示している。例えばＧＯＰ（Ｍ）は、図中、一番左上のＢ０ピクチャから、Ｐ１４ピクチャまでの連続する１５のピクチャから構成されている。
【００２３】
図３の例では、カーソル２４は、素材１のGOP（Ｍ＋１）内のＩ２ピクチャ、および素材２のGOP（Ｎ＋１）内のＢ０ピクチャに位置している。
【００２４】
ここで、カーソル２４により示されるGOP（Ｍ＋１）のＩ２ピクチャ、およびGOP（Ｎ＋１）のＢ０ピクチャから表示を開始する場合、GOP（Ｍ＋１）内のＩ２ピクチャのデコードには、他のピクチャの参照を必要としないので、表示を開始するＩ２ピクチャからデコードが開始される。
【００２５】
これに対して、GOP（Ｎ＋１）のＢ０ピクチャのデコードには、表示順で１つ前のＰ１４ピクチャ、および表示順で２つ後のＩ２ピクチャを参照する必要があり、またＧＯＰ（Ｎ）内のＰ１４ピクチャ、Ｐ１１ピクチャ、Ｐ８ピクチャ、およびＰ５ピクチャのそれぞれのデコードには、Ｐ１１ピクチャ、Ｐ８ピクチャ、Ｐ５ピクチャ、およびＩ２ピクチャのそれぞれを参照する必要があるので、GOP（Ｎ＋１）のＢ０ピクチャから表示を開始する場合には、ＧＯＰ（Ｎ）のＩ２ピクチャからデコードが開始される。
【００２６】
このように、カーソル２４により示される素材１と素材２のフレームのピクチャタイプが異なると、画像の表示を開始するまでにデコードしなければならないフレームの数が異なるので、素材１の処理レイテンシと、素材２の処理レイテンシとは同じにはならない。
【００２７】
したがって、例えば図４Ａに示すように、素材１の処理レイテンシと、素材２の処理レイテンシとが異なる場合、素材１および素材２のそれぞれに対する後段の処理を同時に開始するためには、図４Ｂに示すように、少なくともフレームバッファ５２−１またはフレームバッファ５２−２のいずれか一方に、処理レイテンシの差を吸収するための複数フレーム分の記憶容量が必要となる。なお、図４において、図２における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
【００２８】
図４Ａの例では、制御部は、時刻ｔ１において、フレームＡ乃至フレーム（Ａ＋３）のそれぞれの表示を指示するコマンドと、フレームＢ乃至フレーム（Ｂ＋３）のそれぞれの表示を指示するコマンドとを処理部に対してフレームごとに発行している。
【００２９】
処理部は制御部からコマンドが供給されると、それらのコマンドにより指定された時刻にコマンドにより指定されたフレームのデコードが開始されるように、デコーダを制御する。例えば、処理部は、時刻ｔ２になるとデコーダ５１−１およびデコーダ５１−２を制御し、素材１のフレームＡおよび素材２のフレームＢのデコードを開始させる。
【００３０】
ここで、フレームＡのデコードは、時刻ｔ２から２表示周期後の時刻ｔ４に終了し、デコードされたフレームＡはフレームバッファ５２−１に供給されて記憶される。その後、フレームバッファ５２−１には、１表示周期ごとにデコードが終了したフレーム（Ａ＋１）、フレーム（Ａ＋２）、およびフレーム（Ａ＋３）がそれぞれ順番に供給されて記憶される。
【００３１】
また、フレームＢのデコードは、時刻ｔ２から４表示周期後の時刻ｔ６に終了し、デコードされたフレームＢはフレームバッファ５２−２に供給されて記憶される。その後、フレームバッファ５２−２には、１表示周期ごとにデコードが終了したフレーム（Ｂ＋１）、フレーム（Ｂ＋２）、およびフレーム（Ｂ＋３）がそれぞれ順番に供給されて記憶される。
【００３２】
このように、最初に表示されるフレームＡおよびフレームＢのピクチャタイプが異なると、フレームＡおよびフレームＢの処理レイテンシは異なるので、図４Ｂに示すように、フレームＢがフレームバッファ５２−２に供給される時点で、フレームバッファ５２−１には、すでにフレームＡおよびフレーム（Ａ＋１）が記憶されている。また、フレームＢがフレームバッファ５２−２に供給されるタイミングで、フレームバッファ５２−１には、フレーム（Ａ＋２）が供給される。
【００３３】
そして、フレームバッファ５２−２にフレームＢが記憶されると、フレームＡおよびフレームＢが、それぞれフレームバッファ５２−１およびフレームバッファ５２−２からコンポジッタ５３に供給されて合成処理が施される。
【００３４】
したがって、フレームＡおよびフレームＢの表示の同期をとるためには、フレームバッファ５２−１には３フレーム分のビデオデータを記憶させるための記憶容量が必要となる。また、フレームＡおよびフレームＢが同時にコンポジッタ５３に供給されるように、制御が行われなければならない。
【００３５】
以上のように、編集の対象となる複数の素材の画像を同時に表示させて編集を行う場合、各素材の処理レイテンシの差を吸収するためのバッファにおける記憶容量の確保や、それぞれの素材に対して表示等の処理を同期させるための煩雑な制御、すなわち各素材の処理レイテンシを加味した各処理の開始時刻の制御が必要であった。
【００３６】
本発明は、このような状況に鑑みてなされたものであり、複数の画像を同時に表示させる場合に、より簡単に画像の表示を同期させることができるようにするものである。
【課題を解決するための手段】
【００３７】
本発明の一側面の情報処理装置は、複数の符号化ストリームをデコードする情報処理装置であって、前記符号化ストリームをデコードするデコード手段と、前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、前記符号化ストリームのデコードを制御する制御手段とを備える。
【００３８】
情報処理装置には、前記デコード手段によるデコードにより得られた映像信号を記憶する記憶手段をさらに設けることができる。
【００３９】
前記制御手段には、前記符号化ストリームのビットレートに応じて定められる前記遅延時間だけ前記フレームのデコードの開始を遅延させるようにすることができる。
【００４０】
前記デコード手段には、第１の符号化ストリームをデコードする第１のデコーダと、第２の符号化ストリームをデコードする第２のデコーダとを設け、前記制御手段には、前記第１の符号化ストリームおよび前記第２の符号化ストリームのビットレートのうち、より高いビットレートに応じて定められる前記遅延時間だけ前記第１の符号化ストリームおよび前記第２の符号化ストリームを構成するフレームのデコードの開始を遅延させるようにすることができる。
【００４１】
前記符号化ストリームは、MPEG規格に準拠したストリームとされ、前記遅延時間は、前記符号化ストリームの前記デコード手段への入力に必要とされる時間と、前記フレームよりも前にデコードされる他のフレームのデコードに必要とされる時間とに基づいて定められるようにすることができる。
【００４２】
前記遅延時間は、前記符号化ストリームを構成するフレームの表示周期の長さの整数倍の時間とされ、前記デコード手段には、前記表示周期に同期したクロック信号に基づいて、前記遅延時間から前記表示周期の長さの時間ずつ減算していくことで、前記フレームのデコードの開始までの時間をカウントさせることができる。
【００４３】
本発明の一側面の情報処理方法、またはプログラムは、複数の符号化ストリームをデコードする情報処理を実行するためのものであって、前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、前記符号化ストリームのデコードを制御し、デコード手段により前記符号化ストリームをデコードするステップを含む。
【００４４】
本発明の一側面においては、複数の符号化ストリームをデコードする情報処理において、前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始が遅延されるように、前記符号化ストリームのデコードが制御され、前記符号化ストリームがデコードされる。
【発明の効果】
【００４５】
本発明の一側面によれば、符号化ストリームをデコードすることができる。特に、本発明の一側面によれば、より簡単に画像の表示を同期させることができる。
【発明を実施するための最良の形態】
【００４６】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００４７】
本発明の一側面の情報処理装置は、複数の符号化ストリームをデコードする情報処理装置（例えば、図５の編集装置８１）であって、前記符号化ストリームをデコードするデコード手段（例えば、図６のデコーダ１３２）と、前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、前記符号化ストリームのデコードを制御する制御手段（例えば、図６の制御部１３１）とを備える。
【００４８】
情報処理装置には、前記デコード手段によるデコードにより得られた映像信号を記憶する記憶手段（例えば、図６のメモリ１０１）をさらに設けることができる。
【００４９】
前記制御手段には、前記符号化ストリームのビットレートに応じて定められる前記遅延時間だけ前記フレームのデコードの開始を遅延させる（例えば、図１５のステップＳ９４の処理およびステップＳ９５の処理）ようにすることができる。
【００５０】
前記デコード手段には、第１の符号化ストリームをデコードする第１のデコーダ（例えば、図５のデコーダ１０２−１）と、第２の符号化ストリームをデコードする第２のデコーダ（例えば、図５のデコーダ１０２−２）とを設け、前記制御手段には、前記第１の符号化ストリームおよび前記第２の符号化ストリームのビットレートのうち、より高いビットレートに応じて定められる前記遅延時間だけ前記第１の符号化ストリームおよび前記第２の符号化ストリームを構成するフレームのデコードの開始を遅延させる（例えば、図２１のステップＳ１６５の処理）ようにすることができる。
【００５１】
前記遅延時間は、前記符号化ストリームを構成するフレームの表示周期の長さの整数倍の時間とされ、前記デコード手段には、前記表示周期に同期したクロック信号に基づいて、前記遅延時間から前記表示周期の長さの時間ずつ減算していくことで、前記フレームのデコードの開始までの時間をカウントさせる（例えば、図１８のステップＳ１２６の処理）ことができる。
【００５２】
本発明の一側面の情報処理方法またはプログラムは、複数の符号化ストリームをデコードする情報処理を実行するためのものであって、前記符号化ストリームを構成するフレームのデコードが指示されてから、前記フレームのデコードが開始されるまでに必要とされる前処理時間のうちの最も長い時間である遅延時間だけ前記フレームのデコードの開始を遅延させるように、符号化ストリームのビットレートごとに遅延テーブルを保持して遅延時間を管理し、前記符号化ストリームのデコードを制御し（例えば、図１５のステップＳ９４およびステップＳ９５）、デコード手段により前記符号化ストリームをデコードする（例えば、図１８のステップＳ１２９）ステップを含む。
【００５３】
以下、図面を参照して、本発明を適用した実施の形態について説明する。
【００５４】
図５は本発明を適用した編集装置８１のハードウェア構成を示すブロック図である。
【００５５】
CPU（Central Processing Unit）９１は、ノースブリッジ９２に接続され、例えば、HDD（Hard disk Drive）９６に記憶されているデータの読み出しなどの処理を制御したり、CPU９９が実行するデコードのスケジューリング、デコードおよび表示出力の制御などの処理の開始、変更、または終了を指令するためのコマンドを生成し、出力する。ノースブリッジ９２は、PCIバス（Peripheral Component Interconnect/Interface）９４に接続され、例えば、CPU９１の制御に基づいて、サウスブリッジ９５を介して、HDD９６に記憶されているデータの供給を受けて、PCIバス９４、PCIブリッジ９７を介して、メモリ１０１に供給する。また、ノースブリッジ９２は、メモリ９３とも接続されており、CPU９１の処理に必要なデータを授受する。
【００５６】
メモリ９３は、CPU９１が実行する処理に必要なデータを保存することが可能な、例えば、DDR（Double Data Rate）等の高速アクセス可能な記憶用のメモリである。サウスブリッジ９５は、HDD９６のデータの書き込みおよび読み出しを制御する。HDD９６には、例えばMPEG規格に準拠した圧縮符号化されたストリームデータである符号化ストリームが記憶されている。
【００５７】
PCIブリッジ９７は、CPU９１の制御に基づいてHDD９６から読み出された符号化ストリームを、メモリ１０１に供給して保存させることができるとともに、CPU９１の制御に基づいて、メモリ１０１に保存されている、符号化ストリームがデコードされた非圧縮の映像信号を読み出して、PCIバス９４およびノースブリッジ９２を介してメモリ９３に供給する。また、PCIブリッジ９７は、PCIバス９４またはコントロールバス９８を介したコマンドまたはリザルトに対応する制御信号の授受を制御する。
【００５８】
CPU９９は、コントロールバス９８、PCIブリッジ９７、PCIバス９４、およびノースブリッジ９２を介して、CPU９１から供給されたコマンドを受け、このコマンドにしたがって、PCIブリッジ９７、デコーダ１０２−１、デコーダ１０２−２、コンポジッタ１０３、およびリサイザ１０４が実行する処理を制御する。メモリ１００は、CPU９９の処理に必要なデータを記憶する。
【００５９】
デコーダ１０２−１およびデコーダ１０２−２は、CPU９９の制御に基づいて、メモリ１０１から供給された符号化ストリームをデコードし、非圧縮のＳＤＩ（Serial Digital Interface）データである映像信号をメモリ１０１に供給して記憶させる。また、デコーダ１０２−１およびデコーダ１０２−２は、編集装置８１に含まれない独立した装置として設けられていても良い。なお、以下、デコーダ１０２−１およびデコーダ１０２−２を特に区別する必要のない場合、単にデコーダ１０２と称する。
【００６０】
コンポジッタ１０３は、メモリ１０１に記憶されている複数の映像信号を取得し、取得した映像信号により表示される複数の画像が重畳されて表示されるように、映像信号に対して合成処理を施す。また、コンポジッタ１０３は、合成処理が施された映像信号をメモリ１０１に供給して記憶させる。
【００６１】
リサイザ１０４は、メモリ１０１に記憶されている、合成処理の施された映像信号を取得して、映像信号により表示される画像のサイズが編集装置８１に接続されている図示せぬ表示装置の表示画面のサイズとなるように、取得した映像信号に対して縮小処理を施す。リサイザ１０４は、縮小処理が施された映像信号をメモリ１０１に供給して記憶させる。
【００６２】
なお、図５の編集装置８１は、１つの装置として構成されていても良いし、複数の装置によって構成されるようにしても良い。例えば、図５のCPU９１、ノースブリッジ９２、メモリ９３、サウスブリッジ９５、およびHDD９６の部分が、パーソナルコンピュータの構成のうちの一部であるとし、PCIカード、PCI−Expressカードなどの拡張カード、または拡張ボードに、PCIバス９４、PCIブリッジ９７、コントロールバス９８、CPU９９、メモリ１００、メモリ１０１、デコーダ１０２−１、デコーダ１０２−２、コンポジッタ１０３、およびリサイザ１０４の機能を備えさせ、パーソナルコンピュータに拡張カードを装着して編集装置８１として機能するようにしても良い。また、これらを、さらに複数の装置に分割して、編集装置８１を構成するようにしても良い。
【００６３】
次に、編集装置８１の動作について説明する。
【００６４】
HDD９６には、MPEGのLong GOP方式で圧縮された符号化ストリームが記憶されている。例えばHDD９６には、編集時に図１に示した表示画面の画像領域１２に画像を表示させるための符号化ストリームＡ、および図１の画像領域２３に画像を表示させるための符号化ストリームＢが記憶されている。
【００６５】
CPU９１は、ノースブリッジ９２を介して、サウスブリッジ９５を制御して、図示しない操作入力部から供給されたユーザの操作入力を基に、HDD９６から、圧縮符号化された符号化ストリームＡおよび符号化ストリームＢを読み出させ、ノースブリッジ９２、PCIバス９４、および、PCIブリッジ９７を介してメモリ１０１に供給させて記憶させる。また、CPU９１は、再生スピード（再生方向を示す情報を含む）を示す情報や、画像を表示させるために必要な処理の実行を指示する表示コマンドなどを、ノースブリッジ９２、PCIバス９４、PCIブリッジ９７、およびコントロールバス９８を介してCPU９９に供給する。
【００６６】
CPU９９は、CPU９１からの表示コマンドを基に、メモリ１０１に転送された符号化ストリームＡおよび符号化ストリームＢのデコードおよび表示のスケジュールを決定する。具体的には、CPU９９は、デコードに利用されるデコーダ１０２の選択、符号化ストリームのデコーダ１０２への入力のタイミング、フレームごとのデコードのタイミング、参照フレームのバンク位置の設定、およびデコード時のバンクメモリの割り当てなどを決定する。
【００６７】
そして、CPU９９は、メモリ１０１を制御して、メモリ１０１に記憶されている符号化ストリームＡおよび符号化ストリームＢを、決定されたスケジュールに基づいて、デコーダ１０２−１およびデコーダ１０２−２に供給させる。CPU９９は、デコーダ１０２−１およびデコーダ１０２−２を制御して、符号化ストリームＡおよび符号化ストリームＢをデコードさせ、デコードにより得られた非圧縮の映像信号Ａおよび映像信号Ｂをメモリ１０１に供給させる。
【００６８】
また、CPU９９は、コンポジッタ１０３を制御して、メモリ１０１に記憶されている映像信号Ａおよび映像信号Ｂを基に合成処理を行わせ、合成処理により得られた映像信号をメモリ１０１に供給させて記憶させる。さらに、CPU９９はリサイザ１０４を制御して、メモリ１０１に記憶されている映像信号に対して縮小処理を施させ、縮小処理が施された映像信号をメモリ１０１に供給させる。
【００６９】
そして、CPU９１はノースブリッジ９２を制御して、メモリ１０１に記憶された、縮小処理の施された映像信号を、PCIバス９４およびPCIブリッジ９７を介してメモリ１０１から読み出させ、メモリ９３に供給させて記憶させる。CPU９１は、メモリ９３に記憶されている映像信号をノースブリッジ９２を介して図示せぬ表示装置に供給し、図１に示したGUIの画像を表示させる。
【００７０】
次に、図６は、図５の編集装置８１の機能の構成例を示すブロック図である。なお、図６において、図５における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
【００７１】
編集装置８１は、制御部１３１、デコーダ１３２、およびメモリ１０１から構成される。
【００７２】
制御部１３１は、図５のCPU９１およびCPU９９から構成され、編集装置８１の各部を制御する。制御部１３１は、メモリ１０１を制御して、HDD９６から読み出されてメモリ１０１に供給された符号化ストリームＡおよび符号化ストリームＢを、デコーダ１３２に供給させるとともに、デコーダ１３２を制御して、メモリ１０１からデコーダ１３２に供給された符号化ストリームＡおよび符号化ストリームＢをデコードさせる。
【００７３】
デコーダ１３２は、デコーダ１０２−１およびデコーダ１０２−２から構成され、メモリ１０１からの符号化ストリームＡおよび符号化ストリームＢをデコードしてメモリ１０１に供給する。なお、デコーダ１３２には、編集の対象となる符号化ストリームをデコードするためにデコーダ１０２−１およびデコーダ１０２−２が設けられているが、編集装置８１に設けられるデコーダは、１つであってもよいし、３以上であってもよい。
【００７４】
また、制御部１３１は、より詳細には図７に示すように構成される。
【００７５】
すなわち、制御部１３１はCPU９１およびCPU９９から構成される。また、CPU９１は、操作入力取得部１６１、ストリーム転送部１６２、表示コマンド生成部１６３、および表示制御部１６４から構成され、CPU９９は、ストリーム入力部１７１、時刻管理部１７２、実行制御部１７３、および遅延テーブル保持部１７４から構成される。
【００７６】
CPU９１の操作入力取得部１６１、ストリーム転送部１６２、表示コマンド生成部１６３、および表示制御部１６４のそれぞれは、CPU９１が画像の編集を行うためのアプリケーションプログラムを実行することにより実現され、CPU９９のストリーム入力部１７１、時刻管理部１７２、実行制御部１７３、および遅延テーブル保持部１７４のそれぞれは、CPU９９がデコード等の各種の処理を制御するためのファームウェアを実行することにより実現される。
【００７７】
操作入力取得部１６１は、ユーザによる操作入力を受けて、編集される符号化ストリーム、符号化ストリームがデコーダ１０２に入力されるときの１秒あたりのデータ量、すなわちビットレートを示すビットレートＩＤ、および表示が開始されるフレームの位置などのユーザの操作に応じた情報を取得し、取得した情報をストリーム転送部１６２および表示コマンド生成部１６３に供給する。
【００７８】
ストリーム転送部１６２は、操作入力取得部１６１からの情報に基づいてノースブリッジ９２を制御し、編集の対象となる符号化ストリームを、GOP単位でメモリ１０１に転送させる。また、ストリーム転送部１６２は、符号化ストリームの転送が完了すると、ストリーム入力部１７１に転送完了の通知を送信するとともに、転送されたGOPを特定するGOP−ID、GOPのサイズ、メモリ１０１におけるGOPが記憶されているアドレス、GOPに含まれるフレーム、すなわちピクチャに関するピクチャ情報などが含まれるGOP情報をストリーム入力部１７１に供給する。ここで、ピクチャ情報には、GOP内のピクチャのピクチャタイプ、ピクチャヘッダ、ピクチャサイズなどの情報が含まれている。
【００７９】
表示コマンド生成部１６３は、操作入力取得部１６１からの情報に基づいて、編集の対象となる符号化ストリームＡ、および符号化ストリームＢに基づく画像を表示させるために必要な処理の実行を指示する表示コマンドを生成して時刻管理部１７２に供給する。ここで、表示コマンドは、１フレーム分の符号化ストリームに対する処理の実行を指示するコマンドであり、表示コマンド生成部１６３は、表示させるフレームの数だけ表示コマンドを生成する。また、表示コマンドには、処理の対象となるフレームが含まれているGOPを特定するためのGOP−ID、フレームを特定するフレームＩＤ、表示コマンドの実行を開始する開始時刻、符号化ストリームのビットレートＩＤなどが含まれている。
【００８０】
表示制御部１６４は、CPU９９の実行制御部１７３からの表示コマンドに対する処理の完了通知が供給されると、ノースブリッジ９２を制御して、メモリ１０１に記憶されている、デコードされ、重畳されたフレームを表示させるための映像信号を一旦、メモリ９３に記憶させた後、ノースブリッジ９２を介して表示装置に供給させ、画像を表示させる。
【００８１】
ストリーム入力部１７１は、実行制御部１７３の復号コマンド生成部１８１からの符号化ストリームの転送の要求に応じてメモリ１０１を制御し、メモリ１０１に記憶されている１GOP分の符号化ストリームをデコーダ１０２に入力させる。
【００８２】
時刻管理部１７２は、表示コマンド生成部１６３から供給された表示コマンドを解釈し、表示コマンドにより指示された処理を実行するタイミングのスケジューリングを行う。例えば、時刻管理部１７２は、表示コマンド生成部１６３からの表示コマンドのうち、表示コマンドに含まれている開始時刻を参照して、実行を開始する時刻となった表示コマンドを実行制御部１７３に供給する。
【００８３】
実行制御部１７３は、時刻管理部１７２からの表示コマンドを受け、デコーダ１０２乃至リサイザ１０４のそれぞれを制御し、編集の対象となる符号化ストリームに対してデコード、合成処理、および縮小処理を実行させる。また、実行制御部１７３は、復号コマンド生成部１８１を備えている。
【００８４】
復号コマンド生成部１８１は、時刻管理部１７２からの表示コマンドに含まれているビットレートＩＤに基づいて、遅延テーブル保持部１７４に保持されている遅延テーブルから、デコードの開始を遅延させる遅延時間を示す遅延値を取得する。
【００８５】
ここで、遅延値は、所定のビットレートの符号化ストリームに対して、デコードするフレームが含まれているGOP、およびそのフレームのデコードに必要なフレームの含まれているGOPをメモリ１０１からデコーダ１０２に転送するのに必要な時間、並びにフレームのデコードを開始するまでに必要とされる前処理時間などからビットレートごとに予め定められている。
【００８６】
つまり、遅延値は、フレームのデコードが指示されてから、GOPの転送、参照フレーム等のデコードなどの前処理の後、指示されたフレームのデコードを開始するまでに必要な最大の前処理時間とされる。換言すれば、前処理時間が最も長い場合における、その前処理時間が遅延値により示される遅延時間とされる。
【００８７】
したがって、所定のGOP内のどのフレーム、つまりどのピクチャから表示を開始する場合においても、その遅延値により示される遅延時間だけフレームのデコードの開始時間を遅らせることで、デコードするフレームのピクチャタイプやGOP内の位置に関わらず、重畳して表示させる符号化ストリームＡおよび符号化ストリームＢのフレームのデコードが同じ時刻に完了するようにすることができる。
【００８８】
復号コマンド生成部１８１は、遅延テーブル保持部１７４の遅延テーブルから遅延値を取得すると、表示コマンドにより指定されたフレームのデコードを指示する復号コマンドを生成し、デコーダ１０２に供給する。この復号コマンドには、デコードするフレームを特定するフレームＩＤ、フレームが含まれるGOPを特定するGOP−ID、取得した遅延値、およびフレームをデコードするために参照するフレームを示す情報などが含まれている。
【００８９】
遅延テーブル保持部１７４は、符号化ストリームのビットレートに対する遅延値が含まれる遅延テーブルを保持する。
【００９０】
図８は、図５のデコーダ１０２のより詳細な構成例を示すブロック図である。
【００９１】
デコードコントローラ２２１は、復号コマンド生成部１８１から供給された復号コマンドに基づいて、デコーダ１０２の各部を制御し、クロック信号発生部２２２からクロック信号が供給されるタイミングで、デコーダ１０２の各部に所定の処理を実行させる。また、デコードコントローラ２２１は、ストリームバッファ２２３に記憶されている符号化ストリームから、フレーム単位で、そのフレームが記憶されている先頭番地、データサイズ、ピクチャヘッダ情報、Ｑマトリクスなどを取得する。
【００９２】
クロック信号発生部２２２は、クロック信号を発生させてデコードコントローラ２２１に供給する。例えばクロック信号発生部２２２は、画像領域１２および画像領域２３に画像が表示される表示周期の４分の１の周期、つまり４倍の周波数のクロック信号を発生させる。
【００９３】
ストリームバッファ２２３は、メモリ１０１から供給された符号化ストリームを記憶し、デコードコントローラ２２１の制御の基に、記憶している符号化ストリームをフレーム単位でデコード処理部２２４に供給する。デコード処理部２２４は、必要に応じてセレクタ２２６から供給されるベースバンドの映像信号、すなわちＰピクチャまたはＢピクチャのデコードにおける参照フレームを参照して、ストリームバッファ２２３からの符号化ストリームを１フレームずつデコードする。デコード処理部２２４は、デコードにより得られた非圧縮の映像信号をフレーム単位でフレームメモリ２２５に供給する。
【００９４】
フレームメモリ２２５は、デコード処理部２２４から供給された符号化ストリームを記憶し、記憶している符号化ストリームをセレクタ２２６または出力部２２７に供給する。フレームメモリ２２５には、他のピクチャの参照フレームとして用いられるＩピクチャ、およびＰピクチャを格納する参照バンク２３１−１乃至参照バンク２３１−Ｎ（参照バンク２３１−２乃至参照バンク２３１−（Ｎ−１）は図示せず）と、Ｂピクチャなどを表示するために用意された表示専用バンク２３２−１および表示専用バンク２３２−２とが設けられている。
【００９５】
参照バンク２３１−１乃至参照バンク２３１−Ｎのそれぞれは、デコード処理部２２４から供給された参照フレームとされる１フレーム分の映像信号を記憶する。また、表示専用バンク２３２−１および表示専用バンク２３２−２は、Ｂピクチャであるフレームの映像信号を記憶する。
【００９６】
なお、以下、参照バンク２３１−１乃至参照バンク２３１−Ｎのそれぞれを特に区別する必要のない場合、単に参照バンク２３１と称する。また、以下、表示専用バンク２３２−１および表示専用バンク２３２−２を特に区別する必要のない場合、単に表示専用バンク２３２と称する。
【００９７】
セレクタ２２６は、デコードコントローラ２２１の制御の基に、フレームメモリ２２５の参照バンク２３１−１乃至参照バンク２３１−Ｎのうちの何れかに記憶されているフレームの映像信号をデコード処理部２２４に供給する。出力部２２７は、デコードコントローラ２２１の制御の基に、フレームメモリ２２５の参照バンク２３１または表示専用バンク２３２に記憶されている１フレーム分の映像信号をメモリ１０１に供給して記憶させる。
【００９８】
次に、編集装置８１が、編集装置８１に接続されている表示装置に図１に示したGUIの画面を表示させて、編集の対象となる符号化ストリームＡおよび符号化ストリームＢを基に、画像領域１２および画像領域２３に画像を表示させるときに行われる処理の概要を説明する。なお、以下の説明においては、符号化ストリームＡおよび符号化ストリームＢのビットレートは同じであるものとする。
【００９９】
例えば、図９Ａに示すように、タイムライン領域１１に、トラック１として、編集の対象となる素材１を構成するビデオデータとしての符号化ストリーム２６１−１、およびオーディオデータ２６２−１のそれぞれの再生時間が表示され、トラック２として、編集の対象となる素材２を構成するビデオデータとしての符号化ストリーム２６１−２、およびオーディオデータ２６２−２のそれぞれの再生時間が表示されているとする。
【０１００】
ユーザが編集装置８１を操作して素材１および素材２の再生を指示すると、編集装置８１は、符号化ストリーム２６１−１および符号化ストリーム２６１−２のうち、カーソル２４により示されるフレームの位置から再生が開始されるように、素材１および素材２に対してデコード、合成処理、縮小処理、および再生処理を行う。
【０１０１】
すなわち、図９Ｂに示すように、CPU９１は、所定の時刻ｔ３１において、符号化ストリーム２６１−１の各フレームの表示コマンド、および符号化ストリーム２６１−２の各フレームの表示コマンドを発行してCPU９９に供給する。なお、図中、横方向は時間を示しており、縦線は所定の時刻を示している。また、互いに隣接する縦線の時間間隔Ｔは、編集装置８１における表示コマンドの実行周期、すなわち素材のフレームが表示される表示周期を示している。
【０１０２】
なお、以下の説明において、符号化ストリーム２６１−１および符号化ストリーム２６１−２を個々に区別する必要のない場合、単に符号化ストリーム２６１と称する。
【０１０３】
CPU９９は、CPU９１から表示コマンドが供給されると、それらの表示コマンドのうち、実行を開始する時刻となった表示コマンドから順番に、復号コマンドを生成してデコーダ１０２に供給し、デコードを開始させる。図９Ｂの例では、時刻ｔ３２から１表示周期に１フレーム分ずつ符号化ストリーム２６１−１および符号化ストリーム２６１−２のデコードが行われている。
【０１０４】
例えば、図１０Ａに示すように、カーソル２４が、符号化ストリーム２６１−１のフレームＡおよび符号化ストリーム２６１−２のフレームＢに位置する場合、CPU９９は、図１０Ｂに示すように時刻ｔ３２において、実行を開始する時刻となったフレームＡの表示コマンド、およびフレームＢの表示コマンドに対応する遅延値を考慮した復号コマンドのそれぞれを発行し、デコーダ１０２−１およびデコーダ１０２−２に供給する。
【０１０５】
その後、CPU９９は、表示周期の間隔で時刻ｔ３３乃至時刻ｔ３５において、符号化ストリーム２６１−１のフレームＡ以降の連続するフレーム（Ａ＋１）乃至フレーム（Ａ＋３）のそれぞれの表示コマンドに対応する復号コマンドのそれぞれを発行するとともに、符号化ストリーム２６１−２のフレームＢ以降の連続するフレーム（Ｂ＋１）乃至フレーム（Ｂ＋３）のそれぞれの表示コマンドに対応する復号コマンドのそれぞれを発行し、デコーダ１０２−１およびデコーダ１０２−２に供給する。
【０１０６】
また、デコーダ１０２は、CPU９９から復号コマンドの供給を受けると、その復号コマンドに含まれる遅延値により示される遅延時間だけデコードの開始を遅延させた後、復号コマンドを実行して、符号化ストリーム２６１をデコードする。図１０Ｂの例では、フレームＡおよびフレームＢのデコードは、時刻ｔ３６において完了している。したがって、素材１および素材２の処理レイテンシは、表示周期をＴとすると、それぞれ４Ｔとなる。
【０１０７】
このように、遅延値の含まれる復号コマンドを発行し、その遅延値により示される時間だけフレームのデコードの開始時刻を遅延させることで、フレームＡおよびフレームＢのピクチャタイプやGOP内の位置に関わらず、素材１および素材２の処理レイテンシを同じ長さの時間とすることができる。
【０１０８】
換言すれば、デコーダ１０２が最初に供給された復号コマンドにより指定されたフレーム、すなわち最初に表示されるフレームのデコードが指示されてから、そのフレームのデコードを開始するまでに必要とされる最大の前処理時間を遅延時間として、最初のフレームのデコードの開始を遅延させることで、必要なGOPの転送や、最初のフレームの参照フレームのデコードなどに必要な前処理時間の長さに関わらず、デコードが指示されてから、遅延時間後の時刻には、復号コマンドにより指定されたフレームのデコードを確実に開始することができる。
【０１０９】
なお、より詳細には、前処理時間は、CPU９９において表示コマンドの実行を開始する時刻から、その表示コマンドに対応する復号コマンドにより指定されたフレームのデコードを開始するまでに必要な時間とされるが、表示コマンドの実行を開始する時刻となってから、デコーダ１０２が復号コマンドを受信するまでの時間は充分に短い時間であるため、デコーダ１０２が復号コマンドによりフレームのデコードが指示された時刻を、前処理時間の開始時刻とみなすことができる。
【０１１０】
CPU９９は、このようにして、表示コマンドを実行すべき時刻になったとき、GOPの転送や参照フレームのデコードなどの前処理だけが直ちに実行され、最初に表示されるフレームのデコードが遅延時間後に開始されるように符号化ストリームのデコードを制御する。
【０１１１】
したがって、図１０Ｃに示すように、デコーダ１０２−１に符号化ストリーム２６１−１のフレームＡを含むGOPが供給され、デコーダ１０２−２に符号化ストリーム２６１−２のフレームＢを含むGOPが供給されると、デコーダ１０２−１およびデコーダ１０２−２は復号コマンドに基づいて、入力されたフレームＡおよびフレームＢを遅延値により示される遅延時間だけ遅延させてデコードする。そして、デコーダ１０２−１およびデコーダ１０２−２は、デコードされたフレームＡおよびフレームＢをそれぞれ、メモリ１０１の所定の領域に設けられたリングバッファ構造のフレームバッファ２８１−１およびフレームバッファ２８１−２に供給して記憶させる。
【０１１２】
ここで、素材１および素材２の処理レイテンシは、遅延値の含まれた復号コマンドが発行されることで、常に同じとなるようになされるため、フレームバッファ２８１−１およびフレームバッファ２８１−２には、１フレーム分のデータを記憶するだけの記憶容量が確保されていればよい。
【０１１３】
その後、フレームバッファ２８１−１およびフレームバッファ２８１−２に記憶されたフレームＡおよびフレームＢは、コンポジッタ１０３に供給されて合成処理が施され、リサイザ１０４において縮小処理が施されて表示装置の画像領域１２および画像領域２３に表示される。
【０１１４】
また、デコーダ１０２においては、図１１Ａに示すように符号化ストリーム２６１がデコーダ１０２に入力されると、入力された符号化ストリーム２６１は、図１１Ｂに示すようにデコーダ１０２のストリームバッファ２２３に供給されて記憶される。
【０１１５】
そして、符号化ストリーム２６１がストリームバッファ２２３に記憶されると、図１１Ｃに示すように、符号化ストリーム２６１を構成するＩピクチャおよびＰピクチャのうちの予め定められたいくつかが、符号化ストリーム２６１の入力と同時にデコードされて、参照バンク２３１に格納されて記憶される。なお、以下の説明において、符号化ストリームのストリームバッファ２２３への入力と同時にデコードが開始されるフレームを、アンカーフレームとも称する。
【０１１６】
そして、図１１Ｄに示すように、CPU９９からデコーダ１０２に復号コマンドが供給されると、デコーダ１０２は、復号コマンドに含まれる遅延値により示される遅延時間だけ、フレームのデコードの開始を遅延させてから、復号コマンドによりデコードが指示されたフレームをデコードし、参照バンク２３１または表示専用バンク２３２に一時的に記憶させた後、メモリ１０１に供給する。
【０１１７】
さらに、より詳細には、編集の対象となる素材の画像の再生が指示されると、図１２に示すように、CPU９１のストリーム転送部１６２は、時刻ｔ４１において編集の対象である素材の符号化ストリームのうち、最初に表示するフレームが含まれているGOP（A0）（そのフレームのデコードにGOP（A0）の前のGOPが必要なときは、そのGOPも含む）のメモリ１０１への転送を開始する。
【０１１８】
なお、図中、横方向は時間を示しており、縦方向の線は所定の時刻を示している。また、互いに隣接する縦方向の実線の時間間隔Ｔは、編集装置８１における表示コマンドの実行周期、すなわち素材のフレームが表示される表示周期を示している。
【０１１９】
また、ストリーム転送部１６２は、GOP（A0）の転送が完了すると、転送完了の通知３１１とともにGOP（A0）に関するGOP情報をCPU９９のストリーム入力部１７１に送信する。さらに、表示コマンド生成部１６３は、表示が指示されたフレームごとに、矢印Ｑ１１により示される表示コマンドを発行し、CPU９９の時刻管理部１７２に送信する。ここで、矢印Ｑ１１により示される表示コマンドは、例えばGOP（A0）を構成するフレームのそれぞれに対する表示コマンドのそれぞれからなる表示コマンド群とされる。
【０１２０】
同様にして、CPU９１のストリーム転送部１６２は、GOP（A0）の次のGOP（A1）のメモリ１０１への転送を開始し、GOP（A1）の転送が完了すると、転送完了の通知３１２とともにGOP（A1）に関するGOP情報をCPU９９のストリーム入力部１７１に送信する。また、表示コマンド生成部１６３は、表示が指示されたフレームごとに、矢印Ｑ１２により示される複数の表示コマンドを発行し、CPU９９の時刻管理部１７２に送信する。
【０１２１】
一方、CPU９９では、CPU９９のストリーム入力部１７１は、ストリーム転送部１６２から送信されてきた転送完了の通知３１１、および転送完了の通知３１２を受信する。そして、ストリーム入力部１７１は、復号コマンド生成部１８１からの要求に応じて、時刻ｔ４２にGOP（A0）のデコーダ１０２への転送を開始し、その転送が終了すると、続いて時刻ｔ４４においてGOP（A1）のデコーダ１０２への転送を開始する。
【０１２２】
また、時刻管理部１７２は、矢印Ｑ１１および矢印Ｑ１２により示される、表示コマンド生成部１６３からの表示コマンドを受信して、受信した表示コマンドの実行のスケジューリングを行う。つまり、時刻管理部１７２は、時刻ｔ４２において、実行の開始時刻となった表示コマンド３１３−１を復号コマンド生成部１８１に供給し、その後、１表示周期ごとに表示コマンド３１３−２乃至表示コマンド３１３−５のそれぞれを、復号コマンド生成部１８１に供給する。すなわち、時刻管理部１７２は、時刻ｔ４３、時刻ｔ４５、時刻ｔ４６、および時刻ｔ４８のそれぞれの時刻において、表示コマンド３１３−２乃至表示コマンド３１３−５のそれぞれを、復号コマンド生成部１８１に供給する。
【０１２３】
復号コマンド生成部１８１は、時刻管理部１７２から表示コマンド３１３−１乃至表示コマンド３１３−５のそれぞれが供給されると、それらの表示コマンドを基に、遅延値を考慮した復号コマンド３１４−１乃至復号コマンド３１４−５のそれぞれを発行してデコーダ１０２に送信する。なお、以下、表示コマンド３１３−１乃至表示コマンド３１３−５のそれぞれを特に区別する必要のない場合、単に表示コマンド３１３と称する。また、以下、復号コマンド３１４−１乃至復号コマンド３１４−５のそれぞれを特に区別する必要のない場合、単に復号コマンド３１４と称する。
【０１２４】
デコーダ１０２は、復号コマンド生成部１８１から、復号コマンド３１４が供給されると、復号コマンド３１４が供給されてから、遅延値により示される遅延時間だけ待機した後、復号コマンド３１４により指示されているフレームのデコードを順番に開始する。
【０１２５】
そして、それらのフレームのデコードが完了すると、デコードが完了した順に、CPU９９の実行制御部１７３に対してデコードの完了通知３１５−１乃至完了通知３１５−５を送信する。図１２の例では、時刻ｔ４７に完了通知３１５−１が実行制御部１７３に送信されており、その後１表示周期ごとに完了通知３１５−２乃至完了通知３１５−５が送信されている。なお、以下、完了通知３１５−１乃至完了通知３１５−５を特に区別する必要のない場合、単に完了通知３１５と称する。
【０１２６】
また、デコーダ１０２は、完了通知３１５を実行制御部１７３に送信すると、次にフレームが表示されるタイミングとなった時刻において、デコードの完了したフレームのメモリ１０１への転送を開始する。図１２の例では、時刻ｔ４８において、表示コマンド３１３−１により指示されたGOP（A0）のフレームＡ０の転送が開始され、その後１表示周期で、１つのフレームの転送が開始されている。
【０１２７】
さらに図１２の例では、各フレームの処理レイテンシは４表示周期、つまり４Ｔとされており、CPU９９によって処理レイテンシが４Ｔとなるようにデコードのスケジューリング、つまり遅延値等のデコードの制御がなされていることが分かる。
【０１２８】
次に、図１３のフローチャートを参照して、CPU９１による表示制御処理について説明する。この表示制御処理は、ユーザにより編集装置８１が操作されて、図１の画像領域１２および画像領域２３に表示される画像の再生が指示されると開始される。
【０１２９】
ステップＳ１１において、ストリーム転送部１６２は、HDD９６に記憶されている符号化ストリームを複数GOP分読み出させる。すなわち、操作入力取得部１６１は、ユーザの操作入力を受けて、画像領域１２に表示する画像の符号化ストリームＡ、符号化ストリームＡのビットレートＩＤ、符号化ストリームＡの表示が開始されるフレームの位置などの情報と、画像領域２３に表示する画像の符号化ストリームＢ、符号化ストリームＢのビットレートＩＤ、符号化ストリームＢの表示が開始されるフレームの位置などの情報とからなるユーザの操作に応じた情報を取得し、取得した情報をストリーム転送部１６２および表示コマンド生成部１６３に供給する。
【０１３０】
ストリーム転送部１６２は、操作入力取得部１６１からの情報に基づいてノースブリッジ９２を制御し、符号化ストリームＡの表示が開始されるフレームを含むGOPと、それ以降の複数GOPとをサウスブリッジ９５を介してHDD９６から読み出させるとともに、符号化ストリームＢの表示が開始されるフレームを含むGOPと、それ以降の複数GOPとをサウスブリッジ９５を介してHDD９６から読み出させる。
【０１３１】
また、ストリーム転送部１６２は、GOPを特定するためのGOP−ID、およびメモリ１０１におけるそのGOPが記憶される位置を示す情報が含まれ、符号化ストリームへのGOP−IDの付加を指示するコマンドをストリーム入力部１７１に送信する。
【０１３２】
ストリーム入力部１７１は、ストリーム転送部１６２から送信されてきたコマンドを受信すると、ノースブリッジ９２を制御して、読み出された符号化ストリームＡおよび符号化ストリームＢのそれぞれのGOPの先頭に、GOPを特定するためのGOP−IDを付加させる。このGOP−IDは、MPEGヘッダに挿入されるのではなく、GOPに含まれるビデオデータの先頭に付加される。
【０１３３】
ノースブリッジ９２は、ストリーム転送部１６２の制御の基に、読み出しが指示された符号化ストリームのGOPをサウスブリッジ９５を介してHDD９６から読み出すとともに、ストリーム入力部１７１の制御に基づいて、読み出したGOPにGOP−IDを付加する。このように、各GOPの先頭にGOP−IDを付加することで、デコーダ１０２は、デコーダ１０２のストリームバッファ２２３に入力された各GOPのGOP−IDを参照してGOPを特定することができる。
【０１３４】
ステップＳ１２において、ストリーム転送部１６２は、ノースブリッジ９２を制御して、読み出させた符号化ストリームをメモリ１０１に転送させる。ノースブリッジ９２は、ストリーム転送部１６２の制御の基に、転送が指示された符号化ストリームを、GOP単位でPCIバス９４、およびPCIブリッジ９７を介してメモリ１０１に供給する。
【０１３５】
符号化ストリームのメモリ１０１への転送が完了すると、ステップＳ１３において、ストリーム転送部１６２は、GOPの転送完了の通知およびGOP情報を、ノースブリッジ９２、PCIバス９４、PCIブリッジ９７、およびコントロールバス９８を介して、CPU９９のストリーム入力部１７１に送信する。
【０１３６】
ストリーム入力部１７１において転送完了の通知が受信されると、ストリーム入力部１７１は、受信した転送完了の通知に対して、転送完了の通知を受信した旨のリザルトを、コントロールバス９８、PCIブリッジ９７、PCIバス９４、およびノースブリッジ９２を介してCPU９１の表示コマンド生成部１６３に送信する。
【０１３７】
表示コマンド生成部１６３が、ストリーム入力部１７１から送信されてきたリザルトを受信すると、ステップＳ１４において、表示コマンド生成部１６３は、表示コマンドを生成し、生成した表示コマンドをノースブリッジ９２、PCIバス９４、PCIブリッジ９７、およびコントロールバス９８を介して、CPU９９の時刻管理部１７２に送信する。
【０１３８】
例えば、表示コマンド生成部１６３は、符号化ストリームＡの最初にメモリ１０１に転送されたGOPを構成するフレームのそれぞれに対する表示コマンドのそれぞれと、符号化ストリームＢの最初にメモリ１０１に転送されたGOPを構成するフレームのそれぞれに対する表示コマンドのそれぞれとを生成する。
【０１３９】
表示コマンドが時刻管理部１７２に送信されると、時刻管理部１７２は、表示コマンド生成部１６３から送信されてきた表示コマンドを受信し、実行開始時刻になると、表示コマンドを実行制御部１７３に供給する。実行制御部１７３は、時刻管理部１７２からの表示コマンドに基づいて、指示されたフレームに対するデコード、合成処理、および縮小処理の実行を制御する。そして、実行制御部１７３は、指示されたフレームにそれらの処理が施されてメモリ１０１に供給されると、処理の完了通知をコントロールバス９８、PCIブリッジ９７、PCIバス９４、およびノースブリッジ９２を介してCPU９１の表示制御部１６４に送信する。また、実行制御部１７３は、指示されたフレームに対するデコード、合成処理、および縮小処理の実行中にエラーが発生した場合、エラーが発生した旨の通知を表示制御部１６４に送信する。
【０１４０】
ステップＳ１５において、表示制御部１６４は、実行制御部１７３からエラーが発生した旨の通知を受信したか否かを判定する。ステップＳ１５において、エラーが発生した旨の通知を受信したと判定された場合、エラーが発生し、画像領域１２および画像領域２３に画像を表示させることができないので、表示制御処理は終了する。
【０１４１】
これに対して、ステップＳ１５において、エラーが発生した旨の通知を受信していないと判定された場合、すなわち処理の完了通知が受信された場合、ステップＳ１６において、表示制御部１６４は、画像領域１２および画像領域２３のそれぞれに画像を表示させる。より具体的には、表示制御部１６４は、ノースブリッジ９２を制御して、PCIバス９４およびPCIブリッジ９７を介して、メモリ１０１からリサイザ１０４により縮小処理の施された映像信号を取得し、取得した映像信号を一旦メモリ９３に供給して記憶させた後、図示せぬ表示装置に供給して、画像を表示させる。
【０１４２】
ステップＳ１７において、表示制御部１６４は、１GOP分のフレームの表示完了を検出する。すなわち、表示制御部１６４は、どのフレームの表示が終了したかを常に確認しておくことによって、１GOP分のフレームの表示完了を検出する。１GOP分のフレームの表示完了が検出されると、表示制御部１６４は、ストリーム転送部１６２に１GOP分のフレームの表示完了を通知する。
【０１４３】
ステップＳ１８において、ストリーム転送部１６２は、表示が完了したGOPは、表示が指示された符号化ストリームの最後のGOPであるか否か、すなわち指示された全ての画像の表示が終了したか否かを判定する。
【０１４４】
ステップＳ１８において、最後のGOPであると判定された場合、全ての画像を表示したので表示制御処理は終了する。
【０１４５】
一方、ステップＳ１８において、最後のGOPではないと判定された場合、ステップＳ１９において、ストリーム転送部１６２は、転送していない符号化ストリームが残っているか否かを判定する。例えば、HDD９６に記憶されている符号化ストリームを構成する、表示が指示されたフレームを含むGOPのうち、まだメモリ１０１に転送されていないGOPがある場合、ストリーム転送部１６２は、符号化ストリームが残っていると判定する。
【０１４６】
ステップＳ１９において、転送していない符号化ストリームが残っていないと判定された場合、デコードに必要な全てのGOPが転送されたので、処理はステップＳ１４に進み、上述した処理が繰り返される。
【０１４７】
これに対して、ステップＳ１９において、転送していない符号化ストリームが残っていると判定された場合、ステップＳ２０において、ストリーム転送部１６２は、ノースブリッジ９２を制御し、まだ転送されていない符号化ストリームＡを１GOP分だけHDD９６から読み出させるとともに、まだ転送されていない符号化ストリームＢを１GOP分だけHDD９６から読み出させる。また、ストリーム転送部１６２は、符号化ストリームへのGOP−IDの付加を指示するコマンドをストリーム入力部１７１に送信する。そして、ストリーム入力部１７１は、ストリーム転送部１６２から送信されてきたコマンドを受信すると、ノースブリッジ９２を制御して、読み出された符号化ストリームＡおよび符号化ストリームＢのそれぞれのGOPの先頭にGOP−IDを付加させる。
【０１４８】
ステップＳ２１において、ストリーム転送部１６２は、ノースブリッジ９２を制御し、読み出させた符号化ストリームＡおよび符号化ストリームＢをメモリ１０１に転送させる。
【０１４９】
ステップＳ２２において、ストリーム転送部１６２は、GOPの転送完了の通知およびGOP情報を、ノースブリッジ９２、PCIバス９４、PCIブリッジ９７、およびコントロールバス９８を介して、CPU９９のストリーム入力部１７１に送信し、処理はステップＳ１４に進み、上述した処理が繰り返される。
【０１５０】
このようにして、CPU９１は、符号化ストリームを１GOPずつメモリ１０１に転送させるとともに、表示コマンドを発行して符号化ストリームをデコードさせる。そして、CPU９１は、デコードされ、合成処理および縮小処理が施されて得られた映像信号を表示装置に供給して画像を表示させる。
【０１５１】
CPU９１が符号化ストリームをメモリ１０１に転送し、表示コマンドをCPU９９に送信すると、CPU９９は、CPU９１から送信されてきた表示コマンドを受信して、デコード、合成処理、および縮小処理の実行を制御する処理である実行制御処理を行う。
【０１５２】
以下、図１４のフローチャートを参照して、CPU９９による実行制御処理について説明する。
【０１５３】
ステップＳ５１において、ストリーム入力部１７１は、ストリーム転送部１６２からの転送完了の通知およびGOP情報の受信を受け付ける。すなわち、ストリーム入力部１７１は、ストリーム転送部１６２から転送完了の通知およびGOP情報が送信されてきた場合、送信されてきた転送完了の通知およびGOP情報を受信する。
【０１５４】
ストリーム入力部１７１は、転送完了の通知およびGOP情報を受信すると、転送完了の通知を受信した旨のリザルトを、表示コマンド生成部１６３に送信する。また、ストリーム入力部１７１は、受信したGOP情報を復号コマンド生成部１８１に供給する。
【０１５５】
ステップＳ５２において、時刻管理部１７２は、表示コマンド生成部１６３から送信されてきた表示コマンドを受信する。例えば、時刻管理部１７２は、符号化ストリームＡの１GOP分のフレームの表示コマンドのそれぞれと、符号化ストリームＢの１GOP分のフレームの表示コマンドのそれぞれとを受信する。そして、時刻管理部１７２は、受信した表示コマンドを解釈し、表示コマンドに含まれる実行の開始時刻を参照して、受信した表示コマンドのうち、実行を開始する時刻となった表示コマンドを実行制御部１７３の復号コマンド生成部１８１に供給する。
【０１５６】
ステップＳ５３において、復号コマンド生成部１８１は、時刻管理部１７２から、実行の開始時刻となった表示コマンドを取得する。例えば、復号コマンド生成部１８１は、符号化ストリームＡを構成する所定の１フレームに対する表示コマンドと、符号化ストリームＢを構成する所定の１フレームに対する表示コマンドとを取得する。
【０１５７】
ステップＳ５４において、復号コマンド生成部１８１は、GOP情報が受信されたか否かを判定する。例えば、復号コマンド生成部１８１は、取得した表示コマンドにより指定されたフレームの含まれるGOPのGOP情報がストリーム入力部１７１から供給された場合、GOP情報が受信されたと判定する。
【０１５８】
ステップＳ５４において、GOP情報が受信されていないと判定された場合、GOP情報が得られず、表示コマンドにより指定されたフレームのデコードを行うことができないので、処理はステップＳ５５に進む。そしてステップＳ５５において、実行制御部１７３は、エラーが発生した旨の通知を生成して、表示制御部１６４に送信し、実行制御処理は終了する。
【０１５９】
これに対して、ステップＳ５４において、GOP情報が受信されたと判定された場合、復号コマンド生成部１８１は、ストリーム入力部１７１に対して、取得した表示コマンドにより指定されたフレームが含まれるGOP、およびそのフレームをデコードするために必要なフレームが含まれているGOPのデコーダ１０２への転送を要求し、処理はステップＳ５６に進む。
【０１６０】
ステップＳ５６において、CPU９９は、復号コマンド生成処理を行う。なお、復号コマンド生成処理の詳細は後述するが、この復号コマンド生成処理において、CPU９９は、符号化ストリームをデコードするための復号コマンドを生成し、デコーダ１０２に供給する。
【０１６１】
復号コマンド生成処理が行われ、復号コマンド生成部１８１からデコーダ１０２に復号コマンドが供給されると、デコーダ１０２は、復号コマンドによりデコードが指示されたフレームをデコードし、これにより得られた非圧縮の映像信号をメモリ１０１に供給して記憶させる。また、デコーダ１０２のデコードコントローラ２２１は、復号コマンドにより指示されたフレームのデコードが完了すると、デコードの完了通知を実行制御部１７３に供給する。
【０１６２】
メモリ１０１に映像信号が記憶され、デコードコントローラ２２１から実行制御部１７３にデコードの完了通知が供給されると、ステップＳ５７において、実行制御部１７３は、コンポジッタ１０３を制御して、メモリ１０１に記憶されている、符号化ストリームＡおよび符号化ストリームＢのそれぞれのデコードにより得られた映像信号のそれぞれを基に、合成処理を行わせる。コンポジッタ１０３は、実行制御部１７３の制御の基に、メモリ１０１から映像信号を取得し、取得した映像信号に対して合成処理を施す。そして、コンポジッタ１０３は、合成処理の施された映像信号をメモリ１０１に供給して記憶させる。
【０１６３】
ステップＳ５８において、実行制御部１７３は、リサイザ１０４を制御して、メモリ１０１に記憶されている、合成処理の施された映像信号を基に、縮小処理を行わせる。リサイザ１０４は、実行制御部１７３の制御の基に、メモリ１０１から映像信号を取得し、取得した映像信号に対して縮小処理を施す。例えば、リサイザ１０４は、映像信号により表示される画像が、ＨＤ画像のサイズからＳＤ画像のサイズとなるように、映像信号に対して縮小処理を施す。そして、リサイザ１０４は、縮小処理の施された映像信号をメモリ１０１に供給して記憶させる。
【０１６４】
ステップＳ５９において、時刻管理部１７２は、全てのフレームの処理が終了したか否かを判定する。すなわち、時刻管理部１７２は、受信した全ての表示コマンドを実行したか否かを判定する。
【０１６５】
ステップＳ５９において、全てのフレームの処理が終了していないと判定された場合、処理はステップＳ５１に戻り、上述した処理が繰り返される。
【０１６６】
これに対して、ステップＳ５９において、全てのフレームの処理が終了したと判定された場合、実行制御処理は終了する。
【０１６７】
このようにして、CPU９９は、CPU９１からの表示コマンドを受信して、その表示コマンドにより指示された処理を行う。
【０１６８】
次に、図１５のフローチャートを参照して、図１４のステップＳ５６の処理に対応する復号コマンド生成処理について説明する。
【０１６９】
ステップＳ９１において、ストリーム入力部１７１は、デコードに必要なGOPがデコーダ１０２に入力されているか否かを判定する。すなわち、ストリーム入力部１７１は、ステップＳ５４の処理において復号コマンド生成部１８１から転送が要求されたGOP、つまりこれからデコードするフレームの含まれたGOP、およびそのフレームをデコードするために必要なフレームが含まれているGOPが既にデコーダ１０２に入力されているか否かを判定する。
【０１７０】
例えばストリーム入力部１７１は、デコーダ１０２に一時的に記憶されているGOPのGOP−IDを、GOPがデコーダ１０２に入力された順に並べたGOP−IDキューを用いることで、デコーダ１０２に記憶されているGOPを管理している。
【０１７１】
例えば、デコーダ１０２のストリームバッファ２２３には、図１６Ａに示すように、最大で５つのGOPがバッファリングできるようになされている。図１６Ａの例では、ストリームバッファ２２３には、符号化ストリームのGOP（Ａ）乃至GOP（Ｅ）が順番に並べられてバッファリングされている。
【０１７２】
ストリームバッファ２２３に入力されるGOPは、矢印Ｑ４１に示されるように、GOP（Ａ）が格納されている領域から順番に、図中、右方向に書き込まれていき、GOP（Ｅ）が格納されている領域に新たなGOPが書き込まれると、次のGOPは先頭の領域に戻り、GOP（Ａ）が格納されている領域に書き込まれる。
【０１７３】
また、図中、矢印Ｑ４２および矢印Ｑ４３は、書き込まれた時刻が最も古いGOPが格納されている領域、および書き込まれた時刻が最も新しいGOPが格納されている領域の位置を示している。したがって、これらの矢印Ｑ４２および矢印Ｑ４３により示される位置も、新たにGOPが書き込まれるごとに矢印Ｑ４１に示される方向に１つずつ移動される。
【０１７４】
このようにストリームバッファ２２３に、最大で５つのGOPがバッファリングされる場合、ストリーム入力部１７１は、図１６Ｂに示すGOP−IDキューを保持している。GOP−IDキューには、番号０乃至番号４の５つの要素が格納（キュー）されている。すなわち、番号０の要素乃至番号４の要素のそれぞれは、図１６ＡにおけるGOP（Ａ）乃至GOP（Ｅ）のGOP−IDのそれぞれを示している。
【０１７５】
ここで、GOP−IDキューに格納されるGOP−IDは、GOP情報に含まれているGOP−IDであり、GOPを特定するための３２ビットの識別子とされる。また、GOP−IDは番号０の要素から番号４の要素まで、ストリームバッファ２２３にGOPが転送された順番で格納されている。つまり、番号０の要素として格納されているGOP−IDは、ストリームバッファ２２３にバッファリングされているGOPのうち、最も古い時刻に書き込まれたGOP（Ａ）のGOP−IDを示しており、番号４の要素として格納されているGOP−IDは、最も新しい時刻に書き込まれたGOP（Ｅ）のGOP−IDを示している。
【０１７６】
ストリーム入力部１７１は、ストリームバッファ２２３に新たにGOPを転送するたびに、番号４の要素として新たに転送したGOPのGOP−IDをプッシュし、番号０の要素として格納されているGOP−IDをポップする。
【０１７７】
このように、ストリーム入力部１７１には、ストリームバッファ２２３に記憶されているGOPのGOP−IDが、それらのGOPが転送された順番で格納されているので、どのGOPがストリームバッファ２２３に記憶されているかを知ることができる。したがって、ストリーム入力部１７１は、復号コマンド生成部１８１において復号コマンドが発行されるたびにGOPをストリームバッファ２２３に転送する必要がなくなる。
【０１７８】
なお、ストリームバッファ２２３に最大で５つのGOPがバッファリングされる例について説明したが、ストリームバッファ２２３にバッファリングできる最大のGOP数は、４以下であってもよいし、６以上であってもよい。
【０１７９】
ストリーム入力部１７１は、このようなGOP−IDキューを、デコーダ１０２−１およびデコーダ１０２−２のそれぞれについて保持している。
【０１８０】
したがって、ストリーム入力部１７１は、復号コマンド生成部１８１から転送が要求されたGOPのGOP−IDが、GOP−IDキューに格納されている場合、ステップＳ９１においてデコードに必要なGOPがデコーダ１０２に入力されていると判定する。
【０１８１】
図１５のフローチャートの説明に戻り、ステップＳ９１において、デコードに必要なGOPが入力されていると判定された場合、ストリームバッファ２２３にGOPを転送する必要がないので、ステップＳ９２の処理およびステップＳ９３の処理はスキップされて、処理はステップＳ９４に進む。
【０１８２】
これに対して、ステップＳ９１において、デコードに必要なGOPが入力されていないと判定された場合、ステップＳ９２において、ストリーム入力部１７１はメモリ１０１を制御して、復号コマンド生成部１８１により転送が要求されたGOPのうち、まだストリームバッファ２２３に転送されていないGOPを１GOPずつストリームバッファ２２３に転送させる。
【０１８３】
すなわち、ストリーム入力部１７１は、メモリ１０１を制御して、メモリ１０１に記憶されているGOPのうち、まだ転送されていないGOPのGOP−IDにより特定されるGOPをストリームバッファ２２３に供給させる。
【０１８４】
ステップＳ９３において、ストリーム入力部１７１は、メモリ１０１からストリームバッファ２２３に転送したGOPのGOP−IDを、GOPを転送した順番にGOP−IDキューに格納する。
【０１８５】
ステップＳ９３において、転送したGOPのGOP−IDがGOP−IDキューに格納されるか、ステップＳ９１においてデコードに必要なGOPが入力されていると判定されると、ステップＳ９４において、復号コマンド生成部１８１は、時刻管理部１７２から供給された表示コマンドに含まれているビットレートＩＤに基づいて、遅延テーブル保持部１７４の遅延テーブルから遅延値を取得する。
【０１８６】
例えば、遅延テーブル保持部１７４は、図１７に示すように、ビットレートＩＤにより示されるビットレート、すなわちデコードする符号化ストリームのビットレートに対する遅延値を示す情報が、ビットレートＩＤごとに並べられた遅延テーブルを保持している。
【０１８７】
つまり、図１７には、１つのビットレートＩＤに対する遅延値を示す情報が示されており、遅延テーブルには、このようなビットレートＩＤに対する遅延値を示す情報が複数含まれている。また、遅延値は、符号化ストリームに基づくフレームが表示される表示周期の長さの整数倍の時間、例えば表示周期をＴとして、２Ｔ乃至４Ｔの何れかの値とされる。
【０１８８】
復号コマンド生成部１８１は、遅延テーブル保持部１７４に保持されている遅延テーブルを参照して、表示コマンドに含まれているビットレートＩＤに対する遅延値を、デコードするフレームに対して与える遅延時間を示す遅延値として取得する。なお、ここでは、符号化ストリームＡおよび符号化ストリームＢのビットレートは同じであるとし、復号コマンド生成部１８１により、符号化ストリームＡの表示コマンド、および符号化ストリームＢの表示コマンドに対して、同じ遅延値が取得されるものとする。
【０１８９】
図１５のフローチャートの説明に戻り、ステップＳ９５において、復号コマンド生成部１８１は、表示コマンド、取得した遅延値、およびストリーム入力部１７１からのGOP情報を基に、デコーダ１０２にデコードを行わせるための復号コマンドを生成する。
【０１９０】
例えば、復号コマンド生成部１８１は、復号コマンドに、デコードさせるフレームのフレームＩＤ、そのフレームが含まれているGOPのGOP−ID、遅延値、およびそのフレームがデコードされるときに参照される参照フレームを示す情報、つまり参照フレームのフレームＩＤが含まれるように、符号化ストリームＡを構成するフレームに対する復号コマンドと、符号化ストリームＢを構成するフレームに対する復号コマンドとを生成する。ここで、復号コマンドに含まれるフレームＩＤおよびGOP−IDは、表示コマンドに含まれるフレームＩＤおよびGOP−IDと同一のものとされる。
【０１９１】
復号コマンド生成部１８１は、復号コマンドを生成すると、生成した復号コマンドをデコーダ１０２のデコードコントローラ２２１に供給し、処理は図１４のステップＳ５７に進む。また、復号コマンド生成部１８１からデコーダ１０２に復号コマンドが供給されると、デコーダ１０２は、復号コマンドによりデコードが指示されたフレームをデコードし、これにより得られた映像信号をメモリ１０１に供給して記憶させる。そして、デコーダ１０２のデコードコントローラ２２１は、復号コマンドにより指示されたフレームのデコードが完了すると、デコードの完了通知を実行制御部１７３に供給する。
【０１９２】
なお、より詳細には、復号コマンド生成部１８１は、ストリーム入力部１７１に保持されているGOP−IDキューを参照し、表示コマンドにより指定されたフレームが、GOP−IDキューに格納されているGOP−IDのうち、最も古い時刻に格納されたGOP−IDにより特定されるGOPに含まれるフレームである場合には、そのフレームに対する復号コマンドを生成しない。そして、実行制御部１７３は、エラーが発生した旨の通知を表示制御部１６４に送信する。
【０１９３】
例えば、図１６Ｂに示したGOP−IDキューにおいて、最も古い時刻に格納された番号０の要素であるGOP−IDにより特定されるGOP（Ａ）は、ストリームバッファ２２３にバッファリングされているGOPのうち、最も古い時刻に入力されたGOPである。
【０１９４】
したがって、GOP（Ａ）に含まれるフレームに対して復号コマンドが発行された場合、ストリームバッファ２２３に新たなGOPが入力されたときには、ストリームバッファ２２３に記憶されているGOP（Ａ）は、新たに入力されたGOPに上書きされてしまうので、デコーダ１０２は、復号コマンドによりフレームのデコードが指示されているにも関わらず、ストリームバッファ２２３にGOP（Ａ）が記憶されていないので、フレームのデコードを行うことができなくなってしまう。
【０１９５】
そこで、復号コマンド生成部１８１は、このようなデコードができなくなってしまう事態の発生を抑制するために、最も古い時刻にGOP−IDキューに格納されたGOP−IDにより特定されるGOPに含まれるフレームに対しては、復号コマンドを発行しない。
【０１９６】
また、復号コマンド生成部１８１は、GOP−IDキューに格納された番号１乃至番号４の要素のGOP−IDにより特定されるGOPに含まれるフレームに対しては、復号コマンドを発行する。ストリーム入力部１７１は、GOP−IDキューを参照することにより、どのGOPがストリームバッファ２２３にバッファリングされているかを知ることができるので、番号１乃至番号４の要素のいずれかのGOP−IDにより特定されるGOPに含まれるフレームに対して復号コマンドが発行されるときには、復号コマンドを発行するたびにGOPをストリームバッファ２２３に転送する必要がなくなる。
【０１９７】
このようにして、CPU９９は、必要に応じて符号化ストリームを１GOP分ずつストリームバッファ２２３に転送させ、符号化ストリームのビットレートに応じた遅延値の含まれる復号コマンドを生成する。
【０１９８】
このように、必要に応じて符号化ストリームを１GOP分ずつストリームバッファ２２３に転送させ、符号化ストリームのビットレートに応じた遅延値の含まれる復号コマンドを生成することで、GOPの転送時間、デコードさせるフレームのピクチャタイプやGOP内の位置に関わらず、符号化ストリームＡおよび符号化ストリームＢの処理レイテンシを同じ長さの時間とすることができる。
【０１９９】
すなわち、遅延値が含まれる復号コマンドを発行して、その遅延値により示される遅延時間だけデコードの開始を遅延させるだけで、符号化ストリームＡを構成するフレームのデコードが完了する時刻と、符号化ストリームＢを構成するフレームのデコードが完了する時刻とを同じ時刻にすることができる。これにより、複数の画像を同時に表示させる場合に、より簡単に画像の表示を同期させることができる。
【０２００】
また、同じ時刻に符号化ストリームＡおよび符号化ストリームＢの同時に表示されるフレームのデコードを完了させることができるので、デコーダ１０２における処理レイテンシの差を吸収するために、後段のメモリ１０１に複数フレーム分の映像信号を記憶させるための記憶容量を確保する必要がなくなり、編集装置８１の小型化を図ることができる。
【０２０１】
ところで、復号コマンド生成処理が行われて復号コマンドが発行され、発行された復号コマンドが復号コマンド生成部１８１からデコーダ１０２のデコードコントローラ２２１に供給されると、デコーダ１０２は、復号コマンドにより指示されたフレームをデコードする処理であるデコード処理を開始する。
【０２０２】
以下、図１８のフローチャートを参照して、デコーダ１０２によるデコード処理について説明する。なお、このデコード処理は、デコーダ１０２−１およびデコーダ１０２−２のそれぞれにおいて実行される。
【０２０３】
ステップＳ１２１において、デコードコントローラ２２１は、新たにストリームバッファ２２３に符号化ストリームが入力されたか否かを判定する。ステップＳ１２１において、符号化ストリームが入力されていないと判定された場合、処理はステップＳ１２３に進む。
【０２０４】
これに対して、ステップＳ１２１において、符号化ストリームが入力されたと判定された場合、ステップＳ１２２において、デコードコントローラ２２１は、デコード処理部２２４を制御してアンカーフレームのデコードを開始させる。
【０２０５】
すなわち、デコードコントローラ２２１は、ストリームバッファ２２３を制御して、新たに入力された符号化ストリームに含まれるアンカーフレームを１フレームずつデコード処理部２２４に供給させる。そして、デコードコントローラ２２１は、デコード処理部２２４を制御して、ストリームバッファ２２３からデコード処理部２２４に供給されたアンカーフレームをMEPGなどの所定の方式によりデコードさせ、これにより得られた非圧縮の映像信号を予め定められた参照バンク２３１に供給させて記憶させる。また、デコードコントローラ２２１は、必要に応じてセレクタ２２６を制御し、デコード処理部２２４においてデコードされるアンカーフレームの参照フレームを、参照バンク２３１からデコード処理部２２４に供給させる。
【０２０６】
なお、デコード処理部２２４において他のフレームのデコードが行われており、アンカーフレームのデコードを直ちに開始できない場合や、参照バンク２３１に他のアンカーフレームが記憶されているため、新たなアンカーフレームを記憶させることができず、アンカーフレームのデコードを直ちに開始できない場合、デコードコントローラ２２１は、新たに入力された符号化ストリームのアンカーフレームのデコードを開始できる状態になった時点で、デコード処理部２２４を制御してデコードを開始させる。
【０２０７】
ステップＳ１２２においてアンカーフレームのデコードが開始されたか、ステップＳ１２１において符号化ストリームが入力されていないと判定されると、ステップＳ１２３において、デコードコントローラ２２１は、復号コマンド生成部１８１から復号コマンドが供給されたか否かを判定する。ステップＳ１２３において、復号コマンドが供給されていないと判定された場合、処理はステップＳ１２５に進む。
【０２０８】
これに対して、ステップＳ１２３において、復号コマンドが供給されたと判定された場合、ステップＳ１２４において、デコードコントローラ２２１は、復号コマンド生成部１８１から供給された復号コマンドを、復号コマンドの供給された順番に並べた復号コマンドキューに格納する。
【０２０９】
例えば、復号コマンド生成部１８１からデコードコントローラ２２１には、図１９の矢印Ｑ６１により示される復号コマンドが供給される。図１９の例では、復号コマンドには、デコードするフレームが含まれているGOPのGOP−ID、フレームＩＤ、および遅延値が含まれている。ここで、遅延値における括弧内の数値は、デコードの開始を遅延させる遅延時間を表す表示周期の数を示している。矢印Ｑ６１により示される復号コマンドの遅延値により示される表示周期数は３であるので、この遅延値３は、遅延時間が表示周期Ｔの３倍である、３Ｔであることを示している。したがって、遅延値が３であるこの復号コマンドは、復号コマンドキューに格納されてから３表示周期後に実行される。
【０２１０】
また、復号コマンドキューには、番号０乃至番号３の４つの要素が格納（キュー）されており、復号コマンドは、番号０の要素から番号３の要素まで、デコードコントローラ２２１に供給された順番で格納されている。つまり、番号０の要素として格納されている復号コマンドは、復号コマンドキューに格納されている復号コマンドのうち、最も古い時刻に格納された復号コマンドであり、番号３の要素として格納されている復号コマンドは、最も新しい時刻に格納された復号コマンドである。
【０２１１】
デコードコントローラ２２１は、復号コマンド生成部１８１から復号コマンドが供給されると、供給された復号コマンドを復号コマンドキューにプッシュし、編集装置８１におけるフレームが表示されるタイミング、つまり表示コマンドが実行されるタイミングの時刻になると、復号コマンドキューに格納されている各復号コマンドの遅延値を１ずつ減算する。そして、デコードコントローラ２２１は、遅延値が０となった復号コマンドを実行し、その復号コマンドについては、その要素を開放する。図１９の例では、番号０の要素として格納されている復号コマンドの遅延値が０であるので、デコードコントローラ２２１は、遅延値が０となった番号０の要素の復号コマンドを実行して、番号０の要素を開放する。
【０２１２】
図１８のフローチャートの説明に戻り、ステップＳ１２４において復号コマンドが復号コマンドキューに格納されるか、ステップＳ１２３において復号コマンドが供給されていないと判定された場合、ステップＳ１２５において、デコードコントローラ２２１は、クロック信号発生部２２２から表示周期と同期したクロック信号が供給されたか否かを判定する。
【０２１３】
つまり、CPU９１およびCPU９９は、表示周期Ｔを周期とするクロック信号に基づいて、各種の処理を実行したり、編集装置８１の各部に処理を実行させたりしている。これに対して、デコーダ１０２に設けられたクロック信号発生部２２２は、表示周期の４分の１の周期のクロック信号を発生し、デコードコントローラ２２１は、このクロック信号に基づいて、デコーダ１０２の各部に各種の処理を実行させる。
【０２１４】
ここで、クロック信号発生部２２２が発生するクロック信号の４クロックに一度は、CPU９１およびCPU９９が処理を行うタイミングと同期するようになされている。デコードコントローラ２２１は、クロック信号発生部２２２からのクロック信号が、CPU９１およびCPU９９が処理を行うタイミングと同期した場合、表示周期と同期したクロック信号が供給されたと判定する。
【０２１５】
ステップＳ１２５において、表示周期と同期したクロック信号が供給されなかったと判定された場合、処理はステップＳ１２１に戻り、上述した処理が繰り返される。
【０２１６】
一方、ステップＳ１２５において、表示周期と同期したクロック信号が供給されたと判定された場合、すなわち、最後にフレームが表示されるタイミングとなってから１表示周期だけ経過した場合、ステップＳ１２６に進み、デコードコントローラ２２１は、復号コマンドキューに格納されている各復号コマンドの遅延値を１だけ減算（デクリメント）する。例えば、図１９の番号１の要素の復号コマンドの遅延値は１であるので、デコードコントローラ２２１は、その遅延値を１減算して０とする。
【０２１７】
また、例えば図１２の時刻ｔ４２において、復号コマンド生成部１８１からデコードコントローラ２２１に遅延値が３である復号コマンドが供給された場合、デコードコントローラ２２１は、時刻ｔ４３において遅延値を２とし、時刻ｔ４５において遅延値を１とし、さらに時刻ｔ４６において遅延値を０として復号コマンドを復号コマンドキューから取得し、デコードを開始させる。
【０２１８】
このように、デコードコントローラ２２１は、表示周期に同期したクロック信号が供給されるたびに、すなわちフレームが表示されるタイミングの時刻となるたびに、復号コマンドキューに格納されている各復号コマンドの遅延値から、表示周期の長さの時間、つまり１ずつ減算していくことで、各復号コマンドにより指定されたフレームのデコードの開始までの時間をカウントする。
【０２１９】
ステップＳ１２７において、デコードコントローラ２２１は、遅延値が０となった復号コマンドがあるか否かを判定する。ステップＳ１２７において、遅延値が０となった復号コマンドがないと判定された場合、実行すべき時刻となった復号コマンドはないので、ステップＳ１２８の処理およびステップＳ１２９の処理はスキップされて、処理はステップＳ１３０に進む。
【０２２０】
これに対して、ステップＳ１２７において、遅延値が０となった復号コマンドがあると判定された場合、デコードコントローラ２２１は、復号コマンドキューから遅延値が０となった復号コマンドを取得するとともに、その復号コマンドが格納されていた要素を開放し、処理はステップＳ１２８に進む。
【０２２１】
ステップＳ１２８において、デコードコントローラ２２１は、取得した復号コマンドにより指定されたフレームのデコードが終了しているか否かを判定する。例えば、復号コマンドにより指定されるフレームがアンカーフレームである場合、アンカーフレームは、デコーダ１０２に入力されると同時にデコードが開始されるので、復号コマンドを実行される時刻には、すでにフレームのデコードが終了し、フレームメモリ２２５に記憶されている。デコードコントローラ２２１は、復号コマンドにより指定されるフレームのデコードが終了し、フレームメモリ２２５に記憶されている場合、デコードが終了していると判定する。
【０２２２】
ステップＳ１２８において、デコードが終了していると判定された場合、フレームのデコードは行われないので処理はステップＳ１３０に進む。
【０２２３】
一方、ステップＳ１２８において、デコードが終了していないと判定された場合、ステップＳ１２９において、デコードコントローラ２２１はデコード処理部２２４を制御して、復号コマンドによりデコードが指示されたフレームのデコードを開始させる。
【０２２４】
すなわち、デコードコントローラ２２１は、ストリームバッファ２２３を制御して、復号コマンドにより指定されたフレーム、より詳細には、符号化ストリームのうち、指定されたフレームを表示させるための部分のデータをコード処理部２２４に供給させる。そして、デコードコントローラ２２１は、デコード処理部２２４を制御して、ストリームバッファ２２３からデコード処理部２２４に供給されたフレームをデコードさせ、これにより得られた非圧縮の映像信号を予め定められた表示専用バンク２３２に供給させて記憶させる。また、デコードコントローラ２２１は、セレクタ２２６を制御し、デコード処理部２２４においてデコードされるフレームの参照フレームを、参照バンク２３１からデコード処理部２２４に供給させる。
【０２２５】
デコード処理部２２４は、デコードコントローラ２２１の制御の基に、セレクタ２２６から供給された参照フレームを用いて、ストリームバッファ２２３から供給されたフレーム、つまりフレームのデータをデコードし、デコードにより得られた映像信号をフレームメモリ２２５の表示専用バンク２３２に供給して記憶させる。また、デコードコントローラ２２１は、復号コマンドにより指定されたフレームのデコードが完了すると、デコードの完了通知をCPU９９の実行制御部１７３に供給する。
【０２２６】
ステップＳ１２９においてデコードが開始されるか、ステップＳ１２８においてデコードが終了していると判定されたか、またはステップＳ１２７において遅延値が０となった復号コマンドがないと判定された場合、ステップＳ１３０において、デコードコントローラ２２１は、出力する時刻となったフレームがあるか否かを判定する。
【０２２７】
例えば、デコードコントローラ２２１は、前回、クロック信号発生部２２２から表示周期と同期したクロック信号が供給されたときにデコードする時刻となったフレームであって、今回表示周期と同期したクロック信号が供給された時点において、参照バンク２３１または表示専用バンク２３２に記憶されているフレームを、出力する時刻となったフレームであるとして、そのようなフレームがある場合、デコードコントローラ２２１は、出力する時刻となったフレームがあると判定する。
【０２２８】
ステップＳ１３０において、出力する時刻となったフレームがないと判定された場合、フレームを出力しないので、処理はステップＳ１３２に進む。これに対して、ステップＳ１３０において、出力する時刻となったフレームがあると判定された場合、ステップＳ１３１において、出力部２２７は、デコードコントローラ２２１の制御の基に、出力する時刻となったフレームが記憶されている参照バンク２３１または表示専用バンク２３２からフレームを取得して、メモリ１０１に出力する。そしてメモリ１０１は、出力部２２７から供給された１フレーム分の映像信号を記憶する。
【０２２９】
ステップＳ１３１において、フレームが出力されるか、またはステップＳ１３０において出力するフレームがないと判定された場合、ステップＳ１３２において、デコードコントローラ２２１は、処理を終了するか否かを判定する。例えば、復号コマンドキューに復号コマンドが１つも格納されていない場合、デコードコントローラ２２１は、処理を終了すると判定する。
【０２３０】
ステップＳ１３２において、処理を終了しないと判定された場合、すなわちまだ復号コマンドキューに格納されている復号コマンドがある場合、処理はステップＳ１２１に戻り、上述した処理が繰り返される。
【０２３１】
これに対して、ステップＳ１３２において、処理を終了すると判定された場合、デコード処理は終了される。
【０２３２】
このようにして、デコーダ１０２は、復号コマンド生成部１８１から復号コマンドが供給されると、復号コマンドに含まれる遅延値だけフレームのデコードの開始を遅延させた後、復号コマンドを実行してフレームのデコードを開始する。
【０２３３】
このように、復号コマンドに含まれる遅延値だけ、フレームのデコードの開始を遅延させた後、復号コマンドを実行してフレームのデコードを開始することで、デコードするフレームのピクチャタイプやGOP内の位置に関わらず、復号コマンドが供給されてから所定の時間後にデコードが指示されたフレームを出力することができる。したがって、符号化ストリームＡのフレームのデコードが完了する時刻と、符号化ストリームＢのフレームのデコードが完了する時刻とを同じ時刻にすることができ、複数の画像を同時に表示させる場合に、より簡単に画像の表示を同期させることができる。
【０２３４】
なお、以上においては、編集の対象となる複数の符号化ストリームのそれぞれのビットレートが同じである場合について説明したが、符号化ストリームのそれぞれのビットレートが異なる場合、それぞれの符号化ストリームの処理レイテンシは異なる。
【０２３５】
例えば、図２０Ａに示す素材１および素材２において、素材１のビデオデータ２１−１のビットレートよりも、素材２のビデオデータ２１−２のビットレートが高い場合、素材２の処理レイテンシは、素材１の処理レイテンシよりも長くなる。すなわち、素材２においては、素材１よりもビットレートが高い分だけ、符号化ストリームのデコーダへの入力時間やデコード時間により長い時間が必要となるため、素材２の処理レイテンシは、素材１の処理レイテンシよりも長くなる。なお、図２０において、図４における場合と対応する部分には、同一の符号を付してあり、その説明は省略する。
【０２３６】
図２０Ａでは、カーソル２４が、ビデオデータ２１−１のフレームＡおよびビデオデータ２１−２のフレームＢに位置しているので、編集装置のアプリケーションプログラムを実行する制御部は、図２０Ｂに示すように、時刻ｔ１において、フレームＡ乃至フレーム（Ａ＋３）のそれぞれの表示を指示するコマンドと、フレームＢ乃至フレーム（Ｂ＋３）のそれぞれの表示を指示するコマンドとを処理部に対してフレームごとに発行する。
【０２３７】
処理部は、制御部からコマンドが供給されると、時刻ｔ２においてデコーダを制御し、素材１のフレームＡおよび素材２のフレームＢのデコードを開始させる。そして、図２０Ｂの例では、フレームＡのデコードは時刻ｔ４に完了しているが、素材１よりもビットレートの高い素材２のフレームＢは、フレームＡと同時刻に処理が開始されたにも関わらず時刻ｔ６となるまでデコードが完了しない。
【０２３８】
素材１の処理レイテンシは２表示周期であり、素材２の処理レイテンシは４表示周期であるので、図２０Ｃに示すように、フレームＡおよびフレームＢの表示の同期をとるためには、フレームバッファ５２−１には３フレーム分のビデオデータを記憶させるための記憶容量が必要となる。また、フレームＡおよびフレームＢが同時にコンポジッタ５３に供給されるように、制御が行われなければならない。
【０２３９】
このように、編集の対象となる複数の符号化ストリームのそれぞれのビットレートが異なる場合、図５に示した編集装置８１においては、アプリケーションプログラムを実行するCPU９１が符号化ストリームＡおよび符号化ストリームＢのそれぞれのビットレートを把握しているため、CPU９１によって符号化ストリームＡおよび符号化ストリームＢの処理レイテンシが同じとなるように制御が行われる。
【０２４０】
すなわち、CPU９１の表示コマンド生成部１６３は、操作入力取得部１６１からの情報に基づいて、符号化ストリームＡおよび符号化ストリームＢのビットレートＩＤのうち、より高いビットレートを示すビットレートＩＤが表示コマンドに含まれるように、符号化ストリームＡおよび符号化ストリームＢのそれぞれの表示コマンドを発行する。
【０２４１】
以下、図２１のフローチャートを参照して、符号化ストリームＡおよび符号化ストリームＢのビットレートが異なる場合における表示制御処理について説明する。なお、ステップＳ１６１の処理乃至ステップＳ１６３の処理は、図１３のステップＳ１１の処理乃至ステップＳ１３の処理のそれぞれと同様であるのでその説明は省略する。
【０２４２】
ステップＳ１６４において、表示コマンド生成部１６３は、操作入力取得部１６１から供給されるビットレートＩＤを基に、編集の対象となる符号化ストリームＡのビットレートと符号化ストリームＢのビットレートとが異なるか否かを判定する。
【０２４３】
ステップＳ１６４において、ビットレートが同じであると判定された場合、ビットレートＩＤを変更する必要はないので、ステップＳ１６５の処理はスキップされて、処理はステップＳ１６６に進む。
【０２４４】
これに対して、ステップＳ１６４において、ビットレートが異なると判定された場合、ステップＳ１６５に進み、表示コマンド生成部１６３は、符号化ストリームＡのビットレートＩＤ、および符号化ストリームＢのビットレートＩＤのうち、より低いビットレートを示すビットレートＩＤが、より高いビットレートを示すビットレートＩＤとなるように、ビットレートの低い符号化ストリームのビットレートＩＤを変更する。
【０２４５】
例えば、符号化ストリームＡのビットレートが符号化ストリームＢのビットレートよりも低い場合、表示コマンド生成部１６３は、符号化ストリームＡのビットレートＩＤが、符号化ストリームＢのビットレートＩＤとなるように、符号化ストリームＡのビットレートＩＤを変更する。
【０２４６】
ステップＳ１６５において、ビットレートＩＤが変更されるか、ステップＳ１６４においてビットレートが同じであると判定されると、ステップＳ１６６において、表示コマンド生成部１６３は、必要に応じて変更されたビットレートＩＤが含まれる表示コマンドを生成し、生成した表示コマンドをCPU９９の時刻管理部１７２に送信する。
【０２４７】
その後、ステップＳ１６７の処理乃至ステップＳ１７４の処理のそれぞれが行われるが、それらの処理は図１３のステップＳ１５の処理乃至ステップＳ２２の処理のそれぞれと同様なので、その説明は省略する。
【０２４８】
また、CPU９９は、必要に応じて変更されたビットレートＩＤが含まれる表示コマンドを受信すると、その表示コマンドにより指定されたフレームのビットレートは、ビットレートＩＤにより示されるビットレートであるものとして処理を行うので、符号化ストリームＡおよび符号化ストリームＢには同じ遅延値が与えられる。
【０２４９】
つまり、符号化ストリームのビットレートＩＤは、より高い方のビットレートとなるように変更されるので、各符号化ストリームに与えられる遅延値は、よりビットレートの高い符号化ストリーム、すなわち、より長い前処理時間を必要とする符号化ストリームにおいて、フレームのデコードの開始までに必要な遅延時間を示す遅延値とされる。
【０２５０】
したがって、符号化ストリームＡおよび符号化ストリームＢについて、CUP９９によりスケジューリングされた出力時刻に間に合うように各フレームのデコードを完了することができるとともに、デコードの完了までの処理レイテンシを同じ時間にすることができる。
【０２５１】
このように、必要に応じてビットレートＩＤを変更することで、簡単に符号化ストリームＡおよび符号化ストリームＢの処理レイテンシが同じとなるように制御することができ、複数の画像を同時に表示させる場合に、より簡単に画像の表示を同期させることができる。
【０２５２】
なお、CPU９１においてビットレートＩＤを変更すると説明したが、復号コマンド生成部１８１がビットレートＩＤを変更するようにしてもよい。そのような場合、復号コマンド生成部１８１は、時刻管理部１７２から取得した符号化ストリームＡの表示コマンドに含まれるビットレートＩＤと、符号化ストリームＢの表示コマンドに含まれるビットレートＩＤとを用いて、ビットレートを比較し、より低いビットレートの符号化ストリームのビットレートＩＤを、より高いビットレートの符号化ストリームのビットレートＩＤに変更し、復号コマンドを生成する。
【０２５３】
また、以上においては、編集の対象となる符号化ストリームが２つである場合を例として説明したが、編集の対象となる符号化ストリームは３以上であってもよい。
【０２５４】
さらに、以上の説明においては、CPU９１とCPU９９とが信号を授受し、分担して、制御を行うものとして説明したが、例えば、同様の処理を、１つのCPUを用いて実行するようにしてもよい。そのような場合、例えば、図１４を参照して説明した処理が、CPU９１によって実行される。
【０２５５】
さらに、また、デコード方式としてMPEGを用いた場合を例として説明しているが、フレーム相関を伴う他のデコード方式により処理を行う場合においても、本発明は適用可能であることはいうまでもない。例えば、AVC（Advanced Video Coding）／H．264などにおいて、本発明は適用可能である。
【０２５６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２５７】
図２２は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。パーソナルコンピュータ５０１のCPU５１１は、ROM（Read Only Memory）５１２、または記憶部５１８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）５１３には、CPU５１１が実行するプログラムやデータなどが適宜記憶される。これらのCPU５１１、ROM５１２、およびRAM５１３は、バス５１４により相互に接続されている。
【０２５８】
CPU５１１にはまた、バス５１４を介して入出力インターフェース５１５が接続されている。入出力インターフェース５１５には、キーボード、マウス、マイクロホンなどよりなる入力部５１６、ディスプレイ、スピーカなどよりなる出力部５１７が接続されている。CPU５１１は、入力部５１６から入力される指令に対応して各種の処理を実行する。そして、CPU５１１は、処理の結果を出力部５１７に出力する。
【０２５９】
入出力インターフェース５１５に接続されている記憶部５１８は、例えばハードディスクからなり、CPU５１１が実行するプログラムや各種のデータを記憶する。通信部５１９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０２６０】
また、通信部５１９を介してプログラムを取得し、記憶部５１８に記憶してもよい。
【０２６１】
入出力インターフェース５１５に接続されているドライブ５２０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア５３１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部５１８に転送され、記憶される。
【０２６２】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図２２に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア５３１、または、プログラムが一時的もしくは永続的に格納されるROM５１２や、記憶部５１８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部５１９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２６３】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２６４】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２６５】
【図１】画像の編集時に編集装置に表示されるGUIの一例を示す図である。
【図２】従来の符号化ストリームの処理レイテンシについて説明する図である。
【図３】ピクチャタイプの違いにより生じる処理レイテンシの差を説明する図である。
【図４】従来の符号化ストリームの処理レイテンシについて説明する図である。
【図５】本発明を適用した編集装置のハードウェア構成を示すブロック図である。
【図６】編集装置の機能の構成を示すブロック図である。
【図７】制御部のより詳細な構成を示すブロック図である。
【図８】デコーダの構成を示すブロック図である。
【図９】符号化ストリームの処理レイテンシについて説明する図である。
【図１０】符号化ストリームの処理レイテンシについて説明する図である。
【図１１】デコーダにおける処理の概要を説明する図である。
【図１２】編集装置による処理の概要を説明する図である。
【図１３】表示制御処理を説明するフローチャートである。
【図１４】実行制御処理を説明するフローチャートである。
【図１５】復号コマンド生成処理を説明するフローチャートである。
【図１６】GOP−IDキューを説明する図である。
【図１７】遅延テーブルを説明する図である。
【図１８】デコード処理を説明するフローチャートである。
【図１９】復号コマンドキューを説明する図である。
【図２０】符号化ストリームの処理レイテンシについて説明する図である。
【図２１】表示制御処理を説明するフローチャートである。
【図２２】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
【０２６６】
８１  編集装置，  ９１  CPU，  ９６  HDD，  ９９  CPU，  １０１  メモリ，  １０２−１，１０２−２，１０２  デコーダ，  １０３  コンポジッタ，  １０４  リサイザ，  １３１  制御部，  １３２  デコーダ，  １６２  ストリーム転送部，  １６３  表示コマンド生成部，  １６４  表示制御部，  １７１  ストリーム入力部，  １７２  時刻管理部，  １７３  実行制御部，  １７４  遅延テーブル保持部，  １８１  復号コマンド生成部，  ２２１  デコードコントローラ，  ２２２  クロック信号発生部，  ２２３  ストリームバッファ，  ２２４  デコード処理部，  ２２５  フレームメモリ
【図１】
2008085616.tif 000003
【図２】
2008085616.tif 000004
【図３】
2008085616.tif 000005
【図４】
2008085616.tif 000006
【図５】
2008085616.tif 000007
【図６】
2008085616.tif 000008
【図７】
2008085616.tif 000009
【図８】
2008085616.tif 000010
【図９】
2008085616.tif 000011
【図１０】
2008085616.tif 000012
【図１１】
2008085616.tif 000013
【図１２】
2008085616.tif 000014
【図１３】
2008085616.tif 000015
【図１４】
2008085616.tif 000016
【図１５】
2008085616.tif 000017
【図１６】
2008085616.tif 000018
【図１７】
2008085616.tif 000019
【図１８】
2008085616.tif 000020
【図１９】
2008085616.tif 000021
【図２０】
2008085616.tif 000022
【図２１】
2008085616.tif 000023
【図２２】
2008085616.tif 000024