JP3702630B2 - メモリアクセス制御装置および方法 - Google Patents

メモリアクセス制御装置および方法 Download PDF

Info

Publication number
JP3702630B2
JP3702630B2 JP00196798A JP196798A JP3702630B2 JP 3702630 B2 JP3702630 B2 JP 3702630B2 JP 00196798 A JP00196798 A JP 00196798A JP 196798 A JP196798 A JP 196798A JP 3702630 B2 JP3702630 B2 JP 3702630B2
Authority
JP
Japan
Prior art keywords
memory
data
buffer
access
encoded data
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 - Fee Related
Application number
JP00196798A
Other languages
English (en)
Other versions
JPH11203462A (ja
Inventor
富士夫 井原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP00196798A priority Critical patent/JP3702630B2/ja
Publication of JPH11203462A publication Critical patent/JPH11203462A/ja
Application granted granted Critical
Publication of JP3702630B2 publication Critical patent/JP3702630B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、メモリアクセス制御技術、このメモリアクセス技術を適用した半導体集積回路および画像復号装置に関し、特に符号化された画像データを復号して、それをプリンタに転送するのに適した半導体集積回路および画像復号装置に関するものである。
【0002】
【従来の技術】
近年、マルチメディアやインターネットなどの発展により計算機が扱わねばならないデータ量が飛躍的に伸びており、プリンタなどの表示装置にも高解像度で、高速な処理が要求されている。しかし、高解像度なデータは、蓄える時には大きな記憶容量を要求し、転送の際には大きなバンド幅を要求する。さもなければ大きな転送時間を要求し、特にシステムが、時間的制限のあるリアルタイム・システムであった時にはデータの損失を招くこともある。例えば、A4サイズの紙、1ページに600spi(spot per inch)の解像度でフルカラー(イエロー、マゼンタ、シアン、ブラックがそれぞれ8−bit、つまり256階調)で印字する時は、約130MB(メガバイト)もの膨大な画像データを転送しなければならない。このような状況では、データの符号化(圧縮)、復号化(伸長)技術は必要不可欠なものである。
【0003】
ところで、ゼログラフィを利用したプリンタ装置は、動作を開始したのちには、それに追従して印字する画像データを供給し続けなければならないという意味で、それを制御するシステムはリアルタイム・システムである。このようなリアルタイム・システムでかつ符号化されたデータを扱う時には、復号にもリアルタイム性が要求されるので、復号はハードウェアで行われるのが普通である。その際、高速動作が要求されるのは復号回路だけでなく、復号回路への符号化されたデータ(以降、符号データと呼ぶ)の供給や、復号されたデータ(以降、復号データと呼ぶ)の受け取りにも高速動作が要求される。それらが高速に動作できないと復号回路を待たせてしまうことになるからである。通常、符号データの供給元や復号データの転送先としてはメモリが使用され、メモリとして高速で高性能のものが必要とされる。しかも、大容量のメモリ領域が必要とされる。なぜなら、符号データおよび復号データ自体データ量が多く、さらに符号化アルゴリズムによっては復号時に必要となる参照画像データを記憶したり、JPEG(Joint Photographic Experts Group)のようなブロック符号化アルゴリズムを用いた時にはブロック・ラスタ変換に必要な記憶領域なども用意して管理しなければならないからだ。
【0004】
そのため、従来は複数の高速なメモリを用意し、それらを並列にアクセスすることで高速性を確保していた。しかし、複数のメモリを使用することで装置の規模を大きくしたり、装置自身が半導体集積回路(LSI)として実装される時にはピン数の増大を招き、結果としてコスト増大の原因となっていた。
【0005】
本発明では、この点を鑑み考案されたもので、複数のメモリに分散されていたアクセスを1つのメモリに集中させ、その1つのメモリに効果的にアクセスする手段を提供することで回路規模、コストの増大を防ぐものである。
【0006】
このような点に鑑み提案された従来例としては特開8−314793号公報あるが、そこでは符号量制御を用いた符号化アルゴリズムにより復号時の最大のバンド幅を計算し、それに見合うだけのメモリ・バンド幅を持つメモリシステムを、リフレッシュが必要なDRAMで構築し、そのメモリシステムを異なる形式のデータ(符号データと復号データ)で時分割的にアクセスしてメモリシステムの共有を行うシステムにおいて、内部処理などでメモリアクセスの発生しない無効期間にアクセス間隔に余裕のあるメモリアクセス(例えば、符号データの書き込みやリフレッシュ)を行うことでメモリバンド幅の有効利用を図り、また、プライオリティの低いメモリアクセスが長期間待たされないように、前回サービスされたメモリアクセスの種類によりプライオリティを変更して、メモリアクセスのスケジューリングを行うことで、メモリの有効利用を行うメモリアクセス制御方法ならびに、それを適用した半導体集積回路および画像復号装置について開示している。
【0007】
しかし、この方法には以下のような問題がある。
【0008】
▲1▼符号量制御しているので復号データにひずみが現れる。
▲2▼内部処理を高速化したり、もともと内部処理の軽い復号アルゴリズムには適用できない。また、現状の半導体集積回路の速度向上率と外部メモリデバイスの速度向上率を比較すると半導体内部での処理よりも外部デバイスの速度が基準となるケースがますます増えることが予想され、外部デバイスの速度がメモリアクセス上のボトルネックになる。
▲3▼メモリアクセスの種類によりプライオリティを変更して、メモリアクセスのスケジューリングを行っているが、所詮は数種類の固定スケジューリング・パターンを前回サービスされたメモリアクセスの種類により切り替えるものであって、半ば固定的で柔軟性に乏しい。また、その実現にもスケジューリングのパターン数分の調停回路が必要になり、あまりパターンを増やせない。特に複数の符号化アルゴリズムを採用したシステムには対応しにくく、複数の符号化アルゴリズムを採用すると、メモリアクセスの種類が数倍になってしまう。
【0009】
ところで、このような画像復号装置では、出力の転送レートは接続される出力(表示)装置により一定であることが普通である。例えば、あるディスプレイ装置では1秒間に30フレーム、あるプリンタ装置では1分間に60枚というようにである。さらに通常は解像度も一定であるから、符号化されていないデータ、即ちオリジナルのデータや復号されたデータのリード/ライトに要求されるメモリバンド幅は固定である。これに対して符号化されたデータのリード/ライトに要求されるメモリバンド幅は、ある大きな時間単位、例えば、1フレームとか紙1ページあるいはそれらを数個に分割した単位であるバンドで考えれば、符号化後のデータ量に比例する。もし1/10にデータ量が圧縮されていれば、必要なメモリバンド幅は平均で1/10となる。しかし、これはどの小さな区間を取ってもデータ量が1/10であることを意味しない。最悪の区間では符号化後のデータ量がオリジナルのデータ量よりも大きくなることもある。これは一時的に必要とするメモリバンド幅が大きくなることを意味する。
【0010】
この必要メモリバンド幅の揺らぎに対する対応としては、一般的に符号化時にどの小さな区間でも復号データの量を一定量以下に制限する符号量制御を実行することと、メモリバンド幅の揺らぎを吸収できるだけの大きな、共有されないバッファを用意することであるが、前者は復号後の画像にひずみをもたらし、後者は、大きなバッファは集積回路の中に取り込めないし、外部に占有バッファを持つのは、集積回路のピン数を小さくする、メモリを有効に使うという本来の目的に対して本末転倒である。
【0011】
次に、1つの画像データに対して1つの符号化アルゴリズムだけを適用するのではなく、1つの画像を形成する複数の要素に対してそれらにより適した別々な符号化アルゴリズムを適用して符号化効率を上げる手法がある。例えばMPEG−4(Motion Picture Coding Experts Group−4)の中間報告によれば1つの画像を形成する個々のオブジェクト毎に符号化するオブジェクト符号化が提案され審議されている。しかし、このようなシステムでは多くの異なる形式のデータ、異なる要求メモリバンド幅のデータがメモリ・バッファとの間でやりとりされ、特開8−314793号公報のように固定されたシーケンスでは、複数の符号データの圧縮率の変化には効率的に対応できない。
【0012】
【発明が解決しようとする課題】
上述のように、本発明の目的は、バッファメモリの容量、メモリバス幅、半導体集積回路の入出力ピン数の増大および動作周波数の高速化を抑えて、効率の良いメモリシステムを実現することである。
【0013】
【課題を解決するための手段】
本発明によれば、上述の目的を達成するために、1つのメモリに対して複数のアクセス要求元からのアクセスを制御するメモリアクセス制御装置において、符号化されたデータを上記メモリに記憶させる第1のアクセス要求元と、上記メモリに記憶された上記符号化されたデータを読み出す第2のアクセス要求元と、読み出された上記符号化されたデータを復号する復号手段と、上記メモリと復号手段との間に設けられ、上記符号化されたデータを一時的に記憶するバッファ手段と、上記バッファ手段内のデータの消費速度を計測し、予め決められた基準値と比較する消費速度比較手段と、上記消費速度比較手段の比較出力により、上記アクセス要求元のメモリアクセスの調停を行うメモリアクセス調停手段と、調停された上記アクセス要求元のアクセス・リクエストに基づきデータの書き込み・読み出しを行うメモリ・コントローラとを設けるようにしている。
【0014】
さらに、本発明を詳細に説明する。本発明では、例えば、最悪の平均圧縮率を”1”と仮定して、それに見合うだけのメモリ・バンド幅を持つメモリシステムを構築し、復号回路と外部メモリ・バッファとの間に集積回路の中に取り込める少量のバッファを用意し、そのバッファ内のデータの消費速度を計測し、消費速度が基準値よりも大きいときには、外部メモリ・バッファから内部バッファへの符号データの読み出し転送により大きなメモリバンド幅を提供し、その分を符号データの書き込み転送に使用するメモリバンド幅から差し引くメモリアクセス制御手法を提案する。ここで最悪の平均圧縮率を”1”と仮定したが、復号後に完全にオリジナルのデータが復元される可逆符号化では、あらゆる画像データに対してこれを保証することはできない。しかし、符号化時にオリジナルのデータの大きさを越えている時には、符号化後のデータを送るのではなく、オリジナルのデータを送るとすれば、最悪の平均圧縮率が”1”でもリアルタイム復号を保証するということはすべてのデータに対してリアルタイムのプリントを保証すると言える。基準値とは、平均圧縮率が”1”であった時の平均メモリバンド幅、つまり符号化されていないデータの要求するメモリバンド幅と同じであり、少量バッファの消費速度が基準値を越えるということは、現在、復号回路で復号していた小さな区間では平均バンド幅以上のバンド幅を必要としていたということを意味している。
【0015】
この手法によれば、1ぺージのデータがスキャン画像用と文字・図形画像用の2つの符号化アルゴリズムで符号化されている時は、1ページの中でスキャン画像の部分や文字・図形の部分はある程度連続しているのが普通なので、上記のように復号回路のデータ消費速度を計測し、その消費速度が基準値よりも大きかった符号データの読み出し転送を優先することで効果的な先読みができる。
【0016】
【発明の実施の態様】
以下、本発明の実施例の画像復号装置について説明する。まず、この画像復号装置に関連する画像の処理フローについて説明する。
【0017】
図1は、画像の処理フローを示しており、この図において、ホスト・システム(1)(図2参照)上では、ページ記述言語からプリントに必要な画像データを生成するデコンポーザ(100)と呼ばれるソフトウェアが走っている。このデコンポーザ(100)はページ記述言語を解釈することにより、生成する画像データを文字や図形などの文字・図形画像(101)と、自然画像などのスキャン画像(102)に分離して生成する。また、その時にそれらの切替え信号として働く切替えタグ(103)を生成する。さらに分離された画像は、ホスト・システム(101)により、それぞれその後の符号化アルゴリズムA、符号化アルゴリズムBで符号化効率がよくなるようなダミー・データがパディングされて、2ページ分のデータとなる。パディングのデータは通常は白を表す8−bit値”FF”でよい。
【0018】
次にパディングされたスキャン画像(102)は、スキャン画像に適した符号化アルゴリズムBにより符号化され、パディングされた文字・図形画像(101)は、それに適したの符号化アルゴリズムAにより符号化される。また、切替えタグも符号化アルゴリズムAにより符号化されるものとする。以降、それらの符号化アルゴリズムで符号化されたデータをそれぞれ符号データA、符号データBと呼ぶ。例えば符号化アルゴリズムAは、注目画素を近隣の画素値から予測し、その予測誤差をハフマン符号化した予測符号化の1種類であり、符号化アルゴリズムBは、8×8の画素ブロックに対してDCT(Discrete Cosine Transform)変換を行って量子化をするJPEGに準じた符号化アルゴリズムである。
【0019】
以上までが、ホスト・システム(1)を中心に行われる作業であり、以降できあがった符号データは、画像復号装置に送られ処理される。即ち、符号データA、符号データBは、復号回路A(9)、復号回路B(10)により、復号データA、復号データBにそれぞれ復号され、後述のマージ回路(15)によりスキャン画像と文字・図形画像が適切なページ内位置に配置されるように出力の切替えが行われ、外部プリント装置(図示しない)に転送される。以上が、画像データがプリントされるまでの流れである。
【0020】
つぎに本発明の実施例の構成を図2を参照して説明する。図2において、(1)はホスト・システムであり、すでに複数の符号化アルゴリズムで符号化された画像データを主記憶あるいは磁気記憶装置に蓄えている。(2)はホスト・システム(1)と外部処理装置を接続するバスである。(3)は本発明で提案する画像復号装置であり、ホスト・システム(1)から受け取った符号化された画像データを復号して外部プリント装置(図示しない)に転送するものである。(20)は画像復号装置が画像の復号中に一時的な記憶エリアとして用いるメモリ・バッファである。(9)はある符号化アルゴリズムAで符号化されたデータを復号する復号回路Aである。(10)はある符号化アルゴリズムBで符号化されたデータを復号する復号回路Bである。(5)はライトバッファAであり、は符号化アルゴリズムAで符号化されたデータをホスト・システム(1)内の主記憶からメモリ・バッファに転送する際に一時的に蓄えておく少量のバッファである。(6)はライトバッファB1であり、符号化アルゴリズムBで符号化されたデータをホスト・システム(1)内の主記憶からメモリ・バッファ(20)に転送する際に一時的に蓄えておく少量のバッファである。(4)は、ホスト・システム(1)にある符号データをライトバッファA1(5)またはライトバッファB1(6)に転送するDMAコントローラである。(7)はリードバッファA2であり、メモリ・バッファ(20)に蓄えられた符号化データを復号回路A(9)に転送する際の先読みバッファとして使用される少量のバッファである。(8)はリードバッファB2であり、メモリ・バッファ(20)に蓄えられた符号化データを復号回路B(10)に転送する際の先読みバッファとして使用される少量のバッファである。(11)はライトバッファA3であり、復号回路A(9)で復号されたデータをメモリ・バッファ(20)に転送する際に使用される少量のバッファである。(12)はライトバッファB3であり、復号回路B(10)で復号されたデータをメモリ・バッファ(20)に転送する際に使用される少量のバッファである。(13)はリードバッファA4であり、符号化アルゴリズムAで符号化され、復号回路A(9)により復号されたメモリ・バッファ内(20)の復号データをマージ回路(15)に転送する際に使用される少量のバッファである。(14)はリードバッファB4であり、符号化アルゴリズムBで符号化され、復号回路B(10)により復号されたメモリ・バッファ(20)内の復号データをマージ回路(15)に転送する際に使用される少量のバッファである。ところでこれらの少量のバッファ群(ライトバッファA1、ライトバッファB1、リードバッファA2、リードバッファB2、ライトバッファA3、ライトバッファB3、リードバッファA4、リードバッファB4)の大きさはすべて同じであり、メモリシステムに対して効率的なバースト転送をサポートするのに十分な量であり、なおかつ、集積回路に内蔵できるぐらいの小ささである。(15)はマージ回路であり、符号化アルゴリズムA、Bで符号化され、復号回路A(9)、復号回路B(10)でそれぞれ復号されたデータを切替えタグにより選択し、プリンタ・インタフェース(I/F)回路(19)に出力する。
【0021】
なお図2では、切替えタグ自身も画像データと共に符号化アルゴリズムAで符号化されており、復号回路Aにより復号されているとしているが、符号化されない別のストリームとされていてもよい。
【0022】
(16)は、消費速度比較回路であり、リードバッファA2(7)とリードバッファB2(8)内のデータの消費速度を計測し、それらが基準値を越えていたかどうかをメモリ・アクセス調停回路(17)に知らせる。(17)はメモリ・アクセス調停回路であり、各バッファからのメモリ・アクセス・リクエストと消費速度比較回路(16)の出力する結果をもとにメモリアクセスの調停を行う。(18)はメモリ・コントローラであり、調停されたメモリ・アクセスに対応して、各リード/ライトバッファとメモリ・バッファ(20)との間でデータの転送を行う。(19)はプリンタI/F回路であり、外部プリント装置からの制御信号にタイミングを合わせてデータを出力するものである。
【0023】
なお、図2は本発明の原理的構成を説明するためのものであり、出力は外部プリント装置ではなく、ディスプレイなどの表示装置でもよい。また、図2では符号化アルゴリズムをA、Bの2つとし、復号回路もA、Bの2つとしているが、これは2つに限定されるものではなく、3つ以上あってもよいし1つでもよい。
【0024】
次に図2の各部について詳細に説明する。ホストシステム(1)は、汎用のパソコンまたはワークステーションであり上述したように、ページ記述言語より2つの符号データ(A、B)を生成し、その符号化されたデータをその内部の主記憶あるいは磁気記憶装置(ハードディスク装置)に蓄えている。あるいは他のホストシステムにより生成された符号データ(A、B)をネットワーク経由で受信し、自分自身の主記憶あるいは磁気記憶装置(ハードディスク装置)に蓄えていてもよい。また、ホスト・システム(1)は画像復号装置(3)の制御も行う。具体的には、後述するDMAC(4)に転送開始アドレス、転送サイズなどを設定し、DMA転送を開始させたり、画像復号装置(3)の発行するインタラプト信号を受信し適切な処理を行う。
【0025】
バス(2)は、ホストシステム(1)と画像復号装置(3)とを接続するためのバスであり、これはホストシステムに予め用意されているI/O拡張の用の標準バスでも良いし、新たに設計されホストシステム(1)と接続されたバスのどちらでも良い。
【0026】
画像復号装置(3)は、ホストシステム(1)からの指示により、ホスト・システム(1)内にある複数の符号データを復号して、その復号データを外部プリント装置のタイミングに合わせて出力するものである。また、ローカルなメモリ・バッファ(20)を復号時のワークエアリアとして使用する。
【0027】
DMAC(4)は、DMAコントローラであり、ホストシステム(1)からの指示により起動され、ライトバッファA1、ライトバッファB1の空き情報を監視して、ホストシステム内の符号データAをライトバッファA1に、また符号データBをライトバッファB1に転送する。
【0028】
ライトバッファA1(5)は、符号化アルゴリズムAで符号化された符号データAをメモリ・バッファ(20)に転送する際に使用される少量のバッファで、DMAC(4)によりライトされ、メモリコントローラ(18)によりリードされる。同様に、ライトバッファB1(6)は、符号化アルゴリズムBで符号化された符号データBをメモリ・バッファ(20)に転送する際に使用される少量のバッファで、DMAC(4)によりライトされ、メモリコントローラ(18)によりリードされる。
【0029】
リードバッファA2(7)は、メモリ・バッファ(20)にある符号データAを復号回路A(9)に転送する際に使用されるバッファで、メモリコントローラ(18)によりライトされ、復号回路A(9)によってリードされる。同様に、リードバッファB2(8)は、メモリ・バッファ(20)にある符号データBを復号回路B(10)に転送する際に使用されるバッファで、メモリコントローラ(18)によりライトされ、復号回路A(9)によってリードされる。これらのバッファは先読みバッファとして使用される。
【0030】
復号回路A(9)は、符号化アルゴリズムAで符号化された符号データAを復号する回路である。同様に、復号回路B(10)は、符号化アルゴリズムBで符号化された符号データBを復号する回路である。
【0031】
ライトバッファA3(11)は、復号回路A(9)で復号された復号データAをメモリ・バッファ(20)に転送する際に使用される少量のバッファで、復号回路A(9)によりライトされ、メモリコントローラ(18)によりリードされる。同様に、ライトバッファB3(12)は、復号回路B(10)で復号された復号データBをメモリ・バッファ(20)に転送する際に使用される少量のバッファで、復号回路B(10)によりライトされ、メモリコントローラ(18)によりリードされる。
【0032】
リードバッファA4(13)は、メモリ・バッファ(20)にある復号回路A(9)で復号された復号データAをマージ回路(15)に転送する際に使用される少量のバッファで、メモリコントローラ(18)によりライトされ、マージ回路(15)によってリードされる。同様に、リードバッファB4(14)は、メモリ・バッファ(20)にある復号回路B(10)で復号された復号データBをマージ回路(15)に転送する際に使用される少量のバッファで、メモリコントローラ(18)によりライトされ、マージ回路(15)によってリードされる。
【0033】
ところで、これら各バッファ群(ライトバッファA1、ライトバッファB1、リードバッファA2、リードバッファB2、ライトバッファA3、ライトバッファB3、リードバッファA4、リードバッファB4)は同じ大きさを持ち、リード用/ライト用ごとに共通な形態をしており、その形態とメモリ・アクセス・リクエストの仕方について図3および図4を用いて説明する。なお、図3において、ライトバッファA1、B1、A3、B3を便宜上、符号(5)で参照する。また、図4において、リードバッファA2、リードバッファB2、リードバッファA4、リードバッファB4を便宜上、符号(7)で参照する。
【0034】
図3がメモリへのライト時に使用されるライトバッファの構成で、図4がメモリのリード時に使用されるリードバッファの構成である。これらはどちらも2つのバンクで構成されたいわゆるダブル・バッファ形式になっており、左右両側のモジュールから異なるバンク(バンク1、バンク2)(201、202)に同時アクセスが可能であり、バンク切替え信号によりバンクスイッチ(203、204)が制御され、バンク(201、202)の切替えが行われる。各々のバンク(201、202)は8つの8バイト・レジスタにより構成されており、即ち、64バイトをバッファリングできる。この64バイトは後述するメモリ・コントローラ(18)での効率的バースト転送をサポートするのに十分な値であると共に、LSI化に支障のない大きさという点から選ばれている。
【0035】
図3のライトバッファと図4のリードバッファとの間の違いは、単に左側のモジュール(メモリ・バッファに遠い側)がデータをライトして、右側のモジュール(メモリ・バッファ(20)に近い側)がそのデータをメモリにライトするか、右側のモジュール(メモリ・バッファ(20)に近い側)がメモリからデータをリードして、そのデータを左側のモジュール(メモリ・バッファ(20)に遠い側)がリードするかだけの違いであるので、以下図3を中心に説明する。
【0036】
図3において、左側にあるモジュール(メモリ・リクエスト信号を発行する側なので、以下”リクエスタ”と呼び、符号(200)で参照する)がメモリ・バッファ(20)にライトすべきデータがある時は、現在自分の使用しているバンク(201、202)に空きがあるかを調べ、空きがあればデータをライトする。その際、その使用中のバンクが一杯になり、かつ、もう一方のバンクをメモリ・コントローラ(18)がリードしていなければ(Memory Busyがアクティブでなければ)、バンク・スイッチ信号を切り替えることでバンクを反転し、Memory Request信号を発行してメモリ・アクセス要求があることを知らせる。その後、まだライトすべきデータがある時は、反転したバンクにデータをライトする。メモリ・コントローラ(18)は片方のバンクをリードし、そのバンクが空になったなら、Memory Busy信号をデアクティブにし、同時にMemory Done信号をアクティブにするので、リクエスタ(200)はMemory Request信号をデアクティブにする。
【0037】
このように、図3のライトバッファ(5)等を用いるリクエスタ(200)は、ライトバッファ(5)の一方のバンクが一杯になるたびに、Memory Request信号を発生し、メモリ・コントローラ(18)が一杯になったバンクのデータをメモリ・バッファ(20)へ書き込む。こうして、順次、データがメモリ・バッファ(20)に書き込まれていく。
【0038】
同様に、図4のリードバッファ(7)等を用いるリクエスタ(200)は、リードバッファ(7)が一方のバンクのデータをすべて読み出すたびに、Memory Request信号を発生し、メモリ・コントローラ(18)が空になったバンクにメモリ・バッファ(20)からのデータを書き込んでいく。こうして、順次、メモリ・バッファ(20)のデータが読み出されていく。
【0039】
さらに、図2に戻って各部を説明する。図2において、マージ回路(15)は、復号データA、Bと復号データAに含まれる切替えTag情報により、リードバッファA4(13)、リードバッファB4(14)からの出力を取捨選択し、プリンタI/F回路(19)に転送する。
【0040】
消費速度比較回路(16)は、図5に示すように、カウンタA(161)、レジスタA(162)、比較器A(163)、カウンタB(164)、レジスタB(165)、比較器B(166)を含んで構成されている。リードバッファA2(7)からのメモリ・アクセス・リクエストReqA2をカウンタA(161)のクリア入力とレジスタB(162)のロード入力に接続ことにより、リクエストReqAの間隔を常に更新してレジスタA(162)に記憶している。同様にリードバッファB(8)からのメモリ・アクセス・リクエストReqB2をカウンタB(164)のクリア入力とレジスタB(165)のロード入力に接続ことにより、リクエストReqB2の間隔を常に更新してレジスタB(165)に記憶している。
【0041】
ところで、ReqA2、ReqB2は、同じ大きさで同じ構造のリードバッファ(図4)の片方のバンクが空になるたびにアクティブになるから、レジスタA、B(163、166)に記憶された値は片方のバンク(64バイト)のデータを消費するのに要した時間を記録していることになる。
【0042】
一方、圧縮率”1”、即ち圧縮なしとした時に画像データのリードに要求される平均のメモリバンド幅から、片方のバンクに相当する64バイトのリードにかかる時間を基準値として、それをクロック数に換算して図5のように比較すれば、現在のリード速度が平均を越えてるかいなかが検出できる。図5では各々のリード速度が基準値を越える時には、FastA、FastBの出力はそれぞれ”1”になる。
【0043】
メモリ・アクセス調停回路(17)は、図6のような構成であり、基本クロックを分周する分周回路(171)、その分周クロックをもとにしたN進カウンタ(172)、それと調停論理を実現するステートマシン(173)からできていて、調停結果を示す3−bitの信号(SEL[2:0])とメモリ・コントローラ(18)を起動するMemStart信号を発行する。
【0044】
ステートマシン(173)の論理は、前述のように圧縮率”1”でも動作するように、圧縮率”1”の時に各リクエスタが要求するメモリバンド幅と消費速度比較回路(16)の出力に基づいており、具体的に、600spi、深さ8−bit(256諧調)のA4サイズの紙1ページ(32MB相当)を1秒で復号してプリントするには、8つのリクエスタ(200)それぞれに32MB/sのバンド幅を提供する。
【0045】
しかし実際の各リクエスタ(200)の要求メモリバンド幅は、8つのリクエスタ(200)のうち符号化されていないデータを扱う4つのリクエスタ(ReqA3,ReqB3,ReqA4,ReqB4)はそれぞれ32MB/s固定、符号データをメモリ・バッファにライトするReqA1、ReqB1は平均圧縮率に依存し、メモリ・バッファ(20)から符号データをリードするReqA2、ReqB2では微小区間での最悪圧縮率に依存する。但し、リクエスタ(ReqA1,ReqB1)のデータの転送先は外部のメモリ・バッファ(20)であるので、これらのデータの微小区間での圧縮率の揺らぎはメモリ・バッファ(20)内にある程度大きなエリアを確保することにより吸収できる。
【0046】
そのため、調停は図7に示したようラウンドロビン形式で行われ、分周回路(171)がタイムスロットの大きさを決定しており、ステートマシン(173)は、消費速度比較回路(16)の出力に応じて、各タイム・スロットの割り付けを変更している。具体的には、ReqA2が基準値以上のメモリバンド幅を要求するときは、ReqA1用のタイムスロットをReqA2に与え、ReqB2が基準値以上のメモリバンド幅を要求するときは、ReqB1用のタイムスロットをReqB2に与える。そして微小区間で圧縮率が高く、次のデータを先読みする必要がない時は、ReqA2、ReqB2用のタイムスロットをそれぞれReqA1、ReqB1に与える。なお、8つのリクエスタがあるため、図6のN進カウンタ(172)は8進カウンタである。
【0047】
具体的に図7のタイムチャートを説明すると、図7(a)はリードバッファA2、リードバッファB2の消費速度が共に基準値以下の場合のタイミングチャートであり、(b)はリードバッファA2が基準値以上、リードバッファB2が基準値以下、(c)はリードバッファA2が基準値以下、リードバッファB2が基準値以上、(d)はリードバッファA2、リードバッファB2共に基準値以上、(e)はタイムスロット4の時点でReqA2がアクティブでないケース(すなわち、まだリードバッファ内に十分なデータが残っている)、(f)はタイムスロット5の時点でReqB2がアクティブでないケース、(g)はタイムスロット4、5の時点でReqA2、ReqB2がそれぞれがアクティブでないケースである。これらの調停は以下のような簡単な論理で実行できる。なお、図7において、割当が変更されたタイムスロットを丸で囲んだ。
【0048】
8進カウンタの値をcnt、メモリコントローラにReqA1のサービスを開始させる信号をSEL[2:0]=”000”、同様にReqB1に対して”001”、ReqA2に対して”010”、ReqB2に対して”011”、ReqA3に対して”100”、ReqB3に対して”101”、ReqA4に対して”110”、ReqB4に対して”111”とすると、
【0049】
【表1】
Figure 0003702630
のように非常に簡単な論理で実現できる。 なお、通常復号には、図6、図7で示したメモリアクセス以外に、参照画像のメモリアクセスやラスタブロック変換用のメモリアクセスも必要となるが、それらは符号化されていないデータであるので、図7においてこれら用のタイムスロットを付け加えて、それに合わせてN進カウンタのNを増やせばよい。 メモリコントローラ(18)は、調停されたメモリ・アクセスに対応するメモリ・アドレスを生成し、メモリにアクセスする。具体的には図8に示したように、メモリアクセス調停回路(17)からの出力信号SELとMemStartを受信することにより、8つのうちの1つのアドレス生成カウンタ(180)がバースト・サイズに合わせてアドレスをインクリメントする。
【0050】
ところで、1つのメモリ・バッファ(20)を8つのリクエスタが時分割で共有し、メモリに格納されるデータのタイプは符号データA、符号データB、復号データA、復号データBの4種類あるので、それらは他の領域を犯さないようにアドレス範囲を制限する必要がある。図9にメモリ・バッファ(20)のメモリマップと境界値を示す。すなわち、符号データAの領域は境界値1〜境界値2であり、符号データBの領域は境界値2〜境界値3、復号データAの領域は境界値3〜境界値4、復号データBの領域は境界値4〜境界値5である。よって図8に示した8つのアドレス生成回路(180)は常に境界値内の値をとるようにラッピングする機構が備わっている。なお、境界値1〜5はレジスタとして設定可能である。
【0051】
プリンタI/F回路(19)は、外部プリント装置からの制御信号に合わせてデータを出力するものである。
【0052】
メモリ・バッファ(20)は、画像復号装置が画像の復号中に一時的な記憶エリアとして用いるメモリ・バッファであり、そのメモリマップは図9である。
【0053】
なお以上では、符号化をスキャン画像と文字・図形画像の2つのストリームに分けて行ったが、これらはもっと細かく、3つ以上のストリームに分解されていてもよいことは言うまでもない。
【0054】
【発明の効果】
以上説明したように、本発明によれば、例えば最悪の平均圧縮率を”1”と仮定して、それに見合うだけのメモリ・バンド幅を持つメモリシステムを構築し、復号回路と外部メモリ・バッファとの間に集積回路の中に取り込める少量のバッファを用意し、そのバッファ内のデータの消費速度を計測する手段を具備し、消費速度が基準値よりも大きいときには、外部メモリ・バッファから内部バッファへの符号データのリード転送により大きなメモリバンド幅を提供し、その分を符号データのライト転送に使用するメモリバンド幅から差し引くメモリアクセス制御手法を用いることにより、画質をひずめることなく、効率の良いメモリシステムを実現することができる。
【図面の簡単な説明】
【図1】 ページ記述言語で記述されたページ記述が符号化され、画像復号装置により復号されるまでのデータの流れを説明する図である。
【図2】 本発明の実施例の全体構成を示すブロック図である。
【図3】 ライトバッファの構成とリクエスト生成を説明する図である。
【図4】 リードバッファの構成とリクエスト生成を説明する図である。
【図5】 消費速度比較回路の構成例を示すブロック図である。
【図6】 メモリアクセス調停回路の構成例を示すブロック図である。
【図7】 メモリアクセス調停の調停アルゴリズムを説明する図である。
【図8】 メモリコントローラの構成例を示すブロック図である。
【図9】 バッファメモリ内のメモリマップである。
【符号の説明】
1 ホストシステム
2 バス
3 画像復号装置
4 DMAC
5 ライトバッファA1
6 ライトバッファB1
7 リードバッファA2
8 リードバッファB2
9 復号回路A
10 復号回路B
11 ライトバッファA3
12 ライトバッファB3
13 リードバッファA4
14 リードバッファB4
15 マージ回路
16 消費速度計測回路
17 メモリアクセス調停回路
18 メモリコントローラ
19 プリンタI/F回路
20 メモリ・バッファ

Claims (9)

  1. 1つのメモリに対して複数のアクセス要求元からのアクセスを制御するメモリアクセス制御装置において、
    符号化されたデータを上記メモリに記憶させる第1のアクセス要求元と、
    上記メモリに記憶された上記符号化されたデータを読み出す第2のアクセス要求元と、
    読み出された上記符号化されたデータを復号する復号手段と、
    上記メモリと復号手段との間に設けられ、上記符号化されたデータを一時的に記憶するバッファ手段と、
    上記バッファ手段内のデータの消費速度を計測し、予め決められた基準値と比較する消費速度比較手段と、
    上記消費速度比較手段の比較出力により、上記アクセス要求元のメモリアクセスの調停を行うメモリアクセス調停手段と、
    調停された上記アクセス要求元のアクセス・リクエストに基づきデータの書き込み・読み出しを行うメモリ・コントローラとを有することを特徴とするメモリアクセス制御装置。
  2. 前記バッファ手段は、2つのバンクを持つダブルバッファ構成を有し、上記アクセス要求元と上記メモリコントローラの双方から同時にアクセス可能である請求項1記載のメモリアクセス制御装置。
  3. 前記バッファ手段内のデータの消費速度と比較される基準値は、上記符号化されたデータの平均圧縮率が1であった時に、上記符号化されたデータの読み出しに必要なメモリバンド幅に基づいて決定される請求項1または2記載のメモリアクセス制御装置。
  4. 前記バッファ手段内のデータの消費速度の方が、予め設定された基準値よりも小さかったことを、前記消費速度比較手段の比較出力が示している時は、すべてのメモリアクセスをラウンドロビンで許容し、前記バッファ手段内のデータの消費速度の方が、予め設定された基準値よりも大かったことを、前記消費速度比較手段の比較出力が示している時は、上記符号化されたデータの書き込みメモリアクセスの代わりに上記符号化されたデータの読み出しメモリアクセスを行うように調停される請求項1、2または3記載のメモリアクセス制御装置。
  5. 符号化されたデータを1つのメモリに記憶させるために上記メモリにアクセスし、上記メモリに記憶された上記符号化されたデータを読み出すために上記メモリにアクセスし、上記メモリから読み出した上記符号化されたデータを復号するメモリアクセス制御方法において、
    上記メモリから読み出した上記符号化されたデータを所定のバッファに一時記憶するステップと、
    上記符号化されたデータの復号のために上記バッファから上記符号化されたデータを読み出すステップと、
    上記バッファ内のデータの消費速度を計測し、予め決められた基準値と比較するステップと、
    上記比較の結果に基づいて上記メモリに対するアクセスを調停するステップとを有することを特徴とするメモリアクセス制御方法。
  6. 符号化アルゴリズムの数に対応した複数の符号化されたデータを1つのメモリにそれぞれ記憶させる複数の第1のアクセス要求元と、
    上記メモリに記憶された上記複数の符号化されたデータをそれぞれ読み出す複数の第2のアクセス要求元と、
    上記複数の符号化されたデータをそれぞれ復号する複数の復号手段と、
    前記複数の復号手段により復号された複数の復号されたデータを上記メモリにそれぞれ記憶させる複数の第3のアクセス要求元と、
    上記メモリに記憶された上記複数の復号されたデータを読み出す複数の第4のアクセス要求元と、
    上記メモリと上記複数の復号手段との間に設けられ、上記複数の符号化されたデータを一時的に記憶する符号データの種類に対応した複数のバッファ手段と、
    上記複数のバッファ手段内のデータの消費速度をそれぞれ計測し、予め決められた基準値と比較する複数の消費速度比較手段と、
    上記複数の消費速度比較手段の出力によりメモリアクセスの調停を行うメモリアクセス調停手段と、
    調停されたアクセス要求元のアクセス・リクエストに基づきデータの書き込み・読み出しを行うメモリ・コントローラとを有し、
    上記複数の復号されたデータをマージして出力装置に転送することを特徴とする画像復号装置。
  7. 前記複数のバッファ手段内のデータの消費速度が、予め設定された基準値よりも大きいことを、前記複数の消費速度比較手段の比較出力のいづれかが示している時は、対応する符号化アルゴリズムで符号されたデータの書き込みメモリアクセスの代わりに、その符号化アルゴリズムで符号化されたデータの読み出しメモリアクセスを優先して行うように調停される請求項6記載の画像復号装置。
  8. 符号化アルゴリズムの数に対応した複数の符号化されたデータを1つのメモリにそれぞれ記憶させる複数の第1のアクセス要求元と、
    上記メモリに記憶された上記複数の符号化されたデータをそれぞれ読み出す複数の第2のアクセス要求元と、
    上記複数の符号化されたデータをそれぞれ復号する複数の復号手段と、
    前記複数の復号手段により復号された複数の復号されたデータを上記メモリにそれぞれ記憶させる複数の第3のアクセス要求元と、
    上記メモリに記憶された上記複数の復号されたデータを読み出す複数の第4のアクセス要求元と、
    上記メモリと上記複数の復号手段との間に設けられ、上記複数の符号化されたデータを一時的に記憶する符号データの種類に対応した複数のバッファ手段と、
    上記複数のバッファ手段内のデータの消費速度をそれぞれ計測し、予め決められた基準値と比較する複数の消費速度比較手段と、
    上記複数の消費速度比較手段の出力によりメモリアクセスの調停を行うメモリアクセス調停手段と、
    調停されたアクセス要求元のアクセス・リクエストに基づきデータの書き込み・読み出しを行うメモリ・コントローラと、
    上記複数の復号されたデータをマージして表示装置に転送する手段とを1チップ内に集積した半導体集積回路。
  9. 1つのメモリに対して複数のアクセス要求元からのアクセスを制御するメモリアクセス制御装置において、
    データを上記メモリに記憶させる第1のアクセス要求元と、
    上記メモリに記憶された上記データを読み出す第2のアクセス要求元と、
    上記メモリとデータ転送先先との間に設けられ、上記データを一時的に記憶するバッファ手段と、
    上記バッファ手段内のデータの消費速度を計測し、予め決められた基準値と比較する消費速度比較手段と、
    上記消費速度比較手段の比較出力により、上記アクセス要求元のメモリアクセスの調停を行うメモリアクセス調停手段と、
    調停された上記アクセス要求元のアクセス・リクエストに基づきデータの書き込み・読み出しを行うメモリ・コントローラとを有することを特徴とするメモリアクセス制御装置。
JP00196798A 1998-01-08 1998-01-08 メモリアクセス制御装置および方法 Expired - Fee Related JP3702630B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00196798A JP3702630B2 (ja) 1998-01-08 1998-01-08 メモリアクセス制御装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00196798A JP3702630B2 (ja) 1998-01-08 1998-01-08 メモリアクセス制御装置および方法

Publications (2)

Publication Number Publication Date
JPH11203462A JPH11203462A (ja) 1999-07-30
JP3702630B2 true JP3702630B2 (ja) 2005-10-05

Family

ID=11516361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00196798A Expired - Fee Related JP3702630B2 (ja) 1998-01-08 1998-01-08 メモリアクセス制御装置および方法

Country Status (1)

Country Link
JP (1) JP3702630B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496192B1 (en) * 1999-08-05 2002-12-17 Matsushita Electric Industrial Co., Ltd. Modular architecture for image transposition memory using synchronous DRAM
JP5337177B2 (ja) * 2011-02-03 2013-11-06 株式会社東芝 メモリ制御装置及びメモリ制御方法
CN102609379B (zh) * 2012-02-07 2015-03-25 无锡众志和达数据计算股份有限公司 一种存储系统的控制器硬件架构
JP6773443B2 (ja) * 2016-04-01 2020-10-21 株式会社ユニバーサルエンターテインメント 遊技機
JP6773439B2 (ja) * 2016-04-01 2020-10-21 株式会社ユニバーサルエンターテインメント 遊技機
JP6773442B2 (ja) * 2016-04-01 2020-10-21 株式会社ユニバーサルエンターテインメント 遊技機
JP6773441B2 (ja) * 2016-04-01 2020-10-21 株式会社ユニバーサルエンターテインメント 遊技機
JP6773438B2 (ja) * 2016-04-01 2020-10-21 株式会社ユニバーサルエンターテインメント 遊技機
JP6773440B2 (ja) * 2016-04-01 2020-10-21 株式会社ユニバーサルエンターテインメント 遊技機

Also Published As

Publication number Publication date
JPH11203462A (ja) 1999-07-30

Similar Documents

Publication Publication Date Title
US7016984B2 (en) System controller using plural CPU's
US20110075943A1 (en) image processing apparatus
JP2004048372A (ja) 画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法
JP3702630B2 (ja) メモリアクセス制御装置および方法
US5894586A (en) System for providing access to memory in which a second processing unit is allowed to access memory during a time slot assigned to a first processing unit
US6731406B1 (en) Segmented multilevel screening for printing files in a page description language
US6483604B1 (en) Disk-based image storage system and method with prioritized loading and retrieval operations
US20080052484A1 (en) Method, apparatus, and computer program for image data processing
US7336380B2 (en) Raster generation system and method of processing raster data
US7006258B2 (en) Image processing apparatus, control method therefor, and image processing system
JP5340058B2 (ja) 画像処理装置、その制御方法及びプログラム
US10284743B2 (en) Image processing apparatus and method for controlling the same
US5938743A (en) Method of using the UNIX physio to allow data to be transferred on a plurality of channels concurrently
US20020018238A1 (en) Printer, print control apparatus and method
JP3714840B2 (ja) データ転送方法とデータ転送制御装置
US20120250093A1 (en) Image Forming Apparatus that Buffers Data in a Storage Device and Reduces Delays in Process
JPH08314793A (ja) メモリアクセス制御方法および該方法を適用した半導体集積回路および画像復号装置
JP2000092469A (ja) デジタル受信端末
JP4034323B2 (ja) 画像データ処理方法と画像データ処理装置及び画像形成装置
JPH10208031A (ja) 画像処理装置
JP2004345260A (ja) 画像出力装置
JP2001211079A (ja) 符号化復号化装置
JP2000148576A (ja) ファイル管理システム
JP3791404B2 (ja) 画像処理装置
JP2001310504A (ja) プリンタ制御装置の画像データ読み出し方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050616

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: 20050628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050711

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees