JPH10198338A - 画像処理装置 - Google Patents
画像処理装置Info
- Publication number
- JPH10198338A JPH10198338A JP8359132A JP35913296A JPH10198338A JP H10198338 A JPH10198338 A JP H10198338A JP 8359132 A JP8359132 A JP 8359132A JP 35913296 A JP35913296 A JP 35913296A JP H10198338 A JPH10198338 A JP H10198338A
- Authority
- JP
- Japan
- Prior art keywords
- data
- lines
- memory
- image processing
- image
- 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
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【課題】少ないメモリ容量で画像データのデータ変換を
行う画像処理装置を提供する。 【解決手段】例えば640×480ドットの画像データ
を1280×960ドットの画像データに変換す場合、
640×16ラインの処理用メモリ10を用意する。初
めに8ライン分の実データを処理用メモリ10の上半分
に展開して処理し次に8ライン分の実データを下半分に
展開して処理するということを繰り返す。このとき、仮
想座標上の所望ドットから算出される4個の実データの
座標値の下位4ビットを処理用メモリ10上に展開され
ている実データのライン番号(「0」〜「15」)とし
て用いる。
行う画像処理装置を提供する。 【解決手段】例えば640×480ドットの画像データ
を1280×960ドットの画像データに変換す場合、
640×16ラインの処理用メモリ10を用意する。初
めに8ライン分の実データを処理用メモリ10の上半分
に展開して処理し次に8ライン分の実データを下半分に
展開して処理するということを繰り返す。このとき、仮
想座標上の所望ドットから算出される4個の実データの
座標値の下位4ビットを処理用メモリ10上に展開され
ている実データのライン番号(「0」〜「15」)とし
て用いる。
Description
【0001】
【発明の属する技術分野】本発明は、少ないメモリ領域
を用いて画像データのサイズ変換を行う画像処理装置に
関する。
を用いて画像データのサイズ変換を行う画像処理装置に
関する。
【0002】
【従来の技術】近年、ディジタルスチルカメラが普及し
ている。このディジタルスチルカメラは、撮影した画像
データをディジタルデータとして記憶装置に格納してい
る。その画像データは、外部の又は内蔵の表示装置に表
示され、あるいはインタフェースを介して接続される印
刷装置で印刷して、随時鑑賞することができる。そし
て、その印刷出力装置としてのプリンタの需要が高まっ
てきている。
ている。このディジタルスチルカメラは、撮影した画像
データをディジタルデータとして記憶装置に格納してい
る。その画像データは、外部の又は内蔵の表示装置に表
示され、あるいはインタフェースを介して接続される印
刷装置で印刷して、随時鑑賞することができる。そし
て、その印刷出力装置としてのプリンタの需要が高まっ
てきている。
【0003】プリンタは、データ用メモリ、ワーク用メ
モリ、印刷用メモリ等を有してカメラとの通信制御、画
像処理、印刷制御などプリンタ全体を制御する制御装置
を備えている。プリンタは、印刷の際にはシリアルI/
F(インタフェース)を介してディジタルスチルカメラ
(以下、単にカメラという)に接続される。一般に、カ
メラから送信される画像データはJPEGなどで圧縮さ
れており、この圧縮画像データがそのままの形式でプリ
ンタ側に送信される。プリンタは、その圧縮画像データ
を印刷用データに変換するために一旦データ用メモリに
格納して画像処理を行う。その画像処理技術の一つとし
て、画像サイズ変換がある。画像サイズ変換とは、例え
ば、640×480ドットの画像データを1280×9
60ドットの画像データに変換することである。従来の
画像サイズ変換は、1フレーム分の画像デー夕がメモリ
に展開されていることが前提になっており、メモリから
画像データを読み出し、画像サイズの変換演算を行い、
別のメモリ領域(プリンタなら例えば印刷用メモリな
ど)へ書き込むということを行っている。
モリ、印刷用メモリ等を有してカメラとの通信制御、画
像処理、印刷制御などプリンタ全体を制御する制御装置
を備えている。プリンタは、印刷の際にはシリアルI/
F(インタフェース)を介してディジタルスチルカメラ
(以下、単にカメラという)に接続される。一般に、カ
メラから送信される画像データはJPEGなどで圧縮さ
れており、この圧縮画像データがそのままの形式でプリ
ンタ側に送信される。プリンタは、その圧縮画像データ
を印刷用データに変換するために一旦データ用メモリに
格納して画像処理を行う。その画像処理技術の一つとし
て、画像サイズ変換がある。画像サイズ変換とは、例え
ば、640×480ドットの画像データを1280×9
60ドットの画像データに変換することである。従来の
画像サイズ変換は、1フレーム分の画像デー夕がメモリ
に展開されていることが前提になっており、メモリから
画像データを読み出し、画像サイズの変換演算を行い、
別のメモリ領域(プリンタなら例えば印刷用メモリな
ど)へ書き込むということを行っている。
【0004】図15は、そのような画像処理を行う場合
に画像データが展開される例えば640×480ドット
のフレームメモリの領域を模式的に示す図である。この
図を用いて従来の画像処理について更に説明する。先
ず、フレームメモリ上に存在する任意のドットを表すた
めに、フレームメモリの640ドット方向にX軸を設定
し、480ドット方向にY軸を設定する。以下、この座
標軸による系を実座標ということにする。これによっ
て、フレームメモリ上に存在する任意のドット(画素デ
ータ)は、この実座標系上の1点として表すことができ
る。以下、このフレームメモリ上に存在する画素データ
を実データとよぶことにする。
に画像データが展開される例えば640×480ドット
のフレームメモリの領域を模式的に示す図である。この
図を用いて従来の画像処理について更に説明する。先
ず、フレームメモリ上に存在する任意のドットを表すた
めに、フレームメモリの640ドット方向にX軸を設定
し、480ドット方向にY軸を設定する。以下、この座
標軸による系を実座標ということにする。これによっ
て、フレームメモリ上に存在する任意のドット(画素デ
ータ)は、この実座標系上の1点として表すことができ
る。以下、このフレームメモリ上に存在する画素データ
を実データとよぶことにする。
【0005】上述した640×480ドットの画像デー
タを1280×960ドットの画像データのように拡大
した画像サイズに変換する場合、原画像データの実デー
タと実データの間の値を拡大変換後の新データとして補
間によって求めなければならない。換言すれば、任意の
位置のドットの値を補間によって求めるという処理を行
わなければならない。この補間演算は、図15の×印K
1の値の求める場合を例にとると、一般に、×印K1を
囲む4点の実データ、すなわち左上のドットJ1、その
右隣のドットJ2、ドットJ1の1ライン下のドットJ
3、その右隣のドットJ4の夫々の値に基づいて演算す
る。この演算方法は周知である。そして、その補間演算
のためには、先ず、図の×印K1の位置を座標で示さな
ければならない。
タを1280×960ドットの画像データのように拡大
した画像サイズに変換する場合、原画像データの実デー
タと実データの間の値を拡大変換後の新データとして補
間によって求めなければならない。換言すれば、任意の
位置のドットの値を補間によって求めるという処理を行
わなければならない。この補間演算は、図15の×印K
1の値の求める場合を例にとると、一般に、×印K1を
囲む4点の実データ、すなわち左上のドットJ1、その
右隣のドットJ2、ドットJ1の1ライン下のドットJ
3、その右隣のドットJ4の夫々の値に基づいて演算す
る。この演算方法は周知である。そして、その補間演算
のためには、先ず、図の×印K1の位置を座標で示さな
ければならない。
【0006】図16は、補間によって求めるべき新デー
タ(以下、所望ドットという)の位置を座標系上の1点
として表すために新たに導入される座標系を示す図であ
る。同図は、新座標系を図15の実座標系の各実データ
の間をr等分(r=4)して、実座標の場合のX軸方向
(640ドット)を0〜2588まで2559ドットで
表わし、同じくY軸方向(480ドット)を0〜191
8まで1919ドットで表わすようにしたものである。
こうすると、所望ドットを新たな座標系上の1点として
扱えることになる。そして、実データは、この新たな座
標系では実座標系での座標値をr倍した値をとることに
なる。以後、上記の新たな座標系を仮想座標ということ
にする。また、以下の説明では、仮想座標系を<X,Y
>のように<>又は大文字で表し、実座標系を(x ,
y)のように()又は小文字で表すことにする。
タ(以下、所望ドットという)の位置を座標系上の1点
として表すために新たに導入される座標系を示す図であ
る。同図は、新座標系を図15の実座標系の各実データ
の間をr等分(r=4)して、実座標の場合のX軸方向
(640ドット)を0〜2588まで2559ドットで
表わし、同じくY軸方向(480ドット)を0〜191
8まで1919ドットで表わすようにしたものである。
こうすると、所望ドットを新たな座標系上の1点として
扱えることになる。そして、実データは、この新たな座
標系では実座標系での座標値をr倍した値をとることに
なる。以後、上記の新たな座標系を仮想座標ということ
にする。また、以下の説明では、仮想座標系を<X,Y
>のように<>又は大文字で表し、実座標系を(x ,
y)のように()又は小文字で表すことにする。
【0007】尚、上記の新座標系はr=4としている
が、このように実座標を4等分しても所望ドットの位置
を表わすことが出来ない場合は、更にrをより大きな値
にし、実ドット間を上記よりも細かく等分して、所望ド
ットを正しく表わすことのできる新座標系を設定するよ
うにすればよい。
が、このように実座標を4等分しても所望ドットの位置
を表わすことが出来ない場合は、更にrをより大きな値
にし、実ドット間を上記よりも細かく等分して、所望ド
ットを正しく表わすことのできる新座標系を設定するよ
うにすればよい。
【0008】このように仮想座標系を設定してから、所
望ドットの周辺4点の実データで補間計算を行い、所望
ドットの値を計算する。所望ドットの仮想座標値<X,
Y>から、その周辺の4点の実データを求めるために
は、仮想座標値<X,Y>の値を夫々rで割った商によ
る座標値を計算する。この計算により求められる座標値
は、所望ドットの左上の実データの実座標値となる。こ
の座標値を(x0 ,y0)とすると、所望ドットの周辺
の残り3点の実座標値は、夫々(x0+1,y0 ),(x
0 ,y0 +1),(x0 +1,y0 +1)として得られ
る。尚、図16の例では、×印位置の仮想座標値は<
3,2>であり、実座標を等分した値はr=4であるか
ら、上記の演算結果は(x0 ,y0 )=(0,0)とな
る。
望ドットの周辺4点の実データで補間計算を行い、所望
ドットの値を計算する。所望ドットの仮想座標値<X,
Y>から、その周辺の4点の実データを求めるために
は、仮想座標値<X,Y>の値を夫々rで割った商によ
る座標値を計算する。この計算により求められる座標値
は、所望ドットの左上の実データの実座標値となる。こ
の座標値を(x0 ,y0)とすると、所望ドットの周辺
の残り3点の実座標値は、夫々(x0+1,y0 ),(x
0 ,y0 +1),(x0 +1,y0 +1)として得られ
る。尚、図16の例では、×印位置の仮想座標値は<
3,2>であり、実座標を等分した値はr=4であるか
ら、上記の演算結果は(x0 ,y0 )=(0,0)とな
る。
【0009】次に、前述の割り算の余りを求める。座標
値xをrで割った余りをmod_x、座標値yをrで割
った余りをmod_yとすると、いまはr=4であるか
ら、mod_x=3,mod_y=2である。この値
は、所望ドットと、所望ドットの左上のドットとのX、
Y軸方向の距離を示している。この距離のスケールは仮
想座標上の値である。これらを用いることで、所望ドッ
トの値は計算できる。
値xをrで割った余りをmod_x、座標値yをrで割
った余りをmod_yとすると、いまはr=4であるか
ら、mod_x=3,mod_y=2である。この値
は、所望ドットと、所望ドットの左上のドットとのX、
Y軸方向の距離を示している。この距離のスケールは仮
想座標上の値である。これらを用いることで、所望ドッ
トの値は計算できる。
【0010】すなわち、いま(x0 ,y0 )=D0 ,
(x0 +1,y0 )=D1 ,(x0 ,y0 +1)=
D2 ,(x0 +1,y0 +1)=D3 (D0 ,D1 ,D
2 ,D3 の位置関係は図16を参照)とすると、まず、 D01=(D1 ×mod_x+D0 ×(r−mod_x))/r …(1) を計第する。次に、 D23=(D3 ×mod_x+D2 ×(r−mod_x))/r …(2) を計算する。そして、D01、D23より所望ドットD0123
は、 D0123=(D23×mod_y+D01×(r−mod_y)/r …(3) を計算することで、求めることができる。
(x0 +1,y0 )=D1 ,(x0 ,y0 +1)=
D2 ,(x0 +1,y0 +1)=D3 (D0 ,D1 ,D
2 ,D3 の位置関係は図16を参照)とすると、まず、 D01=(D1 ×mod_x+D0 ×(r−mod_x))/r …(1) を計第する。次に、 D23=(D3 ×mod_x+D2 ×(r−mod_x))/r …(2) を計算する。そして、D01、D23より所望ドットD0123
は、 D0123=(D23×mod_y+D01×(r−mod_y)/r …(3) を計算することで、求めることができる。
【0011】これを必要な全ドットについて行うこと
で、サイズ変換演算が完了する。実際にサイズ変換演算
をする際には、計算を左上のドットから始め、先ず仮想
座標Yの値を固定して、X軸方向へ一定のステップで仮
想座標値を進めながら計算していき、X軸方向が終了し
たら、Y軸方向へ1ステップ仮想座標値を進めて、再び
X軸方向への計算を進めていくということを繰り返して
いく。
で、サイズ変換演算が完了する。実際にサイズ変換演算
をする際には、計算を左上のドットから始め、先ず仮想
座標Yの値を固定して、X軸方向へ一定のステップで仮
想座標値を進めながら計算していき、X軸方向が終了し
たら、Y軸方向へ1ステップ仮想座標値を進めて、再び
X軸方向への計算を進めていくということを繰り返して
いく。
【0012】例えば、図16の仮想座標から1280×
960ドットの画像を求める場合は、X方向のステップ
(以下、補間ステップという)及びY方向のステップ
(以下、Y補間ステップという)を夫々2として、仮想
座標<0,0>からX軸方向へ<2,0>,<4,0
>,・・・,<2558,0>と計算し、次のラインを
<0,2>,<2,2>,<4,2>,・・・,<25
58,2>と計算し、これを順次最後のラインまで、<
0,1918>,<2,1918>,<4,1918
>,・・・,<2558,1918>の順に計算して9
60×1280の画像データが求められる。
960ドットの画像を求める場合は、X方向のステップ
(以下、補間ステップという)及びY方向のステップ
(以下、Y補間ステップという)を夫々2として、仮想
座標<0,0>からX軸方向へ<2,0>,<4,0
>,・・・,<2558,0>と計算し、次のラインを
<0,2>,<2,2>,<4,2>,・・・,<25
58,2>と計算し、これを順次最後のラインまで、<
0,1918>,<2,1918>,<4,1918
>,・・・,<2558,1918>の順に計算して9
60×1280の画像データが求められる。
【0013】尚、右端の<2558,0>,<255
8,2>,・・・,<2558,1918>の計算で
は、(x0 +1,y0 ),(x0 ,y0 +1),(x0
+1,y0 +1)の値が(640,0),(640,4
80)のようになり、実データが存在しない。そのとき
は、実データに代えて予め決めた値(例えば0)を代用
して計算する。
8,2>,・・・,<2558,1918>の計算で
は、(x0 +1,y0 ),(x0 ,y0 +1),(x0
+1,y0 +1)の値が(640,0),(640,4
80)のようになり、実データが存在しない。そのとき
は、実データに代えて予め決めた値(例えば0)を代用
して計算する。
【0014】図17は、従来のプリンタにおける画像処
理の動作を示すフローチャートである。このフローチャ
ートを用いて、画像処理動作を簡単に説明する。先ずユ
ーザによる印刷スタートキー等の操作により印刷指示が
行われると(ステップS1)、プリンタの画像処理装置
は、接続されているカメラと通信を行い(ステップS
2)、印刷する画像(ここでは640×480ドットの
画像とする)のJPEG圧縮データを受信し、この受信
したデータをデータ用メモリに格納する(ステップS
3)。
理の動作を示すフローチャートである。このフローチャ
ートを用いて、画像処理動作を簡単に説明する。先ずユ
ーザによる印刷スタートキー等の操作により印刷指示が
行われると(ステップS1)、プリンタの画像処理装置
は、接続されているカメラと通信を行い(ステップS
2)、印刷する画像(ここでは640×480ドットの
画像とする)のJPEG圧縮データを受信し、この受信
したデータをデータ用メモリに格納する(ステップS
3)。
【0015】そして、まず16ライン分のJPEG伸長
を行う(ッステップS4)。この処理は、一般にJPE
G圧縮データの伸長過程では伸長データが16×16ド
ットのブロック単位で生成されることに合わせて16ラ
イン単位で行う。また、このJPEG伸長処理では、ワ
ークメモリのJPEG伸長データエリアを用いて行わ
れ、16ライン分のY(輝度),Cb,Crデータが生
成される。
を行う(ッステップS4)。この処理は、一般にJPE
G圧縮データの伸長過程では伸長データが16×16ド
ットのブロック単位で生成されることに合わせて16ラ
イン単位で行う。また、このJPEG伸長処理では、ワ
ークメモリのJPEG伸長データエリアを用いて行わ
れ、16ライン分のY(輝度),Cb,Crデータが生
成される。
【0016】次に、その16ライン分について、YCb
CrデータからRGBデータへの変換を行い(ステップ
S5)、さらに印字する色がイエロー(Yello
w)、マゼンタ(Magenta)又はシアン(Cya
n)のうち、いずれの色であるかを判断する(ステップ
S6及びS7)。そして、印刷する色がイエローであれ
ば上記16ライン分のRGBデータのイエロー用色変換
を行い(ステップS8)、印刷する色がマゼンタであれ
ば上記16ライン分のRGBデータのマゼンタ用色変換
を行い(ステップS9)、印刷する色がイエローでもマ
ゼンタでもなければ、16ライン分のRGBデータのシ
アン用色変換を行う(ステップS10)。
CrデータからRGBデータへの変換を行い(ステップ
S5)、さらに印字する色がイエロー(Yello
w)、マゼンタ(Magenta)又はシアン(Cya
n)のうち、いずれの色であるかを判断する(ステップ
S6及びS7)。そして、印刷する色がイエローであれ
ば上記16ライン分のRGBデータのイエロー用色変換
を行い(ステップS8)、印刷する色がマゼンタであれ
ば上記16ライン分のRGBデータのマゼンタ用色変換
を行い(ステップS9)、印刷する色がイエローでもマ
ゼンタでもなければ、16ライン分のRGBデータのシ
アン用色変換を行う(ステップS10)。
【0017】そして上記の色変換したデータをワークメ
モリのYMCデータエリアに格納する(ステップS1
1)。この後、全ライン(この例では480ライン)の
データ伸長が終了しているか否かを判別し(ステップS
12)、終了していなければ上記ステップS4〜S11
を繰り返す。これにより全ライン即ち480ラインのデ
ータ伸長が終了すると(S12がY)、この1画面分の
全データをワークメモリのYMCデータエリアから順次
読み出し、プリンタの解像度に合わせてサイズ変換を行
い、そのサイズ変換処理後の印刷データを印刷メモリへ
の展開をする(ステップS13)。そして、展開が終わ
ると、いま展開した色の印字を行う(ステップS1
4)。この印字処理は、印刷用メモリから、印刷制御回
路(図示せず)が読み出して行う。印字が終わると同様
な処理を繰り返し、全色の印刷が完了する。
モリのYMCデータエリアに格納する(ステップS1
1)。この後、全ライン(この例では480ライン)の
データ伸長が終了しているか否かを判別し(ステップS
12)、終了していなければ上記ステップS4〜S11
を繰り返す。これにより全ライン即ち480ラインのデ
ータ伸長が終了すると(S12がY)、この1画面分の
全データをワークメモリのYMCデータエリアから順次
読み出し、プリンタの解像度に合わせてサイズ変換を行
い、そのサイズ変換処理後の印刷データを印刷メモリへ
の展開をする(ステップS13)。そして、展開が終わ
ると、いま展開した色の印字を行う(ステップS1
4)。この印字処理は、印刷用メモリから、印刷制御回
路(図示せず)が読み出して行う。印字が終わると同様
な処理を繰り返し、全色の印刷が完了する。
【0018】
【発明が解決しようとする課題】ところで、上述した画
像処理の手法では、サイズ変換のためのワークメモリ領
域として、64り×480=307200バイト(1ド
ットを1バイトとして換算)の容量を使用している。こ
のようなワーク用として一時的に用いられるメモリの容
量は、本来は少ないに越したことなない。さもないと、
コスト削減の実現を阻害すると共に装置の小型化の実現
を阻害する。
像処理の手法では、サイズ変換のためのワークメモリ領
域として、64り×480=307200バイト(1ド
ットを1バイトとして換算)の容量を使用している。こ
のようなワーク用として一時的に用いられるメモリの容
量は、本来は少ないに越したことなない。さもないと、
コスト削減の実現を阻害すると共に装置の小型化の実現
を阻害する。
【0019】本発明の課題は、少ないメモリ容量で画像
データのデータ変換を行う画像処理装置を提供すること
である。
データのデータ変換を行う画像処理装置を提供すること
である。
【0020】
【課題を解決するための手段】請求項1記載の発明の画
像処理装置は、画像処理に用いるメモリのライン数を2
n (n=1,2,3,・・・)として構成される。上記
メモリは、例えば請求項2記載のように、アドレスの値
が連続する数値で表わされるように構成される。
像処理装置は、画像処理に用いるメモリのライン数を2
n (n=1,2,3,・・・)として構成される。上記
メモリは、例えば請求項2記載のように、アドレスの値
が連続する数値で表わされるように構成される。
【0021】請求項3記載の発明の画像処理装置は、原
画像データを二次元平面として扱って画像処理する際に
用いるメモリ上における各画素の座標(x,y)が連続
する座標値(m,n)で表わされ、メモリのライン数が
2n (n=1,2,3,・・・)に設定されていると
き、メモリ上のアドレスを計算する際に、座標の下位n
ビットを用いて処理を行うように構成される。
画像データを二次元平面として扱って画像処理する際に
用いるメモリ上における各画素の座標(x,y)が連続
する座標値(m,n)で表わされ、メモリのライン数が
2n (n=1,2,3,・・・)に設定されていると
き、メモリ上のアドレスを計算する際に、座標の下位n
ビットを用いて処理を行うように構成される。
【0022】上記画像処理は、例えば請求項4記載のよ
うに、画像データのサイズ変換のための補間計算であ
る。また、該補間計算は、例えば請求項5記載のよう
に、予め定めた条件式により補間計算が可能か否かを判
断しながら行うように構成される。そして、上記条件式
は、例えば請求項6記載のように、仮想座標を実座標の
r倍の分解能とし、メモリライン数の1/2ライン数毎
の実データ展開回数をiとしたとき、上記補間計算の対
象ドットの仮想座標値Yが「Y<(2n-1 ×(i+1)
−1)×r」を満たすか又は対象ドットの左上の実デー
タのドットの実座標値yが「y <(i×2n-1 +2
n-1 −1)」を満たすとき補間計算が可能であると判断
するように構成される。そして、例えば請求項7記載の
ように、上記条件式に基づく判断を最終の処理のときに
は行わないように構成される。
うに、画像データのサイズ変換のための補間計算であ
る。また、該補間計算は、例えば請求項5記載のよう
に、予め定めた条件式により補間計算が可能か否かを判
断しながら行うように構成される。そして、上記条件式
は、例えば請求項6記載のように、仮想座標を実座標の
r倍の分解能とし、メモリライン数の1/2ライン数毎
の実データ展開回数をiとしたとき、上記補間計算の対
象ドットの仮想座標値Yが「Y<(2n-1 ×(i+1)
−1)×r」を満たすか又は対象ドットの左上の実デー
タのドットの実座標値yが「y <(i×2n-1 +2
n-1 −1)」を満たすとき補間計算が可能であると判断
するように構成される。そして、例えば請求項7記載の
ように、上記条件式に基づく判断を最終の処理のときに
は行わないように構成される。
【0023】請求項8記載の発明の画像処理装置は、空
間の任意の1点を、その周辺の既知の点から求める補間
処理において、処理の中で行う計算が省略可能か否かを
判断し、省略可能な場合はその計算を行わないように制
御するように構成される。
間の任意の1点を、その周辺の既知の点から求める補間
処理において、処理の中で行う計算が省略可能か否かを
判断し、省略可能な場合はその計算を行わないように制
御するように構成される。
【0024】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照しながら説明する。先ず、第1の実施の形態にお
いては、カメラ3から入力されるJPEGなどで圧縮さ
れた入力画像データ(以下、単に入力画像ともいう)を
伸長する際に、伸長計算と並行してサイズ変換のための
補間演算を行う。そして、この補間演算に用いるワーク
メモリの構成を、JPEGのデータ伸長過程で生成され
るデータ構成単位(16×16ドットのブロック単位)
に合わせて、画像データの16ライン分の構成としてい
る。そして16ライン分の画像データ(ソース画像が6
40×480ドットならば、640×16ドット分のデ
ータ)を生成するたびに、サイズ変換のための補間演算
をを行い、これにより、サイズ変換の演算に必要なメモ
リ容量を削減している。
を参照しながら説明する。先ず、第1の実施の形態にお
いては、カメラ3から入力されるJPEGなどで圧縮さ
れた入力画像データ(以下、単に入力画像ともいう)を
伸長する際に、伸長計算と並行してサイズ変換のための
補間演算を行う。そして、この補間演算に用いるワーク
メモリの構成を、JPEGのデータ伸長過程で生成され
るデータ構成単位(16×16ドットのブロック単位)
に合わせて、画像データの16ライン分の構成としてい
る。そして16ライン分の画像データ(ソース画像が6
40×480ドットならば、640×16ドット分のデ
ータ)を生成するたびに、サイズ変換のための補間演算
をを行い、これにより、サイズ変換の演算に必要なメモ
リ容量を削減している。
【0025】図1は、第1の実施の形態における画像処
理装置の構成を示すブロック図である。同図に示す画像
処理装置1は、例えばプリンタのインタフェースコント
ローラ部であり、印刷制御回路2は、例えばプリンタの
エンジンコントローラ部である。上記の画像処理装置1
には、外部のホスト機器であるディジタルカメラ(以
下、単にカメラという)3がシリアルインタフェース
(I/F)を介して接続される。
理装置の構成を示すブロック図である。同図に示す画像
処理装置1は、例えばプリンタのインタフェースコント
ローラ部であり、印刷制御回路2は、例えばプリンタの
エンジンコントローラ部である。上記の画像処理装置1
には、外部のホスト機器であるディジタルカメラ(以
下、単にカメラという)3がシリアルインタフェース
(I/F)を介して接続される。
【0026】画像処理装置1は、CPU4を備え、CP
U4にはユーザが印刷開始を指示するための印刷スター
トキー5、カメラ3から入力される画像データを格納す
るデータ用メモリ6、その画像データのJPEG伸長処
理とその伸長処理と並行してサイズ変換のための補間演
算を際に一時的に使用するワーク用メモリ7、サイズ変
換後の一画面分の印刷画像データを格納する印刷用メモ
リ8、処理プログラムや係数などを格納したROM9等
が接続されている。印刷制御回路2は、印刷用メモリ8
から読み出した印刷画像データに基づきプリンタエンジ
ン部を制御して印刷を実行する。
U4にはユーザが印刷開始を指示するための印刷スター
トキー5、カメラ3から入力される画像データを格納す
るデータ用メモリ6、その画像データのJPEG伸長処
理とその伸長処理と並行してサイズ変換のための補間演
算を際に一時的に使用するワーク用メモリ7、サイズ変
換後の一画面分の印刷画像データを格納する印刷用メモ
リ8、処理プログラムや係数などを格納したROM9等
が接続されている。印刷制御回路2は、印刷用メモリ8
から読み出した印刷画像データに基づきプリンタエンジ
ン部を制御して印刷を実行する。
【0027】図2は、本実施の形態において用いるデー
タ伸長(JPEG伸長)及びサイズ変換に使用するイエ
ロー(マゼンタ,シアン)用のワークメモリ領域(以
下、YMCワークエリアという)のアドレスマップを示
している。同図に示すYMCワークエリア10には、6
40×16ドットの画像データがアドレス0〜アドレス
10239まで線順次に配置される。このYMCワーク
エリア10は、YMCワークエリアA11(以下、単に
エリアA11という)及びYMCワークエリアB12
(以下、単にエリアB12という)の2つの領域に分け
て用いられる。これら2つの領域は、夫々640ドット
×8ライン分の容量を有しており、両エリアの画像デー
タのアドレスは連続している。すなわち、エリアA11
の640×8ドットはアドレス「0」〜アドレス「51
19」まで線順次に連続し、次のアドレス「5120」
からアドレス「10239」までエリアB12の640
×8ドットが線順次に連続している。詳しくは後述する
ように、伸長データは8ライン毎に2つのエリアA11
及びB12に交互に展開される。
タ伸長(JPEG伸長)及びサイズ変換に使用するイエ
ロー(マゼンタ,シアン)用のワークメモリ領域(以
下、YMCワークエリアという)のアドレスマップを示
している。同図に示すYMCワークエリア10には、6
40×16ドットの画像データがアドレス0〜アドレス
10239まで線順次に配置される。このYMCワーク
エリア10は、YMCワークエリアA11(以下、単に
エリアA11という)及びYMCワークエリアB12
(以下、単にエリアB12という)の2つの領域に分け
て用いられる。これら2つの領域は、夫々640ドット
×8ライン分の容量を有しており、両エリアの画像デー
タのアドレスは連続している。すなわち、エリアA11
の640×8ドットはアドレス「0」〜アドレス「51
19」まで線順次に連続し、次のアドレス「5120」
からアドレス「10239」までエリアB12の640
×8ドットが線順次に連続している。詳しくは後述する
ように、伸長データは8ライン毎に2つのエリアA11
及びB12に交互に展開される。
【0028】図3は、上記YMCワークエリア10に展
開される実データのアドレスと実座標の関係、及び実デ
ータの展開状態を示す図である。同図の下方1/2に展
開する白丸印は初期状態における不定データ、同図の上
方1/2に展開する黒丸印はいま展開したばかりの実デ
ータである。
開される実データのアドレスと実座標の関係、及び実デ
ータの展開状態を示す図である。同図の下方1/2に展
開する白丸印は初期状態における不定データ、同図の上
方1/2に展開する黒丸印はいま展開したばかりの実デ
ータである。
【0029】YMCワークエリア10の各ドットは、図
3に示すように、メモリ上ではアドレス「0」〜「10
239」で示され(図では各データの上に[]で示して
いる)、二次平面上では図15の場合と同様に実座標
(0,0)〜(2556,60)で表わされる(図では
各データの下に()で示している)。
3に示すように、メモリ上ではアドレス「0」〜「10
239」で示され(図では各データの上に[]で示して
いる)、二次平面上では図15の場合と同様に実座標
(0,0)〜(2556,60)で表わされる(図では
各データの下に()で示している)。
【0030】図4、図5及び図6は、夫々上記図3に続
いてYMCワークエリア10に順次8ライン毎に展開さ
れる実データと仮想座標(夫々の図でデータの下に<>
で示している)の関係、及び実データの展開状態を示す
図である。図4〜図5に示す黒丸印は、図に示す処理タ
イミングにおいて展開されたばかりの実データ、網目丸
印は、前回の処理タイミングで展開された実データであ
る。
いてYMCワークエリア10に順次8ライン毎に展開さ
れる実データと仮想座標(夫々の図でデータの下に<>
で示している)の関係、及び実データの展開状態を示す
図である。図4〜図5に示す黒丸印は、図に示す処理タ
イミングにおいて展開されたばかりの実データ、網目丸
印は、前回の処理タイミングで展開された実データであ
る。
【0031】本実施の形態においては、図16の場合と
同様に実データ間を4等分した仮想座標系を用いて実デ
ータの位置を表わしている。図4は、上述したように、
図3に示すデータ展開の後、次の8ライン分のデータを
エリアB12に展開した直後の状態を示しており、展開
されたばかりの実データの下に示す仮想座標値は、前回
の処理タイミングで上に展開された実データの仮想座標
値に連続している。
同様に実データ間を4等分した仮想座標系を用いて実デ
ータの位置を表わしている。図4は、上述したように、
図3に示すデータ展開の後、次の8ライン分のデータを
エリアB12に展開した直後の状態を示しており、展開
されたばかりの実データの下に示す仮想座標値は、前回
の処理タイミングで上に展開された実データの仮想座標
値に連続している。
【0032】そして、上記図4に示すデータ展開の後、
次の8ライン分のデータをエリアA11に展開した状態
を示す図5では、展開されたばかりの実データの下に示
す仮想座標値は、前回の図4の処理タイミングで下に展
開された実データの仮想座標値に連続している。これ
は、図16の場合と同様に1フレームのメモリにデータ
を展開したと仮定したときにおける仮想座標系の座標値
である。図6も同様に、下方の領域に展開されたばかり
の実データの下に示す仮想座標値は、前回の図5の処理
タイミングで上に展開された実データの仮想座標値に連
続している。
次の8ライン分のデータをエリアA11に展開した状態
を示す図5では、展開されたばかりの実データの下に示
す仮想座標値は、前回の図4の処理タイミングで下に展
開された実データの仮想座標値に連続している。これ
は、図16の場合と同様に1フレームのメモリにデータ
を展開したと仮定したときにおける仮想座標系の座標値
である。図6も同様に、下方の領域に展開されたばかり
の実データの下に示す仮想座標値は、前回の図5の処理
タイミングで上に展開された実データの仮想座標値に連
続している。
【0033】図7は、以下の説明に用いるため、図3の
実データ展開図を、図4乃至図6に示すと同様に仮想座
標で図示し直したものである。このように図7、図4〜
図6に示すように順次8ライン毎にYMCワークエリア
10のエリアA11及びエリアB12に交互に順次展開
されていく画像データの構成において、伸長処理とサイ
ズ変換を並行して行う処理を以下に説明する。
実データ展開図を、図4乃至図6に示すと同様に仮想座
標で図示し直したものである。このように図7、図4〜
図6に示すように順次8ライン毎にYMCワークエリア
10のエリアA11及びエリアB12に交互に順次展開
されていく画像データの構成において、伸長処理とサイ
ズ変換を並行して行う処理を以下に説明する。
【0034】図8は、上記第1の実施の形態における処
理の動作を示すフローチャートである。同図のフローチ
ャートにおいて、ステップS21〜S24の処理は、図
17に示したステップS1〜S4の処理開始から16ラ
イン分のJPEG伸長までの処理と同一である。
理の動作を示すフローチャートである。同図のフローチ
ャートにおいて、ステップS21〜S24の処理は、図
17に示したステップS1〜S4の処理開始から16ラ
イン分のJPEG伸長までの処理と同一である。
【0035】本実施の形態においては、上記に続いて、
先ず16ラインの上位8ライン分について YCbCr
データからRGBデータへの変換を行い(ステップS2
5)、次に、いま印字する色がイエロー(Yello
w)、マゼンタ(Magenta)又はシアン(Cya
n)のうち、いずれの色であるかを判断する(ステップ
S26及びS27)。そして、印刷する色がイエローで
あれば(S26がY)、上記8ライン分のRGBデータ
のイエローへの色変換を行う(ステップS28)。尚、
印刷する色がマゼンタであれば(S26がNで、S27
がY)、上記8ライン分のRGBデータのマゼンタへの
色変換を行い(ステップS29)、また、印刷する色が
イエローでもマゼンタでもない(S26がNで、S27
もN)、すなわちシアンであれば、8ライン分のRGB
データのシアンへの色変換を行う(ステップS30)。
先ず16ラインの上位8ライン分について YCbCr
データからRGBデータへの変換を行い(ステップS2
5)、次に、いま印字する色がイエロー(Yello
w)、マゼンタ(Magenta)又はシアン(Cya
n)のうち、いずれの色であるかを判断する(ステップ
S26及びS27)。そして、印刷する色がイエローで
あれば(S26がY)、上記8ライン分のRGBデータ
のイエローへの色変換を行う(ステップS28)。尚、
印刷する色がマゼンタであれば(S26がNで、S27
がY)、上記8ライン分のRGBデータのマゼンタへの
色変換を行い(ステップS29)、また、印刷する色が
イエローでもマゼンタでもない(S26がNで、S27
もN)、すなわちシアンであれば、8ライン分のRGB
データのシアンへの色変換を行う(ステップS30)。
【0036】そして、上記の色変換したデータ(実デー
タ)をYMCワークエリア10のエリアA11に格納し
(ステップS31)、詳しくは後述する「演算可能な最
大限の範囲までのサイズ変換処理及び印刷メモリ8への
展開処理を行う(ステップS32)。続くステップS3
3〜S40の処理は下位8ラインのデータについての処
理であり、展開するメモリ領域がエリアB12に変わる
だけであって、上記のステップS25〜S33の上位8
ラインのデータについての処理と夫々同一である。
タ)をYMCワークエリア10のエリアA11に格納し
(ステップS31)、詳しくは後述する「演算可能な最
大限の範囲までのサイズ変換処理及び印刷メモリ8への
展開処理を行う(ステップS32)。続くステップS3
3〜S40の処理は下位8ラインのデータについての処
理であり、展開するメモリ領域がエリアB12に変わる
だけであって、上記のステップS25〜S33の上位8
ラインのデータについての処理と夫々同一である。
【0037】上記処理に続いて、全ライン(この例では
480ライン)のデータ伸長が終了しているか否かを判
別し(ステップS41)、終了していなければ(S41
がN)、上記ステップS24〜S41を繰り返す。これ
により全ライン即ち480ラインのデータ伸長が終了し
たことを確認すると(S41がY)、この1画面分の全
データを印刷用メモリ8から順次読み出して1色の印字
を行う(ステップS42)。この印字処理は、印刷用メ
モリ8から、印刷制御回路2が印刷データ用を読み出し
て行う。印字が終わると、全色の印刷が完了しているか
否かを判別して(ステップS43)、完了でなければ
(S43がN)、再びステップS24〜S42を繰り返
して、全色の印刷が完了する(S43がY)。
480ライン)のデータ伸長が終了しているか否かを判
別し(ステップS41)、終了していなければ(S41
がN)、上記ステップS24〜S41を繰り返す。これ
により全ライン即ち480ラインのデータ伸長が終了し
たことを確認すると(S41がY)、この1画面分の全
データを印刷用メモリ8から順次読み出して1色の印字
を行う(ステップS42)。この印字処理は、印刷用メ
モリ8から、印刷制御回路2が印刷データ用を読み出し
て行う。印字が終わると、全色の印刷が完了しているか
否かを判別して(ステップS43)、完了でなければ
(S43がN)、再びステップS24〜S42を繰り返
して、全色の印刷が完了する(S43がY)。
【0038】図9及び図10は、上記のステップS32
(又はS40)における処理を更に詳しく説明するフロ
ーチャートである。尚、ここでは、YMCワークエリア
10の容量を(2n ライン)×(hドット)とし、仮想
座標は、r=2d (dは1以上の正の整数)として実座
標のr倍の分解能を持つように設定する。図3並びに図
7及び図4〜図6に示したYMCワークエリア10の設
定は、上記の係数の設定を、n=4、h=640、d=
2とした場合の構成を示している。以下、図9及び図1
0のフローチャートを用い、図3並びに図7及び図4〜
図6を参照しながら、画像データのサイズを640×4
80ドットから1280×960ドットに変換する場合
を例にとって、サイズ変換の処理動作を更に説明する。
(又はS40)における処理を更に詳しく説明するフロ
ーチャートである。尚、ここでは、YMCワークエリア
10の容量を(2n ライン)×(hドット)とし、仮想
座標は、r=2d (dは1以上の正の整数)として実座
標のr倍の分解能を持つように設定する。図3並びに図
7及び図4〜図6に示したYMCワークエリア10の設
定は、上記の係数の設定を、n=4、h=640、d=
2とした場合の構成を示している。以下、図9及び図1
0のフローチャートを用い、図3並びに図7及び図4〜
図6を参照しながら、画像データのサイズを640×4
80ドットから1280×960ドットに変換する場合
を例にとって、サイズ変換の処理動作を更に説明する。
【0039】尚、以下の説明において、変数KASO_
Xは、所望ドットの仮想座標値(KASO_X、KAS
O_Y)のX座標値を表すものとし、変数KASO_Y
は、同じくY座標値を表わすものとする。また、変数S
TEP_Xは、X補間ステップを表わすものとし、変数
STEP_Yは、Y補間ステップを表わすものとする。
また、KASO_X>>dはKASO_Xをdビット右
シフトすることを表すものとし、KASO_Y>>d
は、KASO_Yをdビット右シフトすることを表すも
のとする。
Xは、所望ドットの仮想座標値(KASO_X、KAS
O_Y)のX座標値を表すものとし、変数KASO_Y
は、同じくY座標値を表わすものとする。また、変数S
TEP_Xは、X補間ステップを表わすものとし、変数
STEP_Yは、Y補間ステップを表わすものとする。
また、KASO_X>>dはKASO_Xをdビット右
シフトすることを表すものとし、KASO_Y>>d
は、KASO_Yをdビット右シフトすることを表すも
のとする。
【0040】データ(ビット列)において右シフトは、
割り算を行うことであり、例えばデータa(ビット列
a)を1ビット右シフトすると割り算「a/2」の商が
得られ、2ビット右シフトすると「a/22 」の商、3
ビット右シフトすると「a/23 」の商、・・・、dビ
ット右シフトすると「a/2d 」の商が得られる。
割り算を行うことであり、例えばデータa(ビット列
a)を1ビット右シフトすると割り算「a/2」の商が
得られ、2ビット右シフトすると「a/22 」の商、3
ビット右シフトすると「a/23 」の商、・・・、dビ
ット右シフトすると「a/2d 」の商が得られる。
【0041】図9に示すフローチャートにおいて、先
ず、仮想座標用の変数KASO_Y及びカウンタiを初
期化する(ステップS50)。この処理では、KASO
_X及びKASO_Yに設定する値は、補間計算を最初
に行うドットの仮想座標値である。例えば、図7、図4
〜図6の例では、仮想座標値(0,0)が設定される。
したがって、変数KASO_Yには「0」が設定され
る。またカウンタiには「0」が設定される。
ず、仮想座標用の変数KASO_Y及びカウンタiを初
期化する(ステップS50)。この処理では、KASO
_X及びKASO_Yに設定する値は、補間計算を最初
に行うドットの仮想座標値である。例えば、図7、図4
〜図6の例では、仮想座標値(0,0)が設定される。
したがって、変数KASO_Yには「0」が設定され
る。またカウンタiには「0」が設定される。
【0042】次に、2のn乗ライン分のJPEG伸長を
行ってワーク用メモリ7のJPEGワークエリアにYC
bCrデータを生成する(ステップS51)。この処理
における2のn乗ラインは、例えば、図7、図4〜図6
の例では、n=4であり、したがって、この場合は2n
=24 、つまり16ラインである。
行ってワーク用メモリ7のJPEGワークエリアにYC
bCrデータを生成する(ステップS51)。この処理
における2のn乗ラインは、例えば、図7、図4〜図6
の例では、n=4であり、したがって、この場合は2n
=24 、つまり16ラインである。
【0043】続いて、2の「n−1」乗ライン分をイエ
ロー(又はマゼンタ、又はシアン)に色変換し、この色
変換したデータをYMCワークエリア10のエリアA1
1に格納する(ステップS52)。これにより、例えば
図7に示すように実データがエリアA11に展開され
る。
ロー(又はマゼンタ、又はシアン)に色変換し、この色
変換したデータをYMCワークエリア10のエリアA1
1に格納する(ステップS52)。これにより、例えば
図7に示すように実データがエリアA11に展開され
る。
【0044】上記に続いて、KASO_Yのラインの補
間計算が可能か否かを判別する(ステップS53)。こ
の処理は、本実施の形態においては、YMCワークエリ
ア10のデータ領域が、従来例のように1フレーム分の
データ領域ではなく、16ライン分のデータ領域である
ので、仮想座標を導入した場合、X軸方向の演算には支
障がないが、Y軸方向の演算には問題が生じる。これを
避けるための判断処理である。
間計算が可能か否かを判別する(ステップS53)。こ
の処理は、本実施の形態においては、YMCワークエリ
ア10のデータ領域が、従来例のように1フレーム分の
データ領域ではなく、16ライン分のデータ領域である
ので、仮想座標を導入した場合、X軸方向の演算には支
障がないが、Y軸方向の演算には問題が生じる。これを
避けるための判断処理である。
【0045】そして、この処理では、或る条件を設け、
その条件を満たしている範囲までの補間計算をする。す
なわち、いま存在している図7の0〜7ライン目まで、
実データを使ってサイズ変換演算(補間計算)をする
際、計算が可能であるドット位置、すなわち展開された
実ドットの最後のラインよりも上に位置する条件は、仮
想座標値Yが(8−1)×r=7×4=28未満である
ことである。28以上の場合は、8ライン目以降のデー
タを補間計算に用いることになり、このままでは計算は
不可能である。
その条件を満たしている範囲までの補間計算をする。す
なわち、いま存在している図7の0〜7ライン目まで、
実データを使ってサイズ変換演算(補間計算)をする
際、計算が可能であるドット位置、すなわち展開された
実ドットの最後のラインよりも上に位置する条件は、仮
想座標値Yが(8−1)×r=7×4=28未満である
ことである。28以上の場合は、8ライン目以降のデー
タを補間計算に用いることになり、このままでは計算は
不可能である。
【0046】よって、この条件に従って計算すると、X
補問ステップ、Y補間ステップをそれぞれ2として、Y
=28未満の範囲、つまり、仮想座標<0,0>,<
2,0>,<4,0>,・・・,<2558,0>,<
0,2>,<2,2>,・・・,く2558,26>ま
でのドットが求められる。
補問ステップ、Y補間ステップをそれぞれ2として、Y
=28未満の範囲、つまり、仮想座標<0,0>,<
2,0>,<4,0>,・・・,<2558,0>,<
0,2>,<2,2>,・・・,く2558,26>ま
でのドットが求められる。
【0047】上記の計算可能なドットの条件を示す一般
式は、以下に示される。すなわち、YMCワークエリア
10を2n ライン分とし、2n-1 ライン分の展開をした
回数が0から数えてi回目であるとき、この処理におけ
る計算可能な条件は、所望ドットの仮想座標値が、 仮想座標値Y <(2n-1 ×(i+1)−1)×r ・・・(4) を満たすか、または、所望ドットの左上の実データのド
ットの実座標yが、 実座標y <(i×2n-1 +2n-1 −1) ・・・(5) を満たすことである。上述のステップS53における判
別のための計算式は上記の式(4)に拠っている。そし
て、上記の条件式が満たされたときは(ステップS53
がY)、仮想座標変換用の変数KASO_Xを初期化す
る(ステップS54)。この処理では、前述したよう
に、変数KASO_Xに「0」が設定される。
式は、以下に示される。すなわち、YMCワークエリア
10を2n ライン分とし、2n-1 ライン分の展開をした
回数が0から数えてi回目であるとき、この処理におけ
る計算可能な条件は、所望ドットの仮想座標値が、 仮想座標値Y <(2n-1 ×(i+1)−1)×r ・・・(4) を満たすか、または、所望ドットの左上の実データのド
ットの実座標yが、 実座標y <(i×2n-1 +2n-1 −1) ・・・(5) を満たすことである。上述のステップS53における判
別のための計算式は上記の式(4)に拠っている。そし
て、上記の条件式が満たされたときは(ステップS53
がY)、仮想座標変換用の変数KASO_Xを初期化す
る(ステップS54)。この処理では、前述したよう
に、変数KASO_Xに「0」が設定される。
【0048】続いて、YMCワークエリア10上のアド
レスが「(KASO_Yをrで割った商の下位nビッ
ト)×h+(KASO_Xをrで割った商)であるドッ
ト(所望ドットの左上の実データ、図15のドットJ1
参照)と、そのドットの、右隣のドット(図15のドッ
トJ2参照、アドレスは上記のアドレス+1)、下のド
ット(図15のドットJ3参照、アドレスは上記のアド
レス+h)、右斜め下のドット(図15のドットJ4参
照、アドレスは上記のアドレス+h+1)の合計4ドッ
トを用いて補間計算する(ステップS55)。この処理
における左上の実データの位置算出についての説明は後
述する。尚、この補間計算は周知の方法で行う。
レスが「(KASO_Yをrで割った商の下位nビッ
ト)×h+(KASO_Xをrで割った商)であるドッ
ト(所望ドットの左上の実データ、図15のドットJ1
参照)と、そのドットの、右隣のドット(図15のドッ
トJ2参照、アドレスは上記のアドレス+1)、下のド
ット(図15のドットJ3参照、アドレスは上記のアド
レス+h)、右斜め下のドット(図15のドットJ4参
照、アドレスは上記のアドレス+h+1)の合計4ドッ
トを用いて補間計算する(ステップS55)。この処理
における左上の実データの位置算出についての説明は後
述する。尚、この補間計算は周知の方法で行う。
【0049】この後、1ライン分の補間データの作成が
終了しているか否かを判別し(ステップS56)、終了
していなければ(S56がN)、KASO_X=KAS
O_X+STEP_Xの演算を行って仮想座標をX軸方
向に1ステップ進めて(ステップS57)、上記ステッ
プS55、S56を繰り返す。これにより、仮想座標の
X軸方向へ補間演算が進行する。
終了しているか否かを判別し(ステップS56)、終了
していなければ(S56がN)、KASO_X=KAS
O_X+STEP_Xの演算を行って仮想座標をX軸方
向に1ステップ進めて(ステップS57)、上記ステッ
プS55、S56を繰り返す。これにより、仮想座標の
X軸方向へ補間演算が進行する。
【0050】そして、1ライン分の補間データの作成が
終了したときは(S56がY)、次に全ラインの補間デ
ータの作成が終了したか否かを判別し(ステップS5
8)、終了していなければ(S58がN)、KASO_
Y=KASO_Y+STEP_Yの演算を行って仮想座
標をY軸方向に1ステップ進めて(ステップS59)、
上記ステップS53、S58を繰り返す。これにより、
図7の例であれば、0〜6ラインまでの補間演算の処理
が進行する。
終了したときは(S56がY)、次に全ラインの補間デ
ータの作成が終了したか否かを判別し(ステップS5
8)、終了していなければ(S58がN)、KASO_
Y=KASO_Y+STEP_Yの演算を行って仮想座
標をY軸方向に1ステップ進めて(ステップS59)、
上記ステップS53、S58を繰り返す。これにより、
図7の例であれば、0〜6ラインまでの補間演算の処理
が進行する。
【0051】そして、ステップS53で、次の所望ドッ
トが7ライン目の実データ(展開された実データの最終
ライン)の仮想座標と同じかそれよりも下になり、前述
の式(4)により、補間計算が不可能であることを判別
すると(S53がN)、図10に示すフローチャートの
処理に移る。
トが7ライン目の実データ(展開された実データの最終
ライン)の仮想座標と同じかそれよりも下になり、前述
の式(4)により、補間計算が不可能であることを判別
すると(S53がN)、図10に示すフローチャートの
処理に移る。
【0052】図10の処理では、先ず、カウンタiを
「1」インクリメントする(ステップS50)。これに
より、YMCワークエリア10の1/2領域毎(本例で
は8ライン分毎)のデータ変換が順次計数される。
「1」インクリメントする(ステップS50)。これに
より、YMCワークエリア10の1/2領域毎(本例で
は8ライン分毎)のデータ変換が順次計数される。
【0053】次に、2の「n−1」乗ライン分をイエロ
ー(又はマゼンタ、又はシアン)に色変換し、この色変
換したデータをYMCワークエリア10のエリアB12
に格納する(ステップS61)。この処理は、先にステ
ップS51でJPEG伸長された16ライン分の残り半
分の実データを色変換してYMCワークエリア10の下
方に展開する処理である。これにより、例えば図4に示
すように、いま最終ラインの下から2番目のライン(6
ライン目)まで処理の終了した先に上方に展開している
実データに続けて、8ライン目から15ライン目まで新
たな実データが展開される。
ー(又はマゼンタ、又はシアン)に色変換し、この色変
換したデータをYMCワークエリア10のエリアB12
に格納する(ステップS61)。この処理は、先にステ
ップS51でJPEG伸長された16ライン分の残り半
分の実データを色変換してYMCワークエリア10の下
方に展開する処理である。これにより、例えば図4に示
すように、いま最終ラインの下から2番目のライン(6
ライン目)まで処理の終了した先に上方に展開している
実データに続けて、8ライン目から15ライン目まで新
たな実データが展開される。
【0054】続くステップS62〜S68の処理は、処
理対象となるドットがエリアB12に展開された実デー
タによることのみが異なるだけで、処理の内容は図9の
ステップS53〜S59と同一である。更に言えば、ス
テップS62で判別する計算可能な条件は前述した計算
式(4)から、仮想座標値Y=8×r+(8−1)×r
=60(未満)として算出される。以下、上記のステッ
プS62からステップS68を繰り返して、上記の条件
を満たしている範囲まで、すなわち、<0,28>,・
・・,<2558,58>までの所望ドットの補間計算
が行われる(図4の7ライン目から15ライン目までの
実ドットの仮想座標値を参照)。
理対象となるドットがエリアB12に展開された実デー
タによることのみが異なるだけで、処理の内容は図9の
ステップS53〜S59と同一である。更に言えば、ス
テップS62で判別する計算可能な条件は前述した計算
式(4)から、仮想座標値Y=8×r+(8−1)×r
=60(未満)として算出される。以下、上記のステッ
プS62からステップS68を繰り返して、上記の条件
を満たしている範囲まで、すなわち、<0,28>,・
・・,<2558,58>までの所望ドットの補間計算
が行われる(図4の7ライン目から15ライン目までの
実ドットの仮想座標値を参照)。
【0055】ここで、図7及び図4に示すように最初に
8ライン毎に2回に分けて展開される実データは、YM
Cワークエリア10内のライン番号と1フレーム分のラ
イン番号とが一致している。つまり、YMCワークエリ
ア10上の仮想座標上の実データ位置と、1フレーム分
の仮想座標上の実データ位置とは一致している。したが
って、ステップS55又はステップS64において、仮
想座標上の所望データの位置に基づいて実データ位置を
算出する作業には何等の支障もない。
8ライン毎に2回に分けて展開される実データは、YM
Cワークエリア10内のライン番号と1フレーム分のラ
イン番号とが一致している。つまり、YMCワークエリ
ア10上の仮想座標上の実データ位置と、1フレーム分
の仮想座標上の実データ位置とは一致している。したが
って、ステップS55又はステップS64において、仮
想座標上の所望データの位置に基づいて実データ位置を
算出する作業には何等の支障もない。
【0056】ところで、図10のステップS62におい
て、KASO_Yのラインの補間計算が不可能(図4に
おいて最終ライン、15ライン目)となったとき、図9
のステップS51に戻り、新たな16ラインのJPEG
伸長の後、ステップS52で、図5に示すように、エリ
アA11に展開される実データは、所望ドットの1フレ
ーム分の仮想座標上での座標<0,60>,・・・,<
2558,90>に対応して、仮想座標<0、64>,
・・・,<2256,92>で表わされるが、この実デ
ータのYMCワークエリア10上での仮想座標は図7の
場合と同様である。すなわち、実データの座標値KAS
O_Xは常にYMCワークエリア10の仮想座標値と一
致するが、座標値KASO_Yは、15ラインを越えて
からはYMCワークエリア10の仮想座標値と一致しな
い。このようにYMCワークエリア10の仮想座標上の
位置と、1フレーム分の仮想座標上の位置とが一致しな
い。この状態は、この後、図6に示すように次の8ライ
ン分の実データがエリアB12に展開され、<0,92
>,・・・,<2558,122>の所望ドットの値を
求める場合も同様である。また、このことは、以後順次
8ライン毎にエリアA11、エリアB12と繰り返し展
開される実データについても同様である。
て、KASO_Yのラインの補間計算が不可能(図4に
おいて最終ライン、15ライン目)となったとき、図9
のステップS51に戻り、新たな16ラインのJPEG
伸長の後、ステップS52で、図5に示すように、エリ
アA11に展開される実データは、所望ドットの1フレ
ーム分の仮想座標上での座標<0,60>,・・・,<
2558,90>に対応して、仮想座標<0、64>,
・・・,<2256,92>で表わされるが、この実デ
ータのYMCワークエリア10上での仮想座標は図7の
場合と同様である。すなわち、実データの座標値KAS
O_Xは常にYMCワークエリア10の仮想座標値と一
致するが、座標値KASO_Yは、15ラインを越えて
からはYMCワークエリア10の仮想座標値と一致しな
い。このようにYMCワークエリア10の仮想座標上の
位置と、1フレーム分の仮想座標上の位置とが一致しな
い。この状態は、この後、図6に示すように次の8ライ
ン分の実データがエリアB12に展開され、<0,92
>,・・・,<2558,122>の所望ドットの値を
求める場合も同様である。また、このことは、以後順次
8ライン毎にエリアA11、エリアB12と繰り返し展
開される実データについても同様である。
【0057】ところが、本発明では、このような場合で
も何等の支障を生じない。むしろ極めて容易に所望ドッ
トの仮想座標値(1フレーム分の仮想座標上の位置デー
タ)から、これを取り囲む4個のYMCワークエリア1
0上の実データ位置を算出することができる。以下、こ
れを図6を用いて説明する。
も何等の支障を生じない。むしろ極めて容易に所望ドッ
トの仮想座標値(1フレーム分の仮想座標上の位置デー
タ)から、これを取り囲む4個のYMCワークエリア1
0上の実データ位置を算出することができる。以下、こ
れを図6を用いて説明する。
【0058】いま、所望ドットを図6の×印「仮想座標
<2、106>」であるとする。まず、<X,Y>をr
(この場合はr=4)で割ったときの商を求める。4で
割るということは前述したように右に2ビットシフトす
ることで求められる。上記の所望ドットの仮想座標<
2、106>の座標値「2」及び「106」を2ビット
右シフトすると、(0,26)が得られる。よって、補
間計算は、左上ドットの実座標(0,26),右上ドッ
トの実座標(1,26),左下ドットの実座標(0,2
7),右下ドットの実座標(1,27)により行うこと
になる。
<2、106>」であるとする。まず、<X,Y>をr
(この場合はr=4)で割ったときの商を求める。4で
割るということは前述したように右に2ビットシフトす
ることで求められる。上記の所望ドットの仮想座標<
2、106>の座標値「2」及び「106」を2ビット
右シフトすると、(0,26)が得られる。よって、補
間計算は、左上ドットの実座標(0,26),右上ドッ
トの実座標(1,26),左下ドットの実座標(0,2
7),右下ドットの実座標(1,27)により行うこと
になる。
【0059】ところで、この実座標値からYMCワーク
エリア10上のアドレスを計算しなければならない。実
座標値xは、YMCワークエリア10上のデータと1対
1に対応しているが、実座標値yが対応していない(つ
まり仮想座標が対応していない)ことは上述した。尚、
図7,図4の場合は、偶然、YMCワークエリア10上
のライン番号と実座標のY軸の値が一致していたもので
ある。
エリア10上のアドレスを計算しなければならない。実
座標値xは、YMCワークエリア10上のデータと1対
1に対応しているが、実座標値yが対応していない(つ
まり仮想座標が対応していない)ことは上述した。尚、
図7,図4の場合は、偶然、YMCワークエリア10上
のライン番号と実座標のY軸の値が一致していたもので
ある。
【0060】そこで、実座標yの下位4ビットに着目し
てみると、実座標値y=26の下位4ビットは、101
0Hつまり10進数で10である。同様にして実座標値
y=27の下位4ビットは10進数で11である。とこ
ろで、これらの値は、実座標値y=26のデータ15及
び16が展開しているYMCワークエリア10上のライ
ン番号及び実座標値y=27のデータ17及び18が展
開しているYMCワークエリア上のライン番号に夫々一
致する。つまり、図6から分かるとおり、実座標値y=
26の実座標データ15、16等は、YMCワークエリ
ア10のライン数を0から数えたときの10ライン目に
存在し、実座標値y=27の実座標データ17、18等
は、YMCワークエリア10の11ライン目に存在して
いる。
てみると、実座標値y=26の下位4ビットは、101
0Hつまり10進数で10である。同様にして実座標値
y=27の下位4ビットは10進数で11である。とこ
ろで、これらの値は、実座標値y=26のデータ15及
び16が展開しているYMCワークエリア10上のライ
ン番号及び実座標値y=27のデータ17及び18が展
開しているYMCワークエリア上のライン番号に夫々一
致する。つまり、図6から分かるとおり、実座標値y=
26の実座標データ15、16等は、YMCワークエリ
ア10のライン数を0から数えたときの10ライン目に
存在し、実座標値y=27の実座標データ17、18等
は、YMCワークエリア10の11ライン目に存在して
いる。
【0061】よって、実座標値yの下位4ビットの値を
求めることによって、実座標値yの実データが存在する
YMCワークエリア10上の位置を容易に求めることが
できる。すなわち、「(実座標値yの下位4ビットの
値)×640+(実座標値x)」によって、実座標
(0,26),(1,26),(0,27),(1,2
7)のYMCワークエリア10上の実データを得ること
ができ、これによって補間計算を行うことができる。
求めることによって、実座標値yの実データが存在する
YMCワークエリア10上の位置を容易に求めることが
できる。すなわち、「(実座標値yの下位4ビットの
値)×640+(実座標値x)」によって、実座標
(0,26),(1,26),(0,27),(1,2
7)のYMCワークエリア10上の実データを得ること
ができ、これによって補間計算を行うことができる。
【0062】ところで、実座標値yの下位4ビットとY
MCワークエリア上のライン数が一致するのは、YMC
ワークエリア10のライン数を2のべき乗としているこ
とによるものである。YHCワークエリア10のライン
数を2n (n=1,2,3,・・・)とすると、実座標
yの下位nビットとYMCワークエリア10上のライン
数を一致させることができる。
MCワークエリア上のライン数が一致するのは、YMC
ワークエリア10のライン数を2のべき乗としているこ
とによるものである。YHCワークエリア10のライン
数を2n (n=1,2,3,・・・)とすると、実座標
yの下位nビットとYMCワークエリア10上のライン
数を一致させることができる。
【0063】これにより、YMCワークエリア10から
実データを読み出すためのアドレス計算が単純になる。
つまり、rを2のべき乗の値にすることで、演算が簡単
になる。ただし、これは、YMCワークエリア10に2
n-1 ライン分(本例では8ライン分)の展開を行った
ら、その時点で、計算可能な最大限の範囲までの計算を
するということが条件である。
実データを読み出すためのアドレス計算が単純になる。
つまり、rを2のべき乗の値にすることで、演算が簡単
になる。ただし、これは、YMCワークエリア10に2
n-1 ライン分(本例では8ライン分)の展開を行った
ら、その時点で、計算可能な最大限の範囲までの計算を
するということが条件である。
【0064】尚、ある画像における最終の伸長データ
(実データ)による下位2n-1 ライン分の展開時の処理
に限り、この条件による判断は行わず、すべての補間計
算を行う。例えば、YMCワークエリア10を16ライ
ンとし、ソース画像が640×480のときのサイズ変
換処理では、最後の8ライン分の展開時のiは、i=5
9となる。これを(i×2n-1 +2n-1 −1)に入れて
計算すると479となる。つまり、もし、最後の8ライ
ン分の処理時も上記の判断を行ってしまうと、実座標y
=479未満までの計算しかできなくなってしまい、不
都合が生じる。これを回避するために、判断を行わない
ようにするのである。
(実データ)による下位2n-1 ライン分の展開時の処理
に限り、この条件による判断は行わず、すべての補間計
算を行う。例えば、YMCワークエリア10を16ライ
ンとし、ソース画像が640×480のときのサイズ変
換処理では、最後の8ライン分の展開時のiは、i=5
9となる。これを(i×2n-1 +2n-1 −1)に入れて
計算すると479となる。つまり、もし、最後の8ライ
ン分の処理時も上記の判断を行ってしまうと、実座標y
=479未満までの計算しかできなくなってしまい、不
都合が生じる。これを回避するために、判断を行わない
ようにするのである。
【0065】また、初期化時において変数KASO_X
及びKASO_Yに設定する値は補間計算を最初に行う
ドットの仮想座標値を入れることによって演算を行うか
ら、この初期値と補間ステップ及びサイズ変換後の画像
サイズを適宜に設定することによって画像の一部を拡大
することが容易にできる。例えば、図4〜図7の仮想座
標の場合は、初期値をX=1280,Y=960とし
て、X補間ステップを2、Y補間ステップを2とし、サ
イズ変換後の画像サイズを640×480ドットとすれ
ば、補間演算後はソース画像の右下1/4の範囲を拡大
した、ソース画像と同じサイズの画像を得ることができ
る(図11参照)。
及びKASO_Yに設定する値は補間計算を最初に行う
ドットの仮想座標値を入れることによって演算を行うか
ら、この初期値と補間ステップ及びサイズ変換後の画像
サイズを適宜に設定することによって画像の一部を拡大
することが容易にできる。例えば、図4〜図7の仮想座
標の場合は、初期値をX=1280,Y=960とし
て、X補間ステップを2、Y補間ステップを2とし、サ
イズ変換後の画像サイズを640×480ドットとすれ
ば、補間演算後はソース画像の右下1/4の範囲を拡大
した、ソース画像と同じサイズの画像を得ることができ
る(図11参照)。
【0066】また、X補間ステップ及びY補間ステップ
を、例えば、1対2の割合で設定して計算すると、横に
伸びた画像が得られる。このように、初期値、補間ステ
ップ、およびサイズ変換後の画像サイズの組み合わせに
より、様々な画像加工をすることができる。
を、例えば、1対2の割合で設定して計算すると、横に
伸びた画像が得られる。このように、初期値、補間ステ
ップ、およびサイズ変換後の画像サイズの組み合わせに
より、様々な画像加工をすることができる。
【0067】上記の第1の実施の形態では、まず16ラ
イン分のJPEG伸長結果をJPEGワークエリア上に
展開し、その後、変換したYMCデータをYMCワーク
エリアに展開するというようにしていた。これに対し、
JPEGワークエリアにおけるY(輝度)信号用の領域
のうちの上位8ライン分と、YMCワークエリアAを共
用するように構成することもできる。つまり、JPEG
伸長時は、上位8ライン分のY(輝度)データはYMC
ワークエリアAに展開し、下位8ライン分はJPEGワ
ークエリアに展開する。そして、YCbCr→RGB→
YMC変換については、上位8ライン分は、YMCワー
クエリアAの上で上書きするように変換し、下位8ライ
ン分は上記実施の形態の場合と同様にする。こうする
と、JPEGワークエリアがY(輝度)データに関して
は、8ライン分で済むことになり、必要なワークメモリ
をさらに少なくすることができる。
イン分のJPEG伸長結果をJPEGワークエリア上に
展開し、その後、変換したYMCデータをYMCワーク
エリアに展開するというようにしていた。これに対し、
JPEGワークエリアにおけるY(輝度)信号用の領域
のうちの上位8ライン分と、YMCワークエリアAを共
用するように構成することもできる。つまり、JPEG
伸長時は、上位8ライン分のY(輝度)データはYMC
ワークエリアAに展開し、下位8ライン分はJPEGワ
ークエリアに展開する。そして、YCbCr→RGB→
YMC変換については、上位8ライン分は、YMCワー
クエリアAの上で上書きするように変換し、下位8ライ
ン分は上記実施の形態の場合と同様にする。こうする
と、JPEGワークエリアがY(輝度)データに関して
は、8ライン分で済むことになり、必要なワークメモリ
をさらに少なくすることができる。
【0068】ところで、画像サイズ変換の演算は、すべ
てのドットに対して補間計算を行うため、演算量が非常
に大きい。これをCPUで処理しようとすると、演算に
多大な時間を要してしまう。ところで、上述した第1の
実施の形態において例として取り上げたように、640
×480ドツトを1920×960ドットに変換するよ
うな場合、ソース画像におけるドットと、変換後画像に
おけるドットが重なる(同じ値になる)ところがある。
上記の例の場合では、(0,0)と<0,0>、(1,
0)と<4,0>、・・・、(x,y)と<r×x,r
×y>,・・・、(639,479)と<2556,1
916>がこれに相当する。これらのドットは、補間計
算の際、仮想座標値をrで割った余りmod_x,mo
d_yの値が共に0になる。同様に、式(1)〜(3)
の計算においても、mod_x、またはmod_yが0
であることがある。このような場合、式(1)〜(3)
の計算は不必要になる。しかしながら、一般には、それ
らのデータについても、一つの処理フローを通して補間
計算を行っている。
てのドットに対して補間計算を行うため、演算量が非常
に大きい。これをCPUで処理しようとすると、演算に
多大な時間を要してしまう。ところで、上述した第1の
実施の形態において例として取り上げたように、640
×480ドツトを1920×960ドットに変換するよ
うな場合、ソース画像におけるドットと、変換後画像に
おけるドットが重なる(同じ値になる)ところがある。
上記の例の場合では、(0,0)と<0,0>、(1,
0)と<4,0>、・・・、(x,y)と<r×x,r
×y>,・・・、(639,479)と<2556,1
916>がこれに相当する。これらのドットは、補間計
算の際、仮想座標値をrで割った余りmod_x,mo
d_yの値が共に0になる。同様に、式(1)〜(3)
の計算においても、mod_x、またはmod_yが0
であることがある。このような場合、式(1)〜(3)
の計算は不必要になる。しかしながら、一般には、それ
らのデータについても、一つの処理フローを通して補間
計算を行っている。
【0069】本発明は、上記のような場合には、補間計
算をしないように制御し、補間計算の高速化を図ってい
る。以下、これを第2の実施の形態として説明する。図
12は、第2の実施の形態における補間計算処理のフロ
ーチャートである。また、以下の図中で使用している変
数などで、第1の実施の形態と同じものは、その変数の
意味なども第1の実施の形態の場合と同じである。尚、
図12は、サブルーチンとしての使用を想定している。
算をしないように制御し、補間計算の高速化を図ってい
る。以下、これを第2の実施の形態として説明する。図
12は、第2の実施の形態における補間計算処理のフロ
ーチャートである。また、以下の図中で使用している変
数などで、第1の実施の形態と同じものは、その変数の
意味なども第1の実施の形態の場合と同じである。尚、
図12は、サブルーチンとしての使用を想定している。
【0070】図13は、そのサブルーチンの入出力の関
係を示す図である。入力は、所望ドットの左上の実デー
タの実座標値(KASO_X>>d,KASO_Y>>
d)、および所望ドットとこの実座標値との距離の情報
となるmod_x,mod_yである。出力は所望ドッ
トの値である。
係を示す図である。入力は、所望ドットの左上の実デー
タの実座標値(KASO_X>>d,KASO_Y>>
d)、および所望ドットとこの実座標値との距離の情報
となるmod_x,mod_yである。出力は所望ドッ
トの値である。
【0071】図14は、本実施の形態における処理を説
明するためのドット(実データ)D0 ,D1 ,D2 及び
D3 の位置関係図である。上記図12〜図14を用い
て、サブルーチンの処理を以下に説明する。
明するためのドット(実データ)D0 ,D1 ,D2 及び
D3 の位置関係図である。上記図12〜図14を用い
て、サブルーチンの処理を以下に説明する。
【0072】サブルーチンをコールすると、まず、所望
ドットの左上のドットを読み出す(ステップS70)。
これにより、図14のデータD0 が読み出される。次
に、mod_xが0か否かを判別する(ステップS7
1)。この判別で、mod_xが0のときは(S71が
Y)、所望ドットがデータD0 とデータD2 の縦ライン
上にある場合であり、したがって、データD0 とデータ
D1 の補間計算は不要であるので、次のフローに移り、
mod_yが0か否かを判別する(ステップS72)。
ドットの左上のドットを読み出す(ステップS70)。
これにより、図14のデータD0 が読み出される。次
に、mod_xが0か否かを判別する(ステップS7
1)。この判別で、mod_xが0のときは(S71が
Y)、所望ドットがデータD0 とデータD2 の縦ライン
上にある場合であり、したがって、データD0 とデータ
D1 の補間計算は不要であるので、次のフローに移り、
mod_yが0か否かを判別する(ステップS72)。
【0073】この判別でmod_yも0であれば(S7
2がY)、所望ドットがデータD0とデータD1 の横ラ
イン上にある、すなわち、この場合はデータD0 そのも
のが所望ドットであり、したがって、この場合は補間計
算は全く必要ないのでデータD0 を所望ドットのデータ
としてリターンする。
2がY)、所望ドットがデータD0とデータD1 の横ラ
イン上にある、すなわち、この場合はデータD0 そのも
のが所望ドットであり、したがって、この場合は補間計
算は全く必要ないのでデータD0 を所望ドットのデータ
としてリターンする。
【0074】上記ステップS72で、mod_yが0で
なければ(S72がN)、データD2 を読み出し(ステ
ップS74)、データD0 とデータD2 、およびmod
_yを用いて仮想データD02の値の計算を行う(ステッ
プS75)。そして、この仮想データD02を所望ドット
のデータとしてリターンする。
なければ(S72がN)、データD2 を読み出し(ステ
ップS74)、データD0 とデータD2 、およびmod
_yを用いて仮想データD02の値の計算を行う(ステッ
プS75)。そして、この仮想データD02を所望ドット
のデータとしてリターンする。
【0075】また、ステップS71の判別で、mod_
xが0でないときは(S71がN)、データD1 を読み
出し(ステップS77)、データD0 とデータD1 、お
よびmod_xを用いて仮想データD01の値を計算する
(ステップS78)。そして、mod_yの判別を行う
(ステップS79)。
xが0でないときは(S71がN)、データD1 を読み
出し(ステップS77)、データD0 とデータD1 、お
よびmod_xを用いて仮想データD01の値を計算する
(ステップS78)。そして、mod_yの判別を行う
(ステップS79)。
【0076】ここで、mod_yが0であれば(S79
がY)、所望ドットがデータD0 とデータD1 の横ライ
ン上にある。すなわち、この場合は、データD01を所望
ドットのデータとしてリターンする。また、mod_y
が0でなければ(S79がN)、データD2 とデータD
3 を読み出し(ステップS81及びS82)、データD
2 とデータD3 及びmod_yを用いて仮想データD23
を計算する(ステップS83)。そして、このデータD
23と、先に求めたデータD01、およびmod_yでデー
タD0123を求め、これを所望ドットの値としてリターン
する。
がY)、所望ドットがデータD0 とデータD1 の横ライ
ン上にある。すなわち、この場合は、データD01を所望
ドットのデータとしてリターンする。また、mod_y
が0でなければ(S79がN)、データD2 とデータD
3 を読み出し(ステップS81及びS82)、データD
2 とデータD3 及びmod_yを用いて仮想データD23
を計算する(ステップS83)。そして、このデータD
23と、先に求めたデータD01、およびmod_yでデー
タD0123を求め、これを所望ドットの値としてリターン
する。
【0077】これにより、補間計算の必要のない所望ド
ットに対する不必要な補間計算がなくなるので、補間計
算の処理を効率的に行うことができるようになる。その
結果、演算量が軽減され、処理が高速になる。
ットに対する不必要な補間計算がなくなるので、補間計
算の処理を効率的に行うことができるようになる。その
結果、演算量が軽減され、処理が高速になる。
【0078】尚、上記の例では画像のサイズ変換などの
際の補間計算を例にして説明したが、例えば、RGBデ
ータをYMCデータに変換する場合などにおいても、空
間の一点を周辺の既知の点から求めるという補間計算が
必要になるので、そのような場合にも上記の処理を適用
してよい。この場合もデータ変換の処理の高速化が可能
となる。
際の補間計算を例にして説明したが、例えば、RGBデ
ータをYMCデータに変換する場合などにおいても、空
間の一点を周辺の既知の点から求めるという補間計算が
必要になるので、そのような場合にも上記の処理を適用
してよい。この場合もデータ変換の処理の高速化が可能
となる。
【0079】
【発明の効果】以上説明したように、本発明によれば、
ワークメモリを2n ラインに設定するので、通常ではワ
ークメモリを減らすことによって複雑になる処理フロー
を極めて簡単に構成でき、したがって、メモリ容量が少
なく且つサイズ変換処理が高速な画像処理装置を提供す
ることが可能となる。また、1フレーム分よりも小さい
メモリを用いても補間計算の座標算出が容易であるの
で、JPEGなどで圧縮された画像を伸長する際にこの
伸長計算と並行して補間計算を行うことができ、したが
って、サイズ変換処理を更に高速に行うことが可能とな
る。また、2n ラインの設定条件でワークメモリを任意
に小さく設定できるので、例えばソース画像のデータサ
イズが640×480ドットの場合では従来比で96%
のメモリが削減され、したがって、メモリ容量の節減の
度合が極めて大きく、これにより、コスト低減に貢献す
ることができる。また、演算不要のドットの位置を弁別
しながら補間処理を行うので、画像サイズ変換の際に多
用される計算処理を効率良く行うことができ、してがっ
て、全体としての演算量が軽減されて更に高速な画像処
理が可能となる。
ワークメモリを2n ラインに設定するので、通常ではワ
ークメモリを減らすことによって複雑になる処理フロー
を極めて簡単に構成でき、したがって、メモリ容量が少
なく且つサイズ変換処理が高速な画像処理装置を提供す
ることが可能となる。また、1フレーム分よりも小さい
メモリを用いても補間計算の座標算出が容易であるの
で、JPEGなどで圧縮された画像を伸長する際にこの
伸長計算と並行して補間計算を行うことができ、したが
って、サイズ変換処理を更に高速に行うことが可能とな
る。また、2n ラインの設定条件でワークメモリを任意
に小さく設定できるので、例えばソース画像のデータサ
イズが640×480ドットの場合では従来比で96%
のメモリが削減され、したがって、メモリ容量の節減の
度合が極めて大きく、これにより、コスト低減に貢献す
ることができる。また、演算不要のドットの位置を弁別
しながら補間処理を行うので、画像サイズ変換の際に多
用される計算処理を効率良く行うことができ、してがっ
て、全体としての演算量が軽減されて更に高速な画像処
理が可能となる。
【図1】第1の実施の形態における画像処理装置の構成
を示すブロック図である。
を示すブロック図である。
【図2】第1の実施の形態において用いるデータ伸長及
びサイズ変換に使用するイエロー(マゼンタ,シアン)
用のワークメモリ領域(YMCワークエリア)のアドレ
スマップを示す図である。
びサイズ変換に使用するイエロー(マゼンタ,シアン)
用のワークメモリ領域(YMCワークエリア)のアドレ
スマップを示す図である。
【図3】YMCワークエリアに展開される実データのア
ドレスと実座標の関係及び実データの展開状態を示す図
である。
ドレスと実座標の関係及び実データの展開状態を示す図
である。
【図4】YMCワークエリアに順次8ライン毎に展開さ
れる実データと仮想座標の関係及び実データの展開状態
を示す図(その1)である。
れる実データと仮想座標の関係及び実データの展開状態
を示す図(その1)である。
【図5】YMCワークエリアに順次8ライン毎に展開さ
れる実データと仮想座標の関係及び実データの展開状態
を示す図(その2)である。
れる実データと仮想座標の関係及び実データの展開状態
を示す図(その2)である。
【図6】YMCワークエリアに順次8ライン毎に展開さ
れる実データと仮想座標の関係及び実データの展開状態
を示す図(その3)である。
れる実データと仮想座標の関係及び実データの展開状態
を示す図(その3)である。
【図7】図3の実データ展開図を仮想座標で図示し直し
て示す図である。
て示す図である。
【図8】第1の実施の形態における処理の動作を示すフ
ローチャートである。
ローチャートである。
【図9】図8のフローチャートの処理を更に詳しく説明
するフローチャート(その1)である。
するフローチャート(その1)である。
【図10】図8のフローチャートの処理を更に詳しく説
明するフローチャート(その2)である。
明するフローチャート(その2)である。
【図11】補間演算によりソース画像の右下1/4の範
囲を拡大してソース画像と同じサイズの画像を得ること
ができることを説明する図である。
囲を拡大してソース画像と同じサイズの画像を得ること
ができることを説明する図である。
【図12】第2の実施の形態における補間計算処理のフ
ローチャート(サブルーチン)である。
ローチャート(サブルーチン)である。
【図13】サブルーチンの入出力の関係を示す図であ
る。
る。
【図14】第2の実施の形態における処理を説明するた
めのドット(実データ)の位置関係図である。
めのドット(実データ)の位置関係図である。
【図15】画像処理を行う場合に画像データが展開され
る例えば640×480ドットのフレームメモリの領域
を模式的に示す図である。
る例えば640×480ドットのフレームメモリの領域
を模式的に示す図である。
【図16】従来の補間によって求めるべき新データの位
置を座標系上の1点として表すために新たに導入される
座標系を示す図である。
置を座標系上の1点として表すために新たに導入される
座標系を示す図である。
【図17】従来のプリンタにおける画像処理動作を示す
フローチャートである。
フローチャートである。
1 画像処理装置 2 印刷制御回路 3 ディジタルカメラ(カメラ) 4 CPU 5 印刷スタートキー 6 データ用メモリ 7 ワーク用メモリ 8 印刷用メモリ 9 ROM 11 YMCワークエリアA 12 YMCワークエリアB
Claims (8)
- 【請求項1】 画像処理に用いるメモリのライン数を2
n (n=1,2,3,・・・)とすることを特徴とする
画像処理装置。 - 【請求項2】 前記メモリは、アドレスの値が連続する
数値で表わされることを特徴とする請求項1記載の画像
処理装置。 - 【請求項3】 原画像データを二次元平面として扱って
画像処理する際に用いるメモリ上における各画素の座標
(x,y)が連続する座標値(m,n)で表わされ、メ
モリのライン数が2n (n=1,2,3,・・・)に設
定されているとき、メモリ上のアドレスを計算する際
に、座標の下位nビットを用いることを特徴とする画像
処理装置。 - 【請求項4】 前記画像処理は、画像データのサイズ変
換のための補間計算であることを特徴とする請求項3記
載の画像処理装置。 - 【請求項5】 前記補間計算は、予め定めた条件式によ
り補間計算が可能か否かを判断しながら行うことを特徴
とする請求項3又は4記載の画像処理装置。 - 【請求項6】 前記条件式は、仮想座標を実座標のr倍
の分解能とし、メモリライン数の1/2ライン数毎の実
データ展開回数をiとしたとき、前記補間計算の対象ド
ットの仮想座標値Yが「Y<(2n-1 ×(i+1)−
1)×r」を満たすか又は対象ドットの左上の実データ
のドットの実座標値yが「y <(i×2n-1 +2n-1
−1)」を満たすとき補間計算が可能であると判断する
ことを特徴とする請求項3、4又は5記載の画像処理装
置。 - 【請求項7】 前記条件式に基づく判断を最終の処理の
ときには行わないことを特徴とする請求項3、4、5又
は6記載の画像処理装置。 - 【請求項8】 空間の任意の1点を、その周辺の既知の
点から求める補間処理において、処理の中で行う計算が
省略可能か否かを判断し、省略可能な場合は、その計算
を行わないように制御することを特徴とする画像処理装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8359132A JPH10198338A (ja) | 1996-12-28 | 1996-12-28 | 画像処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8359132A JPH10198338A (ja) | 1996-12-28 | 1996-12-28 | 画像処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10198338A true JPH10198338A (ja) | 1998-07-31 |
Family
ID=18462910
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8359132A Pending JPH10198338A (ja) | 1996-12-28 | 1996-12-28 | 画像処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10198338A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007086432A (ja) * | 2005-09-22 | 2007-04-05 | Sony Corp | 表示制御装置、および表示制御方法 |
-
1996
- 1996-12-28 JP JP8359132A patent/JPH10198338A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007086432A (ja) * | 2005-09-22 | 2007-04-05 | Sony Corp | 表示制御装置、および表示制御方法 |
| US8284213B2 (en) | 2005-09-22 | 2012-10-09 | Sony Corporation | Display control apparatus and display control method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5034806A (en) | Image processing apparatus and method | |
| US5021876A (en) | Image processing apparatus with real-time texture processing | |
| US5729664A (en) | Image processing apparatus and method for converting an input color image signal from one color space to another | |
| US6088124A (en) | Color image processing apparatus and method | |
| GB2379149A (en) | Display controller including display address generator | |
| JP3285930B2 (ja) | 画像処理装置 | |
| JPH0481227B2 (ja) | ||
| JPH10198338A (ja) | 画像処理装置 | |
| US5878194A (en) | Method and device for outputting multicolor document | |
| JPS5935270A (ja) | 画素密度変換装置 | |
| JP2730399B2 (ja) | イメージデータ縮小装置 | |
| US5673120A (en) | Image output device | |
| JPH0863140A (ja) | 画像処理装置 | |
| JPH07123240A (ja) | デジタル画像処理システムの領域信号生成方法及び装置 | |
| JP3258479B2 (ja) | 画像処理システム | |
| JP2914400B2 (ja) | 管理情報出力装置 | |
| JP3039657B2 (ja) | 画像処理装置 | |
| JP2655621B2 (ja) | 管理情報出力装置 | |
| JPH09154009A (ja) | プリンタ装置 | |
| JP2567185B2 (ja) | 図形処理方法 | |
| JPH0779356A (ja) | カラー画像処理方法及びその装置 | |
| JPH10285387A (ja) | 画像処理装置 | |
| JP2006165649A (ja) | 多次元データ変換装置及び方法 | |
| JPH0758427B2 (ja) | 画像処理装置 | |
| JPS61143878A (ja) | 画像デ−タ処理回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070213 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070413 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070904 |