JP3574467B2 - 再編成変換装置、ブロックベース画像圧縮装置、画像復号装置及び画素変換方法 - Google Patents
再編成変換装置、ブロックベース画像圧縮装置、画像復号装置及び画素変換方法 Download PDFInfo
- Publication number
- JP3574467B2 JP3574467B2 JP05062694A JP5062694A JP3574467B2 JP 3574467 B2 JP3574467 B2 JP 3574467B2 JP 05062694 A JP05062694 A JP 05062694A JP 5062694 A JP5062694 A JP 5062694A JP 3574467 B2 JP3574467 B2 JP 3574467B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- order
- counter
- address
- input
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Input (AREA)
- Image Processing (AREA)
Description
【産業上の利用分野】
本発明は、デジタル画像変換の分野に係り、特に、デジタル画像の画素をラスター順の画素ストリームよりブロック順の画素ストリームへ、またはその逆方向へ変換する技術に関する。
【0002】
【従来の技術】
典型的なデジタル化された画像は画素値の集合によって表現され、各画素値は画像を覆う2次元格子上の1点における画像の色を示す。モノクロ画像の場合、画素値は、その格子点における画像の明暗の度合いを示す。カラー画像の場合、画素値は輝度に関する1成分(Y)と、色差に関する2成分(Cr,Cb)、あるいは他のカラー空間、例えばCYMK(シアン−黄−マゼンタ−黒)やRGB
(赤−緑−青)等の成分からなる。画素値に従った色または明暗度合を持つドットを、物理的なディスプレイ装置(テレビジョンやプリンタ等)によって、画素値の格子点に対応した位置に表示することによって、画像を見ることができる。画像ソースからディスプレイ装置へ、ある決まった順序で画素が与えられる場合、画像ソース及びディスプレイ装置はその画素順序に従わねばならない。例えば、ノンインターレース方式のコンピュータ用モニターは、表示すべき画素を、ある決まった順序すなわちラスター順で受け取る。
【0003】
ラスター順では、画像の左上の画素よりスタートし、画像の最上ラインの画素が左側から右側のものへと続き、その後に画像の次ラインの画素が左側から右側へと続き、以下、画像の最下ラインの右下の画素まで同様に続く。普通、ある画像の画素のすぐ後に、次の画像の画素が続く。多数画像のストリームのための一つの規格が、MPEG(Moving Pictures Experts Group)の”Coding of Moving Pictures and Associated Audio−for Digital Storage Media”に述べられている。多数画像ストリームの一用途は、テレビジョンモニターに表示されるような動画像を生成することである。
【0004】
デジタル画像の画素は、画像ソースから、ラスター順ディスプレイ装置でなくデジタルビデオプロセッサへ与えられる。画像用語では、”画像ソース”は画像を提供するもので、”画像シンク(sink)”は画像を利用するものである。ビデオプロセッサで遂行される処理の一つが画像の圧縮である。圧縮の一規格であるJPEG(Joint Photographic Experts Group)は、まず画像を8×8画素の正方領域からなるブロックに分割し、つぎに、1ブロックずつ順に圧縮する。画像圧縮に関する従来技術で知られているように、画素を1ブロックずつ圧縮すると、殆どの画像で良好な圧縮率を得られる。しかしながら、画素のブロック分割は、圧縮すべき画像がラスター順の画像ソースより供給される場合、ビデオプロセッサが、1ブロックの画素全部を受け取るまで多数の走査ラインの画素を記憶しなければならないという、一つの問題を招来する。これとは逆に、JPEGビデオ伸長装置(decompressor)の出力では画像がブロック順で与えられることとなっているが、このようなブロック順で画像が与えられる場合、画像シンクがラスター順の装置のときには、画素ストリームをブロック順からラスター順へ変換しなけれはならない。8×8のブロック順の場合、左上画素が最初に与えられ、続いて最上行の7画素が左から右へ順に与えられるが、これはラスター順の場合と同様である。しかし、8番目の画素の後に、第2ラインの最左の8画素が続く。このパターンを最初のブロックの第8行まで繰り返すと、第2ブロックの左上画素(画像の最上ラインの左から9番目の画素)が65番目に出力されるべき画素となる。このようにして、第1ブロックの画素の次には、その右側の第2ブロックの画素が続き、さらにその右側の第3ブロックの画素が続き、最終的に画像の右端に到達する。このブロックの行は一つのイメージバンド(image band)を定義する。最初のイメージバンドの後に次のイメージバンドが続くというようにして、最終的に画像全体が得られる。画素の並べ替え(再編成)に関するこれ以上の技術的背景については、JPEGの”CD10918−1 DigitalCompression and Coding of Continuous−Tone Still Image”を参照されたい。
【0005】
ラスター順画像をブロック順画像へ再編成するためのある変換装置は、1バンドずつ、ラスター順画像を2次元配列に読み込み、各画素をそのラスター位置に対応したメモリロケーションに格納する。一つのバンド全体が配列に格納されると(配列は少なくとも1つのバンドの画素分の容量を持つ)、これら画素はブロック順にメモリより読み出される。この変換装置は、ラスター順画素が連続ストリームをなし、かつ、ブロック順画素を連続ストリームで出力しなければならない場合には、実用的とはいえない。その理由は、配列を満たしている期間に出力ストリームに大きな空白が生じ、また、配列を吐き出している期間に入力が全く受付られないため入力ストリームに大きな遮断時間が生じるからである。
【0006】
ブロック順画像をラスター順画像へ変換する同様の変換装置がある。
【0007】
上記問題に対する解決法の一つは、2つのバンドメモリを使用し、それらを切り替えることによって連続的な入力及び出力を維持することである。一方のメモリを満たしている間に、他方のメモリを吐き出す。満たしていた側のメモリが満杯になり、かつ、吐き出していた側のメモリが空になった時に(これは同時でければならない)、それらの役割を入れ替える。これは”ピンポン”メモリとして知られている。
【0008】
図1は、そのような2つのバンドメモリを用いて再編成を行なう再編成変換装置10を示す。ラスターからブロックへの変換とブロックからラスターへの変換とは対称であるので、ここではラスターからブロックへの変換装置の一つのケースに限って詳細に述べる。
【0009】
変換装置10は、バンドメモリ0(16)、バンドメモリ1(18)、マルチプレクサ20、アドレス発生器22,24、及びインバータ26からなる。ラスター順に画素ストリームを取り込む入力が、両方のバンドメモリ0,1のデータ入力に結合される。状態信号を取り込むラインが、バンドメモリ0の書き込みイネーブル入力に結合されるとともに、インバータ26を介してバンドメモリ1の書き込みイネーブル入力にも結合される。バンドメモリ0,1の出力はマルチプレクサ20の入力に結合されるが、このマルチプレクサ20は状態信号によって制御されるセレクト入力を有する。バンドメモリ0のアドレスはアドレス発生器22によって与えられるが、バンドメモリ1のアドレスはアドレス発生器24によって与えられる。アドレス発生器22,24は画素クロックによってクロッキングされるが、この画素クロックは画素ストリームより作成されるか、あるいは、画素ストリームに同期した他の信号源より供給される。アドレス発生器22は読み書きされるバンドメモリ0内のロケーションを指定するアドレスを発生し、アドレス発生器24はバンドメモリ1内の読み書きされるロケーションのアドレスを発生する。
【0010】
最初に、状態信号が値0に設定されるが、これは現在状態が状態0であることを示す。状態0においては、状態信号によりバンドメモリ1に対する入力画素ストリームの書き込みがイネーブルされ、また、マルチプレクサ20はバンドメモリ0からの画素を出力する。このようにして、状態0において、バンドメモリ1に画素が蓄積され、バンドメモリ0から画素が吐き出される。バンドメモリ1が満杯になり、かつバンドメモリ0が空になると、状態が状態1に変わる。
【0011】
状態1では動作が逆になり、状態信号によってバンドメモリ0に対する入力画素ストリームの書き込みがイネーブルされ、マルチプレクサ20はバンドメモリ1からの画素を出力するので、バンドメモリ0に画素が蓄積され、バンドメモリ1から画素が吐き出される。画素の再編成(並べ替え)が起こるのは、アドレス発生器22,24によって発生されたアドレスシーケンスが、一方のバンドメモリが蓄積中で他方のメモリが吐き出し中に一巡した時である。
【0012】
ラスターからブロックへの変換装置の場合、アドレス発生器24は状態0でラスター順のアドレスシーケンスを発生し、次に状態1でバンドメモリ1の画素をブロック順に読み出すアドレスシーケンスを発生することになろう。アドレス発生器22も同様に動作するが、ラスター順のアドレスを状態1で発生し、ブロック順のアドレスを状態0で発生する。このようにして、連続した画素ストリームをバンドメモリ0又は1に取り込み、書き込み中でないバンドメモリより連続した画素ストリームを出力させることができる。
【0013】
この変換装置10は首尾よく再編成を行なうが、装置実現に必要なチップ・コストが大きい。例えば8画素×8画素のブロックで、画像幅が4096画素(512ブロック)であり、各画素を8ビット(1バイト)のデータで表現する場合、バンドメモリ0,1は64k(65536)バイトのRAMを必要とする。
【0014】
上記説明で指摘したように、画像をブロック順からラスター順へ又はその逆方向へ変換するための、大容量のメモリを用いない改良された手段が望まれる。
【0015】
【発明が解決しようとする課題】
よって本発明の目的は、ブロックからラスター及びラスターからブロックへの画素変換(並べ替え)を、より少ないメモリを用いて実行する改良された装置及び方法を提供することにある。
【0016】
本発明のもう一つの目的は、画素変換におけるイメージバンド幅の選択自由度を増大することにある。
【0017】
【課題を解決するための手段】
やや具体的に述べれば、本発明により提供される再編成変換装置は、イメージバンドをラスター順に読み込んでブロック順に出力し、及び/又は、イメージバンドをブロック順に読み込んでラスター順に出力する。一つのバンドメモリが、一つのイメージバンド中の画素数に相当する個数の画素を格納するために用意される。アドレス発生器がバンドメモリのアドレス入力に接続されるが、このアドレス発生器はバンドメモリを適当な順序に順序付ける一つのカウンタアレイ
(counter array)からなる。アドレス・シーケンシングの”適当な”順序とは、あるイメージバンドを入力順(ラスター順又はブロック順)に書き込み、出力順に出力できるような順序である。カウンタアレイは画素クロックによってインクリメントされ、また、カウンタアレイ中のカウンタから出るキャリー信号の一部はキャリー信号ルーター(router)によって決められた先へ送られるが、このキャリー信号ルーターは状態マシン及び内部接続に基づいてキャリー信号の送り先を決める。
【0018】
キャリー信号ルーターは、カウンタアレイ中のカウンタ群を一つの大きなカウンタとして動作させるように、カウンタのキャリー出力線とキャリー入力線とを接続する。キャリー信号ルーターは、最上位のカウンタのキャリー出力信号を状態マシンへ送り、また、クロックまたは分周クロックを最下位のカウンタのキャリー入力へ送る。状態マシンは、最上位のカウンタのキャリー出力によってクロックされた時に、状態を変化させることによって、カウンタアレイ中のカウンタのキャリー入出力接続を変更してカウンタアレイからバンドメモリへ出力されるアドレスシーケンスを変更する。状態マシン及びキャリー信号ルーターのセッティングの仕方によって、カウンタ群がブロックからラスターへの変換をするか、ラスターからブロックへの変換をするかが決まる。
【0019】
第1の実施例においては、アドレス発生器は、イメージバンドの幅が各ブロックの高さの整数乗である場合における入力画素の再編成を行なわせる。一例では、イメージバンドの幅が4096画素(512ブロック)又は512画素(64ブロック)で、8画素×8画素のブロックの再編成が行なわれる。
【0020】
第2の実施例においては、アドレス発生器は、イメージバンドの幅があるベース数の整数乗で、各ブロックの高さも同ベース数の整数乗である場合における入力画素の再編成を行なわせる。これら二つの整数乗は同一であっても相違してもよい。一例では、イメージバンドの幅が256画素(32ブロック)で、8画素×8画素のブロックの再編成が行なわれる。
【0021】
第3の実施例においては、アドレス発生器は、イメージバンドの幅がブロックの高さの整数倍である場合における入力画素の再編成を行なわせる。一例では、イメージバンド幅が640画素(80ブロック)で、8画素×8画素のブロックの再編成が行なわれる。
【0022】
他の実施例では、アドレスのシーケンシングはROMによって与えられる。このROM内にはアドレス発生器の連続した出力と等価なものが連続したアドレスに格納されているが、このROMに対するアドレスはシーケンシャルカウンタによって与えられる。
【0023】
ある実施例では画素はカラー成分及び/又はサブサンプルされた成分からなるが、他の実施例ではモノクロ画像が再編成される。
【0024】
【作用】
上にやや具体的に述べた本発明によれば、1つのバンドメモリを使用して、画素の並べ替え(再編成)変換を効率的に行なうことができる。そして、ハードウエアコストとイメージバンド幅とに関連して、第1の実施例によればハードウエアコストを最小にでき、第2の実施例によればハードウエアコストは第2実施例より増加するがイメージバンド幅の選択の自由度が増大し、さらに第3の実施例によればイメージバンド幅の選択の自由度が一層増大する。
【0025】
なお、本発明の構成及び作用は、以下の説明によって、より明確になろう。また、本発明は、上記説明の範囲に限定されるものではなく、特許請求の範囲の記載によって定義されるものである。
【0026】
【実施例】
本発明は、1バンド分のメモリだけを用いて、ラスターからブロック(又はブロックからラスター)への変換を遂行すべくなされたものである。これを達成するため、”リード−モディファイ−ライト”(read−modify−write)メモリ動作が各画素毎に利用される。本発明が解決すべき一つの問題は、単一のバンドメモリに対して適当な順序で画素が読み書きされるようなシーケンスでアドレスを発生する必要があることである。一つのイメージバンドがバンドメモリに書き込まれる順序は、すぐ上に述べた従来のイメージバンドの書き込み順とは異なるが、その順序は結局は同じことになる。
【0027】
以下の説明を通して、いくつかネーミング法を用いる。ブロック順画像のブロックそれ自体はラスターパターンに配列されているので、一度に処理するブロックは1バンド分すなわち1行分だけでよい。よって、特にことわらない限り、処理の単位は1つのイメージバンド、すなわち、1ブロックの高さで幅が画像幅に等しい範囲のブロック群である。したがって、画像を構成するバンド数(画像の高さを意味する)は重要でない。画像幅とブロックサイズについていくつか例を出すが、これに限定されるものではない。
【0028】
値を表わすのに、以下の記号を用いる。Wはイメージバンドの幅(画像幅でもある)をブロック数で表わすために用いられる。イメージバンドは常にブロック整数個分の幅である。Bはブロックの幅を画素数で表わすために用いられ、Mはブロックの高さを画素数で表わすために用いられる。BとMが等しい場合、ブロックは正方形の画素ブロックである。ある実施例においては、Mはある整数を表わし、Pはある整数のベース数を表わし、Qはある整数のベースのべき指数である。W,B,M,N,P,Qはそれぞれ独立に設計上の都合に応じ任意の正整数値をとることができるが、ある種の値は(例えばM=0又は1,B=0又は1等々)は不適切又は無意味である。
【0029】
ここでは3つの実施例を提示して、ハードウエアコストとイメージバンド幅との兼ね合いを説明する。3つの実施例中、第1の実施例により最小のハードウエアコストが達成され。この第1実施例においては、1バンドあたりのブロック数はバンド高さのべきである(すなわち、あるM,Nに対しW=MN)。
【0030】
第2実施例においては、イメージバンド幅の選択に関する柔軟度が増加するが、ハードウエアコストの増大という犠牲をともなう場合もある。柔軟度の増加によって、幅(ブロック数)が任意のベース数の任意整数乗であるのと同様(高さもまた当該ベース数の整数乗である)、画像幅(ブロック数)をバンド高さの任意のべきとすることができるようになる(すなわち、あるP,N及びQに対して、W=PNブロック、M=PQ画素)。
【0031】
第3実施例においては、ハードウエアコストはさらに増加するが、さらに高い柔軟度が得られる。第3実施例では、イメージバンド中のブロック数をバンド高さの任意倍とすることができる(すなわち、あるM及びNに対しW=M×N)。これら3実施例をモノクロ画像を処理する場合について説明した後、一般的ケースについて、カラー画像の処理までサブサンプリングを伴う場合と伴わない場合について説明する。
【0032】
場合によっては、説明を簡単にするため、ある一方向の変換だけ、例えばラスターからブロックへの変換だけについて論じる。しかし、ラスターからブロックへの変換とブロックからラスターへの変換は本質的に対称であるので、ある一方向の変換を論じる場合、その説明は他の方向の変換にもあてはまる。この説明中において用いられる”再編成変換装置”なる用語は、ブロック順からラスター順へ変換する変換装置、ラスター順からブロック順へ変換する変換装置、あるいは、そのどちらの方向の変換も制御の設定又は切り替えに応じて実行する変換装置を意味するものである。
【0033】
図2は画素をブロック順からラスター順へも、ラスター順からブロック順へも変換する再編成変換装置60のブロック図である。この変換装置60がラスター順からブロック順への変換のために使用される場合を考える。変換装置60は、ラスター順で受け取った入力画素をブロック順に出力される時まで格納するための一つのバンドメモリ62と、一つのアドレス発生器64とからなるが、アドレス発生器64の詳細については他の図面と関連させて説明する。バンドメモリ62はラスター順画素ストリームを受け取るための画素入力と、ブロック順の画素ストリームを出力するための画素出力を有する。アドレス発生器64は、各画素の入力のタイミングをとるための画素クロック入力と、内部のカウンタ及びレジスタを規定の初期状態へリセットするためのリセット入力と、変換方向入力と、アドレスバス70によってバンドメモリ62のアドレス入力に接続されたアドレス出力とを有する。
【0034】
画素クロック信号、リセット信号及び変換方向信号がアドレス発生器64の画素クロック入力、リセット入力及び変換方向入力へそれぞれ与えられる。画素クロック信号はリード/ライトコントローラ66のクロック入力へも与えられるが、このリード/ライトコントローラ66はバンドメモリ62のリード(read)制御入力に接続された出力とライト(write)制御入力に接続された出力を有する。ある実施例では、画素クロック信号とリセット信号は入力中の画像データから作られ、また、ソフトウエアによって実現する実施例では、画素クロックを仮想クロックとしてもよい。以下の説明では、リセット信号はリセット中に論理1、その他の期間に論理0となる論理信号であり、変換(再編成)方向信号はブロックからラスターへの変換のとき論理0、ラスターからブロックへの変換のとき論理1になる論理信号であるとする。
【0035】
アドレス発生器64は、バンドメモリ62に対するアドレスのストリームを発生するが、このストリーム中のアドレスの順序によって画素が並べ替えられる。画素クロックの1個毎に、バンドメモリ62より1画素が出力され、かつ、再編成変換装置60の入力の1画素がバンドメモリ62に入れられる。しかしながら、処理されるべき最初のイメージバンドでバンドメモリ62が一杯になった後は、入って来る画素を格納するための場所は、出ていく画素によって空いたバンドメモリ・ロケーションだけである。リード/ライトコントローラ66は、バンドメモリ62のリード制御線及びライト制御線を操作することによって、1つの画素がバンドメモリ62から読み出されて出力された後に、その場所に新しい入力画素が格納されるようにする。
【0036】
アドレス発生器64によって供給されるアドレスは、このリード−ゼン−ライトサイクル(read−then−write cycle)の間変化しないので、出力画素と入力画素は同一アドレスを用いる。当然、変換装置60は再編成変換装置であるから、アドレス発生器64のアドレス出力に出るアドレスのシーケンスはイメージバンド毎に違っているが、これは、もし同一であると画素は入力された時と同じ順番で出力されることになったしまうからである。しかし、アドレス発生器64によって出力されるアドレスのシーケンスは、バンド内のブロック数W、ブロック幅B、ブロック高さMによって部分的に決まる。3種類(クラス)のアドレス発生器について以下に述べるが、それぞれ、あるW,Bの選択値の組み合わせに適合する(ただしW,Nの値によっては2種類以上のアドレス発生器を用い得る)。
【0037】
画素の順序がどのようであろうと、最初の画素はイメージバンドの左上コーナーの画素であり、また、最後の画素はイメージバンドの右下コーナーの画素である。後に明かになるように、アドレスシーケンスのパターンは、イメージバンド毎に変化し(有効なケースの場合)、イメージバンドの最後の画素まで続くが、しかし、結局はパターンは繰り返す。一つの状態によって特定のパターンを識別でき、状態0は、これは任意ではあるが、アドレス発生器がリセットに続き最初のイメージバンドを読み込んでいる時の(すなわち、リセット信号が1から0に変化した時の)アドレス発生器の状態である。
【0038】
<クラス1:B(幅)×M(高さ)画素/ブロック;W=MNブロック>
アドレス発生器の第1実施例は、画像幅W(ブロック数)がブロックの高さMの整数乗である再編成変換装置に用いられる。ここで図3及び図4と関連して、アドレス発生器の一例を説明する。このアドレス発生器はブロックサイズがB=8×M=8、イメージバンドあたりの画像幅Wが512(83)ブロック又は64(82)ブロック(それぞれ4096画素又は512画素)の画像の再編成を行なうラスターからブロックへの再編成変換装置に使用される。
【0039】
図3はアドレス発生器100のブロック図で、このアドレス発生器は512ブロック幅、8×8のブロックのイメージバンド中の画素を再編成するために変換装置60で使用できる。アドレス発生器100は、0から7までカウントできる5個のカウンタ104(番号0から4)、及びキャリールーター(carry router)106からなる。カウンタ0〜4のキャリー出力(C0〜C4)はキャリー出力バス110によりキャリールーター106へ与えられる。カウンタ1〜4のカウント入力(E1〜E4)はキャリールーター106の出力をカウントイネーブルバス112により受けるように接続されている。カウンタ0のカウント入力は画素クロックである。各カウンタ104はリセット信号が付勢された時にリセットされる。リセット信号と変換方向信号がキャリールーター106へ与えられる。
【0040】
M=8であるから、各カウンタ104は3個のビットカウンタ102によって容易に実現される。ここで、カウンタ104はそのカウント入力(すなわち、カウンタ104の最下位ビットのカウンタ102のカウント入力)の1個毎に1ずつカウントアップし、現在カウント値(モジュロ8)を3本のビット線に出力し、また7から0への遷移時にキャリー信号を出力する。図3に示すように、5個のカウンタ104は合計15ビットのカウンタ102を提供し、イメージバンド(4096画素幅×8画素高さ)中の215(32763)個の画素の1つ1つのアドレス指定が可能である。これらのアドレス線は、A14からA0までの番号がつけられており、バンドメモリ62のようなバンドメモリへ接続される。バス110上のキャリー出力C4〜C0からバス112上のカウント入力E4〜E0への特定の接続によって、アドレス線A14〜A0上のアドレス出力のシーケンスは適当な再編成が行なわれるものになる。
【0041】
カウンタ104のカウント入力の信号の付勢によって、その付勢時に同カウンタはインクリメントされるか、あるいは、同カウンタは画素クロックと同期してインクリメントできるようになるが、いずれであるかは構成に依存する。
【0042】
適当なアドレスシーケンスをバンドメモリに供給するために、キャリールーター106は、5つのキャリー信号C0〜C4中の4つの信号を4つのカウント入力E1〜E4へ送り、残りのキャリー信号でイメージバンドの終了を指示する。キャリー接続が
C0→E1,C1→E2,C2→E3,C3→E4
の場合、アドレス発生器100は0から32767までのアドレスを値の小さい順番でアドレス線A14〜A0に出力し、A14からのキャリーでイメージバンドの終了を指示する。これは状態0における最初の接続である(後述のように、現在の状態はキャリールーター106の内部で与えられる)。後に述べるように、キャリー信号C4は、付勢された時に、状態の遷移を生じさせるが、これが適当であるのは、C4の駆動されるのが最初のイメージバンドの読み込みが完了した直後(画素クロックの32768”発”の後)だけであるからである。
【0043】
当然のことながら、B又はMが8以外である他の実施例では、カウンタ104の全部がモジュロ8のカウンタとなることはなく、カウンタ0はモジュロBのカウンタ、カウンタ1〜4はモジュロMのカウンタとなろう。この例では、N=3であるが、これ以外のNの値でも、カウンタ1〜4の機能はN+1個のモジュロMカウンタによって得られる。
【0044】
図4はキャリールーター106のブロック図である。キャリールーター106はマルチプレクサアレイ120と状態マシン122からなる。マルチプレクサアレイ120は、この例では、4個のマルチプレクサ124(M1,M2,M3,M4)からなり、また、状態マシン122は2ビットカウンタ126とマルチプレクサ128からなる。各マルチプレクサは4つのデータ入力の1つを選択する(one−of−four)型のマルチプレクサで、それぞれのセレクト入力は状態バス130によりカウンタ126の状態出力に接続されている。5個のマルチプレクサは、C0〜C4の各入力がE1〜E4として出力されるか、あるいはマルチプレクサ128の出力となるように接続されている。マルチプレクサ128の出力は、信号線132を介してカウンタ126のクロック入力へ与えられる。キャリールーター106に対するリセット入力はカウンタ126のリセット入力へ与えられ、変換方向信号はカウンタ126のUP/DOWN#入力に与えられる。
【0045】
先に言及したように、マルチプレクサ124,128はそれぞれ、入力の1つを選択して出力するが、この選択はカウンタ126の”状態”によって決められる。E1〜E4出力はカウンタ1〜4(図3)のためのシーケンスを決定するので、マルチプレクサの入力の接続方法によってアドレス発生器100の出力するアドレスのシーケンスが決まる。マルチプレクサM1〜M4の出力はE1〜E4にそれぞれ接続され、マルチプレクサM1〜M4の入力は第1表に示すとおりである。
【0046】
ここで、リセットに続くアドレスシーケンスの発生について図4と関連させて説明する。
【0047】
リセット後は、カウンタ126は状態が状態0であることを示している。状態0においては、各マルチプレクサ124,128は、そのセレクト(SELECT)入力が0であるので、すべて”0”入力を出力に出す。その結果、キャリー出力の送り先は、CO→E1,C1→E2,C2→E3,C3→E4となり、C4がカウンタ126のクロックへ送られる。状態0においては、カウンタ104は順次カウントアップしていき、ついにC4が付勢されると、一つのイメージバンドの終了である。キャリー出力C4はカウンタ126のクロック入力に入力されるので、キャリー出力C4は状態0から状態1への遷移を起こさせる。状態1においては、キャリーの送り先は
C4→E1,C1→E2,C2→E3,C0→E4
となり、C3はカウンタ126のクロック入力へ送られる。このパターンは状態が変化すると変化し、状態3に続く状態0で初めから繰り返す。この例はラスターからブロックへの変換(方向=1)の場合である。ブロックからラスターへの変換の場合、変換方向信号は0であり、カウンタ126は状態0から状態3まで変化し、次に状態2、状態1と変化して状態0へ戻る。このようにして、ラスターからブロックへの変換又はブロックからラスターへの変換のための適当なアドレスシーケンスが発生される。
【0048】
要するに、状態0で発生されるアドレスはシーケンシャルなものであり、状態1で発生されるアドレスは、第1ブロックの第1画素行がアドレス指定され、続いて第1ブロックの第2画素行がアドレス指定されるようなものである。画素はラスター順に読み込まれているので、第1ブロックの第2画素行は最上位のモジュロMカウンタ104をインクリメントすることで見つかる。これは実際には、状態1においてキャリー出力C0をカウンタ4のカウント入力へ結合することによってなされる。カウンタ0は本質的にブロック内のある画素行中の現在画素の位置を追跡しており、行の順序が変わっても、行中の画素の順序はラスター順、ブロック順のいずれの場合も同一である。したがって、カウンタ0のカウント入力は、アドレス発生器の状態が変わっても変化しない。
【0049】
図3に示したキャリールーター106はN=3の場合のもので、いずれの方向への変換も可能である。しかし、キャリールーター106は、UP/DOWN#入力を除くか、又は入力を特定値に固定することによって、一方向の変換だけが必要な用途向けに容易に変形できる。キャリールーター106はまた、マルチプレクサアレイ120にN+1個のマルチプレクサを持たせるとともに、カウンタ126にN+1個の状態を持たせることによって、他のN値用に変形することもできる。
【0050】
例えば、N=2(画像幅Wが64ブロック)ならば、マルチプレクサアレイ120は3個のマルチプレクサからなり、また、カウンタ126はラスターからブロックへの順序変換の場合には状態0−1−2−0−1−2,...と繰り返し、ブロックからラスターへの順序変換の場合には状態2−1−0−2−1−0,...と繰り返すことになる。各マルチプレクサ124は、3個の状態のそれぞれ毎に1つずつとして、3個の入力しか必要でない。これらの入力の接続を第2表に示す。
【0051】
N=3の場合と同様、N=2の変換装置は、状態カウンタがカウントアップすればラスターからブロックへの変換装置であり、状態カウンタがカウントダウンすればブロックからラスターへの変換装置である。N=1用の変換装置は、状態カウンタが2つの状態しかカウントしないので、どの変換方向についても同一であることは明らかであろう。また、画像幅が異なれば、必要とされるバンドメモリのサイズが異なることも明かである。かかる再編成変換装置は、画像が512画素の幅を持つ一般的なビデオプロセシングシステムでの用途がある。
【0052】
キャリー入出力が接続変更可能(ルータブル;routable)なアドレス発生器とバンドメモリが1個だけの、ラスター順からブロック順へ又はブロック順からラスター順への画素順変換のための再編成変換装置について説明した。このような変換装置は、B画素幅でM画素高さのブロックサイズを使用し、かつブロック数で表わした画像幅がMの整数乗である画像処理システムに使用できる。
【0053】
図3及び図4に示したアドレス発生器は、カウンタ104をモジュロ16のカウンタ、すなわち4ビットカウンタに変更することによって、16×16というような8×8以外のブロックサイズ用に変形することもできる。10×10のブロックの場合、カウンタ104は4ビットのBCD(2進化10進)カウンタ又は10進カウンタになろう。
【0054】
<クラス2:B×M画素/ブロック,W=PNブロック,M=PQ画素>
アドレス発生器の第2実施例は、画像の幅W(ブロック数)がベース数Pの整数N乗、ブロックの高さMがベース数Pの整数Q乗である再編成変換装置に使用される。ここで、アドレス発生器の一例を図5から図7と関連させて説明する。ここに示したアドレス発生器が使用される再編成変換装置においては、B=8,P=2,Q=3(ブロックサイズは8×8画素,M=23=8,W=25=32ブロックすなわち256画素)である。
【0055】
図5はアドレス発生器200のブロック図である。このアドレス発生器は32ブロック幅、8画素×8画素/ブロックのイメージバンドの画素順序変換のために変換装置60で用いることができる。
【0056】
アドレス発生器200は8個のカウンタユニット230とモジュロ8のカウンタ211とのアレイ210を有する。カウンタユニット230はモジュロ2つまり1ビットのカウンタであって、以下に述べるようにカウンタ211の各ビットカウンタに論理を付加したものと同様である。各カウンタ211,230は、アドレス出力A10〜A0に対応してC10〜C0の記号を付けて示されている。アドレス発生器200は、3ビットずつローテート(回転)する8ビットのキャリー・ルーティング(routing)レジスタ212をも有し、このレジスタの各セルはS10からS3の記号で表わされている。一つのカウンタユニット230の詳細を図7に示す。カウンタ211は画素クロックによってクロッキングされ、キャリー信号としてCARRY8信号を出力する。
【0057】
カウンタアレイ210はシーケンシャルアップカウンタ(sequential upcounter)として動作するもので、各ビットカウンタのキャリーはその左側のカウンタのカウント入力をイネーブルし(C3はC10の”左側”カウンタであり、C10はC3の”右側”のカウンタである)、カウンタユニット230のキャリー出力の一つはキャリールーティングレジスタ212へ送られ、アレイ中のその隣の上位側のカウンタのキャリー入力にはCARRY8信号が与えられる。キャリールーティングレジスタ212は、各カウンタC10〜C3のSEL入力を利用してどのキャリーを送るか決定する。各カウンタユニット230は、SEL入力及びアドレス出力のほかに、CY出力,CX出力,E0入力,E1入力を有する。C10とC3は隣合うと考えられるため、C10〜C3は”循環接続”のカウンタの組、すなわち、右側にも左側にもカウンタが1つずつある有限数のカウンタの組を形成する。これらの入力及び出力の用いられ方は図7を参照した説明中で明かにする。
【0058】
レジスタ212の内容は常に7ビットが論理”0”で1ビットが論理”1”であるが、”1”の位置はアドレス発生器の状態に応じて変わる。なお、この状態はリセット後が状態0であるものとする。リセット信号によって、状態0の間だけS3セルに”1”を出させる。レジスタ212は3ビットずつローテートする(rotate−by−3)カウンタであるので、後続の状態において、状態が遷移するたびに”1”が左または右へ3セル分移動する。状態遷移は、ORゲート220の出力が真になることによって起きる。状態遷移時の”1”のローテート方向は、変換方向入力の値によって決まる。すなわち、その値が0のときには、ブロックからラスターへの変換を示しており”1”を左へ3セル分移動させる。一方、値が1であると、ラスターからブロックへの変換を示しているので”1”を右へ3セル分移動させる。
【0059】
状態0において、S3内の”1”がカウンタC3のSEL入力に与えられ、カウンタC3のカウント入力をカウンタC2のキャリー出力であるCARRY8信号に接続させる。”0”がC3のSEL入力に印加された時に、そのカウント入力はC10のキャリー出力に接続される。そうでなくS3=1の時は、C10のキャリー出力はレジスタ212のROTATE3入力へ送られるが、これについては後述する。他のカウンタC10〜C4のそれぞれのSEL入力は”0”であるため、それらのキャリー出力(C10以外)は左側のカウンタのカウント入力へ接続される。C10がそのキャリー出力を付勢すると、状態遷移が起こって、レジスタ212は”1”を別の1つのカウンタユニット230に供給する。
【0060】
図6はレジスタ212をより詳細に示すブロック図である。図示のように、S10〜S3の各出力は8個のデータラッチ222(0...7)中の一つの出力であり、各データラッチの入力はマルチプレクサ224(0...7)の出力にそれぞれ接続される。データラッチ222(0...7)はそれぞれリセット信号によってクリアされ、またROTATE3信号によりクロッキングされる。各マルチプレクサ224(0...7)は2つの入力を持ち、その一方を変換方向信号に基づき選択して出力する。マルチプレクサ224(0...7)の入力は第3表のとおりである。
【0061】
2個のインバータ226,228も設けられているため、リセット信号によってデータラッチ222(0...7)をクリアした時に、データラッチ222(0)の内容が外部へ1として出力される。
【0062】
図7はカウンタユニット230を詳細に示す。カウンタ211(A2〜A0)は単純なモジュロ8カウンタを構成しているが、カウンタユニット230は、そのキャリー出力の接続変更(リルーティング;rerouting)のための論理が付加されている。図7に示すように、カウンタユニット230は、アレイ210内の第”i”カウンタであり、ここでi=3〜10である。前述のように、カウンタユニット230はSEL入力、2つのキャリー出力CX,CY、2つのイネーブル(又はカウント)入力E0,E1、及び1ビットの出力OUTを持ち、この出力OUTはアドレス発生器200により出力されるアドレスの第”i”ビットとなる。E0入力は前ビットのカウンタ、すなわちカウンタ”i−1”(i=3のときはC10)のCYキャリー出力を受けるように接続され、E1入力はカウンタ211からのCARRY8信号を受けるように接続される。E0,E1信号は2:1マルチプレクサ236に入力される。Si信号はマルチプレクサ236のセレクト入力に接続される。カウンタ211のキャリー出力は信号CYとして出力され、また、ANDゲート239の一つの入力である。ANDゲート239のもう一つの入力は第”i+1”カウンタユニット(i=10のときはC3)のSEL入力であり、また、ANDゲート239の出力はカウンタユニット230のCX出力である。
【0063】
カウンタユニット230の動作は以下のとおりである。カウンタユニット230(Si)のSEL入力が1の時に、そのE1入力のCARRY8信号はカウンタ211のカウント入力に接続されることによって、CARRY8信号が付勢された時にカウンタ211をインクリメントさせる。ある実施例では、キャリーが付勢されたことがキャリー線上のパルスで示される。カウンタユニット230のSEL入力が0の時、E0入力のCYi−1信号はカウンタ211のカウント入力につながれる。カウンタ211の2回カウントに1回、”1”から”0”にインクリメントされた時にキャリー信号がカウンタ211より出力される。このキャリー信号はカウンタユニット230のCYi出力に直接出力されるとともに、Si+1とANDされてからCXi出力に出力される。
【0064】
図5に戻って、アドレス発生器200の動作を説明する。リセットされると、キャリールーティングレジスタ212の内容は”00000001”であるのでカウンタC10〜C0はすべて0に設定される。画素クロックによってA2〜A0を0から7までインクリメントし、0に戻るが、その時にC3のE1入力へのCARRY8線へキャリーを送出する。レジスタ212は”00000001”に設定されているため、C3のSEL入力は1であるので、CARRY8信号はC3のカウント入力に接続され、その結果、カウンタC3は0から1に変化する。次の8クロックサイクルの後、CARRY8は再び駆動され、C3は0に戻って、そのキャリー出力を付勢する。このプロセスの繰り返しによって、他のカウンタC10〜C4はSEL=0であるため、C3からのキャリーが伝搬し、ついにC10〜C0がすべて0になるが、この時には211(2048)画素の1つのイメージバンドの読み込みが完了しているはずである。
【0065】
次の画素クロックサイクル(次のイメージバンドの最初の画素に対する第2049サイクル)の時点で、ビットカウンタ全部が0になり、C10がそのCY出力を付勢する。i=10に対するSi+1はハイレベル(high)であるので、C10のCX出力も付勢される。CX出力はすべてORゲート220(図5)の入力に接続されているので、ORゲート220はキャリービットをレジスタ212のROTATE3入力に与える。レジスタ212のDIR入力の状態に応じ、レジスタ212内のセルの内容が左へ(ブロックからラスターへの変換)、あるいは、右へ(ラスターからブロックへの変換)、3セル分ローテートされる。レジスタ212は循環型で、一方の端からシフトアウトされたセル内容は他方の端へシフトインされる。したがって、ブロックからラスターへの変換の場合、キャリーレジスタ212の内容は、00000001,00001000,01000000,00000010,00010000,10000000,00000100,00100000,00000000というシーケンスを繰り返す。一方、ラスターからブロックへの変換の場合、キャリーレジスタ212の内容は、00000001,00100000,00000100,10000000,00010000,00000010,01000000,00001000というシーケンスを繰り返す。いずれの場合でも、キャリーレジスタ212の内容は一つのイメージバンドの間中一定で、ORゲート220の出力がハイレベルになる時に変化する。
【0066】
論理的には、カウンタC10〜C0は11ビットカウンタを構成し、0から2047までの値のビットをアドレス線A10〜A0へ整然と出力する。この”整然と”とは、多数ビットカウンタにおいて一般的であるように、A10が最上位ビットでA0が最下位ビットであるという意味である。しかし、最初のイメージバンドの後は、最下位ビットはSEL=1のカウンタ中にあり、その右側のカウンタが最上位ビットである(C10がC3の”右側”である)。したがって、C10〜C3から構成される28カウンタの最下位ビットから最上位ビットまでがイメージバンド毎に3ビットずつローテートされることになる。前述のように、ブロックの1行を構成する8ビットの組そのものは順番が入れ替わらないので、A2〜A0は変化しない。
【0067】
キャリー入力及び出力がルータブルな(routable)ビットカウンタを持つアドレス発生器と単一のバンドメモリを使用し、ラスター順からブロック順への画素再編成及びブロック順からラスター順への画素再編成のための再編成変換装置について説明した。このような変換装置は、ブロックサイズが8画素幅・8画素高さで画像幅が32ブロックのときに画像中の画素の再編成を行なう場合に用いることができる。
【0068】
この種類(クラス)のアドレス発生器は、それ以外のケースでも同様に用いることができ、例えば、1イメージバンドあたりのブロック数(W)及び画素数で表わしたブロックの高さ(M)が共通のベース数(P)の整数乗であるような画像処理システムすべてに、同様に用いることができる。W=PN、M=PQ、ブロック幅がB画素が一般的ケースである。図5乃至図7の装置はB,P,N,Qの様々な値に合うよう容易に変形できる。例えば一般的ケースでは、カウンタ211は、モジュロBのカウンタであってCARRYB信号をカウンタユニット230りE1入力へ出力し、カウンタユニット230はモジュロPのカウンタであって、N+Q個のカウンタユニット230が必要であり、また、レジスタ212は状態が遷移するたびにQセル分だけローテートするように設定される。ある実施例においては、Qがプログラム可能であるため、レジスタ212を様々なブロックサイズの場合に使用できる。
【0069】
図5乃至図7に示した実施例を、イメージバンド幅(ブロック数)及びブロック高さが共通のベース整数のべきである場合について説明したが、本実施例は第1の実施例と同じパラメータの場合、すなわち、イメージバンド幅がブロック高さのべきである(これはQ=1と等価である)場合にも正常に動作する。さらに、第1実施例は、イメージバンド幅がブロック高さのべきではなく、共通のベース整数のべきである(Q>1,すなわちクラス2の例)場合に適合するように変形することも可能である。このような変形をするには、循環型シフトレジスタを、状態マシン及び同じルーティング選択値の組を得るに十分な個数のマルチプレクサと置き換える。例えば、キャリールーターが上記例のようにルーティング選択値S10〜S3を持つならば、図5乃至図7に示した循環レジスタ又は同等のマルチプレクサと状態マシンによって同じ値を得ることができる。
【0070】
<クラス3:B×M画素/ブロック;W=M×N>
このアドレス発生器の第3実施例は、ブロック数で表わした画像幅Wがある整数で、B×M×Nのアドレスメモリが使用されている再編成変換装置に用いられる。かかる再編成変換装置においは、WはN以下である。ここで、B=8、M=8、W=80、N=128(ブロックサイズが8×8画素、イメージバンド幅が80ブロックつまり640画素、8×8×128つまり8192のアドレスメモリ)であるラスターからブロックへの再編成変換装置に使用するためのアドレス発生器の具体例について、図8及び図9を参照して説明する。
【0071】
図8は、幅が80ブロックで1ブロックあたり8×8画素のイメージバンド中の画素の再編成のために変換装置60で使用できるアドレス発生器のブロック図である。アドレス発生器250は、アドレス発生器200と類似しているが、各カウンタユニット258(カウンタ230に類似のもので詳細は図9に示されている)へ与えられるCARRY640信号が追加されている。CARRY640信号はクロック分周器262によって得られる。クロック分周器262は、8クロック毎にC2より出力されるCARRY8信号を受け取って、CARRY8が80回入力する毎にCARRY640キャリー出力にキャリーを出力する。クロック分周器262の分周数は80、すなわちブロック数で表わした画像幅であるが、画像幅が異なれば、それに応じて分周数も変わる。ある実施例では、クロック分周器262はプログラマブル分周器である。
【0072】
この例においては、メモリ252は最低、1イメージバンドについて、80ブロック/バンド×8行/ブロック×8画素/行すなわち512画素を保持するに足る大きさでなければならない。一般的にメモリは2のべきのサイズのものしか得られないので、M及びBが2のべきの時はNも2のべきである。上記例で、5120画素を保持するために8192サイズのメモリが一般に用いられることになろう。
【0073】
メモリ252のアドレス線の取扱いを簡単にするため、各1024ロケーション中の初めの640ロケーションだけが使用される。メモリ252がこのパターンで使用される場合、リセット後に最初のイメージバンドのために出力されるアドレスシーケンスは0,1,2...639,1024,1025...1663,2048...8192となろう。この例では、アレイ254中のカウンタユニットのキャリー入力とキャリー出力をA12−A11−...−A4−A3−A2−A1−A0のパターンで接続することにより、単に0...8192(213=8192)のシーケンスを出力するように構成されている。このようにカウンタユニットを構成した場合、スキッピング(skipping)シーケンスを得るためにアレイ254に必要とされる唯一の変更点は、1024画素の各セグメントの640番目の画素まで達した時に当該セグメントの最後までスキップするための手段である。アドレス発生器200(図5)の場合と同様、2番目以降のイメージバンドに対するアドレスシーケンスは、レジスタ260中の単一の”1”をローテートすることによって、すなわち、カウンタC12〜C3の”重み”をローテートすることによって得られる。
【0074】
リセット後の最初のイメージバンドに関しては、キャリーレジスタ260の内容は”00 0000 0001”(スペースは読み易くするために挿入した)であり、また、カウンタC12〜C3は通常の重みを持ち、C12が最上位、C3が最下位である(カウンタ211 A2〜A0は例外で、その重みは変化せず、また、常にC12〜C3のどの重みよりも低い)。したがって、640画素がクロックインされた後、カウンタC12〜C0の内容は”00 0101 0000 000”(十進の640)となり、CARRY640信号が付勢される。なお、アレイ254中のカウンタ出力の値を監視して640カウントの終了を判定する論理によって、クロック分周器262の役割をさせてもよい。CARRY640信号が付勢された時に、カウンタC12〜C0の値が”00 1000 0000 000”(1024)に変更される。同じように、1664のカウント値に達した時に、カウント値は2048(”01 0000 0000 000”に変更される。スキッピング論理は各1024画素セグメント毎に動作し、キャリー信号を1024ビットカウンタへ送って、ビット512からビット8までの全ビットをクリアする。ビット4,ビット2,ビット1(A2〜A0)は、この時点では0であるので、クリアされる必要がない。
【0075】
上記例においては、画像幅が80ブロックの場合、カウンタC3,C4,C5,C6,C8も、この時点で常に0になるけれどもクリアされる。というのは、これらカウンタは、画像幅が80でない一般的なケースでは0にならないからである。
【0076】
図9はアレイ254中の”i”番目のカウンタユニット258を詳細に示すブロック図である。カウンタユニット258の入力SEL,E0,E1及び出力CX,CYの作用はカウンタユニット230(図7)と同様であるが、2入力のANDゲート270,272、3入力のNORゲート274及びORゲート276からなる論理が追加されている。カウンタユニット258において、マルチプレクサ236の出力は、カウンタ232のカウント入力へそのまま入力するのではなく、ORゲート276に入力する。ORゲート276のもう一つの入力はANDゲート270の出力に接続される。ANDゲート270はCARRY640信号とレジスタ260からのSA入力との”AND”をとる。ANDゲート272の出力はカウンタ232のクリア入力に接続されるが、同出力はCARRY640信号とNORゲート274の出力とを”AND”したものである。NORゲート274の入力は、レジスタ260の3つの出力SA,SB,SCである(SAはANDゲート270の入力でもある)。実際の出力SA,SB,SCはS12〜S3より選ばれ、カウンタユニット毎に異なる。第4表は、レジスタ260のどの出力が各カウンタC12〜C3のSA,SB,SC入力になるかを示している。
【0077】
第4表に示した接続によって、カウンタアレイ254(図8)は、カウンタの重みがどのようにローテートされていようと関係なく、ある1024画素のセグメント中の640画素をカウントした後に同セグメントの最後へスキップするようになる。例えば、S3=1(状態0)のときには、C12〜C3のNORゲートの入力は、C10(SA=1),C11(SB=1)及びC12(SC=1)を除き、すべて0になる。C9〜C3のすべてのNORゲートの入力が0であるのでC9〜C3のNORゲートの出力は1であり、その結果、CARRY640信号が付勢された時にカウンタ232がクリアされる(0に設定される)。カウンタC12〜C10の内容は変化しない。ただし、C10に関してはSA=1であるため、C10のカウント入力においてはキャリー信号が付勢される。要するに、クリアと桁上がりの組み合わせによって、ビット512からビット1をゼロクリアしてビット1024をインクリメントする。
【0078】
ビットの重みがローテートされた時、カウンタユニット258の論理はそのビット重みに従う。例えば、C7が最上位ビット(4096位のビット)でC8が最下位ビット(8位のビット、A2〜A0は常に4,2及び1の位のビットである)の時には、C6は2048位のビット、C5は1024位のビット、C4は512位のビット、C3は256位のビット、C12は128位のビット、C11は64位のビット、C10は32位のビット、C9は32位のビットである。この状態において、レジスタ260は、”00 0010 0000”を保持するので、セレクト線S8は1、他のラインはすべて0である。第4表によれば、この状態において各カウンタユニット258のSA,SB,SC入力は、C7
(SC=1)、C6(SB=1)、C5(SA=1)すなわち4096位、2048位,1024位のビットを除いて、0である。ANDゲート272,274及びNORゲート274は、期待どおり作用し、C7〜C5以外の全てをクリアしてC5へキャリーを送る。
【0079】
イメージバンド幅がブロック高さの倍数、例えば8倍の場合のための画素再編成変換装置について説明したが、この変換装置の様々な変形は当業者には明かであろう。例えば、他のブロックサイズも可能であり、一例を挙げれば、16×16画素のブロックも可能であり、そのためには1つのビットカウンタ211をビットカウンタA2〜A0に追加し、1つのカウンタユニット258をアレイ254に追加し、1つのセルをレジスタ260(図8)に追加する。クロック分周器262の分周比を変えることによって、他の画像幅も可能である。プログラマブル分周器を使用することにより、同一回路で複数種類の幅が可能になる。幅が固定の回路に構成するのであれば、メモリ252の利用されないメモリセル(すなわち、幅が640の場合、640〜1023,1664〜2047等々のメモリセル)は用意する必要がない。
【0080】
<他の実施例:ROMベースのアドレス発生器>
図10はROMをアドレス発生器として使用した、再編集変換装置の他の実施例を示す。この変換装置300は1つのバンドメモリ302を有し、このバンドメモリ302は、入力バス304より入力画素を受け取り、出力バス306に出力画素を出力する。バンドメモリ302に対して、リードオンリーメモリ(ROM)308によりアドレスバス310を介しアドレスが与えられる。カウンタ312は、クロック線314上の画素クロック信号によってクロッキングされ、リセット線316上の信号によってリセットされる。カウンタ312はバス318を介しROM308のアドレス入力と接続される。変換装置60(図2)の場合と同様、バンドメモリ302から出力すべき画素が読み出される前に入力画素が上書きされないようにするため、リード/ライトコントローラ320が設けられている。
【0081】
変換装置300をラスターからブロックへの変換装置であるとする。最初に、変換装置300に与えられた入力画素はメモリ302内の連続したロケーションに書き込まれ、この時にカウンタ312は単にクロックサイクル毎に1ずつカウントアップする。この時点では、ROM308内のデータは、ROM308への入力が、ROM308のメモリ302への出力でもある、というようなものである(状態0)。しかし、メモリ302が一杯になった後は、入力画素の上書きはもっと複雑である。
【0082】
メモリ302が1イメージバンド分の画素で一杯になった直後から、画素をブロック順に出力できる。この新しい状態、つまり状態1では、画素は入力時とは異なった順序で出力されるので、出力した画素のメモリロケーションを、入力する画素を格納するため再度使用しなければならない。その結果、2番目のイメージバンドの入力画素は最初のイメージバンドとは違うパターンで格納されることになる。
【0083】
格納された画素を新しい順序で正しく出力させるために必要なアドレスシーケンスはROM308内に格納されており、カウンタ312のカウントアップ動作によって出力される。カウンタ312は、上記例では、最初のイメージバンドの最後で32767までカウントし(状態0)、第2イメージバンドの最初の画素でカウント値は32768になる(状態1)。したがって、第2イメージバンドのための新しい画素順序はROM308内の32768より始まるロケーションに格納されている。ある実施例では、ROM308の内容は、前述のアドレス発生器中のいずれかの動作をシミュレーションすることによって生成される。
【0084】
当然、場合によっては、例えば8×8ブロックの場合、入力アドレス及び出力アドレスの最初の3ビットは同一であるので、この3ビットはROM308に格納せず、カウンタ312から直接、メモリ302へ送ることができ、こうすることで1状態あたり4096個のROMロケーションしか必要でなくなる。
【0085】
<カラー及びサブサンプリング(subsampling)>
図11はカラー画素前圧縮処理システム380内のラスターからブロックへの変換装置のブロック図である。この処理システム380は、その格別に必要とするときに画素を処理するための多重化・サブサンプリング論理382、3個の先入れ・先出し(FIFO)メモリ384、3個の再編成メモリ386、及び、アドレス発生器388からなる。3つのラスター順の入力画素ストリーム(Y,
Cr,Cb)が論理382に入力する。FIFOメモリ384は、論理382の出力に接続され、必要な場合に論理382より出力される3つの出力画素ストリーム(Y,Cr,Cb)を成分ブロックにバッファする。アドレス発生器64(Fig.2)の場合と同様、アドレス発生器388はクロック入力、リセット入力、アドレス出力を有する。アドレス発生器388のアドレス出力は、3個の再編成メモリ386のアドレス入力にアドレスバス390により接続され、同バスは各再編成メモリ386に同一のアドレスを供給する。
【0086】
カラー画素処理動作においては、変換装置380は、クロック毎に、画素の3つのカラー成分を論理382に読み込んで処理し、処理後の成分をメモリ386に格納する。これらの処理後の成分はラスター順にメモリ386に書き込まれ、ある遅延時間後、アドレス発生器388の働きにより、画素はブロック順にメモリ386より論理382に読み出される。論理382は、その画素を、恐らくさらに処理してからFIFOメモリ384へ出力する。論理382は、サブサンプルされたカラー成分に関する問題に対処するために設けられている。
【0087】
アドレス発生器388の動作はアドレス発生器64の動作と同じである。すなわち、メモリの各ロケーションは、ある状態ではあるシーケンスでアドレス指定され、次の状態では次のシーケンスでアドレス指定されるが、各状態で全てのアドレスが出力され、かつ状態は最終的に繰り返しになる。アドレス発生器388とアドレス発生器64との一つの相違点は、アドレス発生器388の単一の出力によって3個の再編集メモリ386を並列に制御することである。実質的には、変換装置60は、1クロックあたり3つの入力カラー画素を1つの値としてメモリ62に格納するならば、メモリ386及びアドレス発生器388の組み合わせと等価である。
【0088】
論理382は、サブサンプリング・プロトコルに従ってカラー成分をサブサンプリングするような、ある種の実施例では、多少複雑である。例えば、2:1:1サブサンプリング用JPEG規格では、2個のカラー画素が、各カラー画素の輝度成分と、両カラー画素に適用可能な2つの色差成分とにより表現される。2:1:1サブサンプリングの場合、Cr及びCb用のメモリ386を、輝度成分メモリの半分の大きさにすることができ、アドレス発生器388の最下位ビット
(A0)は使用されない。
【0089】
FIFOメモリ384は、用途によって特に必要となった場合に、3つの成分ストリームの相互で画素の順序を入れ替えるために設けられている。ある用途では、論理382は画素をブロック順に提供し、各画素クロックサイクル毎に1画素の3成分を出力するが、画像シンク(最終的な画像のユーザ/受取り手である装置又はプロセス)では、ブロック中の画素の全ての第1成分を含む1ブロック分を受取り、続いて1ブロック分の第2成分を受け取り、最後に1ブロック分の第3成分を受け取ることを期待する。FIFOメモリ384は、このような順序を可能にする。例えば、サブサンプリングなしで、各画素が1つの輝度成分、赤−緑の差の色差(Cr)成分、青−緑の差の色差(Cb)成分からなるものとする。論理382は、各画素クロック毎に、1画素の輝度成分、Cr成分、及びCb成分をブロック順に出力する。FIFOメモリ384は、これらの成分を、最初に1ブロック分の輝度成分が出力され、続いて1ブロック分のCr成分が出力され、最後に1ブロック分のCb成分が出力されるようにバッファリングする。変換装置380は、1クロックあたり1画素を処理するのでなく、成分クロックの1サイクルあたりに1成分を処理することも可能である。かかるシステムにおいても、アドレス発生器は依然として画素クロックによってクロッキングされることになろう。1画素の各成分を同時に読み込んでもよいし(並列入力)、1度に一つずつ読み込んでもよい(直列入力)。
【0090】
<デジタル画像圧縮/伸長システム>
図12(a)は、画素をラスター順からブロック順へ並べ替えてから圧縮するデジタル画像圧縮システム400のブロック図である。画像圧縮システム400は、デジタル画像ソース402、ラスターからブロックへの再編成変換装置404、1ブロック単位のデータ圧縮装置406からなる。ブロック数で表わした画像幅に応じて、アドレス発生器100(図3)、同200(図5)、同250(図8)、同300(図10)、あるいは同380(図11)を変換装置404用のアドレス発生器として使用することができる。変換装置404は変換装置60(図2)と同様でよい。デジタル画像ソース402は画素をラスター順に供給するが、データ圧縮装置402は画素をブロック順に処理する。画素の再編成をするために、変換装置404がデジタル画像ソース402とデータ圧縮装置406の間に設けられている。データ圧縮装置406は画像を符号化データとして出力するが、そのフォーマットはH.26(CCITT,Specialists Group onCoding for Visual Telephony,Recommendation H.261)、JPEG、MPEG、初期HDTV規格等、様々である。
【0091】
図12(b)はデジタル画像伸長システム420のブロック図である。この画像伸長システム420は、伸長後に画素をブロック順からラスター順に並べ替えるもので、基本的に、図12(a)の画像圧縮システムを逆にしたものである。符号化された(ブロック圧縮された)画像データは画像伸長システム420のブロック単位伸長装置422に与えられ、1ブロックずつブロックからラスターへの変換装置424へ送られ、この変換装置424より画素がラスター順にデジタル画像シンク426へ出力される。伸長装置422に供給される符号化データは、データ圧縮装置406より出力された符号化データであってもよい。画像シンク426は、実施例によって様々で、記憶装置、ディスプレイ装置、あるいはラスター順画素ストリームを用いる他のプロセスである。
【0092】
図12(c)は他の実施例のデジタル画像圧縮システム440のブロック図である。この画像圧縮システム440は画像ソース442から画素をラスター順に受け取り、画像を表わすデータの符号化したブロックを出力する。圧縮システム440は画像ソース442、オプションのカラー変換器444、ラスタへからブロックへの変換装置446、ブロックベースの変換器448、エントロピー符号器450からなる。
【0093】
画像ソース442はデジタル画像をラスター順の画素ストリームとして出力する。画像ソース442の出力はカラー変換器444(これが使用される場合)の入力に接続される。このカラー変換器444は、圧縮システムの設計上必要な場合、各画素のカラー座標をあるカラー空間から他のカラー空間へ変換する。例えば、画像ソース442より供給される画素はカラー成分がRGBカラー空間上の座標であるが、圧縮システム440の出力に、YUV(Y,Cr,Cb)カラー空間上のカラー成分あるいはCYMKカラー空間上のカラー成分を持つ画素が必要であるとすると、カラー変換器444は1画素ずつ必要な変換を行なう。画像がモノクロ画像であれば、カラー変換器444は通常必要でない。カラー変換器444は画像をラスター順の画素群としてラスターからブロックへの変換装置446へ送り、これは画素をブロック順にブロックベースの変換器448へ送る。
【0094】
ブロックベース変換器448は、ある実施例では離散的コサイン変換装置であるが、これはブロック中の画素の低い空間周波数成分が高い空間周波数成分より多い画像を圧縮する場合に有効であるが、その他の用途でも同様に有効である。ブロックベース変換器448は変換したブロックをエントロピー符号器450へ出力し、このエントロピー符号器450はこの変換後データを、一般的なエントロピー符号化法によって符号化データブロックに符号化する。
【0095】
図12(d)はデジタル画像伸長システム460のブロック図である。この画像伸長システム460は、符号化データのブロックをラスター順に出力される画素ストリームへデコードするもので、圧縮システム440の逆システムとして使用できる。伸長システム460は、エントロピー復号器462、ブロックベースの変換器464、画像シンク470からなる。
【0096】
画像データは画像伸長システム460に対して符号化画像データブロックとして与えられるが、これは普通、圧縮システム440のようなシステムにより供給される。この符号化画像ブロックはエントロピー復号器462に入力され、同復号器はエントロピー符号器450の逆処理を行なって画像ブロックをブロックベース変換器464へ出力する。ブロックベース変換器464はブロックベース変換器448の逆変換を行ない、画像の画素をブロック順にブロックからラスターへの変換装置466に対し出力する。ブロックからラスターへの変換装置466は画像の画素をブロック順からラスター順へ並べ替え、画素をカラー変換器468へ出力する。明らかなように、カラー変換器486はオプションであり、伸長システムの情報ストリーム中のブロックからラスターへの変換装置466の前に置くことできる。カラー変換器468の出力は、それが利用されるならば、画像シンク470へ供給される。この画像シンク470は、記憶装置、ディスプレイ装置、あるいはラスター順の画素ストリームを使用する他のプロセスである。
【0097】
本発明の好適な実施例と、それを実施する最適態様を説明した。以上の記述は説明用であって本発明を限定するものではない。当業者には、本明細書の記述にてらし、本発明の多くの変形が明かになろう。あくまで一例であるが、本発明の変換装置は、非画像用途において、あるストリーム中のデータエレメントを別のストリームに並べ替える必要があり、かつ、メモリが貴重な場合に、使用可能である。さらに、入力及び出力画素ストリームを単一画素のストリームとして述べたが、例えば8画素を同時に受け取るような他のバス構成も可能である。
【0098】
参考のために、クラス1及びクラス2のための上記再編成変換装置をソフトウエアで実現するプログラムの”C”言語ソースコードを次に示す。なお、ここに示したプログラムは、本発明の方法によりモノクロ画像のラスターからブロックへの変換及びブロックからラスターへの変換を行なうためのルーチンのほかに、比較のため、2つのメモリを使用する標準的な(従来の)変換方法のためのルーチンも含んでいる。また、画像幅は512ブロックと256ブロック、1ブロックは8×8画素となっている。
【0099】
【表1】
【0100】
【表2】
【0101】
【表3】
【0102】
【表4】
【0103】
【表5】
【0104】
【表6】
【0105】
【発明の効果】
以上の説明から明らかなように、請求項1乃至請求項28に定義した本発明によれば、モノクロ画像又はカラー画像に関して、ラスターからブロックへの画素変換又はブロックからラスターへの画素変換を、少ないメモリを用いて効率的に行なうことができる。特に、請求項及びその従属項に記載の発明によれば画素変換のためのハードウエアコストを最小にすることができ、請求項7及びその従属項に記載の発明によればイメージバンド幅の選択自由度を増加させることができ、請求項13及びその従属項に記載の発明によればイメージバンド幅の選択自由度をさらに増加させることができる、等の効果を得られるものである。
【図面の簡単な説明】
【図1】代表的な2バンドメモリ方式の画素再編成変換装置のブロック図である。
【図2】一つのアドレス発生器及び一つのバンドメモリを有する本発明による再編成変換装置の一実施例のブロック図である。
【図3】キャリールーターを用いたアドレス発生器の第1実施例のブロック図である。
【図4】図3に示したアドレス発生器に用いられるキャリールーターのブロック図である。
【図5】一つのキャリーレジスタと一つのカウンタアレイを用いたアドレス発生器の第2実施例のブロック図である。
【図6】図5に示したキャリーレジスタのブロック図である。
【図7】図5に示したカウンタアレイ中の一つのカウンタを、関連した補助回路を含めて示すブロック図である。
【図8】一つのキャリーレジスタと一つのカウンタアレイを用いたアドレス発生器の第3実施例のブロック図である。
【図9】図8に示したカウンタアレイ中の一つのカウンタを、関連した補助回路を含めて示すブロック図である。
【図10】アドレス発生ROMを含む本発明による再編成変換装置の他の実施例のブロック図である。
【図11】カラー成分を含む画素を処理するための本発明による再編成変換装置の他の実施例のブロック図である。
【図12】(a)圧縮前にラスター順からブロック順へ画素を並べ替えるデジタル画像圧縮システムのブロック図である。
(b)伸長後にブロック順からラスター順へ画素を並べ替えるデジタル画像伸長システムのブロック図である。
(c)はラスター順からブロック順へ画素を並べ替えてからブロックベースの変換を画素に施すデジタル画像圧縮システムのブロック図である。
(d)はブロックベースの変換を画素に施した後にブロック順からラスター順へ画素を並べ替えるデジタル画像伸長システムのブロック図である。
【符号の説明】
60 再編成変換装置
62 バンドメモリ
64 アドレス発生器
66 リード/ライトコントローラ
70 アドレスバス
100 アドレス発生器
102 ビットカウンタ
104 モジュロ8カウンタ
106 キャリールーター
120 マルチプレクサアレイ
122 状態マシン
124 マルチプレクサ
200 アドレス発生器
210 カウンタアレイ
211 カウンタ
212 キャリールーティングレジスタ
220 ORゲート
222 データラッチ
224 マルチプレクサ
226,228 インバータ
230 カウンタユニット
232 カウンタ
236 マルチプレクサ
239 ANDゲート
250 アドレス発生器
252 8192画素メモリ
254 カウンタアレイ
258 カウンタユニット
260 キャリーレジスタ
261 ORゲート
262 クロック分周器
270,272 ANDゲート
274 NORゲート
276 ORゲート
300 再編成変換装置
302 バンドメモリ
308 アドレス発生ROM
310 アドレスバス
312 カウンタ
320 リード/ライトコントローラ
380 再編成変換装置
382 多重化・サブサンプリング論理
384 FIFOメモリ
386 再編成メモリ
388 アドレス発生器
400 デジタル画像圧縮システム
402 デジタル画像ソース
404 再編成変換装置
406 ブロック単位のデータ圧縮装置
420 デジタル画像伸長システム
422 ブロック単位伸長装置
424 再編成変換装置
426 デジタル画像シンク
440 デジタル画像圧縮システム
442 画像ソース
444 カラー変換器
446 再編成変換装置
448 ブロックベース変換器
450 エントロピー符号器
460 デジタル画像伸長システム
462 エントロピー復号器
464 ブロックベース変換器
466 再編成変換装置
468 カラー変換器
470 画像シンク
Claims (28)
- 第1の順序で入力に与えられる、デジタルのイメージバンドを表わす第1の画素ストリームを受け取って、該デジタルのイメージバンドを表わす第2のストリームを出力に第2の順序で出力するための再編成変換装置であり、ここにおいて、該第1の順序及び該第2の順序はラスター順とブロック順より選ばれるものであって同一順序ではなく、該ブロック順におけるブロックはB画素の幅及びM画素の高さを持つ2次元画素アレイであり、該イメージバンドは1列に並んだM個の該ブロックであり、WはMの整数N乗であり、B,M,Nは正整数であって、
少なくともW×B×M画素分の記憶容量を持ち、画素入力、画素出力、アドレス入力、及び、該アドレス入力上のアドレスにより指定されたメモリロケーションより画素を取り出して、該取り出した画素を出力し、かつ、該画素入力からの画素を該アドレスにより指定された該メモリロケーションに格納するための手段を有するバンドメモリと、
該第1ストリーム中の画素に同期した画素クロックに接続されるとともに、カウント出力、キャリー入力及びキャリー出力を有するモジュロBカウンタと、
それぞれカウント出力、キャリー入力及びキャリー出力を有するN+1個のモジュロMカウンタのアレイと、
該モジュロMカウンタ及び該モジュロBカウンタの各カウント出力を該バンドメモリの該アドレス入力に接続するためのアドレスバスと、
該モジュロMカウンタのアレイに接続されかつ該モジュロBカウンタのキャリー出力に接続された、該モジュロMカウンタ及び該モジュロBカウンタの該キャリー出力を該モジュロMカウンタの選択されたキャリー入力に接続するためのキャリー信号ルーターとを具備し、ここにおいて、該モジュロMカウンタによって生成されるアドレスシーケンスが第1の状態では該第1の順序にアドレスを連続させ、該第1の状態に続く第2の状態では該第2の順序にアドレスを連続させるように、キャリー入力が選択されることによって、1つのイメージバンドの画素を、該第1の状態において該第1の順序で該バンドメモリに読み込ませて、それを、次のイメージバンドの画素を該第1の順序で読み込ませつつ、該第2の順序で出力させる再編成変換装置。 - 請求項1記載の再編成変換装置において、該キャリー信号ルーターは、
該モジュロMカウンタ及び該モジュロBカウンタの該キャリー出力を受け取り、選択したキャリー出力を該モジュロMカウンタのキャリー入力及び状態クロックとして出力するよう接続された複数のマルチプレクサを具備し、該複数のマルチプレクサの該選択は、該複数のマルチプレクサの選択入力に入力された状態値によって決まり、かつ
該状態クロックによってクロッキングされ、かつ該選択入力に接続された、該状態値を提供するための状態マシンを具備する、ことを特徴とする再編成変換装置。 - 請求項2記載の再編成変換装置において、該状態マシンは、該第1順序がラスター順で該第2順序が該ブロック順の時にはある方向に、該第1順序が該ブロック順で該第2順序が該ラスター順の時にはその逆の方向に、状態をカウントする、ことを特徴とする再編成変換装置。
- 請求項1記載の再編成変換装置において、BとMとが等しくないことを特徴とする再編成変換装置。
- 請求項1記載の再編成変換装置において、該イメージバンド中の各画素は複数のカラー成分からなることを特徴とする再編成変換装置。
- 請求項5記載の再編成変換装置において、該複数のカラー成分は赤−緑−青(RGB)カラー空間上の座標であることを特徴とする再編成変換装置。
- 第1の順序で入力に与えられる、デジタルのイメージバンドを表わす第1の画素ストリームを受け取って、該デジタルのイメージバンドを表わす第2のストリームを出力に第2の順序で出力するための再編成変換装置であり、ここにおいて、該第1の順序及び該第2の順序はラスター順とブロック順より選ばれるものであって同一順序ではなく、該ブロック順におけるブロックはB画素の幅及びM画素の高さを持つ2次元画素アレイであり、該イメージバンドは1列に並んだW個の該ブロックであり、Wはベース整数Pの整数N乗であり、Mは該ベース整数Pの整数Q乗であり、B,M,N,P,Q,Wは正整数であって、
少なくともW×B×M画素分の記憶容量を持ち、画素入力、画素出力、アドレス入力、及び、該アドレス入力上のアドレスにより指定されたメモリロケーションより画素を取り出して、該取り出した画素を出力し、かつ、該画素入力からの画素を該アドレスにより指定された該メモリロケーションに格納するための手段を有するバンドメモリと、
該第1ストリーム中の画素に同期した画素クロックと接続されるとともに、カウント出力、キャリー入力及びキャリー出力を有するモジュロBカウンタと、
N+Q個のモジュロPカウンタの循環接続のアレイとを具備し、各モジュロPカウンタはカウント出力、次に低い順位のモジュロPカウンタに相手先変更可能に接続されたキャリー入力、及び、次に高い順位のモジュロPカウンタに相手先変更可能に接続されたキャリー出力を有し、かつ、
該モジュロPカウンタ及び該モジュロBカウンタの各カウント出力を該バンドメモリの該アドレス入力に接続するためのアドレスバスと、
該モジュロPカウンタのアレイに接続されかつ該モジュロBカウンタのあるキャリー出力に接続されたキャリー信号ルーターとを具備し、
該キャリー信号ルーターは、
a)現在の状態を指示するための手段、
b)該モジュロBカウンタの該キャリー出力を、該現在状態に応じて選択されたモジュロPカウンタの該キャリー入力へ送るための手段、及び
c)1つのイメージバンドが完全に該バンドメモリに読み込まれた時に該状態マシンを次の状態へ移行させるための手段を具備する、ことによって、該現在の状態において該第1の順序で該バンドメモリに読み込まれた1つのイメージバンドの画素が、該次の状態において該第2の順序で出力され、同時に次のイメージバンドの画素が該次の状態において該第1の順序で読み込まれるようなアドレスシーケンスを該バンドメモリの該アドレス入力に生成する、再編成変換装置。 - 請求項7記載の再編成変換装置において、該状態マシンを該次の状態に移行させるための該手段は、該選択されたモジュロPカウンタの次に低い順位に循環接続されたモジュロPカウンタの該キャリー出力に応答して該状態マシンを該次の状態へ移行させる、ことを特徴とする再編成変換装置。
- 請求項7記載の再編成変換装置において、現在の状態を指示するための該手段はN+Q個のセルからなる循環レジスタであり、該セル中の1つが特別な値を保持し、該選択されたモジュロPカウンタは該特別値を保持した該セルに対応したモジュロPカウンタである、ことを特徴とする再編成変換装置。
- 請求項9記載の再編成変換装置において、該特別値は1であり、該N+1個のセル中のその他の値は0である、ことを特徴とする再編成変換装置。
- 請求項10記載の再編成変換装置において、該循環レジスタはさらに、ある現在状態から次の状態への状態遷移毎に該循環レジスタの内容をQセル分ローテートさせるための手段を具備する、ことを特徴とする再編成変換装置。
- 請求項11記載の再編成変換装置において、該循環レジスタはさらに、該第1の順序がラスター順でかつ該第2の順序がブロック順である時に該循環レジスタの内容をQセル分、ある方向へローテートさせ、該第1の順序がブロック順でかつ該第2の順序がラスター順である時に該循環レジスタの内容をQセル分、逆の方向へローテートさせるための手段を具備する、ことを特徴とする再編成変換装置。
- 第1の順序で入力に与えられる、デジタルのイメージバンドを表わす第1の画素ストリームを受け取って、該デジタルのイメージバンドを表わす第2のストリームを出力に第2の順序で出力するための再編成変換装置であり、ここにおいて、該第1の順序及び該第2の順序はラスター順とブロック順より選ばれるものであって同一順序ではなく、該ブロック順におけるブロックはB画素の幅及びM画素の高さを持つ2次元画素アレイであり、該イメージバンドは1列に並んだW個の該ブロックであり、Wはベース整数Pの整数N乗より小さい整数であり、Mは該ベース整数Pの整数Q乗であり、B,M,N,P,Q,Wは正整数であって、
少なくともW×B×M画素分の記憶容量を持ち、画素入力、画素出力、アドレス入力、及び、該アドレス入力上のアドレスにより指定されたメモリロケーションより画素を取り出して、該取り出した画素を出力し、かつ、該画素入力からの画素を該アドレスにより指定された該メモリロケーションに格納するための手段を有するバンドメモリと、
該第1ストリーム中の画素に同期した画素クロックと接続されるとともに、カウント出力、キャリー入力及びキャリー出力を有するモジュロBカウンタと、
N+Q個のモジュロPカウンタの循環接続のアレイとを具備し、各モジュロPカウンタはカウント出力、次に低い順位のモジュロPカウンタに相手先変更可能に接続されたキャリー入力、及び、次に高い順位のモジュロPカウンタに相手先変更可能に接続されたキャリー出力を有し、かつ
該モジュロPカウンタ及び該モジュロBカウンタの各カウント出力を該バンドメモリの該アドレス入力に接続するためのアドレスバスと、
該モジュロPカウンタのアレイに接続されかつ該モジュロBカウンタのあるキャリー出力に接続されたキャリー信号ルーターとを具備し、
該キャリー信号ルーターは、
a) 現在の状態を指示するための手段;
b) 該モジュロBカウンタの該キャリー出力を、該現在状態に応じて選択されたモジュロPカウンタの該キャリー入力へ送るための手段、及び
c) 1つのイメージバンドが完全に該バンドメモリに読み込まれた時に該状態マシンを次の状態へ移行させるための手段、を具備し、
かつ、
該画素クロックに同期し、該画素クロックのW×Bサイクル毎に1クロックサイクルを出力するクロック分周器と、
該クロック分周器に同期するとともに該N+Q個のモジュロPカウンタの循環接続アレイに接続された、該クロック分周器の各クロックサイクルで、該モジュロPカウンタのカウント値を、PNの次の最高の倍数へ調整するためのスキップ手段とを具備することによって、
該現在の状態において該第1の順序で該バンドメモリに読み込まれた1つのイメージバンドのW×M個の画素が、該次の状態において該第2の順序で出力され、同時に次のイメージバンドの画素が該次の状態において該第1の順序で読み込まれるようなアドレスシーケンスを該バンドメモリの該アドレス入力に生成する、再編成変換装置。 - 請求項13記載の再編成変換装置において、該バンドメモリは少なくともPN×B×M画素分の記憶容量を有する、ことを特徴とする再編成変換装置。
- 請求項13記載の再編成変換装置において、該クロック分周器は、該モジュロPカウンタの該キャリー出力に接続されたクロック入力を持つ、W分の1の分周器である、ことを特徴とする再編成変換装置。
- 請求項13記載の再編成変換装置において、該クロック分周器は、該画素クロックに接続されたクロック入力を持ち、W×B分の1に分周する分周器である、ことを特徴とする再編成変換装置。
- 請求項13記載の再編成変換装置において、該状態マシンを該次の状態に移行させるための該手段は、該選択されたモジュロPカウンタの次に低い順位に循環接続されたモジュロPカウンタの該キャリー出力に応答して該状態マシンを該次の状態へ移行させる、ことを特徴とする再編成変換装置。
- 請求項13記載の再編成変換装置において、現在の状態を指示するための該手段はN+Q個のセルからなる循環レジスタであり、該セル中の1つが特別な値を保持し、該選択されたモジュロPカウンタは該特別値を保持した該セルに対応したモジュロPカウンタである、ことを特徴とする再編成変換装置。
- 請求項18記載の再編成変換装置において、該循環レジスタはさらに、ある現在状態から次の状態への状態遷移毎に該循環レジスタの内容をQセル分ローテートさせるための手段を具備する、ことを特徴とする再編成変換装置。
- 第1の順序で入力に与えられる、デジタルのイメージバンドを表わす第1の画素ストリームを受け取って、該デジタルのイメージバンドを表わす第2のストリームを出力に第2の順序で出力するための再編成変換装置であり、ここにおいて、該第1の順序及び該第2の順序はラスター順とブロック順より選ばれるものであって同一順序ではなく、該ブロック順におけるブロックはB画素の幅及びM画素の高さを持つ2次元画素アレイであり、該イメージバンドは1列に並んだW個の該ブロックであり、かつ、B,M,Wは正整数であって、
X=W×Mとして、少なくともX×B画素分の記憶容量を持ち、画素入力、画素出力、アドレス入力、及び、該アドレス入力上のアドレスにより指定されたメモリロケーションより画素を取り出して、該取り出した画素を出力し、かつ、該画素入力からの画素を該アドレスにより指定された該メモリロケーションに格納するための手段を有するバンドメモリと、
該第1ストリーム中の画素に同期した画素クロックと接続されるとともに、カウント出力、キャリー入力及びキャリー出力を有するモジュロBカウンタと、
該モジュロBカウンタのキャリー出力に接続されたシーケンシャルカウンタと、
アドレス入力が該シーケンシャルカウンタの出力に接続され、かつデータ出力が該バンドメモリの該アドレス入力に接続されたリードオンリーメモリ(ROM)とを具備し、ここにおいて、該ROMは複数の画像セグメントを順に格納し、1つの画像セグメントはX個のROMロケーションであって、X値はそれぞれ、ある画像セグメントより第1の順序で読み出される第1の値系列と、その直後の画像セグメントより第2の順序で読み出される第2の値系列とが同一系列となるように順序付けられている、再編成変換装置。 - ラスター順に入力に与えられる、デジタル画像を表わす入力画素ストリームを受け取るブロックベース画像圧縮装置であって、
少なくとも該デジタル画像の1つのイメージバンド分の記憶容量を持ち、画素入力、画素出力、アドレス入力、及び、該アドレス入力上のアドレスにより指定されたメモリロケーションより画素を取り出して、該取り出した画素を出力し、かつ、該画素入力からの画素を該アドレスにより指定された該メモリロケーションに格納するための手段を有するバンドメモリを具備し、ここにおいて、該イメージバンドは、M画素の高さ及びW×B画素の幅を持つ2次元画素アレイであり、Bは画素数で表わしたブロックの幅であり、かつ、Wは該イメージバンド中のブロック数であり、
かつ、
該画像圧縮装置の入力で受け取られる画素に同期し画素クロックと接続されるとともに、カウント出力、キャリー入力及びキャリー出力を有するモジュロBカウンタと、
モジュロW×Mでカウントし、カウント値をカウント出力より出力するアドレスカウンタと、
該アドレスカウンタ及び該モジュロBカウンタの各カウント出力を該バンドメモリの該アドレス入力に接続するためのアドレスバスと、
該アドレスカウンタの内部キャリー出力及び該モジュロBカウンタのキャリー出力に接続され、該キャリー出力を該アドレスカウンタの選択された内部キャリー入力に接続するためのキャリー信号ルーターとを具備し、ここにおいて、第1のイメージバンドと第2のイメージバンドのためのアドレスシーケンスがラスターからブロックへ順序つける関係であり、該第2のイメージバンドと第3のイメージバンドのためのアドレスシーケンスもラスターからブロックへ順序付ける関係であるよう、該アドレスカウンタによって生成されるアドレスシーケンスがアドレスを順序付けるように、内部キャリー入力が選択されることによって、各イメージバンドの画素をラスター順に該バンドメモリに読み込ませて、ブロック順に出力させると同時に次のイメージバンドをラスター順に同じアドレスの系列へ読み込み、
かつ、
ブロック順に出力された該イメージバンドの画像ブロックを受け取るよう接続され、該画像ブロックを圧縮して圧縮画像ブロックとするためのブロック圧縮装置を具備する、ブロックベース画像圧縮装置。 - 請求項21記載のブロックベース画像圧縮装置において、該ブロック圧縮装置はさらに、ブロック単位のコサイン変換器及びエントロピー符号器を具備する、ことを特徴とするブロックベース画像圧縮装置。
- デジタル画像を表わす符号化されたブロックの入力ストリームを入力より受け取り、復号された画像の画素をラスター順に出力する画像復号装置であり、ここにおいて、イメージバンドは、M画素の高さ及びW×B画素の幅を持つ2次元の画素アレイからなり、Bはブロック数で表わした1ブロックの幅であり、Wは該イメージバンド中のブロック数であって、
該入力より符号化されたブロックを受け取るよう接続され、各符号化されたブロックを画像ブロックへ復号して、各符号化されたブロックを構成する画素を、各符号化されたブロックが復号された時に出力するためのブロック復号器と、
少なくとも該デジタル画像の1つのイメージバンド分の記憶容量を持ち、画素入力、画素出力、アドレス入力、及び、該アドレス入力上のアドレスにより指定されたメモリロケーションより画素を取り出して、該取り出した画素を出力し、かつ、該画素入力からの画素を該アドレスにより指定された該メモリロケーションに格納するための手段を有するバンドメモリと、
該ブロック復号器より出力される画素に同期した画素クロックと接続されるとともに、カウント出力、キャリー入力及びキャリー出力を有するモジュロBカウンタと、
モジュロW×Mでカウントし、カウント値をカウント出力より出力するアドレスカウンタと、
該アドレスカウンタ及び該モジュロBカウンタの各カウント出力を該バンドメモリの該アドレス入力に接続するためのアドレスバスと、
該アドレスカウンタの内部キャリー出力及び該モジュロBカウンタのキャリー出力に接続され、該キャリー出力を該アドレスカウンタの選択された内部キャリー入力に接続するためのキャリー信号ルーターとを具備し、ここにおいて、第1のイメージバンドと第2のイメージバンドのためのアドレスシーケンスがブロックからラスターへ順序付ける関係であり、該第2のイメージバンドと第3のイメージバンドのためのアドレスシーケンスもブロックからラスターへ順序付ける関係であるよう、該アドレスカウンタによって生成されるアドレスシーケンスがアドレスを順序付けるように、内部キャリー入力が選択されることによって、各イメージバンドの画素をブロック順に該バンドメモリに読み込ませて、ラスター順に出力させると同時に次のイメージバンドをブロック順に同じアドレスの系列へ読み込む、画像復号装置。 - 請求項23の画像復号装置において、該ブロック復号器はさらにエントロピー復号器及びブロック単位の逆コサイン変換装置を具備する、ことを特徴とする画像復号装置。
- 再編成変換装置によって第1の画素順序で受け取られて、該再編成変換装置により第2の画素順序で出力されるところの、1つのイメージバンドを構成する画素を並べ替えるための方法であって、ここにおいて、該第1の画素順序及び該第2の画素順序はラスター順とブロック順より選ばれた異順序であり、
マルチステージカウンタを用いて第1のアドレスシーケンスを生成するステップ、ただし、該マルチステージカウンタの1ステージは該再編成変換装置に受け取られる画素に同期してクロッキングされ、残りのステージは他のステージのキャリー出力によってクロッキングされ、
該第1のアドレスシーケンスを該バンドメモリのアドレス入力へ供給するステップ、
受け取った第1のイメージバンドの各画素を、該第1のアドレスシーケンスのアドレスによって指定されたバンドメモリのロケーションに格納するステップ、
該マルチステージカウンタのステージ間でキャリー信号の送り先を変更するステップ、
キャリー信号の送り先を変更した該マルチステージカウンタを用いて第2のアドレスシーケンスを生成するステップ、ただし、該第2のアドレスシーケンスが該バンドメモリに格納された画素を該第2の画素順序で指定するように、該キャリー信号の送り先が変更され、
該第2のアドレスシーケンスを該バンドメモリの該アドレス入力へ供給するステップ、
該第2アドレスシーケンスのアドレスにより指定されたバンドメモリのロケーションより第1のイメージバンドの画素を出力するステップ、及び
受け取った第2のイメージバンドの画素を該第2アドレスシーケンスの該アドレスにより指定された該ロケーションへ格納するステップ、よりなる画素変換方法。 - 請求項25記載の画素変換方法であって、
後続の各イメージバンドが該バンドメモリに格納された後に該マルチステージカウンタのステージ間のキャリー信号の送り先を変更するステップ、
キャリー信号の送り先が変更された該マルチステージカウンタを用いて後続の各イメージバンドのためのアドレスシーケンスを生成するステップ、ただし、該アドレスシーケンスが該バンドメモリに格納された画素を該第2の画素順序で指定するように該キャリー信号の送り先が変更され、
該アドレスシーケンスを該バンドメモリの該アドレス入力へ供給するステップ、
該第2のアドレスシーケンスのアドレスによって指定されたバンドメモリのロケーションに格納済みのイメージバンドの画素を出力するステップ、及び
受け取った後続イメージバンドの画素を該アドレスシーケンスの該アドレスにより指定された該ロケーションに格納するステップをさらに有することを特徴とする画素変換方法。 - 請求項25記載の画素変換方法において、該ブロック順におけるブロックは、B画素の幅及びM画素の高さを持つ2次元画素アレイであり、該イメージバンドは1列に並んだW個のブロックであり、WはMの整数N乗であり、B,M,N及びWは正整数である、ことを特徴とする画素変換方法。
- 請求項27記載の画素変換方法において、該アドレスシーケンス生成ステップは、
モジュロBカウンタと、N+1個のモジュロMカウンタのアレイとによって、イメージバンド内の画素の位置を指示するステップ、及び
該N+1個のモジュロMカウンタのアレイのキャリー入力とキャリー出力を、あるイメージバンドのためのアドレスシーケンスが第1の順序で、その次のイメージバンドのためのアドレスシーケンスが第2の順序になるように、接続変更するステップからなることを特徴とする画素変換方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/060,948 US5446560A (en) | 1993-05-12 | 1993-05-12 | Method and apparatus for raster to block and block to raster pixel conversion |
US08/060948 | 1993-05-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06326997A JPH06326997A (ja) | 1994-11-25 |
JP3574467B2 true JP3574467B2 (ja) | 2004-10-06 |
Family
ID=22032739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05062694A Expired - Lifetime JP3574467B2 (ja) | 1993-05-12 | 1994-03-22 | 再編成変換装置、ブロックベース画像圧縮装置、画像復号装置及び画素変換方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5446560A (ja) |
JP (1) | JP3574467B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828786A (en) * | 1993-12-02 | 1998-10-27 | General Instrument Corporation | Analyzer and methods for detecting and processing video data types in a video data stream |
JPH08171384A (ja) * | 1994-12-16 | 1996-07-02 | Canon Inc | 走査変換方法及びその装置 |
JP3686155B2 (ja) * | 1996-03-21 | 2005-08-24 | 株式会社ルネサステクノロジ | 画像復号装置 |
JPH10143131A (ja) * | 1996-11-06 | 1998-05-29 | Toshiba Corp | 復号画像表示装置とその表示メモリ制御方法 |
US6594315B1 (en) * | 1996-12-18 | 2003-07-15 | Thomson Licensing S.A. | Formatting of recompressed data in an MPEG decoder |
JPH10341437A (ja) * | 1997-06-06 | 1998-12-22 | Canon Inc | 画像処理方法及び装置 |
WO1999038332A1 (de) * | 1998-01-27 | 1999-07-29 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur konvertierung von bilddatenblöcken_in bildzeilen |
US6701447B1 (en) * | 2000-09-06 | 2004-03-02 | International Business Machines Corporation | System for delaying the counting of occurrences of a plurality of events occurring in a processor until the disposition of the event has been determined |
US6658584B1 (en) | 2000-09-06 | 2003-12-02 | International Business Machines Corporation | Method and structure for managing large counter arrays |
FR2820925A1 (fr) * | 2001-02-13 | 2002-08-16 | Koninkl Philips Electronics Nv | Systeme de traitement de motifs graphiques |
US7379609B2 (en) * | 2002-07-19 | 2008-05-27 | Samsung Electronics Co., Ltd. | Image processing apparatus and method for conversion between raster and block formats |
US20070008325A1 (en) * | 2005-07-08 | 2007-01-11 | Rai Barinder S | Method and apparatus providing for high efficiency data capture for compression encoding |
US20070228349A1 (en) * | 2006-03-30 | 2007-10-04 | Richard Smith | Portable privacy fence incorporating ground secured posts, each including a mesh unwinding section and a succeeding supporting section |
US8355570B2 (en) * | 2009-08-12 | 2013-01-15 | Conexant Systems, Inc. | Systems and methods for raster-to-block converter |
US10061537B2 (en) | 2015-08-13 | 2018-08-28 | Microsoft Technology Licensing, Llc | Data reordering using buffers and memory |
US10503689B2 (en) * | 2017-05-15 | 2019-12-10 | Google Llc | Image processor I/O unit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4751742A (en) * | 1985-05-07 | 1988-06-14 | Avelex | Priority coding of transform coefficients |
US4942541A (en) * | 1988-01-22 | 1990-07-17 | Oms, Inc. | Patchification system |
US5136688A (en) * | 1989-09-29 | 1992-08-04 | Minolta Camera Kabushiki Kaisha | Print data processing apparatus for an image forming apparatus |
US5218670A (en) * | 1990-08-31 | 1993-06-08 | Texas Instruments Incorporated | Apparatus and methods for the handling of banded frame buffer overflows |
-
1993
- 1993-05-12 US US08/060,948 patent/US5446560A/en not_active Expired - Lifetime
-
1994
- 1994-03-22 JP JP05062694A patent/JP3574467B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH06326997A (ja) | 1994-11-25 |
US5446560A (en) | 1995-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3574467B2 (ja) | 再編成変換装置、ブロックベース画像圧縮装置、画像復号装置及び画素変換方法 | |
US5253078A (en) | System for compression and decompression of video data using discrete cosine transform and coding techniques | |
RU2204217C2 (ru) | Видеодекодер с обработкой перемежающихся данных | |
US5619591A (en) | Encoding and decoding color image data based on mean luminance and an upper and a lower color value | |
CA2121196C (en) | Dual memory buffer scheme for providing multiple data streams from stored data | |
KR100363588B1 (ko) | 화상처리장치 | |
US4918541A (en) | Image processing method and apparatus | |
EP0506294A2 (en) | Hierarchical variable length decoder for digital video data | |
JPH0576171U (ja) | データ圧縮兼データ圧縮解離装置 | |
JP2855328B2 (ja) | カラー画像を表わす電気信号を記憶し取出すシステム、およびvramにカラー・ビデオデータのフレームをパックする方法 | |
US7386178B2 (en) | Method and apparatus for transforming the dimensions of an image | |
US4660078A (en) | Coder-decoder for transmission and/or reception of television pictures via digital low-speed channel | |
US5991446A (en) | Image conversion device | |
JP2744230B2 (ja) | 画像処理装置 | |
KR960005686Y1 (ko) | Jpeg 디코더에서의 어드레스 발생회로 | |
JP2744229B2 (ja) | 画像処理装置 | |
JPH07147636A (ja) | 符号化装置及び復号化装置 | |
MXPA99005605A (en) | Formatting of recompressed data in an mpeg decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040702 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070709 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |