(57)【要約】【課題】処理対象となるインターレース構造の画像データを信号処理装置に転送してから、処理が施された画像データが信号処理装置から転送されてくるまでの遅延を抑えることができるようにする。【解決手段】インターレース構造の画像データをMPEG4 Studio Profileで圧縮して得られた圧縮データがコンピュータからコーデックカード７１に対して転送されてくる。ローカルメモリ８５に記憶された第一フィールドの圧縮データと第二フィールドの圧縮データは、例えば１６ライン単位で交互に読み出され、コーデック８７において伸張処理が施される。第一フィールドの伸張データと第二フィールドの伸張データに基づいてプログレッシブ構造の伸張データが生成され、コンピュータに転送される。本発明は、コンピュータに装着される拡張カードに適用することができる。【選択図】図８
2011244029.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置から転送されてきたインターレース構造の画像データを記憶する記憶手段と、
第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出す読み出し手段と、
前記読み出し手段により読み出された順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させる処理手段と、
前記記憶手段に記憶された処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送する転送手段と
を備える信号処理装置。
【請求項２】
前記記憶手段に記憶されている前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データとを、前記情報処理装置から転送されてきた画像データに含まれる、フレームにおけるその画像データの位置を表す情報に基づいて特定する解析手段をさらに備え、
前記読み出し手段は、前記解析手段により特定された前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データとを前記記憶手段から読み出す
請求項１に記載の信号処理装置。
【請求項３】
前記読み出し手段は、前記情報処理装置から転送されてきた第一フィールド全体の画像データが前記記憶手段に記憶され、第一フィールドの画像データに続けて前記情報処理装置から転送されてきた第二フィールドの前記所定のライン数分の画像データが前記記憶手段に記憶されたタイミングで、前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データとを前記記憶手段から読み出す
請求項１に記載の信号処理装置。
【請求項４】
前記転送手段は、前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データが前記記憶手段に記憶されたタイミングで、処理後のプログレッシブ構造の画像データを前記記憶手段から読み出して前記情報処理装置に転送する
請求項１に記載の信号処理装置。
【請求項５】
前記情報処理装置から転送されてきたインターレース構造の画像データは所定の圧縮方式で圧縮された画像データであり、
前記処理手段は、前記読み出し手段により読み出された画像データを対象として、前記所定の圧縮方式に対応する方式で伸張処理を施す
請求項１に記載の信号処理装置。
【請求項６】
前記圧縮方式はMPEG4 Studio Profileである
請求項５に記載の信号処理装置。
【請求項７】
情報処理装置から転送されてきたインターレース構造の画像データを記憶手段に記憶させ、
第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出し、
読み出した順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させ、
前記記憶手段に記憶させた処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送する
ステップを含む信号処理方法。
【請求項８】
情報処理装置から転送されてきたインターレース構造の画像データを記憶手段に記憶させ、
第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出し、
読み出した順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させ、
前記記憶手段に記憶させた処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項９】
情報処理装置と、前記情報処理装置に接続された信号処理装置とからなる信号処理システムにおいて、
前記情報処理装置は、
処理対象のインターレース構造の画像データを、第一フィールドの画像データから前記信号処理装置に転送し、第一フィールドの画像データの転送が終了した後、第二フィールドの画像データを前記信号処理装置に転送する転送手段と、
前記信号処理装置から転送されてきた処理後の画像データを記憶する記憶手段と
を備え、
前記信号処理装置は、
前記情報処理装置から転送されてきたインターレース構造の画像データを記憶する記憶手段と、
第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出す読み出し手段と、
前記読み出し手段により読み出された順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させる処理手段と、
前記記憶手段に記憶された処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送する転送手段と
を備える
信号処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置、信号処理方法、プログラム、および信号処理システムに関し、特に、処理対象となるインターレース構造の画像データを信号処理装置に転送してから、処理が施された画像データが信号処理装置から転送されてくるまでの遅延を抑えることができるようにした信号処理装置、信号処理方法、プログラム、および信号処理システムに関する。
【背景技術】
【０００２】
PC(Personal Computer)などのコンピュータにおいて実行されるアプリケーションの中には、動画、静止画などの画像データの編集、加工を行うアプリケーションがある。画像データの編集、加工には、トリミング、ガンマ補正、明るさの補正などの処理が含まれる。このような画像処理アプリケーションの動作としては、圧縮された画像データを伸張し、伸張後の画像データに対して、編集、加工の処理を施すものが一般的である。
【０００３】
最近は、4K（4096×2160）画像のような、より高精細、高画質な画像を扱うことが求められている。このため、コンピュータに要求される処理の量が膨大になり、高価なコンピュータでなければ高速な処理が困難になってきている。
【０００４】
このような状況にハードウェアコーデックを用いて対応することが考えられる。例えば、ハードウェアコーデックが搭載された拡張カードをコンピュータのスロットに挿入し、画像処理アプリケーションが行う処理を拡張カードのハードウェアコーデックに行わせることによって、コンピュータの処理負担を軽減することが可能になる。
【０００５】
一般的に、コンピュータの画像処理アプリケーションは１フレームずつ処理を行うようになされている。すなわち、圧縮された１フレームの画像データの伸張が行われ、伸張された画像データに対して編集、加工等の画像処理が行われた後に、次の１フレームの画像データを対象として、伸張処理と画像処理が行われる。
【０００６】
そのため、ハードウェアコーデックには、平均の処理速度が速いということだけでなく、低遅延であることが求められる。ここで、遅延とは、コンピュータのメインメモリから処理対象の画像データを拡張カードのローカルメモリに転送することを開始してから、処理後の画像データがコンピュータのメインメモリに転送されてくるまでの時間を意味する。
【０００７】
以下、コンピュータの画像処理アプリケーションにより処理対象になっている画像データが所定の圧縮方式で圧縮されたものであり、その伸張処理をハードウェアコーデックに行わせる場合について説明する。遅延は、コンピュータのメインメモリに記憶された処理対象の圧縮データを拡張カードに転送することを開始してから、伸張データがコンピュータのメインメモリに転送されてくるまでの時間を意味することになる。
【０００８】
［信号処理システムの構成］
図１は、従来の信号処理システムの構成の概要を示す図である。
【０００９】
図１に示すように、信号処理システムは、コンピュータ１と、コンピュータ１の拡張カードであるコーデックカード２から構成される。コンピュータ１のPCIe(Peripheral Component Interconnect Express)スロット１１にコーデックカード２のPCIeコネクタ２１が差し込まれることによって、破線で示すPCIeインターフェース３が実現される。
【００１０】
図１の例においては、コンピュータ１の構成として、PCIeスロット１１の他に、メインメモリ１２とストレージ１３が示されている。
【００１１】
メインメモリ１２はRAM(Random Access Memory)であり、図示せぬCPU(Central Processing Unit)が扱う各種のデータを記憶する。
【００１２】
ストレージ１３はHDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶媒体である。ストレージ１３は、動画を所定の圧縮方式で圧縮して得られた画像データである圧縮データや、圧縮データを伸張することによって得られた伸張データを記憶する。
【００１３】
また、図１の例においては、コーデックカード２の構成として、PCIeコネクタ２１の他に、ローカルメモリ２２とハードウェアコーデックであるコーデック２３が示されている。ローカルメモリ２２はRAMであり、圧縮データや伸張データを記憶する。コーデック２３は圧縮データに対して伸張処理を施し、伸張処理によって得られた伸張データをローカルメモリ２２に記憶させる。
【００１４】
このような構成を有する信号処理システムにおける一連のデータの流れについて説明する。図１において、細線矢印は圧縮データの流れを示し、太線矢印は伸張データの流れを示す。
【００１５】
ストレージ１３に記憶されている処理対象の圧縮データを構成する１フレームのデータは、矢印＃１で示すようにストレージ１３からメインメモリ１２にコピーされる。
【００１６】
メインメモリ１２にコピーされた圧縮データは、矢印＃２で示すように、PCIeインターフェース３を経由してコーデックカード２に転送され、コーデックカード２のローカルメモリ２２に記憶される。
【００１７】
ローカルメモリ２２に記憶された圧縮データは、矢印＃３で示すように、コーデック２３に転送され、コーデック２３において伸張処理が施される。
【００１８】
伸張処理によって得られた伸張データは、矢印＃４で示すように、コーデック２３から出力され、ローカルメモリ２２に記憶される。
【００１９】
ローカルメモリ２２に記憶された伸張データは、矢印＃５で示すように、PCIeインターフェース３を経由してコンピュータ１に転送され、コンピュータ１のメインメモリ１２に記憶される。メインメモリ１２に記憶された１フレームの伸張データを対象として、コンピュータ１の画像処理アプリケーションにより処理が施される。
【００２０】
処理が施された伸張データは、矢印＃６で示すように、メインメモリ１２からストレージ１３に転送され、記憶される。
【００２１】
図１の信号処理システムにおいては、処理対象の各フレームの圧縮データを対象として以上のような処理が繰り返される。
【００２２】
［処理対象の画像データがプログレッシブ構造のデータである場合］
図２は、遅延（システム遅延）について説明する図である。
【００２３】
ここでは、処理対象の画像データがプログレッシブ構造を有しており、プログレッシブ構造の画像データを圧縮して得られた圧縮データの伸張をコーデックカード２に行わせる場合について説明する。なお、図２には、ストレージ１３とメインメモリ１２の間の画像データの転送については示していない。図２の横軸は時間を表す。
【００２４】
図２の１段目に示すように、時刻ｔ０において、メインメモリ１２に記憶されたプログレッシブ構造の圧縮データのコーデックカード２への転送が開始される。例えば、１ライン目のデータから順に転送され、転送された順にコーデックカード２のローカルメモリ２２に記憶される。コーデックカード２への圧縮データの転送は、最終ラインのデータの転送が終了する時刻ｔ３まで続けられる。
【００２５】
２段目に示すように、ある単位分の圧縮データがローカルメモリ２２に記憶された時刻ｔ１において、ローカルメモリ２２からコーデック２３への圧縮データの転送が開始される。コーデック２３への圧縮データの転送は、伸張が可能な所定の数のライン単位で行われる。コーデック２３においては、ローカルメモリ２２から転送されてきた順に、圧縮データを対象として伸張処理が行われる。コーデック２３への圧縮データの転送は、最終ラインの転送が終了する時刻ｔ４まで続けられる。
【００２６】
３段目に示すように、１ライン目の伸張が終了した時刻ｔ２において、コーデック２３からローカルメモリ２２への伸張データの転送が開始される。例えば、１ライン目の伸張データから順に転送され、ローカルメモリ２２に記憶される。ローカルメモリ２２への伸張データの転送は、最終ラインの伸張データの転送が終了する時刻ｔ５まで続けられる。
【００２７】
４段目に示すように、１フレーム全体の伸張データがローカルメモリ２２に記憶された後の時刻ｔ６において、コーデックカード２からコンピュータ１への伸張データの転送が開始される。例えば、ローカルメモリ２２に記憶された順に伸張データの転送が行われる。コンピュータ１に転送された伸張データは、コンピュータ１のメインメモリ１２に記憶される。コンピュータ１への伸張データの転送は、最終ラインの伸張データの転送が終了する時刻ｔ７まで続けられる。
【００２８】
以上のようなタイミングでプログレッシブ構造の画像データの転送が行われた場合、図２の４段目に示すように、時刻ｔ０から時刻ｔ６までの時間が、遅延に相当する時間になる。
【００２９】
図３は、コンピュータ１への伸張データの転送方法を変更した場合の遅延について説明する図である。
【００３０】
図２の例においては１フレーム全体の伸張データがローカルメモリ２２に記憶された後に伸張データの転送が開始されるものとしたが、図３の例においては、転送可能な最小単位の伸張データがローカルメモリ２２に記憶されたタイミングで、順次、その最小単位の伸張データ毎にコンピュータ１への転送が行われる。
【００３１】
コンピュータ１への伸張データの転送を開始するタイミングが異なる点を除いて、図３の各タイミングは、図２を参照して説明したタイミングと同じである。すなわち、時刻ｔ０において、コーデックカード２への圧縮データの転送が開始され、時刻ｔ１において、ローカルメモリ２２からコーデック２３への圧縮データの転送が開始される。また、時刻ｔ２において、コーデック２３からローカルメモリ２２への伸張データの転送が開始される。
【００３２】
コンピュータ１に転送可能な最小単位の伸張データがローカルメモリ２２に記憶された時刻ｔ１１において、コンピュータ１への伸張データの転送が開始される。１ライン目の伸張データを含む１単位目の伸張データの転送は時刻ｔ１２まで続けられる。
【００３３】
図３の例においては、コーデック２３からローカルメモリ２２への伸張データの転送速度より、ローカルメモリ２２からメインメモリ１２への転送速度の方が速いものとされている。ローカルメモリ２２からメインメモリ１２への伸張データの転送は、図３の４段目に示すように間欠動作になる。最小単位毎の伸張データの転送は、最終ラインの伸張データの転送が終了する時刻ｔ１３まで続けられる。
【００３４】
以上のようなタイミングで伸張データの転送が行われた場合、図３の４段目に示すように、時刻ｔ０から時刻ｔ１１までの時間が、遅延に相当する時間になる。これにより、１フレーム全体の伸張データがローカルメモリ２２に記憶されてからコンピュータ１への伸張データの転送を開始する図２の場合に較べて、遅延を大幅に抑えることが可能になる。
【００３５】
［処理対象の画像データがインターレース構造のデータである場合］
図４は、遅延について説明する他の図である。
【００３６】
ここでは、処理対象の画像データがインターレース構造を有しており、インターレース構造の画像データを圧縮して得られた圧縮データの伸張をコーデックカード２に行わせる場合について説明する。インターレース構造である場合、１フレームの画像データは、例えば奇数ラインからなる第一フィールドの画像データと、偶数ラインからなる第二フィールドの画像データとから構成される。
【００３７】
転送される画像データの構造が異なる点を除いて、インターレース構造を有する画像データの転送の各タイミングは、プログレッシブ構造を有する画像データの転送のタイミングと同じである。図２、図３の説明と重複する説明については適宜省略する。
【００３８】
図４の１段目に示すように、時刻ｔ２０において、メインメモリ１２に記憶されたインターレース構造の圧縮データのコーデックカード２への転送が開始される。例えば、第一フィールドの圧縮データから転送され、第一フィールドの圧縮データの転送が終了した後、第二フィールドの圧縮データが転送される。
【００３９】
第一フィールドの圧縮データの転送は１ライン目のデータから順に行われ、第二フィールドの圧縮データの転送は２ライン目のデータから順に行われる。第一フィールドの圧縮データの転送は、第一フィールドの最終ラインの転送が終了する時刻ｔ２２まで続けられ、第二フィールドの圧縮データの転送は、第二フィールドの最終ラインの転送が終了する時刻ｔ２４まで続けられる。
【００４０】
２段目に示すように、処理単位となる所定の数のラインの第一フィールドの圧縮データがローカルメモリ２２に記憶された時刻ｔ２１において、ローカルメモリ２２からコーデック２３への圧縮データの転送が開始される。ローカルメモリ２２からコーデック２３への第一フィールドの圧縮データの転送は時刻ｔ２５まで続けられ、第二フィールドの圧縮データの転送は、第一フィールドの圧縮データの転送に続けて、時刻ｔ２５から時刻ｔ２６において行われる。
【００４１】
３段目に示すように、第一フィールドの１ライン目の圧縮データの伸張が終了した時刻ｔ２３において、コーデック２３からローカルメモリ２２への第一フィールドの伸張データの転送が開始される。ローカルメモリ２２への第一フィールドの伸張データの転送は、第一フィールドの最終ラインの伸張データの転送が終了する時刻ｔ２７まで続けられる。
【００４２】
第一フィールドの伸張データの転送が終了した時刻ｔ２７において、コーデック２３からローカルメモリ２２への第二フィールドの伸張データの転送が開始される。ローカルメモリ２２への第二フィールドの伸張データの転送は、第二フィールドの最終ラインの伸張データの転送が終了する時刻ｔ２８まで続けられる。
【００４３】
４段目に示すように、第一フィールドの伸張データと第二フィールドの伸張データがローカルメモリ２２に記憶された後の時刻ｔ２９において、コーデックカード２からコンピュータ１への伸張データの転送が開始される。例えば、第一フィールドの伸張データと第二フィールドの伸張データからなる１フレーム全体のプログレッシブ構造の伸張データのうちの、１ライン目のデータから順に伸張データが転送される。コンピュータ１への伸張データの転送は、最終ラインの伸張データの転送が終了する時刻ｔ３０まで続けられる。
【００４４】
以上のようなタイミングでインターレース構造の画像データの転送が行われた場合、図４の４段目に示すように、時刻ｔ２０から時刻ｔ２９までの時間が、遅延に相当する時間になる。
【００４５】
図５は、コンピュータ１への伸張データの転送方法を変更した場合の遅延について説明する図である。
【００４６】
図５の例においても、転送可能な最小単位の伸張データがローカルメモリ２２に記憶されたタイミングで、順次、その最小単位の伸張データ毎に転送が行われる。
【００４７】
コンピュータ１への伸張データの転送を開始するタイミングが異なる点を除いて、図５の各タイミングは、図４を参照して説明したタイミングと同じである。すなわち、時刻ｔ２０において、コーデックカード２への圧縮データの転送が開始され、時刻ｔ２１において、ローカルメモリ２２からコーデック２３への圧縮データの転送が開始される。また、時刻ｔ２３において、コーデック２３からローカルメモリ２２への伸張データの転送が開始される。
【００４８】
コンピュータ１に転送可能な最小単位の伸張データがローカルメモリ２２に記憶された時刻ｔ４１において、コンピュータ１への伸張データの転送が開始される。コーデックカード２からコンピュータ１に転送される伸張データはプログレッシブ構造の画像データである。最小単位毎の伸張データの転送は、最終ラインの伸張データの転送が終了する時刻ｔ４３まで続けられる。
【００４９】
以上のようなタイミングで伸張データの転送が行われた場合、図５の４段目に示すように、時刻ｔ２０から時刻ｔ４１までの時間が、遅延に相当する時間になる。これにより、１フレーム全体の伸張データがローカルメモリ２２に記憶されてからコンピュータ１への伸張データの転送を開始する図４の場合に較べて、遅延を抑えることが可能になる。
【００５０】
図２と図４、図３と図５をそれぞれ比較して分かるように、コーデックカード２に処理を行わせる圧縮データがプログレッシブ構造の画像データである場合とインターレース構造の画像データである場合とで、基本的な処理の流れに違いはない。主な違いは、コーデックカード２に処理を行わせる圧縮データがインターレース構造の画像データである場合には、インターレース構造の伸張データをプログレッシブ構造の伸張データに変換する動作が必要になる点にある。
【００５１】
図６は、インターレース構造の画像データをプログレッシブ構造の画像データに変換するIP変換の例を示す図である。
【００５２】
コーデックカード２においては、コーデック２３による伸張処理によって得られた第一フィールドの伸張データと、第二フィールドの伸張データとをローカルメモリ２２上で合成することによって、プログレッシブ構造の１フレームの伸張データが生成される。ローカルメモリ２２上の合成は、例えば、第一フィールドの各ラインの伸張データと、第二フィールドの各ラインの伸張データが、交互に、隣接する領域にライン単位で記憶されることによって行われる。
【００５３】
このように、転送可能な最小単位毎に伸張データをコンピュータ１に転送することによって、圧縮データがプログレッシブ構造とインターレース構造のいずれのときであっても遅延を抑えることが可能になる。
【先行技術文献】
【特許文献】
【００５４】
【特許文献１】特開２００３−３２６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【００５５】
最小単位となる分の伸張データのIP変換が完了するのを待つ必要があることから、圧縮データがインターレース構造であるときの遅延は、圧縮データがプログレッシブ構造であるときの遅延より大きくなってしまう。
【００５６】
圧縮データがインターレース構造であるときの遅延時間に相当する図５の時刻ｔ２０から時刻ｔ４１までの時間は、圧縮データがプログレッシブ構造であるときの遅延時間に相当する図３の時刻ｔ０から時刻ｔ１１までの時間より長い。
【００５７】
本発明はこのような状況に鑑みてなされたものであり、処理対象となるインターレース構造の画像データを信号処理装置に転送してから、処理が施された画像データが信号処理装置から転送されてくるまでの遅延を抑えることができるようにするものである。
【課題を解決するための手段】
【００５８】
本発明の一側面の信号処理装置は、情報処理装置から転送されてきたインターレース構造の画像データを記憶する記憶手段と、第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出す読み出し手段と、前記読み出し手段により読み出された順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させる処理手段と、前記記憶手段に記憶された処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送する転送手段とを備える。
【００５９】
前記記憶手段に記憶されている前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データとを、前記情報処理装置から転送されてきた画像データに含まれる、フレームにおけるその画像データの位置を表す情報に基づいて特定する解析手段をさらに設けることができる。この場合、前記読み出し手段には、前記解析手段により特定された前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データとを前記記憶手段から読み出させることができる。
【００６０】
前記読み出し手段には、前記情報処理装置から転送されてきた第一フィールド全体の画像データが前記記憶手段に記憶され、第一フィールドの画像データに続けて前記情報処理装置から転送されてきた第二フィールドの前記所定のライン数分の画像データが前記記憶手段に記憶されたタイミングで、前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データとを前記記憶手段から読み出させることができる。
【００６１】
前記転送手段には、前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データが前記記憶手段に記憶されたタイミングで、処理後のプログレッシブ構造の画像データを前記記憶手段から読み出して前記情報処理装置に転送させることができる。
【００６２】
前記情報処理装置から転送されてきたインターレース構造の画像データは所定の圧縮方式で圧縮された画像データであり、前記処理手段には、前記読み出し手段により読み出された画像データを対象として、前記所定の圧縮方式に対応する方式で伸張処理を施させることができる。
【００６３】
前記圧縮方式はMPEG4 Studio Profileであるようにすることができる。
【００６４】
本発明の一側面の信号処理方法は、情報処理装置から転送されてきたインターレース構造の画像データを記憶手段に記憶させ、第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出し、読み出した順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させ、前記記憶手段に記憶させた処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送するステップを含む。
【００６５】
本発明の一側面のプログラムは、情報処理装置から転送されてきたインターレース構造の画像データを記憶手段に記憶させ、第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出し、読み出した順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させ、前記記憶手段に記憶させた処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送するステップを含む処理をコンピュータに実行させる。
【００６６】
本発明の他の側面の信号処理システムは、情報処理装置と、前記情報処理装置に接続された信号処理装置とからなる信号処理システムにおいて、前記情報処理装置は、処理対象のインターレース構造の画像データを、第一フィールドの画像データから前記信号処理装置に転送し、第一フィールドの画像データの転送が終了した後、第二フィールドの画像データを前記信号処理装置に転送する転送手段と、前記信号処理装置から転送されてきた処理後の画像データを記憶する記憶手段とを備える。また、前記信号処理装置は、前記情報処理装置から転送されてきたインターレース構造の画像データを記憶する記憶手段と、第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとを前記記憶手段から交互に読み出す読み出し手段と、前記読み出し手段により読み出された順に画像データに処理を施し、処理後の画像データを前記記憶手段に記憶させる処理手段と、前記記憶手段に記憶された処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データを前記情報処理装置に転送する転送手段とを備える。
【００６７】
本発明の一側面においては、情報処理装置から転送されてきたインターレース構造の画像データが記憶手段に記憶され、第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとが前記記憶手段から交互に読み出される。また、読み出された順に画像データに処理が施され、処理後の画像データが前記記憶手段に記憶され、前記記憶手段に記憶された処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データが前記情報処理装置に転送される。
【００６８】
本発明の他の側面においては、情報処理装置において、処理対象のインターレース構造の画像データが、第一フィールドの画像データから信号処理装置に転送され、第一フィールドの画像データの転送が終了した後、第二フィールドの画像データが前記信号処理装置に転送され、前記信号処理装置から転送されてきた処理後の画像データが記憶される。また、前記信号処理装置において、前記情報処理装置から転送されてきたインターレース構造の画像データが記憶手段に記憶され、第一フィールド全体の画像データのうちの処理単位となる所定のライン数分の画像データと、第二フィールド全体の画像データのうちの前記所定のライン数分の画像データとが前記記憶手段から交互に読み出され、読み出された順に画像データに処理が施され、処理後の画像データが前記記憶手段に記憶される。さらに、記憶手段に記憶された処理後の前記所定のライン数分の第一フィールドの画像データと第二フィールドの画像データからなるプログレッシブ構造の画像データの単位で、前記記憶手段に記憶された順に、処理後の画像データが前記情報処理装置に転送される。
【発明の効果】
【００６９】
本発明によれば、処理対象となるインターレース構造の画像データを信号処理装置に転送してから、信号処理装置において処理が施された画像データが信号処理装置から転送されてくるまでの遅延を抑えることができる。
【図面の簡単な説明】
【００７０】
【図１】従来の信号処理システムの構成の概要を示す図である。
【図２】遅延について説明する図である。
【図３】伸張データの転送方法を変更した場合の遅延について説明する図である。
【図４】遅延について説明する他の図である。
【図５】伸張データの転送方法を変更した場合の遅延について説明する図である。
【図６】IP変換の例を示す図である
【図７】本発明の一実施形態に係る信号処理システムを構成するコンピュータの構成例を示すブロック図である。
【図８】コーデックカードの構成例を示すブロック図である。
【図９】プログレッシブ構造の圧縮データのデータ構造を示す図である。
【図１０】インターレース構造の圧縮データのデータ構造を示す図である。
【図１１】第一フィールドのスライス構成の例を示す図である。
【図１２】第二フィールドのスライス構成の例を示す図である。
【図１３】StudioSliceブロックの分割の例を示す図である。
【図１４】圧縮データの転送順の例を示す図である。
【図１５】伸張データの転送順の例を示す図である。
【図１６】ローカルメモリの記憶領域の状態の遷移の例を示す図である。
【図１７】遅延について説明する図である。
【図１８】コンピュータの処理について説明するフローチャートである。
【図１９】コーデックカードの処理について説明するフローチャートである。
【図２０】コーデックカードの他の構成例を示すブロック図である。
【図２１】各コーデックに対する圧縮データの転送順の例を示す図である。
【図２２】各コーデックに対する圧縮データの転送順の他の例を示す図である。
【発明を実施するための形態】
【００７１】
［信号処理システムの構成］
図７は、本発明の一実施形態に係る信号処理システムを構成するコンピュータの構成例を示すブロック図である。
【００７２】
図７の構成を有するコンピュータ４１のPCIeスロット６０に拡張カードであるコーデックカード７１（図８）が差し込まれることによって信号処理システムが実現される。
【００７３】
CPU(Central Processing Unit)５１、ROM(Read Only Memory)５２、RAM(Random Access Memory)であるメインメモリ５３は、バス５４により相互に接続される。
【００７４】
CPU５１は、例えば、画像の編集、加工を行うアプリケーションである画像処理アプリケーションをストレージ５８からメインメモリ５３にロードして実行する。画像データの編集、加工には、トリミング、ガンマ補正、明るさの補正などの処理が含まれる。CPU５１は、画像処理アプリケーションを実行して処理を行う上で必要な各種のデータをメインメモリ５３に記憶させる。
【００７５】
バス５４には、さらに、入出力インターフェース５５が接続される。入出力インターフェース５５には、キーボード、マウスなどよりなる入力部５６、ディスプレイ、スピーカなどよりなる出力部５７が接続される。
【００７６】
また、入出力インターフェース５５には、HDDやSSDであるストレージ５８が接続される。ストレージ５８には、MPEG4 Studio Profileなどの所定の圧縮方式で圧縮したインターレース構造の画像データである圧縮データや、圧縮データを伸張することによって得られた伸張データが記憶される。ストレージ５８とメインメモリ５３の間の画像データの転送は、バス５４と入出力インターフェース５５を介して行われる。
【００７７】
さらに、入出力インターフェース５５には、ネットワークインターフェースなどよりなる通信部５９と、PCIeスロット６０が接続される。PCIeスロット６０には、ハードウェアコーデックを搭載し、そのハードウェアコーデックによって圧縮データの伸張を行うコーデックカード７１が差し込まれる。PCIeスロット６０に差し込まれたコーデックカード７１とメインメモリ５３の間の画像データの転送も、バス５４と入出力インターフェース５５を介して行われる。
【００７８】
入出力インターフェース５５には、フラッシュメモリを内蔵するメモリカードや、Blu-ray（商標） Discなどの記録媒体よりなるリムーバブルメディア６２を駆動するドライブ６１も接続される。
【００７９】
図８は、コーデックカード７１の構成例を示すブロック図である。
【００８０】
コーデックカード７１においては、ローカルメモリ８５からコーデック８７への圧縮データの転送方式として、図４、図５を参照して説明した方式と異なる方式が採用される。これにより、伸張処理の対象となるデータがインターレース構造の圧縮データである場合であっても、プログレッシブ構造の圧縮データである場合と同程度の遅延を実現することが可能になっている。
【００８１】
遅延は、コンピュータ４１のメインメモリ５３からコーデックカード７１に圧縮データを転送することを開始してから、コーデックカード７１からコンピュータ４１のメインメモリ５３に伸張データが転送されてくるまでの時間である。
【００８２】
コーデックカード７１は、PCIeコネクタ８１、DMA転送部８２、ES解析部８３、RAMコントローラ８４、ローカルメモリ８５、ESインターフェース８６、コーデック８７、ベースバンドインターフェース８８、ホストバス８９、およびCPU９０から構成される。PCIeコネクタ８１がコンピュータ４１のPCIeスロット６０に差し込まれることによってPCIeインターフェースが実現される。
【００８３】
コンピュータ４１からコーデックカード７１に対しては、インターレース構造の画像データをMPEG4 Studio Profileで圧縮して得られた圧縮データが、１フレームのデータずつ転送される。PCIeインターフェースを介してコンピュータ４１から転送されてきた圧縮データはDMA転送部８２に入力される。
【００８４】
DMA(Direct Memory Access)転送部８２は、コンピュータ４１から転送されてきた圧縮データをRAMコントローラ８４に転送し、ローカルメモリ８５の所定の領域に記憶させる。DMA転送部８２から出力された圧縮データはES解析部８３にも供給される。
【００８５】
また、DMA転送部８２は、ローカルメモリ８５に記憶されている伸張データをRAMコントローラ８４を制御して読み出し、PCIeインターフェースを介してコンピュータ４１に転送する。
【００８６】
ES(Elementary Stream)解析部８３は、DMA転送部８２から供給された圧縮データを解析することによってライン先頭を含むスライスを特定し、ライン先頭を含むスライスのローカルメモリ８５における記憶位置を特定する。ES解析部８３は、特定した記憶位置のアドレスの情報をCPU９０に出力する。なお、フレームの先頭の記憶位置はDMA転送時にDMA転送部８２により指定される。
【００８７】
RAMコントローラ８４は、ローカルメモリ８５に対するデータの書き込み（記憶）とローカルメモリ８５に記憶されているデータの読み出しを制御する。例えば、RAMコントローラ８４は、DMA転送部８２から転送されてきた圧縮データを、ローカルメモリ８５に記憶させる。また、RAMコントローラ８４は、ESインターフェース８６により指定された圧縮データをローカルメモリ８５から読み出し、ESインターフェース８６に転送する。
【００８８】
RAMコントローラ８４は、ベースバンドインターフェース８８から転送されてきた伸張データをローカルメモリ８５に記憶させる。また、RAMコントローラ８４は、プログレッシブ構造の伸張データをローカルメモリ８５から読み出し、DMA転送部８２に転送する。
【００８９】
ESインターフェース８６は、ローカルメモリ８５に記憶されている圧縮データをRAMコントローラ８４を制御して読み出し、コーデック８７に転送する。
【００９０】
コーデック８７は、ESインターフェース８６から転送されてきた圧縮データに対して伸張処理を施し、伸張処理を施すことによって得られた伸張データをベースバンドインターフェース８８に転送する。
【００９１】
ベースバンドインターフェース８８は、コーデック８７から転送されてきた伸張データを、RAMコントローラ８４を制御してローカルメモリ８５の所定の領域に記憶させる。伸張データを記憶させるとき、ベースバンドインターフェース８８は、インターレース構造の伸張データの記憶先となるローカルメモリ８５のアドレスを制御することによって、インターレース構造の伸張データをプログレッシブ構造の伸張データに変換する。
【００９２】
CPU９０は、DMA転送部８２、ES解析部８３、ESインターフェース８６、コーデック８７、およびベースバンドインターフェース８８の各部を、ホストバス８９を介して制御する。例えば、CPU９０は、アドレスとデータサイズを各部に指定することによって、RAMコントローラ８４を経由して行われるローカルメモリ８５に対する画像データの書き込み、または画像データの読み出しを制御する。
【００９３】
信号処理システムは、以上のような構成を有するコンピュータ４１とコーデックカード７１から構成される。
【００９４】
［データ転送について］
ここで、MPEG4 Studio Profileのストリームについて説明する。
【００９５】
図９は、プログレッシブ構造の画像データをMPEG4 Studio Profileで圧縮して得られたストリームを構成する１フレームの圧縮データのデータ構造を示す図である。
【００９６】
MPEG4 Studio Profileでは、各種のパラメータを含むVisual Object Sequence Header(VOSH),Visual Object Header(VOH),Video Object Layer Header(VOLH)などのヘッダが規定されている。VOSH，VOH，VOLHからなるヘッダは、１フレームの圧縮データ毎に付加される。
【００９７】
実際の画像データは、スライス単位でStudioSliceブロックに格納される。図９の例においては、１フレーム全体の画像データがＮ個のStudioSliceブロックに格納されている。
【００９８】
各StudioSliceブロックの中には、slice_start_codeと呼ばれるユニークコードが付加される。また、slice_start_codeの直後に、StudioSliceブロックに含まれるマクロブロック（StudioMacroblock）のうちの先頭のマクロブロックの番号を表すMacroblock_numberが付加される。
【００９９】
図１０は、インターレース構造の画像データをMPEG4 Studio Profileで圧縮して得られたストリームを構成する１フレームの圧縮データのデータ構造を示す図である。
【０１００】
図１０に示すように、第一フィールドの画像データと第二フィールドの画像データは、それぞれスライス単位でStudioSliceブロックに格納される。図１０の例においては、第一フィールドの画像データと第二フィールドの画像データがそれぞれＮ個のStudioSliceブロックに格納されている。VOSH，VOH，VOLHからなるヘッダは、第一フィールドの画像データと第二フィールドの画像データにそれぞれ付加される。
【０１０１】
コンピュータ４１から転送されてくる各フレームの圧縮データは、図１０に示すようなデータ構造を有する。
【０１０２】
図１１は、第一フィールドのスライス構成の例を示す図である。
【０１０３】
図１１の例においては、第一フィールドの１番目のStudioSliceブロックであるStudioSlice1は１ラインから１６ラインの画像データにより構成される。また、StudioSlice2は、１７ラインから３２ラインの画像データのうち、各ラインの左端から所定の画素までの画像データにより構成される。StudioSlice2の右側に設定されたStudioSlice3は、１７ラインから３２ラインの画像データのうち、各ラインのその所定の画素の右隣の画素から右端までの画像データにより構成される。
【０１０４】
他のStudioSliceブロックも同様に、１６ライン単位の画像データ全体から、または１６ライン単位の画像データ全体を所定の位置で垂直方向に区切った画像データから構成される。例えばStudioSliceNは、y-15ラインからyラインまでの画像データから構成される。
【０１０５】
また、図１１の例においては、楕円Ｃ１中に示すように、１つのマクロブロックのサイズが16×16ピクセルとされている。マクロブロックのサイズは固定である。各スライスは水平方向に並ぶ複数のマクロブロックから構成される。
【０１０６】
図１２は、第二フィールドのスライス構成の例を示す図である。
【０１０７】
図１２の例においては、第二フィールドの１番目のStudioSliceブロックであるStudioSlice1は１ラインから１６ラインの画像データにより構成される。また、StudioSlice2は、１７ラインから３２ラインの画像データにより構成され、StudioSlice3は、３３ラインから４８ラインの画像データにより構成される。
【０１０８】
他のStudioSliceブロックも同様に、１６ライン単位の画像データ全体から、または１６ライン単位の画像データ全体を所定の位置で垂直方向に区切った画像データから構成される。例えばStudioSliceN-1は、y-15ラインからyラインまでの画像データのうち、各ラインの左端から所定の画素までの画像データにより構成される。StudioSliceN-1の右側に設定されたStudioSliceNは、y-15ラインからyラインまでの画像データのうち、各ラインのその所定の画素の右隣の画素から右端までの画像データにより構成される。
【０１０９】
以下、図１１のスライス構成を有する第一フィールドと図１２のスライス構成を有する第二フィールドからなる、ライン数が2yの１フレームを処理対象とする場合について説明する。
【０１１０】
マクロブロックのサイズが固定であることと、１つのスライスがラインの終端を越えることがない（１つのスライスに異なるラインの先端と終端が含まれることがない）ことに基づいて、ライン先頭を含んだスライスが検出される。
【０１１１】
フレームにおける各スライスの位置は、下式（１）によって求められるαを用いて式（２）によって計算される。
α = Macroblock_number/（水平方向ピクセル数/16）    ・・・    （１）
スライスの位置 = ｛（小数点切捨て（α）×16)＋１）｝ライン
〜（（小数点切捨て（α）+1）×16)ライン    ・・・    （２）
【０１１２】
αが整数である場合、そのαの値の計算に用いられたMacroblock_numberを含むStudioSliceブロックに格納されるスライスは、ラインの先頭を含むスライスとなる。一方、αが整数ではない場合、そのαの値の計算に用いられたMacroblock_numberを含むStudioSliceブロックに格納されるスライスは、ラインの先頭を含まないスライスとなる。
【０１１３】
例えば、１フレームの水平方向の画素数が4096ピクセルであり、Macroblock_numberが256であるStudioSliceブロックについて考える。
【０１１４】
この場合、式（１）より、αの値は、
α = 256/(4096/16) = 1.0
として求められる。
【０１１５】
また、式（２）より、スライスの位置は、
スライスの位置 = {(1×16)+1} 〜 ((1+1)x16)  = 17〜32ライン
として求められる。
【０１１６】
以上より、Macroblock_numberが256であるStudioSliceブロックに格納されるスライスは、17ラインの先頭を含んでいるものとして特定される。
【０１１７】
図８のES解析部８３は、DMA転送部８２から供給された圧縮データの中のslice_start_code(hex:000001B7)を検索し、slice_start_codeの直後にあるMacroblock_numberを特定する。また、ES解析部８３は、Macroblock_numberを用いた式（１）の計算結果に基づいて、ライン先頭を含むスライスを特定し、式（２）の計算結果に基づいて、ライン先頭を含むスライスのフレームにおける位置を特定する。
【０１１８】
また、ES解析部８３は、ライン先頭を含む各スライスが記憶されているローカルメモリ８５のアドレスを特定し、特定したアドレスの情報をCPU９０に出力する。
【０１１９】
CPU９０は、DMA転送部８２によりローカルメモリ８５上に指定された１フレームの先頭アドレスから、ES解析部８３により特定された最初のslice_start_codeの直前までがヘッダ（VOSH,VOH,VOLH）であると認識する。ヘッダ以降に、１フレームを構成するStudioSliceブロックが続くことになる。
【０１２０】
CPU９０は、１フレームを構成するStudioSliceブロック全体を、所定のライン数の画像データを格納するStudioSliceブロック毎に分割する。上述した例の場合、マクロブロックのサイズの関係から、１フレームを構成するStudioSliceブロック全体が１６ラインの画像データを格納するStudioSliceブロック毎に分割される。
【０１２１】
図１３は、StudioSliceブロックの分割の例を示す図である。
【０１２２】
図１３の左側に示すように、図１１のスライス構成を有する第一フィールドのStudioSliceブロック全体は、分割データ１−１乃至１−Ｍに分割される。
【０１２３】
１つの分割データは１６ライン分の画像データからなり、StudioSlice1には１ラインから１６ラインの画像データが格納されるから、第一フィールドの１つ目の分割データである分割データ１−１は、StudioSlice1のみから構成される。
【０１２４】
また、１７ラインから３２ラインの画像データはStudioSlice2とStudioSlice3に格納されるから、第一フィールドの２つ目の分割データである分割データ１−２は、StudioSlice2とStudioSlice3から構成される。
【０１２５】
第一フィールドの他のStudioSliceブロックも同様に、16ラインの画像データを格納するStudioSliceブロックごとに分割される。例えば、StudioSliceNにはy-15ラインからyラインの画像データが格納されるから、第一フィールドのＭ番目の分割データである分割データ１−Ｍは、StudioSliceNのみから構成される。
【０１２６】
また、図１３の右側に示すように、図１２のスライス構成を有する第二フィールドのStudioSliceブロック全体も、分割データ２−１乃至２−Ｍに分割される。
【０１２７】
１つの分割データは１６ライン分の画像データからなり、StudioSlice1には１ラインから１６ラインの画像データが格納されるから、第二フィールドの１つ目の分割データである分割データ２−１は、StudioSlice1のみから構成される。
【０１２８】
また、１７ラインから３２ラインの画像データはStudioSlice2に格納されるから、第二フィールドの２つ目の分割データである分割データ２−２は、StudioSlice2から構成される。
【０１２９】
第二フィールドの他のStudioSliceブロックも同様に、16ラインの画像データを格納するStudioSliceブロックごとに分割される。例えば、y-15ラインからyラインの画像データはStudioSliceN-1とStudioSliceNに格納されるから、第二フィールドのＭ番目の分割データである分割データ２−Ｍは、StudioSliceN-1とStudioSliceNから構成される。
【０１３０】
CPU９０は、このようにして分割した第一フィールドの分割データと第二フィールドの分割データを交互に、コーデック８７への転送対象のデータとしてESインターフェース８６に指定し、圧縮データの転送を行わせる。
【０１３１】
また、CPU９０は、第一フィールドの分割データをコーデック８７に転送するときには直前に第一フィールドのヘッダを付加し、第二フィールドの分割データをコーデック８７に転送するときには直前に第二フィールドのヘッダを付加する。第一フィールドのヘッダ（ヘッダ１）には、第一フィールドの画像データの伸張に用いられる情報が含まれ、第二フィールドのヘッダ（ヘッダ２）には、第二フィールドの画像データの伸張に用いられる情報が含まれている。
【０１３２】
図１４は、コーデック８７に対する圧縮データの転送順の例を示す図である。
【０１３３】
図１４に示すように、ESインターフェース８６からコーデック８７に対しては、ヘッダ１が転送され、ヘッダ１に続けて、１ラインから１６ラインの第一フィールドの画像データである分割データ１−１が転送される。分割データ１−１に続けてヘッダ２が転送され、ヘッダ２に続けて、１ラインから１６ラインの第二フィールドの画像データである分割データ２−１が転送される。
【０１３４】
分割データ２−１に続けてヘッダ１が転送され、ヘッダ１に続けて、１７ラインから３２ラインの第一フィールドの画像データである分割データ１−２が転送される。分割データ１−２に続けてヘッダ２が転送され、ヘッダ２に続けて、１７ラインから３２ラインの第二フィールドの画像データである分割データ２−２が転送される。
【０１３５】
同様に、ローカルメモリ２２に記憶されている第一フィールドと第二フィールドの圧縮データの転送が、１６ライン単位で交互に行われる。分割データ１−Ｍに続けてヘッダ２が転送され、ヘッダ２に続けて、y-15ラインからyラインの第二フィールドの画像データである分割データ２−Ｍが転送されることによって、１フレーム分の圧縮データの転送が終了する。
【０１３６】
コーデック８７は、ESインターフェース８６から転送されてきた順に、それぞれの分割データに対して伸張処理を施す。すなわち、図１４に示す順に転送されてきた場合、コーデック８７においては、分割データ１−１の伸張がヘッダ１に記述されている情報に基づいて行われ、続けて転送されてきた分割データ２−１の伸張がヘッダ２に記述されている情報に基づいて行われる。
【０１３７】
また、分割データ１−２の伸張がヘッダ１に記述されている情報に基づいて行われ、続けて転送されてきた分割データ２−２の伸張がヘッダ２に記述されている情報に基づいて行われる。
【０１３８】
コーデック８７は、伸張処理によって得られた順に、伸張データをベースバンドインターフェース８８に転送する。
【０１３９】
図１５は、コーデック８７からベースバンドインターフェース８８に対する伸張データの転送順の例を示す図である。
【０１４０】
図１５に示すように、分割データ１−１を伸張して得られた１ラインから１６ラインの第一フィールドの伸張データが転送され、続けて、分割データ２−１を伸張して得られた１ラインから１６ラインの第二フィールドの伸張データが転送される。
【０１４１】
また、分割データ１−２を伸張して得られた１７ラインから３２ラインの第一フィールドの伸張データが転送され、分割データ２−２を伸張して得られた１７ラインから３２ラインの第二フィールドの伸張データが転送される。
【０１４２】
同様に、第一フィールドと第二フィールドの伸張データが１６ライン単位で交互に転送される。分割データ１−Ｍを伸張して得られたy-15ラインからyラインの第一フィールドの伸張データに続けて分割データ２−Ｍを伸張して得られたy-15ラインからyラインの第二フィールドの伸張データが転送されることにより、１フレーム分の伸張データの転送が終了する。
【０１４３】
ベースバンドインターフェース８８は、コーデック８７から転送されてきた伸張データを、順次、RAMコントローラ８４に転送してローカルメモリ８５に記憶させる。
【０１４４】
また、ベースバンドインターフェース８８は、伸張データをローカルメモリ８５に記憶させるとき、記憶領域を制御することによって、ローカルメモリ８５上で、インターレース構造の伸張データをプログレッシブ構造の伸張データに変換する。ベースバンドインターフェース８８から出力される伸張データはインターレース構造の１６ライン分のデータであるから、IP変換によって得られたプログレッシブ構造の伸張データは３２ライン分のデータになる。
【０１４５】
ベースバンドインターフェース８８は、３２ライン分のプログレッシブ構造の伸張データをローカルメモリ８５に記憶させる毎に、そのことを表す情報をCPU９０に出力する。
【０１４６】
CPU９０は、DMA転送部８２を制御し、IP変換が終わった順に伸張データをコンピュータ４１に転送させる。DMA転送部８２は、CPU９０による制御に従って、ローカルメモリ８５から伸張データを読み出し、プログレッシブ構造の伸張データを３２ライン単位でコンピュータ４１に転送する。
【０１４７】
図１６は、ローカルメモリ８５の記憶領域の状態の遷移の例を示す図である。
【０１４８】
図１６において、それぞれの四角形の枠はローカルメモリ８５に確保された１フレーム分の伸張データの記憶領域を表し、記憶領域内に斜線を付して示す部分は伸張データが記憶されている、または記憶されていた領域を表す。右上から左下に向かう斜線は第一フィールドの伸張データを表し、左上から右下に向かう斜線は第二フィールドの伸張データを表す。また、斜線で示す伸張データのうち、色を付して示す伸張データはコンピュータ４１に転送済みであることを表す。
【０１４９】
状態Ｓ１は、分割データ１−１を伸張して得られた１ラインから１６ラインの第一フィールドの伸張データが記憶された状態を表す。ローカルメモリ８５に記憶されているデータはプログレッシブ構造の伸張データではないから、このタイミングでは、コンピュータ４１への伸張データの転送は行われない。
【０１５０】
状態Ｓ２は、１ラインから１６ラインの第一フィールドの伸張データに続けて、分割データ２−１を伸張して得られた１ラインから１６ラインの第二フィールドの伸張データが記憶された状態を表す。例えば、第一フィールドの各ラインの画像データと第二フィールドの各ラインの画像データを交互に連続する領域に配置して記憶することによって、ローカルメモリ８５上で、１ラインから３２ラインのプログレッシブ構造の伸張データが生成される。１ラインから３２ラインのプログレッシブ構造の伸張データは、このタイミングでコンピュータ４１に転送される。
【０１５１】
状態Ｓ３は、１ラインから３２ラインの伸張データの転送が完了するとともに、分割データ１−２を伸張して得られた１７ラインから３２ラインの第一フィールドの伸張データが記憶された状態を表す。
【０１５２】
状態Ｓ４は、１７ラインから３２ラインの第一フィールドの伸張データに続けて、分割データ２−２を伸張して得られた１７ラインから３２ラインの第二フィールドの伸張データが記憶された状態を表す。３３ラインから６４ラインのプログレッシブ構造の伸張データは、このタイミングでコンピュータ４１に転送される。
【０１５３】
状態Ｓ５は、３３ラインから６４ラインの伸張データの転送が完了するとともに、分割データ１−３を伸張して得られた３３ラインから４８ラインの第一フィールドの伸張データが記憶された状態を表す。
【０１５４】
同様に、分割データを伸張して得られた第一フィールドと第二フィールドの伸張データが交互にローカルメモリ８５に記憶されるとともに、プログレッシブ構造の伸張データが３２ライン単位でコンピュータ４１に転送される。
【０１５５】
状態Ｓ２Ｍは、y-15ラインからyラインの第一フィールドの伸張データに続けて、分割データ２−Ｍを伸張して得られたy-15ラインからyラインの第二フィールドの伸張データが記憶された状態を表す。2yラインを含むプログレッシブ構造の伸張データは、このタイミングでコンピュータ４１に転送される。
【０１５６】
コンピュータ４１においては、コーデックカード７１から転送されてきた順に、プログレッシブ構造の伸張データがメインメモリ５３に記憶される。１単位目のデータである１ラインから３２ラインのプログレッシブ構造の伸張データがメインメモリ５３に記憶されたとき、メインメモリ５３に記憶された伸張データを対象とした画像処理がCPU５１により開始される。
【０１５７】
図１７は、以上のようにしてデータの転送を行った場合の遅延について説明する図である。
【０１５８】
図１７の１段目に示すように、時刻ｔ５０において、コンピュータ４１のメインメモリ５３に記憶されたインターレース構造の圧縮データのコーデックカード７１への転送が開始される。第一フィールドの圧縮データから転送が行われ、第一フィールドの圧縮データの転送が終了した後、第二フィールドの圧縮データの転送が行われる。第一フィールドの圧縮データの転送は、第一フィールドの最終ラインの転送が終了する時刻ｔ５１まで続けられる。
【０１５９】
２段目に示すように、第一フィールド全体の圧縮データと、第二フィールドの１ラインから１６ラインの圧縮データがローカルメモリ８５に記憶された時刻ｔ５２において、ローカルメモリ８５からコーデック８７への圧縮データの転送が開始される。
【０１６０】
３段目に示すように、第一フィールドの１ラインから１６ラインの圧縮データの伸張が終了した時刻ｔ５３において、コーデック８７からローカルメモリ８５への第一フィールドの伸張データの転送が開始される。時刻ｔ５３以降、第一フィールドの伸張データと第二フィールドの伸張データが１６ライン単位で交互にローカルメモリ８５に転送され、記憶される。
【０１６１】
４段目に示すように、１ラインから１６ラインの第一フィールドの伸張データに続けて１ラインから１６ラインの第二フィールドの伸張データがローカルメモリ８５に記憶された後の時刻ｔ５４において、コンピュータ４１への伸張データの転送が開始される。時刻ｔ５４以降、プログレッシブ構造の伸張データが３２ライン単位でコンピュータ４１に転送される。
【０１６２】
以上のようなタイミングで画像データの転送が行われた場合、図１７の４段目に示すように、時刻ｔ５０から時刻ｔ５４までの時間が、遅延に相当する時間になる。時刻ｔ５０から時刻ｔ５４までの時間は、図４と図５を参照して説明した遅延時間よりも短い時間である。すなわち、処理対象の圧縮データがインターレース構造のデータである場合であっても遅延を抑えることが可能になる。
【０１６３】
［各装置の動作］
ここで、図１８のフローチャートを参照して、コンピュータ４１の処理について説明する。
【０１６４】
ステップＳ１において、CPU５１は、処理対象の圧縮データをストレージ５８から読み出し、メインメモリ５３にコピーする。
【０１６５】
ステップＳ２において、CPU５１は、メインメモリ５３にコピーした圧縮データを、第一フィールドの圧縮データから順にコーデックカード７１に転送する。
【０１６６】
ステップＳ３において、CPU５１は、コーデックカード７１から伸張データが転送されてきたか否かを判定する。
【０１６７】
コーデックカード７１から伸張データが転送されてきていないとステップＳ３において判定した場合、ステップＳ４において、CPU５１は、１フレーム分の圧縮データの転送が終了したか否かを判定する。
【０１６８】
１フレーム分の圧縮データの転送が終了していないとステップＳ４において判定した場合、ステップＳ２に戻り、CPU５１は、圧縮データの転送を繰り返し行う。
【０１６９】
一方、第二フィールドの最終ラインの圧縮データまでコーデックカード７１に転送したことから、１フレーム分の圧縮データの転送が終了したとステップＳ４において判定した場合、ステップＳ３に戻り、CPU５１は、伸張データが転送されてくるまで待機する。
【０１７０】
コーデックカード７１から伸張データが転送されてきたとステップＳ３において判定した場合、ステップＳ５において、CPU５１は、転送されてきたプログレッシブ構造の伸張データをメインメモリ５３に記憶させる。
【０１７１】
ステップＳ６において、CPU５１は、メインメモリ５３に記憶された３２ライン単位の伸張データを対象として処理を行う。
【０１７２】
ステップＳ７において、CPU５１は、１フレーム分の伸張データの処理が終了したか否かを判定する。
【０１７３】
１フレーム分の伸張データの処理が終了していないとステップＳ７において判定した場合、ステップＳ８において、CPU５１は、１フレーム分の圧縮データの転送が終了したか否かを判定する。
【０１７４】
１フレーム分の圧縮データの転送が終了していないとステップＳ８において判定した場合、ステップＳ２に戻り、CPU５１は、圧縮データの転送を繰り返し行う。
【０１７５】
一方、１フレーム分の圧縮データの転送が終了したとステップＳ８において判定した場合、ステップＳ３に戻り、CPU５１は、伸張データが転送されてくるまで待機する。
する。
【０１７６】
１フレーム分の伸張データの処理が終了したとステップＳ７において判定した場合、ステップＳ９において、CPU５１は、画像処理を施した１フレーム分の画像データをストレージ５８に記憶させる。その後、処理は終了され、次の１フレームの圧縮データを対象として以上の処理が繰り返される。
【０１７７】
次に、図１９のフローチャートを参照して、図１８の処理に対応して行われるコーデックカード７１の処理について説明する。
【０１７８】
この処理は、圧縮データがコンピュータ４１から転送されてきたときに開始される。
【０１７９】
ステップＳ２１において、DMA転送部８２は、コンピュータ４１から転送されてきた圧縮データを受信し、ローカルメモリ８５に記憶させる。
【０１８０】
ステップＳ２２において、ES解析部８３は、圧縮データを解析することによってライン先頭を含むスライスを特定し、ライン先頭を含むスライスのローカルメモリ８５における記憶位置を特定する。
【０１８１】
ステップＳ２３において、CPU９０は、ES解析部８３により特定されたアドレスに基づいて、DMA転送部８２によりローカルメモリ８５上に指定された１フレームの先頭アドレスから、最初のslice_start_codeの直前までをヘッダ（VOSH, VOH, VOLH）として検出する。また、CPU９０は、１フレームを構成するStudioSliceブロック全体を、所定のライン数の画像データを格納するStudioSliceブロック毎に分割する。
【０１８２】
ステップＳ２４において、CPU９０は、ESインターフェース８６を制御し、第一フィールドと第二フィールドの分割データを交互に、ローカルメモリ８５からコーデック８７に転送する。
【０１８３】
ステップＳ２５において、コーデック８７は、ESインターフェース８６から転送されてきた分割データを対象として伸張処理を行う。
【０１８４】
ステップＳ２６において、CPU９０は、ベースバンドインターフェース８８を制御し、インターレース構造の１６ライン単位の伸張データをローカルメモリ８５に記憶させる。また、CPU９０は、伸張データの記憶領域を制御することによってIP変換を行う。
【０１８５】
ステップＳ２７において、CPU９０は、転送可能な単位の伸張データである３２ライン分のプログレッシブ構造の伸張データがローカルメモリ８５に記憶されたか否かをベースバンドインターフェース８８から送信されてくる情報に基づいて判定する。
【０１８６】
プログレッシブ構造の３２ライン分の伸張データがローカルメモリ８５に記憶されていないとステップＳ２７において判定した場合、ステップＳ２１に戻り、CPU５１は、それ以降の処理を繰り返す。
【０１８７】
一方、プログレッシブ構造の３２ライン分の伸張データがローカルメモリ８５に記憶されたとステップＳ２７において判定した場合、ステップＳ２８において、CPU５１は、DMA転送部８２を制御し、ローカルメモリ８５に記憶されているプログレッシブ構造の伸張データを３２ライン単位でコンピュータ４１に転送させる。
【０１８８】
ステップＳ２９において、CPU９０は、１フレーム分の伸張データの転送が終了したか否かを判定し、終了していないと判定した場合、ステップＳ２１に戻りそれ以降の処理を繰り返す。１フレーム分の伸張データの転送が終了したとステップＳ２９において判定された場合、処理は終了される。
【０１８９】
以上の処理により、処理対象の圧縮データがインターレース構造のデータである場合であっても遅延を抑えることが可能になる。
【０１９０】
［変形例］
ローカルメモリ８５からコーデック８７への圧縮データの転送と、コーデック８７からローカルメモリ８５への伸張データの転送がいずれも１６ライン単位で行われるものとしたが、転送の単位は、１６の倍数のライン単位であれば変更可能である。
【０１９１】
また、以上においては、コーデックカード７１に搭載されるハードウェアコーデックが１個である場合について説明したが、複数個搭載されるようにしてもよい。ローカルメモリ８５から各ハードウェアコーデックへの分割データの転送を制御し、分割データの伸張を各ハードウェアコーデックに分担させることによって、１フレーム全体の処理にかかる時間を短縮することが可能になる。
【０１９２】
図２０は、コーデックカード７１の他の構成例を示すブロック図である。
【０１９３】
図２０の例においては、ハードウェアコーデックと、ハードウェアコーデックとRAMコントローラ８４間のインターフェースが３組ずつ設けられている。図８の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０１９４】
ESインターフェース８６Ａは、ローカルメモリ８５に記憶されている圧縮データをRAMコントローラ８４を制御して読み出し、コーデック８７Ａに転送する。ESインターフェース８６Ｂと８６Ｃも同様に、それぞれ、ローカルメモリ８５に記憶されている圧縮データを読み出し、コーデック８７Ｂと８７Ｃに転送する。
【０１９５】
コーデック８７Ａは、ESインターフェース８６Ａから転送されてきた圧縮データに対して伸張処理を施し、伸張処理によって得られた伸張データをベースバンドインターフェース８８Ａに転送する。コーデック８７Ｂと８７Ｃも同様に、それぞれ、伸張処理によって得られた伸張データをベースバンドインターフェース８８Ｂと８８Ｃに転送する。
【０１９６】
ベースバンドインターフェース８８Ａは、コーデック８７Ａから転送されてきた伸張データを、RAMコントローラ８４を制御してローカルメモリ８５の所定の領域に記憶させる。ベースバンドインターフェース８８Ｂと８８Ｃも同様に、それぞれ、伸張データをローカルメモリ８５の所定の領域に記憶させる。
【０１９７】
図２１は、ローカルメモリ８５から各コーデックに対する圧縮データの転送順の例を示す図である。
【０１９８】
図２１に示すようにして転送された順に、各コーデックにおいて圧縮データの伸張が行われる。ここでは、適宜、コーデック８７Ａ乃至８７Ｃをそれぞれ単にコーデックＡ乃至Ｃとして説明する。
【０１９９】
図２１の例においては、コーデックＡは第一フィールドの圧縮データ用のコーデックとして機能し、コーデックＢは第二フィールドの圧縮データ用のコーデックとして機能する。また、コーデックＣは、第一フィールドの圧縮データのうちのコーデックＡによって処理されない圧縮データと、第二フィールドの圧縮データのうちのコーデックＢによって処理されない圧縮データ用のコーデックとして機能する。
【０２００】
図２１の各分割データも、図１３等を参照して説明したようにインターレース構造の１６ラインの圧縮データである。
【０２０１】
図２１の上段に示すように、ESインターフェース８６Ａからコーデック８７Ａに対してヘッダ１が転送され、ヘッダ１に続けて、１ラインから１６ラインの第一フィールドの画像データである分割データ１−１が転送される。分割データ１−１に続けて、３３ラインから４８ラインの第一フィールドの画像データである分割データ１−３が転送される。分割データ１−３に続けて、分割データ１−５，１−７，１−８，１−９が転送される。
【０２０２】
図２１の中段に示すように、ESインターフェース８６Ｂからコーデック８７Ｂに対してヘッダ２が転送され、ヘッダ２に続けて、１ラインから１６ラインの第二フィールドの画像データである分割データ２−１が転送される。分割データ２−１に続けて、１７ラインから３２ラインの第二フィールドの画像データである分割データ２−２が転送される。分割データ２−２に続けて、分割データ２−３，２−４，２−６，２−８が転送される。
【０２０３】
図２１の下段に示すように、ESインターフェース８６Ｃからコーデック８７Ｃに対してヘッダ１が転送され、ヘッダ１に続けて、１７ラインから３２ラインの第一フィールドの画像データである分割データ１−２が転送される。分割データ１−２に続けて、４９ラインから６４ラインの第一フィールドの画像データである分割データ１−４が転送され、分割データ１−４に続けて、８１ラインから９６ラインの第一フィールドの画像データである分割データ１−６が転送される。
【０２０４】
また、図２１の下段に示すように、分割データ１−６に続けてヘッダ２が転送され、ヘッダ２に続けて、６５ラインから８０ラインの第二フィールドの画像データである分割データ２−５が転送される。分割データ２−５に続けて、９７ラインから１１２ラインの第二フィールドの画像データである分割データ２−７が転送され、分割データ２−７に続けて、１２９ラインから１４４ラインの第二フィールドの画像データである分割データ２−９が転送される。
【０２０５】
上述したように、第一フィールドの分割データを伸張する場合、または、第二フィールドの分割データを伸張する場合、それぞれのヘッダをコーデックに転送する必要がある。図２１に示すようにして第一フィールドの分割データと第二フィールドの分割データを連続して転送することによって、連続する分割データの先頭にヘッダを付加するだけで済み、ヘッダの転送によって生じるオーバーヘッドを小さくすることが可能になる。
【０２０６】
また、ヘッダの転送回数を減らすことができ、例えばヘッダをローカルメモリ８５に書込んでおいた場合には、ヘッダを読み出すためのローカルメモリ８５に対するアクセス回数を減らすことが可能になる。
【０２０７】
図２１に示すようにして転送を行うとした場合、前半に第一フィールドを対象とした処理が多く行われ、後半に第二フィールドを対象とした処理が多く行われてしまうため、特に、第二フィールドのIP変換が遅れ、システム遅延が発生してしまう。第一フィールドの処理と第二フィールドの処理を分割データ単位で平滑化することによって、システム遅延を抑えることも可能である。
【０２０８】
図２２は、ローカルメモリ８５から各コーデックに対する圧縮データの転送順の他の例を示す図である。
【０２０９】
図２２の上段に示すように、ESインターフェース８６Ａからコーデック８７Ａに対してヘッダ１が転送され、ヘッダ１に続けて、第一フィールドの画像データである分割データ１−１，１−３，１−４が転送される。分割データ１−４に続けてヘッダ２が転送され、ヘッダ２に続けて、第二フィールドの画像データである分割データ２−５，２−７，２−８が転送される。
【０２１０】
図２２の中段に示すように、ESインターフェース８６Ｂからコーデック８７Ｂに対してヘッダ２が転送され、ヘッダ２に続けて、第二フィールドの画像データである分割データ２−１，２−２が転送される。分割データ２−２に続けてヘッダ１が転送され、ヘッダ１に続けて、第一フィールドの画像データである分割データ１−５，１−６，１−７が転送される。分割データ１−７に続けてヘッダ２が転送され、ヘッダ２に続けて、第二フィールドの画像データである分割データ２−９が転送される。
【０２１１】
図２２の下段に示すように、ESインターフェース８６Ｃからコーデック８７Ｃに対してヘッダ１が転送され、ヘッダ１に続けて、第一フィールドの画像データである分割データ１−２が転送される。分割データ１−２に続けてヘッダ２が転送され、ヘッダ２に続けて、第二フィールドの画像データである分割データ２−３，２−４，２−６が転送される。分割データ２−６に続けてヘッダ１が転送され、ヘッダ１に続けて、第一フィールドの画像データである分割データ１−８，１−９が転送される。
【０２１２】
このように、２個のコーデックに第一フィールドの処理を行わせるとともに残る１個のコーデックに第二フィールドの処理を行わせ、次のタイミングでは２個のコーデックに第二フィールドの処理を行わせるとともに残る１個のコーデックに第一フィールドの処理を行わせるようにすることによって、処理量を平滑化することが可能になる。これにより、IP変換を早いタイミングで終わらせることが可能となり、図２１の場合と較べてシステム遅延を抑えることが可能になる。
【０２１３】
以上においては、コンピュータ１のPCIeスロット６０に装着される拡張カードが、圧縮データの伸張を行うコーデックカード７１である場合について説明したが、他の処理を行う拡張カードが装着されるようにしてもよい。
【０２１４】
［プログラムについて］
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、汎用のパーソナルコンピュータなどにインストールされる。
【０２１５】
インストールされるプログラムは、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)等）や半導体メモリなどよりなる図７に示されるリムーバブルメディア６２に記録して提供される。また、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供されるようにしてもよい。プログラムは、ROM５２やストレージ５８にあらかじめインストールしておくことができる。
【０２１６】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２１７】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０２１８】
４１  コンピュータ，  ７１  コーデックカード，  ８１  PCIeコネクタ，  ８２  DMA転送部，  ８３  ES解析部，  ８４  RAMコントローラ，  ８５  ローカルメモリ，  ８６  ESインターフェース，  ８７  コーデック，  ８８  ベースバンドインターフェース，  ８９  ホストバス，  ９０  CPU
【図１】
2011244029.tif 000003
【図２】
2011244029.tif 000004
【図３】
2011244029.tif 000005
【図４】
2011244029.tif 000006
【図５】
2011244029.tif 000007
【図６】
2011244029.tif 000008
【図７】
2011244029.tif 000009
【図８】
2011244029.tif 000010
【図９】
2011244029.tif 000011
【図１０】
2011244029.tif 000012
【図１１】
2011244029.tif 000013
【図１２】
2011244029.tif 000014
【図１３】
2011244029.tif 000015
【図１４】
2011244029.tif 000016
【図１５】
2011244029.tif 000017
【図１６】
2011244029.tif 000018
【図１７】
2011244029.tif 000019
【図１８】
2011244029.tif 000020
【図１９】
2011244029.tif 000021
【図２０】
2011244029.tif 000022
【図２１】
2011244029.tif 000023
【図２２】
2011244029.tif 000024