(57)【要約】【課題】符号化データ中に含まれる不要データが除去される場合であっても、復号中の現在のデータのアドレス管理ができるようにした復号装置の提供。【解決手段】前処理バッファ１は、外部メモリ１からの符号化データを所定の単位データごとに格納し、かつシフトする。復号バッファ５は、前処理バッファ１からの単位データを受け取り、その単位データをシフトする。データ判定回路４は、前処理バッファ１に格納される各単位データが所定の不要データであるか否かを判定し、不要データの場合に、その不要な単位データを前処理バッファ１から出力するときに消去する。また、データ判定回路４は、その消去された単位データに続く次の単位データが、前処理バッファ１から出力されて復号バッファ５に入力するときに、その次の単位データに対して消去があった旨の情報を付加する。【選択図】図１
2009017248.tif 000002
【特許請求の範囲】
【請求項１】
メモリから符号化データを受け取り、この受け取った符号化データから不要データを除去して復号する復号装置であって、
メモリからの符号化データを所定の単位データごとに格納するとともに、その単位データをシフトするバッファと、
前記バッファに格納される各単位データが所定の不要データであるか否かを判定する判定手段と、を備え、
前記判定手段が不要データであると判定したときに、その判定された単位データを前記バッファ内から消去し、
かつ、その消去された単位データに続く次の単位データに対して、単位データの消去があった旨の情報を付加するようになっていることを特徴とする復号装置。
【請求項２】
前記バッファは、前記単位データを受け取るときに、その単位データに係るアドレス情報を受け取って単位データに付加し、このアドレス情報が付加された単位データをシフトするようになっていることを特徴とする請求項１に記載の復号装置。
【請求項３】
メモリから符号化データを受け取り、この受け取った符号化データから不要データを除去して復号する復号装置であって、
メモリからの符号化データを所定の単位データごとに格納するとともに、その単位データをシフトする第１バッファと、
前記第１バッファからの単位データを受け取って単位データごとに格納するとともに、その単位データをシフトする第２バッファと、
前記第１バッファに格納される各単位データが所定の不要データであるか否かを判定する判定手段と、を備え、
前記判定手段が不要データであると判定したときに、その判定された単位データを前記第１バッファから出力するときに消去し、
かつ、その消去された単位データに続く次の単位データが、前記第１バッファから出力されて前記第２バッファに入力するときに、その次の単位データに対して消去があった旨の情報を付加するようになっていることを特徴とする復号装置。
【請求項４】
前記第１バッファは、前記単位データを受け取るときに、その単位データに係るアドレス情報を受け取って単位データに付加し、アドレス情報が付加された単位データをシフトするようになっており、
前記第２バッファは、前記第１バッファから出力されるアドレス情報が付加された単位データをシフトするようになっていることを特徴とする請求項３に記載の復号装置。
【請求項５】
前記第１バッファは、
前記符号化データを所定の単位データごとに格納するとともに、その単位データをシフトする第１シフトレジスタと、
前記第１シフトレジスタに格納される単位データに係るアドレス情報をその単位データごとに格納するとともに、前記アドレス情報が前記単位データのシフトに連動してシフトする第２シフトレジスタと、を備え、
前記第２バッファは、
前記第１シフトレジスタから出力される単位データを受け取って単位データごとに格納するとともに、その単位データをシフトする第３シフトレジスタと、
前記第２シフトレジスタから出力される前記アドレス情報を格納するとともに、前記アドレス情報が前記単位データのシフトに連動してシフトする第４シフトレジスタと、
を備えていることを特徴とする請求項３に記載の復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化データを受け取り、この受け取った符号化データから不要データを除去して復号する復号装置に関するものである。
【背景技術】
【０００２】
画像などのデータはその量が非常に多いので、画像データは一般に圧縮されて取り扱われる。その圧縮されたデータ（符号化データ）には、本来の画像とは関係のない、例えば画像の始まりや終了を示す、データが含まれている。このため、圧縮された画像データを復号して画像を再生（復号化）する場合には、それらの本来の画像とは関係のないデータを除去する必要がある。
【０００３】
従来、それらの本来の画像とは関係のないデータを除去するために、例えば特許文献１に記載の発明が知られている。この発明は、復号化回路に入力してきた符号化データをバイト単位で順番にシフトレジスタに格納していき、各レジスタに格納されるバイト単位のデータの値を判定回路で調べて、不要データが見つかった場合にその不要データを逐次除去していた。
【特許文献１】特開平８−１１６５３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、特許文献１の発明では、符号化データ中に含まれる不要データを復号化回路の入り口で逐次除去できる。しかし、復号化回路に入力される不要データが除去された符号化データが、外部メモリから読み出されたものである場合には、現在復号しているデータが外部メモリ中の何処に格納されていたのかを知ることができない、という不具合がある。
【０００５】
つまり、復号処理しているデータが外部メモリ上で連続していたのか、それとも不要なバイトが除去されているのかを知ることができないので、現在復号中のデータのアドレス管理ができないという不具合がある。
そこで、本発明の目的は、上記の点に鑑み、符号化データ中に含まれる不要データが除去される場合であっても、復号中の現在のデータのアドレス管理ができるようにした復号装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決し本発明の目的を達成するために、各発明は、以下のような構成からなる。
第１の発明は、メモリから符号化データを受け取り、この受け取った符号化データから不要データを除去して復号する復号装置であって、メモリからの符号化データを所定の単位データごとに格納するとともに、その単位データをシフトするバッファと、前記バッファに格納される各単位データが所定の不要データであるか否かを判定する判定手段と、を備え、前記判定手段が不要データであると判定したときに、その判定された単位データを前記バッファ内から消去し、かつ、その消去された単位データに続く次の単位データに対して、単位データの消去があった旨の情報を付加するようになっている。
第２の発明は、第１の発明において、前記バッファは、前記単位データを受け取るときに、その単位データに係るアドレス情報を受け取って単位データに付加し、このアドレス情報が付加された単位データをシフトするようになっている。
【０００７】
第３の発明は、メモリから符号化データを受け取り、この受け取った符号化データから不要データを除去して復号する復号装置であって、メモリからの符号化データを所定の単位データごとに格納するとともに、その単位データをシフトする第１バッファと、前記第１バッファからの単位データを受け取って単位データごとに格納するとともに、その単位データをシフトする第２バッファと、前記第１バッファに格納される各単位データが所定の不要データであるか否かを判定する判定手段と、を備え、前記判定手段が不要データであると判定したときに、その判定された単位データを前記第１バッファから出力するときに消去し、かつ、その消去された単位データに続く次の単位データが、前記第１バッファから出力されて前記第２バッファに入力するときに、その次の単位データに対して消去があった旨の情報を付加するようになっている。
【０００８】
第４の発明は、第３の発明において、前記第１バッファは、前記単位データを受け取るときに、その単位データに係るアドレス情報を受け取って単位データに付加し、アドレス情報が付加された単位データをシフトするようになっており、前記第２バッファは、前記第１バッファから出力されるアドレス情報が付加された単位データをシフトするようになっている。
【０００９】
第５の発明は、第３の発明において、前記第１バッファは、前記符号化データを所定の単位データごとに格納するとともに、その単位データをシフトする第１シフトレジスタと、前記第１シフトレジスタに格納される単位データに係るアドレス情報をその単位データごとに格納するとともに、前記アドレス情報が前記単位データのシフトに連動してシフトする第２シフトレジスタと、を備え、前記第２バッファは、前記第１シフトレジスタから出力される単位データを受け取って単位データごとに格納するとともに、その単位データをシフトする第３シフトレジスタと、前記第２シフトレジスタから出力される前記アドレス情報を格納するとともに、前記アドレス情報が前記単位データのシフトに連動してシフトする第４シフトレジスタと、を備えている。
このような構成からなる本発明によれば、符号化データ中に含まれる不要データが除去される場合であっても、復号中の現在のデータのアドレス管理ができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。
本発明の復号装置に係る実施形態は、図１に示すように、前処理バッファ１と、前処理バッファコントローラ２と、アドレス制御回路３と、データ判定回路４と、復号バッファ５と、復号バッファコントローラ６と、アドレスカウンタ７と、復号回路８とを備え、外部メモリ９に格納される符号化データを取り込んで復号する。
【００１１】
前処理バッファ１は、図２に示すように、シフトレジスタ１１と、これに付随または関連するシフトレジスタ１２とを備え、外部メモリ（メモリ）９からのデータとアドレス制御回路３からのアドレス情報とをそれぞれ格納する。
シフトレジスタ１１は、外部メモリ９から読み出された符号化データを１バイト（８ビット）単位で格納でき、かつ１バイト単位でシフト（転送）できるように、１バイトのレジスタ１１−０〜１１−７を８個備え、これらが直列に接続されている。
【００１２】
シフトレジスタ１２は、レジスタ１１−０〜１１−７に格納される１バイト単位のデータに係る所定のアドレス情報をその単位データごとに格納でき、そのアドレス情報は単位データのシフトと同時または連動してシフトできるように、３ビットのレジスタ１２−０〜１２−７を８個備え、これらが直列に接続されている。３ビットのレジスタ１２−０〜１２−７のそれぞれは、図３（Ａ）に示すように、開始アドレスフラグ、再開アドレスフラグ、および不要データフラグとして機能するように割り当てられている。
【００１３】
ここで、図２は前処理バッファ１および復号バッファ５のデータ格納例を示し、同図（Ａ）はシフトする前の例であり、同図（Ｂ）はシフト後の例である。
前処理バッファコントローラ２は、外部メモリ９に対して符号化データの読み出しを要求するとともに、外部メモリ９から読み出された符号化データを、前処理バッファ１１のシフトレジスタ１１−０〜１１−７に格納してシフトする。
【００１４】
この前処理バッファコントローラ２は、復号バッファコントローラ６からデータのシフト要求（シフトイネーブル）が出力されると、前処理バッファ１のシフトレジスタ１１に格納される１バイトのデータと、シフトレジスタ１２に格納される３ビットのアドレス情報とを同時にシフトする。また、前処理バッファ１が空の場合、またはシフトレジスタ１２中のレジスタ１２−７の不要データフラグに「１」が立っている場合には、復号バッファコントローラ６に対して動作の待機（ウエイト）を出力する。
【００１５】
アドレス制御回路３は、復号処理が始まるのに先立ち、外部メモリ９のデータ読み出しの開始アドレス、その読み出しの終了アドレス、必要であればその読み出し再開アドレスが予め設定されており、それらの設定にしたがって外部メモリ９に対して読み出しアドレス（リードアドレス）を出力する。また、アドレス制御回路３は、その読み出しアドレスに従って外部メモリ９から読み出されて前処理バッファ１に格納される符号化データの単位データに付随するアドレス情報を付加する。
【００１６】
ここで、その付加されるアドレス情報としては、外部メモリ９のデータ読み出しの開始アドレスを示す旨の情報があり、この情報を付加する場合には、シフトレジスタ１２のレジスタ１２−０中の開始アドレスフラグに「１」が立てられる（図３（Ａ）参照）。また、そのデータ読み出しの再開アドレスを示す旨の情報があり、この情報を付加する場合には、シフトレジスタ１２のレジスタ１２−０中の再開アドレスフラグに「１」が立てられる（図３（Ａ）参照）。
【００１７】
データ判定回路４は、前処理バッファ１のシフトレジスタ１１に格納される１バイト単位のデータが所定の不要データか否かを判定し、不要データと判定された場合には、その旨を示す情報として、不要データフラグに「１」を立てる（図３参照）。
復号バッファ５は、図２に示すように、シフトレジスタ５１と、これに付随するシフトレジスタ５２とを備え、復号回路８の復号に必要なデータとアドレスカウンタ７に必要なアドレス情報とをそれぞれ格納する。
シフトレジスタ５１は、前処理バッファ１からの符号化データを１バイト単位で格納でき、かつ１バイト単位でシフトできるように、１バイトのレジスタ５１−０〜５１−３を４個備え、これらが直列に接続されている。
【００１８】
シフトレジスタ５２は、レジスタ５１−０〜５１−３に格納される１バイト単位のデータに関連する所定のアドレス情報をその単位データごとに格納でき、そのアドレス情報が単位データのシフトに連動してシフトできるように、３ビットのレジスタ５２−０〜５２−３を４個備え、これらが直列に接続されている。３ビットのレジスタ５２−０〜５２−３のそれぞれは、図３（Ｂ）に示すように、開始アドレスフラグ、再開アドレスフラグ、およびデータ跳躍フラグとして機能するように割り当てられている。
【００１９】
復号バッファコントローラ６は、前処理バッファコントローラ２に対してシフト要求を出力するとともに、復号バッファ５のシフトレジスタ５１、５２におけるデータのシフト制御などを行う。
アドレスカウンタ７は、復号バッファ５に格納される１バイトの単位データに付されたアドレス情報に基づき、外部メモリ９のアドレス計算を行う。
復号回路８は、復号バッファ５から出力される符号化データに基づき、データの復号化を行い、復号済みのデータを出力する。
【００２０】
次に、このような構成からなる実施形態の動作例について、図１〜図４を参照して説明する。
いま、外部メモリ９には、復号対象である符号化データが、例えば４バイト（３２ビット）単位で、各アドレスに格納されているものとする。
そして、前処理バッファコントローラ２が、外部メモリ９に対して読み出し要求（リードイネーブル）を出力する。この出力に基づき、外部メモリ９は、アドレス制御回路３からの読み出しアドレス（リードアドレス）に従って、データを読み出す。
【００２１】
ここで、前処理バッファコントローラ２は、前処理バッファ１の出力側から５バイト以上のデータが格納されているときは、外部メモリ９への読み出し要求を出力することはできない。読み出したデータが、前処理バッファ１に格納できないからである。
前処理バッファコントローラ２は、外部メモリ９から読み出されたデータを、１バイト単位で前処理バッファ１のシフトレジスタ１１に格納していく。その格納例を示すと、図４のようになる。
【００２２】
図４（Ａ）は、前処理バッファ１のシフトレジスタ１１、１２と、復号バッファ５のシフトレジスタ５１、５２のデータの格納例を示す。図４（Ｂ）は、シフト要求（シフトイネーブル）によって、図４（Ａ）の格納内容がシフトされた状態を示す。
アドレス制御回路３は、外部メモリ９に出力した読み出しアドレスに従って、図３（Ａ）の各フラグに格納するアドレス情報を決定し、前処理バッファ１に出力する。このアドレス情報は、外部メモリ９から読み出されたデータが前処理バッファ１のシフトレジスタ１１に１バイト単位で格納されるときに、前処理バッファ１のシフトレジスタ１２に格納され、その１バイトの単位データとともにシフトされていく。
【００２３】
例えば、外部メモリ９に対する読み出しの要求アドレスと、開始アドレスの上位ビットが一致し、かつ、開始アドレスの下位２ビットが「１０」であった場合、アドレス情報は「００１」、「００１」、「１００」、「０００」のように、開始アドレスに相当するバイトのデータ情報の開始アドレスフラグを「１」とし、それよりも前のデータは不要なので、データが不要である旨を示す不要データフラグに「１」を立てる。
【００２４】
また、アドレス制御回路３は、外部メモリ９の読み出しを終了する終了アドレスが設定されていない場合には、符号化データは無限に長いものとして、開始アドレスから順次読み込む。さらに、終了アドレスが設定されている場合には、開始アドレスから終了アドレスを繰り返し読む。終端アドレスと再開アドレスが設定されている場合には、再開アドレスから終了アドレス、および再開アドレスから無限の順で読み込む。
【００２５】
次に、復号バッファコントローラ６から前処理バッファコントローラ２に対してシフト要求が出力されると、前処理バッファ１のシフトレジスタ１１は１バイト単位でデータをシフトし、この併せてシフトレジスタ１２は３ビット単位でアドレス情報をシフトする。
ここで、前処理バッファ１にデータが格納されていない場合、または前処理バッファ１のシフトレジスタ１２のレジスタ１２−７の不要データフラグが「１」の場合には、後述のように、シフトレジスタ１１はシフト動作を行うが、シフトレジスタ１２はシフト動作を停止して行わない。
【００２６】
次に、データ判定回路４は、例えば図４（Ａ）に示すように、前処理バッファ１のシフトレジスタ１１のレジスタ１１−６に１バイトの単位データがシフトされたときに、その単位データが所定の不要データか否を判定する。
この判定の結果、単位データが不要データであると判定されたときには、その単位データを不要なものとして除去（消去）する必要がある。このため、データ判定回路４は、その単位データがシフトレジスタ１１の終段のレジスタ１１−７にシフトされるときに、このシフトに応じてシフトレジスタ１２のレジスタ１２−７の不要データフラグに「１」を格納する。
【００２７】
例えば、ＪＰＥＧの符号化データを復号する場合には、１バイトの単位データが「０ｘＦＦ」、「０ｘ００」と続く場合には、「０ｘ００」が不要データである。このため、データ判定回路４は、図４（Ａ）のように１バイトの単位データが「０ｘＦＦ」、「０ｘ００」と続く場合には、単位データ「０ｘ００」がレジスタ１１−７にシフトされるときに、このシフトに応じてレジスタ１２−７の不要データフラグに「１」を格納する（図４（Ｂ）参照）。
【００２８】
前処理バッファコントローラ２は、レジスタ１２−７の不要データフラグに「１」が格納されているときには、復号バッファコントローラ６に対して復号バッファ５の次のシフト動作を止めて待機するための指示をする。このため、前処理バッファ１がデータの次のシフト動作をするときには、復号バッファ５はシフト動作を行わない。
これらの動作を図４を参照して説明すると、図４（Ｂ）の状態から図４（Ｃ）の状態に変化するとき、前処理バッファ１のシフトレジスタ１１、１２はシフト動作を行うが、復号バッファ５のシフトレジスタ５１、５２はシフト動作を一時的に停止する。このため、レジスタ１１−７には、レジスタ１１−６に格納される単位データ「０ｘ１２」が上書きされ、レジスタ１１−７に格納されていた不要な単位データ「０ｘ００」は消去される（図４（Ｃ）参照）。一方、シフトレジスタ５１、５２の格納内容はそのまま維持される。
【００２９】
次に、前処理バッファコントローラ２は、復号バッファコントローラ６に対する待機信号の出力を停止する。これにより、復号バッファ５は次のシフト動作が可能となる。
これらの動作を図４を参照して説明すると、図４（Ｃ）の状態から図４（Ｄ）の状態に変化するとき、前処理バッファ１のシフトレジスタ１１、１２、および復号バッファ５のシフトレジスタ５１、５２は、それぞれシフト動作を行う。このため、レジスタ１１−７、１２−７の格納内容は、レジスタ５１−７、５２−７にシフトされる。このとき、レジスタ１１−７に格納される単位データ「０ｘ１２」は、単位データ「０ｘ００」が消去されたことにより、レジスタ５１−０に格納される単位データ「０ｘＦＦ」とは連続せず跳躍したデータとなる。
【００３０】
そこで、図４（Ｄ）に示すように、データ判定回路４は、レジスタ１１−７に格納される単位データ「０ｘ１２」がレジスタ５１−０にシフトされて格納するときに、その単位データ「０ｘ１２」が跳躍データをあることを示す情報として、レジスタ５２−０のデータ跳躍フラグに「１」を立てる。
このような動作により、復号バッファ５のシフトレジスタ５１に格納される符号化画像データには不要なデータが含まれていないので、復号回路８は復号バッファ５からのデータに基づいて可変長符号を切り出す。
【００３１】
アドレスカウンタ７は、復号バッファ５のシフトレジスタ５１のレジスタ５２−２に格納されるアドレス情報の内容、すなわち、開始アドレスフラグ、再開アドレスフラグ、およびデータ跳躍フラグの各内容を監視する。そして、開始アドレスフラグまたは再開アドレスフラグに「１」が立っていた場合には、レジスタ５１−２に格納される１バイトデータが、レジスタ５１−３にシフトされるタイミングで、カウンタの値を開始アドレスまたは再開アドレスに書き換える。その後、アドレスカウンタ７は、シフトレジスタ５１、５２がデータをシフトするたびに「１」だけカウントアップしていき、データ跳躍フラグに「１」が立っている場合にのみ、カウント値を「２」だけカウントアップする。
【００３２】
このようにアドレスカウンタ７のカウント値は、復号中の１バイトのデータが外部メモリ９に記憶されていたときのアドレスに対応し、そのアドレスをリアルタイムで知ることができる。このため、例えば、データの復号の際に、その復号に係るプログラムなどに必要なアドレスとして利用できる。
以上のように、この実施形態によれば、符号化データ中に含まれる不要データが除去される場合であっても、復号中の現在のデータのアドレス管理ができる。
【００３３】
次に、図２に示す前処理バッファ１と復号バッファ５の具体的な構成について、図５を参照して説明する。
前処理バッファ１は、図５に示すように、レジスタ１１−０〜１１−７、レジスタ１２−０〜１２−７、アンドゲート１３、アンドゲート１４、およびゲート１５を備えている。レジスタ１１−０〜１１−７は、図２のレジスタ１１−０〜１１−７と同様の機能を有する。また、レジスタ１２−０〜１２−７は、図２のレジスタ１２−０〜１２−７と同様の機能を有する。
【００３４】
復号バッファ５は、図５に示すように、レジスタ５１−０〜５１−３、レジスタ５２−０〜５２−３、ゲート５３、ゲート５４、およびゲート５５を備えている。レジスタ５１−０〜５１−３は、図２のレジスタ５１−０〜５１−３と同様の機能を有する。また、レジスタ５２−０〜５２−３は、図２のレジスタ５２−０〜５２−３と同様の機能を有する。
【００３５】
次に、このような構成の前処理バッファ１と復号バッファ５の動作について、図５を参照して説明する。
復号バッファコントローラ６は、復号バッファ５に空きができるとシフトイネーブル信号を、前処理バッファ１のアンドゲート１３、１４、および復号バッファ５のゲート５３、５４にそれぞれ送信する。これにより、レジスタ１１−０〜１１−７およびレジスタ１２−０〜１２−７はデータをシフトするとともに、レジスタ５１−０〜５１−２およびレジスタ５２−０〜５２−２はデータをシフトする。このように、各レジスタからすると、シフトイネーブル信号は、ライトイネーブル信号の役割を果たしている。したがって、シフトイネーブル信号がＨレベルのときにデータをシフトでき、それがＬレベルのときにはデータがシフトしない。
【００３６】
データ判定回路４は、前処理バッファ１のレジスタ１１−６、１１−７の２バイト分のデータを常に監視している。いま、例えば、レジスタ１１−７の内容が「０ｘＦＦ」で、レジスタ１１−６の内容が「０ｘ００」となった場合、その「０ｘ００」がレジスタ１１−７にシフトされるときに、データ判定回路４は、ゲート１５を介してレジスタ１２−７の不要データフラグに「１」を立てる。
【００３７】
前処理バッファコントローラ２は、上記のようにレジスタ１２−７の不要データフラグに「１」を立てられたとき、ウエイト信号を復号バッファ５のゲート５３、５４に対して送信する。このウエイト信号は反転されてゲート５３、５４に供給されるので、このウエイト信号がＨレベルのときは，レジスタ５１−０〜５１−２およびレジスタ５２−０〜５２−２はデータをシフトしない。
【００３８】
したがって、シフトイネーブル信号とウエイト信号がそれぞれＨレベルの時には、復号バッファ５はデータの値を保持し、前処理バッファ１の各レジスタはデータを右から左の方向にシフトする。このため、レジスタ１１−７に格納されている不要データ「０ｘ００」は消去される
データ判定回路４は、レジスタ１２−７の不要データフラグに「１」が立っている場合には、レジスタ１１−７のデータを復号バッファ５のレジスタ５１−０にシフトする場合に、レジスタ５１−０のデータが跳躍データをあることを示す情報として、レジスタ５２−０のデータ跳躍フラグに「１」を立てる。
【００３９】
次に、この実施形態では、図１に示すように、バッファを前処理バッファ１と復号バッファ５に分割するようにしたので、その理由について以下に説明する。
図１の外部メモリ９から読み出された４バイト単位のデータ中の不要なデータを削除するタイミングがバッファの入り口である場合には、外部メモリ９から読み出した４バイト単位のデータの組み合わせは、図６に示すように３パターンとなる。図６の「０ｘＦＦ」と「０ｘ００」は、検出したいバイトであり、「０ｘ００」は削除したい不要なバイトデータである。
【００４０】
しかも、図７に示すように、検出したいバイト列（この例では「０ｘＦＦ」と「０ｘ００」）がワード境界にある場合、最初のワードを読み込んだときに最後尾が「０ＸＦＦ」であったことを記憶しておく必要がある。そして、図８に示すように、次のワードを読み込んだときに先頭が「０ｘ００」であることを認識してから、初めて「０ｘ００」を削除できる。そして、単純に3 パターンを検索する場合とあわせて、4 種類のデータ削除方法があり、外部メモリから読み込んだデータをバッファに配置するパターンが増え、制御が複雑になる。
【００４１】
しかし、バッファを前処理バッファ１と復号バッファ５のように、２段に分けておくと、外部メモリ９から読み込んだデータの前処理バッファ１への配置は単純であり、１パターンしかない（図９参照）。
また、図１０に示すように、検出したいワードである「０ｘＦＦ」と「０ｘ００」が２つのアドレスにまたがってワード境界に分かれた場合でも、そのままデータを前処理バッファ１に配置すればよい。
【００４２】
そして、データを判別するために監視しなければならないデータは図１１に示すように２バイト分だけで、検索パターンは１パターンのみになる。
さらに、不要なデータを見つけた場合、不要データが前処理バッファ１の最終のレジスタに来たときに、復号バッファ５のシフトを止めて、前処理バッファ１のみをシフトさせることにより、簡単に不要データの削除ができる。
【００４３】
ここで、前処理バッファ１と復号バッファ５をどこで分けるかは、何ビットのデータを復号バッファ５から切り出すかに依存する。
なお、以上の説明では、この実施形態の復号対象の符号化データは、ＪＰＥＧにより圧縮されたデータの場合について説明したが、これ代えてＨ．２６４による符号化データなどでも適用可能である。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態の構成を示すブロック図である。
【図２】図１に示す前処理バッファおよび復号バッファの構成および動作を概念的に説明する図である。
【図３】図２に示す前処理バッファおよび復号バッファを構成するシフトレジスタの各レジスタの構成を説明する図である。
【図４】前処理バッファおよび復号バッファの動作例を説明する図である。
【図５】図１に示す前処理バッファおよび復号バッファの具体的な構成例を示す図である。
【図６】外部メモリに４バイト単位で格納される符号化データのパターン例を示す図である。
【図７】バッファを前処理バッファと復号バッファに分割しない場合の不具合を説明する図である。
【図８】同じくその不具合を説明する図である。
【図９】バッファを前処理バッファと復号バッファに分割した場合の利点を説明する図である。
【図１０】同じくその利点を説明する図である。
【図１１】さらにその利点を説明する図である。
【符号の説明】
【００４５】
１・・・前処理バッファ、２・・・前処理バッファコントローラ、３・・・アドレス制御回路、４・・・データ判定回路、５・・・復号バッファ、６・・・復号バッファコントローラ、７・・・アドレスカウンタ、８・・・復号回路、９・・・外部メモリ、１１、１２・・・シフトレジスタ、５１、５２・・・シフトレジスタ
【図１】
2009017248.tif 000003
【図２】
2009017248.tif 000004
【図３】
2009017248.tif 000005
【図４】
2009017248.tif 000006
【図５】
2009017248.tif 000007
【図６】
2009017248.tif 000008
【図７】
2009017248.tif 000009
【図８】
2009017248.tif 000010
【図９】
2009017248.tif 000011
【図１０】
2009017248.tif 000012
【図１１】
2009017248.tif 000013