JP3981651B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP3981651B2
JP3981651B2 JP2003157143A JP2003157143A JP3981651B2 JP 3981651 B2 JP3981651 B2 JP 3981651B2 JP 2003157143 A JP2003157143 A JP 2003157143A JP 2003157143 A JP2003157143 A JP 2003157143A JP 3981651 B2 JP3981651 B2 JP 3981651B2
Authority
JP
Japan
Prior art keywords
data
image
image data
block
memory
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
Application number
JP2003157143A
Other languages
English (en)
Other versions
JP2004048727A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003157143A priority Critical patent/JP3981651B2/ja
Publication of JP2004048727A publication Critical patent/JP2004048727A/ja
Application granted granted Critical
Publication of JP3981651B2 publication Critical patent/JP3981651B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ブロック間除去フィルタ並びにこれに適した画像圧縮方法および画像復号方法に関し、詳しくは一画面を構成する画像をn×n画素からなるブロックを単位として分割し、このブロックを単位としてデータの処理を行なう画像処理技術に関する。本発明は、テレビゲーム機、パソコン用表示装置、マルチメディア機器等に使用される画像処理技術に適用可能であり、特に画像圧縮された符号化データを復号再生する技術に関する。
【0002】
【従来の技術】
近年、自然画像や動画を扱う要求の高まりに応じて、画像データを効率よく圧縮し、必要に応じて高速に復号して表示する様々な画像処理装置が提案されている。画像処理を行なう装置や画像を読み出す装置の動作速度が極めて高速になれば、圧縮された形で記録された画像データを、メモリを全く持たずに直接再生することも不可能ではないが、毎秒数十フレーム以上の画像データの再生が必要となる動画の再生の場合、通常の画像処理装置は、少なくとも一画面分のフレームバッファを備えていた。
【0003】
こうした画像データの圧縮については、画面を構成する画像データをn×n画素のブロックに分割し、このブロックを単位として直交変換,離散コサイン変換などの符号化、更にはハフマンコード化などが知られている。DCT変換を用いたYUV形式のカラー画像の圧縮方式として、例えばオーム社刊、テレビジョン学会編、原島博監修「画像情報圧縮」の第288〜297頁には、J−PEG(Joint Photograpics Expert Group)アルゴリズムによる画像の符号化方式が詳細に記載されている。この他、CCITT(国際電信電話諮問委員会)のH.261の画像符号化方式など、直交変換による画像符号化・圧縮方式が知られている。
【0004】
これらの画像圧縮では、ブロック単位で処理がなされ、復号時に元のデータを完全には復元できない非可逆的変換が採用されているので、各ブロックの境目では原画像の連続性が失われ、不連続な境界が出現することが有り得る。そこで、従来復号した画像データを一旦記憶し、隣接するブロックのデータを読み出す際に、隣接する画素のデータの荷重平均を演算する等のフィルタ演算を行ない、ブロック歪を除去する処理がなされていた。この処理を行なうものを、ブロック歪除去フィルタと呼んでいる。
【0005】
なお、こうした圧縮画像符号化方式についての従来技術の概要は、トリケップスNo.137「画像符号化標準と応用技術」(トリケップス出版、川内健)第19頁〜第29頁に記載されている。この記載に基づいて、静止画像符号化標準の概要について説明する。本文献第23頁に述べられいるように、画像の符号化方式には、復号画像の表示順序の観点から2つに分けられ、ひとつは、最終的な画像品質の復号画像が上から順次表示されるシーケンシャル符号化方式であり、いまひとつは、解像度および階調性の低い大まかな復号画像が上から下まで表示された後に順次解像度および階調性が向上してゆくプログレッシブ符号化方式である。また、第27頁に述べられているように、圧縮データはImage/Frame/Scanという3つの階層構造をとっている。シーケンシャル符号化の場合、1つのImage(画像)は1つのFrame(1画面分)の圧縮データをもつ。プログレッシブ符号化の場合、1つのImage(画像)は複数のFrame(1画面分)を含み、Frameの先頭にはFrameに対応するヘッダコードが付き、その後に1以上のScanがつながっている。Scanとは、画像の上から下までに対する圧縮データを示し、総ての色成分が入っている場合には、Frameの中には一つのScanしか含まれないが、それ以外の場合には、複数のScanが含まれる。以上のように、シーケンシャル符号化方式およびプログレッシブ符号化方式のいずれにしても、圧縮データは画像の上から下までを単位として構成されている。
【0008】

【発明が解決しようとする課題】
定の画素からなるブロックを対象として画像圧縮を行なう変換符号化の場合、復号化もブロックを単位として行なわれるから、CRT等の表示装置に表示するために画像を表示装置の走査線に沿って読み出そうとすると、ブロック単位で復号したデータを一旦メモリに蓄積し、改めて走査線に沿ってライン単位で読み出す処理(ブロック−ライン変換処理)が必要となる。この時、走査線に直交する方向でブロック境界を跨ぐ際の歪除去を行なおうとすると、ブロックの最終ラインについては1ライン分の画像データを一旦ラインバッファに記憶しておかなければならない。その次のライン、即ちブロックの最初のラインに対応した画像データを読み出す時、ラインバッファに記憶したデータとの間でフィルタ演算を行ない、その結果を表示する画像データとして扱うのである。そうすると、ラインバッファは、画面の走査線方向の画素数に対応した大きさのものが必要になってしまう。
【0009】
本発明は、上記の問題点を解決し、ブロック歪の除去をできるだけ少ないハードウェアの付加により実現することを目的としてなされた。
【0013】
【課題を解決するための手段】
本発明のブロック歪除去フィルタは、
一画面を構成する画像データをn×n画素(nは2以上の整数)からなるブロックを単位として縦横に分割し、該ブロックを単位として非可逆符号化方式により符号化された圧縮データを画像データに復号する際、用いられるブロック歪除去フィルタであって、
画像を構成する前記符号化された圧縮データから、前記縦横のいずれか一方向に沿って復号された2nライン分の画像データおよびこれに隣接する2nライン分の画像データをそれぞれ記憶する第1および第2のメモリと、
前記第1,第2のメモリへの復号化された前記画像データの記憶と読出とを交互に行なわせると共に、前記第1,第2のメモリへの画像データの記憶とは異なるタイミングで、前記第1,第2のメモリからnライン分のデータを、ラインを単位として読み出す読出手段と
画像表示用に第1,第2のメモリの一方最終ラインを読み出す際には、該第1,第2のメモリの他方の第1ラインを読み出し、両データ間で所定のフィルタ処理を行なう第1の演算処理部と
を備えたこと
を要旨とする。
【0014】
また、本発明の第2のブロック歪除去フィルタは、上記ブロック歪除去フィルタにおいて、更に
前記復号された画像データを、画像を構成する前記縦横のいずれか一方向に沿ったmブロック分(mは値1以上の整数)、2列を基本単位として扱うものとし、
前記圧縮データを復号して前記第1または第2のメモリに記憶する際、該mブロック分の画像データを、列方向の並びを優先して順に読み出す読出手段と、
該読み出しの際に第1列目のブロックの最終ラインのデータを記憶する最終ラインデータ記憶手段と、
第2列目のブロックの最初のラインのデータの読み出し時に、該最初のラインのデータと前記最終ラインデータ記憶手段に記憶された最終ラインのデータと、画素単位で所定のフィルタ演算を行なう第2の演算処理部と
を備え、
該第2の演算処理部による処理後のデータを前記第1,第2のメモリに記憶すること
を要旨とする。
【0015】
更に、第3のブロック歪除去フィルタは、上記ブロック歪除去フィルタにおいて更に、
前記第1または第2のメモリから、画像表示用にライン毎の画像データを連続的に読み出す際、前記各ブロックの終端に対応するデータを記憶する終端データ記憶手段と、
該第1または第2のメモリから、画像表示用にライン毎の画像データを連続的に読み出しており、前記各ブロックの開始端に対応したデータを読み出す際には、前記記憶された終端のデータとの間で所定の演算を行なう第3の演算処理部と
を備えたことを要旨とする。
【0017】
他方、本発明の画像復号方法の一つは、
一画面を構成する画像データをn×n画素(nは2以上の整数)からなるブロックを単位として縦横に分割し、該ブロックを単位として非可逆符号化方式により符号化した圧縮データを復号する方法であって、
該連続する2個のブロックの境界でブロック歪を除去する第1のフィルタ処理を施し、
該第1のフィルタ処理を施した該ブロック2個分の画像データである2nライン分のデータを単位として、第1,第2のメモリに交互に記憶し、
前記第1,第2のメモリから、前記記憶のタイミングとは異なるタイミングで、前記記憶したデータを表示用に読み出す際、該走査方向に隣接するブロックの境界に対応するデータを用いて、前記第1のフィルタ処理とは異なる方向に隣接するブロック間のブロック歪を除去する第2のフィルタ処理を施し、
前記第1,第2のメモリからnライン分のデータを、ラインを単位として読み出す際、画像表示用に第1,第2のメモリの一方の最終ラインを読み出す際には、該第1,第2のメモリの他方の第1ラインを読み出し、両データ間で第3のフィルタ処理を施すことを要旨とする。
【0029】

