(57)【要約】【課題】  従来の符号化方式や現在標準化活動中のＨＥＶＣ符号化方式においては、全てのブロックサイズに対応する量子化マトリクスのデフォルトをメモリ等に記録しておく必要があった。特に、大きなブロックサイズの量子化マトリクスの要素の数が多く、大きなメモリ容量が必要であった。【解決手段】  一部の量子化マトリクスのデフォルトのみを記録しておき、それ以外の量子化マトリクスのデフォルトを量子化マトリクスの変倍によって生成する。【選択図】  図１
2013146038.tif 000002
【特許請求の範囲】
【請求項１】
複数のサイズの量子化マトリクスを用いて量子化係数を逆量子化し、係数を算出する画像逆量子化装置であって、
ｎ×ｍ（ｎ、ｍは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを第１デフォルト量子化マトリクスとして保持する第１デフォルト量子化マトリクス保持手段と、
前記ｎ×ｍのブロックサイズの量子化マトリクスからｐ×ｑ（ｐ、ｑは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを算出する変倍手段と、
前記変倍手段によって変倍された量子化マトリクスを第２デフォルト量子化マトリクスとして保持する第２デフォルト量子化マトリクス保持手段とを有することを特徴とする画像逆量子化装置。
【請求項２】
前記変倍手段において、ｎ≦ｐ、ｍ≦ｑとなることを特徴とする請求項１に記載の画像逆量子化装置。
【請求項３】
前記変倍手段において、ｎ≧ｐ、ｍ≧ｑとなることを特徴とする請求項１に記載の画像逆量子化装置。
【請求項４】
前記変倍手段において、線形補間によって量子化マトリクスを変倍することを特徴とする請求項１乃至３に記載の画像逆量子化装置。
【請求項５】
前記変倍手段において、要素の繰り返しによって量子化マトリクスを変倍することを特徴とする請求項１乃至３に記載の画像逆量子化装置。
【請求項６】
前記変倍手段において、線形補間によって要素を変倍し、特定の要素については別途値を設定することを特徴とする請求項５に記載の画像逆量子化装置。
【請求項７】
前記画像逆量子化装置において、さらにｎ×ｍ（ｎ、ｍは２以上の正の整数）のブロックサイズに適合する量子化マトリクスの符号データを入力する量子化マトリクス符号データ入力手段と、前記符号データを復号して第１量子化マトリクスデータを生成する復号手段とをさらに備え、第１量子化マトリクスデータから前記変倍手段によってｐ×ｑのブロックサイズに適合する第２量子化マトリクスデータを生成し、前記第２デフォルト量子化マトリクス保持手段で保持することを特徴とする請求項１乃至請求項６に記載の画像逆量子化装置。
【請求項８】
複数のサイズの量子化マトリクスを用いて係数を量子化する画像量子化装置であって、
ｎ×ｍ（ｎ、ｍは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを第１デフォルト量子化マトリクスとして保持する第１デフォルト量子化マトリクス保持手段と、
ｎ×ｍブロックサイズの量子化マトリクスからｐ×ｑ（ｐ、ｑは２以上の正の整数でｎ≦ｐ、ｍ≦ｑ）のブロックサイズに適合する量子化マトリクスを算出する変倍手段と、
前記変倍手段によって変倍された量子化マトリクスを第２デフォルト量子化マトリクスとして保持する第２デフォルト量子化マトリクス保持手段とを有することを特徴とする画像量子化装置。
【請求項９】
複数のサイズの量子化マトリクスを用いて量子化係数を逆量子化して係数を算出する画像逆量子化装置における画像逆量子化方法であって、
ｎ×ｍ（ｎ、ｍは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを第１デフォルト量子化マトリクスとして第１デフォルト量子化マトリクス保持手段に保持する第１デフォルト量子化マトリクス記憶工程と、
ｎ×ｍブロックサイズの量子化マトリクスからｐ×ｑ（ｐ、ｑは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを算出する変倍工程と、
前記変倍工程によって変倍された量子化マトリクスを第２デフォルト量子化マトリクスとして第２デフォルト量子化マトリクス保持手段に保持する第２デフォルト量子化マトリクス保持工程とを有することを特徴とする画像逆量子化方法。
【請求項１０】
複数のサイズの量子化マトリクスを用いて係数を量子化する画像量子化装置における画像量子化方法であって、
ｎ×ｍ（ｎ、ｍは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを第１デフォルト量子化マトリクスとして第１デフォルト量子化マトリクス保持手段に保持する第１デフォルト量子化マトリクス記憶工程と、
ｎ×ｍブロックサイズの量子化マトリクスからｐ×ｑ（ｐ、ｑは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを算出する変倍工程と、
前記変倍工程によって変倍された量子化マトリクスを第２デフォルト量子化マトリクスとして第２デフォルト量子化マトリクス保持手段に保持する第２デフォルト量子化マトリクス保持工程とを有することを特徴とする画像量子化方法。
【請求項１１】
コンピュータが読み出して実行することにより、前記コンピュータを、請求項１に記載の画像逆量子化装置として機能させることを特徴とするプログラム。
【請求項１２】
コンピュータが読み出して実行することにより、前記コンピュータを、請求項８に記載の画像量子化装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像量子化装置、画像量子化方法及びプログラム、画像逆量子化装置、画像逆量子化方法及びプログラムに関し、特に量子化マトリクスの設定方法に関する。
【背景技術】
【０００２】
動画像の圧縮記録方法として、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（以下Ｈ．２６４）が知られている。（非特許文献１）
Ｈ．２６４においてはデフォルトの量子化マトリクスを用いて入力値を量子化することができる。非特許文献１によれば、ｓｅｑ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］が０であればＴａｂｌｅ７−２に記載の通り各ブロックサイズのデフォルトの量子化マトリクスを使用する。また、ｓｅｑ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］に１を設定することで、デフォルトの量子化マトリクスと異なる量子化マトリクスを符号化・伝送することができる。この場合、Ｈ．２６４ではブロックサイズの大きさ毎にｄｅｌｔａ＿ｓｃａｌｅを量子化マトリクスの要素分送ることで異なる量子化マトリクスによる量子化・逆量子化を実現できる。
【０００３】
近年、Ｈ．２６４の後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始された。ＪＣＴ−ＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）がＩＳＯ／ＩＥＣとＩＴＵ−Ｔの間で設立され、ＪＣＴ−ＶＣではＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）符号化方式（以下、ＨＥＶＣ）として標準化が進められている。ＨＥＶＣでは、対象となる画面サイズの増大に伴い、従来のマクロブロック（１６×１６画素）より大きなブロックサイズでの分割が検討されている。この大きなサイズの基本ブロックはＬＣＵ（Ｌａｒｇｅｓｔ  Ｃｏｄｉｎｇ  Ｕｎｉｔ）と呼ばれ、そのサイズは最大６４×６４画素として検討が進められている。（非特許文献２）
【０００４】
ＬＣＵはさらに予測や変換を行う単位となるサブブロックに分割される。但し、サブブロックでも例えば、３２×３２画素等の大きなブロックサイズの場合、その個数は１０２４個にもなり、符号化効率を低下させる要因となっている。これに対して、小さなブロックサイズの量子化マトリックスを符号化して、復号側で拡大して使用するといった技術がＪＣＴ−ＶＣに提案されている。（非特許文献３）
【０００５】
図１４に当該提案の構成のブロック図を示す。デフォルト値として４×４画素ブロックに対応する量子化マトリクスのデフォルト値を格納する４×４量子化マトリクスメモリ１４０１、８×８画素ブロックに対応する量子化マトリクスのデフォルト値を格納する８×８量子化マトリクスメモリ１４０２を備える。これに加えて、１６×１６画素ブロックに対応する量子化マトリクスのデフォルト値を格納する１６×１６量子化マトリクスメモリ１４２０を備える。さらに、３２×３２画素ブロックに対応する量子化マトリクスのデフォルト値を格納する３２×３２量子化マトリクスメモリ１４２１を備える。これらは４×４量子化マトリクス保持部１４０５、８×８量子化マトリクス保持部１４０６、１６×１６量子化マトリクス保持部１４０７、３２×３２量子化マトリクス保持部１４０８に入力される。また、各ブロックサイズの量子化係数が端子１４１０から入力され、ブロックのサイズが端子１４０９から入力される。入力されたブロック単位の量子化係数はこれら量子化マトリクス保持部に格納された量子化マトリクスを用いて、４×４逆量子化部１４１３、８×８逆量子化部１４１４、１６×１６逆量子化部１４１５、３２×３２逆量子化部１４１６で逆量子化される。量子化マトリクスを更新する場合は、端子１４２２から量子化マトリクスの符号データが入力され、量子化マトリクス復号部１４２３で復号される。
【０００６】
更新する量子化マトリクスが４×４画素ブロック対応の量子化マトリクス、もしくは８×８画素ブロック対応の量子化マトリクスであれば、復号結果はそのまま各量子化マトリクス保持部に入力される。更新される量子化マトリクスが１６×１６画素ブロックまたは３２×３２画素ブロックに対応するものであった場合について説明する。８×８画素ブロックに対応する量子化マトリクスを量子化マトリクス変倍部１４０３で縦横２倍拡大を行い、１６×１６画素ブロックに対応する量子化マトリクス生成する。さらにこの１６×１６画素ブロックに対応する量子化マトリクスを量子化マトリクス変倍部１４０４で縦横２倍拡大を行い、３２×３２画素ブロックに対応する量子化マトリクスを生成する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６４  （０３／２０１０）  Ａｄｖａｎｃｅｄｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【非特許文献２】ＪＣＴ−ＶＣ  寄書  ＪＣＴＶＣ−Ｅ６０３．ｄｏｃ  インターネット＜  ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／５＿Ｇｅｎｅｖａ／ｗｇ１１／  ＞
【非特許文献３】ＪＣＴ−ＶＣ  寄書  ＪＣＴＶＣ−Ｇ０９４．ｄｏｃ  インターネット＜  ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／７＿Ｇｅｎｅｖａ／ｗｇ１１／  ＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
大きなブロックサイズの量子化マトリクスにおいて、デフォルト値として当該サイズの数の要素に対応する量子化マトリクスを符号化側、復号側で持つ必要があり、メモリ領域でも大きな容量を必要となる。このメモリ容量を削減することを目的としている。
【課題を解決するための手段】
【０００９】
上述の問題点を解決するため、本発明の画像逆量子化装置は以下の構成を有する。すなわち、複数のサイズの量子化マトリクスを用いて量子化係数を逆量子化し、係数を算出する画像逆量子化装置であって、ｎ×ｍ（ｎ、ｍは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを第１デフォルト量子化マトリクスとして保持する第１デフォルト量子化マトリクス保持手段と、前記ｎ×ｍのブロックサイズの量子化マトリクスからｐ×ｑ（ｐ、ｑは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを算出する変倍手段と、前記変倍手段によって変倍された量子化マトリクスを第２デフォルト量子化マトリクスとして保持する第２デフォルト量子化マトリクス保持手段とを有することを特徴とする。
【００１０】
さらに、上述の問題点を解決するため、本発明の画像量子化装置は以下の構成を有する。すなわち、複数のサイズの量子化マトリクスを用いて係数を量子化する画像量子化装置であって、ｎ×ｍ（ｎ、ｍは２以上の正の整数）のブロックサイズに適合する量子化マトリクスを第１デフォルト量子化マトリクスとして保持する第１デフォルト量子化マトリクス保持手段と、ｎ×ｍブロックサイズの量子化マトリクスからｐ×ｑ（ｐ、ｑは２以上の正の整数でｎ≦ｐ、ｍ≦ｑ）のブロックサイズに適合する量子化マトリクスを算出する変倍手段と、前記変倍手段によって変倍された量子化マトリクスを第２デフォルト量子化マトリクスとして保持する第２デフォルト量子化マトリクス保持手段とを有することを特徴とする。
【発明の効果】
【００１１】
デフォルト値として保持する量子化マトリクスとして所望の量子化マトリクスの数より少ない量子化マトリクスのみを保持する。量子化マトリクスの更新の際に用いる変倍手段を持って拡大または縮小を行い、デフォルト値として用意しなければならない量子化マトリクスを格納するメモリ容量が削減される。
【図面の簡単な説明】
【００１２】
【図１】実施形態１における画像逆量子化装置の構成を示すブロック図
【図２】実施形態１に係る画像逆量子化装置における画像逆量子化処理を示すフローチャート
【図３】（ａ）、（ｂ）、（ｃ）  量子化マトリクスの一例を示す図
【図４】実施形態１における別な画像逆量子化装置の構成を示すブロック図
【図５】実施形態１における別な画像逆量子化装置の構成を示すブロック図
【図６】（ａ）〜（ｃ）  量子化マトリクスの一例を示す図
【図７】実施形態１における別な画像逆量子化装置の構成を示すブロック図
【図８】量子化マトリクスの一例を示す図
【図９】実施形態２における画像量子化装置の構成を示すブロック図
【図１０】実施形態２に係る画像量子化装置における画像量子化処理を示すフローチャート
【図１１】実施形態２における別な画像量子化装置の構成を示すブロック図
【図１２】画像符号化装置の一例を示すブロック図
【図１３】画像復号装置の一例を示すブロック図
【図１４】従来の画像逆量子化装置の構成を示すブロック図
【図１５】本発明の画像符号化装置、復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図
【図１６】（ａ）〜（ｃ）  量子化マトリクスの一例を示す図
【図１７】実施形態３における画像逆量子化装置の構成を示すブロック図
【図１８】実施形態３における画像量子化装置の構成を示すブロック図
【発明を実施するための形態】
【００１３】
以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１４】
＜実施形態１＞
以下、本発明の実施形態を、図面を用いて説明する。
【００１５】
図１２は本発明を用いた画像復号装置の一例を示すブロック図である。端子１２０１から入力された画像を符号化して得られたビットストリームを入力する。復号部１２０２でそのヘッダデータ、量子化マトリクスに関する情報、及びブロック単位の予測方法、予測誤差の量子化結果を復号する。量子化マトリクスに関する情報としてはその更新の有無を表すｓｅｑ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］と更新される場合にはその符号化データを逆量子化部１２０３に出力する。また、処理を行うブロックのサイズについてもブロックサイズ情報として逆量子化部１２０３に入力する。逆量子化部１２０３ではデフォルトの量子化マトリクスまたは更新された量子化マトリクスで予測誤差の量子化結果を逆量子化し、直交変換係数を生成する。逆変換部１２０４ではこの直交変換係数に逆変換を行い、予測誤差を生成する。予測部１２０５は予測の方法や動きベクトルなどの情報から予測値を生成し、予測誤差を用いて画像データを再生する。再生された画像データはフレームメモリ１２０６に蓄積され、端子１２０７から外部に出力される。
【００１６】
図１３は本発明を用いた画像符号化装置の一例を示すブロック図である。端子１３０１から入力された画像データを入力し、フレームメモリ１３０２に格納される。予測部１３０３でフレーム内予測やフレームメモリ１３２０に格納された画像データから動き補償予測を行い、ブロック単位での予測方法、およびその予測に基づいて予測誤差を生成する。予測誤差は変換部１３０４に入力される。変換部１３０４は予測誤差に対して直交変換を行い、直交変換係数を生成する。量子化部１３０５はデフォルトの量子化マトリクスまたは更新された量子化マトリクスによって直交変換を量子化する。量子化マトリクスを更新する場合は、更新の有無を表すｓｅｑ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］と更新される場合にはその情報を符号化部１３０６及び逆量子化部１３０８に出力する。符号化部１３０６はそのヘッダデータ、量子化マトリクスに関する情報、及びブロック単位の予測方法、予測誤差の量子化結果を符号化する。逆量子化部１３０８ではデフォルトの量子化マトリクスまたは更新された量子化マトリクスで予測誤差の量子化結果を逆量子化し、直交変換係数を生成する。逆変換・予測部１３０９ではこの直交変換係数に逆変換を行い、予測誤差を生成し、予測方法によってフレームメモリ１３２０を参照して予測値を求め、画像を再構成する。予測部１３０３は予測の方法や動きベクトルなどの情報から予測値を生成し、予測誤差を用いて画像データを再生する。符号化して得られたビットストリームは端子１３０７から外部に出力される。
【００１７】
図１は図１２の逆量子化部１２０３を構成する本実施例の画像逆量子化装置を示すブロック図である。
【００１８】
なお、本実施例においては説明を容易にするために、用いるブロックサイズを４×４、８×８、１６×１６、３２×３２とするが、これに限定されない。
【００１９】
図１において、１０１は４×４画素ブロックに対応する量子化マトリクスのデフォルト値を格納する４×４量子化マトリクスメモリである。１０２は８×８画素ブロックに対応する量子化マトリクスのデフォルト値を格納する８×８量子化マトリクスメモリである。１０３は８×８画素ブロックに対応する量子化マトリクスを拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。１０４は１６×１６画素ブロックに対応する量子化マトリクスを拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。１０５は４×４画素ブロックに対応する量子化マトリクスを保持する４×４量子化マトリクス保持部である。１０６は８×８画素ブロックに対応する量子化マトリクスを保持する８×８量子化マトリクス保持部である。１０７は１６×１６画素ブロックに対応する量子化マトリクスを保持する１６×１６量子化マトリクス保持部である。１０８は３２×３２画素ブロックに対応する量子化マトリクスを保持する３２×３２量子化マトリクス保持部である。
【００２０】
１０９は端子であり、図１２の復号部１２０２に接続され、入力された画像データのブロックサイズを示すブロックサイズ情報を入力する。１１０は端子であり、図１２の復号部１２０２に接続され、ブロックサイズ単位で量子化係数を入力する。１１１はバッファであり、処理を行うブロックサイズの量子化係数を保持する。１１２はセレクタであり、前記ブロックサイズ情報に従って出力先を選択する。１１３は４×４画素ブロックの量子化係数を逆量子化する４×４逆量子化部である。１１４は８×８画素ブロックの量子化係数を逆量子化する８×８逆量子化部である。１１５は１６×１６画素ブロックの量子化係数を逆量子化する１６×１６逆量子化部である。１１６は３２×３２画素ブロックの量子化係数を逆量子化する３２×３２逆量子化部である。１１７はセレクタであり、前記ブロックサイズ情報に従って入力先を選択する。１１８はバッファであり、逆量子化して得られた直交変換係数を保持しておく。１１９は端子であり、図１２の逆変換部１２０４に接続され、直交変換係数を出力する。１２０は端子であり、量子化マトリクスの更新に関する符号データを入力する。１２１は量子化マトリクス復号部であり、量子化マトリクスの更新の符号データを復号する。これらの符号データから更新の有無と更新される量子化マトリクスのサイズ、それと更新する量子化マトリクスの要素データを生成する。１２２はセレクタであり、量子化マトリクス復号部１２１から入力された量子化マトリクスを更新するブロックサイズによって出力先を変更する。
【００２１】
上記画像逆量子化装置における量子化係数の逆量子化動作を以下に説明する。本実施形態では直交変換係数の量子化結果を入力する構成となっているが、これに限定されない。また、説明のため、ブロック単位での入力になっているが、これも限定されない。
【００２２】
復号に先立ち、４×４量子化マトリクスメモリ１０１から４×４画素ブロックに対応する量子化マトリクスの各要素を４×４量子化マトリクス保持部１０５に入力する。また、同時に８×８量子化マトリクスメモリ１０２から８×８画素ブロックに対応する量子化マトリクスの各要素を８×８量子化マトリクス保持部１０６に入力する。また、８×８画素ブロックに対応する量子化マトリクスの各要素は量子化マトリクス変倍部１０３に入力される。量子化マトリクス変倍部１０３は８×８画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成し、１６×１６量子化マトリクス保持部１０７と量子化マトリクス変倍部１０４に入力する。１６×１６量子化マトリクス保持部１０７は入力された１６×１６画素ブロックに対応する量子化マトリクスを保持しておく。量子化マトリクス変倍部１０４は１６×１６画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成し、３２×３２量子化マトリクス保持部１０８に入力する。３２×３２量子化マトリクス保持部１０８は入力された３２×３２画素ブロックに対応する量子化マトリクスを保持しておく。
【００２３】
１ブロック分の量子化結果が端子１１０から入力され、バッファ１１１に入力される。また、入力された量子化結果のブロックサイズ情報が端子１０９から入力され、セレクタ１１２、１１７に入力される。
【００２４】
ブロックサイズ情報が４×４画素ブロックを表す場合、４×４画素ブロックに対応する量子化結果が端子１１０からバッファ１１１に入力され、保持される。セレクタ１１２はブロックサイズ情報が４×４画素であることから出力先を４×４逆量子化部１１３とする。４×４逆量子化部１１３は４×４画素ブロックに対応する量子化結果に対して、４×４量子化マトリクス保持部１０５に保持された４×４画素ブロックに対応する量子化マトリクスを用いて逆量子化し、４×４の直交変換係数を生成する。４×４の直交変換係数はセレクタ１１７を介してバッファ１１８に出力される。
【００２５】
ブロックサイズ情報が８×８画素ブロックを表す場合、８×８画素ブロックに対応する量子化結果が端子１１０からバッファ１１１に入力され、保持される。セレクタ１１２はブロックサイズ情報が８×８画素であることから出力先を８×８逆量子化部１１４とする。８×８逆量子化部１１４は８×８画素ブロックに対応する量子化結果に対して、８×８量子化マトリクス保持部１０６に保持された８×８画素ブロックに対応する量子化マトリクスを用いて逆量子化し、８×８の直交変換係数を生成する。８×８の直交変換係数はセレクタ１１７を介してバッファ１１８に出力される。
【００２６】
ブロックサイズ情報が１６×１６画素ブロックを表す場合、１６×１６画素ブロックに対応する量子化結果が端子１１０からバッファ１１１に入力され、保持される。セレクタ１１２はブロックサイズ情報が１６×１６画素であることから出力先を１６×１６逆量子化部１１５とする。１６×１６逆量子化部１１５は１６×１６画素ブロックに対応する量子化結果に対して、１６×１６量子化マトリクス保持部１０７に保持された１６×１６画素ブロックに対応する量子化マトリクスを用いて逆量子化し、１６×１６の直交変換係数を生成する。１６×１６の直交変換係数はセレクタ１１７を介してバッファ１１８に出力される。
【００２７】
ブロックサイズ情報が３２×３２画素ブロックを表す場合、３２×３２画素ブロックに対応する量子化結果が端子１１０からバッファ１１１に入力され、保持される。セレクタ１１２はブロックサイズ情報が３２×３２画素であることから出力先を３２×３２逆量子化部１１６とする。３２×３２逆量子化部１１６は３２×３２画素ブロックに対応する量子化結果に対して、３２×３２量子化マトリクス保持部１０８に保持された３２×３２画素ブロックに対応する量子化マトリクスを用いて逆量子化し、３２×３２の直交変換係数を生成する。３２×３２の直交変換係数はセレクタ１１７を介してバッファ１１８に出力される。バッファ１１８は各ブロックサイズの直交変換係数を、端子１１９を介して出力する。
【００２８】
Ｈ．２６４によれば量子化マトリクスをｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔの中で符号化することができる。これによって、シーケンスの途中でも量子化マトリクスの更新を行うことができる。図１２の画像復号装置にｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔを表す符号が端子１２０１から入力されると復号部１２０２は量子化パラメータの更新があることを逆量子化部１２０３に入力する。ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔに含まれるｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］によって更新される量子化マトリクスのブロックサイズも決まる。更新の有無と更新される量子化マトリクスのサイズ、それと更新する量子化マトリクスの要素データの符号データが逆量子化部１２０３に入力される。
【００２９】
図１に戻って、これらの符号データは量子化マトリクス復号部１２１に入力される。量子化マトリクス復号部１２１はｐｉｃ＿ｓｃａｌｉｎｇ＿ｍａｔｒｉｘ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ符号を復号し、量子化マトリクスの更新の有無を得る。更新される場合は、ｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］によって更新する量子化マトリクスを決めることができる。さらにｓｃａｌｉｎｇ＿ｌｉｓｔ（）によって各ブロックサイズに適応する量子化要素の符号データを得る。これらの復号を行う。
【００３０】
復号された量子化更新を行うブロックサイズが４×４であった場合セレクタ１２２は、出力先として４×４量子化マトリクス保持部１０５を選択する。量子化マトリクス復号部１２１から出力される４×４＝１６個の要素を入力し、４×４量子化マトリクス保持部１０５で保持しておき、ピクチャの各ブロックの４×４画素ブロックに対応した量子化マトリクスを得る。
【００３１】
量子化更新を行うブロックサイズが８×８であった場合セレクタ１２２は、出力先として８×８量子化マトリクス保持部１０６と量子化マトリクス変倍部１０３を選択する。量子化マトリクス復号部１２１から出力される８×８＝６４個の要素を入力し、８×８量子化マトリクス保持部１０６で保持しておき、ピクチャの各ブロックの８×８画素ブロックに対応した量子化マトリクスを得る。
【００３２】
復号された量子化更新を行うブロックサイズが１６×１６であった場合セレクタ１２２は、出力先として量子化マトリクス変倍部１０３を選択する。量子化マトリクス変倍部１０３は８×８量子化マトリクス保持部１０６に保持された８×８画素ブロック対応の量子化マトリクスを入力する。量子化マトリクス変倍部１０３は入力された８×８画素ブロックに対応する量子化マトリクスを拡大して１６×１６画素ブロックに対応した量子化マトリクスを生成する。これらの拡大方法の一例を図３に示す。
【００３３】
図３（ａ）は８×８画素ブロックに対応した量子化マトリクスの例であり、それを縦横２倍の拡大を行う。例えば、前述の非特許文献３に記載の拡大方法、すなわち、Ｎ×Ｎの量子化マトリクスＱ（ｉ、ｊ）（０≦ｉ≦Ｎ−１、０≦ｊ≦Ｎ−１）を２Ｎ×２Ｎの量子化マトリクスＱ´（ｘ、ｙ）（０≦ｘ≦２×Ｎ−１、０≦ｙ≦２×Ｎ−１）に拡大する際に、
Ｑ´（０，０）  ＝Ｑ（０，０）
Ｑ´（０，２×ｊ＋１）  ＝Ｑ（０，ｊ）
Ｑ´（２×ｉ＋１，０）  ＝Ｑ（ｉ，０）
Ｑ´（２×ｉ＋１，２×ｊ＋１）  ＝Ｑ（ｉ，ｊ）
Ｑ´（０，１）  ＝（２１×Ｑ´（０，０）＋１１×Ｑ´（０，３）＋１６）／３２
Ｑ´（０，２）  ＝（１１×Ｑ´（０，０）＋２１×Ｑ´（０，３）＋１６）／３２
Ｑ´（０，２＊ｊ＋２）  ＝（Ｑ´（０，２＊ｊ＋１）＋Ｑ´（０，２＊ｊ＋３）＋１）／２
Ｑ´（２×ｉ＋１，１）  ＝（２１×Ｑ´（２×ｉ＋１，０）＋１１×Ｑ´（２×ｉ＋１，３）＋１６）／３２
Ｑ´（２×ｉ＋１，２）  ＝（１１×Ｑ´（２×ｉ＋１，０）＋２１×Ｑ´（２×ｉ＋１，３）＋１６）／３２
Ｑ´（２×ｉ＋１，２＊ｊ＋２）  ＝（Ｑ´（２×ｉ＋１，２＊ｊ＋１）＋Ｑ´（２×ｉ＋１，２＊ｊ＋３）＋１）／２
Ｑ´（１，ｊ）  ＝（２１×Ｑ´（０，ｊ）＋１１×Ｑ´（３，ｊ）＋１６）／３２
Ｑ´（２，ｊ）  ＝（１１×Ｑ´（０，ｊ）＋２１×Ｑ´（３，ｊ）＋１６）／３２
Ｑ´（２×ｉ＋２，ｊ）  ＝（Ｑ´（２×ｉ＋１，ｊ）＋Ｑ´（２＊ｉ＋３，ｊ）＋１）／２
として拡大しても良い。図３（ｂ）に拡大結果を示す。
【００３４】
または、
Ｑ´（２×ｉ，２×ｊ）  ＝Ｑ（ｉ，ｊ）      ｉｆ  ｉ≦１、ｊ≦１
Ｑ´（２×ｉ，２×ｊ＋１）  ＝Ｑ（ｉ，ｊ）  ｉｆ  ｉ≦１、ｊ＞１またはｊ＝７
Ｑ´（２×ｉ＋１，２×ｊ）  ＝Ｑ（ｉ，ｊ）  ｉｆ  ｉ＞１またはｉ＝７、ｊ≦１
Ｑ´（２×ｉ＋１，２×ｊ＋１）  ＝Ｑ（ｉ，ｊ）  ｉｆ  ｉ＞ｔかつｊ＞１、ｉ＝ｊ＝１
隣接する左右または上下の要素の値が存在する２Ｎ×２Ｎの量子化マトリクスＱ´の要素については、
Ｑ´（ｉ＋１，ｊ）  ＝（Ｑ´（ｉ，ｊ）＋Ｑ´（ｉ＋２，ｊ）＋１）／２
Ｑ´（ｉ，ｊ＋１）  ＝（Ｑ´（ｉ，ｊ）＋Ｑ´（ｉ，ｊ＋２）＋１）／２
隣接する左右または上下の要素の値が無い場合は、
Ｑ´（ｉ＋１，ｊ）  ＝（２×Ｑ´（ｉ，ｊ）＋Ｑ´（ｉ＋３，ｊ））／３
Ｑ´（ｉ＋２，ｊ）  ＝（Ｑ´（ｉ，ｊ）＋２×Ｑ´（ｉ＋３，ｊ））／３
Ｑ´（ｉ，ｊ＋１）  ＝（２×Ｑ´（ｉ，ｊ）＋Ｑ´（ｉ，ｊ＋３））／３
Ｑ´（ｉ，ｊ＋２）  ＝（Ｑ´（ｉ，ｊ）＋２×Ｑ´（ｉ，ｊ＋３））／３
としても良い。
【００３５】
または、線形補間によって求めても良い。すなわち、各要素の左上、右上、左下、右下の各係数に対して
Ｑ´（０，０）  ＝Ｑ（０，０）
Ｑ´（（２Ｎ−１），０）  ＝Ｑ（（Ｎ−１），０）
Ｑ´（０，（２Ｎ−１））  ＝Ｑ（０，（Ｎ−１））
Ｑ´（（２Ｎ−１），（２Ｎ−１））  ＝Ｑ（（Ｎ−１），（Ｎ−１））
とする。ここで、Ａ／／ＢはＡをＢで割った時の商を、ｍｏｄ（Ａ，Ｂ）はＡをＢで割った時のあまりを表すこととして、下記のようにＳ、Ｔ、Ｕ、Ｖを定義する。
【００３６】
Ｓ＝Ｑ（（（Ｎ−１）×ｘ）／／（２Ｎ−１），（（Ｎ−１）×ｙ）／／（２Ｎ−１））
Ｔ＝Ｑ（（（Ｎ−１）×ｘ）／／（２Ｎ−１）＋１，（（Ｎ−１）×ｙ）／／（２Ｎ−１））
Ｕ＝Ｑ（（（Ｎ−１）×ｘ）／／（２Ｎ−１），（（Ｎ−１）×ｙ＋１）／／（２Ｎ−１））
Ｖ＝Ｑ（（（Ｎ−１）×ｘ）／／（２Ｎ−１）＋１，（（Ｎ−１）×ｙ＋１）／／（２Ｎ−１））
【００３７】
これらを用いて、上端、左端、右端、下端の行および列を下記のように決定する。
Ｑ´（ｘ，０）  ＝（Ｓ×（２Ｎ−１−ｘ）＋Ｔ×ｘ）／／（２Ｎ−１）    ｉｆ  １≦ｘ≦２Ｎ−２
Ｑ´（０，ｙ）  ＝（Ｓ×（２Ｎ−１−ｙ）＋Ｕ×ｙ）／／（２Ｎ−１）  ｉｆ  １≦ｙ≦２Ｎ−２
Ｑ´（ｘ，２Ｎ−１）  ＝（Ｓ×（２Ｎ−１−ｘ）＋Ｔ×ｘ）／／（２Ｎ−１）  ｉｆ  １≦ｘ≦２Ｎ−２
Ｑ´（２Ｎ−１，ｙ）  ＝（Ｓ×（２Ｎ−１−ｙ）＋Ｕ×ｙ）／／（２Ｎ−１）  ｉｆ  １≦ｙ≦２Ｎ−２
【００３８】
さらに、それ以外の要素の計算をする際に、下記のようにＷ、Ｚを定義する。
Ｗ＝（Ｓ×（２Ｎ−１−ｘ）＋Ｔ×ｘ）／（２Ｎ−１）
Ｚ＝（Ｕ×（２Ｎ−１−ｘ）＋Ｖ×ｘ）／（２Ｎ−１）
【００３９】
これらを用いて、上記以外の要素の計算を下記の式で行う。
Ｑ´（ｘ，ｙ）  ＝（Ｗ×（２Ｎ−１−ｙ）＋Ｚ×ｙ）／／（２Ｎ−１）  ｉｆ  １≦ｘ≦２Ｎ−２  がつ  １≦ｙ≦２Ｎ−２
以上の計算を行うことで線形補間を行うことができる。図３（ｃ）にその結果を示す。
【００４０】
または、
Ｑ´（ｉ，ｊ）  ＝Ｑ（ｉ，ｊ） （ｉ≦１、ｊ≦１）
Ｑ´（２×ｉ，０）  ＝（Ｑ（ｉ＋１，０）＋Ｑ（ｉ，０）＋１）／２  （Ｎ＞ｉ＞１でかつｉが奇数）
Ｑ´（２×ｉ，０）  ＝（Ｑ（ｉ＋１，０）     （Ｎ＞ｉ＞１でかつｉが偶数）
Ｑ´（２×ｉ，１）  ＝（Ｑ（ｉ＋１，１）＋Ｑ（ｉ，１）＋１）／２  （Ｎ＞ｉ＞１でかつｉが奇数）
Ｑ´（２×ｉ，１）  ＝（Ｑ（ｉ＋１，１）     （Ｎ＞ｉ＞１でかつｉが偶数）
Ｑ´（２×ｉ，ｊ）  ＝（Ｑ（ｉ＋１，１）＋Ｑ（ｉ，１）＋１）／２  （Ｎ＞ｊ＞１でかつｊが奇数においてＮ＞ｉ＞１でかつｉが奇数）
Ｑ´（２×ｉ，ｊ）  ＝（Ｑ（ｉ＋１，１）     （Ｎ＞ｊ＞１でかつｊが奇数においてＮ＞ｉ＞１でかつｉが偶数）
とした後に、
Ｑ´（２×ｉ，ｊ）  ＝（Ｑ´（２×ｉ−１，ｊ）＋Ｑ´（２×ｉ＋１，ｊ）＋１）／２       （Ｎ＞ｉ≧０、Ｎ≧ｊ＞１でかつｊが偶数）
とする方法でも良い。
【００４１】
上記のように変倍の方法については限定しないが、必ず、復号側と符号化側で方法が一致していることが必要である。
【００４２】
生成された量子化マトリクスは１６×１６量子化マトリクス保持部１０７に保持される。
【００４３】
量子化更新を行うブロックサイズが３２×３２であった場合セレクタ１２２は、出力先として量子化マトリクス変倍部１０４を選択する。量子化マトリクス変倍部１０３は８×８量子化マトリクス保持部１０７に保持された１６×１６画素ブロック対応の量子化マトリクスを入力する。量子化マトリクス変倍部１０４は入力された１６×１６画素ブロックに対応する量子化マトリクスを拡大して３２×３２画素ブロックに対応した量子化マトリクスを生成する。これらの拡大方法については量子化マトリクス変倍部１４０３と同じ方法を用いればよい。生成された量子化マトリクスは３２×３２量子化マトリクス保持部１０８に保持される。
【００４４】
図２は実施形態１に係る画像符号化装置における画像逆量子化処理を示すフローチャートである。まず、ステップＳ２０１にて、デフォルトの量子化マトリクスとして保持されている４×４画素ブロックに対応する量子化マトリクスと８×８画素ブロックに対応する量子化マトリクスをそれぞれのメモリから読み出し、逆量子化に用いるためにこれらを保持する。
【００４５】
ステップＳ２０２にて、８×８画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成して、逆量子化に用いるためにこれを保持する。ステップＳ２０３にて、１６×１６画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成して、逆量子化に用いるためにこれを保持する。
【００４６】
ステップＳ２０４にて、量子化マトリクスの更新を行うか否かを判定する。量子化マトリクスの更新を行わない場合はステップＳ２１０に進み、更新を行う場合はステップＳ２０５に進む。ステップＳ２０５にて、量子化マトリクスの更新を行うので、更新される量子化マトリクスの符号データを入力し、復号する。
【００４７】
ステップＳ２０６にて、デフォルトの量子化マトリクスへのリセットか否かを判定し、デフォルトの量子化マトリクスへのリセットであれば、ステップＳ２０１に戻り、ステップＳ２０１からステップＳ２０３にて、デフォルトの量子化マトリクスを設定する。リセットでなければ、ステップＳ２０７に進む。
【００４８】
ステップＳ２０７にて、４×４画素ブロックに対応する量子化マトリクスと８×８画素ブロックに対応する量子化マトリクスをそれぞれの符号データを復号して各量子化マトリクスを生成して、逆量子化に用いるためにこれを保持する。ステップＳ２０８にて、ステップＳ２０２と同様にして、８×８画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成して、逆量子化に用いるためにこれを保持する。
【００４９】
ステップＳ２０９にて、ステップＳ２０３と同様にして、１６×１６画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成して、逆量子化に用いるためにこれを保持する。ステップＳ２１０にて、量子化係数を読み込む。ステップＳ２１１にて、読み込まれた量子化係数を該当するブロックサイズの量子化マトリクスを用いて逆量子化を行い、直交変換係数を算出して出力する。
【００５０】
ステップＳ２１２にて、ＬＣＵの全ての量子化係数の逆量子化が終了したか否かを判定し、もし、終了していなければステップＳ２０４に戻り、次のブロックの処理を行う。
【００５１】
以上の構成と動作により、特にステップＳ２０２、Ｓ２０３の処理により、１６×１６画素ブロックに対応する量子化マトリクス、３２×３２画素ブロックに対応する量子化マトリクスのデフォルトの量子化マトリクスを格納するメモリを省略することができる。この際に、量子化マトリクスの拡大を量子化マトリクスの更新で使用する拡大手段を用いることで、処理の規模は増大しない。
【００５２】
なお、ステップＳ２０６にてデフォルトの量子化マトリクスへのリセットの判定を行ったが、これを省略して符号データに量子化マトリクスの符号データを復号しても構わない。また、本実施例において、３２×３２画素ブロックに対応する量子化マトリクスを１６×１６画素ブロックに対応する量子化マトリクスから拡大して生成したが、これに限定されない。図４に構成の異なる画像逆量子化装置の構成を表す。図４において図１と同じ動作を行うブロックに関しては図１と同じ番号を付し、説明を省略する。４０４は量子化マトリクス変倍部であり、８×８画素ブロックに対応する量子化マトリクスを縦横４倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成する。このように構成することで、１６×１６画素ブロック対応の量子化マトリクスの要素（２５６個）を送らずに８×８画素ブロックに対応する量子化マトリクスの要素（６４個）の伝送で済むため、転送のデータ幅を抑えることができる。
【００５３】
また、本実施例において、変倍部での変倍を拡大についてのみ説明したが、これに限定されない。例えば、８×８画素ブロックに対応する量子化マトリクスのみを保持して、これから４×４画素ブロックに対応する量子化マトリクスを生成しても構わない。図５に構成の異なる画像逆量子化装置の構成を表す。図５において図１と同じ動作を行うブロックに関しては図１と同じ番号を付し、説明を省略する。５０１は量子化マトリクス変倍部であり、８×８画素ブロックに対応する量子化マトリクスを縦横１／２倍に縮小し、４×４画素ブロックに対応する量子化マトリクスを生成する。復号に先立ち、８×８量子化マトリクスメモリ１０２から８×８画素ブロックに対応する量子化マトリクスの各要素を量子化マトリクス変倍部５０１に入力する。量子化マトリクス変倍部５０１は８×８画素ブロックに対応する量子化マトリクスを縦横１／２倍に縮小し、４×４画素ブロックに対応する量子化マトリクスを生成し、４×４量子化マトリクス保持部１０５に入力する。その後、当該量子化マトリクスを用いて逆量子化を行う。量子化マトリクス変倍部５０１での変倍の方法については特に特に言及しない。その一例を図６に示す。図６（ａ）は図３（ａ）のから４×４の要素で平均値を算出して生成した量子化マトリックスである。また、図６（ｂ）は図３（ａ）のから４×４の要素で間引きを行って生成した量子化マトリックスである。例えば、前述の２Ｎ×２Ｎの量子化マトリクスＱ´（ｘ、ｙ）をＮ×Ｎの量子化マトリクスＱ（ｉ、ｊ）に縮小する場合、
ｆｏｒ  （ｉ＝０；  ｉ＜Ｎ；  ｉ＋＋）  ｛
ｉｆ  （ｉ＞１）  ｛Ｒ＝ｉ×２−１｝ｅｌｓｅ  ｛Ｒ＝０｝
ｆｏｒ  （ｊ＝０；  ｊ＜Ｎ；ｊ＋＋）｛
ｉｆ  （ｊ＞１）  ｛Ｃ＝ｊ×２−１｝ｅｌｓｅ  ｛Ｃ＝０｝
Ｑ（ｉ、ｊ）＝Ｑ´（Ｒ．  Ｃ）；
｝
｝
といった方法でも良い。図６（ｃ）は図３（ａ）のから４×４の要素で加重平均を用いて生成した量子化マトリックスである。
【００５４】
また、本実施例において、正方形の量子化マトリクスについて説明を行ったが、これに限定されない。例えば１６×８画素ブロックや８×１６画素ブロック等であっても良い。８×８画素ブロックに対応する量子化マトリクスから１６×８画素ブロックに対応する量子化マトリクスを拡大によって生成する場合、上記の方法で水平方向のみの拡大を行う。また、８×１６画素ブロックに対応する量子化マトリクスを生成する場合は上記の方法で垂直方向のみに拡大を行う。縮小においても同様で１６×１６画素ブロックに対応する量子化マトリクスから１６×８画素ブロックに対応する量子化マトリクスを縮小によって生成する場合、上記の方法で垂直方向のみの縮小を行う。さらには１６×４画素ブロックに対応する量子化マトリクスとしてももちろん構わない。また、これらのブロックサイズに限定されない。
【００５５】
図５に構成の異なる画像逆量子化装置の構成を表す。図５において図１と同じ動作を行うブロックに関しては図１と同じ番号を付し、説明を省略する。７０３は８×８画素ブロックに対応する量子化マトリクスを縮小し、１６×８画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。変倍の手法については特に限定しない。図８にその変倍の一例を示す。図６（ａ）の８×８画素ブロックに対応する量子化マトリクスを横に２倍拡大する。１６×８画素ブロックに対応する量子化マトリクスを保持する１６×８量子化マトリクス保持部である。７０８は８×１６画素ブロックに対応する量子化マトリクスを保持する８×１６量子化マトリクス保持部である。７１５は１６×８画素ブロックの量子化係数を逆量子化する１６×８逆量子化部である。７１６は８×１６画素ブロックの量子化係数を逆量子化する８×１６逆量子化部である。以上の構成において、端子１１０から１６×８画素ブロックの量子化係数が入力された場合、セレクタ１１２を介して１６×８逆量子化部７１５に入力される。１６×８画素ブロックの量子化係数は１６×８量子化マトリクス保持部７０７の量子化マトリクスを用いて逆量子化して１６×８の直交変換係数を生成する。また、端子１１０から８×１６画素ブロックの量子化係数が入力された場合、セレクタ１１２を介して８×１６逆量子化部７１６に入力され、８×１６量子化マトリクス保持部７０８の量子化マトリクスを用いて、逆量子化して８×１６の直交変換係数を生成する。また、これらの実施例のブロックサイズはこれに限定されない。また、１６×８画素ブロックに対応する量子化マトリクスや８×１６画素ブロックに対応する量子化マトリクスを８×８画素ブロックに対応する量子化マトリクスから拡大して求めたがこれに限定されない。１６×１６画素ブロックに対応する量子化マトリクスから縮小して求めても構わない。このように構成し、動作することで正方形以外の量子化マトリクスにも対応できる。
【００５６】
また、量子化マトリクス変倍部１０３と量子化マトリクス変倍部１０４で異なる拡大方法を用いてももちろん構わない。復号側と符号化側で同じ変倍方法を用いることによって、特に変倍方法について符号化する必要は無い。
【００５７】
＜実施形態２＞
図９は図１３の量子化部１３０５を構成する本実施例の画像量子化装置を示すブロック図である。
【００５８】
図９において、９０１は４×４画素ブロックに対応する量子化マトリクスのデフォルト値を格納する４×４量子化マトリクスメモリである。９０２は８×８画素ブロックに対応する量子化マトリクスのデフォルト値を格納する８×８量子化マトリクスメモリである。９０３は８×８画素ブロックに対応する量子化マトリクスを拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。９０４は１６×１６画素ブロックに対応する量子化マトリクスを拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。９０５は４×４画素ブロックに対応する量子化マトリクスを保持する４×４量子化マトリクス保持部である。９０６は８×８画素ブロックに対応する量子化マトリクスを保持する８×８量子化マトリクス保持部である。９０７は１６×１６画素ブロックに対応する量子化マトリクスを保持する１６×１６量子化マトリクス保持部である。９０８は３２×３２画素ブロックに対応する量子化マトリクスを保持する３２×３２量子化マトリクス保持部である。
【００５９】
９０９は端子であり、図１３の変換部１３０４に接続され、入力された画像データのブロックサイズを示すブロックサイズ情報を入力する。９１０は端子であり、図１３の変換部１３０４に接続され、ブロックサイズ単位で直交変換係数を入力する。９１１はバッファであり、処理を行うブロックサイズの直交変換係数を保持する。９１２はセレクタであり、前記ブロックサイズ情報に従って出力先を選択する。９１３は４×４画素ブロックの量子化係数を量子化する４×４量子化部である。９１４は８×８画素ブロックの直交変換係数を量子化する８×８量子化部である。９１５は１６×１６画素ブロックの直交変換係数を量子化する１６×１６量子化部である。９１６は３２×３２画素ブロックの直交変換係数を量子化する３２×３２量子化部である。９１７はセレクタであり、前記ブロックサイズ情報に従って入力先を選択する。９１８はバッファであり、量子化して得られた量子化係数を保持しておく。９１９は端子であり、図１３の符号化部１３０６と逆量子化部１３０８に接続され、量子化係数を出力する。９２１は端子であり、不図示のユーザインターフェースに接続されており、量子化マトリクスの更新を行う場合の指示を入力する。９２２は４×４画素ブロックに対応する量子化マトリクスを更新する際の量子化マトリクスを生成する４×４量子化マトリクス修正部である。９２２は４×４画素ブロックに対応する量子化マトリクスを更新する際の量子化マトリクスを生成する４×４量子化マトリクス修正部である。９２４はセレクタであり、４×４量子化マトリクス修正部９２２、８×８量子化マトリクス修正部９２３から修正した量子化マトリクスを入力し、端子９２１からの指示で出力先を選択するセレクタである。９２５は量子化マトリクス符号化部であり、量子化マトリクスの更新の情報を符号化する。９２６は端子であり、量子化マトリクスの更新に関する符号データを出力する。
【００６０】
上記画像量子化装置における直交変換係数の量子化動作を以下に説明する。本実施形態では直交変換係数の量子化結果を入力する構成となっているが、これに限定されない。また、説明のため、ブロック単位での入力になっているが、これも限定されない。
【００６１】
符号化に先立ち、４×４量子化マトリクスメモリ９０１から４×４画素ブロックに対応する量子化マトリクスの各要素を４×４量子化マトリクス保持部９０５に入力する。また、同時に８×８量子化マトリクスメモリ９０２から８×８画素ブロックに対応する量子化マトリクスの各要素を８×８量子化マトリクス保持部９０６に入力する。また、８×８画素ブロックに対応する量子化マトリクスの各要素は量子化マトリクス変倍部９０３に入力される。量子化マトリクス変倍部９０３は８×８画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成し、１６×１６量子化マトリクス保持部９０７と量子化マトリクス変倍部９０４に入力する。１６×１６量子化マトリクス保持部９０７は入力された１６×１６画素ブロックに対応する量子化マトリクスを保持しておく。量子化マトリクス変倍部９０４は１６×１６画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成し、３２×３２量子化マトリクス保持部９０８に入力する。３２×３２量子化マトリクス保持部９０８は入力された３２×３２画素ブロックに対応する量子化マトリクスを保持しておく。
【００６２】
１ブロック分の直交変換係数が端子９１０から入力され、バッファ９１１に入力される。また、入力された直交変換係数のブロックサイズ情報が端子９０９から入力され、セレクタ９１２、９１７に入力される。
【００６３】
ブロックサイズ情報が４×４画素ブロックを表す場合、４×４画素ブロックに対応する直交変換係数が端子９１０からバッファ９１１に入力され、保持される。セレクタ９１２はブロックサイズ情報が４×４画素であることから  出力先を４×４量子化部９１３とする。４×４量子化部９１３は４×４画素ブロックに対応する直交変換係数に対して、４×４量子化マトリクス保持部９０５に保持された４×４画素ブロックに対応する量子化マトリクスを用いて量子化し、４×４の量子化係数を生成する。４×４の量子化係数はセレクタ９１７を介してバッファ９１８に出力される。
【００６４】
ブロックサイズ情報が８×８画素ブロックを表す場合、８×８画素ブロックに対応する直交変換係数が端子９１０からバッファ９１１に入力され、保持される。セレクタ１１２はブロックサイズ情報が８×８画素であることから  出力先を８×８量子化部９１４とする。８×８量子化部９１４は８×８画素ブロックに対応する直交変換係数に対して、８×８量子化マトリクス保持部９０６に保持された８×８画素ブロックに対応する量子化マトリクスを用いて量子化し、８×８の量子化係数を生成する。８×８の量子化係数はセレクタ９１７を介してバッファ９１８に出力される。
【００６５】
ブロックサイズ情報が１６×１６画素ブロックを表す場合、１６×１６画素ブロックに対応する直交変換係数が端子９１０からバッファ９１１に入力され、保持される。セレクタ９１２はブロックサイズ情報が１６×１６画素であることから  出力先を１６×１６量子化部９１５とする。１６×１６量子化部９１５は１６×１６画素ブロックに対応する直交変換係数に対して、１６×１６量子化マトリクス保持部９０７に保持された１６×１６画素ブロックに対応する量子化マトリクスを用いて量子化し、１６×１６の量子化係数を生成する。１６×１６の量子化係数はセレクタ９１７を介してバッファ９１８に出力される。
【００６６】
ブロックサイズ情報が３２×３２画素ブロックを表す場合、３２×３２画素ブロックに対応する直交変換係数が端子９１０からバッファ９１１に入力され、保持される。セレクタ９１２はブロックサイズ情報が３２×３２画素であることから  出力先を３２×３２量子化部９１６とする。３２×３２量子化部９１６は３２×３２画素ブロックに対応する直交変換係数に対して、３２×３２量子化マトリクス保持部９０８に保持された３２×３２画素ブロックに対応する量子化マトリクスを用いて量子化し、３２×３２の量子化係数を生成する。３２×３２の量子化係数はセレクタ９１７を介してバッファ９１８に出力される。
【００６７】
バッファ９１８は各ブロックサイズの直交変換係数を、端子９１９を介して出力する。
【００６８】
実施例１でも説明したように、Ｈ．２６４によれば量子化マトリクスをｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔの中で符号化することができる。これによって、シーケンスの途中でも量子化マトリクスの更新を行うことができる。端子９２１からユーザが量子化マトリクスの更新の指示を行った場合について説明する。４×４画素ブロックに対応する量子化マトリクス及び８×８画素ブロックに対応する量子化マトリクスを更新する場合について最初に説明する。４×４量子化マトリクス修正部９２２は更新される新しい４×４画素ブロックに対応する量子化マトリクスを生成し、セレクタ９２４に入力する。セレクタ９２４は入力された量子化マトリクスを４×４量子化マトリクス保持部９０５と量子化マトリクス符号化部９２５に出力する。４×４量子化マトリクス保持部９０５はこの量子化マトリクスを保持し、以降の４×４画素ブロックに対応する量子化マトリクスによる量子化に備える。また、量子化マトリクス符号化部９２５はｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔを表す符号を生成し、出力するとともに、続く符号データが４×４画素ブロックに対応する量子化マトリクスの係数であることを示す量子化マトリクスサイズ符号を出力する。続いて、１６個の量子化マトリクスの要素が符号化される。これらの符号データは端子９２６から出力される。
【００６９】
同様に、８×８量子化マトリクス修正部９２３は更新される新しい８×８画素ブロックに対応する量子化マトリクスを生成し、セレクタ９２４に入力する。セレクタ９２４は入力された量子化マトリクスを８×８量子化マトリクス保持部９０６、量子化マトリクス変倍部９０３、及び量子化マトリクス変倍部９０４、量子化マトリクス符号化部９２５に出力する。４×４量子化マトリクス保持部９０６はこの量子化マトリクスを保持し、以降の８×８画素ブロックに対応する量子化マトリクスによる量子化に備える。また、量子化マトリクス符号化部９２５はｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔを表す符号を生成し、出力するとともに、続く符号データが８×８画素ブロックに対応する量子化マトリクスの係数であることを示す量子化マトリクスサイズ符号を出力する。続いて、６４個の量子化マトリクスの要素が符号化される。これらの符号データは端子９２６から出力される。
【００７０】
続いて、１６×１６画素ブロックに対応する量子化マトリクス、３２×３２画素ブロックに対応する量子化マトリクスの更新について説明する。量子化マトリクス変倍部９０３は実施例１の量子化マトリクス変倍部１０３と同様に縦横２倍の拡大を８×８画素ブロックに対応する量子化マトリクスに対して行い、１６×１６画素ブロックに対応する量子化マトリクスを生成する。生成された量子化マトリクスは１６×１６量子化マトリクス保持部９０７に入力される。１６×１６量子化マトリクス保持部９０７はこの量子化マトリクスを保持し、以降の１６×１６画素ブロックに対応する量子化マトリクスによる量子化に備える。と同時に、量子化マトリクス符号化部９２５は１６×１６画素ブロックに対応する量子化マトリクスが更新されたことのみを符号化し、端子９２６から出力する。同様に、量子化マトリクス変倍部９０４は縦横４倍の拡大を入力された８×８画素ブロックに対応する量子化マトリクスに対して行い、３２×３２画素ブロックに対応する量子化マトリクスを生成する。生成された量子化マトリクスは３２×３２量子化マトリクス保持部９０８に入力される。３２×３２量子化マトリクス保持部９０８はこの量子化マトリクスを保持し、以降の３２×３２画素ブロックに対応する量子化マトリクスによる量子化に備える。と同時に、量子化マトリクス符号化部９２５は３２×３２画素ブロックに対応する量子化マトリクスが更新されたことのみを符号化し、端子９２６から出力する。
【００７１】
図１０は実施形態２に係る画像符号化装置における画像量子化処理を示すフローチャートである。まず、ステップＳ１００１にて、デフォルトの量子化マトリクスとして保持されている４×４画素ブロックに対応する量子化マトリクスと８×８画素ブロックに対応する量子化マトリクスをそれぞれのメモリから読み出す。これらを量子化及び逆量子化に用いるためにこれらを保持する。
【００７２】
ステップＳ１００２にて、８×８画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成して、量子化及び逆量子化に用いるためにこれを保持する。ステップＳ１００３にて、８×８画素ブロックに対応する量子化マトリクスを縦横４倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成して、量子化及び逆量子化に用いるためにこれを保持する。
【００７３】
ステップＳ１００４にて、量子化マトリクスの更新を行うか否かを判定する。量子化マトリクスの更新を行わない場合はステップＳ１００９に進み、更新を行う場合はステップＳ１００５に進む。ステップＳ１００５にて、更新はデフォルトの量子化マトリクスへの更新か否かを判定する。デフォルトの量子化マトリクスへの変更であれば、ステップＳ１００１に戻り、デフォルトの量子化マトリクスを再設定する。そうでなければ、ステップＳ１００６に進む。
【００７４】
ステップＳ１００６にて、４×４画素ブロックに対応する量子化マトリクスと８×８画素ブロックに対応する量子化マトリクスのそれぞれを新しい要素からなる要素に寄って更新し、これを保持する。ステップＳ１００７にて、ｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］を符号化し、更新された各要素を符号化する。
【００７５】
ステップＳ１００８にて、復号側と符号化側で同じ変倍方法を用い、８×８画素ブロックに対応する量子化マトリクスを縦横２倍に拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成する。量子化及び逆量子化に用いるためにこれを保持する。
【００７６】
ステップＳ１００９にて、８×８画素ブロックに対応する量子化マトリクスを復号側と符号化側で同じ変倍方法を用い、縦横４倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成する。量子化及び逆量子化に用いるためにこれを保持する。
【００７７】
ステップＳ１０１０にて、量子化するブロックのブロックサイズと直交変換係数を読み込む。ステップＳ１０１１にて、ブロックサイズに従って、対応する量子化マトリクスを用いて直交変換係数を量子化する。ステップＳ１０１２にて、ＬＣＵの全ての量子化係数の量子化が終了したか否かを判定し、もし、終了していなければステップＳ１００４に戻り、次のブロックの処理を行う。
【００７８】
以上の構成と動作により、特にステップＳ１００２、Ｓ１００３の処理により、１６×１６画素ブロックに対応する量子化マトリクス、３２×３２画素ブロックに対応するデフォルトの量子化マトリクスを格納するメモリを省略することができる。この際に、量子化マトリクスの拡大を量子化マトリクスの更新で使用する拡大手段を用いることで、処理の規模は増大しない。
【００７９】
なお、本実施例において、ユーザが量子化マトリクスの更新を行うように説明したが、これに限定されない。例えば、画像の特性を抽出し、その絵柄等に依存して量子化マトリクスを自動で更新してももちろん構わない。
【００８０】
なお、本実施例において、量子化マトリクスのブロックサイズを符号データとして符号化する場合を例にとって説明したが、小さいブロックサイズのものから符号化する規則を設けることで、このブロックサイズの符号データを省略することができる。
【００８１】
また、更新する量子化マトリクスを選択することできる。例えば８×８画素ブロックに対応する量子化マトリクスだけとする場合はｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］で８×８画素ブロックに対応する量子化マトリクスのみを更新するように符号化すればよい。また、拡大によって得られる量子化マトリクスのみを更新する場合、ｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］で８×８画素ブロックに対応する量子化マトリクスの更新は行わないように符号化する。但し、８×８画素ブロックに対応する量子化マトリクスの更新する係数値を符号化する。さらにｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］で例えば１６×１６画素ブロックに対応する量子化マトリクスの更新を行うように符号化を行う。
【００８２】
なお、本実施例において、３２×３２画素ブロックに対応する量子化マトリクスを８×９画素ブロックに対応する量子化マトリクスから生成したが、一旦生成された１６×１６画素ブロックに対応する量子化マトリクスを縦横２倍して生成しても良い。図１１に構成の異なる画像量子化装置の構成を表す。図１１において図９と同じ動作を行うブロックに関しては図９と同じ番号を付し、説明を省略する。１１０１は１６×１６画素ブロックに対応する量子化マトリクスを更新する１６×１６量子化マトリクス更新情報を生成する１６×１６量子化マトリクス修正部である。１１０２は３２×３２画素ブロックに対応する量子化マトリクスを更新する１６×１６量子化マトリクス更新情報を生成する３２×３２量子化マトリクス修正部である。１１２４はセレクタである。４×４量子化マトリクス修正部９２２、８×８量子化マトリクス修正部９２３から修正した量子化マトリクスを入力し、１６×１６量子化マトリクス更新情報または３２×３２量子化マトリクス更新情報を入力する。これらの入力を端子９２１からの指示で入力先および出力先を選択するセレクタである。１１２５は量子化マトリクス符号化部であり、量子化マトリクスの更新の情報を符号化する。４×４画素ブロックに対応する量子化マトリクスないしは８×８画素ブロックに対応する量子化マトリクスの更新については図９で説明したとおりである。
【００８３】
端子９２１からユーザが１６×１６画素ブロックに対応する量子化マトリクスの更新の指示を行った場合について説明する。１６×１６量子化マトリクス修正部１１０１は１６×１６量子化マトリクス更新情報を生成する。生成された１６×１６量子化マトリクス更新情報はセレクタ１１２４を介して量子化マトリクス符号化部１１２５に入力される。量子化マトリクス符号化部１１２５はｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］で１６×１６画素ブロックに対応する量子化マトリクスの更新を行うように符号化を行う。
【００８４】
また、端子９２１からユーザが３２×３２画素ブロックに対応する量子化マトリクスの更新の指示を行った場合について説明する。３２×３２量子化マトリクス修正部１１０２は３２×３２量子化マトリクス更新情報を生成する。生成された３２×３２量子化マトリクス更新情報はセレクタ１１２４を介して量子化マトリクス符号化部１１２５に入力される。量子化マトリクス符号化部１１２５はｐｉｃ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［  ｉ  ］で３２×３２画素ブロックに対応する量子化マトリクスの更新を行うように符号化を行う。
【００８５】
また、１６×１６量子化マトリクス修正部１１０１は対応する８×８画素ブロックに対応する量子化マトリクスのみを更新することもできる。この時、更新する１６×１６画素ブロックに対応する量子化マトリクスを縦横１／２に縮小した８×８画素ブロックに対応する量子化マトリクスを生成する。セレクタ１１２４は生成された８×８画素ブロックに対応する量子化マトリクスを量子化マトリクス変倍部９０３に入力する。量子化マトリクス変倍部９０３は前述の通り縦横２倍の拡大を行い１６×１６画素ブロックに対応する量子化マトリクスを生成する。量子化マトリクス符号化部１１２５は生成された８×８画素ブロックに対応する量子化マトリクスを符号化する。但し、８×８画素ブロックに対応する量子化マトリクスの更新は行わない。さらに上述の１６×１６量子化マトリクス更新情報を符号化する。３２×３２画素ブロックに対応する量子化マトリクスについても同様に処理を行うことができる。
【００８６】
また、本実施例では説明を簡単にするために正方形の画素ブロックに対応する量子化マトリクスの更新について説明したが、これに限定されない。実施例１で説明したように非正方形の量子化マトリクス、例えば８×１６画素ブロックに対応する量子化マトリクスとしても良い。
【００８７】
＜実施形態３＞
本実施形態では図１２の逆量子化部１２０４における画像逆量子化装置として図１の構成をもちいて説明する。
【００８８】
なお、本実施形態においては説明を容易にするために、用いるブロックサイズを４×４、８×８、１６×１６、３２×３２とするが、これに限定されない。実施形態１とは量子化マトリクス変倍部１０３、１０４の構成が異なる。
【００８９】
実施形態１と同様に、復号に先立ち、４×４量子化マトリクスメモリ１０１から４×４画素ブロックに対応する量子化マトリクスの各要素を４×４量子化マトリクス保持部１０５に入力する。また、同時に８×８量子化マトリクスメモリ１０２から８×８画素ブロックに対応する量子化マトリクスの各要素を８×８量子化マトリクス保持部１０６に入力する。また、８×８画素ブロックに対応する量子化マトリクスの各要素は量子化マトリクス変倍部１０３に入力される。量子化マトリクス変倍部１０３は８×８画素ブロックに対応する量子化マトリクスを縦に２倍、横に２倍に拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成し、１６×１６量子化マトリクス保持部１０７と量子化マトリクス変倍部１０４に入力する。量子化マトリクス変倍部１０３において、量子化マトリクスの各要素を縦、横に繰り返して複写することで拡大を行う。Ｎ×Ｎ画素ブロックに対応する量子化マトリクスＱ（ｉ、ｊ）（０≦ｉ≦Ｎ−１、０≦ｊ≦Ｎ−１）を２Ｎ×２Ｎ画素ブロックに対応する量子化マトリクスＱ´（ｘ、ｙ）（０≦ｘ≦２×Ｎ−１、０≦ｙ≦２×Ｎ−１）に拡大する際に、Ｑ´（ｘ、ｙ）＝Ｑ（ｘ／Ｆ，ｙ／Ｆ）   （但しＦは２）として拡大を行う。図３（ａ）の８×８量子化マトリクスを本実施形態によって拡大した結果を図１６（ａ）に示す。拡大された１６×１６画素ブロックに対応する量子化マトリクスの各要素は１６×１６量子化マトリクス保持部１０７に格納される。
【００９０】
同様に、量子化マトリクス変倍部１０４は１６×１６画素ブロックに対応する量子化マトリクスを縦に２倍、横に２倍に拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成する。拡大の方法は量子化マトリクス変倍部１０３で用いた方法と同じである。生成された３２×３２画素ブロックに対応する量子化マトリクスは３２×３２量子化マトリクス保持部１０８で保持しておく。
【００９１】
また、復号途中で量子化マトリクスの更新を行う場合、実施形態１と同様に、入力された量子化マトリクスは量子化マトリクス復号部１２１で復号され、セレクタ１２２を経由して、量子化マトリクス変倍部１０３及び１０４にて上記の方法で拡大される。
【００９２】
画像逆量子化処理のフローチャートを示した図２においては、ステップＳ２０８、Ｓ２０９にて上記の拡大方法で量子化マトリクスの拡大を行うことになる。
【００９３】
以上の構成と動作により、１６×１６画素ブロックに対応する量子化マトリクス、３２×３２画素ブロックに対応する量子化マトリクスのデフォルトの量子化マトリクスを格納するメモリを省略することができる。これにより、量子化マトリクスの要素が８ビットで表される場合、１６×１６量子化マトリクスメモリ１４２０の２５６バイト、３２×３２量子化マトリクスメモリ１４２１の１０２４バイトのメモリ削減が可能になる。通常はＩｎｔｒａ／Ｉｎｔｅｒ符号化、輝度・色差で異なる量子化マトリクスを持つため、この４倍のメモリを削減できる。量子化マトリクスの拡大において、要素を複写するといった簡単な構成をとることにより、変倍部の回路規模、計算コストを大きく下げることができる。
【００９４】
また、実施形態１の量子化マトリクス変倍部７０３及び７０４においても同様の拡大方法を用いることができる。量子化マトリクス変倍部７０３は縦横２倍の拡大であるため上記の式を用いてＦを２として拡大を行う。また、量子化マトリクス変倍部７０４においてはＮ×Ｎ画素ブロックに対応する量子化マトリクスＱ（ｉ、ｊ）（０≦ｉ≦Ｎ−１、０≦ｊ≦Ｎ−１）とする。これに対して、４Ｎ×４Ｎ画素ブロックに対応する量子化マトリクスＱ´（ｘ、ｙ）（０≦ｘ≦４×Ｎ−１、０≦ｙ≦４×Ｎ−１）に拡大することになる。従って、上記の式を用いて、Ｆを４として拡大する。このように変倍率が異なる場合でも対応することができる。
【００９５】
また、本画像逆量子化装置に対応する画像量子化装置においても同じ拡大方法を用いることができる。具体的には図９に示す量子化マトリクス変倍部９０３及び９０４が量子化マトリクス変倍部１０３、１０４と同じ構成を持つことで実現される。同様に画像量子化処理のフローチャートを示した図１０においては、ステップＳ１００８、Ｓ１００９にて上記の拡大方法で量子化マトリクスの拡大を行うことになる。
【００９６】
なお、本実施形態の量子化マトリクスの値についてはこれに限定されない。
【００９７】
＜実施形態４＞
図１７は図１２の逆量子化部１２０３を構成する本実施形態の画像逆量子化装置を示すブロック図である。図１７において、図１の画像復号装置と同じ機能を果たすブロックについては同じ番号を付し、詳細な説明を省略する。
【００９８】
図１７において、１７０１は１６×１６画素ブロックに対応する量子化マトリクスで特定の要素を格納しておく１６×１６量子化特定要素メモリである。ここではＤＣ成分にあたるＱ´（０，０）の要素の値を格納するものとする。１７０２は３２×３２画素ブロックに対応する量子化マトリクスで特定の要素を格納しておく３２×３２量子化特定要素メモリである。ここではＤＣ成分にあたるＱ´（０，０）の要素の値を格納するものとする。１７０３は８×８画素ブロックに対応する量子化マトリクスを拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。１７０４は１６×１６画素ブロックに対応する量子化マトリクスを拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。
【００９９】
上記画像逆量子化装置における量子化係数の逆量子化動作を以下に説明する。本実施形態では直交変換係数の量子化結果を入力する構成となっているが、これに限定されない。また、説明のため、ブロック単位での入力になっているが、これも限定されない。
【０１００】
実施形態３と同様に、復号に先立ち、８×８量子化マトリクスメモリ１０２から８×８画素ブロックに対応する量子化マトリクスの各要素は量子化マトリクス変倍部１７０３に入力される。また、１６×１６量子化特定要素メモリ１７０１からＤＣ成分の要素のデフォルト値を入力する。量子化マトリクス変倍部１７０３はまず、８×８量子化マトリクスメモリの８×８画素ブロックに対応する量子化マトリクスの各要素を入力する。その後、実施形態３に記載の縦、横に繰り返して複写する拡大方法によって、拡大を行い、１６×１６画素ブロックに対応する量子化マトリクスを生成する。さらに生成された量子化マトリクスのＤＣ成分のデフォルト値を１６×１６量子化特定要素メモリ１７０１から入力した値に置き換える。図１６（ｂ）に８×８量子化マトリクスメモリ１０２に格納されている８×８画素ブロックに対応する量子化マトリクスの各要素を示す。また、図１６（ｃ）にその拡大結果を示す。ここでは１６×１６量子化特定要素メモリ１７０１に値９が格納されていたものとする。図１６（ｂ）の量子化マトリクスの要素を実施形態３の式にしがって拡大する。さらにＤＣ成分の要素をデフォルト値（ここでは９とする）に置き換えることで１６×１６画素ブロックに対応する量子化マトリクスが生成される。生成された１６×１６画素ブロックに対応する量子化マトリクスは量子化マトリクス変倍部１７０４に入力される。量子化マトリクス変倍部１７０４においても量子化マトリクス変倍部１７０３と同様に複写による拡大を行った後に３２×３２量子化特定要素メモリ１７０２に格納されているＤＣ成分の要素のデフォルト値を入力して置換する。
【０１０１】
画像逆量子化処理のフローチャートを示した図２においては、ステップＳ２０８、Ｓ２０９にて上記の拡大方法で量子化マトリクスの拡大を行うことになる。
【０１０２】
以上の構成と動作により、逆量子化において、１６×１６画素ブロックに対応する量子化マトリクス、３２×３２画素ブロックに対応する量子化マトリクスのデフォルトの量子化マトリクスを格納するメモリを省略することができる。また、特定要素を別途拡大された量子化マトリクスに用いる。これにより、画質への影響の大きい要素に限って量子化マトリクスの要素を変更することで非常にわずかなメモリ容量（この場合１バイト）のみで画質への影響の大きいＤＣ成分を特定要素とすることで画質を改善することができる。
【０１０３】
なお、本実施形態において特定要素をＤＣ成分のみとしたが、これに限定されない。例えば、縦横４倍に拡大する際には低周波の要素を同様に特定要素とすることができる。例えば、Ｑ´（１，０）、Ｑ´（０，１）の値を特定要素として置換することも可能である。
【０１０４】
また、本画像逆量子化装置に対応する画像量子化装置においても同じ拡大方法を用いることができる。図１８にその詳細なブロック図を示す。図１８において、図９の画像符号化装置と同じ機能を果たすブロックについては同じ番号を付し、詳細な説明を省略する。
【０１０５】
図１８において、１８０１は１６×１６画素ブロックに対応する量子化マトリクスで特定の要素を格納しておく１６×１６量子化特定要素メモリである。ここではＤＣ成分にあたるＱ´（０，０）の要素の値を格納するものとする。１８０２は３２×３２画素ブロックに対応する量子化マトリクスで特定の要素を格納しておく３２×３２量子化特定要素メモリである。ここではＤＣ成分にあたるＱ´（０，０）の要素の値を格納するものとする。１８０３は８×８画素ブロックに対応する量子化マトリクスを拡大し、１６×１６画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。１７０４は１６×１６画素ブロックに対応する量子化マトリクスを拡大し、３２×３２画素ブロックに対応する量子化マトリクスを生成する量子化マトリクス変倍部である。
【０１０６】
実施形態２の画像量子化装置と同様に、符号化に先立ち、４×４量子化マトリクスメモリ９０１から４×４画素ブロックに対応する量子化マトリクスの各要素を４×４量子化マトリクス保持部９０５に入力する。また、同時に８×８量子化マトリクスメモリ９０２から８×８画素ブロックに対応する量子化マトリクスの各要素を８×８量子化マトリクス保持部９０６に入力する。また、８×８画素ブロックに対応する量子化マトリクスの各要素は量子化マトリクス変倍部１８０３に入力される。また、１６×１６量子化特定要素メモリ１８０１からＤＣ成分の要素のデフォルト値を入力する。量子化マトリクス変倍部１８０３はまず、８×８量子化マトリクスメモリの８×８画素ブロックに対応する量子化マトリクスの各要素を入力する。その後、実施形態３に記載の縦、横に繰り返して複写する拡大方法によって、拡大を行い、１６×１６画素ブロックに対応する量子化マトリクスを生成する。さらに生成された量子化マトリクスのＤＣ成分のデフォルト値を１６×１６量子化特定要素メモリ１８０１から入力した値に置き換える。生成された１６×１６画素ブロックに対応する量子化マトリクスは量子化マトリクス変倍部１８０４に入力される。また、１６×１６量子化マトリクス保持部９０７は入力された１６×１６画素ブロックに対応する量子化マトリクスを保持しておく。量子化マトリクス変倍部１８０４においても量子化マトリクス変倍部１７０３と同様に複写による拡大を行った後に３２×３２量子化特定要素メモリ１８０２に格納されているＤＣ成分の要素のデフォルト値を入力して置換する。３２×３２量子化マトリクス保持部９０８は入力された３２×３２画素ブロックに対応する量子化マトリクスを保持しておく。
【０１０７】
画像量子化処理のフローチャートを示した図１０においては、ステップＳ１００８、Ｓ１００９にて上記の拡大方法で量子化マトリクスの拡大を行うことになる。
【０１０８】
以上の構成と動作により、量子化において１６×１６画素ブロックに対応する量子化マトリクス、３２×３２画素ブロックに対応する量子化マトリクスのデフォルトの量子化マトリクスを格納するメモリを省略することができる。特定要素を別途拡大された量子化マトリクスに用いる。これにより、画質への影響の大きい要素に限って量子化マトリクスの要素を変更することで非常にわずかなメモリ容量（この場合１バイト）のみで画質への影響の大きいＤＣ成分を特定要素とすることで画質を改善することができる。
【０１０９】
なお、本実施形態の量子化マトリクスの値についてはこれに限定されない。また、本実施形態において、量子化マトリクス変倍部において要素の繰り返しによる拡大を例にとって説明したが、拡大の方法についてはこれに限定されない。
【０１１０】
＜実施形態５＞
図１、図４、図５、図７、図９、図１１、図１７、図１８に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、図１、図４、図５、図７、図９、図１１に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
【０１１１】
図１５は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【０１１２】
ＣＰＵ１５０１は、ＲＡＭ１５０２やＲＯＭ１５０３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、ＣＰＵ１５０１は、図１、図３に示した各処理部として機能することになる。
【０１１３】
ＲＡＭ１５０２は、外部記憶装置１５０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）１５０９を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、ＲＡＭ１５０２は、ＣＰＵ１５０１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ１５０２は、例えば、フレームメモリとして割当てたり、その他の各種のエリアを適宜提供することができる。
【０１１４】
ＲＯＭ１５０３には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部１５０４は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をＣＰＵ１５０１に対して入力することができる。表示部１５０５は、ＣＰＵ１５０１による処理結果を表示する。また表示部１５０５は例えば液晶ディスプレイのような表示装置で構成される。
【０１１５】
外部記憶装置１５０６は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置１５０６には、ＯＳ（オペレーティングシステム）や、図１、図４、図５、図７、図９、図１１、図１７、図１８に示した各部の機能をＣＰＵ１５０１に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置１５０６には、処理対象としての各画像データが保存されていても良い。
【０１１６】
外部記憶装置１５０６に保存されているコンピュータプログラムやデータは、ＣＰＵ１５０１による制御に従って適宜ＲＡＭ１５０２にロードされ、ＣＰＵ１５０１による処理対象となる。Ｉ／Ｆ１５０７には、ＬＡＮやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのＩ／Ｆ１５０７を介して様々な情報を取得したり、送出したりすることができる。１５０８は上述の各部を繋ぐバスである。
【０１１７】
上述の構成からなる作動は前述のフローチャートで説明した作動をＣＰＵ１５０１が中心となってその制御を行う。
【０１１８】
＜その他の実施形態＞
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【０１１９】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【０１２０】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【図１】
2013146038.tif 000003
【図２】
2013146038.tif 000004
【図３】
2013146038.tif 000005
【図４】
2013146038.tif 000006
【図５】
2013146038.tif 000007
【図６】
2013146038.tif 000008
【図７】
2013146038.tif 000009
【図８】
2013146038.tif 000010
【図９】
2013146038.tif 000011
【図１０】
2013146038.tif 000012
【図１１】
2013146038.tif 000013
【図１２】
2013146038.tif 000014
【図１３】
2013146038.tif 000015
【図１４】
2013146038.tif 000016
【図１５】
2013146038.tif 000017
【図１７】
2013146038.tif 000018
【図１８】
2013146038.tif 000019
【図１６】
2013146038.tif 000020