JP2008092456A - 画像符号化装置および画像復号装置 - Google Patents

画像符号化装置および画像復号装置 Download PDF

Info

Publication number
JP2008092456A
JP2008092456A JP2006273186A JP2006273186A JP2008092456A JP 2008092456 A JP2008092456 A JP 2008092456A JP 2006273186 A JP2006273186 A JP 2006273186A JP 2006273186 A JP2006273186 A JP 2006273186A JP 2008092456 A JP2008092456 A JP 2008092456A
Authority
JP
Japan
Prior art keywords
block
prediction
target block
adjacent
zero coefficients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006273186A
Other languages
English (en)
Inventor
Tomohiro Igai
知宏 猪飼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2006273186A priority Critical patent/JP2008092456A/ja
Publication of JP2008092456A publication Critical patent/JP2008092456A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】符号化効率をさらに向上させた画像符号化装置および画像復号装置を提供する。
【解決手段】画面内予測部と、係数個数予測部と、VLCテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、前記画面内予測部の予測モードに応じて符号化対象ブロックの非0の係数の個数を予測する。VLCテーブル選択部は、予測された符号化対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する。画面内予測の予測モードと、既に符号化済みの周囲のブロックの中で、どのブロックの非0の係数の個数を用いて符号化対象ブロックの非0の係数の個数を予測すれば良いかの間にある所定の関係を用いることによって、係数個数予測部で、高い精度で符号化対象ブロックの係数を予測することができるので、予測された非0の係数の個数の予測値を用いて、VLCテーブル選択部でVLCテーブルを選択し、選択されたVLCテーブルを用いて可変長符号化部で符号化を行うことによって、高い符号化効率で画像を符号化することができる。
【選択図】図1

Description