【作用】
ロック歪除去フィルタ関する発明について説明する。本発明のブロック歪除去フィルタは、画像を構成する縦横いずれか一方向に沿って復号されたnライン分の画像データであり第1のメモリが記憶する画像データと、この画像データに隣接したnライン分の画像データであって第2のメモリが記憶する画像データとの間で、所定のフィルタ処理を行なうものである。即ち、演算処理部が、画像表示用に第1または第2のメモリの最終ラインを読み出す際には、同時に第2または第1のメモリの第1ラインを読み出し、両データの加重平均値を取るなどのフィルタ処理を行なうのである。
【0030】
また、本発明の第2のブロック歪除去フィルタは、復号された画像データを、画像を構成する縦横いずれか一方向に沿ったmブロック分(mは値1以上の整数)×2列以上を基本単位として扱うものとする。この単位は、JPEG等のように、輝度情報と色差信号とで圧縮の度合いを異ならせている符号化を採用している場合に、有用な単位である。ここで、読出手段は、画像データのブロックを単位とした読み出しにおいては、列方向を優先的な読み出し方向として読み出す。この方向に隣接するブロックに対応した画像データの読み出し時に、最終ラインデータ記憶手段は、前のブロックの最終ラインのデータを記憶しておき、次のブロックの最初のラインのデータの読み出し時の処理供するのである。即ち、演算処理部が、次のブロックの最初のラインのデータと、最終ラインデータ記憶手段に記憶しておいた最終ラインのデータとに対し、画素単位で所定のフィルタ演算を行なうのである。この結果、mブロック×少なくとも2列の単位のなかでのブロック間の歪は、その内部でフィルタ処理されることになる。
【0031】
更に、第3のブロック歪除去フィルタは、第2発明としてのブロック歪除去フィルタのフィルタ機能に加えて以下の機能を果たす。即ち、2列×mブロックの基本単位による上記の処理をブロックのm個の並びの方向に繰り返して2×nライン分の画像データを第1のメモリに記憶し、この画像データに隣接した2×nライン分の画像データを第2のメモリに記憶する。そこで、第2の演算処理部が、画像表示用に第1または第2のメモリの最終ラインを読み出す際には、第2または第1のメモリの第1ラインを読み出し、両データ間で所定のフィルタ処理を行なう。この結果、2×nラインの幅の画像同士の境界でのブロック歪が除去される。
【0032】
ここで、第1または第2のメモリから、画像表示用にライン毎の画像データを連続的に読み出す際、mブロック方向の終端のデータを記憶する終端データ記憶手段と、基本単位内の最初のブロックに対応したの開始端のデータを読み出す際、前記記憶された終端のデータとの間で所定の演算を行なう第3の演算処理部を備えるものとすれば、mブロック方向のブロック間の歪を除去するフィルタ処理を容易に実現することができる。
【0033】
なお、これらのブロック歪除去フィルタにおける基本単位は、mが値1、即ち列方向にのみ2列以上連続するブロックの集合とすることもできる。この場合、総てのブロック間の除去フィルタを最も容易に構成することができる。
【0035】
更に、本発明の画像復号方法によれば、復号した各ブロックの画像データを、画像の走査方向とは異なる方向に少なくとも2個連続して読み出し、連続する2個のブロックの境界でブロック歪を除去するフィルタ処理を施し、フィルタ処理を施した画像データを、画像の走査方向に連続して記憶し、記憶した画像データを表示用に読み出す際、走査方向に隣接するブロックの境界でブロック歪を除去するフィルタ処理を施す。この方法では、復号化の際に走査方向とは異なる方向に2個連続して読み出せればよく、符号化が走査方向と異なる方向に隣接するブロックの順になされていなくとも差し支えない。
【0036】
【発明の実施の形態】
以上説明した本発明の作用効果を一層明らかにするために、次に本発明の好適に実施例について説明する。図1は、本発明の一実施例としてのブロック歪除去フィルタを組み込んだ画像処理装置を組み込んだビデオゲーム装置20の外観図、図2は、その内部構成を示すブロック図である。ブロック歪除去フィルタについて説明する前に、このビデオゲーム装置20において行なわれる画像データの復号化の処理の概要について説明する。
【0037】
このビデオゲーム装置20は、図1に示すように、CD−ROM21が装着可能なゲーム機本体22と、この本体22に接続されたゲームパッド24,26と、ビデオ信号をカラーテレビ28に出力するビデオ信号ケーブル30と、音声を出力するスピーカ34等から構成されている。本体22は、開閉可能なカバー31を備え、このカバー31を開いてCD−ROM21を、CD−ROMドライブ32に装着する。この状態でカバー31を閉めると、CD−ROMドライブ32のターンテーブルが回転し、CD−ROM21に記録されたゲームプログラムや画像および音声情報(以下、AV情報と呼ぶ)が本体22内のマイクロプロセッサにより読み出され、ゲームが開始される。ゲームは、通常ゲームパッド24,26のスイッチ24aやカーソルスティック24b等を操作することにより進行する。
【0038】
本体22内には、CD−ROM21に記録されたデータを用いて動画を表示する種々の回路が内蔵されている。これを図2のブロック図に示す。図示するように、このビデオゲーム装置20は、SCSIバス36を介して接続されたCD−ROMドライブ32の他、画像処理とこれに関する総ての処理を統括的に司るマイクロプロセッサ(以下、MPUという)40と、このMPU40に直接接続されたメインメモリ(以下、M−RAMと呼ぶ)41と、同じくBIOSプログラムを記憶したROM42と、MPU40のバス(M−BUS)43に接続された各種ユニット、即ち画像信号コントロールユニット45、画像データ伸長ユニット47、特定の画像信号を出力するVDPユニット49、ビデオ信号の合成と出力を行なうビデオエンコーダユニット50、音声データを扱う音声データ出力ユニット52とを備える。
【0039】
また、このビデオゲーム装置20内には、画像信号コントロールユニット45のローカルバス(K−BUS)54に接続されたメモリ(以下、K−RAMと呼ぶ)55、画像データ伸長ユニット47のローカルバスに接続された2個のメモリ(以下、A側メモリ47cおよびB側メモリ47dと呼ぶ)、VDPユニット49のローカルバスに接続されたビデオメモリ(以下、V−RAMと呼ぶ)59、ビデオエンコーダユニット50からの出力信号を通常の映像信号(NTSC)に変換し、カラーテレビ28に出力するNTSCコンバータ60が備えられている。
【0040】
MPU40は、高速演算可能なものであり、浮動小数点演算を含む算術論理演算可能な演算部40aと、ダイナミックメモリ用のコントローラ40bを備える。このMPU40は、メインメモリ41に展開されたプログラムに従い、予めROM42に組み込まれたBIOSを利用して、ゲームパッド24,26やCD−ROM21等との入出力を行ないつつ、各ユニットを制御して、動画の表示や音声の出力を行なって、ゲームを進行する。
【0041】
画像信号コントロールユニット45,画像データ伸長ユニット47,ビデオエンコーダユニット50および音声データ出力ユニット52は、それぞれ大規模な論理回路により構成されている。各ユニットの構成と簡単な働きを説明する。
【0042】
画像信号コントロールユニット45:このユニット45は、M−BUS43を介してMPU40とのデータのやり取りを行なうMPUI/F45a、SCSI−BUS36を介してCD−ROMドライブ32などとデータのやり取りを行なうSCSIコントローラ45b、CD−ROM21などから入力した画像データに対してアフィン変換を行なうAFFINコンバータ45c、CD−ROM21等から受け取った画像データの出力を制御するグラフィックコントローラ45d、同じく音声データの出力を制御するサウンドコントローラ45e等から構成されている。この画像信号コントロールユニット45は、CD−ROM21等から受け取ったデータから画像データと音声データとを取り出し、K−RAM55にこれらのデータを一時的に蓄える。蓄えられたデータは、MPU40の制御を受け、グラフィックコントローラ45dやサウンドコントローラ45eにより、所定のタイミングで、画像データ伸長ユニット47や音声データ出力ユニット52などに出力される。なお、画像データに対して、MPU40から所定のアフィン変換を指示された場合には、AFFINコンバータ45cにより、必要なアフィン変換を施し、画像データの線形変換(画像の変形)を行なう。
【0043】
画像データ伸長ユニット47:このユニット47が、本発明の画像復号化装置,ブロック歪除去フィルタ,画像復号方法の実施例に相当するので、その構成は、画像の符号化を含めて後で詳細に説明する。その機能を概説すれば、受け取った画像データに対してハフマン復号化を行ない、ハフマン復号化がなされたデータに対してDCT逆変換(IDCT)を行なったり、データによってはランレングスによる伸長を行なう。更に、IDCTがなされた画像データに対してブロック歪を除去するフィルタ処理を行ない、カラーテレビ28に表示可能な走査線方向の画像データに並べ直すブロック−ライン変換を行なうのである。これらの処理を行なうため、このユニット47には、必要な処理回路と共に、これらの制御を司るコントローラ47eが設けられている。
【0044】
VDPユニット49:このユニット49は、実際には同じチップが2個搭載されている。機能としては同一であり、それぞれ特定のパターン,色彩による背景画像とスプライトと呼ばれるブロック単位の画像とを生成する機能を有する。スプライトは、ゲームなどにおける動き回るキャラクタや生成・消滅を頻繁に行なうブロックなどを容易に表示できるにように特化した画像であり、MPU40からの信号に基づいて、複数個のブロックの映像信号を、背景画像と共に出力する。VDPユニット49に接続されたV−RAM59には、スプライトの画像、即ち必要なキャラクタ等が記憶される。MPU40がコマンド、例えばある地点から他の地点までキャラクタを移動せよと言ったコマンドを出力すると、VDPユニット49は、このコマンドを解析し、V−RAM59に記憶されたスプライトを、例えば移動の経路に沿って順次展開・消去して行くことで、そのコマンドに対応した動きを容易に実現する。
【0045】
ビデオエンコーダユニット50:このユニット50は、画像信号コントロールユニット45,画像データ伸長ユニット47,VDPユニット49からの画像データを入力するインタフェース部50a、画像データの色彩を決定するルックアップテーブルや入力される複数の画像データの優先順位を設定する回路などを内蔵し設定された優先順位に基づいて複数の画像データを合成する画像合成部50b、合成された画像データをアナログ信号に変換するDAC部50c、および画像合成部50bを制御するコントロール部50dを備える。各部の詳細については、後述するが、このビデオエンコーダユニット50では、画像信号コントロールユニット45からの画像信号と、画像データ伸長ユニット47からの画像信号と、VDPユニット49からの2セットの画像信号(背景画像とスプライト)とを入力し、優先順位を付けて、これらの画像を合成する。各画像間の合成の度合いは、手前側の(優先順位の高い)画像が向こう側の画像に対して、透明から不透明まで、複数の段階に亘って設定可能である。
【0046】
音声データ出力ユニット52:このユニット52は、スピーカ34から音声,音楽などを出力するためのユニットであり、適応差動パルス符号変調(ADPCM)により音声合成を行なうADPCM部52a、予め定められた複数の音源を同時に生成可能な音源ジェネレータ(PSG)52b、これらの合成音や音源からの音を合成するミキサー52cを備える。このユニット52は、画像信号コントロールユニット45またはMPU40からのデータに従って音声を合成したり、音源を利用して音楽を演奏するなどし、これをスピーカ34に出力する。なお、本体22に内蔵のスピーカ34は一つであり、モノラルとなるが、外部への出力はステレオとなっている。
【0047】
まず、CD−ROM21に記憶されている圧縮されたデータの生成について説明する。画像の復号化の処理について説明するためには、圧縮されたデータに対する理解が必要だからである。図3は、画像データの圧縮装置100と伸長装置200の機能を示すブロック図である。
【0048】
画像データ圧縮装置100は、ここでは、CD−ROM21に記録するデータを作成する装置であり、原画像データf(x,y)に対してディスクリートコサイン変換を行なうDCT部110と、DCT変換で得られた変換係数F(u,v)を量子化する量子化部120と、量子化された変換係数QF(u,v)をハフマン符号化して圧縮画像データZZを作成するハフマン符号化部130と、量子化テーブル作成部140と、ハフマン符号テーブルメモリ150とを備えている。量子化テーブル作成部140は、後述するように、基本量子化テーブルBQTと量子化レベル係数QCxとに基づいて量子化テーブルQTを作成する。画像データ圧縮装置100により圧縮生成された圧縮画像データZZは、CD−ROM21に記憶されて、本実施例のビデオゲーム装置20に供給される。
【0049】
ビデオゲーム装置20では、CD−ROM21に記録されている圧縮データは様々な処理を受けることになるが、この圧縮されたデータは、実際には画像データ伸長ユニット47に入力される。画像データ伸長ユニット47内で特にこのデータの復号化を行なう部分が、画像データ伸長装置200である。図3の下半分に、画像データ圧縮装置100の構成に対応する形で、伸長装置200の構成を示した。この画像データ伸長装置200は、圧縮画像データZZをハフマン復号化するハフマン復号化部210と、復号された量子化後の変換係数QF(u,v)を逆量子化する逆量子化部220と、逆量子化された変換係数FF(u,v)にディスクリートコサイン逆変換を行なって画像データff(x,y)を得るIDCT部230と、ハフマン符号テーブルメモリ240と、逆量子化テーブル作成部250とを備えている。逆量子化テーブル作成部250は、圧縮画像データZZから復号された基本量子化テーブルBQTと量子化レベル係数QCxとをハフマン復号化部210から受取り、これらに基づいて量子化テーブルQTを作成する。この量子化テーブルQTは、圧縮装置100で用いられた量子化テーブルQTと同じである。また、ハフマン符号テーブルメモリ240に記憶されているハフマン符号テーブルHTも圧縮装置100のハフマン符号テーブルメモリ150に記憶されているものと同じである。
【0050】
図4(A)は、ゲームの背景画像となる原画像の一例を示す平面図である。この原画像は、一様な色で塗られた背景BGに火山の自然画がはめ込まれた画像である。図4(B)は、1つの画素ブロックPBを含む原画像の一部を拡大して示している。一般に、画素ブロックPBは、M×N個の画素PXを含むように設定できる。2つの整数M,Nの値としては8または16が好ましく、この実施例では、M=N=8である。なお、整数MとNを異なる値に設定しても良い。後述するように、圧縮画像データZZの中で背景BGを表わすデータ部分は、一様色の画素ブロックPBが連続することを示す特別なデータ形式(ヌルランデータ)を有している。
【0051】
画像データ伸長ユニット47内には、ランレングスによって圧縮されたデータを伸長する回路なども内蔵されており、データ圧縮とデータの伸長の手法については、本発明に直接対応した部分ではないが、本発明の実施例が扱う画像データに密接に結びついているので、本発明の対応した実施例部分の説明のあとで詳しく説明する。ただし、以後の説明の都合上、符号化が行なわれた圧縮データの構造については、先に説明しておく。
【0052】
図5は、圧縮データの構成を示す説明図である。圧縮データの全体(その一単位を、以下データ構造体と呼ぶ)は、図5(A)に示すように、ヘッダ部と圧縮データ部とダミー部とで構成されている。ヘッダ部は、それぞれ1バイトの4つのデータDFH,DFL,DLH,DLLを有している。最初の2つのデータDFH,DFLは、圧縮データ部に含まれるデータの種類を示している。圧縮データ部のデータには、基本量子化テーブルBQTのデータ、フルカラー自然画像圧縮データ、ランレングス画像圧縮データなどの種類がある。即ち、データの種類とは、自然画像やアニメ画像の色数の違いなどを示しており、画像データ伸長ユニット47では、このデータDFH,DFLに基づいて、後述するように、内部の処理方法を切り替えている。ヘッダの後部16ビットのデータ(DLH+DLL)は、圧縮データ部とダミー部の合計のデータ長を示している。このデータは、圧縮データ全体のデータ領域の大きさを示し、画像データ伸長ユニット47では、このコード(DLH+DLL)によりデータをカウントし、規定数のデータが入力されたら、画像信号コントロールユニット45に対するデータのリクエストを解除している。
【0053】
圧縮データ領域は、実際の画像データを圧縮したデータが収納されている部分であり、一つのデータ構造体には、走査線の数で言うと16ライン分のデータが含まれている。実施例で取り扱っている画像は水平方向256画素×垂直方向240ライン(走査線数)であり、一画面を構成するには、図5のデータ構造体を15個転送することになる。画面とデータ構造体との関係を模式的に示したのが、図6である。一画面を構成する15個のデータ構造体DD1ないしDD15に含まれる画像データの種類(モード)は、各データ構造体毎に一つに限られるから、16ライン分のデータは、その内部ではいずれか一種類のデータに定まる。換言すれば、一画面について一種類の画像データではなく、複数種類の画像データが、16ライン幅を単位としてではあるが、混在可能となっているのである。なお、図5に戻って、ダミー部とは、圧縮データ部がハフマン符号を含む可変長のデータなので、合計のデータ長が、ワード(=2バイト)の整数倍の長さになるように調整するためのものである。
【0054】
図5(B)は、基本量子化テーブルBQTを表わす圧縮データの構成を示している。この1セットの圧縮データは、Y信号用の基本量子化テーブルBQTを表わすデータと、U信号/V信号共用の基本量子化テーブルBQTを表わすデータとを含んでいる。なお、基本量子化テーブルBQTを表わすデータはハフマン符号化しておかなくてもよい。
【0055】
図5(C)は、フルカラー自然画像の圧縮データの構成を示している。圧縮データ部には、量子化レベル係数QCxを表わす符号データと、各画素ブロックの符号データであるブロックデータと、一様色の複数の画素ブロックを示すヌルランデータとを含んでいる。
【0056】
図5(D)に示すように、1ユニットのブロックデータは4組のY信号用データと、1組のU信号データと、1組のV信号用データとで構成されている。図7は、YUVの各信号のブロックの関係を示す説明図である。図7(A)に示すように、この実施例における1画面は、256画素×240走査線の大きさを有している。Y信号に関しては、間引きをせずに、8×8画素の画素ブロック毎にDCT変換が行なわれる。一方、U信号とV信号に関しては、図7(B)に示すように、横方向と縦方向に1/2に間引き(サブサンプリング)されて、間引き後の8×8画素のブロックに対してDCT変換が行なわれる。従って、図7(C)に示すように、Y信号の4つの画素ブロックY1〜Y4の領域がU信号とV信号の1つの画素ブロックの領域に対応している。なお、Y信号を間引きせずにU信号とV信号を間引きするのは、人間の目が輝度の変化(Y信号の変化)には比較的敏感であるが、色の変化(U信号とV信号の変化)には比較的鈍感だからである。U信号とV信号のみを間引くことによって、画質を過度に劣化させずに圧縮率を高めることができる。なお、図5(D)に示す1ユニットのブロックデータは、図7(C)に示す各領域のハフマン符号データを順に並べたものである。図5(E)以下のデータ構造については、実施例の説明の後で説明する。
【0057】
次に、画像データ伸長ユニット47の全体構成について説明する。図8は、画像データ伸長ユニット47の内部構成を示すブロック図である。画像データ伸長ユニット47には、記述した画像データ伸長装置200,コントローラ47eの他に、圧縮データ取り込みブロック47a、ランレングス復号ブロック260、メモリコントロールブロック47b、第1のメモリであるA側メモリ47c、第2のメモリであるB側メモリ47dが設けられている。
【0058】
圧縮データ取り込みブロック47aは、画像信号コントロールユニット45からのデータを受け取る回路であり、その内部構成を更に図9に示す。図示するように、圧縮データ取り込みブロック47aは、ヘッダ検出回路271、モード識別回路272、データ長検出回路273、圧縮データカウント回路274、データ選択回路275を備える。ヘッダ検出回路271は、ヘッダ部(図5参照)の特定の符号を検出してヘッダ検出信号(パルス信号)HDPを出力する回路である。このヘッダ検出信号HDPは、メモリコントロールブロック47bにおいて、データを蓄積するメモリを切り替えるのに用いられる。モード識別回路272は、画像のモード(図5のDFH+DFL)を識別して、画像の圧縮モードが直交変換によるものであることを示す復号モード信号RMSあるいはランレングスによる圧縮モードであることを示す判別信号RSGを出力する回路である。この復号モード信号RMSは、画像データ伸長装置200およびメモリコントロールブロック47bに出力され、画像データ伸長装置200の起動および後述するブロック歪の除去フィルタの起動に用いられる。一方、判別信号RSGは、ランレングス復号ブロック260に出力され、その起動に用いられる。
【0059】
データ長検出回路273は、ヘッダ部のデータ長を示すコード(DLH+DLL)を検出しこれを出力する回路である。このコードは、圧縮データカウント回路274に出力される。圧縮データカウント回路274は、データ長検出回路273からのコード(DLH+DLL)をセットするカウンタを備え、データ構造体のデータ領域に存在する圧縮データを入力する度にこのカウンタをカウントダウンしてゆく。カウンタの値がゼロになったとき、データ要求信号DRQをインアクティブとして、画像信号コントロールユニット45に対するデータ要求を解除する。画像信号コントロールユニット45からのデータの転送は、図6に示したように、16水平ラインを単位として行なわれるが、実際の16ラインの表示に要する時間と較べると、データの転送時間の方がかなり短くなっている。従って、圧縮データカウント回路274からのデータ要求信号DRQは、16水平ラインの表示期間よりかなり以前にインアクティブとなる。16水平ライン分の表示期間が終了した時点で、圧縮データカウント回路274は、再びデータ要求信号DRQをアクティブとし、画像信号コントロールユニット45から圧縮データの転送を開始させる。なお、画像信号コントロールユニット45には、CD−ROM21からの圧縮データが、そのK−RAM55に蓄積されており、圧縮データカウント回路274からのデータ要求信号を受けて、直ちに次の16ライン分に相当するデータ構造体の転送を開始する。
【0060】
データ選択回路275は、モード識別回路272からの復号モード信号RMSを受けて、圧縮データCDTを振り分ける回路である。図では、以後の説明の都合上、自然画像を直交変換により圧縮した自然画像圧縮データNCDとランレングスにより圧縮したランレングス圧縮データRLDとを異なる符号を付けて示したが、これらは圧縮データCDTを、その圧縮モードに従って振り分けたものに過ぎない。
【0061】
圧縮データ取り込みブロック47aから出力される各種の信号は、図8に示したように、画像データ伸長装置200,ランレングス復号ブロック260,メモリコントロールブロック47b,コントローラ47eに出力されている。画像データ伸長装置200の内部構成は、既に説明したが、画像データ伸長装置200は、復号モード信号RMSを受けて、圧縮データNCDをIDCTにより復号し、伸長する。その画像データは、8×8のブロック4個からなる16×16の画像を基本単位としている。画像データ伸長装置200は、自然画像圧縮データNCDをまずハフマン符号化のアルゴリズムにより伸長し、次に8×8ドットのYUV成分それぞれとしてIDCT変換し、復号されたデータを再生自然画像データRNDとして出力する。また、再生自然画像データRNDを出力している場合には、出力するデータが復号済みの有効なデータであることを示すデータ有効信号DE1も出力する。
【0062】
一方、ランレングス復号ブロック260は、判別信号RSGを受けて、色を表わす数値とその色の続く長さの組合わせとして構成された圧縮データをランレングスにより復号し、その伸長されたデータを再生ランレングス画像データRRDとして、出力データが復号済みの有効なデータであることを示す有効信号DE2と共に出力する。再生ランレングス画像データRRDは、画素の色の数値データとなる。ここで、ランレングス復号用の圧縮データは、表示色のモード(256色、16色等)によって色の数値の領域の続く長さの領域を変化させて、圧縮の効率を高めている。従って、ランレングス復号ブロック260は、圧縮データ取り込みブロック47aのモード識別回路272が表示色のモードを判別した判別信号RSGを入力し、表示色のモードに対応した復号を行なうよう復号処理を変更している。なお、ランレングスによるデータの圧縮は、1水平表示分の単位で符号化することが可能であるが、自然画像の圧縮の単位(16ライン分)に合わせてランレングス符号化も16水平表示分を単位としてなされている。
【0063】
画像データ伸長装置200およびランレングス復号ブロック260の出力は、メモリコントロールブロック47bに入力され、ここで必要に応じて合成され、ブロック−ライン変換を施されて、一画面を構成する画像データとして出力される。このメモリコントロールブロック47bの回路の一例を図10に示す。このメモリコントロールブロック47bには、A側メモリ47cとB側メモリ47dが接続されており、メモリコントロールブロック47bは、画像データ伸長装置200およびランレングス復号ブロック260から入力した画像データを、A側もしくはB側メモリの一方に順次記憶し、他方から順次読み出し、これをA側メモリ,B側メモリについて交互に行なう処理を実行する。
【0064】
メモリコントロールブロック47bは、A側メモリ47c用のアドレスを発生するA側アドレス発生回路281、B側メモリ47d用のアドレスを発生するB側アドレス発生回路283、A側メモリ47cに対して読み書きされるデータのパスを切り替えるA側切替回路282、同じくB側切替回路284、復号後のデータおよび有効信号DE1,2を切り替える切替回路286、水平同期信号をカウントするカウント回路287、アドレスの一致を判断して一致信号を出力するアドレス一致検出回路288を備える。
【0065】
画像データ伸長装置200もしくはランレングス復号ブロック260からの各種信号は、切替回路286に入力され、ここで切り替えられる。即ち、切替回路286は、復号モード信号RMSにより信号を選択する回路であり、復号モード信号RMSが自然画像データの側が有効であることを示している場合には、再生自然画像データRNDおよび有効信号DE1側を選択して出力し、逆の場合には、再生ランレングス画像データRRDおよび有効信号DE2側を選択して出力する。選択された有効データDE1もしくはDE2は、A側アドレス発生回路281,B側アドレス発生回路283に接続されており、画像データ伸長装置200もしくはランレングス復号ブロック260が画像データを復号し、有効なデータを画素単位に順次出力している間だけ、選択信号SELにより有効とされている側の書込回路の側から書き込み用アドレスを発生させるのである。
【0066】
ここで、選択信号SELは、カウント回路287により次のように生成される。カウント回路287は、初期状態では、内部のカウンタに初期値16がセットされる。次に水平同期信号SYCが入力するたびにカウンタをダウンカウントし、その間、選択信号SELをハイレベルに保持する。カウンタがゼロになると、選択信号SELを反転すると共に、内部のカウンタには同様に値16をセットする。従って、再び水平同期信号SYCによるカウント動作が開始されるが、この間、選択信号SELは、ロウレベルに保たれる。即ち、選択信号SELは、水平同期信号SYCが16個入力するたびに反転する信号となる。
【0067】
切替回路286において切り替えられた再生自然画像データRNDもしくは再生ランレングス画像データRRDの一方は、A側切替回路282およびB側切替回路284に入力される。このA側切替回路282およびB側切替回路284は、同様に選択信号SELにより排他的に接点を切り替えられる。A側切替回路282,B側切替回路284の働きについて、A側アドレス発生回路281,B側アドレス発生回路283の動作と共に説明する。
【0068】
A側アドレス発生回路281は、内部に、書き込み用のアドレスを発生する書込回路281aと、読み出し用のアドレスを発生する読出回路281bとを有する。同様に、B側アドレス発生回路283は、内部に、書き込み用のアドレスを発生する書込回路283aと、読み出し用のアドレスを発生する読出回路283bとを有する。これらの回路は、A側とB側とで読み出しと書き込みが排他的に機能するように構成されている。具体的には、カウント回路287からの選択信号SELは、インバータINVで反転されており(図10では、反転された信号をSEL\で示した)、A側アドレス発生回路281の書込回路281aおよびB側アドレス発生回路283の読出回路283bに入力されている信号は、A側アドレス発生回路281の読出回路281bおよびB側アドレス発生回路283の書込回路283aに入力されている信号を反転した信号となっている。また、この選択信号SELはB側切替回路284に、一方選択信号SELの反転信号SEL\はA側切替回路282に、それぞれの切替信号として入力されている。
【0069】
従って、選択信号SELがハイレベルの場合には、A側アドレス発生回路281の読出回路281bがアクティブとなり、水平同期信号SYCに同期して、かつ水平同期信号を入力するたびに更新される読み出し用アドレスRADAを出力する。この時、A側切替回路282の接点は、図示R側に切り替えられている。従って、読出回路281bからの読み出し用アドレスRADAを受けてA側メモリ47cから読み出されたデータDAは、A側切替回路282および信号路DCを介して、次段のビデオエンコーダユニット50へと出力されることになる。また、この状態では、選択信号SELは、B側アドレス発生回路283の書込回路283aをアクティブとしており、有効信号DE1もしくはDE2が有効になるたびに、この書込回路283aから書き込み用アドレスWADBが、順次更新されつつ出力される。この時、B側切替回路284の接点は、図示W側に切り替えられている。従って、画像データ伸長装置200もしくはランレングス復号ブロック260からの再生自然画像データRNDもしくは再生ランレングス画像データRRDは、B側切替回路284を介してB側メモリ47dに書込データDBとして出力され、書込回路283aからの書き込み用アドレスWADBにより指定されたB側メモリ47dのアドレスに書き込まれる。
【0070】
一方、選択信号SELがロウレベルの場合には、A側アドレス発生回路281の書込回路281aがアクティブとなり、有効信号DE1,DE2が有効となるたびに、書き込み用アドレスWADAを順次更新しつつ出力する。この時、A側切替回路282の接点は、図示W側に切り替えられる。従って、画像データ伸長装置200もしくはランレングス復号ブロック260からの再生自然画像データRNDもしくは再生ランレングス画像データRRDは、A側切替回路282を介してA側メモリ47cに書込データDAとして出力され、書込回路281aからの書き込み用アドレスWADAにより指定されたA側メモリ47cのアドレスに書き込まれる。また、この状態では、選択信号SELの反転信号は、B側アドレス発生回路283の読出回路283bをアクティブとしており、この読出回路283bから、水平同期信号SYCに同期して、かつ水平同期信号を入力するたびに更新されつつ読み出し用アドレスRADBが出力される。この時、B側切替回路284の接点は、図示R側に切り替えられている。従って、読出回路283bからの読み出し用アドレスRADBを受けてB側メモリ47dから読み出されたデータDBは、B側切替回路284を介して、次段のビデオエンコーダユニット50へと出力されることになる。
【0071】
なお、復号モード信号RMSが、A側アドレス発生回路281およびB側アドレス発生回路283に入力されており、両回路は、復号されたデータの種類によって、各書込回路もしくは読出回路が発生するアドレスの更新の状態を変更している。これは、例えば再生自然画像データRNDの場合、CD−ROM21から取り出されるデータは、図11(A)に示すように、8×8を2行2列、順次配列した形式で再生されており、これをメモリに書き込んだ後、読み出す時には、表示のタイミングに合わせて、16水平ライン分を順次ライン単位でシリアルに読み出す必要があるからである。この場合には、メモリコントロールブロック47bが受け取る順序は、図11(B)に示すように、8×8のブロックを左上(1,1)→右上(1,2)→左下(2,1)→右下(2,2)の順であり、これを図11(C)に示すように、16ラインの配列に順次変換しておけば、読出は容易である。
【0072】
一方、再生ランレングス画像データRRDの場合には、色の数値データの形式をとり、16×16の領域を単位として再生しているから、同様に書込の順序と読出の順序は異ならざる得ない。このような書込と読出とを実現するためには、読出の場合のアドレスが連続アドレスになるよう書込用のアドレスを不連続なものとするか、逆に書込のアドレスを連続なものとしておき、読出のアドレスを不連続にするか、あるいは、両者いずれも連続なアドレスではなく所定の順序で変換しつつ書込・読出を行なうものとするか、様々な組合わせが可能である。更に、書込回路のみ再生自然画像データRND用と再生ランレングス画像データRRD用とを別々に発生させ、どちらのデータであってもメモリには順序よく格納し、読み出し用のアドレスは同一とすることも、あるいはその逆の構成とすることも可能である。
【0073】
以上説明したメモリコントロールブロック47bの機能をタイミングチャートにしたのが、図12である。図示するように、16水平同期信号SYCごとに、A側メモリ47c,B側メモリ47dが交互に、読出側,書込側に切り替えられる。また、データの読み出しは、水平同期信号SYCに同期して行なわれるが、データの書き込みは、復号され再生されたデータが用意されて有効信号DE1もしくはDE2が有効となったときに行なわれる。普通にデータの復号化が行なわれていれば、水平同期信号SYCの16個分の時間のうちに、16ライン分のデータの復号が完了するよう設定されているが、CD−ROM21からのデータの読み出しにエラーを起こしたケースなどで、データの復号が間に合わない場合も考えられる。こうした事態の発生を検出するのが、図10に示したアドレス一致検出回路288である。このアドレス一致検出回路288は、選択信号SELが反転したとき、書き込まれるデータの最終アドレスを計算して、これを内部のレジスタにセットする。次に、A側アドレス発生回路281の書込回路281aおよびB側アドレス発生回路283の書込回路283aの出力するアドレスWADA,WADBを監視し、一致するアドレスが出力されるか否かを判別する。選択信号SELが次に反転するまでに、計算した最終アドレスに一致するアドレスWADA,WADBが出力されなかった場合には、データ無効信号DISを出力する。このデータ無効信号DISは、次段のビデオエンコーダユニット50に対して、次の16ライン分のデータが無効であることを示す信号であり、この信号を受けてビデオエンコーダユニット50は、次の16ライン分のデータを有効な画像データとして扱わない。具体的には、実施例では、透明データとして扱っているが、無効データとして、スキップしても差し支えない。あるいは、ビデオエンコーダユニット50の停止を命じる信号として扱っても良い。
【0074】
以上説明した画像データ伸長ユニット47によれば、図6に示した一画面について、16ライン分を単位として圧縮されたデータ(図5にその構造を示したデータ構造体)が15個送られてくることにより、一画面を再生するが、最初の16ライン分の圧縮データが送られてくると、そのヘッダ情報に基づき圧縮のモードを検出して、対応する画像データ伸長装置200もしくはランレングス復号ブロック260を起動してデータを伸長する。画像データ伸長装置200もしくはランレングス復号ブロック260から送り出された復号後のデータは、有効信号DE1もしくはDE2に従って、A側メモリ47cに順次蓄積される。
【0075】
次の16ライン分の圧縮データが送られる状態になると、選択信号SELが反転し、データを記憶するメモリをB側メモリ47dに切り替える。その後、A側メモリ47cに対して復号後のデータを蓄積したのと同様に、B側メモリ47dに対して復号後のデータを蓄積するが、同時に先にデータを蓄積したA側メモリ47cからは、水平同期信号SYCに同期して1ライン毎にデータが読み出され、ビデオエンコーダユニット50に出力される。ビデオエンコーダユニット50では、この1ライン、即ち水平走査線に従うデータに基づいて、カラーテレビ28に画像を表示する。
【0076】
なお、水平同期信号SYCに同期して画像データを読み出した場合、カラーテレビ28の表示のタイミングから見ると、水平帰線期間分の遅れが必要になる場合があるが、この遅れは、A側アドレス発生回路281,B側アドレス発生回路283の読出回路281b,283bがアドレスを発生するタイミングとして生成しても良いし、ビデオエンコーダユニット50の内部において、必要なディレイを設けることでタイミングを調整しても差し支えない。
【0077】
通常は、CD−ROM21から画像信号コントロールユニット45を介して圧縮された画像データを読み出し復号して16ライン分の画像データをメモリに蓄積する処理の方が先に終了するから、水平同期信号SYCに基づく16ライン分の画像データが読み出された時点では、反対側のメモリには次の16ライン分の画像データが用意されている。従って、水平同期信号SYCを16個カウントするたびに切り替わる選択信号SELにより、A側メモリ47cとB側メモリ47dへの画像データの蓄積および反対側のメモリからの画像データの読み出しを切り替えることで、16ラインを単位として連続した画像データの読み出しが可能となる。
【0078】
また、この処理を繰り返せば、一画面の表示はもとより、これを毎秒60フレーム繰り返すことで、通常のテレビと同様の動画の再生が可能となる。しかも、256×240の画面を再生するのに要するメモリは、輝度信号Yの解像度とを8ビット(1バイト)、色差信号U,Vの解像度が各々がその1/4(2ビット)とすると、1画素当たり従来256×240×1.5バイト=92160バイト=737280ビットとなり、1メガビットのメモリが必要であったのが、16×256×1.5バイト=6144バイト=49152ビットとなり、64Kビットメモリ2個(A側およびB側)で済ませることができる。
【0079】
また、データの読み出しに要する時間を検討すると、水平帰線期間を85ドット、垂直帰線期間を22.5ライン分と考えると、1ドット(画素)当たりの時間は、1/{60×(256+85)×(240+22.5)}秒=186ナノ秒となる。1ドット当たりに許容される時間は、色差信号U,Vが、図7(B)に示したようにサブサンプリングされていることから、2ドットで輝度信号Y1,Y2、色差信号U,Vの4個のデータを読み出せば良く、その時間は、186×2/4=93ナノ秒となる。従って、特に高速なメモリを必要とせず、容量、動作速度とも通常のダイナミックRAMを使用することができる。また、A側メモリ47c,B側メモリ47dへの信号線を考えても、本実施例では、アドレス本数13,データ本数8となり、2セット必要とは言え、同一タイプのメモリを使用できるからそのアートワークは極めて単純である。これに対して、従来の一画面分のメモリを用意する構成では、アドレス本数17,データ本数8となる。書き込み用の画面と読み出し用の画面を別と考えれば、計50本となる。
【0080】
以上説明した本実施例によれば、16ライン分の画像データを記憶するわずか64Kビットのメモリを2組用意するだけで、256×240画素の画面を動画として再生することができる。しかも、CD−ROM21には、画像の特性に応じた手法で圧縮したデータを記憶しておき、これを圧縮方法に対応した復号化方法により復号して再生することができる。圧縮方法を16ライン分の領域に応じて変更することができるので、自然画像とアニメーション画像が一画面内に混在するような場合でも、効率よくデータの圧縮、再生を行なうことができる。結果的に、全画像データの圧縮効率は向上する。また、性質の異なる画像を一画面内に混在させることができるので、両画像をそれぞれ復号した後合成するといった繁雑な手間、回路を要せず、全体を極めて簡略なシステムとして構成することができる。この結果、装置の小型化,低価格化等を達成することができる。これは、ビデオゲーム装置20として極めて好適である。
【0081】
本実施例では、図6に示したように、一画面を先頭から16ラインずつの領域に分割して表示を行なうものとして説明した。つまり、各領域は、水平同期信号SYCに1から240の連続番号をつけたとすると、1,17,33,・・・,1+16×n(nは0から14までの整数)番から固定的に開始されているものとして説明したが、一つの領域をどの水平同期信号から始めるかを可変することも可能である。この設定は、実施例では画像データ伸長ユニット47のコントローラ47eを介してMPU40から与えられる。コントローラ47eからの指示に基づいて、圧縮データ取り込みブロック47aが圧縮データを取り込むタイミングを、水平同期信号SYCを単位としてずらすことが可能である。例えば、水平同期信号SYCで5本分後ろにずらすということは、各領域の開始位置が、6,22,・・・,(1+5)+16×nになるということである。一般式で記載すれば、ずらす量をm本(m=−15〜+15)とすれば、各領域の開始位置BSは、
BS=(1+m)+16×n
となる。即ち、ずらす量mをコントローラ47eを介して指示することで、16ライン分の画像をその領域内の所望の走査線位置から開始することができる。この指示は、ブロック単位に行なうことができる。
【0082】
この結果、画像を上下にスクロールすることが容易に可能となる。即ち、全ブロックについて、読み込みのタイミングを1ラインずつ早くすれば、画像は全体として1水平走査線だけ上に移動し、次のタイミングで更に1ラインずつ早くすれば更に1走査線だけ上に移動する。従って、この処理を15ライン上に移動するまで繰り返し、その次には、画像データの読み出しのブロックを16ライン分そっくりずらすものとし、読み込みのタイミングを正常に(m=0)に戻し、再度ここから読み出しのタイミングを1ラインずつ早くしてゆけば、画面全体をスムースに上方にスクロールできる。下方向のスクロールも全く同様に行なうことができる。更に、画面を構成する一部の領域についてのみ、上記の読み込みのタイミングをずらす処理を行なえば、画面の一部のみをスクロールすることができる。また、一部は上方向のスクロール、他は下方向のスクロールとしたり、順次読み込みのタイミングをずらしてゆく量を可変すれば、同一の画面内で異なる早さのスクロールなども実現することができる。従って、スクロール中の全画面を総てCD−ROM21に記憶しておく必要がなく、用意する画像データを低減してROM内に記憶する実質的なデータを増やすことができる。
【0083】
更に、次の処理により、16ラインを単位とする領域の内部で、途中までで表示を取りやめることができる。復号されるデータは、16ラインを単位としているので、A側メモリ47cおよびB側メモリ47dに用意されるデータは16ライン分まるごとである。そこで、画像信号コントロールユニット45は、現在の表示のタイミングを見計らって、コントローラ47eに対して初期化の命令を発行する。コントローラ47eは、初期化の命令を受け付けると、次の水平同期信号SYCに同期して、画像データ伸長ユニット47内部にリセット信号IRTを出力し、この装置全体を初期化する。
【0084】
この処理を実行するコントローラ47eの内部構成を図13に示す。図示するように、コントローラ47e内部には、CPUデータ格納レジスタ291とラッチ回路295、およびオアゲート296が備えられており、このレジスタ291には、画像信号コントロールユニット45のM−BUSおよび書込制御信号WRTが接続されている。画像信号コントロールユニット45から、初期化の命令がこのレジスタ291に書き込まれると、レジスタ291はその出力をハイレベルに設定する。この出力を受けるラッチ回路295は、次の水平同期信号SYCが入力した時点でその出力Qをハイレベルとするから、この時、オアゲート296を介して、リセット信号IRTが出力される。なお、2入力のオアゲート296の他の入力には、ビデオゲーム装置20全体のリセット信号RSTが接続されている。
【0085】
画像信号コントロールユニット45は、現在の表示の状況を監視しつつ、例えば特定の表示領域中の8番目の水平表示期間内に初期化の命令をコントローラ47eに書き込む。すると、次の水平同期信号SYCが入った時点で画像データ伸長ユニット47内部にリセット信号IRTが出力され、その領域内の9ライン目からは表示がなされなくなる。この実施例では、リセット信号IRTは、画像データ伸長ユニット47内の総てのブロック,回路に出力されているので、データの蓄積なども初期化される。従って、表示を再開する場合には、少なくとも16ライン前にそのリセット信号を解除するデータをCPUデータ格納レジスタ291に書き込んでおく。次の水平同期信号に同期してラッチ回路295が、データをラッチし、内部のリセット信号IRTを解除する。この結果、画像データ伸長ユニット47は動作状態に復し、表示させたい画像の復号と蓄積を開始する。水平同期信号SYC16個分の時間が経過して選択信号SELが切り替わると、蓄積された画像データは、蓄積されていた側のメモリから水平同期信号SYC毎に読み出され、通常の表示が開始される。
【0086】
この結果、16ライン分の領域の内部で所望の位置以降の表示を取りやめ、その後その領域と次の領域とを除けば、所望の位置から表示を再開することができる。表示データによっては1ライン単位で徐々に表示を増やしたり減らしたりすることが必要になることがあり、こうした要請に、本実施例の装置は容易に応えることができる。この機能を、ソフトウェアリセットと呼ぶ。なお、本実施例では、ソフトウェアリセットにより画像データ伸長ユニット47内部の全回路・ブロックがリセットされるものとして説明したが、A側切替回路282,B側切替回路284からビデオエンコーダユニット50への画像データを出力する信号路DCにゲートを設け、このゲートのみをリセット信号IRTでマスクする構成としても差し支えない。この場合に、圧縮データの復号化やメモリへの蓄積,メモリからの読み出しなどは、通常の表示時と同様に行なわれるので、どのタイミングからも画像の再表示が可能である。
【0087】
なお、コントローラ47eのCPUデータ格納レジスタ291は、ソフトウェアリセットのみに用いられるものではなく、圧縮データの復号のタイミングやA側メモリ47c,B側メモリ47dに蓄積された画像データの読み出しのタイミング等の制御に用いられる。例えば、水平方向の読み出しタイミングをセットすることで、水平方向のスクロールを行なうことも可能である。図14(A)は、この場合の回路構成を示すブロック図である。メモリから読み出された画像データがビデオエンコーダユニット50に出力される信号路に遅延回路298を設け、この回路298の遅延時間をCPUデータ格納レジスタ291の出力をラッチする8ビットラッチ287の出力により設定するのである。メモリからの画像データの読み出しは水平同期信号SYCに同期して読み出されているから、これを遅延すれば、水平同期信号SYCに対して表示の開始タイミングは遅延する。従って、図14(B)に示すように、1ラインの画像は開始位置がずれ、その末尾は次の走査線上に表示される。結果的に画像は右側にスクロールしたことになる。
【0088】
図14(A)の構成では、1ラインの画像データを遅延させることしかできないので、スクロールは右方向にしか行なえないが、図15に示す構成を取れば、左スクロールも可能である。この場合には、CPUデータ格納レジスタ291の出力によりA側アドレス発生回路281の読出回路281bおよびB側アドレス発生回路283の読出回路283bに対して、データの読出タイミングをずらすように指示するのである。この指示を受けた各読出回路281b,283bは、A側メモリ47c,B側メモリ47dから画像データを読み出すタイミングを水平同期信号SYCに対して前後にある程度ずらすことができる。水平同期信号SYCの場合、その信号の立ち上がりから実際の表示位置までには時間的な間隔があるから、水平同期信号SYCの直後からデータの読出を行なえば、画像を左方向に一定量スクロールすることができる。更に、各読出回路281b,283bがデータを読み出す先頭アドレスを一定量オフセットしてしまえば、画像の表示開始位置を自在に変更することができ、左スクロール、右スクロールも、16ライン分の領域を単位として自在に設定可能である。
【0089】
次に、本発明の第実施例としてのブロック歪除去フィルタについて説明する。図16は、実施例としてのブロック歪除去フィルタ300の概略構成図である。このブロック歪除去フィルタ300は、後述するように、第1実施例の画像データ伸長ユニット47の内部に組み込んで使用可能なものであるが、ここで、その動作の理解の便を図って、単独で構成した場合を図示する。図示するように、このブロック歪除去フィルタ300は、直交変換によりブロックを単位として圧縮された画像を復号するブロック画像発生装置(第1実施例で言えば画像データ伸長装置200)200aの後段に設けられるものである。
【0090】
このブロック歪除去フィルタ300は、第1,第2,第3のフィルタ301,302,303と、16ラインを単位として復号後の画像を記憶するA側メモリ307a,B側メモリ307b、第1のフィルタ301,302,303およびA側メモリ307a,B側メモリ307bを制御する画像メモリコントローラ320から構成されている。第3のフィルタ303の出力、即ちこのブロック歪除去フィルタ300の出力は、ディジタルデータをアナログデータに変換して、CRT等に表示を行なうビデオ回路(第1実施例で言えば、ビデオエンコーダユニット50,NTSCコンバータ60)に接続されている。
【0091】
第1,第2,第3のフィルタ301,302,303は、いずれも隣接する画像のデータを記憶しておき、フィルタ処理を施そうとする画像データとの間で加重平均を取る処理を行なうものである。具体的には、第1のフィルタ301は、8ビットのシリアル−シリアルのシフトレジスタ331と、加重平均を演算する演算器332と、第1の切替回路311から構成されている。また、第2のフィルタ302は、加重平均を演算する演算器335と第2,第3の切替回路312,313とから構成されている。第3のフィルタ303は、1ビットのラッチ341と加重平均を演算する演算器342と第4の切替回路314から構成されている。
【0092】
第1のフィルタ301のシフトレジスタ331は、ブロック画像発生装置200aからドット(画素)単位で入力される画像データを、ドット単位のクロックDCLに同期して入力し、8ドット分遅れて出力する。演算器332は、画像データを入力し、シフトレジスタ331の出力との加重平均を演算し、その結果を常時出力している。シフトレジスタ331の出力と演算器332の出力とは、第1の切替回路311の各接点に接続されており、画像メモリコントローラ320からの第1の制御信号CS1により選択された側の出力が、A側メモリ307a,B側メモリ307bへと出力される。
【0093】
ブロック画像発生装置200aにより出力された画像データは、第1のフィルタ301を通過した後、A側メモリ307a,B側メモリ307bのいずれかに走査線の順序に配列して記憶される。2つのメモリの切替や画像データの配列の入れ替えなどは、第1実施例で説明した通りであり、画像メモリコントローラ320から書き込み用アドレスWADA,WADB、読み出し用アドレスRADA,RADBなどが出力される点は、第1実施例と同一である。この2つのメモリから読み出された画像データDA,DBは、走査線方向に沿ったデータとなっているが、これが第2のフィルタ302に入力され、演算器335により加重平均の演算がなされたデータDDと併せて、計3種類の画像データDA,DB,DDが存在する。
【0094】
画像データDAおよびDBは、切替回路312に入力され、画像メモリコントローラ320からの第2の制御信号CS2によりいずれか一方が選択される。この選択後の信号と画像データDDとが第3の切替回路313に入力され、画像メモリコントローラ320からの第3の制御信号CS3により、いずれか一方が選択される。選択後の信号が、第3のフィルタ303へと出力される。
【0095】
第3のフィルタ303の1ビットのラッチ341には、第4の制御信号CS4がアクティブとなったとき画素単位で言えば一つ前のドットの画像データが記憶される。演算器342は、このラッチ341の出力と現在の画像データとの間で加重平均を演算する。第3のフィルタ303からの2つの出力は第4の切替回路314に入力され、画像メモリコントローラ320からの第5の制御信号CS5により、そのいずれか一方が出力される。これが、最終的な画像データとなり、その後のビデオ回路に出力される。
【0096】
図16に示したブロック歪除去フィルタ300によるブロック間歪の除去動作について説明する。直交変換により符号化され圧縮されたデータは、図17に示すように、輝度信号Yについては、8×8のブロックを単位として符号化されており、このブロック4つで16×16ドットの画像の輝度情報を表わしている。これに対して、色差信号U,Vは、サブサンプリングされており、各々8×8のデータとなっている。ブロック画像発生装置200aは、これらのデータを入力し、図18に示す画像データを復号し、これをA側メモリ307aおよびB側メモリ307bに交互に蓄積してゆく。A側メモリ307a,B側メモリ307bに蓄積される画像データは、16ライン(走査線)分のデータされており、B(1,1)〜B(2,32)までが最初のデータ領域に相当する画像データ、B(3,1)〜B(4,32)までが次のデータ領域に相当する画像データ、以下同じようにB(29,1)〜B(30,32)まで存在し、全体で、256画素×240ライン分の画面を構成している。
【0097】
このように展開された画像データを更に詳細に示したのが、図19である。復号されて得られた8×8のブロックの内部には、D(1,1)からD(8,8)まで、計64点の画素のデータが並んでおり、その読み出し方向は、図19(A)に示すように、走査線の方向(横方向)である。従って、ブロックの内部では、画素のデータはD(1,1)からD(1,2)・・・・D(1,8)の順に読み出される。一方、このブロック自体は、図19(B)に示すように、走査線方向と直交する方向に2個並び、これを一組として走査線方向に16個配列されている。即ち、ブロックBのつながり方は、B(1,1),B(2,1),B(1,2),B(2,2)・・・・・B(1,32),B(2,32)の順である。なお、この配列は、カラー静止画像符号化方式の世界的な標準であるJ−PEGアルゴリズムとは、異なっている。J−PEGアルゴリズムに従うブロック配列の場合の扱いについては、後述する。復号された直後のデータの配列は以上の通りであるが、これがA側メモリ307a,B側メモリ307bに記憶され後は、図19(C)に示すように、走査線に沿って画像データが配列された形式になっている。
【0098】
実施例では、DCT変換によりデータを符号化して圧縮するとき、8×8のブロックを単位としてデータを扱ってから、圧縮により高周波成分に対応した情報は失われる。この結果、復号しても完全に元の画像が復元できる訳ではなく、ブロックとブロックとの境目には、符号化により失われた情報による歪が現われ易い。これが、ブロック歪である。図18からも明らかなように、こうしたブロック歪は、実施例のケースでは3種類あり、図19に示したブロックBの配列の順序に従って通過する境界の順に示せば、m,n,p(m=1〜15,n=1〜32,p=1〜30)を配列を示す変数として次のように表わすことができる。
【0099】
境界SA:ブロックB(2m−1,n)とB(2m,n)との境界
境界SB:ブロックB(2m,n)とB(2m+1,n)との境界
境界SC:ブロックB(p,n)とB(p,n+1)との境界
【0100】
そこで、図16に示したブロック歪除去フィルタ300によるブロック歪の除去の様子を、この境界SA,SB,SC毎に説明する。まず、第1のフィルタ301は、シフトレジスタ331を備え、常時8ドット前の画像データを出力しており、そのデータDO1と現在の画像データとの間で演算器332による加重平均を求め、演算後のデータDO2を出力している。ブロックB(1,1)とB(2,1)との境界SAを例に取って説明する。画像メモリコントローラ320は、図20に示すように、B(2,1)のデータの最初の8ドットD(1,1)からD(1,8)を出力するタイミングになると、第1の制御信号CS1をアクティブとし、第1の切替回路311を切り替える。この期間には、演算器332は、直前の8ドット、即ちシフトレジスタ331から読み出されているブロックB(1,1)の最後の8ビットD(8,1)〜D(8,8)までのデータと現在のデータとの加重平均を演算し、出力しているから、第1のフィルタ301の出力は、この期間だけ、直前の画像データとの間で加重平均された画像データDO2となる。従って、第1のフィルタ301により、16ラインのデータを構成する前の段階で、8×8のブロック間の境界SAにおけるブロック歪が除去される。なお、上記説明では、ブロックB(1,1)とB(2,1)との間を例として取り上げたが、同様の処理が、ブロックB(2m−1,n)とB(2m,n)との境界でなされることは、当然である。画像メモリコントローラ320における第1の制御信号は、画素を単位とする画像データの基準クロックCLKをカウントし、画像データの開始から8クロック分ハイレベルとなり、他の56クロックの期間中ロウレベルとなる単純なカウンタ回路として容易に実現することができる。
【0101】
次に、第2のフィルタ302の働きについて、図21を参照しつつ説明する。第1のフィルタ301により16ライン内の走査線方向に直交する方向に並んだブロック間の歪は除去されるが、第1のフィルタ301によっては、16ラインを単位として隣接する領域間のブロックの境界SBにおける歪まで除去することはできない。第2のフィルタ302は、この歪を除去するためのものである。画像メモリコントローラ320は、第2の制御信号CS2を水平同期信号SYC16個毎に反転する信号として出力する。これは第1実施例における選択信号SELと等価の信号である。
【0102】
この第2の制御信号CS2は、A側メモリ307aもしくはB側メモリ307bのうち、現在データが読み出されている側からの出力が有効となるよう、第2のフィルタ302の第2の切替回路312を切り替る。この第2の制御信号CS2に同期して画像メモリコントローラ320は、A側メモリ307aにデータの書き込み用アドレスWADAを(あるいはB側メモリ307bにデータの書き込み用のアドレスWADBを)、B側メモリ307bにデータの読み出し用アドレスRADBを(あるいはA側メモリ307aにデータの読み出し用アドレスRADAを)、各々出力する。読み出し用,書き込み用、いずれのアドレスが出力されるかは、第2の制御信号CS2の状態により、結局A側メモリ307a,B側メモリ307bは、交互にデータの書き込み状態もしくは読み出し状態とされるのである。
【0103】
いま、図21上段に示すように、ブロックB(2,1),B(2,2)・・・の各ラインの画像データが読み出されているとしよう。詳細は示さないが、書き込み用アドレスWADAは、画像データが用意されるたびに更新されてゆき、通常データの読み出しに要する時間、即ち水平同期信号SYCの16個分の期間よりかなり以前に、次の16ライン分のデータの書き込みは完了する。他方、読み出し用アドレスRADAは、水平同期信号SYC毎に次のラインの先頭からデータを読み出すよう更新される。
【0104】
B側メモリ307bに出力されている読み出し用アドレスは、水平同期信号SYC毎に新たなラインの画像データに対応して出力されており、B側メモリ307bからは、各ラインの画像データが順次出力される。16個目の水平同期信号SYCが出力されたとき、B側メモリ307bからは、16ラインからなる一つの領域の最後のラインL16の画像データが読み出される。この時、画像メモリコントローラ320は、第2の制御信号CS2に先だって、第3の制御信号CS3を出力すると共に、A側メモリ307aに対して、次の領域の第1ラインL1のアドレスに相当する読み出し用アドレスRADAを出力する。この結果、一つの領域の第16ラインL16の画像データDBをB側メモリ307bから読み出しているときには、A側メモリ307aから次の領域の第1ラインL1の画像データDAも同時に読み出される。
【0105】
第2のフィルタ302の演算器335は、この両画像データDB,DAの加重平均を演算し、これを出力する。この時、第3の制御信号CS3により、第3の切替回路313は演算器335からの出力を有効とする側に切り替えられているから、第2のフィルタ302からは、加重平均を取った画像データDDが出力されることになる。この結果、この第2のフィルタ302により、16ラインを単位とする領域間のブロック歪は除去される。
【0106】
次に、第3のフィルタ303の働きについて説明する。このフィルタ303に対して画像メモリコントローラ320は、図22に示すように、一つのライン内の画像データの8ドット目毎にアクティブとなる第4の制御信号CS4を出力する。この第4の制御信号CS4を受けて、第3のフィルタ303内のラッチ341は、8ドット目の画像データを記憶し、これを保持する。次のドット、即ちブロックの最初のドットの画像データが読み出されたとき、演算器342は、ラッチ341に保持された一つ前の画素の画像データと現在の画像データとの加重平均を求める演算を行ない、その結果DF2を出力する。画像メモリコントローラ320は、この期間中にのみアクティブとなる第5の制御信号CS5を出力し、第4の切替回路314を、この期間中のみ演算器342の出力が有効となるよう切り替える。この結果、第3のフィルタ303の出力は、各ブロックBの最初の1ドットに対応する画像データを出力するときのみ、演算器342の出力DF2を出力し、その他の7ドットに対応する画像データを出力するときには、第2のフィルタ302から出力された画像データDF1をラッチ341を介してそのまま出力する。以上の処理により、走査線方向に隣接するブロック同士の境界SCでの歪は除去される。
【0107】
なお、実施例の第3のフィルタ303では、ラッチ341を設け、第4の制御信号CS4により、8ドット毎にデータをラッチするよう構成したが、第1のフィルタ301のシフトレジスタ331と同様に、1ビットのシフトレジスタを設け、常にその出力が1画素分遅れた画像データとなるようし、演算器342において常時一つ前の画素の画像データと現在の画像データとの間で加重平均を演算する構成とすれば、第4の制御信号CS4を用意する必要はない。
【0108】
以上のように構成されたブロック歪除去フィルタ300は、DCT変換により符号化された圧縮データを復号した際、各ブロック間に発生するブロック歪を総て除去することができる。しかも、A側メモリ307a,B側メモリ307bを巧みに利用して、各領域間の境界SBでのブロック歪を除去しているので、この境界SBでのブロック歪を除去するために特別なラインバッファを設ける必要がない。また、16ラインを単位とする領域内部のブロック間の歪は、A側メモリ307a,B側メモリ307bにデータを格納する以前に除去してしまうので、このためのメモリにわずか8ビットのシフトレジスタを用意するだけで足りるという大きな利点が得られる。
【0109】
本実施例では、図19(B)に示したように、ブロックの配列はB(1,1)→B(2,1)→B(1,2)→B(2,2)・・・の順となっている。このため、境界SAでのブロック歪を除去するのに、データの記憶手段としわずか8ビットのシフトレジスタ331を備えただけの第1のフィルタ301を用いることができるのであるが、他の配列であっても、本発明の考え方を適用することができる。DCTによる画像圧縮の国際的な標準であるJ−PEGアルゴリズムでは、図23に示すブロックの配列が基本であり、更に図24に示す拡張された配列が規定されている。図23に示す基本配列では、ブロックの配列は、B(1,1)→B(1,2)→B(2,1)→B(2,2)→B(1,3)・・・の順である。
【0110】
また、拡張配列では、図24に示すように、ブロックは、B(1,1)→B(2,1)→B(1,2)→B(1,3)・・・→B(1,2n )→B(2,1)→B(2,2)・・・→B(2,2n )→B(1,2n +1)→B(1,2n +2)・・・→B(1,2n+1 )・・・の順である。即ち、走査線方向に2n 個(nは自然数)毎にグループ化し、これを走査線方向にいくつか並べた構造である。n=1の場合が基本配列となる。
【0111】
画像の配列がJ−PEGアルゴリズムに従う場合のブロック歪除去フィルタ400の構成を、図25に示した。このブロック歪除去フィルタ400は、先の実施例に示したブロック歪除去フィルタ300の第2のフィルタ302および第3のフィルタ303に加えて、ブロック歪除去フィルタ300の第1のフィルタ301とは異なる第4のフィルタ401から構成されている。第4のフィルタ401は、16ビットのラインバッファ431と、加重平均の演算を行なう演算器432と、画像データの切替を行なう切替回路411とから構成されている。
【0112】
切替回路411は、画像メモリコントローラ320の第1の制御信号CS1により切り替えられる。一方、ラインバッファ431は、画像メモリコントローラ320から出力される制御信号CS0により駆動される。この第4のフィルタ401の動作を、図26に従って説明する。
【0113】
第4のフィルタ401は、先の実施例の第1のフィルタ301に変わるものであり、16ラインを単位とする領域内のブロック間の歪を除去するものである。そこで、画像データがJ−PEGアルゴリズムの基本配列(図23)に従って圧縮されているものとし、ブロックB(1,1)B(1,2)B(2,1)B(2,2)を例として説明する。J−PEGアルゴリズムの基本配列では、データはこの順にブロック画像発生装置200aから出力されてくる。更に、各ブロックの内部では、走査線方向の8ビットずつデータは取り出される。図では、この8ビットのデータをD11,D21,D31・・・D81として示した。
【0114】
画像メモリコントローラ320は、8×8のブロックB(1,1)の最後の8ビットのデータD81がブロック画像発生装置200aから出力されるタイミングで、制御信号CS0を出力する。この制御信号CS0を受けて、ラインバッファ431は、8ビットの画像データD81を記憶する。その後、次のブロックB(1,2)の画像データが順次出力され、同様に最後の8ビットのデータD82が出力されるとき、制御信号CS0は再びアクティブとなり、ラインバッファ431は、8ビットの画像データD82を記憶する。この結果、ラインバッファ431には、計16ビットのデータD81,D82が記憶されたことになる。
【0115】
その後、次のブロックB(2,1)の画像データD11が、ブロック画像発生装置200aから出力されるが、このタイミングで第1の制御信号CS1は、アクティブとなる。第1の制御信号CS1がアクティブとなると、ラインバッファ431から8ビットの画像データを読み出すと共に、切替回路411を演算器432からの出力が有効となるよう切り替える。ラインバッファ431から読み出される画像データは、図26に示すブロックB(1,1)の最終ラインのデータD81なので、演算器432では、このデータD81と現在読み出し中のデータD11との加重平均となる。
【0116】
このデータDO2が第4のフィルタ401の出力として、後段の第2のフィルタ302に出力される。第2のフィルタ302以下の構成は、先に説明した実施例と同一である。また、ブロックB(2,1)の全データD11〜D81が読み出された後、ブロックB(2,2)の画像データが読み出されるとき、同様に第1の制御信号CS1が出力され、ラインバッファ431から、先に記憶されたブロックB(1,2)のデータD82が出力される。従って、同様に、ブロックB(2,2)のデータD12と、ブロックB(1,2)のデータD82との加重平均が演算器432により演算され、このデータDO2が出力される。
【0117】
以上説明した実施例によれば、画像データがJ−PEGアルゴリズムの基本形式で符号化・圧縮されている場合でも、僅かな記憶容量(この実施例では16ビット)のラインバッファ431を用意するだけで、16ラインを単位とする領域内のブロック間の歪を除去することができる。更に、16ラインを単位とする領域間のブロック歪は第2のフィルタ302により、走査線方向に隣接するブロック間の歪は第3のフィルタ303により、おのおの容易に除去することができる。
【0118】
本実施例では、画像の圧縮の形式はJ−PEGアルゴリズムの基本形式を採用しているものとして説明したが、画像がJ−PEGアルゴリズムの拡張形式により各ブロックが配列されている場合(図24参照)でも、同様の構成によりブロック歪を除去できることは言うまでもない。この場合には、第4のフィルタ401のラインバッファ431のビット数を、8ビット×2n とすればよい。
【0119】
ここで、n=8の場合には、走査線方向の画素数が2n =256となり、J−PEGアルゴリズムの拡張形式でのグループは一つとなる。即ち、この場合には、1ライン分のバッファを持つ場合と等しくなる。この場合には、図27に示すように、第2のフィルタ302,第3のフィルタ303の後段に、第5のフィルタ450を設ければよい。第5のフィルタ450は、1ライン分のラインバッファ451、加重平均を求める演算器453、データを切り替える切替回路455から構成されている。このラインバッファ451は、256ビットのシリアル入出力のシフトレジスタであり、画像データが入力されると、常に一つ前のラインの画像データを出力することになる。演算器453は、ラインバッファ451から読み出される一つ前のラインの画像データと現在読み出し中のラインの画像データとの加重平均を演算している。切替回路455は、ラインバッファ451の出力と演算器453の出力を、画像メモリコントローラ320からの制御信号CS6により切り替える。この制御信号CS6は、第8走査線から走査線16本毎にアクティブとなり、演算器453からの出力を有効とする。この結果、16ラインを単位とする領域内のブロック間の歪を除去することが可能となる。
【0120】
なお、16ラインを単位とする領域間の歪は、第2のフィルタ302により、A側メモリ307a,B側メモリ307bからの画像データの読み出し時に除去する点は、先に説明した実施例と同様である。なお、こうしたラインバッファ451を設けるのであれば、第2のフィルタ302は、切替回路312を除いて省略し、16ラインを単位とする領域内のブロック間歪のみならず、領域間の歪も第5のフィルタ450により除去するものとしても差し支えない。この場合には、画像メモリコントローラ320からの制御信号CS6を、水平走査線8本毎に出力されるものとすれば良い。
【0121】
以上、ブロック歪フィルタのいくつかの実施例について説明したが、この歪フィルタは、第1実施例の画像復号化装置と簡単に組み合わせることができる。図28に、第1実施例のメモリコントロールブロック47bにブロック歪除去フィルタを組み込んだ構成を示す。即ち、切替回路286からの出力信号路に第1のフィルタ301を介装し、A側切替回路282およびB側切替回路284の出力をそのまま第2のフィルタ302の入力とし、その出力を第3のフィルタ303を通して、後段のビデオエンコーダユニット50に出力するものとすればよい。なお、切替回路286から出力される画像データが再生ランレングス画像データRRDである場合には、ブロック歪は生じていないので、各フィルタ301,302,303の動作を停止し、信号をそのまま通過させるものとすればよい。
【0122】
以上説明したブロック歪除去フィルタは、画像復号時のブロックの大きさにより、各バッファやメモリの容量も変更される。また、A側メモリ307a,B側メモリ307bの容量は、16ラインを単位とするものに限る必要はなく、各種のメモリ容量のものが設計可能である。更に、これらのメモリが一画面分の容量を持ち、動画の場合に両メモリを交互に切り替えて再生する構成であれば、両メモリを切り替える際の境界は画面に表示されないので、この部分の歪を除去するフィルタは、用いる必要がない。
【0123】
また、実施例では、8×8ドットのブロックの縦方向(走査線に直交する方向)の数はいずれも2として説明したが、3以上のブロックが縦方向に連続するよう配列された場合でも、同じように本発明のブロック除去フィルタを構成・適用することができる。この場合にも、図16の構成は何等変更する必要がなく、A側メモリ307a,B側メモリ307bの容量を増加するだけで良い。
【0124】
以上の実施例の説明では、画像の圧縮については、詳しく説明しなかったが、本実施例では、画像の圧縮にDCT(ディスクリートコーサイン変換)を用いた。これらの画像の圧縮の一例および画像データ伸長装置200における画像伸長の詳細について、説明する。
【0125】
画像データ圧縮装置100のDCT部110は、次の数式1に従って、各画素ブロックPB毎に2次元DCT変換を行なう。
【0126】
【数1】
Figure 0003981651
【0127】
ここで、f(x,y)は1つの画素ブロックPBに含まれる8×8個の画像データの配列、x,yは各画素ブロックPB内の各画素の位置を示す座標、F(u,v)は変換係数の配列、u,vは周波数空間の座標である。
【0128】
図29は、変換係数F(u,v)の配列を示す説明図である。変換係数F(u,v)は画素ブロックPBと同じ8×8の配列である。左上端の変換係数F(0,0)はDC成分(またはDC係数)と呼ばれており、その他の変換係数はAC成分(またはAC係数)と呼ばれている。DC成分は、画素ブロックPBにおける画像データの平均値を示している。また、AC成分は、画素ブロックPB内における画像データの変化を示している。隣接する画素の画像データにはある程度の相関があるので、AC係数の中で低周波成分の値は比較的大きく、高周波成分の値は比較的小さい。また、高周波成分が画質に与える影響は比較的小さい。
【0129】
図30は、画像データ圧縮装置100と画像データ伸長装置200の基本動作を示す説明図である。DCT部110は、図30(a)に示すDCT係数F(u,v)を作成する。
【0130】
量子化テーブル作成部140は、次の数式2に示すように、基本量子化テーブルBQT(図30(c))と量子化レベル係数QCxとを乗ずることによって量子化テーブルQT(図30(d))を作成する。
【0131】
【数2】
Figure 0003981651
【0132】
図30の例ではQCx=1なので、量子化テーブルQTは基本量子化テーブルBQTと同一である。
【0133】
量子化部120は、DCT係数F(u,v)を量子化テーブルQTで線形量子化することによって、図30(b)に示す量子化されたDCT係数QF(u,v)を求める。線形量子化とは、除算を行なって、その除算結果を整数に丸める処理である。
【0134】
ハフマン符号化部130は、このDCT係数QF(u,v)をハフマン符号化することによって圧縮画像データZZ(図30(e))を作成する。なお、ハフマン符号化の方法については更に後述する。圧縮画像データZZは、後述するように、基本量子化テーブルBQTを表わす第1のデータと、量子化レベル係数QCxと変換係数QF(u,v)を表わす第2のデータとを含んでいる。
【0135】
圧縮画像データZZが画像データ伸長装置200に与えられると、ハフマン復号化部210が圧縮画像データZZを復号化してDCT係数QF(u,v)(図30(f))を求める。ハフマン符号化は可逆符号化なので、このDCT係数QF(u,v)は、画像データ圧縮装置100の量子化部120によって求められた量子化後のDCT係数QF(u,v)(図30(b))と同一である。なお、ハフマン復号化部210は、DCT係数QF(u,v)の他に、圧縮画像データZZに含まれている基本量子化テーブルBQT(図30(c))と量子化レベル係数QCxも復号化して逆量子化テーブル作成部250に与える。
【0136】
逆量子化テーブル作成部250は、基本量子化テーブルBQTと量子化レベル係数QCxとを乗算することによって量子化テーブルQT(図30(d))を作成する。逆量子化部220は、この量子化テーブルQTとDCT係数QF(u,v)とを乗算し、図30(g)に示す復号されたDCT係数FF(u,v)を求める。
【0137】
IDCT部230は、このDCT係数FF(u,v)に対して次の数式3に示す2次元DCT逆変換を行ない、復元された画像データff(x,y)を作成する。
【0138】
【数3】
Figure 0003981651
【0139】
次に、量子化レベル係数QCxによる量子化テーブルQTの調整について説明する。量子化テーブルQTは、前記数式2に従って基本量子化テーブルBQTと量子化レベル係数QCxとを乗算することによって作成されるので、量子化レベル係数QCxの値を大きくすれば量子化テーブルQT内の各量子化レベルを大きくすることができる。量子化レベル係数QCxの値は、画像データ圧縮装置100において画像データを圧縮する際に、予め定められた複数の値(0〜15)の中からオペレータが選択する。
【0140】
ところで、DCT係数のDC成分は画素ブロックPB内における画像データの平均値を示しているので、画質に対する影響がかなり大きい。従って、量子化レベル係数QCxの値に係わらずに、DC成分用の量子化レベルを基本量子化テーブルBQTにおける値と同じに保つようにするのが好ましい。
【0141】
次に、ハフマン符号化と圧縮データの構成について説明する。画像データ圧縮装置100のハフマン符号化部130(図3)は、DC係数符号化部とAC係数符号化部とで構成されている。図31(A)は、DC係数符号化部の機能を示すブロック図である。ブロック遅延部131と加算器132は、図31(B)に示すように、各画素ブロックPBのDC係数DCi と1つ前の画素ブロックPBのDC係数DCi-1 との差分ΔDCを算出する。
【0142】
カテゴリ化処理部133は、図32に示すカテゴリ化テーブルに従って、DC係数の差分△DCに対応するカテゴリSSSSと識別データIDとを求める。カテゴリSSSSは、DC係数の差分△DCの範囲を示す番号である。識別データIDは、カテゴリSSSSで指定される複数の差分△DCの中の小さい方から何番目の値であるかを示すデータである。
【0143】
カテゴリSSSSは、さらに1次元ハフマン符号化部134(図31)においてDC係数用のハフマン符号語HFDCに変換される。図33は、1次元ハフマン符号化部134によって使用されるハフマン符号テーブルHTDCの一例を示す説明図である。この実施例では、原画像データf(x,y)がYUV信号(輝度信号Yと2つの色差信号U,V)で表現されているものとする。U信号/V信号共用のDC係数用ハフマン符号テーブルは、0〜9のカテゴリSSSSの符号語を含むだけである。一方、Y信号用のDC係数用ハフマン符号テーブルは、0〜9のカテゴリSSSSの符号語の他に、15〜31のカテゴリSSSSの符号語を含んでいる。SSSS=15のハフマン符号語は、後述するヌルランデータであることを示している。ヌルランデータは、一様色の画素ブロックPBが連続することを示すデータである。また、SSSS=16〜31のハフマン符号語は、量子化レベル係数QCxの値を示す符号である。例えば、SSSS=16に対するハフマン符号語「 111110000」はQCx=0を示しており、SSSS=31に対するハフマン符号語「 111111111」はQCx=15を示している。なお、図33のハフマン符号語は、カテゴリSSSS=1〜9、および15〜31のすべてに関して一意復号可能で、かつ、瞬時復号可能である。
【0144】
図34は、ハフマン符号化部130内のAC係数符号化部の機能を示すブロック図である。AC係数の配列F(u,v)(u=v=0を除く)は、まずジグザグスキャン部135によって1次元に並び直される。図35は、ジグザグスキャンの順路を示す説明図である。
【0145】
判定部136は、1次元に並び直されたAC係数の値が0か否かを判定する。AC係数の値が0であれば、ランレングスカウンタ137が、連続する0のAC係数をゼロラン長NNNNに変換する。AC係数が0でなければ、そのAC係数の値がカテゴリ化部138によってカテゴリSSSSと識別データIDに変換される。この際、図32に示すカテゴリ化テーブルが参照される。
【0146】
ゼロラン長NNNNとカテゴリSSSSとは、2次元ハフマン符号化部139においてAC係数用のハフマン符号語HFACに変換される。図36は、AC係数用の2次元ハフマン符号テーブルHTACを示す説明図である。また、図37は、ハフマン符号テーブルHTACの中で、NNNN=0とNNNN=1の部分(図36における最上部2行)のハフマン符号語の一例を示している。なお、NNNN/SSSS=0/0のハフマン符号語「 11111」は、1つの画素ブロックに対する符号データの終了を示している。
【0147】
図38は、ハフマン符号化の一例を示す説明図である。図38(B)は、DC係数の符号化を示している。1つ前の画素ブロックにおけるDC係数の値を0と仮定すると、△DC=F(0,0)=12である。図32のカテゴリ化テーブルによれば△DC=12のカテゴリSSSSは4であり、識別データIDは「1100」である。また、図33のDC係数用ハフマン符号テーブルによれば、カテゴリSSSS=4のハフマン符号語HFDCは「 011」である。なお、ここではY信号用のハフマン符号テーブルを使用する。DC係数に対するハフマン符号(HF+ID)は、図38(B)に示すように「 0111100」となる。
【0148】
図38(C)はAC係数の符号化を示している。まず、ジグザグスキャンによって、AC係数が一次元の配列に並べられる。この配列は、ゼロラン長NNNNと、ゼロでない値のカテゴリSSSS(図32参照)とに変換される。ゼロラン長NNNNとカテゴリSSSSの組み合わせは、図36および図37に示すAC係数用ハフマン符号テーブルによってハフマン符号語HFACに変換され、ゼロでないAC係数の識別データIDと組み合わされて、図38(C)に示すようにハフマン符号(HFAC+ID)が作成される。
【0149】
ブロックデータ内の1つの画素ブロックに対する符号データは、図5(F)に示すように、DC係数の1つのハフマン符号データと、AC係数の複数のハフマン符号データとで構成されている。DC係数のハフマン符号データは、前述したように、カテゴリSSSSのハフマン符号語HFDCと識別データIDとで構成される(図5(G))。また、AC係数のハフマン符号データは、ゼロラン長NNNNとカテゴリSSSSとの組み合わせに対するハフマン符号語HFACと、識別データIDとで構成される(図5(H))。
【0150】
量子化レベル係数QCxの符号データは、圧縮データ部の先頭と、量子化レベル係数QCxの値を変更したい画素ブロックのブロックデータの直前に挿入されている。2番目の量子化レベル係数QCxが挿入される前の複数の画素ブロックに対しては、先頭の量子化レベル係数QCxが共通に使用される。また、3番目の量子化レベル係数QCx(図示せず)が挿入される前の複数のブロックに対しては、2番目の量子化レベル係数QCxが共通に使用される。
【0151】
なお、圧縮データ部の先頭に量子化レベル係数QCxの符号語が含まれていない場合には、QCx=1であると見なされる。従って、圧縮データ部の先頭に量子化レベル係数QCxが挿入されておらず、途中に量子化レベル係数QCxが1回だけ挿入されている場合にも、量子化レベル係数QCxが2つ指定されていることと等価である。
【0152】
量子化レベル係数QCxを表わすハフマン符号は、ブロックデータの間に挿入されているので、新たな量子化レベル係数QCxが復号化された時点の次のブロックデータに対してこの新たな量子化レベル係数QCxを容易に適用することができる。また、図33に示すように、量子化レベル係数QCxの符号データはDC係数用のハフマン符号語で表わされているので、これがブロックデータの間に挿入されていても、この符号データがブロックY1用のDC係数の符号データであるか、量子化レベル係数QCxの符号データであるかを直ちに判断することが可能である。
【0153】
圧縮データ部に含まれているヌルランデータは、図5(E)に示すように、ヌルランデータであることを示すDC係数用符号語「NRL」と、ブロック数と、識別データIDとで構成されている。
【0154】
図39は、ヌルランデータによって表わされる画像を示す説明図である。図39(A)の原画像の背景BGは一様色で塗られている。図39(A)の楕円の部分は、図39(B)に示すようにすべての画素が同じ画像データ値(f(x,y)=12)を有する画素ブロックが18個連続しているものと仮定する。図39(C)は、これらの画素ブロックを表わすヌルランデータを示している。このヌルランデータは、16画素ブロック分の第1のヌルランデータNRD1と、2画素ブロック分の第2のヌルランデータNRD2を含んでいる。
【0155】
各ヌルランデータNRD1,NRD2の先頭には、ヌルランデータであることを示すDC係数用符号語「NRL」(図33のカテゴリSSSS=15の符号語「 1111011」)を有している。図5(F)に示すように、通常のブロックデータの先頭にはDC係数のハフマン符号が配置されているので、先頭にあるDC係数用符号語を復号化することによって、ヌルランデータと、ブロックデータと、量子化レベル係数QCxの符号データとを一意にかつ瞬時に識別することができる。
【0156】
図39(C)に示すように、ブロック数は、AC係数用ハフマン符号語で表わされている。図40は、AC係数用ハフマン符号テーブル(図36)のうちでヌルランデータに使用される部分を示す図である。ヌルランデータに使用される場合には、ゼロラン長NNNNは([ブロック数]−1)に等しいと設定される。また、AC係数の値は1であるとして、カテゴリSSSS=1のハフマン符号語が使用される。図39(C)に示す第1のヌルランデータNRD1におけるブロック数のデータ(NNNN/SSSS=15/1)は一様色の画素ブロックが16個連続していることを示している。また、第2のヌルランデータNRD2におけるブロック数のデータ(NNNN/SSSS=1/1)は一様色の画素ブロックが2個連続していることを示している。
【0157】
各ヌルランデータNRD1,NRD2の後端には、識別データIDが付加されている。この実施例では、ID=1に固定されている。
【0158】
ヌルランデータは、このように、20ビット程度のデータによって連続した複数の画素ブロックが一様色であることを表わすことが可能である。一方、通常のブロックデータによって一様色の1セットのブロック(図7に示すY信号を4画素ブロック、U信号,V信号を各1画素ブロック含む)を表わすには、約300〜約400ビット必要である。しかも、複数セットの画素ブロックが一様色であることを示す場合にも、各セットについて約300〜約400ビット必要である。従って、ヌルランデータを使用すれば、連続する一様色の多数の画素ブロックを表わす圧縮データのデータ量をかなり低減することが可能である。
【0159】
なお、ヌルランデータで表わされる一様色の画素ブロックの輝度信号Yや色差信号U,Vの値は、圧縮データには含まれておらず、ビデオゲームを記述するソフトウェアプログラムの中において指定されている。オペレータは、ビデオゲーム用のソフトウェアプログラムを作成する際に、一様色の画素ブロックの領域(図39(A)では背景BG)の範囲をマウス等で指定するとともに、これらのブロックの輝度や色調をキーボードやマウスを用いて指定する。こうすれば、例えばビデオゲーム装置20(図1)を用いてゲームを実行している途中に特定のイベントが発生した場合に、背景BGの色を時間的に変化させるなどの特殊な視覚的効果を生じさせることができる。
【0160】
以上、本発明の画像復号化装置とブロック歪除去フィルタのいくつかの実施例について説明したが、本発明は、これらの実施例に何等限定されるものではなく、例えばビデオゲーム装置20以外の用途(例えばCAD,3Dモデル作成装置,コンピュータグラフィックの作成装置等)に使用した構成、DCT以外の直交変換を利用した構成、nライン分のデータを記憶するメモリを一つにし同時に読み書きできるデュアルポートメモリにより構成したものなど、本発明の要旨を変更しない範囲内において、種々の態様により実施し得ることは勿論である。
【0165】

