(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-31
(45)【発行日】2024-06-10
(54)【発明の名称】画像復号装置、画像復号方法、及びプログラム
(51)【国際特許分類】
H04N 19/126 20140101AFI20240603BHJP
H04N 19/136 20140101ALI20240603BHJP
H04N 19/176 20140101ALI20240603BHJP
【FI】
H04N19/126
H04N19/136
H04N19/176
(21)【出願番号】P 2023067181
(22)【出願日】2023-04-17
(62)【分割の表示】P 2019044275の分割
【原出願日】2019-03-11
【審査請求日】2023-04-17
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】志摩 真悟
【審査官】田中 純一
(56)【参考文献】
【文献】特許第7267785(JP,B2)
【文献】国際公開第2019/188097(WO,A1)
【文献】特開2022-016726(JP,A)
【文献】特表2007-503775(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロックを用いてビットストリームから画像を復号することが可能な画像復号装置において、
前記第1のブロックに対応する第1の量子化変換係数群に対応するデータと、前記第2のブロックに対応する第2の量子化変換係数群に対応するデータとを前記ビットストリームから復号する復号手段と、
N×M個の要素を有する第1の量子化マトリクスを用いて前記第1の量子化変換係数群から周波数成分を表す第1の変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを用いて前記第2の量子化変換係数群から周波数成分を表す第2の変換係数群を導出する逆量子化手段と、
前記第1の変換係数群に対して逆変換処理を実行することによって前記第1のブロックに対応する第1の予測誤差群を導出し、前記第2の変換係数群に対して逆変換処理を実行することによって前記第2のブロックに対応する第2の予測誤差群を導出する逆変換手段と、
前記第1の予測誤差群と予測画像データとに基づく画像データを少なくとも再生する再生部と
を有し、
前記予測画像データは、イントラ予測とインター予測とを組み合わせた予測方法を用いて導出することが可能であり、
前記N×M個の要素を有する前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する第3の量子化マトリクスにおける一部の要素を含むとともに前記第3の量子化マトリクスにおける他の要素を含まない量子化マトリクスであり、
前記N×M個の要素を有する前記第2の量子化マトリクスは、R×S個の要素を有する第4の量子化マトリクスにおける全ての要素を含む量子化マトリクスであり、
前記第3の量子化マトリクスは前記第4の量子化マトリクスとは異なる
ことを特徴とする画像復号装置。
【請求項2】
P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロックを用いてビットストリームから画像を復号することが可能な画像復号方法において、
前記第1のブロックに対応する第1の量子化変換係数群に対応するデータと、前記第2のブロックに対応する第2の量子化変換係数群に対応するデータとを前記ビットストリームから復号する復号工程と、
N×M個の要素を有する第1の量子化マトリクスを用いて前記第1の量子化変換係数群から周波数成分を表す第1の変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを用いて前記第2の量子化変換係数群から周波数成分を表す第2の変換係数群を導出する逆量子化工程と、
前記第1の変換係数群に対して逆変換処理を実行することによって前記第1のブロックに対応する第1の予測誤差群を導出し、前記第2の変換係数群に対して逆変換処理を実行することによって前記第2のブロックに対応する第2の予測誤差群を導出する逆変換工程と、
前記第1の予測誤差群と予測画像データとに基づく画像データを少なくとも再生する再生工程と
を有し、
前記予測画像データは、イントラ予測とインター予測とを組み合わせた予測方法を用いて導出することが可能であり、
前記N×M個の要素を有する前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する第3の量子化マトリクスにおける一部の要素を含むとともに前記第3の量子化マトリクスにおける他の要素を含まない量子化マトリクスであり、
前記N×M個の要素を有する前記第2の量子化マトリクスは、R×S個の要素を有する第4の量子化マトリクスにおける全ての要素を含む量子化マトリクスであり、
前記第3の量子化マトリクスは前記第4の量子化マトリクスとは異なる
ことを特徴とする画像復号方法。
【請求項3】
前記第1及び第2のブロックは正方形のブロックである
ことを特徴とする請求項2記載の画像復号方法。
【請求項4】
前記P及び前記Qは64であり、前記N及び前記Mは32である
ことを特徴とする請求項2記載の画像復号方法。
【請求項5】
前記P及び前記Qは128であり、前記N及び前記Mは32である
ことを特徴とする請求項2記載の画像復号方法。
【請求項6】
前記第1の量子化マトリクスは、DC成分に対応する要素以外は、前記第3の量子化マトリクスにおける前記一部の要素で構成される量子化マトリクスであり、
前記第2の量子化マトリクスは、DC成分に対応する要素以外は、前記第4の量子化マトリクスにおける前記全ての要素で構成される量子化マトリクスである
ことを特徴とする請求項2記載の画像復号方法。
【請求項7】
前記第1の変換係数群はN×M個の変換係数であり、
前記第2の変換係数群はN×M個の変換係数である
ことを特徴とする請求項2記載の画像復号方法。
【請求項8】
前記第1及び第2のブロックは、非正方形のブロックである
ことを特徴とする請求項2記載の画像復号方法。
【請求項9】
前記第1の予測誤差群はP×Q個の予測誤差であり、
前記第2の予測誤差群はN×M個の予測誤差である
ことを特徴とする請求項2記載の画像復号方法。
【請求項10】
前記第1の変換係数群はN×M個の変換係数であり、
前記第1の予測誤差群はP×Q個の予測誤差であり、
前記逆変換工程において、前記第1の変換係数群に対して前記逆変換処理を実行することによって、前記第1の変換係数群から前記第1の予測誤差群を導出する
ことを特徴とする請求項2記載の画像復号方法。
【請求項11】
前記逆変換処理は、前記第1の変換係数群と、M×Qの行列との乗算を行うことで、N×Q個の中間値を導出し、さらに、P×Nの行列と、前記N×Q個の中間値との乗算を行うことで、前記第1の変換係数群から前記第1の予測誤差群を導出する処理である
ことを特徴とする請求項10記載の画像復号方法。
【請求項12】
P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロックを用いて画像を符号化することが可能な画像符号化装置において、
前記第1のブロックに対応する第1の予測誤差群に対して変換処理を実行することによって第1の変換係数群を導出し、前記第2のブロックに対応する第2の予測誤差群に対して変換処理を実行することによって第2の変換係数群を導出する変換手段と、
N×M個の要素を有する第1の量子化マトリクスを用いて前記第1の変換係数群を量子化して第1の量子化変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを用いて前記第2の変換係数群を量子化して第2の量子化変換係数群を導出する量子化手段と、
前記第1のブロックに対応する前記第1の量子化変換係数群に対応するデータと、前記第2のブロックに対応する前記第2の量子化変換係数群に対応するデータとを符号化する符号化手段と
を有し、
少なくとも前記第1の予測誤差群は、イントラ予測とインター予測とを組み合わせた予測方法を用いて導出することが可能であり、
前記N×M個の要素を有する前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する第3の量子化マトリクスにおける一部の要素を含むとともに前記第3の量子化マトリクスにおける他の要素を含まない量子化マトリクスであり、
前記N×M個の要素を有する前記第2の量子化マトリクスは、R×S個の要素を有する第4の量子化マトリクスにおける全ての要素を含む量子化マトリクスであり、
前記第3の量子化マトリクスは前記第4の量子化マトリクスとは異なる
ことを特徴とする画像符号化装置。
【請求項13】
P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロックを用いて画像を符号化することが可能な画像符号化方法において、
前記第1のブロックに対応する第1の予測誤差群に対して変換処理を実行することによって第1の変換係数群を導出し、前記第2のブロックに対応する第2の予測誤差群に対して変換処理を実行することによって第2の変換係数群を導出する変換工程と、
N×M個の要素を有する第1の量子化マトリクスを用いて前記第1の変換係数群を量子化して第1の量子化変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを用いて前記第2の変換係数群を量子化して第2の量子化変換係数群を導出する量子化工程と、
前記第1のブロックに対応する前記第1の量子化変換係数群に対応するデータと、前記第2のブロックに対応する前記第2の量子化変換係数群に対応するデータとを符号化する符号化工程と
を有し、
少なくとも前記第1の予測誤差群は、イントラ予測とインター予測とを組み合わせた予測方法を用いて導出することが可能であり、
前記N×M個の要素を有する前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する第3の量子化マトリクスにおける一部の要素を含むとともに前記第3の量子化マトリクスにおける他の要素を含まない量子化マトリクスであり、
前記N×M個の要素を有する前記第2の量子化マトリクスは、R×S個の要素を有する第4の量子化マトリクスにおける全ての要素を含む量子化マトリクスであり、
前記第3の量子化マトリクスは前記第4の量子化マトリクスとは異なる
ことを特徴とする画像符号化方法。
【請求項14】
前記第1及び第2のブロックは正方形のブロックである
ことを特徴とする請求項13記載の画像符号化方法。
【請求項15】
前記P及び前記Qは64であり、前記N及び前記Mは32である
ことを特徴とする請求項13記載の画像符号化方法。
【請求項16】
前記P及び前記Qは128であり、前記N及び前記Mは32である
ことを特徴とする請求項13記載の画像符号化方法。
【請求項17】
前記第1の量子化マトリクスは、DC成分に対応する要素以外は、前記第3の量子化マトリクスにおける前記一部の要素で構成される量子化マトリクスであり、
前記第2の量子化マトリクスは、DC成分に対応する要素以外は、前記第4の量子化マトリクスにおける前記全ての要素で構成される量子化マトリクスである
ことを特徴とする請求項13記載の画像符号化方法。
【請求項18】
前記第1の変換係数群はN×M個の変換係数であり、
前記第2の変換係数群はN×M個の変換係数である
ことを特徴とする請求項13記載の画像符号化方法。
【請求項19】
前記第1及び第2のブロックは、非正方形のブロックである
ことを特徴とする請求項13記載の画像符号化方法。
【請求項20】
前記第1の予測誤差群はP×Q個の予測誤差であり、
前記第2の予測誤差群はN×M個の予測誤差である
ことを特徴とする請求項13記載の画像符号化方法。
【請求項21】
前記第1の予測誤差群はP×Q個の予測誤差であり、
前記第1の変換係数群はN×M個の変換係数であり、
前記変換工程において、前記第1の予測誤差群に対して前記変換処理を実行することによって、前記第1の予測誤差群から前記第1の変換係数群を導出する
ことを特徴とする請求項13記載の画像符号化方法。
【請求項22】
前記変換処理は、前記第1の予測誤差群と、Q×Mの行列との乗算を行うことで、P×M個の中間値を導出し、さらに、N×Pの行列と、前記P×M個の中間値との乗算を行うことで、前記第1の予測誤差群から前記第1の変換係数群を導出する処理である
ことを特徴とする請求項21記載の画像符号化方法。
【請求項23】
コンピュータに、請求項2~11のいずれか1項に記載の画像復号方法を実行させるためのプログラム。
【請求項24】
コンピュータに、請求項13~22のいずれか1項に記載の画像符号化方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像符号化技術に関する。
【背景技術】
【0002】
動画像を圧縮する符号化方式として、HEVC(High Efficiency Video Coding)符号化方式(以下、HEVCと記す)が知られている。HEVCでは符号化効率の向上のため、従来のマクロブロック(16×16画素)より大きなサイズの基本ブロックが採用された。この大きなサイズの基本ブロックはCTU(Coding Tree Unit)と呼ばれ、そのサイズは最大64×64画素である。CTUはさらに予測や変換を行う単位となるサブブロックに分割される。
【0003】
また、HEVCにおいては、直交変換を施した後の係数(以下、直交変換係数と記す)を、周波数成分に応じて重み付けをするために量子化マトリクスが用いられている。量子化マトリクスが用いることで、人間の視覚において劣化が目立ちにくい高周波成分のデータを、低周波成分のデータよりも削減することで、画質を維持しながら圧縮効率を高めることが可能となっている。特開2013-38758(特許文献1)では、このような量子化マトリクスを示す情報を符号化する技術が開示されている。
【0004】
また、近年、HEVCの後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始されている。具体的には、ISO/IECとITU-Tとによって設立されたJVET(Joint Video Experts Team)によって、VVC(Versatile Video Coding)符号化方式(以下、VVC)の標準化が進められている。この標準化において、符号化効率の向上のため、直交変換を行う際のブロックサイズが大きい場合に、高周波成分の直交変換係数を強制的に0とすることで符号量を削減する新たな手法(以下、ゼロアウトと呼称する)が検討されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
VVCにおいても、HEVCと同様に量子化マトリクスの導入が検討されている。しかしながら、HEVCにおける量子化マトリクスは従来の直交変換のサイズと等しい大きさの量子化マトリクスを用いて量子化する方法を前提としており、一部の直交変換係数をゼロとする新しい手法であるゼロアウトには対応できていない。このため、ゼロアウトされた直交変換係数に対しては、周波数成分に応じた量子化制御を行うことができず、主観画質を向上できないという課題があった。
【0007】
そこで、本発明の目的は、一部の直交変換係数が強制的に0とされる手法に対応した量子化マトリクスを用いた量子化処理を可能とすることで、当該手法を用いた場合であっても主観画質を向上させることを目的としている。
【課題を解決するための手段】
【0008】
前述の問題点を解決するため、本発明の画像復号装置は以下の構成を有する。すなわちP×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロックを用いてビットストリームから画像を復号することが可能な画像復号装置において、前記第1のブロックに対応する第1の量子化変換係数群に対応するデータと、前記第2のブロックに対応する第2の量子化変換係数群に対応するデータとを前記ビットストリームから復号する復号手段と、N×M個の要素を有する第1の量子化マトリクスを用いて前記第1の量子化変換係数群から周波数成分を表す第1の変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを用いて前記第2の量子化変換係数群から周波数成分を表す第2の変換係数群を導出する逆量子化手段と、前記第1の変換係数群に対して逆変換処理を実行することによって前記第1のブロックに対応する第1の予測誤差群を導出し、前記第2の変換係数群に対して逆変換処理を実行することによって前記第2のブロックに対応する第2の予測誤差群を導出する逆変換手段と、前記第1の予測誤差群と予測画像データとに基づく画像データを少なくとも再生する再生部とを有し、前記予測画像データは、イントラ予測とインター予測とを組み合わせた予測方法を用いて導出することが可能であり、前記N×M個の要素を有する前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する第3の量子化マトリクスにおける一部の要素を含むとともに前記第3の量子化マトリクスにおける他の要素を含まない量子化マトリクスであり、前記N×M個の要素を有する前記第2の量子化マトリクスは、R×S個の要素を有する第4の量子化マトリクスにおける全ての要素を含む量子化マトリクスであり、前記第3の量子化マトリクスは前記第4の量子化マトリクスとは異なる。
【発明の効果】
【0009】
本発明によれば、一部の直交変換係数が強制的に0とされる手法に対応した量子化マトリクスを用いた量子化処理を可能とすることで、当該手法を用いた場合であっても主観画質を向上させることができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態1における画像符号化装置の構成を示すブロック図である。
【
図2】実施形態2における画像復号装置の構成を示すブロック図である。
【
図3】実施形態1に係る画像符号化装置における画像符号化処理を示すフローチャートである。
【
図4】実施形態2に係る画像復号装置における画像復号処理を示すフローチャートである。
【
図5】本発明の画像符号化装置や画像復号装置に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【
図6】実施形態1で出力されるビットストリームの一例を示す図である。
【
図7】実施形態1および実施形態2で用いられるサブブロック分割の一例を示す図である。
【
図8】実施形態1および実施形態2で用いられる量子化マトリクスの一例を示す図である。
【
図9】実施形態1および実施形態2で用いられる量子化マトリクスの各要素の走査方法を示す図である。
【
図10】実施形態1および実施形態2で生成される量子化マトリクスの差分値行列を示す図である。
【
図11】量子化マトリクスの差分値の符号化に用いられる符号化テーブルの一例を示す図である。
【
図12】実施形態1および実施形態2で用いられる量子化マトリクスの他の例を示す図である。
【発明を実施するための形態】
【0011】
本発明の実施の形態を、添付の図面に基づいて説明する。なお、以下の実施形態において示す構成は一例であり、本発明は以下の実施形態で説明する構成に限定されるものではない。なお、基本ブロックや、サブブロック、量子化マトリクス、ベース量子化マトリクスといった呼称は、各実施形態において便宜的に用いている呼称であり、その意味が変わらない範囲で、適宜、他の呼称を用いてもよい。例えば、基本ブロックやサブブロックは、基本ユニットやサブユニットと称されてもよいし、単にブロックやユニットと称されてもよい。また、以下の説明において、長方形とは、一般的な定義の通り、4つの内角が直角であり、2本の対角線が等しい長さを持つ四角形であるものとする。また、正方形とは、一般的な定義の通り、長方形の内、4つの角がすべて等しく4つの辺がすべて等しい四角形であるものとする。つまり、正方形は長方形の一種であるものとする。
【0012】
<実施形態1>
以下、本発明の実施形態を、図面を用いて説明する。
【0013】
まず、ゼロアウト(zeroing out)について、より詳細に説明する。ゼロアウトとは、前述のように、符号化対象のブロックの直交変換係数の一部を強制的に0とする処理である。例えば、入力画像(ピクチャ)における64×64画素のブロックが符号化対象のブロックであるとする。このとき、直交変換係数についても64×64のサイズとなる。ゼロアウトとは、例えば、この64×64の直交変換係数の一部について、仮に、直交変換の結果、0ではない値を有する場合であっても、0であると見做して符号化を行う処理である。例えば、2次元の直交変換係数におけるDC成分を含む左上の所定の範囲に対応する低周波成分については強制的に0とする対象とはせずに、それら低周波成分よりも高い周波数成分に対応する直交変換係数については、常に0とする。
【0014】
次に、本実施形態の画像符号化装置について説明する。
図1は本実施形態の画像符号化装置を示すブロック図である。
図1において、101は画像データを入力する端子である。
【0015】
102はブロック分割部であり、入力画像を複数の基本ブロックに分割し、基本ブロック単位の画像を後段に出力する。
【0016】
103は、量子化マトリクスを生成し、格納する量子化マトリクス保持部である。ここで、量子化マトリクスとは、周波数成分に応じて、直交変換係数に対する量子化処理を重み付けするためのものである。後述する量子化処理における、各直交変換係数のための量子化ステップは、一例として、基準となるパラメータ値(量子化パラメータ)に基づくスケール値(量子化スケール)に、量子化マトリクスにおける各要素の値を乗算することで重み付けされる。
【0017】
量子化マトリクス保持部110によって格納される量子化マトリクスの生成方法については特に限定しない。例えば、ユーザが量子化マトリクスを示す情報を入力してもよいし、入力画像の特性から画像符号化装置が算出してもよい。また、初期値として予め指定されたものを使用してもよい。本実施形態では、
図8(a)に示される8×8のベース量子化マトリクスに加え、ベース量子化マトリクスを拡大して生成された、
図8(b)、(c)に示される2種類の32×32の二次元の量子化マトリクスが生成され、格納されるものとする。
図8(b)の量子化マトリクスは、
図8(a)の8×8のベース量子化マトリクスの各要素を、垂直・水平方向に4回繰り返すことで4倍に拡大した32×32の量子化マトリクスである。一方、
図8(c)の量子化マトリクスは、
図8(a)のベース量子化マトリクスの左上4×4部分の各要素を、垂直・水平方向に8回繰り返すことで拡大した32×32の量子化マトリクスである。
【0018】
以上のように、ベース量子化マトリクスは、8×8画素のサブブロックにおける量子化だけではなく、ベース量子化マトリクスよりも大きなサイズの量子化マトリクスを作成するためにも使用される量子化マトリクスである。なお、ベース量子化マトリクスのサイズは8×8であるものとするが、このサイズに限られない。また、サブブロックのサイズに応じて別のベース量子化マトリクスを用いてもよい。例えば、8×8、16×16、32×32の3種類のサブブロックが用いられる場合、それぞれに対応する3種類のベース量子化マトリクスを用いることもできる。
【0019】
104は予測部であり、基本ブロック単位の画像データに対し、サブブロック分割を決定する。つまり、基本ブロックをサブブロックへと分割するか否かを決定し、分割するとすればどのように分割するか決定する。サブブロックへ分割しない場合、サブブロックは基本ブロックと同じサイズとなる。サブブロックは正方形でもよいし、正方形以外の長方形であってもよい。
【0020】
そして、予測部104は、サブブロック単位でフレーム内予測であるイントラ予測や、フレーム間予測であるインター予測などを行い、予測画像データを生成する。
【0021】
例えば、予測部104は、1つのサブブロックに対して行う予測方法を、イントラ予測及びインター予測の中から選択し、選択した予測を行って、当該サブブロックのための予測画像データを生成する。ただし、用いられる予測方法はこれらに限定されず、イントラ予測とインター予測とを組み合わせた予測などを用いてもよい。
【0022】
さらに、予測部104は、入力された画像データと前記予測画像データから予測誤差を算出し、出力する。例えば、予測部104は、サブブロックの各画素値と、当該サブブロックに対する予測によって生成された予測画像データの各画素値との差分を算出し、それを予測誤差として算出する。
【0023】
また、予測部104は、予測に必要な情報、例えばサブブロックの分割状態を示す情報、当該サブブロックの予測方法を示す予測モードや、動きベクトル等の情報も予測誤差と併せて出力する。以下ではこの予測に必要な情報を予測情報と総称する。
【0024】
105は変換・量子化部である。変換・量子化部105は、予測部104によって算出された予測誤差をサブブロック単位で直交変換して、予測誤差の各周波数成分を表す直交変換係数を獲得する。そして、変換・量子化部105は、さらに量子化マトリクス保持部103に格納されている量子化マトリクスと、量子化パラメータとを用いて量子化を行い、量子化された直交変換係数である量子化係数を獲得する。なお、直交変換を行う機能と、量子化を行う機能とは別々の構成にしてもよい。
【0025】
106は逆量子化・逆変換部である。逆量子化・逆変換部106は、変換・量子化部105から出力された量子化係数を量子化マトリクス保持部103に格納されている量子化マトリクスと、量子化パラメータとを用いて逆量子化して直交変換係数を再生する。そして、逆量子化・逆変換部106は、さらに逆直交変換して予測誤差を再生する。このように、量子化マトリクスと量子化パラメータとを用いて、直交変換係数を再生(導出)する処理を逆量子化と称するものとする。なお、逆量子化を行う機能と、逆量子化を行う機能とは別々の構成にしてもよい。また、画像復号装置が量子化パラメータを導出するための情報も符号化部110によってビットストリームに符号化される。
【0026】
108は、再生された画像データを格納しておくフレームメモリである。
【0027】
107は、画像再生部である。予測部104から出力された予測情報に基づいて、フレームメモリ108を適宜参照して予測画像データを生成し、これと入力された予測誤差から再生画像データを生成し、出力する。
【0028】
109は、インループフィルタ部である。再生画像に対し、デブロッキングフィルタやサンプルアダプティブオフセットなどのインループフィルタ処理を行い、フィルタ処理された画像を出力する。
【0029】
110は、符号化部である。変換・量子化部105から出力された量子化係数および予測部104から出力された予測情報を符号化して、符号データを生成し出力する。
【0030】
113は、量子化マトリクス符号化部である。量子化マトリクス保持部103から出力されたベース量子化マトリクスを符号化して、画像復号装置がベース量子化マトリクスを導出するための量子化マトリクス符号データを生成し出力する。
【0031】
111は、統合符号化部である。量子化マトリクス符号化部113からの出力である量子化マトリクス符号データを用いて、ヘッダ符号データを生成する。さらに符号化部110から出力された符号データと合わせて、ビットストリームを形成して出力する。
【0032】
112は、端子であり、統合符号化部111で生成されたビットストリームを外部に出力する。
【0033】
上記画像符号化装置における画像の符号化動作を以下に説明する。本実施形態では動画像データをフレーム単位に入力する構成とする。さらに本実施形態では説明のため、ブロック分割部101においては64×64画素の基本ブロックに分割するものとして説明するが、これに限定されない。例えば、128×128画素のブロックを基本ブロックとしてもよいし、32×32画素のブロックを基本ブロックとしてもよい。
【0034】
画像符号化装置は、画像の符号化に先立ち、量子化マトリクスの生成および符号化を行う。なお、以下の説明において、一例として、量子化マトリクス800や各ブロックにおける水平方向をx座標、垂直方向をy座標とし、それぞれ、右方向を正、下方向を正とする。また、量子化マトリクス800における左上端の要素の座標を(0,0)とする。つまり、8×8のベース量子化マトリクスの右下端の要素の座標は、(7,7)となる。32×32の量子化マトリクスの右下端の要素の座標は(31,31)となる。
【0035】
最初に、量子化マトリクス保持部103は量子化マトリクスを生成する。サブブロックのサイズや量子化される直交変換係数のサイズ、予測方法の種類に応じて、量子化マトリクスが生成される。本実施形態では、まず
図8(a)に示された後述の量子化マトリクスの生成に用いられる8×8のベース量子化マトリクスが生成される。次に、このベース量子化マトリクスを拡大し、
図8(b)および
図8(c)に示される2種類の32×32の量子化マトリクスを生成する。
図8(b)の量子化マトリクスは、
図8(a)の8×8のベース量子化マトリクスの各要素を、垂直・水平方向に4回繰り返すことで4倍に拡大した32×32の量子化マトリクスである。
【0036】
つまり、
図8(b)に示す例では、32×32の量子化マトリクスにおけるx座標が0~3及びy座標が0~3の範囲内の各要素には、ベース量子化マトリクスの左上端の要素の値である1が割り当てられることとなる。また、32×32の量子化マトリクスにおけるx座標が28~31及びy座標が28~31の範囲内の各要素には、ベース量子化マトリクスの右下端の要素の値である15が割り当てられることとなる。
図8(b)の例では、ベース量子化マトリクスにおける各要素の値の全てが、32×32の量子化マトリクスの各要素の内のいずれかに割り当てられている。
【0037】
一方、
図8(c)の量子化マトリクスは、
図8(a)のベース量子化マトリクスの左上4×4部分の各要素を、垂直・水平方向に8回繰り返すことで拡大した32×32の量子化マトリクスである。
【0038】
つまり、
図8(c)に示す例では、32×32の量子化マトリクスにおけるx座標が0~7及びy座標が0~7の範囲内の各要素には、ベース量子化マトリクスの左上4×4部分の左上端の要素の値である1が割り当てられることとなる。また、32×32の量子化マトリクスにおけるx座標が24~31及びy座標が24~31の範囲内の各要素には、ベース量子化マトリクスの左上4×4部分の右下端の要素の値である7が割り当てられることとなる。
図8(c)の例では、ベース量子化マトリクスにおける各要素の値の左上4×4部分(x座標が0~3及びy座標が0~3の範囲)に対応する要素の値だけが、32×32の量子化マトリクスの各要素に割り当てられている。
【0039】
ただし、生成される量子化マトリクスはこれに限定されず、量子化される直交変換係数のサイズが32×32以外にも存在する場合は、16×16や8×8、4×4など、量子化される直交変換係数のサイズに対応した量子化マトリクスが生成されてもよい。ベース量子化マトリクスや量子化マトリクスを構成する各要素の決定方法は特に限定されない。例えば、所定の初期値を用いてもよいし、個別に設定してもよい。また、画像の特性に応じて生成されても構わない。
【0040】
量子化マトリクス保持部103には、このようにして生成されたベース量子化マトリクスや量子化マトリクスが保持される。
図8(b)は後述の32×32のサブブロック、
図8(c)は64×64のサブブロックに対応する直交変換係数の量子化に用いられる量子化マトリクスの一例である。太枠の800は、量子化マトリクスを表している。説明を簡易にするため、それぞれ32×32の1024画素分の構成とし、太枠内の各正方形は量子化マトリクスを構成している各要素を表しているものとする。本実施形態では、
図8(b)、(c)に示された三種の量子化マトリクスが二次元の形状で保持されているものとするが、量子化マトリクス内の各要素はもちろんこれに限定されない。また、量子化される直交変換係数のサイズによって、あるいは符号化対象が輝度ブロックか色差ブロックかによって、同じ予測方法に対して複数の量子化マトリクスを保持することも可能である。一般的に、量子化マトリクスは人間の視覚特性に応じた量子化処理を実現するため、
図8(b)、(c)に示すように量子化マトリクスの左上部分に相当する低周波部分の要素は小さく、右下部分に相当する高周波部分の要素は大きくなっている。
【0041】
量子化マトリクス符号化部113は、二次元形状で格納されているベース量子化マトリクスの各要素を量子化マトリクス保持部106から順に読み出し、各要素を走査して差分を計算し、その各差分を一次元の行列に配置する。本実施形態では、
図8(a)に示されたベース量子化マトリクスは
図9に示された走査方法を用い、要素ごとに走査順に直前の要素との差分を計算するものとする。例えば
図8(a)で示された8×8のベース量子化マトリクスは
図9で示された走査方法によって走査されるが、左上に位置する最初の要素1の次はそのすぐ下に位置する要素2が走査され、差分である+1が計算される。また、量子化マトリクスの最初の要素(本実施形態では1)の符号化には、所定の初期値(例えば8)との差分を計算するものとするが、もちろんこれに限定されず、任意の値との差分や、最初の要素の値そのものを用いてもよい。
【0042】
このようにして、本実施形態では、
図8(a)のベース量子化マトリクスは、
図9の走査方法を用い、
図10に示される差分行列が生成される。量子化マトリクス符号化部113はさらに前記差分行列を符号化して量子化マトリクス符号データを生成する。本実施形態では
図11(a)に示される符号化テーブルを用いて符号化するものとするが、符号化テーブルはこれに限定されず、例えば
図11(b)に示される符号化テーブルを用いてもよい。このようにして生成された量子化マトリクス符号データは後段の統合符号化部111に出力される。
【0043】
図1に戻り、統合符号化部111では画像データの符号化に必要なヘッダ情報を符号化し、量子化マトリクスの符号データを統合する。
【0044】
続いて、画像データの符号化が行われる。端子101から入力された1フレーム分の画像データはブロック分割部102に入力される。
【0045】
ブロック分割部102では、入力された画像データを複数の基本ブロックに分割し、基本ブロック単位の画像を予測部104に出力する。本実施形態では64×64画素の基本ブロック単位の画像を出力するものとする。
【0046】
予測部104では、ブロック分割部102から入力された基本ブロック単位の画像データに対し予測処理を実行する。具体的には、基本ブロックをさらに細かいサブブロックに分割するサブブロック分割を決定し、さらにサブブロック単位でイントラ予測やインター予測などの予測モードを決定する。
【0047】
図7にサブブロック分割方法の一例を示す。太枠の700は基本ブロックを表しており、説明を簡易にするため、64×64画素の構成とし、太枠内の各四角形はサブブロックを表すものとする。
図7(b)は四分木の正方形サブブロック分割の一例を表しており、648×64画素の基本ブロックは32×32画素のサブブロックに分割されている。一方、
図7(c)~(f)は長方形サブブロック分割の一例を表しており、
図7(c)では基本ブロックは32×64画素の縦長、
図7(d)では64×32画素の横長の長方形のサブブロックに分割されている。また、
図7(e)、(f)では、1:2:1の比で長方形サブブロックに分割されている。このように正方形だけではなく、正方形以外の長方形のサブブロックも用いて符号化処理を行っている。また、基本ブロックを更に複数の正方形のブロックに分割し、その分割した正方形のブロックを基準としてサブブロック分割を行ってもよい。言い換えると、基本ブロックのサイズは64×64画素に限定されず、また、複数のサイズの基本ブロックを用いてもよい。
【0048】
また、本実施形態では、64×64画素の基本ブロックを分割しない
図7(a)、および、
図7(b)のような四分木分割のみが用いられるものとするが、サブブロック分割方法はこれに限定されない。
図7(e)、(f)のような三分木分割または
図7(c)や
図7(d)のような二分木分割を用いても構わない。
図7(a)や
図7(b)以外のサブブロック分割も用いられる場合には、量子化マトリクス保持部103にて使用されるサブブロックに対応する量子化マトリクスが生成される。また、生成された量子化マトリクスに対応する新たなベース量子化マトリクスも生成される場合は量子化マトリクス符号化部113にて新たなベース量子化マトリクスも符号化されることとなる。
【0049】
また、本実施形態で用いられる予測部194による予測方法について、更に詳細に説明する。本実施形態では、一例として、イントラ予測、インター予測の2種類の予測方法が用いられるものとする。イントラ予測は符号化対象ブロックの空間的に周辺に位置する符号化済画素を用いて符号化対象ブロックの予測画素を生成し、水平予測や垂直予測、DC予測などのイントラ予測方法の内、使用したイントラ予測方法を示すイントラ予測モードの情報も生成する。インター予測は符号化対象ブロックとは時間的に異なるフレームの符号化済画素を用いて符号化対象ブロックの予測画素を生成し、参照するフレームや動きベクトルなどを示す動き情報も生成する。なお、前述のように、予測部194は、イントラ予測とインター予測とを組み合わせた予測方法を用いてもよい。
【0050】
決定した予測モードおよび符号化済の画素から予測画像データを生成し、さらに入力された画像データと前記予測画像データから予測誤差が生成され、変換・量子化部105に出力される。また、サブブロック分割や予測モードなどの情報は予測情報として、符号化部110、画像再生部107に出力される。
【0051】
変換・量子化部105では、入力された予測誤差に直交変換・量子化を行い、量子化係数を生成する。まずはサブブロックのサイズに対応した直交変換処理が施されて直交変換係数が生成され、次に直交変換係数を予測モードに応じて量子化マトリクス保持部103に格納されている量子化マトリクスを用いて量子化し、量子化係数を生成する。より具体的な直交変換・量子化処理について、以下で説明する。
【0052】
図7(b)で示された32×32のサブブロック分割が選択された場合には、32×32の予測誤差に対し、32×32の直交変換行列を用いた直交変換を施し、32×32の直交変換係数を生成する。具体的には、離散コサイン変換(DCT)に代表される32×32の直交変換行列と32×32の予測誤差の乗算を行い32×32の行列状の中間係数を算出する。この32×32の行列状の中間係数に対し、さらに、前述の32×32の直交変換行列の転置行列との乗算を行い、32×32の直交変換係数を生成する。こうして生成された32×32の直交変換係数に対し、
図8(b)で示された32×32の量子化マトリクスと、量子化パラメータとを用いて量子化し、32×32の量子化係数を生成する。64×64の基本ブロックの中には32×32のサブブロックが4つ存在しているため、上述の処理を4回繰り返す。
【0053】
一方、
図7(a)で示す64×64の分割状態(分割無し)が選択された場合には、64×64の予測誤差に対し、64×64の直交変換行列における奇数番目の行(以下、奇数行と称する)を間引いて生成された32×64の直交変換行列が用いられる。つまり、この奇数行を間引いて生成された32×64の直交変換行列を用いた直交変換を施すことによって、32×32の直交変換係数を生成する。
【0054】
具体的には、まず64×64の直交変換行列から奇数行を間引いて64×32の直交変換行列を生成する。そしてこの64×32の直交変換行列と64×64の予測誤差の乗算を行い、64×32の行列状の中間係数を生成する。この64×32の行列状の中間係数に対し、前述の64×32の直交変換行列を転置させた32×64の転置行列との乗算を行い、32×32の直交変換係数を生成する。そして、変換・量子化部105は、生成した32×32の直交変換係数を64×64の直交変換係数の左上部分(x座標が0~31及びy座標が0~31の範囲)の係数とし、その他を0とすることで、ゼロアウトを実行する。
【0055】
本実施形態では、このように、64×64の予測誤差に対して、64×32の直交変換行列と、この64×32の直交変換行列を転置させた32×64の転置行列とを用いて直交変換を行う。このように32×32の直交変換係数を生成することでゼロアウトを実行する。これにより、64×64の直交変換を行って生成された64×64の直交変換係数の一部を、その値が0でない場合であっても強制的に0とする手法よりも少ない演算量で32×32の直交変換係数を生成できる。つまり、64×64の直交変換行列を用いて直交変換を行って、その結果、ゼロアウトの対象となる直交変換係数が、0であるか否かに関わらずに0と見做して符号化する場合と比較して、直交変換における演算量を低減することができる。なお、64×64の予測誤差から直交変換係数によって32×32の直交変換係数を算出する方法を用いれば演算量を低減させることができるが、ゼロアウトする方法はこの方法に限られず種々の方法を用いることもできる。
【0056】
また、ゼロアウトを実行する場合、ゼロアウトの対象となった範囲の直交変換係数が0であることを示す情報を符号化してもよいし、単に、ゼロアウトが行われたことを示す情報(フラグ等)を符号化してもよい。画像復号装置はそれらの情報を復号することで、ゼロアウトの対象を0と見做して、各ブロックを復号することができる。
【0057】
次に、このように生成された32×32の直交変換係数に対し、変換・量子化部105は、
図8(c)で示された32×32の量子化マトリクスと、量子化パラメータとを用いて量子化し、32×32の量子化係数を生成する。
【0058】
本実施形態では、32×32のサブブロックに対応した32×32の直交変換係数には
図8(b)の量子化マトリクスが用いられ、64×64のサブブロックに対応した32×32の直交変換係数には
図8(c)の量子化マトリクスが用いられるものとする。つまり、ゼロアウトが実行されていない32×32の直交変換係数には
図8(b)を用い、ゼロアウトが実行された64×64のサブブロックに対応した32×32の直交変換係数には
図8(c)の量子化マトリクスが用いられるものとする。ただし、使用される量子化マトリクスはこれに限定されない。生成された量子化係数は符号化部110および逆量子化・逆変換部106に出力される。
【0059】
逆量子化・逆変換部106では、入力された量子化係数を量子化マトリクス保持部103に格納されている量子化マトリクスと、量子化パラメータとを用いて逆量子化して直交変換係数を再生する。そして、逆量子化・逆変換部106は、さらに再生された直交変換係数を逆直交変換して予測誤差を再生する。逆量子化処理には、変換・量子化部105同様、符号化対象のサブブロックの大きさに対応した量子化マトリクスが用いられる。より具体的な逆量子化・逆変換部106による逆量子化・逆直交変換処理について、以下に説明する。
【0060】
図7(b)の32×32のサブブロック分割が選択されている場合、逆量子化・逆変換部106は、変換・量子化部105で生成された32×32の量子化係数は
図8(b)の量子化マトリクスを用いて逆量子化し、32×32の直交変換係数を再生する。そして、逆量子化・逆変換部106は、前述の32×32の転置行列と32×32の直交変換との乗算を行い、32×32の行列状の中間係数を算出する。そして、逆量子化・逆変換部106は、この32×32の行列状の中間係数と前述の32×32の直交変換行列との乗算を行い32×32の予測誤差を再生する。各32×32サブブロックに対して同様の処理を行う。一方、
図7(a)のように、分割無しが選択されている場合、変換・量子化部105で生成された32×32の量子化係数は
図8(c)の量子化マトリクスを用いて逆量子化され、32×32の直交変換係数を再生する。そして、前述の32×64の転置行列と32×32の直交変換との乗算を行い、32×64の行列状の中間係数を算出する。この32×64の行列状の中間係数と前述の64×32の直交変換行列との乗算を行い、64×64の予測誤差を再生する。本実施形態では、サブブロックの大きさに応じて、変換・量子化部105で用いられた量子化マトリクスと同一のものが用いられ逆量子化処理が実行される。再生された予測誤差は画像再生部107に出力される。
【0061】
画像再生部107では、予測部104から入力される予測情報に基づいて、フレームメモリ108に記憶された予測画像の再生に必要なデータを適宜参照して、予測画像を再生する。そして再生された予測画像と逆量子化・逆変換部106から入力された再生された予測誤差から画像データを再生し、フレームメモリ108に入力し、格納する。
【0062】
インループフィルタ部109では、フレームメモリ108から再生画像を読み出し、デブロッキングフィルタなどのインループフィルタ処理を行う。そして、フィルタ処理された画像を再びフレームメモリ108に入力し、再格納する。
【0063】
符号化部110では、ブロック単位で、変換・量子化部105で生成された量子化係数、予測部104から入力された予測情報をエントロピー符号化し、符号データを生成する。エントロピー符号化の方法は特に指定しないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。生成された符号データは統合符号化部111に出力される。
【0064】
統合符号化部111では、前述のヘッダの符号データとともに符号化部110から入力された符号データなどを多重化してビットストリームを形成する。最終的には、ビットストリームは端子112から外部に出力される。
【0065】
図6(a)は実施形態1で出力されるビットストリームの一例である。シーケンスヘッダにはベース量子化マトリクスの符号データが含まれ、各要素の符号化結果で構成されている。ただし、ベース量子化マトリクスの符号データ等が符号化される位置はこれに限定されず、ピクチャヘッダ部やその他のヘッダ部に符号化される構成をとってももちろん構わない。また、1つのシーケンスの中で量子化マトリクスの変更を行う場合、ベース量子化マトリクスを新たに符号化することで更新することも可能である。この際、全ての量子化マトリクスを書き換えてもよいし、書き換える量子化マトリクスに対応する量子化マトリクスのサブブロックの大きさを指定することでその一部を変更するようにすることも可能である。
【0066】
図3は、実施形態1に係る画像符号化装置における符号化処理を示すフローチャートである。
【0067】
まず、画像の符号化に先立ち、ステップS301にて、量子化マトリクス保持部103は二次元の量子化マトリクスを生成し、保持する。本実施形態では、
図8(a)に示されたベース量子化マトリクスおよびベース量子化マトリクスから生成された
図8(b)、(c)に示された量子化マトリクスを生成し、保持するものとする。
【0068】
ステップS302にて、量子化マトリクス符号化部113は、ステップS301にて量子化マトリクスの生成に用いられたベース量子化マトリクスを走査して、走査順で前後する各要素間の差分を算出し、一次元の差分行列を生成する。本実施形態では、
図8(a)に示されたベース量子化マトリクスは
図9の走査方法を用い、
図10に示される差分行列が生成されるものとする。量子化マトリクス符号化部113はさらに生成された差分行列を符号化し、量子化マトリクス符号データを生成する。
【0069】
ステップS303にて、統合符号化部111は、生成された量子化マトリクス符号データとともに、画像データの符号化に必要なヘッダ情報を符号化し、出力する。
【0070】
ステップS304にて、ブロック分割部102はフレーム単位の入力画像を64×64画素の基本ブロック単位に分割する。
【0071】
ステップS305にて、予測部104はステップS304にて生成された基本ブロック単位の画像データに対して、前述した予測方法を用いて予測処理を実行し、サブブロック分割情報や予測モードなどの予測情報および予測画像データを生成する。本実施形態では、
図7(b)に示された32×32画素のサブブロック分割および
図7(a)に示される64×64画素のサブブロックの2種類のサブブロックサイズが用いられる。さらに入力された画像データと前記予測画像データから予測誤差を算出する。
【0072】
ステップS306にて、変換・量子化部105はステップS305で算出された予測誤差を直交変換して直交変換係数を生成する。そして、変換・量子化部105は、さらにステップS301にて生成・保持された量子化マトリクスと、量子化パラメータとを用いて量子化を行い、量子化係数を生成する。具体的には、
図7(b)の32×32画素のサブブロックの予測誤差には32×32の直交変換行列およびその転置行列を用いた乗算を行い、32×32の直交変換係数を生成する。一方、
図7(a)の64×64画素のサブブロックの予測誤差には64×32の直交変換行列およびその転置行列を用いた乗算を行い、32×32の直交変換係数を生成する。本実施形態では、
図7(b)の32×32のサブブロックの直交変換係数には
図8(b)、
図7(a)の64×64のサブブロックに対応する直交変換係数には
図8(c)の量子化マトリクスを用い32×32の直交変換係数を量子化するものとする。
【0073】
ステップS307にて、逆量子化・逆変換部106はステップS306で生成された量子化係数を、ステップS301にて生成・保持された量子化マトリクスと、量子化パラメータとを用いて逆量子化を行い、直交変換係数を再生する。さらに、直交変換係数に対して逆直交変換し、予測誤差を再生する。本ステップでは、それぞれ、ステップS306で用いられた量子化マトリクスと同一のものが用いられ、逆量子化処理が行われる。具体的には、
図7(b)の32×32画素のサブブロックに対応した32×32の量子化係数に対しては、
図8(b)の量子化マトリクスを用いた逆量子化処理を行い、32×32の直交変換係数を再生する。そしてこの32×32の直交変換係数を32×32の直交変換行列およびその転置行列を用いた乗算を行い、32×32画素の予測誤差を再生する。一方、
図7(a)の64×64画素のサブブロックに対応した32×32の量子化係数に対しては、
図8(c)の量子化マトリクスを用いた逆量子化処理を行い、32×32の直交変換係数を再生する。そしてこの32×32の直交変換係数を64×32の直交変換行列およびその転置行列を用いた乗算を行い、64×64画素の予測誤差を再生する。
【0074】
ステップS308にて、画像再生部107はステップS305で生成された予測情報に基づいて予測画像を再生する。さらに再生された予測画像とステップS307で生成された予測誤差から画像データを再生する。
【0075】
ステップS309にて、符号化部110は、ステップS305で生成された予測情報およびステップS306で生成された量子化係数を符号化し、符号データを生成する。また、他の符号データも含め、ビットストリームを生成する。
【0076】
ステップS310にて、画像符号化装置は、フレーム内の全ての基本ブロックの符号化が終了したか否かの判定を行い、終了していればステップS311に進み、そうでなければ次の基本ブロックを対象として、ステップS304に戻る。
【0077】
ステップS311にて、インループフィルタ部109はステップS308で再生された画像データに対し、インループフィルタ処理を行い、フィルタ処理された画像を生成し、処理を終了する。
【0078】
以上の構成と動作により、演算量を減らしつつ周波数成分ごとに量子化を制御し主観画質を向上させることができる。特にステップS305において、直交変換係数の数を減らし、減少した直交変換係数に対応する量子化マトリクスを用いた量子化処理をすることで、演算量を減らしつつ周波数成分ごとに量子化を制御し主観画質を向上させることができる。さらには、直交変換係数の数を減らし低周波部分のみを量子化・符号化する場合には、
図8(c)のようなベース量子化マトリクスの低周波部分のみを拡大する量子化マトリクスを用いることで、低周波部分に最適な量子化制御を実現することができる。なお、ここでいう低周波部分とは、
図8(c)の例では、x座標が0~3及びy座標が0~3の範囲である。
【0079】
なお、本実施形態では、符号量削減のため、
図8(b)、(c)の量子化マトリクスの生成に共通して用いられる
図8(a)のベース量子化マトリクスのみを符号化する構成としたが、
図8(b)、(c)の量子化マトリクス自体を符号化する構成としてもよい。その場合、各量子化マトリクスの周波数成分ごとに独自の値を設定することができるため、周波数成分ごとにより細かな量子化制御を実現することができる。また、
図8(b)、
図8(c)のそれぞれに対し個別のベース量子化マトリクスを設定し、それぞれのベース量子化マトリクスを符号化する構成とすることも可能である。その場合、32×32の直交変換係数と64×64の直交変換係数に対し、それぞれ異なる量子化制御を実施し、より綿密な主観画質の制御を実現することもできる。さらにその場合、64×64の直交変換係数に対応する量子化マトリクスは、8×8のベース量子化マトリクスの左上の4×4部分を8倍に拡大する代わりに、8×8のベース量子化マトリクス全体を4倍に拡大してもよい。こうして64×64の直交変換係数に対しても、より細かな量子化制御を実現することができる。
【0080】
さらには、本実施形態では、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクスが一意に決まる構成としたが、識別子を導入することで選択可能とする構成としても構わない。例えば
図6(b)は、量子化マトリクス符号化方法情報符号を新たに導入することで、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクス符号化を選択的にしたものである。例えば、量子化マトリクス符号化方法情報符号が0を示している場合には、ゼロアウトを用いた64×64画素のサブブロックに対応する直交変換係数に対し、独立した量子化マトリクスである
図8(c)が用いられる。また、符号化方法情報符号が1を示している場合には、ゼロアウトを用いた64×64画素のサブブロックに対し、通常のゼロアウトされないサブブロックに対する量子化マトリクスである
図8(b)が用いられる。一方、符号化方法情報符号が2を示している場合には、8×8のベース量子化マトリクスではなく、ゼロアウトを用いた64×64画素のサブブロックに対して用いられる量子化マトリクスの要素全てを符号化するといった具合である。これにより、量子化マトリクス符号量削減とゼロアウトを用いたサブブロックに対する独自の量子化制御とを選択的に実現することが可能となる。
【0081】
また、本実施形態ではゼロアウトを用いて処理をしたサブブロックは64×64のみとしているが、ゼロアウトを用いて処理をするサブブロックはこれに限定されない。例えば、
図7(c)や
図7(b)に示された32×64や64×32サブブロックに対応する直交変換係数のうち、下半分や右半分の32×32の直交変換係数を強制的に0としても構わない。この場合、上半分や左半分の32×32の直交変換係数のみを量子化・符号化の対象とすることとなり、上半分や左半分の32×32の直交変換係数に対して
図8(b)とは異なる量子化マトリクスを用いて量子化処理を行うこととなる。
【0082】
さらには、生成された直交変換係数のうち、画質への影響が最も大きいと考えられる左上端に位置するDC係数に対応する量子化マトリクスの値を、8×8のベースマトリクスの各要素の値とは別に設定・符号化する構成としてもよい。
図12(b)および
図12(c)は、
図8(b)および
図8(c)と比較してDC成分にあたる左上端に位置する要素の値を変更した例を示している。この場合、
図8(a)のベース量子化マトリクスの情報に加えて、DC部分に位置する「2」を示す情報を別途符号化することにより、
図12(b)および
図12(c)に示される量子化マトリクスを設定することができる。これにより、画質への影響が最も大きい直交変換係数のDC成分に対してより細かい量子化制御を施すことができる。
【0083】
<実施形態2>
図2は、本発明の実施形態2に係る画像復号装置の構成を示すブロック図である。本実施形態では、実施形態1で生成された符号化データを復号する画像復号装置を例にして説明する。
【0084】
201は符号化されたビットストリームが入力される端子である。
【0085】
202は分離復号部であり、ビットストリームから復号処理に関する情報や係数に関する符号データに分離し、またビットストリームのヘッダ部に存在する符号データを復号する。本実施形態では、量子化マトリクス符号を分離し、後段に出力する。分離復号部202は
図1の統合符号化部111と逆の動作を行う。
【0086】
209は量子化マトリクス復号部であり、量子化マトリクス符号をビットストリームから復号してベース量子化マトリクスを再生し、さらにベース量子化マトリクスから各量子化マトリクスを生成する処理を実行する。
【0087】
203は復号部であり、分離復号部202から出力された符号データを復号し、量子化係数および予測情報を再生(導出)する。
【0088】
204は逆量子化・逆変換部であり、
図1の逆量子化・逆変換部106と同様に、再生された量子化マトリクスと、量子化パラメータとを用いて量子化係数に逆量子化を行って直交変換係数を獲得し、さらに逆直交変換を行って、予測誤差を再生する。なお、量子化パラメータを導出するための情報も復号部203によってビットストリームから復号される。また、逆量子化を行う機能と、逆量子化を行う機能とは別々の構成にしてもよい。
【0089】
206はフレームメモリである。再生されたピクチャの画像データを格納しておく。
【0090】
205は画像再生部である。入力された予測情報に基づいてフレームメモリ206を適宜参照して予測画像データを生成する。そして、この予測画像データと逆量子化・逆変換部204で再生された予測誤差から再生画像データを生成し、出力する。
【0091】
207はインループフィルタ部である。
図1の109同様、再生画像に対し、デブロッキングフィルタなどのインループフィルタ処理を行い、フィルタ処理された画像を出力する。
【0092】
208は端子であり、再生された画像データを外部に出力する。
【0093】
上記画像復号装置における画像の復号動作を以下に説明する。本実施形態では、実施形態1で生成されたビットストリームをフレーム単位(ピクチャ単位)で入力する構成となっている。
【0094】
図2において、端子201から入力された1フレーム分のビットストリームは分離復号部202に入力される。分離復号部202では、ビットストリームから復号処理に関する情報や係数に関する符号データに分離し、ビットストリームのヘッダ部に存在する符号データを復号する。より具体的には、量子化マトリクス符号データを再生する。本実施形態では、まず、
図6(a)に示されるビットストリームのシーケンスヘッダから量子化マトリクス符号データを抽出し、量子化マトリクス復号部209に出力される。本実施形態では、
図8(a)に示されるベース量子化マトリクスに対応する量子化マトリクス符号データが抽出、出力される。続いて、ピクチャデータの基本ブロック単位の符号データを再生し、復号部203に出力する。
【0095】
量子化マトリクス復号部209では、まず入力された量子化マトリクス符号データを復号し、
図10に示される一次元の差分行列を再生する。本実施形態では、実施形態1同様、
図11(a)に示される符号化テーブルを用いて復号するものとするが、符号化テーブルはこれに限定されず、実施形態1と同じものを用いる限りは他の符号化テーブルを用いてもよい。さらに量子化マトリクス復号部209は再生された一次元の差分行列から二次元の量子化マトリクスを再生する。ここでは実施形態1の量子化マトリクス符号化部113の動作とは逆の動作を行う。すなわち、本実施形態では、
図10に示される差分行列は、
図9に示される走査方法を用いて、それぞれ
図8(a)に示されるベース量子化マトリクスを再生し、保持するものとする。具体的には、量子化マトリクス復号部209は、差分行列における各差分値を、前述の初期値から順次加算することによって、量子化マトリクスにおける各要素を再生する。そして、量子化マトリクス復号部209は、その再生した一次元の各要素を
図9に示される走査方法に従って、順番に2次元の量子化マトリクスの各要素に対応付けることで、2次元の量子化マトリクスを再生する。
【0096】
さらに量子化マトリクス復号部209では、この再生されたベース量子化マトリクスを、第1実施形態と同様に拡大し、
図8(b)および
図8(c)に示される2種類の32×32の量子化マトリクスを生成する。
図8(b)の量子化マトリクスは、
図8(a)の8×8のベース量子化マトリクスの各要素を、垂直・水平方向に4回繰り返すことで4倍に拡大した32×32の量子化マトリクスである。
【0097】
一方、
図8(c)の量子化マトリクスは、
図8(a)のベース量子化マトリクスの左上4×4部分の各要素を、垂直・水平方向に8回繰り返すことで拡大した32×32の量子化マトリクスである。ただし、生成される量子化マトリクスはこれに限定されず、後段で逆量子化される量子化係数のサイズが32×32以外にも存在する場合は、16×16、8×8、4×4など逆量子化される量子化係数のサイズに対応した量子化マトリクスが生成されてもよい。生成されたこれらの量子化マトリクスは保持され、後段の逆量子化処理に用いられる。
【0098】
復号部203では、符号データをビットストリームから復号し、量子化係数および予測情報を再生する。復号された予測情報に基づいて復号対象のサブブロックのサイズを決定し、さらに再生された量子化係数は逆量子化・逆変換部204に出力され、再生された予測情報は画像再生部205に出力される。本実施形態では復号対象のサブブロックの大きさ、すなわち
図7(a)の64×64であるか、
図7(b)の32×32であるかに関わらず、各サブブロックに対して32×32の量子化係数が再生されるものとする。
【0099】
逆量子化・逆変換部204では、入力された量子化係数に対し、量子化マトリクス復号部209で再生された量子化マトリクスと、量子化パラメータとを用いて逆量子化を行って直交変換係数を生成し、さらに逆直交変換を施して予測誤差を再生する。より具体的な逆量子化・逆直交変換処理について、以下に記す。
【0100】
図7(b)の32×32のサブブロック分割が選択されている場合、復号部203で再生された32×3の量子化係数は
図8(b)の量子化マトリクスを用いて逆量子化され、32×32の直交変換係数を再生する。そして、前述の32×32の転置行列と32×32の直交変換との乗算を行い、32×32の行列状の中間係数を算出する。この32×32の行列状の中間係数と前述の32×32の直交変換行列との乗算を行い32×32の予測誤差を再生する。各32×32サブブロックに対して同様の処理を行う。
【0101】
一方、
図7(a)のように分割無しが選択されている場合、復号部203で再生された32×32の量子化係数は
図8(c)の量子化マトリクスを用いて逆量子化され、32×32の直交変換係数を再生する。そして、前述の32×64の転置行列と32×32の直交変換との乗算を行い、32×64の行列状の中間係数を算出する。この32×64の行列状の中間係数と前述の64×32の直交変換行列との乗算を行い、64×64の予測誤差を再生する。
【0102】
再生された予測誤差は画像再生部205に出力される。本実施形態では、復号部203で再生された予測情報によって定まった復号対象のサブブロックの大きさに応じて、逆量子化処理において使用される量子化マトリクスを決定する。すなわち、
図7(b)の32×32の各サブブロックには、
図8(b)の量子化マトリクスが逆量子化処理に用いられ、
図7(a)の64×64のサブブロックには
図8(c)の量子化マトリクスが用いられる。ただし、使用される量子化マトリクスはこれに限定されず、実施形態1の変換・量子化部105および逆量子化・逆変換部106で用いられた量子化マトリクスと同一のものであればよい。
【0103】
画像再生部205では、復号部203から入力された予測情報に基づいて、フレームメモリ206を適宜参照し、予測画像の再生に必要なデータを取得して、予測画像を再生する。本実施形態では、実施形態1の予測部104同様、イントラ予測およびインター予測の2種類の予測方法が用いられる。また、前述のようにイントラ予測とインター予測とを組み合わせた予測方法が用いられてもよい。また、実施形態1と同様に予測処理はサブブロック単位に行われる。
【0104】
具体的な予測処理については、実施形態1の予測部104と同様であるため、説明を省略する。画像再生部205は、予測処理によって生成された予測画像と、逆量子化・逆変換部204から入力された予測誤差から画像データを再生する。具体的には、画像再生部205は、予測画像と予測誤差とを加算することによって画像データを再生する。再生された画像データは、適宜、フレームメモリ206に格納される。格納された画像データは、他のサブブロックの予測の際に、適宜、参照される。
【0105】
インループフィルタ部207では、
図1のインループフィルタ部109と同様、フレームメモリ206から再生画像を読み出し、デブロッキングフィルタなどのインループフィルタ処理を行う。そして、フィルタ処理された画像は再びフレームメモリ206に入力される。
【0106】
フレームメモリ206に格納された再生画像は、最終的には端子208から外部に出力される。再生画像は、例えば、外部の表示装置等に出力される。
【0107】
図4は、実施形態2に係る画像復号装置における画像の復号処理を示すフローチャートである。
【0108】
まず、ステップS401にて、分離復号部202はビットストリームから復号処理に関する情報や係数に関する符号データに分離して、ヘッダ部分の符号データを復号する。より具体的には、量子化マトリクス符号データを再生する。
【0109】
ステップS402にて、量子化マトリクス復号部209は、まずステップS401で再生された量子化マトリクス符号データを復号し、
図10で示される一次元の差分行列を再生する。次に、量子化マトリクス復号部209は再生された一次元の差分行列から二次元のベース量子化マトリクスを再生する。さらに、量子化マトリクス復号部209は、再生した二次元のベース量子化マトリクスを拡大し、量子化マトリクスを生成する。
【0110】
すなわち、本実施形態では、量子化マトリクス復号部209は、
図10に示される差分行列を、
図9に示される走査方法を用いて、
図8(a)に示されるベース量子化マトリクスを再生する。さらに、量子化マトリクス復号部209は再生されたベース量子化マトリクスを拡大し、
図8(b)および
図8(c)に示される量子化マトリクスを生成し、保持するものとする。
【0111】
ステップS403にて、復号部203はステップS401で分離された符号データを復号し、量子化係数および予測情報を再生する。さらに、復号された予測情報に基づいて復号対象のサブブロックのサイズを決定する。本実施形態では復号対象のサブブロックの大きさ、すなわち
図7(a)の64×64か
図7(b)の32×32かに関わらず、各サブブロックに対して32×32の量子化係数が再生されるものとする。
【0112】
ステップS404にて、逆量子化・逆変換部204は量子化係数に対しステップS402で再生された量子化マトリクスを用いて逆量子化を行って直交変換係数を獲得し、さらに逆直交変換を行い、予測誤差を再生する。本実施形態では、ステップS403で再生された予測情報によって定まった復号対象のサブブロックの大きさに応じて、逆量子化処理において使用される量子化マトリクスを決定する。すなわち、
図7(b)の32×32の各サブブロックには、
図8(b)の量子化マトリクスが逆量子化処理に用いられ、
図7(a)の64×64のサブブロックには
図8(c)の量子化マトリクスが用いられる。ただし、使用される量子化マトリクスはこれに限定されず、実施形態1のステップS306およびステップS307で用いられた量子化マトリクスと同一のものであればよい。
【0113】
ステップS405にて、画像再生部205はステップS403で生成された予測情報から予測画像を再生する。本実施形態では、実施形態1のステップS305同様、イントラ予測およびインター予測の2種類の予測方法が用いられる。さらに再生された予測画像とステップS404で生成された予測誤差から画像データを再生する。
【0114】
ステップS406にて、画像復号装置はフレーム内の全ての基本ブロックの復号が終了したか否かの判定を行い、終了していればステップS407に進み、そうでなければ次の基本ブロックを対象としてステップS403に戻る。
【0115】
ステップS407にて、インループフィルタ部207はステップS405で再生された画像データに対し、インループフィルタ処理を行い、フィルタ処理された画像を生成し、処理を終了する。
【0116】
以上の構成と動作により、実施形態1で生成された、低周波の直交変換係数のみを量子化・符号化したサブブロックに対しても、量子化マトリクスを用いて周波数成分ごとに量子化を制御し主観画質を向上したビットストリームを復号することができる。また、低周波の直交変換係数のみを量子化・符号化したサブブロックには、
図8(c)のようなベース量子化マトリクスの低周波部分のみを拡大した量子化マトリクスを用い、低周波部分に最適な量子化制御を施したビットストリームを復号することができる。
【0117】
なお、本実施形態では、符号量削減のため、
図8(b)、(c)の量子化マトリクスの生成に共通して用いられる
図8(a)のベース量子化マトリクスのみを復号する構成としたが、
図8(b)、(c)の量子化マトリクス自体を復号する構成としてもよい。その場合、各量子化マトリクスの周波数成分ごとに独自の値を設定することができるため、周波数成分ごとにより細かな量子化制御を実現したビットストリームを復号することができる。
【0118】
また、
図8(b)、
図8(c)のそれぞれに対し個別のベース量子化マトリクスを設定し、それぞれのベース量子化マトリクスを符号化する構成とすることも可能である。その場合、32×32の直交変換係数と64×64の直交変換係数に対し、それぞれ異なる量子化制御を実施し、より綿密な主観画質の制御を実現したビットストリームを復号することもできる。さらにその場合、64×64の直交変換係数に対応する量子化マトリクスは、8×8のベース量子化マトリクスの左上4×4部分を8倍に拡大する代わりに、8×8のベース量子化マトリクス全体を4倍に拡大してもよい。こうして64×64の直交変換係数に対しても、より細かな量子化制御を実現することができる。
【0119】
さらには、本実施形態では、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクスが一意に決まる構成としたが、識別子を導入することで選択可能とする構成としても構わない。例えば
図6(b)は、量子化マトリクス符号化方法情報符号を新たに導入することで、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクス符号化を選択的にしたものである。例えば、量子化マトリクス符号化方法情報符号が0を示している場合には、ゼロアウトを用いた64×64のサブブロックに対応する量子化係数に対し、独立した量子化マトリクスである
図8(c)が用いられる。また、符号化方法情報符号が1を示している場合には、ゼロアウトを用いた64×64のサブブロックに対し、通常のゼロアウトされないサブブロックに対する量子化マトリクスである
図8(b)が用いられる。一方、符号化方法情報符号が2を示している場合には、8×8のベース量子化マトリクスではなく、ゼロアウトを用いた64×64のサブブロックに対して用いられる量子化マトリクスの要素全てを符号化するといった具合である。これにより、量子化マトリクス符号量削減とゼロアウトを用いたサブブロックに対する独自の量子化制御とを選択的に実現したビットストリームを復号することが可能となる。
【0120】
また、本実施形態ではゼロアウトを用いて処理をされたサブブロックは64×64のみとしているが、ゼロアウトを用いた処理を施されたサブブロックはこれに限定されない。例えば、
図7(c)や
図7(b)に示された32×64や64×32サブブロックに対応する直交変換係数のうち、下半分や右半分の32×32の直交変換係数を復号せず、上半分や左半分の量子化係数のみを復号する構成としても構わない。この場合、上半分や左半分の32×32の直交変換係数のみを復号・逆量子化の対象とすることとなり、上半分や左半分の32×32の直交変換係数に対して
図8(b)とは異なる量子化マトリクスを用いて量子化処理を行うこととなる。
【0121】
さらには、生成された直交変換係数のうち、画質への影響が最も大きいと考えられる左上端に位置するDC係数に対応する量子化マトリクスの値を、8×8のベースマトリクスの各要素の値とは別に復号・設定する構成としてもよい。
図12(b)および
図12(c)は、
図8(b)および
図8(c)と比較してDC成分にあたる左上端に位置する要素の値を変更した例を示している。この場合、
図8(a)のベース量子化マトリクスの情報に加えて、DC部分に位置する「2」を示す情報を別途復号することにより、
図12(b)および
図12(c)に示される量子化マトリクスを設定することができる。これにより、画質への影響が最も大きい直交変換係数のDC成分に対してより細かい量子化制御を施したビットストリームを復号することができる。
【0122】
<実施形態3>
図1、
図2に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、これらの図に示した各処理部で行う処理をコンピュータプログラムでもって構成してもよい。
【0123】
図5は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【0124】
CPU501は、RAM502やROM503に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU501は、
図1、
図2に示した各処理部として機能することになる。
【0125】
RAM502は、外部記憶装置506からロードされたコンピュータプログラムやデータ、I/F(インターフェース)507を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM502は、CPU501が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM502は、例えば、フレームメモリとして割り当てたり、その他の各種のエリアを適宜提供したりすることができる。
【0126】
ROM503には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部504は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU501に対して入力することができる。表示部505は、CPU501による処理結果を表示する。また表示部505は例えば液晶ディスプレイで構成される。
【0127】
外部記憶装置506は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置506には、OS(オペレーティングシステム)や、
図1、
図2に示した各部の機能をCPU501に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置506には、処理対象としての各画像データが保存されていてもよい。
【0128】
外部記憶装置506に保存されているコンピュータプログラムやデータは、CPU501による制御に従って適宜、RAM502にロードされ、CPU501による処理対象となる。I/F507には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F507を介して様々な情報を取得したり、送出したりすることができる。508は上述の各部を繋ぐバスである。
【0129】
上述の構成からなる作動は前述のフローチャートで説明した作動をCPU501が中心となってその制御を行う。
【0130】
(その他の実施例)
各実施形態は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成することができる。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【0131】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【0132】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【符号の説明】
【0133】
101、112、201、208 端子
102 ブロック分割部
103 量子化マトリクス保持部
104 予測部
105 変換・量子化部
106、204 逆量子化・逆変換部
107、205 画像再生部
108、206 フレームメモリ
109、207 インループフィルタ部
110 符号化部
111 統合符号化部
113 量子化マトリクス符号化部
202 分離復号部
203 復号部
209 量子化マトリクス復号部