(57)【要約】【課題】たとえばＪＰＥＧ２０００符号化処理では、ある一群の符号付き整数値について、その絶対値の最大値を表現するのに必要な２進数の桁数が分かると都合が良い。しかしながら、ソフトウェア処理で、多数の符号付整数値についてその絶対値の最大値（あるいは、その最大値の表現に必要な桁数）を高速に求めることは困難であた。【解決手段】本発明では、符号付整数の表現法として広く用いられている２の補数表現の代わりに、絶対値と符号による表現を使用する。さらに、符号を表現する桁を最下位に置くことで、絶対値の大小関係が容易に判別できるようにする。【選択図】        図１
2004178482.tif 000002
【特許請求の範囲】
【請求項１】
２の補数表記による符号付整数値を絶対値と符号による表現に変換、または逆変換する命令を備えたマイクロプロセッサ。
【請求項２】
請求項１の絶対値と符号による表現で特に符号を最下位桁のビットとして割り当てる命令を備えたマイクロプロセッサ。
【請求項３】
ＩＳＯ／ＩＥＣ１５４４４（ＪＰＥＧ２０００）に定められた画像データの圧縮、または、伸張をソフトウェアで実現する方法を高速化するために請求項１または２の命令を利用する画像処理装置。
【請求項４】
ＩＳＯ／ＩＥＣ１１１７２（ＭＰＥＧ）に定められたビデオデータ、オーディオデータの圧縮、または、伸張をソフトウェアで実現する方法を高速化するために請求項１または２の命令を利用する画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は圧縮符号化方法に関する。特に画像や音声の圧縮符号化方法への応用で効果が期待される。
【０００２】
【従来の技術】
画像圧縮で典型的なアルゴリズム（例えばＪＰＥＧ，  ＪＰＥＧ２０００）の概要は図２のようになる。ここで変換手段２１は、離散コサイン変換（ＤＣＴ）であったり、ウェーブレット変換であったり、通常は画像の視覚的特徴を抽出するための変換を用いる。次の量子化手段２２では、変換手段２１で得られたデータのうち、画質に影響が大きいもの（例えば直流成分や低周波成分）については細かい刻みで量子化し、そうでないもの（例えば高周波成分）については荒い刻みで量子化することで、画質の劣化を抑えながら圧縮効率を高める工夫がなされる。
【０００３】
最後の符号化手段２３では、量子化手段２２処理後のデータの偏りを利用したモデル化や、圧縮符号化（ハフマン符号化や算術圧縮）などを行なう。
【０００４】
さらに、画像圧縮に限らず、音声の圧縮（たとえばＭＰＥＧオーディオ）も図２と同様の原理を利用することがある。
【０００５】
量子化手段においては、除算（端数は一定の方法で整数に丸める）を利用することも多い。その場合、量子化された結果は零付近に集まることになる。その結果の絶対値の最大値が分かれば、後の符号化の処理を簡略化したり、符号化による画像劣化の程度の見積もりをしたりすることが可能となる。
【０００６】
また、絶対値の最大値を求める方法としては、たとえば図３のように、ステップＳ３３で一度入力値の絶対値を算出してから、ステップＳ３４で前回入力値までの最大値と比較して、最大値を更新するという作業を繰り返すのが一般的であった。
【０００７】
こうした問題を解決するために、特開２００１−３５８５９３では処理対象のビットプレーンを選択するデータ転送装置が提案されている。
【０００８】
【発明が解決しようとする課題】
たとえばＪＰＥＧ２０００符号化処理では、ある一群の符号付き整数値について、その絶対値の最大値を表現するのに必要な２進数の桁数が分かると都合が良い。というのは、最上位から連続する’０’のビット数だけエントロピーコーダーで処理すべきビットプレーンの数を減らすことができるからである。
【０００９】
しかしながら、ソフトウェア処理で、多数の符号付整数値についてその絶対値の最大値（あるいは、その最大値の表現で最上位から連続する’０’のビット数）を高速に求めることは困難であった。
【００１０】
これは、符号付整数値を表現するのに、多くの場合、いわゆる２の補数表現を使用しているためで、一般的な２の補数表現では、負数については有意でない桁を表現するのに’１’の値のビットを使用し、正数のそれが’０’であるのと異なるためであり、絶対値の比較においては正負の数値が混在する場合には、混在しない場合よりも多くのステップを必要としていた。
【００１１】
絶対値と符号による表現も使われることがあったが、通常最上位に符号ビットを置いていたので、やはり符号を取り除いて絶対値を求めてから最大値の比較をする必要があった。
【００１２】
本発明は、符号付整数値の絶対値の最大値（あるいは、その最大値の表現で最上位から連続する’０’のビット数）を高速に求める方法を提供する。
【００１３】
【課題を解決するための手段】
本発明では、符号付整数の表現法として広く用いられている２の補数表現の代わりに、絶対値と符号による表現を使用する。さらに、符号を表現する桁を最下位に置くことで、絶対値の大小関係が容易に判別できるようにする。つまり、絶対値と符号による表現を符号なし整数とみなして、その最大値を求めるもとで、絶対値の最大値を容易に求めることが可能になる。
【００１４】
また、一般的な２の補数表現を絶対値と符号による表現に変換するために、可能ならば
特別の変換命令を用意する。また、その命令に前回までの最大値と今回変換した値とから、今回までの最大値を求める回路を付加することで、更に高速な処理を可能にする。こうした命令の追加は、たとえば、トライセンド社、テンシリカ社、あるいは、パシフィックデザイン社などの製品で、コンフィギュラブルプロセッサと呼ばれる命令追加可能なマイクロプロセッサを利用すれば比較的容易である。
【００１５】
【発明の実施の形態】
第１の形態は、命令追加可能なプロセッサを利用して、２の補数表現を絶対値と符号による表現に変換する命令を用意する。本発明で使用する絶対値と符号による表現を符号なしの整数としてみて、その最大値を求め、その絶対値部分を絶対値の最大値とするものである。
【００１６】
第２の形態は、必要な情報が絶対値の最大値の表現で最上位から連続する’０’のビット数で十分な場合である。このときは絶対値と符号による表現を符号なし数値とみなして、全入力値について各桁のビットごとの論理和を求める。その結果についての最上位から連続する’０’のビット数は、絶対値の最大値の表現で最上位から連続する’０’のビット数に等しいことを利用する。
【００１７】
第３の形態は、第１の形態による変換命令に前回までの最大値と今回変換した値とから、今回までの最大値を求める回路を付加するものである。
【００１８】
第４の形態は、必要な情報が絶対値の最大値の表現で最上位から連続する’０’のビット数である場合、第３の形態で最大値を求める代わりに、ビットごとの論理和を求める。その結果についての最上位から連続する’０’のビット数は、絶対値の最大値の表現で最上位から連続する’０’のビット数に等しいことを利用する。
【００１９】
（実施例）
本発明の実施例で、実施の形態の第１、第２に対応したものを以下に示す。
【００２０】
図４は一般的な２の補数表現の符号付１６ビット整数値を本発明で用いる絶対値と符号による表現に変換する例である。入力値が４１ａで示すような非負の整数である場合は、まず４２ａのように符号（’０’が正または零を表現している）と絶対値を求める。４１ａが表現する数値は正なので絶対値は符号を取り除いた部分に等しい。そして４３ａのように符号を最下位に置いた結果が本発明で用いる絶対値と符号による表現となる。
【００２１】
一方、入力値が４１ｂで示すような負の整数である場合は、４２ｂのように符号（’１’が負を表現している）と絶対値を求める。この場合、４１ｂが表現する数値は負なので、絶対値は符号を取り除いた部分の補数に等しい。そして４３ｂのように符号を最下位に置いた結果が本発明で用いる絶対値と符号による表現となる。
【００２２】
このような演算を行なう回路例は図５のようになる。ｎビットの入力値ａ１  （最下位），ａ２，…，ａｎ  （最上位＝符号）を出力値ｘ１  （最下位＝符号），ｘ２，…，ｘｎ  （最上位）に変換するものである。５１は入力値のうち符号ａｎ  を除いたａ１，ａ２，…，ａｎ−１について絶対値を求めている。すなわち、符号ａｎ  が’１’の場合に限ってａ１，ａ２，…，ａｎ−１を反転して、その後に符号ａｎ  を加算している。
【００２３】
また、５２の部分は、符号を最下位に置き、それ以外の部分を一桁づつ上位に移すように配線している。以上のように２の補数表現の符号付整数値を本発明で用いる絶対値と符号による表現に変換する回路は簡単な構成で実現可能である。
【００２４】
ただし、２の補数表現による符号付整数値のうち最小値（負で絶対値が最大のもの）は、対応する絶対値と符号による表現がない。というのは、絶対値に変換するときに桁あふれを起こしてしまうためである。たとえば、図５の回路では符号は保存されるが、絶対値は桁あふれによって零になってしまい、結果は負数で絶対値が零となる。
【００２５】
一般に、有限の桁数で計算しなければならない以上、桁あふれがないように十分な桁数を考慮してソフトウェアを作成しなければならないのは、この場合に限ったことではない。
【００２６】
第１の形態では、対象となる一群の値それぞれについて、本発明で用いる絶対値と符号による表現に変換した後に、その全体を単純に符号なし整数値とみなして最大値を求める。絶対値と符号による表現を符号なし整数値とみなしたときの大小関係と、本来の入力値の絶対値の大小関係を考えたとき、絶対値が同じで符号が違う場合を除いては一致する。すなわち、絶対値に差がある場合には正しく判定される。一方、絶対値が同じで符号が違う場合には、最下位の桁である符号の部分に差があるために等しいと判定されないが、絶対値の最大値を求める目的では、最終的に符号を除いて考えることになるので影響はない。
【００２７】
このようにすると従来の例の図３で絶対値を求めているステップＳ３３が、ひとつのデータ変換命令だけに単純化することができる。
【００２８】
第２の形態では、対象となる一群の値それぞれについて、本発明で用いる絶対値と符号による表現に変換した後に、それらの値についてビットごとの論理和を求める。この論理和の結果Ｘで最上位から連続する’０’の桁数Ｎと、最大値の絶対値と符号による表現ｘで最上位から連続する’０’の桁数ｎとの関係について考える。
【００２９】
もしＮ＞ｎであると仮定すると、ｘではｎ＋１桁目が’１’であるのに対して、ＸではＮ桁目までがすべて’０’であり、Ｎ＞ｎなのでｎ＋１桁目は’０’となる。論理和の性質から考えて、ｘのｎ＋１桁目が’１’ならばＸのｎ＋１桁目も’１’とならなければならないのに矛盾が生じる。よって、Ｎ≦ｎである。
【００３０】
もしｎ＞Ｎであると仮定すると、ＸではＮ＋１桁目が’１’であるのに対して、ｘではｎ桁目までがすべて’０’であり、ｎ＞ＮなのでＮ＋１桁目は’０’となる。論理和の性質から考えて、対象となる値の中にＮ＋１桁目が’１’である数ｙが存在しなければならない。すると明らかにｙの絶対値はｘの絶対値より大きいことになり、ｘが絶対値の最大値であることに矛盾する。よってＮ≧ｎである。
【００３１】
以上により、Ｎ≦ｎかつＮ≧ｎなので、Ｎ＝ｎとなる。
この性質を利用すると、絶対値の最大値で最上位から連続する’０’の桁数を調べる目的においては、図３の処理は以下に説明する図６のように簡略化できる。
【００３２】
まず、ステップＳ６１でＭＡＸ（仮の最大値）を０に初期化する。
【００３３】
次に以下のステップＳ６２，Ｓ６３，Ｓ６４を処理対象であるデータ数だけ繰り返すことで絶対値の最大値を求める。
【００３４】
ステップＳ６２では処理対象であるデータ（２の補数表現）をひとつ読み出す。
【００３５】
ステップＳ６３ではＳ６２で得られたデータを絶対値と符号による表記に変換する。
【００３６】
ステップＳ６４では仮の最大値ＭＡＸの値をＳ６３で変換された結果とＭＡＸとの論理和に更新する。
【００３７】
繰り返しが終了したら、ステップＳ６５に移る。
【００３８】
ステップＳ６５ではＭＡＸの値の絶対値を求める。ＭＡＸの値は絶対値と符号による表記なので、最下位の符号を取り除けば絶対値が得られる。
【００３９】
ステップＳ６６ではステップＳ６５で得られた最大値を（必要に応じて２の補数表記、または他の適当な形式に変換して）出力する。
【００４０】
以上の手順で図３に示す処理と同様の結果が得られる。この方法によれば、図３のステップＳ３３，Ｓ３４に示すようなソフトウェアによる条件判断を必要としないので、処理速度の向上の効果がある。
【００４１】
本発明の実施例で、実施の形態の第３に対応したものを以下に示す。
【００４２】
コンフィギュラブルプロセッサは、いくつかの符号付整数値から絶対値の最大値を簡便に算出するために以下の命令１、命令２、命令３、アキュムレーターＡ、レジスタＲを備えるものとする。ここで、レジスタＲは絶対値を扱うのに都合が良いように、符号に相当するビットは常に正（または０）に固定されているものとする。
【００４３】
・命令１：レジスタＲの値を０に初期化する。
【００４４】
・命令２：アキュムレーターＡの内容を２の補数表現とみなして、対応する絶対値と符号による表現に変換し、結果をアキュムレーターＡに書き戻す。また、変換結果とレジスタＲの内容（どちらも符号は無視してよい）を比較して、大きい方の値をレジスタＲに書き戻す。
【００４５】
・命令３：レジスタＲの値をアキュムレーターＡに読み出す。
このような命令を利用すれば、従来は図３にように、まず入力値の絶対値を求め、その結果を前入力値までの絶対値の最大値と比較して、必要に応じて最大値を更新するという手順が、以下に説明する図１のように簡略化可能になる。
【００４６】
まず、ステップＳ１１でレジスタＲ（仮の最大値）を０に初期化する。
【００４７】
次に以下のステップＳ１２，Ｓ１３を処理対象であるデータ数だけ繰り返すことで絶対値の最大値を求める。
【００４８】
ステップＳ１２では処理対象であるデータ（２の補数表現）をひとつ読み出す。
【００４９】
ステップＳ１３ではＳ１２で得られたデータを絶対値と符号による表記に変換し、同時に、その結果がレジスタＲに保持されている仮の最大値よりも大ならば、レジスタＲを更新する。
【００５０】
繰り返しが終了したら、ステップＳ１４に移る。
【００５１】
ステップＳ１４ではレジスタＲの値を読み出す。これは、処理対照であるデータの絶対値の最大値（絶対値と符号による表記）になっている。
【００５２】
ステップＳ１５ではステップＳ１４で得られた最大値を（必要に応じて２の補数表記、または他の適当な形式に変換して）出力する。
【００５３】
以上の手順で図３に示す処理と同様の結果が得られる。この方法によれば、図３のステップＳ３３，Ｓ３４に示すようなソフトウェアによる条件判断を必要としないので、処理速度の向上の効果がある。
【００５４】
また、命令２で、変換結果とレジスタＲの内容の論理和をレジスタＲに書き戻すようにすれば実施の形態の第４に相当するものになる。形態第２の説明から明らかなように、論理輪を用いても絶対値の最大値の表現で最上位から連続する’０’の桁数は正しく求めることができる。
【００５５】
【発明の効果】
以上のように、本発明によって符号付整数値の絶対値の最大値（あるいは、その最大値の表現で最上位から連続する’０’のビット数）を高速に求めることが可能となる。
【図面の簡単な説明】
【図１】本発明の実施例による絶対値の最大値算出の流れ図
【図２】画像圧縮処理例
【図３】従来の方法による絶対値の最大値算出の流れ図
【図４】本発明で使用する絶対値と符号による表記
【図５】２の補数表記から絶対値と符号による表記に変換する演算回路の例
【図６】本発明の別の実施例による絶対値の最大値算出の流れ図
【符号の説明】
Ｓ１１，Ｓ１２，Ｓ１３，Ｓ１４，Ｓ１５    本発明の実施例で絶対値の最大値算出方法を構成する各ステップ
２１  変換手段
２２  量子化手段
２３  符号化手段
Ｓ３１，Ｓ３２，Ｓ３３，Ｓ３４，Ｓ３５    従来の例で絶対値の最大値算出を構成する各ステップ
４１ａ，  ４１ｂ  入力値の例
４２ａ，  ４２ｂ  入力値から符号と絶対値を抽出した例
４３ａ，  ４３ｂ  本発明で使用する絶対値と符号による表記に変換した例
５１  絶対値を計算するための回路
５２  符号を最下位に移すための配線
Ｓ６１，Ｓ６２，Ｓ６３，Ｓ６４，Ｓ６５，Ｓ６６    本発明の実施例で絶対値の最大値を表現するのに必要なビット数の算出方法を構成する各ステップ
【図１】
2004178482.tif 000003
【図２】
2004178482.tif 000004
【図３】
2004178482.tif 000005
【図４】
2004178482.tif 000006
【図５】
2004178482.tif 000007
【図６】
2004178482.tif 000008