JP2006109308A - 画像処理装置及びその制御方法 - Google Patents
画像処理装置及びその制御方法 Download PDFInfo
- Publication number
- JP2006109308A JP2006109308A JP2004295975A JP2004295975A JP2006109308A JP 2006109308 A JP2006109308 A JP 2006109308A JP 2004295975 A JP2004295975 A JP 2004295975A JP 2004295975 A JP2004295975 A JP 2004295975A JP 2006109308 A JP2006109308 A JP 2006109308A
- Authority
- JP
- Japan
- Prior art keywords
- data
- row
- image
- odd
- numbered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 71
- 238000013500 data storage Methods 0.000 claims description 91
- 230000001360 synchronised effect Effects 0.000 abstract description 4
- 238000006243 chemical reaction Methods 0.000 description 20
- 101100350187 Caenorhabditis elegans odd-2 gene Proteins 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 101100350185 Caenorhabditis elegans odd-1 gene Proteins 0.000 description 12
- 101100004188 Arabidopsis thaliana BARD1 gene Proteins 0.000 description 11
- 238000013144 data compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 241000255777 Lepidoptera Species 0.000 description 1
- 101150088305 OSR1 gene Proteins 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
【課題】 簡易な構成で画像の回転処理を行い、迅速にDRAM(SDRAM)に格納する。
【解決手段】 画像データを回転処理しシンクロナスDRAM(SDRAM)に格納する際に、前記画像データが1行目のデータであるか、偶数行のデータであるか、1行目を除く奇数行のデータであるかに応じたコンペア回路120の一致判定結果をもとに、その一致判定結果が同一であるデータについて次の2ROW分、または1ROW分を先書きする画像データの投機処理を行うことで、データ転送効率を低下させているSDRAMのROWアドレスへのアクセス負荷を軽減し、回転処理を伴う画像データの書き込みや読み出し処理を高速化する。
【選択図】図1
【解決手段】 画像データを回転処理しシンクロナスDRAM(SDRAM)に格納する際に、前記画像データが1行目のデータであるか、偶数行のデータであるか、1行目を除く奇数行のデータであるかに応じたコンペア回路120の一致判定結果をもとに、その一致判定結果が同一であるデータについて次の2ROW分、または1ROW分を先書きする画像データの投機処理を行うことで、データ転送効率を低下させているSDRAMのROWアドレスへのアクセス負荷を軽減し、回転処理を伴う画像データの書き込みや読み出し処理を高速化する。
【選択図】図1
Description
本発明は、各種映像機器に設けられて画像データ処理、メモリ制御、回転処理等の画像処理を行う画像処理装置及びその制御方法に関し、特に画像データを回転処理してDRAM(SDRAMを含む)に格納するのに好適な画像処理装置及びその制御方法に関する。
従来より、カラー画像を扱う映像機器としては、デジタルカメラ装置、TV受像装置、VTR装置、DVD装置等、各種のものが提供されており、画像の蓄積や一時格納用の画像メモリとしてDRAM(ダイナミックランダムアクセスメモリ)やSDRAM(シンクロナスDRAM)を用いたものが知られている(例えば、特許文献1〜3参照)。
このDRAMによる画像メモリを用いたシステムにおいては、DRAMコントローラによってDRAMのアドレスを指定して各種コマンドを制御することにより、画像データの書き込みや読み出しを行うが、DRAMのメモリ空間は、縦方向のROWアドレスと横方向のカラムアドレスによって規定され、各アドレスを1つ1つ指定して画像データの書き込みや読み出しを行う通常処理モードと、例えばROWアドレスを固定した状態でカラムアドレスを更新して行くことにより、カラム毎に画像データの書き込みや読み出しを行うバースト処理モードとを利用できる。すなわち、このバースト処理モードでは通常処理モードよりも少ない動作サイクルで画像データの書き込みや読み出しを行うことができ、動作の迅速化を図ることが可能である。
このDRAMによる画像メモリを用いたシステムにおいては、DRAMコントローラによってDRAMのアドレスを指定して各種コマンドを制御することにより、画像データの書き込みや読み出しを行うが、DRAMのメモリ空間は、縦方向のROWアドレスと横方向のカラムアドレスによって規定され、各アドレスを1つ1つ指定して画像データの書き込みや読み出しを行う通常処理モードと、例えばROWアドレスを固定した状態でカラムアドレスを更新して行くことにより、カラム毎に画像データの書き込みや読み出しを行うバースト処理モードとを利用できる。すなわち、このバースト処理モードでは通常処理モードよりも少ない動作サイクルで画像データの書き込みや読み出しを行うことができ、動作の迅速化を図ることが可能である。
一方、デジタルカメラ装置等の映像機器においては、カメラ撮影等によって入力した画像データを出力画像のフレーム等に対応させるために回転処理を行なって画像メモリに格納する機能が搭載されている場合がある。
例えば、カメラ装置を約90°傾けて撮影し、その画像をディスプレイに出力するような場合、画像メモリを用いて90°の画像回転処理を行い、保存することにより、この画像をディスプレイに出力したり、サムネイル画像(検索参照用画像)を作成する場合に、被写体が正対した画像を容易に得ることが可能である。なお、この画像回転処理としては、メモリ制御の容易性等の観点から、通常は90°あるいは270°の回転処理が用いられることが多い。
しかし、このような画像回転処理を行う場合、カラムアドレスとROWアドレスの関係が逆転することから、上述したバースト処理モードを利用できず、DRAMへの書き込み時間や読み出し時間が長くなり、特に画像データ量が大きいような場合には、適正なシステム動作を確保する上での障害となってしまう場合もある。
例えば、カメラ装置を約90°傾けて撮影し、その画像をディスプレイに出力するような場合、画像メモリを用いて90°の画像回転処理を行い、保存することにより、この画像をディスプレイに出力したり、サムネイル画像(検索参照用画像)を作成する場合に、被写体が正対した画像を容易に得ることが可能である。なお、この画像回転処理としては、メモリ制御の容易性等の観点から、通常は90°あるいは270°の回転処理が用いられることが多い。
しかし、このような画像回転処理を行う場合、カラムアドレスとROWアドレスの関係が逆転することから、上述したバースト処理モードを利用できず、DRAMへの書き込み時間や読み出し時間が長くなり、特に画像データ量が大きいような場合には、適正なシステム動作を確保する上での障害となってしまう場合もある。
以下、このような従来の画像処理装置における具体的な動作例を図面を用いて説明する。
図8は、従来の画像処理装置においてカラー画像を画像メモリ(SDRAM)に書き込む場合の構成を示すブロック図である。
図示のように、入力画像データ310は、YUVフォーマットに基づく輝度データ(Y00、Y01、Y02、……)と色差データ(C00、C01、C02、……)によって構成され、これをメモリコントローラ312によって回転処理し、アドレスやコマンドの制御を行い、画像メモリ(SDRAM)314に格納する。
図9及び図10は従来の画像処理装置で扱うカラー画像データのフォーマットとSDRAMへの格納時におけるアドレス変換例を示す説明図である。
YUVフォーマットの画像データは、詳しくは図示のように、輝度データ(Y00、Y01、Y02、……)と2種類の色差データ(Cb00、Cb01、Cb02、……、Cr00、Cr01、Cr02、……、)より構成されている。
そして、このような画像データを画像メモリ(SDRAM)に書き込む場合、回転しない動作(以下、ノーマル処理という)においては、図9に示すように、まず、輝度データ(Y00、Y01、Y02、……)をSDRAMの各アドレスに1つおきに書き込んで行く。そして、色差データ(Cb00、Cb01、Cb02、……)を奇数番目の輝度データ(Y00、Y02、……)に続く空き領域に書き込んで行き、次に色差データ(Cr00、Cr01、Cr02、……)を偶数番目の輝度データ(Y01、Y03、……)に続く空き領域に書き込んで行く。なお、図中の1H、2H、……、は、画像フレームの水平ラインを表している。
また、180°回転(反転)する場合も同様の処理となる。
図8は、従来の画像処理装置においてカラー画像を画像メモリ(SDRAM)に書き込む場合の構成を示すブロック図である。
図示のように、入力画像データ310は、YUVフォーマットに基づく輝度データ(Y00、Y01、Y02、……)と色差データ(C00、C01、C02、……)によって構成され、これをメモリコントローラ312によって回転処理し、アドレスやコマンドの制御を行い、画像メモリ(SDRAM)314に格納する。
図9及び図10は従来の画像処理装置で扱うカラー画像データのフォーマットとSDRAMへの格納時におけるアドレス変換例を示す説明図である。
YUVフォーマットの画像データは、詳しくは図示のように、輝度データ(Y00、Y01、Y02、……)と2種類の色差データ(Cb00、Cb01、Cb02、……、Cr00、Cr01、Cr02、……、)より構成されている。
そして、このような画像データを画像メモリ(SDRAM)に書き込む場合、回転しない動作(以下、ノーマル処理という)においては、図9に示すように、まず、輝度データ(Y00、Y01、Y02、……)をSDRAMの各アドレスに1つおきに書き込んで行く。そして、色差データ(Cb00、Cb01、Cb02、……)を奇数番目の輝度データ(Y00、Y02、……)に続く空き領域に書き込んで行き、次に色差データ(Cr00、Cr01、Cr02、……)を偶数番目の輝度データ(Y01、Y03、……)に続く空き領域に書き込んで行く。なお、図中の1H、2H、……、は、画像フレームの水平ラインを表している。
また、180°回転(反転)する場合も同様の処理となる。
また、同様の画像データを90°回転して画像メモリに格納する場合には、図10に示すように、まず、輝度データ(Y00、Y01、Y02、……)を1つずつアドレス変換してSDRAMの各列に一列おきに書き込んで行く。なお、この場合、SDRAMの奥の領域から手前の領域に順番に書き込んで行く。そして、色差データ(Cb00、Cb01、Cb02、……)を1つずつアドレス変換してSDRAMの奥から奇数番目の列の輝度データ(Y00、Y02、……)に続く空き領域の列に書き込んで行き、次に色差データ(Cr00、Cr01、Cr02、……)を1つずつアドレス変換して偶数番目の輝度データ(Y01、Y03、……)に続く空き領域の列に書き込んで行く。
また、270°回転する場合も同様の処理となる。
また、270°回転する場合も同様の処理となる。
図11は、図9に示すアドレス変換時のSDRAMの動作サイクルを示すフローチャートである。
この場合、上述したバースト処理モードを用いることができる。まず、アイドル状態(ステップS1)からROWアドレスの指定(ACT)を行い(ステップS2)、必要な待機(RAS)の後(ステップS3)、カラムアドレスを更新しながら、各アドレス毎に1バイトデータの書き込み(WRITE)を行う(ステップS4、S5)。そして、1カラム分の書き込みが終了すると、終了処理(PRECHAGE)を行い(ステップS6)、ステップS1に戻って次のデータの書き込み処理を行う。
したがって、バースト処理を用いると、1カラム内の各アドレスについて、1サイクル毎にバイトデータの書き込みを行うことが可能となる。
この場合、上述したバースト処理モードを用いることができる。まず、アイドル状態(ステップS1)からROWアドレスの指定(ACT)を行い(ステップS2)、必要な待機(RAS)の後(ステップS3)、カラムアドレスを更新しながら、各アドレス毎に1バイトデータの書き込み(WRITE)を行う(ステップS4、S5)。そして、1カラム分の書き込みが終了すると、終了処理(PRECHAGE)を行い(ステップS6)、ステップS1に戻って次のデータの書き込み処理を行う。
したがって、バースト処理を用いると、1カラム内の各アドレスについて、1サイクル毎にバイトデータの書き込みを行うことが可能となる。
次に、図12は図10に示すアドレス変換時のSDRAMの動作サイクルを示すフローチャートである。
この場合、回転処理を行うために、バースト処理モードを用いることはできない。まず、アイドル状態(ステップS11)からROWアドレスの指定(ACT)を行い(ステップS12)、必要な待機(RAS)の後(ステップS13)、カラムアドレスを指定して1バイトデータの書き込み(WRITE)を行う(ステップS14)。そして、1アドレスの書き込みが終了すると、終了処理(PRECHAGE)を行い(ステップS15)、ステップS11に戻って次のデータの書き込み処理を行う。
したがって、バースト処理を用いない場合には、1アドレスの書き込み(すなわち、1バイトデータの書き込み)毎に6サイクルを要することになり、図11に示すバースト処理時に比べて大幅に書き込み効率が低下し、処理時間が長くなるものである。
特開2000−175148号公報
特開平11−275499号公報
特開平11−75149号公報
この場合、回転処理を行うために、バースト処理モードを用いることはできない。まず、アイドル状態(ステップS11)からROWアドレスの指定(ACT)を行い(ステップS12)、必要な待機(RAS)の後(ステップS13)、カラムアドレスを指定して1バイトデータの書き込み(WRITE)を行う(ステップS14)。そして、1アドレスの書き込みが終了すると、終了処理(PRECHAGE)を行い(ステップS15)、ステップS11に戻って次のデータの書き込み処理を行う。
したがって、バースト処理を用いない場合には、1アドレスの書き込み(すなわち、1バイトデータの書き込み)毎に6サイクルを要することになり、図11に示すバースト処理時に比べて大幅に書き込み効率が低下し、処理時間が長くなるものである。
上述のように従来の画像処理装置でDRAM(SDRAM)に画像データを格納する場合、その画像データを90°あるいは270°回転して格納する動作においては、バースト処理を行うことができず、処理時間が長くなるという問題がある。
特に、システム全体の動作速度に対し扱う画像データ量が大きい場合には、画像データを回転してメモリに格納する処理がシステム全体の動作の障害となる。
このため、例えば映像機器の設計時において、画像処理装置で扱う画像データの容量を制限したり、高速の素子を用いるために装置の価格上昇を招く等、機能面やコスト面で種々の困難を招くことになる。
そこで本発明の目的は、上述のような実情に鑑み、画像データを回転処理しシンクロナスDRAM(SDRAM)に格納する際に、画像データの投機処理を行うことで、より高速に格納できる画像処理装置及びその制御方法を提供することにある。
特に、システム全体の動作速度に対し扱う画像データ量が大きい場合には、画像データを回転してメモリに格納する処理がシステム全体の動作の障害となる。
このため、例えば映像機器の設計時において、画像処理装置で扱う画像データの容量を制限したり、高速の素子を用いるために装置の価格上昇を招く等、機能面やコスト面で種々の困難を招くことになる。
そこで本発明の目的は、上述のような実情に鑑み、画像データを回転処理しシンクロナスDRAM(SDRAM)に格納する際に、画像データの投機処理を行うことで、より高速に格納できる画像処理装置及びその制御方法を提供することにある。
上述の目的を達成するため、本発明にかかる画像処理装置は、入力画像データを回転させて画像用DRAM内に格納する画像回転処理部と、連続して入力される入力画像データの奇数列と偶数列に応じた列データを一時的に格納する列データ格納用RAMと、前記列データ格納用RAMにそれぞれ格納された列データを比較する比較回路とを備え、前記画像回転処理部は、前記列データ格納用RAMに格納される入力画像データを回転処理し画像用DRAMに格納する際に、前記入力画像データの列データが偶数行のデータであるか、または奇数行のデータであるかに応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を行う書き込み制御手段を有することを特徴とする。
また、本発明の画像処理装置の制御方法は、入力画像データを回転させて画像用DRAM内に格納する画像回転処理部を有する画像処理装置の制御方法であって、連続して入力される入力画像データの奇数列と偶数列に応じた列データを一時的に格納する列データ格納用RAMと、前記列データ格納用RAMにそれぞれ格納された列データを比較する比較回路とを設け、前記画像回転処理部が前記列データ格納用RAMに格納される入力画像データを回転処理し前記画像用DRAMに格納する際に、前記入力画像データの列データが偶数行のデータであるか、または奇数行のデータであるかに応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を行うことを特徴とする。
本発明にかかる画像処理装置及びその制御方法によれば、入力画像データを回転処理し画像用DRAMに格納する際に、連続して入力される前記入力画像データの奇数列と偶数列に応じた列データを一時的に列データ格納用RAMへ格納し、前記列データ格納用RAMにそれぞれ格納された列データを比較回路により比較し、前記入力画像データの列データが偶数行のデータであるか、または奇数行のデータであるかに応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を行うため、奇数列データと偶数列データの両方について画像回転のためのアドレス変換を行なって画像用DRAMに書き込む場合に比べ、実質的に動作サイクル数を削減でき、簡易な構成で画像の回転処理を行ない、迅速にDRAM(SDRAM)に格納することができる効果がある。また、画像データの変更を行わないため、画像の劣化等がまったく起こらないという利点がある。
本実施の形態による画像処理装置及びその制御方法は、入力画像データを回転処理し画像用DRAMに格納する際に、連続して入力される前記入力画像データの奇数列と偶数列に応じた列データを一時的に列データ格納用RAMへ格納する。そして、前記列データ格納用RAMにそれぞれ格納された列データを比較回路により比較しその比較結果を得る。さらに、前記入力画像データの列データが偶数行のデータであるか、または奇数行のデータであるかに応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を画像回転処理部が行うことで、奇数列データと偶数列データの両方について画像回転のためのアドレス変換を行なって画像用DRAMに書き込む場合に比べ、実質的に動作サイクル数を削減し、簡易な構成で画像の回転処理を行うことを可能にし、迅速なDRAM(SDRAM)への格納を実現する。
図1は、本発明の実施例1による画像処理装置の全体構成を示すブロック図である。
図2は図1に示す画像処理装置の画像回転処理部の構成を示すブロック図である。
また、図3および図4は図1に示す画像処理装置の画像回転処理の動作例を示すフローチャートである。図5は図1に示す画像処理装置で画像回転処理を行う際の画像データの具体例を示す説明図である。また、図6は図1に示す画像処理装置において図5に示す画像回転処理を実現するための動作を示すフローチャートである。
図2は図1に示す画像処理装置の画像回転処理部の構成を示すブロック図である。
また、図3および図4は図1に示す画像処理装置の画像回転処理の動作例を示すフローチャートである。図5は図1に示す画像処理装置で画像回転処理を行う際の画像データの具体例を示す説明図である。また、図6は図1に示す画像処理装置において図5に示す画像回転処理を実現するための動作を示すフローチャートである。
まず、図1を用いてこの実施例1の画像処理装置の構成について説明する。
この画像処理装置は、例えばJPEG圧縮されたYUVフォーマットの画像データを入力して伸長し、画像回転等の処理を行なってSDRAM(画像用DRAM)100内に格納するものであり、JPEGデコーダ110、コンペア回路(比較回路)120、SRAM回路130、インタフェース設定レジスタ140、回転制御用アドレス変換回路150、ステートマシン160、出力データ制御回路170、及びSDRAM制御回路180を有する。
このうち、コンペア回路120及びSRAM回路130が画像データの回転処理等を行う画像処理ブロックを構成している。また、インタフェース設定レジスタ140、回転制御用アドレス変換回路150、ステートマシン160、出力データ制御回路170、及びSDRAM制御回路180がSDRAM100の制御を行うためのメモリコントローラ200を構成している。
この画像処理装置は、例えばJPEG圧縮されたYUVフォーマットの画像データを入力して伸長し、画像回転等の処理を行なってSDRAM(画像用DRAM)100内に格納するものであり、JPEGデコーダ110、コンペア回路(比較回路)120、SRAM回路130、インタフェース設定レジスタ140、回転制御用アドレス変換回路150、ステートマシン160、出力データ制御回路170、及びSDRAM制御回路180を有する。
このうち、コンペア回路120及びSRAM回路130が画像データの回転処理等を行う画像処理ブロックを構成している。また、インタフェース設定レジスタ140、回転制御用アドレス変換回路150、ステートマシン160、出力データ制御回路170、及びSDRAM制御回路180がSDRAM100の制御を行うためのメモリコントローラ200を構成している。
JPEGデコーダ110は、例えば各種半導体メモリ素子や磁気ディスク、光ディスク等の記録媒体、あるいはネットワーク等から所定のインタフェースを介して入力されるJPEG圧縮データを入力してデコードし、YUVフォーマットの生画像データを生成するものである。
コンペア回路120は、JPEGデコーダ110から得られる画像データの奇数列データと偶数列データとの比較を行うものである。
SRAM(スタティックRAM)回路130は、JPEGデコーダ110から得られる画像データの奇数列データと偶数列データをそれぞれ格納する2つのSRAM領域A、Bを有し、コンペア回路120を用いて画像データを回転処理してSDRAM100に書き込む際のワークエリアとして利用される。なお、2つのSRAM領域A、Bには、それぞれ画像データの1ライン分の輝度データの格納領域と色差データの格納領域を有しているものとする。
コンペア回路120は、JPEGデコーダ110から得られる画像データの奇数列データと偶数列データとの比較を行うものである。
SRAM(スタティックRAM)回路130は、JPEGデコーダ110から得られる画像データの奇数列データと偶数列データをそれぞれ格納する2つのSRAM領域A、Bを有し、コンペア回路120を用いて画像データを回転処理してSDRAM100に書き込む際のワークエリアとして利用される。なお、2つのSRAM領域A、Bには、それぞれ画像データの1ライン分の輝度データの格納領域と色差データの格納領域を有しているものとする。
インタフェース設定レジスタ140は、このシステムを制御するプログラムによって規定されているSDRAM100の制御用パラメータ、例えばメモリサイズやその他の仕様等のパラメータの設定を外部入力によって行うためのものである。
回転制御用アドレス変換回路150は、画像データを回転してSDRAM100に格納するためのアドレス変換を行うものである。
出力データ制御回路170は、SDRAM100に画像データを出力する回路であり、SDRAM制御回路180は、SDRAM100にアドレスやコマンドを出力する回路である。
ステートマシン160は、コマンド制御やタイミング制御を行い、出力データ制御回路170及びSDRAM制御回路180を制御し、SDRAM100に対する画像データの書き込み、読み出しを制御するものである。
回転制御用アドレス変換回路150は、画像データを回転してSDRAM100に格納するためのアドレス変換を行うものである。
出力データ制御回路170は、SDRAM100に画像データを出力する回路であり、SDRAM制御回路180は、SDRAM100にアドレスやコマンドを出力する回路である。
ステートマシン160は、コマンド制御やタイミング制御を行い、出力データ制御回路170及びSDRAM制御回路180を制御し、SDRAM100に対する画像データの書き込み、読み出しを制御するものである。
次に、図2を用いてこの実施例1における画像回転処理の概要について説明する。
図示されているように、JPEGデコーダ110からの入力画像データは、ODD列データがSRAM回路130の列データ格納部(列データ格納用RAM)130Aに入力され、EVEN列データは列データ格納部(列データ格納用RAM)130Bに入力される。
そして、列データ格納部130Aに格納されたODD列データと、列データ格納部130Bに格納されたEVEN列データはコンペア回路120においてデータ一致判定され、その判定結果が判定信号としてメモリコントローラ200へ出力される。また、コンペア回路120では、図5のフローチャートに示すステップS2、ステップS3、ステップS4、ステップS6、ステップS8、ステップS9、ステップS11、ステップS13およびステップS15の各判定処理がハードウェアにより実行される。
また、メモリコントローラ(画像回転処理部、書込み制御手段)200においては、図5のフローチャートに示すステップS5、ステップS7、ステップS10、ステップS12、ステップS14およびステップS16の書き込み処理と投機処理がハードウェアにより実行される。
図3および図4は、SRAM回路130を含むSRAMブロックと、メモリコントローラ200を含むSDRAMインタフェースブロックとにおける画像回転処理の動作を示すフローチャートである。
図3に示す画像回転処理は、ODD列データとEVEN列データとのデータ一致判定と、そのデータ一致判定に伴う投機処理についての動作を示している。
まず、SRAMブロック側でJPEGデコーダ110から出力されたODD列データをSRAM回路130の列データ格納部130Aに格納し(ステップS101)、この格納したODD列データをSDRAMブロック側に出力する(ステップS102)。
SDRAMインタフェースブロックでは、この出力されたODD列データをアドレス変換して回転処理し、ODD列データとそのコピーデータの2列分を投機処理によってSDRAM100に書き込む(ステップS103)。
図示されているように、JPEGデコーダ110からの入力画像データは、ODD列データがSRAM回路130の列データ格納部(列データ格納用RAM)130Aに入力され、EVEN列データは列データ格納部(列データ格納用RAM)130Bに入力される。
そして、列データ格納部130Aに格納されたODD列データと、列データ格納部130Bに格納されたEVEN列データはコンペア回路120においてデータ一致判定され、その判定結果が判定信号としてメモリコントローラ200へ出力される。また、コンペア回路120では、図5のフローチャートに示すステップS2、ステップS3、ステップS4、ステップS6、ステップS8、ステップS9、ステップS11、ステップS13およびステップS15の各判定処理がハードウェアにより実行される。
また、メモリコントローラ(画像回転処理部、書込み制御手段)200においては、図5のフローチャートに示すステップS5、ステップS7、ステップS10、ステップS12、ステップS14およびステップS16の書き込み処理と投機処理がハードウェアにより実行される。
図3および図4は、SRAM回路130を含むSRAMブロックと、メモリコントローラ200を含むSDRAMインタフェースブロックとにおける画像回転処理の動作を示すフローチャートである。
図3に示す画像回転処理は、ODD列データとEVEN列データとのデータ一致判定と、そのデータ一致判定に伴う投機処理についての動作を示している。
まず、SRAMブロック側でJPEGデコーダ110から出力されたODD列データをSRAM回路130の列データ格納部130Aに格納し(ステップS101)、この格納したODD列データをSDRAMブロック側に出力する(ステップS102)。
SDRAMインタフェースブロックでは、この出力されたODD列データをアドレス変換して回転処理し、ODD列データとそのコピーデータの2列分を投機処理によってSDRAM100に書き込む(ステップS103)。
次に、SRAMブロック側でJPEGデコーダ110から出力されたEVEN列データ(EVEN0、EVEN1、EVEN2、EVEN3、……)をコンペア回路120に入力し、先に格納されているODD列データとの比較判定(コンペアチェック)を行い(ステップS104)、ODD列データと非同一でコンペアが取れないEVEN列データを列データ格納部130Bに格納していき、これをSDRAMブロック側に出力する(ステップS105)。
SDRAMブロック側では、この出力されたEVEN列データを1データずつアドレス変換して回転処理し、SDRAM100に先に書き込まれているODD列データのコピーデータに上書き処理によって書き込んで行く(ステップS106)。
SDRAMブロック側では、この出力されたEVEN列データを1データずつアドレス変換して回転処理し、SDRAM100に先に書き込まれているODD列データのコピーデータに上書き処理によって書き込んで行く(ステップS106)。
図4に示す画像回転処理は、EVEN列データとODD列データとのデータ一致判定と、そのデータ一致判定に伴う投機処理についての動作を示している。
まず、SRAMブロック側でJPEGデコーダ110から出力されたEVEN列データをSRAM回路130の列データ格納部130Aに格納し(ステップS201)、この格納したEVEN列データをSDRAMブロック側に出力する(ステップS202)。
SDRAMインタフェースブロックでは、この出力されたEVEN列データをアドレス変換して回転処理し、EVEN列データとそのコピーデータの2列分を投機処理によってSDRAM100に書き込む(ステップS203)。
まず、SRAMブロック側でJPEGデコーダ110から出力されたEVEN列データをSRAM回路130の列データ格納部130Aに格納し(ステップS201)、この格納したEVEN列データをSDRAMブロック側に出力する(ステップS202)。
SDRAMインタフェースブロックでは、この出力されたEVEN列データをアドレス変換して回転処理し、EVEN列データとそのコピーデータの2列分を投機処理によってSDRAM100に書き込む(ステップS203)。
次に、SRAMブロック側でJPEGデコーダ110から出力されたODD列データ(ODD0、ODD1、ODD2、ODD3、……)をコンペア回路120に入力し、先に格納されているEVEN列データとの比較判定(コンペアチェック)を行い(ステップS204)、EVEN列データと非同一でコンペアが取れないODD列データを列データ格納部130Bに格納していき、これをSDRAMブロック側に出力する(ステップS205)。
SDRAM側ブロックでは、この出力されたODD列データを1データずつアドレス変換して回転処理し、SDRAM100に先に書き込まれているEVEN列データのコピーデータに上書き処理によって書き込んで行く(ステップS206)。
SDRAM側ブロックでは、この出力されたODD列データを1データずつアドレス変換して回転処理し、SDRAM100に先に書き込まれているEVEN列データのコピーデータに上書き処理によって書き込んで行く(ステップS206)。
メモリコントローラ200は、上述したインタフェース設定レジスタ140、回転制御用アドレス変換回路150、ステートマシン160、出力データ制御回路170、及びSDRAM制御回路180によって、SRAM回路130の列データ格納部130A及び列データ格納部130Bに格納された画像データをSDRAM100に書き込むための制御と投機処理を行う。
次に、この実施例1における画像回転処理の動作の具体例について説明する。
なお、以下の説明では、640×480ドットのYC画像データを90°回転させてSDRAM100のメモリ領域にデータWRITEする状況を想定する。
まず、この画像回転処理の動作の概要を説明すると、インタフェース設定レジスタ140の回転設定レジスタに90°回転と画像サイズレジスタに640×480ドットと設定する。そして、JPEGデコーダ110から画像データをSRAM回路130の列データ格納部130Aと列データ格納部130Bとへ入力する。
入力される画像データは、画像の水平方向の1H分毎にデータがまとめて入力される。この1H分のデータが480回入力され画像データの入力が終了する。このため、はじめにSRAM回路130に格納されるデータは画像の1列目(ODD_1)のデータ(640Byte)になる。この時データを列データ格納部130Aに、次に転送されてくる2列目(EVEN_1)のデータを列データ格納部130Bに格納する。この2列目のデータを格納する際に、列データ格納部130Aに格納された1列目の画像データ1H分を順次、出力データ制御回路170に出力していく。
このデータ転送を繰り返し、データをJPEGデコーダ110からSDRAM100へデータ転送する。このデータ転送だけである場合、バースト転送できない角度の画像回転での転送は、一つのデータを転送するたびに6サイクルのDelayが入ってしまうので効率が非常に悪い。
このため、SRAM130にデータを格納する際に、上下の列のデータのコンペアチェック(データ一致判定)を行い、その判定でパスしたデータをWRITEする際に、投機処理として、バースト転送で先に、データの一致しているデータ(コンペア回路120のデータ一致判定結果が“一致”とされたデータ)をWRITEする予定のアドレスへ同じデータをWRITE、すなわち先書きする投機処理を行う。
この投機処理をする際に、データ一致判定で一致している場合、ROWが奇数列なら2つ、偶数列なら3つ、データの投機処理を行う。そして、2列目で、コンペアチェックで不一致になった部分のデータのみを通常処理で、SDRAM100にWRITEする。
この処理で、ROWアドレスのアクセスによるDelayを軽減することが出来る。これを画像データの最終ラインの480Hラインまで繰り返し行う。
なお、以下の説明では、640×480ドットのYC画像データを90°回転させてSDRAM100のメモリ領域にデータWRITEする状況を想定する。
まず、この画像回転処理の動作の概要を説明すると、インタフェース設定レジスタ140の回転設定レジスタに90°回転と画像サイズレジスタに640×480ドットと設定する。そして、JPEGデコーダ110から画像データをSRAM回路130の列データ格納部130Aと列データ格納部130Bとへ入力する。
入力される画像データは、画像の水平方向の1H分毎にデータがまとめて入力される。この1H分のデータが480回入力され画像データの入力が終了する。このため、はじめにSRAM回路130に格納されるデータは画像の1列目(ODD_1)のデータ(640Byte)になる。この時データを列データ格納部130Aに、次に転送されてくる2列目(EVEN_1)のデータを列データ格納部130Bに格納する。この2列目のデータを格納する際に、列データ格納部130Aに格納された1列目の画像データ1H分を順次、出力データ制御回路170に出力していく。
このデータ転送を繰り返し、データをJPEGデコーダ110からSDRAM100へデータ転送する。このデータ転送だけである場合、バースト転送できない角度の画像回転での転送は、一つのデータを転送するたびに6サイクルのDelayが入ってしまうので効率が非常に悪い。
このため、SRAM130にデータを格納する際に、上下の列のデータのコンペアチェック(データ一致判定)を行い、その判定でパスしたデータをWRITEする際に、投機処理として、バースト転送で先に、データの一致しているデータ(コンペア回路120のデータ一致判定結果が“一致”とされたデータ)をWRITEする予定のアドレスへ同じデータをWRITE、すなわち先書きする投機処理を行う。
この投機処理をする際に、データ一致判定で一致している場合、ROWが奇数列なら2つ、偶数列なら3つ、データの投機処理を行う。そして、2列目で、コンペアチェックで不一致になった部分のデータのみを通常処理で、SDRAM100にWRITEする。
この処理で、ROWアドレスのアクセスによるDelayを軽減することが出来る。これを画像データの最終ラインの480Hラインまで繰り返し行う。
次に、この画像回転処理の具体的な動作例について図5に示す説明図と、図6に示すフローチャートとを用いて説明する。
図5(1)は列データ格納部130Aに格納されたROW1のデータ(ODD_1)、および、列データ格納部130Bに格納されたROW2のデータ(EVEN_1)の2ROW分のデータ(または、その格納エリア)1,2,3,4と、これらROW1のデータ(ODD_1)、ROW2のデータ(EVEN_1)のデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例と、このデータ一致判定結果をもとに行われる画像回転処理の具体例を示している。
このときのデータ一致判定結果は、データ1については一致、データ2については不一致、データ3については一致、データ4については不一致との判定結果が得られている。
なお、図5の左側の図が前記2ROW分のデータ1,2,3,4と、これらデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例を示し、右側の図が前記データ一致判定結果をもとに行われる画像回転処理の具体例を示している。
図5(1)は列データ格納部130Aに格納されたROW1のデータ(ODD_1)、および、列データ格納部130Bに格納されたROW2のデータ(EVEN_1)の2ROW分のデータ(または、その格納エリア)1,2,3,4と、これらROW1のデータ(ODD_1)、ROW2のデータ(EVEN_1)のデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例と、このデータ一致判定結果をもとに行われる画像回転処理の具体例を示している。
このときのデータ一致判定結果は、データ1については一致、データ2については不一致、データ3については一致、データ4については不一致との判定結果が得られている。
なお、図5の左側の図が前記2ROW分のデータ1,2,3,4と、これらデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例を示し、右側の図が前記データ一致判定結果をもとに行われる画像回転処理の具体例を示している。
また、図5(2)は、列データ格納部130Aに格納されたROW2のデータ(EVEN_1)、および、列データ格納部130Bに格納されたROW3のデータ(ODD_2)の2ROW分のデータ1,2,3,4と、これらROW2のデータ(EVEN_1)、ROW3のデータ(ODD_2)のデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例と、データ一致判定結果をもとに行われる画像回転処理の具体例を示している。
このときのROW2のデータ(EVEN_1)とROW3のデータ(ODD_2)とのデータ一致判定結果は、データ2については一致、データ4については不一致との判定結果が得られている。
このときのROW2のデータ(EVEN_1)とROW3のデータ(ODD_2)とのデータ一致判定結果は、データ2については一致、データ4については不一致との判定結果が得られている。
また、図5(3)は、列データ格納部130Aに格納されたROW3のデータ(ODD_2)、および、列データ格納部130Bに格納されたROW4のデータ(EVEN_2)の2ROW分のデータ1,2,3,4と、これらROW3のデータ(ODD_2)、ROW4のデータ(EVEN_2)のデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例と、データ一致判定結果をもとに行われる画像回転処理の具体例を示している。
このときのROW3のデータ(ODD_2)とROW4のデータ(EVEN_2)とのデータ一致判定結果は、データ1とデータ2については不一致、データ3とデータ4については一致との判定結果が得られている。
このときのROW3のデータ(ODD_2)とROW4のデータ(EVEN_2)とのデータ一致判定結果は、データ1とデータ2については不一致、データ3とデータ4については一致との判定結果が得られている。
また、図5(4)は、列データ格納部130Aに格納されたROW4のデータ(EVEN_2)、および、列データ格納部130Bに格納されたROW5のデータ(ODD_3)の2ROW分のデータ1,2,3,4と、これらROW4のデータ(EVEN_2)、ROW5のデータ(ODD_3)のデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例と、データ一致判定結果をもとに行われる画像回転処理の具体例を示している。
このときのROW4のデータ(EVEN_2)とROW5のデータ(ODD_3)とのデータ一致判定結果は、データ1については一致、データ2については不一致との判定結果が得られている。
このときのROW4のデータ(EVEN_2)とROW5のデータ(ODD_3)とのデータ一致判定結果は、データ1については一致、データ2については不一致との判定結果が得られている。
また、図5(5)は、列データ格納部130Aに格納されたROW5のデータ(ODD_3)、および、列データ格納部130Bに格納されたROW6のデータ(EVEN_3)の2ROW分のデータ1,2,3,4と、これらROW5のデータ(ODD_3)、ROW6のデータ(EVEN_3)のデータ1,2,3,4についてのコンペア回路120によるデータ一致判定結果の一例と、データ一致判定結果をもとに行われる画像回転処理の具体例を示している。
このときのROW5のデータ(ODD_3)とROW6のデータ(EVEN_3)とのデータ一致判定結果は、データ1については不一致、データ2については一致、データ3およびデータ4については不一致との判定結果が得られている。
このときのROW5のデータ(ODD_3)とROW6のデータ(EVEN_3)とのデータ一致判定結果は、データ1については不一致、データ2については一致、データ3およびデータ4については不一致との判定結果が得られている。
次に、図6のフローチャートに示す手順により図5に示す画像回転処理が実現する過程を順を追って説明する。
先ず、ステップS1のIDLE状態からデータがきているか否か、すなわち、JPEGデコーダ110から列データ格納部130Aおよび列データ格納部130Bへ画像データ1H分のROWデータが出力され格納されたか否かを判定し(ステップS2)、この結果、列データ格納部130Aと列データ格納部130BへROWデータが格納されていると判定すると、次に、列データ格納部130Aへ格納されているデータはROW1のデータ(ODD_1)であるか否か、すなわち1行目のデータであるか否かを判定する(ステップS3)。
この判定の結果、画像データの1H分の1行目のデータが列データ格納部130Aへ格納されていると判定されると、列データ格納部130Aへ格納されているROW1のデータ(ODD_1)と、列データ格納部130Bへ格納されているROW2のデータ(EVEN_1)との1H分のデータ一致判定をコンペア回路120において行い、この結果得られたデータ一致判定結果を保持する(ステップS4)。
このデータ一致判定結果は、図5(1)に示すように、データ1については一致、データ2については不一致、データ3については一致、データ4については不一致である。次に、列データ格納部130Aへ格納されているROW1のデータ(ODD_1)をメモリコントローラ200へ出力し、メモリコントローラ200によりアドレス変換してSDRAM100へ90°回転した状態で書き込む(ステップS5)。
このとき、コンペア回路120は、前記データ一致判定結果をもとにROW1のデータ(ODD_1)とROW2のデータ(EVEN_1)とのデータ1,2,3,4について一致、不一致を判定し(ステップS6)、一致したデータについて、90°回転したROW2のデータ(EVEN_1)の書き込むべきアドレスへROW1のデータ(ODD_1)を投機処理により書き込む(ステップS7)。
図5(1)の右側に示す90°回転したROW2のデータ(EVEN_1)については、ROW1のデータ(ODD_1)とROW2のデータ(EVEN_1)はデータ1,3について一致しているため、一致したデータ1,3については、ROW2のデータ(EVEN_1)の書き込むべきアドレスへROW1のデータ(ODD_1)におけるデータ1,3をそのまま投機処理により書き込む。
ステップS6において不一致であったデータについては、前記投機処理による書き込みは行わず、ステップS1のAIDL状態へ戻る。すなわち、図5(1)の右側に示す90°回転したROW2のデータ(EVEN_1)に示すように、不一致であったデータ2,4については、前記投機処理による書き込みは行なっていない。
先ず、ステップS1のIDLE状態からデータがきているか否か、すなわち、JPEGデコーダ110から列データ格納部130Aおよび列データ格納部130Bへ画像データ1H分のROWデータが出力され格納されたか否かを判定し(ステップS2)、この結果、列データ格納部130Aと列データ格納部130BへROWデータが格納されていると判定すると、次に、列データ格納部130Aへ格納されているデータはROW1のデータ(ODD_1)であるか否か、すなわち1行目のデータであるか否かを判定する(ステップS3)。
この判定の結果、画像データの1H分の1行目のデータが列データ格納部130Aへ格納されていると判定されると、列データ格納部130Aへ格納されているROW1のデータ(ODD_1)と、列データ格納部130Bへ格納されているROW2のデータ(EVEN_1)との1H分のデータ一致判定をコンペア回路120において行い、この結果得られたデータ一致判定結果を保持する(ステップS4)。
このデータ一致判定結果は、図5(1)に示すように、データ1については一致、データ2については不一致、データ3については一致、データ4については不一致である。次に、列データ格納部130Aへ格納されているROW1のデータ(ODD_1)をメモリコントローラ200へ出力し、メモリコントローラ200によりアドレス変換してSDRAM100へ90°回転した状態で書き込む(ステップS5)。
このとき、コンペア回路120は、前記データ一致判定結果をもとにROW1のデータ(ODD_1)とROW2のデータ(EVEN_1)とのデータ1,2,3,4について一致、不一致を判定し(ステップS6)、一致したデータについて、90°回転したROW2のデータ(EVEN_1)の書き込むべきアドレスへROW1のデータ(ODD_1)を投機処理により書き込む(ステップS7)。
図5(1)の右側に示す90°回転したROW2のデータ(EVEN_1)については、ROW1のデータ(ODD_1)とROW2のデータ(EVEN_1)はデータ1,3について一致しているため、一致したデータ1,3については、ROW2のデータ(EVEN_1)の書き込むべきアドレスへROW1のデータ(ODD_1)におけるデータ1,3をそのまま投機処理により書き込む。
ステップS6において不一致であったデータについては、前記投機処理による書き込みは行わず、ステップS1のAIDL状態へ戻る。すなわち、図5(1)の右側に示す90°回転したROW2のデータ(EVEN_1)に示すように、不一致であったデータ2,4については、前記投機処理による書き込みは行なっていない。
そして、ステップS1に続いてステップS2、ステップS3の処理へ進む。このとき、図5(2)に示すように、列データ格納部130AにはROW2のデータ(EVEN_1)が格納され、列データ格納部130BにはROW3のデータ(ODD_2)が格納されており、ROW2とROW3の2ROW分のデータ1,2,3,4がそれぞれ格納される。
ステップS3では、列データ格納部130Aへ格納されているデータは1行目のデータであるか否かを判定する。列データ格納部130AにはROW2のデータ(EVEN_1)が格納されているため、1行目のデータは列データ格納部130Aへ格納されていないと判定され、次のステップS8へ進む。
ステップS3では、列データ格納部130Aへ格納されているデータは1行目のデータであるか否かを判定する。列データ格納部130AにはROW2のデータ(EVEN_1)が格納されているため、1行目のデータは列データ格納部130Aへ格納されていないと判定され、次のステップS8へ進む。
ステップS8では偶数行であるか否かを判定する。このとき、列データ格納部130AにはROW2のデータ(EVEN_1)が格納されているため「偶数行判定」となり、ステップS9へ進む。ステップS9では、図5(1)に示すデータ一致判定結果が不一致となっているデータについてのみ、すなわち,奇数行判定で不一致となっているデータについてのみ、列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)との一致判定をコンペア回路120が行う。
図5(2)では、図5(1)に示すデータ一致判定結果が不一致となっているデータ2,4についてのみ、列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)との一致判定をコンペア回路120が行なっており、この一致判定結果は、データ2については一致、データ4については不一致となっている。
図5(2)では、図5(1)に示すデータ一致判定結果が不一致となっているデータ2,4についてのみ、列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)との一致判定をコンペア回路120が行なっており、この一致判定結果は、データ2については一致、データ4については不一致となっている。
続くステップS10では、図5(1)に示すデータ一致判定結果が不一致となっているデータについてのみ、すなわち,奇数行判定で不一致となっているデータ2,4についてのみ、通常動作による書き込みを行う。図5(2)の右側の図において、90°回転したROW2のデータ(EVEN_1)のデータ2,4が前記奇数行判定で不一致であったデータであり、前記通常動作によりSDRAM100へ書き込まれたデータである。
次のステップS11では偶数行判定、すなわち、図5(2)における列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)との一致判定を、前記ステップS10の前記奇数行判定で不一致であったデータ2,4について確認する。前記ステップS10の前記奇数行判定で不一致であったデータ2については、この偶数行判定では一致、データ4については不一致である。
このため、この偶数行判定で“一致”であったデータ2については、次のステップS12において次の2ROW分についてWRITEする投機処理を行う。図5(2)の右側の図では、次の2ROW分、すなわちROW3とROW4について、前記通常動作によりSDRAM100へ書き込まれたデータ2が投機処理により書き込まれている。また、この偶数行判定で“不一致”であったデータ4については、ステップS11からステップS1へ戻り、投機処理は行なわない。
このため、この偶数行判定で“一致”であったデータ2については、次のステップS12において次の2ROW分についてWRITEする投機処理を行う。図5(2)の右側の図では、次の2ROW分、すなわちROW3とROW4について、前記通常動作によりSDRAM100へ書き込まれたデータ2が投機処理により書き込まれている。また、この偶数行判定で“不一致”であったデータ4については、ステップS11からステップS1へ戻り、投機処理は行なわない。
図5(3)では、列データ格納部130AにROW3のデータ(ODD_2)、列データ格納部130BにはROW4のデータ(EVEN_2)が格納される。図6のフローチャートでは、ステップS1からステップS2、さらにステップS3からステップS8へ進む。図5(3)は奇数行判定であることから、ステップS8からステップS13へ進む。ステップS13では、ROW3のデータ(ODD_2)とROW4のデータ(EVEN_2)における全てのデータ1,2,3,4についての一致判定をコンペア回路120が行う。
続くステップS14では、図5(2)でコンペア回路120が列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)に対し行なった偶数行判定の一致判定結果が“不一致”であったデータ1,3,4について前記通常動作により90°回転させてSDRAM100へ書き込む。図5(3)における右側の図において、90°回転データのROW3のデータ1,3,4が、この通常動作により書き込まれたデータである。
続くステップS14では、図5(2)でコンペア回路120が列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)に対し行なった偶数行判定の一致判定結果が“不一致”であったデータ1,3,4について前記通常動作により90°回転させてSDRAM100へ書き込む。図5(3)における右側の図において、90°回転データのROW3のデータ1,3,4が、この通常動作により書き込まれたデータである。
ステップS15では、この奇数行判定で行なった一致判定で“一致”、“不一致”であったデータを判定する。この場合、“一致”と判定されたデータはデータ3,4、“不一致” と判定されたデータはデータ1,2である。
そして、“一致”と判定されたデータ3,4については、次のステップS16の処理へ進む。ステップS16は先書きを行う投機処理のステップであり、ステップS16では、図5(2)の偶数行判定の一致判定結果が“不一致”、かつ、この奇数行判定で行なった一致判定結果が“一致”するデータ3,4について、次の1ROW分、すなわち次のROW4のデータ(EVEN_2)におけるデータ3,4が書き込まれるべきエリアに前記データ3,4を先書きする投機処理を行う。
ステップS15において“不一致” と判定されたデータ1,2については、ステップS1へ戻り、投機処理は行なわない。
そして、“一致”と判定されたデータ3,4については、次のステップS16の処理へ進む。ステップS16は先書きを行う投機処理のステップであり、ステップS16では、図5(2)の偶数行判定の一致判定結果が“不一致”、かつ、この奇数行判定で行なった一致判定結果が“一致”するデータ3,4について、次の1ROW分、すなわち次のROW4のデータ(EVEN_2)におけるデータ3,4が書き込まれるべきエリアに前記データ3,4を先書きする投機処理を行う。
ステップS15において“不一致” と判定されたデータ1,2については、ステップS1へ戻り、投機処理は行なわない。
図5(4)では、列データ格納部130AにROW4のデータ(EVEN_2)、列データ格納部130BにはROW5のデータ(ODD_3)が格納される。図6のフローチャートでは、ステップS1からステップS2、さらにステップS3からステップS8へ進む。図5(4)は偶数行判定であることから、ステップS8からステップS9へ進む。
ステップS9では、図5(3)に示すデータ一致判定結果が不一致となっているデータについてのみ、すなわち,奇数行判定で不一致となっているデータについてのみ、列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)との一致判定をコンペア回路120が行う。
図5(4)では、図5(3)に示すデータ一致判定結果が不一致となっているデータ1,2についてのみ、列データ格納部130Aに格納されたROW4のデータ(EVEN_2)と列データ格納部130Bに格納されたROW5のデータ(ODD_3)との一致判定をコンペア回路120が行なっており、この一致判定結果は、データ1については一致、データ2については不一致となっている。
ステップS9では、図5(3)に示すデータ一致判定結果が不一致となっているデータについてのみ、すなわち,奇数行判定で不一致となっているデータについてのみ、列データ格納部130Aに格納されたROW2のデータ(EVEN_1)と列データ格納部130Bに格納されたROW3のデータ(ODD_2)との一致判定をコンペア回路120が行う。
図5(4)では、図5(3)に示すデータ一致判定結果が不一致となっているデータ1,2についてのみ、列データ格納部130Aに格納されたROW4のデータ(EVEN_2)と列データ格納部130Bに格納されたROW5のデータ(ODD_3)との一致判定をコンペア回路120が行なっており、この一致判定結果は、データ1については一致、データ2については不一致となっている。
続くステップS10では、図5(3)に示すデータ一致判定結果が不一致となっているデータについてのみ、すなわち,奇数行判定で不一致となっているデータ1,2についてのみ、通常動作による書き込みを行う。図5(4)の右側の図において、90°回転したROW4のデータ(EVEN_2)のデータ1,2が前記奇数行判定で不一致であったデータであり、前記通常動作によりSDRAM100へ書き込まれたデータである。
次のステップS11では偶数行判定、すなわち、図5(4)における列データ格納部130Aに格納されたROW4のデータ(EVEN_2)と列データ格納部130Bに格納されたROW5のデータ(ODD_3)との一致判定を、前記ステップS10の前記奇数行判定で不一致であったデータ1,2について確認する。前記ステップS10の前記奇数行判定で不一致であったデータ1については、この偶数行判定では一致、データ2については不一致である。
このため、この偶数行判定で“一致”であったデータ1については、次のステップS12において次の2ROW分についてWRITEする投機処理を行う。図5(4)の右側の図では、次の2ROW分、すなわちROW5とROW6について、前記通常動作によりSDRAM100へ書き込まれたデータ1が投機処理により書き込まれている。また、この偶数行判定で“不一致”であったデータ2については、ステップS11からステップS1へ戻り、投機処理は行なわない。
このため、この偶数行判定で“一致”であったデータ1については、次のステップS12において次の2ROW分についてWRITEする投機処理を行う。図5(4)の右側の図では、次の2ROW分、すなわちROW5とROW6について、前記通常動作によりSDRAM100へ書き込まれたデータ1が投機処理により書き込まれている。また、この偶数行判定で“不一致”であったデータ2については、ステップS11からステップS1へ戻り、投機処理は行なわない。
図5(5)では、列データ格納部130AにROW5のデータ(ODD_3)、列データ格納部130BにはROW6のデータ(EVEN_3)が格納される。図6のフローチャートでは、ステップS1からステップS2、さらにステップS3からステップS8へ進む。図5(5)は奇数行判定であることから、ステップS8からステップS13へ進む。
ステップS13では、ROW5のデータ(ODD_3)とROW6のデータ(EVEN_3)の全てのデータ1,2,3,4についての一致判定をコンペア回路120が行う。
続くステップS14では、図5(4)でコンペア回路120が列データ格納部130Aに格納されたROW5のデータ(ODD_3)と列データ格納部130Bに格納されたROW6のデータ(EVEN_3)に対し行なった偶数行判定の一致判定結果が“不一致”であったデータ2,3,4について前記通常動作により90°回転させてSDRAM100へ書き込む。図5(5)における右側の図において、90°回転データのROW5のデータ2,3,4が、この通常動作により書き込まれたデータである。
ステップS13では、ROW5のデータ(ODD_3)とROW6のデータ(EVEN_3)の全てのデータ1,2,3,4についての一致判定をコンペア回路120が行う。
続くステップS14では、図5(4)でコンペア回路120が列データ格納部130Aに格納されたROW5のデータ(ODD_3)と列データ格納部130Bに格納されたROW6のデータ(EVEN_3)に対し行なった偶数行判定の一致判定結果が“不一致”であったデータ2,3,4について前記通常動作により90°回転させてSDRAM100へ書き込む。図5(5)における右側の図において、90°回転データのROW5のデータ2,3,4が、この通常動作により書き込まれたデータである。
ステップS15では、この奇数行判定で行なった一致判定で“一致”、“不一致”であったデータを判定する。この場合、“一致”と判定されたデータはデータ2、“不一致” と判定されたデータはデータ1,3,4である。
そして、“一致”と判定されたデータ2については、次のステップS16の処理へ進む。ステップS16は先書きを行う投機処理のステップであり、ステップS16では、図5(4)の偶数行判定の一致判定結果が“不一致”、かつ、この奇数行判定で行なった一致判定結果が“一致”するデータ2について、次の1ROW分、すなわち次のROW6のデータ(EVEN_3)におけるデータ2が書き込まれるべきエリアに前記データ2を先書きする投機処理を行う。
ステップS15において“不一致” と判定されたデータ3,4については、ステップS1へ戻り、投機処理は行なわない。
そして、“一致”と判定されたデータ2については、次のステップS16の処理へ進む。ステップS16は先書きを行う投機処理のステップであり、ステップS16では、図5(4)の偶数行判定の一致判定結果が“不一致”、かつ、この奇数行判定で行なった一致判定結果が“一致”するデータ2について、次の1ROW分、すなわち次のROW6のデータ(EVEN_3)におけるデータ2が書き込まれるべきエリアに前記データ2を先書きする投機処理を行う。
ステップS15において“不一致” と判定されたデータ3,4については、ステップS1へ戻り、投機処理は行なわない。
以上のように、ROW1のデータ(ODD_1)については、通常動作により90°回転させてSDRAM100へ書き込む。このとき、列データ格納部に格納されたROW1のデータ(ODD_1)とROW2のデータ(EVEN_1)の一致判定結果をもとに、“一致”と判定されたデータについては次のROW2の分のデータも投機処理により先書きすることで90°回転させたデータとしてSDRAM100へ書き込む。
そして、これ以降の偶数行のROWデータについては、前回の一致判定結果と今回の一致判定結果とをもとに、今回の一致判定結果が“一致”と判定されたデータについて2ROW分(都合、3つ)の先書き、投機処理を行うことで90°回転させたデータとしてSDRAM100へ書き込む。
また、奇数行のROWデータについては、前回の一致判定結果と今回の一致判定結果とをもとに、今回の一致判定結果が“一致”と判定されたデータについて1ROW分(都合、2つ)の先書き、投機処理を行うことで90°回転させたデータとしてSDRAM100へ書き込む。
そして、これ以降の偶数行のROWデータについては、前回の一致判定結果と今回の一致判定結果とをもとに、今回の一致判定結果が“一致”と判定されたデータについて2ROW分(都合、3つ)の先書き、投機処理を行うことで90°回転させたデータとしてSDRAM100へ書き込む。
また、奇数行のROWデータについては、前回の一致判定結果と今回の一致判定結果とをもとに、今回の一致判定結果が“一致”と判定されたデータについて1ROW分(都合、2つ)の先書き、投機処理を行うことで90°回転させたデータとしてSDRAM100へ書き込む。
以上のように、この実施例1によれば、画像データを回転処理しシンクロナスDRAM(SDRAM)に格納する際に、前記画像データが1行目のデータであるか、偶数行のデータであるか、1行目を除く奇数行のデータであるかに応じたコンペア回路120の一致判定結果をもとに、その一致判定結果が同一であるデータについて次の2ROW分、または1ROW分が先書きされる画像データの投機処理を行うことが可能になり、より高速に格納できる画像処理装置及びその制御方法を提供できる効果がある。
次に、図7を参照して本実施例の画像処理装置が搭載される映像機器の一例としてのデジタルカメラ装置の概要について説明する。図7は前記実施例1で説明した画像処理装置が搭載される映像機器の一例としてデジタルカメラ装置の概要を示すブロック図である。
図示のように、このデジタルカメラ装置は、対物レンズ2、CCD撮像部3、CDS/AGC部4、A/D変換部5、信号処理部6、メモリコントローラ7、表示用メモリ部9、ビデオエンコーダ10、LCD表示部11、CPU12、DRAM13、データ圧縮部14、データ伸長部15、ストレージャ16等を有している。
このデジタルカメラ装置では、被写体の画像を対物レンズ2を通してCCD撮像部3で撮像し、その撮像画像データをCDS/AGC部4を通してノイズ除去、ゲイン調整を行なった後、A/D変換部5でデジタルデータに変換し、信号処理部6で色調整等の信号処理を行なった後、メモリコントローラ7、表示用メモリ部9及びビデオエンコーダ10を通してLCD表示部11に表示する。
また、信号処理部6で信号処理した画像データを、DRAM13及びデータ圧縮部14を用いて例えばJPEG圧縮し、ストレージャ16に蓄積しておき、この蓄積した画像データをストレージャ16から呼び出して、DRAM13及びデータ伸長部15を用いて伸長し、この画像をメモリコントローラ7、表示用メモリ部9及びビデオエンコーダ10を通してLCD表示部11に表示する。なお、CPU12は、このようなデジタルカメラ装置の全体の制御を司る。
このようなデジタルカメラ装置において、例えば、ストレージャ16に格納したJPEG画像データを回転してLCD表示部11に表示するような場合に、上述した実施例1の画像処理装置の機能を信号処理部6及びメモリコントローラ7に設け、上述した投機処理と上書き処理によって回転画像を表示用メモリ部9に書き込み、ビデオエンコーダ10を通してLCD表示部11に表示することが可能である。
図示のように、このデジタルカメラ装置は、対物レンズ2、CCD撮像部3、CDS/AGC部4、A/D変換部5、信号処理部6、メモリコントローラ7、表示用メモリ部9、ビデオエンコーダ10、LCD表示部11、CPU12、DRAM13、データ圧縮部14、データ伸長部15、ストレージャ16等を有している。
このデジタルカメラ装置では、被写体の画像を対物レンズ2を通してCCD撮像部3で撮像し、その撮像画像データをCDS/AGC部4を通してノイズ除去、ゲイン調整を行なった後、A/D変換部5でデジタルデータに変換し、信号処理部6で色調整等の信号処理を行なった後、メモリコントローラ7、表示用メモリ部9及びビデオエンコーダ10を通してLCD表示部11に表示する。
また、信号処理部6で信号処理した画像データを、DRAM13及びデータ圧縮部14を用いて例えばJPEG圧縮し、ストレージャ16に蓄積しておき、この蓄積した画像データをストレージャ16から呼び出して、DRAM13及びデータ伸長部15を用いて伸長し、この画像をメモリコントローラ7、表示用メモリ部9及びビデオエンコーダ10を通してLCD表示部11に表示する。なお、CPU12は、このようなデジタルカメラ装置の全体の制御を司る。
このようなデジタルカメラ装置において、例えば、ストレージャ16に格納したJPEG画像データを回転してLCD表示部11に表示するような場合に、上述した実施例1の画像処理装置の機能を信号処理部6及びメモリコントローラ7に設け、上述した投機処理と上書き処理によって回転画像を表示用メモリ部9に書き込み、ビデオエンコーダ10を通してLCD表示部11に表示することが可能である。
なお、本発明の画像処理装置は、以上のようなデジタルカメラ装置に限らず、例えばVTR装置やDVD装置等の各種の映像機器に広く応用できるものである。
また、上述した実施例では、JPEG圧縮されたYUVフォーマット化された画像データを扱う装置の例で説明したが、他の方式による画像データを扱う装置においても同様に適用できるものである。
また、画像用メモリとしてSDRAMを採用した例で説明したが、DRAMを用いても同様に実施できるものである。
また、上述した実施例では、JPEG圧縮されたYUVフォーマット化された画像データを扱う装置の例で説明したが、他の方式による画像データを扱う装置においても同様に適用できるものである。
また、画像用メモリとしてSDRAMを採用した例で説明したが、DRAMを用いても同様に実施できるものである。
100……SDRAM(画像用DRAM)、120……コンペア回路(比較回路)、130A,130B……列データ格納部(列データ格納用RAM)、200……メモリコントローラ(画像回転処理部、書込み制御手段)。
Claims (10)
- 入力画像データを回転させて画像用DRAM内に格納する画像回転処理部と、
連続して入力される入力画像データの奇数列と偶数列に応じた列データを一時的に格納する列データ格納用RAMと、
前記列データ格納用RAMにそれぞれ格納された列データを比較する比較回路とを備え、
前記画像回転処理部は、前記列データ格納用RAMに格納される入力画像データを回転処理し画像用DRAMに格納する際に、前記入力画像データの列データが偶数行のデータであるか、または奇数行のデータであるかに応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を行う書き込み制御手段を有する、
ことを特徴とする画像処理装置。 - 前記書き込み制御手段は、前記列データ格納用RAMに格納される入力画像データを回転処理し画像用DRAMに格納する際に、前記入力画像データの列データが1行目のデータであるか、偶数行のデータであるか、または前記1行目を除く奇数行のデータであるかに応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を行うことを特徴とする請求項1記載の画像処理装置。
- 前記書き込み制御手段は、前記列データ格納用RAMに格納される入力画像データを回転処理し画像用DRAMに格納する際に、前記入力画像データの列データが1行目のデータであると、前記1行目の列データを回転させて前記画像用DRAM内に格納する際に、前記列データ格納用RAMにそれぞれ格納された1行目の列データと次の1行の列データとに対する前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて前記次の1行分を先書きする画像データの投機処理を行うことを特徴とする請求項2記載の画像処理装置。
- 前記書き込み制御手段は、前記入力画像データの列データが1行目を除く偶数行のデータであると、前記偶数行の列データを回転させて前記画像用DRAM内に格納する際に、前記列データ格納用RAMにそれぞれ格納された当該偶数行の列データと次の行の奇数行の列データとに対する前記比較回路の偶数行比較結果、および前記当該偶数行の列データと、その偶数行より1つ前の奇数行の列データとに対する前記比較回路の奇数行比較結果をもとに、前記偶数行の列データのうちの前記奇数行比較結果が不一致となったデータを通常処理により前記画像用DRAMに書き込むとともに、前記不一致となったデータのうちで前記偶数行比較結果が一致となったデータについて所定行数分を先書きする画像データの投機処理を行うことを特徴とする請求項2記載の画像処理装置。
- 前記書き込み制御手段は、前記入力画像データの列データが1行目を除く奇数行のデータであると、前記奇数行の列データを回転させて前記画像用DRAM内に格納する際に、前記列データ格納用RAMにそれぞれ格納された当該奇数行の列データと次の行の偶数行の列データとに対する前記比較回路の奇数行比較結果、および前記当該奇数行の列データと、その奇数行より1つ前の偶数行の列データとに対する前記比較回路の偶数行比較結果をもとに、前記奇数行の列データのうちの前記偶数行比較結果が不一致となったデータを通常処理により前記画像用DRAMに書き込むとともに、前記不一致となったデータのうちで前記奇数行比較結果が一致となったデータについて所定行数分を先書きする画像データの投機処理を行うことを特徴とする請求項2記載の画像処理装置。
- 入力画像データを回転させて画像用DRAM内に格納する画像回転処理部を有する画像処理装置の制御方法であって、
連続して入力される入力画像データの奇数列と偶数列に応じた列データを一時的に格納する列データ格納用RAMと、前記列データ格納用RAMにそれぞれ格納された列データを比較する比較回路とを設け、
前記画像回転処理部は、前記列データ格納用RAMに格納される入力画像データを回転処理し前記画像用DRAMに格納する際に、前記入力画像データの列データが偶数行のデータであるか、または奇数行のデータであるかに応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を行うことを特徴とする画像処理装置の制御方法。 - 前記列データ格納用RAMに格納される入力画像データを回転処理し画像用DRAMに格納する際に、前記入力画像データの列データが1行目のデータであるか、偶数行のデータであるか、または前記1行目を除く奇数行のデータであるかを判定する判定ステップと、前記判定ステップの判定結果に応じた前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて次の所定行数分を先書きする画像データの投機処理を行う投機処理ステップとを備えたことを特徴とする請求項6記載の画像処理装置の制御方法。
- 前記判定ステップにおいて、前記入力画像データの列データが1行目のデータであると判定されると、前記投機処理ステップでは、前記1行目の列データを回転させて前記画像用DRAM内に格納する際に、前記列データ格納用RAMにそれぞれ格納された1行目の列データと次の1行の列データとに対する前記比較回路の比較結果をもとに、その比較結果が同一であるデータについて前記次の1行分を先書きする画像データの投機処理を行うことを特徴とする請求項7記載の画像処理装置の制御方法。
- 前記判定ステップにおいて、前記入力画像データの列データが1行目を除く偶数行のデータであると判定されると、前記投機処理ステップでは、前記偶数行の列データを回転させて前記画像用DRAM内に格納する際に、前記列データ格納用RAMにそれぞれ格納された当該偶数行の列データと次の行の奇数行の列データとに対する前記比較回路の偶数行比較結果、および前記当該偶数行の列データと、その偶数行より1つ前の奇数行の列データとに対する前記比較回路の奇数行比較結果をもとに、前記偶数行の列データのうちの前記奇数行比較結果が不一致となったデータを通常処理により前記画像用DRAMに書き込むとともに、前記不一致となったデータのうちで前記偶数行比較結果が一致となったデータについて所定行数分を先書きする画像データの投機処理を行うことを特徴とする請求項7記載の画像処理装置の制御方法。
- 前記判定ステップにおいて、前記入力画像データの列データが1行目を除く奇数行のデータであると判定されると、前記投機処理ステップでは、前記奇数行の列データを回転させて前記画像用DRAM内に格納する際に、前記列データ格納用RAMにそれぞれ格納された当該奇数行の列データと次の行の偶数行の列データとに対する前記比較回路の奇数行比較結果、および前記当該奇数行の列データと、その奇数行より1つ前の偶数行の列データとに対する前記比較回路の偶数行比較結果をもとに、前記奇数行の列データのうちの前記偶数行比較結果が不一致となったデータを通常処理により前記画像用DRAMに書き込むとともに、前記不一致となったデータのうちで前記奇数行比較結果が一致となったデータについて所定行数分を先書きする画像データの投機処理を行うことを特徴とする請求項7記載の画像処理装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004295975A JP2006109308A (ja) | 2004-10-08 | 2004-10-08 | 画像処理装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004295975A JP2006109308A (ja) | 2004-10-08 | 2004-10-08 | 画像処理装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006109308A true JP2006109308A (ja) | 2006-04-20 |
Family
ID=36378469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004295975A Pending JP2006109308A (ja) | 2004-10-08 | 2004-10-08 | 画像処理装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006109308A (ja) |
-
2004
- 2004-10-08 JP JP2004295975A patent/JP2006109308A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6671418B2 (en) | Image processing apparatus and method which determines a block size in accordance with a filter structure | |
US20070146810A1 (en) | Image display apparatus, method, and program | |
US20130101275A1 (en) | Video Memory Having Internal Programmable Scanning Element | |
JP2000312327A (ja) | 画像処理装置 | |
US20040218067A1 (en) | Digital multi-media input device with continuously store function and method for forming the same | |
CN100474890C (zh) | 图像显示装置 | |
US20110157465A1 (en) | Look up table update method | |
JP4898283B2 (ja) | 画像記録装置 | |
US8824814B2 (en) | Pixel data compression and decompression method | |
JP2005102168A (ja) | 画像処理装置及び画像処理方法 | |
US20040184306A1 (en) | Memory device | |
JP2008263646A (ja) | 画像処理装置 | |
JP2001285644A (ja) | ラインメモリの制御方法 | |
JPH09312828A (ja) | 再生装置及びデータ処理装置 | |
JP2006109308A (ja) | 画像処理装置及びその制御方法 | |
JP4228867B2 (ja) | 画像処理装置及びその制御方法 | |
JP6295619B2 (ja) | 画像処理装置及び方法、並びに電子機器 | |
US7684650B2 (en) | Method for processing image frame output from an image sensor by an image processor | |
US20060104543A1 (en) | Size optimized pixel line to pixel block conversion algorithm | |
US20070040842A1 (en) | Buffer memory system and method | |
JP2006121343A (ja) | 画像処理装置 | |
JP3992269B2 (ja) | 画像処理装置及び方法 | |
EP1784783B1 (en) | Method of address-controlling memory with single buffer structure | |
JP2006054584A (ja) | 画像処理装置 | |
JP2002237951A (ja) | 映像信号処理回路 |