本発明は、画像の符号化を行う画像符号化装置及び、符号化された画像データの復号を行う画像復号装置に関する。
図14は、従来の画像符号化装置の構成を示すブロック図である。
従来の画像符号化装置は、変換部1401、量子化部1402、逆量子化部1403、逆変換部1404、画面内予測部1405、画面間予測部1406、フレームメモリ1407、可変長符号化部1408、スイッチ1409、減算部1410、加算部1411から構成される。
画像符号化装置に画像が入力されると、まず、画面を様々なサイズのブロック(例えば16×16、8×8、4×4)に分割し、分割したブロック毎に画面内予測部1405もしくは画面間予測部1406において入力画像の予測を行い予測画像を生成する(画面内予測を用いるか画面間予測を用いるかの選択はスイッチ1409で行われる)。なお、スイッチ1409は、符号化制御部(図示せず)により制御されるものとする。符号化制御部(図示せず)は、入力画像に基づいて画面内予測もしくは画面間予測のうち、符号化効率が高い方を選択して、スイッチ1409を切り替えるものとする。また、以下に説明する画面内予測において画面内予測モードが複数ある場合の切り替えも符号化制御部が実行するものとする。
次に、減算部1410により、入力画像から予測画像を減算して予測誤差を計算し、さらに、減算で得られた予測誤差に対して、変換部1401において離散コサイン変換やアダマール変換などの変換を施す。続いて変換で得られた変換係数は、量子化部1402において量子化される。
量子化部1402で量子化された変換係数(以後、単に係数と呼ぶ)は、1次元に並べ替えられ、ラン・レベルの組み合わせで表現され、可変長符号化部1408において可変長符号化が行われる。ここでランとは連続するゼロ係数の個数、レベルとはゼロ係数に続くゼロ以外の係数の値である。
量子化部1402で量子化された係数は、逆量子化部1403で逆量子化され、逆変換部1404において逆変換され、加算部1411において、先ほど生成した予測画像と加算される。得られた画像は、元の入力画像を再生した再構成画像である。
再構成画像は、フレームメモリ1407において記憶される。フレームメモリ1407に記憶された再構成画像は、画面内予測および画面間予測において参照される画像(参照画像)として用いられる。
次に、画面内予測部1405の詳細について、非特許文献1の方法に基づいて説明する。
非特許文献1では、輝度の画面内予測として、4×4画素のブロック単位で予測を行う4×4画面内予測と、8×8画素のブロック単位で予測を行う8×8画面内予測と、16×16画素のブロック単位で予測を行う16×16画面内予測とが示されている。
4×4画面内予測も、8×8画面内予測あるいは16×16画面内予測も両方とも、ブロック単位で予測方法(予測モード)を選択し、用いた予測モード毎に、符号化済みブロックの画素値を利用して符号化対象ブロックの画素値の予測を行う。なお、復号側でも予測モードが識別できるように、予測モードに関する情報は符号化される。
図15は、4×4画面内予測の予測モードを示す図である。
図15に示されるように、4×4画面内予測には9種類の予測モードがある。
例えば、「予測モード0」(以下、単に「モード0」とも称する)は、垂直予測と呼ばれ、符号化対象ブロックの上に隣接するブロックの画素値から符号化対象ブロックの画素値を予測する。
また、「予測モード1」(以下、単に「モード1」とも称する)は、水平予測と呼ばれ、符号化対象ブロックの左に隣接するブロックの画素値から符号化対象ブロックの画素値を予測する。以上説明したように、予測モードに応じて符号化済みブロックのどの画素を用いて予測するかが異なる。
図16は、符号化対象ブロックの画素(a〜p)と参照する符号化済みブロックの画素(A〜M)の位置関係を示す図である。
図15で示した4×4画面内予測は、具体的には、以下のように、モードに応じて画素A〜Mの画素値を用いて画素a〜pの画素値を予測する。
「モード0」:垂直予測
a,e,i,m:A
b,f,j,n:B
c,g,k,o:C
d,h,l,p:D
「モード1」:水平予測
a,b,c,d:I
e,f,g,h:J
i,j,k,l:K
m,n,o,p:L
「モード2」:DC予測
(A+B+C+D+I+J+K+L+4)>>3
「モード3」:左下方向予測
a:(A+2B+C+2)>>2
b,e:(B+2C+D+2)>>2
c,f,i:(C+2D+E+2)>>2
d,g,j,m:(D+2E+F+2)>>2
h,k,n:(E+2F+G+2)>>2
l,o:(F+2G+H+2)>>2
p:(G+3H+2)>>2
「モード4」:右下方向予測
m:(J+2K+L+2)>>2
i,n:(I+2J+K+2)>>2
e,j,o:(M+2I+J+2)>>2
a,f,k,p:(A+2M+I+2)>>2
b,g,l:(M+2A+B+2)>>2
c,h:(A+2B+C+2)>>2
d:(B+2C+D+2)>>2
「モード5」:垂直右方向予測
a,j:(M+A+1)>>1
b,k:(A+B+1)>>1
c,l:(B+C+1)>>1
d:(C+D+1)>>1
e,n:(I+2M+A+2)>>2
f,o:(M+2A+B+2)>>2
g,p:(A+2B+C+2)>>2
h:(B+2C+D+2)>>2
i:(M+2I+J+2)>>2
m:(I+2J+K+2)>>2
「モード6」:水平下方向予測
a,g:(M+I+1)>>1
b,h:(I+2M+A+2)>>2
c:(M+2A+B+2)>>2
d:(A+2B+C+2)>>2
e,k:(I+J+1)>>1
f,l:(M+2I+J+2)>>2
i,o:(J+K+1)>>1
j,p:(I+2J+K+2)>>2
m:(K+L+1)>>1
n:(J+2K+L+2)>>2
「モード7」:垂直左方向予測
a:(A+B+1)>>1
b,i:(B+C+1)>>1
c,j:(C+D+1)>>1
d,k:(D+E+1)>>1
l:(E+F+1)>>1
e:(A+2B+C+2)>>2
f,m:(B+2C+D+2)>>2
g,n:(C+2D+E+2)>>2
h,o:(D+2E+F+2)>>2
p:(E+2F+G+2)>>2
「モード8」:水平上方向予測
a:(I+J+1)>>1
b:(I+2J+K+2)>>2
c,e:(J+K+1)>>1
d,f:(J+2K+L+2)>>2
g,i:(K+L+1)>>1
h,j:(K+3L+2)>>2
k,l,m,n,o,p:L
なお、記号>>はシフト演算を表し、X>>Yの場合、値XをYビット右にシフトすることを意味する。
例えば、符号化対象ブロックの予測に、「モード8」を用いる場合、符号化対象ブロック中の画素値aの予測値は、画素値I、画素値Jを用いて(I+J+1)>>1で求められる。同様に画素値bの予測値は、画素値I、画素値J、画素値Kを用いて(I+2J+K+2)>>2で求められる。
8×8画面内予測については図示しないが、4×4画面内予測と同様、「モード0」(垂直予測)、「モード1」(水平予測)、「モード2」(DC予測)、「モード3」(左下方向予測)、「モード4」(右下方向予測)、「モード5」(垂直右方向予測)、「モード6」(水平下方向予測)、「モード7」(垂直左方向予測)、「モード8」(水平上方向予測)の9つの予測モードがある。
16×16画面内予測については図示しないが、「モード0」(垂直予測)、「モード1」(水平予測)、「モード2」(DC予測)、「モード3」(PLANE予測)の4つの予測モードがある。
色差の画面内予測は、8×8画素のブロック単位で行われる。色差の画面内予測の予測モードには、図示しないが、「モード0」(DC予測)、「モード1」(水平予測)、「モード2」(垂直予測)、「モード3」(PLANE予測)の4つの予測モードがある。
16×16予測、8×8予測、色差の8×8予測は全て、輝度の4×4予測と同じく既に符号化済みブロックの画素値を用いて符号化対象ブロックの画素値を予測する。
次に、可変長符号化部1408について説明する。
変換係数を量子化した後の係数は0となることが多いため、従来から、係数の可変長符号化にはラン・レベル符号化が用いられる。ラン・レベル符号化においては、係数の値(レベル)および0の係数が連続する個数(ラン)に対して、可変長の符号を割り当て符号化する。このような割り当てを行うためのテーブルをVLCテーブルと呼ぶ。
例えば非特許文献2では、VLCテーブルとして1種類のVLCテーブルだけを用いていたが、非特許文献1および特許文献1では、複数のVLCテーブルを用意し、符号化対象ブロックの周囲の状況に応じてVLCテーブルを切り替えることで、高い符号化効率を達成している。
非特許文献1には、CAVLC(Context Adaptive Variable Length Coding)とCABAC(Context Adaptive Binary Arithmetic Coding)と呼ばれる2つの可変長符号化の方式がある。
ここでは、CAVLCの方式を説明する。
CAVLCでは、ランとレベル以外の情報である、非0の係数の個数(TotalCoeff)と最後に連続する絶対値1の係数の個数(TrailingOnes)の符号化を行い、続いて、ランとレベルそれぞれVLCテーブルを用いてスキャンの逆順方向から別々に符号化する。
TotalCoeffと、TrailingOnesの符号化は、符号化対象ブロックの周辺に位置する符号化済みブロックの状態に応じて、複数のVLCテーブルのうちの一つを適応的に選択することで行われる。
図17は、符号化対象ブロックと参照する符号化済みブロックとの位置関係を示す図である。
図17に示されるように符号化対象ブロックがXであり、符号化済みの周囲のブロックが、ブロックA、ブロックB、ブロックD、ブロックEである。また、これら符号化済みブロックの非0の係数の個数(以降、単に「係数の個数」と記述した場合も、「非0の係数の個数」を意味するものとする)は、各々、nA,nB,nD,nEとする。
このとき、CAVLCでは、左隣りのブロック(ブロックA)の係数の個数nAと、上隣りのブロック(ブロックB)の係数の個数nBの平均値を求め、求めた値によってVLCテーブルの選択を行う。
図18は、TotalCoeff(非0係数の個数)と、TrailingOnes(絶対値1の係数の個数)の符号化に用いられるVLCテーブル(抜粋)である。
図18に示されるように符号化対象ブロックの係数の個数の予測値nXに応じて、0個以上2個未満、2個以上4個未満、4個以上8個未満、8個以上の4つあるテーブルのうちから1つのテーブルが選択される。
例えば、nAが3個、nBが1個の場合、平均は2個であるから、図18における2個以上4個未満(2≦nC<4)のVLCテーブルが選択される。
例えば、符号化対象ブロックXのTrailingOnesが2個、TotalCoeffが2個の場合には、「011」と符号化される。
以上のように、非特許文献1のCAVLCにおいては、符号化係数済みブロックの係数の個数から、nAとnBの平均を求める演算により符号化対象ブロックの係数の個数を予測し、求めた予測値に応じてVLCテーブルを選択する。
これにより1つのVLCテーブルを固定的に用いる場合よりも符号化効率を高めることができる。
特許文献1も非特許文献1と同様に複数のVLCテーブルを選択的に用いる。ここでは、特許文献1の可変長符号化方法について説明する。
特許文献1では、コードテーブルとVLCテーブルという2つのテーブルを用いて係数の個数を符号化し、続いて、係数を符号化する。
表1がコードテーブル、表2がVLCテーブルの例である。コードテーブルとは、係数の個数をあるコード番号に変換するテーブルであり、VLCテーブルとは、コードテーブルによって得られたコード番号を可変長符号に変換するテーブルである。
Figure 2008092456
Figure 2008092456
表1のコードテーブルを用いて、係数の個数をあるコード番号に変換し、表2のVLCテーブルを用いてコード番号を符号列に変換する。
表2の例を参照して、VLCテーブル1とVLCテーブル4を比較するとコード番号の大きい領域ではVLCテーブル1の方がビット量が多くなる傾向があるが、コード番号の小さい領域ではVLCテーブル1の方がビット量が小さくなるように設計されている。
従って、小さいコード番号の出現確率が高い場合にはVLCテーブル1の方が、値の大きいコード番号の出現確率が高い場合にはVLCテーブル4の方が、効率よく可変長符号化を行うことが可能である。
符号化対象ブロックの係数の個数を符号化する方法を説明する。
まず、符号化済みブロックの係数の個数から、符号化対象ブロックの係数の個数を予測する。特許文献1に示されている一つの方法では、左隣りの係数の個数と、上隣りの係数の個数の平均値を用いて予測する。
予測値が得られたら、次に、表3を用いて、コードテーブルを選択する。例えば、予測値が2以下の場合にはコードテーブル1を参照し、3以上5以下の場合にはコードテーブル2を参照する。
Figure 2008092456
続いて、表4を用いてVLCテーブルを選択する。
例えば、予測値が1以下の場合にはVLCテーブル1を参照し、2以上3以下の場合にはVLCテーブル2を参照する。
Figure 2008092456
選択されたコードテーブル及びVLCテーブルを用いることで符号化対象ブロックの係数の個数を符号化する。
以上、説明したように、特許文献1の一つの方法では、非特許文献1と同様に符号化済みの周囲のブロックの係数の個数を応じて、コードテーブルおよびVLCテーブルを切り替えることによって、効率的に符号化対象ブロックの係数の個数を符号化できる。
また、特許文献1では、符号化済みの周囲のブロックの係数の個数の代わりに、画面内予測の予測モードに応じて、コードテーブルおよびVLCテーブルを適応的に切り替えて参照する方法も示されている。このときは、表5および表6のような表を用いて、画面内予測モードから使用するコードテーブルおよびVLCテーブルを選択する。
Figure 2008092456
Figure 2008092456
例えば、画面予測モードが平面予測の場合には、コードテーブル1とVLCテーブル1を用いて係数の個数を符号化することになる。上記技術によれば、係数の出現頻度が一様ではないピクチャに対しても効率よく符号化することが可能となる。
"Information technology -Coding of audio-visual objects- Part10: Advanced Video Coding", ISO Standards, ISO/IEC14496-10:2005, 2005/12/12 "Information technology -Coding of audio-visual objects- Part2: Visual", ISO Standards, ISO/IEC14496-2:2004, 2004/5/24 特開2004−7506公報
可変長符号化に用いるVLCテーブルを、符号化対象の係数の個数の予測値に応じて切り替える場合(係数の個数の予測は、既に符号化済みの周囲のブロックの係数の個数を用いて行われる)、入力画像の予測に用いた画面内予測の予測モードと、既に符号化済みの周囲のブロックの中で、どのブロックの係数の個数を用いて符号化対象の係数の個数を予測すれば良いかの間には所定の関係がある。
しかしながら、非特許文献1や特許文献1の技術においては、画面内予測の予測モードに応じて決まる上記関係を活かしていなかったため、本来の符号化効率を達成できていないという問題がある。
特許文献1では、画面内予測モードを用いてVLCテーブルを切り替える方法が示されている。
しかしながら、変換係数とは直接関係ない画面内予測モードをそのまま用いてVLCテーブルを選択するものであったために、符号化済みブロックの係数の個数を用いてVLCテーブルを選択する方法に比べて符号化効率が上がらないという問題があった。
本発明は、上記のような問題を解決するためになされたものであって、符号化効率をさらに向上させた画像符号化装置および画像復号装置を提供することを目的とする。
本発明の画像符号化装置は、画面内予測部と、係数個数予測部と、VLCテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、画面内予測部の予測モードに応じて符号化対象ブロックの非0の係数の個数を予測し、VLCテーブル選択部は、予測された符号化対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する。
これにより、画面内予測の予測モードと、既に符号化済みの周囲のブロックの中で、どのブロックの非0の係数の個数を用いて符号化対象ブロックの非0の係数の個数を予測すれば良いかの間にある所定の関係を用いることによって、係数個数予測部で、高い精度で符号化対象ブロックの係数を予測することができるので、予測された非0の係数の個数の予測値を用いて、VLCテーブル選択部でVLCテーブルを選択し、選択されたVLCテーブルを用いて可変長符号化部で符号化を行うことによって、高い符号化効率で画像を符号化することができる。
好ましくは、係数個数予測部は、既に符号化済みのブロックの非0の係数の個数の線形結合によって、符号化対象ブロックの非0の係数の個数を予測し、さらに、線形結合の重みを画面内予測部の予測モードに応じて変化させる。
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする。
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードと、符号化対象ブロックの上に隣接するブロックの予測モードを比較することによって、線形結合における左に隣接するブロックの非0の係数の個数に対する重み、および、上に隣接するブロックの非0の係数の個数に対する重み、を変化させる。
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードおよび符号化対象ブロックの上に隣接するブロックの予測モードを比較し、符号化対象ブロックの予測モードに近い方のブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする。
本発明の画像復号装置は、画面内予測部と、係数個数予測部と、VLCテーブル選択部と、可変長符号復号部とを備える。係数個数予測部は、画面内予測部の予測モードに応じて非0の係数の個数を予測し、VLCテーブル選択部は、予測された符号化対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する。
これにより、画面内予測の予測モードと、既に復号済みの周囲のブロックの中で、どのブロックの非0の係数の個数を用いて復号対象ブロックの非0の係数の個数を予測すれば良いかの間にある所定の関係を用いることによって、係数個数予測部で、高い精度で復号対象ブロックの係数を予測することができるので、予測された非0の係数の個数の予測値を用いてVLCテーブル選択部で、VLCテーブルを選択し、選択されたVLCテーブルを用いて可変長符号復号部で復号を行うことによって、高い符号化効率で符号化された画像データを復号することができる。
好ましくは、係数個数予測部は、既に復号済みのブロックの非0の係数の個数の線形結合によって、符号化対象ブロックの非0の係数の個数を予測し、さらに、線形結合の重みを画面内予測部の予測モードに応じて変化させることを特徴とする。
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする。
特に、係数個数予測部は、画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードと、復号対象ブロックの上に隣接するブロックの予測モードとを比較することによって、線形結合における左に隣接するブロックの非0の係数の個数に対する重み、および、上に隣接するブロックの非0の係数の個数に対する重み、を変化させることを特徴とする。
特に、係数個数予測部は、画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードおよび復号対象ブロックの上に隣接するブロックの予測モードを比較し、復号対象ブロックの予測モードに近い方のブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする。
本発明の画像符号化装置は、画面内予測部と、画面間予測部と、予測方法記憶部と、係数個数予測部と、VLCテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非0の係数の個数を予測し、VLCテーブル選択部は、予測された符号化対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する。
これにより、予測方法記憶部に記憶された予測方法を読み出し、係数個数予測部で、既に符号化済みのブロックの予測方法と、符号化対象ブロックの予測方法と、既に符号化済みのブロックの非0の係数の個数を用いることによって、1フレームの中に画面内予測されたブロックと、画面間予測されたブロックが混在する場合においても、符号化対象ブロックの非0の係数の個数を高い精度で予測することができ、これによって、予測された非0の係数の個数の予測値を用いて、VLCテーブル選択部でVLCテーブルを選択し、選択されたVLCテーブルを用いて可変長符号化部で符号化を行うことによって、高い符号化効率で画像を符号化することができる。
好ましくは、係数個数予測部は、既に符号化済みのブロックの非0の係数の個数の線形結合によって、符号化対象ブロックの非0の係数の個数を予測し、さらに、線形結合の重みを予測方法記憶部に記憶された予測方法に応じて変化させる。
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の最大値を、符号化対象ブロックの非0の係数の個数の予測値とする。
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の平均値に所定の値を加えることによって符号化対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の最小値を、符号化対象ブロックの非0の係数の個数の予測値とする。
特に、係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の平均値から所定の値を減じることによって符号化対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面内予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面間予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める。
本発明の画像復号装置は、画面内予測部と、画面間予測部と、予測方法記憶部と、係数個数予測部と、VLCテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非0の係数の個数を予測し、VLCテーブル選択部は、予測された復号対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する。
これにより、予測方法記憶部に記憶された予測方法を読み出し、係数個数予測部で、既に復号済みのブロックの予測方法と、復号対象ブロックの予測方法と、既に復号済みのブロックの非0の係数の個数を用いることによって、1フレームの中に画面内予測されたブロックと、画面間予測されたブロックが混在する場合においても、復号対象ブロックの非0の係数の個数を高い精度で予測することができ、これによって、予測された非0の係数の個数の予測値を用いて、VLCテーブル選択部でVLCテーブルを選択し、選択されたVLCテーブルを用いて可変長符号復号部で復号を行うことによって、高い符号化効率で符号化された画像データを復号することができる。
好ましくは、係数個数予測部は、既に復号済みのブロックの非0の係数の個数の線形結合によって、復号対象ブロックの非0の係数の個数を予測し、さらに、線形結合の重みを予測方法記憶部に記憶された予測方法に応じて変化させることを特徴とする。
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の最大値を、復号対象ブロックの非0の係数の個数の予測値とする。
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の平均値に所定の値を加えることによって復号対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の最小値を、復号対象ブロックの非0の係数の個数の予測値とする。
特に、係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の平均値から所定の値を減じることによって復号対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面内復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める。
特に、係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面間復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める。
本発明の画像符号化装置によれば、画面内予測における予測モードを利用して、既に符号化済みの周囲のブロックの係数の個数から、符号化対象ブロックの係数の個数を予測し、予測された係数の個数に基づいてVLCテーブルを選択し、選択されたVLCテーブルを用いて係数の可変長符号化を行うことによって、画像符号化における符号化効率を高めることができる。
本発明の画像復号装置によれば、画面内予測における予測モードを利用して、既に復号したブロックの係数の個数から、復号対象ブロックの係数の個数を予測し、予測された係数の個数に基づいてVLCテーブルを選択し、選択されたVLCテーブルを用いて可変長符号化された係数の復号を行うことによって、高い符号化効率で符号化された画像データを復号することができる。
本発明の画像符号化装置によれば、符号化対象ブロックの予測方法と、既に符号化済みの周囲のブロックの予測方法を参照することによって、符号化対象ブロックの係数を予測し、求めた予測値に応じて、符号化に用いるVLCテーブルを選択することによって、1フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化することができる。
本発明の画像復号装置によれば、復号対象ブロックの予測方法と、既に復号済みの周囲のブロックの予測方法を参照することによって、復号対象ブロックの係数を予測し、求めた予測値に応じて、復号に用いるVLCテーブルを選択することによって、1フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化された画データを復号することができる。
以下、図面を参照しながら本発明の実施形態を説明する。尚、本発明は以下の実施形態に限定されるものではない。
(実施の形態1)
図1は、本発明の実施の形態1に従う画像符号化装置の構成を示すブロック図である。
図1を参照して、本発明の実施の形態1に従う画像符号化装置は、変換部101、量子化部102、逆量子化部103、逆変換部104、画面内予測部105、画面間予測部106、フレームメモリ107、可変長符号化部108、スイッチ109、減算部110、加算部111から構成される。
画像符号化装置に画像が入力されると、まず、画面内予測部105もしくは画面間予測部106において入力画像の予測を行い予測画像を生成する(画面内予測を用いるか画面間予測を用いるかの選択はスイッチ109で行われる)。なお、スイッチ109は、符号化制御部(図示せず)により制御されるものとする。符号化制御部(図示せず)は、画面内予測もしくは画面間予測のうち、符号化効率が高い方を選択して、スイッチ109を切り替えるものとする。また、以下に説明する画面内予測において画面内予測モードが複数ある場合の切り替えも符号化制御部が実行するものとする。他の実施の形態についても同様である。
減算部110により、入力画像から予測画像を減算して予測誤差を得る。予測誤差は変換部101により離散コサイン変換などの変換がなされ、続いて量子化部102で量子化される。
量子化された係数は、逆量子化部103で逆量子化され、逆変換部104において逆変換され、加算部111により先ほど生成した予測画像と加算される。得られた画像は、元の入力画像を再生した再構成画像である。
また、再構成画像は、フレームメモリ107において記憶され、画面内予測および画面間予測における参照画像として用いられる。変換部101、量子化部102で得られた量子化後の係数は、可変長符号化部108によって符号化される。
符号化対象となる動画像の各ピクチャの符号化は、マクロブロックと呼ばれる16×16画素の単位に分割され、このマクロブロック単位でこれ以降の処理が行われる。
図2は、符号化対象マクロブロックを符号化するために参照するマクロブロックを示す図である。
図2では、マクロブロックMB13が符号化対象マクロブロックである場合を示している。矢印で示すように、マクロブロックMB13を符号化する場合には、マクロブロックMB3,MB4,MB5,MB12を参照する。
対象とするマクロブロックを画面間予測によって符号化する場合は、まず入力画像のうちの、現在符号化対象となっているマクロブロックに属する部分が、画面間予測部106に入力される。
画面間予測部106は、フレームメモリ107に蓄積されている符号化済みの再構成画像を参照画像として用いて、マクロブロックをさらに分割したブロック(例えば4×4画素のブロック)ごとに動きベクトル検出を行う。画面間予測部106は、検出した動きベクトルを用いて生成した予測画像を出力する。
対象とするマクロブロックを画面内予測によって符号化する場合は、まず入力画像のうちの、現在符号化対象となっているマクロブロックに属する部分が、画面内予測部105に入力される。
画面内予測部105は、マクロブロックをさらに4×4画素のブロックに分割した単位で既に符号化済みの画素値を参照して、入力画像に対する予測画像を生成する。このときの予測方法は、背景技術において図15を用いて説明したのと同じであり、「モード0」〜「モード8」までの9つの予測モードに従って画素値を予測するものとする。なお、本実施形態では、4×4画素のブロック単位で画面内予測を行っているが、8×8画素のブロックや16×16画素のブロック単位、また4×8画素のブロック単位などで画面内予測をしても良い。
本実施の形態1に従う変換部101も、マクロブロックをさらに4×4画素あるいは8×8画素のブロックに分割し、この単位で離散コサイン変換を施す。なお、本実施の形態では、離散コサイン変換を用いているが、アダマール変換やKLT変換など別の変換方法を用いても良い。
図3は、本発明の実施の形態1に従う特徴的な部分である可変長符号化部108の内部の構成を示す図である。
図3を参照して、可変長符号化部108は、係数個数検出部301、係数個数記憶部302、係数個数予測部303、VLCテーブル選択部304、係数符号化部305から構成される。
係数個数検出部301は、ブロック毎に非0の値を持つ係数の個数を検出する。ここで検出された係数の個数は係数個数記憶部302に保存される。
係数個数予測部303は、既に符号化済みのブロックの係数の個数を係数個数記憶部302から読み込むことによりその値を参照して、符号化対象ブロックの係数の個数を予測する。
VLCテーブル選択部304では、係数個数予測部303で予測された係数の個数をもとに、符号化に用いるVLCテーブルを選択する。
係数符号化部305は、VLCテーブル選択部304で選択されたVLCテーブルを用いて符号化対象ブロックの係数の符号化を行う。
係数個数記憶部302が行う係数の個数の記憶処理について、詳細を説明する。
図4は、符号化対象ブロックに対する参照ブロックを示す図である。
ここで、B1〜B16の符号を付した4×4画素のブロックを含む太枠が符号化対象のマクロブロックを示し、縦線および斜線、横線のブロックが符号化対象マクロブロックが参照する参照ブロックを示している(図4(a)、(b)とも)。またブロックに付した数字は、マクロブロック内での符号化順を示している。
係数個数記憶部302は、例えば、符号化対象のマクロブロックの処理を開始する時点(B1のブロックを符号化する時点)において、係数個数検出部301によって検出された係数の個数を、図4(a)の縦線および斜線、横線で示したブロックについて記憶している。
符号化対象のマクロブロックは、図2のマクロブロックMB13であるとして、図2を参照して係数を記憶しておくブロックの位置関係を説明する。
符号化対象マクロブロックの左上のブロック(図4(a)の縦線のブロック)は、図2のマクロブロックMB3の右下ブロックに対応し、符号化対象マクロブロックの上の4つのブロック(図4(a)の右上から左下方向の斜線のブロック)はマクロブロックMB4の下端ブロックに対応し、符号化対象マクロブロックの右上のブロック(図4(a)の横線のブロック)はマクロブロックMB5の左下ブロックに対応し、符号化対象マクロブロックの左の4つのブロック(図4(a)の左上から右下方向の斜線のブロック)はマクロブロックMB12の右端ブロックに対応する。
以上説明したように、マクロブロックの処理を開始する時点において、既に符号化済みのブロックの内、符号化対象のマクロブロックに対して少なくとも必要となる以上のブロックについて係数の個数を記憶しておく。
係数個数記憶部302は、また、順次処理される符号化対象のマクロブロックのブロック(B1,B2,・・・,B16)に対して検出された係数の個数を記憶する。
例えば、符号化対象ブロックがB6である場合、係数個数記憶部302は、図4(a)に示す参照ブロックに加えて、図4(b)に示すようにブロックB1,B2,B3,B4,B5の各係数の個数を記憶している。
そして、係数個数記憶部302は、係数個数検出部301によりブロックB6の係数の個数が検出されると、ブロックB6の係数の個数を記憶する。このように、係数個数記憶部302は、順次処理される符号化対象のマクロブロックのブロック(B1,B2,・・・,B16)に対して検出された係数の個数を記憶する。
上記説明したように符号化対象ブロックの周囲のブロックの係数の個数を記憶しておくために、係数個数記憶部302は、各マクロブロックの符号化が終了する度に、次のような処理を行う。
図5は、係数個数記憶部302が係数の個数を記憶するマクロブロック内のブロックを示す図である。
図2で示されるマクロブロックMB12の処理が終了し、次のマクロブロックMB13へ処理が移る際には、図5(a)に示すように、マクロブロック(MB12)の下列と右列のブロック(斜線のブロック)の係数の個数を少なくとも記憶しておく。
また、図2で示されるマクロブロックMB9のように画面右端のマクロブロックの処理が終了した際には、図5(b)に示すように、マクロブロック(MB9)の下列のブロック(斜線のブロック)の係数の個数を少なくとも記憶しておく。
また、図2で示されるマクロブロックMBmのように画面下端のマクロブロックの処理が終了した際には、図5(c)に示すように、マクロブロック(MBm)の左列のブロック(斜線のブロック)の係数の個数を少なくとも記憶しておく。
記憶しておいた係数の個数は、不要になった時点で、記憶から削除しても良いし、記憶されている値を上書きしても良い。
例えば、マクロブロックMB13の符号化が終了した時点では、記憶しておいたMB12の右列の係数の個数は不要なので削除しても良いし、マクロブロックMB13の右列の係数の個数で置き換えても良い。
逆に、不要になった時点で削除や置き換えを行うのではなく、不要になったブロックを含めて全てのブロックについて係数の個数を記憶しておいても良い。
次に、本発明の特徴的な部分である係数個数予測部303の動作を説明する。
係数個数予測部303は、符号化対象ブロックの係数の個数の予測を行う。
係数個数予測部303は、画面内予測部105から画面内予測に用いられた予測モードを読み出す。
係数個数予測部303は読み出した画面内予測モードに従って、例えば次の予測方法1のように符号化済みブロックの係数の個数(nA,nB,nD,nE)から、符号化対象ブロックの係数の個数(nX)を予測する。ここで、nA,nB,nD,nEは、図17で示される位置関係における既に符号化済みのブロックA、ブロックB、ブロックD、ブロックEにおける係数の個数である。
<予測方法1>
「モード0」:垂直予測
nX=nB
「モード1」:水平予測
nX=nA
「モード2」:DC予測
nX=(nA+nB)/2
「モード3」:左下方向予測
nX=nD
「モード4」:右下方向予測
nX=nE
「モード5」:垂直右方向予測
nX=nB
「モード6」:水平下方向予測
nX=nA
「モード7」:垂直左方向予測
nX=nB
「モード8」:水平上方向予測
nX=nA
上記、予測方式は、符号化対象ブロックの係数の個数が、既に符号化済みのどのブロックの係数の個数に近いかということが、画面内予測モードの方向によって異なるという特性を考慮して行われたものである。
予測方法1によれば、例えば、画面内予測モードが「モード0」(垂直予測)の場合には、nX=nBと表現されているように、符号化対象ブロックの上に隣接するブロックの係数の個数(nB)が、符号化対象ブロックの係数の個数の予測値となる。
それに対して、画面内予測モードが「モード1」(水平予測)の場合には、符号化対象ブロックの左に隣接するブロックの係数の個数(nA)が、符号化対象ブロックの係数の個数の予測値となる。
なお、上記、予測方式は、一般的に言えば、符号化済みブロックの係数の個数(nA,nB,nD,nE)の線形結合によって以下のように符号化対象ブロックの係数の個数の予測値nXを求めるものである。
nX=Ka×nA+Kb×nB+Kd×nD+Ke×nE+Koffset
Ka,Kb,Kd,Keは各個数に対する重みであり、Koffsetは所定の定数である。
本実施形態では、線形結合の重みを符号化対象ブロックの画面内予測における予測モードに応じて変化させることを特徴としている。
上記の予測方法1では、「モード0」のときの重みは、Ka=0,Kb=1,Kd=0,Ke=0,Koffset=0である。予測方法1では、「モード2」を除くと画面内予測の予測モードに応じて特定の係数(重み)を1、他の係数を0としている。「モード2」では、Ka=0.5、Kb=0.5のように2つの個数の平均値を予測値としている。
また、次に示す予測方法2のような予測方法も好適である。
<予測方法2>
「モード0」、「モード5」、「モード7」:
nX=(nA+3×nB)/4
「モード1」、「モード6」、「モード8」:
nX=(3×nA+nB)/4
「モード2」、「モード3」、「モード4」:
nX=(nA+nB)/2
予測方法2では、例えば、画面内予測モードが「モード0」(垂直予測)の場合には、符号化対象ブロックの左に隣接するブロックの係数の個数(nA)よりも上に隣接するブロックの係数の個数(nB)の重みを大きくして、例えば、(nA+3×nB)/4の式により重み付き平均を計算することによって符号化対象ブロックの係数の個数を予測する。
それに対して、画面内予測モードが「モード1」(水平予測)の場合には、符号化対象ブロックの上に隣接するブロックの係数の個数(nB)よりも左に隣接するブロックの係数の個数(nA)の重みを大きくして、例えば、(3×nA+nB)/4の式により重み付き平均を計算することによって符号化対象ブロックの係数の個数を予測する。
なお、予測方法2によれば、符号化済みブロックの係数の個数(nA,nB)の重み付き平均を符号化対象ブロックの係数の個数の予測値としている。
予測方法1では、「モード2」を除いて線形結合の特定の係数を1、他の係数を0としているが、予測方法2では、複数のブロックの係数の個数を用いて重み付き平均を求めている(線形結合の係数で言えば、Ka=0.5,Kb=0.5,Kd=0,Ke=0,Koffset=0)。
以上のように平均を求めることによって、特定のブロックの個数だけを使う場合に比べて、予測値のばらつきを押させることができるため、予測値が実際の係数の個数から大きく外れることを防ぐことができる。
<予測方法3>
予測方法3では、次のようにして符号化対象ブロックの係数の個数を予測する。符号化対象ブロックの画面内予測モードと、左に隣接するブロックの画面内予測モード、上に隣接するブロックの画面内予測モードを比較する。
そして、左に隣接するブロックの画面内予測モードの方が上に隣接するブロックの画面内予測モードよりも符号化対象ブロックの画面内予測モードに近い場合(画面内予測モードの近さについては後述)には、左に隣接するブロックの係数の個数(nA)に対する重みを、上に隣接するブロックの係数の個数(nB)の重みよりも大きくして、例えば、(3×nA+nB)/4の式により重み付き平均を計算することで符号化対象ブロックの係数の個数を予測する。
逆に、上に隣接するブロックの画面内予測モードの方が左に隣接するブロックの画面内予測モードよりも符号化対象ブロックの画面内予測モードに近い場合には、上に隣接するブロックの係数の個数(nB)に対する重みを、左に隣接するブロックの係数の個数(nA)の重みよりも大きくして、例えば、(nA+3×nB)/4の式により符号化対象ブロックの係数の個数を予測する。
左に隣接するブロックの画面内予測モードの方と、上に隣接するブロックの画面内予測モードの近さが同じ場合には、例えば、(nA+nB)/2の式により符号化対象ブロックの係数の個数を予測する。
符号化対象ブロックの画面内予測モードが「モード2」(DC予測)の場合には、左に隣接するブロックおよび上に隣接するブロックの画面内予測モードによらず、例えば、(nA+nB)/2の式により符号化対象ブロックの係数の個数を予測する。
ここで、画面内予測モード間の近さについて説明する。
画面内予測モードは、背景技術において図15を用いて説明したのと同じであり、「モード0」〜「モード8」までの9つがある。
予測モードが「モード2」(DC予測)以外の場合には、予測モードを表3により方向値という値に変換する。左に隣接するブロックの方向値と、符号化対象ブロックの方向値の差分絶対値を計算する。
また同様に上に隣接するブロックの方向値と、符号化対象ブロックの方向値の差分絶対値を計算する。2つの差分絶対値を比較したときに、差分絶対値が小さい方を画面内予測モードが近いとする。なお、左に隣接するブロックの予測モードおよび上に隣接するブロックの予測モードが「モード2」(DC予測)の場合には、各々、差分絶対値(近さ)を所定の値(ここでは「2」)とする。
Figure 2008092456
図6は、予測方法3を説明するための図である。
まず、図6(a)の場合を説明する。
図中、斜線部分が符号化対象ブロックである。
符号化対象ブロックの画面内予測モードは、「モード1」(水平予測)であり、左隣りのブロックは、「モード1」(水平予測)、上隣りのブロックは「モード0」(垂直予測)である。
表7によって各ブロックの方向値を求めると、符号化対象ブロック、左隣りのブロック、上隣りのブロックの各方向値は、「6,6,2」となる。符号化対象ブロックと左隣りのブロックの方向値の差分絶対値は「0」(=|6−6|)、符号化対象ブロックと上隣りのブロックの差分絶対値は「4」(=|6−2|)であるから、左隣りのブロックの画面内予測モードの方が近い。よって、符号化対象ブロックの係数の個数の予測値は、(3×nA+nB)/4となる。
また、図6(b)の場合には、符号化対象ブロックの画面内予測モードは、「モード4」(右下方向予測)であり、左隣りのブロックは、「モード1」(水平予測)、上隣りのブロックは「モード4」(右下方向予測)である。
表7によって各ブロックの方向値を求めると、符号化対象ブロック、左隣りのブロック、上隣りのブロックの各方向値は、「4,6,4」となる。符号化対象ブロックと左隣りのブロックの方向値の差分絶対値は「2」(=|6−4|)、符号化対象ブロックと上隣りのブロックの差分絶対値は「0」(=|4−4|)であるから、上隣りのブロックの画面内予測モードの方が近い。よって、符号化対象ブロックの係数の個数の予測値は、(nA+3×nB)/4となる。
以上説明したように、予測方法3では、符号化対象ブロックの画面内予測モードと、符号化済みの周囲のブロックの画面予測モードを比較することによって画面内予測モードの近さを求め、符号化済みブロックの係数の個数(nA,nB,nD,nE)の線形結合によって符号化対象ブロックの係数の個数を求める場合の線形結合の係数の重みを、求めた画面内予測モードの近さに応じて変化させる。
上記の例では、左隣りのブロックおよび上隣りのブロックの画面内予測モードと符号化対象ブロックとの画面内予測モードの近さを比較しているが、左上に隣接するブロックおよび右上に隣接するブロックの画面内予測モードとの近さを比較しても良い。
左隣りのブロック、左上に隣接するブロック、上隣りのブロック、右上に隣接するブロックのうち、左上に隣接するブロックの画面内予測モードが最も符号化対象ブロックの画面内予測モードに近い場合には、左上ブロックの係数の個数(nE)を用いて、例えば、nX=(nA+nE+nB)/3のように計算する方法がある。
また、同様に左隣りのブロック、左上に隣接するブロック、上隣りのブロック、右上に隣接するブロックのうち、右上ブロックの画面内予測モードが最も符号化対象ブロックの画面内予測モードに近い場合には、右上ブロックの係数の個数(nD)を用いて、例えば、nX=(nA+nD+nB)/3のように計算する方法がある。
なお、予測方法3を用いる場合には、画面内予測部105は内部に、図示しない画面内予測モード記憶部を持つものとする。
画面内予測モード記憶部は、係数個数記憶部302がブロック毎に係数の個数を記憶していたのと同様にして、符号化対象ブロックの既に符号化済みの周囲のブロックにおける画面内予測モードを参照できるように、ブロック毎に画面内予測モードを記憶しておくものとする。
係数個数予測部303で符号化対象ブロックの係数の個数が予測されると、VLCテーブル選択部304は、係数個数予測部303で予測された係数の個数に基づいてVLCテーブルを選択する。
本実施の形態では図18に示した通り、非特許文献1で用いられる方法でVLCテーブルを選択するものとする。例えば、予測された係数の個数が4個である場合には、4≦nC<8で示されるVLCテーブルが選択される。
ここでは、TotalCoeff(非0係数の個数)と、TrailingOnes(絶対値1の係数の個数)を符号化するためのVLCテーブルを選択しているが、TotalCoeffだけを符号化するVLC表を用いることも可能である。
また、ランとレベルの組、もしくはランとレベル、ラスト(可変長符号化する単位となるブロックの最後の係数であるかどうかを示すフラグ)の組を符号化するためのVLCテーブルを選択することも可能である。
係数符号化部305では、選択されたVLCテーブルを用いてTotalCoeff,TrailingOnes、ラン、レベルを可変長符号化する。
図18で示されるVLCテーブルが選択された後は、まず、符号化対象のブロックのTotalCoeffと、TrailingOnesを求める。
次に、選択されたVLCテーブルを用いてTotalCoeffとTrailingOnesの組を符号化する。
例えば、4≦nC<8で示されるVLCテーブルが選択され、TotalCoeffが「3」、TrailingOnesが「2」の場合には、符号列として「01110」が符号化される。
TotalCoeffとTrailingOnesが符号化された後は、ランとレベルをそれぞれVLCテーブルを用いてスキャンの逆順方向から別々に符号化する。
以上、説明したように、本実施形態の画像符号化装置は、既に符号化済みのブロックの係数の個数の線形結合によって、符号化対象ブロックの係数の個数を予測し、さらに、線形結合の重みを画面内予測モードに応じて変化させる。
そして、予測された係数の個数に応じて、符号化に用いるVLCテーブルを選択することによって、高い符号化効率で符号化することができる。
(実施形態2)
図7は、本発明の実施の形態2に従う画像復号装置の構成を示すブロック図である。
図7を参照して、本発明の実施の形態2に従う画像復号装置は、実施の形態1の画像符号化装置で符号化された画像データを復号するのに用いられる。
本実施の形態2に従う画像復号装置は、可変長符号復号部601、逆量子化部602、逆変換部603、画面内予測部604、画面間予測部605、フレームメモリ606、スイッチ607、加算部608から構成される。
入力された符号化データを復号する場合には、まず、符号化データから、復号対象のブロックが画面内予測であるか、画面間予測であるかを示すフラグを復号する。当該フラグの復号は、符号化データに基づいて図示しないが復号制御部で実行されるものとする。そして、復号制御部による復号に基づいてスイッチ607の切り替えが実行されるものとする。なお、可変長符号復号部601においてフラグを復号して、スイッチ607の切り替えを制御するようにすることも可能である。
復号対象ブロックが画面内予測である場合には、画面内予測部604により予測画像を生成する。
復号対象ブロックが画面間予測である場合には、画面間予測部605により予測画像を生成する。画面内予測と画面間予測の切り替えはスイッチ607により行われる。
続いて、可変長符号復号部601により変換係数を復号し、逆量子化部602で逆量子化を行い、逆変換部603で逆変換を行う。こうして得られた予測誤差画像を、先ほど生成した予測画像と加算部608において加算することで、復号画像を得る。
得られた復号画像はフレームメモリ606に記憶される。フレームメモリに記憶された復号画像は、画面内予測部604、画面間予測部605で用いるための参照画像となる。
本実施形態の画面内予測部604は、16×16画素のブロックであるマクロブロックをさらに4×4画素のブロックに分割した単位で、既に復号済みの画素値を参照して予測画像を生成する。
このときの予測方法は、背景技術において図15を用いて説明したのと同じであり、「モード0」〜「モード8」までの9つの予測モードに従って画素値を予測するものとする。なお、本実施形態では、4×4画素のブロック単位で画面内予測を行っているが、8×8画素のブロックや16×16画素のブロック単位、また4×8画素のブロック単位などで画面内予測をしても良い。
本発明の特徴部分である可変長符号復号部601について詳細を説明する。
図8は、本実施の形態2に従う可変長符号復号部601の構成を示す図である。
図8を参照して、本実施の形態2に従う可変長符号復号部601は、係数個数検出部701、係数個数記憶部702、係数個数予測部703、VLCテーブル選択部704、係数復号部705から構成される。
係数個数検出部701は、実施の形態1の係数個数検出部301と同様に、ブロック毎に非0の値を持つ係数の個数を検出する。
検出する対象は、実施の形態1では、これから符号化する係数の個数であったが、本実施形態では、復号して得られた係数の個数である。
検出された係数の個数は、係数個数記憶部702に保存される。
係数個数予測部702は、既に復号済みのブロックの係数の個数を係数個数記憶部703から読み込むことによりその値を参照して、復号対象ブロックの係数の個数を予測する。
VLCテーブル選択部704では、係数個数予測部703で予測された係数の個数をもとに、復号に用いるVLCテーブルを選択する。
係数復号部705は、VLCテーブル選択部704で選択されたVLCテーブルを用いて復号対象ブロックの係数の復号を行う。
係数個数記憶部702が行う係数の個数の記憶処理については、実施の形態1での係数個数記憶部302の記憶処理と同様である。
ただし、実施の形態1での符号化対象のブロックが、実施の形態2では復号対象のブロックに変わり、また、実施の形態1での既に符号化済みのブロックが、実施の形態2では、既に復号済みのブロックに変わる。基本的には、対象となるブロックを復号する場合において、既に復号済みの周囲のブロックの係数の個数が記憶されているようにする。
係数個数予測部703は、係数個数記憶部702に保存された既に復号済みのブロックの係数の個数を参照して、復号対象ブロックの係数の個数を予測する。
ここで予測する方法は、実施の形態1で説明したとおり、画面内予測部604から復号対象ブロックの予測画像を生成する場合に用いた画面内予測モードに応じて、係数の個数を参照するブロックの位置と、係数の個数に対する重みを変えて、線形結合を計算することによって実行する。
実施の形態1で示した予測方法1、予測方法2、予測方法3などが考えられるが、例えば、予測方法1を再度例示すると、以下のようになる。
ここでnXは、復号対象ブロックの係数の個数の予測値であり、nA,nB,nD,nEは、図17で示される位置関係における既に復号済みのブロックA、ブロックB、ブロックD、ブロックEにおける係数の個数である。
<予測方法1>
「モード0」:垂直予測
nX=nB
「モード1」:水平予測
nX=nA
「モード2」:DC予測
nX=(nA+nB)/2
「モード3」:左下方向予測
nX=nD
「モード4」:右下方向予測
nX=nE
「モード5」:垂直右方向予測
nX=nB
「モード6」:水平下方向予測
nX=nA
「モード7」:垂直左方向予測
nX=nB
「モード8」:水平上方向予測
nX=nA
この予測方法においては、復号対象ブロックがどの画面内予測モードであるかによって、復号対象ブロックからみてどの方向のブロックの係数の個数を用いて、復号対象ブロックの係数の個数を予測するかが決まる。
例えば復号対象ブロックが「モード2」(DC予測)の場合には、ブロックA、ブロックBの係数の個数に対する重みを0.5ずつとして、(nA+nB)/2により復号対象ブロックの係数の個数を予測する。
また、実施の形態1の予測方法3で説明した方法で、復号対象ブロックの係数の個数を予測することもできる。
予測方法3を用いる場合には、復号対象ブロックの画面内予測モードと、周囲の復号済みブロックの画面予測モードを比較することによって、画面内予測モードの近さを求める。
既に復号済みのブロックの係数の個数(nA,nB,nD,nE)の線形結合によって復号対象ブロックの係数の個数を求める場合、求めた画面内予測モードの近さに応じて、線形結合の係数の重みを変化させる。
以上の方法により、係数個数予測部703は復号対象ブロックの係数の個数を予測する。
VLCテーブル選択部704では、係数個数予測部703で予測された係数の個数に基づいて、復号に用いるVLCテーブルを選択する。
本実施の形態では図18に示した通り、非特許文献1で用いられる方法でVLCテーブルを選択するものとする。例えば、予測された係数の個数が4個である場合には、4≦nC<8で示されるVLCテーブルが選択される。
ここでは、TotalCoeff(非0係数の個数)と、TrailingOnes(絶対値1の係数の個数)を復号するためのVLCテーブルを選択しているが、TotalCoeffだけを符号化するVLC表を用いることも可能である。
また、ランとレベルの組、もしくはランとレベル、ラストの組を復号するためのVLCテーブルを選択することも可能である。。
図18の4≦nC<8で示されるVLCテーブルを参照すると、復号する符号列が「01110」であった場合には、TotalCoeffが「3」、TrailingOnesが「2」と復号される。TotalCoeffとTrailingOnesが復号された後は、ランとレベルそれぞれVLCテーブルを用いてスキャンの逆順方向から別々に復号する。
以上、説明したように、本実施の形態2に従う画像復号装置は、既に復号済みのブロックの係数の個数の線形結合によって、符号化対象ブロックの係数の個数を予測し、さらに、線形結合の重みを画面内予測モードに応じて変化させる。そして、予測された係数の個数に応じて、復号に用いるVLCテーブルを選択することによって、高い符号化効率で符号化された画像データを復号することができる。
(実施の形態3)
図9は、本発明の実施の形態3に従う画像符号化装置の構成を示すブロック図である。
図9を参照して、本発明の実施の形態3に従う画像符号化装置は、変換部901、量子化部902、逆量子化部903、逆変換部904、画面内予測部905、画面間予測部906、フレームメモリ907、可変長符号化部908、スイッチ909、減算部910、加算部911、予測方法記憶部912から構成される。
画像符号化装置に画像が入力されると、まず、画面内予測部905もしくは画面間予測部906において入力画像の予測を行い予測画像を生成する(画面内予測を用いるか画面間予測を用いるかの選択はスイッチ909で行われる)。なお、スイッチ909は、符号化制御部(図示せず)により制御されるものとする。符号化制御部(図示せず)は、画面内予測もしくは画面間予測のうち、符号化効率が高い方を選択して、スイッチ909を切り替えるものとする。
減算部910により、入力画像から予測画像を減算して予測誤差を得る。予測誤差は変換部901により離散コサイン変換などの変換がなされ、続いて量子化部902で量子化される。
量子化された係数は、逆量子化部903で逆量子化され、逆変換部904において逆変換され、加算部911により先ほど生成した予測画像と加算される。得られた画像は、元の入力画像を再生した再構成画像であり、画面内予測部905において画面内予測に用いられる。
また、再構成画像は、画面間予測における参照画像として用いられる。変換部901、量子化部902で得られた量子化後の係数は、可変長符号化部908によって符号化される。
本実施の形態3に従う画像符号化装置は、マクロブロック単位で、画面内予測と画面間予測とを切り替えることができるとする。
予測方法記憶部912は、マクロブロック単位で、各マクロブロックが画面内予測されたものか、画面間予測されたものかを記憶するものとする。具体的には、スイッチ909の切り替えにおいて、画面内予測および画面間予測のうちいずれの画素値がスイッチ909の切り替えにより出力されたかを示す情報が記憶される。
予測方法記憶部912に記憶された予測方法に関する情報は、可変長符号化部908から読み出される。
図10は、本発明の実施の形態3に従う特徴的な部分である可変長符号化部908の内部の構成を示す図である。
図10を参照して、可変長符号化部908は、係数個数検出部1001、係数個数記憶部1002、係数個数予測部1003、VLCテーブル選択部1004、係数符号化部1005から構成される。
係数個数検出部1001は、ブロック毎に非0の値を持つ係数の個数を検出する。ここで検出された係数の個数は係数個数記憶部1002に保存される。
係数個数予測部1003は、符号化済みブロックの係数の個数を係数個数記憶部1002から読み込むことによりその値を参照して、符号化対象ブロックの係数の個数を予測する。
VLCテーブル選択部1004では、係数個数予測部1003で予測された係数の個数をもとに、符号化に用いるVLCテーブルを選択する。
係数符号化部1005は、VLCテーブル選択部1004で選択されたVLCテーブルを用いて符号化対象ブロックの係数の符号化を行う。
係数個数予測部1003を除く装置、つまり、係数個数検出部1001、係数個数記憶部1002、VLCテーブル選択部1004、係数符号化部1005は、第1の実施の形態において図3を参照して説明した係数個数検出部301、係数個数記憶部302、VLCテーブル選択部304、係数符号化部305と同じ動作であるので、説明を省略する。
次に、係数個数予測部1003の動作を説明する。
図11は、係数個数予測部1003の動作を説明するための図であり、図中斜線で示したブロックが符号化対象ブロックである。
係数個数予測部1003は、予測方法記憶部912から、符号化対象ブロックの左隣りのブロックおよび上隣りのブロックの予測方法(画面内予測もしくは画面間予測)を読み込む。
図11(a)のように符号化対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面間予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最大値を、符号化対象ブロックの係数の個数の予測値とする。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、大きい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から符号化対象ブロックの係数の個数の予測値を求めることも好適である。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を加えることによって、符号化対象ブロックの係数の個数の予測値を求めることも好適である。
図11(a)のように、周囲のブロックが画面間予測されたブロックであり、符号化対象ブロックが画面内予測されたブロックになる場合には、周囲の画面間予測されたブロックよりも画面内予測されたブロックである符号化対象ブロックの方が係数の個数が大きくなることが多いため、最大値を用いる方法や、大きい方の係数の個数に対する重みを大きくする方法、平均値に対して所定の値を加える方法が好適である。
図11(b)のように符号化対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面内予測されたブロックである場合には、画面内予測された方のブロック(図11(b)では上隣りのブロック)の重みを大きくして、左隣りのブロックの係数の個数nAと、上隣りのブロックの係数の個数nBの線形結合から符号化対象ブロックの係数の個数の予測値を求める。
図11(b)では、(nA+3×nB)/4を係数の個数の予測値とする。なお、nAに対する重みを0、nBに対する重みを1とし、上隣りのブロックの係数の個数nBだけを用いる構成としても良い。
図11(c)のように符号化対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面内予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最小値を、符号化対象ブロックの係数の個数の予測値とする。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、小さい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から符号化対象ブロックの係数の個数の予測値を求めることも好適である。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を減算することによって、符号化対象ブロックの係数の個数の予測値を求めることも好適である。
図11(c)のように、周囲のブロックが画面内予測されたブロックであり、符号化対象ブロックが画面間予測されたブロックになる場合には、周囲の画面内予測されたブロックよりも画面間予測されたブロックである符号化対象ブロックの方が係数の個数が小さくなることが多いため、最小値を用いる方法や、小さい方の係数の個数に対する重みを大きくする方法、平均値に対して所定の値を減じる方法が好適である。
図11(d)のように符号化対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面間予測されたブロックである場合には、画面間予測された方のブロック(図11(d)では上隣りのブロック)の重みを大きくして、左隣りのブロックの係数の個数nAと、上隣りのブロックの係数の個数nBの線形結合から符号化対象ブロックの係数の個数の予測値を求める。
図11(d)では、(nA+3×nB)/4を係数の個数の予測値とする。なお、nAに対する重みを「0」、nBに対する重みを「1」とし、上隣りのブロックの係数の個数nBだけを用いる構成としても良い。
図11(b),(d)のように、周囲のブロックのうち、符号化対象ブロックと同じ予測方法となるブロックが、左隣りのブロックおよび上隣りのブロックのいずれかだけの場合は、符号化対象ブロックの係数の個数は、同じ予測方法となるブロックの係数の個数との相関が高くなる。
そのため、予測方法が同じとなるブロックの重みを大きくして線形結合により予測値を求める方法が好適である。
上記以外、例えば図11(e)や(f)の場合には、左隣りのブロックの係数の個数nAと、上隣りのブロックの係数の個数nBの平均値を、符号化対象ブロックの係数の個数の予測値とする。
以上説明したように、予測方法記憶部912によって予測方法を記憶しておき、符号化対象ブロックの予測方法と、周囲の既に符号化済みのブロックの予測方法を参照することによって、符号化対象ブロックの係数を予測し、予測された係数の個数に応じて、符号化に用いるVLCテーブルを選択することによって、1フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化することができる。
(実施の形態4)
図12は、本発明の実施の形態4に従う画像復号装置の構成を示すブロック図である。
図12を参照して、本実施の形態4に従う画像復号装置は、実施の形態3に従う画像符号化装置で符号化された画像データを復号するのに用いられる。
本実施の形態4に従う画像復号装置は、可変長符号復号部1201、逆量子化部1202、逆変換部1203、画面内予測部1204、画面間予測部1205、フレームメモリ1206、スイッチ1207、加算部1208、予測方法記憶部1209から構成される。
入力された符号化データを復号する場合には、まず、符号化データから、復号対象のブロックが画面内予測であるか、画面間予測であるかを示すフラグを復号する。当該フラグの復号は、符号化データに基づいて図示しないが復号制御部で実行されるものとする。そして、復号制御部による復号に基づいてスイッチ1207の切り替えが実行されるものとする。なお、可変長符号復号部1201においてフラグを復号して、スイッチ1207の切り替えを制御するようにすることも可能である。
復号対象ブロックが画面内予測である場合には、画面内予測部1204により予測画像を生成する。復号対象ブロックが画面間予測である場合には、画面間予測部1205により予測画像を生成する。
画面内予測と画面間予測との切り替えはスイッチ1207により行われる。続いて、可変長符号復号部1201により変換係数を復号し、逆量子化部1202で逆量子化を行い逆変換部1203で逆変換を行う。
こうして得られた予測誤差画像を、先ほど生成した予測画像と加算部1208において加算することで、復号画像を得る。得られた復号画像はフレームメモリ1206に記憶される。フレームメモリ1206に記憶された復号画像は、画面内予測部1204、画面間予測部1205で用いるための参照画像となる。
本実施の形態4に従う画像復号装置では、マクロブロック単位で、画面内予測と画面間予測とを切り替えるような符号化データを復号するものとする。
予測方法記憶部1209は、マクロブロック単位で、各マクロブロックが画面内予測されたものか、画面間予測されたものかを記憶するものとする。予測方法記憶部1209の情報は、可変長符号復号部1201に伝送される。
本発明の特徴部分である可変長符号復号部1201について詳細を説明する。
図13は、本実施の形態4に従う可変長符号復号部1201の構成を示す図である。
図13を参照して、本実施の形態4に従う可変長符号復号部1201は、係数個数検出部1301、係数個数記憶部1302、係数個数予測部1303、VLCテーブル選択部1304、係数復号部1305から構成される。
係数個数検出部1301は、実施の形態3に従う係数個数検出部1001と同様に、ブロック毎に非0の値を持つ係数の個数を検出する。
検出する対象は、実施の形態3では、これから符号化する係数の個数であったが、本実施の形態では、復号して得られた係数の個数である。ここで検出された係数の個数は、係数個数記憶部1302に保存される。
係数個数予測部1303は、復号済みブロックの係数の個数を係数個数記憶部1302から読み込むことにより、その値を参照して復号対象ブロックの係数の個数を予測する。
VLCテーブル選択部1304では、係数個数予測部1303で予測された係数の個数をもとに、復号に用いるVLCテーブルを選択する。
係数復号部1305は、VLCテーブル選択部1304で選択されたVLCテーブルを用いて復号対象ブロックの係数の復号を行う。
係数個数予測部1303を除く装置、つまり、係数個数検出部1301、係数個数記憶部1302、VLCテーブル選択部1304、係数符号化部1305は、図8を参照して説明した係数個数検出部701、係数個数記憶部702、VLCテーブル選択部704、係数復号部705と同じ動作であるので、説明を省略する。
次に、係数個数予測部1303の動作を説明する。
図11を用いて係数個数予測部1303の動作を説明する。図中斜線で示したブロックが復号対象ブロックである。
係数個数予測部1303は、予測方法記憶部1209から、復号対象ブロックの左隣りのブロックおよび上隣りのブロックの予測方法(画面内予測もしくは画面間予測)を読み込む。
図11(a)のように復号対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面間予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最大値を、復号対象ブロックの係数の個数の予測値とする。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、大きい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から復号対象ブロックの係数の個数の予測値を求めることも好適である。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を加えることによって、復号対象ブロックの係数の個数の予測値を求めることも好適である。
図11(b)のように復号対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面内予測されたブロックである場合には、画面内予測された方のブロック(図11(b)では上隣りのブロック)の重みを大きくして、左隣りのブロックの係数の個数nAと、上隣りのブロックの係数の個数nBの線形結合から復号対象ブロックの係数の個数の予測値を求める。
図11(b)では、(nA+3×nB)/4を係数の個数の予測値とする。なお、上隣りのブロックの係数の個数nBをそのまま係数の個数の予測値としても良い。
図11(c)のように復号対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面内予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最小値を、復号対象ブロックの係数の個数の予測値とする。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、小さい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から復号対象ブロックの係数の個数の予測値を求めることも好適である。
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を減算することによって、復号対象ブロックの係数の個数の予測値を求めることも好適である。
図11(d)のように復号対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面間予測されたブロックである場合には、画面間予測された方のブロック(図11(d)では上隣りのブロック)の重みを大きくして、左隣りのブロックの係数の個数nAと、上隣りのブロックの係数の個数nBの線形結合から復号対象ブロックの係数の個数の予測値を求める。
図11(d)では、(nA+3×nB)/4を係数の個数の予測値とする。なお、上隣りのブロックの係数の個数nBをそのまま係数の個数の予測値としても良い。
上記以外、例えば図11(e)や(f)の場合には、左隣りのブロックの係数の個数nAと、上隣りのブロックの係数の個数nBの平均値を、復号対象ブロックの係数の個数の予測値とする。
以上説明したように、予測方法記憶部1209によって予測方法を記憶しておき、復号対象ブロックの予測方法と、周囲の既に復号済みのブロックの予測方法を参照することによって、復号対象ブロックの係数を予測し、予測された係数の個数に応じて、復号に用いるVLCテーブルを選択することによって、1フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化された画像データを復号することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではない。本発明の範囲は上記した実施の形態ではなくて特許請求の範囲によって示され、特許請求の範囲と均等な意味および範囲内でのすべての変更点が含まれることが意図される。
本発明は、画像符号化装置および画像復号装置として利用することができる。
本発明の実施の形態1に従う画像符号化装置の構成を示すブロック図である。 符号化対象マクロブロックと符号化対象マクロブロックを符号化するために参照するマクロブロックの位置関係を示す図である。 本発明の実施の形態1に従う特徴的な部分である可変長符号化部108の内部の構成を示す図である。 符号化対象ブロックに対する参照ブロックを示す図である。 係数個数記憶部302が係数の個数を記憶するマクロブロック内のブロックを示す図である。 予測方法3を説明するための図である。 本発明の実施の形態2に従う画像復号装置の構成を示すブロック図である。 本実施の形態2に従う可変長符号復号部601の構成を示す図である。 本発明の実施の形態3に従う画像符号化装置の構成を示すブロック図である。 本発明の実施の形態3に従う特徴的な部分である可変長符号化部908の内部の構成を示す図である。 係数個数予測部の動作を説明するための図である。 本発明の実施の形態4に従う画像復号装置の構成を示すブロック図である。 本実施の形態4に従う可変長符号復号部1201の構成を示す図である。 従来の画像符号化装置の構成を示すブロック図である。 4×4画面内予測の予測モードを示す図である。 符号化対象ブロックの画素と参照する符号化済みブロックの画素の位置関係を示す図である。 符号化対象ブロックと参照する符号化済みブロックとの位置関係を示す図である。 TotalCoeffと、TrailingOnesの符号化に用いられるVLCテーブルを説明する図である。
符号の説明
101,901,1401 変換部、102,902,1402 量子化部、103,602,903,1202,1403 逆量子化部、104,603,904,1203,1404 逆変換部、105,604,905,1204,1405 画面内予測部、106,605,906,1205,1406 画面間予測部、107,606,907,1206,1407 フレームメモリ、108,908,1408 可変長符号化部、109,607,909,1207,1409 スイッチ、110,910,1410 減算部、111,608,911,1208,1411 加算部、301,701,1001,1301 係数個数検出部、302,702,1002,1302 係数個数記憶部、303,703,1003,1303 係数個数予測部、304,704,1004,1304 VLCテーブル選択部、305,908,1005 係数符号化部、601,1201 可変長符号復号部、705,1305 係数復号部、912,1209 予測方法記憶部。