【発明の効果】
発明の第1のブロック歪除去フィルタは、画像を構成する縦横いずれか一方向に沿って復号されたnライン分の画像データであり第1のメモリが記憶する画像データと、この画像データに隣接したnライン分の画像データであって第2のメモリが記憶する画像データとの間で、所定のフィルタ処理を行なうから、nライン分の画像データ間のブロック歪を、簡易な構成により除去することができるという優れた効果を奏する。
【0166】
なお、本発明の第2のブロック歪除去フィルタは、画像データのブロックを単位とした読み出しにおいては、列方向を優先的な読み出し方向として読み出し、この方向に隣接するブロックに対応した画像データの読み出し時に、前のブロックの最終ラインのデータを記憶しておき、次のブロックの最初のラインのデータの読み出し時の処理において両データについて、画素単位で所定のフィルタ演算を行なうから、mブロック×少なくとも2列の単位のなかでのブロック間の歪を、極めて簡単な構成により除去することができるという優れた効果を奏する。こうした処理は、画像を構成する一方向に沿ったmブロック分(mは値1以上の整数)×2列以上を基本単位として扱うもの、例えばJ−PEG等のように、輝度情報と色差信号とで圧縮の度合いを異ならせている符号化を採用している場合、その内部のブロック間に生じる歪を除去するのに有効である。
【0167】
更に本発明の第3のブロック歪除去フィルタは、2列×mブロックの基本単位における第2発明の処理をブロックのm個の並びの方向に繰り返して2×nライン分の画像データを第1のメモリに記憶し、この画像データに隣接した2×nライン分の画像データを第2のメモリに記憶し、画像表示用に第1または第2のメモリの最終ラインを読み出す際には、第2または第1のメモリの第1ラインを読み出し、両データ間で所定のフィルタ処理を行なうから、2×nラインの幅の画像同士の境界でのブロック歪が除去されるという優れた効果を奏する。
【0168】
本発明の画像圧縮方法によれば、走査方向とは異なる方向に少なくとも2個のブロックを連続して符号化しているので、この画像データを復号化する処理において、この符号化の順序をそのまま利用してブロック歪を除去するフィルタ処理を行なう際、ブロック間の歪の処理のうち、走査方向と異なる方向の処理を少ない記憶容量で実施することができるという優れた効果を奏する。
【0169】
本発明の画像復号方法は、復号した各ブロックの画像データを、画像の走査方向とは異なる方向に少なくとも2個連続して読み出し、連続する2個のブロックの境界でブロック歪を除去するフィルタ処理を施し、フィルタ処理を施した画像データを、画像の走査方向に連続して記憶し、記憶した画像データを表示用に読み出す際、走査方向に隣接するブロックの境界でブロック歪を除去するフィルタ処理を施すから、少ない記憶容量で隣接するブロックの境界での歪の除去を実現することができるという優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施例としての画像処理装置を組み込んだビデオゲーム装置20の外観図である。
【図2】同じくその内部構成を示すブロック図である。
【図3】画像データ伸長装置200の具体的な構成を画像データ圧縮装置100と対応付けて示すブロック図である。
【図4】原画像の一例を示す説明図である。
【図5】圧縮データの構造を示す説明図である。
【図6】一画面を構成す画素×ライン数と、これに対応した画像データの構成を示す説明図である。
【図7】YUV各信号のブロックの関係を示す説明図である。
【図8】画像データ伸長ユニット47の構成を示すブロック図である。
【図9】圧縮データ取り込みブロック47aの構成を示すブロック図である。
【図10】メモリコントロールブロック47bの構成を示す回路図である。
【図11】復号化されたブロックのデータとラインデータとの関係を例示する説明図である。
【図12】メモリコントロールブロック47bにおける動作を示すタイミングチャートである。
【図13】コントローラ47eの一部を例示するブロック図である。
【図14】同じくコントローラ47eの他の構成部分とその働きを示す説明図である。
【図15】同じくコントローラ47eの他の構成例を示すブロック図である。
【図16】ブロック歪除去フィルタ300の概略構成を示すブロック図である。
【図17】YUVの各信号の対応関係を例示する説明図である。
【図18】ブロック歪が生じる境界を示す説明図である。
【図19】復号化された画像データの構造を示す説明図である。
【図20】境界SAでのブロック歪の除去処理を示す説明図である。
【図21】境界SBでのブロック歪の除去処理を示す説明図である。
【図22】境界SCでのブロック歪の除去処理を示す説明図である。
【図23】J−PEGアルゴリズムの基本配列を示す説明図である。
【図24】同じくJ−PEGアルゴリズムの拡張配列を示す説明図である。
【図25】ブロック歪除去フィルタ400の概略構成を示すブロック図である。
【図26】第4のフィルタ401の動作の実際を示す説明図である。
【図27】ブロック歪除去フィルタの他の構成例を示すブロック図である。
【図28】実施例の画像データ復号化装置のメモリコントロールブロック47bに実施例のブロック歪除去フィルタを組み込んだ構成を示すブロック図である。
【図29】DCT係数F(u、v)の配列を示す説明図である。
【図30】圧縮/伸長の基本動作を示す説明図である。
【図31】DC係数符号部の機能を示すブロック図である。
【図32】ハフマン符号化におけるカテゴリ化テーブルを示す説明図である。
【図33】DC係数用のハフマン符号テーブルHTDCの一例を示す説明図である。
【図34】AC係数符号化部の機能を示すブロック図である。
【図35】AC係数のジグザクスキャンの順路を示す説明図である。
【図36】AC係数用の2次元ハフマン符号テーブルを示す説明図である。
【図37】ハフマン符号テーブルの内容を示す説明図である。
【図38】ハフマン符号化の一例を示す説明図である。
【図39】ヌルランデータによって表わされる画像の一例を示す説明図である。
【図40】AC係数用のハフマン符号テーブルの他の部分を示す説明図である。
【符号の説明】
20…ビデオゲーム装置
21…ROM
22…ゲーム機本体
24,26…ゲームパッド
24a…スイッチ
24b…カーソルスティック
28…カラーテレビ
30…ビデオ信号ケーブル
31…カバー
32…ROMドライブ
34…スピーカ
36…SCSIバス
40…MPU
40a…演算部
40b…コントローラ
41…メインメモリ
42…ROM
43…BUS
45…画像信号コントロールユニット
45a…MPUI/F
45b…SCSIコントローラ
45c…AFFINコンバータ
45d…グラフィックコントローラ
45e…サウンドコントローラ
47…画像データ伸長ユニット
47a…圧縮データ取り込みブロック
47b…メモリコントロールブロック
47c…A側メモリ
47d…B側メモリ
47e…コントローラ
49…VDPユニット
50…ビデオエンコーダユニット
50a…インタフェース部
50b…画像合成部
50c…DAC部
50d…コントロール部
52…音声データ出力ユニット
52a…ADPCM部
52b…音源ジェネレータ(PSG)
52c…ミキサー
55…RAM
59…RAM
60…NTSCコンバータ
100…画像データ圧縮装置
110…DCT部
120…量子化部
130…ハフマン符号化部
140…量子化テーブル作成部
150…ハフマン符号テーブルメモリ
200…画像データ伸長装置
200a…ブロック画像発生装置
210…ハフマン復号化部
220…逆量子化部
230…IDCT部
240…ハフマン符号テーブルメモリ
250…逆量子化テーブル作成部
260…ランレングス復号ブロック
271…ヘッダ検出回路
272…モード識別回路
273…データ長検出回路
274…圧縮データカウント回路
275…データ選択回路
281…A側アドレス発生回路
281a…書込回路
281b…読出回路
282…A側切替回路
283…B側アドレス発生回路
283a…書込回路
283b…読出回路
284…B側切替回路
286…切替回路
287…カウント回路
288…アドレス一致検出回路
291…CPUデータ格納レジスタ
295…ラッチ
296…オアゲート
297…ラッチ
298…遅延回路
300…ブロック歪除去フィルタ
301…第1のフィルタ
302…第2のフィルタ
303…第3のフィルタ
307a…A側メモリ
307b…B側メモリ
311…第1の切替回路
312…第2の切替回路
313…第3の切替回路
314…第4の切替回路
320…画像メモリコントローラ
331…シフトレジスタ
332…演算器
335…演算器
341…ラッチ
342…演算器
400…ブロック歪除去フィルタ
401…第4のフィルタ
411…切替回路
431…ラインバッファ
432…演算器
450…第5のフィルタ
451…ラインバッファ
453…演算器
455…切替回路
B…ブロック
BQT…基本量子化テーブル
CDT…圧縮データ
CLK…基準クロック
CS0…制御信号
CS1…第1の制御信号
CS2…第2の制御信号
CS3…第3の制御信号
CS4…第4の制御信号
CS5…制御信号
CS6…制御信号
DA…画像データ
DB…画像データ
DC…信号路
DCL…クロック
DD…画像データ
DD1…データ構造体
DE1,2…有効信号
DF1…画像データ
DIS…データ無効信号
DRQ…データ要求信号
HDP…ヘッダ検出信号
HT…ハフマン符号テーブル
INV…インバータ
IRT…リセット信号
NCD…自然画像圧縮データ
QCx…量子化レベル係数
QT…量子化テーブル
RLD…ランレングス圧縮データ
RMS…復号モード信号
RND…再生自然画像データ
RRD…再生ランレングス画像データ
RSG…判別信号
RST…リセット信号
SA…境界
SB…境界
SC…境界
SEL…選択信号
SYC…水平同期信号
WRT…書込制御信号
Y…輝度信号

