(57)【要約】【課題】テンプレートによって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する際に、処理対象画素の画素値を予測して符号化するのに必要な１次元的に連結された参照画素データ群をより少ない演算数で得る方法を提供することを目的とする。【解決手段】原画像画素データ群が格納された第１のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第２のレジスタ群に取り出す処理と第１のレジスタ群に格納された原画像画素データ群をシフトする処理の２つの処理を行なうステップと、第２のレジスタ群に取り出された参照画素データ群に対して、それぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データを得るステップと、連結された参照画素データに基づいて、処理対象画素Ａの画素値を予測して符号化するステップとを備える。【選択図】        図１
2004165766.tif 000002
【特許請求の範囲】
【請求項１】
テンプレートによって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する方法であって、
原画像画素データ群が格納された第１のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第２のレジスタ群に取り出す処理と前記第１のレジスタ群の原画像画素データ群をシフトする処理とを行なう参照画素データ群取り出しステップと、
前記参照画素データ群取り出しステップで第２のレジスタ群に取り出された参照画素データ群に対してそれぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データ群を得る参照画素データ群連結ステップと、
前記参照画素データ群連結ステップで得られた連結された参照画素データ群を参照することによって、処理対象画素の画素値を予測して符号化する処理対象画素符号化ステップと、
を有することを特徴とする符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テンプレートの形状によって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する画像処理方法に関するものである。
【０００２】
【従来の技術】
テンプレートの形状によって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する方法を図４、図５を用いて説明する。
【０００３】
図４は画像情報を符号化する際に使用するテンプレートの形状の例を示している。図５は第１のレジスタ群に読み込まれる原画像画素データ群から、１次元的に連結された参照画素データ群を得る様子を示している。
【０００４】
テンプレートを用いて処理対象画素Ａの画素値を予測して符号化するときには、周辺に位置する原画像画素データ群（図４の網掛け部分）を参照する。これらの参照画素データ群は通常メモリ上に格納されているので、参照画素データ群をレジスタへ読み込んで格納する必要がある。
【０００５】
図４に示したテンプレートは３行にまたがっているので、図５（ａ）のように第１のレジスタ群として３個のレジスタ１、２、３を用意し、これらのレジスタへ原画像画素データ群を格納する。レジスタ１にはｍ−２行目の原画像画素データ群を、レジスタ２にはｍ−１行目の原画像画素データ群を、レジスタ３には処理対象画素Ａと同一の行ｍ（以下、処理対象行）の原画像画素データ群をそれぞれ読み込んで格納する。
【０００６】
メモリからレジスタへのデータの読み込みは通常バイト単位で行なわれるので、参照画素データ群以外の不要な原画像画素データ群も同時に読み込んでしまうことがある。そこで、図５（ｂ）のように第１のレジスタ群と同数の第２のレジスタ群としてレジスタ４、５、６を用意し、第１のレジスタ群から読み込んだ参照画素データ群にマスクをかけて第２のレジスタ群に参照画素データ群だけを取り出す。すなわち、レジスタ１から読み込んだ原画像画素データ群にマスクをかけて、レジスタ４にテンプレートの１行目の参照画素データ群を得る。また、レジスタ２から読み込んだ原画像画素データ群にマスクをかけて、レジスタ５にテンプレートの２行目の参照画素データ群を得る。同様に、レジスタ３から読み込んだ原画像画素データ群にマスクをかけて、レジスタ６にテンプレートの３行目の参照画素データ群を得る。
【０００７】
必要な全ての参照画素データ群は３個のレジスタ４、５、６に分割して格納されるが、このままでは処理対象画素Ａの画素値を予測して符号化する処理が複雑になる。そこで、図５（ｃ）のように参照画素データ群を１次元的に連結して参照画素データ群を一つのレジスタ７にまとめる。
【０００８】
次に、前記連結された参照画素データ群を参照することによって処理対象画素Ａの画素値を予測して符号化をする。
【０００９】
処理対象画素Ａの処理が終わると、新たな処理対象画素であるＡの右隣の画素の画素値を予測して符号化する準備としてテンプレートを右方向に１画素分移動させる。
【００１０】
従来の手法によって、第２のレジスタ群４、５、６に取り出された参照画素データ群から１次元的に連結された参照画素データ群をレジスタ７に得る様子を図６に２つ示す。
【００１１】
図６（ａ）に示す例では、レジスタ４では左に２ビットシフト、レジスタ５では右に４ビットシフト、レジスタ６では右に１２ビットシフトして、シフトされたそれぞれの参照画素データ群を連結することによって、レジスタ７に１次元的に連結された参照画素データ群を得る。
【００１２】
一方、図６（ｂ）に示す例では、レジスタ４では左に９ビットシフト、レジスタ５は左に３ビットシフト、レジスタ６では右に５ビットシフトして、シフトされたそれぞれの参照画素データを連結することによって、レジスタ７に１次元的に連結された参照画素データ群を得る。
【００１３】
このように第２のレジスタ群における処理対象画素Ａの相対位置が変わると、例えばレジスタ５のようにシフトする方向とシフトするビット数を変えなければ（図６（ａ）では右に４ビットシフト、図６（ｂ）では左に３ビットシフト）、レジスタ７に１次元的に連結された参照画素データ群を得ることができない。実際には第２のレジスタ群における処理対象画素Ａの相対位置によって８通りのシフト形態が考えられる。
【００１４】
【発明が解決しようとする課題】
上記のように、従来手法では第２のレジスタ群における処理対象画素Ａの相対位置によって、第２のレジスタ群に取り出される参照画素データ群に対して適用するシフト形態を変えなければならないため、１次元的に連結された参照画素データ群を得るための演算数が多くなってしまう。
【００１５】
本発明は、係る問題点を解決するためになされたもので、処理対象画素の画素値を予測して符号化するのに必要な連結された参照画素データ群を、より少ない演算数で得る方法を提供するものである。
【００１６】
【課題を解決するための手段】
係る課題を解決するために、本発明の画像処理方法は、
原画像画素データ群が格納された第１のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第２のレジスタ群に取り出す処理と前記第１のレジスタ群の原画像画素データ群をシフトする処理とを行なう参照画素データ群取り出しステップと、
前記参照画素データ群取り出しステップで第２のレジスタ群に取り出された参照画素データ群に対してそれぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データ群を得る参照画素データ群連結ステップと、
前記参照画素データ群連結ステップで得られた連結された参照画素データ群を参照することによって、処理対象画素の画素値を予測して符号化する処理対象画素符号化ステップとを備える。
【００１７】
（作用）
符号化の準備としてテンプレートを右方向に１画素分移動させていたかわりに、第１のレジスタ群に格納されている画素データ群を左に１ビットシフトすることで、第２のレジスタ群における処理対象画素Ａの相対位置が変わらないようにできる。そのため、第２のレジスタ群の常に同じ位置にマスクをかけて参照画素データ群を得ることができる。また、第２のレジスタ群に取り出された参照画素データ群に対して適用するシフト形態を変える必要がなく、処理対象画素を予測して符号化するのに必要な１次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【００１８】
【発明の実施の形態】
以下、本発明に係る実施形態を詳細に説明する。
【００１９】
（実施例１）
ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）プロセッサを用いて画像情報を符号化する場合について図１、図２、図４を用いて説明する。
【００２０】
図１は本実施例での処理の流れを示している。図２は図１に従って画像情報を符号化するときの様子を示している。また、従来例の説明と同様に図４に示したテンプレートを使用して本実施例の説明をする。
【００２１】
符号化の準備として第１のレジスタ群としてレジスタ１、２、３を、第２のレジスタ群としてレジスタ４、５、６を、１次元的に連結された参照画素データ群を格納するためのレジスタ７を用意する。レジスタ１はｍ−２行目の原画像画素データを格納するために、レジスタ２はｍ−１行目の原画像画素データを格納するために、レジスタ３は処理対象行ｍの原画像画素データを格納するために使用する。
【００２２】
ステップＳ１０１でメモリから原画像画素データ群を第１のレジスタ群に読み込むか否かを判定する。ステップＳ１０１で読み込むと判定された場合にはステップＳ１０２へ進み、読み込まないと判定された場合にはステップＳ１０３へ進む。
【００２３】
ステップＳ１０２では、原画像画素データ群をメモリから第１のレジスタ群に読み込む。レジスタ１にはｍ−２行目の原画像画素データ群を、レジスタ２にはｍ−１行目の原画像画素データ群を読み込む。レジスタ３にはｍ行目の原画像画素データを読み込む。第１のレジスタ群に原画像画素データ群を読み込む前の様子を示したものが図２（ａ）で、読み込んだ後の様子を示したものが図２（ｂ）である。原画像画素データ群の読み込みが終わるとステップＳ１０３へ進む。
【００２４】
ステップＳ１０３では、処理対象画素Ａの画素値を予測して符号化するのに必要な参照画素データ群を第２のレジスタ群に取り出す。レジスタ１から読み込んだ原画像画素データ群にマスクをかけて、レジスタ４にテンプレートの１行目の参照画素データ群を得る。また、レジスタ２から読み込んだ原画像画素データ群にマスクをかけて、レジスタ５にテンプレートの２行目の参照画素データ群を得る。同様に、レジスタ３から読み込んだ原画像画素データ群にマスクをかけて、レジスタ６にテンプレートの３行目の参照画素データ群を得る。第２のレジスタ群に参照画素データ群が取り出された様子を示したものが図２（ｃ）である。
【００２５】
新たな処理対象画素であるＡの右隣の画素の画素値を予測して符号化する準備として、第１のレジスタ群に格納している原画像画素データ群を１ビット左にシフトする。従来の手法ではテンプレートを右方向に１画素分移動させていたため、第２のレジスタ群における処理対象画素の相対位置が変わっていたが、本発明では第２のレジスタ群における処理対象画素の相対位置は変わらない。シフトされた後の第１のレジスタ群の様子を示したのが図２（ｄ）である。ステップＳ１０３での２つの処理が終わるとステップＳ１０４へ進む。
【００２６】
ステップＳ１０４では、ステップＳ１０３で第２のレジスタ群に取り出された参照画素データ群に所定のシフト操作を行なう。図２（ｃ）では、レジスタ４は右に２ビットシフト、レジスタ５は右に８ビットシフト、レジスタ３は右に１６ビットシフトする。従来手法のように第２のレジスタ群における処理対象画素Ａの相対位置が変わることはないので、適用するシフト形態を変える必要がない。シフトされた後の第２のレジスタ群の様子を示したのが図２（ｅ）である。
【００２７】
また、ステップＳ１０４ではシフトされた参照画素データ群を論理和をとることで連結して、１次元的に連結された参照画素データ群を得る。この様子を示したのが図２（ｆ）である。ステップＳ１０４での２つの処理が終わるとステップＳ１０５へ進む。
ステップＳ１０５では、ステップＳ１０４で得られた１次元的に連結された参照画素データ群を参照することによって処理対象画素Ａの画素値を予測して符号化し、ステップＳ１０６に進む。
【００２８】
ステップＳ１０６では、１行分の画素を全て復号したか否かを判定する。全て処理していなければ、ステップＳ１０１へ戻り、上記の処理を繰り返す。
【００２９】
上記のように、実施例では第２のレジスタ群における処理対象画素Ａの相対位置が変わらないため、第２のレジスタ群に取り出される参照画素データ群に対して適用するシフト形態をかえる必要がなく、１次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【００３０】
なお、レジスタ７を別に用意せずにレジスタ４、５、６のいずれかを代わりに使用してもよい。
【００３１】
また、ステップＳ１０３において、先に第１のレジスタ群に格納している原画像画素データ群をシフトしておいてから、処理対象画素の画素値を予測して符号化するのに必要な参照画素データ群を第２のレジスタ群に取り出してもよい。この場合、ステップＳ１０４で参照画素データ群のシフト数が上記の場合と異なる。
【００３２】
（実施例２）
ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  ｓｔｒｅａｍｓ）演算を持つプロセッサを用いて画像情報を復号する場合について、図１、図３、図４を用いて説明する。
【００３３】
図１は本実施例での処理の流れを示している。図３は図１に従って画像情報を符号化するときの様子を示している。また、説明には図４に示したテンプレートを使用する。
【００３４】
実施例２では、テンプレートの形状とプロセッサに実装されている命令によって、使用するレジスタの数が適応的に変化する。例えば、図４に示したテンプレートを用い、プロセッサは６４ビットレジスタを持ち、３２ビット単位でシフト演算を適用できる場合には、図３のように第１のレジスタ群としてレジスタ１、２を、第２のレジスタ群としてレジスタ３、４を用意する。
【００３５】
レジスタ１はｍ−２行目とｍ−１行目の原画像画素データ群を、レジスタ２は処理対象行ｍの原画像画素データ群を格納するために使用する。実施例２の処理の流れは実施例１と同じであるため、異なる部分についてのみ説明する。
【００３６】
ステップＳ１０３では、レジスタ１から読み込んだ原画像画素データ群にマスクをかけて、レジスタ３にテンプレートの１行目と２行目の参照画素データ群を得る。同様に、レジスタ２から読み込んだ原画像画素データ群にマスクをかけて、レジスタ４にテンプレートの３行目の参照画素データ群を得る。レジスタ１にはｍ−２行目とｍ−１行目の原画像画素データ群が格納されているため、実施例１の場合よりも少ない演算数で参照画素データ群への取り出しができる。第２のレジスタ群に参照画素データ群を取り出した様子を図３（ｂ）に示す。
【００３７】
また、新たな処理対象画素であるＡの右隣の画素の画素値を予測して符号化する準備として、第１のレジスタ群に格納している原画像画素データ群を１ビット左にシフトするが、レジスタ１にはｍ−２行目とｍ−１行目の原画像画素データ群が格納されており、３２ビット単位でシフトすることができるため、実施例１の場合よりも少ない演算数で復号済み画素データ群をシフトすることができる。第１のレジスタ群に格納されている復号済み画素データ群をシフトした様子を図３（ｃ）に示す。
【００３８】
上記のように、ＳＩＭＤ演算を持つプロセッサを用いた場合には、実施例１で説明したＲＩＳＣプロセッサを用いた場合よりもさらに演算数を減らすことができる。
【００３９】
（実施例３）
特別な命令を持つプロセッサを用いて画像情報を符号化する場合について図１、図２を用いて説明する。
【００４０】
図１は本実施例での処理の流れを示している。図２は図１に従って画像情報を符号化するときの様子を示している。
実施例３の処理の流れは実施例１と同じであるため、異なる部分についてのみ説明する。
【００４１】
例えば、特別な命令として、レジスタの所定の位置にあるデータ群を他のレジスタに取り出し、元のレジスタのデータ群を指定した数だけシフトするような命令があるとする。この場合、ステップＳ１０３において、図２（ｂ）のレジスタ１に格納されている原画像画素データ群から、図２（ｃ）のレジスタ４のように参照画素データ群を取り出す処理と、図２（ｄ）のレジスタ１のように格納されている原画像画素データ群をシフトする処理が、１つの命令でできるため演算数を減らすことができる。
【００４２】
また、レジスタに格納されているデータを指定した数だけシフトした後、他のレジスタとの論理和をとるような命令があるとする。この場合、ステップＳ１０４において、図２（ｃ）の第２のレジスタ群に格納されている参照画素データ群から、図２（ｆ）のレジスタ７に１次元的に連結された参照画素データ群を得るときの演算数を減らすことができる。
【００４３】
このように特別な命令を持つプロセッサを用いた場合にも、実施例１よりもさらに少ない演算数で１次元的に連結された参照画素データ群を得ることができる。
【００４４】
【発明の効果】
以上説明したように本発明によれば、符号化の準備としてテンプレートを右方向に１画素分移動させていたかわりに、第１のレジスタ群に格納されている画素データ群を左に１ビットシフトすることで、第２のレジスタ群における処理対象画素Ａの相対位置が変わらないようにできる。そのため、第２のレジスタ群の常に同じ位置にマスクをかけて参照画素データ群を得ることができる。また、第２のレジスタ群に取り出された参照画素データ群に対して適用するシフト形態を変える必要がなく、処理対象画素の復号に必要な１次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【００４５】
実施例の説明では、図４に示したテンプレートを用いているが、これに限定されるわけではない。
【図面の簡単な説明】
【図１】テンプレートを用いた符号化方法の処理の流れを示す図。
【図２】本発明で連結された参照画素データ群を得る様子を示す図（ＲＩＳＣプロセッサ）。
【図３】発明で参照画素データ群を取り出す様子と原画像画素データ群をシフトする様子を示す図（ＳＩＭＤ演算を持つプロセッサ）。
【図４】画像情報の符号化に用いられるテンプレートの例を示す図。
【図５】連結された参照画素データ群を得る様子を示す図。
【図６】従来手法で連結された参照画素データ群を得る様子を示す図。
【図１】
2004165766.tif 000003
【図２】
2004165766.tif 000004
【図３】
2004165766.tif 000005
【図４】
2004165766.tif 000006
【図５】
2004165766.tif 000007
【図６】
2004165766.tif 000008