JP5470405B2 - 画像符号化装置および方法 - Google Patents

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

Info

Publication number
JP5470405B2
JP5470405B2 JP2011547337A JP2011547337A JP5470405B2 JP 5470405 B2 JP5470405 B2 JP 5470405B2 JP 2011547337 A JP2011547337 A JP 2011547337A JP 2011547337 A JP2011547337 A JP 2011547337A JP 5470405 B2 JP5470405 B2 JP 5470405B2
Authority
JP
Japan
Prior art keywords
pixel
value
block size
prediction
block
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.)
Active
Application number
JP2011547337A
Other languages
English (en)
Other versions
JPWO2011080925A1 (ja
Inventor
秀之 大古瀬
克紀 浦野
清史 安倍
博 荒川
悠樹 丸山
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2011547337A priority Critical patent/JP5470405B2/ja
Publication of JPWO2011080925A1 publication Critical patent/JPWO2011080925A1/ja
Application granted granted Critical
Publication of JP5470405B2 publication Critical patent/JP5470405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Description

本発明は、動画像をH.264規格に従って符号化する画像符号化装置および方法に関するものである。
近年、BD/DVDレコーダ等の録画機器やカムコーダなどの撮像機器でハイビジョン動画像を記録する際、従来のMPEG−2よりも符号化効率が高いH.264規格を用いた記録方式が主流となりつつある。
H.264規格では、非特許文献1に記載されているように、面内予測符号化方式が採用されている。この面内予測符号化方式では、(1)予測ブロックサイズ、(2)予測方向の情報(これらをあわせて「予測モード」と記す。)、および(3)ブロック画像と予測画像との残差信号が符号化される。さらに、H.264規格のBaseline profileおよびMain profileにおいては、面内予測符号化の単位となる予測ブロックサイズは、輝度信号に対しては、符号化対象マクロブロック単位である16×16画素ブロック、直交変換単位である4×4画素ブロックの2種類が定められており、色差信号に関しては、8×8画素ブロックのみが定められている。図12は、H.264規格のBaseline profileで規定されている面内予測符号化方式の予測モードを示す図である。図12(a)は、4×4画素ブロックの予測モードを示す図であり、図12(b)は、16×16画素ブロックの予測モードを示す図である。予測方向は、図12(a)に示すように、輝度信号の4×4画素ブロックの予測では平均値予測を含めて9通りの予測方向が定められている。また、図12(b)に示すように、輝度信号の16×16画素ブロックと色差信号の8×8画素ブロックの予測では4通りの予測方向が定められており、予測ブロック毎に1方向を選択する。1つのマクロブロックで必要な予測方向の情報量は、予測ブロックサイズに依存して増減し、予測ブロックサイズが小さくなるとマクロブロック内の予測ブロックの数が増えるために情報量が増えることになる。
H.264規格に基づいて符号化する際、システム的に設定される符号量の上限を超えないように発生符号量を制御する必要があり、種々の制御方式が提案されている。その一方式として、次のピクチャ符号量が上限を超えそうなときに面内予測の予測サイズを16×16画素ブロックの固定とし、かつ予測方向を周辺画素の平均値予測に固定することで発生する符号量を抑制する方式が提案されている(特許文献1参照)。
特開2008-22405号公報
ISO/IEC 14496−10:2005
画像を符号化する際、前述の通り発生符号量を制御する必要があり、通常は量子化幅を制御することで発生符号量を制御する。しかし、発生符号量を急激に抑制するためには量子化幅を大きくするだけでは不十分な場合がある。発生符号量を抑制するため、画像信号以外の情報(以下、「オーバーヘッド」と記す。)を減らす必要がある。
そこで、前述の特許文献1では、面内予測符号化によるオーバーヘッドを削減して符号量を抑制する方式が開示されている。しかし、例えば入力画像が画素毎に白と黒の市松模様になっている場合、斜め方向の予測ができない16×16画素ブロック予測モードに固定すると、オーバーヘッドは減るものの、予測が全く当たらないため残差成分が非常に大きくなってしまい、符号量を抑制することができない。或いは、符号量を抑制するために量子化幅を大きくすると、著しい画質劣化を引き起こす事になる。
そこで、本発明は上記の事情に鑑みてなされたものであり、入力画像のパターンにかかわらず、画質劣化を抑制し、かつ、面内予測符号化における発生符号量を抑制するのに最適な面内予測モードを選択する事が可能な画像符号化装置および方法を提供することを目的とする。
また、上記の課題を解決するために、本発明に係る画像符号化装置は、入力画像内の符号化対象マクロブロックを、複数のサイズを有する面内予測ブロックを単位として面内予測符号化する画像符号化装置であって、前記入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、前記符号化対象マクロブロック内における4×4画素ブロックサイズの分散値を算出し、さらに前記符号化対象マクロブロック内における16×16画素ブロックサイズの分散値を算出する特徴量算出部と、前記算出した16×16画素ブロックサイズの分散値が小さいと判断した場合であって、(1)前記算出した4×4画素ブロックサイズの分散値が前記16×16画素ブロックサイズの分散値よりも小さくなるブロックが所定数以上ある場合、前記面内予測ブロックのサイズを4×4画素ブロックサイズと設定し、(2)前記算出した4×4画素ブロックサイズの分散値が前記16×16画素ブロックサイズの分散値よりも小さくなるブロックが所定数未満である場合、前記面内予測ブロックのサイズを16×16画素ブロックサイズと設定するサイズ決定部と、決定された前記サイズの面内予測ブロックを単位として、前記符号化対象マクロブロックを面内予測符号化する符号化部とを備える。
また、上記の課題を解決するために、本発明に係る画像符号化装置は、入力画像内の符号化対象マクロブロックを、複数のサイズを有する面内予測ブロックを単位として面内予測符号化する画像符号化装置であって、前記入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、当該画素値の統計情報を算出する特徴量算出部と、算出された前記統計情報に基づいて、前記符号化対象マクロブロック内で所定の方向に対する画素値の変化の度合いが小さいほど、より大きい面内予測ブロックサイズが選択されるよう所定の基準に従って、前記面内予測ブロックサイズを決定するサイズ決定部と、決定された前記サイズの面内予測ブロックを単位として、前記符号化対象マクロブロックを面内予測符号化する符号化部とを備える。
なお、本発明は、画像符号化装置として実現できるだけでなく、画像符号化装置を備える携帯情報端末や放送装置、画像符号化装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
以上のように本発明によれば、入力画像の画像パターンにかかわらず、面内予測符号化における発生符号量を抑制するのに最適な面内予測モードを選択することが可能となる。
図1は、本実施の形態1に係る画像符号化装置の構成を示すブロック図である。 図2は、図1に示した面内予測ブロックサイズ決定部の詳細な構成を示すブロック図である。 図3は、本実施の形態1において面内予測ブロックサイズを決定する処理の一例を説明するフローチャートである。 図4は、本実施の形態1において面内予測ブロックサイズを決定する処理の他の一例を説明するフローチャートである。 図5は、エッジおよびグラデーションを表す画素値の変化を示す図である。 図6は、水平方向および垂直方向の隣接画素間の画素値の差分の算出方法を示す概念図である。 図7は、閾値0から閾値3、および量子化パラメータQPを用いて、輝度の分散値の閾値を算出する処理を説明するフローチャートである。 図8は、実施の形態2において、輝度の分散値が16×16画素マクロブロックよりも小さい4×4画素ブロックの個数が多いときに、4×4画素ブロックを単位として面内予測を行った方が発生符号量を低減できる画像の一例を示す図である。 図9は、図8に示したマクロブロック内の画像を、マクロブロックの上から16画素の位置で水平方向にスキャンした場合の各画素の残差である輝度を示す図である。 図10は、本実施の形態2において面内予測ブロックサイズを決定する処理の一例を説明するフローチャートである。 図11は、実施の形態3のデコーダのバッファシミュレーションにおける発生符号量の制御を説明する図である。 図12は、H.264規格のBaseline profileで規定されている面内予測符号化方式の予測モードを示す図である。
以下、本発明の実施形態について、図面を用いて説明する。なお、本発明について、以下の実施の形態および添付の図面を用いて説明を行うが、これは例示を目的としており、本発明がこれらに限定されることを意図しない。また、これらの実施の形態に示される技術内容を互いに組み合わせたものも本願発明に含まれることは言うまでもない。
(実施の形態1)
図1は、本実施の形態1に係る画像符号化装置の構成を示すブロック図である。図1に示すように画像符号化装置100は、ブロック特徴量算出部102、面内予測ブロックサイズ決定部103、符号化部105、およびレート制御部106を備える。さらに、符号化部105は、内部に、減算器1051、面内予測部1052、面内予測方向決定部1053、T・Q(Transformation and Quantization)部1054、IQ・IT(Inverse Quantization and Inverse Transformation)部1055、加算器1056、DBF(Deblocking Filter)部1057、フレームメモリ1058、周辺画素メモリ1059、およびエントロピー符号化部1050を備える。画像符号化装置100は、外部から取得した入力画像101のブロック特徴量を算出し、算出されたブロック特徴量と、外部からの入力により外部のレジスタまたはメモリに設定された制御パラメータ104とを用いて、入力画像101をどのブロックサイズで面内予測するかを決定し、決定されたブロックサイズで入力画像101を面内予測し、さらに符号化して得られたストリーム107を出力する画像符号化装置である。ここで、ブロック特徴量は、画素値の統計情報であり、例えば、輝度値の分散値、平均値、隣接画素差分値和、隣接画素差分絶対値和、およびダイナミックレンジなどである。なお、図1では、本願発明の主眼は面内予測における処理であるので、面内予測と関係がない処理部、例えば、面間予測を行う処理部などの構成の記載を省略している。
本実施の形態においては、H.264規格のBaseline profileもしくはMain profileに基づいて符号化することを前提とする。H.264規格のBaseline profileもしくはMain profileの場合、輝度信号の面内予測ブロックサイズは16×16画素と4×4画素の何れかとなる。また、本実施の形態では、面内予測のモードを決定する方式として、ブロックサイズを決定した後に予測方向を決定する方式を前提とする。すなわち、H.264規格のHigh profileで用いられる輝度信号の8×8画素ブロックサイズは用いない。また、面内予測を用いた符号化処理に焦点をあてて説明するため、画面間の予測を用いた符号化処理に関する説明は省略する。
H.264規格では、1画面に相当する入力画像101を画像の左上から右下に向かって水平方向に順次、16×16画素の矩形領域(マクロブロック、以下「MB」と記す。)に分割し、分割後のMBを単位として符号化処理を行う。
ブロック特徴量算出部102は、符号化対象MBの特徴、すなわち、MB内における画素値の変化の傾向を示すブロック特徴量を算出する。ブロック特徴量算出部102は、ブロック特徴量として、例えば、MB(16×16画素)単位や直交変換ブロック(4×4画素)単位での輝度値の平均、分散値、ダイナミックレンジ、隣接画素差分絶対値和などを算出し、ブロック特徴量として出力する。なお、本実施の形態1では、ブロック特徴量算出部102はブロック特徴量をMB単位で算出するものとする。
例えば、輝度値の平均値a´は、次の(式1)で求められる。ただし、Mはブロック内の水平方向の画素数、Nはブロック内の垂直方向の画素数を示し、iは1から1ずつ増加してNまでの値をとる整数を示し、jは1から1ずつ増加してMまでの値をとる整数を示し、a(i,j)はi行j列の画素の輝度値を示す。ここでは、N=M=16である。ブロック特徴量算出部102は、ブロックごとに、(式1)の演算を行うことにより、各ブロックの輝度値の平均値a´を算出する。なお、コンピュータを用いた以下のような演算式の計算は周知技術であるので、演算の具体的処理については説明を省略する。
Figure 0005470405
また、輝度の分散値S2は、次の(式2)で求められる。(式2)において、Mはブロック内の水平方向の画素数、Nはブロック内の垂直方向の画素数、a´は輝度値の平均値、a(i,j)はブロック内のi行j列の画素の輝度値、iは1から1ずつ増加してNまでの値をとる整数、jは1から1ずつ増加してMまでの値をとる整数を示す。ブロック特徴量算出部102は、ブロックごとに、次式の演算を行うことにより、各ブロックの輝度値の分散値S2を算出する。
Figure 0005470405
さらに、ブロック特徴量として、ダイナミックレンジは、例えば、輝度値の場合、輝度値の最小値から最大値までの幅、または輝度値の最小値と最大値との比率(dB)で求められる。
また、例えば、水平方向(行方向)の輝度値の隣接画素差分絶対値和ahは、次の(式3)で求められ、垂直方向(列方向)の輝度値の隣接画素差分絶対値和avは、次の(式4)で求められる。なお、(式3)および(式4)において、Kはブロックの一辺の画素数を示し、a(i,j)はブロック内でi行j列に位置する画素の輝度値を示している。(式3)において、iは1から1ずつ増加してKまでの値をとる整数を示し、jは1から1ずつ増加して(K−1)までの値をとる整数を示している。また、(式4)において、iは1から1ずつ増加して(K−1)までの値をとる整数を示し、jは1から1ずつ増加してKまでの値をとる整数を示している。
Figure 0005470405
Figure 0005470405
面内予測ブロックサイズ決定部103は、ブロック特徴量算出部102によって算出されたブロック特徴量、外部から入力される制御パラメータ104、および後述のレート制御部106によって算出されるレート制御情報を用いて、面内予測ブロックサイズを4×4と16×16の何れかに決定する。詳細は後述する。
符号化部105は、H.264規格のBaseline profileもしくはMain profileに従って符号化処理を行う。
面内予測方向決定部1053は、面内予測ブロックサイズが16×16であれば、図12(b)に示したモード0からモード3までの4つの予測方向の中から、MBあたり一つの予測方向を選択する。面内予測ブロックサイズが4×4であれば、図12(a)に示したモード0からモード8までの9つの予測方向の中から、4×4画素ブロック毎に一つの予測方向を選択する。ブロックサイズが4×4であれば、MBあたり16個の4×4画素ブロックが存在し、それぞれの予測方向を決定する必要がある。予測方向を決定する方式をここでは規定しないが、一般的な方式として例えば、ブロック内の画素値と予測画像の差分絶対値和が最も小さくなる予測方向を選ぶ方式がある。
面内予測部1052は、面内予測ブロックサイズ決定部103が決定した面内予測ブロックサイズ、および面内予測方向決定部1053が決定した予測方向に従って、図12(a)および図12(b)に示したように、対象ブロックの周辺画素を用いて予測画像を生成する。その生成方式は非特許文献1に詳細が記述されている。
減算器1051は、符号化対象MBの画像と面内予測部1052が生成した予測画像との差分画像を生成する。
T・Q部1054は、差分画像を直交変換した後、量子化を行い、量子化係数を算出する。直交変換には、例えば、DCT変換(Discrete Cosine Transform)を用いる。さらに、T・Q部1054は、直交変換によって得られた直交変換係数を量子化することによって、量子化係数を算出する。
エントロピー符号化部1050は、T・Q部1054によって算出された量子化係数と、量子化に用いられた量子化幅(「量子化ステップ」ともいう)、面内予測のブロックサイズ、各ブロックの予測方向等のサイド情報(「付加情報」ともいう)を符号化してストリーム107を出力する。
T・Q部1054によって算出された量子化係数から、画像を再構成するローカルデコード処理は、以下の処理を行う。
IQ・IT部1055は、量子化係数を逆量子化および逆直交変換処理を行い、再構成差分画像を生成する。なお、IQ・IT部1055では、T・Q部1054でのDCT変換に対応して、DCT変換の逆処理であるIDCT変換(Inverse Discrete Cosine Transform)を行う。
加算器1056は、面内予測部1052で生成した予測画像に、IQ・IT部1055で生成された再構成差分画像を加算して、再構成画像を生成する。
DBF部1057は、再構成画像に対してデブロックフィルタ処理を行い、再構成フィルタ画像を生成する。
ところで、H.264規格では面内予測を行うブロックの周辺画素を用いて面内予測を行うが、デブロックフィルタ処理を行う前の画素を用いる事が規定されている。そのため、周辺画素メモリ1059では、再構成画像のうち面内予測に用いることができる画素のみを保持する。
フレームメモリ1058は、画面間予測を行うときの参照画像として、DBF部1057で生成された再構成フィルタ画像を保持する。
レート制御部106は、符号化部105の符号化結果から、レート制御情報として平均量子化幅、発生符号量の遷移、バッファの占有状況等を算出し、次の入力画像を符号化するときの目標符号量、量子化幅等を決定する。
ここで、面内予測モードと符号量との関係を説明する。4×4面内予測モードは4×4画素ブロック単位で面内予測を行うため、16×16画素ブロック単位での面内予測に比べて、よりきめ細かく面内予測を行うことができるうえ、それぞれの4×4画素ブロック毎に9つの予測方向から1つを選ぶことができるため予測性能が向上し、画素値の残差成分を少なくする事ができるというメリットがある。しかし、MBあたり16個の4×4画素ブロックがあり、それぞれのブロックに対して予測方向を示す情報をストリームに埋め込む必要があるため、オーバーヘッドが増えるというデメリットがある。一方、16×16面内予測モードは16×16画素ブロック単位での面内予測を行うため、画素値が一様なMBや、グラデーション、水平もしくは垂直方向にエッジがあるMBなどで残差成分を少なくできるが、これ以外の画像では残差成分が多くなってしまうというデメリットがある。ここで、画素値が一様であるとは、画素値のばらつきが少ない、画素値の変化幅が小さい、すなわち、画像が平坦であることを意味する。しかし、4×4面内予測と異なり、予測方向の情報はMBあたり1つで良いため、オーバーヘッドを削減できるというメリットがある。符号化対象MBの画像の特徴に従って適切なサイズを選択することで、符号量を抑制しつつ画質を維持することができる。また、量子化幅が大きく(粗く)なるにつれて、直交変換係数の高域成分が削られるため、すなわち、差分画像の画素値が平坦化されるため、オーバーヘッドの少ない16×16面内予測モードを選ぶ方が符号量抑制の観点で有利となる。しかし、周辺画素との相関がほとんど無く、高域成分が十分に削られない場合や、例えばMB内の画素値が白と黒の市松模様の画像のように斜め方向からの予測が有効な場合などは、4×4面内予測モードを選択する方が残差成分をより少なくできる予測モードを選択できるので、16×16面内予測モードを選択するよりも符号量を抑制できる点で有利となる。
図2は、図1に示した面内予測ブロックサイズ決定部の詳細な構成を示すブロック図である。次に図2を用いて面内予測ブロックサイズ決定部103の詳細を説明する。図2に示すとおり、面内予測ブロックサイズ決定部103は、ブロックサイズ決定部1031とパラメータ調整部1032とで構成される。ブロックサイズ決定部1031は、予測ブロックサイズを決定する特徴量として例えば輝度の分散値を用いて、閾値との比較を行うことでブロックサイズを決定する。図3は、本実施の形態において面内予測ブロックサイズを決定する処理の一例を説明するフローチャートである。予測ブロックサイズを決定する処理のフローチャートは図3に示すとおりである。ブロックサイズ決定部1031は、ブロック特徴量算出部102により、M=N=16として(式2)を用いて算出される、MBの輝度分散値と閾値とを比較して(S301)、MBの輝度分散値が閾値以下である場合は(S301でYes)、符号化対象MBを輝度が一様なMBであると判定して予測ブロックサイズに16×16画素ブロックを選び(S302)、それ以外(S301でNo)は4×4画素ブロックを選択する(S303)。
図3では、MBの輝度が一様であるか否かを、輝度の分散値を閾値と大小比較することによって判定し、その判定結果に従って、予測ブロックサイズを決定する最も簡単な一例について説明した。しかし、さらに精度よく発生符号量を抑制するためには、入力画像のエッジの方向やグラデーションなども考慮に入れて予測ブロックサイズを決定するのが好ましい。図4は、本実施の形態において面内予測ブロックサイズを決定する処理の他の一例を説明するフローチャートである。ブロックサイズ決定部1031は、まず、MBの輝度が一様であるか否かを判定する(S401)。なお、S401におけるブロックサイズ決定部1031の判定方法は、図3のS301と同じである。すなわち、ブロックサイズ決定部1031は、ブロック特徴量算出部102によって算出されたMBの輝度の分散値を閾値と比較して、輝度の分散値が閾値以下であれば、MBの輝度が一様であると判定する。輝度の分散値が閾値を超えれば、MBの輝度が一様ではないと判定する。
ブロックサイズ決定部1031は、MBの輝度が一様であると判定した場合には(S401でYes)、予測ブロックサイズに16×16画素ブロックを選び(S404)、それ以外の場合は(S401でNo)、さらに、MBがグラデーションであるか否かを判定する(S402)。グラデーションの判定については、後に、図5および図6を用いて詳しく説明する。
ブロックサイズ決定部1031は、MBがグラデーションであると判定した場合には(S402でYes)、予測ブロックサイズに16×16画素ブロックを選び(S404)、それ以外の場合は(S402でNo)、さらに、MB内に水平方向または垂直方向のエッジがあるか否かを判定する(S403)。エッジの有無の判定については、後に、図5を用いて詳しく説明する。
ブロックサイズ決定部1031は、MB内に水平方向又は垂直方向のエッジがあると判定した場合には(S403でYes)、予測ブロックサイズに16×16画素ブロックを選び(S404)、それ以外の場合は(S403でNo)、予測ブロックサイズに4×4画素ブロックを選択する(S405)。
まず、MB内に垂直方向または水平方向のエッジがあるか否かを判定する方法について説明する。
図5は、エッジおよびグラデーションを表す画素値の変化を示す図である。図5(a)は、3×3画素のブロックを例として、エッジの一例を輝度の変化で表した図である。図5(a)左は、ブロック内の各画素の輝度を数値で表したものである。ここでは、BT.709規格の8ビット精度で16から235の間の値を用いた場合を想定する。図5(a)右は、輝度を縦軸として、図5(a)左のブロックの各画素の輝度の変化を棒グラフで表したものである。MB内にエッジがある場合には、エッジの方向と垂直な方向で、隣接画素とエッジに相当する画素との間で急激に輝度値が変化する。さらに、エッジの方向で、隣接画素同士は同じような輝度値をとる。例えば、図5(a)右のグラフに示すように、第2列の画素では、第1列の画素と比較して、輝度値が急激に変化し、輝度値の最大値に近い値となっている。また、第2列の画素の輝度値は、列方向にほぼ同じ値をとっている。従って、第2列の画素がエッジに相当することが分かる。なお、図5(a)では、エッジが垂直方向に1画素の幅であるものを例としているが、第3列が第2列と同じ値をとった場合でも、第2列の画素がエッジに相当する。
エッジの場合、エッジの方向には隣接画素間の輝度値の差分はほぼ0となり、エッジに垂直な方向には隣接画素間の輝度値の差分は非常に大きな値となる。このようなエッジの特徴は、ブロック特徴量算出部102が算出した垂直方向および水平方向の隣接画素差分絶対値和を用いて検出することができる。すなわち、図5(a)右に示すように、垂直方向にエッジがある場合には、垂直方向(列方向)の輝度値の隣接画素差分絶対値和avは0に近い値となり、水平方向(行方向)の輝度値の隣接画素差分絶対値和ahは、非常に大きい値となる傾向がある。従って、垂直方向にエッジがあるか否かは、垂直方向の隣接画素差分絶対値和avが、あらかじめ定めた閾値Thv(av)以下であり、かつ、水平方向の隣接画素差分絶対値和ahが、あらかじめ定めた閾値Thv(ah)を超えるか否かを判定することによって、判定することができる。逆に、水平方向にエッジがあるか否かは、水平方向の隣接画素差分絶対値和ahが、あらかじめ定めた閾値Thh(ah)以下であり、かつ、垂直方向の隣接画素差分絶対値和avが、あらかじめ定めた閾値Thh(av)を超えるか否かを判定することによって、判定することができる。
次に、MBがグラデーションであるか否かを判定する方法について説明する。
図5(b)は、3×3画素のブロックを例として、グラデーションの一例を輝度の変化で表した図である。図5(b)左は、ブロック内の各画素の輝度を数値で表したものである。図5(b)右は、輝度を縦軸として、図5(b)左のブロックの各画素の輝度の変化を棒グラフで表したものである。MB内の画像がグラデーションである場合は、輝度値(色差でもよい)が一方向に向かって徐々に増加または徐々に低減する傾向がある。図5(b)右のグラフに示すように、図5(b)左のブロックの例では、各画素の輝度値が垂直方向にはほとんど変化せず、水平方向右向きに徐々に増加していることがわかる。このようなエッジおよびグラデーションの特徴は、ブロック特徴量算出部102が算出した垂直方向および水平方向の隣接画素差分絶対値和、またはブロック特徴量算出部102が各MBの垂直方向および水平方向の隣接画素差分絶対値和を算出する途中の値を用いて検出することができる。
図6は、水平方向および垂直方向の隣接画素間の画素値の差分の算出方法を示す概念図である。図6(a)では、矢印で示す水平方向(行方向)の隣接画素間で画素値の差分を算出することを示し、図6(b)では、矢印で示す垂直方向(列方向)の隣接画素間で画素値の差分を算出することを示している。輝度についての水平方向での隣接画素差分は、ブロック内の行ごとに計算される。式で表せば、水平方向の隣接画素間の輝度値の差分は、{a(i,j)−a(i,j+1)}で表される。また、垂直方向での隣接画素差分は、ブロック内の列ごとに計算される。式で表せば、垂直方向の隣接画素間の輝度値の差分は、{a(i,j)−a(i+1,j)}で表される。
グラデーションの場合、隣接画素間の輝度値の差分は、ある方向では一様に0に近い値となり、かつ、その方向と垂直になる方向では差分の大きさが閾値以下でほぼ一定の値となる傾向がある。従って、ブロックサイズ決定部1031は、ブロック特徴量算出部102で算出されるこれらの隣接画素間の輝度値の差分がいずれも0に近くなる方向があるか否かを検出する。すなわち、ブロックサイズ決定部1031は、垂直または水平方向で隣接画素間の画素値の変化の度合いが小さくなるか否かを検出する。そのような方向が検出された場合には、検出された方向に対して垂直の方向で隣接画素間の輝度値の差分の符号が一定であるか、隣接画素間の輝度値の差分があらかじめ定めておいた閾値以下の幅であるかを判定することによって、垂直方向または水平方向にグラデーションがあるか否かを判定することができる。
なお、図5(b)では、グラデーションの例として、ブロック内の各画素の輝度値が水平方向に一次曲線的に変化する場合、すなわち、一定の傾きを持つ場合を示したが、これに限らず、二次曲線または三次曲線的に変化する場合であってもよい。また、ここでは、隣接画素間の輝度値の差分を用いて、グラデーションの判定を行ったが、ブロック内における各方向の輝度値の変化の度合いを、一次微分を用いて計算するとしてもよい。また、グラフィック処理における従来技術を用いて、グラデーションを検出するとしてもよい。
以上のようにして本実施の形態1によれば、MBの輝度が一様であるか否か、すなわち、MBの輝度値のばらつきが閾値以下であるか否かに基づいて予測ブロックサイズを決定できるだけでなく、さらに、MBが水平または垂直方向にグラデーションであるか否か、MB内に水平または垂直方向のエッジがあるか否かに基づいて、予測ブロックサイズを決定することができる。これにより、予測ブロックサイズを16×16画素ブロックとすることが原因で、予測が全く当たらないため残差成分が非常に大きくなるという問題が生じる場合には、予測ブロックサイズとして4×4画素ブロックを選択し、このような問題を生じない場合にのみ予測ブロックサイズとして16×16画素ブロックを選択することができるので、より精度よく発生符号量を抑制することができるという効果がある。
このように、本実施の形態1の画像符号化装置100によれば、図1に示した符号化部105、ブロック特徴量算出部102および面内予測ブロックサイズ決定部103だけでも、16×16画素ブロックを単位とした面内予測における従来の課題を十分に解決できる構成であることが明らかである。
これに加えて、さらに、実施の形態1では、発生符号量が多い場合には、予測ブロックサイズとして16×16画素ブロックがより選択されやすくするために、MBの輝度が一様であるか否かを判定するための閾値を、ピクチャ単位で量子化幅に応じて設定する。
パラメータ調整部1032は、レート制御情報を用いて、図3のS301または図4のS401の判定に用いられる閾値である制御パラメータ104を調整し、ブロックサイズ決定部1031の閾値を生成する。例えば、以下のように閾値を決定する場合を説明する。量子化幅に応じた閾値のリストは制御パラメータ104に含まれており、ピクチャ単位で設定される。
この場合、パラメータ調整部1032が、レート制御情報の一つである量子化幅(QP)に連動して変動する、以下のような閾値のリストをあらかじめ保持しておく。
QP≦33・・・閾値0
33<QP≦39・・・閾値1
39<QP≦45・・・閾値2
45<QP ・・・閾値3
上記のように、閾値のリストを量子化幅QPが大きくなるほど閾値が大きくなるように、すなわち、閾値0<閾値1<閾値2<閾値3となるように、閾値0から閾値3を設定することで、ブロックサイズ決定部1031が16×16画素ブロックを選択する選択率を、増加させることが可能となる。また、QPの上限が51であるため、これに近づくにつれて閾値2から閾値3の増加量をさらに大きくすることで16×16画素ブロックの選択率をさらに増加させる事が可能となる。
図7は、閾値0から閾値3、および量子化パラメータQPを用いて、輝度の分散値の閾値を算出する処理を説明するフローチャートである。パラメータ調整部1032は、まず、外部のレジスタなどから制御パラメータ104を取得し、制御パラメータ104に含まれる閾値のリストを抽出する(S701)。次いで、パラメータ調整部1032は、レート制御部106から量子化パラメータQPを取得する(S702)。パラメータ調整部1032は、量子化パラメータQPの値が33以下であるか否かを判定し(S703)、量子化パラメータQPの値が33以下であれば(S703においてYes)、閾値=閾値0と設定する(S704)。すなわち、ステップS704で決定された閾値を識別するための閾値番号を保持するためのレジスタに、値「0」を格納する。
量子化パラメータQPの値が33を超えていれば(S703においてNo)、パラメータ調整部1032は、さらに、量子化パラメータQPの値が39以下であるか否かを判定し(S705)、量子化パラメータQPの値が39以下であれば(S705においてYes)、閾値=閾値1と設定する(S706)。
量子化パラメータQPの値が39を超えていれば(S705においてNo)、パラメータ調整部1032は、さらに、量子化パラメータQPの値が45以下であるか否かを判定し(S707)、量子化パラメータQPの値が45以下であれば(S707においてYes)、閾値=閾値2と設定する(S708)。
量子化パラメータQPの値が45を超えていれば(S707においてNo)、パラメータ調整部1032は、閾値=閾値3と設定する(S709)。
なお、ここでは、量子化幅の増加に応じて大きくなる閾値のリストを制御パラメータ104に含めて記憶しておく例を説明したが、本発明はこれに限定されない。閾値のリストは、例えば、ルックアップテーブルなどの形式で、量子化幅の範囲とあらかじめ計算しておいた閾値とを組にして、任意のメモリ、例えば、記録媒体及び外部メモリなどに記憶しておいてもよい。また、閾値のリストを記憶しておくのではなく、量子化幅に応じた重み係数をあらかじめ定めておき、量子化幅に応じた係数を用いた1次式又は他の関数で表される演算式を用いて、閾値を算出するとしてもよい。
また、ここでは、量子化幅の増加に応じて閾値の大きさを大きくするよう制御したが、閾値を制御する代わりに、すなわち、閾値の値は変更しないで、量子化幅の増加に応じた重み付け係数を、輝度の分散値に対して乗じることとしてもよい。
さらに、上記実施の形態では、量子化幅の増加に応じて閾値と分散値との比較の基準(すなわち、閾値のリスト)を変更したが、本発明はこれに限定されず、例えば、画素値の分散値と、量子化幅の増加とに応じて、大きい予測ブロックサイズが選択される確率をあらかじめ決めておき、分散値と量子化幅との組み合わせに応じて、前記確率で大きい予測ブロックサイズを選択するとしてもよい。例えば、QPが40以上45以下のときには大きい予測ブロックサイズを7割の確率で選択させるように設定する場合には、例えば、1から10までの自然数をランダムに発生させ、発生されたランダム値が1以上7以下のいずれかの値であれば大きい予測ブロックサイズを選択し、8以上10以下の値であれば小さい予測ブロックサイズを選択するというように制御してもよい。もちろん、このように制御した場合であっても、ここで例示した数値に限定されることはない。
また、量子化幅に応じて、輝度の分散値に対応する予測ブロックサイズが定められたテーブルを用いることによって、量子化幅が大きくなるほど、同じ分散値であっても、大きい予測ブロックサイズが選択されやすくなるように基準を定めてもよい。例えば、符号化対象マクロブロック内の輝度の分散値に対して選択すべき予測ブロックサイズが対応付けられたテーブルを、あらかじめ定められた量子化幅ごとに用意しておく。この場合、量子化幅が大きくなるほど、より小さい分散値に対して、大きい予測ブロックサイズが割り当てられるテーブルを用意する。
また、さらに他の例としては、閾値を量子化幅に連動して変化させる代わりに、例えば、記録モードや目標符号量に応じて閾値を変動させることとしてもよい。すなわち、符号化データを記録するビットレートが低くなる記録モードでは16×16画素MBサイズが選択されやすくすることによってオーバーヘッドを減らして発生符号量を低減し、記録するビットレートが高くなる記録モードでは4×4画素ブロックサイズが選択されやすくすることによって符号化精度(解像度)を高めるとしてもよい。また、目標符号量が低いときには16×16画素MBサイズが選択されやすくすることによって発生符号量を低減し、目標符号量が高いときには4×4画素ブロックサイズが選択されやすくすることによって符号化精度を高めるとしてもよい。
なお、上記実施の形態1の他の例では、水平または垂直方向にエッジがあるか否か、および、水平または垂直方向にグラデーションか否かの両方を検出して予測ブロックサイズを決定したが、エッジとグラデーションのいずれか一方を検出して予測ブロックサイズを決定するとしてもよい。
また、ブロックサイズ決定部1031で用いる指標として、MBの輝度分散値を例としてあげたが、色差の分散値を用いてもよいし、色差の隣接画素差分絶対値和、および色差の符号を考慮した隣接画素差分等の特徴量を用いることで、図4に示すように画素値(輝度、および色差)が一様か、グラデーションであるか、エッジがあるかを判定してブロックサイズを決定することが可能である。
(実施の形態2)
上記実施の形態1では、MBの輝度分散値と閾値とを比較することによってMBの輝度が一様であるか否かを判定し、判定結果に従って、予測ブロックサイズを決定する方式を例としてあげたが、本発明はこれに限定されない。例えば、MB内に、平坦な画像からなる背景の中にコントラストの高い部分画像を含んでいる場合には、16×16画素MBサイズで面内予測符号化を行うよりも、それぞれの画像ごとに小さいブロックサイズで面内予測符号化を行った方が、発生符号量を少なくすることが可能な場合がある。本実施の形態2では、このような場合に対し、16×16画素MB全体の輝度分散値と、当該MB内の4×4画素ブロックごとの輝度分散値とを比較して、16×16画素MB全体の分散値よりも分散値が小さい4×4画素ブロックの数を計数し、計数した数が一定数よりも多い場合には、当該MBを4×4画素ブロックサイズで面内予測符号化するものと決定する。
より具体的には、まず、前記一定数として、ブロック数に関する閾値Th(n)を制御パラメータ104に含めて外部メモリに格納しておく。また、ブロック特徴量算出部102は、MBだけでなく、MB内のすべての4×4画素ブロックについてもブロック特徴量、ここでは輝度分散値を算出する。ブロックサイズ決定部1031は、MBの輝度分散値とMB内の各4×4画素ブロックの輝度分散値とを比較して、4×4画素ブロックの輝度分散値がMBの輝度分散値より小さい場合には、その4×4画素ブロックの数を算出する。次いで、算出した4×4画素ブロックの数と、制御パラメータ104から読み出したブロック数に関する閾値Th(n)とを比較し、4×4画素ブロックの数が閾値Th(n)を超えていれば予測ブロックサイズとして4×4画素ブロックを選択し、算出した4×4画素ブロックの数が閾値Th(n)以下であれば予測ブロックサイズとして16×16画素ブロックを選択する。
図8は、輝度の分散値が16×16画素MBよりも小さい4×4画素ブロックの個数が多いときに、4×4画素ブロックを単位として面内予測を行った方が発生符号量を低減できる画像の一例を示す図である。同図に示すように、16×16画素MBは、4×4画素ブロックに比べてかなりサイズが大きい。その結果、MB内に、例えば、空のように一様な画像を背景として、人の頭部や顔などのコントラストの高い画像を含んでしまう場合がある。このような場合、MBの輝度の分散値が、内部に含まれるコントラストの高い画像の影響を受けて大きな値となりやすい。これに対し、4×4画素ブロックでは、背景においても、人の頭部の画像においても、空と頭部との画像の境界部分を含むブロック以外では輝度が一様であるので、輝度の分散が小さくなるブロックの数が多くカウントされることになる。このような場合、MBを単位とするよりも、輝度の分散値が小さい4×4画素ブロックを単位として面内予測を行った方が、残差成分を精度よく低減でき、発生符号量を抑制することができる。
図9は、図8の画像を表す16×16画素MBにおいて頭部の画像を横切る水平方向のライン上の各画素の輝度を表す図である。同図は、さらに、図8のようなエッジを含んだ画像を16×16画素ブロックサイズで水平方向に面内予測符号化した場合に、エッジ部分の量子化ノイズがMBの復号化画像の全体に波及する様子を点線で示している。なお、図9では、左から4×4画素ブロックごとの区切りを縦の破線で示し、各画素の水平方向の画素値である輝度の値を実線で示している。同図において、各画素の輝度は、左端から右水平方向に、1番目の画素から11番目の画素まで一定の高い値(空の青色を表す輝度)を示している。これに対し、左から12番目の画素では、輝度が急に低い値(頭部の黒を表す輝度)となり、そのまま16番目の画素まで、一定の値を示している。従って、左から1番目の4×4画素ブロックと2番目の4×4画素ブロックとでは、輝度は一定なのでその分散は低い値となり、左から3番目の4×4画素ブロックでは、エッジを含むために輝度の分散が大きな値となり、次の4番目の4×4画素ブロックでは、再び輝度が一定となり、その分散は低い値となる。このような場合、空の画像と頭部の画像との境界にあたるエッジが、垂直方向だけであれば、16×16画素の予測ブロックサイズで面内予測を行えば、予測残差を低く抑えることができる。ところが、図8の頭部の画像に示すように、コントラストの高い頭部の画像がMB内の一部の画像である場合には、図12(b)の垂直方向の予測方向を単純に適用することができない。図8に示したような画像では、例えば、左から4列目、上から2番目の4×4画素ブロックでは、水平方向のエッジが含まれているからである。
図8のような画像に対して、16×16画素ブロックサイズでの水平方向の面内予測符号化を適用した場合には、その画像を復号化しても、図9の実線で示した輝度値には復号化されず、図9に破線で示すように、左から3番目の4×4画素ブロック内のエッジに対して生じた量子化誤差が、本来、輝度が一様な平坦な画像である1番目、2番目、および4番目の4×4画素ブロックにまで波及してしまう。この結果、復号化された画像では、一面の青空のような平坦な画像の中に、量子化誤差の影響によるノイズが現れてしまうというような画像の劣化を生じてしまう。このような場合、特に、平坦な画像の中にノイズが生じるので、画像の不具合が余計に目に付くという問題がある。
従って、このような画像の場合には、4×4画素ブロックを予測ブロックサイズとして面内予測した方が、エッジによる量子化誤差に起因した復号化画像内のノイズを4×4画素ブロックの範囲内に留めることができ、たとえエッジによる量子化誤差を生じたとしても、そのノイズが目に付かず、きれいな復号化画像を得ることができる。
図10は、本実施の形態2において予測ブロックサイズを決定する処理の一例を説明するフローチャートである。以下、図10に示すフローチャートに従って、本実施の形態2の画像符号化装置のより詳細な動作を説明する。まず、前提として、あらかじめブロック数に関する閾値Th(n)を制御パラメータ104に含めて外部メモリに格納しておき、パラメータ調整部1032は、外部メモリから閾値Th(n)を読み出しておく。また、初期値として、ブロック数をカウントするレジスタの初期値を0としておく。
ブロック特徴量算出部102は、MBの輝度の分散値を算出する(S901)。次いで、ブロックサイズ決定部1031は、MB内の1つの4×4画素ブロックの輝度の分散値を算出し(S902)、算出した4×4画素ブロックの輝度の分散値が、ブロック特徴量算出部102で算出されたMBの輝度の分散値よりも小さいか否かを判定する(S903)。4×4画素ブロックの輝度の分散値がMBの輝度の分散値よりも小さければ(S903でYes)、ブロック数をカウントするレジスタ内の値を1だけインクリメントし(S904)、4×4画素ブロックの輝度の分散値がMBの輝度の分散値以上であれば(S903でNo)、S904の処理をスキップして、次の4×4画素ブロックにつき、輝度の分散値を算出する(S902)。このようにして、ブロックサイズ決定部1031は、MB内のすべての4×4画素ブロックについて、順次、MBの輝度の分散値と4×4画素ブロックの輝度の分散値とを比較して、MBよりも輝度の分散値が小さい4×4画素ブロックの数をカウントする。
MB内のすべての4×4画素ブロックについて、MBよりも輝度の分散値が小さい4×4画素ブロックの数をカウントしたら、ブロックサイズ決定部1031は、カウントしたブロック数が、パラメータ調整部1032から取得した閾値Th(n)以下であるか否かを判定する(S905)。カウントしたブロック数が閾値Th(n)以下であれば(S905でYes)、16×16画素MBサイズで面内予測を行うことを決定する(S906)。カウントしたブロック数が閾値Th(n)を超えていれば(S905でNo)、4×4画素ブロックサイズで面内予測を行うことを決定する(S907)。
以上の処理により、1つのMBにつき、MB内に空などの一様な画像を背景として、人間の頭部や顔などのコントラストの高い画像が含まれる場合であっても、精度よく予測残差を低減できる予測ブロックサイズを決定することができる。
すなわち、本発明の画像符号化装置では、前記特徴量算出部は、前記サイズ決定部によって16×16画素ブロックサイズが選択されたとき、さらに、前記符号化対象マクロブロックに含まれるすべての4×4画素ブロックについて、前記4×4画素ブロックに属する画素の画素値に基づいて分散値を算出し、前記サイズ決定部は、前記16×16画素ブロックに対して算出した分散値と、前記各4×4画素ブロックに対して算出した分散値とを比較し、当該比較の結果に基づいて、16×16画素ブロックと4×4画素ブロックとを選択的に切り替える。
従って、ブロックサイズ決定部によって、一旦、16×16画素ブロックサイズが選択されたときでも、さらに、前記符号化対象マクロブロックに含まれるすべての4×4画素ブロックについて、当該符号化対象マクロブロックの画素値の分散値よりも画素値の分散値が小さいすべての前記4×4画素ブロックの数を計数し、計数した前記4×4画素ブロックの数が所定数以下の場合には16×16画素ブロックサイズを選択し、計数した前記4×4画素ブロックの数が前記所定数を超える場合には4×4画素ブロックサイズを選択することができる。これにより、一旦、16×16画素ブロックサイズが選択された場合であっても、当該符号化対象マクロブロックが4×4画素予測ブロックサイズで面内予測符号化した方が適切な画像であるか否かを判断し、4×4画素予測ブロックサイズで面内予測符号化した方が適切である場合には、4×4画素予測ブロックサイズで面内予測符号化を行うことができる。その結果、面内予測符号化による発生符号量を精度良く低減することができるとともに、符号化対象マクロブロック内にコントラストが強い画像が含まれることによって、量子化誤差によるノイズが当該符号化対象マクロブロックの復号化画像全体に波及することを防止し、入力画像により近い復号化画像を得ることができる。
これに加えて、さらに上述の実施の形態1で示した方式と同様に、量子化パラメータQPに連動して4×4画素ブロックの輝度分散値のオフセットを調整するとしてもよい。具体的には、図10のS902で量子化パラメータQPに連動して調整したオフセットoffset(n)を4×4画素ブロックの輝度分散値に加算し、S903でオフセットoffset(n)を加算した4×4画素ブロックの輝度分散値と、MBの輝度分散値とを比較するようにしてもよい。このように、4×4画素ブロックの輝度分散値に対するオフセットを量子化パラメータQPと連動させることによって、発生符号量が多いときには、16×16画素MBサイズが選択される確率(頻度または割合)が高くなるようにすることができる。
また、ブロックサイズ決定部1031で用いる指標として、MBの輝度分散値を例としてあげたが、色差の分散値を用いてもよいし、色差の隣接画素差分絶対値和、および色差の符号を考慮した隣接画素差分等の特徴量を用いることで、図4に示すように画素値(輝度、および色差)が一様か、グラデーションであるか、エッジがあるかを判定してブロックサイズを決定することが可能である。
(実施の形態3)
また、上述の実施の形態1では、量子化パラメータに応じて、面内予測符号化の単位となる面内予測ブロックのサイズを制御する方法を説明した。具体的には、量子化パラメータが大きくなるほど、大きいブロックサイズの面内予測ブロックが選択されやすくなるよう、量子化パラメータQPに連動して閾値を制御する方式を例とし、実施の形態2では4×4画素ブロックの輝度分散値に対するオフセットを制御する方式を例としたが、本発明はこれに限定されない。本実施の形態3では、デコーダモデルのバッファシミュレーションの値に基づき、デコーダ側での符号化データのバッファ占有量がアンダーフローレベルに近づくにつれて、閾値に乗算する乗数を大きくするという制御を行う。このバッファシミュレーションでは、例えば、直前に符号化されたピクチャ内で、CAVLC(Context−Adaptive Variable Length Coding)により実際に発生した符号量が用いられる。また、レート制御部106によるバッファへのデータ転送制御には、VBR(Variable Bit Rate)制御が採用される。
図11は、デコーダのバッファシミュレーションにおける発生符号量の制御を説明する図である。より具体的には、図11に示すように、縦軸はバッファの符号化データ占有量を示し、横軸は時刻を示している。デコーダ側のバッファには、外部のメディア、ネットワーク等から読み込まれた符号化データが、一定ビットレートで蓄積される。これに対してデコーダは、同図において上方向の矢印で示すように、復号化対象となる符号化データを、仮想的に1ピクチャ分ずつ瞬時に読み出して復号化する。なお、バッファからの符号化データの読み出しは、実際には同図のように瞬間的には読み出せないが、仮想的に瞬時に行われるものとしてシミュレーションしている。従って、バッファにおける符号化データの蓄積量が少ないときに、符号量の大きなピクチャが復号化対象ピクチャとなった場合、一気に大量の符号化データが読み出され、アンダーフローを生じてしまう。その結果、1ピクチャ分の符号化データを正常に読み出せなかったピクチャのデータが不足することにより、画像が崩れてしまったり、駒落ちが発生したりという不具合が生じる。また、このようなアンダーフローにより、参照画像が駒落ちした場合には、次のIDRピクチャまたはIピクチャまで復号化が停止してしまうという不都合を生じる。オーバーフローの場合に関しては、VBR制御を採用しているDVD(Digital Versatile Disc)やBD(Blu−ray Disc)等では、バッファがいっぱいになったらデータ転送を止めればよいので、問題にならない。これに対し、データの伝送を途中で止められない放送などの場合には、CBR(Constant Bit Rate)制御を採用しているため、オーバーフローの場合にもアンダーフローと同様の問題が発生する。従来では、アンダーフローおよびオーバーフローのいずれの場合に対しても、バッファ内の符号データ残量が上下のコントロールラインに達したとき、発生符号量を抑制したり、外部からの符号化データの読み出しを停止したりするなどの方法がとられている。
これに対し、このような不都合を解消するために、本実施の形態3では、アンダーフローを引き起こさないようにバッファ内の符号化データ残量がコントロールラインに達したとき、発生符号量を抑制するため、閾値の乗数を大きくし、16×16画素予測ブロックサイズを選択しやすくする。
なお、ここでは、バッファ内の符号化データ残量が少なくなるほど16×16画素予測ブロックサイズが選択されやすくなるよう、符号化データ残量が少なくなるほど閾値の乗数を大きくするよう制御したが、閾値の乗数を大きくするのではなく、実施の形態1で示した量子化パラメータQPと閾値0〜閾値3との対応関係と同様にして、コントロールラインを何段階かに分割し、アンダーフローに近づくにつれ閾値を大きくするよう制御するとしてもよい。例えば、パラメータ調整部1032の内部に、バッファ内の符号化データ残量と閾値との対応を示すリストを、ルックアップテーブルなどにして保持しておくとしてもよい。そして、対象MBの面内予測を行う際のバッファ内の符号化データ残量に応じた閾値をテーブルから読み出して、読み出した閾値と当該対象MBの輝度値の分散とを比較し、その比較結果に従って、当該対象MBの予測ブロックサイズを決定するとしてもよい。また、実施の形態1と実施の形態3とを組み合わせて、バッファ内の符号化データ残量と、そのときの量子化幅とに応じた閾値をあらかじめ定めておいてもよい。このように、バッファ内の符号化データ残量が少なくなるほど、値が大きくなるように定められた閾値を用いて対象MBの予測ブロックサイズを決定することによって、バッファ内の符号化データ残量が少なくなるほど、大きいブロックサイズを選択しやすくすることで、次のピクチャの発生符号量を抑制することができ、バッファ内の符号化データ残量をすみやかに適正な量に戻すことができるという効果がある。
或いは、これまでに符号化した全ピクチャで、ピクチャ毎に発生した符号量の平均が目標符号量に対して多くなるにつれて閾値または閾値の増加量を大きくするとしてもよい。このようにすることで、ピクチャごとの発生符号量が目標符号量を超えて増加するにつれて閾値又は閾値の増加量が大きくなるため、予測ブロックサイズとして16×16MBブロックサイズがより選択されやすくなり、発生符号量をタイミングよく低減することができるという効果がある。
なお、上記実施の形態では、バッファシミュレーションにおいて、CAVLCによる実際の発生符号量に基づいて、面内予測におけるブロックサイズの決定を行ったが、本発明はこれに限定されず、例えば、CABAC(Context−based Adaptive Binary Arithmetic Coding)による実際の発生符号量に基づいて、上記ブロックサイズの決定を行うとしてもよい。また、本発明は実際に発生した符号量に基づいてブロックサイズを決定する必要はなく、実際の発生符号量の代わりに、例えば、算術符号化前の2値化データなど、符号化の中間段階で発生したデータの量に基づいて予測ブロックサイズを決定するとしてもよい。さらにまた、2値化データから発生符号量を推定し、その推定符号量に基づいて予測ブロックサイズを決定するとしてもよい。このように、中間段階のデータ量に基づいてレート制御を行うことにより、CABACのような計算量の多い算術符号化を経て実際の発生符号量に基づいてレート制御を行う場合よりも、よりリアルタイムに発生符号量の制御を行うことができるというメリットがある。
なお、上記実施の形態3では、VBR制御でデータ転送を行うことを前提としたバッファシミュレーションの場合について説明したが、本発明は、CBR制御でデータ転送を行う場合についても、適用可能である。CBR制御の場合には、オーバーフローも発生させてはいけないので、オーバーフローが発生しないように予測ブロックサイズを適応的に選択する。具体的には、バッファ内の残存符号量がオーバーフローに近づくほど、例えば、閾値を小さくすることによって16×16画素予測ブロックサイズが選択されにくくなるよう制御する。
さらにまた、符号化対象ピクチャの直近、すなわち、符号化対象ピクチャが符号化される直前で符号化された符号化済みの所定枚数のピクチャにおける発生符号量が目標符号量に対して多くなるにつれて、閾値を算出するための演算式中の係数を大きくして算出するとしてもよい。また、これらを単独、或いは複合的に組み合わせて閾値を制御することも可能である。例えば、量子化パラメータQPに応じて設定される閾値と、バッファ内の符号化データ残量に応じて設定される閾値との平均を求め、求めた平均値を閾値としてもよい。
さらに、本実施の形態においても、発生符号量に基づいて閾値を制御することによって、発生符号量が大きくなるほど16×16画素予測ブロックサイズが選択されやすくなるように制御したが、本発明はこれに限定されない。例えば、バッファシミュレーションにおける発生符号量に応じて、当該対象MBの輝度値の分散と、それに対応して選択されるべき予測ブロックサイズとの対応を示したルックアップテーブルを用意しておく。すなわち、シミュレーションにおける発生符号量が大きくなるほど、より低い輝度分散値に対して、16×16画素の予測ブロックサイズが選択されるように定められたテーブルを用意しておき、シミュレーションによる発生符号量ごとに、当該発生符号量に対応するルックアップテーブルを参照して、輝度値の分散に対応する予測ブロックサイズを選択するとしてもよいことは言うまでもない。
また、上記の実施の形態1、実施の形態2、および実施の形態3は、互いに矛盾しない限り、任意に組み合わせて実施できることはいうまでもない。すなわち、本発明は、前記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることは勿論である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
なお、ブロック図(図1および図2など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。例えばメモリ以外の機能ブロックが1チップ化されていても良い。
ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ1チップ化せずに別構成としても良い。
本発明の画像符号化装置およびその方法は、動画像データをH.264規格のMain profileまたはBaseline profileで符号化し、符号化された符号化動画像データを放送し、ネットワーク上のサーバ装置にアップロードし、または録画する用途、放送装置、記録装置および携帯情報端末などに有用である。
100 画像符号化装置
101 入力画像
102 ブロック特徴量算出部
103 面内予測ブロックサイズ決定部
104 制御パラメータ
105 符号化部
106 レート制御部
107 ストリーム
1031 ブロックサイズ決定部
1032 パラメータ調整部
1050 エントロピー符号化部
1051 減算器
1052 面内予測部
1053 面内予測方向決定部
1054 T・Q部
1055 IQ・IT部
1056 加算器
1057 DBF部
1058 フレームメモリ
1059 周辺画素メモリ

Claims (2)

  1. 入力画像内の符号化対象マクロブロックを、複数のサイズを有する面内予測ブロックを単位として面内予測符号化する画像符号化装置であって、
    前記入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、前記符号化対象マクロブロック内における4×4画素ブロックサイズの分散値を算出し、さらに前記符号化対象マクロブロック内における16×16画素ブロックサイズの分散値を算出する特徴量算出部と、
    前記算出した16×16画素ブロックサイズの分散値が小さいと判断した場合であって、(1)前記算出した4×4画素ブロックサイズの分散値が前記16×16画素ブロックサイズの分散値よりも小さくなるブロックが所定数以上ある場合、前記面内予測ブロックのサイズを4×4画素ブロックサイズと設定し、(2)前記算出した4×4画素ブロックサイズの分散値が前記16×16画素ブロックサイズの分散値よりも小さくなるブロックが所定数未満である場合、前記面内予測ブロックのサイズを16×16画素ブロックサイズと設定するサイズ決定部と、
    決定された前記サイズの面内予測ブロックを単位として、前記符号化対象マクロブロックを面内予測符号化する符号化部とを備える
    画像符号化装置。
  2. 入力画像内の符号化対象マクロブロックを、複数のサイズを有する面内予測ブロックを単位として面内予測符号化する画像符号化方法であって、
    前記入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、前記符号化対象マクロブロック内における4×4画素ブロックサイズの分散値を算出し、さらに前記符号化対象マクロブロック内における16×16画素ブロックサイズの分散値を算出し、
    前記算出した16×16画素ブロックサイズの分散値が小さいと判断した場合であって、(1)前記算出した4×4画素ブロックサイズの分散値が前記16×16画素ブロックサイズの分散値よりも小さくなるブロックが所定数以上ある場合、前記面内予測ブロックのサイズを4×4画素ブロックサイズと設定し、(2)前記算出した4×4画素ブロックサイズの分散値が前記16×16画素ブロックサイズの分散値よりも小さくなるブロックが所定数未満である場合、前記面内予測ブロックのサイズを16×16画素ブロックサイズと設定し、
    決定された前記サイズの面内予測ブロックを単位として、前記符号化対象マクロブロックを面内予測符号化する、
    画像符号化方法。
JP2011547337A 2009-12-28 2010-12-28 画像符号化装置および方法 Active JP5470405B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011547337A JP5470405B2 (ja) 2009-12-28 2010-12-28 画像符号化装置および方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009298928 2009-12-28
JP2009298928 2009-12-28
JP2011547337A JP5470405B2 (ja) 2009-12-28 2010-12-28 画像符号化装置および方法
PCT/JP2010/007592 WO2011080925A1 (ja) 2009-12-28 2010-12-28 画像符号化装置および方法

Publications (2)

Publication Number Publication Date
JPWO2011080925A1 JPWO2011080925A1 (ja) 2013-05-09
JP5470405B2 true JP5470405B2 (ja) 2014-04-16

Family

ID=44226349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011547337A Active JP5470405B2 (ja) 2009-12-28 2010-12-28 画像符号化装置および方法

Country Status (3)

Country Link
US (1) US9369720B2 (ja)
JP (1) JP5470405B2 (ja)
WO (1) WO2011080925A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897625B2 (en) * 2009-11-20 2021-01-19 Texas Instruments Incorporated Block artifact suppression in video coding
US8483272B2 (en) * 2010-09-24 2013-07-09 Intel Corporation System and method for frame level bit rate control without pre-analysis
JP2012169762A (ja) 2011-02-10 2012-09-06 Sony Corp 画像符号化装置と画像復号化装置およびその方法とプログラム
JP2012251785A (ja) * 2011-05-31 2012-12-20 Nuflare Technology Inc 検査装置および検査方法
US9241167B2 (en) * 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
JP6000670B2 (ja) * 2012-06-11 2016-10-05 キヤノン株式会社 画像処理装置、画像処理方法
IN2013MU01146A (ja) * 2013-03-26 2015-04-24 Tektronix Inc
US10003792B2 (en) * 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
US20150016509A1 (en) * 2013-07-09 2015-01-15 Magnum Semiconductor, Inc. Apparatuses and methods for adjusting a quantization parameter to improve subjective quality
JP6337380B2 (ja) * 2013-07-31 2018-06-06 サン パテント トラスト 画像符号化方法および画像符号化装置
KR102169610B1 (ko) * 2013-08-21 2020-10-23 삼성전자주식회사 인트라 예측 모드 결정 방법 및 장치
US10136140B2 (en) 2014-03-17 2018-11-20 Microsoft Technology Licensing, Llc Encoder-side decisions for screen content encoding
US20180027256A1 (en) * 2015-01-19 2018-01-25 Nec Corporation Video encoding device, video encoding method, and video encoding program
US10924743B2 (en) 2015-02-06 2021-02-16 Microsoft Technology Licensing, Llc Skipping evaluation stages during media encoding
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
US9955186B2 (en) * 2016-01-11 2018-04-24 Qualcomm Incorporated Block size decision for video coding
JP6838951B2 (ja) * 2016-12-05 2021-03-03 キヤノン株式会社 符号化装置及び符号化方法
WO2018117896A1 (en) * 2016-12-23 2018-06-28 Huawei Technologies Co., Ltd Low complexity mixed domain collaborative in-loop filter for lossy video coding
JP6946979B2 (ja) * 2017-11-29 2021-10-13 富士通株式会社 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
US10924741B2 (en) * 2019-04-15 2021-02-16 Novatek Microelectronics Corp. Method of determining quantization parameters
WO2021117091A1 (ja) * 2019-12-09 2021-06-17 日本電信電話株式会社 符号化方法、符号化装置、及びプログラム
CN113489976A (zh) * 2021-07-29 2021-10-08 维沃移动通信有限公司 预测编码方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008022405A (ja) * 2006-07-14 2008-01-31 Sony Corp 画像処理装置および方法、並びに、プログラム
WO2008044658A1 (en) * 2006-10-10 2008-04-17 Nippon Telegraph And Telephone Corporation Intra prediction encoding control method and device, its program, and storage medium containing program
WO2009093879A2 (ko) * 2008-01-24 2009-07-30 Sk Telecom Co., Ltd. 시공간적 복잡도를 이용한 부호화 모드 결정 방법 및 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05167998A (ja) * 1991-12-16 1993-07-02 Nippon Telegr & Teleph Corp <Ntt> 画像の符号化制御処理方法
US6870884B1 (en) * 1992-01-29 2005-03-22 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
CN1220391C (zh) * 2001-06-29 2005-09-21 株式会社Ntt都科摩 图像编码装置、图像译码装置、图像编码方法和图像译码方法
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
US9237347B2 (en) * 2005-03-21 2016-01-12 The Regents Of The University Of California Systems and methods for video compression for low bit rate and low latency video communications
JP2007201558A (ja) * 2006-01-23 2007-08-09 Matsushita Electric Ind Co Ltd 動画像符号化装置および動画像符号化方法
US8000390B2 (en) * 2006-04-28 2011-08-16 Sharp Laboratories Of America, Inc. Methods and systems for efficient prediction-mode selection
US7653130B2 (en) * 2006-12-27 2010-01-26 General Instrument Corporation Method and apparatus for bit rate reduction in video telephony
JP2008263529A (ja) * 2007-04-13 2008-10-30 Sony Corp 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
KR100905059B1 (ko) * 2007-08-16 2009-06-30 한국전자통신연구원 동영상 부호화에 있어서 비트 발생 가능성 예측을 이용한블록 모드 결정 방법 및 장치
KR20090090152A (ko) * 2008-02-20 2009-08-25 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR20090097688A (ko) * 2008-03-12 2009-09-16 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 장치
JP2009232324A (ja) * 2008-03-25 2009-10-08 Panasonic Corp 画像符号化装置、画像符号化方法および画像符号化プログラム
CN104661026B (zh) * 2009-10-21 2018-03-27 Sk电信有限公司 图像编码和解码装置和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008022405A (ja) * 2006-07-14 2008-01-31 Sony Corp 画像処理装置および方法、並びに、プログラム
WO2008044658A1 (en) * 2006-10-10 2008-04-17 Nippon Telegraph And Telephone Corporation Intra prediction encoding control method and device, its program, and storage medium containing program
WO2009093879A2 (ko) * 2008-01-24 2009-07-30 Sk Telecom Co., Ltd. 시공간적 복잡도를 이용한 부호화 모드 결정 방법 및 장치

Also Published As

Publication number Publication date
JPWO2011080925A1 (ja) 2013-05-09
US20110292998A1 (en) 2011-12-01
US9369720B2 (en) 2016-06-14
WO2011080925A1 (ja) 2011-07-07

Similar Documents

Publication Publication Date Title
JP5470405B2 (ja) 画像符号化装置および方法
EP3158751B1 (en) Encoder decisions based on results of hash-based block matching
JP5801032B2 (ja) インループのアーチファクト除去フィルタリングのための方法および装置
CN1960495B (zh) 图像编码装置、图像编码方法和集成电路装置
KR101644898B1 (ko) 화상부호화장치 및 화상부호화방법
US20120201475A1 (en) Method and system for processing an image
US20060133479A1 (en) Method and apparatus for generating a quantisation matrix that can be used for encoding an image or a picture sequence
JP4804107B2 (ja) 画像符号化装置、画像符号化方法及びそのプログラム
WO2007055158A1 (ja) 動画像符号化方法、動画像復号化方法および装置
KR101394209B1 (ko) 영상의 인트라 예측 부호화 방법
US20160330468A1 (en) Image encoding device, image decoding device, encoded stream conversion device, image encoding method, and image decoding method
JP4532980B2 (ja) 動画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
WO2011102074A1 (ja) 画像符号化方法、画像符号化装置及び撮像システム
JP2007336468A (ja) 再符号化装置、再符号化方法およびプログラム
JP2015027022A (ja) 動画像符号化装置、動画像符号化方法、およびプログラム
TW202041013A (zh) 影像處理裝置及影像處理方法
JP5178616B2 (ja) シーンチェンジ検出装置および映像記録装置
US8687910B2 (en) Image filtering method using pseudo-random number filter and apparatus thereof
JP5396302B2 (ja) 映像信号符号化装置及び映像信号符号化方法
JP4911625B2 (ja) 画像処理装置、およびそれを搭載した撮像装置
EP1675405A1 (en) Optimisation of a quantisation matrix for image and video coding
US20090245350A1 (en) Image coding apparatus and image coding method
KR101583870B1 (ko) 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법
WO2023127940A1 (ja) 画像処理装置および画像処理方法
RU2781240C1 (ru) Способ и устройство предсказания для декодирования и компьютерный носитель данных

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140203

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250