(57)【特許請求の範囲】
【請求項１】
入力データを格納可能な第１の入力バッファと、
出力データを格納可能な出力バッファと、
前記第１の入力バッファと前記出力バッファとの間に接続されたデータ変換手段と、
前記データ変換手段が参照可能なレジスタと
を備え、
前記レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能であり、
前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記入力データに基づいて前記出力データを生成し、
前記第１の入力バッファには第１の入力データが格納され、
前記第１の入力データよりも前に入力された第２の入力データを格納可能な第２の入力バッファをさらに備え、
前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記第１の入力データ及び前記第２の入力データに基づいて前記出力データを生成し、
前記レジスタには、一つのデータフォーマット変換を実行するために、複数の変換パターンを順に設定可能であり、
前記データ変換手段は、前記レジスタに順に設定される前記複数の変換パターンに従って、前記入力データに基づいて前記出力データを生成する、データ処理装置。
【請求項２】
前記レジスタに設定されている変換パターンが次の変換パターンに更新されるのに同期して、前記第１の入力バッファに次の入力データを入力するか否かを、前記次の変換パターンによって設定可能である、請求項１に記載のデータ処理装置。
【請求項３】
前記出力バッファは複数のデータ格納領域を有しており、
前記複数のデータ格納領域の全てに部分出力データが格納されることにより、前記出力バッファから前記出力データが出力される、請求項１に記載のデータ処理装置。
【請求項４】
前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、現在前記第１の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことを、前記変換パターンによって設定可能である、請求項１に記載のデータ処理装置。
【請求項５】
前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、
特定のコード番号については、前記コピー元情報の代わりに、前記入力データのうちのいずれの部分のデータをもコピーしないことを示す情報が記述されており、
前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている、請求項４に記載のデータ処理装置。
【請求項６】
前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、前記入力データに関わらず固定値とすることを、前記変換パターンによって設定可能である、請求項１に記載のデータ処理装置。
【請求項７】
前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、
特定のコード番号については、前記コピー元情報の代わりに、前記入力データに関わらず固定値とすることを示す情報が記述されており、
前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている、請求項６に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特に、入力されたデータを、そのデータのフォーマットとは異なるフォーマットのデータに変換して出力するデータフォーマット変換処理装置に関する。
【背景技術】
【０００２】
ＤＳＣ（Digital Still Camera）向け等のＳｏＣ（System on a Chip）においては、例えば、メモリに格納しようとするデータのフォーマットを、内部周辺回路に対応するフォーマットに変換（データフォーマット変換）する必要がある。
【０００３】
従来のＳｏＣにおいては、ＣＰＵによるソフトウェア処理によって、データフォーマット変換処理が実行されていた。しかし、ＣＰＵによるソフトウェア処理では所要時間が非常に長かったため、近年では、専用のハードウェアを用いてデータフォーマット変換処理を実行することが行われている。
【０００４】
下記特許文献１には、入力されたデータを、そのデータのビット数とは異なるビット数のデータに変換するための技術が開示されている。
【０００５】
また、下記特許文献２には、データフォーマット変換処理の一つであるエンディアン処理に関する技術が開示されている。
【０００６】
【特許文献１】特開２００４−２４０７１３号公報
【特許文献２】特開平３−１６０５５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
専用ハードウェアを用いてデータフォーマット変換処理を実行することにより、ＣＰＵによるソフトウェア処理による場合と比較すると、所要時間の短縮化を図ることができる。しかしながら、データフォーマット変換処理には、エンディアン変換処理、パック処理、又はアンパック処理等、様々な処理がある。ところが、専用ハードウェアは目的とする一種類の処理しか実行できないため、複数種類の処理を実行するためには、異なる処理毎に個別の専用ハードウェアを構築しなければならず、全体として回路規模が増大するという問題がある。
【０００８】
本発明はかかる問題を解決するために成されたものであり、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換処理を実行可能な、データ処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
第１の発明に係るデータ処理装置は、入力データを格納可能な第１の入力バッファと、出力データを格納可能な出力バッファと、前記第１の入力バッファと前記出力バッファとの間に接続されたデータ変換手段と、前記データ変換手段が参照可能なレジスタとを備え、前記レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能であり、前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記入力データに基づいて前記出力データを生成することを特徴とするものである。
【００１０】
また、第１の発明に係るデータ処理装置は、前記第１の入力バッファには第１の入力データが格納され、前記第１の入力データよりも前に入力された第２の入力データを格納可能な第２の入力バッファをさらに備え、前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記第１の入力データ及び前記第２の入力データに基づいて前記出力データを生成することを特徴とするものである。
【００１１】
また、第１の発明に係るデータ処理装置は、前記レジスタには、一つのデータフォーマット変換を実行するために、複数の変換パターンを順に設定可能であり、前記データ変換手段は、前記レジスタに順に設定される前記複数の変換パターンに従って、前記入力データに基づいて前記出力データを生成することを特徴とするものである。
【００１２】
第２の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記レジスタに設定されている変換パターンが次の変換パターンに更新されるのに同期して、前記第１の入力バッファに次の入力データを入力するか否かを、前記次の変換パターンによって設定可能であることを特徴とするものである。
【００１３】
第３の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記出力バッファは複数のデータ格納領域を有しており、前記複数のデータ格納領域の全てに部分出力データが格納されることにより、前記出力バッファから前記出力データが出力されることを特徴とするものである。
【００１４】
第４の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、現在前記第１の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことを、前記変換パターンによって設定可能であることを特徴とするものである。
【００１５】
第５の発明に係るデータ処理装置は、第４の発明に係るデータ処理装置において特に、前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、特定のコード番号については、前記コピー元情報の代わりに、前記入力データのうちのいずれの部分のデータをもコピーしないことを示す情報が記述されており、前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されていることを特徴とするものである。
【００１６】
第６の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、前記入力データに関わらず固定値とすることを、前記変換パターンによって設定可能であることを特徴とするものである。
【００１７】
第７の発明に係るデータ処理装置は、第６の発明に係るデータ処理装置において特に、前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、特定のコード番号については、前記コピー元情報の代わりに、前記入力データに関わらず固定値とすることを示す情報が記述されており、前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されていることを特徴とするものである。
【発明の効果】
【００１８】
第１の発明に係るデータ処理装置によれば、レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能である。そして、データ変換手段は、レジスタに設定されている変換パターンに従って、入力データに基づいて出力データを生成する。従って、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換を実行可能な、データ処理装置を得ることができる。
【００１９】
また、第１の発明に係るデータ処理装置によれば、データ変換手段は、第１の入力データのみならず、過去に入力された第２の入力データをも用いて、出力データを生成する。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００２０】
また、第１の発明に係るデータ処理装置によれば、データ変換手段は、一つの変換パターンのみの設定で実現できるデータフォーマット変換のみならず、複数の変換パターンの設定が必要なデータフォーマット変換をも実行可能となる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００２１】
第２の発明に係るデータ処理装置によれば、レジスタに設定されている変換パターンが次の変換パターンに更新されても、第１の入力バッファへの次の入力データの取り込みを実行させないことができる。従って、データ処理装置から出力される出力データの転送レートよりも、データ処理装置へ入力される入力データの転送レートのほうが低い場合に、第１の入力バッファへの次の入力データの取り込みを待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【００２２】
第３の発明に係るデータ処理装置によれば、データ処理装置から出力される出力データの転送レートよりも、データ処理装置へ入力される入力データの転送レートのほうが高い場合に、出力バッファからのデータの出力を待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【００２３】
第４の発明に係るデータ処理装置によれば、データ変換手段は、出力データを生成するために常に入力データのコピーを用いるわけではなく、出力データのうちの所望の部分については、現在第１の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００２４】
第５の発明に係るデータ処理装置によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている。従って、複数のテーブルを適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【００２５】
第６の発明に係るデータ処理装置によれば、データ変換手段は、出力データを生成するために常に入力データのコピーを用いるわけではなく、出力データのうちの所望の部分については、固定値とすることができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００２６】
第７の発明に係るデータ処理装置によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている。従って、複数のテーブルを適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００２８】
図１は、本発明の適用対象の一例であるディジタルカメラの構成を概略的に示すブロック図である。図１に示すようにディジタルカメラは、ＣＣＤ等の撮像部１、前処理部２、フォーマット変換処理部３Ａ，３Ｂ、メモリアクセス処理部（ＤＭＡ）４Ａ，４Ｂ、ＤＲＡＭ等のメモリ５、画像信号処理部６、及びＬＣＤ等の表示部７を備えて構成されている。
【００２９】
撮像部１から出力された画像データは、前処理部２に入力される。前処理部２は、撮像部１から入力された画像データに対して、ホワイトバランス調整や露光補正等の所定の前処理を行う。前処理部２から出力された画像データは、フォーマット変換処理部３Ａに入力される。フォーマット変換処理部３Ａは、前処理部２から入力された画像データを、その画像データのフォーマットとは異なるフォーマットの画像データに変換する。フォーマット変換処理部３Ａにおける処理内容の詳細については後述する。メモリアクセス処理部４Ａは、フォーマット変換処理部３Ａから出力された画像データをメモリ５に書き込む。
【００３０】
メモリアクセス処理部４Ｂは、メモリ５に格納されている画像データを読み出す。フォーマット変換処理部３Ｂは、メモリ５から読み出された画像データを、その画像データのフォーマットとは異なるフォーマットの画像データに変換する。フォーマット変換処理部３Ｂにおける処理内容の詳細については後述する。以下の説明では、フォーマット変換処理部３Ａとフォーマット変換処理部３Ｂとを総称して、「フォーマット変換処理部３」とも称する。フォーマット変換処理部３Ｂから出力された画像データは、画像信号処理部６に入力される。画像信号処理部６は、フォーマット変換処理部３Ｂから入力された画像データに対して種々の画像処理を行う。画像信号処理部６によって処理された画像データは表示部７に入力され、表示部７において画像が表示される。
【００３１】
なお、図１では、メモリ５への書き込み用とメモリ５からの読み出し用とで、別々のメモリアクセス処理部４Ａ，４Ｂが搭載されている例について示した。ここで、メモリ５に対する書き込み処理と読み出し処理とを同時に行わない場合には、メモリアクセス処理部４Ａとメモリアクセス処理部４Ｂとを兼用することができる。そして、この場合は、フォーマット変換処理部３Ａとフォーマット変換処理部３Ｂとを兼用することもできる。
【００３２】
図２は、フォーマット変換処理部３の構成を示すブロック図である。図２に示すようにフォーマット変換処理部３は、第１入力バッファ１０、第２入力バッファ１１、変換処理部（データ変換手段）１２、レジスタ１３、及び出力バッファ１４を備えて構成されている。
【００３３】
入力データＩＤは、フォーマット変換処理部３の前段の回路（前処理部２又はメモリアクセス処理部４Ｂ）から第１入力バッファ１０に入力され、格納される。つまり、第１入力バッファ１０には最新の入力データＩＤが格納されている。
【００３４】
第１入力バッファ１０に新たな入力データＩＤが取り込まれると、それまで第１入力バッファ１０に格納されていた入力データＩＤは、第２入力バッファ１１に入力され、格納される。つまり、第２入力バッファ１１には、最新の入力データＩＤよりも前にフォーマット変換処理部３に入力された過去の入力データＩＤ（この例では直前の入力データＩＤ）が格納されている。
【００３５】
出力バッファ１４は、フォーマット変換処理部３から出力すべき出力データＯＤを格納する。
【００３６】
レジスタ１３は、変換処理部１２によって参照可能である。レジスタ１３には、所望のデータフォーマット変換に応じて、複数種類の変換パターンＣＰを設定可能である。詳細については後述する。
【００３７】
変換処理部１２は、第１入力バッファ１０及び第２入力バッファ１１と、出力バッファ１４との間に接続されている。変換処理部１２は、レジスタ１３に設定されている変換パターンＣＰに従って、第１入力バッファ１０及び第２入力バッファ１１に格納されている入力データＩＤに基づいて出力データＯＤを生成する。
【００３８】
図３は、第１入力バッファ１０、第２入力バッファ１１、出力バッファ１４、及び変換処理部１２の構成を示す図である。以下では、３２ビットの入力データＩＤが入力される例について説明する。
【００３９】
第１入力バッファ１０は、それぞれ４ビットの８個のデータ格納領域ＣＨＢ０〜ＣＨＢ７を有している。外部から第１入力バッファ１０に入力データＩＤが入力されると、３２ビットの入力データＩＤがそれぞれ４ビットの８個の部分入力データに分割されて、各部分入力データが各データ格納領域ＣＨＢ０〜ＣＨＢ７に格納される。例えば、入力データＩＤの下位４ビットに相当する部分入力データはデータ格納領域ＣＨＢ０に格納され、入力データＩＤの上位４ビットに相当する部分入力データはデータ格納領域ＣＨＢ７に格納される。
【００４０】
同様に、第２入力バッファ１１は、それぞれ４ビットの８個のデータ格納領域ＰＨＢ０〜ＰＨＢ７を有している。第１入力バッファ１０に新たな入力データＩＤが取り込まれると、それまで第１入力バッファ１０の各データ格納領域ＣＨＢ０〜ＣＨＢ７に格納されていた部分入力データは、第２入力バッファ１１の各データ格納領域ＰＨＢ０〜ＰＨＢ７に転送され、格納される。例えば、第１入力バッファ１０のデータ格納領域ＣＨＢ０に格納されていた部分入力データは、第２入力バッファ１１のデータ格納領域ＰＨＢ０に格納され、第１入力バッファ１０のデータ格納領域ＣＨＢ７に格納されていた部分入力データは、第２入力バッファ１１のデータ格納領域ＰＨＢ７に格納される。
【００４１】
同様に、出力バッファ１４は、それぞれ４ビットの８個のデータ格納領域ＨＢ０〜ＨＢ７を有している。各データ格納領域ＨＢ０〜ＨＢ７には、それぞれ４ビットの部分出力データが格納される。８個のデータ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されると、８個の部分出力データが１個の出力データＯＤとして出力バッファ１４から出力される。例えば、データ格納領域ＨＢ０に格納されていた部分出力データは、出力データＯＤの下位４ビットのデータとなり、データ格納領域ＨＢ７に格納されていた部分出力データは、出力データＯＤの上位４ビットのデータとなる。
【００４２】
なお、図３において各データ格納領域ＣＨＢ０〜ＣＨＢ７，ＰＨＢ０〜ＰＨＢ７，ＨＢ０〜ＨＢ７の右下に付したフラグＣＨＢＬ０〜ＣＨＢＬ７，ＰＨＢＬ０〜ＰＨＢＬ７，ＨＢＬ０〜ＨＢＬ７は、そのフラグが付されたデータ格納領域に格納されているデータが、有意であるか否かを示すための１ビットのフラグである。
【００４３】
変換処理部１２は、データ格納領域ＨＢ０〜ＨＢ７に対応する８個のマルチプレクサＭＵＸ０〜ＭＵＸ７を有している。例えば、マルチプレクサＭＵＸ０はデータ格納領域ＨＢ０に対応し、マルチプレクサＭＵＸ７はデータ格納領域ＨＢ７に対応している。以下、３２ビットを８個に分割した各領域を、本明細書において「レーン」とも称する。例えば、マルチプレクサＭＵＸ０及びデータ格納領域ＨＢ０は第０レーンに属し、マルチプレクサＭＵＸ７及びデータ格納領域ＨＢ７は第７レーンに属する。
【００４４】
各マルチプレクサＭＵＸ０〜ＭＵＸ７は、データ格納領域ＣＨＢ０〜ＣＨＢ７，ＰＨＢ０〜ＰＨＢ７の中の一つのデータ格納領域に格納されている部分入力データをコピーして、対応するデータ格納領域ＨＢ０〜ＨＢ７に格納する。コピー元の指定は、レジスタ１３に設定されている変換パターンＣＰによって行われる。
【００４５】
図４は、レジスタ１３への変換パターンＣＰの設定状況を示す図である。図４に示すように、レジスタ１３には、複数種類の変換パターンＣＰ０〜ＣＰ５を選択して設定することが可能である。例えば、変換パターンＣＰ１は、エンディアン変換処理に関する変換パターンであり、変換パターンＣＰ２は、注目バイトの抽出処理に関する変換パターンであり、変換パターンＣＰ３は、各バイトの伸張処理に関する変換パターンであり、変換パターンＣＰ４は、１６ビットから１２ビットへのパック処理に関する変換パターンであり、変換パターンＣＰ５は、１２ビットから１６ビットへのアンパック処理に関する変換パターンである。また、変換パターンＣＰ０は、無変換の処理に関する変換パターンである。
【００４６】
ユーザが所望するデータフォーマット変換処理に応じて、図示しないＣＰＵが、そのデータフォーマット変換処理に対応する変換パターンＣＰ０〜ＣＰ５を選択してレジスタ１３に設定する。なお、レジスタ１３に設定可能な変換パターンの種類及び個数は、図４に示した例に限らず、任意の種類及び任意の個数の変換パターンを設定可能である。
【００４７】
このように、本実施の形態に係るフォーマット変換処理部３によれば、レジスタ１３には、所望のデータフォーマット変換に応じて、複数種類の変換パターンＣＰ０〜ＣＰ５を設定可能である。そして、変換処理部１２は、レジスタ１３に設定されている変換パターンＣＰに従って、入力データＩＤに基づいて出力データＯＤを生成する。従って、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換を実行可能な、データ処理装置を得ることができる。
【００４８】
また、変換処理部１２は、第１入力バッファ１０に格納されている現在の入力データＩＤのみならず、過去に入力されて第２入力バッファ１１に格納されている入力データＩＤをも用いて、出力データＯＤを生成する。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００４９】
図５は、変換パターンＣＰの設定内容の詳細を示す図である。図５に示した例では、繰り返しに関する設定項目Ｋ１、繰り返しの初期値に関する設定項目Ｋ２、入力データの更新に関する設定項目Ｋ３、モードに関する設定項目Ｋ４、及びコピー元に関する設定項目Ｋ５が設けられている。なお、設定項目の種類及び個数は、図５に示した例に限らず、任意の種類及び任意の個数の設定項目を準備可能である。
【００５０】
まず、図５に示した設定項目Ｋ１について説明する。図６，７は、設定項目Ｋ１を説明するための図である。図６を参照して、例えば変換パターンＣＰ０に関しては、レジスタ１３への１回の設定によって、目的とするデータフォーマット変換処理が完結する。つまり、変換パターンＣＰ０は１個の変換パターン（以下「サブパターン」と称する）ＣＰ００のみによって構成されている。この場合、設定項目Ｋ１を“０”に設定することにより、１個のサブパターンＣＰ００がレジスタ１３に繰り返し設定されることとなる。
【００５１】
図７を参照して、例えば変換パターンＣＰ２に関しては、レジスタ１３への４回の設定によって、目的とするデータフォーマット変換処理が完結する。つまり、変換パターンＣＰ２は４個のサブパターンＣＰ２０〜ＣＰ２３によって構成されている。この場合、設定項目Ｋ１を“３”に設定することにより、レジスタ１３には４個のサブパターンＣＰ２０〜ＣＰ２３がこの順に繰り返して設定されることとなる。
【００５２】
このように、本実施の形態に係るフォーマット変換処理部３によれば、変換処理部１２は、一つのサブパターンのみの設定で実現できるデータフォーマット変換のみならず、複数のサブパターンの設定が必要なデータフォーマット変換をも実行可能となる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００５３】
次に、図５に示した設定項目Ｋ２について説明する。設定項目Ｋ２は、設定項目Ｋ１が“１”以上の値に設定されている場合、つまり、サブパターンが２個以上存在する場合に、繰り返しの一周期の中で、どのサブパターンを一番最初にレジスタ１３に設定するかを指定するための項目である。図７を参照して、例えば、設定項目Ｋ２が“０”に設定されている場合は、一番目のサブパターンとしてサブパターンＣＰ２０が設定され、設定項目Ｋ２が“２”に設定されている場合は、一番目のサブパターンとしてサブパターンＣＰ２２が設定されることとなる。
【００５４】
次に、図５に示した設定項目Ｋ３について説明する。設定項目Ｋ３は、新たな入力データＩＤを第１入力バッファ１０に取り込むか否かを設定するための項目である。設定項目Ｋ３が“０”に設定されている場合は、新たな入力データＩＤは第１入力バッファ１０に取り込まれない。つまり、第１入力バッファ１０（及び第２入力バッファ１１）の格納内容は維持される。一方、設定項目Ｋ３が“１”に設定されている場合は、新たな入力データＩＤが第１入力バッファ１０に取り込まれる。なお、上記の通り、第１入力バッファ１０に新たな入力データＩＤが取り込まれると、それまで第１入力バッファ１０に格納されていた入力データＩＤは、第２入力バッファ１１に入力され、格納されることとなる。
【００５５】
このように、本実施の形態に係るフォーマット変換処理部３によれば、レジスタ１３に設定されている変換パターン又はサブパターンが次の変換パターン又はサブパターンに更新されても、設定項目Ｋ３を“０”に設定することにより、第１入力バッファ１０への次の入力データＩＤの取り込みを実行させないことができる。従って、フォーマット変換処理部３から出力される出力データＯＤの転送レートよりも、フォーマット変換処理部３へ入力される入力データＩＤの転送レートのほうが低い場合に、第１入力バッファ１０への次の入力データＩＤの取り込みを待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【００５６】
次に、図５に示した設定項目Ｋ４について説明する。図８〜１０は、設定項目Ｋ４を説明するための図である。変換パターンＣＰを作成するためのテーブルＴＡ１〜ＴＡ３が、予め準備されている。図８〜１０に示すように、各テーブルＴＡ１〜ＴＡ３には、コード番号とコピー元情報との対応関係が記述されている。コード番号は、“０”〜“ｆ”の連続番号である。コピー元情報は、出力データの生成のために入力データのうちコピーすべき部分を示す情報である。図３を参照して、例えば、コピー元情報が“ＣＨＢ０”である場合は、第１入力バッファ１０のデータ格納領域ＣＨＢ０に格納されている部分入力データをコピーするということであり、コピー元情報が“ＰＨＢ７”である場合は、第２入力バッファ１１のデータ格納領域ＰＨＢ７に格納されている部分入力データをコピーするということである。
【００５７】
設定項目Ｋ４が“０”又は“１”に設定されている場合は、図８に示したテーブルＴＡ１が選択される。テーブルＴＡ１においては、コピー元情報の欄には、全てのデータ格納領域ＣＨＢ０〜ＣＨＢ７，ＰＨＢ０〜ＰＨＢ７が記述されている。
【００５８】
設定項目Ｋ４が“２”に設定されている場合は、図９に示したテーブルＴＡ２が選択される。テーブルＴＡ２においては、コピー元情報の欄には、全てのデータ格納領域ＣＨＢ０〜ＣＨＢ７，ＰＨＢ０〜ＰＨＢ７のうちデータ格納領域ＰＨＢ６，ＰＨＢ７が記述されていない。従って、テーブルＴＡ２が選択された場合には、データのコピー元としてデータ格納領域ＰＨＢ６，ＰＨＢ７を指定することはできない。
【００５９】
その代わり、テーブルＴＡ２においては、コード番号“ｅ”及び“ｆ”に対応して、それぞれ情報“ＦＶ”及び“ＮＣ”が記述されている。情報“ＦＶ”は、入力データの値に関わらず部分出力データの値を固定値とすることを示す情報である。この情報には、固定値の値そのもの（例えば４ビットの固定値）を含めることも可能である。また、情報“ＮＣ”は、入力データのうちのいずれの部分のデータをもコピーしないことを示す情報である。
【００６０】
このように、本実施の形態に係るフォーマット変換処理部３によれば、変換処理部１２は、出力データＯＤを生成するために常に入力データＩＤのコピーを用いるわけではなく、出力データＯＤのうちの所望の部分については、第１入力バッファ１０又は第２入力バッファ１１に現在格納されている入力データＩＤのうちのいずれの部分のデータをもコピーしないことができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００６１】
同様に、変換処理部１２は、出力データＯＤを生成するために常に入力データＩＤのコピーを用いるわけではなく、出力データＯＤのうちの所望の部分については、固定値とすることができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【００６２】
設定項目Ｋ４が“３”に設定されている場合は、図１０に示したテーブルＴＡ３が選択される。テーブルＴＡ３においては、コピー元情報の欄には、全てのデータ格納領域ＣＨＢ０〜ＣＨＢ７，ＰＨＢ０〜ＰＨＢ７のうちデータ格納領域ＰＨＢ０，ＰＨＢ１が記述されていない。従って、テーブルＴＡ３が選択された場合には、データのコピー元としてデータ格納領域ＰＨＢ０，ＰＨＢ１を指定することはできない。コード番号“ｅ”及び“ｆ”に対応して情報“ＦＶ”及び“ＮＣ”が記述されている点は、図９に示したテーブルＴＡ２と同様である。
【００６３】
このように、本実施の形態に係るフォーマット変換処理部３によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルＴＡ２，ＴＡ３が準備されている。従って、複数のテーブルＴＡ２，ＴＡ３を適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【００６４】
次に、図５に示した設定項目Ｋ５について説明する。設定項目Ｋ５では、第０レーンから第７レーンまでの各レーン毎に、コード番号“０”〜“ｆ”のうちの一つがそれぞれ設定される。例えば、設定項目Ｋ４が“０”に設定され（つまり図８に示したテーブルＴＡ１が選択され）、第０レーンの設定項目Ｋ５が“３”に設定されている場合は、テーブルＴＡ１のコード番号“３”に対応するコピー元情報は“ＣＨＢ３”であるため、図３を参照して、第０レーンに属するマルチプレクサＭＵＸ０は、データ格納領域ＣＨＢ３に格納されている部分入力データをコピーして、そのデータをデータ格納領域ＨＢ３に格納することとなる。
【００６５】
以下では、データフォーマット変換処理の具体例について、詳細に説明する。
【００６６】
＜無変換処理（変換パターンＣＰ０）＞
図１１は、図４に示した変換パターンＣＰ０の設定内容の詳細を示す図である。設定項目Ｋ１は“０”に、設定項目Ｋ２は“０”に、設定項目Ｋ３は“１”に、設定項目Ｋ４は“０”に、それぞれ設定されている。また、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“０”“１”“２”“３”“４”“５”“６”“７”に設定されている。
【００６７】
図１２は、レジスタ１３に変換パターンＣＰ０が設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ０が第１入力バッファ１０に取り込まれ、格納されている。
【００６８】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“０”“１”“２”“３”“４”“５”“６”“７”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１，ＣＨＢ２，ＣＨＢ３，ＣＨＢ４，ＣＨＢ５，ＣＨＢ６，ＣＨＢ７に格納されている部分入力データがコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ０として出力バッファ１４から出力されている。
【００６９】
出力データＯＤ０は入力データＩＤ０に等しい。従って、フォーマット変換処理部３に入力された入力データＩＤ０が、何の変換処理もされずにそのまま出力データＯＤ０として出力されたことになる。
【００７０】
＜エンディアン変換処理（変換パターンＣＰ１）＞
図１３は、図４に示した変換パターンＣＰ１の設定内容の詳細を示す図である。設定項目Ｋ１は“０”に、設定項目Ｋ２は“０”に、設定項目Ｋ３は“１”に、設定項目Ｋ４は“０”に、それぞれ設定されている。また、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“６”“７”“４”“５”“２”“３”“０”“１”に設定されている。
【００７１】
図１４は、レジスタ１３に変換パターンＣＰ１が設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ０が第１入力バッファ１０に取り込まれ、格納されている。
【００７２】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“６”“７”“４”“５”“２”“３”“０”“１”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ６，ＣＨＢ７，ＣＨＢ４，ＣＨＢ５，ＣＨＢ２，ＣＨＢ３，ＣＨＢ０，ＣＨＢ１に格納されている部分入力データがコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ０として出力バッファ１４から出力されている。
【００７３】
出力データＯＤ０の第０バイト（最下位バイト）、第１バイト、第２バイト、第３バイト（最上位バイト）は、それぞれ、入力データＩＤ０の第３バイト、第２バイト、第１バイト、第０バイトに等しい。従って、フォーマット変換処理部３に入力された入力データＩＤ０が、バイト単位で前後が逆転されて、出力データＯＤ０として出力されたことになる。
【００７４】
＜注目バイトの抽出処理（変換パターンＣＰ２）＞
図１５は、図４に示した変換パターンＣＰ２の設定内容の詳細を示す図である。設定項目Ｋ１は“３”に、設定項目Ｋ２は“０”に、それぞれ設定されている。従って、変換パターンＣＰ２は、サブパターンＣＰ２０から始まる４個のサブパターンＣＰ２０，ＣＰ２１，ＣＰ２２，ＣＰ２３によって構成される。なお、図１５においては、サブパターンＣＰ２１〜ＣＰ２３中の設定項目Ｋ１，Ｋ２の記載は省略している。
【００７５】
全てのサブパターンＣＰ２０〜ＣＰ２３において、設定項目Ｋ３は“１”に、設定項目Ｋ４は“２”に、それぞれ設定されている。サブパターンＣＰ２０においては、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“０”“１”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”に設定されている。サブパターンＣＰ２１においては、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ｆ”“ｆ”“０”“１”“ｆ”“ｆ”“ｆ”“ｆ”に設定されている。サブパターンＣＰ２２においては、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ｆ”“ｆ”“ｆ”“ｆ”“０”“１”“ｆ”“ｆ”に設定されている。サブパターンＣＰ２３においては、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“０”“１”に設定されている。
【００７６】
図１６は、レジスタ１３にサブパターンＣＰ２０が設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ０が第１入力バッファ１０に取り込まれ、格納されている。
【００７７】
設定項目Ｋ４が“２”に設定されているため、図９に示したテーブルＴＡ２が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“０”“１”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１に格納されている部分入力データ（つまり入力データＩＤ０の第０バイト）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ２〜ＨＢ７には、いずれの部分入力データもコピーされない。
【００７８】
また、この時点では、データ格納領域ＨＢ２〜ＨＢ７に部分出力データが格納されていないため、出力バッファ１４から出力データＯＤ０は出力されない。この場合、後段の回路からフォーマット変換処理部３へのデータ読み出しリクエストに対しては、現時点の出力データが無効であることを示す通知を、フォーマット変換処理部３から後段の回路へ送信する。これにより、不完全な出力データが後段の回路に入力されることを回避できる。
【００７９】
図１７は、サブパターンＣＰ２０に続いてサブパターンＣＰ２１がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ１が第１入力バッファ１０に取り込まれ、格納されている。
【００８０】
設定項目Ｋ４が“２”に設定されているため、図９に示したテーブルＴＡ２が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ｆ”“ｆ”“０”“１”“ｆ”“ｆ”“ｆ”“ｆ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ２，ＨＢ３には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１に格納されている部分入力データ（つまり入力データＩＤ１の第０バイト）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ４〜ＨＢ７には、いずれの部分入力データもコピーされない。また、この時点では、データ格納領域ＨＢ４〜ＨＢ７に部分出力データが格納されていないため、出力バッファ１４から出力データＯＤ０は出力されない。
【００８１】
図１８は、サブパターンＣＰ２１に続いてサブパターンＣＰ２２がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ２が第１入力バッファ１０に取り込まれ、格納されている。
【００８２】
設定項目Ｋ４が“２”に設定されているため、図９に示したテーブルＴＡ２が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ｆ”“ｆ”“ｆ”“ｆ”“０”“１”“ｆ”“ｆ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ４，ＨＢ５には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１に格納されている部分入力データ（つまり入力データＩＤ２の第０バイト）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ０〜ＨＢ３，ＨＢ６，ＨＢ７には、いずれの部分入力データもコピーされない。また、この時点では、データ格納領域ＨＢ６，ＨＢ７に部分出力データが格納されていないため、出力バッファ１４から出力データＯＤ０は出力されない。
【００８３】
図１９は、サブパターンＣＰ２２に続いてサブパターンＣＰ２３がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ３が第１入力バッファ１０に取り込まれ、格納されている。
【００８４】
設定項目Ｋ４が“２”に設定されているため、図９に示したテーブルＴＡ２が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“０”“１”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１に格納されている部分入力データ（つまり入力データＩＤ３の第０バイト）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ０〜ＨＢ５には、いずれの部分入力データもコピーされない。この時点では、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ０として出力バッファ１４から出力されている。
【００８５】
このように、本実施の形態に係るフォーマット変換処理部３によれば、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されることにより、出力バッファ１４から出力データＯＤが出力される。従って、フォーマット変換処理部３から出力される出力データＯＤの転送レートよりも、フォーマット変換処理部３へ入力される入力データＩＤの転送レートのほうが高い場合に、出力バッファ１４からのデータの出力を待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【００８６】
出力データＯＤ０の第０バイト、第１バイト、第２バイト、第３バイトは、それぞれ、入力データＩＤ０，ＩＤ１，ＩＤ２，ＩＤ３の各第０バイトに等しい。従って、フォーマット変換処理部３に順に入力された入力データＩＤ０〜ＩＤ３の各第０バイトが抽出されて、出力データＯＤ０として出力されたことになる。
【００８７】
＜各バイトの伸張処理（変換パターンＣＰ３）＞
図２０は、図４に示した変換パターンＣＰ３の設定内容の詳細を示す図である。設定項目Ｋ１は“３”に、設定項目Ｋ２は“０”に、それぞれ設定されている。従って、変換パターンＣＰ３は、サブパターンＣＰ３０から始まる４個のサブパターンＣＰ３０，ＣＰ３１，ＣＰ３２，ＣＰ３３によって構成される。なお、図２０においては、サブパターンＣＰ３１〜ＣＰ３３中の設定項目Ｋ１，Ｋ２の記載は省略している。
【００８８】
設定項目Ｋ３は、サブパターンＣＰ３０においては“１”に、サブパターンＣＰ３１〜ＣＰ３３においては“０”に、それぞれ設定されている。また、全てのサブパターンＣＰ３０〜ＣＰ３３において、設定項目Ｋ４は“０”に設定されている。サブパターンＣＰ３０において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“０”“１”“０”“１”“０”“１”“０”“１”に設定されている。サブパターンＣＰ３１において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“２”“３”“２”“３”“２”“３”“２”“３”に設定されている。サブパターンＣＰ３２において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“４”“５”“４”“５”“４”“５”“４”“５”に設定されている。サブパターンＣＰ３３において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“６”“７”“６”“７”“６”“７”“６”“７”に設定されている。
【００８９】
図２１は、レジスタ１３にサブパターンＣＰ３０が設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ０が第１入力バッファ１０に取り込まれ、格納されている。
【００９０】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“０”“１”“０”“１”“０”“１”“０”“１”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１，ＣＨＢ０，ＣＨＢ１，ＣＨＢ０，ＣＨＢ１，ＣＨＢ０，ＣＨＢ１に格納されている部分入力データがコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ０として出力バッファ１４から出力されている。
【００９１】
図２２は、サブパターンＣＰ３０に続いてサブパターンＣＰ３１がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“０”に設定されているため、第１入力バッファ１０には新たな入力データが取り込まれず、第１入力バッファ１０は入力データＩＤ０の格納を維持する。この場合、前段の回路からフォーマット変換処理部３へのデータ書き込みリクエストに対しては、現時点では書き込み用のデータを受け付けることができないことを示す通知を、フォーマット変換処理部３から前段の回路へ送信する。
【００９２】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“２”“３”“２”“３”“２”“３”“２”“３”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ２，ＣＨＢ３，ＣＨＢ２，ＣＨＢ３，ＣＨＢ２，ＣＨＢ３，ＣＨＢ２，ＣＨＢ３に格納されている部分入力データがコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ１として出力バッファ１４から出力されている。
【００９３】
図２３は、サブパターンＣＰ３１に続いてサブパターンＣＰ３２がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“０”に設定されているため、第１入力バッファ１０には新たな入力データが取り込まれず、第１入力バッファ１０は入力データＩＤ０の格納を維持する。
【００９４】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“４”“５”“４”“５”“４”“５”“４”“５”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ４，ＣＨＢ５，ＣＨＢ４，ＣＨＢ５，ＣＨＢ４，ＣＨＢ５，ＣＨＢ４，ＣＨＢ５に格納されている部分入力データがコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ２として出力バッファ１４から出力されている。
【００９５】
図２４は、サブパターンＣＰ３２に続いてサブパターンＣＰ３３がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“０”に設定されているため、第１入力バッファ１０には新たな入力データが取り込まれず、第１入力バッファ１０は入力データＩＤ０の格納を維持する。
【００９６】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“６”“７”“６”“７”“６”“７”“６”“７”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ６，ＣＨＢ７，ＣＨＢ６，ＣＨＢ７，ＣＨＢ６，ＣＨＢ７，ＣＨＢ６，ＣＨＢ７に格納されている部分入力データがコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ３として出力バッファ１４から出力されている。
【００９７】
出力データＯＤ０，ＯＤ１，ＯＤ２，ＯＤ３は、それぞれ、入力データＩＤ０の第０バイト、第１バイト、第２バイト、第３バイトを４倍に伸張したものに等しい。従って、フォーマット変換処理部３に入力された入力データＩＤ０が４倍に抽出されて、出力データＯＤ０〜ＯＤ３として順に出力されたことになる。
【００９８】
＜１６ビットから１２ビットへのパック処理（変換パターンＣＰ４）＞
図２５は、図４に示した変換パターンＣＰ４の設定内容の詳細を示す図である。設定項目Ｋ１は“３”に、設定項目Ｋ２は“０”に、それぞれ設定されている。従って、変換パターンＣＰ４は、サブパターンＣＰ４０から始まる４個のサブパターンＣＰ４０，ＣＰ４１，ＣＰ４２，ＣＰ４３によって構成される。なお、図２５においては、サブパターンＣＰ４１〜ＣＰ４３中の設定項目Ｋ１，Ｋ２の記載は省略している。
【００９９】
全てのサブパターンＣＰ４０〜ＣＰ４３において、設定項目Ｋ３は“１”に設定されている。設定項目Ｋ４は、サブパターンＣＰ４０，ＣＰ４１においては“２”に、サブパターンＣＰ４２，ＣＰ４３においては“０”に、それぞれ設定されている。サブパターンＣＰ４０において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“０”“１”“２”“４”“５”“６”“ｆ”“ｆ”に設定されている。サブパターンＣＰ４１において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“０”“１”に設定されている。サブパターンＣＰ４２において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ａ”“ｃ”“ｄ”“ｅ”“０”“１”“２”“４”に設定されている。サブパターンＣＰ４３において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ｄ”“ｅ”“０”“１”“２”“４”“５”“６”に設定されている。
【０１００】
図２６は、レジスタ１３にサブパターンＣＰ４０が設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ０が第１入力バッファ１０に取り込まれ、格納されている。
【０１０１】
設定項目Ｋ４が“２”に設定されているため、図９に示したテーブルＴＡ２が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“０”“１”“２”“４”“５”“６”“ｆ”“ｆ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１，ＣＨＢ２，ＣＨＢ４，ＣＨＢ５，ＣＨＢ６に格納されている部分入力データ（つまり入力データＩＤ０の第０〜１１ビット，第１６〜２７ビット）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ６，ＨＢ７には、いずれの部分入力データもコピーされない。この時点では、データ格納領域ＨＢ６，ＨＢ７に部分出力データが格納されていないため、出力バッファ１４から出力データＯＤ０は出力されない。
【０１０２】
図２７は、サブパターンＣＰ４０に続いてサブパターンＣＰ４１がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ１が第１入力バッファ１０に取り込まれ、格納されている。
【０１０３】
設定項目Ｋ４が“２”に設定されているため、図９に示したテーブルＴＡ２が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“ｆ”“０”“１”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０〜ＨＢ５には、いずれの部分入力データもコピーされず、入力データＩＤ０の第０〜１１ビット，第１６〜２７ビットが格納されたままである。また、出力バッファ１４のデータ格納領域ＨＢ６，ＨＢ７には、それぞれ、第１入力バッファ１０のデータ格納領域ＣＨＢ０，ＣＨＢ１に格納されている部分入力データ（つまり入力データＩＤ１の第０〜７ビット）がコピーされる。この時点では、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ０として出力バッファ１４から出力されている。
【０１０４】
図２８は、サブパターンＣＰ４１に続いてサブパターンＣＰ４２がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ２が第１入力バッファ１０に取り込まれ、格納されている。また、入力データＩＤ１が第１入力バッファ１０から第２入力バッファ１１に取り込まれ、格納されている。
【０１０５】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ａ”“ｃ”“ｄ”“ｅ”“０”“１”“２”“４”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、データ格納領域ＰＨＢ２，ＰＨＢ４，ＰＨＢ５，ＰＨＢ６，ＣＨＢ０，ＣＨＢ１，ＣＨＢ２，ＣＨＢ４に格納されている部分入力データ（つまり入力データＩＤ１の第８〜１１ビット，第１６〜２７ビット、及び入力データＩＤ２の第０〜１１ビット，第１６〜１９ビット）がコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ１として出力バッファ１４から出力されている。
【０１０６】
図２９は、サブパターンＣＰ４２に続いてサブパターンＣＰ４３がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ３が第１入力バッファ１０に取り込まれ、格納されている。また、入力データＩＤ２が第１入力バッファ１０から第２入力バッファ１１に取り込まれ、格納されている。
【０１０７】
設定項目Ｋ４が“０”に設定されているため、図８に示したテーブルＴＡ１が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ｄ”“ｅ”“０”“１”“２”“４”“５”“６”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ３，ＨＢ４，ＨＢ５，ＨＢ６，ＨＢ７には、それぞれ、データ格納領域ＰＨＢ５，ＰＨＢ６，ＣＨＢ０，ＣＨＢ１，ＣＨＢ２，ＣＨＢ４，ＣＨＢ５，ＣＨＢ６に格納されている部分入力データ（つまり入力データＩＤ２の第２０〜２７ビット、及び入力データＩＤ３の第０〜１１ビット，第１６〜２７ビット）がコピーされる。そして、データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ２として出力バッファ１４から出力されている。
【０１０８】
出力データＯＤ０〜ＯＤ２においては、入力データＩＤ０〜ＩＤ３のそれぞれの第１２〜１５ビット及び第２８〜３１ビットに対応する部分入力データが削除されている。従って、フォーマット変換処理部３に入力された入力データＩＤ０〜ＩＤ３の１６ビット分のデータが、１２ビット分のデータに詰められて、出力データＯＤ０〜ＯＤ２として出力されたことになる。
【０１０９】
＜１２ビットから１６ビットへのアンパック処理（変換パターンＣＰ５）＞
図３０は、図４に示した変換パターンＣＰ５の設定内容の詳細を示す図である。設定項目Ｋ１は“３”に、設定項目Ｋ２は“０”に、それぞれ設定されている。従って、変換パターンＣＰ５は、サブパターンＣＰ５０から始まる４個のサブパターンＣＰ５０，ＣＰ５１，ＣＰ５２，ＣＰ５３によって構成される。なお、図３０においては、サブパターンＣＰ５１〜ＣＰ５３中の設定項目Ｋ１，Ｋ２の記載は省略している。
【０１１０】
設定項目Ｋ３は、サブパターンＣＰ５０〜ＣＰ５２においては“１”に、サブパターンＣＰ５３においては“０”に、それぞれ設定されている。設定項目Ｋ４は、全てのサブパターンＣＰ５０〜ＣＰ５３において“３”に設定されている。サブパターンＣＰ５０において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“０”“１”“２”“ｅ”“３”“４”“５”“ｅ”に設定されている。サブパターンＣＰ５１において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ｃ”“ｄ”“０”“ｅ”“１”“２”“３”“ｅ”に設定されている。サブパターンＣＰ５２において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“ａ”“ｂ”“ｃ”“ｅ”“ｄ”“０”“１”“ｅ”に設定されている。サブパターンＣＰ５３において、設定項目Ｋ５は、第０レーンから第７レーンまで順に、“２”“３”“４”“ｅ”“５”“６”“７”“ｅ”に設定されている。
【０１１１】
図３１は、レジスタ１３にサブパターンＣＰ５０が設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ０が第１入力バッファ１０に取り込まれ、格納されている。
【０１１２】
設定項目Ｋ４が“３”に設定されているため、図１０に示したテーブルＴＡ３が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“０”“１”“２”“ｅ”“３”“４”“５”“ｅ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ４，ＨＢ５，ＨＢ６には、それぞれ、データ格納領域ＣＨＢ０，ＣＨＢ１，ＣＨＢ２，ＣＨＢ３，ＣＨＢ４，ＣＨＢ５に格納されている部分入力データ（つまり入力データＩＤ０の第０〜２３ビット）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ３，ＨＢ７には、固定値（この例の場合は４ビットの所望の固定値）が格納される。データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ０として出力バッファ１４から出力されている。
【０１１３】
図３２は、サブパターンＣＰ５０に続いてサブパターンＣＰ５１がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ１が第１入力バッファ１０に取り込まれ、格納されている。また、入力データＩＤ０が第１入力バッファ１０から第２入力バッファ１１に取り込まれ、格納されている。
【０１１４】
設定項目Ｋ４が“３”に設定されているため、図１０に示したテーブルＴＡ３が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ｃ”“ｄ”“０”“ｅ”“１”“２”“３”“ｅ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ４，ＨＢ５，ＨＢ６には、それぞれ、データ格納領域ＰＨＢ６，ＰＨＢ７，ＣＨＢ０，ＣＨＢ１，ＣＨＢ２，ＣＨＢ３に格納されている部分入力データ（つまり入力データＩＤ０の第２４〜３１ビット、及び入力データＩＤ１の第０〜１５ビット）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ３，ＨＢ７には、固定値（この例の場合は４ビットの所望の固定値）が格納される。データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ１として出力バッファ１４から出力されている。
【０１１５】
図３３は、サブパターンＣＰ５１に続いてサブパターンＣＰ５２がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“１”に設定されているため、新たな入力データＩＤ２が第１入力バッファ１０に取り込まれ、格納されている。また、入力データＩＤ１が第１入力バッファ１０から第２入力バッファ１１に取り込まれ、格納されている。
【０１１６】
設定項目Ｋ４が“３”に設定されているため、図１０に示したテーブルＴＡ３が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“ａ”“ｂ”“ｃ”“ｅ”“ｄ”“０”“１”“ｅ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ４，ＨＢ５，ＨＢ６には、それぞれ、データ格納領域ＰＨＢ４，ＰＨＢ５，ＰＨＢ６，ＰＨＢ７，ＣＨＢ０，ＣＨＢ１に格納されている部分入力データ（つまり入力データＩＤ１の第１６〜３１ビット、及び入力データＩＤ２の第０〜７ビット）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ３，ＨＢ７には、固定値（この例の場合は４ビットの所望の固定値）が格納される。データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ２として出力バッファ１４から出力されている。
【０１１７】
図３４は、サブパターンＣＰ５２に続いてサブパターンＣＰ５３がレジスタ１３に設定された場合のフォーマット変換処理部３の動作を説明するためのブロック図である。設定項目Ｋ３が“０”に設定されているため、第１入力バッファ１０には新たな入力データが取り込まれず、第１入力バッファ１０及び第２入力バッファ１１は、それぞれ入力データＩＤ２及び入力データＩＤ１の格納を維持する。
【０１１８】
設定項目Ｋ４が“３”に設定されているため、図１０に示したテーブルＴＡ３が選択される。また、設定項目Ｋ５が第０レーンから第７レーンまで順に“２”“３”“４”“ｅ”“５”“６”“７”“ｅ”に設定されている。従って、出力バッファ１４のデータ格納領域ＨＢ０，ＨＢ１，ＨＢ２，ＨＢ４，ＨＢ５，ＨＢ６には、それぞれ、データ格納領域ＣＨＢ２，ＣＨＢ３，ＣＨＢ４，ＣＨＢ５，ＣＨＢ６，ＣＨＢ７に格納されている部分入力データ（つまり入力データＩＤ２の第８〜３１ビット）がコピーされる。また、出力バッファ１４のデータ格納領域ＨＢ３，ＨＢ７には、固定値（この例の場合は４ビットの所望の固定値）が格納される。データ格納領域ＨＢ０〜ＨＢ７の全てに部分出力データが格納されているため、８個の部分出力データが１個の出力データＯＤ３として出力バッファ１４から出力されている。
【０１１９】
出力データＯＤ０〜ＯＤ３においては、入力データＩＤ０〜ＩＤ２にまたがる各１２ビット分の８個のデータ群毎に、４ビット分のデータ（この例の場合は任意の固定値）が挿入されている。従って、フォーマット変換処理部３に入力された入力データＩＤ０〜ＩＤ２の１２ビット分のデータ群が、１６ビット分のデータ群に広げられて、出力データＯＤ０〜ＯＤ３として出力されたことになる。
【図面の簡単な説明】
【０１２０】
【図１】本発明の適用対象の一例であるディジタルカメラの構成を概略的に示すブロック図である。
【図２】フォーマット変換処理部の構成を示すブロック図である。
【図３】第１入力バッファ、第２入力バッファ、出力バッファ、及び変換処理部の構成を示す図である。
【図４】レジスタへの変換パターンの設定状況を示す図である。
【図５】変換パターンの設定内容の詳細を示す図である。
【図６】設定項目を説明するための図である。
【図７】設定項目を説明するための図である。
【図８】設定項目を説明するための図である。
【図９】設定項目を説明するための図である。
【図１０】設定項目を説明するための図である。
【図１１】変換パターンの設定内容の詳細を示す図である。
【図１２】フォーマット変換処理部の動作を説明するためのブロック図である。
【図１３】変換パターンの設定内容の詳細を示す図である。
【図１４】フォーマット変換処理部の動作を説明するためのブロック図である。
【図１５】変換パターンの設定内容の詳細を示す図である。
【図１６】フォーマット変換処理部の動作を説明するためのブロック図である。
【図１７】フォーマット変換処理部の動作を説明するためのブロック図である。
【図１８】フォーマット変換処理部の動作を説明するためのブロック図である。
【図１９】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２０】変換パターンの設定内容の詳細を示す図である。
【図２１】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２２】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２３】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２４】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２５】変換パターンの設定内容の詳細を示す図である。
【図２６】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２７】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２８】フォーマット変換処理部の動作を説明するためのブロック図である。
【図２９】フォーマット変換処理部の動作を説明するためのブロック図である。
【図３０】変換パターンの設定内容の詳細を示す図である。
【図３１】フォーマット変換処理部の動作を説明するためのブロック図である。
【図３２】フォーマット変換処理部の動作を説明するためのブロック図である。
【図３３】フォーマット変換処理部の動作を説明するためのブロック図である。
【図３４】フォーマット変換処理部の動作を説明するためのブロック図である。
【符号の説明】
【０１２１】
３，３Ａ，３Ｂ  フォーマット変換処理部
５  メモリ
１０  第１入力バッファ
１１  第２入力バッファ
１２  変換処理部
１３  レジスタ
１４  出力バッファ
【図１】
0005097973.tif 000002
【図２】
0005097973.tif 000003
【図３】
0005097973.tif 000004
【図４】
0005097973.tif 000005
【図５】
0005097973.tif 000006
【図６】
0005097973.tif 000007
【図７】
0005097973.tif 000008
【図８】
0005097973.tif 000009
【図９】
0005097973.tif 000010
【図１０】
0005097973.tif 000011
【図１１】
0005097973.tif 000012
【図１２】
0005097973.tif 000013
【図１３】
0005097973.tif 000014
【図１４】
0005097973.tif 000015
【図１５】
0005097973.tif 000016
【図１６】
0005097973.tif 000017
【図１７】
0005097973.tif 000018
【図１８】
0005097973.tif 000019
【図１９】
0005097973.tif 000020
【図２０】
0005097973.tif 000021
【図２１】
0005097973.tif 000022
【図２２】
0005097973.tif 000023
【図２３】
0005097973.tif 000024
【図２４】
0005097973.tif 000025
【図２５】
0005097973.tif 000026
【図２６】
0005097973.tif 000027
【図２７】
0005097973.tif 000028
【図２８】
0005097973.tif 000029
【図２９】
0005097973.tif 000030
【図３０】
0005097973.tif 000031
【図３１】
0005097973.tif 000032
【図３２】
0005097973.tif 000033
【図３３】
0005097973.tif 000034
【図３４】
0005097973.tif 000035