Claims (5)

  1. 一画面を構成する画像データをn×n画素(nは2以上の整数)からなるブロックを単位として縦横に分割し、該ブロックを単位として非可逆符号化方式により符号化された圧縮データを画像データに復号する際、用いられるブロック歪除去フィルタであって、
    画像を構成する前記符号化された圧縮データから、前記縦横のいずれか一方向に沿って復号された2nライン分の画像データおよびこれに隣接する2nライン分の画像データをそれぞれ記憶する第1および第2のメモリと、
    前記第1,第2のメモリへの復号化された前記画像データの記憶と読出とを交互に行なわせると共に、前記第1,第2のメモリへの画像データの記憶とは異なるタイミングで、前記第1,第2のメモリからnライン分のデータを、ラインを単位として読み出す読出手段と
    画像表示用に第1,第2のメモリの一方最終ラインを読み出す際には、該第1,第2のメモリの他方の第1ラインを読み出し、両データ間で所定のフィルタ処理を行なう第1の演算処理部と
    を備えたブロック歪除去フィルタ。
  2. 請求項1記載のブロック歪除去フィルタであって、
    前記復号された画像データを、画像を構成する前記縦横のいずれか一方向に沿ったmブロック分(mは値1以上の整数)、2列を基本単位として扱うものとし、
    前記圧縮データを復号して前記第1または第2のメモリに記憶する際、該mブロック分の画像データを、列方向の並びを優先して順に読み出す読出手段と、
    該読み出しの際に第1列目のブロックの最終ラインのデータを記憶する最終ラインデータ記憶手段と、
    第2列目のブロックの最初のラインのデータの読み出し時に、該最初のラインのデータと前記最終ラインデータ記憶手段に記憶された最終ラインのデータと、画素単位で所定のフィルタ演算を行なう第2の演算処理部と
    を備え、
    該第2の演算処理部による処理後のデータを前記第1,第2のメモリに記憶するブロック歪除去フィルタ。
  3. 請求項2記載のブロック歪除去フィルタであ
    って、
    前記第1または第2のメモリから、画像表示用にライン毎の画像データを連続的に読み出す際、前記各ブロックの終端に対応するデータを記憶する終端データ記憶手段と、
    該第1または第2のメモリから、画像表示用にライン毎の画像データを連続的に読み出しており、前記各ブロックの開始端に対応したデータを読み出す際には、前記記憶された終端のデータとの間で所定の演算を行なう第3の演算処理部と
    を備えたブロック歪除去フィルタ。
  4. mが値1である請求項2または請求項3記載のブロック歪フィルタ。
  5. 一画面を構成する画像データをn×n画素(nは2以上の整数)からなるブロックを単位として縦横に分割し、該ブロックを単位として非可逆符号化方式により符号化した圧縮データを復号する方法であって、
    復号した各ブロックの画像データを、画像の走査方向とは異なる方向に少なくとも2個連続して読み出し、
    該連続する2個のブロックの境界でブロック歪を除去する第1のフィルタ処理を施し、
    該第1のフィルタ処理を施した該ブロック2個分の画像データである2nライン分のデータを単位として、第1,第2のメモリに交互に記憶し、
    前記第1,第2のメモリから、前記記憶のタイミングとは異なるタイミングで、前記記憶したデータを表示用に読み出す際、該走査方向に隣接するブロックの境界に対応するデータを用いて、前記第1のフィルタ処理とは異なる方向に隣接するブロック間のブロック歪を除去する第2のフィルタ処理を施し、
    前記第1,第2のメモリからnライン分のデータを、ラインを単位として読み出す際、画像表示用に第1,第2のメモリの一方の最終ラインを読み出す際には、該第1,第2のメモリの他方の第1ラインを読み出し、両データ間で第3のフィルタ処理を施す
    画像復号方法。
