JP2003338922A - 画像処理装置及び方法 - Google Patents
画像処理装置及び方法Info
- Publication number
- JP2003338922A JP2003338922A JP2002145649A JP2002145649A JP2003338922A JP 2003338922 A JP2003338922 A JP 2003338922A JP 2002145649 A JP2002145649 A JP 2002145649A JP 2002145649 A JP2002145649 A JP 2002145649A JP 2003338922 A JP2003338922 A JP 2003338922A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- data
- memory
- image
- address
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title description 30
- 239000000872 buffer Substances 0.000 claims abstract description 328
- 238000012546 transfer Methods 0.000 claims description 96
- 238000003672 processing method Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 abstract 4
- 238000010586 diagram Methods 0.000 description 18
- 238000002156 mixing Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 101100498819 Caenorhabditis elegans ddr-1 gene Proteins 0.000 description 2
- 102100022005 B-lymphocyte antigen CD20 Human genes 0.000 description 1
- 102100033040 Carbonic anhydrase 12 Human genes 0.000 description 1
- 102100033029 Carbonic anhydrase-related protein 11 Human genes 0.000 description 1
- 101000897405 Homo sapiens B-lymphocyte antigen CD20 Proteins 0.000 description 1
- 101000867855 Homo sapiens Carbonic anhydrase 12 Proteins 0.000 description 1
- 101000867841 Homo sapiens Carbonic anhydrase-related protein 11 Proteins 0.000 description 1
- 101001075218 Homo sapiens Gastrokine-1 Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Image Processing (AREA)
- Studio Circuits (AREA)
- Storing Facsimile Image Data (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
追加を必要としない回転処理装置を提供することにあ
る。 【解決手段】転送元の矩形領域の画像を正方ブロックに
分割し、正方ブロック単位で、メモリから順に読み出し
て転送させ、メモリから正方ブロック単位で転送されて
きた画像を、バッファへの書き込みと読み出しを制御す
ることにより、正方ブロック単位で回転させ、正方ブロ
ック単位で回転された画像をメモリに転送し、転送元の
矩形領域の画像を読み出した方向に対して回転する方向
となる順番で、転送先の矩形領域に書き込むことで、画
像の回転処理が行える。このような画像の回転処理を、
BitBLT装置で実現する。また、正方ブロックは、
その一辺のデータ長が、メモリからのデータの転送単位
のデータ長に対応するようにすることで、正方ブロック
での回転処理を実現する。
Description
放送やディジタルCATV(Cable Television)放送の
画像処理に用いて好適な画像処理装置及び方法に関する
もので、特に、画像の回転処理に関わる。
ite )放送やディジタルBS(Broadcast Satellite )
放送では、ビデオデータやオーディオデータが圧縮さ
れ、固定長のパケットとされ、MPEG(Moving Pictu
re Coding Experts Group )2−TS(Transport Stre
am)のトランスポートストリームに組み込まれて送信さ
れている。このようなディジタルBS放送やCS放送で
送られてくるMPEG2−TSのトランスポートストリ
ームを処理するための画像信号処理チップの開発が進め
られている。
フィックスプロセッサが搭載される。グラフィックスプ
ロセッサには、グラフィックスメモリ上の矩形領域の画
像をソース領域からデスティネーション領域に転送する
BitBLT(Bit Block Transfer)装置が設けられる。
BitBLT装置では、画像を転送するのに伴い、コピ
ー、カラー拡張、YCミキシング、カラー変換、アルフ
ァブレンディング、及び画面のスケーリング等が行われ
る。
ラが普及してきていることから、このような信号処理チ
ップで、メモリ上にある矩形領域の回転処理を行えるよ
うにすることが要望されている。
では、放送により送られきた画像ばかりでなく、VCR
(Video Cassette Recorder)やディジタルカメラで撮影
された画像の処理が行われる。特に、ディジタルカメラ
が急速に普及していることから、ディジタルカメラで撮
影した画像の処理が盛んに行われるようになると考えら
れる。
の撮影を行う場合、カメラを90度回転させて、縦長に
して撮影を行うようなことが良くある。このように、カ
メラを90度回転させて撮影された画像を処理するよう
な場合に、メモリ上にある矩形領域の回転処理が行える
ことが望まれる。
は、ホストプロセッサにより処理するのが一般的であ
る。ところが、ホストプロセッサにより回転処理を行わ
せるようにすると、ホストプロセッサは、元となるピク
セルイメージの矩形領域に対し、画素単位あるいはCP
Uのデータバス幅単位での、回転後の位置の算出と、メ
モリへの再描画を行わなければならない。また、画素単
位あるいはCPUのデータバス単位での処理となるた
め、頻繁なメモリへのアクセスが必要である。
実現するため、ある程度の画素数を含むブロック単位で
回転を実現する場合、回転後のデータを一時的に格納す
るための回転処理用バッファが必要となり、メモリ増設
によるハードウェアの規模が増大する問題がある。
モリに転送する間、各ブロックのアドレス計算や、デー
タ転送は、ホストプロセッサが実行するため、回転機能
を有するシステムに於いて、ホストプロセッサが占有さ
れ、パフォーマンスが低下する問題がある。
置で行うようにすることが考えられる。BitBLT装
置は、上述のように、メモリ上の所定の矩形領域の画像
をソース領域からデスティネーション領域に転送する際
に、画像を回転させるような処理を行えるようにするこ
とが考えられる。
LT装置に持たせるようにする場合に考慮しなければな
らない点は、先ず、高速処理を可能にできるようにする
ことである。画像の回転処理をするのに、複雑な演算を
必要とするのでは、高速処理は不可能であり、BitB
LT装置で回転処理を行わせることは困難である。ま
た、回転処理を実現するのに、バッファを追加しなけれ
ばならないとすると、回路規模が大型化する。更に、回
転処理をする際に、バッファを何度もアクセスしなけれ
ばならないとすると、高速処理は不可能である。
となる矩形画像の回転処理を行ってメモリへ転送する回
転処理装置であって、回転処理が高速で行えると共に、
バッファの追加を必要としない回転処理装置を提供する
ことにある。
形領域の画像を正方ブロックに分割し、正方ブロック単
位で、メモリから順に読み出して転送させる手段と、メ
モリから正方ブロック単位で転送されてきた画像を、バ
ッファへの書き込みと読み出しを制御することにより、
正方ブロック単位で回転させる手段と、正方ブロック単
位で回転された画像をメモリに転送し、転送元の矩形領
域の画像を読み出した方向に対して回転する方向となる
順番で、転送先の矩形領域に書き込む手段とを備えるよ
うにした画像処理装置である。
方ブロックに分割し、正方ブロック単位で、メモリから
順に読み出して転送させ、メモリから正方ブロック単位
で転送されてきた画像を、バッファへの書き込みと読み
出しを制御することにより、正方ブロック単位で回転さ
せ、正方ブロック単位で回転された画像をメモリに転送
し、転送元の矩形領域の画像を読み出した方向に対して
回転する方向となる順番で、転送先の矩形領域に書き込
むようにした画像回転処理方法である。
分割し、正方ブロック単位で、メモリから順に読み出し
て転送させ、メモリから正方ブロック単位で転送されて
きた画像を、バッファへの書き込みと読み出しを制御す
ることにより、正方ブロック単位で回転させ、正方ブロ
ック単位で回転された画像をメモリに転送し、転送元の
矩形領域の画像を読み出した方向に対して回転する方向
となる順番で、転送先の矩形領域に書き込むことで、画
像の回転処理が行える。このような画像の回転処理を、
BitBLT装置で実現する。また、正方ブロックは、
その一辺のデータ長が、メモリからのデータの転送単位
のデータ長に対応するようにすることで、正方ブロック
での回転処理を実現する。
いて図面を参照して説明する。図1は、この発明が適用
されたBitBLT装置の一例の構成を示すものであ
る。このBitBLT装置1は、ディジタルCS放送や
ディジタルBS放送、ディジタルCATV放送で送られ
てきた画像データを処理するために、ディジタルCS放
送やディジタルBS放送、ディジタルCATV放送のセ
ットトップボックスや、テレビジョン受像機で使用され
る画像処理チップ内に設けられる。
BitBLT装置1は、レジスタ制御部11と、メモリ
リード制御部12と、メモリライト制御部13と、コピ
ー制御部14と、CLUT参照用バッファ15と、回転
制御部16と、セレクタ17とを含んでいる。
irst-In First-Out)25及びライトFIFO26を介し
て、メモリバス24と接続されている。メモリバス24
は、メモリ3との間で、画像データをやりとりするため
のバスである。メモリバス24としては、例えば、64
ビットのバス幅のものが用いられる。
出されたソースデータを一時的に格納するバッファであ
る。ライトFIFO26は、メモリ3へ書き込むデステ
ィネーションデータを一時的に格納するバッファであ
る。
サ2からのコマンドに応じてマッピングされ、一次元配
列又は二次元配列に展開されて格納される。画像データ
としては、1画素当たりのビット数が8ビット、16ビ
ット、又は32ビットとされる。なお、1画素当たりの
ビット数が8ビットのデータは、インデックスデータで
あり、ピクセルデータそのものではなく、色番号を示し
ている。
2が設けられる。メモリコントローラ22は、BitB
LT装置1から発行されるメモリ3のリードリクエスト
及びライトリクエストと、読み出し又は書き込みを行う
メモリアドレスにしたがってって、メモリ3からリード
FIFO25へデータを格納し、また、ライトFIFO
26に格納されたデータをメモリ3に書き込むための制
御を行っている。
データの送出コマンド等、BitBLT装置1にコマン
ドを送出する。ホストプロセッサ2からのコマンドは、
ホストインターフェース21、レジスタバス23を介し
て、BitBLT装置1に送られる。
張、YCミキシング、カラー変換、アルファブレンディ
ング、及び画面のスケーリング等の画像処理を行うハー
ドウェアアクセレータである。更に、この発明では、B
itBLT装置1には、所望の矩形領域の画像を回転さ
せて所望の矩形領域にコピーするような回転機能が付加
されている。
画素当たりのビット数が8ビット、16ビット、又は3
2ビットのフォーマットのものが用いられる。すなわ
ち、画像データは、1ピクセルが2のN乗ビットで表現
されるピクセルデータとされている。この2のN乗で表
現されるフォーマットを、2N {N=0,1,2 …} bpp (b
it per pixel)として定義するものとする。図2は、N
=3(8bpp)のフォーマットと、N=4(16bpp)の
フォーマットと、N=5(32bpp)のフォーマットの
一例である。
像データをやりとりするためのバスである。メモリバス
24としては、例えば、64ビットのバス幅のものが用
いられる。メモリバス24には、メモリコントローラ2
2を介して、メモリ3が接続される。メモリ3として
は、例えば、SDRAM(Synchronous Dynamic RandomA
ccess Memory)が用いられる。メモリ3からは、64ビ
ットのデータが一度に転送される。
サ2からのコマンドに応じてマッピングされ、一次元配
列又は二次元配列に展開されて格納される。画像データ
としては、前述したように、1画素当たりのビット数が
8ビットのフォーマット(8bpp)と、1画素当たりの
ビット数が16ビットのフォーマット(16bpp)と、
1画素当たりのビット数が32ビットのフォーマット
(32bpp)が用いられている。
ッサ2からのコマンドは、ホストインターフェース2
1、レジスタバス23を介して、レジスタ制御部11に
送られる。レジスタ制御部11は、ホストプロセッサ2
がホストインターフェース21を介して設定するレジス
タを受け、各制御部にパラメータを渡している。
ッサ2からのコマンドに基づいて、BitBLT装置1
からメモリコントローラ22に、所望の転送元の矩形領
域のアドレスを指定して、リードリクエストが送られ
る。また、コピー制御を行う場合には、セレクタ17
は、端子17A側に設定される。メモリコントローラ2
2は、リードリクエストを受け取ると、メモリ3上の指
定されたアドレスをアクセスし、所望の転送元の矩形領
域の画像データをメモリ3から読み出す。
画像データは、メモリコントローラ22、メモリバス2
4、リードFIFO25を介して、メモリリード制御部
12に送られる。そして、メモリ3から送られてきた画
像データは、メモリリード制御部12からコピー制御部
14に送られる。
キシング、カラー変換、アルファブレンディング、画面
のスケーリング等の処理が行われる。このようにコピー
処理された画像データがセレクタ17を介して、メモリ
ライト制御部13に送れる。
ローラ22に、所望の矩形領域の転送先のアドレスを指
定して、ライトリクエストが送られる。メモリコントロ
ーラ22は、ライトリクエストを受け取ると、メモリ3
上の指定されたアドレスをアクセスし、送られてきた画
像データを所望の転送先の矩形領域に書き込む。
モリ3の所望の矩形領域の画像データを、所望の矩形領
域にコピーする機能を主に行っている。そして、コピー
制御するのに伴い、カラー拡張、YCミキシング、カラ
ー変換、アルファブレンディング、画面のスケーリング
等の処理を行うことができる。
クスデータ(8bppのフォーマットのデータ)からピク
セルイメージデータへの展開処理を行うためのCLUT
参照用バッファ15が備えられている。CLUT参照用
バッファ15は、図3に示すように、8ビットのインデ
ックスデータを、(α,Y,U,V)からなる32ビッ
トのピクセルデータに変換するためのテーブルであり、
256の色番号に対応する(α,Y,U,V)からなる
32ビットのピクセルデータが格納される。CLUT参
照用バッファ15としては、少なくとも、(32ビット
×256)の容量を有している。また、この発明が適用
されたBitBLT装置1においては、CLUT参照用
バッファ15は、物理的に、複数のバッファBuff0、Buf
f1、Buff2、…に分割されている。
送元の矩形領域と、回転先になる転送先の矩形領域と、
回転方角度とが指定される。そして、転送元の矩形領域
は、その一辺がメモリバス24のバス幅に対応する複数
の正方ブロックに分割されて処理が行われる。また、回
転制御を行う場合には、セレクタ17は、端子17B側
に設定される。正方ブロックについては、後に説明す
る。
ントローラ22に、回転元になる転送元の矩形領域の所
望の正方ブロックを指定して、リードリクエストが送ら
れる。メモリコントローラ22は、リードリクエストを
受け取ると、メモリ3上の指定された正方ブロックのデ
ータをアクセスし、この正方ブロックのデータをメモリ
3から読み出す。
画像データは、メモリコントローラ22、メモリバス2
4、リードFIFO25を介して、メモリリード制御部
12に送られる。そして、メモリ3から送られてきたデ
ータは、メモリリード制御部12から回転制御部16に
送られる。
正方ブロックに分割されて処理されており、正方ブロッ
クの一辺は、メモリバス24のバス幅(例えば64ビッ
ト)に対応しているので、1サイクルで正方ブロックの
一辺に相当するデータがメモリ3からメモリリード制御
部12に転送されてくる。
回転制御部16に送られる。回転制御部16は、CLU
T参照用バッファ15にデータを書き込み制御を行うバ
ッファライト制御部18と、CLUT参照用バッファ1
5からのデータの読み出し制御を行うバッファリード制
御部19とを有している。
ように、インデックスデータをピクセルデータに変換す
るためのものである。CLUT参照用バッファ15は、
図3Bに示すように、例えば256のエントリからな
る。CLUT参照テーブルとしては、通常、例えば不揮
発性RAMが用いられる。CLUT参照テーブルには、
256の各エントリのアドレスに対して、対応するピク
セルデータが書き込まれている。
データの色番号をアドレスとして、CLUT参照テーブ
ルを読み出すことで、8ビットのインデックスデータが
(α,Y,U,V)からなるピクセルデータに変換され
る。
は、画像の回転処理を行う場合に、正方ブロック毎の回
転処理をするのに利用される。
のデータは、CLUT参照用バッファ15に一旦書き込
まれ、それから、バッファリード制御部19により、C
LUT参照用バッファ15から読み出される。このと
き、正方ブロック毎の回転が完結するように、CLUT
参照用バッファ15に対する書き込みと読み出しが制御
される。また、CLUT参照用バッファ15に対する書
き込みと読み出しが効率的に行えるように、CLUT参
照用バッファ15は、複数のバッファBuff0、Buff1、Bu
ff2、…に物理的に分割されている。このことについて
は、後に、詳述する。
ァ15の読み出しと書き込みを制御することにより、上
述のように、正方ブロック内での回転処理が完結され
る。回転制御部16からのデータは、セレクタ17を介
して、メモリライト制御部13に送られる。
ローラ22に、所望の回転先になる転送先の矩形領域の
所望の正方ブロックを指定して、ライトリクエストが送
られる。メモリコントローラ22は、ライトリクエスト
を受け取ると、メモリ3上の指定された転送先の正方ブ
ロックをアクセスし、送られてきた画像データを所望の
転送先の正方ブロックに書き込む。
域を複数の正方ブロックに分割し、この正方ブロックの
データをメモリ3から読み出し、BitBLT装置1に
転送し、BitBLT装置1の回転制御部16を介し
て、回転先となる転送先の矩形領域に書き込む際に、メ
モリ3から読み出す転送元の矩形領域の正方ブロックの
順番と、メモリ3に書き込む転送先の矩形領域の正方ブ
ロックの順番とを入れ替えることで、矩形領域の全体的
な回転制御が行える。更に、CLUT参照用バッファ1
5に対する書き込みと読み出しの制御により、各正方ブ
ロック毎の回転が完結する。これにより、回転制御が実
現される。
形領域を時計方向に90度回転させるときの処理を示す
ものである。
1は、複数の正方ブロックU1、U2、U3、U4、U
5、U6に分割されて処理される。時計方向の回転を行
う場合には、正方ブロックU1、U2、U3、U4、U
5、U6は、左から右、上から下の順に、メモリ3から
読み出され、BitBLT装置1の回転制御部16に送
られる。
CLUT参照用バッファ15に対する書き込みと読み出
しを制御することにより、図4Bに示すように、各正方
ブロックのデータは、正方ブロック毎に、時計方向に回
転される。このように、時計方向に回転された正方ブロ
ックRU1、RU2、RU3、RU4、RU5、RU6
がBitBLT装置1からメモリ3に送られる。
方向に90度回転された正方ブロックRU1、RU2、
RU3、RU4、る5、RU6が、上から下、右から左
の順に書き込まれる。これにより、転送先の矩形領域G
2の画像は、転送元の矩形領域G1の画像を時計方向に
90度回転させたものとなる。
反時計方向に90度回転させるときの処理を示すもので
ある。反時計方向に回転させる場合も、時計方向の場合
と同様に、転送元の矩形領域G1は、複数の正方ブロッ
クU1、U2、U3、U4、U5、U6に分割されて処
理され、正方ブロックU1、U2、U3、U4、U5、
U6は、左から右、上から下の順に、メモリ3から読み
出され、BitBLT装置1の回転制御部16に送られ
る。
CLUT参照用バッファ15に対する書き込みと読み出
しを制御することにより、図5Bに示すように、各正方
ブロックのデータは、正方ブロック毎に、反時計方向に
回転される。このように、反時計方向に回転された正方
ブロックLU1、LU2、LU3、LU4、LU5、L
U6がBitBLT装置1からメモリ3に送られる。
計方向に90度回転された正方ブロックLU1、LU
2、LU3、LU4、LU5、LU6が、下から上、左
か右の順に書き込まれる。これにより、転送先の矩形領
域G2の画像は、転送元の矩形領域G1の画像を反時計
方向に90度回転させたものとなる。
御の詳細について説明する。図6は、時計方向の回転制
御の詳細を説明するもであり、図7は、反時計方向の回
転制御を説明するものである。回転処理を行うために、
ホストプロセッサ2がレジスタ制御部11に設定するパ
ラメータは、以下のようなものがある(図8参照)。
(ピクセル数) (4) src_adr: 転送元矩形画像のスタートアドレス (5) dst_pitch: 転送先画像のX方向ラインオフセット
(ピクセル数)。 (6) dst_adr: 転送先矩形画像のスタートアドレス。
プロセッサ2は次のパラメータを設定する。 (7) 転送元画像ピクセルフォーマット (8) 回転角度 (9) 回転処理開始命令
の対象となる転送元の画像の矩形領域は、対象矩形画像
Y方向ライン数vszと、対象矩形画像X方向ピクセル数hsz
と、転送元画像のX方向ラインオフセットsrc_pitchと、
転送元矩形画像のスタートアドレスsrc_adrとにより指
定される。図6B及び図7Bに示すように、転送先の画
像の矩形領域は、転送先画像のX方向ラインオフセットd
st_pitchと、転送先矩形画像のスタートアドレスdst_ad
rとにより指定される。
に示すように、二次元に展開しても、図9に示すよう
に、一次元に展開するようにしても良い。パラメータ
(2)(3)(5)(6)により、各ラインの先頭アドレスをライン
先頭アドレスに pitchを加算することで、一次元、二次
元配列に対応することができる。
bppのフォーマットか、16bppフォーマットか、32bp
pフォーマットである。回転角度は、時計方向に90度
又は反時計方向に90度である。回転処理開始命令が与
えられると、回転処理が開始され、時計方向又は反時計
方向に回転処理が行われる。
である。図10において、ホストプロセッサ2からBi
tBLT装置1に対して、回転開始命令が与えらると、
回転処理が開始される(ステップS1)。
ル数が求められる(ステップS2)。前述したように、
回転処理を行う場合、矩形領域は正方ブロックに分割さ
れて処理され、この正方ブロックの一辺のビット数は、
メモリバス8のビット幅に対応している。したがって、
1つの正方ブロックの一辺のピクセル数は、メモリバス
24のバス幅と、フォーマットで決められている1画素
当たりのビット数とから、ピクセル数=メモリバスのビ
ット幅/1画素当たりのビット数として求められる。
ットで、ピクセルフォーマットが8bppの場合には、正
方ブロック一辺のピクセル数は、 ピクセル数=64(ビット)/8(bpp)=8 となる。
は、正方ブロック一辺のピクセル数は、 ピクセル数=64(ビット)/16(bpp)=4 となる。
は、正方ブロック一辺のピクセル数は、 ピクセル数=64(ビット)/32(bpp)=2 となる。
辺のピクセル数が求められたら、次に、正方ブロックに
分割された回転対象となる転送元の画像の矩形領域のX
方向及びY方向のブロック数が取得される(ステップS
3)。
向のブロック数は、転送元の画像の矩形領域のX方向の
画素数を、正方ブロックの一辺の画素数で割り算するこ
とで求められる。転送元の画像の矩形領域のX方向の画
素数は、パラメータhszとして入力されている。また、
正方ブロックの一辺の画素数は、ステップS2で求めら
れている。また、回転元となる転送元画像の矩形領域の
Y方向のブロック数は、転送元の画像の矩形領域のY方
向の画素数を、正方ブロックの一辺の画素数で割り算す
ることで求められる。転送元の画像の矩形領域のY方向
の画素数は、パラメータvszとして入力されている。
向ピクセル数hsz及びY方向ピクセル数vszは正方ブロッ
クのピクセル数で割り切れるとは限らない。したがっ
て、回転元となる元画像の矩形領域のX方向及びY方向
のブロック数は、対象矩形画像X方向ピクセル数hsz及び
Y方向ピクセル数vszのパラメータを、正方ブロックの
ピクセル数で割ったときの商のブロック数と等しいか、
それ以上となる。
ときの回転対象となる矩形領域の画像のX方向及びY方
向のブロック数が取得されたら、次に、正方ブロックの
境界から回転対象画像部分までのオフセット値 v_offse
t、及び、正方ブロック境界から回転対象画像部分まで
の水平方向オフセット値 h_offset が算出される(ステ
ップS4)。
は、X方向ピクセル数hsz及びY方向ライン数vszと、矩
形画像のスタートアドレスsrc_adrと、ブロック一辺の
ピクセル数から算出される。
画像の左端のソース先頭ラインアドレスが取得される
(ステップS5)。これは、 転送元矩形画像のスター
トアドレス src_adrと、転送元画像のX方向ラインオフ
セットsrc_pitchと、1画素当たりのピクセル数bppと、
垂直方向ブロック位置により算出される。
のデスティネーション先頭ラインアドレスが取得される
(ステップS6)。これは、回転方向、転送先矩形画像
のスタートアドレスdst_adr、転送先画像のX方向ライン
オフセットdst_pitch、1画素当たりのピクセル数bpp、
正方ブロックの境界から回転対象画像部分までの垂直方
向オフセット値v_offset、正方ブロック境界から回転対
象画像部分までの水平方向オフセットh_offset、垂直方
向ブロック位置により算出される。
方ブロック先頭アドレスsrc_blk_adrが取得される(ス
テップS7)。この転送元となる矩形領域の画像の各正
方ブロック先頭アドレスsrc_blk_adrは、ソース先頭ア
ドレスに、正方ブロック一辺分のピクセル数をインクリ
メントしていくことにより算出される。
ック先頭アドレスdst_blk_adrが取得される(ステップ
S8)。この転送先となる矩形領域の各正方ブロック先
頭アドレスdst_blk_adrは、デスティネーション先頭ア
ドレスに、正方ブロック一辺分のピクセル数をインクリ
メントしていくことにより算出される。
が求められたら、回転処理が開始される。
められた、回転元ブロック先頭アドレスsrc_blk_adrの
位置の正方ブロックの画像データが、メモリ3から読み
出される(ステップS9)。この読み出された正方ブロ
ックの画像データは、メモリコントローラ22、メモリ
バス24、リードFIFO25を介して、メモリリード
制御部12に送られる。
メモリ3から送られてきた正方ブロックのデータがCL
UT参照用バッファ15に書き込まれる(ステップS1
0)。そして、CLUT参照用バッファ15に書き込ま
れた正方ブロックのデータは、バッファリード制御部1
9により、読み出される(ステップS11)。
ッファBuff0、Buff1、Buff2、…に物理的に分割されて
おり、CLUT参照用バッファ15に、データを書き込
み、読み出しすることで、正方ブロック内での回転処理
が完結する。
た正方ブロックの画像データは、セレクタ17を介して
メモリライト制御部13に送られ、この正方ブロックの
データは、ライトFIFO26、メモリコントローラ2
2を介して、メモリ3に送られ、メモリ3の回転先ブロ
ック先頭アドレスdst_blk_adrに書き込まれる(ステッ
プS12)。
12で、1つの正方ブロックをメモリ3から読み出し
て、CLUT参照用バッファ15での読み出し/書き込
みにより、正方ブロック内での回転を完結させて、再
び、メモリ3に正方ブロックのデータを書き込んだら、
水平方向に並ぶ正方ブロックの読み出しが終了したかど
うかが判断される(ステップS13)。
で、右に一つブロックが進められて(ステップS1
5)、ステップS7にリターンされる。そして、ステッ
プS7で、メモリ3の正方ブロック一辺分のアドレスが
src_blk_adrに加算されて次のブロックの先頭アドレス
が求められ、ステップS8で、転送先のブロック先頭ア
ドレスdst_blk_adrが取得される。それから、ステップ
S9からステップS12で、次の正方ブロックがメモリ
3から読み出され、CLUT参照用バッファ15での読
み出し/書き込みにより、正方ブロック内での回転を完
結され、再び、メモリ3に正方ブロックのデータを書き
込まれる。
転送元の矩形領域の正方ブロックがメモリ3から、左か
ら右の順に読み出されていき、CLUT参照用バッファ
15の書き込み/読み出しにより、各正方ブロックの回
転が完結され、メモリ3の転送先のアドレスに、時計方
向なら上から下の順に、反時計方向なら下から上の順
に、書き込まれていく。そして、転送元の矩形領域の正
方ブロックが左端まで読み出されると、ステップS13
で、水平方向に並ぶ正方ブロックの読み出しが終了した
かどうかが判断される。
ロックの読み出しが終了したと判断された場合には、垂
直方向の読み出しが終了したかどうかが判断される(ス
テップS14)。垂直方向の読み出しが終了していない
場合には、ステップS16で、垂直方向に一つブロック
が下げられ、ステップS17で、 矩形画像の左端に移
動され、ステップS5にリターンされる。
アドレスが取得される。そして、ステップS7で、メモ
リ3の正方ブロック一辺分のアドレスがsrc_blk_adrに
加算されて次のブロックの先頭アドレスが求められ、ス
テップS8で、転送先のブロック先頭アドレスdst_blk_
adrが取得される。それから、ステップS9からステッ
プS12で、次の正方ブロックがメモリ3から読み出さ
れ、CLUT参照用バッファ15での読み出し/書き込
みにより、正方ブロック内での回転を完結され、再び、
メモリ3に正方ブロックのデータを書き込まれる。
転送元の矩形領域の正方ブロックがメモリ3から、左か
ら右の順に読み出されていき、CLUT参照用バッファ
15の書き込み/読み出しにより、各正方ブロックの回
転が完結され、メモリ3の転送先のアドレスに、時計方
向なら上から下の順に、反時計方向なら下から上の順
に、書き込まれていく。更に、転送元の矩形領域の正方
ブロックが左端まで読み出されると、1つ下に並ぶある
水平方向の正方ブロックに対して、同様の処理が行われ
ていく。
処理が全て終了すると、ステップS13で、水平方向の
読み出しが全て終了したと判断され、ステップS14
で、垂直方向の読み出しが終了したかどうかが判断され
る。転送元の矩形領域の画像に対する処理が全て終了す
ると、ステップS18で、ホストプロセッサ2へ終了の
割り込みが発生され、ステップS19で、回転処理が終
了される。
15は、複数のバッファBuff0、Buff1、Buff2、…に物
理的に分割されており、回転処理を行う場合には、CL
UT参照用バッファ15に、データを書き込み、読み出
しすることで、正方ブロック内での回転処理が完結され
る。このCLUT参照用バッファ15の回転処理を行う
際の制御について説明する。
トのデータ幅を有しており、0〜n個に、物理的に分割
される。16ビットのデータ幅は、8ビットのインデッ
クスデータを、16ビットのピクセルデータに変換する
ためである。
nは、メモリバス24のビット幅と、ピクセルフォーマ
ットのビット数とから、n = { メモリバスビット幅(bi
t)/ ピクセルフォーマット(bpp) }として決められる。
ブロックの一辺のビット数と等しいので、CLUT参照
用バッファ15の分割数nは、正方ブロックの一辺のビ
ット数を、ピクセルフォーマットのビット数で割り算し
たものでもある。また、メモリバス24のビット幅とい
うのは、メモリ3から1サイクルで転送されてくるビッ
ト数ということもできる。このメモリバス24のビット
幅は、例えば、64ビットである。
は、前述したように、8bppと、16bppと、32bppと
が用いられる。
の分割数は、画像データのピクセルフォーマットが32
bppの場合には、2つとなり、16bppの場合には、4つ
となり、8bppの場合には、8つとなる。
ち、回転処理に使用されるワード数は、メモリバス24
のビット幅(正方ブロック一辺のビット数)と、CLU
T参照用バッファ15のビット幅による。CLUT参照
用バッファ15のビット幅は、上述のように、32ビッ
トである。メモリバス24のビット幅は、64ビットで
ある。したがって、CLUT参照用バッファ15の領域
のうち、回転処理に使用されるワード数は、 (64ビット/32ビット)=2 となり、CLUT参照用バッファ15を構成する各バッ
ファbuff0、buff1、buff2、…のアドレス0とアドレス
1の2ワード分を回転処理に使用される。
数)とし、正方ブロックの一辺を64ビット、CLUT
参照用バッファ15のビット幅を32ビットとし、CL
UT参照用バッファ15を複数のバッファbuff0、buff
1、buff2、…に分割した場合、各バッファへのデータの
格納は以下の通りである。
〜2)がブロック前半ライン、3)から4)がブロック後半ラ
インとなる。ここでBuff (番号) (0)の括弧内はバッフ
ァのアドレスを示す。ここでBuff (番号) (0)の括弧内
はバッファのアドレスを示す。
n-1[63:32]}, Buff N-1(0) = {Line n-1[31:0]}
0]}, Buff N-1(1) = {Line N-1 [63:32]}
2ビット単位で2つのバッファにまたがって格納する点
と、Line n-1, Line nを境に、バッファに格納するデー
タの上位32ビット、 下位32ビットtが逆になってい
る点である。また、一辺がNピクセル(ライン)の1ブ
ロックをBuffに格納するには、最短Nサイクルで良い。
バッファからのデータの読み出しは、回転角度によって
異なる。
転送が可能な様に、回転角度に対応して、メモリデータ
バス幅にバッファから読み出されるピクセルデータをマ
ルチプレクスする。バッファに格納されているブロック
の読み出しシーケンスは以下の通りである。
クセル位置 n] とし、Lineは転送先のライン番号を示
す。ピクセル位置nは、ワード内左を0、右をnとする。
また、n= {1,2,3 …}、1≦n≦N/2と定義し、1)〜2)がブ
ロック前半ライン、3)から4)がブロック後半ラインとな
る。
, … , Buff 1(1)[0],Buff N-2(0)[0], Buff N-4(0)
[0] , … , Buff 0(0)[0]}….
1], Buff N-3(1)[n-1] , … , Buff 1(1)[n-1],Buff N-
2(0)[n-1], Buff N-4(0)[n-1] , … , Buff 0(0)[n-1]}
ff N-4(0)[0] , … , Buff 0(0)[0]},Buff N-1(1)[0],
Buff N-3(1)[0] , … , Buff 1(1)[0] }….
1], Buff N-4(0)[ n-1] , … , Buff0(0)[n-1]},Buff N
-1(1)[n-1], Buff N-(1)[ n-1] , … , Buff 1(1)[n-
1]}
N-3(0)[n-1], Buff N-1(0)[n-1] ,Buff 0(1)[n-1], …
, Buff N-4(1)[n-1] , Buff N-2(1)[n-1]}}….
[0], … , Buff N-3(0)[0], Buff N-1(0)[0] ,Buff 0
(1)[0], … , Buff N-4(1)[0] , Buff N-2(1)[0]}}
1], … , Buff N-4(0)[n-1], Buff N-2(0)[n-1] ,Buff
1(1)[n-1], … , Buff N-3(1)[n-1] , Buff N-1(1)[n-
1]}}….
… , Buff N-4(0)[0], Buff N-2(0)[0] ,Buff 1(1)
[0], … , Buff N-3(1)[0] , Buff N-1(1)[0]}}
各ピクセルデータが、別々のBuffに格納されているた
め、1サイクルで1Line分を読み出し可能な点である。
よって、一辺がNピクセル(ライン)の1ブロックの読み
出しは、最短Nサイクルで良い。
画像のピクセルフォーマットが32bppの場合について
説明する。
ルフォーマットが32bppの場合の処理を示すものであ
る。図11はメモリ3から読み出されるデータを示し、
図12はCLUT参照用バッファ15のバッファBuff
0、Buff1での処理を示し、図13は時計回り又は反時計
回りに回転されてメモリ3に書き込まれるデータを示し
ている。画像のピクセルフォーマットが32bppの場合
には、CLUT参照用バッファ15の分割数は2つにな
り、バッファBuff0、Buff1が設けられる。
向に2ピクセルずつ配置されて、一辺が64ビットの正
方ブロックとなる。
ラインLine0 の64ビットのデータ(A,0)(B,0)が入力さ
れる。バッファBuff0のアドレスAddr0には、この64ビ
ットのデータのうちの上位32ビットである(A,0)が書
き込まれ、バッファBuff1のアドレスAddr0には、下位3
2ビットである(B,0)が書き込まれる。
ータの上位32ビット、 下位32ビットが逆になる。
ットのデータ(A,1)(B,1)が入力される。バッファBuff0
のアドレスAddr1には、この64ビットのデータのうち
の下位32ビットである(B,1)が書き込まれ、バッファB
uff1のアドレスAddr1には、上位32ビットである(A,1)
が書き込まれる。
回転させるときには、以下のような処理が行われる。
1のアドレスAddr1のデータが読み出され、バッファBuff
0のアドレスAddr0のデータが読み出され、(A,1)(A,0)の
データが転送される。
が逆になる。次のサイクルでは、バッファBuff0のアド
レスAddr1のデータが読み出され、バッファBuff1のアド
レスAddr0のデータが読み出され、(B,1)(B,0)のデータ
が転送される。
90度時計方向に回転させることができる。
度回転させるときには、以下のような処理が行われる。
ドレスAddr0のデータが読み出され、バッファBuff0のア
ドレスAddr1のデータが読み出され、(B,0)(B,1)のデー
タが転送される。
が逆になる。次のサイクルでは、バッファBuff0のアド
レスAddr0のデータが読み出され、バッファBuff1のアド
レスAddr1のデータが読み出され、(A,0)(A,1)のデータ
が転送される。
90度時計方向に回転させることができる。
ルフォーマットが16bppの場合の処理を示すものであ
る。図14はメモリ3から読み出されるデータを示し、
図15はCLUT参照用バッファ15のバッファBuff
0、Buff1での処理を示し、図16は時計回り又は反時計
回りに回転されてメモリ3に書き込まれるデータを示し
ている。画像のピクセルフォーマットが16bppの場合
には、CLUT参照用バッファ15の分割数は4つにな
り、バッファBuff0からBuff4が設けられる。
ビットのデータ(A,0)(B,0)(C,0)(D,0)が入力される。バ
ッファBuff0のアドレスAddr0には、この64ビットのデ
ータのうちの上位32ビットである(A,0)(B,0)が書き込
まれ、バッファBuff1のアドレスAddr0には、下位32ビ
ットである(C,0)(D,0)が書き込まれる。
ットのデータ(A,1)(B,1)(C,1)(D,1)が入力される。バッ
ファBuff2のアドレスAddr0には、この64ビットのデー
タのうちの上位32ビットである(A,1)(B,1)が書き込ま
れ、バッファBuff3のアドレスAddr0には、下位32ビッ
トである(C,1)(D,1)が書き込まれる。
ータの上位32ビット、 下位32ビットが逆になる。
ットのデータ(A,2)(B,2)(C,2)(D,2)が入力される。バッ
ファBuff0のアドレスAddr1には、この64ビットのデー
タのうちの下位32ビットである(C,4)(D,4)が書き込ま
れ、バッファBuff1のアドレスAddr1には、上位32ビッ
トである(A,2)(B,2)が書き込まれる。
ットのデータ(A,3)(B,3)(C,3)(D,3)が入力される。バッ
ファBuff2のアドレスAddr1には、この64ビットのデー
タのうちの下位32ビットである(C,3)(D,3)が書き込ま
れ、バッファBuff3のアドレスAddr1には、上位32ビッ
トである(A,3)(B,3)が書き込まれる。
回転させるときには、以下のような処理が行われる。
ドレスAddr1のワード0、バッファBuff1のアドレスAddr1
のワード0が読み出され、バッファBuff2のアドレスAddr
0のワード0、バッファBuff0のアドレスAddr0のワード0
が読み出され、(A,3)(A,2)(A,1)(A,0)のデータが転送さ
れる。
レスAddr1のワード1、バッファBuff1のアドレスAddr1の
ワード1が読み出され、バッファBuff2のアドレスAddr0
のワード1、バッファBuff0のアドレスAddr0のワード1が
読み出され、(B,3)(B,2)(B,1)(B,0)のデータが転送され
る。
が逆になる。
レスAddr1のワード0、バッファBuff0のアドレスAddr1の
ワード0が読み出され、バッファBuff3のアドレスAddr0
のワード0、バッファBuff1のアドレスAddr0のワード0が
読み出され、(C,3)(C,2)(C,1)(C,0)のデータが転送され
る。
レスAddr1のワード1、バッファBuff0のアドレスAddr1の
ワード1が読み出され、バッファBuff3のアドレスAddr0
のワード1、バッファBuff1のアドレスAddr0のワード1が
読み出され、(D,4)(D,3)(D,2)(D,1)(D,0)のデータが転
送される。
90度時計方向に回転させることができる。
度回転させるときには、以下のような処理が行われる。
ff2のアドレスAddr1のワード1、バッファバッファBuff0
のアドレスAddr1のワード1が読み出され、バッファバッ
ファBuff3のアドレスAddr0のワード1、バッファバッフ
ァBuff1のアドレスAddr0のワード1が読み出され、(D,0)
(D,1)(D,2)(D,3)のデータが転送される。
2のアドレスAddr1のワード0、バッファバッファBuff0の
アドレスAddr1のワード0が読み出され、バッファバッフ
ァBuff3のアドレスAddr0のワード0、バッファバッファB
uff1のアドレスAddr0のワード0が読み出され、(C,0)(C,
1)(C,2)(C,3)のデータが転送される。
が逆になる。
3のアドレスAddr0のワード1、バッファバッファBuff1の
アドレスAddr0のワード1が読み出され、バッファバッフ
ァBuff2のアドレスAddr1のワード1、バッファバッファB
uff0のアドレスAddr1のワード1が読み出され、(B,0)(B,
1)(B,2)(B,3)のデータが転送される。
3のアドレスAddr0のワード0、バッファバッファBuff1の
アドレスAddr0のワード0が読み出され、バッファバッフ
ァBuff2のアドレスAddr1のワード0、バッファバッファB
uff0のアドレスAddr1のワード0が読み出され、(A,0)(A,
1)(A,2)(A,3)のデータが転送される。
90度反時計方向に回転させることができる。
ルフォーマットが8bppの場合の処理を示すものであ
る。図17はメモリ3から読み出されるデータを示し、
図18はCLUT参照用バッファ15のバッファBuff
0、Buff1での処理を示し、図19は時計回り又は反時計
回りに回転されてメモリ3に書き込まれるデータを示し
ている。画像のピクセルフォーマットが8bppの場合に
は、CLUT参照用バッファ15の分割数は8つにな
り、バッファBuff0からBuff8が設けられる。
ビットのデータ(A,0)(B,0)(C,0)(D,0)(E,0)(F,0)(G,0)
(H,0)が入力される。バッファBuff0のアドレスAddr0に
は、この64ビットのデータのうちの上位32ビットで
ある(A,0)(B,0)(C,0)(D,0)が書き込まれ、バッファBuff
1のアドレスAddr0には、下位32ビットである(E,0)(F,
0)(G,0)(H,0)が書き込まれる。
ットのデータ(A,1)(B,1)(C,1)(D,1)(E,1)(F,1)(G,1)(H,
1)が入力される。バッファBuff2のアドレスAddr0に
は、この64ビットのデータのうちの上位32ビットで
ある(A,1)(B,1)(C,1)(D,1)が書き込まれ、バッファBuff
3のアドレスAddr0には、下位32ビットである(E,1)(F,
1)(G,1)(H,1)が書き込まれる。
ットのデータ(A,2)(B,2)(C,2)(D,2)(E,2)(F,2)(G,2)(H,
2)が入力される。バッファBuff4のアドレスAddr0には、
この64ビットのデータのうちの上位32ビットである
(A,2)(B,2)(C,2)(D,2)が書き込まれ、バッファBuff5の
アドレスAddr0には、下位32ビットである(E,2)(F,2)
(G,2)(H,2)が書き込まれる。
ットのデータ(A,3)(B,3)(C,3)(D,3)(E,3)(F,3)(G,3)(H,
3)が入力される。バッファBuff6のアドレスAddr0には、
この64ビットのデータのうちの上位32ビットである
(A,3)(B,3)(C,3)(D,3)が書き込まれ、バッファBuff7の
アドレスAddr0には、下位32ビットである(E,3)(F,3)
(G,3)(H,3)が書き込まれる。
ータの上位32ビット、 下位32ビットが逆になる。
ットのデータ(A,4)(B,4)(C,4)(D,4)(E,4)(F,4)(G,4)(H,
4)が入力される。バッファBuff0のアドレスAddr1には、
この64ビットのデータのうちの下位32ビットである
(E,4)(F,4)(G,4)(H,4)が書き込まれ、バッファBuff1の
アドレスAddr1には、上位32ビットである(A,4)(B,4)
(C,4)(D,4)が書き込まれる。
ットのデータ(A,5)(B,5)(C,5)(D,5)(E,5)(F,5)(G,5)(H,
5)が入力される。バッファBuff2のアドレスAddr1には、
この64ビットのデータのうちの下位32ビットである
(E,5)(F,5)(G,5)(H,5)が書き込まれ、バッファBuff3の
アドレスAddr1には、上位32ビットである(A,5)(B,5)
(C,5)(D,5)が書き込まれる。
ットのデータ(A,6)(B,6)(C,6)(D,6)(E,6)(F,6)(G,6)(H,
6)が入力される。バッファBuff4のアドレスAddr1には、
この64ビットのデータのうちの下位32ビットである
(E,6)(F,6)(G,6)(H,6)が書き込まれ、バッファBuff5の
アドレスAddr1には、上位32ビットである(A,6)(B,6)
(C,6)(D,6)が書き込まれる。
ットのデータ(A,7)(B,7)(C,7)(D,7)(E,7)(F,7)(G,7)(H,
7)が入力される。バッファBuff6のアドレスAddr1には、
この64ビットのデータのうちの下位32ビットである
(E,7)(F,7)(G,7)(H,7)が書き込まれ、バッファBuff7の
アドレスAddr1には、上位32ビットである(A,7)(B,7)
(C,7)(D,7)が書き込まれる。
度回転させるときには、以下のような処理が行われる。
ドレスAddr1のワード0、バッファBuff5のアドレスAddr1
のワード0、バッファBuff3のアドレスAddr1のワード0、
バッファBuff1のアドレスAddr1のワード0のデータが読
み出され、バッファBuff6のアドレスAddr0のワード0、
バッファBuff4のアドレスAddr0のワード0、バッファBuf
f2のアドレスAddr0のワード0、バッファBuff0のアドレ
スAddr0のワード0のデータが読み出され、(A,7)(A,6)
(A,5)(A,4)(A,3)(A,2)(A,1)(A,0)のデータが転送され
る。
レスAddr1のワード1、バッファBuff5のアドレスAddr1の
ワード1、バッファBuff3のアドレスAddr1のワード1、バ
ッファBuff1のアドレスAddr1のワード1のデータが読み
出され、バッファBuff6のアドレスAddr0のワード1、バ
ッファBuff4のアドレスAddr0のワード1、バッファBuff2
のアドレスAddr0のワード1、バッファBuff0のアドレスA
ddr0のワード1のデータが読み出され、(B,7)(B,6)(B,5)
(B,4)(B,3)(B,2)(B,1)(B,0)のデータが転送される。
レスAddr1のワード2、バッファBuff5のアドレスAddr1の
ワード2、バッファBuff3のアドレスAddr1のワード2、バ
ッファBuff1のアドレスAddr1のワード2のデータが読み
出され、バッファBuff6のアドレスAddr0のワード2、バ
ッファBuff4のアドレスAddr0のワード2、バッファBuff2
のアドレスAddr0のワード2、バッファBuff0のアドレスA
ddr0のワード2のデータが読み出され、(C,7)(C,6)(C,5)
(C,4)(C,3)(C,2)(C,1)(C,0)のデータが転送される。
レスAddr1のワード3、バッファBuff5のアドレスAddr1の
ワード3、バッファBuff3のアドレスAddr1のワード3、バ
ッファBuff1のアドレスAddr1のワード3のデータが読み
出され、バッファBuff6のアドレスAddr0のワード3、バ
ッファBuff4のアドレスAddr0のワード3、バッファBuff2
のアドレスAddr0のワード3、バッファBuff0のアドレスA
ddr0のワード3のデータが読み出され、(D,7)(D,6)(D,5)
(D,4)(D,3)(D,2)(D,1)(D,0)のデータが転送される。
が逆になる。
レスAddr1のワード0、バッファBuff4のアドレスAddr1の
ワード0、バッファBuff2のアドレスAddr1のワード0、バ
ッファBuff0のアドレスAddr1のワード0のデータが読み
出され、バッファBuff7のアドレスAddr0のワード0、バ
ッファBuff5のアドレスAddr0のワード0、バッファBuff3
のアドレスAddr0のワード0、バッファBuff1のアドレスA
ddr0のワード0のデータが読み出され、(E,7)(E,6)(E,5)
(E,4)(E,3)(E,2)(E,1)(E,0)のデータが転送される。
レスAddr1のワード1、バッファBuff4のアドレスAddr1の
ワード1、バッファBuff2のアドレスAddr1のワード1、バ
ッファBuff0のアドレスAddr1のワード1のデータが読み
出され、バッファBuff7のアドレスAddr0のワード1、バ
ッファBuff5のアドレスAddr0のワード1、バッファBuff3
のアドレスAddr0のワード1、バッファBuff1のアドレスA
ddr0のワード1のデータが読み出され、(F,7)(F,6)(F,5)
(F,4)(F,3)(F,2)(F,1)(F,0)のデータが転送される。
レスAddr1のワード2、バッファBuff4のアドレスAddr1の
ワード2、バッファBuff2のアドレスAddr1のワード2、バ
ッファBuff0のアドレスAddr1のワード2のデータが読み
出され、バッファBuff7のアドレスAddr0のワード2、バ
ッファBuff5のアドレスAddr0のワード2、バッファBuff3
のアドレスAddr0のワード2、バッファBuff1のアドレスA
ddr0のワード2のデータが読み出され、(G,7)(G,6)(G,5)
(G,4)(G,3)(G,2)(G,1)(G,0)のデータが転送される。
レスAddr1のワード3、バッファBuff4のアドレスAddr1の
ワード3、バッファBuff2のアドレスAddr1のワード3、バ
ッファBuff0のアドレスAddr1のワード3のデータが読み
出され、バッファBuff7のアドレスAddr0のワード3、バ
ッファBuff5のアドレスAddr0のワード3、バッファBuff3
のアドレスAddr0のワード3、バッファBuff1のアドレスA
ddr0のワード3のデータが読み出され、(H,7)(H,6)(H,5)
(H,4)(H,3)(H,2)(H,1)(H,0)のデータが転送される。
90度時計方向に回転させることができる。
度回転させるときには、以下のような処理が行われる。
ドレスAddr0のワード3、バッファbuff3のアドレスAddr0
のワード3、バッファBuff5のアドレスAddr0のワード3、
バッファBuff7のアドレスAddr0のワード3のデータが読
み出され、バッファBuf0のアドレスAddr1のワード3、バ
ッファBuff2のアドレスAddr1のワード3、バッファBuff4
のアドレスAddr1のワード3、バッファBuff6のアドレスA
ddr1のワード3のデータが読み出され、(H,0)(H,1)(H,2)
(H,3)(H,4)(H,5)(H,6)(H,7)のデータが転送される。
レスAddr0のワード2、バッファBuff3のアドレスAddr0の
ワード2、バッファBuff5のアドレスAddr0のワード2、バ
ッファBuff7のアドレスAddr0のワード2が読み出され、
バッファBuff0のアドレスAddr1のワード2、バッファBuf
f2のアドレスAddr1のワード2、バッファBuff4のアドレ
スAddr1のワード2、バッファBuff6のアドレスAddr1のワ
ード2が読み出され、(G,0)(G,1)(G,2)(G,3)(G,4)(G,5)
(G,6)(G,7)のデータが転送される。
レスAddr0のワード1、バッファBuff3のアドレスAddr0の
ワード1、バッファBuff5のアドレスAddr0のワード1、バ
ッファBuff7のアドレスAddr0のワード1が読み出され、
バッファBuff0のアドレスAddr1のワード1、バッファBuf
f2のアドレスAddr1のワード1、バッファBuff4のアドレ
スAddr1のワード1、バッファBuff6のアドレスAddr1のワ
ード1が読み出され、(F,0)(F,1)(F,2)(F,3)(F,4)(F,5)
(F,6)(F,7)のデータが転送される。
レスAddr0のワード0、バッファBuff3のアドレスAddr0の
ワード0、バッファBuff5のアドレスAddr0のワード0、バ
ッファBuff7のアドレスAddr0のワード0が読み出され、
バッファBuff0のアドレスAddr1のワード0、バッファBuf
f2のアドレスAddr1のワード0、バッファBuff4のアドレ
スAddr1のワード0、バッファBuff6のアドレスAddr1のワ
ード0が読み出され、(E,0)(E,1)(E,2)(E,3)(E,4)(E,5)
(E,6)(E,7)のデータが転送される。
が逆になる。
レスAddr0のワード3、バッファBuff2のアドレスAddr0の
ワード3、バッファBuff4のアドレスAddr0のワード3、バ
ッファBuff6のアドレスAddr0のワード3が読み出され、
バッファBuff1のアドレスAddr1のワード3、バッファBuf
f3のアドレスAddr1のワード3、バッファBuff5のアドレ
スAddr1のワード3、バッファBuff7のアドレスAddr1のワ
ード3が読み出され、(D,0)(D,1)(D,2)(D,3)(D,4)(D,5)
(D,6)(D,7)のデータが転送される。
レスAddr0のワード2、バッファBuff2のアドレスAddr0の
ワード2、バッファBuff4のアドレスAddr0のワード2、バ
ッファBuff6のアドレスAddr0のワード2が読み出され、
バッファBuff1のアドレスAddr1のワード2、バッファBuf
f3のアドレスAddr1のワード2、バッファBuff5のアドレ
スAddr1のワード2、バッファBuff7のアドレスAddr1のワ
ード2が読み出され、(C,0)(C,1)(C,2)(C,3)(C,4)(C,5)
(C,6)(C,7)のデータが転送される。
レスAddr0のワード1、バッファBuff2のアドレスAddr0の
ワード1、バッファBuff4のアドレスAddr0のワード1、バ
ッファBuff6のアドレスAddr0のワード1が読み出され、
バッファBuff1のアドレスAddr1のワード1、バッファBuf
f3のアドレスAddr1のワード1、バッファBuff5のアドレ
スAddr1のワード1、バッファBuff7のアドレスAddr1のワ
ード1が読み出され、(B,0)(B,1)(B,2)(B,3)(B,4)(B,5)
(B,6)(B,7)のデータが転送される。
レスAddr0のワード0、バッファBuff2のアドレスAddr0の
ワード0、バッファBuff4のアドレスAddr0のワード0、バ
ッファBuff6のアドレスAddr0のワードが読み出され、バ
ッファBuff1のアドレスAddr1のワード0、バッファBuff3
のアドレスAddr1のワード0、バッファBuff5のアドレスA
ddr1のワード0、バッファBuff7のアドレスAddr1のワー
ド0が読み出され、(A,0)(A,1)(A,2)(A,3)(A,4)(A,5)(A,
6)(A,7)のデータが転送される。
90度反時計方向に回転させることができる。
4ビットとしているが、メモリのバス幅は、これに限定
されるものではない。また、上述の例では、CLUTバ
ッファを使って正方ブロックでの回転処理を行ってい
る。CLUTバッファを用いることにより、バッファ容
量を節約できるが、CLUTバッファを用いる構成とし
ないようにしても良い。
画像を正方ブロックに分割し、正方ブロック単位で、メ
モリから順に読み出して転送させ、メモリから正方ブロ
ック単位で転送されてきた画像を、バッファへの書き込
みと読み出しを制御することにより、正方ブロック単位
で回転させ、正方ブロック単位で回転された画像をメモ
リに転送し、転送元の矩形領域の画像を読み出した方向
に対して回転する方向となる順番で、転送先の矩形領域
に書き込むことで、画像の回転処理が行える。
T装置で実現される。また、正方ブロックは、その一辺
のデータ長が、メモリからのデータの転送単位のデータ
長に対応するようにしている。また、この正方ブロック
での回転処理が、CLUTバッファを用いて行われる。
これにより、バッファ容量が節約できる。そして、CL
UTバッファを物理的に分けることで、正方ブロックで
の回転処理を効率的に行える。
ある。
る。
内での回転の説明に用いる略線図である。
内での回転の説明に用いる略線図である。
明に用いる略線図である。
明に用いる略線図である。
設定の説明に用いる略線図である。
明に用いる略線図である。
ーチャートである。
転処理の説明に用いる略線図である。
転処理の説明に用いる略線図である。
転処理の説明に用いる略線図である。
転処理の説明に用いる略線図である。
転処理の説明に用いる略線図である。
転処理の説明に用いる略線図である。
処理の説明に用いる略線図である。
処理の説明に用いる略線図である。
処理の説明に用いる略線図である。
サ、3・・・メモリ、11・・・レジスタ制御部、12
・・・メモリリード制御部、13・・・メモリライト制
御部、14・・・コピー制御部、15・・・CLUT参
照用バッファ、16・・・回転制御部、18・・・バッ
ファライト制御部、19・・・バッファリード制御部、
23・・・レジスタバス、24・・・メモリバス
Claims (14)
- 【請求項1】 転送元の矩形領域の画像を正方ブロック
に分割し、上記正方ブロック単位で、メモリから順に読
み出して転送させる手段と、 上記メモリから上記正方ブロック単位で転送されてきた
画像を、バッファへの書き込みと読み出しを制御するこ
とにより、上記正方ブロック単位で回転させる手段と、 上記正方ブロック単位で回転された画像を上記メモリに
転送し、上記転送元の矩形領域の画像を読み出した方向
に対して回転する方向となる順番で、転送先の矩形領域
に書き込む手段とを備えるようにした画像処理装置。 - 【請求項2】 上記正方ブロックは、その一辺のデータ
長が、メモリからのデータの転送単位のデータ長に対応
するようにした請求項1に記載の画像処理装置。 - 【請求項3】 上記バッファは、データ転送単位のビッ
ト数をピクセルフォーマットのビット数で割り算した数
に分割されている請求項1に記載の画像処理装置。 - 【請求項4】 上記バッファに書き込み、読み出しする
ときのアドレス制御を、書き込み時には回転角度によら
ず共通とし、読み出し時には、回転角度に応じて、読み
出したデータが回転後のブロックに配置されるようにア
ドレスとデータを制御するようにした請求項1に記載の
画像処理装置。 - 【請求項5】 上記回転は、90度単位で、時計回り9
0度又は反時計回りに90度である請求項1に記載の画
像処理装置。 - 【請求項6】 上記バッファは、インデックスデータを
ピクセルデータに変換するためのバッファと共用されて
いる請求項1に記載の画像処理装置。 - 【請求項7】 上記転送元の矩形領域及び転送先の矩形
領域は、メモリ上に一次元配列及び/又は二次元配列さ
れている請求項1に記載の画像処理装置。 - 【請求項8】 転送元の矩形領域の画像を正方ブロック
に分割し、上記正方ブロック単位で、メモリから順に読
み出して転送させ、 上記メモリから上記正方ブロック単位で転送されてきた
画像を、バッファへの書き込みと読み出しを制御するこ
とにより、上記正方ブロック単位で回転させ、 上記正方ブロック単位で回転された画像を上記メモリに
転送し、上記転送元の矩形領域の画像を読み出した方向
に対して回転する方向となる順番で、転送先の矩形領域
に書き込むようにした画像回転処理方法。 - 【請求項9】 上記正方ブロックは、その一辺のデータ
長が、メモリからのデータの転送単位のデータ長に対応
するようにした請求項8に記載の画像処理方法。 - 【請求項10】 上記バッファは、データ転送単位のビ
ット数をピクセルフォーマットのビット数で割り算した
数に分割されている請求項8に記載の画像処理方法。 - 【請求項11】 上記バッファに書き込み、読み出しす
るときのアドレス制御を、書き込み時には回転角度によ
らず共通とし、読み出し時には、回転角度に応じて、読
み出したデータが回転後のブロックに配置されるように
アドレスとデータを制御するようにした請求項8に記載
の画像処理方法。 - 【請求項12】 上記回転は、90度単位で、時計回り
90度又は反時計回りに90度である請求項8に記載の
画像処理方法。 - 【請求項13】 上記バッファは、インデックスデータ
をピクセルデータに変換するためのバッファと共用され
ている請求項8に記載の画像処理方法。 - 【請求項14】 上記転送元の矩形領域及び転送先の矩
形領域は、メモリ上に一次元配列及び/又は二次元配列
されている請求項8に記載の画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002145649A JP2003338922A (ja) | 2002-05-21 | 2002-05-21 | 画像処理装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002145649A JP2003338922A (ja) | 2002-05-21 | 2002-05-21 | 画像処理装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003338922A true JP2003338922A (ja) | 2003-11-28 |
Family
ID=29704873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002145649A Pending JP2003338922A (ja) | 2002-05-21 | 2002-05-21 | 画像処理装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003338922A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013114675A (ja) * | 2011-11-29 | 2013-06-10 | Apple Inc | インライン画像回転 |
WO2017203675A1 (ja) * | 2016-05-27 | 2017-11-30 | 三菱電機株式会社 | グラフィックス描画装置、グラフィックス描画方法、表示システム、及びグラフィックス描画プログラム |
-
2002
- 2002-05-21 JP JP2002145649A patent/JP2003338922A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013114675A (ja) * | 2011-11-29 | 2013-06-10 | Apple Inc | インライン画像回転 |
US8797359B2 (en) | 2011-11-29 | 2014-08-05 | Apple Inc. | Inline image rotation |
WO2017203675A1 (ja) * | 2016-05-27 | 2017-11-30 | 三菱電機株式会社 | グラフィックス描画装置、グラフィックス描画方法、表示システム、及びグラフィックス描画プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7200287B2 (en) | Method and apparatus for image processing, and a computer product | |
JP3748489B2 (ja) | 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体 | |
US7170553B2 (en) | Image processing apparatus, image processing method and portable imaging apparatus | |
JPS58139241A (ja) | 画像メモリアクセス方式 | |
JPH1084557A (ja) | ソフトウェアによるmpegデコーダに対してyuvデータフォーマット変換を支援するハードウェア | |
JP2002157111A (ja) | 画像制御装置およびその制御方法ならびにディジタルカメラ | |
JP2002064697A (ja) | 画像処理装置及び画像処理方法 | |
JP2003338922A (ja) | 画像処理装置及び方法 | |
JP3992269B2 (ja) | 画像処理装置及び方法 | |
US7538900B2 (en) | Image processing apparatus, image processing method, and image processing system | |
US6151036A (en) | Large capacity data storage device | |
JP2001061058A (ja) | 画像処理装置 | |
JPH08116545A (ja) | 画像伝送方法および画像伝送システム | |
JPH10341437A (ja) | 画像処理方法及び装置 | |
JP2000322566A (ja) | 画像表示装置及びその制御方法 | |
JPH05113928A (ja) | 画像メモリ装置 | |
JPH0844855A (ja) | 画像ファイリング装置及び画像データ転送方法 | |
JP4228867B2 (ja) | 画像処理装置及びその制御方法 | |
JP3119366B2 (ja) | 画像処理装置及び方法 | |
JPH0563959A (ja) | 画像処理方法および装置 | |
JPS58138163A (ja) | 画信号回転装置 | |
JP3284767B2 (ja) | 画像処理装置 | |
JPH059832B2 (ja) | ||
JPH0668757B2 (ja) | 連続画像処理システム | |
JPH0296878A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050415 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070524 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080129 |