(57)【要約】【課題】トランスコーデックを効率的に実行する。【解決手段】本発明の一態様に係るマルチプロセッサ１は、第１の圧縮データ１３ａを取得し、第１の圧縮データ１３ａを第１メモリ１２ａに記憶し、第１メモリ１２ａに記憶された第１の圧縮データ１３ａをデコードし、このデコードされたデータ１３ｂを第２メモリ１２ｂに記憶するハードウェアデコード手段と、複数のプロセッサエレメント４ａ〜４ｄのうちの少なくとも一つであり、第３メモリ１２ｅに記憶されているソフトウェア１３ｅにしたがって、第２メモリ１２ｂに記憶されているデコードされたデータ１３ｂをエンコードし、このエンコードにより得られた第２の圧縮データ１３ｃを第４メモリ１２ｃに記憶するデコード処理プロセッサエレメントとを具備し、第４メモリ１２ｃに記憶されている第２の圧縮データ１３ｃを外部に出力する。【選択図】      図１
2008299610.tif 000002
【特許請求の範囲】
【請求項１】
外部から取得した第１の圧縮データを第１メモリに記憶する第１制御手段と、
前記第１メモリに記憶された前記第１の圧縮データをデコードし、このデコードされたデータを第２メモリに記憶するハードウェアデコード手段と、
複数のプロセッサエレメントのうちの少なくとも一つであり、第３メモリに記憶されているエンコードソフトウェアにしたがって、前記第２メモリに記憶されている前記デコードされたデータをエンコードし、このエンコードにより得られた第２の圧縮データを第４メモリに記憶するエンコード処理プロセッサエレメントと、
前記第４メモリに記憶されている前記第２の圧縮データを前記外部に出力する第２制御手段と
を具備するマルチプロセッサ。
【請求項２】
外部から取得した第１の圧縮データを第１メモリに記憶する第１制御手段と、
前記第１メモリに記憶された前記第１の圧縮データをデコードし、このデコードされたデータを第２メモリに記憶するハードウェアデコード手段と、
複数のプロセッサエレメントのうちの少なくとも一つであり、第３メモリに記憶されている編集ソフトウェアにしたがって、前記第２メモリに記憶されている前記デコードされたデータを編集し、編集データを作成する編集処理プロセッサエレメントと、
前記複数のプロセッサエレメントのうちの少なくとも一つであり、前記編集処理プロセッサエレメントによって作成された前記編集データを、第４メモリに記憶されているエンコードソフトウェアにしたがってエンコードし、このエンコードにより得られた第２の圧縮データを第５メモリに記憶するエンコード処理プロセッサエレメントと、
前記第５メモリに記憶されている前記第２の圧縮データを前記外部に出力する第２制御手段と
を具備するマルチプロセッサ。
【請求項３】
外部から取得した第１の圧縮データを第１メモリに記憶する第１制御手段と、
前記第１メモリに記憶された前記第１の圧縮データをデコードし、このデコードされたデータを第２メモリに記憶するハードウェアデコード手段と、
複数のプロセッサエレメントのうちの少なくとも一つであり、第３メモリに記憶されている編集ソフトウェアにしたがって、前記第２メモリに記憶されている前記デコードされたデータを編集し、編集データを作成する編集処理プロセッサエレメントと、
前記編集処理プロセッサエレメントによって作成された前記編集データをエンコードし、このエンコードにより得られた第２の圧縮データを第４メモリに記憶するハードウェアエンコード手段と、
前記第４メモリに記憶されている前記第２の圧縮データを前記外部に出力する第２制御手段と
を具備するマルチプロセッサ。
【請求項４】
請求項１乃至請求項３のいずれか１項に記載のマルチプロセッサにおいて、
前記第１の圧縮データは、圧縮された映像データであり、
前記第２の圧縮データのデータサイズは、外部のバスにおいて、他のデータと転送が重なっても当該外部のバスの帯域幅で転送可能なサイズである
ことを特徴とするマルチプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサエレメントを備えたマルチプロセッサに関する。
【背景技術】
【０００２】
特許文献１では、伸張された動画像データをソフトウェアにて伸張するソフトウェア部と、ソフトウェア処理部にて処理された動画像データを格納するデータ記憶部と、データ記憶部からの動画像データをハードウェアにて伸張処理するハードウェア処理部を有する圧縮動画像のエンコード装置、が開示されている。
【０００３】
特許文献２では、所定のデータ処理をソフトウェアによって実現するソフトウェア処理部と、所定のデータ処理をハードウェアによって実現するハードウェア処理部とを有するデータ処理装置、が開示されている。
【０００４】
特許文献３では、ハードウェアによって構成された第１のコーデックと、ソフトウェアを実行することによって符号化復号化を行う第２のコーデックを有する構成が開示されている。
【０００５】
特許文献４では、複雑な演算を多く含む部分は並列処理可能なマイクロプロセッサで処理し、比較的単純ではあるが並列化が本質的に困難な処理はブロックローダ、ＶＬＣデコーダを用いてハードウェアで処理することが開示されている。
【０００６】
特許文献５では、処理量の多い画像圧縮伸張アルゴリズムの信号処理において、ソフトウェアとハードウェアで負荷が分散され高い処理能力と柔軟性を実現した信号処理装置、が開示されている。
【０００７】
近年、地上デジタル放送やＢＳハイビジョン放送が普及しつつあり、これらの放送に関わる映像データは、ＤＶＤレコーダ、パーソナルコンピュータなどで処理される。地上デジタル放送やＢＳハイビジョン放送などの映像データを処理ためのアプリケーション・ソフトウェアの数は増加傾向にあると考えられる。
【０００８】
パーソナルコンピュータで、ある形式により圧縮された映像データを他の形式により圧縮された映像データに変換するトランスコーデックを行う場合、トランスコーデックのための処理をＣＰＵ（Central Processing Unit）が行うため、ＣＰＵに負荷が集中する。
【特許文献１】特開２００４−３５６８５０号公報
【特許文献２】特開２００１−２７９８６号公報
【特許文献３】特開２０００−１１５２７７号公報
【特許文献４】特開平９−８４００４号公報
【特許文献５】特開２００５−７０９３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
トランスコーデックをＣＰＵで集中的に処理する場合、このＣＰＵで実行される他のアプリケーション・ソフトウェアの処理速度が遅くなる場合がある。また、ＣＰＵに負荷がかかり、トランスコーデックの処理自体をリアルタイムに実行することが困難になる可能性もある。
【００１０】
ＧＰＵ（Graphics Processing Unit）がトランスコーデックを行う場合、このＧＰＵは本来コンピュータグラフィックス処理のためのプロセッサであるため、実行する処理に対する費用対効果が低下する。また、映像データを扱うシステムにおいては、チップセットのビデオ出力機能が利用され、ＧＰＵが省かれたシステムが多く利用されている。
【００１１】
本発明は、以上のような実情に鑑みてなされたもので、トランスコーデックを効率的に実行し、映像データのリアルタイム性を確保した状態でデータ転送可能とするマルチプロセッサを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題は、外部から取得した第１の圧縮データを第１メモリに記憶する第１制御手段と、第１メモリに記憶された第１の圧縮データをデコードし、このデコードされたデータを第２メモリに記憶するハードウェアデコード手段と、複数のプロセッサエレメントのうちの少なくとも一つであり、第３メモリに記憶されているエンコードソフトウェアにしたがって、第２メモリに記憶されているデコードされたデータをエンコードし、このエンコードにより得られた第２の圧縮データを第４メモリに記憶するエンコード処理プロセッサエレメントと、第４メモリに記憶されている第２の圧縮データを外部に出力する第２制御手段とを具備するマルチプロセッサ、により解決される。
【００１３】
上記課題は、外部から取得した第１の圧縮データを第１メモリに記憶する第１制御手段と、第１メモリに記憶された第１の圧縮データをデコードし、このデコードされたデータを第２メモリに記憶するハードウェアデコード手段と、複数のプロセッサエレメントのうちの少なくとも一つであり、第３メモリに記憶されている編集ソフトウェアにしたがって、第２メモリに記憶されているデコードされたデータを編集し、編集データを作成する編集処理プロセッサエレメントと、複数のプロセッサエレメントのうちの少なくとも一つであり、編集処理プロセッサエレメントによって作成された編集データを、第４メモリに記憶されているエンコードソフトウェアにしたがってエンコードし、このエンコードにより得られた第２の圧縮データを第５メモリに記憶するエンコード処理プロセッサエレメントと、第５メモリに記憶されている第２の圧縮データを外部に出力する第２制御手段とを具備するマルチプロセッサ、により解決される。
【００１４】
上記課題は、外部から取得した第１の圧縮データを第１メモリに記憶する第１制御手段と、第１メモリに記憶された第１の圧縮データをデコードし、このデコードされたデータを第２メモリに記憶するハードウェアデコード手段と、複数のプロセッサエレメントのうちの少なくとも一つであり、第３メモリに記憶されている編集ソフトウェアにしたがって、第２メモリに記憶されているデコードされたデータを編集し、編集データを作成する編集処理プロセッサエレメントと、編集処理プロセッサエレメントによって作成された編集データをエンコードし、このエンコードにより得られた第２の圧縮データを第４メモリに記憶するハードウェアエンコード手段と、第４メモリに記憶されている第２の圧縮データを外部に出力する第２制御手段とを具備するマルチプロセッサ、により解決される。
【発明の効果】
【００１５】
本発明により、トランスコーデックを効率的に実行することができ、映像データのリアルタイム性を確保した状態でデータ転送を行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら本発明の実施の形態について説明する。なお、以下の各図において同様の機能を実現する部分については同一の符号を付して説明を省略する。
【００１７】
（第１の実施の形態）
本実施の形態においては、圧縮された映像データのデコード（伸張）に関しては固定的なフォーマットが多いためハードウェアで処理し、映像データのエンコードに関しては様々なデバイスに対応するフォーマットへの変換を可能とするためにプログラマブルなプロセッサエレメント（例えば、DSP：Digital Signal Processor）によりソフトウェアで柔軟に処理するマルチプロセッサについて説明する。
【００１８】
図１は、本実施の形態に係るマルチプロセッサの一例を示すブロック図である。
【００１９】
マルチプロセッサ１は、ハードウェアデコード部２、ハードウェアデコード部３、複数のプロセッサエレメント（SPE：Synergistic Processor Element）４ａ〜４ｄ、例えばPCI Expressなどの高速の汎用バスインタフェース（PCIe I/F）５、メモリインタフェース６、制御プロセッサ（SCP：System Control Processor）７、データ転送部（DMAC：Direct Memory Access Controller）８、を内部バス（Interconnect Network）９で接続した構成を持つ。
【００２０】
汎用バスインタフェース５は、外部装置１０とバス１１経由でデータのやり取りを行う。
【００２１】
メモリインタフェース（メモリコントローラ）６は、ハードウェアデコード部２，３及び複数のプロセッサエレメント４ａ〜４ｄに利用されるメモリ１２ａ〜１２ｅと接続されている。
【００２２】
メモリ１２ａ〜１２ｅは、それぞれ、マルチプロセッサ１に受け付けられた圧縮映像データ１３ａ、圧縮映像データ１３ａがデコードされて得られた映像データ１３ｂ、映像データ１３ｂが編集・圧縮されて得られた圧縮映像データ１３ｃ、編集ソフトウェア１３ｄ、エンコードソフトウェア１３ｅを記憶する。なお、メモリ１２ａ〜１２ｅは、例えば一つのメモリによって実現されるなどのように、自由に組み合わせた構成としてもよい。
【００２３】
制御プロセッサ７は、ハードウェアデコード部２，３、複数のプロセッサエレメント４ａ〜４ｄ、データ転送部８などを制御するプロセッサである。
【００２４】
データ転送部８は、汎用バスインタフェース５とメモリインタフェース６との間で、データ転送を行う。
【００２５】
ハードウェアデコード部２は、ハードウェアにより構成されており、第１の形式により圧縮されたデータ（例えばmpeg2/mpeg1）のデコードを行う。
【００２６】
ハードウェアデコード部３は、ハードウェアにより構成されており、第２の形式により圧縮されたデータ（例えばH.264/VC1）のデコードを行う。
【００２７】
複数のプロセッサエレメント４ａ〜４ｄは、制御プロセッサ７による制御にしたがって、並列動作可能である。複数のプロセッサエレメント４ａ〜４ｄのうちの少なくとも一つは、制御プロセッサ７にしたがってメモリ１２ｄの編集ソフトウェア１３ｄを実行し、編集データを作成する。
【００２８】
また、複数のプロセッサエレメント４ａ〜４ｄのうちの少なくとも一つは、制御プロセッサ７にしたがってメモリ１３ｅのエンコードソフトウェア１３ｅを実行し、デコードされた映像データ１３ｂ又は編集データなどのような各種のデータをエンコードする。
【００２９】
なお、本実施の形態においては、４つのプロセッサエレメント４ａ〜４ｄがマルチプロセッサ１に備えられている場合を例として説明しているが、マルチプロセッサ１に備えられているプロセッサエレメントの数は２以上であれば自由に変更可能である。
【００３０】
すなわち、マルチプロセッサ１において、デコードはハードウェアであるハードウェアデコード部２又はハードウェアデコード部３により実行され、エンコードはプロセッサエレメント４ａ〜４ｄのうちの少なくとも一つ上で動作するエンコードソフトウェア１３ｅにより実現される。
【００３１】
映像データの解像度やフォーマットの数は、例えば地上デジタル放送、ＢＳハイビジョン放送、ＨＤ−ＤＶＤ、Ｂｌｕｅ Ｒａｙ、などの規格で固定的に決まるため、本実施の形態においては、圧縮映像データ１３ａのデコードをハードウェアであるハードウェアデコード部２又はハードウェアデコード部３で固定的に処理する。一般的に、ある処理をハードウェアで構成した場合、チップ面積は小さくなる。
【００３２】
圧縮された映像データを再生する装置は、例えば携帯電話、ポータブルビデオプレイヤー、ＤＶＤレコーダ、ゲーム機、コンピュータシステムなどのように、多岐にわたる。このように、多岐にわたる圧縮映像データの再生装置については、解像度やフォーマットが統一的に定められておらず、各製品の製作会社が解像度及びフォーマットを自由に決定している場合が多い。したがって、本実施の形態に係るマルチプロセッサ１において、映像データのエンコードは、圧縮映像データの再生装置に応じた形式で柔軟に行うために、エンコードソフトウェア１３ｅによりプロセッサエレメント４ａ〜４ｄで行う。
【００３３】
エンコードソフトウェア１３ｅはアップデートが可能であるため、マルチプロセッサ１が出荷された後に、圧縮映像データの再生装置やエンコードの規格が変わったとしても対応可能である。
【００３４】
上記のような構成を持つマルチプロセッサ１の処理を、図２から図５を用いて説明する。
【００３５】
図２は、本実施の形態において、圧縮映像データ１３ａを受け付けた後、メモリ１２ａに記憶するまでの動作の一例を示すブロック図である（第１段階）。
【００３６】
制御プロセッサ７は、データ転送部８を制御する。データ転送部８は、外部装置１０からバス１１経由で、汎用バスインタフェース５によって受信された圧縮映像データ（圧縮されている映像ストリーム）１３ａを、内部バス９経由で、メモリインタフェース６に転送する。メモリインタフェース６は、圧縮映像データ１３ａをメモリ１２ａに記憶する。
【００３７】
より具体的に説明すると、制御プロセッサ７は、データ転送部８に、転送元アドレス、転送先アドレス、転送データサイズ、転送指示を与える。データ転送部８は、内部のレジスタに、転送元アドレス、転送先アドレス、転送データサイズを記憶し、このレジスタの内容にそって、汎用バスインタフェース５から内部バス９経由でメモリインタフェース６に圧縮映像データ１３ａを転送し、圧縮映像データ１３ａをメモリ１２ａに記憶させる。
【００３８】
図３は、本実施の形態において、圧縮映像データ１３ａをデコードし、デコードされた映像データ１３ｂをメモリ１２ｂに記憶するまでの動作の一例を示すブロック図である（第２段階）。なお、この図３では、ハードウェアデコード部２を用いる場合を例示しているが、ハードウェアデコード部３を用いる場合も同様である。
【００３９】
制御プロセッサ７は、ハードウェアデコード部２を制御する。ハードウェアデコード部２は、メモリインタフェース６及び内部バス９を介して、メモリ１２ａに記憶されている圧縮映像データ１３ａを取得し、この圧縮映像データ１３ａをデコードし、デコードされた映像データ１３ｂを内部バス９及びメモリインタフェース６を介してメモリ１２ｂに記憶する。
【００４０】
より具体的に説明すると、制御プロセッサ７は、ハードウェアデコード部２に、読み出しアドレス、書き込みアドレス、デコード指示を与え、ハードウェアデコード部２は、内部のレジスタに、読み出しアドレス、書き込みアドレスを記憶し、このレジスタの内容にそって、圧縮映像データ１３ａをメモリ１２ａから読み出し、さらにデコードされた映像データ１３ｂをメモリ１２ｂに書き込む。
【００４１】
図４は、本実施の形態において、デコードされた映像データ１３ｂを編集し、エンコードし、メモリ１２ｃに記憶するまでの動作の一例を示すブロック図である（第３段階）。
【００４２】
制御プロセッサ７は、複数のプロセッサエレメント４ａ〜４ｄのうち、少なくとも一つのプロセッサエレメント（この図４では、プロセッサエレメント４ａ〜４ｄとしている）を制御する。この少なくとも一つのプロセッサエレメント４ａ〜４ｄは、メモリインタフェース６及び内部バス９を介して、メモリ１２ｄに記憶されている編集ソフトウェア１３ｄ及びメモリ１２ｅに記憶されているエンコードソフトウェア１３ｅをアクセスするとともに、メモリ１２ｂに記憶されているデコードされた映像データ１３ｂを取得し、編集ソフトウェア１３ｄに基づく動作によりデコードされた映像データ１３ｂを編集し、編集データをエンコードソフトウェア１３ｅに基づく動作によりエンコードし、このエンコードにより得られた圧縮映像データ１３ｃを内部バス９及びメモリインタフェース６を介してメモリ１２ｃに記憶する。
【００４３】
より具体的に説明すると、制御プロセッサ７は、複数のプロセッサエレメント４ａ〜４ｄの中から、編集ソフトウェア１３ｄ及びエンコードソフトウェア１３ｅを実行する少なくとも一つのプロセッサエレメント（図４では、プロセッサエレメント４ａ〜４ｄ）を選択する。この選択の手法としては、例えば、複数のプロセッサエレメント４ａ〜４ｄから処理を実行していない待機中のプロセッサエレメント、あるいは処理量の少ないプロセッサエレメントを選択するなどの手法を用いることができる。なお、制御プロセッサ７は、特にプロセッサエレメントの選択を行うことなく、複数のプロセッサエレメント４ａ〜４ｄの全てを用いて編集ソフトウェア１３ｄ及びエンコードソフトウェア１３ｅを実行するとしてもよい。編集ソフトウェア１３ｄを実行するプロセッサエレメントと、エンコードソフトウェア１３ｅを実行するプロセッサエレメントとは、重複していてもよく、別であってもよい。
【００４４】
そして、制御プロセッサ７は、選択したプロセッサエレメント４ａ〜４ｄに、読み出しアドレス、書き込みアドレス、編集指示、エンコード指示を与え、選択されたプロセッサエレメント４ａ〜４ｄは、内部のレジスタに、読み出しアドレス、書き込みアドレスを記憶し、このレジスタの内容にそって、デコードされた映像データ１３ｂをメモリ１２ｂから読み出し、編集・エンコード後に得られる圧縮映像データ１３ｃをメモリ１２ｃに書き込む。
【００４５】
図５は、本実施の形態において、メモリ１２ｃに記憶されている圧縮映像データ１３ｃを、外部装置１０に転送する動作の一例を示すブロック図である（第４段階）。
【００４６】
制御プロセッサ７は、データ転送部８を制御する。データ転送部８は、メモリ１２ｃに記憶されている圧縮映像データ１３ｃを、メモリインタフェース６、内部バス９経由で汎用バスインタフェース５に転送する。汎用バスインタフェース５は、圧縮映像データ１３ｃを、バス１１経由で、外部装置１０に送信する。
【００４７】
より具体的に説明すると、制御プロセッサ７は、データ転送部８に、転送元アドレス、転送先アドレス、転送データサイズ、転送指示を与え、データ転送部８は、内部のレジスタに、転送元アドレス、転送先アドレス、転送データサイズを記憶し、このレジスタの内容にそって、圧縮映像データ１３ｃを、メモリインタフェース６、内部バス９経由で汎用バスインタフェース５に転送し、圧縮映像データ１３ｃを、バス１１経由で外部装置１０に送信させる。
【００４８】
図６は、本実施の形態に係るマルチプロセッサ１の適用例を示すブロック図である。この図６においては、マルチプロセッサ１をコンピュータシステム１４に備えた場合を例示している。
【００４９】
本実施の形態において、コンピュータシステム１４は、ＣＰＵ１５、メモリ１６、ＧＰＵ１７、メモリ／プロセッサ制御接続部１８、Ｉ／Ｏ制御接続部１９、マルチプロセッサ１を具備する。
【００５０】
コンピュータシステム１４は、ＵＳＢ２０ａ、オーディオ機器２０ｂ、ネットワーク２０ｃ、ＨＤＤ又はＤＶＤ２０ｄ、チューナ２０ｅから、データを取得し、また、ＵＳＢ２０ａ、オーディオ機器２０ｂ、ネットワーク２０ｃ、ＨＤＤ又はＤＶＤ２０ｄにデータを与える。
【００５１】
メモリ／プロセッサ制御接続部１８とメモリ１６とは、例えば８GByte/secのバンド幅（転送速度）を持つバス２１ａにより接続される。
【００５２】
メモリ／プロセッサ制御接続部１８とＧＰＵ１７とは、例えば４GByte/secのバンド幅を持つバス２１ｂにより接続される。
【００５３】
メモリ／プロセッサ制御接続部１８とＣＰＵ１５とは、例えば８GByte/secのバンド幅を持つバス２１ｃにより接続される。
【００５４】
メモリ／プロセッサ制御接続部１８とＩ／Ｏ制御接続部１９とは、例えば１GByte/secのバンド幅を持つバス２１ｄにより接続される。
【００５５】
Ｉ／Ｏ制御接続部１９とマルチプロセッサ１とは、例えば１GByte/secのバンド幅を持つバス１１により接続される。
【００５６】
Ｉ／Ｏ制御接続部１９とＵＳＢ２０ａとの間、及びＩ／Ｏ制御接続部１９とオーディオ機器２０ｂとの間では、例えば１００MByte/secのバンド幅でデータ転送が行われる。
【００５７】
Ｉ／Ｏ制御接続部１９とネットワーク２０ｃとの間、Ｉ／Ｏ制御接続部１９とＨＤＤ又はＤＶＤ２０ｄとの間、Ｉ／Ｏ制御接続部１９とチューナ２０ｅとの間では、例えば２５０MByte/secのバンド幅でデータ転送が行われる。
【００５８】
Ｉ／Ｏ制御接続部１９は、各種装置２０ａ〜２０ｅとコンピュータシステム１４の他の構成要素とを接続するチップである。
【００５９】
メモリ／プロセッサ制御接続部１８は、メモリ１６とＣＰＵ１５とＧＰＵ１７との間の接続を行う。
【００６０】
以下に、コンピュータシステム１４の動作を説明する。
【００６１】
Ｉ／Ｏ制御接続部１９は、ＵＳＢ２０ａ、オーディオ機器２０ｂ、ネットワーク２０ｃ、ＨＤＤ又はＤＶＤ２０ｄ、チューナ２０ｅのいずれかから圧縮映像データ１３ａを受信し、バス１１経由でマルチプロセッサ１に圧縮映像データ１３ａを転送する。
【００６２】
マルチプロセッサ１は、圧縮映像データ１３ａを受け取り、内部のハードウェアでデコードし、さらに編集ソフトウェア１３ｄで必要な編集処理を実行し、編集データをエンコードソフトウェア１３ｅでエンコードし、コンピュータシステム１で取り扱う形式の圧縮映像データ１３ｃを作成し、圧縮映像データ１３ｃをバス１１経由でＩ／Ｏ制御接続部１９に転送する。
【００６３】
Ｉ／Ｏ制御接続部１９は、圧縮映像データ１３ｃを、バス２１ｄ経由で、メモリ／プロセッサ制御接続部１８に転送する。
【００６４】
メモリ／プロセッサ制御接続部１８は、圧縮映像データ１３ｃを、バス２１ｃ，２１ａ，２１ｂのいずれか経由で、ＣＰＵ１５、メモリ１６、ＧＰＵ１７のいずれかに転送する。
【００６５】
ＣＰＵ１５は、圧縮映像データ１３ｃを受信した場合、デコード機能１５ａを用いて圧縮映像データ１３ｃをデコードする。そして、ＣＰＵ１５は、デコードされた映像データ２２を、バス２１ｃ、メモリ／プロセッサ制御接続部１８、バス２１ａ経由で、メモリ１６に記憶する。
【００６６】
ＧＰＵ１７は、圧縮映像データ１３ｃを受信した場合、デコード機能１７ａを用いて圧縮映像データ１３ｃをデコードする。そして、ＧＰＵ１７は、デコードされた映像データ２２を出力するための処理を行う。
【００６７】
なお、ＧＰＵ１７は、バス２１ｂ、メモリ／プロセッサ制御接続部１８、バス２１ａ経由で、デコードされた映像データ２２をメモリ１６に記憶するとしてもよい。また、ＧＰＵ１７は、ＣＰＵ１５によってデコードされた映像データ２２を出力するとしてもよい。
【００６８】
メモリ１６は、圧縮映像データ１３ｃ、あるいは、この圧縮映像データ１３ｃをデコードした映像データ２２、その他ＣＰＵ１５、ＧＰＵ１７などで用いられるソフトウェアなどを記憶する。
【００６９】
逆に、Ｉ／Ｏ制御接続部１９は、ＣＰＵ１５、メモリ１６、ＧＰＵ１７のいずれかから、
バス２１ｃ、２１ａ、２１ｂのいずれか、メモリ／プロセッサ制御接続部１８、バス２１ｄを経由して、圧縮映像データを受信する。そして、Ｉ／Ｏ制御接続部１９は、この受信した圧縮映像データをバス１１経由でマルチプロセッサ１に転送する。
【００７０】
マルチプロセッサ１は、圧縮映像データを受け取り、内部でデコードし、さらに必要な編集処理を実行し、編集データを再度圧縮し、圧縮映像データをバス１１経由でＩ／Ｏ制御接続部１９に転送する。
【００７１】
Ｉ／Ｏ制御接続部１９は、この圧縮映像データを、ＵＳＢ２０ａ、オーディオ機器２０ｂ、ネットワーク２０ｃ、ＨＤＤ／ＤＶＤ２０ｄのいずれかに出力する。
【００７２】
なお、ＣＰＵ１５、メモリ１６、ＧＰＵ１７のいずれかからマルチプロセッサ１へのデータ転送と、マルチプロセッサ１からＣＰＵ１５、メモリ１６、ＧＰＵ１７のいずれかへのデータ転送とのうち、いずれか一方は、転送されるデータが圧縮されていないとしてもよい。
【００７３】
上述したように、このコンピュータシステム１４では、ＣＰＵ１５とメモリ／プロセッサ制御接続部１８との間、メモリ１６とメモリ／プロセッサ制御接続部１８との間、ＧＰＵ１７とメモリ／プロセッサ制御接続部１８との間におけるデータ転送のバンド幅は８GByte/sec又は４GByte/secである。
【００７４】
これに対して、メモリ／プロセッサ制御接続部１８とＩ／Ｏ制御接続部１９との間、Ｉ／Ｏ制御接続部１９とマルチプロセッサ１との間におけるデータ転送のバンド幅は１GByte/secである。
【００７５】
すなわち、ＣＰＵ１５とメモリ／プロセッサ制御接続部１８との間、メモリ１６とメモリ／プロセッサ制御接続部１８との間、ＧＰＵ１７とメモリ／プロセッサ制御接続部１８との間におけるデータ転送のバンド幅は、メモリ／プロセッサ制御接続部１８とＩ／Ｏ制御接続部１９との間、Ｉ／Ｏ制御接続部１９とマルチプロセッサ１との間などのデータ転送のバンド幅より広くなっている。
【００７６】
例えば、Ｉ／Ｏ制御接続部１９、バス２１ｄ、メモリ／プロセッサ制御接続部１８、バス２１ａ、メモリ１６という経路で映像データを転送する場合、メモリ／プロセッサ制御接続部１８とＩ／Ｏ制御接続部１９との間のバス２１ｄは、１GByte/secのバンド幅を有するが、この映像データの転送中に他のデータについてもメモリ／プロセッサ制御接続部１８とＩ／Ｏ制御接続部１９との間でデータ転送可能とする必要があるため、バス２１ｄでは、映像データの転送に１GByte/secのバンド幅の全てを用いることはできない。映像データの転送においてバンド幅が制限されると、映像データのリアルタイム性の確保が困難となる場合がある。
【００７７】
しかしながら、本実施の形態においては、メモリ／プロセッサ制御接続部１８とＩ／Ｏ制御接続部１９との間で、圧縮映像データ１３ｃが転送されるため、バス２１ｄのバンド幅を効率的に使用することができ、コンピュータシステム１４内のバスのバンド幅に余裕をもたせた状態でデータを転送でき、データサイズの大きい映像データであってもリアルタイム性を確保することができる。
【００７８】
すなわち、本実施の形態においては、圧縮映像データがコンピュータシステム１４内のバス２１ｄ上を転送されるため、バス２１ｄにおいてデータ転送が重複してもリアルタイム性を確保した状態でデータ転送可能である。
【００７９】
上記効果を具体的に説明する。例えば、従来のＮＴＳＣのデータ転送に必要なバンド幅は、３２０（幅）×２４０（高さ）×３（色）×６０（フレーム／秒）＝約１５MByte/secであった。しかしながら、ハイビジョン放送の映像データを扱うとなると、１９２０（幅）×１０８０（高さ）×３（色）×６０（フレーム／秒）＝約１８０MByte/secのバンド幅が必要になる。ハイビジョン放送の映像データを、バスにおける一方の方向への転送と他方の方向への転送とでデータ転送可能とするためには、約３６０MByte/secのバンド幅が必要になる。実際には、制御用の情報なども転送する必要があるため、さらに広いバンド幅が必要になる。
【００８０】
例えば、１スロット（×１）でバンド幅が１３３MByte/secとなる第１の規格にそったバス、あるいは１スロット（×１）でバンド幅が２５０MByte/secとなる第２の規格にそったバスでは、上記のようなサイズのハイビジョン放送の映像データをそのまま転送するにはバンド幅が足りない。
【００８１】
例えば、上記第２の規格において４スロット（×４）としたバスは、バンド幅が１GByte/secとなるが、テータ転送効率は通常で６０％〜７５％であり、他のデータの転送と重複する場合もあり、１GByte/secのバンド幅の全てを使用して映像データを転送することはできない。
【００８２】
しかしながら、本実施の形態に係るマルチプロセッサ１を備えたコンピュータシステム１４においては、上述したように、映像データがコンピュータシステム１に対応した形式で圧縮されて転送されるため、ハイビジョン放送の映像データなどのような大容量データであってもリアルタイム性を確保しつつ映像データの出力を実行することができる。
【００８３】
なお、本実施の形態に係るマルチプロセッサ１では、複数のプロセッサエレメント４ａ〜４ｄのうちの少なくとも一つが、圧縮映像データ１３ａに対して、デコード、編集、エンコードを行い、圧縮映像データ１３ｃを生成するとしているが、例えば、mpeg2で圧縮されているデータをH.264で圧縮されているデータに変換するなどのように、ある形式の圧縮映像データを他の形式の圧縮映像データに変換する（トランスコーデック）処理を実行し、編集処理は実行しないとしてもよい。
【００８４】
本実施の形態において、編集処理としては、例えば、画像処理技術及び音声処理技術を用いてスポーツのハイライトシーン、ニュース番組の特定のコーナーを抽出する処理などがある。この場合、編集処理では、例えば、映像データにおいて繰り返されている回数が所定数を超えるデータ、音量の大きくなる部分のデータ、ある特徴を持つデータ、顔認識による特定の人物の映像データなどを、音の変わり目又は切れ目、映像データのテロップなどに基づいて抽出する。
【００８５】
また、編集処理は、画素数や解像度の変更など、映像データを出力デバイスに応じたデータに変換する処理であってもよい。
【００８６】
さらに、編集処理は、映像データから特徴点を抽出し、この映像データに含まれているユーザのジェスチャーに基づいて入力制御を行うなどのような、ユーザインタフェースを実現するための処理としてもよい。
【００８７】
本実施の形態においては、例えば、地上デジタル放送の圧縮映像データのデコード、ＢＳハイビジョン放送の圧縮映像データのデコード、ＤＶＤ又はハードディスクなどのような記録媒体に記憶されている圧縮映像データのデコードなどのような、固定的な処理（変更される可能性、頻度がある程度より低い処理）が、ハードウェアにより実行される。
【００８８】
これとは逆に、本実施の形態においては、例えば、エンコード自体は一定の処理内容にしたがって行われるが出力先に応じて処理内容の一部が変わる処理などのように、主な処理内容は固定的であっても一部が用途によって変わる処理は、プロセッサエレメント４ａ〜４ｄのいずれかによりソフトウェアを用いて実行する。より具体的には、例えば、H.264へのエンコードを実行して例えばＨＤＤ／ＨＤ又はＤＶＤに保存する処理、mpeg2へのエンコードを実行して例えばＤＶＤに保存する処理、容量を少なくするためにmpeg2へのビットレート変換を実行する処理、mpeg4へのエンコードを実行して例えば携帯型ゲーム機又は携帯型音楽プレーヤに保存する処理などは、ソフトウェアに基づくプロセッサエレメントの動作により実現される。
【００８９】
同様に、顔認識処理、特徴点の抽出、音認識、テロップ（文字）認識などの編集処理も、いずれかのプロセッサエレメントによりソフトウェアを用いて実行する。
【００９０】
本実施の形態に係るマルチプロセッサ１は、ビデオ出力機能を持たず、チップセット機能を利用する。このマルチプロセッサ１は、コンピュータグラフィックスを処理するためのテクスチャユニットやラスタライザを搭載しないため、ＧＰＵよりもチップ面積を小さくすることができる。マルチプロセッサ１を用いることにより、トランスコーデックにＧＰＵを使用する必要がなくなり、ＧＰＵはＧＰＵ本来の処理を行うことができ、チップの費用対効果を高めることができる。
【００９１】
（第２の実施の形態）
本実施の形態においては、上記第１の実施の形態に係るマルチプロセッサ１の変形例について説明する。
【００９２】
図７は、本実施の形態に係るマルチプロセッサの一例を示すブロック図である。
【００９３】
マルチプロセッサ２３は、上記図１のマルチプロセッサ１とほぼ同様であるが、ハードウェアエンコード部２４をさらに具備する点で異なる。
【００９４】
マルチプロセッサ２３において、汎用バスインタフェース５が圧縮映像データ１３ａを受け付けてから、デコードされた映像データ１３ｂをメモリ１２ｂが記憶するまでの動作は、上記第１の実施の形態に係るマルチプロセッサ１と同様である。
【００９５】
マルチプロセッサ２３において、制御プロセッサ７は、複数のプロセッサエレメント４ａ〜４ｄのうちの少なくとも一つを制御する。複数のプロセッサエレメント４ａ〜４ｄのうちの少なくとも一つは、メモリ１２ｄに記憶されている編集ソフトウェア１３ｄをアクセスするとともに、メモリ１２ｂに記憶されているデコードされた映像データ１３ｂを取得し、編集ソフトウェア１３ｄに基づく動作によりデコードされた映像データ１３ｂを編集し、編集データをハードウェアエンコード部２４に転送する。
【００９６】
次に、制御プロセッサ７は、ハードウェアエンコード部２４を制御する。ハードウェアエンコード部２４は、編集データをエンコードし、このエンコードにより得られた圧縮映像データ１３ｃをメモリ１２ｃに記憶する。
【００９７】
そして、制御プロセッサ７は、データ転送部８を制御する。データ転送部８は、メモリ１２ｃに記憶されている圧縮映像データ１３ｃを汎用バスインタフェース５から外部に送信する。
【００９８】
以上説明した本実施の形態に係るマルチプロセッサ２３においては、エンコードもハードウェアにより実行する。本実施の形態に係るマルチプロセッサ２３を用いることで、上記第１の実施の形態と同様の効果を得ることができる。マルチプロセッサ２３は、デコードと同様にエンコードについても固定的な処理である場合に適しており、処理速度を向上させることができる。
【００９９】
なお、上記各実施の形態においては、マルチプロセッサ１，２３及びコンピュータシステム１４が扱うデータが映像データの場合を例に説明しているが、他のデータであっても同様に適用可能である。
【０１００】
また、マルチプロセッサ１，２３は、例えばパーソナルコンピュータなどのようなコンピュータシステム１４に適用されるのみではなく、例えばＤＶＤレコーダなどのような機器に備えられるとしてもよい。
【０１０１】
上記各実施の形態に係るマルチプロセッサ１，２３は、編集データを、一旦メモリに記憶し、このメモリに記憶された編集データをアクセスしてエンコードを行うとしてもよい。
【０１０２】
上記各実施の形態に係るマルチプロセッサ１，２３において、制御プロセッサ７や、データ転送部８の動作についても、プロセッサエレメントで実現されるとしてもよい。
【図面の簡単な説明】
【０１０３】
【図１】本発明の第１の実施の形態に係るマルチプロセッサの一例を示すブロック図。
【図２】第１の実施の形態において、圧縮映像データを受け付けた後、メモリに記憶するまでの動作の一例を示すブロック図。
【図３】第１の実施の形態において、圧縮映像データをデコードし、デコードされた映像データをメモリに記憶するまでの動作の一例を示すブロック図。
【図４】第１の実施の形態において、デコードされた映像データを編集し、エンコードし、メモリに記憶するまでの動作の一例を示すブロック図。
【図５】第１の実施の形態において、メモリに記憶されている圧縮映像データを、外部装置に転送する動作の一例を示すブロック図。
【図６】第１の実施の形態に係るマルチプロセッサの適用例を示すブロック図。
【図７】本発明の第２の実施の形態に係るマルチプロセッサの一例を示すブロック図。
【符号の説明】
【０１０４】
１，２３…マルチプロセッサ、２，３…ハードウェアデコード部、４ａ〜４ｄ…プロセッサエレメント、５…汎用バスインタフェース、６…メモリインタフェース、７…制御プロセッサ、８…データ転送部、９…内部バス、１０…外部装置、１１，２１ａ〜２１…バス、１２ａ〜１２ｅ…メモリ、１３ａ…圧縮映像データ、１３ｂ，２２…デコードされた映像データ、１３ｃ…圧縮映像データ、１３ｄ…編集ソフトウェア、１３ｅ…エンコードソフトウェア、１４…コンピュータシステム、１５…ＣＰＵ、１５ａ，１７ａ…デコード機能、１６…メモリ、１７…ＧＰＵ、１８…メモリ／プロセッサ制御接続部、１９…Ｉ／Ｏ制御接続部、２４…ハードウェアエンコード部
【図１】
2008299610.tif 000003
【図２】
2008299610.tif 000004
【図３】
2008299610.tif 000005
【図４】
2008299610.tif 000006
【図５】
2008299610.tif 000007
【図６】
2008299610.tif 000008
【図７】
2008299610.tif 000009