データ処理装置
【課題】ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換処理を実行可能な、データ処理装置を得る。
【解決手段】フォーマット変換処理部3は、入力データIDを格納可能な第1入力バッファ10と、出力データODを格納可能な出力バッファ14と、第1入力バッファ10と出力バッファ14との間に接続された変換処理部12と、変換処理部12が参照可能なレジスタ13とを備える。レジスタ13には、所望のデータフォーマット変換に応じて、複数種類の変換パターンCPを設定可能である。変換処理部12は、レジスタ13に設定されている変換パターンCPに従って、入力データIDに基づいて出力データODを生成する。
【解決手段】フォーマット変換処理部3は、入力データIDを格納可能な第1入力バッファ10と、出力データODを格納可能な出力バッファ14と、第1入力バッファ10と出力バッファ14との間に接続された変換処理部12と、変換処理部12が参照可能なレジスタ13とを備える。レジスタ13には、所望のデータフォーマット変換に応じて、複数種類の変換パターンCPを設定可能である。変換処理部12は、レジスタ13に設定されている変換パターンCPに従って、入力データIDに基づいて出力データODを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置に関し、特に、入力されたデータを、そのデータのフォーマットとは異なるフォーマットのデータに変換して出力するデータフォーマット変換処理装置に関する。
【背景技術】
【0002】
DSC(Digital Still Camera)向け等のSoC(System on a Chip)においては、例えば、メモリに格納しようとするデータのフォーマットを、内部周辺回路に対応するフォーマットに変換(データフォーマット変換)する必要がある。
【0003】
従来のSoCにおいては、CPUによるソフトウェア処理によって、データフォーマット変換処理が実行されていた。しかし、CPUによるソフトウェア処理では所要時間が非常に長かったため、近年では、専用のハードウェアを用いてデータフォーマット変換処理を実行することが行われている。
【0004】
下記特許文献1には、入力されたデータを、そのデータのビット数とは異なるビット数のデータに変換するための技術が開示されている。
【0005】
また、下記特許文献2には、データフォーマット変換処理の一つであるエンディアン処理に関する技術が開示されている。
【0006】
【特許文献1】特開2004−240713号公報
【特許文献2】特開平3−160550号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
専用ハードウェアを用いてデータフォーマット変換処理を実行することにより、CPUによるソフトウェア処理による場合と比較すると、所要時間の短縮化を図ることができる。しかしながら、データフォーマット変換処理には、エンディアン変換処理、パック処理、又はアンパック処理等、様々な処理がある。ところが、専用ハードウェアは目的とする一種類の処理しか実行できないため、複数種類の処理を実行するためには、異なる処理毎に個別の専用ハードウェアを構築しなければならず、全体として回路規模が増大するという問題がある。
【0008】
本発明はかかる問題を解決するために成されたものであり、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換処理を実行可能な、データ処理装置を得ることを目的とする。
【課題を解決するための手段】
【0009】
第1の発明に係るデータ処理装置は、入力データを格納可能な第1の入力バッファと、出力データを格納可能な出力バッファと、前記第1の入力バッファと前記出力バッファとの間に接続されたデータ変換手段と、前記データ変換手段が参照可能なレジスタとを備え、前記レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能であり、前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記入力データに基づいて前記出力データを生成することを特徴とするものである。
【0010】
第2の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記第1の入力バッファには第1の入力データが格納され、前記第1の入力データよりも前に入力された第2の入力データを格納可能な第2の入力バッファをさらに備え、前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記第1の入力データ及び前記第2の入力データに基づいて前記出力データを生成することを特徴とするものである。
【0011】
第3の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記レジスタには、一つのデータフォーマット変換を実行するために、複数の変換パターンを順に設定可能であり、前記データ変換手段は、前記レジスタに順に設定される前記複数の変換パターンに従って、前記入力データに基づいて前記出力データを生成することを特徴とするものである。
【0012】
第4の発明に係るデータ処理装置は、第3の発明に係るデータ処理装置において特に、前記レジスタに設定されている変換パターンが次の変換パターンに更新されるのに同期して、前記第1の入力バッファに次の入力データを入力するか否かを、前記次の変換パターンによって設定可能であることを特徴とするものである。
【0013】
第5の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記出力バッファは複数のデータ格納領域を有しており、前記複数のデータ格納領域の全てに部分出力データが格納されることにより、前記出力バッファから前記出力データが出力されることを特徴とするものである。
【0014】
第6の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、現在前記第1の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことを、前記変換パターンによって設定可能であることを特徴とするものである。
【0015】
第7の発明に係るデータ処理装置は、第6の発明に係るデータ処理装置において特に、前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、特定のコード番号については、前記コピー元情報の代わりに、前記入力データのうちのいずれの部分のデータをもコピーしないことを示す情報が記述されており、前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されていることを特徴とするものである。
【0016】
第8の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、前記入力データに関わらず固定値とすることを、前記変換パターンによって設定可能であることを特徴とするものである。
【0017】
第9の発明に係るデータ処理装置は、第8の発明に係るデータ処理装置において特に、前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、特定のコード番号については、前記コピー元情報の代わりに、前記入力データに関わらず固定値とすることを示す情報が記述されており、前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されていることを特徴とするものである。
【発明の効果】
【0018】
第1の発明に係るデータ処理装置によれば、レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能である。そして、データ変換手段は、レジスタに設定されている変換パターンに従って、入力データに基づいて出力データを生成する。従って、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換を実行可能な、データ処理装置を得ることができる。
【0019】
第2の発明に係るデータ処理装置によれば、データ変換手段は、第1の入力データのみならず、過去に入力された第2の入力データをも用いて、出力データを生成する。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0020】
第3の発明に係るデータ処理装置によれば、データ変換手段は、一つの変換パターンのみの設定で実現できるデータフォーマット変換のみならず、複数の変換パターンの設定が必要なデータフォーマット変換をも実行可能となる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0021】
第4の発明に係るデータ処理装置によれば、レジスタに設定されている変換パターンが次の変換パターンに更新されても、第1の入力バッファへの次の入力データの取り込みを実行させないことができる。従って、データ処理装置から出力される出力データの転送レートよりも、データ処理装置へ入力される入力データの転送レートのほうが低い場合に、第1の入力バッファへの次の入力データの取り込みを待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0022】
第5の発明に係るデータ処理装置によれば、データ処理装置から出力される出力データの転送レートよりも、データ処理装置へ入力される入力データの転送レートのほうが高い場合に、出力バッファからのデータの出力を待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0023】
第6の発明に係るデータ処理装置によれば、データ変換手段は、出力データを生成するために常に入力データのコピーを用いるわけではなく、出力データのうちの所望の部分については、現在第1の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0024】
第7の発明に係るデータ処理装置によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている。従って、複数のテーブルを適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【0025】
第8の発明に係るデータ処理装置によれば、データ変換手段は、出力データを生成するために常に入力データのコピーを用いるわけではなく、出力データのうちの所望の部分については、固定値とすることができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0026】
第9の発明に係るデータ処理装置によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている。従って、複数のテーブルを適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0028】
図1は、本発明の適用対象の一例であるディジタルカメラの構成を概略的に示すブロック図である。図1に示すようにディジタルカメラは、CCD等の撮像部1、前処理部2、フォーマット変換処理部3A,3B、メモリアクセス処理部(DMA)4A,4B、DRAM等のメモリ5、画像信号処理部6、及びLCD等の表示部7を備えて構成されている。
【0029】
撮像部1から出力された画像データは、前処理部2に入力される。前処理部2は、撮像部1から入力された画像データに対して、ホワイトバランス調整や露光補正等の所定の前処理を行う。前処理部2から出力された画像データは、フォーマット変換処理部3Aに入力される。フォーマット変換処理部3Aは、前処理部2から入力された画像データを、その画像データのフォーマットとは異なるフォーマットの画像データに変換する。フォーマット変換処理部3Aにおける処理内容の詳細については後述する。メモリアクセス処理部4Aは、フォーマット変換処理部3Aから出力された画像データをメモリ5に書き込む。
【0030】
メモリアクセス処理部4Bは、メモリ5に格納されている画像データを読み出す。フォーマット変換処理部3Bは、メモリ5から読み出された画像データを、その画像データのフォーマットとは異なるフォーマットの画像データに変換する。フォーマット変換処理部3Bにおける処理内容の詳細については後述する。以下の説明では、フォーマット変換処理部3Aとフォーマット変換処理部3Bとを総称して、「フォーマット変換処理部3」とも称する。フォーマット変換処理部3Bから出力された画像データは、画像信号処理部6に入力される。画像信号処理部6は、フォーマット変換処理部3Bから入力された画像データに対して種々の画像処理を行う。画像信号処理部6によって処理された画像データは表示部7に入力され、表示部7において画像が表示される。
【0031】
なお、図1では、メモリ5への書き込み用とメモリ5からの読み出し用とで、別々のメモリアクセス処理部4A,4Bが搭載されている例について示した。ここで、メモリ5に対する書き込み処理と読み出し処理とを同時に行わない場合には、メモリアクセス処理部4Aとメモリアクセス処理部4Bとを兼用することができる。そして、この場合は、フォーマット変換処理部3Aとフォーマット変換処理部3Bとを兼用することもできる。
【0032】
図2は、フォーマット変換処理部3の構成を示すブロック図である。図2に示すようにフォーマット変換処理部3は、第1入力バッファ10、第2入力バッファ11、変換処理部(データ変換手段)12、レジスタ13、及び出力バッファ14を備えて構成されている。
【0033】
入力データIDは、フォーマット変換処理部3の前段の回路(前処理部2又はメモリアクセス処理部4B)から第1入力バッファ10に入力され、格納される。つまり、第1入力バッファ10には最新の入力データIDが格納されている。
【0034】
第1入力バッファ10に新たな入力データIDが取り込まれると、それまで第1入力バッファ10に格納されていた入力データIDは、第2入力バッファ11に入力され、格納される。つまり、第2入力バッファ11には、最新の入力データIDよりも前にフォーマット変換処理部3に入力された過去の入力データID(この例では直前の入力データID)が格納されている。
【0035】
出力バッファ14は、フォーマット変換処理部3から出力すべき出力データODを格納する。
【0036】
レジスタ13は、変換処理部12によって参照可能である。レジスタ13には、所望のデータフォーマット変換に応じて、複数種類の変換パターンCPを設定可能である。詳細については後述する。
【0037】
変換処理部12は、第1入力バッファ10及び第2入力バッファ11と、出力バッファ14との間に接続されている。変換処理部12は、レジスタ13に設定されている変換パターンCPに従って、第1入力バッファ10及び第2入力バッファ11に格納されている入力データIDに基づいて出力データODを生成する。
【0038】
図3は、第1入力バッファ10、第2入力バッファ11、出力バッファ14、及び変換処理部12の構成を示す図である。以下では、32ビットの入力データIDが入力される例について説明する。
【0039】
第1入力バッファ10は、それぞれ4ビットの8個のデータ格納領域CHB0〜CHB7を有している。外部から第1入力バッファ10に入力データIDが入力されると、32ビットの入力データIDがそれぞれ4ビットの8個の部分入力データに分割されて、各部分入力データが各データ格納領域CHB0〜CHB7に格納される。例えば、入力データIDの下位4ビットに相当する部分入力データはデータ格納領域CHB0に格納され、入力データIDの上位4ビットに相当する部分入力データはデータ格納領域CHB7に格納される。
【0040】
同様に、第2入力バッファ11は、それぞれ4ビットの8個のデータ格納領域PHB0〜PHB7を有している。第1入力バッファ10に新たな入力データIDが取り込まれると、それまで第1入力バッファ10の各データ格納領域CHB0〜CHB7に格納されていた部分入力データは、第2入力バッファ11の各データ格納領域PHB0〜PHB7に転送され、格納される。例えば、第1入力バッファ10のデータ格納領域CHB0に格納されていた部分入力データは、第2入力バッファ11のデータ格納領域PHB0に格納され、第1入力バッファ10のデータ格納領域CHB7に格納されていた部分入力データは、第2入力バッファ11のデータ格納領域PHB7に格納される。
【0041】
同様に、出力バッファ14は、それぞれ4ビットの8個のデータ格納領域HB0〜HB7を有している。各データ格納領域HB0〜HB7には、それぞれ4ビットの部分出力データが格納される。8個のデータ格納領域HB0〜HB7の全てに部分出力データが格納されると、8個の部分出力データが1個の出力データODとして出力バッファ14から出力される。例えば、データ格納領域HB0に格納されていた部分出力データは、出力データODの下位4ビットのデータとなり、データ格納領域HB7に格納されていた部分出力データは、出力データODの上位4ビットのデータとなる。
【0042】
なお、図3において各データ格納領域CHB0〜CHB7,PHB0〜PHB7,HB0〜HB7の右下に付したフラグCHBL0〜CHBL7,PHBL0〜PHBL7,HBL0〜HBL7は、そのフラグが付されたデータ格納領域に格納されているデータが、有意であるか否かを示すための1ビットのフラグである。
【0043】
変換処理部12は、データ格納領域HB0〜HB7に対応する8個のマルチプレクサMUX0〜MUX7を有している。例えば、マルチプレクサMUX0はデータ格納領域HB0に対応し、マルチプレクサMUX7はデータ格納領域HB7に対応している。以下、32ビットを8個に分割した各領域を、本明細書において「レーン」とも称する。例えば、マルチプレクサMUX0及びデータ格納領域HB0は第0レーンに属し、マルチプレクサMUX7及びデータ格納領域HB7は第7レーンに属する。
【0044】
各マルチプレクサMUX0〜MUX7は、データ格納領域CHB0〜CHB7,PHB0〜PHB7の中の一つのデータ格納領域に格納されている部分入力データをコピーして、対応するデータ格納領域HB0〜HB7に格納する。コピー元の指定は、レジスタ13に設定されている変換パターンCPによって行われる。
【0045】
図4は、レジスタ13への変換パターンCPの設定状況を示す図である。図4に示すように、レジスタ13には、複数種類の変換パターンCP0〜CP5を選択して設定することが可能である。例えば、変換パターンCP1は、エンディアン変換処理に関する変換パターンであり、変換パターンCP2は、注目バイトの抽出処理に関する変換パターンであり、変換パターンCP3は、各バイトの伸張処理に関する変換パターンであり、変換パターンCP4は、16ビットから12ビットへのパック処理に関する変換パターンであり、変換パターンCP5は、12ビットから16ビットへのアンパック処理に関する変換パターンである。また、変換パターンCP0は、無変換の処理に関する変換パターンである。
【0046】
ユーザが所望するデータフォーマット変換処理に応じて、図示しないCPUが、そのデータフォーマット変換処理に対応する変換パターンCP0〜CP5を選択してレジスタ13に設定する。なお、レジスタ13に設定可能な変換パターンの種類及び個数は、図4に示した例に限らず、任意の種類及び任意の個数の変換パターンを設定可能である。
【0047】
このように、本実施の形態に係るフォーマット変換処理部3によれば、レジスタ13には、所望のデータフォーマット変換に応じて、複数種類の変換パターンCP0〜CP5を設定可能である。そして、変換処理部12は、レジスタ13に設定されている変換パターンCPに従って、入力データIDに基づいて出力データODを生成する。従って、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換を実行可能な、データ処理装置を得ることができる。
【0048】
また、変換処理部12は、第1入力バッファ10に格納されている現在の入力データIDのみならず、過去に入力されて第2入力バッファ11に格納されている入力データIDをも用いて、出力データODを生成する。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0049】
図5は、変換パターンCPの設定内容の詳細を示す図である。図5に示した例では、繰り返しに関する設定項目K1、繰り返しの初期値に関する設定項目K2、入力データの更新に関する設定項目K3、モードに関する設定項目K4、及びコピー元に関する設定項目K5が設けられている。なお、設定項目の種類及び個数は、図5に示した例に限らず、任意の種類及び任意の個数の設定項目を準備可能である。
【0050】
まず、図5に示した設定項目K1について説明する。図6,7は、設定項目K1を説明するための図である。図6を参照して、例えば変換パターンCP0に関しては、レジスタ13への1回の設定によって、目的とするデータフォーマット変換処理が完結する。つまり、変換パターンCP0は1個の変換パターン(以下「サブパターン」と称する)CP00のみによって構成されている。この場合、設定項目K1を“0”に設定することにより、1個のサブパターンCP00がレジスタ13に繰り返し設定されることとなる。
【0051】
図7を参照して、例えば変換パターンCP2に関しては、レジスタ13への4回の設定によって、目的とするデータフォーマット変換処理が完結する。つまり、変換パターンCP2は4個のサブパターンCP20〜CP23によって構成されている。この場合、設定項目K1を“3”に設定することにより、レジスタ13には4個のサブパターンCP20〜CP23がこの順に繰り返して設定されることとなる。
【0052】
このように、本実施の形態に係るフォーマット変換処理部3によれば、変換処理部12は、一つのサブパターンのみの設定で実現できるデータフォーマット変換のみならず、複数のサブパターンの設定が必要なデータフォーマット変換をも実行可能となる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0053】
次に、図5に示した設定項目K2について説明する。設定項目K2は、設定項目K1が“1”以上の値に設定されている場合、つまり、サブパターンが2個以上存在する場合に、繰り返しの一周期の中で、どのサブパターンを一番最初にレジスタ13に設定するかを指定するための項目である。図7を参照して、例えば、設定項目K2が“0”に設定されている場合は、一番目のサブパターンとしてサブパターンCP20が設定され、設定項目K2が“2”に設定されている場合は、一番目のサブパターンとしてサブパターンCP22が設定されることとなる。
【0054】
次に、図5に示した設定項目K3について説明する。設定項目K3は、新たな入力データIDを第1入力バッファ10に取り込むか否かを設定するための項目である。設定項目K3が“0”に設定されている場合は、新たな入力データIDは第1入力バッファ10に取り込まれない。つまり、第1入力バッファ10(及び第2入力バッファ11)の格納内容は維持される。一方、設定項目K3が“1”に設定されている場合は、新たな入力データIDが第1入力バッファ10に取り込まれる。なお、上記の通り、第1入力バッファ10に新たな入力データIDが取り込まれると、それまで第1入力バッファ10に格納されていた入力データIDは、第2入力バッファ11に入力され、格納されることとなる。
【0055】
このように、本実施の形態に係るフォーマット変換処理部3によれば、レジスタ13に設定されている変換パターン又はサブパターンが次の変換パターン又はサブパターンに更新されても、設定項目K3を“0”に設定することにより、第1入力バッファ10への次の入力データIDの取り込みを実行させないことができる。従って、フォーマット変換処理部3から出力される出力データODの転送レートよりも、フォーマット変換処理部3へ入力される入力データIDの転送レートのほうが低い場合に、第1入力バッファ10への次の入力データIDの取り込みを待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0056】
次に、図5に示した設定項目K4について説明する。図8〜10は、設定項目K4を説明するための図である。変換パターンCPを作成するためのテーブルTA1〜TA3が、予め準備されている。図8〜10に示すように、各テーブルTA1〜TA3には、コード番号とコピー元情報との対応関係が記述されている。コード番号は、“0”〜“f”の連続番号である。コピー元情報は、出力データの生成のために入力データのうちコピーすべき部分を示す情報である。図3を参照して、例えば、コピー元情報が“CHB0”である場合は、第1入力バッファ10のデータ格納領域CHB0に格納されている部分入力データをコピーするということであり、コピー元情報が“PHB7”である場合は、第2入力バッファ11のデータ格納領域PHB7に格納されている部分入力データをコピーするということである。
【0057】
設定項目K4が“0”又は“1”に設定されている場合は、図8に示したテーブルTA1が選択される。テーブルTA1においては、コピー元情報の欄には、全てのデータ格納領域CHB0〜CHB7,PHB0〜PHB7が記述されている。
【0058】
設定項目K4が“2”に設定されている場合は、図9に示したテーブルTA2が選択される。テーブルTA2においては、コピー元情報の欄には、全てのデータ格納領域CHB0〜CHB7,PHB0〜PHB7のうちデータ格納領域PHB6,PHB7が記述されていない。従って、テーブルTA2が選択された場合には、データのコピー元としてデータ格納領域PHB6,PHB7を指定することはできない。
【0059】
その代わり、テーブルTA2においては、コード番号“e”及び“f”に対応して、それぞれ情報“FV”及び“NC”が記述されている。情報“FV”は、入力データの値に関わらず部分出力データの値を固定値とすることを示す情報である。この情報には、固定値の値そのもの(例えば4ビットの固定値)を含めることも可能である。また、情報“NC”は、入力データのうちのいずれの部分のデータをもコピーしないことを示す情報である。
【0060】
このように、本実施の形態に係るフォーマット変換処理部3によれば、変換処理部12は、出力データODを生成するために常に入力データIDのコピーを用いるわけではなく、出力データODのうちの所望の部分については、第1入力バッファ10又は第2入力バッファ11に現在格納されている入力データIDのうちのいずれの部分のデータをもコピーしないことができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0061】
同様に、変換処理部12は、出力データODを生成するために常に入力データIDのコピーを用いるわけではなく、出力データODのうちの所望の部分については、固定値とすることができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0062】
設定項目K4が“3”に設定されている場合は、図10に示したテーブルTA3が選択される。テーブルTA3においては、コピー元情報の欄には、全てのデータ格納領域CHB0〜CHB7,PHB0〜PHB7のうちデータ格納領域PHB0,PHB1が記述されていない。従って、テーブルTA3が選択された場合には、データのコピー元としてデータ格納領域PHB0,PHB1を指定することはできない。コード番号“e”及び“f”に対応して情報“FV”及び“NC”が記述されている点は、図9に示したテーブルTA2と同様である。
【0063】
このように、本実施の形態に係るフォーマット変換処理部3によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルTA2,TA3が準備されている。従って、複数のテーブルTA2,TA3を適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【0064】
次に、図5に示した設定項目K5について説明する。設定項目K5では、第0レーンから第7レーンまでの各レーン毎に、コード番号“0”〜“f”のうちの一つがそれぞれ設定される。例えば、設定項目K4が“0”に設定され(つまり図8に示したテーブルTA1が選択され)、第0レーンの設定項目K5が“3”に設定されている場合は、テーブルTA1のコード番号“3”に対応するコピー元情報は“CHB3”であるため、図3を参照して、第0レーンに属するマルチプレクサMUX0は、データ格納領域CHB3に格納されている部分入力データをコピーして、そのデータをデータ格納領域HB3に格納することとなる。
【0065】
以下では、データフォーマット変換処理の具体例について、詳細に説明する。
【0066】
<無変換処理(変換パターンCP0)>
図11は、図4に示した変換パターンCP0の設定内容の詳細を示す図である。設定項目K1は“0”に、設定項目K2は“0”に、設定項目K3は“1”に、設定項目K4は“0”に、それぞれ設定されている。また、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“2”“3”“4”“5”“6”“7”に設定されている。
【0067】
図12は、レジスタ13に変換パターンCP0が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0068】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“2”“3”“4”“5”“6”“7”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1,CHB2,CHB3,CHB4,CHB5,CHB6,CHB7に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0069】
出力データOD0は入力データID0に等しい。従って、フォーマット変換処理部3に入力された入力データID0が、何の変換処理もされずにそのまま出力データOD0として出力されたことになる。
【0070】
<エンディアン変換処理(変換パターンCP1)>
図13は、図4に示した変換パターンCP1の設定内容の詳細を示す図である。設定項目K1は“0”に、設定項目K2は“0”に、設定項目K3は“1”に、設定項目K4は“0”に、それぞれ設定されている。また、設定項目K5は、第0レーンから第7レーンまで順に、“6”“7”“4”“5”“2”“3”“0”“1”に設定されている。
【0071】
図14は、レジスタ13に変換パターンCP1が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0072】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“6”“7”“4”“5”“2”“3”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB6,CHB7,CHB4,CHB5,CHB2,CHB3,CHB0,CHB1に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0073】
出力データOD0の第0バイト(最下位バイト)、第1バイト、第2バイト、第3バイト(最上位バイト)は、それぞれ、入力データID0の第3バイト、第2バイト、第1バイト、第0バイトに等しい。従って、フォーマット変換処理部3に入力された入力データID0が、バイト単位で前後が逆転されて、出力データOD0として出力されたことになる。
【0074】
<注目バイトの抽出処理(変換パターンCP2)>
図15は、図4に示した変換パターンCP2の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP2は、サブパターンCP20から始まる4個のサブパターンCP20,CP21,CP22,CP23によって構成される。なお、図15においては、サブパターンCP21〜CP23中の設定項目K1,K2の記載は省略している。
【0075】
全てのサブパターンCP20〜CP23において、設定項目K3は“1”に、設定項目K4は“2”に、それぞれ設定されている。サブパターンCP20においては、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“f”“f”“f”“f”“f”“f”に設定されている。サブパターンCP21においては、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“0”“1”“f”“f”“f”“f”に設定されている。サブパターンCP22においては、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“f”“f”“0”“1”“f”“f”に設定されている。サブパターンCP23においては、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。
【0076】
図16は、レジスタ13にサブパターンCP20が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0077】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“f”“f”“f”“f”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID0の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB2〜HB7には、いずれの部分入力データもコピーされない。
【0078】
また、この時点では、データ格納領域HB2〜HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。この場合、後段の回路からフォーマット変換処理部3へのデータ読み出しリクエストに対しては、現時点の出力データが無効であることを示す通知を、フォーマット変換処理部3から後段の回路へ送信する。これにより、不完全な出力データが後段の回路に入力されることを回避できる。
【0079】
図17は、サブパターンCP20に続いてサブパターンCP21がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID1が第1入力バッファ10に取り込まれ、格納されている。
【0080】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“0”“1”“f”“f”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB2,HB3には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID1の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB0,HB1,HB4〜HB7には、いずれの部分入力データもコピーされない。また、この時点では、データ格納領域HB4〜HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。
【0081】
図18は、サブパターンCP21に続いてサブパターンCP22がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID2が第1入力バッファ10に取り込まれ、格納されている。
【0082】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“f”“f”“0”“1”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB4,HB5には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID2の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB0〜HB3,HB6,HB7には、いずれの部分入力データもコピーされない。また、この時点では、データ格納領域HB6,HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。
【0083】
図19は、サブパターンCP22に続いてサブパターンCP23がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID3が第1入力バッファ10に取り込まれ、格納されている。
【0084】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID3の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB0〜HB5には、いずれの部分入力データもコピーされない。この時点では、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0085】
このように、本実施の形態に係るフォーマット変換処理部3によれば、データ格納領域HB0〜HB7の全てに部分出力データが格納されることにより、出力バッファ14から出力データODが出力される。従って、フォーマット変換処理部3から出力される出力データODの転送レートよりも、フォーマット変換処理部3へ入力される入力データIDの転送レートのほうが高い場合に、出力バッファ14からのデータの出力を待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0086】
出力データOD0の第0バイト、第1バイト、第2バイト、第3バイトは、それぞれ、入力データID0,ID1,ID2,ID3の各第0バイトに等しい。従って、フォーマット変換処理部3に順に入力された入力データID0〜ID3の各第0バイトが抽出されて、出力データOD0として出力されたことになる。
【0087】
<各バイトの伸張処理(変換パターンCP3)>
図20は、図4に示した変換パターンCP3の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP3は、サブパターンCP30から始まる4個のサブパターンCP30,CP31,CP32,CP33によって構成される。なお、図20においては、サブパターンCP31〜CP33中の設定項目K1,K2の記載は省略している。
【0088】
設定項目K3は、サブパターンCP30においては“1”に、サブパターンCP31〜CP33においては“0”に、それぞれ設定されている。また、全てのサブパターンCP30〜CP33において、設定項目K4は“0”に設定されている。サブパターンCP30において、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“0”“1”“0”“1”“0”“1”に設定されている。サブパターンCP31において、設定項目K5は、第0レーンから第7レーンまで順に、“2”“3”“2”“3”“2”“3”“2”“3”に設定されている。サブパターンCP32において、設定項目K5は、第0レーンから第7レーンまで順に、“4”“5”“4”“5”“4”“5”“4”“5”に設定されている。サブパターンCP33において、設定項目K5は、第0レーンから第7レーンまで順に、“6”“7”“6”“7”“6”“7”“6”“7”に設定されている。
【0089】
図21は、レジスタ13にサブパターンCP30が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0090】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“0”“1”“0”“1”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1,CHB0,CHB1,CHB0,CHB1,CHB0,CHB1に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0091】
図22は、サブパターンCP30に続いてサブパターンCP31がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10は入力データID0の格納を維持する。この場合、前段の回路からフォーマット変換処理部3へのデータ書き込みリクエストに対しては、現時点では書き込み用のデータを受け付けることができないことを示す通知を、フォーマット変換処理部3から前段の回路へ送信する。
【0092】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“2”“3”“2”“3”“2”“3”“2”“3”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB2,CHB3,CHB2,CHB3,CHB2,CHB3,CHB2,CHB3に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD1として出力バッファ14から出力されている。
【0093】
図23は、サブパターンCP31に続いてサブパターンCP32がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10は入力データID0の格納を維持する。
【0094】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“4”“5”“4”“5”“4”“5”“4”“5”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB4,CHB5,CHB4,CHB5,CHB4,CHB5,CHB4,CHB5に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD2として出力バッファ14から出力されている。
【0095】
図24は、サブパターンCP32に続いてサブパターンCP33がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10は入力データID0の格納を維持する。
【0096】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“6”“7”“6”“7”“6”“7”“6”“7”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB6,CHB7,CHB6,CHB7,CHB6,CHB7,CHB6,CHB7に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD3として出力バッファ14から出力されている。
【0097】
出力データOD0,OD1,OD2,OD3は、それぞれ、入力データID0の第0バイト、第1バイト、第2バイト、第3バイトを4倍に伸張したものに等しい。従って、フォーマット変換処理部3に入力された入力データID0が4倍に抽出されて、出力データOD0〜OD3として順に出力されたことになる。
【0098】
<16ビットから12ビットへのパック処理(変換パターンCP4)>
図25は、図4に示した変換パターンCP4の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP4は、サブパターンCP40から始まる4個のサブパターンCP40,CP41,CP42,CP43によって構成される。なお、図25においては、サブパターンCP41〜CP43中の設定項目K1,K2の記載は省略している。
【0099】
全てのサブパターンCP40〜CP43において、設定項目K3は“1”に設定されている。設定項目K4は、サブパターンCP40,CP41においては“2”に、サブパターンCP42,CP43においては“0”に、それぞれ設定されている。サブパターンCP40において、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“2”“4”“5”“6”“f”“f”に設定されている。サブパターンCP41において、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。サブパターンCP42において、設定項目K5は、第0レーンから第7レーンまで順に、“a”“c”“d”“e”“0”“1”“2”“4”に設定されている。サブパターンCP43において、設定項目K5は、第0レーンから第7レーンまで順に、“d”“e”“0”“1”“2”“4”“5”“6”に設定されている。
【0100】
図26は、レジスタ13にサブパターンCP40が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0101】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“2”“4”“5”“6”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1,CHB2,CHB4,CHB5,CHB6に格納されている部分入力データ(つまり入力データID0の第0〜11ビット,第16〜27ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB6,HB7には、いずれの部分入力データもコピーされない。この時点では、データ格納領域HB6,HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。
【0102】
図27は、サブパターンCP40に続いてサブパターンCP41がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID1が第1入力バッファ10に取り込まれ、格納されている。
【0103】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB0〜HB5には、いずれの部分入力データもコピーされず、入力データID0の第0〜11ビット,第16〜27ビットが格納されたままである。また、出力バッファ14のデータ格納領域HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID1の第0〜7ビット)がコピーされる。この時点では、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0104】
図28は、サブパターンCP41に続いてサブパターンCP42がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID2が第1入力バッファ10に取り込まれ、格納されている。また、入力データID1が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0105】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“a”“c”“d”“e”“0”“1”“2”“4”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、データ格納領域PHB2,PHB4,PHB5,PHB6,CHB0,CHB1,CHB2,CHB4に格納されている部分入力データ(つまり入力データID1の第8〜11ビット,第16〜27ビット、及び入力データID2の第0〜11ビット,第16〜19ビット)がコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD1として出力バッファ14から出力されている。
【0106】
図29は、サブパターンCP42に続いてサブパターンCP43がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID3が第1入力バッファ10に取り込まれ、格納されている。また、入力データID2が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0107】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“d”“e”“0”“1”“2”“4”“5”“6”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、データ格納領域PHB5,PHB6,CHB0,CHB1,CHB2,CHB4,CHB5,CHB6に格納されている部分入力データ(つまり入力データID2の第20〜27ビット、及び入力データID3の第0〜11ビット,第16〜27ビット)がコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD2として出力バッファ14から出力されている。
【0108】
出力データOD0〜OD2においては、入力データID0〜ID3のそれぞれの第12〜15ビット及び第28〜31ビットに対応する部分入力データが削除されている。従って、フォーマット変換処理部3に入力された入力データID0〜ID3の16ビット分のデータが、12ビット分のデータに詰められて、出力データOD0〜OD2として出力されたことになる。
【0109】
<12ビットから16ビットへのアンパック処理(変換パターンCP5)>
図30は、図4に示した変換パターンCP5の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP5は、サブパターンCP50から始まる4個のサブパターンCP50,CP51,CP52,CP53によって構成される。なお、図30においては、サブパターンCP51〜CP53中の設定項目K1,K2の記載は省略している。
【0110】
設定項目K3は、サブパターンCP50〜CP52においては“1”に、サブパターンCP53においては“0”に、それぞれ設定されている。設定項目K4は、全てのサブパターンCP50〜CP53において“3”に設定されている。サブパターンCP50において、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“2”“e”“3”“4”“5”“e”に設定されている。サブパターンCP51において、設定項目K5は、第0レーンから第7レーンまで順に、“c”“d”“0”“e”“1”“2”“3”“e”に設定されている。サブパターンCP52において、設定項目K5は、第0レーンから第7レーンまで順に、“a”“b”“c”“e”“d”“0”“1”“e”に設定されている。サブパターンCP53において、設定項目K5は、第0レーンから第7レーンまで順に、“2”“3”“4”“e”“5”“6”“7”“e”に設定されている。
【0111】
図31は、レジスタ13にサブパターンCP50が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0112】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“2”“e”“3”“4”“5”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域CHB0,CHB1,CHB2,CHB3,CHB4,CHB5に格納されている部分入力データ(つまり入力データID0の第0〜23ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0113】
図32は、サブパターンCP50に続いてサブパターンCP51がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID1が第1入力バッファ10に取り込まれ、格納されている。また、入力データID0が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0114】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“c”“d”“0”“e”“1”“2”“3”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域PHB6,PHB7,CHB0,CHB1,CHB2,CHB3に格納されている部分入力データ(つまり入力データID0の第24〜31ビット、及び入力データID1の第0〜15ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD1として出力バッファ14から出力されている。
【0115】
図33は、サブパターンCP51に続いてサブパターンCP52がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID2が第1入力バッファ10に取り込まれ、格納されている。また、入力データID1が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0116】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“a”“b”“c”“e”“d”“0”“1”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域PHB4,PHB5,PHB6,PHB7,CHB0,CHB1に格納されている部分入力データ(つまり入力データID1の第16〜31ビット、及び入力データID2の第0〜7ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD2として出力バッファ14から出力されている。
【0117】
図34は、サブパターンCP52に続いてサブパターンCP53がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10及び第2入力バッファ11は、それぞれ入力データID2及び入力データID1の格納を維持する。
【0118】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“2”“3”“4”“e”“5”“6”“7”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域CHB2,CHB3,CHB4,CHB5,CHB6,CHB7に格納されている部分入力データ(つまり入力データID2の第8〜31ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD3として出力バッファ14から出力されている。
【0119】
出力データOD0〜OD3においては、入力データID0〜ID2にまたがる各12ビット分の8個のデータ群毎に、4ビット分のデータ(この例の場合は任意の固定値)が挿入されている。従って、フォーマット変換処理部3に入力された入力データID0〜ID2の12ビット分のデータ群が、16ビット分のデータ群に広げられて、出力データOD0〜OD3として出力されたことになる。
【図面の簡単な説明】
【0120】
【図1】本発明の適用対象の一例であるディジタルカメラの構成を概略的に示すブロック図である。
【図2】フォーマット変換処理部の構成を示すブロック図である。
【図3】第1入力バッファ、第2入力バッファ、出力バッファ、及び変換処理部の構成を示す図である。
【図4】レジスタへの変換パターンの設定状況を示す図である。
【図5】変換パターンの設定内容の詳細を示す図である。
【図6】設定項目を説明するための図である。
【図7】設定項目を説明するための図である。
【図8】設定項目を説明するための図である。
【図9】設定項目を説明するための図である。
【図10】設定項目を説明するための図である。
【図11】変換パターンの設定内容の詳細を示す図である。
【図12】フォーマット変換処理部の動作を説明するためのブロック図である。
【図13】変換パターンの設定内容の詳細を示す図である。
【図14】フォーマット変換処理部の動作を説明するためのブロック図である。
【図15】変換パターンの設定内容の詳細を示す図である。
【図16】フォーマット変換処理部の動作を説明するためのブロック図である。
【図17】フォーマット変換処理部の動作を説明するためのブロック図である。
【図18】フォーマット変換処理部の動作を説明するためのブロック図である。
【図19】フォーマット変換処理部の動作を説明するためのブロック図である。
【図20】変換パターンの設定内容の詳細を示す図である。
【図21】フォーマット変換処理部の動作を説明するためのブロック図である。
【図22】フォーマット変換処理部の動作を説明するためのブロック図である。
【図23】フォーマット変換処理部の動作を説明するためのブロック図である。
【図24】フォーマット変換処理部の動作を説明するためのブロック図である。
【図25】変換パターンの設定内容の詳細を示す図である。
【図26】フォーマット変換処理部の動作を説明するためのブロック図である。
【図27】フォーマット変換処理部の動作を説明するためのブロック図である。
【図28】フォーマット変換処理部の動作を説明するためのブロック図である。
【図29】フォーマット変換処理部の動作を説明するためのブロック図である。
【図30】変換パターンの設定内容の詳細を示す図である。
【図31】フォーマット変換処理部の動作を説明するためのブロック図である。
【図32】フォーマット変換処理部の動作を説明するためのブロック図である。
【図33】フォーマット変換処理部の動作を説明するためのブロック図である。
【図34】フォーマット変換処理部の動作を説明するためのブロック図である。
【符号の説明】
【0121】
3,3A,3B フォーマット変換処理部
5 メモリ
10 第1入力バッファ
11 第2入力バッファ
12 変換処理部
13 レジスタ
14 出力バッファ
【技術分野】
【0001】
本発明は、データ処理装置に関し、特に、入力されたデータを、そのデータのフォーマットとは異なるフォーマットのデータに変換して出力するデータフォーマット変換処理装置に関する。
【背景技術】
【0002】
DSC(Digital Still Camera)向け等のSoC(System on a Chip)においては、例えば、メモリに格納しようとするデータのフォーマットを、内部周辺回路に対応するフォーマットに変換(データフォーマット変換)する必要がある。
【0003】
従来のSoCにおいては、CPUによるソフトウェア処理によって、データフォーマット変換処理が実行されていた。しかし、CPUによるソフトウェア処理では所要時間が非常に長かったため、近年では、専用のハードウェアを用いてデータフォーマット変換処理を実行することが行われている。
【0004】
下記特許文献1には、入力されたデータを、そのデータのビット数とは異なるビット数のデータに変換するための技術が開示されている。
【0005】
また、下記特許文献2には、データフォーマット変換処理の一つであるエンディアン処理に関する技術が開示されている。
【0006】
【特許文献1】特開2004−240713号公報
【特許文献2】特開平3−160550号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
専用ハードウェアを用いてデータフォーマット変換処理を実行することにより、CPUによるソフトウェア処理による場合と比較すると、所要時間の短縮化を図ることができる。しかしながら、データフォーマット変換処理には、エンディアン変換処理、パック処理、又はアンパック処理等、様々な処理がある。ところが、専用ハードウェアは目的とする一種類の処理しか実行できないため、複数種類の処理を実行するためには、異なる処理毎に個別の専用ハードウェアを構築しなければならず、全体として回路規模が増大するという問題がある。
【0008】
本発明はかかる問題を解決するために成されたものであり、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換処理を実行可能な、データ処理装置を得ることを目的とする。
【課題を解決するための手段】
【0009】
第1の発明に係るデータ処理装置は、入力データを格納可能な第1の入力バッファと、出力データを格納可能な出力バッファと、前記第1の入力バッファと前記出力バッファとの間に接続されたデータ変換手段と、前記データ変換手段が参照可能なレジスタとを備え、前記レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能であり、前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記入力データに基づいて前記出力データを生成することを特徴とするものである。
【0010】
第2の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記第1の入力バッファには第1の入力データが格納され、前記第1の入力データよりも前に入力された第2の入力データを格納可能な第2の入力バッファをさらに備え、前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記第1の入力データ及び前記第2の入力データに基づいて前記出力データを生成することを特徴とするものである。
【0011】
第3の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記レジスタには、一つのデータフォーマット変換を実行するために、複数の変換パターンを順に設定可能であり、前記データ変換手段は、前記レジスタに順に設定される前記複数の変換パターンに従って、前記入力データに基づいて前記出力データを生成することを特徴とするものである。
【0012】
第4の発明に係るデータ処理装置は、第3の発明に係るデータ処理装置において特に、前記レジスタに設定されている変換パターンが次の変換パターンに更新されるのに同期して、前記第1の入力バッファに次の入力データを入力するか否かを、前記次の変換パターンによって設定可能であることを特徴とするものである。
【0013】
第5の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記出力バッファは複数のデータ格納領域を有しており、前記複数のデータ格納領域の全てに部分出力データが格納されることにより、前記出力バッファから前記出力データが出力されることを特徴とするものである。
【0014】
第6の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、現在前記第1の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことを、前記変換パターンによって設定可能であることを特徴とするものである。
【0015】
第7の発明に係るデータ処理装置は、第6の発明に係るデータ処理装置において特に、前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、特定のコード番号については、前記コピー元情報の代わりに、前記入力データのうちのいずれの部分のデータをもコピーしないことを示す情報が記述されており、前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されていることを特徴とするものである。
【0016】
第8の発明に係るデータ処理装置は、第1の発明に係るデータ処理装置において特に、前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、前記入力データに関わらず固定値とすることを、前記変換パターンによって設定可能であることを特徴とするものである。
【0017】
第9の発明に係るデータ処理装置は、第8の発明に係るデータ処理装置において特に、前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、特定のコード番号については、前記コピー元情報の代わりに、前記入力データに関わらず固定値とすることを示す情報が記述されており、前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されていることを特徴とするものである。
【発明の効果】
【0018】
第1の発明に係るデータ処理装置によれば、レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能である。そして、データ変換手段は、レジスタに設定されている変換パターンに従って、入力データに基づいて出力データを生成する。従って、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換を実行可能な、データ処理装置を得ることができる。
【0019】
第2の発明に係るデータ処理装置によれば、データ変換手段は、第1の入力データのみならず、過去に入力された第2の入力データをも用いて、出力データを生成する。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0020】
第3の発明に係るデータ処理装置によれば、データ変換手段は、一つの変換パターンのみの設定で実現できるデータフォーマット変換のみならず、複数の変換パターンの設定が必要なデータフォーマット変換をも実行可能となる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0021】
第4の発明に係るデータ処理装置によれば、レジスタに設定されている変換パターンが次の変換パターンに更新されても、第1の入力バッファへの次の入力データの取り込みを実行させないことができる。従って、データ処理装置から出力される出力データの転送レートよりも、データ処理装置へ入力される入力データの転送レートのほうが低い場合に、第1の入力バッファへの次の入力データの取り込みを待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0022】
第5の発明に係るデータ処理装置によれば、データ処理装置から出力される出力データの転送レートよりも、データ処理装置へ入力される入力データの転送レートのほうが高い場合に、出力バッファからのデータの出力を待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0023】
第6の発明に係るデータ処理装置によれば、データ変換手段は、出力データを生成するために常に入力データのコピーを用いるわけではなく、出力データのうちの所望の部分については、現在第1の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0024】
第7の発明に係るデータ処理装置によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている。従って、複数のテーブルを適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【0025】
第8の発明に係るデータ処理装置によれば、データ変換手段は、出力データを生成するために常に入力データのコピーを用いるわけではなく、出力データのうちの所望の部分については、固定値とすることができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0026】
第9の発明に係るデータ処理装置によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている。従って、複数のテーブルを適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0028】
図1は、本発明の適用対象の一例であるディジタルカメラの構成を概略的に示すブロック図である。図1に示すようにディジタルカメラは、CCD等の撮像部1、前処理部2、フォーマット変換処理部3A,3B、メモリアクセス処理部(DMA)4A,4B、DRAM等のメモリ5、画像信号処理部6、及びLCD等の表示部7を備えて構成されている。
【0029】
撮像部1から出力された画像データは、前処理部2に入力される。前処理部2は、撮像部1から入力された画像データに対して、ホワイトバランス調整や露光補正等の所定の前処理を行う。前処理部2から出力された画像データは、フォーマット変換処理部3Aに入力される。フォーマット変換処理部3Aは、前処理部2から入力された画像データを、その画像データのフォーマットとは異なるフォーマットの画像データに変換する。フォーマット変換処理部3Aにおける処理内容の詳細については後述する。メモリアクセス処理部4Aは、フォーマット変換処理部3Aから出力された画像データをメモリ5に書き込む。
【0030】
メモリアクセス処理部4Bは、メモリ5に格納されている画像データを読み出す。フォーマット変換処理部3Bは、メモリ5から読み出された画像データを、その画像データのフォーマットとは異なるフォーマットの画像データに変換する。フォーマット変換処理部3Bにおける処理内容の詳細については後述する。以下の説明では、フォーマット変換処理部3Aとフォーマット変換処理部3Bとを総称して、「フォーマット変換処理部3」とも称する。フォーマット変換処理部3Bから出力された画像データは、画像信号処理部6に入力される。画像信号処理部6は、フォーマット変換処理部3Bから入力された画像データに対して種々の画像処理を行う。画像信号処理部6によって処理された画像データは表示部7に入力され、表示部7において画像が表示される。
【0031】
なお、図1では、メモリ5への書き込み用とメモリ5からの読み出し用とで、別々のメモリアクセス処理部4A,4Bが搭載されている例について示した。ここで、メモリ5に対する書き込み処理と読み出し処理とを同時に行わない場合には、メモリアクセス処理部4Aとメモリアクセス処理部4Bとを兼用することができる。そして、この場合は、フォーマット変換処理部3Aとフォーマット変換処理部3Bとを兼用することもできる。
【0032】
図2は、フォーマット変換処理部3の構成を示すブロック図である。図2に示すようにフォーマット変換処理部3は、第1入力バッファ10、第2入力バッファ11、変換処理部(データ変換手段)12、レジスタ13、及び出力バッファ14を備えて構成されている。
【0033】
入力データIDは、フォーマット変換処理部3の前段の回路(前処理部2又はメモリアクセス処理部4B)から第1入力バッファ10に入力され、格納される。つまり、第1入力バッファ10には最新の入力データIDが格納されている。
【0034】
第1入力バッファ10に新たな入力データIDが取り込まれると、それまで第1入力バッファ10に格納されていた入力データIDは、第2入力バッファ11に入力され、格納される。つまり、第2入力バッファ11には、最新の入力データIDよりも前にフォーマット変換処理部3に入力された過去の入力データID(この例では直前の入力データID)が格納されている。
【0035】
出力バッファ14は、フォーマット変換処理部3から出力すべき出力データODを格納する。
【0036】
レジスタ13は、変換処理部12によって参照可能である。レジスタ13には、所望のデータフォーマット変換に応じて、複数種類の変換パターンCPを設定可能である。詳細については後述する。
【0037】
変換処理部12は、第1入力バッファ10及び第2入力バッファ11と、出力バッファ14との間に接続されている。変換処理部12は、レジスタ13に設定されている変換パターンCPに従って、第1入力バッファ10及び第2入力バッファ11に格納されている入力データIDに基づいて出力データODを生成する。
【0038】
図3は、第1入力バッファ10、第2入力バッファ11、出力バッファ14、及び変換処理部12の構成を示す図である。以下では、32ビットの入力データIDが入力される例について説明する。
【0039】
第1入力バッファ10は、それぞれ4ビットの8個のデータ格納領域CHB0〜CHB7を有している。外部から第1入力バッファ10に入力データIDが入力されると、32ビットの入力データIDがそれぞれ4ビットの8個の部分入力データに分割されて、各部分入力データが各データ格納領域CHB0〜CHB7に格納される。例えば、入力データIDの下位4ビットに相当する部分入力データはデータ格納領域CHB0に格納され、入力データIDの上位4ビットに相当する部分入力データはデータ格納領域CHB7に格納される。
【0040】
同様に、第2入力バッファ11は、それぞれ4ビットの8個のデータ格納領域PHB0〜PHB7を有している。第1入力バッファ10に新たな入力データIDが取り込まれると、それまで第1入力バッファ10の各データ格納領域CHB0〜CHB7に格納されていた部分入力データは、第2入力バッファ11の各データ格納領域PHB0〜PHB7に転送され、格納される。例えば、第1入力バッファ10のデータ格納領域CHB0に格納されていた部分入力データは、第2入力バッファ11のデータ格納領域PHB0に格納され、第1入力バッファ10のデータ格納領域CHB7に格納されていた部分入力データは、第2入力バッファ11のデータ格納領域PHB7に格納される。
【0041】
同様に、出力バッファ14は、それぞれ4ビットの8個のデータ格納領域HB0〜HB7を有している。各データ格納領域HB0〜HB7には、それぞれ4ビットの部分出力データが格納される。8個のデータ格納領域HB0〜HB7の全てに部分出力データが格納されると、8個の部分出力データが1個の出力データODとして出力バッファ14から出力される。例えば、データ格納領域HB0に格納されていた部分出力データは、出力データODの下位4ビットのデータとなり、データ格納領域HB7に格納されていた部分出力データは、出力データODの上位4ビットのデータとなる。
【0042】
なお、図3において各データ格納領域CHB0〜CHB7,PHB0〜PHB7,HB0〜HB7の右下に付したフラグCHBL0〜CHBL7,PHBL0〜PHBL7,HBL0〜HBL7は、そのフラグが付されたデータ格納領域に格納されているデータが、有意であるか否かを示すための1ビットのフラグである。
【0043】
変換処理部12は、データ格納領域HB0〜HB7に対応する8個のマルチプレクサMUX0〜MUX7を有している。例えば、マルチプレクサMUX0はデータ格納領域HB0に対応し、マルチプレクサMUX7はデータ格納領域HB7に対応している。以下、32ビットを8個に分割した各領域を、本明細書において「レーン」とも称する。例えば、マルチプレクサMUX0及びデータ格納領域HB0は第0レーンに属し、マルチプレクサMUX7及びデータ格納領域HB7は第7レーンに属する。
【0044】
各マルチプレクサMUX0〜MUX7は、データ格納領域CHB0〜CHB7,PHB0〜PHB7の中の一つのデータ格納領域に格納されている部分入力データをコピーして、対応するデータ格納領域HB0〜HB7に格納する。コピー元の指定は、レジスタ13に設定されている変換パターンCPによって行われる。
【0045】
図4は、レジスタ13への変換パターンCPの設定状況を示す図である。図4に示すように、レジスタ13には、複数種類の変換パターンCP0〜CP5を選択して設定することが可能である。例えば、変換パターンCP1は、エンディアン変換処理に関する変換パターンであり、変換パターンCP2は、注目バイトの抽出処理に関する変換パターンであり、変換パターンCP3は、各バイトの伸張処理に関する変換パターンであり、変換パターンCP4は、16ビットから12ビットへのパック処理に関する変換パターンであり、変換パターンCP5は、12ビットから16ビットへのアンパック処理に関する変換パターンである。また、変換パターンCP0は、無変換の処理に関する変換パターンである。
【0046】
ユーザが所望するデータフォーマット変換処理に応じて、図示しないCPUが、そのデータフォーマット変換処理に対応する変換パターンCP0〜CP5を選択してレジスタ13に設定する。なお、レジスタ13に設定可能な変換パターンの種類及び個数は、図4に示した例に限らず、任意の種類及び任意の個数の変換パターンを設定可能である。
【0047】
このように、本実施の形態に係るフォーマット変換処理部3によれば、レジスタ13には、所望のデータフォーマット変換に応じて、複数種類の変換パターンCP0〜CP5を設定可能である。そして、変換処理部12は、レジスタ13に設定されている変換パターンCPに従って、入力データIDに基づいて出力データODを生成する。従って、ソフトウェア処理よりも所要時間を短縮でき、しかも複数種類のデータフォーマット変換を実行可能な、データ処理装置を得ることができる。
【0048】
また、変換処理部12は、第1入力バッファ10に格納されている現在の入力データIDのみならず、過去に入力されて第2入力バッファ11に格納されている入力データIDをも用いて、出力データODを生成する。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0049】
図5は、変換パターンCPの設定内容の詳細を示す図である。図5に示した例では、繰り返しに関する設定項目K1、繰り返しの初期値に関する設定項目K2、入力データの更新に関する設定項目K3、モードに関する設定項目K4、及びコピー元に関する設定項目K5が設けられている。なお、設定項目の種類及び個数は、図5に示した例に限らず、任意の種類及び任意の個数の設定項目を準備可能である。
【0050】
まず、図5に示した設定項目K1について説明する。図6,7は、設定項目K1を説明するための図である。図6を参照して、例えば変換パターンCP0に関しては、レジスタ13への1回の設定によって、目的とするデータフォーマット変換処理が完結する。つまり、変換パターンCP0は1個の変換パターン(以下「サブパターン」と称する)CP00のみによって構成されている。この場合、設定項目K1を“0”に設定することにより、1個のサブパターンCP00がレジスタ13に繰り返し設定されることとなる。
【0051】
図7を参照して、例えば変換パターンCP2に関しては、レジスタ13への4回の設定によって、目的とするデータフォーマット変換処理が完結する。つまり、変換パターンCP2は4個のサブパターンCP20〜CP23によって構成されている。この場合、設定項目K1を“3”に設定することにより、レジスタ13には4個のサブパターンCP20〜CP23がこの順に繰り返して設定されることとなる。
【0052】
このように、本実施の形態に係るフォーマット変換処理部3によれば、変換処理部12は、一つのサブパターンのみの設定で実現できるデータフォーマット変換のみならず、複数のサブパターンの設定が必要なデータフォーマット変換をも実行可能となる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0053】
次に、図5に示した設定項目K2について説明する。設定項目K2は、設定項目K1が“1”以上の値に設定されている場合、つまり、サブパターンが2個以上存在する場合に、繰り返しの一周期の中で、どのサブパターンを一番最初にレジスタ13に設定するかを指定するための項目である。図7を参照して、例えば、設定項目K2が“0”に設定されている場合は、一番目のサブパターンとしてサブパターンCP20が設定され、設定項目K2が“2”に設定されている場合は、一番目のサブパターンとしてサブパターンCP22が設定されることとなる。
【0054】
次に、図5に示した設定項目K3について説明する。設定項目K3は、新たな入力データIDを第1入力バッファ10に取り込むか否かを設定するための項目である。設定項目K3が“0”に設定されている場合は、新たな入力データIDは第1入力バッファ10に取り込まれない。つまり、第1入力バッファ10(及び第2入力バッファ11)の格納内容は維持される。一方、設定項目K3が“1”に設定されている場合は、新たな入力データIDが第1入力バッファ10に取り込まれる。なお、上記の通り、第1入力バッファ10に新たな入力データIDが取り込まれると、それまで第1入力バッファ10に格納されていた入力データIDは、第2入力バッファ11に入力され、格納されることとなる。
【0055】
このように、本実施の形態に係るフォーマット変換処理部3によれば、レジスタ13に設定されている変換パターン又はサブパターンが次の変換パターン又はサブパターンに更新されても、設定項目K3を“0”に設定することにより、第1入力バッファ10への次の入力データIDの取り込みを実行させないことができる。従って、フォーマット変換処理部3から出力される出力データODの転送レートよりも、フォーマット変換処理部3へ入力される入力データIDの転送レートのほうが低い場合に、第1入力バッファ10への次の入力データIDの取り込みを待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0056】
次に、図5に示した設定項目K4について説明する。図8〜10は、設定項目K4を説明するための図である。変換パターンCPを作成するためのテーブルTA1〜TA3が、予め準備されている。図8〜10に示すように、各テーブルTA1〜TA3には、コード番号とコピー元情報との対応関係が記述されている。コード番号は、“0”〜“f”の連続番号である。コピー元情報は、出力データの生成のために入力データのうちコピーすべき部分を示す情報である。図3を参照して、例えば、コピー元情報が“CHB0”である場合は、第1入力バッファ10のデータ格納領域CHB0に格納されている部分入力データをコピーするということであり、コピー元情報が“PHB7”である場合は、第2入力バッファ11のデータ格納領域PHB7に格納されている部分入力データをコピーするということである。
【0057】
設定項目K4が“0”又は“1”に設定されている場合は、図8に示したテーブルTA1が選択される。テーブルTA1においては、コピー元情報の欄には、全てのデータ格納領域CHB0〜CHB7,PHB0〜PHB7が記述されている。
【0058】
設定項目K4が“2”に設定されている場合は、図9に示したテーブルTA2が選択される。テーブルTA2においては、コピー元情報の欄には、全てのデータ格納領域CHB0〜CHB7,PHB0〜PHB7のうちデータ格納領域PHB6,PHB7が記述されていない。従って、テーブルTA2が選択された場合には、データのコピー元としてデータ格納領域PHB6,PHB7を指定することはできない。
【0059】
その代わり、テーブルTA2においては、コード番号“e”及び“f”に対応して、それぞれ情報“FV”及び“NC”が記述されている。情報“FV”は、入力データの値に関わらず部分出力データの値を固定値とすることを示す情報である。この情報には、固定値の値そのもの(例えば4ビットの固定値)を含めることも可能である。また、情報“NC”は、入力データのうちのいずれの部分のデータをもコピーしないことを示す情報である。
【0060】
このように、本実施の形態に係るフォーマット変換処理部3によれば、変換処理部12は、出力データODを生成するために常に入力データIDのコピーを用いるわけではなく、出力データODのうちの所望の部分については、第1入力バッファ10又は第2入力バッファ11に現在格納されている入力データIDのうちのいずれの部分のデータをもコピーしないことができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0061】
同様に、変換処理部12は、出力データODを生成するために常に入力データIDのコピーを用いるわけではなく、出力データODのうちの所望の部分については、固定値とすることができる。従って、実行可能なデータフォーマット変換処理の種類を増やすことができる。
【0062】
設定項目K4が“3”に設定されている場合は、図10に示したテーブルTA3が選択される。テーブルTA3においては、コピー元情報の欄には、全てのデータ格納領域CHB0〜CHB7,PHB0〜PHB7のうちデータ格納領域PHB0,PHB1が記述されていない。従って、テーブルTA3が選択された場合には、データのコピー元としてデータ格納領域PHB0,PHB1を指定することはできない。コード番号“e”及び“f”に対応して情報“FV”及び“NC”が記述されている点は、図9に示したテーブルTA2と同様である。
【0063】
このように、本実施の形態に係るフォーマット変換処理部3によれば、特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルTA2,TA3が準備されている。従って、複数のテーブルTA2,TA3を適宜使い分けることにより、特定のコード番号を割り当てるために常に同じコピー元情報が使用できなくなるという事態を回避することができる。
【0064】
次に、図5に示した設定項目K5について説明する。設定項目K5では、第0レーンから第7レーンまでの各レーン毎に、コード番号“0”〜“f”のうちの一つがそれぞれ設定される。例えば、設定項目K4が“0”に設定され(つまり図8に示したテーブルTA1が選択され)、第0レーンの設定項目K5が“3”に設定されている場合は、テーブルTA1のコード番号“3”に対応するコピー元情報は“CHB3”であるため、図3を参照して、第0レーンに属するマルチプレクサMUX0は、データ格納領域CHB3に格納されている部分入力データをコピーして、そのデータをデータ格納領域HB3に格納することとなる。
【0065】
以下では、データフォーマット変換処理の具体例について、詳細に説明する。
【0066】
<無変換処理(変換パターンCP0)>
図11は、図4に示した変換パターンCP0の設定内容の詳細を示す図である。設定項目K1は“0”に、設定項目K2は“0”に、設定項目K3は“1”に、設定項目K4は“0”に、それぞれ設定されている。また、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“2”“3”“4”“5”“6”“7”に設定されている。
【0067】
図12は、レジスタ13に変換パターンCP0が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0068】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“2”“3”“4”“5”“6”“7”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1,CHB2,CHB3,CHB4,CHB5,CHB6,CHB7に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0069】
出力データOD0は入力データID0に等しい。従って、フォーマット変換処理部3に入力された入力データID0が、何の変換処理もされずにそのまま出力データOD0として出力されたことになる。
【0070】
<エンディアン変換処理(変換パターンCP1)>
図13は、図4に示した変換パターンCP1の設定内容の詳細を示す図である。設定項目K1は“0”に、設定項目K2は“0”に、設定項目K3は“1”に、設定項目K4は“0”に、それぞれ設定されている。また、設定項目K5は、第0レーンから第7レーンまで順に、“6”“7”“4”“5”“2”“3”“0”“1”に設定されている。
【0071】
図14は、レジスタ13に変換パターンCP1が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0072】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“6”“7”“4”“5”“2”“3”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB6,CHB7,CHB4,CHB5,CHB2,CHB3,CHB0,CHB1に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0073】
出力データOD0の第0バイト(最下位バイト)、第1バイト、第2バイト、第3バイト(最上位バイト)は、それぞれ、入力データID0の第3バイト、第2バイト、第1バイト、第0バイトに等しい。従って、フォーマット変換処理部3に入力された入力データID0が、バイト単位で前後が逆転されて、出力データOD0として出力されたことになる。
【0074】
<注目バイトの抽出処理(変換パターンCP2)>
図15は、図4に示した変換パターンCP2の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP2は、サブパターンCP20から始まる4個のサブパターンCP20,CP21,CP22,CP23によって構成される。なお、図15においては、サブパターンCP21〜CP23中の設定項目K1,K2の記載は省略している。
【0075】
全てのサブパターンCP20〜CP23において、設定項目K3は“1”に、設定項目K4は“2”に、それぞれ設定されている。サブパターンCP20においては、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“f”“f”“f”“f”“f”“f”に設定されている。サブパターンCP21においては、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“0”“1”“f”“f”“f”“f”に設定されている。サブパターンCP22においては、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“f”“f”“0”“1”“f”“f”に設定されている。サブパターンCP23においては、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。
【0076】
図16は、レジスタ13にサブパターンCP20が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0077】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“f”“f”“f”“f”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID0の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB2〜HB7には、いずれの部分入力データもコピーされない。
【0078】
また、この時点では、データ格納領域HB2〜HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。この場合、後段の回路からフォーマット変換処理部3へのデータ読み出しリクエストに対しては、現時点の出力データが無効であることを示す通知を、フォーマット変換処理部3から後段の回路へ送信する。これにより、不完全な出力データが後段の回路に入力されることを回避できる。
【0079】
図17は、サブパターンCP20に続いてサブパターンCP21がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID1が第1入力バッファ10に取り込まれ、格納されている。
【0080】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“0”“1”“f”“f”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB2,HB3には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID1の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB0,HB1,HB4〜HB7には、いずれの部分入力データもコピーされない。また、この時点では、データ格納領域HB4〜HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。
【0081】
図18は、サブパターンCP21に続いてサブパターンCP22がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID2が第1入力バッファ10に取り込まれ、格納されている。
【0082】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“f”“f”“0”“1”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB4,HB5には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID2の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB0〜HB3,HB6,HB7には、いずれの部分入力データもコピーされない。また、この時点では、データ格納領域HB6,HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。
【0083】
図19は、サブパターンCP22に続いてサブパターンCP23がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID3が第1入力バッファ10に取り込まれ、格納されている。
【0084】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID3の第0バイト)がコピーされる。また、出力バッファ14のデータ格納領域HB0〜HB5には、いずれの部分入力データもコピーされない。この時点では、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0085】
このように、本実施の形態に係るフォーマット変換処理部3によれば、データ格納領域HB0〜HB7の全てに部分出力データが格納されることにより、出力バッファ14から出力データODが出力される。従って、フォーマット変換処理部3から出力される出力データODの転送レートよりも、フォーマット変換処理部3へ入力される入力データIDの転送レートのほうが高い場合に、出力バッファ14からのデータの出力を待機させることができる。それにより、転送レートの差を吸収させることができ、データフォーマット変換処理を適切に実行することが可能となる。
【0086】
出力データOD0の第0バイト、第1バイト、第2バイト、第3バイトは、それぞれ、入力データID0,ID1,ID2,ID3の各第0バイトに等しい。従って、フォーマット変換処理部3に順に入力された入力データID0〜ID3の各第0バイトが抽出されて、出力データOD0として出力されたことになる。
【0087】
<各バイトの伸張処理(変換パターンCP3)>
図20は、図4に示した変換パターンCP3の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP3は、サブパターンCP30から始まる4個のサブパターンCP30,CP31,CP32,CP33によって構成される。なお、図20においては、サブパターンCP31〜CP33中の設定項目K1,K2の記載は省略している。
【0088】
設定項目K3は、サブパターンCP30においては“1”に、サブパターンCP31〜CP33においては“0”に、それぞれ設定されている。また、全てのサブパターンCP30〜CP33において、設定項目K4は“0”に設定されている。サブパターンCP30において、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“0”“1”“0”“1”“0”“1”に設定されている。サブパターンCP31において、設定項目K5は、第0レーンから第7レーンまで順に、“2”“3”“2”“3”“2”“3”“2”“3”に設定されている。サブパターンCP32において、設定項目K5は、第0レーンから第7レーンまで順に、“4”“5”“4”“5”“4”“5”“4”“5”に設定されている。サブパターンCP33において、設定項目K5は、第0レーンから第7レーンまで順に、“6”“7”“6”“7”“6”“7”“6”“7”に設定されている。
【0089】
図21は、レジスタ13にサブパターンCP30が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0090】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“0”“1”“0”“1”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1,CHB0,CHB1,CHB0,CHB1,CHB0,CHB1に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0091】
図22は、サブパターンCP30に続いてサブパターンCP31がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10は入力データID0の格納を維持する。この場合、前段の回路からフォーマット変換処理部3へのデータ書き込みリクエストに対しては、現時点では書き込み用のデータを受け付けることができないことを示す通知を、フォーマット変換処理部3から前段の回路へ送信する。
【0092】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“2”“3”“2”“3”“2”“3”“2”“3”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB2,CHB3,CHB2,CHB3,CHB2,CHB3,CHB2,CHB3に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD1として出力バッファ14から出力されている。
【0093】
図23は、サブパターンCP31に続いてサブパターンCP32がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10は入力データID0の格納を維持する。
【0094】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“4”“5”“4”“5”“4”“5”“4”“5”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB4,CHB5,CHB4,CHB5,CHB4,CHB5,CHB4,CHB5に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD2として出力バッファ14から出力されている。
【0095】
図24は、サブパターンCP32に続いてサブパターンCP33がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10は入力データID0の格納を維持する。
【0096】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“6”“7”“6”“7”“6”“7”“6”“7”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB6,CHB7,CHB6,CHB7,CHB6,CHB7,CHB6,CHB7に格納されている部分入力データがコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD3として出力バッファ14から出力されている。
【0097】
出力データOD0,OD1,OD2,OD3は、それぞれ、入力データID0の第0バイト、第1バイト、第2バイト、第3バイトを4倍に伸張したものに等しい。従って、フォーマット変換処理部3に入力された入力データID0が4倍に抽出されて、出力データOD0〜OD3として順に出力されたことになる。
【0098】
<16ビットから12ビットへのパック処理(変換パターンCP4)>
図25は、図4に示した変換パターンCP4の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP4は、サブパターンCP40から始まる4個のサブパターンCP40,CP41,CP42,CP43によって構成される。なお、図25においては、サブパターンCP41〜CP43中の設定項目K1,K2の記載は省略している。
【0099】
全てのサブパターンCP40〜CP43において、設定項目K3は“1”に設定されている。設定項目K4は、サブパターンCP40,CP41においては“2”に、サブパターンCP42,CP43においては“0”に、それぞれ設定されている。サブパターンCP40において、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“2”“4”“5”“6”“f”“f”に設定されている。サブパターンCP41において、設定項目K5は、第0レーンから第7レーンまで順に、“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。サブパターンCP42において、設定項目K5は、第0レーンから第7レーンまで順に、“a”“c”“d”“e”“0”“1”“2”“4”に設定されている。サブパターンCP43において、設定項目K5は、第0レーンから第7レーンまで順に、“d”“e”“0”“1”“2”“4”“5”“6”に設定されている。
【0100】
図26は、レジスタ13にサブパターンCP40が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0101】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“2”“4”“5”“6”“f”“f”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1,CHB2,CHB4,CHB5,CHB6に格納されている部分入力データ(つまり入力データID0の第0〜11ビット,第16〜27ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB6,HB7には、いずれの部分入力データもコピーされない。この時点では、データ格納領域HB6,HB7に部分出力データが格納されていないため、出力バッファ14から出力データOD0は出力されない。
【0102】
図27は、サブパターンCP40に続いてサブパターンCP41がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID1が第1入力バッファ10に取り込まれ、格納されている。
【0103】
設定項目K4が“2”に設定されているため、図9に示したテーブルTA2が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“f”“f”“f”“f”“f”“f”“0”“1”に設定されている。従って、出力バッファ14のデータ格納領域HB0〜HB5には、いずれの部分入力データもコピーされず、入力データID0の第0〜11ビット,第16〜27ビットが格納されたままである。また、出力バッファ14のデータ格納領域HB6,HB7には、それぞれ、第1入力バッファ10のデータ格納領域CHB0,CHB1に格納されている部分入力データ(つまり入力データID1の第0〜7ビット)がコピーされる。この時点では、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0104】
図28は、サブパターンCP41に続いてサブパターンCP42がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID2が第1入力バッファ10に取り込まれ、格納されている。また、入力データID1が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0105】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“a”“c”“d”“e”“0”“1”“2”“4”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、データ格納領域PHB2,PHB4,PHB5,PHB6,CHB0,CHB1,CHB2,CHB4に格納されている部分入力データ(つまり入力データID1の第8〜11ビット,第16〜27ビット、及び入力データID2の第0〜11ビット,第16〜19ビット)がコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD1として出力バッファ14から出力されている。
【0106】
図29は、サブパターンCP42に続いてサブパターンCP43がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID3が第1入力バッファ10に取り込まれ、格納されている。また、入力データID2が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0107】
設定項目K4が“0”に設定されているため、図8に示したテーブルTA1が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“d”“e”“0”“1”“2”“4”“5”“6”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB3,HB4,HB5,HB6,HB7には、それぞれ、データ格納領域PHB5,PHB6,CHB0,CHB1,CHB2,CHB4,CHB5,CHB6に格納されている部分入力データ(つまり入力データID2の第20〜27ビット、及び入力データID3の第0〜11ビット,第16〜27ビット)がコピーされる。そして、データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD2として出力バッファ14から出力されている。
【0108】
出力データOD0〜OD2においては、入力データID0〜ID3のそれぞれの第12〜15ビット及び第28〜31ビットに対応する部分入力データが削除されている。従って、フォーマット変換処理部3に入力された入力データID0〜ID3の16ビット分のデータが、12ビット分のデータに詰められて、出力データOD0〜OD2として出力されたことになる。
【0109】
<12ビットから16ビットへのアンパック処理(変換パターンCP5)>
図30は、図4に示した変換パターンCP5の設定内容の詳細を示す図である。設定項目K1は“3”に、設定項目K2は“0”に、それぞれ設定されている。従って、変換パターンCP5は、サブパターンCP50から始まる4個のサブパターンCP50,CP51,CP52,CP53によって構成される。なお、図30においては、サブパターンCP51〜CP53中の設定項目K1,K2の記載は省略している。
【0110】
設定項目K3は、サブパターンCP50〜CP52においては“1”に、サブパターンCP53においては“0”に、それぞれ設定されている。設定項目K4は、全てのサブパターンCP50〜CP53において“3”に設定されている。サブパターンCP50において、設定項目K5は、第0レーンから第7レーンまで順に、“0”“1”“2”“e”“3”“4”“5”“e”に設定されている。サブパターンCP51において、設定項目K5は、第0レーンから第7レーンまで順に、“c”“d”“0”“e”“1”“2”“3”“e”に設定されている。サブパターンCP52において、設定項目K5は、第0レーンから第7レーンまで順に、“a”“b”“c”“e”“d”“0”“1”“e”に設定されている。サブパターンCP53において、設定項目K5は、第0レーンから第7レーンまで順に、“2”“3”“4”“e”“5”“6”“7”“e”に設定されている。
【0111】
図31は、レジスタ13にサブパターンCP50が設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID0が第1入力バッファ10に取り込まれ、格納されている。
【0112】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“0”“1”“2”“e”“3”“4”“5”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域CHB0,CHB1,CHB2,CHB3,CHB4,CHB5に格納されている部分入力データ(つまり入力データID0の第0〜23ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD0として出力バッファ14から出力されている。
【0113】
図32は、サブパターンCP50に続いてサブパターンCP51がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID1が第1入力バッファ10に取り込まれ、格納されている。また、入力データID0が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0114】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“c”“d”“0”“e”“1”“2”“3”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域PHB6,PHB7,CHB0,CHB1,CHB2,CHB3に格納されている部分入力データ(つまり入力データID0の第24〜31ビット、及び入力データID1の第0〜15ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD1として出力バッファ14から出力されている。
【0115】
図33は、サブパターンCP51に続いてサブパターンCP52がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“1”に設定されているため、新たな入力データID2が第1入力バッファ10に取り込まれ、格納されている。また、入力データID1が第1入力バッファ10から第2入力バッファ11に取り込まれ、格納されている。
【0116】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“a”“b”“c”“e”“d”“0”“1”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域PHB4,PHB5,PHB6,PHB7,CHB0,CHB1に格納されている部分入力データ(つまり入力データID1の第16〜31ビット、及び入力データID2の第0〜7ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD2として出力バッファ14から出力されている。
【0117】
図34は、サブパターンCP52に続いてサブパターンCP53がレジスタ13に設定された場合のフォーマット変換処理部3の動作を説明するためのブロック図である。設定項目K3が“0”に設定されているため、第1入力バッファ10には新たな入力データが取り込まれず、第1入力バッファ10及び第2入力バッファ11は、それぞれ入力データID2及び入力データID1の格納を維持する。
【0118】
設定項目K4が“3”に設定されているため、図10に示したテーブルTA3が選択される。また、設定項目K5が第0レーンから第7レーンまで順に“2”“3”“4”“e”“5”“6”“7”“e”に設定されている。従って、出力バッファ14のデータ格納領域HB0,HB1,HB2,HB4,HB5,HB6には、それぞれ、データ格納領域CHB2,CHB3,CHB4,CHB5,CHB6,CHB7に格納されている部分入力データ(つまり入力データID2の第8〜31ビット)がコピーされる。また、出力バッファ14のデータ格納領域HB3,HB7には、固定値(この例の場合は4ビットの所望の固定値)が格納される。データ格納領域HB0〜HB7の全てに部分出力データが格納されているため、8個の部分出力データが1個の出力データOD3として出力バッファ14から出力されている。
【0119】
出力データOD0〜OD3においては、入力データID0〜ID2にまたがる各12ビット分の8個のデータ群毎に、4ビット分のデータ(この例の場合は任意の固定値)が挿入されている。従って、フォーマット変換処理部3に入力された入力データID0〜ID2の12ビット分のデータ群が、16ビット分のデータ群に広げられて、出力データOD0〜OD3として出力されたことになる。
【図面の簡単な説明】
【0120】
【図1】本発明の適用対象の一例であるディジタルカメラの構成を概略的に示すブロック図である。
【図2】フォーマット変換処理部の構成を示すブロック図である。
【図3】第1入力バッファ、第2入力バッファ、出力バッファ、及び変換処理部の構成を示す図である。
【図4】レジスタへの変換パターンの設定状況を示す図である。
【図5】変換パターンの設定内容の詳細を示す図である。
【図6】設定項目を説明するための図である。
【図7】設定項目を説明するための図である。
【図8】設定項目を説明するための図である。
【図9】設定項目を説明するための図である。
【図10】設定項目を説明するための図である。
【図11】変換パターンの設定内容の詳細を示す図である。
【図12】フォーマット変換処理部の動作を説明するためのブロック図である。
【図13】変換パターンの設定内容の詳細を示す図である。
【図14】フォーマット変換処理部の動作を説明するためのブロック図である。
【図15】変換パターンの設定内容の詳細を示す図である。
【図16】フォーマット変換処理部の動作を説明するためのブロック図である。
【図17】フォーマット変換処理部の動作を説明するためのブロック図である。
【図18】フォーマット変換処理部の動作を説明するためのブロック図である。
【図19】フォーマット変換処理部の動作を説明するためのブロック図である。
【図20】変換パターンの設定内容の詳細を示す図である。
【図21】フォーマット変換処理部の動作を説明するためのブロック図である。
【図22】フォーマット変換処理部の動作を説明するためのブロック図である。
【図23】フォーマット変換処理部の動作を説明するためのブロック図である。
【図24】フォーマット変換処理部の動作を説明するためのブロック図である。
【図25】変換パターンの設定内容の詳細を示す図である。
【図26】フォーマット変換処理部の動作を説明するためのブロック図である。
【図27】フォーマット変換処理部の動作を説明するためのブロック図である。
【図28】フォーマット変換処理部の動作を説明するためのブロック図である。
【図29】フォーマット変換処理部の動作を説明するためのブロック図である。
【図30】変換パターンの設定内容の詳細を示す図である。
【図31】フォーマット変換処理部の動作を説明するためのブロック図である。
【図32】フォーマット変換処理部の動作を説明するためのブロック図である。
【図33】フォーマット変換処理部の動作を説明するためのブロック図である。
【図34】フォーマット変換処理部の動作を説明するためのブロック図である。
【符号の説明】
【0121】
3,3A,3B フォーマット変換処理部
5 メモリ
10 第1入力バッファ
11 第2入力バッファ
12 変換処理部
13 レジスタ
14 出力バッファ
【特許請求の範囲】
【請求項1】
入力データを格納可能な第1の入力バッファと、
出力データを格納可能な出力バッファと、
前記第1の入力バッファと前記出力バッファとの間に接続されたデータ変換手段と、
前記データ変換手段が参照可能なレジスタと
を備え、
前記レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能であり、
前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記入力データに基づいて前記出力データを生成する、データ処理装置。
【請求項2】
前記第1の入力バッファには第1の入力データが格納され、
前記第1の入力データよりも前に入力された第2の入力データを格納可能な第2の入力バッファをさらに備え、
前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記第1の入力データ及び前記第2の入力データに基づいて前記出力データを生成する、請求項1に記載のデータ処理装置。
【請求項3】
前記レジスタには、一つのデータフォーマット変換を実行するために、複数の変換パターンを順に設定可能であり、
前記データ変換手段は、前記レジスタに順に設定される前記複数の変換パターンに従って、前記入力データに基づいて前記出力データを生成する、請求項1に記載のデータ処理装置。
【請求項4】
前記レジスタに設定されている変換パターンが次の変換パターンに更新されるのに同期して、前記第1の入力バッファに次の入力データを入力するか否かを、前記次の変換パターンによって設定可能である、請求項3に記載のデータ処理装置。
【請求項5】
前記出力バッファは複数のデータ格納領域を有しており、
前記複数のデータ格納領域の全てに部分出力データが格納されることにより、前記出力バッファから前記出力データが出力される、請求項1に記載のデータ処理装置。
【請求項6】
前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、現在前記第1の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことを、前記変換パターンによって設定可能である、請求項1に記載のデータ処理装置。
【請求項7】
前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、
特定のコード番号については、前記コピー元情報の代わりに、前記入力データのうちのいずれの部分のデータをもコピーしないことを示す情報が記述されており、
前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている、請求項6に記載のデータ処理装置。
【請求項8】
前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、前記入力データに関わらず固定値とすることを、前記変換パターンによって設定可能である、請求項1に記載のデータ処理装置。
【請求項9】
前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、
特定のコード番号については、前記コピー元情報の代わりに、前記入力データに関わらず固定値とすることを示す情報が記述されており、
前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている、請求項8に記載のデータ処理装置。
【請求項1】
入力データを格納可能な第1の入力バッファと、
出力データを格納可能な出力バッファと、
前記第1の入力バッファと前記出力バッファとの間に接続されたデータ変換手段と、
前記データ変換手段が参照可能なレジスタと
を備え、
前記レジスタには、所望のデータフォーマット変換に応じて、複数種類の変換パターンを設定可能であり、
前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記入力データに基づいて前記出力データを生成する、データ処理装置。
【請求項2】
前記第1の入力バッファには第1の入力データが格納され、
前記第1の入力データよりも前に入力された第2の入力データを格納可能な第2の入力バッファをさらに備え、
前記データ変換手段は、前記レジスタに設定されている前記変換パターンに従って、前記第1の入力データ及び前記第2の入力データに基づいて前記出力データを生成する、請求項1に記載のデータ処理装置。
【請求項3】
前記レジスタには、一つのデータフォーマット変換を実行するために、複数の変換パターンを順に設定可能であり、
前記データ変換手段は、前記レジスタに順に設定される前記複数の変換パターンに従って、前記入力データに基づいて前記出力データを生成する、請求項1に記載のデータ処理装置。
【請求項4】
前記レジスタに設定されている変換パターンが次の変換パターンに更新されるのに同期して、前記第1の入力バッファに次の入力データを入力するか否かを、前記次の変換パターンによって設定可能である、請求項3に記載のデータ処理装置。
【請求項5】
前記出力バッファは複数のデータ格納領域を有しており、
前記複数のデータ格納領域の全てに部分出力データが格納されることにより、前記出力バッファから前記出力データが出力される、請求項1に記載のデータ処理装置。
【請求項6】
前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、現在前記第1の入力バッファに格納されている入力データのうちのいずれの部分のデータをもコピーしないことを、前記変換パターンによって設定可能である、請求項1に記載のデータ処理装置。
【請求項7】
前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、
特定のコード番号については、前記コピー元情報の代わりに、前記入力データのうちのいずれの部分のデータをもコピーしないことを示す情報が記述されており、
前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている、請求項6に記載のデータ処理装置。
【請求項8】
前記データ変換手段が前記入力データに基づいて前記出力データを生成するにあたり、前記出力データのうちの所望の部分については、前記入力データに関わらず固定値とすることを、前記変換パターンによって設定可能である、請求項1に記載のデータ処理装置。
【請求項9】
前記変換パターンは、複数のコード番号と、各コード番号に対応して、出力データの生成のために入力データのうちコピーすべき部分を示すコピー元情報とが記述されたテーブルに基づいて作成され、
特定のコード番号については、前記コピー元情報の代わりに、前記入力データに関わらず固定値とすることを示す情報が記述されており、
前記特定のコード番号を割り当てるために省略されるコピー元情報が互いに異なる複数のテーブルが準備されている、請求項8に記載のデータ処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【公開番号】特開2009−64279(P2009−64279A)
【公開日】平成21年3月26日(2009.3.26)
【国際特許分類】
【出願番号】特願2007−232092(P2007−232092)
【出願日】平成19年9月6日(2007.9.6)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
【公開日】平成21年3月26日(2009.3.26)
【国際特許分類】
【出願日】平成19年9月6日(2007.9.6)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
[ Back to top ]