以下に、本発明を実施するための形態について図面を参照して説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態の画像表示システムの構成の一例を示すブロック図である。また、図2は、図1に示す画像処理プロセッサ230およびその周辺部の構成を示すブロック図である。
図1および図2に示す画像表示システムは、映像メディア10と、映像ソース装置100と、映像ソース装置100と有線または無線のデータ伝送媒体20を介して接続された画像表示装置200と、を有する。
なお、映像ソース装置100は、再生装置の一例である。
映像ソース装置100は、映像メディア10から動画像などのエンコード済みのコンテンツデータを取得し、データ伝送媒体20を介して画像表示装置200に伝送する。
画像表示装置200は、映像ソース装置100から伝送されてきたエンコード済みのコンテンツデータをデコードしてコンテンツを表示するとともに、音声を出力する。
次に、映像ソース装置100の構成について説明する。
映像ソース装置100は、再生制御部110と、伝送出力部120とを有する。
再生制御部110は、ユーザなどにより指定されたエンコード済みのコンテンツデータを映像メディア10から取得する。
伝送出力部120は、再生制御部110により取得されたエンコード済みのコンテンツデータを、データ伝送媒体20を介して画像表示装置200に伝送する。
次に、画像表示装置200の構成について説明する。
画像表示装置200は、伝送入力部210と、マスタプロセッサ220と、画像処理プロセッサ230と、タイミングコントローラ240と、表示パネル250と、ソースドライバ群260と、ゲートドライバ270とを有する。
なお、マスタプロセッサ220は、入力部の一例である。
伝送入力部210は、映像ソース装置100から伝送されてきたエンコード済みのコンテンツデータを受信し、マスタプロセッサ220に出力する。
マスタプロセッサ220は、伝送入力部210から出力されたエンコード済みのコンテンツデータを表示データと音声データとに分離し、このうちのエンコード済みの表示データを分割して、画像処理プロセッサ230に入力する。
なお、本発明は、画像の表示に特徴があるため、エンコード済みの音声データの処理については説明を省略する。
画像処理プロセッサ230は、マスタプロセッサ220から入力されたエンコード済みの表示データをデコードして格納する。
なお、エンコード済みの表示データのデコードや表示データの格納は、画像処理プロセッサ230内の、「コア」と称される単位プロセッサ要素により行われる。
次に、画像処理プロセッサ230の内部構成について説明する。
図2に示すように、画像処理プロセッサ230は、表示パネル250の画像表示領域の全部または一部を行方向にH個、列方向にV個に分割して得られるH×V個の領域に対応して設けられたH×V個のコア231により構成される。
なお、これらH×V個のコア231は、表示パネル250のH×V個の各領域と同じ接続関係をもって配置される。
また、各領域には1以上の表示画素が含まれる。
また、以下では、各コア231を特定して指示するために、画像処理プロセッサ230の中でコア231が配置された行方向および列方向の位置を順にカンマで区切って表記した「コア(x,y)」という表記を用いる。なお、xは1以上H以下の整数であり、yは1以上V以下の整数である。
従って、二次元配置されたコア231のうち、左上隅のコア231は、「コア(1,1)」と表記され、右下隅のコア231は、「コア(H,V)」と表記される。
画像処理プロセッサ230内の各コア231は、それぞれ上下左右の隣接コアとデータ通信線により接続される。ただし、左端列のコア(コア(1,1)〜コア(1,V))は、その左側には隣接コアを有さず、同様に、右端列のコア(コア(H,1)〜コア(H,V))は、その右側に隣接コアを有さない。
また、上端行のコア(コア(1,1)〜コア(H,1))は、マスタプロセッサ220とデータ通信線により接続され、下端行のコア(コア(1,V)〜コア(H,V))は、タイミングコントローラ240とデータ通信線により接続される。
タイミングコントローラ240は、画像処理プロセッサ230のコア231に格納された表示データを読み出し、読み出した表示データをソースドライバ群260に転送する。
また、タイミングコントローラ240は、ゲートドライバ270に対し、表示パネル250を構成する表示画素を1行分ずつ駆動するように指示する。
次に、タイミングコントローラ240の内部構成について説明する。
タイミングコントローラ240は、n個の表示データ転送部241−1〜241−nと、表示行カウンタ242と、を有する。なお、nとHとは、n≦Hの関係を有する。
表示データ転送部241−1〜241−nはそれぞれ、後述するn個のソースドライバ261−1〜261−nとデータ通信線により1対1で接続されている。よって、表示データ転送部241とソースドライバ261との組が、n組形成されている。
そして、表示データ転送部241−1〜241−nは、1または複数の列のコアに格納された表示データを取得し、取得した表示データを接続されたソースドライバ261−1〜261−nに転送する。
表示行カウンタ242は、表示パネル250の表示を行う表示行を示すカウント値を出力する。
なお、表示データ転送部241−1〜241−nによる表示データの読み出しと、ソースドライバ群260への転送の詳細については後述する。
表示パネル250は、マトリクス状に配置された表示画素の集合である。
ソースドライバ群260は、n個のソースドライバ261−1〜261−nにより構成され、表示パネル250の周囲に、行方向に沿って配置されている。
ソースドライバ261−1〜261−nは、それぞれ接続された表示データ転送部241−1〜241−nから転送されてきた表示データを表示パネル250の表示画素に供給する。
ゲートドライバ270は、表示パネル250の周囲に、列方向に沿って配置され、表示パネル250を構成する表示画素を、表示パネル250の上端行から順次、1行分ずつ駆動する。
次に、画像処理プロセッサ230の各コア231がデコードを担当する領域について説明する。
図3は、各コア231がデコードを担当する画像表示領域を示す図である。
上述したように、コア231は、表示パネル250の画像表示領域251を行方向にH個、列方向にV個の矩形領域に分割して得られるH×V個の領域に対応し、そのH×V個の領域と同じ接続関係を有して設けられている。
そして、図3に示すように、各コア231は、その対応する領域に配置された表示画素に表示する表示データのデコードを担当する。
すなわち、H×V個の各領域を「領域(x,y)」と表記すると、コア(x,y)は、領域(x,y)に配置された表示画素に表示する表示データのデコードを担当する。
ここで、「領域(x,y)」のx,yはそれぞれ、画像表示領域251内での行方向および列方向の位置を示し、領域(1,1)が画像表示領域251の左上隅の領域に、領域(H,V)が画像表示領域251の右下隅の領域に対応する。
なお、画像が、表示パネル250の全部に表示される場合には、画像表示領域251は、表示パネル250の全体に対応し、表示パネル250の一部に表示される場合には、画像表示領域251は、その画像が表示される表示パネル250の一部に対応する。
次に、コア231の構成とコア231間の接続とについて説明する。
図4は、コア231の構成とコア間の接続とを示すブロック図である。
図4に示すように、コア231は、プロセシングエレメント(PE)232と、ローカルメモリ(LM)233と、ルータ234と、を有する。
以下の説明では、コア(i,j)に含まれるPE232,LM233,ルータ234をそれぞれ、PE(i,j),LM(i,j),ルータ(i,j)と表記する。
なお、iは2以上H−1以下の整数であり、jは2以上V−1以下の整数である。
PE(i,j)とLM(i,j)とルータ(i,j)とは、コア(i,j)内部でのみ相互接続されており、コア間はルータ(i,j)を介してのみ接続される。
なお、コア(i,j)以外のコアではPE232とLM233の記載を省略したが、全てのコアがコア(i,j)と同じ構成である。
PE(i,j)は、マスタプロセッサ220から入力された分割されたエンコード済みの表示データをデコードする。
LM(i,j)は、PE(i,j)によりデコードされた表示データを格納する。
ルータ(i,j)は、隣接コアやマスタプロセッサ220、タイミングコントローラ240との間でのデータ転送を制御する。
次に、本実施形態の画像表示システムの動作について説明する。
まず、ユーザによりコンテンツが指定されると、再生制御部110は、指定されたコンテンツを含む映像メディア10およびその映像メディア10内のエンコード済みコンテンツデータを特定し、特定したエンコード済みコンテンツデータを取得する。
なお、映像メディア10の具体例としては、DVDメディア、HDD、地上デジタル放送受信装置、ビデオオンデマンド(VOD)受信装置などがある。
また、コンテンツデータの具体例としては、MPEG2方式でエンコードされた映画や、送受信または録画された放送番組のデータなどがある。
伝送出力部120は、再生制御部110が取得したエンコード済みのコンテンツデータをデコードすることなく、そのままデータ伝送媒体20を介して画像表示装置200に伝送する。
伝送入力部210は、映像ソース装置100から伝送されてきたエンコード済みのコンテンツデータを受信する。
ここで、コンテンツデータは、エンコードにより圧縮されていて比較的データ量が少ないため、データ伝送媒体20としては、一般的な通信手段であるUSB(Universal Serial Bus)やイーサネット(登録商標)、無線LAN(Local Area Network)などを利用することができる。
なお、映像ソース装置100および画像表示装置200には、利用するデータ伝送媒体20に応じた伝送出力部120と伝送入力部210とを設ける必要がある。例えば、データ伝送媒体20としてイーサネットを利用する場合には、伝送出力部120と伝送入力部210とには、イーサネットアダプター(ネットワークインターフェースとも称される)を用いる必要がある。
マスタプロセッサ220は、伝送入力部210により受信されたコンテンツデータのフォーマットを解析し、音声データと表示データとをデマルチプレクス(分離)する。なお、エンコード済みの音声データの処理については説明を省略する。
そしてマスタプロセッサ220は、エンコード済みの表示データを抽出し、抽出したエンコード済みの表示データを分割する。
ここで一般に、表示データをエンコードする場合、ある時刻における表示画像である1フレームを複数の矩形領域(ブロック)に区切り、各ブロックに表示される画像の表示データごとにエンコードが行われ、各ブロックのエンコード済みの表示データが、所定のフォーマット(データ形式)に従って直線状のデータ列に並べられる。
例えば、MPEG2のエンコード方式とフォーマットとを規定するISO/IEC 13818では、1フレーム(MPEG2では、1ピクチャーと称される)は、列方向に積み重ねられたスライスと称される矩形領域の集合であり、1スライスは、行方向に並べられたマクロブロックと称される矩形領域の集合である。MPEG2のマクロブロックは、16ドット×16ドットの正方形領域に対応する。
フレームは、複数フレームごとにGOP(Group of Picture)と称される単位にグループ化され、別途エンコードされた音声データとマルチプレクス(多重化)されたコンテンツデータである「MPEG2ストリーム」として蓄積あるいは伝送される。
従って、マスタプロセッサ220は、エンコード済みの表示データをブロック単位で分割する。以下では、マスタプロセッサ220が分割したエンコード済みの表示データをブロックデータと称する。
次に、マスタプロセッサ220は、ブロックデータをデコードする転送先コアを決定する。
なお、転送先コアの決定は、以下のように行われる。
まず、マスタプロセッサ220は、ブロックデータに対応するブロックのフレーム内での位置から、そのブロックが図3に示す画像表示領域251のどの領域(x,y)に含まれるかを求め、その領域(x,y)に対応するコア(x,y)を転送先コアとして決定する。
また、マスタプロセッサ220は、ブロックデータに対応するブロックが、図3に示す画像表示領域251の複数の領域にまたがる場合は、そのブロックと交わる部分の面積が最大となる領域に対応するコアを、転送先コアとして決定する。なお、そのブロックと交わる部分の面積が、複数の領域で等しく、かつ、そのブロックと他の領域とが交わる面積よりも大きい場合は、マスタプロセッサ220は、そのうちの任意の1つの領域に対応するコアを、転送先コアとして決定する。
そして、マスタプロセッサ220は、転送先コアにブロックデータを入力する。
転送先コアがコア(x,y)である場合、マスタプロセッサ220は、まずコア(x,1)にデータ通信線を介してブロックデータを入力する。そして、コア(x,1)は、入力されたブロックデータを下方向の隣接コア(x,2)にデータ通信線を介して転送する。以下、同様にして、転送先コア(x,y)まで、ブロックデータの転送が行われ、最終的に転送先コア(x,y)がそのブロックデータを取り込む。
ここで、マスタプロセッサ220が、各コアにブロックデータを入力するタイミングについて説明する。
マスタプロセッサ220は、コンテンツデータを時間的に連続するデータ列として受信するが、そのデータ列の末尾(例えば、1フレームの終わり)の受信を待つことなく、上述したフォーマットの解析と、エンコード済みの表示データのブロックデータへの分割を進め、ブロックデータを転送先コアに入力していく。
一般に、表示データのエンコードは、表示画像の左上隅のブロックから始まり、行方向に右へ進み、次に1行下りて次行の左から右へと、右下隅のブロックまでジグザグ状の順序で行われ、マスタプロセッサ220が受信するコンテンツデータは、エンコードが行われた順序に沿って各ブロックのブロックデータを連ねた形式をとる。
そのため、マスタプロセッサ220は、コンテンツデータの受信後、時間が進むに連れて、コア(1,1)からコア(H,1)、コア(1,2)からコア(H,2)、・・・コア(1,V)からコア(H,V)へと、ジグザグ状にブロックデータを入力するコア231を変える。
次に、コア231の動作について説明する。
コア(i,j)のルータ(i,j)は、上方向の隣接コア(i,j−1)のルータ(i,j−1)あるいはマスタプロセッサ220からブロックデータを受信する。
ルータ(i,j)は、受信したブロックデータが、コア(i,j)に当てたものでない場合には、そのブロックデータを下方向の隣接コア(i,j+1)に出力し、コア(i,j)に当てたものである場合には、そのブロックデータをLM(i,j)に格納し、PE(i,j)にブロックデータの到着を通知する。
PE(i,j)は、ルータ(i,j)からの通知を受けると、LM(i,j)に格納されたブロックデータをデコードする。
ここで、エンコード方式によっては、あるブロックデータをデコードする際に、そのブロックデータに対応するブロックの周辺のブロックのブロックデータのデコード結果を参照する必要が生じることがある。
その場合、PE(i,j)は、ルータ(i,j)を介して、コア(i,j)の周辺のコアにデータ要求を行う。データ要求を受けたコアは、要求されたデータをLMから読み出し、ルータを介してデータ要求を行ったコア(i,j)に送信する。
また、エンコード方式によっては、あるブロックデータをデコードする際に、過去のブロックデータのデコード結果を参照する必要が生じることがある。そのため、LM(i,j)は、コア(i,j)でブロックデータをデコードするブロックの、過去のブロックデータのデコード結果を格納する容量を持っており、PE(i,j)は、必要に応じて、LM(i,j)に格納された過去のデコード結果を参照する。
このように、PE(i,j)は、コア(i,j)の周辺のコアのデータや過去のデコード結果を必要に応じて参照しつつ、ブロックデータをデコードし、その結果を表示データとしてLM(i,j)に格納する。なお、デコード結果をLM(i,j)に格納する際に、エンコード方式の規定からもはや参照される可能性が無くなった過去のデコード結果があれば、PE(i,j)はそのデコード結果をLMから消去する。
また、ルータ(i,j)は、表示データ転送部241−1〜241−nから表示データの読み出しを要求する出力要求があると、LM(i,j)に格納する表示データを下方向の隣接コア(i,j+1)のルータ(i,j+1)に出力する。
各コアのルータは、上方向の隣接コアのルータから受信した表示データを下方向の隣接コアのルータに出力し、最終的に下端行のコア(i,V)のルータ(i,V)が、出力要求を行った表示データ転送部241−1〜241−nに表示データを出力する。
次に、画像処理プロセッサ230から表示パネル250への表示データの転送の流れについて説明する。
図5は、画像処理プロセッサ230から表示パネル250への表示データの転送の流れを示す図である。
上述したように、タイミングコントローラ240は、n個の表示データ転送部241−1〜241−nを有し、ソースドライバ群260は、n個のソースドライバ261−1〜261−nを有する。
ここで、m番目の表示データ転送部241−m(mは1以上n以下の整数)は、表示パネル250を左端から右端方向へn本の縦長矩形領域に均等分割した領域250−1〜250−nのうち、左からm番目の領域250−mに配置された表示画素に表示される表示データを、ソースドライバ261−mに転送する。
なお、表示パネル250の行方向への領域の分割数nと、図3に示す画像表示領域251の行方向への領域の分割数Hとは、必ずしも一致していない。
表示データ転送部241−mは、領域250−mに配置された表示画素に表示される表示データを格納しているコア231の列番号であるコア列番号を求める。コア列番号は、図3に示す画像表示領域251とコア231との対応関係から予め求めることができる。
なお、領域250−mに対応するコアの列が複数存在することもある。
以下では、領域250−mに対応するコア列番号がxmおよびxm+1であるとする。
そして、表示データ転送部241−mは、コア列番号がxmおよびxm+1であるコアのLMに格納された表示データを取得し、ソースドライバ261−mに転送する。
ソースドライバ261−mは、表示データ転送部241−mから転送されてきた表示データを表示パネル250の領域250−mに配置された表示画素に供給する。
図6は、タイミングコントローラ240の動作の一例を示すフローチャートである。
まず、表示行カウンタ242は、表示パネル250の上端行を示すカウント値から下端行を示すカウント値まで、一定の時間間隔でカウント値rを増加させて出力する(ステップS101)。
表示行カウンタ242の出力が新たなカウント値rに変化すると、タイミングコントローラ240は、表示パネル250の行rを構成する表示画素を駆動するようにゲートドライバ270に指示を出力する(ステップS102)。
また、表示行カウンタ242の出力が新たなカウント値rに変化すると、表示データ転送部241−mは、カウント値rに対応する行rの表示データを格納しているコアの行番号であるコア行番号yrを求める(ステップS103)。
コア行番号yrは、図3に示す画像表示領域251とコアとの対応関係から求めることができ、カウント値rに対して、1つのコア行番号yrが求まる。
なお、簡略化のため、表示データ転送部241−mの動作のみを説明するが、表示データ転送部241−1〜241−nが並列的に同様の動作を行う。
表示データ転送部241−mは、領域250−mに対応する、コア列番号がxmおよびxm+1であり、コア行番号がyrであるコア(xm,yr)およびコア(xm+1,yr)に対して、表示パネル250の行rの表示データの出力要求を行う。
出力要求を受けたコア(xm,yr)およびコア(xm+1,yr)は、それぞれのLMに格納されている表示データを、ルータ(xm,yr)およびルータ(xm+1,yr)から表示データ転送部241−mに出力する。
表示データ転送部241−mは、コア(xm,yr)およびコア(xm+1,yr)から出力されてきた表示データを取得し(ステップS104)、取得した表示データから、領域250−mに対応する領域の表示データを切り出し、ソースドライバ261−mに転送する(ステップS105)。
なお、領域250−mに対応する領域以外の表示データは廃棄される。
ここで、表示データの切り出しを行う理由は、各コアがデコードする画像表示領域251の領域(図3)と、表示データ転送部241−mが表示データの転送を行う領域250−m(図5)とは、必ずしも1対1に対応するわけではないので、コア(xm,yr)およびコア(xm+1,yr)が、表示パネル250の領域250−m以外の領域に対する表示データも保持していることがあるためである。
上述したステップS102からS105の処理が行われることにより、ソースドライバ261−1〜261−nに対しては、表示パネル250の行rに対応する表示データを転送し、表示パネル250の行rを構成する表示画素に出力するように指示され、ゲートドライバ270に対しては、表示パネル250の行rを駆動するように指示されることで、表示パネル250の行rの表示が行われる。
表示行カウンタ242は、一定の時間間隔でカウント値rを更新し(ステップS106)、表示パネル250の上端行から下端行まで処理を繰り返す(ステップS107、ステップS108)。
表示パネル250全体の表示が終わると、表示行カウンタ242は、次のフレームを表示すべきタイミングまで待機した上で、再び、表示パネル250の上端行から処理を繰り返す(ステップS109)。
このように、画像処理プロセッサ230の各コア231のLM233に格納されている表示データが、連続的かつ並列的にソースドライバ261−1〜261−nに転送されることで、所望の画像が表示され続ける。
なお、本実施形態においては、行方向および列方向のコア数H,Vや、表示データ転送部241とソースドライバ261の数nは、これらのデバイスを実装できる範囲で任意の値とすることができる。
ただし、コア数H,Vは、図3の画像表示領域251の各矩形領域のサイズが、表示対象の画像の表示データのエンコード方式に規定されるブロックサイズの整数倍となるように設定するのが好適である。
その理由は、エンコード方式に規定されるブロックサイズに対応する領域が、図3の画像表示領域251の複数の矩形領域にまたがることがなくなるため、コア231で並列的にデコードする際の負荷分散の均等性が良くなるとともに、近接するコアへのデコード結果の参照を行う必要が減少するからである。
また、表示データ転送部241とソースドライバ261の数nは、Hの値に等しくするか、あるいは、Hがnの整数倍となるように設定するのが好適である。
その理由は、表示データ転送部241−1〜241−nが各コア231のLM233からソースドライバ261−1〜261−nに表示データを転送する際の表示データの切り出しで廃棄される表示データが無くなり、LM233へのメモリアクセス量を必要最小限に抑えることができることと、nの値を小さくすることでタイミングコントローラ240とソースドライバ群260との間の配線数を抑えることができるためである。
このように本実施形態によれば、画像表示装置200は、表示パネル250の画像表示領域251を縦横方向に分割して得られる複数の領域にそれぞれ対応する複数のコア231を設け、複数の領域にそれぞれ対応するエンコード済みの表示データを、その分割した領域に対応するコア231のPE232で並列的にデコードしてLM233に格納し、1行分の表示画素に表示する表示データのそれぞれを、その表示データを格納するコア231のLM233から並列的に読み出して、表示パネル250に転送する。
そのため、表示データのデコードや、表示データの転送が並列的に行われるので、デコードを行うPE232や、デコードや表示データの転送のためのデータの格納や読み出しを行うLM233が高速動作するのを回避し、画像表示システムにおいて高速動作する部分を減らすことができる。
また、映像ソース装置100と画像表示装置200との間では、エンコードされた表示データが伝送されるので、これらの間で伝送されるデータ量の増加を抑制することができる。
なお、本実施形態においては、複数のソースドライバ261−1〜261−nがそれぞれ、ゲートドライバ270が駆動する1行分の表示画素に表示データを供給する構成としたが、これに限られるものではなく、1つのソースドライバが、表示データ転送部241−1〜241−nから転送された表示データを、その1行分の表示画素に並列的に供給するように構成することも可能である。
(第2の実施形態)
図7は、本発明の第2の実施形態の画像表示システムの構成の一例を示すブロック図である。また、図8は、図7に示す画像処理プロセッサ310−1および310−2とその周辺部の構成を示すブロック図である。
図7および図8を参照すると、本実施形態の画像表示システムは、図1に示した第1の実施形態と比較して、画像表示装置200を画像表示装置300に変更した点が異なる。
画像表示装置300は、図1に示した画像表示装置200と比較して、画像処理プロセッサ230を画像処理プロセッサ310−1と310−2とに分けた点が大きく異なる。
また、これに伴い、画像処理プロセッサ310−1および310−2、マスタプロセッサ220、およびタイミングコントローラ240の位置関係が変更されており、画像処理プロセッサ310−1と310−2との間に、マスタプロセッサ220およびタイミングコントローラ240が配置されている。
本実施形態の画像表示システムは、その他の点については第1の実施形態と同様の構成であるので説明を省略する。
なお、以下では、画像処理プロセッサ310−1と310−2とを合わせて、画像処理プロセッサ310と称することがある。
画像処理プロセッサ310−1および310−2は、行方向にH個、列方向にV/2個の、H×V/2個のコアで構成され、これらのコアは第1の実施形態と同様に、上下左右の隣接コアとデータ通信線により接続される。
また、画像処理プロセッサ310−1の下端行のコア(コア(1,V/2)〜コア(H,V/2))と、画像処理プロセッサ310−2の上端行のコア(コア(1,V/2+1)〜コア(H,V/2+1))とは、それぞれ同じ列ごとにデータ通信線により接続される。
マスタプロセッサ220は、画像処理プロセッサ310−1の下端行のコア(コア(1,V/2)〜コア(H,V/2))および画像処理プロセッサ310−2の上端行のコア(コア(1,V/2+1)〜コア(H,V/2+1))と接続される。
また、タイミングコントローラ240は、画像処理プロセッサ310−1の下端行のコア(コア(1,V/2)〜コア(H,V/2))および画像処理プロセッサ310−2の上端行のコア(コア(1,V/2+1)〜コア(H,V/2+1))と接続される。
なお、第1の実施形態と異なり、画像処理プロセッサ310−1の上端行のコア(コア(1,1)〜コア(H,1))とマスタプロセッサ220とは接続されておらず、また、画像処理プロセッサ310−2の下端行のコア(コア(1,V)〜コア(H,V))とタイミングコントローラ240とは接続されていない。
また、タイミングコントローラ240と、ソースドライバ群260およびゲートドライバ270との接続は、第1の実施形態と同様である。
次に、画像表示装置300の動作について説明する。
なお、以下では、第1の実施形態と同様の動作については説明を省略する。
マスタプロセッサ220は、エンコード済みの表示データをブロックデータに分割し、そのブロックデータをデコードする転送先コアに入力する。
このとき、マスタプロセッサ220は、ブロックデータを、転送先コアが画像処理プロセッサ310−1に含まれる場合には、その画像処理プロセッサ310−1の下端行のコアに入力し、転送先コアが画像処理プロセッサ310−2に含まれる場合には、その画像処理プロセッサ310−2の上端行のコアに入力する。
マスタプロセッサ220から画像処理プロセッサ310−1の下端行のコアにブロックデータが入力されると、画像処理プロセッサ310−1の各コアのルータは、そのブロックデータを同じ列のコア間で転送先コアまで転送する。
また、マスタプロセッサ220から画像処理プロセッサ310−2の上端行のコアにブロックデータが入力されると、画像処理プロセッサ310−2の各コアのルータは、そのブロックデータを同じ列のコア間で転送先コアまで転送する。
転送先コアは、ブロックデータを取り込み、必要に応じ隣接コアのデータを参照して、そのブロックデータデコードして、表示データをLMに格納する。
そして、表示データ転送部241−1〜241−nから表示データの出力要求があると、出力要求を受けたコアは、LMに格納する表示データを出力する。
ここで、出力要求を受けたコアが画像処理プロセッサ310−1に存在している場合には、出力要求を受けたコアと同じ列のコアは、出力要求を受けたコアが出力した表示データを、画像処理プロセッサ310−1の下端行のコアまで転送する。
また、出力要求を受けたコアが画像処理プロセッサ310−2に存在している場合には、出力要求を受けたコアと同じ列のコアは、出力要求を受けたコアが出力した表示データを、画像処理プロセッサ310−2の上端行のコアまで転送する。
表示データ転送部241−1〜241−nは、画像処理プロセッサ310−1の下端行のコアまたは画像処理プロセッサ310−2の上端行のコアから表示データを取得し、取得した表示データをソースドライバ群260に転送する。
また、タイミングコントローラ240は、表示パネル250を構成する表示画素を1行分ずつ駆動するようにゲートドライバ270に指示を出力する。
このように本実施形態では、2つの画像処理プロセッサ310−1と310−2とを設け、画像処理プロセッサ310−1と310−2との間に、マスタプロセッサ220およびタイミングコントローラ240とを配置する構成とすることにより、第1の実施形態と比べて、マスタプロセッサ220から各コアへのブロックデータの入力、および各コアからソースドライバ261への表示データの転送においてデータ通信線を流れるデータ量を減らすことができる。
以下、マスタプロセッサ220から各コアへのブロックデータの入力、および各コアからソースドライバ261への表示データの転送においてデータ通信線を流れるデータ量を減らすことができる理由を説明する。
1つの表示画像のエンコード済みの表示データをデコードする場合、マスタプロセッサ220は、1行(コア(1,y)からコア(H,y)までの行方向の1行)の各コアに対し、同じ回数ずつデータを入力する。この回数をrとする。
マスタプロセッサ220から入力されたデータは、列方向のデータ通信線と各コアのルータとを介して、コアからコアへと順に転送先コアまで転送されていく。
第1の実施形態(図2)では、例えば、マスタプロセッサ220が、コア(1,2)にデータを入力する際には、まずコア(1,1)にデータを入力し、コア(1,1)がそのデータをコア(1,2)に転送する。
このようにして1つの表示画像全体を処理すると、y行目の各コア(コア(1,y)〜コア(H,y)は、y行目の各コア自身が転送先コアである場合に加え、y+1行目からV行目までの各コアを転送先コアとする場合にもデータが通過するため、延べ(V−y+1)*r回のデータ転送がある。これをy=1からy=Vまで総和をとると、V*(V+1)*r/2となり、1つの表示画像に対する全コアの総データ転送回数は、V*(V+1)*r*H/2となる。
一方、本実施形態(図8)では、1つの表示画像に対する全コアの総データ転送回数は、(V/2)*(V/2+1)*r*H/2*2すなわちV*(V+2)*r*H/4となり、第1の実施形態の約半分となる。
また、表示データ転送部241がソースドライバ261に表示データを転送する際の、全コアの総データ転送回数も、本実施形態では第1の実施形態の約半分となる。
なお、コア間のデータ通信線による接続および各コア内のルータ、PE、LMの構成は第1の実施形態と同様であるため、マスタプロセッサ220からブロックデータが入力された後の、各コアでのデコードにおけるコア間のデータ転送回数は、本実施形態と第1の実施形態とで同じである。
従って、本実施形態の画像表示装置300は、マスタプロセッサ220から各コアへのブロックデータの入力、および各コアからソースドライバ261への表示データの転送において、第1の実施形態の画像表示装置200に比べて、データ転送量を半減させることができる。
以下、本発明の具体的な実施例について説明する。
本実施例は、第2の実施形態の画像表示システムの具体例として、フルハイビジョンサイズの表示パネルを有する画像表示装置にMPEG2方式でエンコードされた画像を表示する例である。
図9を参照すると、本実施例の画像表示システムは、DVD駆動装置30と、MEPG2再生装置400と、MPEG2再生装置400とイーサネットケーブル40を介して接続された画像表示装置500と、を有する。
なお、DVD駆動装置30、MPEG2再生装置400、画像表示装置500はそれぞれ、図7に示す映像メディア10、映像ソース装置100、画像表示装置300の具体例である。
MPEG2再生装置400は、チューナ410と、再生制御部420と、イーサネットインタフェース430と、を有する。
なお、再生制御部420、イーサネットインタフェース430はそれぞれ、図7に示す再生制御部110、伝送出力部120の具体例である。
チューナ410は、アンテナで受信した地上波デジタルテレビ放送の放送信号のうちユーザにより指定されたチャンネルの放送信号を受信し、デジタル信号に変換して、MPEG2方式によりエンコード済みのコンテンツを取得し、再生制御部420に出力する。
再生制御部420は、ユーザにより指定された、地上波デジタル放送のチャンネルや、DVD駆動装置30内のMPEG2方式によりエンコード済みのコンテンツデータを取得し、取得したエンコード済みのコンテンツデータを、イーサネットインタフェース430を介して画像表示装置500に伝送する。
画像表示装置500は、イーサネットインタフェース510と、統合画像処理プロセッサ550と、表示パネル250と、ソースドライバ群260と、ゲートドライバ270とを有する。
なお、イーサネットインタフェース510は、図7に示す伝送出力部210の具体例である。
イーサネットインタフェース510は、MPEG2再生装置400から伝送されてきたエンコード済みのコンテンツデータを受信し、統合画像処理プロセッサ550に出力する。
統合画像処理プロセッサ550は、マスタプロセッサ部520と、画像処理プロセッサ部531−1,531−2と、タイミングコントローラ部540とが一体となったLSI(大規模集積回路)であり、イーサネットインタフェース510から出力されたエンコード済みのコンテンツデータから、エンコード済みの表示データを抽出し、抽出したエンコード済みの表示データをデコードして、1920ドット×1080ドットのフルハイビジョンサイズの表示パネル250を駆動するソースドライバ群260に転送する。なお、エンコード済みの音声データの処理については説明を省略する。
また、統合画像処理プロセッサ550は、表示パネル250を構成する表示画素を1行分ずつ駆動するようにゲートドライバ270に指示を出力する。
なお、マスタプロセッサ部520、画像処理プロセッサ部531−1および531−2、タイミングコントローラ部540はそれぞれ、図7に示すマスタプロセッサ220、画像処理プロセッサ310−1および310−2、タイミングコントローラ240の具体例である。
表示パネル250、ソースドライバ群260、およびゲートドライバ270の構成およびその動作は、第2の実施形態と同様であるので、その説明を省略する。
次に、統合画像処理プロセッサ550の構成について図10から図12を参照して説明する。
図10は、統合画像処理プロセッサ550の構成を示すブロック図である。また、図11は、コア532の構成を示すブロック図である。また、図12は、相互接続部560−1〜560−6の構成を示すブロック図である。
図10から図12に示す統合画像処理プロセッサ550は、マスタプロセッサ部520と、画像処理プロセッサ部531−1および531−2と、タイミングコントローラ部540と、相互接続部560−1〜560−6と、共有メモリ部570と、を有する。
なお、以下では、どの相互接続部560−1〜560−6であるかを特に特定しない場合には、相互接続部560と称する。
マスタプロセッサ部520は、マスタCPU521と、ルータ522−1〜522−6と、を有する。
マスタCPU521は、イーサネットインタフェース510から出力されたエンコード済みの表示データをブロックデータに分割し、ルータ522−1〜522−6に出力する。
ルータ522−1〜522−6は、マスタCPU521から入力されたブロックデータを、画像処理プロセッサ部531−1または531−2に入力する。なお、ルータ522−1〜522−6はそれぞれ、後述する相互接続部560−1〜560−6に含まれる。
画像処理プロセッサ部531−1および531−2はそれぞれ、縦横方向にデータ通信線により接続されたメニコア構造の48個のコア532を有しており、行方向に12個、列方向に4個の、48個のコア532で構成されている。
各コア532は、表示パネル250上の横160ドット×縦144ドットのブロックに対応するブロックデータをデコードする。従って、画像処理プロセッサ部531−1は、表示パネル250の上側1920ドット×576ドット、画像処理プロセッサ部531−2は、表示パネル250の下側1920ドット×504ドットの領域に対応する処理を行う。
なお、表示パネル250の下側1920ドット×504ドットの領域に対応する処理を行う画像処理プロセッサ部531−2は、表示パネル250の下端に、さらに8ドットを補い、1920ドット×512ドットの矩形領域を各コア532で処理する。MPEG2は16ドット×16ドットの正方形領域をマクロブロックと称する基本処理単位とする規格であるので、このように8ドットを補うことで、画像処理プロセッサ部531−1と531−2の各コアは、横10個×縦9個(画像処理プロセッサ部531−2の下端行のコアは、横10個×縦5個)のマクロブロックのブロックデータをデコードすることになる。そうすると、マクロブロックの境界と各コア532がデコードするブロックデータに対応するブロックの境界とが一致し、処理効率が向上する。
コア532は、図11に示すように、ルータ533と、プロセシングエレメント(PE)534と、ローカルメモリ(LM)535と、を有する。
ルータ533は、隣接コアやマスタプロセッサ部520、タイミングコントローラ部540とデータ通信線により接続され、データ転送を制御する。
なお、各コア532を接続するルータ533およびデータ通信線は、オンチップネットワークあるいはNoC(ネットワークオンチップ)と称される方式により実現される。
オンチップネットワークは、1つのLSI上に配置された多数のコアの間をネットワーク的に連結する方式であり、例えば、特許文献4などに詳しく記載されている。
PE534は、ブロックデータをデコードする。
また、PE534は、コア532内のデータ通信線やルータ533を通じたコア間のデータ通信線を介して、自コア532内のLM535や他のコアのLMにアクセスすることができる。また、PE534は、コア間のデータ通信線およびマスタプロセッサ部520を介して、後述する共有メモリ部570にアクセスすることも可能である。
なお、PE534は、一般的な汎用CPUにより実現することができるが、LSIに埋め込むことができるような回路規模の小さい組込み用CPUを用いることが好適である。
LM535は、PE534によるブロックデータのデコード結果である表示データを格納する。
なお、LM535は、SRAMやeDRAM(Embedded DRAM)などにより実現される。
再度、図10を参照すると、タイミングコントローラ部540は、表示行カウンタ541と、表示データ転送部542−1〜542−6と、を有する。
表示行カウンタ541は、表示パネル250の表示を行う表示行を示すカウント値を出力する。
表示データ転送部542−1〜542−6は、表示行カウンタ541が出力したカウント値に対応する表示データを格納しているコア532のLM535から表示データを読み出し、読み出した表示データをソースドライバ群260に転送する。なお、表示データ転送部542−1〜542−6はそれぞれ、後述する相互接続部560−1〜560−6に含まれる。
相互接続部560は、図12に示すように、ルータ522と、表示データ転送部542と、を有し、ルータ522および表示データ転送部542はそれぞれ、画像処理プロセッサ531−1の下端行のコアのうちの2つのコア(コア532−1,532−2)および画像処理プロセッサ531−2の上端行のコアのうち2つのコア(コア532−3,534−4)とデータ通信線により接続される。
ルータ522は、マスタCPU521から入力されたブロックデータを、画像処理プロセッサ531−1または531−2のコアのいずれかに出力する。
表示データ転送部542は、画像処理プロセッサ部531−1および531−2のコア532のLM535に格納された表示データをソースドライバ群260に転送する。
なお、図10に示す相互接続部560−1〜560−6にそれぞれ、表示データ転送部542−1〜542−6が含まれるので、各表示データ転送部542は、表示パネル250を縦長の短冊状に分割してできる幅320ドットの矩形領域の表示データをソースドライバ群260へ転送する。
従って、各表示データ転送部542−1〜542−6は、隣接する2列のコア532のLM535に格納されている表示データの転送を行う。
そして、表示データ転送部542は、表示行カウンタ541からカウント値が出力されると、そのカウント値が示す行の表示データを対応する2列のコア532のLM535から読み出し、ソースドライバ群260に転送する。
なお、ソースドライバ群260は、表示データ転送部542−1〜542−6にそれぞれ対応する6個のソースドライバ261−1〜261−6を有し、それぞれのソースドライバ261−1〜261−6が、対応する表示データ転送部542−1〜542−6から転送されてきた表示データを、表示パネル250を構成する表示画素に供給する。
再度、図10を参照すると、共有メモリ部570は、SRAMまたはeDRAMにより実現され、画像等の一時的なデータ格納に加え、マスタプロセッサ部520やタイミングコントローラ部540の動作のためのワークメモリとしても用いられる。
次に、画像表示装置500の動作について、マスタプロセッサ部520、画像処理プロセッサ531−1と532−2に含まれるコア532、ソースドライバ群260、およびゲートドライバ270の動作を中心に説明する。
図13は、画像表示装置500の動作を示すシーケンス図である。
なお、図13において、上方向から下方向に時刻が進むものとする。
まず、新しいフレームのエンコード済みの表示データのデータ列をイーサネットインタフェース510が受信すると、マスタプロセッサ部520は、そのエンコード済みの表示データのフォーマットを解析する(ステップS201)。なお、MPEG2では、1フレームは複数のスライスで構成される。
マスタプロセッサ部520は、受信したデータ列の先頭から解析を行い、最初の1スライス目のエンコード済みの表示データを受信したことを確認すると、その1スライス目のエンコード済みの表示データを、マクロブロックごとのブロックデータに分割して、コア(*,1)に入力する(ステップS202)。ここで、コア(*,1)とは、画像処理プロセッサ部531−1の上端行のコア群を指す。
各コア(*,1)は、自らの行方向の位置に応じ、1スライス目内で連続する10個のマクロブロックごとのブロックデータを取得する。例えば、コア(1,1)は1スライス目の左から1番目から10番目、コア(2,1)は11番目から20番目、コア(12,1)は、111番目から120番目のマクロブロックに対応するブロックデータを取得する。
そして、各コア(*,1)は、取得したブロックデータをデコードし、デコード結果である表示データを自コア内のLMに格納する(ステップS203)。
コア(*,1)におけるデコードと並行して、マスタプロセッサ部520は、受信したデータ列の解析を進め、次のスライス(2スライス目)のエンコード済みの表示データの受信を完了すると、その2スライス目のエンコード済みの表示データを、ステップS202と同様に、マクロブロックごとのブロックデータに分割して、コア(*,1)に入力する(ステップS204)。
各コア(*,1)は、1スライス目と同様に、10個のマクロブロックに対応するブロックデータを取得し、1スライス目の10個のマクロブロックに対応するブロックデータのデコードが終わり次第、取得した2スライス目のブロックデータをデコードし、デコード結果である表示データを自コアのLMに格納する(ステップS205)。
以下同様に、マスタプロセッサ部520は、9スライス目までのブロックデータをコア(*,1)に入力し(ステップS206)、各コア(*,1)は入力されたブロックデータをデコードし、デコード結果である表示データを自コアのLMに格納する(ステップS207)。
次に、マスタプロセッサ部520は、10スライス目のエンコード済みの表示データを受信したことを確認すると、その10スライス目のエンコード済みの表示データを、ステップS202と同様に、マクロブロックごとのブロックデータに分割して、コア(*,2)に入力する(ステップS208)。
コア(*,2)は、コア(*、1)と同様に、入力されたブロックデータをデコードし、デコード結果である表示データを自コアのLMに格納する(ステップS209)。
以下、同様に、マスタプロセッサ部520は、18スライス目までのブロックデータをコア(*,2)に入力し、コア(*,2)は、入力されたブロックデータをデコードし、デコード結果である表示データを自コアのLMに格納する。
そして、マスタプロセッサ部520は、9スライスごとにブロックデータを入力するコア群を進めていき、各コアはそれぞれ、入力されたブロックデータのデコードを並列的に行う。
そして、マスタプロセッサ部520は、最終スライスのブロックデータをコア(*,8)に入力し(ステップS210)、コア(*,8)は、入力されたブロックデータをデコードし、デコード結果である表示データを自コアのLMに格納する(ステップS211)。
最終スライスのブロックデータの入力を行うと、マスタプロセッサ部520での1フレームのフォーマットの解析を完了し(ステップS212)、その後、次のフレームの処理に進む(ステップS213)。
タイミングコントローラ部540は、マスタプロセッサ部520および各コア532におけるデコードとは独立して、表示パネル250の仕様に従ったタイミングレートで表示行カウンタ541が出力するカウント値を、1(上端行)から1080(下端行)まで1ずつ増やしながら、そのカウント値が示す行の表示データをコアから読み出し、ソースドライバ群260に転送する。
具体的には、タイミングコントローラ部540は、表示行カウンタ541がカウント値1を出力すると、表示データ転送部542により、コア(*,1)に対して1行目の表示データの読み出しを要求するとともに、ゲートドライバ270に対して表示パネル250の1行目を構成する表示画素の駆動を指示する(ステップS250)。
上述したように、表示データ転送部542は6個あるので、各表示データ転送部542−1〜542−6は、2列のコアに対応し、表示データ転送部542−1はコア(1,1)とコア(2,1)、表示データ転送部542−2はコア(3,1)とコア(4,1)、表示データ転送部542−6はコア(11,1)とコア(12,1)のLMに格納された1行目の表示データの読み出しを行う。
各コア(*,1)は自コアのLMに格納されている最新のデコード結果のうちの1行目の表示データを対応する表示データ転送部542に出力し(ステップS251)、表示データ転送部542は、出力された表示データを対応するソースドライバ261に転送する。
ソースドライバ261は、表示データ転送部542から転送されてきた表示データを表示パネル250に供給し(ステップS252)、ゲートドライバ270は、表示パネル250の1行目を駆動する(ステップ253)ことで、表示パネル250には1行目の画像が表示される。
以下、表示行カウンタ541が出力するカウント値が1進むごとに表示データの転送が行われる。その際、カウント値が144(9マクロブロック分)進むごとに、表示データ転送部542は、表示データの読み出しを要求するコアを1行ずつ下に切り替えていく。
例えば、タイミングコントローラ部540は、145行目の表示を行う際には(ステップ260)、コア(*,2)のLMに格納されている表示データの読み出しを行い、コア(*,2)は、自コアのLMに格納されている最新のデコード結果のうちの145行目の表示データを対応する表示データ転送部542に出力する(ステップS261)。また、タイミングコントローラ部540は、最終行1080行目の表示を行う際には(ステップS270)、コア(*,8)のLMに格納されている表示データの読み出しを行い、コア(*,8)は、自コアのLMに格納されている最新のデコード結果のうちの1080行目の表示データを対応する表示データ転送部542に出力する(ステップS271)。
このような動作を繰り返すことで、表示パネル250に各フレームの画像が表示される。
なお、本実施例においては、表示パネル250に表示される画像の品質を向上させるためのフィルタ処理を画像処理プロセッサ531−1,531−2内で実行することが可能である。
すなわち、各コア532のPE534は、ブロックデータをデコードしたデコード結果に対して、エンコードにより生じる歪みを補完するポストフィルタ処理を行い、その結果を表示データとしてLM535に格納する。ポストフィルタ処理に際して隣接する領域のデコード結果の参照が必要な場合には、コア間を接続するデータ通信線を介して隣接コアのLM535を参照する。隣接コアのLM535を参照することで、大域的なデータ転送やLMの参照を抑えることができる。
このように、ポストフィルタ処理を各コア532のPE534で並列的に行い、かつ、コア間で転送されるデータ量を抑えることで、統合画像処理プロセッサ550の動作周波数を不必要に上げることなく、ポストフィルタ処理により画像品質向上を実現できる。
また、本実施例では、MPEG2方式によりエンコードされた表示データを画像表示装置500に表示する例を説明したが、本発明はこれに限られるものではなく、H.264をはじめ、マクロブロック単位でエンコード/デコードを行う動画像圧縮方式による画像表示システムに適用することができる。更には、JPEGのような、マクロブロック単位でエンコード/デコードを行う静止画圧縮方式に対しても適用することができ、例えば、高精細写真を超高解像度の表示パネルに表示する高品位デジタルフォトフレームにも適用可能である。
また、マスタCPU521が、エンコード済みの表示データのデータ列の先頭の数バイトから数百バイト程度を先行して解析することでエンコード方式を識別し、識別したエンコード方式に沿ってデータフォーマットの解析を行うとともに、画像処理プロセッサ部531−1及び531−2の各コア532に対して、そのエンコード方式の種類(例えばMPEG2/H.264/JPEGの別、更には各エンコード方式内のプロファイル等の詳細オプション)を通知し、各コア532は通知されたエンコード方式の種類に従ってデコード方式を切り替えることで、複数のエンコード方式を自動識別して表示する画像表示装置500を実現することも可能である。
また、本発明は、高解像度画像が必要なテレビ、コンピュータ用ディスプレイであって、マトリクス駆動により画像表示を行うLCD方式、PDP方式あるいは有機EL方式のテレビやディスプレイの画像表示装置部分に適用することができる。
また、本発明は高品位フォトフレーム(写真画像表示機器)、屋外等に設置される大型広告ディスプレイ、あるいは多様な動画エンコード方式に対応可能な携帯型動画再生機器などにも適用することができる。