(57)【要約】メモリ帯域を効率的に利用する。メモリへのアクセスを行うストリーム処理装置は、それぞれへの入力ストリーム内のタイムスタンプを抽出し、前記タイムスタンプと基準時間との差に基づいて前記メモリへのアクセスについての優先度情報を求め、前記メモリへのアクセス要求と前記優先度情報とを出力し、アクセス許可が与えられると前記メモリへのアクセスを行う複数のストリーム処理部と、前記アクセス要求と前記優先度情報とに基づいて、前記複数のストリーム処理部のうち、最も優先度が高いストリーム処理部にアクセス許可を与え、その後、アクセス許可が与えられた前記ストリーム処理部の処理が終了すると処理が終了した前記ストリーム処理部の次に優先度が高いストリーム処理部にアクセス許可を与えることを繰り返すアクセス制御部とを有する。
2012157033.tif 000002
【特許請求の範囲】
【請求項１】
メモリへのアクセスを行うストリーム処理装置であって、
それぞれへの入力ストリーム内のタイムスタンプを抽出し、前記タイムスタンプと基準時間との差に基づいて前記メモリへのアクセスについての優先度情報を求め、前記メモリへのアクセス要求と前記優先度情報とを出力し、アクセス許可が与えられると前記メモリへのアクセスを行う複数のストリーム処理部と、
前記アクセス要求と前記優先度情報とに基づいて、前記複数のストリーム処理部のうち、最も優先度が高いストリーム処理部にアクセス許可を与え、その後、アクセス許可が与えられた前記ストリーム処理部の処理が終了すると処理が終了した前記ストリーム処理部の次に優先度が高いストリーム処理部にアクセス許可を与えることを繰り返すアクセス制御部とを備える
ストリーム処理装置。
【請求項２】
請求項１に記載のストリーム処理装置において、
前記アクセス制御部は、前記複数のストリーム処理部に対して、それぞれへの入力ストリームの処理に必要な、前記メモリへの転送帯域幅にも基づいて、アクセス許可を与える
ストリーム処理装置。
【請求項３】
請求項１に記載のストリーム処理装置において、
前記アクセス制御部は、入力されたオフセットに基づいて前記優先度情報を変更して用いる
ストリーム処理装置。
【請求項４】
請求項１に記載のストリーム処理装置において、
前記アクセス制御部は、アクセス許可が与えられていない前記ストリーム処理部に対して、アクセス許可が与えられていない期間においてクロックを停止することを指示するクロック制御信号を出力するクロック制御部を有し、
前記クロック制御信号によってクロックを停止することを指示された前記ストリーム処理部は、その内部で使用されているクロックの少なくとも一部を停止する
ストリーム処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数のストリームを処理するストリーム処理装置に関する。
【背景技術】
【０００２】
近年のデジタルＡＶ（audiovisual）機器の高機能化に伴い、同時に使用される機能やアプリケーションは増える一方である。このため、１つのシステムＬＳＩ（large-scale integration）で複数のストリームの同時処理を行うことが求められている。一方、機器のコストダウンをするために、メインメモリ等のハードウェア資源の削減が求められている。このため、デジタルＡＶ機器向けのシステムＬＳＩ開発においては、メインメモリの帯域不足により、ハードウェアの性能を十分に発揮できないことが問題となっている。そこで、必要となるメインメモリ帯域を抑えて設計することが重要になってきている。【０００３】
システムＬＳＩ内部には、メインメモリにアクセスするマスタが複数あり、システム起動時又は動作の切り替え時等に、各マスタに必要なメインメモリ帯域が設定され、各マスタはその帯域を用いて処理を実行する。この帯域の合計がメインメモリ帯域を越えなければ、システムは成立すると判断できる。この際、マスタからメインメモリへのアクセスを制御する必要がある。スレーブ装置へのアクセス優先順位の制御を行う装置の例が、特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１８６８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、システム起動時等にメインメモリ帯域を割り当てる方法は、受信したストリームの内容に応じた動的な帯域制御が不可能であるので、様々な種類のストリームを共通のハードウェア資源で処理するようなシステムには適さない。リアルタイムで処理する必要があるオーディオストリームやビデオストリームの他にも、少量の字幕データやメニューデータ等、ハードウェアに必要とされる性能が異なるストリームが多々ある。例えば、字幕データは、対応するビデオデータの少し前から少しずつ入力されるので、少しずつ処理が行われればよい。一方、メニューデータは、ユーザーオペレーションによりランダムに突如発生し、可能な限りの高速表示が求められる。また、このようなメニューデータの表示のためにハードウェア性能をより高くすることが要求される場合には、他の処理によってメインメモリへのアクセスの機会が奪われることも考慮すると、要求される以上にメインメモリ帯域を広くすることが必要である。【０００６】
本開示は、複数のストリームを処理する場合にメモリ帯域を効率的に利用することを目的とする。
【課題を解決するための手段】
【０００７】
本開示によるストリーム処理装置は、メモリへのアクセスを行うストリーム処理装置であって、それぞれへの入力ストリーム内のタイムスタンプを抽出し、前記タイムスタンプと基準時間との差に基づいて前記メモリへのアクセスについての優先度情報を求め、前記メモリへのアクセス要求と前記優先度情報とを出力し、アクセス許可が与えられると前記メモリへのアクセスを行う複数のストリーム処理部と、前記アクセス要求と前記優先度情報とに基づいて、前記複数のストリーム処理部のうち、最も優先度が高いストリーム処理部にアクセス許可を与え、その後、アクセス許可が与えられた前記ストリーム処理部の処理が終了すると処理が終了した前記ストリーム処理部の次に優先度が高いストリーム処理部にアクセス許可を与えることを繰り返すアクセス制御部とを有する。【０００８】
これによると、入力ストリームから抽出されたタイムスタンプに基づいてメモリへのアクセスについての優先度情報が求められ、この優先度情報に基づいて、最も優先度が高いストリーム処理部にアクセス許可が与えられる。アクセス許可が与えられたストリーム処理部の処理が終了すると、その次に優先度が高いストリーム処理部にアクセス許可を与えられるので、優先度が高い順にストリーム処理の結果が得られる。
【発明の効果】
【０００９】
本開示によれば、入力ストリーム内のタイムスタンプを用いてメモリへのアクセスを制御するので、複数のストリームを処理する場合にメモリ帯域を効率的に利用することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施形態に係るストリーム処理装置の構成例を示すブロック図である。
【図２】図２は、従来のストリーム処理装置によるメインメモリへの転送の例を示すタイミングチャートである。
【図３】図３は、図１のストリーム処理装置によるメインメモリへの転送の例を示すタイミングチャートである。
【図４】図４は、図１のストリーム処理装置の変形例の構成を示すブロック図である。
【図５】図５は、図４のストリーム処理装置によるメインメモリへの転送の例を示すタイミングチャートである。
【図６】図６は、図１のストリーム処理装置の他の変形例の構成を示すブロック図である。
【図７】図７は、図１のストリーム処理装置の更に他の変形例の構成を示すブロック図である。
【図８】図８は、図７のストリーム処理装置によるクロックの制御の例を示すタイミングチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を参照しながら説明する。図面において下２桁が同じ参照番号で示された構成要素は、互いに対応しており、同一の又は類似の構成要素である。
【００１２】
図１は、本発明の実施形態に係るストリーム処理装置の構成例を示すブロック図である。図１のストリーム処理装置１００は、ストリーム処理部１２，１４，１６，及び１８と、アクセス制御部３０とを有する。ストリーム処理部１２，１４，１６，及び１８は、優先度情報算出部２２，２４，２６，及び２８をそれぞれ有する。アクセス制御部３０は、アクセス調停器３２を有する。ストリーム処理部１２，１４，１６，及び１８には、ストリームＳＴ１，ＳＴ２，ＳＴ３，及びＳＴ４がそれぞれ入力されている。ストリーム処理部１２，１４，１６，及び１８は、メニューデコードＡ、字幕デコードＢ、メニューデコードＣ、及び字幕デコードＤをそれぞれ行う。
【００１３】
優先度情報算出部２２は、ストリームＳＴ１から、表示対象であるメニューについてのタイムスタンプの情報を抽出する。タイムスタンプは、例えばＰＴＳ（presentation time stamp）やＤＴＳ（decoding time stamp）である。優先度情報算出部２２は、抽出されたタイムスタンプと、基準時間ＲＴとの間の差を算出し、得られた差をメインメモリ４２へのアクセスの優先度として出力する。この際、優先度情報算出部２２は、例えば、抽出されたタイムスタンプから基準時間ＲＴを減算する。基準時間ＲＴは、例えばシステムタイムクロック（ＳＴＣ：system time clock）であって、ＣＰＵ（図示せず）から入力される。ストリーム処理部１２は、メインメモリ４２へのアクセス要求に、優先度情報算出部２２で求められた優先度を付加して、アクセス制御部３０に出力する。
【００１４】
同様に、優先度情報算出部２４及び２８は、それぞれストリームＳＴ２及びＳＴ４から、表示対象である字幕のタイムスタンプを取得する。優先度情報算出部２６は、ストリームＳＴ３から、表示対象であるメニューのタイムスタンプを取得する。優先度情報算出部２４，２６，及び２８は、それぞれで取得されたタイムスタンプと基準時間ＲＴとの間の差を算出し、得られた差をメインメモリ４２へのアクセスの優先度情報として出力する。優先度情報の値が小さいほど、優先度が高い。ストリーム処理部１４，１６，及び１８は、それぞれのメインメモリ４２へのアクセス要求に、優先度情報算出部２４，２６，及び２８で求められた優先度情報をそれぞれ付加して、アクセス制御部３０に出力する。
【００１５】
アクセス調停器３２は、ストリーム処理部１２，１４，１６，及び１８から出力された優先度情報に基づいて、アクセス許可を与えるべきストリーム処理部を判定する。具体的には、アクセス調停器３２は、例えば、優先度が最も高い（優先度情報の値が最も小さい）ストリーム処理部１２にアクセス許可を与えるべきであると判定し、そのストリーム処理部１２にアクセス許可を発行する。アクセス許可を受けたストリーム処理部１２は、メインメモリ４２へのアクセスを行う。
【００１６】
その後、アクセス許可が与えられたストリーム処理部１２の処理が終了すると、アクセス調停器３２は、処理が終了したストリーム処理部１２の次に優先度が高い（優先度情報の値が小さい）ストリーム処理部（例えばストリーム処理部１４）にアクセス許可を与える。アクセス許可を受けたストリーム処理部１４は、メインメモリ４２へのアクセスを行う。その後も、アクセス許可が与えられたストリーム処理部の処理が終了すると、アクセス調停器３２は、処理が終了したストリーム処理部の次に優先度が高い（優先度情報の値が小さい）ストリーム処理部にアクセス許可を与えることを繰り返す。
【００１７】
このように、アクセス調停器３２が優先度に基づいて判定をすることにより、優先すべきストリームを動的に判定し、複数のストリームを処理することが可能となる。
【００１８】
図２は、従来のストリーム処理装置によるメインメモリへの転送の例を示すタイミングチャートである。図３は、図１のストリーム処理装置１００によるメインメモリへの転送の例を示すタイミングチャートである。
【００１９】
図２及び図３では、ストリーム処理装置の全体からのアクセスをメインメモリ４２が受理するタイミングが、縦の破線で示されている。破線の間隔が、ストリーム処理装置の全体に割り当てられたメインメモリ帯域（メインメモリ４２への転送帯域幅）に対応している。メニューデコードＡのタイムスタンプ（ＴＳ）は、できるだけ早く行うべきであることを示している。この場合は、タイムスタンプが例えば基準時間ＲＴと同じであると見なす。また、字幕デコードＢ、メニューデコードＣ、及び字幕デコードＤのタイムスタンプが、図示されている。メニューデコードＡ、字幕デコードＢ、メニューデコードＣ、及び字幕デコードＤにおいては、メインメモリ４２への転送をそれぞれ３回、２回、３回、及び４回する必要がある。これらの点は、以下のタイミングチャートにおいても同様である。
【００２０】
図２では、調停方式の一例として、ラウンドロビン方式を用いている。この場合、最も早く処理を終える必要があるメニューデコードＡのための転送が、字幕デコードＢのための転送より遅く完了する。つまり、ラウンドロビン方式のようなＤＭＡ（direct memory access）における典型的な調停によると、タイムスタンプで示された完了要望時間と実際の完了時間との間の関係が、合理的になるとは限らない。これに対して、図３の場合は、メニューデコードＡのための転送が最初に完了するので、完了要望時間と実際の完了時間との間の関係が合理的になる。したがって、図１のストリーム処理装置１００によると、利用可能なメインメモリ帯域がより狭くても、所定の性能を実現することができる。
【００２１】
図４は、図１のストリーム処理装置１００の変形例の構成を示すブロック図である。図４のストリーム処理装置２００は、アクセス制御部３０に代えてアクセス制御部２３０を有する点の他は、ストリーム処理装置１００と同様に構成されている。アクセス制御部２３０は、アクセス調停器２３２と、レート設定部２３４とを有する。
【００２２】
レート設定部２３４には、ストリーム処理部１２，１４，１６，及び１８のそれぞれに対しての、メインメモリ４２の帯域幅ＢＷが、例えばＣＰＵから入力される。帯域幅ＢＷは、ストリーム処理部１２，１４，１６，及び１８のそれぞれに入力されるストリームの処理に必要な帯域幅である。レート設定部２３４は、入力された帯域幅ＢＷをアクセス調停器２３２に出力する。アクセス調停器２３２は、ストリーム処理部１２，１４，１６，及び１８から出力された優先度情報だけではなく、レート設定部２３４から出力された帯域幅にも基づいて、アクセス許可を与える。
【００２３】
図５は、図４のストリーム処理装置２００によるメインメモリへの転送の例を示すタイミングチャートである。具体的には、アクセス調停器２３２は、図５の破線毎に転送しなくてもレート設定部２３４から出力された帯域幅を満たすことができる場合には、アクセスの頻度を平準化する。アクセス調停器２３２は、例えば図５の字幕デコードＤのように、図５の破線の２回毎、又は３回毎に１回、ストリーム処理部１８にアクセス許可を与える。
【００２４】
複数のストリーム処理の競合時に、図３では、字幕デコードＤについての転送の完了まで、メインメモリへのアクセスが連続している。これに対して、図５では、各ストリーム処理に要求されている完了時間の条件を満たしつつ、メインメモリへのアクセスを発行しないタイミングを設けている。このように、ストリーム処理装置２００によると、ストリーム処理部１２，１４，１６，及び１８が転送をしないタイミングにおいて、ＣＰＵ等の他の回路等からメインメモリ４２へのアクセスが可能となるので、システム全体の性能を向上させることができる。
【００２５】
図６は、図１のストリーム処理装置１００の他の変形例の構成を示すブロック図である。図６のストリーム処理装置３００は、アクセス制御部３０に代えてアクセス制御部３３０を有する点の他は、ストリーム処理装置１００と同様に構成されている。アクセス制御部３３０は、アクセス調停器３３２と、オフセット設定部３３４とを有する。
【００２６】
オフセット設定部３３４には、ストリーム処理部１２，１４，１６，及び１８のそれぞれに対しての、優先度についてのオフセットＦＳが、例えばＣＰＵから入力される。オフセット設定部３３４は、入力されたオフセットＦＳをアクセス調停器３３２に出力する。アクセス調停器３３２は、ストリーム処理部１２，１４，１６，及び１８から出力された優先度情報だけではなく、オフセット設定部３３４から出力されたオフセットにも基づいて、アクセス許可を与える。この際、アクセス調停器３３２は、オフセット設定部３３４に入力されたオフセットＦＳに基づいて優先度情報を変更して用いる。具体的には例えば、アクセス調停器３３２は、ストリーム処理部１２，１４，１６，又は１８の優先度情報にオフセットＦＳを加算して用いる。ストリーム処理装置３００によると、後段のＣＰＵや描画エンジン等の動作特性に応じて、ストリーム毎に優先度の調整が可能となる。
【００２７】
図７は、図１のストリーム処理装置１００の更に他の変形例の構成を示すブロック図である。図７のストリーム処理装置４００は、ストリーム処理部１２，１４，１６，及び１８に代えてストリーム処理部４１２，４１４，４１６，及び４１８を有し、アクセス制御部３０に代えてアクセス制御部４３０を有する点の他は、ストリーム処理装置１００と同様に構成されている。アクセス制御部４３０は、アクセス調停器４３２と、クロック制御部４３４とを有する。
【００２８】
ストリーム処理部４１２，４１４，４１６，及び４１８は、それぞれに入力されるクロック制御信号ＣＣ１，ＣＣ２，ＣＣ３，及びＣＣ４に基づいて、それぞれの内部でクロックゲーティング制御を行う。その他の点は、図１のストリーム処理部１２，１４，１６，及び１８と同様である。アクセス調停器４３２は、ストリーム処理部４１２，４１４，４１６，及び４１８のうちのいずれにアクセス許可を与えているかをクロック制御部４３４に通知する。アクセス調停器４３２は、その他の点は、図１のアクセス調停器３２と同様である。
【００２９】
クロック制御部４３４は、ストリーム処理部４１２，４１４，４１６，及び４１８のうち、アクセス許可が与えられていないものに対して、アクセス許可が与えられていない期間においてクロックを停止することを指示するクロック制御信号ＣＣ１，ＣＣ２，ＣＣ３，又はＣＣ４を出力する。クロック制御信号ＣＣ１，ＣＣ２，ＣＣ３，又はＣＣ４によってクロックを停止することを指示されたストリーム処理部４１２，４１４，４１６，又は４１８は、その内部で使用されているクロックの少なくとも一部を停止する。これにより、アクセス許可が与えられないストリーム処理部に対しての動的なクロックゲーティング制御を行い、消費電力を削減することができる。図４又は図６のストリーム処理装置２００又は３００がクロック制御部４３４を有し、同様にクロックの制御をするようにしてもよい。
【００３０】
図８は、図７のストリーム処理装置４００によるクロックの制御の例を示すタイミングチャートである。各ストリーム処理部には、アクセス許可が与えられてデコード処理を開始してから、転送が完了するまでクロックが供給されることになる。図２の場合より、図８の場合の方が、クロックが与えられる期間が短く、消費電力をより削減することができることがわかる。１つの処理についての転送が終了するまでは、その処理に関するストリーム処理部のクロックを停止することはできないからである。
【００３１】
以上の実施形態では、ストリーム処理装置が４個のストリーム処理部を有する場合について説明したが、ストリーム処理部の個数はこれには限らない。各ストリーム処理部は、ビデオストリームやオーディオストリームを処理するものであってもよい。また、メインメモリに代えて他のメモリへのアクセスを同様に制御してもよい。
【００３２】
本明細書における各機能ブロックは、典型的にはハードウェアで実現され得る。例えば各機能ブロックは、ＩＣ（集積回路）の一部として半導体基板上に形成され得る。ここでＩＣは、ＬＳＩ（large-scale integrated circuit）、ＡＳＩＣ（application-specific integrated circuit）、ゲートアレイ、ＦＰＧＡ（field programmable gate array）等を含む。代替としては各機能ブロックの一部又は全ては、ソフトウェアで実現され得る。例えばそのような機能ブロックは、プロセッサ及びプロセッサ上で実行されるプログラムによって実現され得る。換言すれば、本明細書で説明される各機能ブロックは、ハードウェアで実現されてもよいし、ソフトウェアで実現されてもよいし、ハードウェアとソフトウェアとの任意の組合せで実現され得る。
【００３３】
本発明の多くの特徴及び優位性は、記載された説明から明らかであり、よって添付の特許請求の範囲によって、本発明のそのような特徴及び優位性の全てをカバーすることが意図される。更に、多くの変更及び改変が当業者には容易に可能であるので、本発明は、図示され記載されたものと全く同じ構成及び動作に限定されるべきではない。したがって、全ての適切な改変物及び等価物は本発明の範囲に入るものとされる。
【産業上の利用可能性】
【００３４】
以上説明したように、本開示によれば、複数のストリームを処理する場合にメモリ帯域を効率的に利用することができるので、本発明は、ストリーム処理装置等について有用である。
【符号の説明】
【００３５】
１２，１４，１６，１８，４１２，４１４，４１６，４１８  ストリーム処理部
３０，２３０，３３０，４３０  アクセス制御部
４２  メインメモリ（メモリ）
１００，２００，３００，４００  ストリーム処理装置
４３４  クロック制御部
【図１】
2012157033.tif 000003
【図２】
2012157033.tif 000004
【図３】
2012157033.tif 000005
【図４】
2012157033.tif 000006
【図５】
2012157033.tif 000007
【図６】
2012157033.tif 000008
【図７】
2012157033.tif 000009
【図８】
2012157033.tif 000010
【国際調査報告】
2012157033.tif 000011
2012157033.tif 000012
2012157033.tif 000013
2012157033.tif 000014