(57)【特許請求の範囲】
【請求項１】
符号列の後ろに符号終了を示すマーカおよび必要に応じて他のマーカを付すとともにダミーデータを付加した符号データを転送する転送手段と、該転送手段により転送されてきた符号データが順次入力され該符号データの中から前記符号終了を示すマーカを含む複数種類のマーカ及び前記ダミーデータを検出するマーカ検出手段と、前記符号列を復号する復号手段と、前記復号手段の復号処理を停止させる信号を出力する復号停止信号生成手段を備え、前記復号停止信号生成手段は、少なくとも、前記マーカ検出手段において前記符号終了を示すマーカを検出後前記ダミーデータあるいは新たな符号データの開始を検出する前に符号データの入力が途切れたとき前記復号手段の復号処理を停止させる信号を出力することを特徴とする復号化装置。
【請求項２】
さらに、順次入力される前記符号データを格納するバッファを有し、前記復号停止信号生成手段は、前記バッファが空の状態であるか否か及び前記マーカ検出手段がマーカを検出処理中であるか否かに従って前記復号手段の復号処理を停止させる信号を生成することを特徴とする請求項１に記載の復号化装置。
【請求項３】
さらに前記復号手段で復号するライン数を設定するライン数レジスタを有し、前記マーカ検出手段は、新しいライン数を示すマーカを検出すると該マーカが示す新しいライン数を前記ライン数レジスタに書き込むことを特徴とする請求項１または請求項２に記載の復号化装置。
【請求項４】
前記符号データは算術符号化方式により符号化された符号列を含んでおり、前記復号手段は、算術符号化方式により復号処理を行うものであることを特徴とする請求項１ないし請求項３のいずれか１項に記載の復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力された符号データを復号する復号化装置に関するものである。
【０００２】
【従来の技術】
データを符号化した符号列の後ろに、符号終了を示すマーカや、必要に応じて他のマーカを付加した形式の符号データを受け取り、復号する場合がある。例えば２値画像の国際標準符号化方式の一つであるＪＢＩＧと呼ばれる方式では、符号化方式として算術符号化方式を用い、算術符号化方式により符号化された符号列の後に、符号列の終端等を識別するための特別な識別符号であるマーカが付加されている。さらにその後ろに、種々のマーカを付加することができる。
【０００３】
図７は、符号データの一例の説明図である。ＪＢＩＧ方式では、算術符号化方式により符号化された画像の符号列の後に、終端を示すマーカ（以下、終了マーカと呼ぶ）を付加する。この終了マーカとしては“ＦＦ０２”あるいは“ＦＦ０３”なる２バイトデータが用いられる。符号データ上の終了マーカを検知することによって、符号列の終了を知ることができる。なお、符号化の過程においては“ＦＦ０２”あるいは“ＦＦ０３”なるデータが現れることがあるが、符号列中では“ＦＦ”なるバイトが出現したときは次のバイトとの間に必ず“００”なる１バイトを挿入し、終了マーカを含む各種のマーカと区別している。
【０００４】
終了マーカの後ろには、必要に応じて終了マーカ以外の各種のマーカを付加することができる。例えば“ＦＦ０５”なる２バイトのデータは、後に続く４バイトが１ページのライン数であることを表している。この“ＦＦ０５”なる２バイトのマーカをＮＥＷＬＥＮマーカという。もちろん、ＮＥＷＬＥＮマーカ以外にも、各種のマーカを付加することができる。また、各種のマーカの後に、次の符号データを続けてもよい。
【０００５】
図８は、従来の復号装置の一例を示す機能ブロック図である。図中、４１はマーカ検出部、４２は復号部、４３は画素数管理部、４４はライン数管理部、４５はライン数解析・設定部、５１は符号データ信号、５２は算術符号列、５３は復号画素信号、５４は画素信号パルス、５５は画素数、５６はライン終了パルス、５７はライン数、５８は出力信号、５９は指示信号である。なお、図８に示すような構成は、例えば特開平７−２７４００９号公報などに開示されている。
【０００６】
符号データ信号５１はマーカ検出部４１に入力される。マーカ検出部４１は、マーカを検出しない限り、符号データ（算術符号列５２）を復号部４２に送る。ただし、符号データ中に“ＦＦ００”を検出した時は“００”を取り除いて復号部４２に送る。このようにして、復号部４２にはマーカや“ＦＦ００”中の挿入バイト“００”の除去された算術符号列５２が入力される。復号部４２は、算術符号列５２を復号し、復号画素信号５３を出力するとともに、画素数管理部４３に対して画素復号パルス５４を出力する。
【０００７】
画素数管理部４３は、予め走査方向の画素数５５を設定しておき、復号部４２からの画素復号パルス５４をカウントし、設定された画素数５５と一致したとき、ライン終了パルス５６をライン数管理部４４に出力する。ライン数管理部４４には予めライン数５７を設定しておき、画素数管理部４３からのライン終了パルス５６をカウントし、設定されたライン数５７と一致したとき、復号部４２に対して復号処理を終了させる。ただし、復号処理すべきライン数は既知の場合にはその値をライン数管理部４４へのライン数５７として設定すればよいが、未知の場合には、考えられる最も大きな値をライン数５７として設定しておく。
【０００８】
復号処理中にマーカ検出部４１においてマーカが検出されると、出力信号５８にてライン数解析・設定部４５にマーカが検出されたことを通知する。通知を受けたライン数解析・設定部４５は、復号部４２に対して復号処理の一時中断を指示する指示信号５９を出力する。復号部４２は指示信号５９を受けると、その時点で復号処理を中断する。また、ライン数解析・設定部４５は、マーカの後に続く符号データ信号５１を解析する。この中に例えば上述のＮＥＷＬＥＮマーカのような１ページのライン数を示すマーカが存在する場合には、そのマーカが示すライン情報を抽出し、ライン数管理部４４に正しいライン数を設定する。符号データ信号５１の終了などにより新たなマーカが検出されない場合には、ライン数解析・設定部４５は、復号部４２に対して再開コマンドとして指示信号５９を発行する。そうすると、復号部４２は復号処理を再開し、ライン数管理部４４に設定されたライン数分の復号処理を行った後、復号処理を終了する。
【０００９】
ＪＢＩＧ方式においては、終了マーカのあとに必ずしもＮＥＷＬＥＮマーカが挿入されているとは限らない。例えば予めライン数が決まっているようなシステムにおいては、ライン数５７としてそのライン数を設定すればよく、その場合にはＮＥＷＬＥＮマーカは付加されない。しかし、ファクシミリ等で送信される場合、送信ライン数はページの最後にならないと決定できない場合が多いため、予めライン数を決定しておくことはできない。そのため、ページの最後まで符号化した符号列の後に、ＮＥＷＬＥＮマーカによってライン数を通知することになる。
【００１０】
このとき、復号化装置に入力される符号データが、例えば終了マーカまで入力された時点で中断してしまったとする。この場合、予めライン数が決まっているシステムでは、正常に設定されているライン数の復号処理が行われる。しかし、ライン数が決まっていないシステムでは、終了マーカによって符号データの終了を検出し、そのまま復号処理を続行してしまう。終了マーカを受け取った時点では正しいライン数が設定されていないため、予め設定している最大ライン数などに従って復号処理を行ってしまい、誤動作を引き起こす可能性があった。
【００１１】
もちろん、常にＮＥＷＬＥＮマーカを検出するように構成することもできるが、そのような構成では、予めライン数が決まっているようなシステムには対応できないという問題があった。
【００１２】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、終了マーカ以外のマーカが付加されていない場合にも対応できるとともに、符号データの入力が終了マーカまで入力された時点で中断してしまった場合でも、後続のマーカを正しく検出して復号処理に反映することができる復号化装置を提供することを目的とするものである。
【００１３】
【課題を解決するための手段】
本発明は、符号列の後ろに符号終了を示すマーカおよび必要に応じて他のマーカを付すとともにダミーデータを付加した符号データが転送手段から転送され、転送されてきた符号データが順次入力される復号化装置であって、符号データの中から符号終了を示すマーカを含む複数種類のマーカ及びダミーデータを検出するマーカ検出手段と、符号列を復号する復号手段と、復号手段の復号処理を停止させる信号を出力する復号停止信号生成手段を備え、復号停止信号生成手段は、少なくとも、マーカ検出手段において符号終了を示すマーカを検出後、ダミーデータあるいは新たな符号データの開始を検出する前に符号データの入力が途切れたとき、復号手段の復号処理を停止させる信号を出力することを特徴とするものである。このような構成によって、例えば符号終了を示すマーカ以外のマーカが付加されていない場合には、ダミーデータや次の符号データの開始によってその旨を検出することができる。また、符号終了を示すマーカ以後に、他のマーカやダミーデータ、次の符号データが続かない場合には、入力されている符号データが中断しているものとして、符号データの続きを待つように制御することができる。そのため、符号終了を示すマーカを検出後、符号データが途切れても、符号データの終了とはせずに、続くマーカを正しく検出することが可能になる。例えば上述のＮＥＷＬＥＮマーカのように、新しいライン数を示すマーカについて、送られてこない場合にはその旨を正しく認識し、また、送られてくる場合には符号終了を示すマーカ検出後に符号データが途切れてもマーカの到来を待つので、新しいライン数を正しく設定することができる。
【００１４】
復号停止信号生成手段は、順次入力される符号データを格納するバッファを有する構成では、バッファが空の状態であるか否かと、マーカ検出手段がマーカを検出処理中であるか否かに従って、復号手段の復号処理を停止させる信号を生成することができる。これによって、マーカ検出中とともに、符号列およびマーカ部分を通じて符号データが途切れた場合にも、復号手段の復号処理を停止させることができる。そのため、簡単な回路で終了マーカ以外のマーカが付加されていない場合にも、また符号データの入力が終了マーカまで入力された時点で中断してしまった場合にも対応でき、正しく復号処理を行うことができる。
【００１５】
【発明の実施の形態】
図１は、本発明の復号化装置の実施の一形態を含むシステムのブロック図である。図中、１はＣＰＵ、２はメモリ、３はバス、４は復号化装置、１１は符号入力部、１２はバッファ、１３はマーカ検出部、１４は復号停止信号生成部、１５はライン数レジスタ、１６は復号部、２１は読み出し符号、２２はバッファエンプティ、２３は復号部入力データ、２４はマーカ処理実行信号、２５は終了マーカ検出信号、２６はマーカライン数、２７はマーカ書込信号、２８は復号停止信号、２９は外部設定ライン数、３０は外部書込信号、３１は設定ライン数、３２は出力画像である。この例では、本発明の復号化装置４がバス３に接続され、バス３を介して符号データが復号化装置４に入力される例を示している。
【００１６】
ＣＰＵ１はシステム全体を制御し、メモリ２には符号化データが格納されている。ＣＰＵ１，メモリ２，復号化装置４はバス３によって接続されている。もちろん、バス３にはこのほかにも各種の装置等が直接あるいはインタフェースを介して接続されていてよい。例えばデータ転送のためにＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）等が接続されていてもよい。
【００１７】
復号化装置４は、符号入力部１１、マーカ検出部１３、復号停止信号生成部１４、ライン数レジスタ１５、復号部１６等を有し、入力される符号データを復号して出力する。図２は、本発明の復号化装置に入力される符号データの一例の説明図である。符号化装置４に入力される符号データは、例えば図２に示すように、所定の符号化方式によって符号化された符号列の後ろに終了マーカが付加され、さらに必要に応じて終了マーカ以外のマーカが付加される。さらにこのようなマーカの後に、ダミーデータが付加されているものとする。例えばＪＢＩＧ方式では、符号列は算術符号化方式によって符号化された１ページ分の算術符号であり、“ＦＦ”なるバイトが出現したときは次に“００”なる１バイトが挿入されている。また、終了マーカとしては“ＦＦ０２”あるいは“ＦＦ０３”の２バイトのデータが用いられる。終了マーカ以外のマーカとしては各種のものがあるが、例えば１ページのライン数を示すＮＥＷＬＥＮマーカが付加されていてよい。ＮＥＷＬＥＮマーカは“ＦＦ０５”に続く４バイトのデータで構成される。もちろん、ＮＥＷＬＥＮマーカの付加は任意である。さらにこのようなマーカの後に、ダミーデータが付加される。ダミーデータは任意であり、他のマーカや符号列と識別できればよい。例えば“ＦＦ”で始まるマーカと区別するため、先頭の１バイトを“ＦＦ”以外のデータとしておくとよい。もちろん、マーカとして機能が割り当てられていない“ＦＦ”で始まるデータでもよい。なお、以下の説明では、一例としてＪＢＩＧ方式による符号データが入力されるものとして説明する。もちろん同様の形式の符号データであればＪＢＩＧ方式に限られるものではない。
【００１８】
符号入力部１１は、入力される符号データを受け取る。符号入力部１１にはバッファ１２が設けられており、受け取った符号データはバッファ１２に一旦格納される。バッファ１２に格納された符号データは、順次、読み出し符号２１としてマーカ検出部１３に出力される。また、バッファ１２に符号データが格納されているかあるいは空かを示すバッファエンプティ２２がマーカ検出部１３及び復号停止信号生成部１４に対して出力されている。
【００１９】
マーカ検出部１３は、符号入力部１１から読み出し符号２１が入力され、読み出し符号２１からマーカが存在するか否かを検出する。また、バッファエンプティ２２が入力されている時は処理を停止する。具体的には、ＪＢＩＧ方式の場合、マーカ検出部１３は読み出し符号２１をバイト毎に“ＦＦ”が存在するか否かをチェックし、“ＦＦ”がない時はそのまま復号部入力データ２３として復号部１６へ出力する。“ＦＦ”が存在した場合は、“ＦＦ”の次のバイトをチェックする。図３は、読み出し符号が“ＦＦ００”の時のマーカ検出部の処理の一例の説明図である。図３（Ａ）に示すように“ＦＦ”の次のバイトが“００”の時は、図３（Ｂ）に示すように“００”を取り除いて“ＦＦ”を復号部入力データ２３として出力する。図３では“ＦＦ００”が２つ連続している場合を示している。
【００２０】
またマーカ検出部１３は、“ＦＦ”の次のバイトが“００”以外の時はマーカ処理を実施する。マーカ処理は、“ＦＦ”の次のバイトの値によって所定の処理を実行する。例えば、“ＦＦ”の次が“０２”あるいは“０３”である場合、マーカ検出部１３は終了マーカであることを検出し、終了マーカ検出信号２５を復号部１６に対して出力する。また、例えば“ＦＦ”の次が“０５”である場合、ＮＥＷＬＥＮマーカであることを検出する。図４は、ＮＥＷＬＥＮマーカの一例の説明図である。ＮＥＷＬＥＮマーカが付加されている場合、読み出し符号２１は図４に示す順に入力される。先頭の“ＦＦ０５”はＮＥＷＬＥＮマーカが入力されたことを示しており、後に続く４バイトの“０００１００００”が新しいライン数である。マーカ検出部１３ではＮＥＷＬＥＮマーカが入力されると、ライン数レジスタ１５に対して、“ＦＦ０５”の後に続く４バイトをマーカライン数２６として出力するとともに、マーカ書込信号２７を出力する。もちろん、マーカ検出部１３はこのほかのマーカについても処理を行う。
【００２１】
マーカ検出部１３は、マーカ処理を実施している時はマーカ処理実行信号２４を復号停止信号生成部１４に対して出力する。例えばバッファエンプティ２２によりバッファ１２が空であることが通知されると、マーカ処理を中断し、その間はマーカ処理実行信号２４は出力されない。また、終了マーカを含む種々のマーカを検出後、ダミーデータや次の符号列などを検出した場合には、マーカ処理実行信号２４の出力を停止する。
【００２２】
復号停止信号生成部１４は、バッファエンプティ２２が入力された時とマーカ処理実行信号２４が入力された時に復号停止信号２８を出力する。すなわち、バッファ１２が空である場合と、マーカ検出部１３でマーカ処理を実行中は、復号部１６に対して復号停止信号２８を出力し、復号部１６における復号処理を停止させる。
【００２３】
ライン数レジスタ１５は、処理する画像のライン数を設定するレジスタである。処理開始前に外部設定ライン数２９と外部書込信号３０によって、ライン数が設定される。処理する画像のライン数が既知であればそのライン数を、またライン数が未知の場合は最大値を設定する。処理中にマーカ検出部１３が符号データからＮＥＷＬＥＮマーカを検出すると、マーカ検出部１３からマーカライン数２６とマーカ書込信号２７が入力され、設定ライン数３１が更新される。設定ライン数３１は復号部１６に入力される。
【００２４】
復号部１６は、復号部入力データ２３として入力される符号列を基にして、画像データを設定ライン数３１に達するまで復号し、出力画像３２を出力する。途中、復号停止信号２８が入力されれば処理を停止する。また、終了マーカ検出信号２５が入力された時には、復号された画像データが設定ライン数に達していないならば自動的に符号に“００”を追加して、設定ライン数に達するまで復号する。
【００２５】
次に、上述の本発明の復号化装置の実施の一形態を含むシステムにおける動作の一例について説明する。図１に示すシステムでは、符号データはメモリ２に格納されている。また、復号化装置４による復号処理を開始する前に、外部設定ライン数２９及び外部書込信号３０により、ライン数レジスタ１５にライン数の初期値を設定しておく。このライン数の初期値は、装置により予め決めておいたり、あるいは、ＣＰＵ１が書き込んでもよい。復号するライン数が予め決まっている場合にはそのライン数を設定し、ライン数が決まっていない場合には最大値を初期値として設定すればよい。
【００２６】
符号データの復号を行う場合には、ＣＰＵ１はメモリ２から符号データを読み出し、バス３を介して復号化装置４に転送する。ＣＰＵ１の代わりに、例えばＤＭＡＣを用いて転送してもよい。メモリ２中の符号データが終了したら、ダミーデータを続けて復号化装置４に転送する。復号化装置４では、バス３を介して転送されてきた符号データを復号し、画像を復元して出力画像３２として出力する。
【００２７】
図５は、本発明の復号化装置の実施の一形態における動作の一例を示すタイミング図である。期間１は復号処理の開始前を示し、上述のようにライン数レジスタ１５にライン数の初期値を設定する。ここでは、ライン数は不明であるものとし、処理可能なライン数の最大値を設定している。
【００２８】
期間２では、バス３を介して復号化装置４に符号化データが入力され、復号部１６で復号が行われている期間である。符号化データがバス３を介して符号入力部１１に入力されると、符号化データは一旦、内部のバッファ１２に格納される。これによって、バッファエンプティ２２がＬレベルになる。この時点ではマーカ検出部１３ではマーカを検出しておらず、マーカ処理実行信号２４はＬレベルのままであるので、復号停止信号生成部１４は、バッファエンプティ２２及びマーカ処理実行信号２４がともにＬレベルであることから復号停止信号２８をＬレベルにして復号部１６の復号処理を開始させる。
【００２９】
また、バッファエンプティ２２はマーカ検出部１３にも入力されており、バッファエンプティ２２がＬレベルになることによって、マーカ検出部１３も動作を開始する。バッファ１２に格納された符号データは、順次読み出されて読み出し符号２１としてマーカ検出部１３に入力される。マーカ検出部１３は、読み出し符号２１にマーカが存在するか否かを常に監視している。具体的には“ＦＦ”を検出するとともに、その次のバイトが“００”以外のデータであるか否かにより判定する。“ＦＦ”が検出されないときは、読み出し符号２１をそのまま復号部入力データ２３として復号部１６に対して出力する。また、図３で説明したように、“ＦＦ”の次に“００”が続く場合には、“ＦＦ”の次の“００”を取り除いて復号部入力データ２３として復号部１６に出力する。復号部１６は、マーカ検出部１３から出力される復号部入力データ２３に従い、復号処理を行って出力画像３２を出力する。このとき、ライン数のカウントを行い、カウントしたライン数と、ライン数レジスタ１５から出力される設定ライン数３１とを比較し、復号結果が設定されているライン数に達したか否かを判定する。設定ライン数３１に達していなければそのまま復号処理を続け、設定ライン数３１に達したら、復号処理を終了する。
【００３０】
図５に示す例では、期間３において符号データの入力が停止している。例えばＣＰＵ１において別の処理を行ったり、バス３が別の用途に利用される等によって、符号データの転送が中断される場合がある。このような場合には、バッファ１２中に符号データがなくなり、バッファ１２が空になった時点で、バッファエンプティ２２がＨレベルになる。復号停止信号生成部１４はこれを受けて復号停止信号２８をＨレベルにする。これによって、復号部１６は復号処理を一時停止する。また、マーカ検出部１３もバッファエンプティ２２がＨレベルになることによって、処理すべき符号データが到来していないことを検知し、処理を一時中断する。
【００３１】
符号データの転送が再開されると、期間４に示すように、符号データがバッファ１２に格納されてバッファエンプティ２２がＬレベルになり、マーカ検出部１３の動作が再開する。また、復号停止信号生成部１４は復号停止信号２８をＬレベルにし、復号部１６の復号動作も再開する。
【００３２】
このようにして符号データが入力されてゆくうちに、マーカ検出部１３は終了マーカを検出する。例えば“ＦＦ”の次が“０２”あるいは“０３”である場合、マーカ検出部１３はこれを終了マーカとして検出する。図５の期間５は、この終了マーカの検出期間を示している。マーカ検出部１３は終了マーカを検出すると、終了マーカ検出信号２５を復号部１６に出力し、以後の復号部入力データ２３がないことを知らせる。復号部１６は、終了マーカ検出信号２５を受けると、それ以後、不足する符号列として例えば“００”を補って復号処理を行う。
【００３３】
また、マーカ検出部１３は、終了マーカを検出すると、マーカ処理実行信号２４をＨレベルにする。復号停止信号生成部１４は、これを受けて、復号停止信号２８をＨレベルにし、復号部１６の復号処理を一時停止させる。
【００３４】
マーカ検出部１３は、これ以後、ダミーデータあるいは次の符号データが現れるまで、連続して配置されているマーカの処理を行う。マーカ検出部１３でマーカ処理を行っている間、マーカ処理実行信号２４はＨレベルに維持される。
【００３５】
期間６では、終了マーカ以外のマーカの例としてＮＥＷＬＥＮマーカが符号化データとして入力された場合を示している。マーカ検出部１３は、“ＦＦ”に“０５”が続くことによってＮＥＷＬＥＮマーカを検出し、後に続く４バイトを新しいライン数として取得する。そして、取得した新しいライン数をマーカライン数２６として出力するとともに、マーカ書込信号２７を出力する。これによってライン数レジスタ１５に保持されるライン数が変更され、設定ライン数３１が新しいライン数となる。復号部１６が動作を再開したときには、この新しいライン数に従って復号処理を行うことになる。
【００３６】
このＮＥＷＬＥＮマーカの処理中も、マーカ検出部１３はマーカ処理実行信号２４をＨレベルに維持する。そのため、復号停止信号生成部１４は復号停止信号２８をＨレベルに維持し、復号部１６は復号処理を停止した状態のままとなる。
【００３７】
もちろん、ＮＥＷＬＥＮマーカが存在しない場合もあるし、また他のマーカが存在すれば、マーカ検出部１３はそれらのマーカについても処理を行うことになる。この間、復号部１６は復号処理を停止している。
【００３８】
期間７は、符号データ中のマーカが終了し、ダミーデータや次の符号データが入力される期間を示している。この例ではダミーデータが入力された例を示している。マーカ検出部１３は、次の符号データがマーカでないことを認識すると、マーカ処理を終了し、マーカ処理実行信号２４をＬレベルに変化させる。バッファ１２にはダミーデータが格納されているためバッファエンプティ２２はＬレベルであるので、復号停止信号生成部１４は復号停止信号２８をＬレベルに変化させ、復号部１６に復号処理を再開させる。復号部１６は、既に符号列は存在しないため、必要に応じて“００”を加えながら、ライン数レジスタ１５が保持するライン数だけの出力画像３２が得られるまで復号処理を続ける。なお、期間６で示したようにＮＥＷＬＥＮマーカが付加されていた場合には、この時点ではライン数レジスタ１５にＮＥＷＬＥＮマーカで指示された新しいライン数が設定されているので、復号部１６はその新しいライン数となるまで復号処理を行うことになる。もちろん、ＮＥＷＬＥＮマーカが付加されていない場合には、最初に外部設定ライン数２９で設定したライン数まで、復号処理を行うことになる。
【００３９】
このようにして、復号化装置４は、ＮＥＷＬＥＮマーカが付加されているか否かにかかわらず、符号データの復号処理を行うことができる。また、期間３のように符号データが途中で途切れても、正しく復号処理を行うことができる。
【００４０】
図６は、本発明の復号化装置の実施の一形態における動作の別の例を示すタイミング図である。図中、図５と同じ処理を行う期間には同じ番号を割り付けてある。また、期間１〜期間４については図５と同じであるので省略してある。従来の復号化装置においても、図５にも示したように符号列の途中でデータの転送が途切れた場合には、後続のデータの到来を待つように構成されているものもある。しかし、例えば図６に示すように、終了マーカの終了時点で符号データが途切れてしまった場合、ＮＥＷＬＥＮマーカなどの他のマーカは付加されていなくても正常な符号データとして認識されるため、終了マーカの検出及び後続の符号データが存在しないことにより、符号データが終了したものと判断されてしまう場合があった。終了マーカの後に実際にはＮＥＷＬＥＮマーカが存在していた場合には、ＮＥＷＬＥＮマーカにより指定されるライン数と復号するライン数とが一致せず、誤動作を起こすことがあった。あるいは必ずＮＥＷＬＥＮマーカを必要とし、ＮＥＷＬＥＮマーカを用いない装置には適用できないものであった。
【００４１】
本発明の復号化装置では、図６の期間８に示すように、期間５で終了マーカを検出後に符号データが途切れた場合、バッファ１２が空となってバッファエンプティ２２がＨレベルとなる。そのため、マーカ検出部１３は動作を停止するとともに、復号停止信号生成部１４は復号停止信号２８をＨレベルに維持し、復号部１６の動作を停止したまま保持する。これによって、終了マーカを検出後でも符号データの中断時には復号部１６の動作を停止して後続の符号データの到来を待つことができる。
【００４２】
再び符号データの転送が再開されれば、期間６に示すように、符号データがバッファ１２に格納されてバッファエンプティ２２がＬレベルになり、マーカ検出部１３の動作が再開する。これによってマーカ検出部１３は、終了マーカに続く各種のマーカについての処理を行うことができる。この間は、マーカ処理実行信号２４がＨレベルであるので、復号停止信号生成部１４は復号停止信号２８をＨレベルに維持し、復号部１６の復号動作は停止したままである。
【００４３】
なお、例えば終了マーカにより符号データが終了する場合には、符号データに続けてダミーデータが転送されてくるので、従来のようにバッファ１２が空になることはない。すなわち、本発明ではバッファ１２が空になることは符号データの終了ではないので、終了マーカ直後に符号データが中断しても、それを符号データの終了として誤判断することはない。また、マーカ検出部１３はダミーデータによりマーカの終了を検出し、マーカ処理を終了してマーカ処理実行信号２４をＬレベルにする。そのため、復号停止信号生成部１４は復号停止信号２８をＬレベルにし、復号部１６の復号動作を再開させる。復号部１６は、ライン数レジスタ１５に設定されているライン数に達するまで、復号動作を続けることになる。
【００４４】
上述の構成では、符号入力部１１にバッファ１２を設け、このバッファ１２が空か否かを示すバッファエンプティ２２と、マーカ検出部１３からのマーカ処理実行信号２４とを用いて復号停止信号２８を生成している。しかし、例えばバッファ１２を設けない構成、あるいはバッファエンプティ２２を利用しない構成でもよく、少なくとも終了マーカ検出からマーカ以外のダミーデータや次の符号データを検出するまで、復号部１６の動作を停止させる構成があればよい。この場合、マーカ検出部１３が復号部１６の動作を停止させる信号を生成する機能を併せ持っていてもよい。
【００４５】
また、上述の説明では、ＪＢＩＧ方式による符号データを例にして説明したが、これに限らず、符号列の後に終了マーカが付加され、さらにその後に任意のマーカが付加されるようなフォーマットの符号データであれば本発明を適用可能である。
【００４６】
【発明の効果】
以上の説明から明らかなように、本発明によれば、符号データの最後を正確に認識できるため、終了マーカの後に他のマーカが存在するか否かに関係なく、正しく復号処理及びマーカ処理を行うことができる。また、符号データが終了マーカまで入力された時点で中断してしまった場合でも、正常に後続のマーカを処理し、復号処理に反映することができる。特に終了マーカの後に新しいライン数を示すマーカが付加される場合には、そのマーカにより示されるライン数まで正しく復号処理を行うことができるという効果がある。
【図面の簡単な説明】
【図１】  本発明の復号化装置の実施の一形態を含むシステムのブロック図である。
【図２】  本発明の復号化装置に入力される符号データの一例の説明図である。
【図３】  読み出し符号が“ＦＦ００”の時のマーカ検出部の処理の一例の説明図である。
【図４】  ＮＥＷＬＥＮマーカの一例の説明図である。
【図５】  本発明の復号化装置の実施の一形態における動作の一例を示すタイミング図である。
【図６】  本発明の復号化装置の実施の一形態における動作の別の例を示すタイミング図である。
【図７】  符号データの一例の説明図である。
【図８】  従来の復号装置の一例を示す機能ブロック図である。
【符号の説明】
１…ＣＰＵ、２…メモリ、３…バス、４…復号化装置、１１…符号入力部、１２…バッファ、１３…マーカ検出部、１４…復号停止信号生成部、１５…ライン数レジスタ、１６…復号部、２１…読み出し符号、２２…バッファエンプティ、２３…復号部入力データ、２４…マーカ処理実行信号、２５…終了マーカ検出信号、２６…マーカライン数、２７…マーカ書込信号、２８…復号停止信号、２９…外部設定ライン数、３０…外部書込信号、３１…設定ライン数、３２…出力画像、４１…マーカ検出部、４２…復号部、４３…画素数管理部、４４…ライン数管理部、４５…ライン数解析・設定部、５１…符号データ信号、５２…算術符号列、５３…復号画素信号、５４…画素信号パルス、５５…画素数、５６…ライン終了パルス、５７…ライン数、５８…出力信号、５９…指示信号。
【図１】
0003867762.tif 000002
【図２】
0003867762.tif 000003
【図３】
0003867762.tif 000004
【図４】
0003867762.tif 000005
【図５】
0003867762.tif 000006
【図６】
0003867762.tif 000007
【図７】
0003867762.tif 000008
【図８】
0003867762.tif 000009