(57)【要約】【課題】使用可能なプロセッサを効率的に使用する。【解決手段】処理制御装置１００は、特定部１１０と、制御部１２０とを含む。特定部１０は、並列に動作する複数の要素プロセッサのうち使用可能な要素プロセッサを特定する。制御部１２０は、ｎ単位（ｎ≧２）に分割される演算処理を実行する場合において、特定された要素プロセッサの数がｎ未満であるとき、当該特定された要素プロセッサの少なくともいずれかに、２以上の単位の分割された演算処理を時分割処理により実行させる。【選択図】      図１
2018011258.tif 000002
【特許請求の範囲】
【請求項１】
並列に動作する複数の要素プロセッサのうち使用可能な要素プロセッサを特定する特定手段と、
ｎ単位（ｎ≧２）に分割される演算処理を実行する場合において、前記特定された要素プロセッサの数がｎ未満であるとき、当該特定された要素プロセッサの少なくともいずれかに、２以上の単位の分割された前記演算処理を時分割処理により実行させる制御手段と
を備える処理制御装置。
【請求項２】
前記演算処理は、映像データに対する映像処理を含み、
前記制御手段は、前記特定された要素プロセッサに、前記映像データを構成するフレーム毎の前記映像処理を実行させる
請求項１に記載の処理制御装置。
【請求項３】
前記演算処理は、映像データに対する映像処理を含み、
前記制御手段は、前記特定された要素プロセッサに、前記映像データを構成するフレームのうちの所定の領域毎の前記映像処理を実行させる
請求項１に記載の処理制御装置。
【請求項４】
前記演算処理は、映像データに対する映像処理を含み、
前記制御手段は、前記特定された要素プロセッサに、前記映像データを構成するフレーム毎の映像処理と当該フレームのうちの所定の領域毎の映像処理のいずれかを選択的に実行させる
請求項１に記載の処理制御装置。
【請求項５】
前記映像処理は、前記映像データを符号化する符号化処理を含む
請求項２から請求項４までのいずれか１項に記載の処理制御装置。
【請求項６】
前記ｎは、入力されるデータ又は当該データの種類に応じて異なる
請求項１から請求項５までのいずれか１項に記載の処理制御装置。
【請求項７】
並列に動作する複数の要素プロセッサのうち使用可能な要素プロセッサを特定し、
ｎ単位（ｎ≧２）に分割される演算処理を実行する場合において、前記特定された要素プロセッサの数がｎ個未満であるとき、当該特定された要素プロセッサの少なくともいずれかに、２以上の単位の分割された前記演算処理を時分割処理により実行させる
処理制御方法。
【請求項８】
コンピュータに、
並列に動作する複数の要素プロセッサのうち使用可能な要素プロセッサを特定するステップと、
ｎ単位（ｎ≧２）に分割される演算処理を実行する場合において、前記特定された要素プロセッサの数がｎ未満であるとき、当該特定された要素プロセッサの少なくともいずれかに、２以上の単位の分割された前記演算処理を時分割処理により実行させるステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、処理制御装置、処理制御方法及びプログラム等に関する。
【背景技術】
【０００２】
複数のプロセッサを並列に動作させる技術が知られている（例えば特許文献１参照）。このような技術は、例えば、同種の処理が複数回繰り返し実行される場合に適用される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００２／０６９１７４号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数のプロセッサを並列に動作させて処理を実行する場合において、当該処理を実行するために必要な数のプロセッサが使用可能でないとき、必要な数のプロセッサが使用可能になるまで当該処理の実行を待機しなければならない場合がある。このような場合は、処理の実行を待機する分、プロセッサのリソースを有効に使用できていないといえる。
【０００５】
本開示の例示的な目的の一つは、使用可能なプロセッサを効率的に使用できるようにすることにある。
【課題を解決するための手段】
【０００６】
一の態様において、並列に動作する複数の要素プロセッサのうち使用可能な要素プロセッサを特定する特定部と、ｎ単位（ｎ≧２）に分割される演算処理を実行する場合において、前記特定された要素プロセッサの数がｎ未満であるとき、当該特定された要素プロセッサの少なくともいずれかに、２以上の単位の分割された前記演算処理を時分割処理により実行させる制御部とを含む処理制御装置が提供される。
【０００７】
別の態様において、並列に動作する複数の要素プロセッサのうち使用可能な要素プロセッサを特定し、ｎ単位（ｎ≧２）に分割される演算処理を実行する場合において、前記特定された要素プロセッサの数がｎ個未満であるとき、当該特定された要素プロセッサの少なくともいずれかに、２以上の単位の分割された前記演算処理を時分割処理により実行させる処理制御方法が提供される。
【０００８】
さらに別の態様において、コンピュータに、並列に動作する複数の要素プロセッサのうち使用可能な要素プロセッサを特定するステップと、ｎ単位（ｎ≧２）に分割される演算処理を実行する場合において、前記特定された要素プロセッサの数がｎ未満であるとき、当該特定された要素プロセッサの少なくともいずれかに、２以上の単位の分割された前記演算処理を時分割処理により実行させるステップとを実行させるためのプログラムが提供される。
【発明の効果】
【０００９】
本開示によれば、使用可能なプロセッサが効率的に使用される。
【図面の簡単な説明】
【００１０】
【図１】図１は、処理制御装置の構成の一例を示すブロック図である。
【図２】図２は、処理制御装置が実行する処理の一例を示すフローチャートである。
【図３】図３は、映像処理システムの構成の一例を示すブロック図である。
【図４】図４は、映像処理システムにおいて実行される処理とデータの流れの一例を示す図である。
【図５】図５は、制御装置が実行する処理の一例を示すフローチャートである。
【図６】図６は、変換スレッドの実行手順の一例を示す模式図である。
【図７】図７は、変換スレッドの実行手順の一例を示す模式図である。
【図８】図８は、変換スレッドの実行単位を例示する図である。
【図９】図９は、変換スレッドの実行手順の一例を示す図である。
【図１０】図１０は、変換スレッドの実行手順の一例を示す図である。
【図１１】図１１は、コンピュータ装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１１】
［第１実施形態］
図１は、一実施形態に係る処理制御装置１００の構成を示すブロック図である。処理制御装置１００は、複数の要素プロセッサの動作を制御する装置である。換言すれば、処理制御装置１００は、複数の要素プロセッサにより実行される処理を制御する装置である。なお、処理制御装置１００により制御される要素プロセッサの数は、特定の数に限定されない。
【００１２】
ここにおいて、要素プロセッサとは、並列に動作する複数のプロセッサのそれぞれをいう。要素プロセッサは、例えば、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）等のマルチコアプロセッサを構成するプロセッサ、すなわちプロセッサコアである。要素プロセッサは、ＰＥ（Processing Element）ともいう。
【００１３】
処理制御装置１００は、マルチコアプロセッサを構成する複数の要素プロセッサのいずれか１つによって実現されてもよい。換言すれば、ここでいうマルチコアプロセッサは、処理制御装置１００に相当する要素プロセッサと、処理制御装置１００によって動作が制御される他の要素プロセッサとを含んで構成されてもよい。
【００１４】
処理制御装置１００は、特定部１１０と、制御部１２０とを含んで構成される。処理制御装置１００は、必要に応じて、他の構成を含んでもよい。特定部１１０及び制御部１２０は、ソフトウェアを用いて実現されてもよい。
【００１５】
特定部１１０は、並列に動作する複数の要素プロセッサのうちの使用可能な要素プロセッサを特定する。ここにおいて、使用可能な要素プロセッサとは、制御部１２０からの命令に応じて処理を実行可能な状態にある要素プロセッサをいう。使用可能な要素プロセッサとは、空き状態にある要素プロセッサであるともいえる。
【００１６】
いくつかの態様において、特定部１１０は、要素プロセッサの使用率に基づいて当該要素プロセッサが使用可能であるか判断することが可能である。例えば、特定部１１０は、使用率が所定の閾値以下である要素プロセッサを使用可能であると判断する。
【００１７】
なお、特定部１１０は、使用可能な要素プロセッサそのものではなく、使用可能な要素プロセッサの数を特定するよう構成されてもよい。また、特定部１１０は、使用可能な要素プロセッサを、所定の時間間隔で繰り返し特定するよう構成されてもよい。
【００１８】
制御部１２０は、要素プロセッサに演算処理を実行させる。制御部１２０は、演算処理を実行するよう要素プロセッサに命令する。例えば、制御部１２０は、データが入力されると、入力されたデータに応じた演算処理を１又は複数の要素プロセッサに実行させる。
【００１９】
ここでいう演算処理は、複数の単位に分割されて並列に実行される場合がある。１単位の処理は、１つの要素プロセッサで実行可能な処理である。全体として１つの演算処理がｎ単位（ｎ≧２）に分割可能である場合のｎのことを、以下においては「並列数」ともいう。並列数は、特定の値に限定されず、入力されるデータ又は当該データの種類に応じて異なり得る。
【００２０】
制御部１２０は、１又は複数の要素プロセッサに、２以上の単位の分割された演算処理を時分割処理により実行させることが可能である。例えば、制御部１２０は、所定の条件が満たされた場合に、要素プロセッサに複数の処理を時分割処理で実行させる。
【００２１】
図２は、処理制御装置１００が実行する処理を示すフローチャート２００を示す。処理制御装置１００は、例えば、データが入力されたタイミングで、図２に示される処理を実行する。なお、以下の説明は、処理制御装置１００がｎ単位に分割されて実行される演算処理を実行する場合の例である。
【００２２】
ステップ２１０において、特定部１１０は、並列に動作する所定数の要素プロセッサのうち使用可能な要素プロセッサを特定する。説明の便宜上、以下においては、ステップ２１０において特定された要素プロセッサの数を「ｍ」とする。
【００２３】
ステップ２２０において、制御部１２０は、要素プロセッサの数ｍと演算処理の並列数ｎとを比較する。制御部１２０は、これらの値の比較結果に応じて異なる処理を実行する。
【００２４】
ｍ≧ｎの場合（ステップ２２０：ＹＥＳ）、制御部１２０は、ステップＳ１３において、並列数ｎの演算処理を分割した処理のそれぞれを、使用可能なｍ個の要素プロセッサのうちのｎ個に実行させる。すなわち、制御部１２０は、ステップ２１０において特定された要素プロセッサの数が演算処理の並列数以上である場合には、並列数ｎの演算処理をｎ個の要素プロセッサに並列に実行させる。
【００２５】
一方、ｍ＜ｎの場合（ステップ２２０：ＮＯ）、制御部１２０は、ステップＳ１４において、使用可能なｍ個の要素プロセッサの少なくともいずれかに、ｎ個に分割された演算処理の２以上の単位を時分割処理により実行させる。すなわち、制御部１２０は、ステップ２１０において特定された要素プロセッサの数が演算処理の並列数未満である場合には、（ｎより少ない）ｍ個の要素プロセッサの少なくともいずれかに２以上の単位の分割された処理を割り当てることにより、並列数ｎの演算処理を当該ｍ個の要素プロセッサに並列に実行させる。
【００２６】
以上のとおり、本実施形態の処理制御装置１００は、特定部１２０により特定された要素プロセッサの数が演算処理の並列数未満である場合に、当該特定された要素プロセッサの少なくともいずれかに時分割処理を実行させる構成を有する。このような構成は、使用可能な要素プロセッサの数が並列数以上になってから要素プロセッサに演算処理を実行させる構成に比べ、要素プロセッサが空き状態にある時間を少なくすることを可能にする。したがって、処理制御装置１００によれば、使用可能なプロセッサを効率的に使用することが可能である。
【００２７】
［第２実施形態］
図３は、別の実施形態に係る映像処理システム３００の構成を示すブロック図である。映像処理システム３００は、データ供給装置３１０と、映像処理装置３２０と、データ出力装置３３０とを含んで構成される。データ供給装置３１０、映像処理装置３２０及びデータ出力装置３３０は、映像処理システム３００に複数備わっていてもよい。
【００２８】
データ供給装置３１０及びデータ出力装置３３０は、映像処理装置３２０と通信可能に接続されている。データ供給装置３１０及びデータ出力装置３３０は、インターネット、ＬＡＮ（Local Area Network）などのネットワークを介して映像処理装置３２０に接続されてもよく、ケーブル等によって映像処理装置３２０に直接接続されてもよい。あるいは、映像処理装置３２０は、データ供給装置３１０又はデータ出力装置３３０の一部であってもよい。
【００２９】
データ供給装置３１０は、映像処理装置３２０に映像データを供給する。データ供給装置３１０は、例えば、映像データを蓄積したストレージ装置であってもよく、映像データを生成する撮影装置であってもよい。データ供給装置３１０は、複数の映像データを映像処理装置３２０に供給することができる。
【００３０】
ここでいう映像データは、複数フレームの静止画像によって動画を表す。映像データは、例えば、ＩＴＵ−Ｔ（International Telecommunication Union Telecommunication Standardization Sector）により規格化されたＨ．２６４、Ｈ．２６５などの符号化方式に従って符号化されたデータである。映像データは、ＭＸＦ（Material eXchange Format）などの所定のフォーマットでやり取りされてもよい。ＭＸＦファイルは、映像データのほかに音声データやメタデータを含むことができる。
【００３１】
映像処理装置３２０は、データ供給装置３１０から供給された映像データに映像処理を実行する。映像処理装置３２０は、例えば、いわゆるトランスコーダの機能を有する。映像処理装置３２０が実行する映像処理は、映像の符号化処理を含む。映像処理装置３２０は、入力された映像データに所定の映像処理を実行し、処理後の映像データをデータ出力装置３３０に供給する。
【００３２】
映像処理装置３２０は、より詳細には、制御装置３２１とＰＥ３２２１〜３２２Ｍとを含む。制御装置３２１は、ＰＥ３２２１〜３２２Ｍの動作を制御する。ＰＥ３２２１〜３２２Ｍは、制御装置３２１からの命令に従って処理を実行する。また、ＰＥ３２２１〜３２２Ｍは、その一部または全部を並列に動作させることができる。
【００３３】
以下において、ＰＥ３２２１〜３２２Ｍは、これらを総称する場合に「ＰＥ３２２」とも表記される。ＰＥ３２２の総数、すなわちＭの値は、映像処理システム３００の規模に依存し、特定の値に限定されない。また、ＰＥ３２２１〜３２２Ｍは、各々を識別するための識別番号が割り当てられる。説明の便宜上、ここでは、１〜Ｍの添え字が識別番号として用いられる。
【００３４】
制御装置３２１は、第１実施形態の処理制御装置１００の一例に相当する。すなわち、制御装置３２１は、必要に応じて、使用可能なＰＥ３２２の少なくともいずれかに対して時分割処理を実行させることが可能である。制御装置３２１は、第１実施形態の特定部１１０及び制御部１２０に相当する機能を少なくとも有する。なお、本実施形態における並列数（ｎ）は、あらかじめ決められていてもよく、映像データ（又はその種類）に応じて異なってもよい。
【００３５】
なお、制御装置３２１は、ＰＥのいずれかによって実現されてもよい。この場合、映像処理装置３２０は、Ｍ＋１個のＰＥを有し、そのうちのいずれかに制御装置３２１に相当する機能が割り当てられてもよい。
【００３６】
データ出力装置３３０は、映像処理が実行された映像データを出力する。ここでいう出力は、映像の再生や、映像データの記憶媒体への記録を含み得る。また、データ出力装置３３０は、ストレージ装置であってもよい。データ出力装置３３０がストレージ装置である場合、このストレージ装置は、データ供給装置３１０及びデータ出力装置３３０の双方の機能を有してもよい。
【００３７】
図４は、映像処理システム３００において実行される処理とデータの流れの一例を示す図である。図４に示される例は、ＭＸＦファイルに含まれる映像データに変換処理を実行する例である。ここでいう変換処理は、画像サイズ（解像度）の変換又は補正、色空間の変換、ファイルフォーマットの変換などを含み得る。
【００３８】
映像処理装置３２０は、入力スレッド４２０、変換スレッド４４０及び出力スレッド４６０を実行する。映像処理装置３２０は、映像データに対する処理のほか、音声データに対する処理やメタデータに対する処理を実行し得る。すなわち、映像処理装置３２０は、入力スレッド４２０、変換スレッド４４０及び出力スレッド４６０に加えて他のスレッドを実行してもよい。
【００３９】
入力スレッド４２０は、ＭＸＦファイル４１０の入力を受け付ける。入力スレッド４２０は、ＭＸＦファイル４１０から映像データを抽出し、映像バッファ４３０に供給する。映像バッファ４３０は、入力スレッド４２０から供給された映像データを一時的に記憶する。また、入力スレッド４２０は、ＭＸＦファイル４１０から音声データやメタデータを抽出し、それぞれのデータを対応するバッファに供給してもよい。
【００４０】
変換スレッド４４０は、映像データに変換処理を実行する。変換スレッド４４０は、例えば、ある符号化方式を用いて符号化（エンコード）されている映像データを復号（デコード）してから変換処理を実行し、変換処理後の映像データを別の符号化方式を用いて符号化する。変換スレッド４４０は、変換処理が実行された映像データを映像バッファ４５０に供給する。映像バッファ４５０は、変換スレッド４４０により変換処理が実行された映像データを一時的に記憶する。
【００４１】
変換スレッド４４０は、映像データの所定の単位毎に変換処理を実行する。本実施形態において、変換スレッド４４０は、映像データのフレーム毎に変換処理を実行する。例えば、制御装置３２１は、第１のフレームの変換処理をＰＥ３２２１に実行させる場合、当該第１のフレームに続く第２のフレームの変換処理をＰＥ３２２１以外のＰＥ３２２２〜３２２Ｍのいずれかに実行させる。
【００４２】
ＰＥ３２２は、変換スレッド４４０を並列に実行することが可能である。例えば、あるフレームに対応する変換スレッド４４０をＰＥ３２２１が実行している間に、ＰＥ３２２２〜３２２Ｍの少なくともいずれかは、別のフレームに対応する変換スレッド４４０を実行することができる。
【００４３】
変換スレッド４４０において、制御装置３２１は、１つの映像データに対して決められた数のＰＥ３２２を割り当てるように構成される。換言すれば、変換スレッド４４０において１つの映像データに対して割り当てられるＰＥ３２２の数は、一定の数に制限されている。１つの映像データに対して割り当てられるＰＥ３２２の数は、第１実施形態における「並列数（ｎ）」に相当する。
【００４４】
また、制御装置３２１は、複数の映像データに対する変換スレッド４４０を、複数のＰＥ３２２に並列に実行させることが可能である。例えば、Ｘ個の映像データに対して同時に変換処理を実行する場合、制御装置３２１は、Ｘ×ｎ個（ただし、Ｘ×ｎ≦Ｍ）のＰＥ３２２に変換スレッド４４０を実行させる。
【００４５】
出力スレッド４６０は、変換スレッド４４０により変換処理が実行された映像データを出力する。出力スレッド４６０は、映像バッファ４５０に記憶された各フレームのデータを結合して出力する。出力スレッド４６０は、映像バッファ４５０に記憶されたデータを、各フレームが所定の順番で再生されるように結合する。出力スレッド４６０は、映像データと他のデータ（音声データ、メタデータなど）とを含むＭＸＦファイル４７０を生成して出力する。
【００４６】
図５は、制御装置３２１が実行する処理を示すフローチャート５００を示す。フローチャート５００は、制御装置３２１がＰＥ３２２に変換スレッド４４０を割り当てるときに実行する処理を示している。
【００４７】
ステップ５１０において、制御装置３２１は、処理待ちの映像データがあるか判断する。処理待ちの映像データは、具体的には、映像バッファ４３０に記憶された変換処理の実行前の映像データである。制御装置３２１は、処理待ちの映像データがない場合（ステップ５１０：ＮＯ）、ステップ５１０の判断を繰り返す。一方、制御装置３２１は、処理待ちの映像データがある場合（ステップ５１０：ＹＥＳ）、ステップ５２０を実行する。
【００４８】
ステップ５２０において、制御装置３２１は、使用可能なＰＥ３２２を特定する。ＰＥ３２２２〜３２２Ｍは、例えば、各々の使用率を制御装置３２１に通知する。この例において、制御装置３２１は、使用可能なＰＥ３２２を各々の使用率に基づいて特定する。
【００４９】
ステップ５３０において、制御装置３２１は、使用可能なＰＥ３２２の数（ｍ）と並列数（ｎ）とを比較する。なお、並列数は、映像データの種類に応じて異なる場合がある。制御装置３２１は、例えば、映像データの符号化方式や、映像データに対応するＭＸＦファイルに含まれているメタデータに基づいて並列数を特定してもよい。
【００５０】
ｍ≧ｎの場合（ステップ５３０：ＹＥＳ）、制御装置３２１は、ステップ５４０を実行する。ステップ５４０において、制御装置３２１は、使用可能なｍ個のＰＥ３２２のうちｎ個のＰＥ３２２に、処理待ちの映像データに対応する変換スレッドを実行させる。例えば、制御装置３２１は、使用可能なｍ個のＰＥ３２２から、識別番号が小さい順にｎ個のＰＥ３２２を選択し、選択されたＰＥ３２２に変換スレッドの実行を命令する。
【００５１】
一方、ｍ＜ｎの場合（ステップ５３０）、制御装置３２１は、ステップ５５０を実行する。ステップ５５０において、制御装置３２１は、時分割処理を実行させるＰＥ３２２を決定する。例えば、制御装置３２１は、使用可能なｍ個のＰＥ３２２から、識別番号が最も小さいＰＥ３２２（又は識別番号が小さい複数個のＰＥ３２２）に時分割処理を実行させる。
【００５２】
例えば、ｎ−ｍ＞ｍを満たす場合、制御装置３２１は、ｎ−ｍ個のＰＥ３２２に時分割処理を実行させてもよい。一方、ｎ−ｍ≦ｍを満たす場合、制御装置３２１は、ｍ個のＰＥ３２２に時分割処理を実行させてもよい。あるいは、使用可能なＰＥ３２２の数がある閾値未満である場合、制御装置３２１は、使用可能なＰＥ３２２の数が当該閾値以上になるまで変換スレッドの実行を待機してもよい。
【００５３】
ステップ５６０において、制御装置３２１は、使用可能なｍ個のＰＥ３２２に、処理待ちの映像データに対応する変換スレッドを実行させる。制御装置３２１は、ｍ個の使用可能なＰＥ３２２のうち、ステップ５５０において決定されたＰＥ３２２に時分割処理を実行させることにより、並列数ｎの変換スレッドをｎより少ない数のＰＥ３２２を用いて実行することができる。
【００５４】
制御装置３２１は、ステップ５４０又は５６０の後、ステップ５７０を実行する。ステップ５７０において、制御装置３２１は、処理を終了すべき条件（以下「終了条件」という。）が満たされたか判断する。終了条件が満たされるのは、例えば、処理待ちの映像データが存在しない場合や、ユーザによって処理の終了が指示された場合である。このような場合（ステップ５７０：ＹＥＳ）、制御装置３２１は、変換スレッドの割り当てを終了する。
【００５５】
一方、終了条件が満たされていない場合（ステップ５７０：ＮＯ）、制御装置３２１は、ステップ５１０を再び実行する。すなわち、制御装置３２１は、この場合、終了条件が満たされるまで、ステップ５１０〜５７０の処理を繰り返し実行する。
【００５６】
図６及び図７は、本実施形態における変換スレッドの実行手順の一例を示す模式図である。これらの例において、並列数（ｎ）は、説明を簡単にするために「３」であるとする。実際の並列数は、これより多くてもよい。図６は、使用可能なＰＥ３２２の数（ｍ）が「３」以上であり、ＰＥ３２２１、ＰＥ３２２２及びＰＥ３２２３が使用可能である場合の例である。一方、図７は、使用可能なＰＥ３２２の数（ｍ）が「２」であり、ＰＥ３２２１及びＰＥ３２２２が使用可能である場合の例である。なお、変換スレッドの実行に要する時間（すなわち各スレッドの横方向の長さ）は、フレーム毎に異なり得る。
【００５７】
図６の例において、制御装置３２１は、第１フレームの画像の変換スレッド６０１をＰＥ３２２１に実行させる。また、制御装置３２１は、第１フレームに続く第２フレームの画像の変換スレッド６０２をＰＥ３２２２に実行させ、第２フレームに続く第３フレームの画像の変換スレッド６０３をＰＥ３２２３に実行させる。制御装置３２１は、同様の要領で、第４、第７、第１０、第１３フレームの変換スレッド６０４、６０７、６１０、６１３をＰＥ３２２１に実行させる。また、制御装置３２１は、第５、第８、第１１、第１４フレームの変換スレッド６０５、６０８、６１１、６１４をＰＥ３２２２に、第６、第９、第１２、第１５フレームの画像の変換スレッド６０６、６０９、６１２、６１５をＰＥ３２２３に、それぞれ実行させる。
【００５８】
一方、図７の例において、制御装置３２１は、第１フレームの画像の変換スレッドと第２フレームの画像の変換スレッドとを時分割処理によってＰＥ３２２１に実行させる（７０１）。また、制御装置３２１は、第３フレームの画像の変換スレッド７０３をＰＥ３２２２に実行させる。
【００５９】
制御装置３２１は、第４フレーム以降の画像についても、ＰＥ３２２１には時分割処理によって変換スレッドを実行させる（７０４、７０７）。図７の例において、制御装置３２１は、図６の例においてＰＥ３２２１及びＰＥ３２２２に実行させるフレームの処理をＰＥ３２２１に実行させ、図６の例においてＰＥ３２２３に実行させるフレームの処理をＰＥ３２２２に実行させる（７０３、７０６、…、７１８）。
【００６０】
本実施形態の映像処理システム３００は、使用可能なＰＥ３２２の数（ｍ）が並列数（ｎ）より少ない場合に、使用可能なＰＥ３２２の少なくともいずれかに時分割処理を実行させる構成を有する。この構成は、使用可能なＰＥ３２２の数が並列数より少ない段階で変換スレッドの実行を開始させることを可能にする。
【００６１】
したがって、映像処理システム３００によれば、使用可能なＰＥ３２２の数が並列数以上になるまで変換スレッドの実行を待機する場合に比べ、使用可能なＰＥ３２２を空き状態のままにさせる時間を減らすことが可能である。映像処理システム３００によれば、例えば、処理が実行されるＭＸＦファイルが映像処理装置３２０に多数入力されるような場合に、入力されるファイル全体としての処理を効率的に実行することが可能である。
【００６２】
本実施形態において、時分割処理を伴う映像処理は、特定の映像データのみに着目すると、時分割処理を伴わない映像処理よりも時間を要する場合がある。しかし、映像処理装置３２０は、使用可能なＰＥ３２２が並列数に満たなくても変換スレッドの実行を開始することができる。そのため、映像処理装置３２０は、例えば多数の映像データが入力される場合に、全部の映像データに対する映像処理が終了するまでの所要時間を短縮することが可能である。
【００６３】
［第３実施形態］
映像処理システム３００は、他の実施形態によっても実施可能である。例えば、映像処理装置３２０は、変換スレッドをフレーム単位と異なる単位で実行することが可能である。いくつかの態様において、映像処理装置３２０は、映像データを構成するフレームのうちの所定の領域毎に変換スレッドを実行することが可能である。なお、本実施形態の映像処理システム３００の構成は、第２実施形態において説明された構成と同様でよい。
【００６４】
図８は、本実施形態における変換スレッドの実行単位を例示する図である。図８に示される例は、並列数が「３」である場合の例である。この例において、フレーム８００は、３つの領域、すなわち領域８１０、８２０、８３０に分割される。領域８１０、８２０、８３０は、例えば同一のサイズ、すなわちフレーム８００を等分割した領域であるが、必ずしも同一のサイズでなくてもよい。以下においては、このように分割された領域のそれぞれのことを「スライス」ともいう。制御装置３２１は、ＰＥ３２２に変換スレッドをスライス単位で実行させる。
【００６５】
図９及び図１０は、本実施形態における変換スレッドの実行手順の一例を示す図である。これらの例において、並列数（ｎ）は、第２実施形態の例（図６及び図７参照）と同様に「３」であるとする。図９は、使用可能なＰＥ３２２の数（ｍ）が「３」以上であり、ＰＥ３２２１、ＰＥ３２２２及びＰＥ３２２３が使用可能である場合の例である。一方、図１０は、使用可能なＰＥ３２２の数（ｍ）が「２」であり、ＰＥ３２２１及びＰＥ３２２２が使用可能である場合の例である。
【００６６】
図９の例において、制御装置３２１は、ＰＥ３２２１にスライス８１０の変換スレッド９１１、９２１、９３１、９４１、ＰＥ３２２２にスライス８２０の変換スレッド９１２、９２２、９３２、９４２、ＰＥ３２２３にスライス８３０の変換スレッド９１３、９２３、９３３、９４３をそれぞれ実行させる。本実施形態において、制御装置３２１は、第２実施形態と異なり、ＰＥ３２２１、ＰＥ３２２２及びＰＥ３２２３のそれぞれに各フレームの処理を実行させる。また、制御装置３２１は、ＰＥ３２２１、ＰＥ３２２２及びＰＥ３２２３のそれぞれに各フレームの一部の領域の処理を実行させる。例えば、ＰＥ３２２１は、第１フレーム、第２フレーム、第３フレームのいずれについてもスライス８１０の変換スレッドを実行する。
【００６７】
一方、図１０の例において、制御装置３２１は、ＰＥ３２２１にスライス８１０、８２０の変換スレッドを時分割処理により実行させる（１００１、１００２）。また、制御装置３２１は、ＰＥ３２２３にスライス８３０の変換スレッド１００３、１００４、１００５、１００６を実行させる。制御装置３２１は、いずれのフレームについても、ＰＥ３２２１及びＰＥ３２２２に同様の処理を実行させる。
【００６８】
本実施形態は、変換スレッドにより映像バッファ４３０から読み出される映像データの単位が第２実施形態と異なる。より詳細には、変換スレッドは、映像バッファ４３０に記憶された映像データをスライス単位で読み出し、読み出されたスライス毎の映像データに対して変換処理を実行する。
【００６９】
映像処理システム３００は、本実施形態と第２実施形態とで次のような作用効果の相違を生じる。例えば、本実施形態の動作は、ｎ（並列数）分の映像データが映像バッファ４３０に蓄積されるまで待機する必要がないため、第２実施形態の動作に比べ遅延（レイテンシ）が少ない。また、映像データがＨ．２６４規格のデータである場合、第２実施形態は、出力される映像データの全フレームがＩＤＲ（Instantaneous Decoder Refresh）フレーム（又はＩフレーム）であることを要する。これに対し、本実施形態は、出力される映像データの全フレームがＩＤＲである必要はない。
【００７０】
一方、第２実施形態の動作は、１つの変換スレッドにおいて１フレーム全体を参照することができるため、画面内予測を完全に（すなわち画面全体について）実行することが可能である。また、第２実施形態の動作は、画面の上部から順番に符号化することができるため、画面の上部の符号化難易度をその画面内でフィードバックすることが可能である。
【００７１】
［変形例］
本開示は、上述された第１実施形態〜第３実施形態に限定されない。本開示は、当業者が把握し得る変形又は応用を適用した形態を含み得る。例えば、本開示は、以下に記載される変形例を含む。また、本開示は、本明細書に記載された事項を必要に応じて適宜に組み合わせた形態を含み得る。例えば、特定の実施形態を用いて説明された事項は、矛盾を生じない範囲において、他の実施形態に対しても適用され得る。
【００７２】
（変形例１）
映像処理システム３００は、第２実施形態の処理と第３実施形態の処理とを選択的に実行するように構成されてもよい。例えば、映像処理装置２２０は、変換処理をフレーム毎又はスライス毎のいずれによって実行するかを、入力される映像データに基づいて決定してもよい。あるいは、映像処理装置２２０は、変換処理をフレーム毎又はスライス毎のいずれによって実行するかを、映像データに対応するメタデータに基づいて決定してもよい。これにより、映像処理装置２２０は、入力される映像データにより適した変換処理を実行することが可能である。
【００７３】
（変形例２）
本開示に係る各装置（処理制御装置１００、データ供給装置３１０、映像処理装置３２０及びデータ出力装置３３０）の具体的なハードウェア構成は、さまざまなバリエーションが含まれ、特定の構成に限定されない。例えば、各装置は、ソフトウェアを用いて実現されてもよく、複数のハードウェアを用いて各種処理を分担するように構成されてもよい。
【００７４】
図１１は、各装置を実現するコンピュータ装置１１００のハードウェア構成の一例を示すブロック図である。コンピュータ装置１１００は、ＣＰＵ（Central Processing Unit）１１０１と、ＲＯＭ（Read Only Memory）１１０２と、ＲＡＭ（Random Access Memory）１１０３と、記憶装置１１０４と、ドライブ装置１１０５と、通信インタフェース１１０６と、入出力インタフェース１１０７とを含んで構成される。本開示に係る各装置は、図１１に示される構成（又はその一部）によって実現され得る。
【００７５】
ＣＰＵ１１０１は、ＲＡＭ１１０３を用いてプログラム１１０８を実行する。プログラム１１０８は、ＲＯＭ１１０２に記憶されていてもよい。また、プログラム１１０８は、メモリカード等の記録媒体１１０９に記録され、ドライブ装置１１０５によって読み出されてもよいし、外部装置からネットワーク１１１０を介して送信されてもよい。通信インタフェース１１０６は、ネットワーク１１１０を介して外部装置とデータをやり取りする。入出力インタフェース１１０７は、周辺機器（入力装置、表示装置など）とデータをやり取りする。通信インタフェース１１０６及び入出力インタフェース１１０７は、データを取得又は出力するための構成要素として機能することができる。
【００７６】
なお、各装置の構成要素は、単一の回路（プロセッサ等）によって構成されてもよいし、複数の回路の組み合わせによって構成されてもよい。ここでいう回路（circuitry）は、専用又は汎用のいずれであってもよい。
【００７７】
上述された実施形態において単体の装置として説明された構成は、複数の装置に分散して設けられてもよい。例えば、処理制御装置１００又は映像処理装置３２０は、クラウドコンピューティング技術などを用いて、複数のコンピュータ装置によって実現されてもよい。
【符号の説明】
【００７８】
１００    処理制御装置
１１０    特定部
１２０    制御部
３００    映像処理システム
３１０    データ供給装置
３２０    映像処理装置
３２１    制御装置
３２２１〜３２２ｍ    ＰＥ
３３０    データ出力装置
１１００    コンピュータ装置
【図１】
2018011258.tif 000003
【図２】
2018011258.tif 000004
【図３】
2018011258.tif 000005
【図４】
2018011258.tif 000006
【図５】
2018011258.tif 000007
【図６】
2018011258.tif 000008
【図７】
2018011258.tif 000009
【図８】
2018011258.tif 000010
【図９】
2018011258.tif 000011
【図１０】
2018011258.tif 000012
【図１１】
2018011258.tif 000013