Claims (30)

  1. 画面内予測部と、
    係数個数予測部と、
    VLCテーブル選択部と、
    可変長符号化部とを備え、
    前記係数個数予測部は、前記画面内予測部の予測モードに応じて符号化対象ブロックの非0の係数の個数を予測し、
    前記VLCテーブル選択部は、予測された符号化対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する、画像符号化装置。
  2. 前記係数個数予測部は、既に符号化済みのブロックの非0の係数の個数の線形結合によって、符号化対象ブロックの非0の係数の個数を予測し、さらに、前記線形結合の重みを前記画面内予測部の予測モードに応じて変化させる、請求項1に記載の画像符号化装置。
  3. 前記係数個数予測部は、前記画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする、請求項2に記載の画像符号化装置。
  4. 前記係数個数予測部は、前記画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードと、符号化対象ブロックの上に隣接するブロックの予測モードとを比較することによって、線形結合における左に隣接するブロックの非0の係数の個数に対する重み、および、上に隣接するブロックの非0の係数の個数に対する重み、を変化させる、請求項2に記載の画像符号化装置。
  5. 前記画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードと、符号化対象ブロックの上に隣接するブロックの予測モードとを比較し、符号化対象ブロックの予測モードに近い方のブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする、請求項4に記載の画像符号化装置。
  6. 画面内予測部と、
    係数個数予測部と、
    VLCテーブル選択部と、
    可変長符号復号部とを備え、
    前記係数個数予測部は、前記画面内予測部の予測モードに応じて非0の係数の個数を予測し、
    前記VLCテーブル選択部は、予測された符号化対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する、画像復号装置。
  7. 前記係数個数予測部は、既に復号済みのブロックの非0の係数の個数の線形結合によって、符号化対象ブロックの非0の係数の個数を予測し、さらに、前記線形結合の重みを前記画面内予測部の予測モードに応じて変化させる、請求項6に記載の画像復号装置。
  8. 前記係数個数予測部は、前記画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする、請求項7に記載の画像復号装置。
  9. 前記係数個数予測部は、前記画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードと、復号対象ブロックの上に隣接するブロックの予測モードを比較することによって、線形結合における左に隣接するブロックの非0の係数の個数に対する重み、および、上に隣接するブロックの非0の係数の個数に対する重み、を変化させる、請求項7に記載の画像復号装置。
  10. 前記係数個数予測部は、前記画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードと、復号対象ブロックの上に隣接するブロックの予測モードとを比較し、復号対象ブロックの予測モードに近い方のブロックの非0の係数の個数に対する重みを他のブロックの非0の係数の個数に対する重みよりも大きくする、請求項9に記載の画像復号装置。
  11. 画面内予測部と、
    画面間予測部と、
    予測方法記憶部と、
    係数個数予測部と、
    VLCテーブル選択部と、
    可変長符号化部とを備え、
    前記係数個数予測部は、前記予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非0の係数の個数を予測し、前記VLCテーブル選択部は、予測された符号化対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する、画像符号化装置。
  12. 前記係数個数予測部は、既に符号化済みのブロックの非0の係数の個数の線形結合によって、符号化対象ブロックの非0の係数の個数を予測し、さらに、前記線形結合の重みを前記予測方法記憶部に記憶された予測方法に応じて変化させる、請求項11に記載の画像符号化装置。
  13. 前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の最大値を、符号化対象ブロックの非0の係数の個数の予測値とする、請求項12に記載の画像符号化装置。
  14. 前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める、請求項12に記載の画像符号化装置。
  15. 前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の平均値に所定の値を加えることによって符号化対象ブロックの非0の係数の個数の予測値を求める、請求項12に記載の画像符号化装置。
  16. 前記係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の最小値を、符号化対象ブロックの非0の係数の個数の予測値とする、請求項12に記載の画像符号化装置。
  17. 前記係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める、請求項12に記載の画像符号化装置。
  18. 前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数の平均値から所定の値を減じることによって符号化対象ブロックの非0の係数の個数の予測値を求める、請求項12に記載の画像符号化装置。
  19. 前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面内予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める、請求項12に記載の画像符号化装置。
  20. 前記係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非0の係数の個数と、符号化対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面間予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非0の係数の個数の予測値を求める、請求項12に記載の画像符号化装置。
  21. 画面内予測部と、
    画面間予測部と、
    予測方法記憶部と、
    係数個数予測部と、
    VLCテーブル選択部と、
    可変長符号化部とを備え、
    前記係数個数予測部は、前記予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非0の係数の個数を予測し、
    前記VLCテーブル選択部は、予測された復号対象ブロックの非0の係数の個数に応じてVLCテーブルを選択する、画像復号装置。
  22. 前記係数個数予測部は、既に復号済みのブロックの非0の係数の個数の線形結合によって、復号対象ブロックの非0の係数の個数を予測し、さらに、前記線形結合の重みを前記予測方法記憶部に記憶された予測方法に応じて変化させる、請求項21に記載の画像復号装置。
  23. 前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の最大値を、復号対象ブロックの非0の係数の個数の予測値とする、請求項22に記載の画像復号装置。
  24. 前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める、請求項22に記載の画像復号装置。
  25. 前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の平均値に所定の値を加えることによって復号対象ブロックの非0の係数の個数の予測値を求める、請求項22に記載の画像復号装置。
  26. 前記係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の最小値を、復号対象ブロックの非0の係数の個数の予測値とする、請求項22に記載の画像復号装置。
  27. 前記係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める、請求項22に記載の画像復号装置。
  28. 前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数の平均値から所定の値を減じることによって復号対象ブロックの非0の係数の個数の予測値を求める、請求項22に記載の画像復号装置。
  29. 前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面内復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める、請求項22に記載の画像復号装置。
  30. 前記係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非0の係数の個数と、復号対象ブロックの上に隣接するブロックの非0の係数の個数のうち、画面間復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非0の係数の個数の予測値を求める、請求項22に記載の画像復号装置。