JP2003157143A 1993-03-25 2003-06-02 画像処理装置 Expired - Lifetime JP3981651B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003157143A JP3981651B2 (ja) 1993-03-25 2003-06-02 画像処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP6682893 1993-03-25
JP6682993 1993-03-25
JP2003157143A JP3981651B2 (ja) 1993-03-25 2003-06-02 画像処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP6074504A Division JPH077732A (ja) 1993-03-25 1994-03-18 画像処理装置

Publications (2)

Publication Number Publication Date
JP2004048727A JP2004048727A (ja) 2004-02-12
JP3981651B2 true JP3981651B2 (ja) 2007-09-26

Family

ID=31721157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003157143A Expired - Lifetime JP3981651B2 (ja) 1993-03-25 2003-06-02 画像処理装置

Country Status (1)

Country Link
JP (1) JP3981651B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200704B2 (en) 2015-04-24 2019-02-05 Kabushiki Kaisha Toshiba Image decoding apparatus and method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI257243B (en) 2005-01-21 2006-06-21 Via Tech Inc Method of compressing image and device thereof
CN100367759C (zh) * 2005-02-21 2008-02-06 威盛电子股份有限公司 图像压缩方法及其装置
JP4711303B2 (ja) * 2006-02-03 2011-06-29 株式会社京三製作所 接点入力装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6337776A (ja) * 1986-07-31 1988-02-18 Fujitsu Ltd 画像デ−タ圧縮方式
JPS63106507A (ja) * 1986-10-24 1988-05-11 Toshiba Corp 物体認識方法及びその装置
JPS6455988A (en) * 1987-08-26 1989-03-02 Nec Corp Method and device for decoded moving image signal smoothing processing
JPS6455987A (en) * 1987-08-26 1989-03-02 Nec Corp Method and device for decoded moving image signal smoothing processing
JPH01161580A (ja) * 1987-12-18 1989-06-26 Canon Inc 画像処理装置
JP2666411B2 (ja) * 1988-10-04 1997-10-22 三菱電機株式会社 二次元離散データ直交変換用集積回路装置
JPH02132969A (ja) * 1988-11-14 1990-05-22 Casio Comput Co Ltd 画像圧縮再生装置
JPH02271423A (ja) * 1989-04-13 1990-11-06 Toshiba Corp 疑似中間調画像記録装置
JPH07105946B2 (ja) * 1989-12-04 1995-11-13 株式会社グラフイックス・コミュニケーション・テクノロジーズ ブロック歪除去フィルタ
WO1991012691A2 (en) * 1990-02-09 1991-08-22 N.V. Philips' Gloeilampenfabrieken Hd-mac television decoder
JPH04192695A (ja) * 1990-11-26 1992-07-10 Hitachi Ltd 動画像復号化装置
JPH04266282A (ja) * 1991-02-21 1992-09-22 Hitachi Ltd 画像復号化装置
JPH0514735A (ja) * 1991-07-01 1993-01-22 Kubota Corp 画像処理装置
JPH0522606A (ja) * 1991-07-16 1993-01-29 Canon Inc カラー画像通信方法及びカラー画像処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200704B2 (en) 2015-04-24 2019-02-05 Kabushiki Kaisha Toshiba Image decoding apparatus and method
US10306247B2 (en) 2015-04-24 2019-05-28 Kabushiki Kaisha Toshiba Image decoding apparatus and method

