(57)【要約】【課題】ＪＰＥＧ処理を高速に行えるＪＰＥＧ画像処理回路の実現。【解決手段】画像メモリ2に接続される共有バス11と、共有バスに接続され、共有バスを介して画像メモリから得た処理前データをＪＰＥＧフォーマットで処理し、処理済データを前記共有バスを介して前記画像メモリに出力するＪＰＥＧ処理部14と、を備えるＪＰＥＧ画像処理回路であって、ＪＰＥＧ処理部14は、複数のＪＰＥＧ処理コア27A-27Dと、複数のＪＰＥＧ処理コアに対応して設けられた複数のデータ格納領域24A-24Dと、を備え、各ＪＰＥＧ処理コアで処理を行う時には、処理前データの各ＪＰＥＧ処理コアでの処理に必要な部分を、各ＪＰＥＧ処理コアに対応する各データ格納領域に格納する。【選択図】図２
2008048130.tif 000002
【特許請求の範囲】
【請求項１】
画像メモリに接続される共有バスと、
前記共有バスに接続され、前記共有バスを介して前記画像メモリから得た処理前データをＪＰＥＧフォーマットで処理し、処理済データを前記共有バスを介して前記画像メモリに出力するＪＰＥＧ処理部と、を備えるＪＰＥＧ画像処理回路であって、
前記ＪＰＥＧ処理部は、
複数のＪＰＥＧ処理コアと、
前記複数のＪＰＥＧ処理コアに対応して設けられた複数のデータ格納領域と、を備え、
各ＪＰＥＧ処理コアで処理を行う時には、前記処理前データの各ＪＰＥＧ処理コアでの処理に必要な部分を、各ＪＰＥＧ処理コアに対応する各データ格納領域に格納することを特徴とするＪＰＥＧ画像処理回路。
【請求項２】
各ＪＰＥＧ処理コアでの処理済データは、対応する前記データ格納領域に格納した後、前記共有バスを介して前記画像メモリに出力される請求項１に記載のＪＰＥＧ画像処理回路。
【請求項３】
各データ格納領域に格納する前記処理前データ量は、動的に可変である請求項１に記載のＪＰＥＧ画像処理回路。
【請求項４】
各データ格納領域に格納する前記処理前データ量は、ＪＰＥＧ処理の最小符号化ユニット（ＭＣＵ）である請求項１に記載のＪＰＥＧ画像処理回路。
【請求項５】
前記ＪＰＥＧ処理部は、制御部を備え、
前記制御部は、前記複数のＪＰＥＧ処理コアのうち動作状態にある個数を動的に変更する請求項１に記載のＪＰＥＧ画像処理回路。
【請求項６】
前記ＪＰＥＧ処理部は、各ＪＰＥＧ処理コアの動作クロック周波数を動作に応じて設定する動作クロック制御部を備える請求項１に記載のＪＰＥＧ画像処理回路。
【請求項７】
前記動作クロック制御部は、各ＪＰＥＧ処理コアの動作クロック周波数を動的に変化させる請求項６に記載のＪＰＥＧ画像処理回路。
【請求項８】
前記ＪＰＥＧ処理部は、制御部を備え、
前記制御部は、前記複数のＪＰＥＧ処理コアの障害発生を自動的に検出して発生した障害情報を通知する請求項１に記載のＪＰＥＧ画像処理回路。
【請求項９】
前記制御部は、前記障害情報に基づいて、障害の発生したＪＰＥＧ処理コアでの処理を他のＪＰＥＧ処理コアに割当てて、処理を継続させる請求項８に記載のＪＰＥＧ画像処理回路。
【請求項１０】
前記制御部は、各ＪＰＥＧ処理コアでの処理時間をモニタして、処理時間が基準時間を超えるタイムアウトを判定することにより障害の発生を検出し、
前記タイムアウト判定を、前記ＪＰＥＧ処理コアの絶対時間タイマによる処理開始からの経過時間を検出し、前記経過時間を前記基準時間と比較することにより行う請求項９に記載のＪＰＥＧ画像処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画像の標準フォーマットであるＪＰＥＧフォーマットをエンコード及び／又はデコード（ＪＰＥＧエンコード／デコード:JPEG Encoding/Decoding）処理するＪＰＥＧ画像処理回路に関し、特に複数のＪＰＥＧ処理コアを有し、処理を並列に行うＪＰＥＧ画像処理回路に関する。
【背景技術】
【０００２】
デジタルカメラは、ＪＰＥＧフォーマットを扱うシステム（ＪＰＥＧ画像処理回路）の代表的な例である。以下、デジタルカメラを例として説明するが、本発明はこれに限定されず、ＪＰＥＧフォーマットを扱うＪＰＥＧ画像処理回路であれば適用可能である。デジタルカメラは、ＪＰＥＧ変換処理の他に、実際の画像データを撮影し、そのデータを共有メモリやストレージデバイスに格納する。また動画や静止画をシステムの表示装置（一般的にはＬＣＤデバイス）に表示したり、外部出力端子にデータを出力したり、逆に外部入力端子よりデータが入力される。
【０００３】
これらの画像を扱う処理に関しては、各種規格に沿ったフォーマットで入出力が行われるため、リアルタイム性が要求される。そのため、それらのリアルタイム性が要求される処理とは独立して処理されるＪＰＥＧエンコード／デコード処理は、その性能自体がシステムの性能の一因ではあるもののリアルタイム性を要求される部分が少なくなっている。そのため、コンシューマー向けなどコスト優先の市場に投入される製品では、データを格納する共有メモリやストレージデバイス及び複数の機能モジュールが１つの共有バスで接続されている構成をとることが多く、複数の機能モジュールに共有バスの占有権を時分割で割当てて、占有件を割当てられた機能モジュールが共有メモリやストレージデバイスにアクセスする構成をとる。
【０００４】
【特許文献１】特開平１０−３０４３５６号公報
【特許文献２】特開２００１−００５５５２
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記の共有バスの帯域はすべてのモジュールが同時動作を行っても十分足りる構成とはなっておらず、最低限の帯域しか用意されないのが実情である。
【０００６】
さらに、上記共有バスでは、リアルタイム性の要求が低いＪＰＥＧ処理部に関しては優先度が低く抑えられており、ＪＰＥＧエンコード／デコード処理の実際の実行時間が、同時に動作している機能モジュールの個数などにより左右される傾向にあった。
【０００７】
またこれらのシステムは性能だけではなく低消費電力化も大きな課題であり、使用条件／システム仕様によって性能と消費電力の比重が変わることが頻繁に起こり得る。
【０００８】
性能アップの１つの解決策が動作周波数のアップであることは、周知の事実であるが、動作周波数アップはそのアップ率によって指数的に消費電力の増大を招き、また現在の最先端の微細加工技術を適用したＬＳＩでは、それらの熱および集積度により軽微な障害が発生することも考えられ、組み込みシステムではシステム上問題とならない範囲での自動復旧処理が要求されている。
【０００９】
本発明の第１の目的は、ＪＰＥＧ処理を高速に行えるＪＰＥＧ画像処理回路の実現である。
【００１０】
本発明の第２の目的は、ＪＰＥＧ処理回路の低消費電力化である。
【００１１】
本発明の第３の目的は、軽微な障害については自動復旧可能な画像処理回路の実現である。
【課題を解決するための手段】
【００１２】
上記第１の目的を実現するため、本発明のＪＰＥＧ処理回路は、ＪＰＥＧ処理部を複数のＪＰＥＧ処理コアと、複数のＪＰＥＧ処理コアに対応して設けられた複数のデータ格納領域と、を備えるように構成し、各ＪＰＥＧ処理コアで並列で処理を行う時に、各ＪＰＥＧ処理コアでの処理に必要な処理前のデータを、画像メモリに接続される共有バスを介して各ＪＰＥＧ処理コアに対応する各データ格納領域に格納する。
【００１３】
本発明のＪＰＥＧ処理回路では、複数のＪＰＥＧ処理コアでＪＰＥＧ処理を並列に行う場合に、処理に必要な処理前のデータを、各ＪＰＥＧ処理コアに対応して設けられたデータ格納領域に格納するため、共有バスを介して画像メモリにアクセスする必要がないので、バス占有の優先権が低くても高速にＪＰＥＧ処理コアが行える。これによりＪＰＥＧ処理速度を向上できる。
【００１４】
なお、各ＪＰＥＧ処理コアでの処理済データも、対応するデータ格納領域に格納した後、共有バスを介して画像メモリに出力することが望ましい。画像メモリと複数のデータ格納領域の間のデータの転送は、例えば、バーストモードなどにより高速に行うことが望ましい。これによりバス占有時間を低減して全体の処理速度を向上できる。
【００１５】
各データ格納領域に格納する処理前データ量は、ＪＰＥＧ処理の最小符号化ユニット（ＭＣＵ）であることが望ましい。これにより効率的なＪＰＥＧ処理が可能となる。しかし、これに限定されず各データ格納領域に格納する処理前データ量を動的に可変としてもよい。これにより処理内容及び状況に応じた効率的な処理が可能となる。
【００１６】
上記第２の目的を実現するため、ＪＰＥＧ処理部の制御部が、複数のＪＰＥＧ処理コアのうち動作状態にある個数が動的に変更可能であることが望ましい。
【００１７】
本発明によれば、要求処理性能が低速である場合には、動作させる、すなわちクロックを供給するＪＰＥＧ処理コアの個数を少なくして、消費電力を低減できる。
【００１８】
また、上記第２の目的を実現するため、ＪＰＥＧ処理部は、各ＪＰＥＧ処理コアの動作クロック周波数を動作に応じて設定する動作クロック制御部を備える。
【００１９】
本発明によれば、要求処理性能が低速である場合には、ＪＰＥＧ処理コアの動作速度、すなわちＪＰＥＧ処理コアに供給するクロック周波数を低くして、消費電力を低減できる。
【００２０】
更に上記第３の目的を実現するため、ＪＰＥＧ処理部の制御部は、複数のＪＰＥＧ処理コアの障害発生を自動的に検出し、軽微な障害の場合には、障害情報に基づいて、事前に設定した動作プランに従って回復処理を実行し、処理エラーの回避を図る。この動作プランの例としては、障害の発生したＪＰＥＧ処理コアでの処理を他のＪＰＥＧ処理コアに割当てて、処理を継続させるなどのプランである。
【００２１】
障害の発生は、制御部が各ＪＰＥＧ処理コアでの処理時間をモニタして、処理時間が基準時間を超えるタイムアウトを判定することにより検出する。タイムアウト判定は、ＪＰＥＧ処理コアの絶対時間タイマによる処理開始からの経過時間を検出し、経過時間を基準時間と比較することにより行う。
【発明の効果】
【００２２】
本発明によれば、ＪＰＥＧ処理を高速に低消費電力で行え、軽微な障害については自動復旧可能なＪＰＥＧ画像処理回路が実現される。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明の実施例のＪＰＥＧ処理回路を構成するシステムＬＳＩ１の概略構成を示すブロック図である。システムＬＳＩ１は、共有バス１１と、バスアービター１２と、汎用メモリインターフェース１３と、ＪＰＥＧ処理部１４と、ビデオ入出力部１５と、静止画入出力部１６と、動画入出力部１７と、プロセッサ及び周辺回路部５と、表示処理部６と、３次元（３Ｄ）グラフィックス処理部７と、画像合成フォーマット変換処理部８と、解像度変換処理部９と、を有する。このシステムＬＳＩ１の構成は、従来から良く知られているが、本実施例ではＪＰＥＧ処理部１４の構成が従来例とは異なる。従って、ＪＰＥＧ処理部１４以外の部分についての説明は省略する。
【００２４】
ＬＳＩ１には、汎用メモリインターフェース１３を介してＳＤＲＡＭなどで構成される汎用メモリ２が接続される。汎用メモリ２には、ＹＣｂＣｒ画像データ及びＪＰＥＧ画像データを含む各種データが格納される。なお、図示していないが、ビデオ入出力部１５には、ＬＣＤデバイスなどの表示装置（ディスプレイ）やビデオカメラが接続され、静止画入出力部１６にはデジタルカメラが接続される。
【００２５】
従来のＬＳＩでは、ＪＰＥＧ処理部１４は、処理に伴って画像メモリ（汎用メモリ）２にアクセスする必要が生じた時には、その度毎に共有バス１１及び汎用メモリインターフェース１３を介して画像メモリ２にアクセスしていた。そのため、バスアービター１２への共有バス１１の占有権の要求が頻繁に行われることになるが、共有バス１１は処理の優先度が高い処理を行う他の要素と共用であるため、共有バス１１が割当てられるまでの待機時間が長くなり、ＪＰＥＧ処理に長時間を要するという問題があった。
【００２６】
本実施例では、ＪＰＥＧ処理部１４を図２に示すように構成する。図２に示すように、本実施例のＪＰＥＧ処理部１４は、共有バス１１との接続を制御する共有バスコントローラ２１と、動作クロック制御部２２と、ＪＰＥＧ設定格納レジスタ２３と、複数のデータ格納領域２４Ａ〜２４Ｄと、ＪＰＥＧ処理部内制御部２５と、上記の要素を接続する第１内部バス２６と、複数のＪＰＥＧ処理コア２７Ａ〜２７Ｄと、複数のＪＰＥＧ処理コア２７Ａ〜２７Ｄと複数のデータ格納領域２４Ａ〜２４ＤとＪＰＥＧ処理部内制御部２５とを接続する第２内部バス２８と、を有する。なお、図２では、４個のデータ格納領域２４Ａ〜２４Ｄを有する例を示したが、その個数に特に制限はない。更に、図２に示すように、４個のデータ格納領域２４Ａ〜２４Ｄは、第１内部バス２６と第２内部バス２８の両方からアクセスできるように構成されており、例えば、デュアルポートメモリやＦＩＦＯメモリなどで実現される。
【００２７】
更に、４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄと４個のデータ格納領域２４Ａ〜２４Ｄは、第２内部バス２８で接続されており、各ＪＰＥＧ処理コアはいずれのデータ格納領域にもアクセス可能である。ＪＰＥＧ処理部内制御部２５が、第２内部バス２８の占有権などのバスの制御を行う。
【００２８】
本実施例では、以上のような構成により、ＪＰＥＧ処理内容に応じたデータ格納領域への効率的なデータ入出力、及び複数のＪＰＥＧ処理コア２７Ａ〜２７Ｄによる処理の並列化により、ＪＰＥＧ符号復号化(coding/decoding)処理を高速化する。更に、複数のＪＰＥＧ処理コア２７Ａ〜２７Ｄの動作クロック制御により、低消費電力を低減する。更に、ＪＰＥＧ処理部内制御部２５による監視機能によって、ＪＰＥＧ処理を実行している複数のＪＰＥＧ処理コア２７Ａ〜２７Ｄの状態を把握し、軽微な障害の場合には回復処理により障害の自動復旧を行う。
【００２９】
本実施例の詳細を説明する前に、画像データの格納方法と、本実施例でメモリとして使用されるＳＤＲＡＭのデータ転送について簡単に説明する。
【００３０】
図３の（Ａ）は一般的な画像を扱うシステムでの画面上の点の座標を、（Ｂ）はその座標のデータをメモリ上に格納した場合のアドレスを示した図である。図３の（Ａ）に示す通り、横Ｘドット、縦Ｙドットの画像は座標（０，０）から始まり、座標（Ｘ−１，Ｙ−１）までのＸ個×Ｙ個のドットで構成されている。
【００３１】
その画像上の点をメモリ領域上にデータを展開した場合の例が図３の（Ｂ）に示される。メモリ領域上では、座標（０，０）のドットのデータがオフセット０番地の位置に格納され、座標（１，０）のドットのデータが１番地に格納される。ここでの番地の数字の意味は各ドットを示すデータの量とメモリ領域上の各番地に格納できるデータの量が等しいもしくはメモリ領域上のデータ量が大きいとしている。
【００３２】
メモリ領域上では図の通り、Ｙ座標が同じであるドットのデータがＸ座標の値に対して連続して格納され、Ｘ座標がＸ−１までくると、次はＹ座標が１だけ増加して、以下同様に座標（Ｘ−１，Ｙ−１）までのデータが順番に格納されている。例えば、画面上の座標（ｘ，ｙ）のドットのデータは、メモリ領域上ではオフセットｙ×Ｘ＋ｘ（ｙ＊Ｘ＋ｘ）番地の位置に格納される。
【００３３】
つまり画像の縦と横のサイズとその画像のデータが格納されているメモリ領域のオフセット位置が分かっていれば、各座標のデータがどこのメモリ領域に格納されているかは、一意に分かるようになっている。
【００３４】
図４は、画像データの各成分を分離して、成分毎に複数のメモリ領域に格納している状態を表している。カラーの画像データの各画素の色の表し方では赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３色で表すＲＧＢと呼ばれる表現方法があるが、ＪＰＥＧフォーマットでは明るさと色差で表現するＹＣＣ表記系のうち、Ｙで明るさを示し、Ｃｂで輝度と青のレベル差、Ｃｒで輝度と赤のレベル差を示すＹＣｂＣｒ表記系を使用する。それぞれの成分を別のメモリ領域に割り当てた状態を示すのが図４であり、このように割り当てることにより、図３で示した通り、情報が格納されているメモリ位置が一意に分かるようになる。
【００３５】
図５の（Ａ）は、画面におけるＪＰＥＧ符号化の処理の中で行われる基本ＤＣＴ（離散コサイン変換）方式で扱う基本単位である８×８ドットの画像を、（Ｂ）はそのデータがどのようなアドレスで扱われるかを表した図である。図５の（Ａ）では（ｘ，ｙ）を左上角とした８×８ドットの画像を例として表している。図５に示す通り、この基本単位は座標（ｘ，ｙ）〜（ｘ＋７，ｙ＋７）の横８ドットを最上段のラインとし、以下はＹ座標がｙ〜ｙ＋７までのラインで表されている。これは図５の（Ｂ）のメモリマップを見て分かる通り、横のラインの８ドットは連続したアドレスとしてデータが並んでいるが、各ライン間では全く別な領域となっている。
【００３６】
図６はカラー画像伝送方式におけるノンインタリーブとインタリーブを説明する図である。ＪＰＥＧフォーマットでは、図６の（Ａ）のカラー画像データは、（Ｂ）のＹＣｂＣｒ表色系の各カラー成分に分解される。ここで、インタリーブの場合には、（Ｃ）のように各カラー成分ごとに小さな部分に分けられ、（Ｅ）のようにその小さな部分ごとに全成分のデータを順番に送る。その小さな部分を最小符号化ユニット（ＭＣＵ）という。つまりインタリーブの場合、データ伝送の最初の段階から３つの成分の情報が混じり合って送られることになる。そのため、インターネット上のＷｅｂなどを低速回線で利用する時などに、上の方から徐々に表示されていくことになる。
【００３７】
一方、ノンインタリーブの場合、図６の（Ｄ）に示すように、（Ｂ）のＹＣｂＣｒ表色系の全面のカラーデータを成分ごとに順番に送る。
【００３８】
ＪＰＥＧ処理では、成分数が１の時はノンインタリーブを、成分数が複数の場合にはインタリーブを使用することになっている。
【００３９】
またＭＣＵはブロックで構成され、その数は元画像から各成分毎にどれだけの数のドットを抽出するかを決めるサンプリングファクタによって決定される。サンプリングファクタは実際には間引きを実現するもので、各成分のサンプリングファクタのうち、最も大きいものを最大サンプリングファクタと呼ぶ。間引きはその最大サンプリングファクタを分母とし、各成分のサンプリングファクタを分子とした数値が間引き率となる。ＪＰＥＧフォーマットでよく使われるサンプリングファクタとしてはＹ成分を２、Ｃｂ／Ｃｒ成分を１とするものである。これは自然画では原色が現れることは非常に少ないため多くの色がＲＧＢの合成色になっていることにより色差の変化が少ないためである。
【００４０】
図７は、サンプリングファクタとしてはＹ成分を２、Ｃｂ／Ｃｒ成分を１とした場合のＭＣＵの構成を説明する。図７の（Ａ）の１６×１６ドットの画像データにおいて、縦横両方の方向でＹ成分に対してＣｂ／Ｃｒ成分は、それぞれ１／２となっているため、ＭＣＵとしては８×８ドットが４ブロックとなり、（Ｂ）に示すようにＹ成分は４ブロック分であり、（Ｃ）に示すようにＣｂ／Ｃｒはそれぞれ１ブロック分のデータ量となる。これらのデータが、（Ｄ）に示すように、まとめられて１つのＭＣＵとなる。各成分は図示のような順序でメモリに格納又は伝送される。
【００４１】
次に画像データが格納されるバッファメモリとして一般的によく使われるＳＤＲＡＭ（シンクロナス・ＤＲＡＭ）のアクセス動作を説明する。
【００４２】
図８及び図９は、ＳＤＲＡＭにおける読み出し(read)動作の後に書き込み(write)動作を行うアクセス動作例のタイムチャートである。図８は、ＣＬ(CAS latency)＝２で４ワード(word)連続アクセスの場合で、上半分がＢＬ(burst length)＝４の場合で、下半分がＢＬ＝１の場合である。下半分の例では、ＢＬが異なるが、ページモード動作を行うことによって、ＢＬの大きな上半分の場合と同じサイクルでアクセスが行えるようにしている。
【００４３】
図９は、４＋２wordをreadアクセスする時の動作を示し、上半分は同一ページである場合の動作を、下半分は同一頁でない時の動作を示す。ＳＤＲＡＭでは、同一のページでない場合には、ページを決定するためのＲＯＷアドレスを与える必要があるため、同じ４＋２wordのアクセスでも、１２ＣＬＫサイクルと１９ＣＬＫサイクルという大きな差が出る。すなわち、ＳＤＲＡＭとの間でデータを転送する場合、同一ページの連続したアドレスをアクセスすれば高速に転送できる。
【００４４】
以上、ＪＰＥＧフォーマットにおける画像データの格納方法と、ＳＤＲＡＭのデータ転送について説明したが、これらは広く知られているので、これ以上の説明は省略する。
【００４５】
図１０はＪＰＥＧの符号化処理(encoding)の流れを示すフローチャートであり、図１１はＪＰＥＧの復号化処理(decoding)の流れを示すフローチャートである。
【００４６】
図１０において、ステップＳ７及びＳ８での処理については、ハフマン符号表を用いることにより処理を省略することができる。また、ステップＳ２で記録する量子化テーブルに関しても最適値を入力画像や出力装置によって実験的に求めることも可能であるが、その代わりにいわゆる自然画像でディスプレイでもそれなりに表示できるテーブルがよく使われる場合もある。
【００４７】
本発明に関係する主な処理は、ステップＳ５、Ｓ６及びＳ１２の処理であり、特にＳ１２での処理は一番複雑な処理である。
【００４８】
図１１において、本発明に関係する主な処理は、ステップＳ７の処理である。
【００４９】
つまり上述した図１０のステップＳ５、Ｓ６及びＳ１２の処理、及び図１１のステップＳ７の処理が、複数のＪＰＥＧ処理コア２７Ａ〜２７Ｄが行う処理の大部分を占める。本実施例では、これら処理を効率的に高速に行い、およびこれらの処理を行う上での消費電力を低減する。
【００５０】
ＪＰＥＧの符号化・復号化処理については広く知られているので、これ以上の説明は省略する。
【００５１】
次に、実施例におけるＹＣｂＣｒ画像データ及びＪＰＥＧ画像データを格納する汎用メモリ２とＪＰＥＧ処理部１４との間のデータ転送及びＪＰＥＧ符号化・復号化処理時のデータへのアクセスについて説明する。
【００５２】
図１２は、符号化(encoding)処理時の画像データの流れを説明する図である。処理対象の画像データは最小符号化ユニット（ＭＣＵ）に分割され、ＪＰＥＧ処理コア２７Ａ〜２７ＤでＭＣＵごとに処理される。後述するように、動作させるＪＰＥＧ処理コアの個数は適宜設定されるが、ここでは４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄが処理を行うものとする。前述のように、図２に示したような４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄと４個のデータ格納領域２４Ａ〜２４Ｄが第２内部バス２８で接続されている構成であれば、各ＪＰＥＧ処理コアはいずれのデータ格納領域にもアクセス可能である。各ＪＰＥＧ処理コアは、処理対象のＭＣＵが転送されたデータ格納領域にアクセスして処理を行う。
【００５３】
なお、４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄと４個のデータ格納領域２４Ａ〜２４Ｄを１対１に対応させ、１個のＪＰＥＧ処理コアは１個のデータ格納領域２４Ａ〜２４Ｄにのみアクセス可能なように構成してもよい。これであれば、各ＪＰＥＧ処理コアは、専用のデータ格納領域に常時アクセス可能であり、各ＪＰＥＧ処理コアによるＪＰＥＧ処理の処理速度が向上する。
【００５４】
ここでは、４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄは、４個のデータ格納領域２４Ａ〜２４Ｄにそれぞれ転送されたＭＣＵを処理対象とし、それらにそれぞれアクセスするとして説明する。
【００５５】
符号化処理を行う時には、汎用メモリ２に格納されているＹＣｂＣｒ画像データ３のうち、４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄで処理するデータを、共有バスコントローラ２１及び共有バス１１を介して、バーストモードで対応する４個のデータ格納領域２４Ａ〜２４Ｄに転送する。このデータ転送は、バスアービター１２からバス占有権を獲得して行われる。次に、４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄが対応するデータ格納領域２４Ａ〜２４Ｄにアクセスして転送されたＹＣｂＣｒ画像データに対して符号化処理を行う。この処理は、ＪＰＥＧ処理部１４による共有バスコントローラ２１及び共有バス１１を介しての画像データの転送を行わずに実行できるため、共有バス１１の割当てを待つ時間が生じないため処理速度は高速であり、他の要素の共有バス１１へのアクセスを妨げない。符号化処理されたＪＰＥＧ画像データは一旦対応するデータ格納領域２４Ａ〜２４Ｄに格納される。転送された分のデータに対する４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄによる符号化処理が終了した時点で、格納領域２４Ａ〜２４Ｄに格納されたＪＰＥＧ画像データを。共有バスコントローラ２１を介して、汎用メモリ２内のＪＰＥＧ画像データ４の格納領域に転送する。このデータ転送は、バスアービター１２からバス占有権を獲得して行われる。
【００５６】
復号化処理を行う時には、汎用メモリ２に格納されているＪＰＥＧ画像データ４のうち、４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄで処理するデータを、共有バスコントローラ２１及び共有バス１１を介して、バーストモードで対応する４個のデータ格納領域２４Ａ〜２４Ｄに転送する。このデータ転送は、バスアービター１２からバス占有権を獲得して行われる。次に、４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄが対応するデータ格納領域２４Ａ〜２４Ｄにアクセスして転送されたＹＣｂＣｒ画像データに対して符号化処理を行う。上記のように、この処理の処理速度は高速であり、他の要素の共有バス１１へのアクセスを妨げない。復号化処理されたＹＣｂＣｒ画像データは一旦対応するデータ格納領域２４Ａ〜２４Ｄに格納される。転送された分のデータに対する４個のＪＰＥＧ処理コア２７Ａ〜２７Ｄによる復号化処理が終了した時点で、格納領域２４Ａ〜２４Ｄに格納されたＹＣｂＣｒ画像データを、共有バスコントローラ２１及び共有バス１１を介して、汎用メモリ２内のＹＣｂＣｒ画像データ３の格納領域に転送する。このデータ転送は、バスアービター１２からバス占有権を獲得して行われる。言い換えれば、復号化処理を行う時には、図１２に示した符号化処理時と逆方向のデータ転送が行われる。
【００５７】
共有バス１１を使っての汎用メモリ２へのアクセスにおけるアドレッシングに関しては、前述のように、符号化処理の場合には、どのＭＣＵのデータを取り込みたいかによって一意にアドレスを決定することができる。また復号化処理の場合には、データ格納領域２４Ａ〜２４Ｄに格納されたＪＰＥＧ画像データは、ＭＣＵ単位に対応するＪＰＥＧ画像データ４と同じ構造のデータが順に並んでいるため、この場合にもＭＣＵ単位のデータを順番に転送して配置することは容易に行える。
【００５８】
また、上記のように、共有バス１１の効率的な使用の面から考えると可能な限りバーストモードで転送することが重要であるが、たとえバーストモードで転送しなくても、ＪＰＥＧ処理コアは直接には共有バス１１を使用せずに処理が行えるので従来例に比べて処理の高速化が可能である。
【００５９】
図１３は、汎用メモリ２から４個のＭＣＵ１、ＭＣＵ２、ＭＣＵ３及びＭＣＵ４をバーストモードでデータ格納領域２４Ａ〜２４Ｄにデータ転送を行う様子を示す。
【００６０】
各ＭＣＵに関しては図７の構成のようにＹ，Ｃｂ，Ｃｒのデータとなっているとする。図１３に示すように、４個分のＭＣＵのデータを取り込むとすると、１ＭＣＵ当たりＹ成分では横方向に１６ドット分のデータを取り込むことになるため、４個のＭＣＵだと全部で６４ドット分のデータがシーケンシャルに並んでいることになる。１ドットのデータは１バイト(byte)であり、通常汎用メモリ２のバス幅は主プロセッサのバス幅と同じ３２／６４ビット（４／８バイト）とすることが多い。ここでは、３２ビットバス幅であるとすると１６バーストモードのアクセスを行うことにより、４個のＭＣＵのＹ成分の横１列のデータを取り込むことができる。
【００６１】
これに対してＣｂ、Ｃｒのデータはその半分である８バーストアクセスでデータを取り込むこととなる。
【００６２】
以上のような横１列のデータ転送を、Ｙ成分であれば１６列分、ＣｂとＣｒ成分であれば８列分取り込むことによって４ＭＣＵ分のデータを取り込むこととなる。
【００６３】
図１４は、データ格納領域２４Ａ〜２４Ｄから、ＭＣＵ１、ＭＣＵ２、ＭＣＵ３及びＭＣＵ４から符号化した４個のＪＰＥＧ画像データＪＭＣＵ１、ＪＭＣＵ２、ＪＭＣＵ３及びＪＭＣＵ４を、汎用メモリ２にバーストモードでデータ転送を行う様子を示す。データ格納領域２４Ａ〜２４Ｄに格納されたＪＰＥＧ画像データＪＭＣＵ１、ＪＭＣＵ２、ＪＭＣＵ３及びＪＭＣＵ４は、ＪＰＥＧ画像データ４と同じ構造のデータであるため、データを順番に転送して汎用メモリ２内のＪＰＥＧ画像データの領域にそのまま配置すればよい。
【００６４】
次にデータ格納領域２４Ａ〜２４Ｄの構成とそこに入るデータについて記載する。
【００６５】
図１５は、データ格納領域２４の構成を示す。データ格納領域２４には符号化／復号化処理を行うデータと処理を行った後のデータを格納するという側面があるため、図１５に示すように、データ格納領域２４は、処理前のＭＣＵを格納する領域２４Ｐと、ＭＣＵを処理したデータＪＭＣＵを格納する領域２４Ｑと、で構成される。
【００６６】
また、それぞれの面のアドレッシングについては論理的および物理的ないずれかの方法で独立制御できる形となっている方が性能面では優位だと考えられる。本実施例では、共有バスコントローラ２１を通してデータを取り込む場合に、１つのデータ格納領域２４Ｐに１つのＭＣＵを格納するように、また１つのデータ格納領域２４Ｑに１つのＪＭＣＵを格納するようにしている。ここでは、このデータ格納領域２４の枠組は論理的もしくは物理的に独立であるように示しているが、必ずしも物理的にすべてが独立している必要はない。
【００６７】
データ格納領域２４と共有バスコントローラ２１との間のデータのアドレッシングと、データ格納領域２４とＪＰＥＧ処理コア２７との間のデータのアドレッシングは、どのように行ってもよい。
【００６８】
図１６は、ＦＩＦＯ方式のデータ格納領域２４の動作を示す図である。ＦＩＦＯ方式であれば特別なアドレッシングを行うことなくデータを特定することが可能である。共有バスコントローラ２１からデータ格納領域２４に対してアクセス指示、具体的にはデータの書き込み又は読み出しを指示することにより、第１内部バス２６とデータ格納領域２４の間で全データを１つの固まりとしてデータ転送が行われる。また、ＪＰＥＧ処理コア２７からＪＰＥＧ処理部内制御部２５を介してデータ格納領域２４に対してアクセス指示を行うことにより、第１内部バス２６とデータ格納領域２４の間で全データを１つの固まりとしてデータ転送が行われる。
【００６９】
ＦＩＦＯ方式のデータ格納領域２４は、ＦＩＦＯメモリにより実現できる。この場合、処理前のＭＣＵを格納する領域２４Ｐと、ＭＣＵを処理したデータＪＭＣＵを格納する領域２４Ｑは、別のＦＩＦＯメモリで構成し、入出力の方向を逆にする。
【００７０】
しかし、データの部分的な再送などが必要な場合にはＦＩＦＯ方式は不利である。
【００７１】
図１６のＦＩＦＯ方式のデータ格納領域２４の代わりに、バスで接続する場合の一般的なアクセス方式である、アドレスを指定してアドレッシングする方式のデータ格納領域２４を使用することも可能である。図１７は、この場合のデータ格納領域２４の動作を示す図である。
【００７２】
図１７のアドレッシング方式では、共有バスコントローラ２１及びＪＰＥＧ処理コア２７から、データ格納領域２４に対してアドレスを指定してアクセスする。すなわち、読み出しを行う場合には、データ格納領域２４の読み出しを行うデータが格納されたアドレスを指定し、書き込みを行う場合には、データ格納領域２４の書き込みを行うデータが格納されたアドレスを指定する。この方式の場合には、データ格納領域２４は、例えば、デュアルポートメモリで構成する。
【００７３】
このアドレッシングを用いた方式であれば、再送などの対応は簡単であるが、ＦＩＦＯ方式に比べて、データを取り出す手続きおよびアドレス判断回路が必要である。
【００７４】
図１６及び図１７の構成例では、共有バスコントローラ２１及びＪＰＥＧ処理コア２７とデータ格納領域２４との間を同じアドレッシング方式としたが、一方を異なる方式とすることも可能である。例えば、共有バスコントローラ２１とデータ格納領域２４との間をアドレスを指定してアドレッシングする方式とし、ＪＰＥＧ処理コア２７とデータ格納領域２４との間をＦＩＦＯ方式をすることも、その逆も可能である。
【００７５】
更に、図１８に示すように、データ格納領域２４とＪＰＥＧ処理コア２７の間を、ＪＰＥＧ処理コア２７より各データ格納領域２４Ａ、２４Ｂに対して、ＭＣＵ番号を指定したデータ（ここではＭＣＵ２）を転送するような指示を行うパケットが転送され、それに対応したＭＣＵ番号のデータを持ったデータ格納領域（ここでは２４Ｂ）が応答パケットを転送するというデータ転送方法も可能である。ＪＰＥＧ処理コア２７での処理結果をデータ格納領域２４に格納する場合も同様である。
【００７６】
本発明の場合には、データ格納領域へのアドレッシングについては、共有バスコントローラ２１とデータ格納領域２４との間でデータ転送が行え、データ格納領域２４とＪＰＥＧ処理コア２７の間でデータ転送が行えれば、どのような方法でもよいが、共有バスコントローラ２１による第１内部バス２６の制御方法に適した形で決定する必要がある。また、データ格納領域２７の構成は、どのようなアドレッシング方法を用いるかに応じて適宜決定する。
【００７７】
なお、図１２から図１４では、各ＭＣＵ及びＪＭＣＵは物理的に独立したデータ格納領域に格納されるように示したが、図１９に示すように、物理的には１個のデータ格納領域に複数のＭＣＵ及びＪＭＣＵにしても、データ格納領域とＪＰＥＧ処理コアの間の第２内部バスのアドレスで論理的に分かれていれば、論理的には等価である。
【００７８】
図２０は、図１７に示したアドレスを指定してアドレッシングする方式の場合の汎用メモリ２から各データ格納領域２４へのデータ転送のタイムチャートを示し、（Ａ）が汎用メモリ２から共有バスコントローラ２１への転送を示し、（Ｂ）が共有コントローラ２１から各データ格納領域２４への転送を示す。
【００７９】
図２０の（Ａ）に示すように、共有バスコントローラ２１がバスアービター１２にバス権（バスReq)を要求し、バス許可（バスAck)が出されると、汎用メモリ２の転送するＭＣＵが格納されたアドレスを出力する。これに応じて汎用メモリ２はデータを出力する準備を行い、所定時間後に準備が整うと、所定サイクル連続して（ここでは７サイクル連続で）データを出力する。共有バスコントローラ２１は、共有バス１１に出力されたデータを取り込む。
【００８０】
図２０の（Ｂ）に示すように、共有バスコントローラ２１は、データを取り込むと、第１内部バス２６にアドレス及び取り込んだデータを出力し、データ格納領域２４に書き込む。共有バスコントローラ２１は、取り込んだデータをそのまま（スルーで）第１内部バス２６に出力しても、一旦バッファした後に第１内部バス２６に出力してもよい。
【００８１】
図２１は、図１７に示したアドレスを指定してアドレッシングする方式の場合の各データ格納領域２４から汎用メモリ２へのデータ転送のタイムチャートを示し、（Ａ）が各データ格納領域２４から共有コントローラ２１への転送を示し、（Ｂ）が共有バスコントローラ２１から汎用メモリ２への転送を示す。
【００８２】
図２１の（Ａ）に示すように、共有バスコントローラ２１は、各データ格納領域２４のＪＭＣＵが格納されたアドレスを第１内部バス２６に出力し、各データ格納領域２４が指示されたアドレスのＪＭＣＵデータを第１内部バス２６に出力する。共有バスコントローラ２１は、第１共有バス１１に出力されたデータを取り込む。共有バスコントローラ２１は、第１内部バス２６に出力されたデータを取り込む。
【００８３】
図２１の（Ａ）に示すように、共有バスコントローラ２１がバスアービター１２にバス権（バスReq)を要求し、バス許可（バスAck)が出されると、汎用メモリ２の転送するＪＭＣＵを格納するアドレスを出力すると共に、所定サイクル連続して（ここでは７サイクル連続で）データを共有バス１１に出力する。これに応じて汎用メモリ２は共有バス１１のデータを取り込み、指示されたアドレスに格納する。
【００８４】
図２２は、図１７に示したアドレスを指定してアドレッシングする方式の場合の各ＪＰＥＧ処理コア２７と各データ格納領域２４の間のデータ転送のタイムチャートであり、（Ａ）がデータ格納領域２４からＪＰＥＧ処理コア２７へのデータ転送を、（Ｂ）がＪＰＥＧ処理コア２７からデータ格納領域２４へのデータ転送を示す。
【００８５】
図２２の（Ａ）に示すように、ＪＰＥＧ処理コア２７がＪＰＥＧ処理部内制御部２５に第２内部バス２８のバス権（バスReq)を要求し、バス許可（バスAck)が出されると、データ格納領域２４の処理対象のＭＣＵを格納したアドレスを第２内部バス２８に出力する。これに応じてデータ格納領域２４はデータを出力する準備を行い、所定時間後に準備が整うと、所定サイクル連続して（ここでは７サイクル連続で）データを第２内部バス２８に出力する。ＪＰＥＧ処理コア２７は、第２内部バス２８に出力されたデータを取り込む。
【００８６】
図２２の（Ｂ）に示すように、ＪＰＥＧ処理コア２７がＪＰＥＧ処理部内制御部２５に第２内部バス２８のバス権（バスReq)を要求し、バス許可（バスAck)が出されると、データ格納領域２４の処理済みのＪＭＣＵを格納するアドレスを第２内部バス２８に出力すると共に、処理済みデータを出力する。これに応じてデータ格納領域２４はデータを取り込む（書き込む）準備を行い、所定時間後に準備が整うと、所定サイクル連続して（ここでは７サイクル連続で）データを書き込む。
【００８７】
なお、図１５に示すように、データ格納領域２４は、処理前データを格納する領域２４Ｐと、処理済データを格納する領域２４Ｑで構成されるため、処理が終了してＪＭＣＵが処理済データを格納する領域２４Ｑに格納された後は、ＪＭＣＵを汎用メモリ２に転送する前に、次に処理するＭＣＵを処理前データを格納する領域２４Ｐに転送することも可能である。
【００８８】
以上、汎用メモリとデータ格納領域間のデータ転送及びＪＰＥＧ処理コアとデータ格納領域との間のアクセス動作を説明したが、上記のように各種の変形例が可能である。
【００８９】
実際のＪＰＥＧ処理では、直前のＭＣＵとの差をＤＣ成分とし、ＭＣＵの先頭ドットから始まって、隣り合うドットとの差分をＡＣ成分として求めていくため、処理にはＭＣＵ内のデータの他に隣接した直前のＭＣＵの先頭ドットのデータが必要となる。これに関しての入手方式も複数ある。
【００９０】
まず１つ目は共有バスコントローラ２１経由でデータを格納している時に必要データをＪＰＥＧ処理内部制御部２５に取り込み、その情報が必要なＪＰＥＧ処理コアに対して、能動的もしくは受動的に通知を行う方法である。
【００９１】
２番目は、データ格納領域２４に該当のデータがＭＣＵとセットで専用に格納され、ＪＰＥＧ処理コア２７の指示に従って、転送される方法である。
【００９２】
他にも２番目の方法と構成は類似しているが、図１９に示すように複数のＭＣＵが（物理的には）１つのデータ格納領域に格納されている場合には、セットで専用に格納されているというより、処理するＭＣＵもその前のＭＣＵのデータ自身もそこに存在している。そのため、指示があればデータを転送するという方法で容易に実現でき、データ取り出し指示インタフェースのやり方はアドレッシング同様複数考えられる。
【００９３】
次に、ＪＰＥＧ処理コアの動作クロック周波数の変更について説明する。図２に示すように、本実施例のＪＰＥＧ処理部１４は、動作クロック制御部２２を有し、ＪＰＥＧ処理コア２７Ａ〜２７Ｄの動作状態に応じてその動作クロック周波数を変更することにより消費電力を低減している。例えば、ＪＰＥＧ処理を高速で行う必要がない時には、ＪＰＥＧ処理コア２７Ａ〜２７Ｄの動作クロック周波数を低くする。動作クロック制御部２２は、ＪＰＥＧ処理部内制御部２５内に設けることも可能である。
【００９４】
図２３は、動作クロック制御部２２の構成を示す。一般的にＬＳＩ内部で使用されるクロックは、外部入力の源発振信号よりＰＬＬ回路３１などを使用してより早い周波数を作り出したあとに、必要に応じて分周回路３２で分周などを行っている。本実施例ではあらかじめ分周回路３２で複数の周波数パターンを準備して、各ＪＰＥＧ処理コアに対応して設けたセレクタ３４に入力する。選択入力３３は、ＪＰＥＧ設定格納レジスタ２３に格納された動作モードパターンを受けて、セレクタ３４からどの周波数のクロックを出力するかを制御する。このようにして選択された周波数のクロックが各ＪＰＥＧ処理コアに供給される。
【００９５】
実際の動作については、例えば動作周波数が１／２となると消費電力は１／４となる。そのため、後述するＪＰＥＧ処理コアの動作個数の制御と合わせて、動作クロック周波数を１／２2としてＪＰＥＧ処理コアの動作個数を２倍にすると、性能はそのままで全体の消費電力は１／４×２＝１／２となる。
【００９６】
また共有バスを占有している時間は大幅に短縮されるため、共有バスを駆動している時間が短くなることによる消費電力削減も同時に見込むことができる。
【００９７】
ＪＰＥＧ処理コア２７の動作クロック周波数はデータ格納領域２４へのデータ転送もしくはデータ格納領域２７からのデータ転送とは無関係であり、あくまでもＪＰＥＧ処理コア２７の動作に関係があるものである。そのため動作周波数の変更は上記のＪＰＥＧ符号化処理であれば、すべてのＪＰＥＧ処理コア２７が現在実施している符号化処理を終え、次のデータ格納領域中のデータ処理を開始するところで周波数変更を行う。この切り替えタイミング以前に行われた変更に関しては周波数変更の追従は行わない。
【００９８】
次に、ＪＰＥＧ処理コアの周波数変更を実施した場合におけるデータ転送について説明する。
【００９９】
周波数変更が行われている部分は、あるＪＰＥＧ処理コア２７に割り当てられている単位でのＪＰＥＧ処理コア２７部分とデータ格納領域２４がセットで周波数設定されている。更に、ある周波数に対してのＴ倍速のクロックで制御を行う。データ格納領域２４と共有バスコントローラ２１間はシステムクロックで動作している。データ格納領域２４はデュアルポートメモリであるため、このような構成が可能である。
【０１００】
ここで、ＪＰＥＧ処理コア２７とデータ格納領域２４間のインタフェースについて周波数変更に対しての具体例を説明する。
【０１０１】
図２４は、要求・許可(Req & Ack)方式によるアクセス方式の例を説明する図であり、（Ａ）が信号経路を、（Ｂ）が信号の流れを示す。
【０１０２】
この方式は、非常に単純でアクセスの主導的立場であるＪＰＥＧ処理コア２７側からアクセスに対する要求(Req)を出し、アクセスを受け入れられる状態になると許可(Ack)を返すという方法である。この場合も、第２内部バス２８のバスアービトレーション機能は、ＪＰＥＧ処理部内制御部２５内に設けられる。
【０１０３】
図２のＪＰＥＧ処理部１４中において、第２内部バス２８がデータ格納領域２４Ａ〜２４ＤおよびＪＰＥＧ処理コア２７Ａ〜２７Ｄを接続しており、ＪＰＥＧ処理部内制御部２５が第２内部バスのバス権を管理するこの方法であれば、バス権を取った後の転送方法は、前述のどの方法でもよい。必要なことはアクセスされる側のデータ格納領域２４の特定であり、それさえ行われればお互いにアクセスを行う同士の周波数は一致しているため、簡単にアクセスが行われる。
【０１０４】
図２４では、バス権を持ったＪＰＥＧ処理コアが処理するＭＣＵを格納したデータ格納領域２４に対して、アクセスされることを通知している。
【０１０５】
また、図１９に示すように物理的には同一のところに複数のデータ格納領域２４が存在し、ＪＰＥＧ処理コア２７とのインタフェース箇所が共用化されている場合でも、バス権を持ったＪＰＥＧ処理コア２７がどれかによって、周波数は特定されるため、その共用化されているインタフェース箇所の周波数を変更すれば、問題なくアクセスできる。その場合の動作を図２５に示す。データ格納領域２４には周波数選択部２９が設けられ、ＪＰＥＧ処理部内制御部２５からのアクセスコア番号の通知に応じて複数の周波数入力から対応する周波数の動作クロックを選択し、データ格納領域２４はこの選択された動作クロックで動作する。
【０１０６】
図２６は、トークン(Token)方式によるアクセス方式の例を説明する図であり、（Ａ）が信号経路を、（Ｂ）が信号の流れを、（Ｃ）が動作タイムチャートを示す。
【０１０７】
図２６の（Ａ）に示すように、トークン方式によるアクセス方式では、ＪＰＥＧ処理コア２７Ａ〜２７Ｄ間でトークンを巡回させ、アクセスを行いたいＪＰＥＧ処理コアが自分がトークンを持っている時点で、図２６の（Ｂ）及び（Ｃ）に示すように、アクセスを開始し、アクセス完了後、次のＪＰＥＧ処理コアにトークンを渡す。この時、トークンの獲得がＪＰＥＧ処理部内制御部２５に通知され、どのＪＰＥＧ処理コアがアクセスをするかが分かるので、図２４と同じように、アクセスされるデータ格納領域に通知してアクセスを行う。ここで、動作クロック周波数のＴ倍でのアクセスであるため、アクセス方法を非同期によるやりとりとし、必ずどの周波数でも認識可能な長さの規定によるアドレス出力およびアクセス依頼に対して、アクセス動作認識および読み出しデータ出力、書き込み完了を行う。
【０１０８】
図２７は、別のアクセス方式であるスイッチ・マトリクス(sw matrix)構造による接続方式の構成を示す図である。
【０１０９】
この方式では、スイッチ・マトリクス４０によりデータ格納領域２４およびＪＰＥＧ処理コア２７間の接続がすべて支配されており、論理的に直結している。また、スイッチ・マトリクス４０内のスイッチ自体の構成については、一般的なShardメモリ型のスイッチでもクロスバー型のスイッチでも他のスイッチ構成でもよい。
【０１１０】
これまで説明したアクセス方法の中でこのスイッチ・マトリクス方式に最も適したアクセス方法は、図１８に示したパケット方式である。
【０１１１】
図２８は、スイッチ・マトリクス方式でのパケットの例を示す図である。
【０１１２】
図２８の（Ａ）は、ＪＰＥＧ処理コア２７からデータ格納領域２４への読み出し(Read)コマンドのパケットである。ディスティネーションアドレスは、読み出すデータが格納されたデータ格納領域２４における位置（アドレス）を示す。ソースアドレスは、アクセスを行っているＪＰＥＧ処理コアの番号を示す。コマンドは、アドレスで示される読み出し開始位置から何バイト転送するかを示す。トレーラーは、このパケットが正しいかを判断するためのもので、ＣＲＣなどの総パケットバイト数や、チャックサムや、プロトコルに応じて付加される。
【０１１３】
図２８の（Ｂ）は、ＪＰＥＧ処理コア２７からデータ格納領域２４への書き込み(Write)コマンドのパケットである。ディスティネーションアドレスは、書き込むデータを格納するデータ格納領域２４における位置（アドレス）を示す。ソースアドレス、コマンド及びトレーラーは、図２８の（Ａ）と同じである。データは、実際に書き込むデータを示す。
【０１１４】
図２８の（Ｃ）は、データ格納領域２４からＪＰＥＧ処理コア２７への書き込み(Write)アクノリッジ・パケットである。ディスティネーションアドレスは、アクセスが行われたデータ格納領域２４を示す。ソースアドレスは、アクセスを行ったＪＰＥＧ処理コアの番号を示す。コマンドは、Writeコマンドに対するアクノリッジであり、必要があれば、どのようなものをWriteしたかを示す。例えば、アドレスで示される書き込み開始位置から何バイトWriteしたかを示す。トレーラーは、このパケットが正しいかを判断するためのもので、ＣＲＣなどの総パケットバイト数や、チャックサムや、プロトコルに応じて付加される。
【０１１５】
図２８の（Ｄ）は、データ格納領域２４からＪＰＥＧ処理コア２７への読み出し(Read)アクノリッジ・パケットである。ディスティネーションアドレス、ソースアドレス、コマンド、データ及びトレーラーは、Readコマンドに対するアクノリッジである点以外は図２８（Ｂ）と同じである。このパケットが正しいかを判断するためのもので、ＣＲＣなどの総パケットバイト数や、チャックサムや、プロトコルに応じて付加される。
【０１１６】
次に、ＪＰＥＧ処理コア２７Ａ〜２７Ｄ及びデータ格納領域２４Ａ〜２４Ｄの動作個数の動的変更について説明する。これは、動作の必要のないＪＰＥＧ処理コア２７Ａ〜２７Ｄ及びデータ格納領域２４Ａ〜２４Ｄは動作を停止して消費電力を低減するものである。
【０１１７】
このＪＰＥＧ処理コア２７Ａ〜２７Ｄ及びデータ格納領域２４Ａ〜２４Ｄの動作状態変更は、周波数変更と同様に、ＪＰＥＧ処理コアが符号化処理を終えたところで実施する。処理に使用するＪＰＥＧ処理コアの数が減る場合には、次のデータ格納領域中のデータの符号化処理の並列化の時に使用するＪＰＥＧ処理コア数を減らして動作を行う。またＪＰＥＧ処理コア数が多くなる場合には、データ格納領域中に次に割り当てるデータ転送が行われていないので、データ格納領域に空きがあれば、先行してデータ転送を実施し、できるだけロスの少ない形での処理ができるようにする。
【０１１８】
またデータ格納領域の増減も同様であるが、データ格納領域が減る場合には現在までに先行して取り込んでいる画像データもしくは符号化処理後のデータが処理された時点で、新たにそのデータ格納領域を未使用とする。逆にデータ格納領域が追加された場合にのみ、そのデータ格納領域を有効に使用するために画像データの先行転送を実施する。
【０１１９】
次に、ＪＰＥＧ復号化処理を説明する。
【０１２０】
図２９はＪＰＥＧ復号化処理時の共有メモリからデータ格納領域へのデータ転送の様子を示し、図３０はＪＰＥＧ復号化処理時のデータ格納領域から共有メモリへのデータ転送の様子を示し、それぞれ符号化時の図１３及び図１４に対応する。
【０１２１】
図２９に示すように、ＪＰＥＧ復号化処理時には、汎用メモリ２に格納されたＪＰＥＧ画像データ４から各ＪＰＥＧ処理コアで処理する単位のデータ、例えばＭＣＵに対応するＪＭＣＵを、共有バスコントローラ２１を介して、各ＪＰＥＧ処理コアに対応するデータ格納領域２４の処理前格納領域に転送する。例えば、ＪＰＥＧ処理コア２７Ａで処理するＪＭＣＵを、対応するデータ格納領域２４Ａの処理前格納領域にデータ転送する。
【０１２２】
図３０に示すように、各ＪＰＥＧ処理コアで処理されて復号化された画像データのＭＣＵは、データ格納領域の処理済格納領域に格納される。格納されたＭＣＵを、データ格納領域２４Ａの処理済格納領域から、共有バスコントローラ２１を介して、汎用メモリ２に転送する。
【０１２３】
このように、ＪＰＥＧ復号化処理時のデータ転送は、転送する方向とデータ格納領域の処理前格納領域と処理済格納領域が逆であるだけで、他は同じである。
【０１２４】
図１１の復号処理の流れにおいて、ステップＳ２７のＭＣＵの復号の前までの処理に関しては、ＪＰＥＧ処理部内制御部２５がデータを解析し実行する。ステップＳ２７のＭＣＵの復号処理に関しては、符号化と同様に並列処理を行うために、まず最若番のＪＰＥＧ処理コアがＭＣＵの区切りを見つけるためにハフマン復号化処理を実施し、ＭＣＵの区切りがわかった段階で次のＪＰＥＧ処理コアが同様にＭＣＵの区切りを見つけるためにハフマン復号化処理を順次行う。その後の復号化処理は独立しているため、それぞれのＪＰＥＧ処理コアが並列処理で復号化処理を実行する。その復号化処理で得られた画像データは、データ格納領域の処理済格納領域に一旦格納され、例えば、４ＭＣＵ分の処理が終わった段階でバースト転送で汎用メモリ２に書き込まれる。このバースト転送は符号化でのデータ取り込みと同様に通常では離散的なアドレス体系になっているため、転送処理のトータル時間が非常にかかっていたのに対して、まとめてバースト転送を行うことにより非常に効率的にデータ転送を行うことができる。
【０１２５】
次に、ＪＰＥＧ設定格納レジスタ２３に設けられた、ＪＰＥＧ制御を行う上で必要な制御レジスタについて、それぞれのレジスタの意味と詳細について順に説明する。
【０１２６】
図３１は、本実施例のＪＰＥＧ制御レジスタの構成を示す図である。図示のように、１６個のレジスタが設けられ、各レジスタは、１６個のＪＰＥＧ処理コア、３２個のデータ格納領域の構成で、３パターンの動作周波数で符号化(encode)処理及び復号化(decode)処理を最大２処理同時に行えるものとしてビット数などが設定されている。ただし、本発明は、これに制限されるものではない。
【０１２７】
図３２は、動作モードレジスタの構成を示す。動作モードレジスタは、ＪＰＥＧ処理コアの動作を設定するものである。ＪＰＥＧ処理の基本動作としては符号化(encode)と復号化(decode)があるため、それらのうちどちらを実行するのか、およびどの処理をどのＪＰＥＧ処理コアで処理するかを設定する。また各処理を行うＪＰＥＧ処理コアの周波数設定も本レジスタにより行われる。ＪＰＥＧ処理コアおよびデータ格納領域はすべて等価であるため、各処理に割り当てるＪＰＥＧ処理コアの数とデータ格納領域の数および周波数設定と、動作していないものに対して割り当てる周波数設定を行うことができる。
【０１２８】
図３２の（Ａ）のレジスタは、符号化(encode)処理及び復号化(decode)処理の個数分設けられ、各処理に割当てるＪＰＥＧ処理コアとデータ格納領域が規定される。（Ｂ）は、各処理を行うか行わないか（停止する）、及び動作クロック周波数を設定し、各処理に２ビットが割当てられ、”００”で停止、”０１”、”１０”、”１１”で周波数を設定する。
【０１２９】
図３３は、コマンドレジスタの構成を示し、（Ａ）の各ビットは、各ＪＰＥＧ処理コアのリセット実行指示を行い、（Ｂ）は符号化(encode)処理及び復号化(decode)処理のそれぞれのリセット実行指示及び全コアのリセット実行指示を行い、（Ｃ）は符号化(encode)処理及び復号化(decode)処理のそれぞれの起動指示を行う。
【０１３０】
図３４は、動作状態表示レジスタの構成を示し、各ＪＰＥＧ処理コアに２ビットが割当てられ、”００”で非動作状態を、”０１”でリセット中／障害発生中を、”１０”で符号化処理中を、”１１”で復号化処理中を示す。
【０１３１】
図３５は、画像縦／横サイズレジスタの構成を示す。このレジスタは、符号化(encode)及び復号化(decode)の処理ごとに設けられ、符号化を行う画像又は復号化を行う画像の縦／横サイズを示す。符号化時にはこのレジスタを読み取って符号化処理を行う画像のサイズを認識し、復号化時にはこのレジスタに復号化の結果を書き込む。
【０１３２】
図３６は、割込み状態／マスクレジスタの構成を示し、現在の割り込み状態およびマスク状態を示す。（Ａ）は、各１ビットが、符号化(encode)処理及び復号化(decode)処理が正常に終了したことを示す割込み状態及び処理に異常が生じた異常割込み状態を、示す。（Ｂ）は、各１ビットが、処理のマスク状態を示す。
【０１３３】
図３７は、エラー割り込み状態詳細／マスクレジスタの構成を示し、（Ａ）及び（Ｂ）はそれぞれ４×８ビット構成で、各ビットが各処理に対応し、エラー状態及びマスク状態と共に４種類のエラー要因及びマスク状態を示す。主なエラー要因としては、
・動作中にリセットを実行し、動作が途中で停止した。
【０１３４】
・符号化／復号化用データ取り込み中のバスエラー
・圧縮データ解析中に発生したエラー（ＪＰＥＧヘッダ処理）
・伸長時のハフマン符号化処理中に発生したエラー
・バッファオーバーフロー
・符号化／復号化処理中のタイマータイムアウト、などがある。
【０１３５】
図３８は、データバッファ開始アドレスレジスタの構成を示す。このレジスタは符号化／復号化処理ごとに設けられ、（Ａ）はＪＰＥＧデータの開始アドレスを示し、復号化時にはこのレジスタを読み取って、復号化処理を行うＪＰＥＧデータの開始アドレスを認識し、符号化時にはこのレジスタの開始アドレスから符号化結果（変換されたデータ）を書き込む。（Ｂ）は各成分の開始アドレスを示し、符号化時にはこのレジスタを読み取って符号化処理を行う画像データの各成分の開始アドレスを認識し、復号化時にはこのレジスタの開始アドレスから復号化結果を書き込む。
【０１３６】
図３９は、ＪＰＥＧデータサイズレジスタの構成を示す。このレジスタは、符号化処理の処理済みのＪＰＥＧデータ量をリアルタイムにレポートする。このレジスタは、同時に行うことが可能な符号化処理の個数分設けられる。
【０１３７】
図４０は、障害監視タイマ／コア番号通知レジスタの構成を示し、符号化／復号化処理ごとに設けられる。（Ａ）は障害の発生を監視するためのタイマであり、（Ｂ）は最初に障害が発生したＪＰＥＧ処理コアの番号を示す。
【０１３８】
複数のＪＰＥＧ処理コアで１つの符号化／復号化処理を行う場合に、ほぼ同時に複数のＪＰＥＧ処理コアが起動されるが、今回の発明では処理サイズが小さいため、大きく処理時間が変わることはなく、ある一定時間差以内に同時処理を行ったすべての処理が終わることが予想される。そのため、直前の処理を行っているＪＰＥＧ処理コアの動作終了時間よりも次の処理を行っているＪＰＥＧ処理コアの動作終了が本障害監視タイマに設定された時間経っても終了しない場合には障害とみなし、障害通知を行う。全てのビットがゼロの時には監視を行わない。また障害通知後の動作は次に説明する障害時アクションレジスタの設定による。
【０１３９】
（Ｂ）は、発生ビットは障害が発生すると”１”になり、それと共に障害が発生したＪＰＥＧ処理コアの番号を通知書き込み、通知する。発生ビットに”０”を書き込むとＪＰＥＧ処理コアの番号と共にクリアされる。複数のＪＰＥＧ処理コアが同時にタイムアウトとなった場合には、一番最初にタイムアウトとなったＪＰＥＧ処理コア番号を示す。
【０１４０】
図４１は、障害時アクションレジスタの構成を示し、符号化／復号化処理ごとに設けられる。このレジスタは、前述のタイムアウト障害が発生した時にどのような処理を行うか規定する。図示の例では、設定された値により、以下のアクションを行う。
【０１４１】
”０００”：何もしない。
【０１４２】
”００１”：余っているＪＰＥＧ処理コアへの自動割り当て動作
障害が発生したＪＰＥＧ処理コアを停止し、現在使用していないＪＰＥＧ処理コアに動作を割り当てる。割り当てるＪＰＥＧ処理コアがない場合には障害ＪＰＥＧ処理コアの切り離しを行う。
【０１４３】
”０１０”：自動再開
自己リセットを行って再度動作を再開する。ただし無限の再開になる可能性があるため、レジスタの再開スレッシュホールドの値の回数まで再開を繰り返し行い、それ以降は障害ＪＰＥＧ処理コアを切り離す。
【０１４４】
”０１１”：障害切り離し
障害ＪＰＥＧ処理コアを切り離す。障害ＪＰＥＧ処理コアが実行していた処理に関しては、別のＪＰＥＧ処理コアが引き続き実行する。
【０１４５】
”１００”：全体の動作を完全にストップ
これ以外にも量子化テーブルやハフマンテーブルを規格書に記載されている以外のものを使用するために、内部にバッファを持ち、そこに値を入れてそれを使用したり、規格で決められているものと切り替えて使用するなどについての動作を規定するためにレジスタを設けてもよい。
【０１４６】
次に、上記のようなレジスタに具体的な値を設定して動作を行う場合の実際の動作の流れについて説明する。
【０１４７】
以下の条件でレジスタに値を設定し、ＪＰＥＧ符号化処理を行うものとする。
【０１４８】
動作モード：割り当てＪＰＥＧ処理コア数＝４個、データ格納領域＝８個、符号化(encode)処理Ａに割り当て、周波数はパターン０、
割り込み：終了割り込み、異常割り込み全解除、エラー要因詳細マスクも全解除
画像縦横サイズ：１６００×１２００
障害監視タイマ：１０００ＣＬＫ
障害アクション：余っているＪＰＥＧ処理コアへ自動割り当て
バッファ開始アドレス：０ｘ１０００００００番地
画像データアドレス：Ｙ    ０ｘ２０００００００番地
Ｃｂ  ０ｘ３０００００００番地
Ｃｒ  ０ｘ４０００００００番地
これらの設定を実施したあとにコマンドレジスタで符号化処理Ａの動作を起動する。起動後、ＪＰＥＧのファイルの実際のＭＣＵの符号化されたデータより前に格納されるＳＯＩ、フレームヘッダ、量子化テーブル、ハフマンテーブルなどに関しては、設定された内容もしくは規格に記載されている内容など、実際の符号化処理に使用するものをＪＰＥＧ処理内部制御部２５で処理を行い、ＪＰＥＧGデータのバッファ開始アドレスに記載する。
【０１４９】
実際にデータを符号化する処理である、図１０で示したステップＳ５、Ｓ６及びＳ１２を行うために、画像データアドレスを元にアドレス計算を行ってデータ格納領域にデータを格納していく。例示の設定では８個のデータ格納領域を確保しているため、まず先頭のアドレスより８ＭＣＵ分のデータをバーストアクセスでデータ格納領域に転送していく。従来の方式ではＭＵ単位での転送であるため、各列毎にアドレスが大きく切り替わるため、データ転送効率が非常に悪く、図９の下のようになってしまうが、８ＭＣＵまとめて転送を行うため、図９の上のようにＭＣＵの横１列分の８倍のデータをバーストアクセスで転送できる。それを８列分データ転送が完了した後にステップＳ５の処理を開始する。
【０１５０】
データ転送とＪＰＥＧ処理コアおよびデータ格納領域の割り当ての様子を図４２に示す。実際のステップＳ５の動作ではＤＣ成分に関しては隣のブロックのＤＣ成分との差を記録することになるが、上記の通り並列処理を行う分のデータを先に取り込んでおり、隣のＤＣ成分との差分はわかっているため、それぞれのＪＰＥＧ処理コアが並列にＭＣＵ単位で処理を行う。各ＪＰＥＧ処理コアはＭＣＵ単位でのＪＰＥＧ符号化処理が終了すると、その符号化したデータをデータ格納領域に一旦書き込む。ＪＰＥＧ符号化データはもとの画像データよりも圧縮されており、そのサイズはかなり小さくなっていることが予想されるため、ＳＤＲＡＭの動作で説明した通りある程度まとまった単位で転送した方が効率が良くなる。
【０１５１】
また各ＪＰＥＧ処理コアの動作はほぼ同時に開始し、同時に終了するため、この例であれば４つのＭＣＵが処理された段階で、ＪＰＥＧ符号化データをまとめてバースト転送することになる。またすでに次の処理を行う各ＪＰＥＧ処理コア分のＭＣＵデータは入手済みであるため、引き続きＪＰＥＧ符号化処理を継続して行えるとともに、ＪＰＥＧ符号化データを書き込み後に処理済のＭＣＵデータが格納されていたデータ格納領域に４ＭＣＵC分の次のデータを取り込むことができる。つまり並列処理分だけでなく、データ転送がＪＰＥＧ処理コアのＪＰＥＧ符号化処理時間と完全にオーバーラップすることになり、更なる高速化が行える。
【０１５２】
次に、あるＪＰＥＧ処理コアがタイムアウト(Timeout)エラーを起こした場合を考える。例では障害時自動割り当て、障害通知ありという設定になっており、元々ＪＰＥＧ処理コア２７Ａ〜２７Ｄが割り当てられていたとし、ＭＣＵ１〜ＭＣＵ４を処理中にＪＰＥＧ処理コア２７Ｃが異常となったことを想定して、その動作について説明する。
【０１５３】
ＪＰＥＧ処理コア２７Ｃがタイムアウトしたことにより、障害情報がレジスタに書き込まれるとともに割り込みが発生する。またタイムアウト詳細表示でどのＪＰＥＧ処理コアがタイムアウトとなったかがわかる。
【０１５４】
また、ＪＰＥＧ処理コアの動作状態は動作状態表示レジスタで新しくＪＰＥＧ処理コア２７Ｅが割り当てられたことがわかる。割り当てられたＪＰＥＧ処理コア２７ＥはＪＰＥＧ処理コア２７Ｃが実際実施するはずだった符号化処理を行いＪＰＥＧ符号化が完了した段階で、正常な動作と同様に共有バッファへのデータ転送が行われる。
【０１５５】
またアクションレジスタが自動再開の場合には、再開スレッシュホールドの値に達するもしくは動作が正常動作となるまで障害となると自己リセットを発生させて、復旧できるようにする。
【０１５６】
障害切り離しが指定されていた場合には、新たなＪＰＥＧ処理コアを割り当てたりリセットによる自己復旧作業を行わず、障害を通知後、すでに処理が終了しているＪＰＥＧ処理コア２７ＡにＪＰＥＧ処理コア２７Ｃの処理を肩代わりさせ、処理が終了した段階で正常な動作と同様に共有バッファへのデータ転送を行うとともに、その後の動作は３個のＪＰＥＧ処理コアで実行される。
【０１５７】
全体の動作を完全に停止する場合には、この障害が発生した時の並列処理に関しては、処理が終了しているＪＰＥＧ符号化データがあったとしてもその転送は行わない。次にこれらの処理を再開するためには、この符号化処理で使用していたＪＰＥＧ処理コアに対してリセットを発生させたあとに、再度初期設定から実施する。
【０１５８】
上記で障害となったＪＰＥＧ処理コア２７Ｃはどのアクションが選択されていたとしても、障害となった瞬間にリセット状態となり、リセットを解除しないかぎり符号化／復号化処理に割り当てることはできない。
【０１５９】
次にＪＰＥＧ処理コアがタイムアウトした場合についての動作を説明する。ＪＰＥＧ処理コアがタイムアウトした場合には例では別のＪＰＥＧ処理コアを割当てることになっているため、符号化処理の時と同様に、たとえばＪＰＥＧ処理コア２７Ｃが障害となった場合にはＪＰＥＧ処理コア２７Ｅが新たに割当てられてＪＰＥＧ処理コア２７Ｃの動作を引き継ぐ。上記の説明の通り、ＭＣＵの区切りがわかっているところまで処理が進んでいた場合には別のＭＣＵを処理しているＪＰＥＧ処理コアの方が動作が先に完了してしまうが、共有バッファへのデータ転送はＪＰＥＧ処理コア２７Ｅの動作が完了するまで、待ってから転送することになる。
【０１６０】
またアクションが自動復旧、切り離し、全動作停止に関しては符号化処理および前述の別ＪＰＥＧ処理コア割り当てと同様な動作となる。
【０１６１】
次にタイムアウト処理の詳細を説明する。
【０１６２】
図４３はタイムアウト検出処理を説明する図である。図４３に示すように、本発明ではシステムの絶対時間を示すタイマ４１が存在しており、それぞれのＪＰＥＧ処理コアの処理開始時間と処理終了時間を監視して格納している。タイムアウトの条件を満たしているかどうかは、各ＪＰＥＧ処理コアの処理開始時間から見て、直前の処理を実施しているＪＰＥＧ処理コアの処理時間＋タイムアウト時間（タイムアウトレジスタ設定レジスタ４２に設定された時間）が過ぎても処理が終わっていない状態であることである。
【０１６３】
つまりシステムの絶対時間で各ＪＰＥＧ処理コアの処理時間を割り出す本発明の方法であれば、タイムアウトが実際に発生した場合でも、直前の処理を実施しているＪＰＥＧ処理コアが処理にかかった時間は新しい処理が実行されるまで保存されているため正確に通常かかると思われる処理時間に対するタイムアウトの時間として設定することができ周波数の変更による正常動作時の処理時間を考慮して タイムアウトの時間を設定する必要がない。
【０１６４】
また上記の処理時間を見ることができれば、処理量が把握することにより容易に実施しようとしている符号化／復号化処理に必要な時間を予想することができる。
【０１６５】
この実施案で説明したデータ転送方法、障害監視方法、障害からの復旧方法は一例であり、またＪＰＥＧ処理方法も記載した以外の方式もあり得る。
（付記１）
画像メモリに接続される共有バスと、
前記共有バスに接続され、前記共有バスを介して前記画像メモリから得た処理前データをＪＰＥＧフォーマットで処理し、処理済データを前記共有バスを介して前記画像メモリに出力するＪＰＥＧ処理部と、を備えるＪＰＥＧ画像処理回路であって、
前記ＪＰＥＧ処理部は、
複数のＪＰＥＧ処理コアと、
前記複数のＪＰＥＧ処理コアに対応して設けられた複数のデータ格納領域と、を備え、
各ＪＰＥＧ処理コアで処理を行う時には、前記処理前データの各ＪＰＥＧ処理コアでの処理に必要な部分を、各ＪＰＥＧ処理コアに対応する各データ格納領域に格納することを特徴とするＪＰＥＧ画像処理回路。（１）
（付記２）
各ＪＰＥＧ処理コアでの処理済データは、対応する前記データ格納領域に格納した後、前記共有バスを介して前記画像メモリに出力される付記１に記載のＪＰＥＧ画像処理回路。（２）
（付記３）
各データ格納領域に格納する前記処理前データ量は任意に設定可能である付記１に記載のＪＰＥＧ画像処理回路。
（付記４）
各データ格納領域に格納する前記処理前データ量は、動的に可変である付記１に記載のＪＰＥＧ画像処理回路。（３）
（付記５）
各データ格納領域に格納する前記処理前データ量は、ＪＰＥＧ処理の最小符号化ユニット（ＭＣＵ）である付記１に記載のＪＰＥＧ画像処理回路。（４）
（付記６）
前記ＪＰＥＧ処理部は、制御部を備え、
前記制御部は、動作モードに応じて、前記複数のＪＰＥＧ処理コアの使用方法を変更する付記１に記載のＪＰＥＧ画像処理回路。
（付記７）
前記ＪＰＥＧ処理部は、制御部を備え、
前記制御部は、前記複数のＪＰＥＧ処理コアのうち動作状態にある個数を動的に変更する付記１に記載のＪＰＥＧ画像処理回路。（５）
（付記８）
前記ＪＰＥＧ処理部は、各ＪＰＥＧ処理コアの動作クロック周波数を動作に応じて設定する動作クロック制御部を備える付記１に記載のＪＰＥＧ画像処理回路。（６）
（付記９）
前記動作クロック制御部は、各ＪＰＥＧ処理コアの動作クロック周波数を動的に変化させる付記８に記載のＪＰＥＧ画像処理回路。（７）
（付記１０）
前記ＪＰＥＧ処理部は、制御部を備え、
前記制御部は、前記複数のＪＰＥＧ処理コアの障害発生を自動的に検出して発生した障害情報を通知する付記１に記載のＪＰＥＧ画像処理回路。（８）
（付記１１）
前記制御部は、前記障害情報に基づいて、障害の発生したＪＰＥＧ処理コアでの処理を他のＪＰＥＧ処理コアに割当てて、処理を継続させる付記１０に記載のＪＰＥＧ画像処理回路。（９）
（付記１２）
前記制御部は、各ＪＰＥＧ処理コアでの処理時間をモニタして、処理時間が基準時間を超えるタイムアウトを判定することにより障害の発生を検出し、
前記タイムアウト判定を、前記ＪＰＥＧ処理コアの絶対時間タイマによる処理開始からの経過時間を検出し、前記経過時間を前記基準時間と比較することにより行う付記１１に記載のＪＰＥＧ画像処理回路。（１０）
（付記１３）
前記制御部は、前記タイムアウトが発生した後再度処理を開始した場合に、前記基準時間を変更する付記１２に記載のＪＰＥＧ画像処理回路。
【産業上の利用可能性】
【０１６６】
本発明は、ＪＰＥＧ画像処理回路であればどのようなものにも適用可能である。
【図面の簡単な説明】
【０１６７】
【図１】実施例のＪＰＥＧ処理部を含むシステムＬＳＩの概要ブロック図である。
【図２】実施例のＪＰＥＧ処理部のブロック構成図である。
【図３】画面上の点の座標とメモリ上のアドレスの関係を示す図である。
【図４】画像データの成分分離を説明する図である。
【図５】ＪＰＥＧ処理の基本単位を説明する図である。
【図６】ノンインタリーブとインタリーブを説明する図である。
【図７】ＭＣＵの構成を説明する図である。
【図８】ＳＤＲＡＭのアクセスシーケンスを示すタイムチャートである。
【図９】ＳＤＲＡＭの読み出し(Read)アクセスシーケンスを示すタイムチャートである。
【図１０】符号化処理の流れを示すフローチャートである。
【図１１】復号化処理の流れを示すフローチャートである。
【図１２】符号化処理時のデータの流れを示す図である。
【図１３】ＪＰＥＧ符号化処理時の汎用メモリからデータ格納領域までのデータ転送を説明する図である。
【図１４】ＪＰＥＧ符号化処理時のデータ格納領域から汎用メモリまでのデータ転送を説明する図である。
【図１５】データ格納領域の構成を示す図である。
【図１６】ＦＩＦＯ方式データ格納領域の動作を説明する図である。
【図１７】アドレス方式データ格納領域の動作を説明する図である。
【図１８】パケット方式データ格納領域の動作を説明する図である。
【図１９】複数ＭＣＵを格納するデータ格納領域を説明する図である。
【図２０】汎用メモリからデータ格納領域へのデータ転送のタイムチャートである。
【図２１】データ格納領域から汎用メモリへのデータ転送のタイムチャートである。
【図２２】ＪＰＥＧ処理コアとデータ格納領域間のデータ転送のタイムチャートである。
【図２３】動作クロック制御部の構成を示す図である。
【図２４】要求・許可方式によるアクセス方式を説明する図である。
【図２５】共通データ格納領域での要求・許可方式によるアクセス方式を説明する図である。
【図２６】トークン(Token)方式によるアクセス方式を説明する図である。
【図２７】スイッチ・マトリク構造による接続方式を説明する図である。
【図２８】スイッチ・マトリク方式でのコマンド例を示す図である。
【図２９】ＪＰＥＧ復号化処理時の汎用メモリからデータ格納領域までのデータ転送を説明する図である。
【図３０】ＪＰＥＧ復号化処理時のデータ格納領域から汎用メモリまでのデータ転送を説明する図である。
【図３１】ＪＰＥＧ制御レジスタの構成を示す図である。
【図３２】動作モードレジスタの構成を示す図である。
【図３３】コマンドレジスタの構成を示す図である。
【図３４】動作状態表示レジスタの構成を示す図である。
【図３５】画像縦／横サイズレジスタの構成を示す図である。
【図３６】割り込み状態／マスクレジスタの構成を示す図である。
【図３７】エラー割り込み状態詳細／マスクレジスタの構成を示す図である。
【図３８】データバッファ開始アドレスレジスタの構成を示す図である。
【図３９】ＪＰＥＧデータサイズレジスタの構成を示す図である。
【図４０】障害監視タイマ／コア番号通知レジスタの構成を示す図である。
【図４１】障害時アクションレジスタの構成を示す図である。
【図４２】複数のＭＣＵの並列処理を説明する図である。
【図４３】タイムアウト検出処理を説明する図である。
【符号の説明】
【０１６８】
１    ＪＰＥＧ処理システムＬＳＩ
２    汎用メモリ（ＳＤＲＡＭ）
１１    共有バス
１４    ＪＰＥＧ処理部
４７    ＲＥＦ制御回路
２１    共有バスコントローラ
２２    動作クロック制御部
２３    ＪＰＥＧ設定格納レジスタ
２４、２４Ａ〜２４Ｄ    データ格納領域
２５    ＪＰＥＧ処理部内制御部
２６    第１内部バス
２７、２７Ａ〜２７Ｄ    ＪＰＥＧ処理コア
２８    第２内部バス
【図１】
2008048130.tif 000003
【図２】
2008048130.tif 000004
【図３】
2008048130.tif 000005
【図４】
2008048130.tif 000006
【図５】
2008048130.tif 000007
【図６】
2008048130.tif 000008
【図７】
2008048130.tif 000009
【図８】
2008048130.tif 000010
【図９】
2008048130.tif 000011
【図１０】
2008048130.tif 000012
【図１１】
2008048130.tif 000013
【図１２】
2008048130.tif 000014
【図１３】
2008048130.tif 000015
【図１４】
2008048130.tif 000016
【図１５】
2008048130.tif 000017
【図１６】
2008048130.tif 000018
【図１７】
2008048130.tif 000019
【図１８】
2008048130.tif 000020
【図１９】
2008048130.tif 000021
【図２０】
2008048130.tif 000022
【図２１】
2008048130.tif 000023
【図２２】
2008048130.tif 000024
【図２３】
2008048130.tif 000025
【図２４】
2008048130.tif 000026
【図２５】
2008048130.tif 000027
【図２６】
2008048130.tif 000028
【図２７】
2008048130.tif 000029
【図２８】
2008048130.tif 000030
【図２９】
2008048130.tif 000031
【図３０】
2008048130.tif 000032
【図３１】
2008048130.tif 000033
【図３２】
2008048130.tif 000034
【図３３】
2008048130.tif 000035
【図３４】
2008048130.tif 000036
【図３５】
2008048130.tif 000037
【図３６】
2008048130.tif 000038
【図３７】
2008048130.tif 000039
【図３８】
2008048130.tif 000040
【図３９】
2008048130.tif 000041
【図４０】
2008048130.tif 000042
【図４１】
2008048130.tif 000043
【図４２】
2008048130.tif 000044
【図４３】
2008048130.tif 000045