JP2006273186A 2006-10-04 2006-10-04 画像符号化装置および画像復号装置 Withdrawn JP2008092456A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006273186A JP2008092456A (ja) 2006-10-04 2006-10-04 画像符号化装置および画像復号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006273186A JP2008092456A (ja) 2006-10-04 2006-10-04 画像符号化装置および画像復号装置

Publications (1)

Publication Number Publication Date
JP2008092456A true JP2008092456A (ja) 2008-04-17

Family

ID=39376084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006273186A Withdrawn JP2008092456A (ja) 2006-10-04 2006-10-04 画像符号化装置および画像復号装置

Country Status (1)

Country Link
JP (1) JP2008092456A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011083520A1 (ja) * 2010-01-08 2011-07-14 富士通株式会社 動画像符号化装置および動画像復号装置
WO2012096174A1 (en) * 2011-01-13 2012-07-19 Canon Kabushiki Kaisha Image coding apparatus, image coding method and program, image decoding apparatus, and image decoding method and program
JP2013078161A (ja) * 2007-01-18 2013-04-25 Samsung Electronics Co Ltd イントラ予測符号化、復号化方法及び装置
US9094687B2 (en) 2009-12-28 2015-07-28 Fujitsu Limited Video encoder and video decoder

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013078161A (ja) * 2007-01-18 2013-04-25 Samsung Electronics Co Ltd イントラ予測符号化、復号化方法及び装置
US9094687B2 (en) 2009-12-28 2015-07-28 Fujitsu Limited Video encoder and video decoder
WO2011083520A1 (ja) * 2010-01-08 2011-07-14 富士通株式会社 動画像符号化装置および動画像復号装置
JP5533885B2 (ja) * 2010-01-08 2014-06-25 富士通株式会社 動画像符号化装置および動画像復号装置
US9078006B2 (en) 2010-01-08 2015-07-07 Fujitsu Limited Video encoder and video decoder
WO2012096174A1 (en) * 2011-01-13 2012-07-19 Canon Kabushiki Kaisha Image coding apparatus, image coding method and program, image decoding apparatus, and image decoding method and program
US9270992B2 (en) 2011-01-13 2016-02-23 Canon Kabushiki Kaisha Image coding apparatus, image coding method and program, image decoding apparatus, and image decoding method and program

