JP2007088826A - データ処理方法およびデータ処理装置 - Google Patents

データ処理方法およびデータ処理装置 Download PDF

Info

Publication number
JP2007088826A
JP2007088826A JP2005275274A JP2005275274A JP2007088826A JP 2007088826 A JP2007088826 A JP 2007088826A JP 2005275274 A JP2005275274 A JP 2005275274A JP 2005275274 A JP2005275274 A JP 2005275274A JP 2007088826 A JP2007088826 A JP 2007088826A
Authority
JP
Japan
Prior art keywords
data
processing
determination
flag
zero
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.)
Granted
Application number
JP2005275274A
Other languages
English (en)
Other versions
JP4582413B2 (ja
Inventor
Yasuharu Sakurai
康晴 桜井
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
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 filed Critical Fuji Xerox Co Ltd
Priority to JP2005275274A priority Critical patent/JP4582413B2/ja
Publication of JP2007088826A publication Critical patent/JP2007088826A/ja
Application granted granted Critical
Publication of JP4582413B2 publication Critical patent/JP4582413B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Devices For Executing Special Programs (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

【課題】データの内容によらず、一定のサイクル数でJPEGのAC符号化を行なうことができるようにする。
【解決手段】データを逆順にメモリから読み出してAC成分がゼロか否かを判定し(S414)、ゼロのときにはフラグeをメモリに保存し(S415)、最後尾側から最初にノンゼロが現われた後にはAC成分をそのままメモリに保存する(S416〜S419)。次に正順にメモリからデータを取り込む(S432)。フラグeが現われるとEOB符号を直ちに発生する(S470)。ゼロが現われると、ゼロの連続数を監視するオペレータRに“1”を加えた後に(S435)、ゼロの連続数が“16”でなければS432に戻って次の処理対象データの処理に移行し(S450−NO)、ゼロの連続数が“16”になると直ちにZRL符号を発生する(S452)。ノンゼロ(フラグeを除く)が現われると直ちにAC符号を発生する(S454)。
【選択図】図8

Description

本発明は、画像信号や音声信号の符号化を行なう符号化装置などに用いられるデータ処理方法およびデータ処理装置に関する。
画像信号や音声信号などの情報を始めとする種々のデジタルデータを取り扱うデジタルデータ処理に当たっては、ソフトウェア処理により行なう手法とハードウェア回路を用いて行なう手法とがある。
一方、デジタルデータ処理の際には、その処理内容によっては、所定の条件を満たすまである処理を繰り返すいわゆるループ処理(判定処理)が必要となることがあり、またその繰返し数が処理データの内容によって種々異なることがある。
特に、複数のデータが関わり合う単一もしくは複数のループ処理を行なう場合には、あるデータの取扱い時に即時にループ処理結果を確定させることができず、後段のデータに関しての処理を待たなくてはならず複雑な制御が必要になることがある。たとえば、あるデータの取扱い時に一方のループ処理結果を確定させる際に、そのデータよりも後段のデータに関わる他方のループ処理の確定結果が影響を与える場合は、一方のループ処理時には他方のループ処理結果の確定を待たざるを得ず、さらに複雑な制御が必要になる。
したがって、このような複数のデータが関わるループ処理を行なうと、その分だけ処理サイクルが増え出力結果が得られるまでのサイクル数が長くなるし、その繰返し数が異なると、サイクル数が一定しなくなるし、また全体としては、たとえば後段の処理を開始するタイミングを合わせるなどの付加的な処理も必要になる。つまり、このような複数のデータが関わるループ処理は処理するデータの内容によって、ループを実行する必要があるのかないのかや、実行するならば何回実行するのかや、即時にループ処理結果を確定させることができるのか、などが変わってくるので、きめ細かな制御が必要になるのである。
ソフトウェア処理の場合には、並列処理や連続処理に柔軟に対処し得るので、複数のデータが関わるループ処理を行なう場合でも、きめ細かな制御には容易に対処できるが、出力結果が得られるまでのサイクル数が一定しないと言う点については依然として問題がある。また、そもそもソフトウェア処理の場合には、その処理が複雑になるに連れ処理時間が長くなるため、処理速度の低下が問題となる。
一方、複数のデータが関わるループ処理をソフトウェアで行なうのではなく、これら機能部分を専用のハードウェア回路にて行なうことで、高速化を図ったアクセラレータシステムを構築することができるようになる。アクセラレータシステムは、処理が複雑であっても、処理速度の低下を防ぐことができ、高いスループットを得ることができる。
しかしながら、複数のデータが関わるループ処理をハードウェア回路で実現しようとすると、複数のデータを時系列的に読み出すあるいは保存する、さらには処理サイクル数の変更に対処するためのバッファやシフトレジスタやFIFO(First In First Out)方式などの各種メモリ、それらの処理経路を切替える切替手段、これらを制御する制御回路などの、複雑な処理制御回路を付加することが必要となる。
この点については、各種メモリを内蔵したASIC(Application Specific Integrated Circuit ;特定用途向けIC)やFPGA(Flexible Programmable Gate Array)などのデジタル回路で構成することで実現することもできる。しかしながら、出力結果が得られるまでのサイクル数が一定しないと言う点については依然として問題がある。
加えて、各種メモリや切替え手段などを内蔵していない、あるいは「ALUアレイのパイプラインで構成されたプログラマブルデバイス」(たとえば図10および図11、並びに非特許文献1〜3を参照)など、デジタル集積回路の種類によっては、処理経路を切り替えることや、サイクル数の変化などに対しての対応が困難なものも存在し、周辺回路を設けて対処しようとした場合には設計の難易度が上がる、あるいは処理制御回路の回路規模が大きくなり過ぎる、などといった問題も発生する。
たとえば、JPEG(Joint Photographic Experts Group)などの画像符号化をハードウェア回路を用いて行なうには、複数の処理を次々に実行させるために、複数のモジュールをパイプライン状に接続した構成が一般的に知られている(図12および図13、並びに特許文献1,非特許文献4を参照)。たとえば、非特許文献4では、各モジュールの処理能力のばらつきを吸収したり、データの処理順序がモジュールによって異なることの対処を行なったりするために、モジュール間にバッファメモリやFIFOを設けている。
ここで、JPEGの規格書では、AC係数の符号化処理方法の例が示されている(後述する図5、および非特許文献5を参照)。このAC係数符号化処理では、外側の第1のループ(メインループ)を63回実行することで、63個のAC係数を符号化することを基本としている。
また、ブロック内の最後尾側のデータ値を参照してEOB(End Of Block)を出力する第2のループ処理と、ZRL(Zero Run Length)を確定する第3の処理ループとが存在する。ここで、第2のループ処理の方が第3の処理ループよりも処理結果の確定が優先され、ZRL符号化の確定よりもEOB符号化の方が優先されるようになっている。
このため、ZRLを確定する第3の処理ループは、処理するデータの内容によって、ループ実行の可否が第2のループ処理と関わりを持つ場合もあるし、その実行回数が変わる場合もあるので、高度な処理制御機能を持つASICやFPGAであれば容易に対処できるが、非特許文献1に記載のような集積回路では、その対処のための周辺回路の設計が困難になるし、制御用回路の回路規模が大きくなってしまう。
特開平08−137671号公報 編集部著,「動的再構成可能デバイス、その素性と実力」、第1章「正統進化か異端児か?プロセッサ史の中の動的再構成可能技術」,デザインウェーブマガジン,CQ出版社,2004年08月号,p.20〜29 榊原泰徳,佐藤友美著,「動的再構成可能デバイス、その素性と実力」、第2章「DAPDNAのデバイス・アーキテクチャ」,デザインウェーブマガジン,CQ出版社,2004年08月号,p.30〜38 ダイナミック・リコンフィギュラブル・プロセッサ(特に「DAPDNA-2 アーキテクチャ」、[online]、[平成17年3月8日検索]、インターネット<URL:http://www.ipflex.com/jp/1-products/3_dd2_arch.html> 「TD-JPEGip 高速JPEGエンコーダ・デコーダIP」,特に「JPEGエンコーダIP 機能ブロック図」、[online]、[平成17年3月8日検索]、インターネット<URL:http://www.inrevium.jp/data/pm/TD-JPEGip.pdf> JPEGの規格書,「Figure F.2 Procedure for sequential encoding of AC coefficients with Huffman coding」,ISO/IEC10918−1,1993(E)
本発明は、上記事情に鑑みてなされたものであり、処理対象データが所定の条件に合致しているか否かに基づいて処理結果を確定させることで所定のデータ処理を行なう場合に、データの内容によらず、一定のサイクル数で処理することができる仕組みを提供することを目的とする。たとえば、データの内容によらず、一定のサイクル数でJPEGのAC符号化を行なうことができる仕組みを提供することを目的とする。
本発明に係るデータ処理の仕組みにおいては、符号化処理や画像処理などにおける判定処理を行なうに際して、処理対象データの本来の取扱い順とは逆順でデータを取り込んで第1の判定処理を行ないその結果を示すフラグデータを所定のデータ記憶部に保持しておき、このデータ記憶部に保持されているフラグデータを含むデータを本来の取扱い順と同じ正順で取り込んで、第1の判定処理の結果を示すフラグデータを参照しつつ、処理対象データについて第2の判定処理を行なうようにした。
なお、第1の判定処理は第2の判定処理よりも処理結果が優先されるものであって、加えて、通常の処理順においてより後順側のデータが判定処理結果に影響を与えるものである。つまり、第2の判定処理よりも、本来の処理順におけるより後段側のデータに基づく第1の判定処理の方が優先されるのである。
要するに、本発明に係るデータ処理の仕組みにおいては、通常の処理順においてより後順側のデータが優先される第1の判定処理結果を示すフラグデータを予め処理対象データに対応付けてデータ記憶部に保存しておき、第2の判定処理時には、データ記憶部に保持されている第1の判定処理結果を示すフラグデータを含むデータを本来の取扱い順と同じ正順で取り込んで、そのフラグデータを参照しつつ、処理対象データについて第2の判定処理を行なうのである。
また従属項に記載された発明は、本発明に係るデータ処理の仕組みのさらなる有利な具体例を規定する。なお、本発明に係るデータ処理の仕組みは、ソフトウェア処理でも実現できる。よって、本発明に係るデータ処理の仕組みを、電子計算機を用いてソフトウェアで実現するために好適なプログラムやこのプログラムを格納した記憶媒体を発明として抽出することもできる。プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介した配信により提供されてもよい。
たとえば、通常の処理順においてより後順側のデータが優先される第1の判定処理を行なうに際しては、その優先性に鑑みれば、本来とは逆順にデータを取り扱って判定処理を行なうのが好ましい。もちろん、本来と同じ正順にデータを取り扱う場合でも、第1の判定処理を行なうことは可能である。
本発明によれば、通常の処理順において、より後順側のデータが優先される第1の判定処理結果を示すフラグデータを予め処理対象データに対応付けてデータ記憶部に保存しておき、第2の判定処理時には、第1の判定処理結果を示すフラグデータを含むデータをデータ記憶部から本来の取扱い順と同じ正順で取り込んで、通常の処理順においてより後順側のデータに基づいて判定された第1の判定処理結果を示すフラグデータを参照しつつ、処理対象データについて第2の判定処理を行なうようにした。
これにより、第2の判定処理を正順に行なう場合でも、ある時点の処理対象データよりも後順側のデータに基づいて判定された第1の判定処理結果を示すフラグデータを参照することができるので、第2の判定処理結果を即時に確定することができる。その結果、データの内容によらず、一定のサイクル数でデータ処理を行なうことができるようになり、このため、比較的単純な構造の制御回路で制御可能なデータパスを構成することができるようにもなる。
以下、図面を参照して本発明の実施形態について詳細に説明する。
<基本構成>
図1は、本発明に係るデータ処理装置の基本構成を示す回路ブロック図である。この基本構成のデータ処理装置1は、一部のループ処理(判定処理)を従属処理に置き換えて実行する本発明に係る主要部のデジタルデータ処理(置換え処理)に先立って種々のデータ処理を行なう前段処理部110と、前段処理部110により処理された処理済みデータを処理順に格納する第1のデータ記憶部としての第1バッファメモリ部120とを備えている。
またデータ処理装置1は、第1バッファメモリ部120から逆順に読み出した処理対象のブロックデータのうち、ブロックの末尾側(逆順に読み出した先頭側)に存在する一定の関係を持つデータに対してその旨を示すフラグを付加する第1の判定処理部の一例であるフラグ付加部130と、フラグ付加部130により処理された処理済みデータを順次格納する第2のデータ記憶部としての第2バッファメモリ部140と、第2バッファメモリ部140から本来の処理順と同じ順(正順)にデータを読み出して種々のデータ処理を行なう第2の判定処理部としての後段処理部150とを備えている。
第1バッファメモリ部120、フラグ付加部130、第2バッファメモリ部140、および後段処理部150によって、あるループ処理を従属処理に置き換えて判定処理を行なう置換処理部3が構成され、処理対象データが所定の条件に合致しているか否かに基づいて処理結果を確定させることで画像処理や符号化処理など所定のデータ処理を行なう。
この基本構成例の第1バッファメモリ部120および第2バッファメモリ部140には、それぞれデータの書込みと読出しとを同時に行なうことのできない1個のバッファメモリ122,142が設けられている。
データ処理装置1をJPEG符号化を行なう符号化装置として構成する場合、前段処理部110としては、DCT係数を算出するDCT計算部112と、量子化計算を行なう量子化計算部114とが設けられる。この場合、第1バッファメモリ部120には、量子化計算後のDCT係数データが格納される。
また、フラグ付加部130としては、AC成分が“0”の値が末尾側に連続して存在することを示すエンドフラグeを生成するEOB処理部132が設けられる。EOB処理部132は、第1バッファメモリ部120から量子化後の係数データを1ブロックごとに、本来の処理順とは逆順に読み出して、つまりジグザグスキャンの逆順に読み出して、最後部側から連続するゼロのデータに対応付けてその旨を示すエンドフラグeを第2バッファメモリ部140に保持させるとともに、最後尾側から最初にゼロでないデータが現われた後には、そのデータをそのまま第2バッファメモリ部140に保持させる。
また、後段処理部150としては、エントロピー符号化部152と、バイトパッキング部154とが設けられる。エントロピー符号化部152は、第2バッファメモリ部140からフラグ付加部130での結果(エンドフラグe)を含む処理対象データを本来の処理順と同じ正順で読み出して、つまりジグザグスキャン順の先頭から読み出して所定の条件に従ってハフマン符号へ変換する。バイトパッキング部154は、エントロピー符号化部152により符号化されたデータを一纏めにする。
DCT計算部112、量子化計算部114、エントロピー符号化部152、およびバイトパッキング部154の基本的な処理は、JPEG符号化を行なう場合に用いられるものとして基本的なもので、周知のものであるので、ここでは、それらの詳細な説明を割愛する。
<処理手順>
図2は、置換処理部3での置換え処理の対象となるループ処理を包含したデータ処理の基本事例を示すフローチャートである。また、図3は、本実施形態のデータ処理装置1の処理手順を説明するフローチャートである。
デジタルデータ処理を行なう際には、前もってある処理(前段処理という)がなされた処理対象の全データの内の所定数のデータ(ブロックデータという)に関して、ある条件を満たしているか否かを判定し、その判定結果に応じて処理結果の確定を切り替えるループ処理(判定処理)を行なうことがある。また、ループ処理が複数存在し、どちらか一方の判定基準の方が優先されることもある。以下、優先される方の判定基準を優先基準、その判定ループ処理を優先ループ処理といい、他方の判定基準を従属基準、その判定ループ処理を従属ループ処理ともいう。
ここで、優先される方のループ処理結果を確定させるには本来の処理順として後側のデータ値を参照する必要がある場合において、ブロック内の所定番目のデータについての処理中に、従属ループ処理によってデータ処理結果を確定させようとしたときに、その処理対象データが従属基準に合致するだけでなく優先基準の判定結果にも影響を与えるがために優先ループ処理結果の確定と関わりを持つ場合を考える。
この場合、前段処理済のデータを順に受け取って処理を行なうといった単純な逐次処理では、その時点では従属ループ処理の処理結果を確定させることができず、優先ループ処理結果の確定を待ってから、従属ループ処理結果の確定を行なうようにする必要があり、処理順として後側のデータについての優先ループ処理が完了するまで、従属ループ処理結果の確定を待たざるを得ない。
このような処理を行なうための処理手順の一例をフローチャートで示すと図2のようになる。具体的には、外側にメインの判定基準(メイン基準)に従って判定処理を行ないつつ(S134)、判定結果に応じてメインとなる所定のデータ処理(S154)を行なうためのメインループが構成されており、その中に、優先ループ処理(S132〜S138)と従属ループ処理(S150〜S152)とが組み込まれている。ここでは、ブロック内の最後尾のデータ値がメイン基準を満たしているときには、優先ループ処理の判定結果の方が従属ループ処理の判定結果よりも優先される場合で説明する。
先ず、前段処理済みデータをブロックサイズで分割して、ブロック内のデータを所定順に処理するため、ブロック内の何番目のデータを処理対象とするのかを特定するためのオペレータn1をゼロ(0)にリセットするとともに、従属ループ処理における条件判定のためのオペレータn2もリセットする(S130)。
次に、メインループ処理(従属ループ処理や優先ループ処理の一部を包含する)において、先ずブロック内のデータを所定順に処理するためオペレータn1に“1”を加えた後(S132)、そのn1番目の処理対象データD(n1)が所定の値であるか否か、すなわちメイン基準を満たしているか否かを判定する(S134)。処理対象データD(n1)がメイン基準を満たしているときには(S134−YES)、さらに処理対象データD(n1)が優先基準をも満たしているか否かを判定する(S136)。ここで、優先基準としては、処理対象データD(n1)がブロックの最後尾のデータであるか否かであるとする。そして、ブロック内の最後尾のデータであるときには(S136−YES)、優先ループ処理の処理結果を確定させ(S170)、そのブロックについての処理を完了させる。
一方、処理対象データD(n1)がメイン基準を満たしていても(S134−YES)、ブロックの最後尾のデータでなければ(S136−NO)、従属ループ処理における条件判定のためのオペレータn2を所定の条件に従って修正を加えた後に(S138)、ステップS132に戻って、次の処理対象データの処理に移行する。このステップS138の処理は、処理対象データD(n1)がメイン基準を満たさなくなったときに、それ以前にメイン基準を満たしていたデータについて、従属基準を満たすものであったか否かを(事後的に)判定するためのものである。
次に、処理対象データD(n1)がメイン基準を満たしていない場合には(S134−NO)、従属ループ処理におけ条件判定のためのオペレータn2が第2の判定条件(従属基準)に合致するか否かを判定する(S150)。そして、この従属基準を満たすものでを満たすものである場合には(S150−YES)、第2のループ処理である従属ループ処理における所定のデータ処理を行なって(S152)、従属ループ処理における条件判定のためのオペレータn2に所定の条件に従って修正を加えてから(S153)、メインのデータ処理を行なう(S154)。なお、オペレータn2に修正を加えても依然として従属基準を満たすものである場合には(S150−YES)、従属ループ処理における所定のデータ処理などを再度行なう(S152,S153)。一方、従属基準を満たさない場合には(S150−NO)、即時にメインのデータ処理を行なう(S154)。
そして、このメインのデータ処理(S154)の後には、従属ループ処理における条件判定のためのオペレータn2をリセットし(S156)、ブロックの最後尾のデータでないときにはステップS132に戻って次の処理対象データの処理に移行するが(S158−NO)、ブロックの最後尾のデータであるときにはそのブロックについての処理を完了させる(S158−YES)。
このような処理は、ソフトウェア処理であればフローチャート通りに記述して実行することで柔軟に対処できるが、ハードウェア回路で実現しようとすると、メモリからデータを読み出して逐次処理すると言った単純な処理では従属ループ処理結果を即時に確定させることができないので、従属ループ処理結果を確定させる前に優先ループ処理を待つための仕組み(具体的には多くのメモリを必要とする)や、処理経路を切替える切替手段や、これらを制御する制御回路などの、複雑な制御処理回路が必要になるので、集積回路によっては、その実装が非常に困難となり得る。
<本実施形態の処理手順>
そこで、本実施形態では、従属ループ処理で取り扱っているデータよりも処理順として後側のデータを優先ループ処理(第1の判定処理)の確定のために必要とするがために、単純な逐次処理では従属ループ処理(第2の判定処理)結果を即時に確定させることができないという点に着目し、通常の処理順においてより後順側のデータが優先される優先ループ処理を予め行なっておき、その結果を示すフラグデータを予め処理対象データに対応付けてデータ記憶部に保存しておき、従属ループ処理時には、そのフラグデータを含むデータをデータ記憶部から本来の取扱い順と同じ正順で取り込んで、そのフラグデータを参照しつつ、処理対象データについて第2の判定処理を行なうことで解決することとした。特に、通常の処理順においてより後順側(典型例は最後尾)のデータが優先される優先ループ処理を行なうに際しては、その優先性に鑑みて、本来とは逆順にデータを取り扱って判定処理を行なうようにした。
すなわち、図3に示すように、前段処理部110で処理された処理済データを一旦第1バッファメモリ部120に1ブロック分蓄積する(S202)。
次に、フラグ付加部130は、前段処理済みデータをブロックサイズで分割して処理するため、先ず、ブロックサイズ判定用のオペレータn3をブロックサイズSIZE(たとえば64)にリセットする(S210)。
次に、フラグ付加部130は、従属ループ処理に先立つ優先ループ処理において、通常の処理順とは逆順で判定処理を行なうべく、先ずブロックサイズ内の何番目のデータを処理対象としているのかを特定するオペレータn3から“1”を差し引いた後(S212)、その処理対象データD(n3)がメイン基準を満たしているか否かを判定する(S214)。データの最後尾側から処理を開始しているので、処理対象データD(n3)がメイン基準を満たすか否かの判定を行なうことで、同時に、処理対象データD(n3)が優先基準を満たすか否かの判定をもできるようになるのである。
フラグ付加部130は、処理対象データD(n3)がメイン基準を満たしているときには、その旨の判定フラグデータを処理対象データD(n3)に代えて第2バッファメモリ部140に記憶し、ステップS212に戻って、次の処理対象データの処理に移行する(S214−YES,S215)。
一方、処理対象データD(n3)がメイン基準を満たしていないときには、フラグ付加部130は、第1バッファメモリ部120から読み出した処理対象データD(n3)をそのまま第2バッファメモリ部140に記憶する(S214−NO,S216)。全データについての処理が完了していなければ(S218−NO)、フラグ付加部130は、オペレータn3から“1”を差し引いた後(S219)、ステップS216に戻って、次の処理対象データについて同様に処理する。
こうすることで、最後尾側から連続するメイン基準を満たすものについては、最後尾のデータが優先基準を満たすものであったことを示すフラグデータを第2バッファメモリ部140に保持させることができるとともに、最後尾側から最初にメイン基準を満たさなくなった以降には、元データをそのまま第2バッファメモリ部140に保持させることができる。
通常の処理順とは逆順で行なったフラグ付加部130によるメインループ処理および優先ループ処理に従ったデータの事前確認処理が完了すると(S218−YES)、後段処理部150は、第2バッファメモリ部140に保持されているデータを処理対象としてブロックサイズで分割して処理するため、先ず、ブロックサイズ判定用のオペレータn1をゼロ(0)にリセットするとともに、従属ループ処理における条件判定のためのオペレータn2もリセットする(S230)。
次に、後段処理部150は、メインループ処理(従属ループ処理や優先ループ処理の一部を包含する)において、通常の処理順と同じ正順で判定処理を行なうべく、先ずブロックサイズ内の何番目のデータを処理対象としているのかを特定するオペレータn1に“1”を加えた後に(S232)、その処理対象データD(n1)が、フラグデータであるのかやメイン基準を満たしているか否かを判定する(S234)。
具体的には、後段処理部150は、先ず、処理対象データD(n1)が判定フラグであるときには(S234−フラグ)、判定フラグに対応した所定の処理として、優先ループ処理の処理結果を確定させ(S270)、ブロックの最後尾のデータとなるまで、処理サイクルを空回りさせ(S272−NO,S274)、ブロック内の最終番目となったらそのブロックについての処理を完了させる(S272−YES)。
一方、後段処理部150は、処理対象データD(n1)がメイン基準を満たしているときには(S234−YES)、従属ループ処理における条件判定のためのオペレータn2を所定の条件に従って修正を加えた後に(S235)、修正されたオペレータn2が第2の判定条件(従属基準)を満たすか否かを判定する(S250)。そして、後段処理部150は、修正されたオペレータn2が従属基準を満たさなければステップS232に戻って次の処理対象データの処理に移行する(S250−NO)。また、修正されたオペレータn2が従属基準を満たすときには、後段処理部150は、第2のループ処理である従属ループ処理における所定のデータ処理を直ちに行なう(S252)。また、後段処理部150は、処理対象データD(n1)が判定フラグでもないしメイン基準をも満たしていないときには(S234−NO)、メインのデータ処理を直ちに行なう(S254)。
この後(S252,S254)、後段処理部150は、オペレータn2をリセットしてから(S256)、ブロックの最後尾のデータでないときにはステップS232に戻って次の処理対象データの処理に移行するが(S258−NO)、ブロックの最後尾のデータであるときにはそのブロックについての処理を完了させる(S258−YES)。
このように、ステップS212〜S218によるデータの事前確認処理を行なっておくことで、第2の判定処理である従属ループ処理における判定基準(従属基準)にも合致し、かつ、第1の判定処理である優先ループ処理における判定基準(優先基準)にも合致し得るようなデータについては、予め優先基準に合致する旨の判定フラグデータに修正して第2バッファメモリ部140に保存することができる。
したがって、後段処理部150における判定処理においては、第2バッファメモリ部140から本来の処理順と同じ正順にデータを読み出してデータ判定を行なうことで、メイン基準に合致しかつ優先基準にも合致し得るようなデータについては従属基準にも合致するか否かを問わず、それに応じた確定処理を(S270)、またメイン基準に合致しかつ従属基準にも合致するデータに応じた確定処理を(S252)、またメイン基準に合致しないデータに応じた確定処理(S254)を、それぞれ直ちに行なうことができるので、データの内容によらず、一定のサイクル数で処理することができるようになる。
<変形構成>
図4は、本発明に係るデータ処理装置の変形構成を示す回路ブロック図である。この変形構成のデータ処理装置1は、図1に示した基本構成における第1バッファメモリ部120および第2バッファメモリ部140を、複数のバッファメモリの並列回路で構成したものである。すなわち、第1バッファメモリ部120および第2バッファメモリ部140には、それぞれ2個のバッファメモリ122,124,142,144が設けられている。
基本構成例のように、第1バッファメモリ部120および第2バッファメモリ部140に、それぞれデータの書込みと読出しとを同時に行なうことのできない1個のバッファメモリを設けると、あるブロックについて処理を完結するには、第1バッファメモリ部120からの読出しと第2バッファメモリ部140への書込みとを行なう逆順の処理と、第2バッファメモリ部140からの読出しを利用した正順の処理とをする必要があるので、全体としては、処理を途切れ、2ブロック分の処理サイクルが必要になってしまう。
これに対して、変形構成例のように、第1バッファメモリ部120および第2バッファメモリ部140に、それぞれ複数個のバッファメモリを設けると、ブロックデータを交互に取り扱うことができ、たとえば一方のバッファメモリにデータを書込みつつ他方のバッファメモリからデータを読み出すことが同時にできるようになり、処理の途切れが生じない。たとえば、一方のブロックについてはバッファメモリ122,142を使用し、他方のブロックについてはバッファメモリ124,144を使用することができる。
これにより、一方のブロック(たとえば奇数番目のブロックデータ)についてのバッファメモリ122を利用したフラグ付加部130による逆順の処理と、他方のブロック(たとえば偶数番目のブロックデータ)についてのバッファメモリ144を利用した後段処理部150による処理順の処理とを並行して行なうことができるし、一方のブロック(たとえば奇数番目のブロックデータ)についてのバッファメモリ124を利用したフラグ付加部130による処理順の処理と、他方のブロック(たとえば偶数番目のブロックデータ)についてのバッファメモリ124を利用した後段処理部150による逆順の処理とを並行して行なうといった、パイプライン処理を行なうことができるので、全体としては、処理を途切れなく継続することができ、1ブロック分の処理サイクルで済ますことができるようになる。
なおこの変形構成例では、ダブルバッファ構成としていたが、データの書込みと読出しとを同時に可能な構成であればよく、第1バッファメモリ部120および第2バッファメモリ部140に、それぞれ1個の2ポートメモリを使用することでも、同様の効果を得ることができる。
<JPEG符号化の場合>
次に、JPEG符号化処理におけるAC係数のエンコード処理を事例にして、具体的に説明する。
図5は、JPEG符号化処理におけるAC係数のエンコード処理を説明する図であり、図5(A)はその処理手順を示したフローチャート、図5(B)はブロック内のデータスキャン順を説明する図である。なお、図5(A)に示すフローチャートは、JPEGの規格書(ISO/IEC10918−1;1993(E))にて規定されているものである。
JPEGでは、8×8=64個のデータを最小単位MCU(Minimum Coded Unit)とし、このMCUごとに符号化を行なう。ここで、AC成分の符号化に際しては、外側のメインループで、8×8個の計64個でなるブロック内の各データのうち、図5(B)の左上隅のDC成分を除く63個のAC成分について、データがメイン基準を満たすか否かの判定処理を行なって(S334)、その判定結果に基づいて、メインのデータ処理としての符号化処理(S354)を順次行なう。
その処理順は、ブロックの右下に向かうほど、量子化により“0”の発生する確率が高くなるため、左上側から斜め右下方向にデータを読むことにより“0”成分が連続して発生し易いように「ジグザグスキャン」を行なう。このジグザグスキャンでは、図5(B)に示すように、ブロックの左上隅(0番目のDC成分を除く1番目から)を起点として、最初に左下方向へ進みながらデータを読み、端まで到達したら今度は右上方向へ進みながらデータを読む。このようにデータを読むことで、“0”成分が連続して出現することが期待できるため、符号化処理もそれにあった形で行なう。
これにより、AC成分をZZ(1)から順番にみていき、“0”でないデータ(ノンゼロのデータ)が見つかったとき、それまでに発生した“0”成分の連続個数(run;4ビットのRRRR(ここで、0≦RRRR≦15))、さらに現在のノンゼロのAC成分に対応するカテゴリを4ビットの有効ビット数SSSSとして表わし、それらの組合せを用いて既知のテーブル(たとえば輝度成分に対するハフマン符号)から対応するハフマン符号を求めるなどして符号化してデータ列に加えるのを符号化処理の基本とするのである。
ここで、外側のメインループ内には、図5(B)の右下隅に示す最後尾(63番目)のAC成分が“0”の場合には、つまりメイン基準を満たすとともに優先基準をも満たす場合には、最終ブロック信号EOB(End Of Block)を出力するための優先ループ処理(以下EOB生成ループ処理ともいう)が存在するとともに、“0”成分の連続個数(run)が“15”を越えたときには、つまりメイン基準を満たすとともに従属基準をも満たす場合には、runの値をリセットしてゼロ長数信号ZRL(Zero Run Length)を出力するための従属ループ処理(以下ZRL生成ループ処理ともいう)が存在する。
最終ブロック信号EOBは、最後のAC成分が“0”の場合には、その前に“0”成分が幾つ続いていても最終ブロック信号EOBを出力するという優先性があり、最終ブロック信号EOBが出力されるときには、たとえメイン基準を満たすとともに従属基準をも満たす場合であってもゼロ長数信号ZRLを出力しない。
つまり、JPEGの符号化処理では、DCT計算の結果の64個のDCT係数を量子化し、先頭の1個はDC(直流)係数として符号に変換し、残り63個はAC係数として処理する。ここで、“0”(ゼロ)ではないAC係数はそのままAC符号に変換し、AC係数が“0”の場合は連続する“0”の個数をカウントして次に現れるノンゼロ係数と一緒に符号化するのを基本とするが、ブロックの末尾にゼロが現れた場合は、それ以前の“0”の連続個数に拘わらず(ZRL符号化に優先して)EOB符号に変換するし、“0”の連続個数が所定数に達すると、EOB符号への変換がない限りにおいてZRL符号に変換するのである(後述する図6を参照)。以下、具体的に説明する。
前段処理部110のDCT計算部112でDCT係数が算出され、量子化計算部114によって算出された量子化済みデータをブロックサイズで分割して処理するため、先ず、ブロックサイズ判定用のオペレータKをゼロ(0)にリセットするとともに、ZRL生成ループ処理における条件判定のためのオペレータRもゼロ(0)にリセットする(S330)。
次に、メインループ処理において、先ずブロックサイズ内の何番目のデータを処理対象としているのかを特定するべく、オペレータKに“1”を加えた後(S332)、その処理対象データZZ(K)が“0”であるか否か(メイン基準を満たしているか否か)を判定する(S334)。処理対象データZZ(K)が“0”であって(S314−YES)、かつブロックの最後尾のデータであるとき、つまりオペレータKが“63”である(優先基準を満たす)ときには(S336−YES)、最終ブロック信号EOBを出力し、そのブロックについての処理を完了させる(S370)。なお、最終ブロック信号として、有効ビット数SSSS=0,run=0が割り当てられている。つまり、末尾の“0”はまとめてEOB符号に変換する。
こうすることで、先頭から順にAC成分をジグザグスキャンして“0”の成分が見つかった場合、最後の(右下隅の)AC成分が“0”のときには、その前に“0”成分がいくつ続いていても、ゼロ長数信号ZRLを出力することなく、最終ブロック信号EOBを優先的に出力して、そのブロックに対する処理を終了できるのである。
一方、処理対象データがメイン基準を満たしていても(S334−YES)、ブロックの最後尾のデータでなければ(S336−NO)、ZRL生成ループ処理における条件判定のためのオペレータRに“1”を加えた後に(S338)、ステップS332に戻って、次の処理対象データの処理に移行する。
また、処理対象データZZ(K)が“0”でない(メイン基準を満たしていない)場合には(S334−NO)、ZRL生成ループ処理における条件判定のためのオペレータRが“15”を超えるか否か(第2の判定条件を満たしているか否か)を判定する、つまりrunの値が15を越えるか否か(従属基準を満たすか否か)を判定する(S350)。そして、オペレータRが“15”を超える場合(runの値が15を越えるとき)、つまりR=16の場合には(S350−YES)、ゼロ長数信号ZRLを出力するとともに、オペレータRから“16”を差し引いてから(S352)、それまでに発生した“0”成分の連続個数(run)と有効ビット数SSSSの組合せを符号化してデータ列に加える(S354)。オペレータRから“16”を差し引いたときに、依然としてオペレータRが“15”を超える場合には、再度ステップS352の処理を繰り返すことになる。こうすることで、“0”でないAC成分(ノンゼロ)が現われる前に連続して存在する“0”のデータについて、EOB符号への変換(S370)がない限りにおいて、16個ごとにゼロ長数信号ZRLを出力することができるようになる。
一方、オペレータRが“15”を超えない場合つまりrunの値が15を越えないときには(S330−NO)、要するに、データZZ(K)がメイン基準(ZZ(K)=0)を満たさず、かつそれ以前のrunの値が15を越えないときには、即時に、メインのデータ処理としてのAC符号化処理を行なう。具体的には、それまでに発生した“0”成分の連続個数(run)とAC成分の有効ビット数SSSSの組合せを符号化してデータ列に加える(S354)。なお、ゼロ長数信号ZRLとしては、有効ビット数SSSS=0,run=15が割り当てられている。
そして、このAC符号化処理(S354)の後には、オペレータRをゼロ(0)にリセットし(S356)、ブロックの最後尾のデータでないとき、つまりオペレータKが“63”でないときにはステップS312に戻って次の処理対象データの処理に移行するが(S358−NO)、ブロックの最後尾のデータであるとき、つまりオペレータKが“63”であるときにはそのブロックについての処理を完了させる(S358−YES)。
つまり、AC成分をジグザグスキャンして、連続する“0”成分を数えながら“0”でない成分を見つけ、“0”でないデータが見つかったときに(ノンゼロが現れたら)、AC符号を発生する、すなわち、それまでに発生した“0”成分の連続個数(run)と有効ビット数SSSSの組合せを符号化してデータ列に加えるのである。
このような処理をソフトウェアで実装するならば、フローチャート通りに記述することで柔軟に対処できるし、ASICやFPGAなどに実装する場合には、“0”成分の連続個数(run)が“15”を超えるようなときに最終データ値も“0”であるとき、ZRL出力に優先してEOB出力を行なうためのEOB生成ループ処理を待つための仕組み(具体的には多くのメモリを必要とする)や、処理経路を切替える切替手段や、これらを制御する制御回路などの、複雑な制御処理回路が必要になるのであるが、これらは、ステートマシンなどで制御回路を構成すれば実現できる。
一方、非特許文献1に記載されているような「ALUアレイタイプの信号処理用半導体デバイス」に実装する場合は、制御回路の実装に向いていないため、その設計の難易度が上がり、回路規模も大きくなる。
<AC係数とZRL符号とEOB符号の関係について>
図6は、JPEG符号化における、AC係数とZRL符号とEOB符号の関係をさらに詳細に説明する図である。
なお、JPEGでは、8×8=64個のデータを最小単位MCUとし、このMCUごとに符号化を行なうが、ここでは、1ブロック=32個のデータ、ZRL=8個のゼロ、と仮定して説明する。これは、図を見易くするためであるが、状況はどちらも変わらない。
ここで、AC成分の符号化に際しては、図5を用いて説明したように、MCU内でAC成分をジグザグスキャンして、連続する“0”成分を数えながら“0”でない成分を見つける。そして、“0”でない成分の有効ビット数SSSSを求める。そして、“0”成分の連続個数(run)と有効ビット数SSSSの組合せを符号化して、データ列に加える。また、“0”でない成分の下位有効ビット数SSSSをデータ列に加える。
ただし、この処理フローにはさらに例外処理として、図5を用いて説明したように、優先基準に合致しているか否かにに応じたループ処理を行なう優先処理(S336,338,370)と、従属基準に合致しているか否かにに応じたループ処理を行なう従属処理(S350,352)とがある。
たとえば、図6に示すように、最後のAC成分が“0”の場合には、その前に“0”成分が幾つ続いていても、最終ブロック信号EOBを出力して、そのブロックに対する処理を終了するのである。また、runの値が“7”(実際のJPEGでは“15”;以下同様)、を越えた場合には、runの値をリセットしてゼロ長数信号ZRLを出力するのである。
したがって、図6(A)に示すように、runの値が“7”を越えない範囲で“0”が連続している場合には、ノンゼロが現われると直ちにAC符号を発生すればよいし、最後尾側でのゼロは、纏めてEOB符号に変換すればよい。
一方、処理対象ブロックのデータ系列によっては、ゼロ長数信号ZRLの発生よりも、最終ブロック信号EOBの発生の方を優先させなければならないことが起こり得る。たとえば、runの値が“7”を越える場合には、ゼロ長数信号ZRLを出力する対象となり得るのであるが、それが最後尾まで続くか否かによってゼロ長数信号ZRLの発生可否が規定されるので、runの値が“7”を越える場合でも、即時にゼロ長数信号ZRLを出力することはできない。“0”が連続して最後尾まで続く場合は、ゼロ長数信号ZRLを出力する対象となり得る場合であっても、最終ブロック信号EOBの発生を優先させる必要があるからである。
たとえば、図6(B)に示すように、runの値が“7”を越える場合でも、即時にゼロ長数信号ZRLを出力することはできず、ノンゼロが現われたときに、AC符号を発生するのに合わせて、ゼロ長数信号ZRLを出力する必要がある。つまり、ノンゼロが現われたときに、それまでにゼロが連続して8個出現していた場合にはZRL符号に変換する。このため、ノンゼロのAC成分が現れたときに、複数の符号(AC符号とZRL符号)を発生することが必要になってしまう。
また、図6(C)に示すように、runの値が“7”を越え、かつ連続して最後尾まで続く場合には、ゼロ長数信号ZRLを出力することなく、最終ブロック信号EOBを発生させなければならない。
結局の所、runの値が“7”を越える場合には、最後尾のAC成分が“0”であるのかノンゼロであるのかによってゼロ長数信号ZRLの出力可否が規定されるので、最後尾のAC成分がメイン基準(ZZ(K)=0)を満たすか否かの判定処理をした後でないと、ゼロ長数信号ZRLの出力を行なうことができないのである。
このような処理をするためには、“0”が連続して8個(JPEGのAC符号化の場合には16個)現れても、ZRL符号の発行を保留しておき、ノンゼロ係数が現れた時点で、それまでの“0”の連続個数を判定して、ZRL符号の発行(必要があれば複数回数)とAC符号の発行を実行する必要がある。
<解決手法>
図7は、上述した従来のJPEG符号化処理の問題を解決する本実施形態による処理手法と、AC係数とZRL符号とEOB符号の関係を説明する図である。また、図8は、本実施形態でのJPEG符号化処理手順を示したフローチャートである。また、図9は、本実施形態のデータ処理手順(JPEG符号化処理手順)における、ブロック内のデータスキャン順を説明する図である。
先ず、図7(A1),(B1)に示すように、前段処理部110においてDCT計算と量子化処理とを行なった処理順にデータを第1バッファメモリ部120に1ブロック分保存する(S402)。そして、フラグ付加部130のEOB処理部132は、本来の処理順とは逆順、すなわち図9(A)に示すようにジグザグスキャンの逆順に、末尾側から順にデータを第1バッファメモリ部120から取り込んで、最後尾側から、順にAC成分が“0”であるのかノンゼロであるのかを予め判定する(S410〜414)。そして、AC成分が“0”であるときには、その判定結果を示すフラグを元のデータと対応付けて第2バッファメモリ部140に保存しておく(S414−YES,S415)。また、最後尾側から最初にノンゼロが現われた後には、AC成分がノンゼロであるのか“0”であるのかを問わず、そのAC成分をそのまま第2バッファメモリ部140に保存しておく(S414−NO,S416〜S419)。
具体的には、図7(A1),(B1)に示すように末尾側に連続して“0”が存在すると、図7(A2),(B2)に示すように、その“0”をエンドフラグeに置き換えて第2バッファメモリ部140に保存するし、最後尾側から最初にノンゼロが現われた後にはそのAC成分をそのまま第2バッファメモリ部140に保存する。つまり、末尾のデータから順に連続して現れるゼロを判定してエンドフラグeを付加し、この処理後のデータを第2バッファメモリ部140に1ブロック分保存する。
次に後段処理部150のエントロピー符号化部152は、オペレータK,Rをリセットした後(S430)、図7(A3),(B3)に示すように、本来の順に、すなわち図9(B)に示すようにジグザグスキャンの正順に、先頭側から順にデータを第2バッファメモリ部140から取り込んで、連続する“0”成分を数えながら、エンドフラグeや“0”でない成分(エンドフラグeを除く)を見つける(S432,S434)。
そして、図7(A3),(B3)に示すように、エントロピー符号化部152は、エンドフラグeが現われると直ちにEOB符号を発生する(S434−フラグ,S470)。また、処理サイクルの調整のため、ブロック内の最終番目となるまで処理サイクルを空回りさせ(S472−NO,S474)、ブロック内の最終番目となったらそのブロックについての処理を完了させる(S472−YES)。
第2バッファメモリ部140からジグザグスキャン順にデータを読み出したときにエンドフラグeが現われた後には、最後尾までエンドフラグeが続くことになるので、第1バッファメモリ部120に保存しておいた元のデータとしてはゼロ長数信号ZRLを出力する対象となり得る場合であっても、第2バッファメモリ部140から読み出したデータを取り扱う限り、エントロピー符号化部152は、“0”を検知することがないので、確実に、ゼロ長数信号ZRLの出力よりもEOB信号の出力を優先させることができる。
また、エントロピー符号化部152は、“0”成分が現われると、従属ループ処理における判定条件であるゼロの連続数を監視するのためのオペレータRに“1”を加えた後に(S435)、連続する“0”成分が“8”(JPEG符号化の場合には“16”;以下同様)であるか否かを判定する(S450)。そして、エントロピー符号化部152は、連続する“0”成分が“8”でなければステップS432に戻って次の処理対象データの処理に移行するし(S450−NO)、図7(A2)に示すように、連続する“0”成分が“8”になると、直ちにZRL符号を発生する(S450−YES,S452)。また、エントロピー符号化部152は、図7(A3),(B3)に示すように、ノンゼロ(エンドフラグeを除く)が現われると直ちにAC符号を発生する(S434−NO,S454)。
この後、従属ループ処理におけ条件判定のためのオペレータRをゼロ(0)にリセットし(S456)、ブロックの最後尾のデータでないときにはステップS432に戻って次の処理対象データの処理に移行するが(S458−NO)、ブロックの最後尾のデータであるときにはそのブロックについての処理を完了させる(S458−YES)。
ステップS432〜S458もしくはステップS470を行なうことで、エントロピー符号化部152は、第2バッファメモリ部140からジグザグスキャン順にデータを読み出してデータ判定を行なうことで、AC符号、ZRL符号、およびEOB符号の何れかの出力を直ちに確定させることができるので、データの内容によらず、一定のサイクル数で処理することができるようになる。
たとえば、JPEGにおけるAC符号化処理であれば、ゼロが16個現れたら即時にZRL符号を発行することができ、エンドフラグeが現れたら即時にEOB符号を発行することができる。ZRL符号の発行を保留する必要がないし、図6(B)に示したようにノンゼロの係数が現れたときに複数の符号を発生することも必要ないので、63個の係数を必ず63サイクルで処理する回路を容易に構成することができ、制御回路が単純なものになる。
これにより、比較的単純な構造の制御回路で制御可能なデータパスを構成することができるようになり、たとえば「ALUアレイのパイプラインで構成されたプログラマブルデバイス」でも容易にJPEGなどの画像処理装置を実装することが可能となる。
なお、エンドフラグeが現れた時点で次のブロックの処理に移ることによって、処理の高速化を図ることもできるが、こうしてしまうと、データの内容によって処理サイクル数に違いができてくるので、ALUアレイに不向きな構成になってしまう。
もちろん、ASICやFPGAなどの回路構成においても、このような処理を実装することもできるので、回路規模削減や設計難易度の容易化、あるいは動作クロック周波数の向上などの効果を期待することができる。この場合、ALUアレイを用いた構成とは異なり、エンドフラグeが現れた時点で次のブロックの処理に移ることによって、処理の高速化を図ることは有効である。
なお、前述の具体的な事例では、ある判定処理よりも本来の処理順におけるより後段側のデータに基づく他の判定処理の方が優先される判定処理ループを持つデータ処理の典型的なものとして、JPEGにおけるAC符号化処理を一例として、本願発明を適用した事例で説明したが、AC符号化処理以外の符号化処理や、その他のデータ処理にも同様に適用できる。
また、「ALUアレイのパイプラインで構成されたプログラマブルデバイス」あるいはASICやFPGAなどのハードウェア回路を用いて実現することに限らず、図8に示したフローチャート通りにソフトウェア処理を記述することでも実現することができる。よって、本発明に係るデータ処理技術(画像処理技術)は、電子計算機(コンピュータ)を用いてソフトウェアで実現することもでき、本発明に係るデータ処理装置(画像処理装置や符号化装置など)を、電子計算機を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできるのである。
本発明に係るデータ処理装置の基本構成を示す回路ブロック図である。 ループ処理を包含したデータ処理の基本事例を示すフローチャートである。 本実施形態のデータ処理装置の処理手順を説明するフローチャートである。 本発明に係るデータ処理装置の変形構成を示す回路ブロック図である。 JPEG符号化処理におけるAC係数のエンコード処理を説明する図である。 JPEG符号化における、AC係数とZRL符号とEOB符号の関係を説明する図である。 従来のJPEG符号化処理の問題を解決する本実施形態による処理手法と、AC係数とZRL符号とEOB符号の関係を説明する図である。 本実施形態でのJPEG符号化処理手順を示したフローチャートである。 本実施形態のJPEG符号化処理手順における、ブロック内のデータスキャン順を説明する図である。 非特許文献1に記載の仕組みを示す図である。 非特許文献2,3に記載の仕組みを示す図である。 特許文献1に記載の仕組みを示す図である。 非特許文献4に記載の仕組みを示す図である。
符号の説明
1…データ処理装置、3…置換処理部、110…前段処理部、112…DCT計算部、114…量子化計算部、120…第1バッファメモリ部、122,124…バッファメモリ、130…フラグ付加部、132…EOB処理部、140…第2バッファメモリ部、142,144…バッファメモリ、150…後段処理部、152…エントロピー符号化部、154…バイトパッキング部

Claims (9)

  1. 処理対象データが所定の条件に合致しているか否かに基づいて処理結果を確定させることで所定のデータ処理を行なうデータ処理方法であって、
    前記第2の判定処理よりも、本来の処理順におけるより後段側のデータに基づく前記第1の判定処理の方が優先される場合には、
    前記処理対象データについて第1の判定処理を行ないその結果を示すフラグデータを所定のデータ記憶部に保持しておき、
    前記データ記憶部に保持されている前記フラグデータを含むデータを本来の取扱い順と同じ正順で取り込んで、前記第1の判定処理の結果を示すフラグデータを参照しつつ前記処理対象データについて第2の判定処理を行なう
    ことを特徴とするデータ処理方法。
  2. 前記第1の判定処理を、前記処理対象データの本来の取扱い順とは逆順でデータを取り込んで行なう
    ことを特徴とする請求項1に記載のデータ処理方法。
  3. 前記第1および第2の判定処理は、符号化に関わる処理である
    ことを特徴とする請求項1または2に記載のデータ処理方法。
  4. JPEGにおけるAC係数の符号化を行なう際には、量子化計算後のDCT係数データを取り込んで、前記第1の判定処理としてそのデータがゼロであるか否かを判定し、最後尾側から連続するゼロのデータに対応付けてその旨を示すフラグデータを前記データ記憶部に保持するとともに、最後尾側から最初にゼロでないデータが現われる以降には、そのデータをそのまま前記データ記憶部に保持し、前記データ記憶部に保持されているデータを本来の取扱い順と同じ正順で取り込んで、前記第2の判定処理として、データ値がゼロでもフラグデータでもないときにはAC符号化を、データ値がフラグデータのときにはEOB符号化を、ゼロの連続個数が所定数を越えたときにはZRL符号化を行なう
    ことを特徴とする請求項3に記載のデータ処理方法。
  5. 処理対象データが所定の条件に合致しているか否かに基づいて処理結果を確定させることで所定のデータ処理を行なうデータ処理装置であって、
    処理対象データを保持する第1のデータ記憶部と、
    前記第1のデータ記憶部から前記処理対象データを取り込んで第1の判定処理を行なう第1の判定処理部と、
    前記第1の判定処理部による第1の判定処理の結果を示すフラグデータを前記処理対象データと対応付けて保持する第2のデータ記憶部と、
    前記第2のデータ記憶部に保持されている前記フラグデータを含むデータを本来の取扱い順と同じ正順で取り込んで、前記第1の判定処理の結果を示すフラグデータを参照しつつ前記処理対象データについて第2の判定処理を行なう第2の判定処理部と
    を備えたことを特徴とするデータ処理装置。
  6. 前記第1の判定処理部は、前記処理対象データの本来の取扱い順とは逆順でデータを取り込んで前記第1の判定処理を行なう
    ことを特徴とする請求項5に記載のデータ処理装置。
  7. 前記第1および第2の判定処理部は、符号化に関わる判定処理を行なう
    ことを特徴とする請求項5または6に記載のデータ処理装置。
  8. 前記第1のデータ記憶部は、前記処理対象データとして、JPEGにおけるAC係数の符号化に関わる、量子化計算後のDCT係数データを保持し、
    前記第1の判定処理部は、前記量子化計算後のDCT係数データを前記第1のデータ記憶部から取り込んで、前記第1の判定処理としてそのデータがゼロであるか否かを判定し、最後尾側から連続するゼロのデータに対応付けてその旨を示すフラグデータを前記第2のデータ記憶部に保持させるとともに、最後尾側から最初にゼロでないデータが現われる以降には、そのデータをそのまま前記第2のデータ記憶部に保持させ、
    前記第2の判定処理部は、前記第2のデータ記憶部に保持されているデータを本来の取扱い順と同じ正順で取り込んで、前記第2の判定処理として、データ値がゼロでもフラグデータでもないときにはAC符号化を、データ値がフラグデータのときにはEOB符号化を、ゼロの連続個数が所定数を越えたときにはZRL符号化を行なう
    ことを特徴とする請求項5に記載のデータ処理装置。
  9. 前記第1のデータ記憶部および前記第2のデータ記憶部は、データの書込みと読出しとを同時に可能な構成となっている
    ことを特徴とする請求項5〜8のうちの何れか1項に記載のデータ処理装置。
JP2005275274A 2005-09-22 2005-09-22 データ処理方法およびデータ処理装置 Expired - Fee Related JP4582413B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005275274A JP4582413B2 (ja) 2005-09-22 2005-09-22 データ処理方法およびデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005275274A JP4582413B2 (ja) 2005-09-22 2005-09-22 データ処理方法およびデータ処理装置

Publications (2)

Publication Number Publication Date
JP2007088826A true JP2007088826A (ja) 2007-04-05
JP4582413B2 JP4582413B2 (ja) 2010-11-17

Family

ID=37975366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005275274A Expired - Fee Related JP4582413B2 (ja) 2005-09-22 2005-09-22 データ処理方法およびデータ処理装置

Country Status (1)

Country Link
JP (1) JP4582413B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530445A (ja) * 2009-06-16 2012-11-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 信号のスケーラブルビットストリームへの符号化及び斯様なビットストリームの復号化

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02244874A (ja) * 1989-03-16 1990-09-28 Toshiba Corp 直交変換符号化方式
JPH0583564A (ja) * 1991-09-20 1993-04-02 Canon Inc 画像処理装置
JPH0856358A (ja) * 1994-08-12 1996-02-27 Kobe Steel Ltd 画像データ符号化装置
JPH0898029A (ja) * 1994-09-27 1996-04-12 Fuji Xerox Co Ltd 符号化装置
JP2002330435A (ja) * 2001-03-02 2002-11-15 Matsushita Electric Ind Co Ltd 符号化回路、及び符号化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02244874A (ja) * 1989-03-16 1990-09-28 Toshiba Corp 直交変換符号化方式
JPH0583564A (ja) * 1991-09-20 1993-04-02 Canon Inc 画像処理装置
JPH0856358A (ja) * 1994-08-12 1996-02-27 Kobe Steel Ltd 画像データ符号化装置
JPH0898029A (ja) * 1994-09-27 1996-04-12 Fuji Xerox Co Ltd 符号化装置
JP2002330435A (ja) * 2001-03-02 2002-11-15 Matsushita Electric Ind Co Ltd 符号化回路、及び符号化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530445A (ja) * 2009-06-16 2012-11-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 信号のスケーラブルビットストリームへの符号化及び斯様なビットストリームの復号化
US9014498B2 (en) 2009-06-16 2015-04-21 Koninklijke Philips N.V. Encoding a signal into a scalable bitstream and decoding such bitstream

Also Published As

Publication number Publication date
JP4582413B2 (ja) 2010-11-17

Similar Documents

Publication Publication Date Title
KR100227275B1 (ko) 단위 처리 시스템에서의 가변길이코드 검출장치 및 방법
US7221296B2 (en) Method and system for fast context based adaptive binary arithmetic coding
JP4139330B2 (ja) 改良された可変長デコーダ
JP5264706B2 (ja) 算術デコーディング方法及びデバイス
US8125364B2 (en) Data compression/decompression method
KR20110061551A (ko) 상황-기반의 적응형 이진 산술 코딩(cabac)비디오 스트림 준수
US20070115154A1 (en) Method of decoding bin values using pipeline architecture and decoding device therefor
US9641850B2 (en) Video compression device
KR100236528B1 (ko) 신호처리시스템내의비트스트림신호형식검출장치및방법
JP2009534886A5 (ja)
GB2496209A (en) Entropy encoder with first and second, bypass encoding systems
US8774540B2 (en) Tile support in decoders
JP4582413B2 (ja) データ処理方法およびデータ処理装置
US8599841B1 (en) Multi-format bitstream decoding engine
Li et al. A CABAC encoding core with dynamic pipeline for H. 264/AVC main profile
JP4327036B2 (ja) 算術符号復号化方法及びその装置
KR20140036172A (ko) 콘텍스트 적응성 이진 데이터 산술 코딩(cabac) 디코딩을 위한 기술들
JP2007259323A (ja) 画像復号化装置
US20220109891A1 (en) Features of range asymmetric number system encoding and decoding
JP2010050697A (ja) 画像圧縮伸張装置および画像圧縮伸張方法
JP5105191B2 (ja) 画像処理装置
JP2008199100A (ja) 可変長符号復号装置
JP4907488B2 (ja) 画像処理装置、画像処理方法及び該方法を実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体
WO2019030860A1 (ja) 誤り検出用冗長ビットの生成方法および装置
JP2009060343A (ja) 残差インデックスデコーダ及び残差インデックスのデコード方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080821

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20091009

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100628

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100818

R150 Certificate of patent or registration of utility model

Ref document number: 4582413

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees