(57)【要約】【課題】  ＳＩＭＤ演算装置を用いて、例えばＪＰＥＧ２０００方式における離散ウェーブレット変換の順変換処理及び逆変換処理の演算を行う。【解決手段】  水平方向のウェーブレット変換処理では、第１，第２のデータ列から所定数毎のデータを第１，第２のＳＩＭＤレジスタに順次ロードし、第１，第２のＳＩＭＤレジスタ及び第３のレジスタに格納されているデータを用いてリフティング演算を行い、得られた所定数のデータを第４のＳＩＭＤレジスタにロードすると共に、第２のＳＩＭＤレジスタの最後のデータを第３のレジスタにロードする。垂直方向のウェーブレット変換処理では、第１乃至第３のデータ列から所定数毎のデータを第１乃至第３のＳＩＭＤレジスタに順次ロードし、第１乃至第３のＳＩＭＤレジスタの同じ位置に格納されているデータ同士でリフティング演算を行い、得られた所定数のデータを第４のＳＩＭＤレジスタにロードする。【選択図】  図１０
2007049485.tif 000002
【特許請求の範囲】
【請求項１】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換装置であって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、
第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、
１個以上のデータをロードし保持する第３のレジスタと、
所定数のデータをロードし保持する第４のＳＩＭＤレジスタと、
上記第１，第２，第４のＳＩＭＤレジスタと上記第３のレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算手段とを備え、
上記演算手段は、上記第１，第２のデータ列から所定数毎のデータをそれぞれ上記第１，第２のＳＩＭＤレジスタに順次ロードし、当該第１，第２のＳＩＭＤレジスタに格納されているデータと、上記第３のレジスタに格納されているデータとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすると共に、上記第２のＳＩＭＤレジスタの最後のデータを上記第３のレジスタにロードする
ことを特徴とする離散ウェーブレット変換装置。
【請求項２】
上記演算手段は、上記第１，第２のデータ列の先頭から所定数のデータをそれぞれ上記第１，第２のＳＩＭＤレジスタにロードする際には、上記第２のデータ列の先頭のデータを上記第３のレジスタにロードすることを特徴とする請求項１記載の離散ウェーブレット変換装置。
【請求項３】
上記第３のレジスタは、ＳＩＭＤレジスタであることを特徴とする請求項１記載の離散ウェーブレット変換装置。
【請求項４】
上記第４のＳＩＭＤレジスタは、上記第１のＳＩＭＤレジスタ又は上記第２のＳＩＭＤレジスタと共用となっていることを特徴とする請求項１記載の離散ウェーブレット変換装置。
【請求項５】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換装置であって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、
第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、
第３のデータ列から所定数のデータをロードし保持する第３のＳＩＭＤレジスタと、
所定数のデータをロードし保持する第４のＳＩＭＤレジスタと、
上記第１乃至第４のＳＩＭＤレジスタを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算手段とを備え、
上記演算手段は、上記第１乃至第３のデータ列から所定数毎のデータをそれぞれ上記第１乃至第３のＳＩＭＤレジスタに順次ロードし、当該第１乃至第３のＳＩＭＤレジスタの同じ位置に格納されているデータ同士で離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードする
ことを特徴とする離散ウェーブレット変換装置。
【請求項６】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換方法であって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、１個以上のデータをロードし保持する第３のレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、
上記演算工程では、上記第１，第２のデータ列から所定数毎のデータをそれぞれ上記第１，第２のＳＩＭＤレジスタに順次ロードし、当該第１，第２のＳＩＭＤレジスタに格納されているデータと、上記第３のレジスタに格納されているデータとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすると共に、上記第２のＳＩＭＤレジスタの最後のデータを上記第３のレジスタにロードする
ことを特徴とする離散ウェーブレット変換方法。
【請求項７】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換方法であって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、第３のデータ列から所定数のデータをロードし保持する第３のＳＩＭＤレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、
上記演算工程では、上記第１乃至第３のデータ列から所定数毎のデータをそれぞれ上記第１乃至第３のＳＩＭＤレジスタに順次ロードし、当該第１乃至第３のＳＩＭＤレジスタの同じ位置に格納されているデータ同士で離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードする
ことを特徴とする離散ウェーブレット変換方法。
【請求項８】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する離散ウェーブレット変換の順変換処理、及び、上記順変換処理に対する逆変換処理をコンピュータに実行させるプログラムであって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、１個以上のデータをロードし保持する第３のレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、
上記演算工程では、上記第１，第２のデータ列から所定数毎のデータをそれぞれ上記第１，第２のＳＩＭＤレジスタに順次ロードし、当該第１，第２のＳＩＭＤレジスタに格納されているデータと、上記第３のレジスタに格納されているデータとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすると共に、上記第２のＳＩＭＤレジスタの最後のデータを上記第３のレジスタにロードする
ことを特徴とするプログラム。
【請求項９】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する離散ウェーブレット変換の順変換処理、及び、上記順変換処理に対する逆変換処理をコンピュータに実行させるプログラムであって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、第３のデータ列から所定数のデータをロードし保持する第３のＳＩＭＤレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、
上記演算工程では、上記第１乃至第３のデータ列から所定数毎のデータをそれぞれ上記第１乃至第３のＳＩＭＤレジスタに順次ロードし、当該第１乃至第３のＳＩＭＤレジスタの同じ位置に格納されているデータ同士で離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードする
ことを特徴とするプログラム。
【請求項１０】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する離散ウェーブレット変換の順変換処理、及び、上記順変換処理に対する逆変換処理をコンピュータに実行させるプログラムが記録されたコンピュータ読み取り可能な記録媒体であって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、１個以上のデータをロードし保持する第３のレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、
上記演算工程では、上記第１，第２のデータ列から所定数毎のデータをそれぞれ上記第１，第２のＳＩＭＤレジスタに順次ロードし、当該第１，第２のＳＩＭＤレジスタに格納されているデータと、上記第３のレジスタに格納されているデータとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすると共に、上記第２のＳＩＭＤレジスタの最後のデータを上記第３のレジスタにロードする
ことを特徴とするプログラムが記録された記録媒体。
【請求項１１】
複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する離散ウェーブレット変換の順変換処理、及び、上記順変換処理に対する逆変換処理をコンピュータに実行させるプログラムが記録されたコンピュータ読み取り可能な記録媒体であって、
第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、第３のデータ列から所定数のデータをロードし保持する第３のＳＩＭＤレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、
上記演算工程では、上記第１乃至第３のデータ列から所定数毎のデータをそれぞれ上記第１乃至第３のＳＩＭＤレジスタに順次ロードし、当該第１乃至第３のＳＩＭＤレジスタの同じ位置に格納されているデータ同士で離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードする
ことを特徴とするプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＪＰＥＧ２０００方式における離散ウェーブレット変換の順変換処理及び逆変換処理の演算を行う離散ウェーブレット変換装置及びその方法、並びにプログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来の代表的な画像符号化方式として、ＩＳＯ（International Standards Organization）によって標準化されたＪＰＥＧ（Joint Photographic Experts Group）方式が挙げられる。このＪＰＥＧ方式は、離散コサイン変換（Discrete Cosine Transform；ＤＣＴ）を中核技術とする不可逆圧縮方式であり、現在、ディジタルカメラやインターネット等を始めとする多くの情報収集・蓄積・通信分野で利用されている。
【０００３】
しかしながら、ＪＰＥＧ方式では、ある程度以上に符号化ビット数を少なくすると、ＤＣＴ特有のブロック歪みが顕著になり、主観的に劣化が目立つようになるため、ＪＰＥＧ方式に代わる新しい画像符号化標準方式が求められていた。
【０００４】
２００１年１月に、ＩＳＯはＪＰＥＧ方式に代わる新しい画像符号化方式として、ＪＰＥＧ２０００方式の国際標準化を完了した。このＪＰＥＧ２０００方式は、従来のＪＰＥＧ方式がＤＣＴを用いていたのに対し、ハイパス・フィルタとローパス・フィルタとを組み合わせたフィルタ・バンクによって画像を複数の信号帯域（サブバンド）に分割し、それらの帯域毎に符号化を行う離散ウェーブレット変換（Discrete Wavelet Transform；ＤＷＴ）を用いている。ＪＰＥＧ２０００方式では、このＤＷＴにビットプレーン単位のコンテクスト・モデリングと算術符号化とを組み合わせることにより、従来のＪＰＥＧ方式を上回る符号化効率に加えて、可逆符号化、段階的符号化、エラー耐性、選択的画質制御機能（Region Of Interest；ＲＯＩ）などの多彩な機能を実現している。
【０００５】
このように、ＪＰＥＧ２０００方式は、ＪＰＥＧ方式と比較して様々な利点を有している。その反面、処理内容が複雑であるため、符号化・復号のための計算量を多く必要としてしまうという問題点がある。
【０００６】
【特許文献１】特開２００３−２５８６４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、画像処理・画像符号化の分野において、ＳＩＭＤ（Single Instruction Multiple Data）演算装置が使用されることがある。一般にＳＩＭＤ演算装置は、数値を記憶するレジスタを２個以上並列にしたＳＩＭＤレジスタを用いて、加減乗除、シフト演算等の演算を同時に行うことができる装置である。このＳＩＭＤ演算装置は、２個以上のデータに対し１度に同じ演算ができるため、画像処理・画像符号化などを高速に実行する用途に適している。
【０００８】
そこで、このＳＩＭＤ演算装置をＪＰＥＧ２０００方式のＤＷＴにおいて採用されるリフティング演算に用いて演算を高速化することが考えられるが、リフティング演算では、ｎ個の出力データを得るために２ｎ＋１個の入力データが必要であるのに対し（特許文献１を参照）、従来のＳＩＭＤ演算装置は、同じ数のデータ同士の演算機能しかないため、２ｎ＋１個の入力データに対しｎ個の出力データを得るというような演算を直接実行することはできなかった。
【０００９】
本発明は、このような従来の実情に鑑みて提案されたものであり、ＳＩＭＤ演算装置を用いて、例えばＪＰＥＧ２０００方式における離散ウェーブレット変換の順変換処理及び逆変換処理の演算を行う離散ウェーブレット変換装置及びその方法、並びにプログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した目的を達成するために、本発明に係る離散ウェーブレット変換装置は、複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換装置であって、第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、１個以上のデータをロードし保持する第３のレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタと、上記第１，第２，第４のＳＩＭＤレジスタと上記第３のレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算手段とを備え、上記演算手段は、上記第１，第２のデータ列から所定数毎のデータをそれぞれ上記第１，第２のＳＩＭＤレジスタに順次ロードし、当該第１，第２のＳＩＭＤレジスタに格納されているデータと、上記第３のレジスタに格納されているデータとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすると共に、上記第２のＳＩＭＤレジスタの最後のデータを上記第３のレジスタにロードすることを特徴とする。
【００１１】
また、本発明に係る離散ウェーブレット変換装置は、複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換装置であって、第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、第３のデータ列から所定数のデータをロードし保持する第３のＳＩＭＤレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタと、上記第１乃至第４のＳＩＭＤレジスタを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算手段とを備え、上記演算手段は、上記第１乃至第３のデータ列から所定数毎のデータをそれぞれ上記第１乃至第３のＳＩＭＤレジスタに順次ロードし、当該第１乃至第３のＳＩＭＤレジスタの同じ位置に格納されているデータ同士で離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすることを特徴とする。
【００１２】
また、上述した目的を達成するために、本発明に係る離散ウェーブレット変換方法は、複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換方法であって、第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、１個以上のデータをロードし保持する第３のレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、上記演算工程では、上記第１，第２のデータ列から所定数毎のデータをそれぞれ上記第１，第２のＳＩＭＤレジスタに順次ロードし、当該第１，第２のＳＩＭＤレジスタに格納されているデータと、上記第３のレジスタに格納されているデータとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすると共に、上記第２のＳＩＭＤレジスタの最後のデータを上記第３のレジスタにロードすることを特徴とする。
【００１３】
また、本発明に係る離散ウェーブレット変換方法は、複数の元データから構成される元データ列を、元データ列の低域成分から構成される低域データ列と元データ列の高域成分から構成される高域データ列とに変換する順変換処理、及び、上記順変換処理に対する逆変換処理を行う離散ウェーブレット変換方法であって、第１のデータ列から所定数のデータをロードし保持する第１のＳＩＭＤ（Single Instruction Multiple Data）レジスタと、第２のデータ列から所定数のデータをロードし保持する第２のＳＩＭＤレジスタと、第３のデータ列から所定数のデータをロードし保持する第３のＳＩＭＤレジスタと、所定数のデータをロードし保持する第４のＳＩＭＤレジスタとを用いて離散ウェーブレット変換の順変換処理及び逆変換処理を行う演算工程を有し、上記演算工程では、上記第１乃至第３のデータ列から所定数毎のデータをそれぞれ上記第１乃至第３のＳＩＭＤレジスタに順次ロードし、当該第１乃至第３のＳＩＭＤレジスタの同じ位置に格納されているデータ同士で離散ウェーブレット変換の順変換処理及び逆変換処理におけるリフティング演算を行い、得られた所定数のデータを上記第４のＳＩＭＤレジスタにロードすることを特徴とする。
【００１４】
また、本発明に係るプログラムは、上述した離散ウェーブレット変換の順変換処理及び逆変換処理をコンピュータに実行させるものであり、本発明に係る記録媒体は、そのようなプログラムが記録されたコンピュータ読み取り可能なものである。
【発明の効果】
【００１５】
本発明に係る離散ウェーブレット変換装置及びその方法、並びにプログラム及び記録媒体によれば、ＳＩＭＤレジスタを用いることにより、水平・垂直方向の離散ウェーブレット変換の順変換処理及び逆変換処理を、データのロード、演算、演算結果のストアという単純な操作の繰り返しによって連続的に処理することが可能となり、演算量を低減することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ＪＰＥＧ２０００方式に従って画像を符号化・復号する画像符号化・復号装置及びその方法に適用したものである。以下では先ず、画像符号化・復号装置の全体構成及びその動作について説明し、次いで、この画像符号化・復号装置において本発明が適用された部分について説明する。
【００１７】
先ず、本実施の形態における画像符号化・復号装置の概略構成を図１に示す。画像符号化・復号装置１は、図１に示すように、離散ウェーブレット変換・逆変換部１０と、量子化・逆量子化部１１と、エントロピー符号化・復号部１２と、符号列生成・分解部１３とから構成されている。
【００１８】
符号化時には、入力画像信号が離散ウェーブレット変換部１０に入力される。入力画像信号は、通常、グレイスケール又はカラーのディジタル画像である。なお、符号化効率を高めるため、入力画像信号に対して色空間変換やレベルシフト等の前処理が施されている場合があるが、本明細書では説明を省略する。
【００１９】
離散ウェーブレット変換・逆変換部１０は、低域フィルタと高域フィルタとから構成されるフィルタバンクによって実現される。離散ウェーブレット変換・逆変換部１０は、入力画像信号に対してフィルタバンクを垂直・水平の２方向に用いてフィルタリングすることにより、ＬＬ、ＨＬ、ＬＨ、ＨＨの４つのサブバンドのウェーブレット係数を生成する。さらに、離散ウェーブレット変換・逆変換部１０は、最低域であるＬＬサブバンドのウェーブレット係数に対して同様のフィルタリング処理を階層的に施し、順次、次の階層のサブバンドのウェーブレット係数を生成する。３段階まで離散ウェーブレット変換を施したときのサブバンドを図２に示す。
【００２０】
ここで、ＪＰＥＧ２０００方式では、離散ウェーブレット変換・逆変換のフィルタとして、可逆・不可逆の２通りが規定されている。可逆フィルタを使用した場合、符号化・復号の過程で情報の欠落が一切なく、完全に原画像を復元できる可逆圧縮を実現することが可能となる。一方、可逆性が必要ない場合には、より圧縮効率が高く高画質が得られる不可逆フィルタが用いられる。
【００２１】
離散ウェーブレット変換・逆変換部１０は、以上のようにして生成したサブバンド毎のウェーブレット係数を量子化・逆量子化部１１に供給する。
【００２２】
量子化・逆量子化部１１は、離散ウェーブレット変換・逆変換部１０から供給されたサブバンド毎のウェーブレット係数に対して、以下の式（１）に従ってスカラ量子化処理を施し、スカラ量子化後のウェーブレット係数をエントロピー符号化・復号部１２に供給する。ここで、式（１）において、ａ［ｕ，ｖ］は座標［ｕ，ｖ］におけるウェーブレット係数、Δはサブバンド毎に決められる量子化ステップサイズ、ｓｉｇｎ（ｘ）はｘの符号、ｑ［ｕ，ｖ］はスカラ量子化後のウェーブレット係数をそれぞれ表す。なお、離散ウェーブレット変換部１０で可逆フィルタを用いている場合、スカラ量子化処理は実行されない。
【００２３】
【数１】
2007049485.tif 000003
【００２４】
エントロピー符号化・復号部１２は、量子化・逆量子化部１１から供給されたサブバンド毎のウェーブレット係数を一定のサイズの符号ブロックに分割する。ＪＰＥＧ２０００方式では、符号ブロックの縦・横サイズは２の冪乗と定められており、例えば３２×３２、６４×６４などが用いられるが、必ずしも正方形である必要はない。また、サブバンドの右端、下端では、符号ブロックのサイズが小さく制限される場合もある。サブバンド毎に分割された符号ブロックを図３に示す。
【００２５】
続いて、エントロピー符号化・復号部１２は、各符号ブロックをビットプレーンに分解する。この結果、符号付き２進数で表された各ウェーブレット係数の符号を表す符号ビットプレーンと、最上位ビットから最下位ビットに至る絶対値ビットプレーンとが生成される。ある符号ブロックを分解したビットプレーンを図４に示す。
【００２６】
続いて、エントロピー符号化・復号部１２は、生成したビットプレーンを、それぞれＳＰパス（Significance Propagation Pass）、ＭＲパス（Magnitude Refinement Pass）、ＣＵパス（Clean Up Pass）の３種類の符号化パスに分ける。ビットプレーン毎に生成された符号化パスを図５に示す。実際には、絶対値ビットプレーンのうち最上位側の全てが“０”であるビットプレーンは除外され、１つでも“１”のあるビットプレーンから下位のビットプレーンのみが符号化パスに分けられる。また、そのうち最初のビットプレーンから生成される符号化パスはＣＵパスのみとなる。
【００２７】
エントロピー符号化・復号部１２は、生成した符号化パス毎にコンテクスト・モデリングと算術符号化とを適用して算術符号列を生成し、生成した算術符号列を符号列生成・分解部１３に供給する。
【００２８】
符号列生成・分解部１３は、エントロピー符号化・復号部１２から供給された算術符号列に各種ヘッダ情報を加え、ＪＰＥＧ２０００方式で規定された書式に合致した符号列に整形した後、出力する。
【００２９】
一方、復号時には、符号列が符号列生成・分解部１３に入力される。符号列生成・分解部１３は、符号列の各種ヘッダ情報を解析して復号に必要な情報を抽出した後、算術符号列をエントロピー符号化・復号部１２に供給する。
【００３０】
エントロピー符号化・復号部１２は、符号化時と逆の手順で算術符号列をエントロピー復号してサブバンド毎のウェーブレット係数を生成し、このサブバンド毎のウェーブレット係数を量子化・逆量子化部１１に供給する。量子化・逆量子化部１１は、必要に応じて逆量子化を行い、サブバンド毎のウェーブレット係数を離散ウェーブレット変換・逆変換部１０に供給する。離散ウェーブレット変換・逆変換部１０は、サブバンド毎のウェーブレット係数に対して離散ウェーブレット逆変換を施し、復号画像信号を生成して出力する。この後、必要に応じて復号画像信号に対してレベルシフトや色空間変換等の後処理が施される場合があるが、本明細書では説明を省略する。
【００３１】
次に、上述した離散ウェーブレット変換・逆変換部１０について詳細に説明する。
【００３２】
一般に、離散ウェーブレット変換・逆変換で用いられるリフティング演算では、図６に示すように、２ｎ＋１個の入力データに対してｎ個の出力データを得る。
【００３３】
一例として、ｎ＝４の場合における、可逆フィルタを用いた離散ウェーブレット逆変換のリフティング演算の模式図を図７に示す。また、リフティング演算の式を以下の式（２）、（３）に示す。ここで、式（２）、（３）において、ｓは低域サンプル、ｄは高域サンプル、下付きの添字はサンプル番号、上付きの添字は離散ウェーブレット変換の分割レベル、ｆｌｏｏｒ（ｘ）はｘの値を超えない最大の整数値をそれぞれ表す。
【００３４】
【数２】
2007049485.tif 000004
【００３５】
これに対して、従来のＳＩＭＤ演算装置は、同じ数のデータ同士の演算機能しかないため、２ｎ＋１個の入力データに対しｎ個の出力データを得るというような演算を直接実行することはできなかった。
【００３６】
そこで、本実施の形態における離散ウェーブレット変換・逆変換部１０は、以下のようにＳＩＭＤレジスタを用いることにより、２ｎ＋１個の入力データに対しｎ個の出力データを得る演算を実行する。
【００３７】
以下、ｎ＝４の場合における可逆フィルタを用いた離散ウェーブレット逆変換について説明するが、不可逆フィルタを用いた離散ウェーブレット逆変換や、可逆フィルタ又は不可逆フィルタを用いた離散ウェーブレット変換にも適用可能であることは勿論である。
【００３８】
本実施の形態では、図８に示すように、第１，第２のメモリ上にそれぞれ低域サンプルのデータ（ｓ１０，ｓ１１，ｓ１２，・・・）と高域サンプルのデータ（ｄ１０，ｄ１１，ｄ１２，・・・）とが一直線に格納されており、これらのデータを４個並列のＳＩＭＤレジスタＲｍ，Ｒｎ，Ｒｄに４個ずつロードし、演算し、ストアしていくと想定する。水平方向の離散ウェーブレット逆変換はメモリ上の隣同士のサンプル間で演算され、垂直方向の離散ウェーブレット逆変換は別々に格納されたそれぞれのメモリ上の、水平方向に同じ位置のサンプル間で演算される。
【００３９】
この例では、以下のようなＳＩＭＤ演算が定義される。ここで、Ｒｍ，Ｒｎ，Ｒｄの後に付加された「.ｘ」、「.ｙ」、「.ｚ」及び「.ｗ」は、それぞれＳＩＭＤレジスタの第１、第２、第３及び第４要素を表す。
【００４０】
（ＳＩＭＤ演算１）
Ｒｄ.ｘ＝Ｒｄ.ｘ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｘ＋Ｒｍ.ｘ＋２))
Ｒｄ.ｙ＝Ｒｄ.ｙ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｙ＋Ｒｎ.ｘ＋２))
Ｒｄ.ｚ＝Ｒｄ.ｚ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｚ＋Ｒｎ.ｙ＋２))
Ｒｄ.ｗ＝Ｒｄ.ｗ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｗ＋Ｒｎ.ｚ＋２))
Ｒｍ.ｘ＝Ｒｎ.ｗ
（ＳＩＭＤ演算２）
Ｒｄ.ｘ＝Ｒｄ.ｘ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｘ＋Ｒｎ.ｙ))
Ｒｄ.ｙ＝Ｒｄ.ｙ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｙ＋Ｒｎ.ｚ))
Ｒｄ.ｚ＝Ｒｄ.ｚ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｚ＋Ｒｎ.ｗ))
Ｒｄ.ｗ＝Ｒｄ.ｗ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｗ＋Ｒｍ.ｗ))
Ｒｍ.ｗ＝Ｒｎ.ｘ
（ＳＩＭＤ演算３）
Ｒｄ.ｘ＝Ｒｄ.ｘ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｘ＋Ｒｍ.ｘ＋２))
Ｒｄ.ｙ＝Ｒｄ.ｙ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｙ＋Ｒｍ.ｙ＋２))
Ｒｄ.ｚ＝Ｒｄ.ｚ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｚ＋Ｒｍ.ｚ＋２))
Ｒｄ.ｗ＝Ｒｄ.ｗ−ｆｌｏｏｒ(０.２５×(Ｒｎ.ｗ＋Ｒｍ.ｗ＋２))
（ＳＩＭＤ演算４）
Ｒｄ.ｘ＝Ｒｄ.ｘ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｘ＋Ｒｍ.ｘ))
Ｒｄ.ｙ＝Ｒｄ.ｙ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｙ＋Ｒｍ.ｙ))
Ｒｄ.ｚ＝Ｒｄ.ｚ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｚ＋Ｒｍ.ｚ))
Ｒｄ.ｗ＝Ｒｄ.ｗ＋ｆｌｏｏｒ(０.５×(Ｒｎ.ｗ＋Ｒｍ.ｗ))
ここで、ＳＩＭＤ演算１は水平方向のリフティング演算の式（２）、ＳＩＭＤ演算２は、水平方向のリフティング演算の式（３）、ＳＩＭＤ演算３は垂直方向のリフティング演算の式（２）、ＳＩＭＤ演算４は垂直方向のリフティング演算の式（３）にそれぞれ対応する。
【００４１】
先ず、水平方向の離散ウェーブレット逆変換処理について説明する。
【００４２】
水平方向の離散ウェーブレット逆変換処理では、先ず、図９に示すように、第１のメモリの先頭から４個のデータをＳＩＭＤレジスタＲｄにロードすると共に、第２のメモリの先頭から４個のデータをＳＩＭＤレジスタＲｎにロードする。これらのデータは、各メモリの処理方向上、最初のデータであるため、第２のメモリの先頭のデータｄ１０については、同時にＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｘにもロードする。なお、レジスタＲｍ.ｙ，Ｒｍ.ｚ，Ｒｍ.ｗにはどのような値が入っていてもよいため、単純にＳＩＭＤレジスタＲｎにロードした４個のデータをそのままＳＩＭＤレジスタＲｍにロードしてもよい。
【００４３】
次に、図１０に示すように、ＳＩＭＤ演算１を適用し、その演算結果をＳＩＭＤレジスタＲｄにロードする。また、ＳＩＭＤレジスタＲｎの処理方向上で最後のデータ、すなわちレジスタＲｎ.ｗに格納されたデータｄ１３をＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｘにロードする。
【００４４】
続いて、図１１に示すように、ＳＩＭＤレジスタＲｄに格納された演算結果を第１のメモリにストアする。
【００４５】
続いて、図１２に示すように、第１のメモリの次の４個のデータをＳＩＭＤレジスタＲｄにロードすると共に、第２のメモリの次の４個のデータをＳＩＭＤレジスタＲｎにロードする。これらのデータは、各メモリの処理方向上、最初のデータではないため、ＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｘには何もロードされず、以前にロードされたデータｄ１３がそのまま格納された状態となっている。
【００４６】
続いて、図１３に示すように、再びＳＩＭＤ演算１を適用し、その演算結果をＳＩＭＤレジスタＲｄにロードする。また、ＳＩＭＤレジスタＲｎの処理方向上で最後のデータ、すなわちレジスタＲｎ.ｗに格納されたデータｄ１７をＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｘにロードする。
【００４７】
続いて、図１４に示すように、ＳＩＭＤレジスタＲｄに格納された演算結果を第１のメモリにストアする。
【００４８】
この図１２、図１３、図１４の処理を、データ列の最後まで繰り返し実行する。
【００４９】
続いて、図１５に示すように、第１のメモリの最後から４個のデータをＳＩＭＤレジスタＲｎにロードすると共に、第２のメモリの最後から４個のデータをＳＩＭＤレジスタＲｄにロードする。これらのデータは、各メモリの処理方向上、最初のデータであるため、第１のメモリの処理方向上で先頭のデータｓ０７については、同時にＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｗにもロードする。なお、レジスタＲｍ.ｘ，Ｒｍ.ｙ，Ｒｍ.ｚにはどのような値が入っていてもよいため、単純にＳＩＭＤレジスタＲｎにロードした４個のデータをそのままＳＩＭＤレジスタＲｍにロードしてもよい。
【００５０】
続いて、図１６に示すように、ＳＩＭＤ演算２を適用し、その演算結果をＲｄレジスタにロードする。また、ＳＩＭＤレジスタＲｎの処理方向上で最後のデータ、すなわちレジスタＲｎ.ｘに格納されたデータｓ０４をＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｗにロードする。
【００５１】
続いて、図１７に示すように、ＳＩＭＤレジスタＲｄに格納された演算結果を第２のメモリにストアする。
【００５２】
続いて、図１８に示すように、第１のメモリの次の４個のデータをＳＩＭＤレジスタＲｎにロードすると共に、第２のメモリの次の４個のデータをＳＩＭＤレジスタＲｄにロードする。これらのデータは、各メモリの処理方向上、最初のデータではないため、ＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｗには何もロードされず、以前にロードされたデータｓ０４がそのまま格納された状態となっている。
【００５３】
続いて、図１９に示すように、再びＳＩＭＤ演算２を適用し、その演算結果をＳＩＭＤレジスタＲｄにロードする。また、ＳＩＭＤレジスタＲｎの処理方向上で最後のデータ、すなわちレジスタＲｎ.ｘに格納されたデータｓ００をＳＩＭＤレジスタＲｍ内のレジスタＲｍ.ｗにロードする。
【００５４】
続いて、図２０に示すように、ＳＩＭＤレジスタＲｄに格納された演算結果を第２のメモリにストアする。
【００５５】
この図１８、図１９、図２０の処理を、データ列の最初まで繰り返し実行する。
【００５６】
以上の操作により、水平方向の離散ウェーブレット逆変換処理が実行される。
【００５７】
次に、垂直方向の離散ウェーブレット逆変換処理について説明する。
【００５８】
垂直方向の離散ウェーブレット逆変換処理では、先ず、図２１に示すように、第１のメモリ、第２のメモリ、第３のメモリ（図示せず）に格納されたデータを４個ずつＳＩＭＤレジスタＲｍ、Ｒｎ、ＲｄにロードしてＳＩＭＤ演算３を適用する。この操作を全てのデータに対して繰り返し適用する。
【００５９】
次に、図２２に示すように、データを４個ずつＳＩＭＤレジスタＲｍ、Ｒｎ、ＲｄにロードしてＳＩＭＤ演算４を適用し、演算結果を第１，第２，第３のメモリにストアする。この操作を全てのデータに対して繰り返し実行する。
【００６０】
以上の操作により、垂直方向の離散ウェーブレット逆変換処理が実行される。
【００６１】
以上説明したように、本実施の形態における離散ウェーブレット変換・逆変換部１０によれば、水平方向の離散ウェーブレット変換の順変換処理及び逆変換処理において、ＳＩＭＤレジスタＲｎの処理方向上で最後のデータをＳＩＭＤレジスタＲｍの一部に自動的にロードすることにより、横１列のデータ列を、メモリからのロード、演算、メモリへのストアという単純な操作の繰り返しによって連続的に処理することが可能となり、演算量を低減することができる。また、データ列両端の対称拡張部分でも、ＳＩＭＤレジスタＲｎにロードするデータの一部を対称拡張に適応するようにＳＩＭＤレジスタＲｍの一部にロードすることにより、対称拡張部分以外の通常の処理と同じアルゴリズムで処理することが可能となる。また、垂直方向の離散ウェーブレット変換の順変換処理及び逆変換処理においても、メモリからのロード、演算、メモリへのストアという単純な操作の繰り返しによって連続的に処理することが可能となり、演算量を低減することができる。
【００６２】
この離散ウェーブレット変換・逆変換部１０における処理は、ハードウェアによってもソフトウェアによっても実現することができる。後者の場合、そのソフトウェアを構成するプログラムをコンピュータの専用ハードウェアに予め組み込むようにしてもよく、また、各種プログラムをインストールすることで各種機能を実行することが可能な汎用のパーソナルコンピュータなどに対して、ネットワークや記録媒体を介してインストールするようにしてもよい。
【００６３】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００６４】
例えば、上述した実施の形態では、リフティング演算の演算結果をＳＩＭＤレジスタＲｄにロードするものとして説明したが、ＳＩＭＤレジスタＲｄとは異なる別のＳＩＭＤレジスタにロードするようにしても構わない。
【００６５】
また、上述した実施の形態のうち水平方向の離散ウェーブレット変換の順変換処理及び逆変換処理では、ＳＩＭＤレジスタＲｍを用いてリフティング演算を行うものとして説明したが、実際にはＳＩＭＤレジスタＲｍ内の１つのレジスタしか使用されないため、ＳＩＭＤレジスタではなく、通常のレジスタを用いるようにしても構わない。
【図面の簡単な説明】
【００６６】
【図１】本実施の形態における画像符号化・復号装置の概略構成を示す図である。
【図２】３段階まで離散ウェーブレット変換を施したときのサブバンドを示す図である。
【図３】サブバンド毎に分割された符号ブロックを示す図である。
【図４】ある符号ブロックを分解したビットプレーンを示す図である。
【図５】ビットプレーン毎に生成された符号化パスを示す図である。
【図６】リフティング演算の基本処理を説明する図である。
【図７】可逆フィルタを用いた離散ウェーブレット逆変換におけるリフティング演算を説明する模式図である。
【図８】本実施の形態におけるメモリとＳＩＭＤレジスタとを示す図である。
【図９】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１０】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１１】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１２】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１３】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１４】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１５】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１６】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１７】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１８】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図１９】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図２０】本実施の形態における水平方向の離散ウェーブレット逆変換処理を説明する図である。
【図２１】本実施の形態における垂直方向の離散ウェーブレット逆変換処理を説明する図である。
【図２２】本実施の形態における垂直方向の離散ウェーブレット逆変換処理を説明する図である。
【符号の説明】
【００６７】
１  画像符号化・復号装置、１０  離散ウェーブレット変換・逆変換部、１１  量子化・逆量子化部、１２  エントロピー符号化・復号部、１３  符号列生成・分解部
【図１】
2007049485.tif 000005
【図２】
2007049485.tif 000006
【図３】
2007049485.tif 000007
【図４】
2007049485.tif 000008
【図５】
2007049485.tif 000009
【図６】
2007049485.tif 000010
【図７】
2007049485.tif 000011
【図８】
2007049485.tif 000012
【図９】
2007049485.tif 000013
【図１０】
2007049485.tif 000014
【図１１】
2007049485.tif 000015
【図１２】
2007049485.tif 000016
【図１３】
2007049485.tif 000017
【図１４】
2007049485.tif 000018
【図１５】
2007049485.tif 000019
【図１６】
2007049485.tif 000020
【図１７】
2007049485.tif 000021
【図１８】
2007049485.tif 000022
【図１９】
2007049485.tif 000023
【図２０】
2007049485.tif 000024
【図２１】
2007049485.tif 000025
【図２２】
2007049485.tif 000026