Also Published As

Publication number Publication date
JP2004048727A (ja) 2004-02-12

Similar Documents

Publication Publication Date Title
KR100363588B1 (ko) 화상처리장치
US5781184A (en) Real time decompression and post-decompress manipulation of compressed full motion video
US5331417A (en) System and method of displaying a plurality of digital video images
CN1997155B (zh) 混合多比特深度视频处理体系结构
US20030048943A1 (en) Encoding method of a color image and its encoding device and a decoding method of the color image and its decoding device
JPH10511526A (ja) 圧縮されたビデオデータを復号化し、表示するメモリコントローラ
CN1347260A (zh) 在一移动终端中的屏幕显示装置和使用该屏幕显示装置的方法
US6357047B1 (en) Media pipeline with multichannel video processing and playback
JPH10501107A (ja) ビデオ映像復号化装置及び方法
JP2006014341A (ja) Mcuバッファを用いて画像データを格納するための方法及び装置
JPH1146363A (ja) シンボル復号化方法及びその装置
JP3189031B2 (ja) データレート変換方法及び装置
US5630105A (en) Multimedia system for processing a variety of images together with sound
JPH1188700A (ja) カラー画像信号の符号化方法、復号化方法およびカラー画像処理装置
JP3981651B2 (ja) 画像処理装置
JPH08205144A (ja) 画像符号化装置
JPH077732A (ja) 画像処理装置
JPH09509297A (ja) ビット像シーケンス符号化および複合化方法および装置
JP3673529B2 (ja) 画像データの圧縮・伸長方法およびそのための装置
CA2107436C (en) Image processing system including a processor side memory and a display side memory
JPH11143441A (ja) 画像表示制御装置および画像表示制御方法
JP3898347B2 (ja) 動画データ制御装置、動画データ制御方法、及び動画データ制御プログラムを記録したコンピュータ読みとり可能な記録媒体
JPH10126781A (ja) 復号化装置
JP2013017057A (ja) 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造
JP3004763B2 (ja) 映像信号多重復号化装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070514

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070702

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 3