JPH07110859A - 画像処理方法およびその装置 - Google Patents
画像処理方法およびその装置Info
- Publication number
- JPH07110859A JPH07110859A JP5257271A JP25727193A JPH07110859A JP H07110859 A JPH07110859 A JP H07110859A JP 5257271 A JP5257271 A JP 5257271A JP 25727193 A JP25727193 A JP 25727193A JP H07110859 A JPH07110859 A JP H07110859A
- Authority
- JP
- Japan
- Prior art keywords
- data
- image
- pixel data
- axis direction
- pixel
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【目的】 カラー画像の補間処理をともなう拡大縮小処
理を高速に行なう。 【構成】 MPU1がシステムメモリ2のプログラムに
従って、画像を補間をしながら拡大縮小処理する。原画
像をX軸方向にP倍する場合、原画像の画素間領域を、
仮想的にX軸方向に8個、Y軸方向に8個に分割して、
微小領域ごとに微小領域の4個の近傍画素間の一致・不
一致の関係の組み合わせにより、4個の近傍画素の内ど
の画素データを選択するかをテーブル化し、P倍後の画
像の画素に対応する原画像における位置の微小領域と、
その微小領域の4個の近傍画素データ間の一致・不一致
の関係の組み合わせにより、4個の近傍画素から画素デ
ータを選択して、X方向に8倍にされた画像に相当する
画素データを生成し、さらにそれをX軸方向にP/8倍
することでX軸方向にP倍された画像を生成する。
理を高速に行なう。 【構成】 MPU1がシステムメモリ2のプログラムに
従って、画像を補間をしながら拡大縮小処理する。原画
像をX軸方向にP倍する場合、原画像の画素間領域を、
仮想的にX軸方向に8個、Y軸方向に8個に分割して、
微小領域ごとに微小領域の4個の近傍画素間の一致・不
一致の関係の組み合わせにより、4個の近傍画素の内ど
の画素データを選択するかをテーブル化し、P倍後の画
像の画素に対応する原画像における位置の微小領域と、
その微小領域の4個の近傍画素データ間の一致・不一致
の関係の組み合わせにより、4個の近傍画素から画素デ
ータを選択して、X方向に8倍にされた画像に相当する
画素データを生成し、さらにそれをX軸方向にP/8倍
することでX軸方向にP倍された画像を生成する。
Description
【0001】
【産業上の利用分野】本発明は、PPC、ファクシミ
リ、DTPシステムなどのオフィスオートメーション機
器の分野における、画像データの補間をともなう拡大縮
小処理に適した画像処理装置に関するものである。
リ、DTPシステムなどのオフィスオートメーション機
器の分野における、画像データの補間をともなう拡大縮
小処理に適した画像処理装置に関するものである。
【0002】
【従来の技術】従来、画像データの拡大、縮小における
補間処理の1つ方法として、例えば、拡大縮小後の画像
の画素に対応する原画像における位置を求め、その位置
の周辺画素からの距離をその周辺画素データに重み付け
して、拡大縮小後の画像の画素データを生成する方法が
ある。この場合、距離の演算や、重み付け演算などの膨
大な演算をする必要があり、また、実際には8ビット/
画素の画像を、カラーマップテーブルを用いて、擬似的
にCRTにフルカラー表示するシステムの場合には、一
旦、カラーマップテーブルを参照して、拡大縮小後の画
像の画素データを生成し、さらに新たなカラーマップテ
ーブルを生成してCRTに表示する必要があった。
補間処理の1つ方法として、例えば、拡大縮小後の画像
の画素に対応する原画像における位置を求め、その位置
の周辺画素からの距離をその周辺画素データに重み付け
して、拡大縮小後の画像の画素データを生成する方法が
ある。この場合、距離の演算や、重み付け演算などの膨
大な演算をする必要があり、また、実際には8ビット/
画素の画像を、カラーマップテーブルを用いて、擬似的
にCRTにフルカラー表示するシステムの場合には、一
旦、カラーマップテーブルを参照して、拡大縮小後の画
像の画素データを生成し、さらに新たなカラーマップテ
ーブルを生成してCRTに表示する必要があった。
【0003】また別の方法として、特開昭63-282886 号
公報において提案されている方法がある。図57は、従
来の補間方法を示すものである。原画像領域の画素間の
領域を細分化して得られる各微小領域ごとに、いずれの
近傍画素を選択するかを指定する情報を記憶した参照テ
ーブルを、2値化された近傍画素情報の組合せに対応し
て複数通りROMに記憶し、拡大縮小処理後の1つ1つ
の画素に対して、対応する原画像領域における微小領域
を算出し、その微小領域の近傍画素データを2値化し
て、その2値化された画素データの組合せに対応する参
照テーブルを選択し、その参照テーブルから対応する微
小領域に応じて、いずれの近傍画素を選択するかを指定
する情報を読みだし、その情報によって選択された近傍
画素データを拡大縮小後の画素データとしてメモリへ書
き込むことによって補間を実現していた。
公報において提案されている方法がある。図57は、従
来の補間方法を示すものである。原画像領域の画素間の
領域を細分化して得られる各微小領域ごとに、いずれの
近傍画素を選択するかを指定する情報を記憶した参照テ
ーブルを、2値化された近傍画素情報の組合せに対応し
て複数通りROMに記憶し、拡大縮小処理後の1つ1つ
の画素に対して、対応する原画像領域における微小領域
を算出し、その微小領域の近傍画素データを2値化し
て、その2値化された画素データの組合せに対応する参
照テーブルを選択し、その参照テーブルから対応する微
小領域に応じて、いずれの近傍画素を選択するかを指定
する情報を読みだし、その情報によって選択された近傍
画素データを拡大縮小後の画素データとしてメモリへ書
き込むことによって補間を実現していた。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
従来技術では、原画像の画素データの2値化演算をする
必要があり、特に、1画素が8ビットで表される画像を
カラーマップテーブルを用いて、疑似的にCRTにフル
カラー表示するシステムにおいては、それぞれの画素に
ついてカラーマップテーブルを参照してから2値化をす
る必要があり、高速な処理が実現できないという課題を
有していた。
従来技術では、原画像の画素データの2値化演算をする
必要があり、特に、1画素が8ビットで表される画像を
カラーマップテーブルを用いて、疑似的にCRTにフル
カラー表示するシステムにおいては、それぞれの画素に
ついてカラーマップテーブルを参照してから2値化をす
る必要があり、高速な処理が実現できないという課題を
有していた。
【0005】本発明は、上記従来技術の課題を解決する
もので、カラー画像の補間処理を含む拡大縮小処理を高
速に行なうことのできる画像処理方法およびその装置を
提供することを目的とする。
もので、カラー画像の補間処理を含む拡大縮小処理を高
速に行なうことのできる画像処理方法およびその装置を
提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、本発明の画像処理方法は、原画像(1画素がiビッ
ト( iは任意の正の整数) のデータによって表されるデ
ジタル画像)の画素間の領域を仮想的にX軸方向にN
(Nは任意の正の整数)個、Y軸方向にM(Mは任意の
正の整数)個に分割し、得られた微小領域ごとに、K
(Kは任意の正の整数)個の近傍画素データ間の一致・
不一致の関係の組み合わせによってK個の近傍画素デー
タの内どの画素データを選択するかをあらかじめ定めて
おき、拡大縮小後の画像(1画素がiビットのデータに
よって表されるデジタル画像)の画素に対応する原画像
領域における微小領域と、その微小領域のK個の近傍画
素データ間の一致・不一致の関係の組み合わせを求める
ことによって、K個の近傍画素データの内からあらかじ
め定められた画素データを選択して拡大縮小後の画素デ
ータとするようにしたものである。
に、本発明の画像処理方法は、原画像(1画素がiビッ
ト( iは任意の正の整数) のデータによって表されるデ
ジタル画像)の画素間の領域を仮想的にX軸方向にN
(Nは任意の正の整数)個、Y軸方向にM(Mは任意の
正の整数)個に分割し、得られた微小領域ごとに、K
(Kは任意の正の整数)個の近傍画素データ間の一致・
不一致の関係の組み合わせによってK個の近傍画素デー
タの内どの画素データを選択するかをあらかじめ定めて
おき、拡大縮小後の画像(1画素がiビットのデータに
よって表されるデジタル画像)の画素に対応する原画像
領域における微小領域と、その微小領域のK個の近傍画
素データ間の一致・不一致の関係の組み合わせを求める
ことによって、K個の近傍画素データの内からあらかじ
め定められた画素データを選択して拡大縮小後の画素デ
ータとするようにしたものである。
【0007】また上記画像処理方法を用いた本発明の画
像処理装置は、画像データを蓄積する蓄積手段と、画像
データを処理する中央処理装置と、中央処理装置の動作
を制御する制御データを蓄積する蓄積手段とを備え、原
画像(1画素がiビット( iは任意の正の整数) のデー
タによって表されるデジタル画像)の画素間の領域を仮
想的にX軸方向にN(Nは任意の正の整数)個、Y軸方
向にM(Mは任意の正の整数)個に分割し、得られた微
小領域ごとに、K(Kは任意の正の整数)個の近傍画素
データ間の一致・不一致の関係の組み合わせによってK
個の近傍画素データの内どの画素データを選択するかを
あらかじめ定めておき、拡大縮小後の画像(1画素がi
ビットのデータによって表されるデジタル画像)の画素
に対応する原画像領域における微小領域と、その微小領
域のK個の近傍画素データ間の一致・不一致の関係の組
み合わせを求めることによって、K個の近傍画素データ
の内からあらかじめ定められた画素データを選択して拡
大縮小後の画素データを生成するようにしたものであ
る。
像処理装置は、画像データを蓄積する蓄積手段と、画像
データを処理する中央処理装置と、中央処理装置の動作
を制御する制御データを蓄積する蓄積手段とを備え、原
画像(1画素がiビット( iは任意の正の整数) のデー
タによって表されるデジタル画像)の画素間の領域を仮
想的にX軸方向にN(Nは任意の正の整数)個、Y軸方
向にM(Mは任意の正の整数)個に分割し、得られた微
小領域ごとに、K(Kは任意の正の整数)個の近傍画素
データ間の一致・不一致の関係の組み合わせによってK
個の近傍画素データの内どの画素データを選択するかを
あらかじめ定めておき、拡大縮小後の画像(1画素がi
ビットのデータによって表されるデジタル画像)の画素
に対応する原画像領域における微小領域と、その微小領
域のK個の近傍画素データ間の一致・不一致の関係の組
み合わせを求めることによって、K個の近傍画素データ
の内からあらかじめ定められた画素データを選択して拡
大縮小後の画素データを生成するようにしたものであ
る。
【0008】また本発明の画像処理装置は、微小領域の
K(Kは任意の正の整数)個の近傍画素データ間の一致
・不一致の関係の組み合わせによってK個の近傍画素デ
ータの内どの画素データを選択するかをあらかじめ定め
てテーブル化しておき、原画像をX軸方向にN倍した後
の画像の画素に対応する原画像における微小領域で、し
かもK個の近傍画素データが互いに共通で且つ互いにX
軸方向に隣合うN個の微小領域と、その微小領域のK個
の近傍画素データ間の一致・不一致の関係の組み合わせ
を求めることによって、上記テーブルを参照してK個の
近傍画素データの内からあらかじめ定められた画素デー
タを選択してX方向にN倍に拡大された画像に相当する
画素データを生成するようにしたものである。
K(Kは任意の正の整数)個の近傍画素データ間の一致
・不一致の関係の組み合わせによってK個の近傍画素デ
ータの内どの画素データを選択するかをあらかじめ定め
てテーブル化しておき、原画像をX軸方向にN倍した後
の画像の画素に対応する原画像における微小領域で、し
かもK個の近傍画素データが互いに共通で且つ互いにX
軸方向に隣合うN個の微小領域と、その微小領域のK個
の近傍画素データ間の一致・不一致の関係の組み合わせ
を求めることによって、上記テーブルを参照してK個の
近傍画素データの内からあらかじめ定められた画素デー
タを選択してX方向にN倍に拡大された画像に相当する
画素データを生成するようにしたものである。
【0009】さらに本発明による画像処理装置は、制御
データを蓄積する蓄積手段に、X方向にN倍に拡大され
たデータをX軸方向にP/N倍(Pは0より大きい任意
の有理数)する制御データを加えたものである。
データを蓄積する蓄積手段に、X方向にN倍に拡大され
たデータをX軸方向にP/N倍(Pは0より大きい任意
の有理数)する制御データを加えたものである。
【0010】さらに本発明による画像処理装置は、制御
データを蓄積する蓄積手段に、原画像(1画素がiビッ
ト( iは任意の正の整数) のデータによって表されるデ
ジタル画像)をX軸方向にN倍(Nは任意の正の整
数)、Y軸方向にQ倍(Qは0より大きい任意の有理
数)した後の画像の画素に対応する原画像における微小
領域を求める制御データを加えたものである。
データを蓄積する蓄積手段に、原画像(1画素がiビッ
ト( iは任意の正の整数) のデータによって表されるデ
ジタル画像)をX軸方向にN倍(Nは任意の正の整
数)、Y軸方向にQ倍(Qは0より大きい任意の有理
数)した後の画像の画素に対応する原画像における微小
領域を求める制御データを加えたものである。
【0011】さらに本発明による画像処理装置は、中央
処理装置と、画像データを蓄積する蓄積手段と、中央処
理装置の動作を制御する制御データを蓄積する蓄積手段
と、同時に複数の画素データをX軸方向に任意の倍率で
拡大縮小してメモリに書き込む画像処理手段を備え、中
央処理装置が原画像をX軸方向にN倍、Y軸方向にQ倍
した後の画像の画素に対応する原画像における微小領域
で、しかもK個の近傍画素データが互いに共通で且つ互
いにX軸方向に隣合うN個の微小領域と、そのN個の微
小領域のK個の近傍画素データ間の一致・不一致の関係
の組み合わせを求めることによって、テーブルを参照し
てK個の近傍画素データの内からあらかじめ定められた
画素データを選択してX方向にN倍、Y軸方向にQ倍に
された画像に相当する画素データを生成し、さらに、そ
の生成された画素データを、画像処理手段がX軸方向に
P/N倍することによって、X軸方向にP倍、Y軸方向
にQ倍された画像を生成するようにしたものである。
処理装置と、画像データを蓄積する蓄積手段と、中央処
理装置の動作を制御する制御データを蓄積する蓄積手段
と、同時に複数の画素データをX軸方向に任意の倍率で
拡大縮小してメモリに書き込む画像処理手段を備え、中
央処理装置が原画像をX軸方向にN倍、Y軸方向にQ倍
した後の画像の画素に対応する原画像における微小領域
で、しかもK個の近傍画素データが互いに共通で且つ互
いにX軸方向に隣合うN個の微小領域と、そのN個の微
小領域のK個の近傍画素データ間の一致・不一致の関係
の組み合わせを求めることによって、テーブルを参照し
てK個の近傍画素データの内からあらかじめ定められた
画素データを選択してX方向にN倍、Y軸方向にQ倍に
された画像に相当する画素データを生成し、さらに、そ
の生成された画素データを、画像処理手段がX軸方向に
P/N倍することによって、X軸方向にP倍、Y軸方向
にQ倍された画像を生成するようにしたものである。
【0012】さらに本発明による画像処理方法およびそ
の装置は、拡大縮小後または変倍後の画像の画素に対応
する原画像領域における微小領域のK個(Kは任意の正
の整数)の近傍画素データ間の一致・不一致の関係の組
み合わせを求める処理において、処理の冗長性と、近傍
画素データ間の空間的な連続性から、実際的な画像デー
タの処理において、画素データ間の論理演算の回数が最
小になる順序で、画素データ間の論理演算を行なうよう
にしたものである。
の装置は、拡大縮小後または変倍後の画像の画素に対応
する原画像領域における微小領域のK個(Kは任意の正
の整数)の近傍画素データ間の一致・不一致の関係の組
み合わせを求める処理において、処理の冗長性と、近傍
画素データ間の空間的な連続性から、実際的な画像デー
タの処理において、画素データ間の論理演算の回数が最
小になる順序で、画素データ間の論理演算を行なうよう
にしたものである。
【0013】さらに本発明の画像処理装置は、中央処理
装置と、画像データを蓄積する蓄積手段と、中央処理装
置の動作を制御する制御データを蓄積する蓄積手段と、
同時に複数の画素データをX軸方向に任意の倍率で拡大
縮小してメモリに書き込む画像処理手段と、複数のテー
ブルデータを格納する格納手段と、K個(Kは任意の正
の整数)の画素データ間の一致・不一致の関係の組み合
わせを同時に求める比較手段と、K個の画素データから
N画素(Nは任意の正の整数)のデータを選択する選択
手段とを備え、格納手段に微小領域のK個の近傍画素デ
ータ間の一致・不一致の関係の組み合わせによってK個
の近傍画素データの内どの画素データを選択するかをあ
らかじめ定めた複数個のテーブルを格納し、原画像をX
軸方向にN倍、Y軸方向にQ倍した後の画像の画素に対
応する原画像における微小領域で、しかもK個の近傍画
素データが互いに共通で且つ互いにX軸方向に隣合うN
個の微小領域のK個の近傍画素データ間の一致・不一致
の関係の組み合わせを比較手段によって求め、選択手段
が格納手段のテーブルを参照してK個の近傍画素データ
からあらかじめ定められたN画素のデータを選択し、X
方向にN倍、Y軸方向にQ倍にされた画像に相当するN
個の画素データを生成し、さらにその生成された画素デ
ータを、画像処理手段がX軸方向にP/N倍することに
よって、X軸方向にP倍、Y軸方向にQ倍された画像を
生成するようにしたものである。
装置と、画像データを蓄積する蓄積手段と、中央処理装
置の動作を制御する制御データを蓄積する蓄積手段と、
同時に複数の画素データをX軸方向に任意の倍率で拡大
縮小してメモリに書き込む画像処理手段と、複数のテー
ブルデータを格納する格納手段と、K個(Kは任意の正
の整数)の画素データ間の一致・不一致の関係の組み合
わせを同時に求める比較手段と、K個の画素データから
N画素(Nは任意の正の整数)のデータを選択する選択
手段とを備え、格納手段に微小領域のK個の近傍画素デ
ータ間の一致・不一致の関係の組み合わせによってK個
の近傍画素データの内どの画素データを選択するかをあ
らかじめ定めた複数個のテーブルを格納し、原画像をX
軸方向にN倍、Y軸方向にQ倍した後の画像の画素に対
応する原画像における微小領域で、しかもK個の近傍画
素データが互いに共通で且つ互いにX軸方向に隣合うN
個の微小領域のK個の近傍画素データ間の一致・不一致
の関係の組み合わせを比較手段によって求め、選択手段
が格納手段のテーブルを参照してK個の近傍画素データ
からあらかじめ定められたN画素のデータを選択し、X
方向にN倍、Y軸方向にQ倍にされた画像に相当するN
個の画素データを生成し、さらにその生成された画素デ
ータを、画像処理手段がX軸方向にP/N倍することに
よって、X軸方向にP倍、Y軸方向にQ倍された画像を
生成するようにしたものである。
【0014】さらに本発明の画像処理装置は、上記構成
に加え、微小領域のK個の近傍画素データ間の一致・不
一致の関係の組み合わせによってK個の近傍画素データ
の内どの画素データを選択するかをあらかじめ定めた複
数個のテーブルを、L個の格納手段にそれぞれ格納し、
原画像をX軸方向にN倍、Y軸方向にQ倍した後の画像
の画素に対応する原画像における微小領域で、しかもK
個の近傍画素データが互いに共通で且つ互いにX軸方向
に隣合うN個の微小領域のK個の近傍画素データ間の一
致・不一致の関係の組み合わせをL組のK個の近傍画素
データに対してL個の比較手段によって同時に求め、L
個の選択手段がL個の格納手段のテーブルを同時に参照
してL組のK個の近傍画素データからあらかじめ定めら
れたLN画素のデータを選択し、X方向にN倍、Y軸方
向にQ倍にされた画像に相当するLN個の画素データを
同時に生成し、さらにその生成された画素データを、画
像処理手段がX軸方向にP/N倍することによって、X
軸方向にP倍、Y軸方向にQ倍された画像を生成するよ
うにしたものである。
に加え、微小領域のK個の近傍画素データ間の一致・不
一致の関係の組み合わせによってK個の近傍画素データ
の内どの画素データを選択するかをあらかじめ定めた複
数個のテーブルを、L個の格納手段にそれぞれ格納し、
原画像をX軸方向にN倍、Y軸方向にQ倍した後の画像
の画素に対応する原画像における微小領域で、しかもK
個の近傍画素データが互いに共通で且つ互いにX軸方向
に隣合うN個の微小領域のK個の近傍画素データ間の一
致・不一致の関係の組み合わせをL組のK個の近傍画素
データに対してL個の比較手段によって同時に求め、L
個の選択手段がL個の格納手段のテーブルを同時に参照
してL組のK個の近傍画素データからあらかじめ定めら
れたLN画素のデータを選択し、X方向にN倍、Y軸方
向にQ倍にされた画像に相当するLN個の画素データを
同時に生成し、さらにその生成された画素データを、画
像処理手段がX軸方向にP/N倍することによって、X
軸方向にP倍、Y軸方向にQ倍された画像を生成するよ
うにしたものである。
【0015】
【作用】本発明の画像処理方法およびその装置は、上記
構成により、単純な論理演算だけで拡大縮小後の補間処
理された画素データを生成することができ、しかも、8
ビット/画素の画像を、カラーマップテーブルを用いて
疑似的にCRTにフルカラー表示するシステムにおいて
は、画像の拡大縮小における補間処理を、カラーマップ
テーブルを参照することなく、また新たにカラーマップ
テーブルを生成することもなく、高速に、線形補間法と
類似の補間効果を簡易的に得ることができる。特に、斜
め線の拡大時に生じる段差を、目立たなくする効果があ
る。
構成により、単純な論理演算だけで拡大縮小後の補間処
理された画素データを生成することができ、しかも、8
ビット/画素の画像を、カラーマップテーブルを用いて
疑似的にCRTにフルカラー表示するシステムにおいて
は、画像の拡大縮小における補間処理を、カラーマップ
テーブルを参照することなく、また新たにカラーマップ
テーブルを生成することもなく、高速に、線形補間法と
類似の補間効果を簡易的に得ることができる。特に、斜
め線の拡大時に生じる段差を、目立たなくする効果があ
る。
【0016】
(実施例1)以下、本発明の画像処理方法を用いた画像
処理装置の第1の実施例について、図面を参照しながら
説明する。図1はこの実施例1における画像処理装置の
機能ブロック図である。図1において、1はプログラム
に従って画像を処理するMPU(Multi Processing Uni
t) 、2はMPU1が実行するプログラムを格納するシ
ステムメモリ、3は画像データを格納する画像データメ
モリ、4はCRTに表示されるデータを格納する表示メ
モリ、5は表示メモリ4とCRTを制御するCRTコン
トローラ、6は表示メモリ4に格納された画像データを
表示するCRT、7は32ビットのバスである。この画
像処理装置は、画像データメモリ3上または表示メモリ
4上の矩形領域の原画像を、補間処理をしながらX軸方
向、Y軸方向独立に任意の倍率で拡大縮小処理して、表
示メモリ4または画像データメモリ3に書き込むように
構成されている。処理するデータは8ビット/画素のカ
ラー画像データであり、データの8ビットが1画素に相
当する。以下において、微小領域とは、原画像の画素間
の領域をX軸方向に8分割、Y軸方向に8分割した場合
に現れる仮想上の微小な領域を意味し、また、ワードは
32ビット、ショートワードは16ビット、バイトは8
ビットを意味するものとする。
処理装置の第1の実施例について、図面を参照しながら
説明する。図1はこの実施例1における画像処理装置の
機能ブロック図である。図1において、1はプログラム
に従って画像を処理するMPU(Multi Processing Uni
t) 、2はMPU1が実行するプログラムを格納するシ
ステムメモリ、3は画像データを格納する画像データメ
モリ、4はCRTに表示されるデータを格納する表示メ
モリ、5は表示メモリ4とCRTを制御するCRTコン
トローラ、6は表示メモリ4に格納された画像データを
表示するCRT、7は32ビットのバスである。この画
像処理装置は、画像データメモリ3上または表示メモリ
4上の矩形領域の原画像を、補間処理をしながらX軸方
向、Y軸方向独立に任意の倍率で拡大縮小処理して、表
示メモリ4または画像データメモリ3に書き込むように
構成されている。処理するデータは8ビット/画素のカ
ラー画像データであり、データの8ビットが1画素に相
当する。以下において、微小領域とは、原画像の画素間
の領域をX軸方向に8分割、Y軸方向に8分割した場合
に現れる仮想上の微小な領域を意味し、また、ワードは
32ビット、ショートワードは16ビット、バイトは8
ビットを意味するものとする。
【0017】以上のように構成された画像処理装置にお
いて、画像データメモリ3の画像をX軸方向にP倍(P
は任意の正の有理数)、Y軸方向にQ倍(Qは任意の正
の有理数)して、CRT6に表示する場合、システムメ
モリ2のプログラムにしたがって、MPU1が、画像デ
ータメモリ3から画像データを読み出し、補間処理をし
ながらX軸方向にP倍、Y軸方向にQ倍にして、表示メ
モリ4に書き込む。表示メモリ4に書き込まれた画像
は、CRTコントローラ5によってCRT6に表示され
る。MPU1による画像の補間処理を伴う拡大縮小処理
は、メモリ3、4上の画像データに対して、同様に行な
われる。したがって、画像データメモリ3の画像をX軸
方向にP倍、Y軸方向にQ倍して、画像データメモリ3
に格納する場合も、表示メモリ4の画像をX軸方向にP
倍、Y軸方向にQ倍して、画像データメモリ3に格納す
る場合も、表示メモリ4の画像をX軸方向にP倍、Y軸
方向にQ倍して表示メモリ4に書き込む場合も、全てM
PU1がメモリ3、4上の原画像データを読み出し、補
間処理をしながらX軸方向にP倍、Y軸方向にQ倍にし
てメモリ3、4に書き込むことになる。MPU1による
システムメモリ2からのプログラムのロード、およびM
PU1によるメモリ3、4からの画像データの読み出し
と処理したデータのメモリ3、4への書き込みは、全て
バス7を介して行なわれる。
いて、画像データメモリ3の画像をX軸方向にP倍(P
は任意の正の有理数)、Y軸方向にQ倍(Qは任意の正
の有理数)して、CRT6に表示する場合、システムメ
モリ2のプログラムにしたがって、MPU1が、画像デ
ータメモリ3から画像データを読み出し、補間処理をし
ながらX軸方向にP倍、Y軸方向にQ倍にして、表示メ
モリ4に書き込む。表示メモリ4に書き込まれた画像
は、CRTコントローラ5によってCRT6に表示され
る。MPU1による画像の補間処理を伴う拡大縮小処理
は、メモリ3、4上の画像データに対して、同様に行な
われる。したがって、画像データメモリ3の画像をX軸
方向にP倍、Y軸方向にQ倍して、画像データメモリ3
に格納する場合も、表示メモリ4の画像をX軸方向にP
倍、Y軸方向にQ倍して、画像データメモリ3に格納す
る場合も、表示メモリ4の画像をX軸方向にP倍、Y軸
方向にQ倍して表示メモリ4に書き込む場合も、全てM
PU1がメモリ3、4上の原画像データを読み出し、補
間処理をしながらX軸方向にP倍、Y軸方向にQ倍にし
てメモリ3、4に書き込むことになる。MPU1による
システムメモリ2からのプログラムのロード、およびM
PU1によるメモリ3、4からの画像データの読み出し
と処理したデータのメモリ3、4への書き込みは、全て
バス7を介して行なわれる。
【0018】本実施例におけるMPU1による補間処理
を伴う拡大縮小処理は、基本的に図2に示す手順で行な
われる。図2には、原画像をX軸方向にP倍(Pは0よ
り大きい任意の有理数)にする場合の基本処理が示され
ている。ステップ20で拡大縮小後の画素に対応する原画
像における参照データをメモリから読み出し、ステップ
21で8倍補間拡大処理して、読み出された参照データか
ら補間処理をしながらX軸方向に8倍に拡大されたデー
タを生成する。さらに、X軸方向に8倍に拡大されたデ
ータを、ステップ22でX軸方向にP/8倍してX軸方向
にP倍にされたデータを生成し、ステップ23でメモリに
書き込む。
を伴う拡大縮小処理は、基本的に図2に示す手順で行な
われる。図2には、原画像をX軸方向にP倍(Pは0よ
り大きい任意の有理数)にする場合の基本処理が示され
ている。ステップ20で拡大縮小後の画素に対応する原画
像における参照データをメモリから読み出し、ステップ
21で8倍補間拡大処理して、読み出された参照データか
ら補間処理をしながらX軸方向に8倍に拡大されたデー
タを生成する。さらに、X軸方向に8倍に拡大されたデ
ータを、ステップ22でX軸方向にP/8倍してX軸方向
にP倍にされたデータを生成し、ステップ23でメモリに
書き込む。
【0019】原画像S(X軸方向の画素数がsnx 、Y軸
方向の画素数がsny の矩形の画像(snx,sny は1以上の
整数)をX軸方向にP倍(Pは0より大きい任意の有理
数)、Y軸方向にQ倍(Qは0より大きい任意の有理
数)に拡大縮小処理して画像D(X軸方向の画素数がdn
x 、Y軸方向の画素数がdny の矩形の画像(dnx,dnyは1
以上の整数,dnx= Psnx,dny=Qsny))を生成する場合に
は、図3のフローチャートに示す手順で拡大縮小処理を
行なう。図3において、ステップ30のsは、画像Dの行
番号を表し、0行目は画像Dの上端の行を、(dny - 1)
行目は画像Dの下端の行を表す。ステップ30で、sは0
に初期設定される。ステップ31では、この拡大縮小処理
の終了判定を行ない、s= dny の場合に処理を終了し、
それ以外の場合は処理を続行する。ステップ32のjは、
原画像Sの列番号を表し、0列目は原画像Sの左端の列
を、(snx - 1) 行目は原画像Sの右端の列を表す。ステ
ップ32で、jは0に設定される。ステップ33では、画像
Dのs行目のデータを生成する処理の終了判定を行な
い、j = snx の場合に、ステップ39でsをインクリメン
トし、それ以外の場合は、ステップ33〜38の処理を繰り
返す。ステップ34〜37の処理は、図2に示した基本処理
であり、ここでステップ34の処理の詳細は図5に示して
あり、またステップ35の処理は、図4のステップ406 〜
408 に相当する。図5および図4については後で詳述す
る。ステップ38では、jをインクリメントする。画像D
のs行のデータに対応する原画像Sの0列目から(snx -
1) 列目の参照データに対して、X軸方向に連続して基
本処理を行なうことにより、画像Dのs行のデータが生
成される。この画像Dの1行のデータを生成する処理
を、画像Dの0行目から(dny - 1) 行目に対して、Y軸
方向に連続して実行することにより、結果として、X軸
方向にP倍、Y軸方向にQ倍に拡大縮小された画像Dを
生成する。
方向の画素数がsny の矩形の画像(snx,sny は1以上の
整数)をX軸方向にP倍(Pは0より大きい任意の有理
数)、Y軸方向にQ倍(Qは0より大きい任意の有理
数)に拡大縮小処理して画像D(X軸方向の画素数がdn
x 、Y軸方向の画素数がdny の矩形の画像(dnx,dnyは1
以上の整数,dnx= Psnx,dny=Qsny))を生成する場合に
は、図3のフローチャートに示す手順で拡大縮小処理を
行なう。図3において、ステップ30のsは、画像Dの行
番号を表し、0行目は画像Dの上端の行を、(dny - 1)
行目は画像Dの下端の行を表す。ステップ30で、sは0
に初期設定される。ステップ31では、この拡大縮小処理
の終了判定を行ない、s= dny の場合に処理を終了し、
それ以外の場合は処理を続行する。ステップ32のjは、
原画像Sの列番号を表し、0列目は原画像Sの左端の列
を、(snx - 1) 行目は原画像Sの右端の列を表す。ステ
ップ32で、jは0に設定される。ステップ33では、画像
Dのs行目のデータを生成する処理の終了判定を行な
い、j = snx の場合に、ステップ39でsをインクリメン
トし、それ以外の場合は、ステップ33〜38の処理を繰り
返す。ステップ34〜37の処理は、図2に示した基本処理
であり、ここでステップ34の処理の詳細は図5に示して
あり、またステップ35の処理は、図4のステップ406 〜
408 に相当する。図5および図4については後で詳述す
る。ステップ38では、jをインクリメントする。画像D
のs行のデータに対応する原画像Sの0列目から(snx -
1) 列目の参照データに対して、X軸方向に連続して基
本処理を行なうことにより、画像Dのs行のデータが生
成される。この画像Dの1行のデータを生成する処理
を、画像Dの0行目から(dny - 1) 行目に対して、Y軸
方向に連続して実行することにより、結果として、X軸
方向にP倍、Y軸方向にQ倍に拡大縮小された画像Dを
生成する。
【0020】図3に示した処理において、ステップ35の
「8倍補間拡大処理」とステップ36の「X軸方向にP/
8倍する」処理は、X軸方向に関する処理をしているだ
けで、Y軸方向の処理には関与していない。原画像Sを
Y軸方向にQ倍に変倍する処理は、ステップ34の「画像
Dのs行に対応する参照データをメモリから読み出す」
処理と、ステップ37の「生成されたデータをメモリに書
き込む」処理との組み合せによって実現される。
「8倍補間拡大処理」とステップ36の「X軸方向にP/
8倍する」処理は、X軸方向に関する処理をしているだ
けで、Y軸方向の処理には関与していない。原画像Sを
Y軸方向にQ倍に変倍する処理は、ステップ34の「画像
Dのs行に対応する参照データをメモリから読み出す」
処理と、ステップ37の「生成されたデータをメモリに書
き込む」処理との組み合せによって実現される。
【0021】8倍補間拡大処理は、補間処理をしながら
X軸方向に8倍に拡大されたデータを生成する処理であ
る。8倍補間拡大処理において実現されているアルゴリ
ズムは、原画像の画素間の領域をX軸方向、Y軸方向そ
れぞれ8個に分割して得られる微小領域ごとに、4個の
近傍画素データ間の一致・不一致の関係の組み合わせよ
って、4個の近傍画素データの内どの画素データを拡大
縮小後の画素データとして選択するかをあらかじめ定め
ておき、拡大縮小後の画像の画素に対応する原画像領域
における微小領域と4個の近傍画素データ間の一致・不
一致の関係の組み合わせによって、4個の近傍画素デー
タの内からあらかじめ定められた画素データを選択して
拡大縮小後の画素データとするものである。
X軸方向に8倍に拡大されたデータを生成する処理であ
る。8倍補間拡大処理において実現されているアルゴリ
ズムは、原画像の画素間の領域をX軸方向、Y軸方向そ
れぞれ8個に分割して得られる微小領域ごとに、4個の
近傍画素データ間の一致・不一致の関係の組み合わせよ
って、4個の近傍画素データの内どの画素データを拡大
縮小後の画素データとして選択するかをあらかじめ定め
ておき、拡大縮小後の画像の画素に対応する原画像領域
における微小領域と4個の近傍画素データ間の一致・不
一致の関係の組み合わせによって、4個の近傍画素デー
タの内からあらかじめ定められた画素データを選択して
拡大縮小後の画素データとするものである。
【0022】以下において、8倍補間拡大処理のアルゴ
リズムについて詳しく説明する。前述したように、従来
の画像の拡大縮小における補間処理の一つの方法とし
て、拡大縮小後の画像の画素に対応する原画像における
位置を求め、その位置の周辺画素からの距離をその周辺
画素データに重み付けして、拡大縮小後の画像の画素デ
ータを生成する方法がある。しかし、この場合、距離の
演算や、重み付け演算などの膨大な演算をする必要があ
る。また、実際には8ビット/画素の画像を、カラーマ
ップテーブルを用いて、疑似的にCRTにフルカラー表
示するシステムの場合には、一旦、カラーマップテーブ
ルを参照して、拡大縮小後の画像の画素データを生成
し、さらに、新たにカラーマップテーブルを生成してC
RTに表示する必要があった。
リズムについて詳しく説明する。前述したように、従来
の画像の拡大縮小における補間処理の一つの方法とし
て、拡大縮小後の画像の画素に対応する原画像における
位置を求め、その位置の周辺画素からの距離をその周辺
画素データに重み付けして、拡大縮小後の画像の画素デ
ータを生成する方法がある。しかし、この場合、距離の
演算や、重み付け演算などの膨大な演算をする必要があ
る。また、実際には8ビット/画素の画像を、カラーマ
ップテーブルを用いて、疑似的にCRTにフルカラー表
示するシステムの場合には、一旦、カラーマップテーブ
ルを参照して、拡大縮小後の画像の画素データを生成
し、さらに、新たにカラーマップテーブルを生成してC
RTに表示する必要があった。
【0023】そこで、本実施例では、原画像の画素間の
領域を、仮想的に微小領域に分割して、微小領域ごと
に、4個の近傍画素データ間の一致・不一致の関係の組
み合わせよって、4個の近傍画素データの内どの画素デ
ータを拡大縮小後の画素データとして選択するかをあら
かじめ定めておき、拡大縮小後の画像の画素に対応する
原画像領域における微小領域と4個の近傍画素データ間
の一致・不一致の関係の組み合わせによって、4個の近
傍画素データの内からあらかじめ定められた画素データ
を選択して拡大縮小後の画素データとする。これによ
り、従来の距離の重み付け演算を行なう方法と類似の補
間効果を簡易的に得ることができる。特に、斜め線の拡
大時に生じる段差を、目立たなくする効果がある。ま
た、カラーマップテーブルを参照する必要がなく、また
新たにカラーマップテーブルを生成する必要もなく、単
純な論理演算だけで拡大縮小後の画素データを生成する
ことができる。
領域を、仮想的に微小領域に分割して、微小領域ごと
に、4個の近傍画素データ間の一致・不一致の関係の組
み合わせよって、4個の近傍画素データの内どの画素デ
ータを拡大縮小後の画素データとして選択するかをあら
かじめ定めておき、拡大縮小後の画像の画素に対応する
原画像領域における微小領域と4個の近傍画素データ間
の一致・不一致の関係の組み合わせによって、4個の近
傍画素データの内からあらかじめ定められた画素データ
を選択して拡大縮小後の画素データとする。これによ
り、従来の距離の重み付け演算を行なう方法と類似の補
間効果を簡易的に得ることができる。特に、斜め線の拡
大時に生じる段差を、目立たなくする効果がある。ま
た、カラーマップテーブルを参照する必要がなく、また
新たにカラーマップテーブルを生成する必要もなく、単
純な論理演算だけで拡大縮小後の画素データを生成する
ことができる。
【0024】ここで、原画像Sを生成する場合を考え
る。原画像Sのi行j列目(i, jは”0”以上の整
数)の画素データSijは格子間隔" 1" の格子点上に存
在し、拡大縮小後の画像Dのs行t列目(s, t は”
0”以上の整数)の画素データDstも格子間隔" 1" の
格子点上に存在する。例えば、図6に示すようにX軸方
向、Y軸方向の画素数が4の矩形領域の画像を原画像S
として、X軸方向に5/4倍(P=5/4)、Y軸方向
に3/4倍(Q=3/4)して、図7に示すようにX軸
方向の画素数が5、Y軸方向の画素数が3の矩形領域の
画像Dを生成する場合、画像データS00の座標が(1/2,1
/2) となる場合の座標(0,0) の点を原点Oとして、拡大
縮小処理を行なったとすると、画像Dの画素データDst
に対応する原画像Sにおける位置は、原点Oを中心とし
て原画像Sの格子間隔をX軸方向に4/5倍(1/P
倍)、Y軸方向4/3倍(1/Q倍)した場合の格子点
の位置に相当する(図6参照)。これは、任意の大きさ
の画像を任意の倍率で拡大縮小する場合にも成り立ち、
画像Dの画素データDstに対応する原画像Sにおける位
置は、原点Oを中心として原画像Sの格子間隔をX軸方
向に1/P倍、Y軸方向に1/Q倍した場合の格子点の
位置に相当する。
る。原画像Sのi行j列目(i, jは”0”以上の整
数)の画素データSijは格子間隔" 1" の格子点上に存
在し、拡大縮小後の画像Dのs行t列目(s, t は”
0”以上の整数)の画素データDstも格子間隔" 1" の
格子点上に存在する。例えば、図6に示すようにX軸方
向、Y軸方向の画素数が4の矩形領域の画像を原画像S
として、X軸方向に5/4倍(P=5/4)、Y軸方向
に3/4倍(Q=3/4)して、図7に示すようにX軸
方向の画素数が5、Y軸方向の画素数が3の矩形領域の
画像Dを生成する場合、画像データS00の座標が(1/2,1
/2) となる場合の座標(0,0) の点を原点Oとして、拡大
縮小処理を行なったとすると、画像Dの画素データDst
に対応する原画像Sにおける位置は、原点Oを中心とし
て原画像Sの格子間隔をX軸方向に4/5倍(1/P
倍)、Y軸方向4/3倍(1/Q倍)した場合の格子点
の位置に相当する(図6参照)。これは、任意の大きさ
の画像を任意の倍率で拡大縮小する場合にも成り立ち、
画像Dの画素データDstに対応する原画像Sにおける位
置は、原点Oを中心として原画像Sの格子間隔をX軸方
向に1/P倍、Y軸方向に1/Q倍した場合の格子点の
位置に相当する。
【0025】ここで図8に示すように、仮想的に、画素
間の領域をX軸方向に8分割、Y軸方向に8分割し、画
素データSijの周囲の64個の微小領域をAijmn(m=
0,1, 2, 3, 4, 5, 6, 7 ,n=0, 1, 2, 3,
4, 5, 6, 7) とすると、微小領域の行はiとmに
よって、列はjとnによって表すことができ、微小領域
をi, j, m, nによって一意的に表すことができる。
画素データDstに対応する原画像Sにおける座標が、微
小領域Aijmnに存在する場合、s, tとi, j,m, n
の間には式(1)、式(2)に示す関係式が成り立つ。
なお、(それぞれの微小領域は、左辺の領域の境界と上
辺の領域の境界を領域に含み、右辺の領域の境界と下辺
の領域の境界を領域に含まないとする。また式(1)、
式(2)の” ”はガウス記号であり、” 8s/Q ”
は”8s/Q”を越えない最大の整数を表す。 [(8t+4)/P]=8j+n ・・・(1) [(8s+4)/Q]=8i+m ・・・(2)
間の領域をX軸方向に8分割、Y軸方向に8分割し、画
素データSijの周囲の64個の微小領域をAijmn(m=
0,1, 2, 3, 4, 5, 6, 7 ,n=0, 1, 2, 3,
4, 5, 6, 7) とすると、微小領域の行はiとmに
よって、列はjとnによって表すことができ、微小領域
をi, j, m, nによって一意的に表すことができる。
画素データDstに対応する原画像Sにおける座標が、微
小領域Aijmnに存在する場合、s, tとi, j,m, n
の間には式(1)、式(2)に示す関係式が成り立つ。
なお、(それぞれの微小領域は、左辺の領域の境界と上
辺の領域の境界を領域に含み、右辺の領域の境界と下辺
の領域の境界を領域に含まないとする。また式(1)、
式(2)の” ”はガウス記号であり、” 8s/Q ”
は”8s/Q”を越えない最大の整数を表す。 [(8t+4)/P]=8j+n ・・・(1) [(8s+4)/Q]=8i+m ・・・(2)
【0026】本実施例の補間処理では、例えば図8にお
いて、画素データDstに対応する原画像Sにおける座標
が、微小領域Aij00, Aij01, Aij02, Aij03, Aij10,
Aij11, Aij12, Aij13, Aij20, Aij21, Aij22, A
ij23, Aij30, Aij31, Aij32, Aij33の何れかにある
場合、画素データDstは、Si-1j-1, Si-1j, Sij,S
ij-1の組合せによって、Si-1j-1, Si-1j, Sij, Sij
-1から選択される。また画素データDstに対応する原画
像Sにおける座標が、微小領域Aij04, Aij05, Aij0
6, Aij07, Aij14, Aij15, Aij16, Aij17, Aij24,
Aij25, Aij26, Aij27, Aij34, Aij35, Aij36,
Aij37の何れかにある場合、画素データDstは、Si-1
j, Si-1j+1, Sij+1, Sijの組合せによって、Si-1j,
Si-1j+1,Sij+1, Sijから選択される。さらに画素デ
ータDstに対応する原画像Sにおける座標が、微小領域
Aij44, Aij45, Aij46, Aij47, Aij54, Aij55, A
ij56, Aij57, Aij64, Aij65, Aij66, Aij67, Aij
74, Aij75, Aij76, Aij77の何れかにある場合、画素
データDstは、Sij, Sij+1, Si+1j, Si+1j+1の組合
せによって、Sij, Sij+1, Si+1j, Si+1j+1から選択
される。さらにまた画素データDstに対応する原画像S
における座標が、微小領域Aij40, Aij41, Aij42, A
ij43, Aij50, Aij51, Aij52, Aij53, Aij60, Aij
61, Aij62, Aij63, Aij70, Aij71, Aij72, Aij73
の何れかにある場合、画素データDstは、Sij-1, Si
j, Si+1j,Si+1j-1の組合せによって、Sij-1, Sij,
Si+1j,Si+1j-1から選択される。
いて、画素データDstに対応する原画像Sにおける座標
が、微小領域Aij00, Aij01, Aij02, Aij03, Aij10,
Aij11, Aij12, Aij13, Aij20, Aij21, Aij22, A
ij23, Aij30, Aij31, Aij32, Aij33の何れかにある
場合、画素データDstは、Si-1j-1, Si-1j, Sij,S
ij-1の組合せによって、Si-1j-1, Si-1j, Sij, Sij
-1から選択される。また画素データDstに対応する原画
像Sにおける座標が、微小領域Aij04, Aij05, Aij0
6, Aij07, Aij14, Aij15, Aij16, Aij17, Aij24,
Aij25, Aij26, Aij27, Aij34, Aij35, Aij36,
Aij37の何れかにある場合、画素データDstは、Si-1
j, Si-1j+1, Sij+1, Sijの組合せによって、Si-1j,
Si-1j+1,Sij+1, Sijから選択される。さらに画素デ
ータDstに対応する原画像Sにおける座標が、微小領域
Aij44, Aij45, Aij46, Aij47, Aij54, Aij55, A
ij56, Aij57, Aij64, Aij65, Aij66, Aij67, Aij
74, Aij75, Aij76, Aij77の何れかにある場合、画素
データDstは、Sij, Sij+1, Si+1j, Si+1j+1の組合
せによって、Sij, Sij+1, Si+1j, Si+1j+1から選択
される。さらにまた画素データDstに対応する原画像S
における座標が、微小領域Aij40, Aij41, Aij42, A
ij43, Aij50, Aij51, Aij52, Aij53, Aij60, Aij
61, Aij62, Aij63, Aij70, Aij71, Aij72, Aij73
の何れかにある場合、画素データDstは、Sij-1, Si
j, Si+1j,Si+1j-1の組合せによって、Sij-1, Sij,
Si+1j,Si+1j-1から選択される。
【0027】また、図9において、画素データDstに対
応する原画像Sにおける座標が画素データSij, Sij+
1, Si+1j, Si+1j+1の画素間領域の64個の微小領域
の中に存在する場合、同様に、画素データSij, Sij+
1, Si+1j, Si+1j+1間の一致・不一致の関係の組合せ
と、Sij, Sij+1, Si+1j, Si+1j+1の画素間領域にお
ける微小領域の相対的な位置によって、画素データDst
は、Sij, Sij+1, Si+1j,Si+1j+1の中から選択され
る。
応する原画像Sにおける座標が画素データSij, Sij+
1, Si+1j, Si+1j+1の画素間領域の64個の微小領域
の中に存在する場合、同様に、画素データSij, Sij+
1, Si+1j, Si+1j+1間の一致・不一致の関係の組合せ
と、Sij, Sij+1, Si+1j, Si+1j+1の画素間領域にお
ける微小領域の相対的な位置によって、画素データDst
は、Sij, Sij+1, Si+1j,Si+1j+1の中から選択され
る。
【0028】4個の画素データSij, Sij+1, Si+1j,
Si+1j+1間の一致・不一致の関係を数値によって表すた
めに、関数C(Sij, Sij+1, Si+1j, Si+1j+1)を式
(3)に示すように定義する。 C(Sij, Sij;+1, Si+1j, Si+1j+1 )= 2 5 δ(Sij, Si+1j) +2 4 δ(Sij+1, Si+1j+1) +2 3 δ(Sij, Sij+1) +2 2 δ(Si+1j, Si+1j+1) +2 1 δ(Sij, Si+1j+1) +2 0 δ(Sij+1, Si+1j)・・・(3)
Si+1j+1間の一致・不一致の関係を数値によって表すた
めに、関数C(Sij, Sij+1, Si+1j, Si+1j+1)を式
(3)に示すように定義する。 C(Sij, Sij;+1, Si+1j, Si+1j+1 )= 2 5 δ(Sij, Si+1j) +2 4 δ(Sij+1, Si+1j+1) +2 3 δ(Sij, Sij+1) +2 2 δ(Si+1j, Si+1j+1) +2 1 δ(Sij, Si+1j+1) +2 0 δ(Sij+1, Si+1j)・・・(3)
【0029】ここで、δ( U, V) は、式(4)示すよ
うに、画素データU, Vのビット列が完全に一致してい
る場合に1となり、それ以外の場合は0となる関数であ
る。 δ(U,V)= 1(U=V) 0(U≠V) ・・・・(4)
うに、画素データU, Vのビット列が完全に一致してい
る場合に1となり、それ以外の場合は0となる関数であ
る。 δ(U,V)= 1(U=V) 0(U≠V) ・・・・(4)
【0030】この関数C(Sij, Sij+1, Si+1j, Si+
1j+1)の数値によって、4個の画素データSij, Sij+
1, Si+1j, Si+1j+1間の一致・不一致の関係の組合せ
は一意的に定まる。画素データSij, Sij+1, Si+1j,
Si+1j+1間の一致・不一致の関係には、15通りの組合
せがあり、したがって、関数C(Sij, Sij+1, Si+1
j,Si+1j+1)は、15通りの値を取り得る。C(Sij,
Sij+1, Si+1j, Si+1j+1)の値と、微小領域ごとの
選択される画素データとの関係を図11〜図25に示
す。図11〜図25において、微小領域の位置に示され
た原画像Sの画素データが、Dstとして選択される画素
データである。また、関数Cの値は、2進数で表してい
る。
1j+1)の数値によって、4個の画素データSij, Sij+
1, Si+1j, Si+1j+1間の一致・不一致の関係の組合せ
は一意的に定まる。画素データSij, Sij+1, Si+1j,
Si+1j+1間の一致・不一致の関係には、15通りの組合
せがあり、したがって、関数C(Sij, Sij+1, Si+1
j,Si+1j+1)は、15通りの値を取り得る。C(Sij,
Sij+1, Si+1j, Si+1j+1)の値と、微小領域ごとの
選択される画素データとの関係を図11〜図25に示
す。図11〜図25において、微小領域の位置に示され
た原画像Sの画素データが、Dstとして選択される画素
データである。また、関数Cの値は、2進数で表してい
る。
【0031】ここで、P=8の場合を考えると、図10
に示すとおり、画素データDstに対応する原画像Sにお
ける位置は、原点を点OとするX軸方向の間隔が1/
8、Y軸方向の間隔が1/Qの格子点の位置に相当し、
その格子点が微小領域Aijmnに存在する場合、関係式
(1)から次の関係式(5)が成り立つ。 t=8j+n ・・・(5)
に示すとおり、画素データDstに対応する原画像Sにお
ける位置は、原点を点OとするX軸方向の間隔が1/
8、Y軸方向の間隔が1/Qの格子点の位置に相当し、
その格子点が微小領域Aijmnに存在する場合、関係式
(1)から次の関係式(5)が成り立つ。 t=8j+n ・・・(5)
【0032】この時、画素データDs8j,Ds8j+1,Ds8j+
2,Ds8j+3,Ds8j+4,Ds8j+5,Ds8j+6,Ds8j+7 に対応す
る原画像Sにおける座標は、それぞれ微小領域Aijm0,
Aijm1, Aijm2, Aijm3, Aijm4, Aijm5, Aijm6, A
ijm7に存在する。つまり、X軸方向に8倍、Y軸方向に
Q倍した場合の画像の隣合う同一行の画素に関して、対
応する微小領域は重複することは無く、1対1に対応
し、しかもそれは隣り合う同一行の微小領域である。こ
のことから、逆にX軸方向に8倍、Y軸方向にQ倍した
場合の画素Ds8j+n に対応する原画像領域の微小領域の
行が求まれば、対応する微小領域Aijmnが求まる。
2,Ds8j+3,Ds8j+4,Ds8j+5,Ds8j+6,Ds8j+7 に対応す
る原画像Sにおける座標は、それぞれ微小領域Aijm0,
Aijm1, Aijm2, Aijm3, Aijm4, Aijm5, Aijm6, A
ijm7に存在する。つまり、X軸方向に8倍、Y軸方向に
Q倍した場合の画像の隣合う同一行の画素に関して、対
応する微小領域は重複することは無く、1対1に対応
し、しかもそれは隣り合う同一行の微小領域である。こ
のことから、逆にX軸方向に8倍、Y軸方向にQ倍した
場合の画素Ds8j+n に対応する原画像領域の微小領域の
行が求まれば、対応する微小領域Aijmnが求まる。
【0033】同様にして、画素データDs8j+4,Ds8j+5,
Ds8j+6,Ds8j+7,Ds8(j+1),Ds8(j+1)+1, Ds8(j+1)+
2,Ds8(j+1)+3に対応する原画像Sにおける座標は、そ
れぞれ微小領域Aijm4,Aijm5, Aijm6, Aijm7, Ai(j
+1)m0, Ai(j+1)m1, Ai(j+1)m2, Ai(j+1)m3に存在
し、画素データDs8j+4,Ds8j+5,Ds8j+6,Ds8j+7,Ds8
(j+1), Ds8(j+1)+1,Ds8(j+1)+2,Ds8(j+1)+3 は、対
応する微小領域の近傍4画素Sij, Sij+1, Si+1j, S
i+1j+1( (8s + 4)/Q - 8i ≧ 4 の場合) (またはS
i-1j, Si-1j+1, Sij, Sij+1( (8s + 4)/Q - 8i <
4 の場合) )間の一致・不一致の関係の組合せによっ
て、図11〜図25に示したC(Sij, Sij+1, Si+1
j, Si+1j+1)( (8s + 4)/Q - 8i ≧ 4 の場合)
(またはC(Si-1j, Si-1j+1, Sij, Sij+1)( (8s
+ 4)/Q - 8i < 4 の場合) )の値と、微小領域ごと
の選択される画素データとの関係から求めることができ
る。
Ds8j+6,Ds8j+7,Ds8(j+1),Ds8(j+1)+1, Ds8(j+1)+
2,Ds8(j+1)+3に対応する原画像Sにおける座標は、そ
れぞれ微小領域Aijm4,Aijm5, Aijm6, Aijm7, Ai(j
+1)m0, Ai(j+1)m1, Ai(j+1)m2, Ai(j+1)m3に存在
し、画素データDs8j+4,Ds8j+5,Ds8j+6,Ds8j+7,Ds8
(j+1), Ds8(j+1)+1,Ds8(j+1)+2,Ds8(j+1)+3 は、対
応する微小領域の近傍4画素Sij, Sij+1, Si+1j, S
i+1j+1( (8s + 4)/Q - 8i ≧ 4 の場合) (またはS
i-1j, Si-1j+1, Sij, Sij+1( (8s + 4)/Q - 8i <
4 の場合) )間の一致・不一致の関係の組合せによっ
て、図11〜図25に示したC(Sij, Sij+1, Si+1
j, Si+1j+1)( (8s + 4)/Q - 8i ≧ 4 の場合)
(またはC(Si-1j, Si-1j+1, Sij, Sij+1)( (8s
+ 4)/Q - 8i < 4 の場合) )の値と、微小領域ごと
の選択される画素データとの関係から求めることができ
る。
【0034】したがって、図11〜図25を、拡大縮小
後の画素として選択される画素の4画素間における相対
的な識別情報を要素とする8×8のサイズの15個のテ
ーブルに変換し、テーブルはC(Sij, Sij+1, Si+1
j, Si+1j+1)の値によって選択され、さらに、微小領
域の行番号mによってテーブルの1行(8要素)の情報
が選択され、その情報をもとにSij, Sij+1, Si+1j,
Si+1j+1の中から画素データを選択する手段を設けるこ
とにより、容易にX軸方向に8倍、Y軸方向にQ倍した
場合の画素データDs8j+n を生成することができる。こ
の場合、式(2)の関係から微小領域の行を表すiとm
を求め、C(Sij, Sij+1, Si+1j, Si+1j+1)の値を
求めるだけで、Ds8j+4,Ds8j+5,Ds8j+6,Ds8j+7,Ds8
(j+1),Ds8(j+1)+1,Ds8(j+1)+2,Ds8(j+1)+3 の8画素
のデータを生成することができる。また、X軸方向に8
倍、Y軸方向にQ倍した場合の画像Dのs行目の画素デ
ータをX軸方向に連続して生成する場合、微小領域の行
を表すiとmの算出は最初に1回するだけで良く、関数
Cの値をC(Sij, Sij+1, Si+1j, Si+1j+1)、C
(Sij+1, Sij+2, Si+1j+1, Si+1j+2)、C(Sij+
2, Sij+3, Si+1j+2, Si+1j+3)、... と算出してい
くだけで、8画素ずつ連続して生成することができる。
つまり、X軸方向に8倍、Y軸方向にQ倍した場合の画
像Dの第s行目の1行の画素データを生成する処理にお
いては、原画像Sのi 行と(i - 1) 行の0列目から(snx
-1)列目の画素データに対して、X軸方向に連続して関
数Cの値を算出することによって(m=0, 1, 2, 3
の場合、iとmは式(2)の関係式を満たす。)、また
は、原画像Sのi 行と(i + 1) 行の0列目から(snx -1)
列目の画素データに対して、X軸方向に連続して関数C
の値を算出することによって(m=0, 1, 2, 3の場
合、iとmは式(2)の関係式を満たす。)、画像Dの
第s行目のデータを生成することできる。以上のように
して、補間処理をしながらX軸方向に8倍に拡大された
データを生成する8倍補間処理が実現される。
後の画素として選択される画素の4画素間における相対
的な識別情報を要素とする8×8のサイズの15個のテ
ーブルに変換し、テーブルはC(Sij, Sij+1, Si+1
j, Si+1j+1)の値によって選択され、さらに、微小領
域の行番号mによってテーブルの1行(8要素)の情報
が選択され、その情報をもとにSij, Sij+1, Si+1j,
Si+1j+1の中から画素データを選択する手段を設けるこ
とにより、容易にX軸方向に8倍、Y軸方向にQ倍した
場合の画素データDs8j+n を生成することができる。こ
の場合、式(2)の関係から微小領域の行を表すiとm
を求め、C(Sij, Sij+1, Si+1j, Si+1j+1)の値を
求めるだけで、Ds8j+4,Ds8j+5,Ds8j+6,Ds8j+7,Ds8
(j+1),Ds8(j+1)+1,Ds8(j+1)+2,Ds8(j+1)+3 の8画素
のデータを生成することができる。また、X軸方向に8
倍、Y軸方向にQ倍した場合の画像Dのs行目の画素デ
ータをX軸方向に連続して生成する場合、微小領域の行
を表すiとmの算出は最初に1回するだけで良く、関数
Cの値をC(Sij, Sij+1, Si+1j, Si+1j+1)、C
(Sij+1, Sij+2, Si+1j+1, Si+1j+2)、C(Sij+
2, Sij+3, Si+1j+2, Si+1j+3)、... と算出してい
くだけで、8画素ずつ連続して生成することができる。
つまり、X軸方向に8倍、Y軸方向にQ倍した場合の画
像Dの第s行目の1行の画素データを生成する処理にお
いては、原画像Sのi 行と(i - 1) 行の0列目から(snx
-1)列目の画素データに対して、X軸方向に連続して関
数Cの値を算出することによって(m=0, 1, 2, 3
の場合、iとmは式(2)の関係式を満たす。)、また
は、原画像Sのi 行と(i + 1) 行の0列目から(snx -1)
列目の画素データに対して、X軸方向に連続して関数C
の値を算出することによって(m=0, 1, 2, 3の場
合、iとmは式(2)の関係式を満たす。)、画像Dの
第s行目のデータを生成することできる。以上のように
して、補間処理をしながらX軸方向に8倍に拡大された
データを生成する8倍補間処理が実現される。
【0035】また、本実施例の8倍補間拡大処理のアル
ゴリズムでは、拡大縮小後の画像の画素に対応する原画
像における位置の近傍の4画素のデータを参照データと
する。したがって、例えば、図7の画素D14を生成する
場合には、図6の点Aの近傍の4画素、つまり、原画像
の領域外の画素を参照する必要がある。画像データが指
定された原画像の領域外においても、連続的に存在する
場合には問題ないが、画像データが連続的に存在しない
場合には、点Aの近傍の4画素をそのまま参照データに
することはできない。そこで、本実施例では、図7の画
素D14を生成する場合、点Aの近傍の原画像の領域内の
画素S13, S23のそれぞれの右側の領域外に、仮想的に
S13と同じ画素データ、S23と同じ画素データがそれぞ
れ存在するとして、8倍補間拡大処理を行なう。本実施
例では、同様の原画像境界における処理を、原画像の領
域の右端、左端、上端、下端の境界において行なう。図
26に示す4画素×4画素の画像データが原画像である
場合、拡大縮小後の画像の画素に対応する位置が、図2
6の斜線の部分に存在する時、図27に示すように、仮
想的に原画像の領域内の境界の画素データと同じ画素デ
ータが領域外に存在するとして、8倍補間拡大処理を行
なう。X軸方向の画素数がsnx 、Y軸方向の画素数がsn
y の矩形の画像(snx,snyは1以上の整数) が原画像Sで
ある場合、前記の原画像境界における処理は、対応する
原画像Sにおける位置が、次の〜の4つの条件のい
ずれかを満たす微小領域Aijmnに存在する拡大縮小後の
画像の画素を生成する場合に行なう。i=0且つm=
0, 1, 2, 3の場合、i=(sny - 1) 且つm=
4, 5, 6, 7の場合、j=0且つn=0, 1, 2,
3の場合、j=(snx - 1) 且つn=4, 5, 6, 7の
場合である。したがって、8倍補間拡大処理の1行の画
素データを生成する処理において、処理の最初の関数C
の算出で、の条件が成り立ち、C(Si-1 0,Si-1 0,
Si0, Si0)(m=0,1, 2,3の場合)、またはC
(Si0, Si0, Si+1 0,Si+1 0 )(m=4, 5, 6,
7の場合)を算出し、8倍補間拡大処理後の画像の4画
素DS0, DS1 , DS2, DS3を生成し、また最後の関数C
の算出で、の条件が成り立ち、C(Si-1 snx-1, S
i-1 snx-1,Si snx-1,Si snx-1 )(m=0, 1, 2,
3の場合),またはC(Si snx-1,Si snx-1,Si+1 sn
x-1,Si+1 snx-1 )(m=4,5,6,7の場合)を算
出し、8倍補間拡大処理後の画像の4画素DS 8snx-4,
DS 8snx-3, DS 8snx-2, DS 8snx-1を生成する。ま
たはの条件が成り立つ行のデータを生成する場合に
は、原画像Sのi行目のデータを参照データとして2回
ずつリードして、C (Sij, Sij+1, Sij, Sij+1)
を算出して、領域内の境界の画素データと同じ画素デー
タが領域外に存在するとした場合と同様の結果を得る。
ゴリズムでは、拡大縮小後の画像の画素に対応する原画
像における位置の近傍の4画素のデータを参照データと
する。したがって、例えば、図7の画素D14を生成する
場合には、図6の点Aの近傍の4画素、つまり、原画像
の領域外の画素を参照する必要がある。画像データが指
定された原画像の領域外においても、連続的に存在する
場合には問題ないが、画像データが連続的に存在しない
場合には、点Aの近傍の4画素をそのまま参照データに
することはできない。そこで、本実施例では、図7の画
素D14を生成する場合、点Aの近傍の原画像の領域内の
画素S13, S23のそれぞれの右側の領域外に、仮想的に
S13と同じ画素データ、S23と同じ画素データがそれぞ
れ存在するとして、8倍補間拡大処理を行なう。本実施
例では、同様の原画像境界における処理を、原画像の領
域の右端、左端、上端、下端の境界において行なう。図
26に示す4画素×4画素の画像データが原画像である
場合、拡大縮小後の画像の画素に対応する位置が、図2
6の斜線の部分に存在する時、図27に示すように、仮
想的に原画像の領域内の境界の画素データと同じ画素デ
ータが領域外に存在するとして、8倍補間拡大処理を行
なう。X軸方向の画素数がsnx 、Y軸方向の画素数がsn
y の矩形の画像(snx,snyは1以上の整数) が原画像Sで
ある場合、前記の原画像境界における処理は、対応する
原画像Sにおける位置が、次の〜の4つの条件のい
ずれかを満たす微小領域Aijmnに存在する拡大縮小後の
画像の画素を生成する場合に行なう。i=0且つm=
0, 1, 2, 3の場合、i=(sny - 1) 且つm=
4, 5, 6, 7の場合、j=0且つn=0, 1, 2,
3の場合、j=(snx - 1) 且つn=4, 5, 6, 7の
場合である。したがって、8倍補間拡大処理の1行の画
素データを生成する処理において、処理の最初の関数C
の算出で、の条件が成り立ち、C(Si-1 0,Si-1 0,
Si0, Si0)(m=0,1, 2,3の場合)、またはC
(Si0, Si0, Si+1 0,Si+1 0 )(m=4, 5, 6,
7の場合)を算出し、8倍補間拡大処理後の画像の4画
素DS0, DS1 , DS2, DS3を生成し、また最後の関数C
の算出で、の条件が成り立ち、C(Si-1 snx-1, S
i-1 snx-1,Si snx-1,Si snx-1 )(m=0, 1, 2,
3の場合),またはC(Si snx-1,Si snx-1,Si+1 sn
x-1,Si+1 snx-1 )(m=4,5,6,7の場合)を算
出し、8倍補間拡大処理後の画像の4画素DS 8snx-4,
DS 8snx-3, DS 8snx-2, DS 8snx-1を生成する。ま
たはの条件が成り立つ行のデータを生成する場合に
は、原画像Sのi行目のデータを参照データとして2回
ずつリードして、C (Sij, Sij+1, Sij, Sij+1)
を算出して、領域内の境界の画素データと同じ画素デー
タが領域外に存在するとした場合と同様の結果を得る。
【0036】以上の説明から、図3のフローチャートを
もっと正確に記述すると、図4に示すようになる。原画
像SをX軸方向にP倍、Y軸方向にQ倍に拡大縮小処理
して画像Dを生成する場合、本実施例は、図4のフロー
チャートに示す手順にしたがって、MPU1が画像デー
タを処理する。図4のフローチャートでは、図3のステ
ップ35の「8倍補間拡大処理」がステップ406 〜408 の
3つの処理に展開され、ステップ34の「画像Dのs行に
対応する参照データをメモリ読み出す」処理が、ステッ
プ402 の「iとmの算出する」処理とステップ405 の
「参照データをメモリから読み出す」処理の2つ処理に
分離され、ステップ 402は、画像Dの1行のデータを生
成する時に、最初に1回だけ行なう処理として、画像D
のs行のデータを生成するステップ404 〜411 のループ
の外に出る。
もっと正確に記述すると、図4に示すようになる。原画
像SをX軸方向にP倍、Y軸方向にQ倍に拡大縮小処理
して画像Dを生成する場合、本実施例は、図4のフロー
チャートに示す手順にしたがって、MPU1が画像デー
タを処理する。図4のフローチャートでは、図3のステ
ップ35の「8倍補間拡大処理」がステップ406 〜408 の
3つの処理に展開され、ステップ34の「画像Dのs行に
対応する参照データをメモリ読み出す」処理が、ステッ
プ402 の「iとmの算出する」処理とステップ405 の
「参照データをメモリから読み出す」処理の2つ処理に
分離され、ステップ 402は、画像Dの1行のデータを生
成する時に、最初に1回だけ行なう処理として、画像D
のs行のデータを生成するステップ404 〜411 のループ
の外に出る。
【0037】図4において、ステップ400 で画像Dの行
番号sが0に初期設定され、ステップ401 で、この拡大
縮小処理の終了判定が行なわれる。s= dny の場合に処
理を終了し、それ以外の場合は処理を続行する。ステッ
プ402 で関係式(2)にもとづいて、画像Dのs行に対
応する原画像Sにおける微小領域行を表すiとmが求め
られ、ステップ403 でjが0に設定される。ステップ40
4 で、画像Dのs行目のデータの生成の終了判定が行な
われ、画像Dのs行(dnx - 1) 行目の画素が生成される
と、ステップ412 でsをインクリメントし、それ以外の
場合は、ステップ404 〜411 の処理を繰り返す。ステッ
プ405 でステップ402 において算出されたiとmにもと
づいて参照データが読み出され、ステップ406 でその4
画素間の一致・不一致の関係が調べられる。実際には、
式(3)の関数Cの値が、画素どうしの比較を逐次に行
なうことによって求められる。ステップ407 でmと関数
Cの値にもとづいて、図11〜図25の関数Cの値と微
小領域ごとに選択される画素データとの関係を表すテー
ブルが参照され、選択される画素の相対的な識別情報が
得られる。ステップ408 で4画素間の相対的な識別情報
にもとづいてデータが選択され、8倍補間拡大処理され
たデータに相当する8画素のデータが生成される。(原
画像境界における処理をする場合は、8倍補間拡大処理
されたデータに相当する4画素のデータが生成され
る。)ステップ409 で8倍補間拡大処理されたデータ
は、X軸方向にP/8倍され、ステップ410 でメモリに
書き込まれる。ステップ404 〜411 の処理は、画像Dの
s行のデータの生成を0列目のデータから(dnx - 1) 列
目のデータを生成するまで繰り返す。この画像Dの1行
のデータを生成する処理は、画像Dの0行目から(dny -
1) 行目に対して、Y軸方向に連続して実行され、結果
として、X軸方向にP倍、Y軸方向にQ倍に拡大縮小さ
れ、しかも補間処理された画像Dが生成される。ステッ
プ404 〜411 のループの最初と最後の8倍補間拡大処理
では、原画像境界における処理が行なわれ、ループの最
初の関数Cの算出では、C(Si-1 0,Si-1 0,Si0, S
i0)(m=0, 1,2, 3の場合)、またはC(Si0,
Si0, Si+1 0,Si+1 0 )(m=4, 5,6, 7の場
合)を算出され、ループの最後の関数Cの算出では、ま
た最後の関数Cの算出では、C(Si-1 snx-1,Si-1 sn
x-1,Si snx-1,Si snx-1 )(m=0,1, 2, 3の場
合)、またはC(Si snx-1,Si snx-1,Si+1 snx-1,S
i+1 snx-1 )(m=4, 5, 6, 7の場合)が算出さ
れ、それぞれ、8倍補間拡大処理されたデータに相当す
る4画素のデータが生成される。
番号sが0に初期設定され、ステップ401 で、この拡大
縮小処理の終了判定が行なわれる。s= dny の場合に処
理を終了し、それ以外の場合は処理を続行する。ステッ
プ402 で関係式(2)にもとづいて、画像Dのs行に対
応する原画像Sにおける微小領域行を表すiとmが求め
られ、ステップ403 でjが0に設定される。ステップ40
4 で、画像Dのs行目のデータの生成の終了判定が行な
われ、画像Dのs行(dnx - 1) 行目の画素が生成される
と、ステップ412 でsをインクリメントし、それ以外の
場合は、ステップ404 〜411 の処理を繰り返す。ステッ
プ405 でステップ402 において算出されたiとmにもと
づいて参照データが読み出され、ステップ406 でその4
画素間の一致・不一致の関係が調べられる。実際には、
式(3)の関数Cの値が、画素どうしの比較を逐次に行
なうことによって求められる。ステップ407 でmと関数
Cの値にもとづいて、図11〜図25の関数Cの値と微
小領域ごとに選択される画素データとの関係を表すテー
ブルが参照され、選択される画素の相対的な識別情報が
得られる。ステップ408 で4画素間の相対的な識別情報
にもとづいてデータが選択され、8倍補間拡大処理され
たデータに相当する8画素のデータが生成される。(原
画像境界における処理をする場合は、8倍補間拡大処理
されたデータに相当する4画素のデータが生成され
る。)ステップ409 で8倍補間拡大処理されたデータ
は、X軸方向にP/8倍され、ステップ410 でメモリに
書き込まれる。ステップ404 〜411 の処理は、画像Dの
s行のデータの生成を0列目のデータから(dnx - 1) 列
目のデータを生成するまで繰り返す。この画像Dの1行
のデータを生成する処理は、画像Dの0行目から(dny -
1) 行目に対して、Y軸方向に連続して実行され、結果
として、X軸方向にP倍、Y軸方向にQ倍に拡大縮小さ
れ、しかも補間処理された画像Dが生成される。ステッ
プ404 〜411 のループの最初と最後の8倍補間拡大処理
では、原画像境界における処理が行なわれ、ループの最
初の関数Cの算出では、C(Si-1 0,Si-1 0,Si0, S
i0)(m=0, 1,2, 3の場合)、またはC(Si0,
Si0, Si+1 0,Si+1 0 )(m=4, 5,6, 7の場
合)を算出され、ループの最後の関数Cの算出では、ま
た最後の関数Cの算出では、C(Si-1 snx-1,Si-1 sn
x-1,Si snx-1,Si snx-1 )(m=0,1, 2, 3の場
合)、またはC(Si snx-1,Si snx-1,Si+1 snx-1,S
i+1 snx-1 )(m=4, 5, 6, 7の場合)が算出さ
れ、それぞれ、8倍補間拡大処理されたデータに相当す
る4画素のデータが生成される。
【0038】図4において、ステップ409 の「X軸方向
にP/8倍する」処理では、P/8<1の場合には、倍
率P/8にもとづいて、画素の間引き処理が行なわれ、
P/8>1の場合には、倍率P/8にもとづいて、画素
データがコピーされる。また、P/8=1の場合には、
何も処理は行なわれない。また、ステップ405 の「参照
データをメモリから読み出す」処理では、ステップ402
の「iとmの算出する」処理で求められたiとmの値に
もとづいて参照データの読み出しが行なわれる。ステッ
プ405 の「参照データをメモリから読み出す」処理の更
に詳しい手順を図5に示す。
にP/8倍する」処理では、P/8<1の場合には、倍
率P/8にもとづいて、画素の間引き処理が行なわれ、
P/8>1の場合には、倍率P/8にもとづいて、画素
データがコピーされる。また、P/8=1の場合には、
何も処理は行なわれない。また、ステップ405 の「参照
データをメモリから読み出す」処理では、ステップ402
の「iとmの算出する」処理で求められたiとmの値に
もとづいて参照データの読み出しが行なわれる。ステッ
プ405 の「参照データをメモリから読み出す」処理の更
に詳しい手順を図5に示す。
【0039】図5において、ステップ50と51とで原画像
境界における処理をするか否かの判定をし、原画像境界
における処理をする場合には、ステップ57と58とでi行
j列目の画素データを2回読み出し、原画像境界におけ
る処理をしない場合には、ステップ52でmの値の判定を
行ない、m<4の場合(m=0, 1, 2, 3の場合)に
は、ステップ53と54とでそれぞれi行j列目とi- 1行
j列目の画素データを読み出し、m≧4の場合(m=
4, 5, 6, 7の場合)には、ステップ55と56でそれぞ
れi行j列目とi+ 1行j列目の画素データを読み出
す。したがって、m=0, 1,2, 3の場合には、原画
像Sのi行目と( i- 1) 行目のデータを読み出され
(iは、(数2)を満足する)、m=4, 5, 6, 7の
場合には、原画像Sのi行目と( i+ 1) 行目のデータ
が読み出される。ただし、i=0且つm=0, 1,2,
3の場合とi=(sny - 1) 且つm=4, 5, 6, 7の場
合には、原画像境界における処理を行ない、原画像Sの
i行目のデータが2回ずつ読み出される。
境界における処理をするか否かの判定をし、原画像境界
における処理をする場合には、ステップ57と58とでi行
j列目の画素データを2回読み出し、原画像境界におけ
る処理をしない場合には、ステップ52でmの値の判定を
行ない、m<4の場合(m=0, 1, 2, 3の場合)に
は、ステップ53と54とでそれぞれi行j列目とi- 1行
j列目の画素データを読み出し、m≧4の場合(m=
4, 5, 6, 7の場合)には、ステップ55と56でそれぞ
れi行j列目とi+ 1行j列目の画素データを読み出
す。したがって、m=0, 1,2, 3の場合には、原画
像Sのi行目と( i- 1) 行目のデータを読み出され
(iは、(数2)を満足する)、m=4, 5, 6, 7の
場合には、原画像Sのi行目と( i+ 1) 行目のデータ
が読み出される。ただし、i=0且つm=0, 1,2,
3の場合とi=(sny - 1) 且つm=4, 5, 6, 7の場
合には、原画像境界における処理を行ない、原画像Sの
i行目のデータが2回ずつ読み出される。
【0040】(実施例2)本発明の実施例2は、実施例
1の図4におけるステップ406 の「4画素間の一致・不
一致の関係を調べる」処理を、最適化された手順を用い
て行なうようにしたものであり、画像処理装置の構成自
体は図1に示した実施例と同じである。したがって、こ
こでは図4におけるステップ406 についてのみ以下に説
明する。
1の図4におけるステップ406 の「4画素間の一致・不
一致の関係を調べる」処理を、最適化された手順を用い
て行なうようにしたものであり、画像処理装置の構成自
体は図1に示した実施例と同じである。したがって、こ
こでは図4におけるステップ406 についてのみ以下に説
明する。
【0041】本実施例では、ステップ406 の「4画素間
の一致・不一致の関係を調べる」処理を、最適化された
手順を用いて行なうことにより、さらに高速な処理を実
現する。「4画素間の一致・不一致の関係を調べる」処
理、つまり関数Cの値を求める処理は、定義式(3)の
通りに画素どうしの比較を逐次に行なうことによって求
めることができる。例えば、図28の位置関係にある4
画素S0,S1,S2,S3の画素間の一致・不一致の関係を
調べる場合、C(S0,S1,S2,S3 )の値は、図29に
示す手順で求めることができる。
の一致・不一致の関係を調べる」処理を、最適化された
手順を用いて行なうことにより、さらに高速な処理を実
現する。「4画素間の一致・不一致の関係を調べる」処
理、つまり関数Cの値を求める処理は、定義式(3)の
通りに画素どうしの比較を逐次に行なうことによって求
めることができる。例えば、図28の位置関係にある4
画素S0,S1,S2,S3の画素間の一致・不一致の関係を
調べる場合、C(S0,S1,S2,S3 )の値は、図29に
示す手順で求めることができる。
【0042】図29において、ステップ2900でCに0を
設定し、ステップ2901で画素S0 と画素S2 を比較し
て、S0 =S2 の場合のみ、ステップ2902でCに25 を
加算する。さらに、ステップ2903で画素S1 と画素S3
を比較して、S1 =S3 の場合のみ、ステップ2904でC
に24 を加算し、ステップ2905で画素S0 と画素S1 を
比較して、S0 =S1 の場合のみ、ステップ2906でCに
23 を加算する。ステップ2907で画素S2 と画素S3 を
比較して、S2 =S3 の場合のみ、ステップ2908でCに
22 を加算し、ステップ2909で画素S0 と画素S3 を比
較して、S0 =S3 場合のみ、ステップ2910でCに21
を加算する。そして、ステップ2911で画素S1 と画素S
2 を比較して、S1 =S2 の場合のみ、ステップ2912で
Cに20 を加算して、C(S0,S1,S2,S3 )の算出を
終了する。ここで、図29の手順にしたがって、C(S
0,S1,S2,S3 )を算出する場合、4画素S0,S1,S2,
S3の値によって、冗長な処理を行なう場合がある。つ
まり、4画素S0,S1,S2,S3 の値によって、図29の
ステップ2900〜2912の手順を完全に実行しなくても、C
(S0,S1,S2,S3 )の値が求まる場合がある。例え
ば、S0=S1=S2=S3 の場合、ステップ2901,2903,2905
の画素どうしの比較をした時点で、それぞれS0=S2,S
1=S3,S0=S1 であることが判明しており、S0=S1=S
2=S3 であることが明らかになっている。したがって、
この場合には、ステップ2912の手順を実行する前に、C
(S0,S1,S2,S3 )=111111(2進数表現)で
あることが判明する。また、画素データS0,S1,S2,S
3 が互いに異なる場合には、ステップ2900〜2911の手順
をふまなければならない。そこで、本実施例では、「4
画素間の一致・不一致の関係を調べる」処理、つまり関
数Cの値を求める処理を、図30に示す手順を基本手順
として行なう。
設定し、ステップ2901で画素S0 と画素S2 を比較し
て、S0 =S2 の場合のみ、ステップ2902でCに25 を
加算する。さらに、ステップ2903で画素S1 と画素S3
を比較して、S1 =S3 の場合のみ、ステップ2904でC
に24 を加算し、ステップ2905で画素S0 と画素S1 を
比較して、S0 =S1 の場合のみ、ステップ2906でCに
23 を加算する。ステップ2907で画素S2 と画素S3 を
比較して、S2 =S3 の場合のみ、ステップ2908でCに
22 を加算し、ステップ2909で画素S0 と画素S3 を比
較して、S0 =S3 場合のみ、ステップ2910でCに21
を加算する。そして、ステップ2911で画素S1 と画素S
2 を比較して、S1 =S2 の場合のみ、ステップ2912で
Cに20 を加算して、C(S0,S1,S2,S3 )の算出を
終了する。ここで、図29の手順にしたがって、C(S
0,S1,S2,S3 )を算出する場合、4画素S0,S1,S2,
S3の値によって、冗長な処理を行なう場合がある。つ
まり、4画素S0,S1,S2,S3 の値によって、図29の
ステップ2900〜2912の手順を完全に実行しなくても、C
(S0,S1,S2,S3 )の値が求まる場合がある。例え
ば、S0=S1=S2=S3 の場合、ステップ2901,2903,2905
の画素どうしの比較をした時点で、それぞれS0=S2,S
1=S3,S0=S1 であることが判明しており、S0=S1=S
2=S3 であることが明らかになっている。したがって、
この場合には、ステップ2912の手順を実行する前に、C
(S0,S1,S2,S3 )=111111(2進数表現)で
あることが判明する。また、画素データS0,S1,S2,S
3 が互いに異なる場合には、ステップ2900〜2911の手順
をふまなければならない。そこで、本実施例では、「4
画素間の一致・不一致の関係を調べる」処理、つまり関
数Cの値を求める処理を、図30に示す手順を基本手順
として行なう。
【0043】図30において、ステップ3000で画素S0
と画素S2 を比較して、S0 =S2の場合は3001の手順
へ、S0 ≠S2 の場合はステップ3010の手順へ進む。ス
テップ3001では、画素S0 と画素S1 を比較し、S0 =
S1 の場合はステップ3002の手順へ、S0 ≠S1 の場合
はステップ3005の手順へ進む。ステップ3002では、画素
S2 と画素S3 を比較して、S2 =S3 の場合はステッ
プ3003でC(S0,S1,S2,S3 )=111111(2進
数表現)を設定して処理を終了し、S2 ≠S3の場合は
ステップ3004でC(S0,S1,S2,S3 )=101001
(2進数表現)を設定して処理を終了する。ステップ30
05では、画素S2 と画素S3 を比較して、S2 =S3 の
場合はステップ3006でC(S0,S1,S2,S3 )=100
110(2進数表現)を設定して処理を終了し、S2 ≠
S3 の場合はステップ3007の手順へ進む。ステップ3007
では、画素S1 と画素S3 を比較して、S1 =S3 の場
合は3008でC(S0,S1,S2,S3 )=110000(2
進数表現)を設定して処理を終了し、S1 ≠S3 の場合
はステップ3009でC(S0,S1,S2,S3 )=10000
0(2進数表現)を設定して処理を終了する。また、ス
テップ3010では、画素S0 と画素S1 を比較し、S0 =
S1 の場合はステップ3011の手順へ、S0 ≠S1 の場合
はステップ3016の手順へ進む。ステップ3011では、画素
S2 と画素S3 を比較して、S2 =S3 の場合はステッ
プ3012でC(S0,S1,S2,S3 )=001100(2進
数表現)を設定して処理を終了し、S2 ≠S3 の場合は
ステップ3013の手順へ進む。ステップ3013では、画素S
1 と画素S3 を比較して、S1=S3 の場合はステップ3
014でC(S0,S1,S2,S3 )=011010(2進数
表現)を設定して処理を終了し、S1 ≠S3 の場合はス
テップ3015でC(S0,S1,S2,S3)=001000
(2進数表現)を設定して処理を終了する。ステップ30
16では、画素S2 と画素S3 を比較して、S2 =S3 の
場合はステップ3017の手順へ、S2 ≠S3 の場合はステ
ップ3020の手順へ進む。ステップ3017では、画素S1 と
画素S3 を比較して、S1 =S3 の場合はステップ3018
でC(S0,S1,S2,S3 )=010101(2進数表
現)を設定して処理を終了し、S1 ≠S3 の場合はステ
ップ3019でC(S0,S1,S2,S3 )=000100(2
進数表現)を設定して処理を終了する。ステップ3020で
は、画素S1 と画素S3 を比較して、S1 =S3 の場合
はステップ3021でC(S0,S1,S2,S3 )=01000
0(2進数表現)を設定して処理を終了し、S1 ≠S3
の場合はステップ3022の手順へ進む。ステップ3022で
は、画素S0 と画素S3 を比較して、S0 =S3 の場合
はステップ3023の手順へ、S0 ≠S3 の場合はステップ
3026の手順へ進む。3023では、画素S1 と画素S2 を比
較して、S1 =S2 の場合はステップ3024でC(S0,S
1,S2,S3 )=000011(2進数表現)を設定して
処理を終了し、S1 ≠S2 の場合はステップ3025でC
(S0,S1,S2,S3 )=000010(2進数表現)を
設定して処理を終了する。ステップ3026では、画素S1
と画素S2を比較して、S1 =S2 の場合はステップ302
7でC(S0,S1,S2,S3 )=000001(2進数表
現)を設定して処理を終了し、S1 ≠S2 の場合はステ
ップ3028でC(S0,S1,S2,S3 )=000000(2
進数表現)を設定して処理を終了する。
と画素S2 を比較して、S0 =S2の場合は3001の手順
へ、S0 ≠S2 の場合はステップ3010の手順へ進む。ス
テップ3001では、画素S0 と画素S1 を比較し、S0 =
S1 の場合はステップ3002の手順へ、S0 ≠S1 の場合
はステップ3005の手順へ進む。ステップ3002では、画素
S2 と画素S3 を比較して、S2 =S3 の場合はステッ
プ3003でC(S0,S1,S2,S3 )=111111(2進
数表現)を設定して処理を終了し、S2 ≠S3の場合は
ステップ3004でC(S0,S1,S2,S3 )=101001
(2進数表現)を設定して処理を終了する。ステップ30
05では、画素S2 と画素S3 を比較して、S2 =S3 の
場合はステップ3006でC(S0,S1,S2,S3 )=100
110(2進数表現)を設定して処理を終了し、S2 ≠
S3 の場合はステップ3007の手順へ進む。ステップ3007
では、画素S1 と画素S3 を比較して、S1 =S3 の場
合は3008でC(S0,S1,S2,S3 )=110000(2
進数表現)を設定して処理を終了し、S1 ≠S3 の場合
はステップ3009でC(S0,S1,S2,S3 )=10000
0(2進数表現)を設定して処理を終了する。また、ス
テップ3010では、画素S0 と画素S1 を比較し、S0 =
S1 の場合はステップ3011の手順へ、S0 ≠S1 の場合
はステップ3016の手順へ進む。ステップ3011では、画素
S2 と画素S3 を比較して、S2 =S3 の場合はステッ
プ3012でC(S0,S1,S2,S3 )=001100(2進
数表現)を設定して処理を終了し、S2 ≠S3 の場合は
ステップ3013の手順へ進む。ステップ3013では、画素S
1 と画素S3 を比較して、S1=S3 の場合はステップ3
014でC(S0,S1,S2,S3 )=011010(2進数
表現)を設定して処理を終了し、S1 ≠S3 の場合はス
テップ3015でC(S0,S1,S2,S3)=001000
(2進数表現)を設定して処理を終了する。ステップ30
16では、画素S2 と画素S3 を比較して、S2 =S3 の
場合はステップ3017の手順へ、S2 ≠S3 の場合はステ
ップ3020の手順へ進む。ステップ3017では、画素S1 と
画素S3 を比較して、S1 =S3 の場合はステップ3018
でC(S0,S1,S2,S3 )=010101(2進数表
現)を設定して処理を終了し、S1 ≠S3 の場合はステ
ップ3019でC(S0,S1,S2,S3 )=000100(2
進数表現)を設定して処理を終了する。ステップ3020で
は、画素S1 と画素S3 を比較して、S1 =S3 の場合
はステップ3021でC(S0,S1,S2,S3 )=01000
0(2進数表現)を設定して処理を終了し、S1 ≠S3
の場合はステップ3022の手順へ進む。ステップ3022で
は、画素S0 と画素S3 を比較して、S0 =S3 の場合
はステップ3023の手順へ、S0 ≠S3 の場合はステップ
3026の手順へ進む。3023では、画素S1 と画素S2 を比
較して、S1 =S2 の場合はステップ3024でC(S0,S
1,S2,S3 )=000011(2進数表現)を設定して
処理を終了し、S1 ≠S2 の場合はステップ3025でC
(S0,S1,S2,S3 )=000010(2進数表現)を
設定して処理を終了する。ステップ3026では、画素S1
と画素S2を比較して、S1 =S2 の場合はステップ302
7でC(S0,S1,S2,S3 )=000001(2進数表
現)を設定して処理を終了し、S1 ≠S2 の場合はステ
ップ3028でC(S0,S1,S2,S3 )=000000(2
進数表現)を設定して処理を終了する。
【0044】図29と図30の手順を比較すると、Cの
値を求めるのに、図29の手順では最大で13、最小で
も7つの手順を実行する必要があるのに対し、図30の
手順では、最大でも7、最小では4つの手順を実行する
だけですむ。また、4画素間の一致・不一致の関係の組
み合せは15通りあり、仮に、その15通りの組み合せ
が同じ確率で現れるとすると、Cの値を求めるのに、図
29の手順では平均9つの手順を実行する必要があるの
に対し、図30の手順では、平均で5. 3の手順で済
む。さらに、写真や、テキスト、図形などの画像データ
は、一般に、左右上下に隣り合う画素どうしが一致する
可能性が高いので、図30の手順では、比較的一致する
画素が多いほど、少ない手順で終了する。したがって、
実際に画像データを処理する場合、図30の基本手順を
用いた方が、高速にCの値を求めることができる。
値を求めるのに、図29の手順では最大で13、最小で
も7つの手順を実行する必要があるのに対し、図30の
手順では、最大でも7、最小では4つの手順を実行する
だけですむ。また、4画素間の一致・不一致の関係の組
み合せは15通りあり、仮に、その15通りの組み合せ
が同じ確率で現れるとすると、Cの値を求めるのに、図
29の手順では平均9つの手順を実行する必要があるの
に対し、図30の手順では、平均で5. 3の手順で済
む。さらに、写真や、テキスト、図形などの画像データ
は、一般に、左右上下に隣り合う画素どうしが一致する
可能性が高いので、図30の手順では、比較的一致する
画素が多いほど、少ない手順で終了する。したがって、
実際に画像データを処理する場合、図30の基本手順を
用いた方が、高速にCの値を求めることができる。
【0045】しかし、図30の手順が、そのまま、本実
施例の、図4におけるステップ406の「4画素間の一致
・不一致の関係を調べる」処理の手順に相当するわけで
はない。本実施例の、図4におけるステップ406 の「4
画素間の一致・不一致の関係を調べる」処理は、図30
の手順を基本とした図31の手順で行なわれる。本実施
例の画像の補間をともなう拡大縮小処理の手順を表す図
4において、ステップ404 〜411 のループでは、画像D
のs行目のデータを生成する処理を行なう。ここで、ス
テップ405 の「参照データをメモリから読み出す」処理
では、図5に示すように、i行j列目とi- 1行j列目
の画素データ(m=0, 1, 2, 3の場合)または、i
行j列目とi+ 1行j列目の画素データ(m=4, 5,
6, 7の場合)を読み出す(iは、式(2)を満足す
る。)。つまり、ステップ404 〜411 のループにおい
て、ステップ406 の「4画素間の一致・不一致の関係を
調べる」処理は、原画像Sの互いに隣り合う2行2列の
4画素に対し、X軸方向に1画素ずつずらして行なわれ
る。したがって、最初の4画素の一致・不一致の関係を
調べる場合を除いて、画素S0 と画素S2の位置関係に
ある画素どうしの一致・不一致の関係は、一つ前の「4
画素間の一致・不一致の関係を調べる」処理で明らかで
あり、図30のステップ3000に相当する処理は必要なく
なる。
施例の、図4におけるステップ406の「4画素間の一致
・不一致の関係を調べる」処理の手順に相当するわけで
はない。本実施例の、図4におけるステップ406 の「4
画素間の一致・不一致の関係を調べる」処理は、図30
の手順を基本とした図31の手順で行なわれる。本実施
例の画像の補間をともなう拡大縮小処理の手順を表す図
4において、ステップ404 〜411 のループでは、画像D
のs行目のデータを生成する処理を行なう。ここで、ス
テップ405 の「参照データをメモリから読み出す」処理
では、図5に示すように、i行j列目とi- 1行j列目
の画素データ(m=0, 1, 2, 3の場合)または、i
行j列目とi+ 1行j列目の画素データ(m=4, 5,
6, 7の場合)を読み出す(iは、式(2)を満足す
る。)。つまり、ステップ404 〜411 のループにおい
て、ステップ406 の「4画素間の一致・不一致の関係を
調べる」処理は、原画像Sの互いに隣り合う2行2列の
4画素に対し、X軸方向に1画素ずつずらして行なわれ
る。したがって、最初の4画素の一致・不一致の関係を
調べる場合を除いて、画素S0 と画素S2の位置関係に
ある画素どうしの一致・不一致の関係は、一つ前の「4
画素間の一致・不一致の関係を調べる」処理で明らかで
あり、図30のステップ3000に相当する処理は必要なく
なる。
【0046】以下、図31の手順について説明する。図
4のステップ406 の「4画素間の一致・不一致の関係を
調べる」処理は、「スタート」から始まる場合と、「ス
タートA」または「スタートB」から始まる場合とがあ
り、ステップ404 〜411 のループの初回のみ「スター
ト」から始まり、それ以降は、一つ前の「4画素間の一
致・不一致の関係を調べる」処理で求めたCの値によっ
て、「スタートA」または「スタートB]から始まる。
4のステップ406 の「4画素間の一致・不一致の関係を
調べる」処理は、「スタート」から始まる場合と、「ス
タートA」または「スタートB」から始まる場合とがあ
り、ステップ404 〜411 のループの初回のみ「スター
ト」から始まり、それ以降は、一つ前の「4画素間の一
致・不一致の関係を調べる」処理で求めたCの値によっ
て、「スタートA」または「スタートB]から始まる。
【0047】図31において、ステップ3100で画素S0
と画素S2 を比較して、S0 =S2の場合はステップ310
1の手順へ、S0 ≠S2 の場合はステップ3110の手順へ
進む。ステップ3100は、「スタート」から始まる場合、
つまりステップ404 〜411 のループの初回の時のみ行な
われる。ステップ3101では、画素S0 と画素S1 を比較
し、S0 =S1 の場合はステップ3102の手順へ、S0 ≠
S1 の場合はステップ3105の手順へ進む。ステップ3102
では、画素S2 と画素S3 を比較して、S2 =S3 の場
合はステップ3103でC(S0,S1,S2,S3 )=1111
11(2進数表現)を設定して処理を終了し、S2 ≠S
3 の場合はステップ3104でC(S0,S1,S2,S3 )=1
01001(2進数表現)を設定して処理を終了する。
ステップ3105では、画素S2 と画素S3 を比較して、S
2 =S3 の場合はステップ3106でC(S0,S1,S2,S3
)=100110(2進数表現)を設定して処理を終
了し、S2 ≠S3 の場合はステップ3107の手順へ進む。
ステップ3107では、画素S1と画素S3 を比較して、S1
=S3 の場合はステップ3108でC(S0,S1,S2,S3
)=110000(2進数表現)を設定して処理を終
了し、S1 ≠S3 の場合はステップ3109でC(S0,S1,
S2,S3 )=100000(2進数表現)を設定して処
理を終了する。また、ステップ3110では、画素S0 と画
素S1 を比較し、S0 =S1 の場合はステップ3111の手
順へ、S0 ≠S1 の場合はステップ3116の手順へ進む。
ステップ3111では、画素S2 と画素S3 を比較して、S
2 =S3 の場合はステップ3112でC(S0,S1,S2,S3
)=001100(2進数表現)を設定して処理を終
了し、S2 ≠S3 の場合はステップ3113の手順へ進む。
ステップ3113では、画素S1 と画素S3 を比較して、S
1 =S3 の場合はステップ3114でC(S0,S1,S2,S3
)=011010(2進数表現)を設定して処理を終
了し、S1 ≠S3 の場合はステップ3115でC(S0,S1,
S2,S3 )=001000(2進数表現)を設定して処
理を終了する。ステップ3116では、画素S2 と画素S3
を比較して、S2 =S3 の場合はステップ3117の手順
へ、S2 ≠S3 の場合はステップ3120の手順へ進む。ス
テップ3117では、画素S1 と画素S3 を比較して、S1
=S3 の場合はステップ3118でC(S0,S1,S2,S3 )
=010101(2進数表現)を設定して処理を終了
し、S1 ≠S3 の場合はステップ3119でC(S0,S1,S
2,S3 )=000100(2進数表現)を設定して処理
を終了する。ステップ3120では、画素S1 と画素S3 を
比較して、S1 =S3 の場合はステップ3121でC(S0,
S1,S2,S3 )=010000(2進数表現)を設定し
て処理を終了し、S1 ≠S3 の場合はステップ3122の手
順へ進む。ステップ3122では、画素S0 と画素S3 を比
較して、S0 =S3 の場合はステップ3123の手順へ、S
0 ≠S3 の場合はステップ3126の手順へ進む。ステップ
3123では、画素S1 と画素S2 を比較して、S1 =S2
の場合はステップ3124でC(S0,S1,S2,S3)=00
0011(2進数表現)を設定して処理を終了し、S1
≠S2 の場合はステップ3125でC(S0,S1,S2,S3)
=000010(2進数表現)を設定して処理を終了す
る。ステップ3126では、画素S1 と画素S2 を比較し
て、S1 =S2 の場合はステップ3127でC(S0,S1,S
2,S3 )=000001(2進数表現)を設定して処理
を終了し、S1 ≠S2 の場合はステップ3128でC(S0,
S1,S2,S3 )=000000(2進数表現)を設定し
て処理を終了する。
と画素S2 を比較して、S0 =S2の場合はステップ310
1の手順へ、S0 ≠S2 の場合はステップ3110の手順へ
進む。ステップ3100は、「スタート」から始まる場合、
つまりステップ404 〜411 のループの初回の時のみ行な
われる。ステップ3101では、画素S0 と画素S1 を比較
し、S0 =S1 の場合はステップ3102の手順へ、S0 ≠
S1 の場合はステップ3105の手順へ進む。ステップ3102
では、画素S2 と画素S3 を比較して、S2 =S3 の場
合はステップ3103でC(S0,S1,S2,S3 )=1111
11(2進数表現)を設定して処理を終了し、S2 ≠S
3 の場合はステップ3104でC(S0,S1,S2,S3 )=1
01001(2進数表現)を設定して処理を終了する。
ステップ3105では、画素S2 と画素S3 を比較して、S
2 =S3 の場合はステップ3106でC(S0,S1,S2,S3
)=100110(2進数表現)を設定して処理を終
了し、S2 ≠S3 の場合はステップ3107の手順へ進む。
ステップ3107では、画素S1と画素S3 を比較して、S1
=S3 の場合はステップ3108でC(S0,S1,S2,S3
)=110000(2進数表現)を設定して処理を終
了し、S1 ≠S3 の場合はステップ3109でC(S0,S1,
S2,S3 )=100000(2進数表現)を設定して処
理を終了する。また、ステップ3110では、画素S0 と画
素S1 を比較し、S0 =S1 の場合はステップ3111の手
順へ、S0 ≠S1 の場合はステップ3116の手順へ進む。
ステップ3111では、画素S2 と画素S3 を比較して、S
2 =S3 の場合はステップ3112でC(S0,S1,S2,S3
)=001100(2進数表現)を設定して処理を終
了し、S2 ≠S3 の場合はステップ3113の手順へ進む。
ステップ3113では、画素S1 と画素S3 を比較して、S
1 =S3 の場合はステップ3114でC(S0,S1,S2,S3
)=011010(2進数表現)を設定して処理を終
了し、S1 ≠S3 の場合はステップ3115でC(S0,S1,
S2,S3 )=001000(2進数表現)を設定して処
理を終了する。ステップ3116では、画素S2 と画素S3
を比較して、S2 =S3 の場合はステップ3117の手順
へ、S2 ≠S3 の場合はステップ3120の手順へ進む。ス
テップ3117では、画素S1 と画素S3 を比較して、S1
=S3 の場合はステップ3118でC(S0,S1,S2,S3 )
=010101(2進数表現)を設定して処理を終了
し、S1 ≠S3 の場合はステップ3119でC(S0,S1,S
2,S3 )=000100(2進数表現)を設定して処理
を終了する。ステップ3120では、画素S1 と画素S3 を
比較して、S1 =S3 の場合はステップ3121でC(S0,
S1,S2,S3 )=010000(2進数表現)を設定し
て処理を終了し、S1 ≠S3 の場合はステップ3122の手
順へ進む。ステップ3122では、画素S0 と画素S3 を比
較して、S0 =S3 の場合はステップ3123の手順へ、S
0 ≠S3 の場合はステップ3126の手順へ進む。ステップ
3123では、画素S1 と画素S2 を比較して、S1 =S2
の場合はステップ3124でC(S0,S1,S2,S3)=00
0011(2進数表現)を設定して処理を終了し、S1
≠S2 の場合はステップ3125でC(S0,S1,S2,S3)
=000010(2進数表現)を設定して処理を終了す
る。ステップ3126では、画素S1 と画素S2 を比較し
て、S1 =S2 の場合はステップ3127でC(S0,S1,S
2,S3 )=000001(2進数表現)を設定して処理
を終了し、S1 ≠S2 の場合はステップ3128でC(S0,
S1,S2,S3 )=000000(2進数表現)を設定し
て処理を終了する。
【0048】図4のステップ404 〜411 のループの初回
以降の「4画素間の一致・不一致の関係を調べる」処理
では、一つ前の「4画素間の一致・不一致の関係を調べ
る」処理を、ステップ3103,3108,3114,3118,3121で終了
した場合には、「スタートA」から始まり、ステップ31
01の画素S0 と画素S1 の比較から行なう。一つ前の
「4画素間の一致・不一致の関係を調べる」処理を、ス
テップ3104,3106,3109,3112,3115,3119,3124,3125,312
7,3128 で終了した場合には、「スタートB」から始ま
り、ステップ3110の画素S0 と画素S1 の比較から行な
う。
以降の「4画素間の一致・不一致の関係を調べる」処理
では、一つ前の「4画素間の一致・不一致の関係を調べ
る」処理を、ステップ3103,3108,3114,3118,3121で終了
した場合には、「スタートA」から始まり、ステップ31
01の画素S0 と画素S1 の比較から行なう。一つ前の
「4画素間の一致・不一致の関係を調べる」処理を、ス
テップ3104,3106,3109,3112,3115,3119,3124,3125,312
7,3128 で終了した場合には、「スタートB」から始ま
り、ステップ3110の画素S0 と画素S1 の比較から行な
う。
【0049】(実施例3)本発明の実施例3では、実施
例1でMPUが行なっていた画像データの処理の内、図
4のステップ409 の「X軸方向にP/8倍する」処理と
ステップ410 の「生成されたデータをメモリに書き込
む」処理を、専用の回路で行なうようにしたものであ
る。以下、本発明の実施例3について、図面を参照しな
がら説明する。
例1でMPUが行なっていた画像データの処理の内、図
4のステップ409 の「X軸方向にP/8倍する」処理と
ステップ410 の「生成されたデータをメモリに書き込
む」処理を、専用の回路で行なうようにしたものであ
る。以下、本発明の実施例3について、図面を参照しな
がら説明する。
【0050】図32は実施例3における画像処理装置の
機能ブロック図である。図32において、3200はMPU
3201から転送されたデータを、X軸方向に任意の倍率で
拡大縮小して、表示メモリ3204または画像データメモリ
3203に書き込む画像処理ユニット、3201は表示メモリ32
04または画像データメモリ3203上の画像データを8倍補
間拡大処理して、画像処理ユニット3200へ転送するMP
U(Multi ProcessingUnit) 、3202はMPU3201が実行
するプログラムを格納するシステムメモリ、3203は画像
データを格納する画像データメモリ、3204はCRT3206
に表示される画像データを格納する表示メモリ、3205は
表示メモリ3204とCRT3206を制御するCRTコントロ
ーラ、3206は表示メモリ3204に格納された画像データを
表示するCRT、3207は32ビットのバスである。この
画像処理装置は、画像データメモリ3203上または表示メ
モリ3204上の矩形領域の原画像を、補間処理をしながら
X軸方向、Y軸方向独立の倍率で拡大縮小処理して、表
示メモリ3204または画像データメモリ3203に書き込むよ
うに構成されている。処理するデータは8ビット/画素
のカラー画像データであり、データの8ビットが1画素
に相当する。以下において、微小領域とは、原画像の画
素間の領域をX軸方向に8分割、Y軸方向に8分割した
場合に現れる仮想上の微小な領域を意味し、また、ワー
ドは32ビット、ショートワードは16ビット、バイト
は8ビットを意味するものとする。
機能ブロック図である。図32において、3200はMPU
3201から転送されたデータを、X軸方向に任意の倍率で
拡大縮小して、表示メモリ3204または画像データメモリ
3203に書き込む画像処理ユニット、3201は表示メモリ32
04または画像データメモリ3203上の画像データを8倍補
間拡大処理して、画像処理ユニット3200へ転送するMP
U(Multi ProcessingUnit) 、3202はMPU3201が実行
するプログラムを格納するシステムメモリ、3203は画像
データを格納する画像データメモリ、3204はCRT3206
に表示される画像データを格納する表示メモリ、3205は
表示メモリ3204とCRT3206を制御するCRTコントロ
ーラ、3206は表示メモリ3204に格納された画像データを
表示するCRT、3207は32ビットのバスである。この
画像処理装置は、画像データメモリ3203上または表示メ
モリ3204上の矩形領域の原画像を、補間処理をしながら
X軸方向、Y軸方向独立の倍率で拡大縮小処理して、表
示メモリ3204または画像データメモリ3203に書き込むよ
うに構成されている。処理するデータは8ビット/画素
のカラー画像データであり、データの8ビットが1画素
に相当する。以下において、微小領域とは、原画像の画
素間の領域をX軸方向に8分割、Y軸方向に8分割した
場合に現れる仮想上の微小な領域を意味し、また、ワー
ドは32ビット、ショートワードは16ビット、バイト
は8ビットを意味するものとする。
【0051】以上のように構成された画像処理装置にお
いて、画像データメモリ3203の画像をX軸方向にP倍
(Pは任意の正の有理数)、Y軸方向にQ倍(Qは任意
の正の有理数)して、CRT3206に表示する場合、ま
ず、システムメモリ3202のプログラムにしたがって、M
PU3201が画像処理ユニット3200に初期設定を行なう。
さらに、MPU3201は、画像データメモリ3203から画像
データを読み出し、補間処理をしながらX軸方向に8
倍、Y軸方向にQ倍にして、画像処理ユニット3200へ転
送する。画像処理ユニット3200は、MPU3201から転送
されたデータをP/8倍して、表示メモリ3204に書き込
む。表示メモリ3204に書き込まれた画像は、CRTコン
トローラ3205によってCRT3205に表示される。MPU
3201と、画像処理ユニット3200による画像の補間処理を
伴う拡大縮小処理は、メモリ3203、3204上の画像データ
に対して、同様に行なわれる。したがって、画像データ
メモリ3203の画像をX軸方向にP倍、Y軸方向にQ倍し
て、画像データメモリ3203に格納する場合も、表示メモ
リ3204の画像をX軸方向にP倍、Y軸方向にQ倍して、
画像データメモリ3203に格納する場合も、表示メモリ32
04の画像をX軸方向にP倍、Y軸方向にQ倍して表示メ
モリ4 に書き込む場合も、全てMPU3201がメモリ320
3、3204上の原画像データを読み出し、補間処理をしな
がらX軸方向に8倍、Y軸方向にQ倍にして、画像処理
ユニット3200へ転送する。画像処理ユニット3200は、M
PU3201から転送されたデータをP/8倍して、メモリ
3203、3204に書き込む。MPU3201による画像処理ユニ
ット3200の制御と、メモリ3203、3204からの画像データ
の読み出しと、画像処理ユニット3200へのデータ転送、
および画像処理ユニット3200による処理されたデータの
メモリ3203、3204への書き込みは、全てバス3207を介し
て行なわれる。つまり、画像処理ユニット3200は、実施
例1の図4のステップ409 の「X軸方向にP/8倍す
る」処理と410 の「生成されたデータをメモリに書き込
む」処理を行なう。
いて、画像データメモリ3203の画像をX軸方向にP倍
(Pは任意の正の有理数)、Y軸方向にQ倍(Qは任意
の正の有理数)して、CRT3206に表示する場合、ま
ず、システムメモリ3202のプログラムにしたがって、M
PU3201が画像処理ユニット3200に初期設定を行なう。
さらに、MPU3201は、画像データメモリ3203から画像
データを読み出し、補間処理をしながらX軸方向に8
倍、Y軸方向にQ倍にして、画像処理ユニット3200へ転
送する。画像処理ユニット3200は、MPU3201から転送
されたデータをP/8倍して、表示メモリ3204に書き込
む。表示メモリ3204に書き込まれた画像は、CRTコン
トローラ3205によってCRT3205に表示される。MPU
3201と、画像処理ユニット3200による画像の補間処理を
伴う拡大縮小処理は、メモリ3203、3204上の画像データ
に対して、同様に行なわれる。したがって、画像データ
メモリ3203の画像をX軸方向にP倍、Y軸方向にQ倍し
て、画像データメモリ3203に格納する場合も、表示メモ
リ3204の画像をX軸方向にP倍、Y軸方向にQ倍して、
画像データメモリ3203に格納する場合も、表示メモリ32
04の画像をX軸方向にP倍、Y軸方向にQ倍して表示メ
モリ4 に書き込む場合も、全てMPU3201がメモリ320
3、3204上の原画像データを読み出し、補間処理をしな
がらX軸方向に8倍、Y軸方向にQ倍にして、画像処理
ユニット3200へ転送する。画像処理ユニット3200は、M
PU3201から転送されたデータをP/8倍して、メモリ
3203、3204に書き込む。MPU3201による画像処理ユニ
ット3200の制御と、メモリ3203、3204からの画像データ
の読み出しと、画像処理ユニット3200へのデータ転送、
および画像処理ユニット3200による処理されたデータの
メモリ3203、3204への書き込みは、全てバス3207を介し
て行なわれる。つまり、画像処理ユニット3200は、実施
例1の図4のステップ409 の「X軸方向にP/8倍す
る」処理と410 の「生成されたデータをメモリに書き込
む」処理を行なう。
【0052】画像処理ユニット3200の内部の機能ブロッ
ク図を図33に示す。3300はMPU3201から転送された
データを格納する参照データファイル、3301は補間処理
をせずにX軸方向に任意の倍率で拡大縮小するX方向拡
大縮小ユニット、3302は実際にメモリに書き込むワード
アライメントされたワードデータを生成する書き込みデ
ータ生成ユニット、3303は補間拡大縮小処理されたデー
タを書き込むメモリ上のワードアドレスを生成し、メモ
リに画像データをワード単位で書き込むデータ書き込み
ユニット、3304はデータ書き込みユニットによって生成
されたワードデータを格納する書き込みデータファイ
ル、3305は参照データファイル3300の動作を制御する制
御ユニットA、3306はX方向拡大縮小ユニット3301の動
作を制御する制御ユニットB、3307は書き込みデータ生
成ユニット3302の動作を制御する制御ユニットC、3308
はデータ書き込みユニット3303と書き込みデータファイ
ル3304の動作を制御する制御ユニットDである。
ク図を図33に示す。3300はMPU3201から転送された
データを格納する参照データファイル、3301は補間処理
をせずにX軸方向に任意の倍率で拡大縮小するX方向拡
大縮小ユニット、3302は実際にメモリに書き込むワード
アライメントされたワードデータを生成する書き込みデ
ータ生成ユニット、3303は補間拡大縮小処理されたデー
タを書き込むメモリ上のワードアドレスを生成し、メモ
リに画像データをワード単位で書き込むデータ書き込み
ユニット、3304はデータ書き込みユニットによって生成
されたワードデータを格納する書き込みデータファイ
ル、3305は参照データファイル3300の動作を制御する制
御ユニットA、3306はX方向拡大縮小ユニット3301の動
作を制御する制御ユニットB、3307は書き込みデータ生
成ユニット3302の動作を制御する制御ユニットC、3308
はデータ書き込みユニット3303と書き込みデータファイ
ル3304の動作を制御する制御ユニットDである。
【0053】X方向拡大縮小ユニット3301およびデータ
書き込みユニット3303が行なう処理は、図4のそれぞれ
ステップ409,410 の処理に対応する。したがって、画像
データメモリ3203の画像をX軸方向にP倍、Y軸方向に
Q倍して、表示メモリ3204に格納する場合、まず、MP
Uが図4のステップ400 〜408 の手順にしたがって、メ
モリから参照データを読み出し、8倍補間拡大された2
ワード(8画素)のデータを生成する。MPU3201は、
生成したデータを1ワードずつ参照データファイル3300
に転送し、転送されたデータは、参照データファイル33
00に格納される。さらに、参照データファイル3300に格
納されたデータは、X方向拡大縮小ユニット3301に転送
され、X方向拡大縮小ユニット3301によってX軸方向に
P/8倍され、X軸方向にP倍Y軸方向にQ倍されたデ
ータが生成される。X軸方向拡大縮小ユニットによって
生成されたデータは、書き込みデータ生成ユニット3302
によって、バイトシフトとマスク演算が行なわれ、表示
メモリのワード境界にアライメントされたワードデータ
に変換され、書き込みデータファイル3304に格納され
る。データ書き込みユニット3303は、表示メモリ3204上
のアドレスを生成し、書き込みデータファイル3304に格
納されたデータは、データ書き込みユニット3303によっ
て生成された表示メモリ3204上のアドレスに書き込まれ
る。以上の動作は、拡大縮小後の同一行の画素データを
X軸方向に連続して生成するように1行ずつ行なわれ、
さらにこの1行ずつの処理は、Y軸方向に連続して行な
われ、最終的に、補間を伴う拡大縮小処理された画像が
表示メモリ3204に書き込まれる。
書き込みユニット3303が行なう処理は、図4のそれぞれ
ステップ409,410 の処理に対応する。したがって、画像
データメモリ3203の画像をX軸方向にP倍、Y軸方向に
Q倍して、表示メモリ3204に格納する場合、まず、MP
Uが図4のステップ400 〜408 の手順にしたがって、メ
モリから参照データを読み出し、8倍補間拡大された2
ワード(8画素)のデータを生成する。MPU3201は、
生成したデータを1ワードずつ参照データファイル3300
に転送し、転送されたデータは、参照データファイル33
00に格納される。さらに、参照データファイル3300に格
納されたデータは、X方向拡大縮小ユニット3301に転送
され、X方向拡大縮小ユニット3301によってX軸方向に
P/8倍され、X軸方向にP倍Y軸方向にQ倍されたデ
ータが生成される。X軸方向拡大縮小ユニットによって
生成されたデータは、書き込みデータ生成ユニット3302
によって、バイトシフトとマスク演算が行なわれ、表示
メモリのワード境界にアライメントされたワードデータ
に変換され、書き込みデータファイル3304に格納され
る。データ書き込みユニット3303は、表示メモリ3204上
のアドレスを生成し、書き込みデータファイル3304に格
納されたデータは、データ書き込みユニット3303によっ
て生成された表示メモリ3204上のアドレスに書き込まれ
る。以上の動作は、拡大縮小後の同一行の画素データを
X軸方向に連続して生成するように1行ずつ行なわれ、
さらにこの1行ずつの処理は、Y軸方向に連続して行な
われ、最終的に、補間を伴う拡大縮小処理された画像が
表示メモリ3204に書き込まれる。
【0054】以上の画像処理ユニット3200の各機能ブロ
ックの動作は、制御ユニットA3305、制御ユニットB33
06、制御ユニットC3307、制御ユニットD3308によって
制御される。制御ユニットA3305は、参照データファイ
ル3300を制御し、制御ユニットB3306は、X方向拡大縮
小ユニット3301を制御し、制御ユニットC3307は、書き
込みデータ生成ユニット3302を制御し、制御ユニットD
3308はデータ書き込みユニット3303と書き込みデータフ
ァイル3304を制御する。制御ユニットA3305、制御ユニ
ットB3306、制御ユニットC3307、制御ユニットD3308
は、いずれもPLA(Programable Logic Array) 回路と
レジスタとカウンタおよび加減算器とによって構成さ
れ、一部のレジスタは、制御ユニットどうしで共有す
る。制御ユニットによって、PLA回路のサイズ、およ
びレジスタとカウンタの数は異なり、また加減算器を持
たない場合もあるが、基本的にPLA回路とレジスタと
カウンタによってシーケンサを構成し、PLA回路のプ
ログラムにしたがって各機能ブロックを制御する。制御
ユニットA3305、制御ユニットB3306、制御ユニットC
3307、制御ユニットD3308からは、それぞれが制御する
各機能ブロックに対して制御信号が送られ、また各機能
ブロックからはそれぞれの制御ユニットに対してフラグ
信号(演算器のゼロフラグ、レジスタファイルのFullフ
ラグ、Empty フラグなど)が送られる。また、機能ブロ
ックからのフラグ信号の一部(レジスタファイルのFull
フラグ、Empty フラグなど)は、次段、または前段の機
能ブロックを制御する制御ユニットにも送られ、機能ブ
ロック間のデータ転送が制御される。このように4つの
制御ユニットと各機能ブロックとの間で制御信号とフラ
グ信号が交換されることにより処理の並列化が実現され
る。
ックの動作は、制御ユニットA3305、制御ユニットB33
06、制御ユニットC3307、制御ユニットD3308によって
制御される。制御ユニットA3305は、参照データファイ
ル3300を制御し、制御ユニットB3306は、X方向拡大縮
小ユニット3301を制御し、制御ユニットC3307は、書き
込みデータ生成ユニット3302を制御し、制御ユニットD
3308はデータ書き込みユニット3303と書き込みデータフ
ァイル3304を制御する。制御ユニットA3305、制御ユニ
ットB3306、制御ユニットC3307、制御ユニットD3308
は、いずれもPLA(Programable Logic Array) 回路と
レジスタとカウンタおよび加減算器とによって構成さ
れ、一部のレジスタは、制御ユニットどうしで共有す
る。制御ユニットによって、PLA回路のサイズ、およ
びレジスタとカウンタの数は異なり、また加減算器を持
たない場合もあるが、基本的にPLA回路とレジスタと
カウンタによってシーケンサを構成し、PLA回路のプ
ログラムにしたがって各機能ブロックを制御する。制御
ユニットA3305、制御ユニットB3306、制御ユニットC
3307、制御ユニットD3308からは、それぞれが制御する
各機能ブロックに対して制御信号が送られ、また各機能
ブロックからはそれぞれの制御ユニットに対してフラグ
信号(演算器のゼロフラグ、レジスタファイルのFullフ
ラグ、Empty フラグなど)が送られる。また、機能ブロ
ックからのフラグ信号の一部(レジスタファイルのFull
フラグ、Empty フラグなど)は、次段、または前段の機
能ブロックを制御する制御ユニットにも送られ、機能ブ
ロック間のデータ転送が制御される。このように4つの
制御ユニットと各機能ブロックとの間で制御信号とフラ
グ信号が交換されることにより処理の並列化が実現され
る。
【0055】さらに、制御ユニットA3305、制御ユニッ
トB3306、制御ユニットC3307、制御ユニットD3308
は、MPU3201によって制御される。MPU3201は、シ
ステムメモリ3202のプログラムにもとづいて、制御ユニ
ットA3305、制御ユニットB3306、制御ユニットC330
7、制御ユニットD3308のそれぞれのレジスタとカウン
タに、所望の拡大縮小処理のための初期設定を行なう。
参照データファイルにデータが転送されると、各制御ユ
ニットがそれぞれが担当する機能ブロックを制御して、
所望の処理が実行される。
トB3306、制御ユニットC3307、制御ユニットD3308
は、MPU3201によって制御される。MPU3201は、シ
ステムメモリ3202のプログラムにもとづいて、制御ユニ
ットA3305、制御ユニットB3306、制御ユニットC330
7、制御ユニットD3308のそれぞれのレジスタとカウン
タに、所望の拡大縮小処理のための初期設定を行なう。
参照データファイルにデータが転送されると、各制御ユ
ニットがそれぞれが担当する機能ブロックを制御して、
所望の処理が実行される。
【0056】以下において、各機能ブロックについて説
明する。説明の簡単のため、各機能ブロックの動作の説
明では、上記各実施例と同様に、原画像S(X軸方向の
画素数がsnx 、Y軸方向の画素数がsny の矩形の画像(s
nx,snyは1以上の整数) )をX軸方向にP倍(Pは0よ
り大きい任意の有理数)、Y軸方向にQ倍(Qは0より
大きい任意の有理数)に拡大縮小処理して画像D(X軸
方向の画素数がdnx 、Y軸方向の画素数がdny の矩形の
画像(dnx,dnyは1以上の整数,dnx= Psnx,dny=Qsny))
を生成する場合の動作について述べる。
明する。説明の簡単のため、各機能ブロックの動作の説
明では、上記各実施例と同様に、原画像S(X軸方向の
画素数がsnx 、Y軸方向の画素数がsny の矩形の画像(s
nx,snyは1以上の整数) )をX軸方向にP倍(Pは0よ
り大きい任意の有理数)、Y軸方向にQ倍(Qは0より
大きい任意の有理数)に拡大縮小処理して画像D(X軸
方向の画素数がdnx 、Y軸方向の画素数がdny の矩形の
画像(dnx,dnyは1以上の整数,dnx= Psnx,dny=Qsny))
を生成する場合の動作について述べる。
【0057】参照データファイル3300は、4個の32ビ
ットレジスタによって構成され、MPU3201から転送さ
れる8倍補間拡大処理されたデータを格納する。参照デ
ータファイル3300は、FIFO(First In First Out)
として動作し、参照データファイル3300に格納された画
像データは、格納された順にX方向拡大縮小ユニット33
01へ転送される。参照データファイル3300に、参照デー
タが4ワード格納されている場合、参照データファイル
3300から制御ユニットA3305に対してFullフラグが送ら
れる。これにより、制御ユニットAは、MPU3201に対
してFullフラグを示し、参照データファイルへ3300のデ
ータ転送を一時的に停止させる。また、参照データファ
イル3300が空の場合、つまり参照データが格納されてい
ない場合、参照データファイル3300から制御ユニットB
に対してEmpty フラグが送られる。これにより、制御ユ
ニットBは、参照データファイル3300からX方向拡大縮
小ユニットへのデータの転送を一時的に停止させる。
ットレジスタによって構成され、MPU3201から転送さ
れる8倍補間拡大処理されたデータを格納する。参照デ
ータファイル3300は、FIFO(First In First Out)
として動作し、参照データファイル3300に格納された画
像データは、格納された順にX方向拡大縮小ユニット33
01へ転送される。参照データファイル3300に、参照デー
タが4ワード格納されている場合、参照データファイル
3300から制御ユニットA3305に対してFullフラグが送ら
れる。これにより、制御ユニットAは、MPU3201に対
してFullフラグを示し、参照データファイルへ3300のデ
ータ転送を一時的に停止させる。また、参照データファ
イル3300が空の場合、つまり参照データが格納されてい
ない場合、参照データファイル3300から制御ユニットB
に対してEmpty フラグが送られる。これにより、制御ユ
ニットBは、参照データファイル3300からX方向拡大縮
小ユニットへのデータの転送を一時的に停止させる。
【0058】次にX方向拡大縮小ユニット3301の内部構
成と動作について説明する。本実施例による画像処理装
置が画像をX軸方向にP倍する場合、X軸方向拡大縮小
ユニット3301は、MPU3201によって8倍補間拡大処理
されたデータをX軸方向にP/8倍にする。
成と動作について説明する。本実施例による画像処理装
置が画像をX軸方向にP倍する場合、X軸方向拡大縮小
ユニット3301は、MPU3201によって8倍補間拡大処理
されたデータをX軸方向にP/8倍にする。
【0059】X方向拡大縮小ユニット3301は、図34に
示すように、マッピングパターン生成回路3400と、10
24ビットのマッピングパターンを格納するパターンR
AM(Random Access Memory)3401と、参照データファ
イル3300から転送されるデータを格納する32ビットの
レジスタ3402,3403 と、入力データをバイト(8ビッ
ト)単位で0バイト〜3バイト左シフトするバレルシフ
タ3404と、マッピングパターンにしたがって入力データ
をバイト単位でコピーまたは間引いて拡大縮小するバレ
ルセレクタ3405と、バレルセレクタの1回の処理におけ
る入力データのバイト数と、出力データのバイト数をカ
ウントするパターンカウンタ3406によって構成される。
示すように、マッピングパターン生成回路3400と、10
24ビットのマッピングパターンを格納するパターンR
AM(Random Access Memory)3401と、参照データファ
イル3300から転送されるデータを格納する32ビットの
レジスタ3402,3403 と、入力データをバイト(8ビッ
ト)単位で0バイト〜3バイト左シフトするバレルシフ
タ3404と、マッピングパターンにしたがって入力データ
をバイト単位でコピーまたは間引いて拡大縮小するバレ
ルセレクタ3405と、バレルセレクタの1回の処理におけ
る入力データのバイト数と、出力データのバイト数をカ
ウントするパターンカウンタ3406によって構成される。
【0060】マッピングパターンは、拡大縮小率に応じ
て画素データをマッピングするバイナリのパターンであ
り、あらかじめマッピングパターン生成回路3400によっ
て、X軸方向に連続する画素データに対応して生成さ
れ、パターンRAM3401に格納されている。マッピング
パターンは、バレルセレクタ3405に制御信号として4ビ
ットずつ入力され、X軸方向に連続する入力データが処
理される。X軸方向拡大縮小ユニット3301では、入力デ
ータに対して1行ごとに同一の処理が行われ、次の行の
処理にはパターンRAM3401に格納された同じマッピン
グパターンが使用される。
て画素データをマッピングするバイナリのパターンであ
り、あらかじめマッピングパターン生成回路3400によっ
て、X軸方向に連続する画素データに対応して生成さ
れ、パターンRAM3401に格納されている。マッピング
パターンは、バレルセレクタ3405に制御信号として4ビ
ットずつ入力され、X軸方向に連続する入力データが処
理される。X軸方向拡大縮小ユニット3301では、入力デ
ータに対して1行ごとに同一の処理が行われ、次の行の
処理にはパターンRAM3401に格納された同じマッピン
グパターンが使用される。
【0061】バレルセレクタ3405は、図35に示すよう
に、16個の8ビット3-1 セレクタ3500〜3515と、4ビ
ットのマッピングパターンを8ビット3-1 セレクタ3500
〜3515の制御信号にデコードするパターンデコーダ3516
によって構成される。3ビット3-1 セレクタ3500〜3515
は、4行4列のアレイ状に構成され、パターンデコーダ
3516からの制御信号によって、それぞれが3バイト(3
画素)の入力データから1バイト(1画素)のデータを
選択して出力する。
に、16個の8ビット3-1 セレクタ3500〜3515と、4ビ
ットのマッピングパターンを8ビット3-1 セレクタ3500
〜3515の制御信号にデコードするパターンデコーダ3516
によって構成される。3ビット3-1 セレクタ3500〜3515
は、4行4列のアレイ状に構成され、パターンデコーダ
3516からの制御信号によって、それぞれが3バイト(3
画素)の入力データから1バイト(1画素)のデータを
選択して出力する。
【0062】バレルセレクタ3405は、P/8<1の場
合、つまりX軸方向拡大縮小ユニット3301が縮小処理を
する場合、1行ごとの処理における右端のデータを処理
する時を除いて、常に4バイト(4画素)のデータを入
力として、パターンデコーダ3516からの制御信号にした
がって画素データを間引いて P/2 バイトまたは( P/2+
1) バイトのデータを出力する。( α は、αを越え
ない最大の整数を表す。) P/2 バイト、( P/2 +1) バ
イトのいずれのバイト数のデータを出力するかは、その
時に入力されるマッピングパターンに依存する。1≦P
/8の場合、つまりX軸方向拡大縮小ユニット3301が拡
大処理をする場合、1行ごとの処理における右端のデー
タを処理する時を除いて、 32/P バイトまたは( 32/P +
1)バイトのデータを入力として(( 32/P +1)≦4 )、パ
ターンデコーダ3516からの制御信号にしたがって画素デ
ータをコピーして、常に4バイトのデータを出力する。
32/P バイト、( 32/P +1)バイトのいずれのバイト数の
データを入力とするかは、その時に入力されるマッピン
グパターンに依存する。バレルセレクタ3405によって生
成されたデータは、書き込みデータ生成ユニット3302へ
転送される。パターンカウンタ3406は、入力データのバ
イト数と生成されたデータのバイト数をカウントし、フ
ラグ信号として、それぞれ制御ユニットB3306と制御ユ
ニットC3307へ送る。このバレルセレクタの並列拡大縮
小処理のアルゴリズムについては、第16回画像工学コ
ンファレンス論文集(昭和60年)「文書画像編集用イ
メージ・プロセッサMN8617」(P.289 からP.292 )およ
び、特開昭60-83182に記載されている。
合、つまりX軸方向拡大縮小ユニット3301が縮小処理を
する場合、1行ごとの処理における右端のデータを処理
する時を除いて、常に4バイト(4画素)のデータを入
力として、パターンデコーダ3516からの制御信号にした
がって画素データを間引いて P/2 バイトまたは( P/2+
1) バイトのデータを出力する。( α は、αを越え
ない最大の整数を表す。) P/2 バイト、( P/2 +1) バ
イトのいずれのバイト数のデータを出力するかは、その
時に入力されるマッピングパターンに依存する。1≦P
/8の場合、つまりX軸方向拡大縮小ユニット3301が拡
大処理をする場合、1行ごとの処理における右端のデー
タを処理する時を除いて、 32/P バイトまたは( 32/P +
1)バイトのデータを入力として(( 32/P +1)≦4 )、パ
ターンデコーダ3516からの制御信号にしたがって画素デ
ータをコピーして、常に4バイトのデータを出力する。
32/P バイト、( 32/P +1)バイトのいずれのバイト数の
データを入力とするかは、その時に入力されるマッピン
グパターンに依存する。バレルセレクタ3405によって生
成されたデータは、書き込みデータ生成ユニット3302へ
転送される。パターンカウンタ3406は、入力データのバ
イト数と生成されたデータのバイト数をカウントし、フ
ラグ信号として、それぞれ制御ユニットB3306と制御ユ
ニットC3307へ送る。このバレルセレクタの並列拡大縮
小処理のアルゴリズムについては、第16回画像工学コ
ンファレンス論文集(昭和60年)「文書画像編集用イ
メージ・プロセッサMN8617」(P.289 からP.292 )およ
び、特開昭60-83182に記載されている。
【0063】バレルセレクタの入力データは、左詰めに
されたX軸方向に連続するデータである必要があり、こ
の左詰めされたX軸方向に連続するデータは、制御ユニ
ットB3306がバレルシフタ3404のシフト量と、レジスタ
3402からレジスタ3403へのデータ転送と、参照データフ
ァイルからレジスタ3402へのデータ転送を制御すること
によって、バレルセレクタへ供給される。
されたX軸方向に連続するデータである必要があり、こ
の左詰めされたX軸方向に連続するデータは、制御ユニ
ットB3306がバレルシフタ3404のシフト量と、レジスタ
3402からレジスタ3403へのデータ転送と、参照データフ
ァイルからレジスタ3402へのデータ転送を制御すること
によって、バレルセレクタへ供給される。
【0064】P/8<1の場合、バレルセレクタ3405は
4バイトのデータを入力とするので、バレルセレクタ34
05がデータを生成する度に、レジスタ3402のデータが、
レジスタ3403に転送され、参照データファイルからデー
タがレジスタ3402に転送され、バレルシフタは0バイト
シフトを行なう。1≦P/8の場合、バレルセレクタ34
05は 32/P バイトまたは( 32/P +1)バイトのデータを入
力とし、入力データは常に4バイト以下となる。したが
って、レジスタ3403のデータがすべて処理されるまで、
レジスタ3402からレジスタ3403へのデータ転送は行なわ
れず、レジスタ3403のデータがすべて処理される度に、
レジスタ3402のデータが、レジスタ3403に転送され、参
照データファイルからデータがレジスタ3402に転送され
る。この場合のバレルシフタ3404のシフト量は、バレル
セレクタ3405が処理した入力データのバイト数を累積加
算した値になる。但し、この累積加算では、結果が4以
上になる度に、結果から4が引かれる。つまり、レジス
タ3403のデータがすべて処理されるまで累積加算され、
レジスタ3403のデータがすべて処理されると(この時、
累積加算の結果はを4以上となる)、レジスタ3402のデ
ータがレジスタ3403に転送され、参照データファイルか
らデータがレジスタ3402に転送され、バレルシフタ3404
のシフト量は、累積加算の結果から4を引いた値にな
る。バレルセレクタ3405が処理した入力データのバイト
数は、パターンカウンタによってカウントされる。これ
により、バレルセレクタ3405には、常に、左詰めにされ
たX軸方向に連続する処理されていないデータが入力さ
れる。
4バイトのデータを入力とするので、バレルセレクタ34
05がデータを生成する度に、レジスタ3402のデータが、
レジスタ3403に転送され、参照データファイルからデー
タがレジスタ3402に転送され、バレルシフタは0バイト
シフトを行なう。1≦P/8の場合、バレルセレクタ34
05は 32/P バイトまたは( 32/P +1)バイトのデータを入
力とし、入力データは常に4バイト以下となる。したが
って、レジスタ3403のデータがすべて処理されるまで、
レジスタ3402からレジスタ3403へのデータ転送は行なわ
れず、レジスタ3403のデータがすべて処理される度に、
レジスタ3402のデータが、レジスタ3403に転送され、参
照データファイルからデータがレジスタ3402に転送され
る。この場合のバレルシフタ3404のシフト量は、バレル
セレクタ3405が処理した入力データのバイト数を累積加
算した値になる。但し、この累積加算では、結果が4以
上になる度に、結果から4が引かれる。つまり、レジス
タ3403のデータがすべて処理されるまで累積加算され、
レジスタ3403のデータがすべて処理されると(この時、
累積加算の結果はを4以上となる)、レジスタ3402のデ
ータがレジスタ3403に転送され、参照データファイルか
らデータがレジスタ3402に転送され、バレルシフタ3404
のシフト量は、累積加算の結果から4を引いた値にな
る。バレルセレクタ3405が処理した入力データのバイト
数は、パターンカウンタによってカウントされる。これ
により、バレルセレクタ3405には、常に、左詰めにされ
たX軸方向に連続する処理されていないデータが入力さ
れる。
【0065】書き込みデータ生成ユニット3302は、X軸
方向拡大縮小ユニットによって生成されたデータから、
実際にメモリに書き込むワードデータを生成し、書き込
みデータファイル3304に格納する。X軸方向拡大縮小ユ
ニットは、常に、左詰めされたデータを生成するが、拡
大縮小後の画像Dの左端の画素は、メモリ上のワード内
のバイト0の位置にあるとは限らない。また、データ書
き込みユニット3303は、処理したデータをワード単位で
書き込むので、画像Dの左端と右端の画素データを書き
込む場合は、書き込み先のデータとマスク処理をする必
要があり、X軸方向拡大縮小ユニットによって生成され
たデータを、そのままメモリに書き込むことはできな
い。書き込みデータ生成ユニット3302は、X方向拡大縮
小ユニット3301によって生成されたデータを、バイトシ
フトして、データを書き込むメモリ上のバイト位置に合
わせ込まれたワードデータに変換し、また、X方向拡大
縮小ユニット3301によって生成されたデータに、画像D
の左端または右端の画素データが含まれる場合は、書き
込み先のデータとマスク処理を行なって、書き込みデー
タファイル3304に格納する。
方向拡大縮小ユニットによって生成されたデータから、
実際にメモリに書き込むワードデータを生成し、書き込
みデータファイル3304に格納する。X軸方向拡大縮小ユ
ニットは、常に、左詰めされたデータを生成するが、拡
大縮小後の画像Dの左端の画素は、メモリ上のワード内
のバイト0の位置にあるとは限らない。また、データ書
き込みユニット3303は、処理したデータをワード単位で
書き込むので、画像Dの左端と右端の画素データを書き
込む場合は、書き込み先のデータとマスク処理をする必
要があり、X軸方向拡大縮小ユニットによって生成され
たデータを、そのままメモリに書き込むことはできな
い。書き込みデータ生成ユニット3302は、X方向拡大縮
小ユニット3301によって生成されたデータを、バイトシ
フトして、データを書き込むメモリ上のバイト位置に合
わせ込まれたワードデータに変換し、また、X方向拡大
縮小ユニット3301によって生成されたデータに、画像D
の左端または右端の画素データが含まれる場合は、書き
込み先のデータとマスク処理を行なって、書き込みデー
タファイル3304に格納する。
【0066】書き込みデータファイル3304は、4個の3
2ビットレジスタによって構成され、FIFOとして動
作する。書き込みデータファイルは、制御ユニットD33
08によって制御され、書き込みデータ生成ユニット3302
の出力データは、書き込みデータファイル3304に格納さ
れ、格納された順に、データ書き込みユニット3303が生
成したメモリのアドレスに書き込まれる。
2ビットレジスタによって構成され、FIFOとして動
作する。書き込みデータファイルは、制御ユニットD33
08によって制御され、書き込みデータ生成ユニット3302
の出力データは、書き込みデータファイル3304に格納さ
れ、格納された順に、データ書き込みユニット3303が生
成したメモリのアドレスに書き込まれる。
【0067】データ書き込みユニット3303は、書き込み
データファイル3304と共に、制御ユニットD3308によっ
て制御され、拡大縮小後の画像Dのメモリ上のワードア
ドレスを生成し、書き込みデータファイル3304に格納さ
れているデータを、ワード単位でメモリに書き込む。デ
ータ書き込みユニット3303は、まず、拡大縮小後の画像
Dの0行0ワード目のワードアドレスを生成してデータ
を書き込み、次に0行1ワード目、0行2ワード目、0
行3ワード目というようにワードアドレスを生成してデ
ータを書き込む。画像Dの0行目のデータの書き込みを
終了すると、つぎは、画像Dの1行目のデータの書き込
みを0行目と同じように行なう。このような画像Dの1
行ごとのデータの書き込みを、0行目から(dnx - 1) 行
目まで行なう。このように、書き込みデータ生成ユニッ
ト3302によって生成されたデータは、書き込みデータフ
ァイル3304に転送され、データ書き込みユニット3303が
生成した画像データメモリ3203、または、表示メモリ32
04上のアドレスに、書き込みデータファイル3304に格納
されたデータが順次書き込まれる。
データファイル3304と共に、制御ユニットD3308によっ
て制御され、拡大縮小後の画像Dのメモリ上のワードア
ドレスを生成し、書き込みデータファイル3304に格納さ
れているデータを、ワード単位でメモリに書き込む。デ
ータ書き込みユニット3303は、まず、拡大縮小後の画像
Dの0行0ワード目のワードアドレスを生成してデータ
を書き込み、次に0行1ワード目、0行2ワード目、0
行3ワード目というようにワードアドレスを生成してデ
ータを書き込む。画像Dの0行目のデータの書き込みを
終了すると、つぎは、画像Dの1行目のデータの書き込
みを0行目と同じように行なう。このような画像Dの1
行ごとのデータの書き込みを、0行目から(dnx - 1) 行
目まで行なう。このように、書き込みデータ生成ユニッ
ト3302によって生成されたデータは、書き込みデータフ
ァイル3304に転送され、データ書き込みユニット3303が
生成した画像データメモリ3203、または、表示メモリ32
04上のアドレスに、書き込みデータファイル3304に格納
されたデータが順次書き込まれる。
【0068】書き込みデータファイル3304は、データを
最大4ワードまで格納することができる。書き込みデー
タファイル3304に、4ワードのデータが格納されている
場合、書き込みデータファイル3304から制御ユニットC
3307に対してFullフラグが送られる。これにより、制御
ユニットCは、書き込みデータ生成ユニット3302の書き
込みデータファイル3304へのデータ転送を、一時的に停
止させる。また、書き込みデータファイル3304が空の場
合、つまり書き込みデータファイル3304にデータが格納
されていない場合、書き込みデータファイル3304から制
御ユニットDに対してEmpty フラグが送られる。これに
より、制御ユニットD3308は、書き込みデータファイル
3304のデータのメモリへの書き込みをを一時的に停止さ
せる。
最大4ワードまで格納することができる。書き込みデー
タファイル3304に、4ワードのデータが格納されている
場合、書き込みデータファイル3304から制御ユニットC
3307に対してFullフラグが送られる。これにより、制御
ユニットCは、書き込みデータ生成ユニット3302の書き
込みデータファイル3304へのデータ転送を、一時的に停
止させる。また、書き込みデータファイル3304が空の場
合、つまり書き込みデータファイル3304にデータが格納
されていない場合、書き込みデータファイル3304から制
御ユニットDに対してEmpty フラグが送られる。これに
より、制御ユニットD3308は、書き込みデータファイル
3304のデータのメモリへの書き込みをを一時的に停止さ
せる。
【0069】(実施例4)本発明の実施例4では、実施
例1でMPUが行なっていた画像データの処理を、全て
専用の回路で行なうとともに、並列に実行するようにし
たものである。以下、本発明の実施例4について、図面
を参照しながら説明する。
例1でMPUが行なっていた画像データの処理を、全て
専用の回路で行なうとともに、並列に実行するようにし
たものである。以下、本発明の実施例4について、図面
を参照しながら説明する。
【0070】図36は実施例4における画像処理装置の
機能ブロック図である。図36において、3600は表示メ
モリ3604または画像データメモリ3603上の画像データを
処理して、表示メモリ3604または画像データメモリ3603
に書き込む画像処理ユニット、3601は画像処理ユニット
3600を制御するMPU(Multi Processing Unit) 、3602
はMPU3601が実行するプログラムを格納するシステム
メモリ、3603は画像データを格納する画像データメモ
リ、3604はCRT3606に表示される画像データを格納す
る表示メモリ、3605は表示メモリ3604とCRT3606を制
御するCRTコントローラ、3606は表示メモリ3604に格
納された画像データを表示するCRT、3607は32ビッ
トのバスである。この画像処理装置は、画像データメモ
リ3603上または表示メモリ3604上の矩形領域の原画像
を、補間処理をしながらX軸方向、Y軸方向独立の倍率
で拡大縮小処理して、表示メモリ3604または画像データ
メモリ3603に書き込むように構成されている。処理する
データは8ビット/画素のカラー画像データであり、デ
ータの8ビットが1画素に相当する。以下において、微
小領域とは、原画像の画素間の領域をX軸方向に8分
割、Y軸方向に8分割した場合に現れる仮想上の微小な
領域を意味し、また、ワードは32ビット、ショートワ
ードは16ビット、バイトは8ビットを意味するものと
する。
機能ブロック図である。図36において、3600は表示メ
モリ3604または画像データメモリ3603上の画像データを
処理して、表示メモリ3604または画像データメモリ3603
に書き込む画像処理ユニット、3601は画像処理ユニット
3600を制御するMPU(Multi Processing Unit) 、3602
はMPU3601が実行するプログラムを格納するシステム
メモリ、3603は画像データを格納する画像データメモ
リ、3604はCRT3606に表示される画像データを格納す
る表示メモリ、3605は表示メモリ3604とCRT3606を制
御するCRTコントローラ、3606は表示メモリ3604に格
納された画像データを表示するCRT、3607は32ビッ
トのバスである。この画像処理装置は、画像データメモ
リ3603上または表示メモリ3604上の矩形領域の原画像
を、補間処理をしながらX軸方向、Y軸方向独立の倍率
で拡大縮小処理して、表示メモリ3604または画像データ
メモリ3603に書き込むように構成されている。処理する
データは8ビット/画素のカラー画像データであり、デ
ータの8ビットが1画素に相当する。以下において、微
小領域とは、原画像の画素間の領域をX軸方向に8分
割、Y軸方向に8分割した場合に現れる仮想上の微小な
領域を意味し、また、ワードは32ビット、ショートワ
ードは16ビット、バイトは8ビットを意味するものと
する。
【0071】以上のように構成された画像処理装置にお
いて、画像データメモリ3603の画像をX軸方向にP倍
(Pは任意の正の有理数)、Y軸方向にQ倍(Qは任意
の正の有理数)して、CRT3606に表示する場合、ま
ず、システムメモリ3602のプログラムにしたがって、M
PU3601が画像処理ユニット3600に初期設定を行ない、
画像処理ユニット3600に起動をかける。すると画像処理
ユニット3600は、画像データメモリ3603から画像データ
を読み出し、補間処理をしながらX軸方向にP倍、Y軸
方向にQ倍にして、表示メモリ3604に書き込む。表示メ
モリ3604に書き込まれた画像は、CRTコントローラ36
05によってCRT3605に表示される。画像処理ユニット
3600による画像の補間処理を伴う拡大縮小処理は、メモ
リ3603、3604上の画像データに対して、同様に行なわれ
る。したがって、画像データメモリ3603の画像をX軸方
向にP倍、Y軸方向にQ倍して、画像データメモリ3603
に格納する場合も、表示メモリ3604の画像をX軸方向に
P倍、Y軸方向にQ倍して、画像データメモリ3603に格
納する場合も、表示メモリ3604の画像をX軸方向にP
倍、Y軸方向にQ倍して表示メモリ4 に書き込む場合
も、全て画像処理ユニット3600がメモリ上の原画像デー
タを読み出し、補間処理をしながらX軸方向にP倍、Y
軸方向にQ倍にしてメモリに書き込む。MPU3601によ
る画像処理ユニット3600の制御、および画像処理ユニッ
ト3600によるメモリ3603、3604からの画像データの読み
出しと処理されたデータのメモリ3603、3604への書き込
みは、全てバス3607を介して行なわれる。つまり、画像
処理ユニット3600が、実施例1の図4の処理を行なう。
ただし、画像処理ユニット3600は、画像データのメモリ
3603、3604からの読み出し、およびメモリ3603、3604へ
の書き込みを、全てワード単位で行なう。
いて、画像データメモリ3603の画像をX軸方向にP倍
(Pは任意の正の有理数)、Y軸方向にQ倍(Qは任意
の正の有理数)して、CRT3606に表示する場合、ま
ず、システムメモリ3602のプログラムにしたがって、M
PU3601が画像処理ユニット3600に初期設定を行ない、
画像処理ユニット3600に起動をかける。すると画像処理
ユニット3600は、画像データメモリ3603から画像データ
を読み出し、補間処理をしながらX軸方向にP倍、Y軸
方向にQ倍にして、表示メモリ3604に書き込む。表示メ
モリ3604に書き込まれた画像は、CRTコントローラ36
05によってCRT3605に表示される。画像処理ユニット
3600による画像の補間処理を伴う拡大縮小処理は、メモ
リ3603、3604上の画像データに対して、同様に行なわれ
る。したがって、画像データメモリ3603の画像をX軸方
向にP倍、Y軸方向にQ倍して、画像データメモリ3603
に格納する場合も、表示メモリ3604の画像をX軸方向に
P倍、Y軸方向にQ倍して、画像データメモリ3603に格
納する場合も、表示メモリ3604の画像をX軸方向にP
倍、Y軸方向にQ倍して表示メモリ4 に書き込む場合
も、全て画像処理ユニット3600がメモリ上の原画像デー
タを読み出し、補間処理をしながらX軸方向にP倍、Y
軸方向にQ倍にしてメモリに書き込む。MPU3601によ
る画像処理ユニット3600の制御、および画像処理ユニッ
ト3600によるメモリ3603、3604からの画像データの読み
出しと処理されたデータのメモリ3603、3604への書き込
みは、全てバス3607を介して行なわれる。つまり、画像
処理ユニット3600が、実施例1の図4の処理を行なう。
ただし、画像処理ユニット3600は、画像データのメモリ
3603、3604からの読み出し、およびメモリ3603、3604へ
の書き込みを、全てワード単位で行なう。
【0072】画像処理ユニット3600の内部の機能ブロッ
ク図を図37に示す。3700は拡大縮小後の画像の1行の
画素に対応する原画像領域における微小領域の行番号を
算出する微小領域行算出ユニット、3701は参照するデー
タのメモリ上のワードアドレスを生成し、メモリから画
像データをワード単位で読み出す参照データ読み出しユ
ニット、3702は参照データとしてメモリから読み出した
データを格納する参照データファイル、3703は参照デー
タをX軸方向に8倍補間拡大処理する8倍補間拡大ユニ
ット、3704は補間処理をせずにX軸方向に任意の倍率で
拡大縮小するX方向拡大縮小ユニット、3705は実際にメ
モリに書き込むワードアライメントされたワードデータ
を生成する書き込みデータ生成ユニット、3706は補間拡
大縮小処理されたデータを書き込むメモリ上のワードア
ドレスを生成し、メモリに画像データをワード単位で書
き込むデータ書き込みユニット、3707はデータ書き込み
ユニット3706によって生成されたデータを格納する書き
込みデータファイル、3708は微小領域行算出ユニット37
00と参照データ読み出しユニット3701と参照データファ
イル3702の動作を制御する制御ユニットA、3709は8倍
補間拡大ユニット3703の動作を制御する制御ユニット
B、3710はX方向拡大縮小ユニット3704の動作を制御す
る制御ユニットC、3711は書き込みデータ生成ユニット
3705の動作を制御する制御ユニットD、3712はデータ書
き込みユニット3706と書き込みデータファイル3707の動
作を制御する制御ユニットEである。
ク図を図37に示す。3700は拡大縮小後の画像の1行の
画素に対応する原画像領域における微小領域の行番号を
算出する微小領域行算出ユニット、3701は参照するデー
タのメモリ上のワードアドレスを生成し、メモリから画
像データをワード単位で読み出す参照データ読み出しユ
ニット、3702は参照データとしてメモリから読み出した
データを格納する参照データファイル、3703は参照デー
タをX軸方向に8倍補間拡大処理する8倍補間拡大ユニ
ット、3704は補間処理をせずにX軸方向に任意の倍率で
拡大縮小するX方向拡大縮小ユニット、3705は実際にメ
モリに書き込むワードアライメントされたワードデータ
を生成する書き込みデータ生成ユニット、3706は補間拡
大縮小処理されたデータを書き込むメモリ上のワードア
ドレスを生成し、メモリに画像データをワード単位で書
き込むデータ書き込みユニット、3707はデータ書き込み
ユニット3706によって生成されたデータを格納する書き
込みデータファイル、3708は微小領域行算出ユニット37
00と参照データ読み出しユニット3701と参照データファ
イル3702の動作を制御する制御ユニットA、3709は8倍
補間拡大ユニット3703の動作を制御する制御ユニット
B、3710はX方向拡大縮小ユニット3704の動作を制御す
る制御ユニットC、3711は書き込みデータ生成ユニット
3705の動作を制御する制御ユニットD、3712はデータ書
き込みユニット3706と書き込みデータファイル3707の動
作を制御する制御ユニットEである。
【0073】微小領域行算出ユニット3700、参照データ
読み出しユニット3701、8倍補間拡大ユニット3703、X
方向拡大縮小ユニット3704、データ書き込みユニット37
06が行なう処理は、図4のそれぞれステップ402,405,40
6 〜408,409,410 の処理に対応する。したがって、画像
データメモリ3603の画像をX軸方向にP倍、Y軸方向に
Q倍して、表示メモリ3604に格納する場合、まず、Y軸
方向の倍率Qにもとづき、微小領域行算出ユニット3700
によって拡大縮小後の画像の1行の画素に対応する原画
像領域における微小領域の行番号が算出される。算出さ
れた微小領域の行番号にもとづき、参照データ読み出し
ユニット3701によって画像データメモリ3603上の近傍2
行のワードアドレスが生成される。生成されたアドレス
の2ワードのデータは、画像データメモリ3603から読み
出され、参照データファイル3702に格納される。参照デ
ータファイル3702に格納されたデータは、参照データと
して8倍補間拡大ユニット3703に供給され、微小領域行
算出ユニット3700によって算出された行番号にもとづい
て、8倍補間拡大ユニットは8倍補間拡大処理を行な
い、4ワード(16画素)のデータを生成する。この8
倍補間拡大ユニットによって生成された4ワードのデー
タは、X軸方向に8倍、Y軸方向にQ倍されたデータに
相当する。X軸方向に8倍、Y軸方向にQ倍にされた4
ワードのデータは、X方向拡大縮小ユニット3704によっ
てX軸方向にP/8倍され、X軸方向にP倍Y軸方向に
Q倍されたデータが生成される。X軸方向拡大縮小ユニ
ットによって生成されたデータは、書き込みデータ生成
ユニット3705によって、バイトシフトとマスク演算が行
なわれ、表示メモリのワード境界にアライメントされた
ワードデータに変換され、書き込みデータファイル3707
に格納される。データ書き込みユニット3706は、表示メ
モリ3604上のアドレスを生成し、書き込みデータファイ
ル3707に格納されたデータは、データ書き込みユニット
3706によって生成された表示メモリ3604上のアドレスに
書き込まれる。以上の動作は、拡大縮小後の同一行の画
素データをX軸方向に連続して生成するように1行ずつ
行なわれ、さらにこの1行ずつの処理は、Y軸方向に連
続して行なわれて、最終的に、補間を伴う拡大縮小処理
された画像が表示メモリ3604に書き込まれる。
読み出しユニット3701、8倍補間拡大ユニット3703、X
方向拡大縮小ユニット3704、データ書き込みユニット37
06が行なう処理は、図4のそれぞれステップ402,405,40
6 〜408,409,410 の処理に対応する。したがって、画像
データメモリ3603の画像をX軸方向にP倍、Y軸方向に
Q倍して、表示メモリ3604に格納する場合、まず、Y軸
方向の倍率Qにもとづき、微小領域行算出ユニット3700
によって拡大縮小後の画像の1行の画素に対応する原画
像領域における微小領域の行番号が算出される。算出さ
れた微小領域の行番号にもとづき、参照データ読み出し
ユニット3701によって画像データメモリ3603上の近傍2
行のワードアドレスが生成される。生成されたアドレス
の2ワードのデータは、画像データメモリ3603から読み
出され、参照データファイル3702に格納される。参照デ
ータファイル3702に格納されたデータは、参照データと
して8倍補間拡大ユニット3703に供給され、微小領域行
算出ユニット3700によって算出された行番号にもとづい
て、8倍補間拡大ユニットは8倍補間拡大処理を行な
い、4ワード(16画素)のデータを生成する。この8
倍補間拡大ユニットによって生成された4ワードのデー
タは、X軸方向に8倍、Y軸方向にQ倍されたデータに
相当する。X軸方向に8倍、Y軸方向にQ倍にされた4
ワードのデータは、X方向拡大縮小ユニット3704によっ
てX軸方向にP/8倍され、X軸方向にP倍Y軸方向に
Q倍されたデータが生成される。X軸方向拡大縮小ユニ
ットによって生成されたデータは、書き込みデータ生成
ユニット3705によって、バイトシフトとマスク演算が行
なわれ、表示メモリのワード境界にアライメントされた
ワードデータに変換され、書き込みデータファイル3707
に格納される。データ書き込みユニット3706は、表示メ
モリ3604上のアドレスを生成し、書き込みデータファイ
ル3707に格納されたデータは、データ書き込みユニット
3706によって生成された表示メモリ3604上のアドレスに
書き込まれる。以上の動作は、拡大縮小後の同一行の画
素データをX軸方向に連続して生成するように1行ずつ
行なわれ、さらにこの1行ずつの処理は、Y軸方向に連
続して行なわれて、最終的に、補間を伴う拡大縮小処理
された画像が表示メモリ3604に書き込まれる。
【0074】以上の一連の各機能ブロックの動作は、制
御ユニットA3708、制御ユニットB3709、制御ユニット
C3710、制御ユニットD3711、制御ユニットE3712によ
って制御される。制御ユニットA3708は、微小領域行算
出ユニット3700と参照データ読み出しユニット3701と参
照データファイル3702を制御し、制御ユニットB3709
は、8倍補間拡大ユニット3703を制御し、制御ユニット
C3710は、X方向拡大縮小ユニット3704を制御し、制御
ユニットD3711は、書き込みデータ生成ユニット3705を
制御し、制御ユニットE3712はデータ書き込みユニット
3706と書き込みデータファイル3707を制御する。制御ユ
ニットA3708、制御ユニットB3709、制御ユニットC37
10、制御ユニットD3711、制御ユニットE3712は、いず
れもPLA(Programable Logic Array) 回路とレジスタ
とカウンタおよび加減算器とによって構成され、一部の
レジスタは、制御ユニットどうしで共有する。制御ユニ
ットによって、PLA回路のサイズ、およびレジスタと
カウンタの数は異なり、また加減算器を持たない場合も
あるが、基本的にPLA回路とレジスタとカウンタによ
ってシーケンサを構成し、PLA回路のプログラムにし
たがって各機能ブロックを制御する。制御ユニットA37
08、制御ユニットB3709、制御ユニットC3710、制御ユ
ニットD3711、制御ユニットE3712からは、それぞれが
制御する各機能ブロックに対して制御信号が送られ、ま
た各機能ブロックからはそれぞれの制御ユニットに対し
てフラグ信号(演算器のゼロフラグ、レジスタファイル
のFullフラグ、Empty フラグなど)が送られる。また、
機能ブロックからのフラグ信号の一部(レジスタファイ
ルのFullフラグ、Empty フラグなど)は、次段または前
段の機能ブロックを制御する制御ユニットにも送られ、
機能ブロック間のデータ転送が制御される。このように
5つの制御ユニットと各機能ブロックとの間で制御信号
とフラグ信号が交換されることにより処理の並列化が実
現される。
御ユニットA3708、制御ユニットB3709、制御ユニット
C3710、制御ユニットD3711、制御ユニットE3712によ
って制御される。制御ユニットA3708は、微小領域行算
出ユニット3700と参照データ読み出しユニット3701と参
照データファイル3702を制御し、制御ユニットB3709
は、8倍補間拡大ユニット3703を制御し、制御ユニット
C3710は、X方向拡大縮小ユニット3704を制御し、制御
ユニットD3711は、書き込みデータ生成ユニット3705を
制御し、制御ユニットE3712はデータ書き込みユニット
3706と書き込みデータファイル3707を制御する。制御ユ
ニットA3708、制御ユニットB3709、制御ユニットC37
10、制御ユニットD3711、制御ユニットE3712は、いず
れもPLA(Programable Logic Array) 回路とレジスタ
とカウンタおよび加減算器とによって構成され、一部の
レジスタは、制御ユニットどうしで共有する。制御ユニ
ットによって、PLA回路のサイズ、およびレジスタと
カウンタの数は異なり、また加減算器を持たない場合も
あるが、基本的にPLA回路とレジスタとカウンタによ
ってシーケンサを構成し、PLA回路のプログラムにし
たがって各機能ブロックを制御する。制御ユニットA37
08、制御ユニットB3709、制御ユニットC3710、制御ユ
ニットD3711、制御ユニットE3712からは、それぞれが
制御する各機能ブロックに対して制御信号が送られ、ま
た各機能ブロックからはそれぞれの制御ユニットに対し
てフラグ信号(演算器のゼロフラグ、レジスタファイル
のFullフラグ、Empty フラグなど)が送られる。また、
機能ブロックからのフラグ信号の一部(レジスタファイ
ルのFullフラグ、Empty フラグなど)は、次段または前
段の機能ブロックを制御する制御ユニットにも送られ、
機能ブロック間のデータ転送が制御される。このように
5つの制御ユニットと各機能ブロックとの間で制御信号
とフラグ信号が交換されることにより処理の並列化が実
現される。
【0075】さらに、制御ユニットA3708、制御ユニッ
トB3709、制御ユニットC3710、制御ユニットD3711、
制御ユニットE3712は、MPU3601によって制御され
る。MPU3601は、システムメモリ3602のプログラムに
もとづいて、制御ユニットA3708、制御ユニットB370
9、制御ユニットC3710、制御ユニットD3711、制御ユ
ニットE3712のそれぞれのレジスタとカウンタに、所望
の拡大縮小処理のための初期設定を行ない、各制御ユニ
ットを起動する。すると、各制御ユニットがそれぞれが
担当する機能ブロックを制御して、所望の処理が実行さ
れる。
トB3709、制御ユニットC3710、制御ユニットD3711、
制御ユニットE3712は、MPU3601によって制御され
る。MPU3601は、システムメモリ3602のプログラムに
もとづいて、制御ユニットA3708、制御ユニットB370
9、制御ユニットC3710、制御ユニットD3711、制御ユ
ニットE3712のそれぞれのレジスタとカウンタに、所望
の拡大縮小処理のための初期設定を行ない、各制御ユニ
ットを起動する。すると、各制御ユニットがそれぞれが
担当する機能ブロックを制御して、所望の処理が実行さ
れる。
【0076】以下において、各機能ブロックについて説
明する。説明の簡単のため、各機能ブロックの動作の説
明では、上記各実施例と同様に、原画像S(X軸方向の
画素数がsnx 、Y軸方向の画素数がsny の矩形の画像(s
nx,snyは1以上の整数) )をX軸方向にP倍(Pは0よ
り大きい任意の有理数)、Y軸方向にQ倍(Qは0より
大きい任意の有理数)に拡大縮小処理して画像D(X軸
方向の画素数がdnx 、Y軸方向の画素数がdny の矩形の
画像(dnx,dnyは1以上の整数,dnx= Psnx,dny=Qsny))
を生成する場合の動作について述べる。
明する。説明の簡単のため、各機能ブロックの動作の説
明では、上記各実施例と同様に、原画像S(X軸方向の
画素数がsnx 、Y軸方向の画素数がsny の矩形の画像(s
nx,snyは1以上の整数) )をX軸方向にP倍(Pは0よ
り大きい任意の有理数)、Y軸方向にQ倍(Qは0より
大きい任意の有理数)に拡大縮小処理して画像D(X軸
方向の画素数がdnx 、Y軸方向の画素数がdny の矩形の
画像(dnx,dnyは1以上の整数,dnx= Psnx,dny=Qsny))
を生成する場合の動作について述べる。
【0077】まず、制御ユニットA3708によって制御さ
れる微小領域行算出ユニット3700、参照データ読み出し
ユニット3701、参照データファイル3702について説明す
る。微小領域行算出ユニット3700は、レジスタとカウン
タと加減算器によって構成され、実施例1の図4のステ
ップ402 およびステップ401,412 に対応する処理を行な
う。まず関係式(2)をもとに、拡大縮小後の画像Dの
画素データDstに対応する原画像Sにおける微小領域の
行を示すiとmを算出する。
れる微小領域行算出ユニット3700、参照データ読み出し
ユニット3701、参照データファイル3702について説明す
る。微小領域行算出ユニット3700は、レジスタとカウン
タと加減算器によって構成され、実施例1の図4のステ
ップ402 およびステップ401,412 に対応する処理を行な
う。まず関係式(2)をもとに、拡大縮小後の画像Dの
画素データDstに対応する原画像Sにおける微小領域の
行を示すiとmを算出する。
【0078】参照データ読み出しユニット3701は、加減
算器とバスインターフェイス制御回路によって構成さ
れ、図4のステップ405 に対応する処理を行なう。微小
領域行算出ユニット3700によって算出されたiとmの値
をもとに、m=0, 1, 2, 3の場合には、原画像のi
行j列目とi- 1行j列目のワードアドレスを生成し
て、画像データをワード単位で読み出し、m=4, 5,
6, 7の場合は、原画像のi行j列目とi+ 1行j列目
のワードアドレスを生成して、画像データをワード単位
で読み出す。
算器とバスインターフェイス制御回路によって構成さ
れ、図4のステップ405 に対応する処理を行なう。微小
領域行算出ユニット3700によって算出されたiとmの値
をもとに、m=0, 1, 2, 3の場合には、原画像のi
行j列目とi- 1行j列目のワードアドレスを生成し
て、画像データをワード単位で読み出し、m=4, 5,
6, 7の場合は、原画像のi行j列目とi+ 1行j列目
のワードアドレスを生成して、画像データをワード単位
で読み出す。
【0079】参照データファイル3702は、4個の32ビ
ットレジスタによって構成され、参照データ読み出しユ
ニット3701によって読み出された画像データが格納され
る。参照データファイル3702は、FIFO(First In F
irst Out)として動作し、参照データファイル3702に格
納された画像データは、格納された順に8倍補間拡大ユ
ニット3703へ転送される。参照データファイル3702に、
参照データが4ワード格納されている場合、参照データ
ファイル3702から制御ユニットA3708に対してFullフラ
グが送られる。これにより、制御ユニットAは、参照デ
ータ読み出しユニット3701の参照データの読み出しを、
一時的に停止させる(図39参照)。また、参照データ
ファイル3702が空の場合、つまり参照データが格納され
ていない場合、参照データファイル3702から制御ユニッ
トBに対してEmpty フラグが送られる。これにより、制
御ユニットB3709は、参照データファイル3702から8倍
補間拡大ユニットへのデータの転送を一時的に停止させ
る(図48参照)。
ットレジスタによって構成され、参照データ読み出しユ
ニット3701によって読み出された画像データが格納され
る。参照データファイル3702は、FIFO(First In F
irst Out)として動作し、参照データファイル3702に格
納された画像データは、格納された順に8倍補間拡大ユ
ニット3703へ転送される。参照データファイル3702に、
参照データが4ワード格納されている場合、参照データ
ファイル3702から制御ユニットA3708に対してFullフラ
グが送られる。これにより、制御ユニットAは、参照デ
ータ読み出しユニット3701の参照データの読み出しを、
一時的に停止させる(図39参照)。また、参照データ
ファイル3702が空の場合、つまり参照データが格納され
ていない場合、参照データファイル3702から制御ユニッ
トBに対してEmpty フラグが送られる。これにより、制
御ユニットB3709は、参照データファイル3702から8倍
補間拡大ユニットへのデータの転送を一時的に停止させ
る(図48参照)。
【0080】制御ユニットAによる制御によって、微小
領域行算出ユニット3700と参照データ読み出しユニット
3701と参照データファイル3702は、互いに連動して動作
する。微小領域行算出ユニット3700と参照データ読み出
しユニット3701と参照データファイル3702の動作を、図
38、図39に示す。本実施例では、画素Dstに対応す
る原画像Sにおける微小領域の行を表すiとmは、式
(2)の関係から、DDAアルゴリズム(Digital Diffe
rential Analizer algorithm)を用いて、微小領域行算
出ユニット3700の加減算器がDDA演算を行なうことに
よって算出される。DDA演算では、画素Dstに対応す
る原画像Sにおける微小領域の絶対的な行番号を表すsr
ow(srowは正の整数で式(6)のようにiとmによって
定義される。)を算出し、算出したsrowからiとmを求
める。 srow =8i+m ・・・(6)
領域行算出ユニット3700と参照データ読み出しユニット
3701と参照データファイル3702は、互いに連動して動作
する。微小領域行算出ユニット3700と参照データ読み出
しユニット3701と参照データファイル3702の動作を、図
38、図39に示す。本実施例では、画素Dstに対応す
る原画像Sにおける微小領域の行を表すiとmは、式
(2)の関係から、DDAアルゴリズム(Digital Diffe
rential Analizer algorithm)を用いて、微小領域行算
出ユニット3700の加減算器がDDA演算を行なうことに
よって算出される。DDA演算では、画素Dstに対応す
る原画像Sにおける微小領域の絶対的な行番号を表すsr
ow(srowは正の整数で式(6)のようにiとmによって
定義される。)を算出し、算出したsrowからiとmを求
める。 srow =8i+m ・・・(6)
【0081】図38において、ステップ3800と3801は、
MPU3601による初期設定であり、ステップ3800で微小
領域の絶対的な行番号srowが 4sny/dny に設定され、ス
テップ3801で画像Dの列番号sが0に設定される。MP
U3601が制御ユニットAを起動すると、図38の「スタ
ート」から処理が開始される。まず、ステップ3802で、
8snyとdny の比較を行ない、dny ≦ 8sny の場合には、
ステップ3803で変数rに4snyを初期設定し(sny は正の
整数なので、 8sny/2 = 4sny が成り立つ。)、dny >
8sny の場合には、ステップ3813で変数rに dny/2 を
初期設定する。ここで変数rは、DDA演算の条件判定
に用いる変数である。ステップ3804,3805 では、それぞ
れsrowからiとmが求められ、ステップ3806で、メモリ
から参照データがワード単位で読み出される。ここで、
ステップ3805のsrow%8は、srowを8で割った場合の余り
を表す。ステップ3807では終了判定を行ない、srow = 8
sny - 1 の場合は処理を終了し、それ以外の場合は処理
を続行する。ステップ3808でsrowをインクリメントし、
ステップ3809でrからdny を減算する。ステップ3810で
rの値を判定し、r≦0の場合には、ステップ3811でr
に8snyを加算し、ステップ3812でsをインクリメントし
て、ステップ3804のiの算出に戻り、r>0の場合に
は、ステップ3807〜3810を繰り返す。また、ステップ38
14,3815 では、それぞれsrowからiとmが求められ、ス
テップ3816で、メモリから参照データがワード単位で読
み出される。ステップ3814では終了判定を行ない、srow
= dny -1の場合は処理を終了し、それ以外の場合は処
理を続行する。ステップ3818でsをインクリメントし、
ステップ3819でrから8snyを減算する。ステップ3820で
rの値を判定し、r≦0の場合には、ステップ3821でr
にdny を加算し、ステップ3822でsrowをインクリメント
して、ステップ3814のiの算出に戻り、r>0の場合に
は、そのまま、3814に戻る。
MPU3601による初期設定であり、ステップ3800で微小
領域の絶対的な行番号srowが 4sny/dny に設定され、ス
テップ3801で画像Dの列番号sが0に設定される。MP
U3601が制御ユニットAを起動すると、図38の「スタ
ート」から処理が開始される。まず、ステップ3802で、
8snyとdny の比較を行ない、dny ≦ 8sny の場合には、
ステップ3803で変数rに4snyを初期設定し(sny は正の
整数なので、 8sny/2 = 4sny が成り立つ。)、dny >
8sny の場合には、ステップ3813で変数rに dny/2 を
初期設定する。ここで変数rは、DDA演算の条件判定
に用いる変数である。ステップ3804,3805 では、それぞ
れsrowからiとmが求められ、ステップ3806で、メモリ
から参照データがワード単位で読み出される。ここで、
ステップ3805のsrow%8は、srowを8で割った場合の余り
を表す。ステップ3807では終了判定を行ない、srow = 8
sny - 1 の場合は処理を終了し、それ以外の場合は処理
を続行する。ステップ3808でsrowをインクリメントし、
ステップ3809でrからdny を減算する。ステップ3810で
rの値を判定し、r≦0の場合には、ステップ3811でr
に8snyを加算し、ステップ3812でsをインクリメントし
て、ステップ3804のiの算出に戻り、r>0の場合に
は、ステップ3807〜3810を繰り返す。また、ステップ38
14,3815 では、それぞれsrowからiとmが求められ、ス
テップ3816で、メモリから参照データがワード単位で読
み出される。ステップ3814では終了判定を行ない、srow
= dny -1の場合は処理を終了し、それ以外の場合は処
理を続行する。ステップ3818でsをインクリメントし、
ステップ3819でrから8snyを減算する。ステップ3820で
rの値を判定し、r≦0の場合には、ステップ3821でr
にdny を加算し、ステップ3822でsrowをインクリメント
して、ステップ3814のiの算出に戻り、r>0の場合に
は、そのまま、3814に戻る。
【0082】図38において、ステップ3800と3801は、
MPU3601の動作であり、ステップ3806と3816の「参照
データの読み出し」は、参照データ読み出しユニット37
01と参照データファイル3702の動作であり、それ以外が
微小領域行算出ユニット3700の動作である。また、ステ
ップ3804と3805、またはステップ3814と3815のsrowから
のiとmの算出は、実際には、srowの算出によって自動
的に行なわれる。srowは、微小領域行算出ユニット3700
の内部のカウンタに相当し、そのカウンタの下位3ビッ
トがmに相当し、それ以外のビットがiに相当する。
「参照データの読み出し」では、画像Dのs行目のデー
タに対応する参照データのワードアドレスが生成され、
メモリから参照データがワード単位で読み出される。図
38に示すように、参照データの読み出しは、画像Dの
0行目のデータに対応する参照データの読み出しから行
なわれ、次に1行目のデータ、2行目のデータと、順次
行なわれ、(dny - 1)行目のデータに対応する参照デー
タのアドレス生成を終了するまで行なわれる。
MPU3601の動作であり、ステップ3806と3816の「参照
データの読み出し」は、参照データ読み出しユニット37
01と参照データファイル3702の動作であり、それ以外が
微小領域行算出ユニット3700の動作である。また、ステ
ップ3804と3805、またはステップ3814と3815のsrowから
のiとmの算出は、実際には、srowの算出によって自動
的に行なわれる。srowは、微小領域行算出ユニット3700
の内部のカウンタに相当し、そのカウンタの下位3ビッ
トがmに相当し、それ以外のビットがiに相当する。
「参照データの読み出し」では、画像Dのs行目のデー
タに対応する参照データのワードアドレスが生成され、
メモリから参照データがワード単位で読み出される。図
38に示すように、参照データの読み出しは、画像Dの
0行目のデータに対応する参照データの読み出しから行
なわれ、次に1行目のデータ、2行目のデータと、順次
行なわれ、(dny - 1)行目のデータに対応する参照デー
タのアドレス生成を終了するまで行なわれる。
【0083】ステップ3806と3816の「参照データの読み
出し」の手順は、図39に詳しく示されている。微小領
域行算出ユニット3700によって算出されたiとmの値を
もとに、m=0, 1, 2, 3の場合には、原画像のi行
j列目とi- 1行j列目のワードアドレスを生成して、
画像データをワード単位で読み出し、m=4, 5, 6,
7の場合は、原画像のi行j列目とi+ 1行j列目のワ
ードアドレスを生成して、画像データをワード単位で読
み出す。図39において、ステップ3900,3901は初期設
定であり、cnt _swx は、「参照データの読み出し」処
理の終了判定をするカウンタである。ステップ3901の
(SBP + snx - 1)/4 のSBP は、原画像Sの左端の画素
のメモリ上のワード内におけるバイト位置を表す値で、
MPU3601によって設定される値である(SBP は、MP
U3601によって初期設定される原画像Sの最上右端の画
素のメモリ上のバイトアドレスの下位2ビットに相当す
る。したがってSBP は、0〜3の整数である。)。ステ
ップ3901でのcnt _swx の設定値は、メモリ上の原画像
SのX軸方向のワード数から1を引いた値に相当する。
ステップ3902,3903 で、原画像境界における処理をする
か否かの判定をし、原画像境界における処理をする場合
には、ステップ3919〜3925で原画像Sのi行目の画素デ
ータが2回ずつ読み出され、原画像境界における処理を
しない場合には、ステップ3904でmの値の判定を行な
う。m<4の場合(m=0, 1, 2, 3の場合)には、
ステップ3905〜3911で原画像Sのi行目と( i- 1) 行
目のデータが読み出され、m≧4の場合(m=4, 5,
6, 7の場合)には、ステップ3912〜3918で原画像Sの
i行目と( i+ 1) 行目のデータが読み出される。ステ
ップ3905で参照データファイルのFullフラグを判定し、
Fullの場合はFullフラグが消えるまで待ち、Fullでない
場合はステップ3906でi行j列目の画素のワードアドレ
スを生成し、データを読み出す。さらに、ステップ3907
で参照データファイルのFullフラグを判定し、Fullの場
合はFullフラグが消えるまで待ち、Fullでない場合はス
テップ3908で( i- 1) 行j列目の画素のワードアドレ
スを生成し、データを読み出す。ステップ3909で「参照
データの読み出し」処理の終了判定を行ない、cnt _sw
x = 0 の場合は、「参照データの読み出し」処理を終了
し、それ以外の場合、ステップ3910でcnt _swx をデク
リメントし、ステップ3911でjに4を加算して、ステッ
プ3905の参照データファイル3702のFullフラグの判定に
戻る。
出し」の手順は、図39に詳しく示されている。微小領
域行算出ユニット3700によって算出されたiとmの値を
もとに、m=0, 1, 2, 3の場合には、原画像のi行
j列目とi- 1行j列目のワードアドレスを生成して、
画像データをワード単位で読み出し、m=4, 5, 6,
7の場合は、原画像のi行j列目とi+ 1行j列目のワ
ードアドレスを生成して、画像データをワード単位で読
み出す。図39において、ステップ3900,3901は初期設
定であり、cnt _swx は、「参照データの読み出し」処
理の終了判定をするカウンタである。ステップ3901の
(SBP + snx - 1)/4 のSBP は、原画像Sの左端の画素
のメモリ上のワード内におけるバイト位置を表す値で、
MPU3601によって設定される値である(SBP は、MP
U3601によって初期設定される原画像Sの最上右端の画
素のメモリ上のバイトアドレスの下位2ビットに相当す
る。したがってSBP は、0〜3の整数である。)。ステ
ップ3901でのcnt _swx の設定値は、メモリ上の原画像
SのX軸方向のワード数から1を引いた値に相当する。
ステップ3902,3903 で、原画像境界における処理をする
か否かの判定をし、原画像境界における処理をする場合
には、ステップ3919〜3925で原画像Sのi行目の画素デ
ータが2回ずつ読み出され、原画像境界における処理を
しない場合には、ステップ3904でmの値の判定を行な
う。m<4の場合(m=0, 1, 2, 3の場合)には、
ステップ3905〜3911で原画像Sのi行目と( i- 1) 行
目のデータが読み出され、m≧4の場合(m=4, 5,
6, 7の場合)には、ステップ3912〜3918で原画像Sの
i行目と( i+ 1) 行目のデータが読み出される。ステ
ップ3905で参照データファイルのFullフラグを判定し、
Fullの場合はFullフラグが消えるまで待ち、Fullでない
場合はステップ3906でi行j列目の画素のワードアドレ
スを生成し、データを読み出す。さらに、ステップ3907
で参照データファイルのFullフラグを判定し、Fullの場
合はFullフラグが消えるまで待ち、Fullでない場合はス
テップ3908で( i- 1) 行j列目の画素のワードアドレ
スを生成し、データを読み出す。ステップ3909で「参照
データの読み出し」処理の終了判定を行ない、cnt _sw
x = 0 の場合は、「参照データの読み出し」処理を終了
し、それ以外の場合、ステップ3910でcnt _swx をデク
リメントし、ステップ3911でjに4を加算して、ステッ
プ3905の参照データファイル3702のFullフラグの判定に
戻る。
【0084】同様に、ステップ3912で参照データファイ
ル3702のFullフラグを判定し、ステップ3913でi行j行
目の画素のワードアドレスを生成し、データを読み出
す。さらに、ステップ3914で参照データファイル3702の
Fullフラグを判定し、ステップ3915でi行( j+ 1) 列
目の画素のワードアドレスを生成し、データを読み出
す。ステップ3916で「参照データの読み出し」処理の終
了判定を行ない、ステップ3917でcnt _swx をデクリメ
ントし、ステップ3918でjに4を加算して、ステップ39
12の参照データファイル3702のFullフラグの判定に戻
る。また、ステップ3919では参照データファイル3702の
Fullフラグを判定し、ステップ3920でi行j列目の画素
のワードアドレスを生成し、データを読み出す。さら
に、ステップ3921で参照データファイル3702のFullフラ
グを判定し、ステップ3922でi行j列目の画素のワード
アドレスを生成し、データを読み出す。ステップ3923で
「参照データの読み出し」処理の終了判定を行ない、ス
テップ3924でcnt _swx をデクリメントし、ステップ39
25でjに4を加算して、ステップ3919の参照データファ
イル3702のFullフラグの判定に戻る。
ル3702のFullフラグを判定し、ステップ3913でi行j行
目の画素のワードアドレスを生成し、データを読み出
す。さらに、ステップ3914で参照データファイル3702の
Fullフラグを判定し、ステップ3915でi行( j+ 1) 列
目の画素のワードアドレスを生成し、データを読み出
す。ステップ3916で「参照データの読み出し」処理の終
了判定を行ない、ステップ3917でcnt _swx をデクリメ
ントし、ステップ3918でjに4を加算して、ステップ39
12の参照データファイル3702のFullフラグの判定に戻
る。また、ステップ3919では参照データファイル3702の
Fullフラグを判定し、ステップ3920でi行j列目の画素
のワードアドレスを生成し、データを読み出す。さら
に、ステップ3921で参照データファイル3702のFullフラ
グを判定し、ステップ3922でi行j列目の画素のワード
アドレスを生成し、データを読み出す。ステップ3923で
「参照データの読み出し」処理の終了判定を行ない、ス
テップ3924でcnt _swx をデクリメントし、ステップ39
25でjに4を加算して、ステップ3919の参照データファ
イル3702のFullフラグの判定に戻る。
【0085】図39に示すように、原画像境界における
処理を行なう場合、つまり、原画像Sのi行目の画素デ
ータが2回ずつ読み出す場合、i行j列目の画素データ
をメモリからをワード単位で2回読み出し、次に、i行
( j+ 4) 列目の画素データをメモリからワード単位で
2回読み出し、さらにi行( j+ 8) 列目の画素データ
をメモリからワード単位で2回読み出すというように、
参照データの読み出しが行なわれる。原画像境界におけ
る処理をしない場合で、m=0, 1, 2, 3の時は、図
51のように、i行j列目の画素データがワード単位で
読み出され、次に、( i- 1) 行j列目の画素データが
ワード単位で読み出され、i行( j+ 4) 列目の画素デ
ータがワード単位で読み出され、( i- 1) 行( j+
4) 列目の画素データがワード単位で読み出され、i行
( j+ 8) 列目の画素データがワード単位で読み出さ
れ、( i- 1) 行( j+ 8) 列目の画素データがワード
単位で読み出され、というように参照データの読み出し
が行なわれる。m=4, 5, 6,7の時は、図52のよ
うに、i行j列目の画素データがワード単位で読み出さ
れ、次に、( i+ 1) 行j列目の画素データがワード単
位で読み出され、i行(j+ 4) 列目の画素データがワ
ード単位で読み出され、( i+ 1) 行( j+ 4)列目の
画素データがワード単位で読み出され、i行( j+ 8)
列目の画素データがワード単位で読み出され、( i+
1) 行( j+ 8) 列目の画素データがワード単位で読み
出され、というように参照データの読み出しが行なわれ
る。
処理を行なう場合、つまり、原画像Sのi行目の画素デ
ータが2回ずつ読み出す場合、i行j列目の画素データ
をメモリからをワード単位で2回読み出し、次に、i行
( j+ 4) 列目の画素データをメモリからワード単位で
2回読み出し、さらにi行( j+ 8) 列目の画素データ
をメモリからワード単位で2回読み出すというように、
参照データの読み出しが行なわれる。原画像境界におけ
る処理をしない場合で、m=0, 1, 2, 3の時は、図
51のように、i行j列目の画素データがワード単位で
読み出され、次に、( i- 1) 行j列目の画素データが
ワード単位で読み出され、i行( j+ 4) 列目の画素デ
ータがワード単位で読み出され、( i- 1) 行( j+
4) 列目の画素データがワード単位で読み出され、i行
( j+ 8) 列目の画素データがワード単位で読み出さ
れ、( i- 1) 行( j+ 8) 列目の画素データがワード
単位で読み出され、というように参照データの読み出し
が行なわれる。m=4, 5, 6,7の時は、図52のよ
うに、i行j列目の画素データがワード単位で読み出さ
れ、次に、( i+ 1) 行j列目の画素データがワード単
位で読み出され、i行(j+ 4) 列目の画素データがワ
ード単位で読み出され、( i+ 1) 行( j+ 4)列目の
画素データがワード単位で読み出され、i行( j+ 8)
列目の画素データがワード単位で読み出され、( i+
1) 行( j+ 8) 列目の画素データがワード単位で読み
出され、というように参照データの読み出しが行なわれ
る。
【0086】次に、8倍補間拡大ユニット3703について
図40を参照して説明する。8倍補間拡大ユニット3703
は、制御ユニットB3709によって制御され、補間処理を
しながらX軸方向に8倍に拡大されたデータを生成する
8倍補間拡大処理を行なう。つまり、実施例1の図4の
おけるステップ406 〜408 に対応する処理を行なう。た
だし、8倍補間拡大ユニットは、一度に16画素のデー
タを生成する。図40は8倍補間拡大ユニット3703のブ
ロック図を示し、8倍補間拡大ユニット3703は、参照デ
ータ選択部4000、画素データ比較部4001、選択テーブル
格納部4002、8倍拡大データ選択部4003、128ビット
のレジスタ4004によって構成される。
図40を参照して説明する。8倍補間拡大ユニット3703
は、制御ユニットB3709によって制御され、補間処理を
しながらX軸方向に8倍に拡大されたデータを生成する
8倍補間拡大処理を行なう。つまり、実施例1の図4の
おけるステップ406 〜408 に対応する処理を行なう。た
だし、8倍補間拡大ユニットは、一度に16画素のデー
タを生成する。図40は8倍補間拡大ユニット3703のブ
ロック図を示し、8倍補間拡大ユニット3703は、参照デ
ータ選択部4000、画素データ比較部4001、選択テーブル
格納部4002、8倍拡大データ選択部4003、128ビット
のレジスタ4004によって構成される。
【0087】参照データ選択部4000は、1回の8倍補間
拡大処理で参照される8画素のデータを選択し、画素デ
ータ比較部4001と8倍拡大データ選択部4003へ参照デー
タを供給する。画素データ比較部4001は、選択された8
画素のデータ(( 4画素) ×( 2行) )によって構成さ
れる3組の画素間の領域ごとに、その領域を囲む画素ど
うしの一致・不一致の関係の組み合わせ、つまり関数C
の値を求める。選択テーブル格納部4002には、図11〜
図25の関数Cの値と選択される画素データの関係を、
データ選択情報を要素とするテーブルに変換した選択テ
ーブルが格納されており、関数Cの値と微小領域の行番
号をもとに、選択テーブル格納部4002から選択テーブル
が読み出され、データ選択情報が8倍拡大データ選択部
4003へ送られる。8倍拡大データ選択部4003は、データ
選択情報をもとに、8画素のデータから8倍拡大処理後
の16画素のデータを選択し、レジスタ4004に格納す
る。つまり、画素データ比較部4001、選択テーブル格納
部4002、8倍拡大データ選択部4003は、実施例1の図4
では、それぞれステップ406,407,408 に対応する処理を
行なう。
拡大処理で参照される8画素のデータを選択し、画素デ
ータ比較部4001と8倍拡大データ選択部4003へ参照デー
タを供給する。画素データ比較部4001は、選択された8
画素のデータ(( 4画素) ×( 2行) )によって構成さ
れる3組の画素間の領域ごとに、その領域を囲む画素ど
うしの一致・不一致の関係の組み合わせ、つまり関数C
の値を求める。選択テーブル格納部4002には、図11〜
図25の関数Cの値と選択される画素データの関係を、
データ選択情報を要素とするテーブルに変換した選択テ
ーブルが格納されており、関数Cの値と微小領域の行番
号をもとに、選択テーブル格納部4002から選択テーブル
が読み出され、データ選択情報が8倍拡大データ選択部
4003へ送られる。8倍拡大データ選択部4003は、データ
選択情報をもとに、8画素のデータから8倍拡大処理後
の16画素のデータを選択し、レジスタ4004に格納す
る。つまり、画素データ比較部4001、選択テーブル格納
部4002、8倍拡大データ選択部4003は、実施例1の図4
では、それぞれステップ406,407,408 に対応する処理を
行なう。
【0088】参照データ選択部4000は、図41に示すよ
うに、2個の32ビットレジスタの主参照データレジス
タ4108、上下参照データレジスタ4109と、2個の24ビ
ットレジスタの前主参照データレジスタ4110、前上下参
照データレジスタ4111と、6個の8ビット5-1 セレクタ
4100,4102,4103,4104,4106,4107 と、2個の8ビット4-
1 セレクタ4101,4105 によって構成される。8ビット5-
1 セレクタは、制御ユニットB3709からの選択信号にし
たがって、5バイト(5画素)の入力から1バイト(1
画素)を選択して出力するセレクタである。8ビット4-
1 セレクタも同様に、制御ユニットB3709からの選択信
号にしたがって、4バイト(4画素)の入力から1バイ
ト(1画素)を選択して出力するセレクタである。主参
照データレジスタ4108のバイトデータ(画素データ)を
MRD0,MRD1,MRD2,MRD3 、上下参照データレジスタ4109の
バイトデータをTBRD0,TBRD1,TBRD2,TBRD3 、前主参照デ
ータレジスタ4110のバイトデータをPMRD1,PMRD2,PMRD3
、前上下参照データレジスタ4111のバイトデータをPTB
RD1,PTBRD2,PTBRD3とすると、セレクタ4100〜4107は、
図41に示すように、主参照データレジスタ4108、上下
参照データレジスタ4109、前主参照データレジスタ411
0、前上下参照データレジスタ4111の出力のバイトデー
タを入力とし、セレクタ4100〜4107の出力は、それぞれ
LMDATA,MDATA,MDATB,RMDATB,LTBDATA,TBDATA,TBDATB,RT
BDATB として、画素データ比較部4001と、8倍拡大デー
タ選択部4003へ出力される。図41では、レジスタとセ
レクタを分けて図示しているが、実際には、同じ名前の
レジスタのバイトデータとセレクタの入力は、物理的に
接続されている。
うに、2個の32ビットレジスタの主参照データレジス
タ4108、上下参照データレジスタ4109と、2個の24ビ
ットレジスタの前主参照データレジスタ4110、前上下参
照データレジスタ4111と、6個の8ビット5-1 セレクタ
4100,4102,4103,4104,4106,4107 と、2個の8ビット4-
1 セレクタ4101,4105 によって構成される。8ビット5-
1 セレクタは、制御ユニットB3709からの選択信号にし
たがって、5バイト(5画素)の入力から1バイト(1
画素)を選択して出力するセレクタである。8ビット4-
1 セレクタも同様に、制御ユニットB3709からの選択信
号にしたがって、4バイト(4画素)の入力から1バイ
ト(1画素)を選択して出力するセレクタである。主参
照データレジスタ4108のバイトデータ(画素データ)を
MRD0,MRD1,MRD2,MRD3 、上下参照データレジスタ4109の
バイトデータをTBRD0,TBRD1,TBRD2,TBRD3 、前主参照デ
ータレジスタ4110のバイトデータをPMRD1,PMRD2,PMRD3
、前上下参照データレジスタ4111のバイトデータをPTB
RD1,PTBRD2,PTBRD3とすると、セレクタ4100〜4107は、
図41に示すように、主参照データレジスタ4108、上下
参照データレジスタ4109、前主参照データレジスタ411
0、前上下参照データレジスタ4111の出力のバイトデー
タを入力とし、セレクタ4100〜4107の出力は、それぞれ
LMDATA,MDATA,MDATB,RMDATB,LTBDATA,TBDATA,TBDATB,RT
BDATB として、画素データ比較部4001と、8倍拡大デー
タ選択部4003へ出力される。図41では、レジスタとセ
レクタを分けて図示しているが、実際には、同じ名前の
レジスタのバイトデータとセレクタの入力は、物理的に
接続されている。
【0089】主参照データレジスタ4108と上下参照デー
タレジスタ4109には、参照データファイル3702に格納さ
れている参照データが交互に転送される。また、主参照
データレジスタ4108のバイトMRD1,MRD2,MRD3の出力は、
それぞれ前主参照データレジスタ4110のバイトPMRD1,PM
RD2,PMRD3 の入力に、上下参照データレジスタ4109のバ
イトTBRD1,TBRD2,TBRD3 の出力は、それぞれ前上下参照
データレジスタ4111のバイトPTBRD1,PTBRD2,PTBRD3の入
力に接続し、制御ユニットB3709からの制御信号にした
がってデータ転送が行なわれる。つまり、制御ユニット
B3709による参照データファイル3702からのデータ転送
の制御と、レジスタ間のデータ転送の制御と、セレクタ
4100〜4107の制御により、参照データ選択部4000は、画
素データ比較部4001と、8倍拡大データ選択部4003へ参
照データを供給する。セレクタ4100〜4107によるバイト
データ(画素データ)の選択パターンは、図53に示す
24種類の選択パターンSEL0,SEL1,SEL2...,SEL22,SEL2
3 に分類される。図53は、それぞれの選択パターンに
おいて、参照データLMDATA,MDATA,MDATB,RMDATB,LTBDAT
A,TBDATA,TBDATB,RTBDATB として選択されるバイトデー
タを示している。制御ユニットB3709は、セレクタ4100
〜4107に対して、SEL0〜SEL23 の選択パターンのバイト
データの選択を行なう制御信号を図47に示す手順で生
成する。図47は、画像Dのs行目のデータの生成にお
ける参照データの選択の手順を示している。図47の手
順で参照データを選択することにより、8倍補間拡大ユ
ニットは、拡大縮小後の画像Dのs行目のデータの生成
における8倍補間拡大処理をX軸方向に連続して行な
う。参照データ選択部が参照データを選択する手順につ
いては、後で、詳しく説明する。
タレジスタ4109には、参照データファイル3702に格納さ
れている参照データが交互に転送される。また、主参照
データレジスタ4108のバイトMRD1,MRD2,MRD3の出力は、
それぞれ前主参照データレジスタ4110のバイトPMRD1,PM
RD2,PMRD3 の入力に、上下参照データレジスタ4109のバ
イトTBRD1,TBRD2,TBRD3 の出力は、それぞれ前上下参照
データレジスタ4111のバイトPTBRD1,PTBRD2,PTBRD3の入
力に接続し、制御ユニットB3709からの制御信号にした
がってデータ転送が行なわれる。つまり、制御ユニット
B3709による参照データファイル3702からのデータ転送
の制御と、レジスタ間のデータ転送の制御と、セレクタ
4100〜4107の制御により、参照データ選択部4000は、画
素データ比較部4001と、8倍拡大データ選択部4003へ参
照データを供給する。セレクタ4100〜4107によるバイト
データ(画素データ)の選択パターンは、図53に示す
24種類の選択パターンSEL0,SEL1,SEL2...,SEL22,SEL2
3 に分類される。図53は、それぞれの選択パターンに
おいて、参照データLMDATA,MDATA,MDATB,RMDATB,LTBDAT
A,TBDATA,TBDATB,RTBDATB として選択されるバイトデー
タを示している。制御ユニットB3709は、セレクタ4100
〜4107に対して、SEL0〜SEL23 の選択パターンのバイト
データの選択を行なう制御信号を図47に示す手順で生
成する。図47は、画像Dのs行目のデータの生成にお
ける参照データの選択の手順を示している。図47の手
順で参照データを選択することにより、8倍補間拡大ユ
ニットは、拡大縮小後の画像Dのs行目のデータの生成
における8倍補間拡大処理をX軸方向に連続して行な
う。参照データ選択部が参照データを選択する手順につ
いては、後で、詳しく説明する。
【0090】画素データ比較部4001は、図42のよう
に、16個の比較回路4200〜4215によって構成される。
比較回路は、図43に示す論理の回路であり、2バイト
の入力のそれぞれのビットが一致する場合のみ" 1" を
出力し、それ以外の場合は" 0" を出力する。各比較回
路には、LMDATA,MDATA,MDATB,RMDATB,LTBDATA,TBDATA,T
BDATB,RTBDATB のバイトデータが図42に示すように入
力され、各入力画素データ間の比較結果が出力される。
比較回路4200〜4215の出力は、LMDATAとMDATA とLTBDAT
A とTBDATAの4画素のデータ間の一致・不一致の関係を
表す6ビットの信号LA(5:0) 、MDATA とMDATB とTBDATA
とTBDATBの4画素のデータ間の一致・不一致を表す6ビ
ットの信号MA(5:0) 、MDATB とRMDATBとTBDATBとRTBDAT
B の4画素のデータ間の一致・不一致を表す6ビットの
信号RA(5:0) に再編成され、選択テーブル格納部4002へ
出力される。ここで、4画素のデータ間の一致・不一致
の関係を表す6ビットの信号LA(5:0),MA(5:0),RA(5:0)
は、それぞれC(LMDATA,MDATA,LTBDATA,TBDATA)、C
(MDATA,MDATB,TBDATA,TBDATB)、C(MDATB,RMDARB,TB
DATB,RTBDATB)(m= 4, 5, 6, 7の場合)またはC
(LTBDATA,TBDATA,LMDATA,MDATA )、C(TBDATA,TBDAT
B,MDATA,MDATB )、C(TBDATB,RTBDATB,MDATB,RMDATB
)(m= 0, 1, 2, 3の場合)に相当する。
に、16個の比較回路4200〜4215によって構成される。
比較回路は、図43に示す論理の回路であり、2バイト
の入力のそれぞれのビットが一致する場合のみ" 1" を
出力し、それ以外の場合は" 0" を出力する。各比較回
路には、LMDATA,MDATA,MDATB,RMDATB,LTBDATA,TBDATA,T
BDATB,RTBDATB のバイトデータが図42に示すように入
力され、各入力画素データ間の比較結果が出力される。
比較回路4200〜4215の出力は、LMDATAとMDATA とLTBDAT
A とTBDATAの4画素のデータ間の一致・不一致の関係を
表す6ビットの信号LA(5:0) 、MDATA とMDATB とTBDATA
とTBDATBの4画素のデータ間の一致・不一致を表す6ビ
ットの信号MA(5:0) 、MDATB とRMDATBとTBDATBとRTBDAT
B の4画素のデータ間の一致・不一致を表す6ビットの
信号RA(5:0) に再編成され、選択テーブル格納部4002へ
出力される。ここで、4画素のデータ間の一致・不一致
の関係を表す6ビットの信号LA(5:0),MA(5:0),RA(5:0)
は、それぞれC(LMDATA,MDATA,LTBDATA,TBDATA)、C
(MDATA,MDATB,TBDATA,TBDATB)、C(MDATB,RMDARB,TB
DATB,RTBDATB)(m= 4, 5, 6, 7の場合)またはC
(LTBDATA,TBDATA,LMDATA,MDATA )、C(TBDATA,TBDAT
B,MDATA,MDATB )、C(TBDATB,RTBDATB,MDATB,RMDATB
)(m= 0, 1, 2, 3の場合)に相当する。
【0091】選択テーブル格納部4002は、図44のよう
に、3個のエンコーダ4400〜4402と、選択テーブルを格
納した3個のROM(Read Only Memory)4403〜4405によ
って構成される。エンコーダ4400,4401,4402は、LA(5:
0),MA(5:0),RA(5:0) を、それぞれを4ビットにエンコ
ードし、微小領域行算出ユニット3700によって算出され
た行番号を示す3ビットの信号m(2:0)と共に、それぞれ
ROM4403,4404,4405にアドレスとして入力される。選
択テーブルは、データ選択情報を要素とするテーブルで
あり、ROM4403,4404,4405は、データ選択情報を8倍
拡大データ選択部4003を制御する選択信号として出力す
る。ROM4403は、A0SEL(1:0),A1SEL(1:0),A2SEL(1:
0),A3SEL(1:0) の8ビット(2bits×4)の選択信号を出力
し、ROM4404は、A4SEL(1:0),A5SEL(1:0),A6SEL(1:
0),A37SEL(1:0),B0SEL(1:0),B1SEL(1:0),B2SEL(1:0),B3
SEL(1:0)の16ビット(2bits×8)の選択信号を出力し、
ROM4405は、B4SEL(1:0),B5SEL(1:0),B6SEL(1:0),B7S
EL(1:0) の8ビット(2bits×4)の選択信号を出力する。
選択信号は、2ビットで選択する画素データを示し、そ
の値と選択される画素の位置との関係は、図45に示す
通りである。
に、3個のエンコーダ4400〜4402と、選択テーブルを格
納した3個のROM(Read Only Memory)4403〜4405によ
って構成される。エンコーダ4400,4401,4402は、LA(5:
0),MA(5:0),RA(5:0) を、それぞれを4ビットにエンコ
ードし、微小領域行算出ユニット3700によって算出され
た行番号を示す3ビットの信号m(2:0)と共に、それぞれ
ROM4403,4404,4405にアドレスとして入力される。選
択テーブルは、データ選択情報を要素とするテーブルで
あり、ROM4403,4404,4405は、データ選択情報を8倍
拡大データ選択部4003を制御する選択信号として出力す
る。ROM4403は、A0SEL(1:0),A1SEL(1:0),A2SEL(1:
0),A3SEL(1:0) の8ビット(2bits×4)の選択信号を出力
し、ROM4404は、A4SEL(1:0),A5SEL(1:0),A6SEL(1:
0),A37SEL(1:0),B0SEL(1:0),B1SEL(1:0),B2SEL(1:0),B3
SEL(1:0)の16ビット(2bits×8)の選択信号を出力し、
ROM4405は、B4SEL(1:0),B5SEL(1:0),B6SEL(1:0),B7S
EL(1:0) の8ビット(2bits×4)の選択信号を出力する。
選択信号は、2ビットで選択する画素データを示し、そ
の値と選択される画素の位置との関係は、図45に示す
通りである。
【0092】ROM4404に格納されている選択テーブル
は、まさに、図11〜図25を、拡大縮小後の画素とし
て選択される画素の4画素間における相対的な識別情報
を要素とする8×8のサイズの15個のテーブルに変換
したものであり、入力信号MA(5:0),m(2:0)と出力信号A4
SEL(1:0),A5SEL(1:0),A6SEL(1:0),A7SEL(1:0),B0SEL(1:
0),B1SEL(1:0),B2SEL(1:0),B3SEL(1:0) との関係は、図
54のようになる。例えば、MA(5:0)=100110,m(2:0)=5
の場合、MA(5:0)=100110の場合の選択テーブルのm(2:0)
=5の行の選択信号が出力される。また、ROM4403の入
力信号LA(5:0),m(2:0)と出力信号A0SEL(1:0),A1SEL(1:
0),A2SEL(1:0),A3SEL(1:0) との関係は、図55のよう
になり、ROM4405の入力信号RA(5:0),m(2:0)と出力信
号B4SEL(1:0),B5SEL(1:0),B6SEL(1:0),B7SEL(1:0) との
関係は、図56のようになっており、ROM4403に格納
されているテーブルは、ROM4404に格納されているテ
ーブル、の出力信号B0SEL(1:0),B1SEL(1:0),B2SEL(1:
0),B3SEL(1:0) に対応する部分と等しく、ROM4405に
格納されているテーブルは、ROM4404に格納されてい
るテーブルの出力信号A4SEL(1:0),A5SEL(1:0),A6SEL(1:
0),A7SEL(1:0) に対応する部分と等しい。
は、まさに、図11〜図25を、拡大縮小後の画素とし
て選択される画素の4画素間における相対的な識別情報
を要素とする8×8のサイズの15個のテーブルに変換
したものであり、入力信号MA(5:0),m(2:0)と出力信号A4
SEL(1:0),A5SEL(1:0),A6SEL(1:0),A7SEL(1:0),B0SEL(1:
0),B1SEL(1:0),B2SEL(1:0),B3SEL(1:0) との関係は、図
54のようになる。例えば、MA(5:0)=100110,m(2:0)=5
の場合、MA(5:0)=100110の場合の選択テーブルのm(2:0)
=5の行の選択信号が出力される。また、ROM4403の入
力信号LA(5:0),m(2:0)と出力信号A0SEL(1:0),A1SEL(1:
0),A2SEL(1:0),A3SEL(1:0) との関係は、図55のよう
になり、ROM4405の入力信号RA(5:0),m(2:0)と出力信
号B4SEL(1:0),B5SEL(1:0),B6SEL(1:0),B7SEL(1:0) との
関係は、図56のようになっており、ROM4403に格納
されているテーブルは、ROM4404に格納されているテ
ーブル、の出力信号B0SEL(1:0),B1SEL(1:0),B2SEL(1:
0),B3SEL(1:0) に対応する部分と等しく、ROM4405に
格納されているテーブルは、ROM4404に格納されてい
るテーブルの出力信号A4SEL(1:0),A5SEL(1:0),A6SEL(1:
0),A7SEL(1:0) に対応する部分と等しい。
【0093】8倍拡大データ選択部4003は、図46のよ
うに、16個の8ビット4- 1セレクタ4600〜4615によ
って構成される。セレクタ4600〜4603は、LDATA,MDATA,
TBDATA,LTBDATAを入力として、それぞれ、選択信号A0SE
L(1:0),A1SEL(1:0),A2SEL(1:0),A3SEL(1:0) にしたがっ
てデータを選択する。セレクタ4604〜4611は、MDATA,MD
ATB,TBDATB,TBDATA を入力として、それぞれ、選択信号
A4SEL(1:0),A5SEL(1:0),A6SEL(1:0),A7SEL(1:0),B0SEL
(1:0),B1SEL(1:0),B2SEL(1:0),B3SEL(1:0) にしたがっ
てデータを選択する。セレクタ4612〜4615は、MDATB,RD
ATB,RTBDATB,TBDATBを入力として、それぞれ、選択信号
B4SEL(1:0),B5SEL(1:0),B6SEL(1:0),B7SEL(1:0) にした
がってデータを選択する。セレクタ4600〜4615の出力
は、レジスタ4004のそれぞれバイト0〜バイト15に格
納される。レジスタ4004に格納されたデータは、X軸方
向に8倍に拡大され、補間処理されたデータである。
うに、16個の8ビット4- 1セレクタ4600〜4615によ
って構成される。セレクタ4600〜4603は、LDATA,MDATA,
TBDATA,LTBDATAを入力として、それぞれ、選択信号A0SE
L(1:0),A1SEL(1:0),A2SEL(1:0),A3SEL(1:0) にしたがっ
てデータを選択する。セレクタ4604〜4611は、MDATA,MD
ATB,TBDATB,TBDATA を入力として、それぞれ、選択信号
A4SEL(1:0),A5SEL(1:0),A6SEL(1:0),A7SEL(1:0),B0SEL
(1:0),B1SEL(1:0),B2SEL(1:0),B3SEL(1:0) にしたがっ
てデータを選択する。セレクタ4612〜4615は、MDATB,RD
ATB,RTBDATB,TBDATBを入力として、それぞれ、選択信号
B4SEL(1:0),B5SEL(1:0),B6SEL(1:0),B7SEL(1:0) にした
がってデータを選択する。セレクタ4600〜4615の出力
は、レジスタ4004のそれぞれバイト0〜バイト15に格
納される。レジスタ4004に格納されたデータは、X軸方
向に8倍に拡大され、補間処理されたデータである。
【0094】参照データファイル3702に格納されている
データは、メモリからワード単位で読み出されたデータ
である。したがって、原画像の左右両端の画素データを
含むワードデータには、原画像の領域外のデータが含ま
れる場合がある。また、原画像の左右両端の画素データ
を8倍補間拡大処理する場合には、原画像境界における
処理をする必要がある。そこで、本実施例では、図47
に示す手順で、参照データの選択をすることにより、ワ
ードデータから原画像の領域内の画素データだけを選択
し、しかも、画素データ比較部で、原画像境界における
処理が行なわれるように、画素データを選択する。
データは、メモリからワード単位で読み出されたデータ
である。したがって、原画像の左右両端の画素データを
含むワードデータには、原画像の領域外のデータが含ま
れる場合がある。また、原画像の左右両端の画素データ
を8倍補間拡大処理する場合には、原画像境界における
処理をする必要がある。そこで、本実施例では、図47
に示す手順で、参照データの選択をすることにより、ワ
ードデータから原画像の領域内の画素データだけを選択
し、しかも、画素データ比較部で、原画像境界における
処理が行なわれるように、画素データを選択する。
【0095】図47において、ステップ4700では、cnt
_sbx にsnx が設定される。cnt _sbx は、「画像Dの
s行目のデータの生成における参照データの選択」の終
了判定に用いる制御ユニットB3709の内部のカウンタで
ある。ステップ4701でSBP の値を判定し、SBP=0,1 の場
合は、ステップ4705で「参照データロード」を行ない、
SBP=2,3 の場合は、ステップ4702で「参照データロー
ド」を行なう。「参照データロード」は、参照データフ
ァイル3702から主参照データレジスタ4108と上下参照デ
ータレジスタ4109への参照データの転送であり、その手
順は、図48に詳しく示されている。ステップ4703で
は、主参照データレジスタ4108から前主参照データレジ
スタ4110へ、上下参照データレジスタ4109から前上下参
照データレジスタ4111へデータを転送する。ステップ4704
では、cnt _sbx から(4 - SBP) を減算した場合の値が
1以上かを判定する。1以上の場合は、ステップ4705で
「参照データロード」を行ない、それ以外の場合は、ス
テップ4715へ進む。ステップ4706でcnt _sbx から2を
減算し、ステップ4707でcnt _sbx が1以上かを判定す
る。cnt _sbx が1以上の場合、ステップ4708,4709,47
10でSBP の値を判定し、SBP=0 の場合はステップ4711で
SEL4の選択パターンでデータを選択し、SBP=1 の場合は
ステップ4712でSEL5の選択パターンで、SBP=2 の場合は
ステップ4713でSEL6の選択パターンで、SBP=3 の場合は
ステップ4714でSEL7の選択パターンでデータを選択す
る。ステップ4707でcnt _sbx の値が1より小さい場合
はステップ4720へ進む。ステップ4729でSBP の値を判定
し、SBP=0,1 の場合は、ステップ4730で主参照データレ
ジスタ4108から前主参照データレジスタ4110へ、上下参
照データレジスタ4109から前上下参照データレジスタ41
11へデータを転送し、SBP=2,3の場合は、ステップ4732
へ進む。ステップ4731で「参照データロード」を行な
い、ステップ4732では、SBP に2を加算し4で割った場
合の余りをSBP に設定し、さらにcnt _sbx から2を減
算する。ステップ4733でcnt _sbx が1以上かを判定
し、cnt _sbx が1以上の場合、ステップ4734,4735,47
36でSBP の値を判定し、SBP=0 の場合はステップ4727で
SEL0の選択パターンでデータを選択し、SBP=1の場合は
ステップ4738でSEL1の選択パターンで、SBP=2 の場合は
ステップ4739でSEL2の選択パターンで、SBP=3 の場合は
ステップ4740でSEL3の選択パターンでデータを選択し
て、ステップ4729へ戻る。4733でcnt _sbx が1より小
さい場合は、ステップ4741でcnt _sbx の値が0か判定
する。cnt _sbx = 0 の場合は、ステップ4742,4743,47
44でSBP の値を判定し、SBP=0 の場合はステップ4745で
SEL8の選択パターンでデータを選択し、SBP=1 の場合は
ステップ4746でSEL9の選択パターンで、SBP=2 の場合は
ステップ4747でSEL10 の選択パターンで、SBP=3 の場合
はステップ4748でSEL11 の選択パターンでデータを選択
して、処理を終了する。ステップ4741でcnt _sbx < 0
の場合は、ステップ4749,4750,4751でSBP の値を判定
し、SBP=0 の場合はステップ4752でSEL12 の選択パター
ンでデータを選択し、SBP=1 の場合はステップ4753でSE
L13 の選択パターンで、SBP=2 の場合はステップ4754で
SEL14 の選択パターンで、SBP=3 の場合はステップ4755
でSEL15 の選択パターンでデータを選択して、処理を終
了する。ステップ4715では、cnt _sbx の値が1か、つ
まり、snx = 1 かどうかを判定し、cnt _sbx = 1 の場
合はステップ4716でSBP の値を判定し、SBP=2 の場合は
ステップ4719でSEL22 の選択パターンでデータを選択
し、SBP=3 の場合はステップ4718でSEL23 の選択パター
ンでデータ選択して、処理を終了する。ステップ4715の
判定でcnt _sbx の値が1でない場合、ステップ4717で
SEL18 の選択パターンでデータを選択して、処理を終了
する。ステップ4720では、cnt _sbx の値が0かを判定
する。cnt _sbx= 0 の場合は、ステップ4722,4723 でS
BP の値を判定し、SBP=0 の場合はステップ4726でSEL16
の選択パターンでデータを選択し、SBP=1 の場合は472
7でSEL17の選択パターンで、それ以外の場合はステップ
4728でSEL19 の選択パターンでデータを選択して、処理
を終了する。ステップ4720の判定でcnt _sbx の値が0
ではない場合は、ステップ4721でSBP の値を判定し、SB
P=0 の場合はステップ4724でSEL20 の選択パターンでデ
ータを選択し、SBP=1 の場合はステップ4725でSEL21 の
選択パターンでデータを選択して、処理を終了する。
_sbx にsnx が設定される。cnt _sbx は、「画像Dの
s行目のデータの生成における参照データの選択」の終
了判定に用いる制御ユニットB3709の内部のカウンタで
ある。ステップ4701でSBP の値を判定し、SBP=0,1 の場
合は、ステップ4705で「参照データロード」を行ない、
SBP=2,3 の場合は、ステップ4702で「参照データロー
ド」を行なう。「参照データロード」は、参照データフ
ァイル3702から主参照データレジスタ4108と上下参照デ
ータレジスタ4109への参照データの転送であり、その手
順は、図48に詳しく示されている。ステップ4703で
は、主参照データレジスタ4108から前主参照データレジ
スタ4110へ、上下参照データレジスタ4109から前上下参
照データレジスタ4111へデータを転送する。ステップ4704
では、cnt _sbx から(4 - SBP) を減算した場合の値が
1以上かを判定する。1以上の場合は、ステップ4705で
「参照データロード」を行ない、それ以外の場合は、ス
テップ4715へ進む。ステップ4706でcnt _sbx から2を
減算し、ステップ4707でcnt _sbx が1以上かを判定す
る。cnt _sbx が1以上の場合、ステップ4708,4709,47
10でSBP の値を判定し、SBP=0 の場合はステップ4711で
SEL4の選択パターンでデータを選択し、SBP=1 の場合は
ステップ4712でSEL5の選択パターンで、SBP=2 の場合は
ステップ4713でSEL6の選択パターンで、SBP=3 の場合は
ステップ4714でSEL7の選択パターンでデータを選択す
る。ステップ4707でcnt _sbx の値が1より小さい場合
はステップ4720へ進む。ステップ4729でSBP の値を判定
し、SBP=0,1 の場合は、ステップ4730で主参照データレ
ジスタ4108から前主参照データレジスタ4110へ、上下参
照データレジスタ4109から前上下参照データレジスタ41
11へデータを転送し、SBP=2,3の場合は、ステップ4732
へ進む。ステップ4731で「参照データロード」を行な
い、ステップ4732では、SBP に2を加算し4で割った場
合の余りをSBP に設定し、さらにcnt _sbx から2を減
算する。ステップ4733でcnt _sbx が1以上かを判定
し、cnt _sbx が1以上の場合、ステップ4734,4735,47
36でSBP の値を判定し、SBP=0 の場合はステップ4727で
SEL0の選択パターンでデータを選択し、SBP=1の場合は
ステップ4738でSEL1の選択パターンで、SBP=2 の場合は
ステップ4739でSEL2の選択パターンで、SBP=3 の場合は
ステップ4740でSEL3の選択パターンでデータを選択し
て、ステップ4729へ戻る。4733でcnt _sbx が1より小
さい場合は、ステップ4741でcnt _sbx の値が0か判定
する。cnt _sbx = 0 の場合は、ステップ4742,4743,47
44でSBP の値を判定し、SBP=0 の場合はステップ4745で
SEL8の選択パターンでデータを選択し、SBP=1 の場合は
ステップ4746でSEL9の選択パターンで、SBP=2 の場合は
ステップ4747でSEL10 の選択パターンで、SBP=3 の場合
はステップ4748でSEL11 の選択パターンでデータを選択
して、処理を終了する。ステップ4741でcnt _sbx < 0
の場合は、ステップ4749,4750,4751でSBP の値を判定
し、SBP=0 の場合はステップ4752でSEL12 の選択パター
ンでデータを選択し、SBP=1 の場合はステップ4753でSE
L13 の選択パターンで、SBP=2 の場合はステップ4754で
SEL14 の選択パターンで、SBP=3 の場合はステップ4755
でSEL15 の選択パターンでデータを選択して、処理を終
了する。ステップ4715では、cnt _sbx の値が1か、つ
まり、snx = 1 かどうかを判定し、cnt _sbx = 1 の場
合はステップ4716でSBP の値を判定し、SBP=2 の場合は
ステップ4719でSEL22 の選択パターンでデータを選択
し、SBP=3 の場合はステップ4718でSEL23 の選択パター
ンでデータ選択して、処理を終了する。ステップ4715の
判定でcnt _sbx の値が1でない場合、ステップ4717で
SEL18 の選択パターンでデータを選択して、処理を終了
する。ステップ4720では、cnt _sbx の値が0かを判定
する。cnt _sbx= 0 の場合は、ステップ4722,4723 でS
BP の値を判定し、SBP=0 の場合はステップ4726でSEL16
の選択パターンでデータを選択し、SBP=1 の場合は472
7でSEL17の選択パターンで、それ以外の場合はステップ
4728でSEL19 の選択パターンでデータを選択して、処理
を終了する。ステップ4720の判定でcnt _sbx の値が0
ではない場合は、ステップ4721でSBP の値を判定し、SB
P=0 の場合はステップ4724でSEL20 の選択パターンでデ
ータを選択し、SBP=1 の場合はステップ4725でSEL21 の
選択パターンでデータを選択して、処理を終了する。
【0096】図48において、ステップ4800では、参照
データファイル3702のEmpty フラグを判定し、Empty の
場合はEmpty フラグが消えるまで待ち、Empty でない場
合はステップ4801で参照データファイル3702から主参照
データレジスタ4108へデータを転送する。さらに、ステ
ップ4802で参照データファイルのEmpty フラグを判定
し、Empty の場合はEmpty フラグが消えるまで待ち、Em
pty でない場合はステップ4803で参照データファイル37
02から上下参照データレジスタへデータ4109を転送す
る。
データファイル3702のEmpty フラグを判定し、Empty の
場合はEmpty フラグが消えるまで待ち、Empty でない場
合はステップ4801で参照データファイル3702から主参照
データレジスタ4108へデータを転送する。さらに、ステ
ップ4802で参照データファイルのEmpty フラグを判定
し、Empty の場合はEmpty フラグが消えるまで待ち、Em
pty でない場合はステップ4803で参照データファイル37
02から上下参照データレジスタへデータ4109を転送す
る。
【0097】例えば、画像Dのs行目のデータを生成す
る場合、m<4の場合には、参照データ読み出しユニッ
ト3701は、i行0列目の画素のワードデータ、( i-
1) 行0列目の画素のワードデータ、i行4列目の画素
のワードデータ、( i- 1) 行4列目の画素のワードデ
ータ、i行8列目の画素のワードデータ、( i- 1) 行
8列目の画素のワードデータというように参照データの
読み出しを行ない、m≧4の場合には、参照データ読み
出しユニット3701は、i行0列目の画素のワードデー
タ、( i+ 1) 行0列目の画素のワードデータ、i行4
列目の画素のワードデータ、( i+ 1) 行4列目の画素
のワードデータ、i行8列目の画素のワードデータ、(
i+ 1) 行8列目の画素のワードデータというように参
照データの読み出しを行なう(sとiとmは式(2)を
満たすものとする。)。参照データファイルは、FIF
Oとして動作するので、m<4の場合には、主参照デー
タレジスタ4108と前主参照データレジスタ4110には、i
行目のX軸方向に連続するデータが、上下参照データレ
ジスタ4109と前上下参照データレジスタ4111には、( i
- 1) 行目のX軸方向に連続するデータが格納される。
また、m≧4の場合には、主参照データレジスタ4108と
前主参照データレジスタ4110には、i行目のX軸方向に
連続するデータが、上下参照データレジスタ4109と前上
下参照データレジスタ4111には、( i+ 1) 行目のX軸
方向に連続するデータが格納される。図47の手順にし
たがって、参照データが選択されることにより、画像D
のs行目のデータの生成における8倍補間拡大処理がX
軸方向に連続して行なわれる。特に、原画像の左端ある
いは右端の画素データを処理する場合には、図47の手
順にしたがってSEL4〜SEL23 のいずれかの選択パターン
で参照データが選択される。選択パターンSEL4〜SEL23
では同一の画素データを、X軸方向に隣合う参照データ
として選択する。これによって、実施例1の原画像境界
における処理と同等の処理が行なわれる。
る場合、m<4の場合には、参照データ読み出しユニッ
ト3701は、i行0列目の画素のワードデータ、( i-
1) 行0列目の画素のワードデータ、i行4列目の画素
のワードデータ、( i- 1) 行4列目の画素のワードデ
ータ、i行8列目の画素のワードデータ、( i- 1) 行
8列目の画素のワードデータというように参照データの
読み出しを行ない、m≧4の場合には、参照データ読み
出しユニット3701は、i行0列目の画素のワードデー
タ、( i+ 1) 行0列目の画素のワードデータ、i行4
列目の画素のワードデータ、( i+ 1) 行4列目の画素
のワードデータ、i行8列目の画素のワードデータ、(
i+ 1) 行8列目の画素のワードデータというように参
照データの読み出しを行なう(sとiとmは式(2)を
満たすものとする。)。参照データファイルは、FIF
Oとして動作するので、m<4の場合には、主参照デー
タレジスタ4108と前主参照データレジスタ4110には、i
行目のX軸方向に連続するデータが、上下参照データレ
ジスタ4109と前上下参照データレジスタ4111には、( i
- 1) 行目のX軸方向に連続するデータが格納される。
また、m≧4の場合には、主参照データレジスタ4108と
前主参照データレジスタ4110には、i行目のX軸方向に
連続するデータが、上下参照データレジスタ4109と前上
下参照データレジスタ4111には、( i+ 1) 行目のX軸
方向に連続するデータが格納される。図47の手順にし
たがって、参照データが選択されることにより、画像D
のs行目のデータの生成における8倍補間拡大処理がX
軸方向に連続して行なわれる。特に、原画像の左端ある
いは右端の画素データを処理する場合には、図47の手
順にしたがってSEL4〜SEL23 のいずれかの選択パターン
で参照データが選択される。選択パターンSEL4〜SEL23
では同一の画素データを、X軸方向に隣合う参照データ
として選択する。これによって、実施例1の原画像境界
における処理と同等の処理が行なわれる。
【0098】次にX方向拡大縮小ユニット3704の内部構
成と動作について説明する。X方向拡大縮小ユニット37
04は、8倍補間拡大ユニット3703によって8倍補間拡大
処理されたデータをX軸方向にP/8倍にする。X方向
拡大縮小ユニット3704は、図49に示すように、マッピ
ングパターン生成回路4900と、64ショートワード(1
ショートワードは16ビットを意味する。)のマッピン
グパターンを格納するパターンレジスタファイル4901
と、8倍補間拡大ユニットの出力データを格納する12
8ビットのレジスタ4902,4903 と、入力データをバイト
(8ビット)単位で0バイト〜15バイト左シフトする
バレルシフタ4904と、マッピングパターンにしたがって
入力データをバイト単位でコピーまたは間引いて拡大縮
小するバレルセレクタ4905と、バレルセレクタの1回の
処理における入力データのバイト数と、出力データのバ
イト数をカウントするパターンカウンタ4906によって構
成される。
成と動作について説明する。X方向拡大縮小ユニット37
04は、8倍補間拡大ユニット3703によって8倍補間拡大
処理されたデータをX軸方向にP/8倍にする。X方向
拡大縮小ユニット3704は、図49に示すように、マッピ
ングパターン生成回路4900と、64ショートワード(1
ショートワードは16ビットを意味する。)のマッピン
グパターンを格納するパターンレジスタファイル4901
と、8倍補間拡大ユニットの出力データを格納する12
8ビットのレジスタ4902,4903 と、入力データをバイト
(8ビット)単位で0バイト〜15バイト左シフトする
バレルシフタ4904と、マッピングパターンにしたがって
入力データをバイト単位でコピーまたは間引いて拡大縮
小するバレルセレクタ4905と、バレルセレクタの1回の
処理における入力データのバイト数と、出力データのバ
イト数をカウントするパターンカウンタ4906によって構
成される。
【0099】マッピングパターンは、拡大縮小率に応じ
て画素データをマッピングするバイナリのパターンであ
り、あらかじめマッピングパターン生成回路4900によっ
て、X軸方向に連続する画素データに対応して生成さ
れ、1ショートワードずつパターンレジスタファイル49
01に格納されている。マッピングパターンは、バレルセ
レクタ4905に制御信号として1ショートワードずつ入力
され、X軸方向に連続する入力データが処理される。X
方向拡大縮小ユニット3704では、入力データに対して1
行ごとに同一の処理が行われ、次の行の処理にはパター
ンレジスタファイル4901に格納された同じマッピングパ
ターンが使用される。バレルセレクタ4905は、図50に
示すように、256個の8ビット3-1 セレクタ50000 〜
50255 と、1ショートワードのマッピングパターンを8
ビット3-1 セレクタ50000 〜50255の制御信号にデコー
ドするパターンデコーダ50256 によって構成される。3
ビット3-1 セレクタ50000 〜50255 は、16行16列の
アレイ状に構成され、パターンデコーダ50256 からの制
御信号によって、それぞれが3バイト(3画素)の入力
データから1バイト(1画素)のデータを選択して出力
する。
て画素データをマッピングするバイナリのパターンであ
り、あらかじめマッピングパターン生成回路4900によっ
て、X軸方向に連続する画素データに対応して生成さ
れ、1ショートワードずつパターンレジスタファイル49
01に格納されている。マッピングパターンは、バレルセ
レクタ4905に制御信号として1ショートワードずつ入力
され、X軸方向に連続する入力データが処理される。X
方向拡大縮小ユニット3704では、入力データに対して1
行ごとに同一の処理が行われ、次の行の処理にはパター
ンレジスタファイル4901に格納された同じマッピングパ
ターンが使用される。バレルセレクタ4905は、図50に
示すように、256個の8ビット3-1 セレクタ50000 〜
50255 と、1ショートワードのマッピングパターンを8
ビット3-1 セレクタ50000 〜50255の制御信号にデコー
ドするパターンデコーダ50256 によって構成される。3
ビット3-1 セレクタ50000 〜50255 は、16行16列の
アレイ状に構成され、パターンデコーダ50256 からの制
御信号によって、それぞれが3バイト(3画素)の入力
データから1バイト(1画素)のデータを選択して出力
する。
【0100】バレルセレクタ4905は、P/8<1の場
合、つまりX方向拡大縮小ユニット3704が縮小処理をす
る場合、1行ごとの処理における右端のデータを処理す
る時を除いて、常に16バイト(16画素)のデータを
入力として、パターンデコーダ50256 からの制御信号に
したがって画素データを間引いて 2P バイトまたは( 2
P +1) バイトのデータを出力する。( α は、αを越
えない最大の整数を表す。) 2P バイト、( 2P +1)バイ
トのいずれのバイト数のデータを出力するかは、その時
に入力されるマッピングパターンに依存する。1≦P/
8の場合、つまりX軸方向拡大縮小ユニット3704が拡大
処理をする場合、1行ごとの処理における右端のデータ
を処理する時を除いて、 128/P バイトまたは( 128/P
+1) バイトのデータを入力として(( 128/P +1) ≦1
6)、パターンデコーダ50256 からの制御信号にしたが
って画素データをコピーして、常に16バイトのデータ
を出力する。 128/P バイト、( 128/P +1) バイトのい
ずれのバイト数のデータを入力とするかは、その時に入
力されるマッピングパターンに依存する。バレルセレク
タ4905によって生成されたデータは、書き込みデータ生
成ユニット3705へ転送される。パターンカウンタ4906
は、入力データのバイト数と生成されたデータのバイト
数をカウントし、フラグ信号として、それぞれ制御ユニ
ットC3710と制御ユニットD3711へ送る。このバレルセ
レクタの並列拡大縮小処理のアルゴリズムについては、
第16回画像工学コンファレンス論文集(昭和60年)
「文書画像編集用イメージ・プロセッサMN8617」(P.28
9 からP.292 )および、特開昭60-83182に記載されてい
る。
合、つまりX方向拡大縮小ユニット3704が縮小処理をす
る場合、1行ごとの処理における右端のデータを処理す
る時を除いて、常に16バイト(16画素)のデータを
入力として、パターンデコーダ50256 からの制御信号に
したがって画素データを間引いて 2P バイトまたは( 2
P +1) バイトのデータを出力する。( α は、αを越
えない最大の整数を表す。) 2P バイト、( 2P +1)バイ
トのいずれのバイト数のデータを出力するかは、その時
に入力されるマッピングパターンに依存する。1≦P/
8の場合、つまりX軸方向拡大縮小ユニット3704が拡大
処理をする場合、1行ごとの処理における右端のデータ
を処理する時を除いて、 128/P バイトまたは( 128/P
+1) バイトのデータを入力として(( 128/P +1) ≦1
6)、パターンデコーダ50256 からの制御信号にしたが
って画素データをコピーして、常に16バイトのデータ
を出力する。 128/P バイト、( 128/P +1) バイトのい
ずれのバイト数のデータを入力とするかは、その時に入
力されるマッピングパターンに依存する。バレルセレク
タ4905によって生成されたデータは、書き込みデータ生
成ユニット3705へ転送される。パターンカウンタ4906
は、入力データのバイト数と生成されたデータのバイト
数をカウントし、フラグ信号として、それぞれ制御ユニ
ットC3710と制御ユニットD3711へ送る。このバレルセ
レクタの並列拡大縮小処理のアルゴリズムについては、
第16回画像工学コンファレンス論文集(昭和60年)
「文書画像編集用イメージ・プロセッサMN8617」(P.28
9 からP.292 )および、特開昭60-83182に記載されてい
る。
【0101】バレルセレクタの入力データは、左詰めに
されたX軸方向に連続するデータである必要があり、こ
の左詰めされたX軸方向に連続するデータは、制御ユニ
ットC3710がバレルシフタ4904のシフト量と、レジスタ
4902からレジスタ4903へのデータ転送と、レジスタ4004
からレジスタ4902へのデータ転送を制御することによっ
て、バレルセレクタへ供給される。P/8<1の場合、
バレルセレクタ4905は16バイトのデータを入力とする
ので、バレルセレクタ4905がデータを生成する度に、レ
ジスタ4902のデータが、レジスタ4903に転送され、8倍
補間拡大ユニット3703のレジスタ4004のデータがレジス
タ4902に転送され、バレルシフタは0バイトシフトを行
なう。1≦P/8の場合、バレルセレクタ4905は 128/P
バイトまたは( 128/P +1) バイトのデータを入力と
し、入力データは常に16バイト以下となる。したがっ
て、レジスタ4903のデータがすべて処理されるまで、レ
ジスタ4902からレジスタ4903へのデータ転送は行なわれ
ず、レジスタ4903のデータがすべて処理される度に、レ
ジスタ4902のデータが、レジスタ4903に転送され、8倍
補間拡大ユニット3703のレジスタ4004のデータがレジス
タ4902に転送される。この場合のバレルシフタ4904のシ
フト量は、バレルセレクタ4905が処理した入力データの
バイト数を累積加算した値になる。但し、この累積加算
では、結果が16以上になる度に、結果から16が引か
れる。つまり、レジスタ4903のデータがすべて処理され
るまで累積加算され、レジスタ4903のデータがすべて処
理されると(この時、累積加算の結果はを16以上とな
る)、レジスタ4902のデータがレジスタ4903に転送さ
れ、8倍補間拡大ユニット3704のレジスタ4004のデータ
がレジスタ4902に転送され、バレルシフタ4904のシフト
量は、累積加算の結果から16を引いた値になる。バレ
ルセレクタ4905が処理した入力データのバイト数は、パ
ターンカウンタによってカウントされる。これにより、
バレルセレクタ4905には、常に、左詰めにされたX軸方
向に連続する処理されていないデータが入力される。
されたX軸方向に連続するデータである必要があり、こ
の左詰めされたX軸方向に連続するデータは、制御ユニ
ットC3710がバレルシフタ4904のシフト量と、レジスタ
4902からレジスタ4903へのデータ転送と、レジスタ4004
からレジスタ4902へのデータ転送を制御することによっ
て、バレルセレクタへ供給される。P/8<1の場合、
バレルセレクタ4905は16バイトのデータを入力とする
ので、バレルセレクタ4905がデータを生成する度に、レ
ジスタ4902のデータが、レジスタ4903に転送され、8倍
補間拡大ユニット3703のレジスタ4004のデータがレジス
タ4902に転送され、バレルシフタは0バイトシフトを行
なう。1≦P/8の場合、バレルセレクタ4905は 128/P
バイトまたは( 128/P +1) バイトのデータを入力と
し、入力データは常に16バイト以下となる。したがっ
て、レジスタ4903のデータがすべて処理されるまで、レ
ジスタ4902からレジスタ4903へのデータ転送は行なわれ
ず、レジスタ4903のデータがすべて処理される度に、レ
ジスタ4902のデータが、レジスタ4903に転送され、8倍
補間拡大ユニット3703のレジスタ4004のデータがレジス
タ4902に転送される。この場合のバレルシフタ4904のシ
フト量は、バレルセレクタ4905が処理した入力データの
バイト数を累積加算した値になる。但し、この累積加算
では、結果が16以上になる度に、結果から16が引か
れる。つまり、レジスタ4903のデータがすべて処理され
るまで累積加算され、レジスタ4903のデータがすべて処
理されると(この時、累積加算の結果はを16以上とな
る)、レジスタ4902のデータがレジスタ4903に転送さ
れ、8倍補間拡大ユニット3704のレジスタ4004のデータ
がレジスタ4902に転送され、バレルシフタ4904のシフト
量は、累積加算の結果から16を引いた値になる。バレ
ルセレクタ4905が処理した入力データのバイト数は、パ
ターンカウンタによってカウントされる。これにより、
バレルセレクタ4905には、常に、左詰めにされたX軸方
向に連続する処理されていないデータが入力される。
【0102】書き込みデータ生成ユニット3705は、X方
向拡大縮小ユニット3704によって生成されたデータか
ら、実際にメモリに書き込むワードデータを生成し、書
き込みデータファイル3707に格納する。X方向拡大縮小
ユニット3704は、常に、左詰めされたデータを生成する
が、拡大縮小後の画像Dの左端の画素は、メモリ上のワ
ード内のバイト0の位置にあるとは限らない。また、デ
ータ書き込みユニット3706は、処理したデータをワード
単位で書き込むので、画像Dの左端と右端の画素データ
を書き込む場合は、書き込み先のデータとマスク処理を
する必要があり、X方向拡大縮小ユニット3704によって
生成されたデータを、そのままメモリに書き込むことは
出来ない。書き込みデータ生成ユニット3705は、X方向
拡大縮小ユニット3704によって生成されたデータを、バ
イトシフトして、データを書き込むメモリ上のバイト位
置に合わせ込まれたワードデータに変換し、また、X方
向拡大縮小ユニット3704によって生成されたデータに、
画像Dの左端または右端の画素データが含まれる場合
は、書き込み先のデータとマスク処理を行なって、書き
込みデータファイル3707に格納する。
向拡大縮小ユニット3704によって生成されたデータか
ら、実際にメモリに書き込むワードデータを生成し、書
き込みデータファイル3707に格納する。X方向拡大縮小
ユニット3704は、常に、左詰めされたデータを生成する
が、拡大縮小後の画像Dの左端の画素は、メモリ上のワ
ード内のバイト0の位置にあるとは限らない。また、デ
ータ書き込みユニット3706は、処理したデータをワード
単位で書き込むので、画像Dの左端と右端の画素データ
を書き込む場合は、書き込み先のデータとマスク処理を
する必要があり、X方向拡大縮小ユニット3704によって
生成されたデータを、そのままメモリに書き込むことは
出来ない。書き込みデータ生成ユニット3705は、X方向
拡大縮小ユニット3704によって生成されたデータを、バ
イトシフトして、データを書き込むメモリ上のバイト位
置に合わせ込まれたワードデータに変換し、また、X方
向拡大縮小ユニット3704によって生成されたデータに、
画像Dの左端または右端の画素データが含まれる場合
は、書き込み先のデータとマスク処理を行なって、書き
込みデータファイル3707に格納する。
【0103】書き込みデータファイル3707は、4個の3
2ビットレジスタによって構成され、FIFOとして動
作する。書き込みデータファイル3707は、制御ユニット
E3712によって制御され、書き込みデータ生成ユニット
3705の出力データは、書き込みデータファイル3707に格
納され、格納された順に、データ書き込みユニット3706
が生成したメモリのアドレスに書き込まれる。
2ビットレジスタによって構成され、FIFOとして動
作する。書き込みデータファイル3707は、制御ユニット
E3712によって制御され、書き込みデータ生成ユニット
3705の出力データは、書き込みデータファイル3707に格
納され、格納された順に、データ書き込みユニット3706
が生成したメモリのアドレスに書き込まれる。
【0104】データ書き込みユニット3706は、書き込み
データファイル3707と共に、制御ユニットE3712によっ
て制御され、拡大縮小後の画像Dのメモリ上のワードア
ドレスを生成し、書き込みデータファイル3707データに
格納されているデータを、ワード単位でメモリに書き込
む。データ書き込みユニット3706は、まず、拡大縮小後
の画像Dの0行0ワード目のワードアドレスを生成して
データを書き込み、次に0行1ワード目、0行2ワード
目、0行3ワード目というようにワードアドレスを生成
してデータを書き込む。画像Dの0行目のデータの書き
込みを終了すると、次は、画像Dの1行目のデータの書
き込みを0行目と同じように行なう。このような画像D
の1行ごとのデータの書き込みを、0行目から(dnx -
1) 行目まで行なう。このように、書き込みデータ生成
ユニット3705によって生成されたデータは、書き込みデ
ータファイル3707に転送され、データ書き込みユニット
3706が生成した画像データメモリ3603、または、表示メ
モリ3604上のアドレスに、書き込みデータファイル3707
に格納されたデータが順次書き込まれる。
データファイル3707と共に、制御ユニットE3712によっ
て制御され、拡大縮小後の画像Dのメモリ上のワードア
ドレスを生成し、書き込みデータファイル3707データに
格納されているデータを、ワード単位でメモリに書き込
む。データ書き込みユニット3706は、まず、拡大縮小後
の画像Dの0行0ワード目のワードアドレスを生成して
データを書き込み、次に0行1ワード目、0行2ワード
目、0行3ワード目というようにワードアドレスを生成
してデータを書き込む。画像Dの0行目のデータの書き
込みを終了すると、次は、画像Dの1行目のデータの書
き込みを0行目と同じように行なう。このような画像D
の1行ごとのデータの書き込みを、0行目から(dnx -
1) 行目まで行なう。このように、書き込みデータ生成
ユニット3705によって生成されたデータは、書き込みデ
ータファイル3707に転送され、データ書き込みユニット
3706が生成した画像データメモリ3603、または、表示メ
モリ3604上のアドレスに、書き込みデータファイル3707
に格納されたデータが順次書き込まれる。
【0105】書き込みデータファイル3707は、データを
最大4ワードまで格納することができる。書き込みデー
タファイル3707に、4ワードのデータが格納されている
場合、書き込みデータファイル3707から制御ユニットD
3711に対してFullフラグが送られる。これにより、制御
ユニットDは、書き込みデータ生成ユニット3705の書き
込みデータファイル3707へのデータ転送を一時的に停止
させる。また、書き込みデータファイル3707が空の場
合、つまり書き込みデータファイル3707にデータが格納
されていない場合、書き込みデータファイル3707から制
御ユニットEに対してEmpty フラグが送られる。これに
より、制御ユニットE3712は、書き込みデータファイル
3707のデータのメモリへの書き込みをを一時的に停止さ
せる。
最大4ワードまで格納することができる。書き込みデー
タファイル3707に、4ワードのデータが格納されている
場合、書き込みデータファイル3707から制御ユニットD
3711に対してFullフラグが送られる。これにより、制御
ユニットDは、書き込みデータ生成ユニット3705の書き
込みデータファイル3707へのデータ転送を一時的に停止
させる。また、書き込みデータファイル3707が空の場
合、つまり書き込みデータファイル3707にデータが格納
されていない場合、書き込みデータファイル3707から制
御ユニットEに対してEmpty フラグが送られる。これに
より、制御ユニットE3712は、書き込みデータファイル
3707のデータのメモリへの書き込みをを一時的に停止さ
せる。
【0106】
【発明の効果】以上のように本発明は、原画像の画素間
の領域を、仮想的に微小領域に分割して、微小領域毎
に、K個の近傍画素データの一致・不一致の関係の組合
わせによってK個の近傍画素データのどの画素データを
拡大縮小後の画素データとして選択するかをあらかじめ
定めておき、拡大縮小後の画像の画素に対応する原画像
領域における微小領域とK個の近傍画素データの一致・
不一致の関係の組合わせによってK個の近傍画素データ
内からあらかじめ定められた画素データを選択して拡大
縮後の画素データとするようにしたので、単純な論理演
算だけで拡大縮小後の補間処理された画素データを生成
することができ、しかも、8ビット/画素の画像を、カ
ラーマップテーブルを用いて疑似的にCRTにフルカラ
ー表示するシステムにおいては、画像の拡大縮小におけ
る補間処理を、カラーマップテーブルを参照することな
く、また新たにカラーマップテーブルを生成することも
なく、高速に、線形補間法と類似の補間効果を簡易的に
得ることができる。特に、斜め線の拡大時に生じる段差
を、目立たなくする効果がある。
の領域を、仮想的に微小領域に分割して、微小領域毎
に、K個の近傍画素データの一致・不一致の関係の組合
わせによってK個の近傍画素データのどの画素データを
拡大縮小後の画素データとして選択するかをあらかじめ
定めておき、拡大縮小後の画像の画素に対応する原画像
領域における微小領域とK個の近傍画素データの一致・
不一致の関係の組合わせによってK個の近傍画素データ
内からあらかじめ定められた画素データを選択して拡大
縮後の画素データとするようにしたので、単純な論理演
算だけで拡大縮小後の補間処理された画素データを生成
することができ、しかも、8ビット/画素の画像を、カ
ラーマップテーブルを用いて疑似的にCRTにフルカラ
ー表示するシステムにおいては、画像の拡大縮小におけ
る補間処理を、カラーマップテーブルを参照することな
く、また新たにカラーマップテーブルを生成することも
なく、高速に、線形補間法と類似の補間効果を簡易的に
得ることができる。特に、斜め線の拡大時に生じる段差
を、目立たなくする効果がある。
【図1】本発明の実施例1における画像処理装置のブロ
ック図
ック図
【図2】本発明の実施例1による画像の補間処理をとも
なう拡大縮小処理の基本処理の手順を表すフロー図
なう拡大縮小処理の基本処理の手順を表すフロー図
【図3】本発明の実施例1における画像の補間処理をと
もなう拡大縮小処理のフロー図
もなう拡大縮小処理のフロー図
【図4】本発明の実施例1における画像の補間処理をと
もなう拡大縮小処理の正確なフロー図
もなう拡大縮小処理の正確なフロー図
【図5】実施例1における参照データをメモリから読み
出す処理のフロー図
出す処理のフロー図
【図6】実施例1における原画像Sを表す模式図
【図7】実施例1における拡大縮小後の画像Dを表す模
式図
式図
【図8】実施例1における原画像の画素間の領域の領域
分割の仕方を表す模式図
分割の仕方を表す模式図
【図9】実施例1における仮想的に領域分割された原画
像の画素間の領域を表す模式図
像の画素間の領域を表す模式図
【図10】実施例1におけるX軸方向に8倍、Y軸方向
にQ倍した場合の画像の画素に対応する原画像Sにおけ
る位置を表す模式図
にQ倍した場合の画像の画素に対応する原画像Sにおけ
る位置を表す模式図
【図11】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図12】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図13】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図14】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図15】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図16】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図17】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図18】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図19】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図20】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図21】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図22】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図23】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図24】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図25】実施例1におけるC(Sij, Sij+1, Si+1
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
j, Si+1j+1)の値と、微小領域ごとの選択される画素
データとの関係を表す模式図
【図26】実施例1における原画像境界における処理を
する場合を説明するための模式図
する場合を説明するための模式図
【図27】実施例1における原画像境界における処理の
処理方法を説明するための模式図
処理方法を説明するための模式図
【図28】実施例1における画素の位置関係を表す模式
図
図
【図29】実施例1におけるC(S0,S1,S2,S3 )の
値を求める手順を表すフロー図
値を求める手順を表すフロー図
【図30】実施例2におけるC(S0,S1,S2,S3 )の
値を求める基本手順を表すフロー図
値を求める基本手順を表すフロー図
【図31】実施例2におけるC(S0,S1,S2,S3 )の
値を求める手順を表すフロー図
値を求める手順を表すフロー図
【図32】本発明の実施例3における画像処理装置のブ
ロック図
ロック図
【図33】実施例3における画像処理ユニットのブロッ
ク図
ク図
【図34】実施例3におけるX方向拡大縮小ユニットの
ブロック図
ブロック図
【図35】実施例3におけるバレルセレクタのブロック
図
図
【図36】本発明の実施例4における画像処理装置のブ
ロック図
ロック図
【図37】実施例4における画像処理ユニットのブロッ
ク図
ク図
【図38】実施例4における微小領域行算出ユニットと
参照データ読み出しユニットと参照データファイルの動
作を表すフロー図
参照データ読み出しユニットと参照データファイルの動
作を表すフロー図
【図39】実施例4における参照データ読みだしユニッ
トと参照データファイルの動作を表すフロー図
トと参照データファイルの動作を表すフロー図
【図40】実施例4における8倍補間拡大ユニットのブ
ロック図
ロック図
【図41】実施例4における参照データ選択部のブロッ
ク図
ク図
【図42】実施例4におけるデータ比較部のブロック図
【図43】実施例4におけるデータ比較部の比較回路の
論理回路図
論理回路図
【図44】実施例4における選択テーブル格納部のブロ
ック図
ック図
【図45】実施例4において選択信号の値と選択される
画素の位置関係を表す模式図
画素の位置関係を表す模式図
【図46】実施例4における8倍拡大データ選択部とレ
ジスタ4004のブロック図
ジスタ4004のブロック図
【図47】実施例4における「画像Dのs行目のデータ
の生成における参照データの選択」の手順を表すフロー
図
の生成における参照データの選択」の手順を表すフロー
図
【図48】実施例4における「参照データロード」の手
順を表すフロー図
順を表すフロー図
【図49】実施例4におけるX方向拡大縮小ユニットの
ブロック図
ブロック図
【図50】実施例4におけるバレルセレクタのブロック
図
図
【図51】実施例4における参照データ読み出しユニッ
トの動作を説明するための模式図(m=0, 1, 2, 3
の場合)
トの動作を説明するための模式図(m=0, 1, 2, 3
の場合)
【図52】実施例4における参照データ読み出しユニッ
トの動作を説明するための模式図(m=4, 5, 6, 7
の場合)
トの動作を説明するための模式図(m=4, 5, 6, 7
の場合)
【図53】実施例4の参照データ選択部におけるバイト
データの選択パターンの一覧図
データの選択パターンの一覧図
【図54】実施例4における選択テーブル格納部のRO
M4004に格納されている選択テーブルの一覧図
M4004に格納されている選択テーブルの一覧図
【図55】実施例4における選択テーブル格納部のRO
M4003に格納されている選択テーブルの一覧図
M4003に格納されている選択テーブルの一覧図
【図56】実施例4における選択テーブル格納部のRO
M4005に格納されている選択テーブルの一覧図
M4005に格納されている選択テーブルの一覧図
【図57】従来の画像データの拡大縮小における補間処
理の方法を表す模式図
理の方法を表す模式図
5、3205、3605 CRTコントローラ 3500〜3515、50000〜50255 8ビッ
ト3-1 セレクタ 4200〜4215 比較回路 4600〜4615 8ビット4-1 セレクタ
ト3-1 セレクタ 4200〜4215 比較回路 4600〜4615 8ビット4-1 セレクタ
Claims (10)
- 【請求項1】 原画像(1画素がiビット( iは任意の
正の整数) のデータによって表されるデジタル画像)の
画素間の領域を、仮想的にX軸方向にN(Nは任意の正
の整数)個、Y軸方向にM(Mは任意の正の整数)個に
分割し、得られた微小領域ごとに、K(Kは任意の正の
整数)個の近傍画素データ間の一致・不一致の関係の組
み合わせによってK個の近傍画素データの内どの画素デ
ータを選択するかをあらかじめ定めておき、拡大縮小後
の画像(1画素がiビットのデータによって表されるデ
ジタル画像)の画素に対応する原画像領域における微小
領域と、その微小領域のK個の近傍画素データ間の一致
・不一致の関係の組み合わせを求めることによって、K
個の近傍画素データの内からあらかじめ定められた画素
データを選択して拡大縮小後の画素データとする画像処
理方法。 - 【請求項2】 画像データを蓄積する蓄積手段と、画像
データを処理する中央処理装置と、前記中央処理装置の
動作を制御する制御データを蓄積する蓄積手段とを備
え、原画像(1画素がiビット( iは任意の正の整数)
のデータによって表されるデジタル画像)の画素間の領
域を仮想的にX軸方向にN(Nは任意の正の整数)個、
Y軸方向にM(Mは任意の正の整数)個に分割し、得ら
れた微小領域ごとに、K(Kは任意の正の整数)個の近
傍画素データ間の一致・不一致の関係の組み合わせによ
ってK個の近傍画素データの内どの画素データを選択す
るかをあらかじめ定めておき、拡大縮小後の画像(1画
素がiビットのデータによって表されるデジタル画像)
の画素に対応する原画像領域における微小領域と、その
微小領域のK個の近傍画素データ間の一致・不一致の関
係の組み合わせを求めることによって、K個の近傍画素
データの内からあらかじめ定められた画素データを選択
して拡大縮小後の画素データを生成する画像処理装置。 - 【請求項3】 画像データを蓄積する蓄積手段と、画像
データを処理する中央処理装置と、前記中央処理装置の
動作を制御する制御データを蓄積する蓄積手段とを備
え、原画像(1画素がiビット( iは任意の正の整数)
のデータによって表されるデジタル画像)の画素間の領
域を仮想的にX軸方向にN(Nは任意の正の整数)個、
Y軸方向にM(Mは任意の正の整数)個に分割し、得ら
れた微小領域ごとに、K(Kは任意の正の整数)個の近
傍画素データ間の一致・不一致の関係の組み合わせによ
ってK個の近傍画素データの内どの画素データを選択す
るかをあらかじめ定めてテーブル化しておき、原画像を
X軸方向にN倍した後の画像の画素に対応する原画像に
おける微小領域で、しかもK個の近傍画素データが互い
に共通で且つ互いに隣合うN個の微小領域と、そのN個
の微小領域のK個の近傍画素データ間の一致・不一致の
関係の組み合わせを求めることによって、前記テーブル
を参照してK個の近傍画素データの内からあらかじめ定
められた画素データを選択してX方向にN倍に拡大され
た画像に相当する画素データを生成する画像処理装置。 - 【請求項4】 画像データを蓄積する蓄積手段と、画像
データを処理する中央処理装置と、前記中央処理装置の
動作を制御する制御データを蓄積する蓄積手段とを備
え、原画像(1画素がiビット( iは任意の正の整数)
のデータによって表されるデジタル画像)をX軸方向に
P倍(Pは0より大きい任意の有理数)に変倍する場合
に、原画像の画素間の領域を仮想的にX軸方向にN(N
は任意の正の整数)個、Y軸方向にM(Mは任意の正の
整数)個に分割し、得られた微小領域ごとに、K(Kは
任意の正の整数)個の近傍画素データ間の一致・不一致
の関係の組み合わせによってK個の近傍画素データの内
どの画素データを選択するかをあらかじめ定めてテーブ
ル化しておき、原画像をX軸方向にN倍した後の画像の
画素に対応する原画像における微小領域で、しかもK個
の近傍画素データが互いに共通で且つ互いに隣合うN個
の微小領域と、そのN個の微小領域のK個の近傍画素デ
ータ間の一致・不一致の関係の組み合わせを求めること
によって、前記テーブルを参照してK個の近傍画素デー
タの内からあらかじめ定められた画素データを選択して
X方向にN倍に拡大された画像に相当する画素データを
生成し、さらにその生成された画素データを、X軸方向
にP/N倍することによって、X軸方向にP倍された画
像を生成する画像処理装置。 - 【請求項5】 画像データを蓄積する蓄積手段と、画像
データを処理する中央処理装置と、前記中央処理装置の
動作を制御する制御データを蓄積する蓄積手段とを備
え、原画像(1画素がiビット( iは任意の正の整数)
のデータによって表されるデジタル画像)をX軸方向に
P倍(Pは0より大きい任意の有理数)、Y軸方向にQ
倍(Qは0より大きい任意の有理数)に変倍する場合
に、原画像の画素間の領域を仮想的にX軸方向にN(N
は任意の正の整数)個、Y軸方向にM(Mは任意の正の
整数)個に分割し、得られた微小領域ごとに、K(Kは
任意の正の整数)個の近傍画素データ間の一致・不一致
の関係の組み合わせによってK個の近傍画素データの内
どの画素データを選択するかをあらかじめ定めてテーブ
ル化しておき、原画像をX軸方向にN倍、Y軸方向にQ
倍した後の画像の画素に対応する原画像における微小領
域で、しかもK個の近傍画素データが互いに共通で且つ
互いに隣合うN個の微小領域と、そのN個の微小領域の
K個の近傍画素データ間の一致・不一致の関係の組み合
わせを求めることによって、前記テーブルを参照してK
個の近傍画素データの内からあらかじめ定められた画素
データを選択してX方向にN倍、Y軸方向にQ倍にされ
た画像に相当する画素データを生成し、さらにその生成
された画素データをX軸方向にP/N倍することによっ
て、X軸方向にP倍、Y軸方向にQ倍された画像を生成
する画像処理装置。 - 【請求項6】 中央処理装置と、画像データを蓄積する
蓄積手段と、前記中央処理装置の動作を制御する制御デ
ータを蓄積する蓄積手段と、同時に複数の画素データを
X軸方向に任意の倍率で拡大縮小してメモリに書き込む
画像処理手段とを備え、原画像(1画素がiビット( i
は任意の正の整数) のデータによって表されるデジタル
画像)をX軸方向にP倍(Pは0より大きい任意の有理
数)、Y軸方向にQ倍(Qは0より大きい任意の有理
数)に変倍する場合に、原画像の画素間の領域を仮想的
にX軸方向にN(Nは任意の正の整数)個、Y軸方向に
M(Mは任意の正の整数)個に分割し、得られた微小領
域ごとに、K(Kは任意の正の整数)個の近傍画素デー
タ間の一致・不一致の関係の組み合わせによってK個の
近傍画素データの内どの画素データを選択するかをあら
かじめ定めてテーブル化しておき、前記中央処理装置が
原画像をX軸方向にN倍、Y軸方向にQ倍した後の画像
の画素に対応する原画像における微小領域で、しかもK
個の近傍画素データが互いに共通で且つ互いに隣合うN
個の微小領域と、そのN個の微小領域のK個の近傍画素
データ間の一致・不一致の関係の組み合わせを求めるこ
とによって、前記テーブルを参照してK個の近傍画素デ
ータの内からあらかじめ定められた画素データを選択し
てX方向にN倍、Y軸方向にQ倍にされた画像に相当す
る画素データを生成し、さらにその生成された画素デー
タを前記画像処理手段がX軸方向にP/N倍することに
よって、X軸方向にP倍、Y軸方向にQ倍された画像を
生成する画像処理装置。 - 【請求項7】 拡大縮小後の画像の画素に対応する原画
像領域における微小領域のK個(Kは任意の正の整数)
の近傍画素データ間の一致・不一致の関係の組み合わせ
を求める処理において、画素データ間の論理演算の回数
が最小になる順序で画素データ間の論理演算を行なうよ
うにした請求項1記載の画像処理方法。 - 【請求項8】 拡大縮小後または変倍後の画像の画素に
対応する原画像領域における微小領域のK個(Kは任意
の正の整数)の近傍画素データ間の一致・不一致の関係
の組み合わせを求める処理において、画素データ間の論
理演算の回数が最小になる順序で画素データ間の論理演
算を行なうようにした請求項2から6のいずれかに記載
の画像処理装置。 - 【請求項9】 中央処理装置と、画像データを蓄積する
蓄積手段と、前記中央処理装置の動作を制御する制御デ
ータを蓄積する蓄積手段と、同時に複数の画素データを
X軸方向に任意の倍率で拡大縮小してメモリに書き込む
画像処理手段と、複数のテーブルデータを格納する格納
手段と、K個(Kは任意の正の整数)の画素データ間の
一致・不一致の関係の組み合わせを求める比較手段と、
K個の画素データからN画素(Nは任意の正の整数)の
データを選択する選択手段とを備え、原画像(1画素が
iビット( iは任意の正の整数) のデータによって表さ
れるデジタル画像)をX軸方向にP倍(Pは0より大き
い任意の有理数)、Y軸方向にQ倍(Qは0より大きい
任意の有理数)に変倍する場合に、原画像の画素間の領
域を仮想的にX軸方向にN個、Y軸方向にM(Mは任意
の正の整数)個に分割し、得られた微小領域ごとに、K
個の近傍画素データ間の一致・不一致の関係の組み合わ
せによってK個の近傍画素データの内どの画素データを
選択するかをあらかじめ定めた複数個のテーブルを前記
格納手段に格納し、原画像をX軸方向にN倍、Y軸方向
にQ倍した後の画像の画素に対応する原画像における微
小領域で、しかもK個の近傍画素データが互いに共通
で、且つ互いに隣合うN個の微小領域のK個の近傍画素
データ間の一致・不一致の関係の組み合わせを前記比較
手段によって求め、前記選択手段が前記格納手段の複数
個のテーブルを参照してK個の近傍画素データからあら
かじめ定められたN画素のデータを選択し、X方向にN
倍、Y軸方向にQ倍にされた画像に相当するN個の画素
データを生成し、さらにその生成された画素データを、
前記画像処理手段がX軸方向にP/N倍することによっ
て、X軸方向にP倍、Y軸方向にQ倍された画像を生成
する画像処理装置。 - 【請求項10】 中央処理装置と、画像データを蓄積す
る蓄積手段と、前記中央処理装置の動作を制御する制御
データを蓄積する蓄積手段と、同時に複数の画素データ
をX軸方向に任意の倍率で拡大縮小してメモリに書き込
む画像処理手段と、複数のテーブルデータを格納するL
個(Lは任意の正の整数)の格納手段と、L個のK個
(Kは任意の正の整数)の画素データ間の一致・不一致
の関係の組み合わせを求める比較手段と、L個のK個の
画素データからN画素(Nは任意の正の整数)のデータ
を選択する選択手段とを備え、原画像(1画素がiビッ
ト(iは任意の正の整数) のデータによって表されるデ
ジタル画像)をX軸方向にP倍(Pは0より大きい任意
の有理数)、Y軸方向にQ倍(Qは0より大きい任意の
有理数)に変倍する場合に、原画像の画素間の領域を仮
想的にX軸方向にN個、Y軸方向にM(Mは任意の正の
整数)個に分割し、得られた微小領域ごとに、K個の近
傍画素データ間の一致・不一致の関係の組み合わせによ
ってK個の近傍画素データの内どの画素データを選択す
るかをあらかじめ定めた複数個のテーブルを前記L個の
格納手段にそれぞれ格納し、原画像をX軸方向にN倍、
Y軸方向にQ倍した後の画像の画素に対応する原画像に
おける微小領域で、しかもK個の近傍画素データが互い
に共通で、且つ互いに隣合うN個の微小領域のK個の近
傍画素データ間の一致・不一致の関係の組み合わせを、
L組のK個の近傍画素データに対して前記L個の比較手
段によって同時に求め、前記L個の選択手段が前記L個
の格納手段の複数個のテーブルを同時に参照してL組の
K個の近傍画素データからあらかじめ定められたLN画
素のデータを選択し、X方向にN倍、Y軸方向にQ倍に
された画像に相当するLN個の画素データを同時に生成
し、さらにその生成された画素データを、前記画像処理
手段がX軸方向にP/N倍することによって、X軸方向
にP倍、Y軸方向にQ倍された画像を生成する画像処理
装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5257271A JPH07110859A (ja) | 1993-10-14 | 1993-10-14 | 画像処理方法およびその装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5257271A JPH07110859A (ja) | 1993-10-14 | 1993-10-14 | 画像処理方法およびその装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07110859A true JPH07110859A (ja) | 1995-04-25 |
Family
ID=17304068
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5257271A Pending JPH07110859A (ja) | 1993-10-14 | 1993-10-14 | 画像処理方法およびその装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07110859A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0895412A3 (en) * | 1997-07-31 | 2000-03-29 | Canon Kabushiki Kaisha | Apparatus for enlarging or reducing of pictures |
| US7593017B2 (en) | 2006-08-15 | 2009-09-22 | 3M Innovative Properties Company | Display simulator |
| JP2011530200A (ja) * | 2008-08-02 | 2011-12-15 | ヴァントリックス コーポレーション | カラーマッピング後の画像の予測スケーリングのための方法およびシステム |
| CN113096045A (zh) * | 2021-04-14 | 2021-07-09 | 深圳市元征科技股份有限公司 | 一种位图拉伸方法、位图拉伸装置及电子设备 |
-
1993
- 1993-10-14 JP JP5257271A patent/JPH07110859A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0895412A3 (en) * | 1997-07-31 | 2000-03-29 | Canon Kabushiki Kaisha | Apparatus for enlarging or reducing of pictures |
| US6631216B2 (en) | 1997-07-31 | 2003-10-07 | Canon Kabushiki Kaisha | Image interpolation apparatus |
| US7593017B2 (en) | 2006-08-15 | 2009-09-22 | 3M Innovative Properties Company | Display simulator |
| JP2011530200A (ja) * | 2008-08-02 | 2011-12-15 | ヴァントリックス コーポレーション | カラーマッピング後の画像の予測スケーリングのための方法およびシステム |
| CN113096045A (zh) * | 2021-04-14 | 2021-07-09 | 深圳市元征科技股份有限公司 | 一种位图拉伸方法、位图拉伸装置及电子设备 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5454071A (en) | Method and apparatus for performing object sorting and edge calculation in a graphic system | |
| US4578812A (en) | Digital image processing by hardware using cubic convolution interpolation | |
| EP0356103B1 (en) | Scan-conversion process and processor | |
| US7903112B2 (en) | Drawing processing apparatus, texture processing apparatus, and tessellation method | |
| US5479525A (en) | Method and apparatus for rotating a multivalued picture image 90 degrees | |
| JPH04287292A (ja) | トリミングされたパラメトリック面のレンダリング方法及び装置 | |
| JPH0572626B2 (ja) | ||
| US5371840A (en) | Polygon tiling engine | |
| EP0147701B1 (en) | Image rotation method | |
| EP0827114B1 (en) | Method and apparatus for texture data | |
| US5237649A (en) | Method and system for acquiring interpolation points from straight short vectors representing figure in curve fitting | |
| JP3448816B2 (ja) | ソーティング装置 | |
| US4799056A (en) | Display system having extended raster operation circuitry | |
| US4996653A (en) | Line generation in a display system | |
| JPS5853781B2 (ja) | 画像拡大縮小装置 | |
| US5157764A (en) | Apparatus and method for using a test window in a graphics subsystem which incorporates hardware to perform clipping of images | |
| JP2814860B2 (ja) | 画像拡大縮小装置 | |
| EP0456394B1 (en) | Video memory array having random and serial ports | |
| GB2226481A (en) | Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system | |
| US5815163A (en) | Method and apparatus to draw line slices during calculation | |
| US4945497A (en) | Method and apparatus for translating rectilinear information into scan line information for display by a computer system | |
| JPH0887596A (ja) | イメージを高速に180度回転及び反転する方法 | |
| AU670941B2 (en) | Object sorting and edge calculation for graphics systems | |
| US5611029A (en) | Run slice line draw engine with non-linear shading capabilities | |
| US5376973A (en) | Image memory device |