Similar Documents

Publication Publication Date Title
US10812821B2 (en) Video encoding and decoding
JP2022050410A (ja) インタ予測方法及びその装置
RU2571572C2 (ru) Кодирование и декодирование видео
KR101458968B1 (ko) 화면 간 예측 수행시 후보 블록 결정 방법 및 이러한 방법을 사용하는 장치
JP5409824B2 (ja) 動画像復号装置及び動画像復号方法
WO2012087034A2 (ko) 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
US20090310677A1 (en) Image encoding and decoding method and apparatus
CN103299637A (zh) 运动图像编码装置、运动图像译码装置、运动图像编码方法以及运动图像译码方法
JP2010135864A (ja) 画像符号化方法及び装置並びに画像復号化方法及び装置
KR20170108367A (ko) 인트라 예측 기반의 비디오 신호 처리 방법 및 장치
JP5222958B2 (ja) 動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法
WO2013066026A1 (ko) 양자화 계수 부/복호화 방법 및 이러한 방법을 사용하는 장치
KR20140043759A (ko) 움직임 벡터 리스트 설정 방법 및 이러한 방법을 사용하는 장치
WO2013051794A1 (ko) 두 개의 후보 인트라 예측 모드를 이용한 화면 내 예측 모드의 부/복호화 방법 및 이러한 방법을 사용하는 장치
JP2023118926A (ja) 復号化方法、復号化デバイス、復号化側機器、電子機器及び不揮発性記憶媒体
JP2023179791A (ja) 符号化・復号方法、装置及びそのデバイス
JP2008092456A (ja) 画像符号化装置および画像復号装置
KR101802375B1 (ko) 시간적 후보 움직임 벡터 유도 방법 및 이러한 방법을 사용하는 장치
JP5219062B2 (ja) 画像データの生成方法
CN100508615C (zh) 运动图像的编码方法、解码方法、编码装置及解码装置
JP4697802B2 (ja) 動画像予測符号化方法および装置
KR20160106348A (ko) 비디오 부호화 방법 및 그 장치
KR20080013843A (ko) 동영상의 무손실 부호화, 복호화 방법 및 장치
WO2019150435A1 (ja) 映像符号化装置、映像符号化方法、映像復号装置、映像復号方法、及び映像符号化システム
JP7560995B2 (ja) 符号化装置及びプログラム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100105