JPH0846796A - ラスタ/ブロック変換用メモリアドレス発生器 - Google Patents

ラスタ/ブロック変換用メモリアドレス発生器

Info

Publication number
JPH0846796A
JPH0846796A JP6178932A JP17893294A JPH0846796A JP H0846796 A JPH0846796 A JP H0846796A JP 6178932 A JP6178932 A JP 6178932A JP 17893294 A JP17893294 A JP 17893294A JP H0846796 A JPH0846796 A JP H0846796A
Authority
JP
Japan
Prior art keywords
address
data
block
line
counter
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
Application number
JP6178932A
Other languages
English (en)
Inventor
Masanari Asano
眞成 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Holdings Corp
Fujifilm Microdevices Co Ltd
Original Assignee
Fujifilm Microdevices Co Ltd
Fuji Photo Film Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujifilm Microdevices Co Ltd, Fuji Photo Film Co Ltd filed Critical Fujifilm Microdevices Co Ltd
Priority to JP6178932A priority Critical patent/JPH0846796A/ja
Publication of JPH0846796A publication Critical patent/JPH0846796A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 画像処理に関し、簡単にラスタ/ブロック変
換を行うことができるメモリアドレス発生器を提供す
る。 【構成】 カウンタによりカウントされるデータの番
号、ブロックセットの番号およびラインの番号に応じ
て、少なくともnライン分の画像を読み書きするための
メモリアドレスを連続して生成するアドレス生成手段
(6)と、順次インクリメントを行うことによりメモリ
アドレスを生成するアドレスインクリメンタ(7)とを
有し、外部のメモリからラスタデータを入力する際には
アドレス生成手段が生成するアドレスを出力し、外部の
メモリへブロックデータを出力する際にはアドレスイン
クリメンタが生成するアドレスを出力して、ラスタデー
タからブロックデータへの変換を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は画像処理に関し、特にラ
スタデータとブロックデータとの間の変換を行う際に用
いるメモリアドレス発生器に関する。
【0002】
【従来の技術】通常のCRT等の表示装置は、ラスタデ
ータを受け取ることにより、画像を表示する。ラスタデ
ータとは、CRT等の画面上をラスタスキャンする順番
に並べられたデータ列である。ラスタスキャンは、表示
装置の画面上において左から右への水平走査を、上から
下まで順番に行う走査である。
【0003】ディジタル画像において、画像データ量を
減らすために、JPEG(joint photogr
aphic expert group)方式等のデー
タ圧縮および伸張が広く用いられている。JPEG方式
等により、画像データを圧縮したり伸張する際には、ラ
スタデータではなく、ブロックデータとして扱われる。
ブロックデータとは、画像を例えば8×8画素のブロッ
ク毎に分割し、分割した1つのブロックを単位として順
番に並べられたデータである。
【0004】表示用の画像データをデータ圧縮する際に
は、ラスタデータからブロックデータへの変換が必要で
あり、圧縮された画像データを表示装置に表示するに
は、ブロックデータからラスタデータへの変換が必要に
なる。ラスタデータとブロックデータは、データの並び
が異なるだけであり、それぞれ対応する画素値は同じで
ある。
【0005】従来のカラー画像のラスタ/ブロック変換
は、例えばラスタデータを一旦輝度データと色データに
分けたレジスタアレイに数十画素ずつ蓄え、その後デー
タの並び換えを行い、複数回に分けてブロックデータを
生成する。
【0006】
【発明が解決しようとする課題】レジスタアレイを用い
て、カラー画像のラスタ/ブロック変換を行うと、輝度
データと色データを分けるためのレジスタアレイを含む
ために回路構成が増大してしまう。また、一旦レジスタ
アレイにデータを蓄えるために、扱うデータの遅延が生
じる。さらに、複数回に分けてレジスタアレイにデータ
を蓄えるために、データの並び換え制御が複雑である。
【0007】本発明の目的は、簡単にラスタ/ブロック
変換を行うことができるメモリアドレス発生器を提供す
ることである。
【0008】
【課題を解決するための手段】本発明のメモリアドレス
発生器は、ラスタデータと1ブロックがnライン×m画
素からなるブロックデータとの間の変換を行うためのメ
モリアドレス発生器であって、1ブロックセット内の1
ライン内のデータの番号を先頭から最後まで順次増加す
るための画素カウンタと、画素カウンタが最後の番号ま
で増加し終わると、ブロックセットの番号を増加し、1
ライン中に含まれるブロックセットの番号を先頭から最
後まで順次増加するためのブロックセットカウンタと、
ブロックセットカウンタが最後の番号まで増加し終わる
と、ラインの番号を増加し、1ブロック内のラインの番
号を先頭から最後まで順次増加するためのラインカウン
タと、データの番号、ブロックセットの番号およびライ
ンの番号に応じて、少なくともnライン分の画像を読み
書きするためのメモリアドレスを連続して生成するアド
レス生成手段とを有する。
【0009】
【作用】画素カウンタとブロックセットカウンタとライ
ンカウンタを用いることにより、アドレス生成手段は、
nライン分のラスタ形式の画像データに対してブロック
形式のメモリアドレスを連続して生成することができる
ので、レジスタアレイを用いずに直接外部のメモリにア
クセスすることが可能である。
【0010】
【実施例】図1は、ラスタデータとブロックデータとの
間の変換を行う変換回路の全体構成を示す。
【0011】ラスタデータ3は、横方向がpax画素、
縦方向がp×n画素の画像データである。ラスタデータ
3の並びは、ラスタスキャンの順番であり、左から右へ
の水平走査を上から下まで順番に行う並びである。
【0012】ブロックデータ4は、m×n画素のブロッ
ク5が複数集まった画像のデータである。ブロックデー
タ4の並びは、左上のブロックから右下のブロックまで
ラスタスキャンの順番で並ぶ。また、各ブロック5内の
データは、ブロック内をラスタスキャンするような並び
になっている。
【0013】ラスタ/ブロック変換により、ラスタデー
タ3とブロックデータ4との間の相互間の変換を行うこ
とができる。まず、画像データが一種類であるとして、
ラスタデータ3からブロックデータ4への変換方法を簡
単に説明する。この場合、ブロックデータ4内の各画素
の位置は、ラスタデータ3内の画素の位置と同じである
が、そのアドレスが異なる。
【0014】ラスタデータ3は、メモリコントローラ1
によりブロック形式のメモリアドレスの指定がされて、
バッファ2Aまたはバッファ2Bに書き込まれる。バッ
ファ2Aまたはバッファ2Bに、pax×n画素のデー
タが書き込まれると、次はメモリコントローラ1により
指定されるバッファ2Aまたはバッファ2Bのメモリア
ドレスからデータが読み出される。
【0015】バッファ2Aまたはバッファ2Bから、p
回読み出しが行われると、pax×(p×n)画素のブ
ロックデータ4が生成される。次は、逆にブロックデー
タ4からラスタデータ3への変換方法を説明する。ブロ
ックデータ4は、メモリコントローラ1によりメモリア
ドレスの指定がされて、バッファ2Aまたはバッファ2
Bに書き込まれる。
【0016】バッファ2Aまたはバッファ2Bに、pa
x×n画素のデータが書き込まれると、次はメモリコン
トローラ1により指定されるバッファ2Aまたは2Bの
メモリアドレスからデータが読み出される。バッファ2
Aまたはバッファ2Bから、p回読み出しが行われる
と、pax×(p×n)画素のラスタデータ3が生成さ
れる。
【0017】図2は、ラスタデータからブロックデータ
への変換を行う動作例を示す。外部から順番にラスタデ
ータ、ラスタデータ、ラスタデータが入力された
ときに、ラスタ/ブロック変換により、ブロックデータ
、ブロックデータ、ブロックデータが順次出力さ
れる。
【0018】図2(A)は、先頭のラスタデータが最初
にメモリコントローラ1に供給されたときの動作を示
す。メモリコントローラ1は、アドレス発生回路6とイ
ンクリメンタ7を有する。
【0019】最初のデータであるラスタデータは、外
部からアドレス発生回路6に供給される。アドレス発生
回路6は、ラスタデータをブロック形式のアドレスを
付与して、バッファ2Aに書き込む。バッファ2Aに
は、pax×n画素のブロックデータが書き込まれ
る。
【0020】図2(B)は、図2(A)においてバッフ
ァ2Aにpax×n画素のデータの書き込みが終了した
後の動作を示す。メモリコントローラ1に対して、ブロ
ックデータの出力とラスタデータの入力は、並列に
処理が行われる。
【0021】図2(A)においてバッファ2Aに書き込
まれたpax×n画素のブロックデータは、ブロック
形式のアドレスを順次増加させるインクリメンタ7によ
り、そのままpax×n画素分のデータがブロックデー
タとして外部に出力される。
【0022】一方、外部から新たに供給されるラスタデ
ータは、アドレス発生回路6によりブロックデータ
に変換されて、pax×n画素分がバッファ2Bに書き
込まれる。
【0023】図2(C)は、図2(B)においてpax
×n画素のデータの入出力が終了した後の動作を示す。
メモリコントローラ1に対して、ブロックデータの出
力とラスタデータの入力は並列に処理が行われる。
【0024】図2(B)においてバッファ2Bに書き込
まれたpax×n画素のブロックデータは、インクリ
メンタ7により読み出され、そのままブロックデータと
して外部に出力される。
【0025】一方、外部から新たに供給されるラスタデ
ータは、アドレス発生回路6によりブロックデータ
に変換されて、pax×n画素分のデータがバッファ2
Aに書き込まれる。
【0026】以降は、図2(B)と図2(C)の動作を
交互に繰り返し、バッファ2Aとバッファ2Bを交互に
利用してp回のラスタ/ブロック変換を行うことによ
り、図1に示した1画面分のブロックデータ4が生成さ
れる。
【0027】図3は、ブロックデータからラスタデータ
への変換を行う動作例を示す。外部から順番にブロック
データ、ブロックデータ、ブロックデータが入力
されたときに、ラスタ/ブロック変換により、ラスタデ
ータ、ラスタデータ、ラスタデータが順次出力さ
れる。
【0028】図3(A)は、先頭のブロックデータが最
初にメモリコントローラ1に供給されたときの動作を示
す。メモリコントローラ1は、図2と同様にアドレス発
生回路6とインクリメンタ7を有する。
【0029】最初のデータであるブロックデータは、
外部からインクリメンタ7に供給される。インクリメン
タ7は、ブロック形式のアドレスを順次増加させて、ブ
ロックデータをそのままバッファ2Bに書き込む。バ
ッファ2Bには、pax×n画素のブロックデータが
書き込まれる。
【0030】図3(B)は、図3(A)においてバッフ
ァ2Bにpax×n画素のデータの書き込みが終了した
後の動作を示す。メモリコントローラ1に対して、ラス
タデータの出力とブロックデータの入力は、並列に
処理が行われる。
【0031】図3(A)においてバッファ2Bに書き込
まれたpax×n画素のブロックデータは、アドレス
発生回路6により、ラスタデータに変換されてpax
×n画素分のデータが外部に出力される。アドレス発生
回路6は、ブロック形式のバッファ2Bからラスタ形式
のライン毎の読み出しを行うためのアドレスの生成を行
う。
【0032】一方、外部から新たに供給されるブロック
データは、インクリメンタ7により、そのままpax
×n画素分のデータがブロックデータとしてバッファ2
Aに書き込まれる。
【0033】図3(C)は、図3(B)においてpax
×n画素のデータの入出力が終了した後の動作を示す。
メモリコントローラ1に対して、ラスタデータの出力
とブロックデータの入力は、並列に処理が行われる。
【0034】図3(B)においてバッファ2Aに書き込
まれたpax×n画素のブロックデータは、アドレス
発生回路6によりラスタ形式のライン毎に読み出され、
ラスタデータに変換されて外部に出力される。
【0035】一方、外部から新たに供給されるブロック
データは、インクリメンタ7により、そのままpax
×n画素のデータがブロックデータとしてバッファ2B
に書き込まれる。
【0036】以降は、図3(B)と図3(C)の動作を
交互に繰り返し、バッファ2Aとバッファ2Bを交互に
利用して、p回のラスタ/ブロック変換を行うことによ
り、図1に示した1画面分のラスタデータ3が生成され
る。
【0037】以上のアドレス発生回路6およびインクリ
メンタ7を用いれば、pax×n画素のデータをレジス
タアレイを用いずに直接バッファ2Aまたはバッファ2
Bに蓄積することができる。バッファにpax×n画素
のデータさえ生成できれば、後はバッファ2Aとバッフ
ァ2Bを交互にp回用いることにより、連続的にラスタ
/ブロック変換を行うことができる。
【0038】次は、アドレス発生回路6の構成を説明す
るために必要な用語または定数の説明を行う。図4は、
YCbCr画像において3種類のデータフォーマットを
示す。
【0039】例えば、カラー(YCbCr)画像は、輝
度(Y)画像と2つの色(Cb,Cr)画像からなる。
しかし、色画像データ(Cb,Cr)は、輝度画像デー
タ(Y)に比べ重要度が低いために、データ量の削減の
ため、しばしば間引きして用いられる。データ圧縮等に
おいては、同一種類の画像データをブロック単位にす
る。ここでは、輝度データと色データが分離されてブロ
ック形式に再配列される。
【0040】Y,Cb,Crの3つのデータ比は、1:
1:1とは限られない。Y,Cb,Crの比率により、
以下の3種類のデータフォーマットが一般に用いられ
る。ブロックセットフォーマットには、(Y,Cb,C
r)のそれぞれの成分の比率に対応して、4:2:2,
4:1:1,4:4:4がある。ここで、ブロックセッ
トとは、m×n画素のブロック中に含まれるY,Cb,
Crの各成分ブロックの集合をいう。
【0041】4:2:2のブロックセットは、YYCb
Crで構成され、第1コンポーネント(Y)は2、第2
コンポーネント(Cb)は1、第3コンポーネント(C
r)は1である。
【0042】4:1:1のブロックセットは、YYYY
CbCrで構成され、第1コンポーネント(Y)は4、
第2コンポーネント(Cb)は1、第3コンポーネント
(Cr)は1である。
【0043】4:4:4のブロックセットは、YCbC
rで構成され、第1コンポーネント(Y)は1、第2コ
ンポーネント(Cb)は1、第3コンポーネント(C
r)は1である。
【0044】まず、4:2:2における種々の定数の説
明を行う。図5は、4:2:2における定数blend
を説明するための概略図である。blendは、1ブロ
ックセット内における1ライン分のデータ数である。
4:2:2における1ブロックセットは、Y,Y,C
b,Crの4つのブロックデータからなる。各ブロック
データは、m×n画素のデータからなる。blend
は、この内の1ライン分のデータ数であるので、{1ラ
イン分のデータ数(m)}×{ブロックデータ(Y,
Y,Cb,Cr)の数}となる。したがって、4:2:
2の場合は、 blend=m×4 ・・・(1) となる。
【0045】図6は、4:2:2における定数blen
gthを説明するための概略図である。blength
は、1ブロックセットのデータ数である。1ブロックセ
ットは、Y,Y,Cb,Crの4つのブロックデータか
らなり、各ブロックデータはm×n画素のデータからな
る。したがって、4:2:2の場合は、 blength=m×n×4 ・・・(2) となる。
【0046】図7は、4:2:2における定数bend
を説明するための概略図である。ここで、paxを1ラ
イン中の画素数とすると、第1コンポーネント(Y,
Y)の1ライン中のデータ数はpaxとなり、第2コン
ポーネント(Cb)および第3コンポーネント(Cr)
の1ライン中のデータ数は共にpax/2となる。
【0047】bendは、1ライン中のブロックセット
数である。第1コンポーネント(Y,Y)を例にしてb
endを説明する。1ライン中には、paxのデータが
存在する。1ラインのpaxのデータ中に含まれる1ブ
ロック(Y)は、m個のデータからなる。さらに、pa
x中の1ブロックセットには2つのYブロック(Y,
Y)が存在する。したがって、4:2:2の場合は、 bend=pax/m/2 ・・・(3) となる。
【0048】図4の表において、4:2:2におけるb
lendとblengthとbendについて以上説明
した。残りの定数lendは、1ブロック内のライン数
である。1ブロックは、m×n画素からなるので、 lend=n ・・・(4) となる。
【0049】4:1:1の場合について、各定数を同様
にして求めると、以下のようになる。 blend =m×6 blength=m×n×6 bend =pax/m/4 lend =n 4:4:4の場合の各定数は、以下のようになる。
【0050】blend =m×3 blength=m×n×3 bend =pax/m lend =n 図8は、図2および図3に示したアドレス発生回路6の
構成を示す。以後は、4:2:2の画像を例に説明す
る。その際、画像の1ブロックは、8×8(m×n)で
あり、1ラインの画素数paxは1024とする。
【0051】上記の条件における各定数は、以下のよう
になる。式(1)より、1ブロックセット内における1
ライン分のデータ数blendは、 blend =m×4 =8×4 =32 となる。
【0052】式(2)より、1ブロックセットのデータ
数blengthは、 blength=m×n×4 =8×8×4 =256 となる。
【0053】式(3)より、1ライン中のブロックセッ
ト数bendは、 bend =pax/m/2 =1024/8/2 =64 となる。
【0054】式(4)より、1ブロック内のライン数l
endは、 lend =n =8 となる。
【0055】アドレス発生回路6は、画素カウンタ1
1、ブロックセットカウンタ13およびラインカウンタ
15の3つのカウンタを有する。画素カウンタ11は、
ブロックセット内の1ライン内において、先頭から順番
に位置を指定し、1ライン内の最後まで指定し終わる
と、ブロックセットカウンタ13は、同一の1ラインに
おける次(隣)のブロックセットを指定する。1ライン
内の先頭から最後までのブロックセットが指定される
と、ラインカウンタ15は、次のラインを指定する。全
てのラインが指定されると、pax×n画素分のアドレ
ス生成が終了する。
【0056】アドレスは、以上の画素カウンタ11、ブ
ロックセットカウンタ13、ラインカウンタ15により
カウントされた値を基にアドレス合成部18でアドレス
合成することにより生成される。以下、回路の詳細な説
明を行う。
【0057】画素カウンタ11は、ブロックセット内の
1ライン内の位置をカウントする5ビットのカウンタで
あり、カウント値pixelctを出力する。pixe
lctは、比較器12において、定数blend(=3
2=25 )と比較される。
【0058】カウント値pixelctが定数blen
dまで達すると、ブロックセット内の1ラインが終了す
るので、画素カウンタ11はリセットされる。つまり、
pixelctは、0から、1ブロックセット内におけ
る1ライン分のデータ数(blend=32)までのカ
ウントを繰り返す。
【0059】ブロックセットカウンタ13は、6ビット
のカウンタであり、カウント値blockctを出力す
る。blockctは、比較器14において定数ben
d(=64=26 )と比較される。
【0060】カウント値blockctが定数bend
まで達すると、ブロックセットカウンタ13はリセット
される。なお、ブロックセットカウンタ13は、画素カ
ウンタ11におけるカウント値pixelctが定数b
lend(=32)に達した時にカウントアップされ
る。
【0061】カウント値blockctは、0から、1
ライン中のブロックセット数(bend=64)までの
カウントを繰り返す。ラインカウンタ15は、3ビット
のカウンタであり、カウント値linectを出力す
る。linectは、比較器16において定数lend
(=8=23 )と比較される。
【0062】カウント値linectが定数lendま
で達すると、ラインカウンタ15はリセットされる。な
お、ラインカウンタ15は、ブロックセットカウンタ1
3におけるカウント値blockctが定数bend
(=64)に達した時にカウントアップされる。
【0063】カウント値blockctは、0から、1
ブロック内のライン数(lend=8)までのカウント
を繰り返す。ブロック先頭アドレス合成部17は、ブロ
ックセットカウンタ13におけるカウント値block
ctを受けて、ブロック先頭アドレスbheadを出力
する。bheadは0から始まり、blockctがカ
ウントアップする毎に定数blength(=256)
分増加して行く。ブロック先頭アドレスbheadは、
各ブロックセットの先頭アドレスを示す変数レジスタで
ある。
【0064】なお、この場合は、定数blengthが
256(=28 )であるので、8ビットシフタによりブ
ロック先頭アドレス合成部17を構成し、bheadを
生成してもよい。8ビットシフタであれば、回路構成が
簡単である。
【0065】アドレス合成部18は、画素カウンタ11
のカウント値pixelctとラインカウンタ15のカ
ウント値linectとブロック先頭アドレスbhea
dを受けて、アドレスの合成を行う。合成されたアドレ
スは、14ビットのアドレスデータを構成し、バッファ
(2A,2B)をアクセスするためのアドレスとして用
いられる。
【0066】図9は、図8のアドレス発生回路がアドレ
ス生成を行う処理手順を示すフローチャートである。ま
ず、ステップS1において、初期化のため、画素カウン
タ(11)のカウント値pixelct、ラインカウン
タ(15)のカウント値linect、ブロックセット
カウンタ(13)のカウント値blockctおよびブ
ロック先頭アドレス合成部(17)のブロック先頭アド
レスbheadをそれぞれ0にリセットする。
【0067】ステップS2では、比較器(12)により
画素カウント値pixelctが定数blend(=3
2)であるか否かが調べられる。初期時のカウント値p
ixelctは、0にリセットされているので、最初は
ステップS3へ進む。
【0068】ステップS3では、アドレス合成部(1
8)が、カウント値pixelct,linect,b
headを用いて、アドレスの合成を行い、バッファ
(2A,2B)のアドレスを出力する。アドレス合成の
詳細は、後に説明する。
【0069】ステップS4では、画素カウンタ(11)
がカウント値pixelctをインクリメントする。そ
の後、ステップS2へ戻る。ステップS2において、カ
ウント値pixelctが定数blend(=32)に
達するまで、以上のアドレス合成(ステップS3)の処
理とカウント値pixelctのインクリメント(ステ
ップS4)の処理を繰り返す。
【0070】カウント値pixelctが定数blen
d(=32)に達すると、1ブロックセット内の1ライ
ン分のデータのアドレス合成(ステップS3)が終了し
たことを示すので、ステップS5へ進む。
【0071】ステップS5では、ブロックセットカウン
タ(13)がカウント値blockctをインクリメン
トし、ブロック先頭アドレス合成部(17)が変数レジ
スタbheadに定数blength(=256)を加
算する。
【0072】定数blengthは、1ブロックセット
のデータ数であるので、bheadに定数blengt
hを加算することにより、次のブロックセットの先頭ア
ドレスを指定することができる。
【0073】ステップS6では、比較器(14)により
ブロックセットカウント値blockctが定数ben
d(=64)であるか否かが調べられる。初回は、カウ
ント値blockctが1であるので、ステップS7へ
進む。
【0074】ステップS7では、画素カウンタ(11)
がカウント値pixelctを0にリセットする。その
後、ステップS3へ戻り、ステップS2〜ステップS4
のループ処理を繰り返すことにより、ブロックセットカ
ウント値blockct=1について、画素カウント値
pixelctが0から定数blend(=32)まで
のアドレス合成を行う。
【0075】ステップS6において、ブロックセットカ
ウント値blockctが定数bend(=64)に達
すると、1ライン中の全てのデータのアドレスが合成さ
れることを示すので、ステップS8へ進む。定数ben
dは、1ライン中のブロックセット数であるので、1ラ
イン中の全てのブロックセットについてのアドレスが合
成されたことになる。
【0076】ステップS8では、ラインカウンタ(1
5)がカウント値linectをインクリメントする。
ステップS9では、比較器(14)により、ラインカウ
ント値lienctが定数lend(=8)であるか否
かが調べられる。初回は、カウント値linectが1
であるので、ステップS10へ進む。
【0077】ステップS10では、ブロックセットカウ
ンタ(15)が、カウント値blockctを0にリセ
ットする。その後、ステップS7へ戻り、ステップS2
〜ステップS7のループ処理を繰り返し、ラインカウン
ト値linect=1におけるアドレス合成を行う。
【0078】ステップS9において、ラインカウント値
linectが定数lend(=8)に達すると、全て
のラインのデータのアドレスが合成されたことを示すの
で、処理は終了する。定数lendは、1ブロック内の
ライン数であるので、全てのラインのデータのアドレス
が合成され、図1に示すバッファ2Aまたはバッファ2
Bの容量pax×n画素分のアドレスが生成される。
【0079】図10は、m×n画素のブロックに分割さ
れるカラー(YCbCr)画像を示す。このYCbCr
画像は、4:2:2であり、Y画像、Cb画像、Cr画
像に分けることができる。
【0080】Y画像は、m×n画素からなるY0,Y
1,Y2,Y3等のブロックからなり、Cb画像はm×
n画素からなるCb0,Cb2等のブロックからなり、
Cr画像はm×n画素からなるCr0,Cr2等のブロ
ックからなる。1ブロックセットは、(Y0,Y1,C
b0,Cr0)または(Y2,Y3,Cb2,Cr2)
の組み等で表される。
【0081】図11は、図10に示すブロックY0のブ
ロックデータの並びを示す概略図である。以下、16進
表示は数字の後に(h)を付けて表す。ブロックY0
は、例えばm×n(8×8)画素で2次元に構成され
る。その場合、ブロックY0は8ラインL0〜L7で構
成され、1つのラインLは8画素からなる。
【0082】ライン0(L0)は8つの輝度データy0
〜y7、ライン1(L1)は輝度データy8〜yf
(h)、ライン2(L2)は輝度データy10(h)〜
y17(h)、ライン3(L3)は輝度データy18
(h)〜y1f(h)、ライン4(L4)は輝度データ
y20(h)〜y27(h)、ライン5(L5)は輝度
データy28(h)〜y2f(h)、ライン6(L6)
は輝度データy30(h)〜y37(h)、ライン7
(L7)は輝度データy38(h)〜y3f(h)から
なる。
【0083】ブロックデータは、y0〜y7、y8〜y
f(h)、y10(h)〜y17(h)、y18(h)
〜y1f(h)、y20(h)〜y27(h)、y28
(h)〜y2f(h)、y30(h)〜y37(h)、
y38(h)〜y3f(h)の順番で構成される。
【0084】図12は、図2または図3に示したバッフ
ァ2A,2Bに記憶される4:2:2のブロックデータ
の例を示すメモリマップである。アドレス発生回路
(6)またはインクリメンタ(7)は、バッファ(2
A,2B)に対して、ブロックデータの書き込みまたは
読み出しを行う。
【0085】図12(A)は、バッファメモリ(2A,
2B)に記憶されるブロックデータのメモリマップであ
る。バッファメモリには、Y0,Y1,Cb0,Cr
0,Y2,Y3,Cb2,Cr2,・・・の順番で各ブ
ロックのデータが記憶される。各ブロックの先頭アドレ
スは、それぞれ0,40(h),80(h),c0
(h),100(h),140(h),180(h),
1c0(h),・・・である。各ブロックは、m×n
(8×8=40(h))のデータからなる。
【0086】ブロックセットは、(Y0,Y1,Cb
0,Cr0)または(Y2,Y3,Cb2,Cr2)の
組み等により構成される。また、各ブロックセットの先
頭アドレスは、定数blengthが1ブロックセット
のデータ数であることから、0,100(h)等のよう
に定数blength(256=100(h))の倍数
になる。
【0087】Y成分ブロック(Y0,Y1,Y2,Y
3,・・・)とC成分ブロック(Cb0,Cr0,・・
・)に分けずに、図のように各成分のブロックを混ぜた
形式(例えば、(Y0,Y1,Cb0,Cr0)、(Y
2,Y3,Cb2,Cr2)、・・・)をブロックイン
ターリーブという。
【0088】各成分ブロックに分かれているのであれ
ば、アドレス生成にさほど困らないが、本実施例のアド
レス発生回路によればブロックインターリーブの形式の
アドレスの生成をも可能にする。
【0089】図12(B)は、図12(A)のブロック
Y0のブロックデータの詳細なメモリマップを示す。ブ
ロックY0は、n(=8)ライン分のデータ(L0〜L
7)を有する。ブロックデータは、ライン0(L0)か
らライン7(L7)まで順に並ぶ。各ラインは、図11
に対応してm(=8)のデータからなり、それぞれのラ
インの先頭アドレスは、0,8,10(h),18
(h),20(h),28(h),30(h),38
(h)となる。
【0090】図13は、4:2:2のアドレス発生回路
によるアドレス発生の例を示す。図8に示したようにア
ドレス合成部18は、カウント値pixelct等を受
けて、バッファのアドレスを生成する。
【0091】画素カウンタ(11)のカウント値pix
elctは、4ビットのデータである。0ビット目のデ
ータをpixelct0、1ビット目のデータをpix
elct1、2ビット目のデータをpixelct2、
3ビット目のデータをpixelct3、4ビット目の
データをpixelct4とする。
【0092】図の表に示す画素カウント値pixelc
tが0〜1f(h)のときは、最初の1ブロックセット
内のライン0(L0)のアドレス発生を示す。それ以降
のデータについても同様にして、アドレスが生成され
る。
【0093】カウント値pixelctが示す値の順
は、ラスタデータの並び順に相当し、生成されるアドレ
スはバッファに記憶されるブロックデータの並びであ
る。カウント値pixelct=0〜3による最初のラ
スタデータYYCbCrのデータは、それぞれ0,1,
80(h),c0(h)のアドレスにおいてアクセスさ
れる。アドレス=0,1は、図12(A)に示すブロッ
クY0の最初の2つのデータのアドレスであり、アドレ
ス=80(h)はブロックCb0の最初のデータのアド
レスであり、アドレス=c0(h)はブロックCr0の
最初のデータのアドレスである。
【0094】表に示されるCb成分またはCr成分のp
ixelct1は常に1であり、Y成分のpixelc
t1は0である。Y成分のブロックとC成分のブロック
の各々のアドレスを同定するには、pixelct0,
pixelct2,pixelct3,pixelct
4を用いればよい。ただし、C成分のブロックについて
は、Y成分と異なるアドレスを生成するためpixel
ct2も用いる。
【0095】以上の表に示すアドレスを発生させるアド
レス発生回路の構成を次に示す。図14は、図8に示し
たアドレス発生回路の4:2:2の場合のアドレス合成
部18の構成を示す。アドレス合成部18は、カウント
値pixelct,linect,bheadを受け
て、バッファ(2A,2B)のアドレスを出力する。p
ixelctは、画素カウンタ(11)のカウント値で
あり、linectはラインカウンタ(15)のカウン
ト値であり、bheadはブロック先頭アドレス合成部
(17)により合成されるブロック先頭アドレスであ
る。
【0096】Yアドレス発生回路21およびCアドレス
発生回路22は、入力値pixelct,linec
t,bheadを受けて、バッファのアドレスを生成す
る。Yアドレス発生回路21は、Y成分のデータのアド
レスを生成し、Cアドレス発生回路22はCb成分およ
びCr成分のデータのアドレスを生成する。
【0097】入力値pixelctは、5ビットのカウ
ント値であり、その中の第1ビット(下位から2ビット
目)のビットデータがpixelct1である。図13
の表に示すように、ビットデータpixelct1が0
のときにはY成分のデータが処理され、pixelct
1が1のときにはCb成分またはCr成分のデータが処
理される。
【0098】図14において、pixelct1は、ス
イッチ23に入力される。スイッチ23は、Yアドレス
発生回路21により生成されるアドレスとCアドレス発
生回路22により生成されるアドレスのいずれかを選択
する。スイッチ23により選択されたアドレスが、アド
レス合成部18の出力アドレスとなる。
【0099】スイッチ23は、pixelct1が0で
あれば、Y成分のデータについての処理であるので、Y
アドレス発生回路21を選択し、pixelct1が1
であればCb成分またはCr成分の処理であるので、C
アドレス発生回路22を選択して、バッファのアドレス
を特定する。
【0100】図15は、4:2:2の場合の図14に示
したYアドレス発生回路21およびCアドレス発生回路
22の構成を示す。ビットデータpixelct1が0
のときには、Yアドレス発生回路によりアドレスが生成
され、pixelct1が1のときには、Cアドレス発
生回路によりアドレスが生成される。
【0101】図15(A)は、Yアドレス発生回路21
の構成を示す。Yアドレス発生回路21は、入力値pi
xelct,linect,bheadを受けて、バッ
ファのアドレスを生成する。
【0102】pixelctは、5ビットのデータであ
り、下位から順番にpixelct0,pixelct
1,pixelct2,pixelct3,pixel
ct4の5つのビットデータに分けることができる。Y
アドレス発生回路21は、この5つのビットデータの内
の4つ(pixelct0,pixelct2,pix
elct3,pixelct4)を入力値として用い
る。
【0103】したがって、Yアドレス発生回路21への
入力信号は、4つのビットデータpixelct0,p
ixelct2,pixelct3,pixelct4
と、複数ビットのデータlinect,bheadであ
る。
【0104】各データは、それぞれ所定の係数倍が行わ
れた後に加算器35により加算される。まず、pixe
lct0は、直接加算器35に入力される。pixel
ct2は、1ビットシフタ31により左1ビットシフト
されることにより、2(=2 1 )倍されて加算器35に
入力される。pixelct3は、2ビットシフタ32
により左2ビットシフトされることにより、4(=
2 )倍されて加算器35に入力される。pixelc
t4は、6ビットシフタ33により左6ビットシフトさ
れることにより、64(=26 )倍されて加算器35に
入力される。
【0105】linectは、3ビットシフタ34によ
り左3ビットシフトされることにより、8(=23 )倍
されて加算器35に入力される。bheadは、直接加
算器35に入力される。
【0106】加算器35は、以上により入力された値を
全て加算する。加算された値は、Y成分のデータのアド
レスとして出力される。以上のYアドレス発生回路21
により生成されるアドレスaddressは、以下の式
で表すことができる。
【0107】address=bhead+pixel
ct4×64+linect×8+pixelct3×
4+pixelct2×2+pixelct0 図15(B)は、Cアドレス発生回路22の構成を示
す。Cアドレス発生回路22は、入力値pixelct
0〜pixelct4,linect,bheadを受
けて、バッファのアドレスを生成する。
【0108】pixelct0は、直接加算器37に入
力される。pixelct1は、1ビットシフタ36に
より左1ビットシフトされることにより、2(=21
倍されて加算器37に入力される。加算器37により加
算された値は、6ビットシフタ38により左6ビットシ
フトされることにより、64(=26 )倍されて加算器
42に入力される。
【0109】pixelct2は、直接加算器42に入
力される。pixelct3は、1ビットシフタ39に
より左1ビットシフトされることにより、2(=21
倍されて加算器42に入力される。pixelct4
は、2ビットシフタ40により左2ビットシフトされる
ことにより、4(=22 )倍されて加算器42に入力さ
れる。
【0110】linectは、3ビットシフタ41によ
り左3ビットシフトされることにより、8(=23 )倍
されて加算器42に入力される。bheadは、直接加
算器42に入力される。
【0111】加算器42は、以上により入力された値を
全て加算する。加算された値は、Cb成分またはCr成
分のデータのアドレスとして出力される。以上のCアド
レス発生回路22により生成されるアドレスaddre
ssは、以下の式で表すことができる。
【0112】address=bhead+(pixe
lct1×2+pixelct0)×64+linec
t×8+pixelct4×4+pixelct3×2
+pixelct2 生成されたアドレスaddressは、バッファにブロ
ックデータを書き込んだり、バッファからブロックデー
タを読み出したりする際のアドレスとして用いられる。
【0113】以上のように、Yアドレス発生回路21お
よびCアドレス発生回路22は、ビットシフタおよび加
算器により構成することが可能であるので、回路構成が
簡単になる。
【0114】以上の4:2:2の場合は、YYCbCr
の順のラスタデータを扱う場合についてであるが、同じ
4:2:2であっても異なる順序のラスタデータ方式も
ある。次は、YCbYCrのデータ順の4:2:2の場
合について説明する。
【0115】図16は、YCbYCrの順の4:2:2
の場合において、バッファメモリに記憶されるブロック
データの例である。アドレス発生回路(6)またはイン
クリメンタ(7)は、バッファメモリ(2A,2B)に
対して、ブロックデータの書き込みまたは読み出しを行
う。
【0116】バッファメモリには、前述のYYCbCr
の例と同様にY0,Y1,Cb0,Cr0,Y2,Y
3,Cb2,Cr2,・・・の順番で各ブロックのデー
タが記憶される。各ブロックの先頭アドレスは、それぞ
れ0,40(h),80(h),c0(h),100
(h),140(h),180(h),1c0(h),
・・・である。
【0117】ブロックセットは、(Y0,Y1,Cb
0,Cr0)または(Y2,Y3,Cb2,Cr2)の
組み等により構成される。各ブロックセットの先頭アド
レスは、0,100(h)等のように定数blengt
h(256=100(h))の倍数である。
【0118】ブロックY0内のメモリマップは、図12
(B)に示したものと同じである。図17は、YCbY
Crの順の4:2:2の場合におけるアドレス発生の例
を示す。アドレス発生回路は、前述の実施例と同様に画
素カウント値pixelct等を受けて、バッファのア
ドレスを生成する。
【0119】画素カウント値pixelctは、5つの
ビットデータpixelct0,pixelct1,p
ixelct2,pixelct3,pixelct4
からなる。
【0120】図の表に示す、画素カウント値pixel
ct=0〜1f(h)は、最初の1ブロックセット内の
ライン0(L0)のアドレス発生例である。カウント値
pixelctが示す値の順は、ラスタデータの並び順
に相当し、生成されるアドレスはバッファに記憶される
ブロックデータのアドレスである。
【0121】例えば、カウント値pixelct=0〜
3による最初のデータYCbYCrのアドレスは、それ
ぞれ0,80(h),1,c0(h)となる。アドレス
=0は、図16に示すブロックY0の最初のデータのア
ドレスであり、アドレス=80(h)はブロックCb0
の最初のデータのアドレスであり、アドレス=1はブロ
ックY0の2番目のデータのアドレスであり、アドレス
=c0(h)はブロックCr0の最初のデータのアドレ
スである。これにより、ラスタデータはYCbYCrの
順になる。
【0122】図13に示したYYCbCrの場合は、p
ixelct1が1のときにCbまたはCr成分であ
り、0のときにY成分であった。今回のYCbYCrの
場合は、pixelct1が1のときにCbまたはCr
成分であり、0のときにY成分である。Y成分のブロッ
クとC成分のブロックの各々のアドレスを同定するに
は、pixelct1,pixelct2,pixel
ct3,pixelct4を用いればよい。ただし、C
成分のブロックについては、Y成分と異なるアドレスを
生成するためpixelct0も用いる。
【0123】以上の表に示すアドレスを発生させるため
のアドレス発生回路の構成を次に示す。図18は、YC
bYCrの4:2:2の場合におけるYアドレス発生回
路21およびCアドレス発生回路22の構成を示す。
【0124】図14のアドレス合成部18では、ビット
データpixelct1がスイッチ23を制御して、Y
アドレス発生回路21またはCアドレス発生回路22の
いずれかを選択していたが、今回の場合はビットデータ
pixelct0がスイッチを制御する。ビットデータ
pixelct0が0のときには、Yアドレス発生回路
21によりアドレスが生成され、pixelct0が1
のときには、Cアドレス発生回路22によりアドレスが
生成される。
【0125】図18(A)は、Yアドレス発生回路21
の構成を示す。Yアドレス発生回路21は、入力値pi
xelct,linect,bheadを受けて、バッ
ファのアドレスを生成する。
【0126】pixelctは、5ビットのデータであ
り、5つのビットデータの内の4つ(pixelct
1,pixelct2,pixelct3,pixel
ct4)がYアドレス発生回路21に入力される。
【0127】Yアドレス発生回路21への入力信号は、
4つのビットデータpixelct1,pixelct
2,pixelct3,pixelct4、および複数
ビットのデータlinect,bheadである。
【0128】pixelct1は、直接加算器49に入
力される。pixelct2は、1ビットシフタ45に
より左1ビットシフトされることにより、2(=21
倍されて加算器49に入力される。pixelct3
は、2ビットシフタ46により左2ビットシフトされる
ことにより、4(=22 )倍されて加算器49に入力さ
れる。pixelct4は、6ビットシフタ47により
左6ビットシフトされることにより、64(=26 )倍
されて加算器49に入力される。
【0129】linectは、3ビットシフタ48によ
り左3ビットシフトされることにより、8(=23 )倍
されて加算器49に入力される。bheadは、直接加
算器49に入力される。
【0130】加算器49は、以上により入力された値を
全て加算する。加算された値は、Y成分のデータのバッ
ファアドレスとして出力される。以上のYアドレス発生
回路21により生成されるアドレスaddressは、
以下の式で表すことができる。
【0131】address=bhead+pixel
ct4×64+linect×8+pixelct3×
4+pixelct2×2+pixelct1 図18(B)は、Cアドレス発生回路22の構成を示
す。Cアドレス発生回路22は、入力値pixelct
0〜pixelct4,linect,bheadを受
けて、バッファのアドレスを生成する。
【0132】pixelct0は、1ビットシフタ50
により左1ビットシフトされることにより、2(=
1 )倍されて加算器51に入力される。pixelc
t1は、直接加算器51に入力される。加算器51によ
り加算された値は、6ビットシフタ52により左6ビッ
トシフトされることにより、64(=26 )倍されて加
算器56に入力される。
【0133】pixelct2は、直接加算器56に入
力される。pixelct3は、乗算器53により3倍
されて加算器56に入力される。pixelct4は、
2ビットシフタ54により左2ビットシフトされること
により、4(=22 )倍されて加算器56に入力され
る。
【0134】linectは、3ビットシフタ55によ
り左3ビットシフトされることにより、8(=23 )倍
されて加算器56に入力される。bheadは、直接加
算器56に入力される。
【0135】加算器56は、以上により入力された値を
全て加算する。加算された値は、Cb成分またはCr成
分のデータのバッファアドレスとして出力される。以上
のCアドレス発生回路22により生成されるアドレスa
ddressは、以下の式で表すことができる。
【0136】address=bhead+(pixe
lct0×2+pixelct1)×64+linec
t×8+pixelct4×4+pixelct3×3
+pixelct2 生成されたアドレスaddressは、バッファにブロ
ックデータを書き込んだり、バッファからブロックデー
タを読み出したりする際のアドレスとして用いられる。
【0137】次は、4:1:1の場合のアドレス発生に
ついて説明する。図19は、4:1:1の場合におい
て、バッファメモリに記憶されるブロックデータの例で
ある。アドレス発生回路(6)またはインクリメンタ
(7)は、バッファメモリ(2A,2B)に対して、ブ
ロックデータの書き込みまたは読み出しを行う。
【0138】バッファメモリには、Y0,Y1,Y2,
Y3,Cb0,Cr0,Y4,Y5,・・・の順番で各
ブロックのデータが記憶される。各ブロックの先頭アド
レスは、それぞれ0,40(h),80(h),c0
(h),100(h),140(h),180(h),
1c0(h),・・・である。ブロックセットは、例え
ば(Y0,Y1,Y2,Y3,Cb0,Cr0)の組み
である。
【0139】図20は、4:1:1の場合のアドレス発
生例を示す。アドレス発生回路は、画素カウント値pi
xelct等を受けて、バッファのアドレスを生成す
る。画素カウント値pixelctは、6ビットのデー
タであり、下位から順番にpixelct0,pixe
lct1,pixelct2,pixelct3,pi
xelct4,pixelct5の6つのビットデータ
からなる。
【0140】図の表に示す画素カウント値pixelc
t=0〜3f(h)は、最初の1ブロックセット内のラ
イン0(L0)のアドレス発生例である。図9のフロー
チャートのステップS2に示したように、カウント値p
ixelctは0から定数blendまでカウントされ
る。図4の表における4:1:1の場合は、 blend=m×6 =8×6 =30(h) であると示した。
【0141】しかし、実際には、定数blend’(=
40(h))との比較を行うことにより、pixelc
t=0〜3f(h)のカウントを行う。その理由を次に
説明する。
【0142】4:2:2の場合は、1ブロックセットが
YYCbCrの4つで構成されるので、Y成分(Y,
Y)とC成分(Cb,Cr)が共に2つずつである。し
かし、4:1:1の場合は、1ブロックセットがYYY
YCbCrの6つで構成されるため、Y成分(Y,Y,
Y,Y)とC成分(Cb,Cr)の数が異なる。したが
って、図20の表に示すように、ラスタデータはYYC
bCrYY××としている。×は、何の値でもよいダミ
ーデータに相当し、画像のデータとしては扱われない箇
所である。このようなダミーデータを扱うために、定数
blend’は blend’=blend+blend/3 =30(h)+30(h)/3 =40(h) となる。定数blendは、1ブロックセット内の1ラ
イン分のデータ数である。
【0143】カウント値pixelctが示す順は、ラ
スタデータの並び順に相当し、生成されるアドレスはバ
ッファに記憶されるブロックデータを構成するアドレス
である。
【0144】例えば、カウント値pixelct=0〜
7による最初のデータYYCbCrYY××のアドレス
は、それぞれ0,1,100(h),140(h),
2,3,×,×となる。アドレス=0,1は、図19に
示すブロックY0の最初の2つのデータのアドレスであ
り、アドレス=100(h)はブロックCb0の最初の
データであり、アドレス=140(h)はブロックCr
0の最初のデータであり、アドレス=2,3はブロック
Y0の3番目と4番目のデータのアドレスであり、アド
レス=×はダミーデータのアドレスであり、所定のアド
レスに特定する必要はない。
【0145】表に示されるCb成分またはCr成分のp
ixelct1が常に1であり、Y成分のpixelc
t1は0である。Y成分のブロックとC成分のブロック
の各々のアドレスを同定するには、pixelct0,
pixelct2,pixelct3,pixelct
4,pixelct5を用いればよい。ただし、C成分
のブロックについては、Y成分と異なるアドレスを生成
するためpixelct1も用いる。
【0146】以上の表に示すアドレスを発生させるため
のアドレス発生回路の構成を次を示す。図21は、4:
1:1の場合におけるYアドレス発生回路21およびC
アドレス発生回路22の構成を示す。
【0147】図14に示したように、アドレス合成部1
8は、ビットデータpixelct1が0のときには、
Yアドレス発生回路21によりアドレスが生成され、p
ixelct1が1のときには、Cアドレス発生回路2
2によりアドレスが生成される。
【0148】図21(A)は、Yアドレス発生回路の構
成を示す。Yアドレス発生回路21は、5つのビットデ
ータpixelct0,pixelct2,pixel
ct3,pixelct4,pixelct5、および
複数ビットのデータlinect,bheadを受け
て、バッファのアドレスを生成する。
【0149】pixelct0は、直接加算器67に入
力される。pixelct2は、1ビットシフタ61に
より左1ビットシフトされることにより、2(=21
倍されて加算器67に入力される。pixelct3
は、2ビットシフタ62により左2ビットシフトされる
ことにより、4(=22 )倍されて加算器67に入力さ
れる。
【0150】pixelct4は、直接加算器64に入
力される。pixelct5は、1ビットシフタ63に
より左1ビットシフトされることにより、2(=21
倍されて加算器64に入力される。加算器64により加
算された値は、6ビットシフタ65により左6ビットシ
フトされることにより、64(=26 )倍されて加算器
67に入力される。
【0151】linectは、3ビットシフタ66によ
り左3ビットシフトされることにより、8(=23 )倍
されて加算器67に入力される。bheadは、直接加
算器67に入力される。
【0152】加算器67は、以上により入力された値を
全て加算する。加算された値は、Y成分のデータのアド
レスとして出力される。以上のYアドレス発生回路21
により生成されるアドレスaddressは、以下の式
で表すことができる。
【0153】address=bhead+(pixe
lct5×2+pixelct4)×64+linec
t×8+pixelct3×4+pixelct2×2
+pixelct0 図21(B)は、Cアドレス発生回路22の構成を示
す。Cアドレス発生回路22は、入力値pixelct
0,pixelct1,pixelct3〜pixel
ct5,linect,bheadを受けて、アドレス
を生成する。
【0154】pixelct0は、直接加算器69に入
力される。pixelct1は、2ビットシフタ68に
より左2ビットシフトされることにより、4(=22
倍されて加算器69に入力される。加算器69により加
算された値は、6ビットシフタ70により左6ビットシ
フトされることにより、64(=26 )倍されて加算器
74に入力される。
【0155】pixelct3は、直接加算器74に入
力される。pixelct4は、1ビットシフタ71に
より左1ビットシフトされることにより、2(=21
倍されて加算器74に入力される。pixelct5
は、2ビットシフタ72により左2ビットシフトされる
ことにより、4(=22 )倍されて加算器74に入力さ
れる。
【0156】linectは、3ビットシフタ73によ
り左3ビットシフトされることにより、8(=23 )倍
されて加算器74に入力される。bheadは、直接加
算器74に入力される。
【0157】加算器74は、以上により入力された値を
全て加算する。加算された値は、Cb成分またはCr成
分のデータのアドレスとして出力される。以上のCアド
レス発生回路22により生成されるアドレスaddre
ssは、以下の式で表すことができる。
【0158】address=bhead+(pixe
lct1×4+pixelct0)×64+linec
t×8+pixelct5×4+pixelct4×2
+pixelct3 生成されたアドレスaddressは、バッファにブロ
ックデータを書き込んだり、バッファからブロックデー
タを読み出したりする際のアドレスとして用いられる。
【0159】次は、4:4:4の場合のアドレス発生に
ついて説明する。図22は、4:4:4の場合におい
て、バッファメモリに記憶されるブロックデータの例で
ある。アドレス発生回路(6)またはインクリメンタ
(7)は、バッファメモリ(2A,2B)に対して、ブ
ロックデータの書き込みまたは読み出しを行う。
【0160】バッファメモリには、Y0,Cb0,Cr
0,Y1,Cb1,Cr1,・・・の順番で各ブロック
のデータが記憶される。各ブロックの先頭アドレスは、
それぞれ0,40(h),80(h),c0(h),1
00(h),140(h),・・・である。ブロックセ
ットは、例えば(Y0,Cb0,Cr0)または(Y
1,Cb1,Cr1)等の組みである。
【0161】図23は、4:4:4の場合のアドレス発
生例を示す。アドレス発生回路は、画素カウント値pi
xelct等を受けて、アドレスを生成する。図の表に
示す画素カウント値pixelct=0〜1f(h)
は、最初の1ブロックセット内のライン0(L0)のア
ドレス発生例である。図4の表において、4:4:4の
場合は、 blend=m×3 =8×3 =24 であるとした。
【0162】しかし、4:1:1の場合と同様にダミー
データを用いるため、図9のフローチャートのステップ
S2では、定数blendに代えて定数blend’を
用いる。この際の定数blend’は、 blend’=blend+blend/3 =24+24/3 =32=20(h) となる。したがって、カウント値pixelct=0〜
1f(h)のカウントが行われる。
【0163】カウント値pixelctが示す値の順
は、ラスタデータの並び順に相当し、生成されるアドレ
スはバッファに記憶されるブロックデータを構成するア
ドレスである。
【0164】例えば、カウント値pixelct=0〜
3による最初のデータYCbCr×のアドレスは、それ
ぞれ0,40(h),80(h),×となる。アドレス
=0は、図22に示すブロックY0の最初のデータのア
ドレスであり、アドレス=40(h)はブロックCb0
の最初のデータのアドレスであり、アドレス=80
(h)はブロックCr0の最初のデータであり、アドレ
ス=×はダミーデータのアドレスであり、所定のアドレ
スに特定する必要はない。
【0165】以上の表に示すアドレスを発生させるため
のアドレス発生回路の構成を次に示す。図24は、4:
4:4の場合におけるYCアドレス発生回路の構成を示
す。YCアドレス発生回路は、図8のアドレス発生回路
中のアドレス合成部18に相当し、全ての成分(Y,C
b,Cr)のデータのアドレスを生成する。
【0166】YCアドレス発生回路は、入力値pixe
lct0〜pixelct4,linect,bhea
dを受けて、アドレスを生成する。pixelct0
は、直接加算器82に入力される。pixelct1
は、1ビットシフタ81により左1ビットシフトされる
ことにより、2(=21 )倍されて加算器82に入力さ
れる。加算器82により加算された値は、6ビットシフ
タ83により左6ビットシフトされることにより、64
(=26 )倍されて加算器87に入力される。
【0167】pixelct2は、直接加算器87に入
力される。pixelct3は、1ビットシフタ84に
より左1ビットシフトされることにより、2(=21
倍されて加算器87に入力される。pixelct4
は、2ビットシフタ85により左2ビットシフトされる
ことにより、4(=22 )倍されて加算器87に入力さ
れる。
【0168】linectは、3ビットシフタ86によ
り左3ビットシフトされることにより、8(=23 )倍
されて加算器87に入力される。bheadは、直接加
算器87に入力される。
【0169】加算器87は、以上により入力された値を
全て加算し、Y,Cb,Crの各成分のデータのアドレ
スを出力する。以上のYCアドレス発生回路により生成
されるアドレスaddressは、以下の式で表すこと
ができる。
【0170】address=bhead+(pixe
lct1×2+pixelct0)×64+linec
t×8+pixelct4×4+pixelct3×2
+pixelct2 生成されたアドレスaddressは、バッファにブロ
ックデータを書き込んだり、バッファからブロックデー
タを読み出したりする際のアドレスとして用いられる。
【0171】本実施例によるアドレス発生回路は、図8
に示したように、4:2:2の場合には5ビットの画素
カウンタ11と6ビットのブロックセットカウンタ13
と3ビットのラインカウンタ15の3つの小さなカウン
タを用いて構成することができる。カウンタ以外では、
ブロック先頭アドレス合成部17は、8ビットシフタで
構成でき、アドレス合成部18はビットシフタと加算器
で構成することができるので、単純な回路構成で実現す
ることができる。
【0172】また、外部から供給されるラスタデータま
たはブロックデータに対して、レジスタアレイを介さず
に、ラスタ/ブロック変換を行い直接バッファに書き込
んだり、バッファに記憶されているデータをラスタ/ブ
ロック変換して直接外部に供給することができるので、
変換回路全体の規模を小さくすることができ、変換され
るデータの遅延を抑えることができる。
【0173】以上実施例に沿って本発明を説明したが、
本発明はこれらに制限されるものではない。例えば、種
々の変更、改良、組み合わせ等が可能なことは当業者に
自明であろう。
【0174】
【発明の効果】以上説明したように、本発明によれば、
1ブロックの行数であるnラインの全ての画像データに
ついてのメモリアドレスを連続して生成することによ
り、レジスタアレイを用いずに直接メモリにアクセスす
ることが可能であるので、回路規模の縮小または処理時
間の短縮を実現することができる。
【図面の簡単な説明】
【図1】ラスタデータとブロックデータへの変換を行う
変換回路の全体構成を示すブロック図である。
【図2】図2(A)〜(C)は、ラスタデータからブロ
ックデータへの変換を行う動作例を示す概略図である。
【図3】図3(A)〜(C)は、ブロックデータからラ
スタデータへの変換を行う動作例を示す概略図である。
【図4】YCbCr画像において3種類のデータフォー
マットの定数を示す図表である。
【図5】4:2:2における定数blendを説明する
ための概略図である。
【図6】4:2:2における定数blengthを説明
するための概略図である。
【図7】4:2:2における定数bendを説明するた
めの概略図である。
【図8】図2または図3に示すアドレス発生回路の構成
を示すブロック図である。
【図9】図8のアドレス発生回路がアドレス生成を行う
処理手順を示すフローチャートである。
【図10】m×n画素のブロックに分割されるカラー
(YCbCr)画像を示す概略図である。
【図11】図10に示すブロックY0のブロックデータ
の並びを示す概略図である。
【図12】図12(A)は、YYCbCrの順の4:
2:2の場合において、バッファメモリに記憶されるブ
ロックデータのメモリマップであり、図12(B)は、
ブロックY0の詳細なメモリマップである。
【図13】YYCbCrの4:2:2のアドレス発生回
路によるアドレス発生の例を示す図表である。
【図14】図8に示すアドレス発生回路のアドレス合成
部の構成を示すブロック図である。
【図15】YYCbCrの4:2:2の場合のアドレス
発生回路を示す。図15(A)はYアドレス発生回路の
構成を示すブロック図であり、図15(B)はCアドレ
ス発生回路の構成を示すブロック図である。
【図16】YCbYCrの順の4:2:2の場合におい
て、バッファメモリに記憶されるブロックデータのメモ
リマップである。
【図17】YCbYCrの4:2:2のアドレス発生回
路によるアドレス発生の例を示す図表である。
【図18】YCbYCrの4:2:2の場合のアドレス
発生回路を示す。図18(A)はYアドレス発生回路の
構成を示すブロック図であり、図18(B)はCアドレ
ス発生回路の構成を示すブロック図である。
【図19】4:1:1の場合において、バッファメモリ
に記憶されるブロックデータのメモリマップである。
【図20】4:1:1のアドレス発生回路によるアドレ
ス発生の例を示す図表である。
【図21】4:1:1の場合のアドレス発生回路を示
す。図21(A)はYアドレス発生回路の構成を示すブ
ロック図であり、図21(B)はCアドレス発生回路の
構成を示すブロック図である。
【図22】4:4:4の場合において、バッファメモリ
に記憶されるブロックデータのメモリマップである。
【図23】4:4:4のアドレス発生回路によるアドレ
ス発生の例を示す図表である。
【図24】4:4:4の場合のYCアドレス発生回路の
構成を示すブロック図である。
【符号の説明】
1 メモリコントローラ 2A,2B バッファ 3 ラスタデータ 4 ブロックデータ 5 ブロック 6 アドレス発生回路 7 インクリメンタ 11 画素カウンタ 13 ブロックセットカウンタ 15 ラインカウンタ 12,14,16 比較器 17 ブロック先頭アドレス合成部 18 アドレス合成部 21 Yアドレス発生回路 22 Cアドレス発生回路 23 スイッチ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ラスタデータと1ブロックがnライン×
    m画素からなるブロックデータとの間の変換を行うため
    のメモリアドレス発生器であって、 1ブロックセット内の1ライン内のデータの番号を先頭
    から最後まで順次増加するための画素カウンタ(11)
    と、 前記画素カウンタが最後の番号まで増加し終わると、ブ
    ロックセットの番号を増加し、1ライン中に含まれるブ
    ロックセットの番号を先頭から最後まで順次増加するた
    めのブロックセットカウンタ(13)と、 前記ブロックセットカウンタが最後の番号まで増加し終
    わると、ラインの番号を増加し、1ブロック内のライン
    の番号を先頭から最後まで順次増加するためのラインカ
    ウンタ(15)と、 前記データの番号、ブロックセットの番号およびライン
    の番号に応じて、少なくともnライン分の画像を読み書
    きするためのメモリアドレスを連続して生成するアドレ
    ス生成手段(18)とを有するメモリアドレス発生器。
  2. 【請求項2】 さらに、順次インクリメントを行うこと
    によりメモリアドレスを生成するアドレスインクリメン
    タ(7)と、 前記アドレス生成手段が生成するアドレス、または前記
    アドレスインクリメンタが生成するアドレスのいずれか
    一方を出力するアドレス出力手段(1)とを有する請求
    項1記載のメモリアドレス発生器。
  3. 【請求項3】 前記アドレス出力手段は、ブロック構成
    の外部のメモリと共に用いるのに適し、前記外部のメモ
    リからラスタデータを入力する際には前記アドレス生成
    手段が生成するアドレスを出力し、外部のメモリへデー
    タをブロックデータとして出力する際には前記アドレス
    インクリメンタが生成するアドレスを出力して、ラスタ
    データからブロックデータへの変換を行う請求項2記載
    のメモリアドレス発生器。
  4. 【請求項4】 前記アドレス出力手段は、ブロック構成
    の外部のメモリと共に用いるのに適し、前記外部のメモ
    リからブロックデータを入力する際には前記アドレスイ
    ンクリメンタが生成するアドレスを出力し、外部のメモ
    リへデータをラスタデータとして出力する際には前記ア
    ドレス生成手段が生成するアドレスを出力して、ブロッ
    クデータからラスタデータへの変換を行う請求項2記載
    のメモリアドレス発生器。
JP6178932A 1994-07-29 1994-07-29 ラスタ/ブロック変換用メモリアドレス発生器 Pending JPH0846796A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6178932A JPH0846796A (ja) 1994-07-29 1994-07-29 ラスタ/ブロック変換用メモリアドレス発生器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6178932A JPH0846796A (ja) 1994-07-29 1994-07-29 ラスタ/ブロック変換用メモリアドレス発生器

Publications (1)

Publication Number Publication Date
JPH0846796A true JPH0846796A (ja) 1996-02-16

Family

ID=16057166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6178932A Pending JPH0846796A (ja) 1994-07-29 1994-07-29 ラスタ/ブロック変換用メモリアドレス発生器

Country Status (1)

Country Link
JP (1) JPH0846796A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008085502A (ja) * 2006-09-26 2008-04-10 Toshiba Corp 画像転送装置、方法およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008085502A (ja) * 2006-09-26 2008-04-10 Toshiba Corp 画像転送装置、方法およびプログラム
JP4594913B2 (ja) * 2006-09-26 2010-12-08 株式会社東芝 画像転送装置、方法およびプログラム

Similar Documents

Publication Publication Date Title
US4737772A (en) Video display controller
US5608824A (en) Image processing apparatus in which filters having different filtering characteristics can be switched among themselves
US6389180B1 (en) Resolution conversion system and method
JPS63121364A (ja) テレビジヨン特殊効果装置の補間器
US5943097A (en) Image processing means for processing image signals of different signal formats
JP2647033B2 (ja) ルックアップテーブル作成方法及びルックアップテーブル作成装置
US5973707A (en) Scan converting method and apparatus for raster to block and block to raster using a shared block buffer and two input/output buffers, one being raster, the other scan
EP0088583A1 (en) Image processing apparatus
JPH06332843A (ja) 動画映像データ転送装置およびコンピュータシステム
US5761348A (en) Data processing apparatus with data bit width conversion
JPH0846796A (ja) ラスタ/ブロック変換用メモリアドレス発生器
JPH0564000A (ja) 画像データの圧縮と伸長方法
JPH0292A (ja) カラー画像の量子化用デイスプレイ装置
JPH0846797A (ja) ラスタ/ブロック変換用メモリアドレス発生器
JPH05113928A (ja) 画像メモリ装置
JPH0818791A (ja) 画像処理装置及びその方法
JP2697679B2 (ja) ディザ画像表示装置
JPH0537773A (ja) 画像拡大縮小装置
JP2590884B2 (ja) 画像信号処理装置及び処理方法
WO1999030276A1 (fr) Processeur de signaux numeriques et procede de traitement de signaux numeriques
JPS62175069A (ja) カラ−文書画像処理装置
JP2000050159A (ja) マルチ画面映像生成装置およびマルチ画面映像生成方法
JPH07298259A (ja) 画像データ処理装置
JPH0453390A (ja) カラー画像の符号化回路
JPH09331438A (ja) カラー画像変換装置およびカラー画像変換方法、その方法を記憶した記憶媒体

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020521