JP2007036889A - 符号化方法 - Google Patents
符号化方法 Download PDFInfo
- Publication number
- JP2007036889A JP2007036889A JP2005219592A JP2005219592A JP2007036889A JP 2007036889 A JP2007036889 A JP 2007036889A JP 2005219592 A JP2005219592 A JP 2005219592A JP 2005219592 A JP2005219592 A JP 2005219592A JP 2007036889 A JP2007036889 A JP 2007036889A
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- global
- region
- unit
- motion
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 動画圧縮符号化技術では、圧縮効率を高めるために、動きベクトル情報に起因する符号量を削減する必要がある。
【解決手段】 領域設定部64は、フレーム画像上に複数のグローバル領域を設定し、ビット数調整部62は、グローバル領域内で求めるべきローカル動きベクトルLMVのビット数を調整する。局所動きベクトル検出部66は、各グローバル領域において、ビット数調整部62により調整されたビット数でマクロブロック単位のローカル動きベクトルLMVを求める。大域動きベクトル算出部68は、各グローバル領域内の大域的な動きを示すグローバル動きベクトルGMVを算出する。局所動きベクトル差分符号化部72は、グローバル領域毎に、グローバル領域内のローカル動きベクトルLMVとグローバル動きベクトルGMVの差分ΔLMVを求めて符号化する。
【選択図】 図2
【解決手段】 領域設定部64は、フレーム画像上に複数のグローバル領域を設定し、ビット数調整部62は、グローバル領域内で求めるべきローカル動きベクトルLMVのビット数を調整する。局所動きベクトル検出部66は、各グローバル領域において、ビット数調整部62により調整されたビット数でマクロブロック単位のローカル動きベクトルLMVを求める。大域動きベクトル算出部68は、各グローバル領域内の大域的な動きを示すグローバル動きベクトルGMVを算出する。局所動きベクトル差分符号化部72は、グローバル領域毎に、グローバル領域内のローカル動きベクトルLMVとグローバル動きベクトルGMVの差分ΔLMVを求めて符号化する。
【選択図】 図2
Description
本発明は、動画像を符号化する符号化方法に関する。
ブロードバンドネットワークが急速に発展しており、高品質な動画像を利用したサービスに期待が集まっている。また、DVDなど大容量の記録媒体が利用されており、高画質の画像を楽しむユーザ層が広がっている。動画像を通信回線で伝送したり、記録媒体に蓄積するために不可欠な技術として圧縮符号化がある。動画像圧縮符号化技術の国際標準として、MPEG4の規格やH.264/AVC規格がある。また、1つのストリームにおいて高画質のストリームと低画質のストリームを併せもつSVCのような次世代画像圧縮技術がある。
高解像度の動画像をストリーム配信したり、記録媒体に蓄積する場合、通信帯域を圧迫しないように、あるいは、記憶容量が大きくならないように、動画ストリームの圧縮率を高める必要がある。動画像の圧縮効果を高めるために、動き補償フレーム間予測符号化が行われる。動き補償フレーム間予測符号化では、符号化対象フレームをブロックに分割し、既に符号化された参照フレームからの動きをブロック毎に予測して動きベクトルを検出し、差分画像とともに動きベクトル情報を符号化する。
特許文献1には、フレーム内符号化、通常の動き補償、グローバル動きベクトルを用いた各種の動き補償の中から、最も符号化効率が高い方式を選択する動画像符号化技術が開示されている。
特開2003−299101号公報
H.264/AVC規格では、動き補償において、よりきめ細かな予測を行うために、動き補償のブロックサイズを可変にしたり、動き補償の画素精度を1/4画素精度まで細かくすることができるようになっており、動きベクトルに関する符号量が多くなる。また、次世代画像圧縮技術であるSVC(Scalable Video Coding)では、時間的スケーラビリティを高めるために、MCTF(Motion Compensated Temporal Filtering、動き補償時間方向フィルタ)技術が検討されている。これは、時間軸方向のサブバンド分割に動き補償を組み合わせたものであり、階層的な動き補償を行うため、動きベクトルの情報が非常に多くなる。このように最近の動画圧縮符号化技術では、動きベクトルに関する情報量が増えることにより動画ストリーム全体のデータ量が増大する傾向にあり、動きベクトル情報に起因する符号量を削減する技術が一層求められている。
本発明はこうした状況に鑑みてなされたもので、その目的は、符号化効率が高く、また、精度の高い動き予測を行うことのできる動画像の符号化技術を提供することにある。
上記課題を解決するために、本発明のある態様の符号化方法は、動画像を構成するピクチャであって、ピクチャ間予測符号化されるピクチャ上に複数の領域を定義し、領域毎に動きベクトルの符号化の条件を設定する。
「ピクチャ」は、フレーム、フィールド、VOP(Video Object Plane)などを含む符号化の単位である。
この態様によると、領域毎に動きベクトルの符号化の条件を異ならせて動画像の符号化を行うことができる。
前記動きベクトルの符号化の条件は、動き補償の画素精度に関する条件であってもよく、あるいは動きベクトルが取りうる最大値に関する条件であってもよく、あるいはこれらの条件を組み合わせたものであってもよい。これによれば、領域毎に動き補償の画素精度および動きベクトルが取りうる最大値の内、少なくとも1つを異ならせて動画像の符号化を行うことができる。また、これらの符号化の条件を領域毎に可変にすることで最適化した動画像の符号化データを生成することができる。
前記動きベクトルの符号化の条件をその条件が設定された各領域に対応させて前記動画像の符号化データに含めてもよい。これにより符号化された動画像を復号する際に、各領域を符号化したときの各種条件を参照して、復号処理を行うことができる。
前記領域毎に動き補償の画素精度および動きベクトルが取りうる最大値の内、少なくとも1つを調整した上で前記複数の領域の各々において動きベクトルを求め、求められた前記動きベクトルを符号化して前記符号化データに含めてもよい。
前記領域毎に動き補償の画素精度を変えることにより、その領域内で求めるべき動きベクトルに割り当てられるビット数を調整してもよい。これによれば、領域毎に要求される動き補償の画素精度が異なる場合に、要求される画素精度に応じて動きベクトルのビット数を調整することができ、動きベクトルの符号量を削減することができる。
前記領域毎に前記動きベクトルが取りうる最大値を変えることにより、その領域内で求めるべき動きベクトルに割り当てられるビット数を調整してもよい。前記領域毎の動き探索範囲の広狭に応じて前記動きベクトルが取りうる最大値を変えてもよい。これによれば、領域毎に動きの大きさに違いがある場合に、動きの大きさに応じて動きベクトルに割り当てるビット数を調整することができ、動きベクトルの符号量を削減することができる。
本発明の別の態様は、符号化装置である。この装置は、動画像のピクチャ間予測符号化されるピクチャ上に複数の領域を設定する領域設定部と、前記領域毎に動き補償の画素精度および動きベクトルが取りうる最大値の内、少なくとも1つを調整する調整部と、前記調整部による調整結果にもとづいて、前記複数の領域の各々において動きベクトルを求める動きベクトル検出部と、求められた前記動きベクトルを符号化する動きベクトル符号化部とを含む。
本発明のさらに別の態様は、動画像ストリームのデータ構造である。この動画像ストリームのデータ構造は、動画像のピクチャが符号化された動画像ストリームのデータ構造であって、ピクチャ間予測符号化されるピクチャ上に定義された複数の領域毎に動き補償の画素精度および動きベクトルが取りうる最大値の内、少なくとも1つが調整された上で前記領域単位で求められた動きベクトルが前記ピクチャ間予測符号化されるピクチャともに符号化されてなる。
この態様によると、領域毎に動き補償の画素精度もしくは動きベクトルが取りうる最大値、あるいはそれら両方が調整された上で、動きベクトルが領域毎に求められて符号化されているため、動きベクトルが最適化された動画ストリームを提供することができる。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、動画像の符号化効率を向上することができる。
図1は、実施の形態に係る符号化装置100の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた画像符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
本実施の形態の符号化装置100は、国際標準化機関であるISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)によって標準化されたMPEG(Moving Picture Experts Group)シリーズの規格(MPEG−1、MPEG−2およびMPEG−4)、電気通信に関する国際標準機関であるITU−T(International Telecommunication Union-Telecommunication Standardization Sector)によって標準化されたH.26xシリーズの規格(H.261、H.262およびH.263)、もしくは両方の標準化機関によって合同で標準化された最新の動画像圧縮符号化標準規格であるH.264/AVC(両機関における正式勧告名はそれぞれMPEG-4 Part 10: Advanced Video CodingとH.264)に準拠して動画像の符号化を行う。
MPEGシリーズの規格では、フレーム内符号化を行う画像フレームをI(Intra)フレーム、過去のフレームを参照画像として順方向のフレーム間予測符号化を行う画像フレームをP(Predictive)フレーム、過去と未来のフレームを参照画像として双方向のフレーム間予測符号化を行う画像フレームをBフレームという。
一方、H.264/AVCでは、参照画像として利用できるフレームは、時間の先後を問わず、過去の2枚のフレームを参照画像としてもよく、未来の2枚のフレームを参照画像としてもよい。また、参照画像として利用できるフレームの枚数も問わず、3枚以上のフレームを参照画像として用いることもできる。したがって、MPEG−1/2/4では、Bフレームは双方向予測(Bi-directional prediction)フレームのことを指していたが、H.264/AVCでは、Bフレームは、参照画像の時間の先後は問わないため、双予測(Bi-predictive prediction)フレームのことを指すことに留意する。
なお、実施の形態では、符号化の単位としてフレームを例に挙げて説明するが、符号化の単位はフィールドであってもよい。また、符号化の単位はMPEG−4におけるVOPであってもよい。
符号化装置100は、フレーム単位で動画像の入力を受け取り、動画像を符号化し、符号化ストリームを出力する。入力された動画フレームはフレームメモリ80に格納される。
動き補償部60は、フレームメモリ80に格納されている過去または未来の画像フレームを参照画像として利用し、PフレームまたはBフレームのマクロブロック毎に動き補償を行い、動きベクトルと予測画像を生成する。動き補償部60は、符号化対象のPフレームまたはBフレームの画像と予測画像の差分を取り、差分画像をDCT部20に供給する。また、動き補償部60は、符号化された動きベクトル情報を多重化部92に供給する。
DCT部20は、動き補償部60から供給された画像を離散コサイン変換(DCT)し、得られたDCT係数を量子化部30に与える。
量子化部30は、DCT係数を量子化し、可変長符号化部90に与える。可変長符号化部90は、差分画像の量子化されたDCT係数を可変長符号化し、多重化部92に与える。多重化部92は、可変長符号化部90から与えられた符号化後のDCT係数と、動き補償部60から与えられた符号化後の動きベクトル情報とを多重化し、符号化ストリームを生成する。多重化部92は、符号化ストリームを生成する際、符号化されたフレームを時間順序に並べ替える処理を行う。
PフレームもしくはBフレームの符号化処理の場合は、上述のように動き補償部60が動作するが、Iフレームの符号化処理の場合は、動き補償部60は動作せず、ここでは図示しないが、Iフレームはフレーム内予測が行われた後、DCT部20に供給される。
図2は、動き補償部60の構成を説明する図である。動き補償部60は、符号化対象フレームのマクロブロック単位の動きベクトル(以下、「ローカル動きベクトル」という)を検出するとともに、画像上に設けられた所定の領域毎に、その領域内の大域的な動きを示す動きベクトル(以下、「グローバル動きベクトル」という)を求める。動き補償部60は、ローカル動きベクトルにもとづいて動き予測を行い、差分画像を出力するとともに、ローカル動きベクトルおよびグローバル動きベクトルの差分値を符号化して動きベクトル情報として出力する。
領域設定部64は、フレーム画像上にグローバル動きベクトルGMVを求めるための領域(以下、「グローバル領域」という)を設定する。グローバル領域は、画像内に複数設けられる。たとえば、領域設定部64は、フレーム画像の中央付近を一つのグローバル領域とし、その周辺を別のグローバル領域に設定するなど、あらかじめ定められた領域をグローバル領域に設定してもよい。また、グローバル領域はユーザによって設定されてもよい。
また、領域設定部64は、画像に人物等のオブジェクトが映っている場合、そのオブジェクトが占める任意形状の領域を自動抽出し、グローバル領域に設定してもよい。
領域設定部64は、局所動きベクトル検出部66により検出された画像内のローカル動きベクトルLMVを参照して、動きがある程度共通するマクロブロックが占める領域を自動抽出し、その領域をグローバル領域に設定してもよい。
領域設定部64は、設定されたグローバル領域の情報をビット数調整部62、大域動きベクトル算出部68および大域動きベクトル差分符号化部74に与える。
ビット数調整部62は、領域設定部64により設定されたグローバル領域毎に動き探索範囲の大きさや動き補償の画素精度を決めることにより、各グローバル領域内で求めるべきローカル動きベクトルLMVのビット数を調整する。
たとえば、ビット数調整部62は、グローバル領域毎に動き補償の画素精度を整数画素単位、あるいは1/2画素単位、1/4画素単位などの小数画素単位に設定することにより、ローカル動きベクトルLMVのビット数を調整する。動き補償の画素精度が整数画素単位である場合、ローカル動きベクトルLMVは整数部のビットのみで表されるが、1/2画素単位または1/4画素単位の場合は、ローカル動きベクトルLMVは、整数部以外に小数部が必要になり、1/2画素単位なら1ビット、1/4画素単位なら2ビットだけ余分に小数部にビットが必要になる。
また、ビット数調整部62は、グローバル領域毎にローカル動きベクトルLMVが取りうる最大値を変えることにより、ローカル動きベクトルLMVのビット数を調整することもできる。ビット数調整部62は、各グローバル領域の動き探索範囲の広狭や各グローバル領域内の動きの大小に応じてローカル動きベクトルLMVの整数部の桁数を変えて、取りうる最大値を調整する。
局所動きベクトル検出部66は、フレームメモリ80に保持された参照画像を参照し、符号化対象画像の対象マクロブロックに対して誤差の最も小さい予測マクロブロックを参照画像から検出し、対象マクロブロックから予測マクロブロックへの動きを示すローカル動きベクトルLMVを求める。動き検出は、対象マクロブロックとマッチングする参照画像における参照マクロブロックを、ビット数調整部62により設定された動き探索範囲および画素精度で探すことにより行われる。探索は通常、画素領域内で複数回にわたって繰り返し行われ、その複数回の探索の中で対象マクロブロックと最も適合する参照マクロブロックが予測マクロブロックとして選択される。
局所動きベクトル検出部66は、ビット数調整部62により調整されたビット数で求められたローカル動きベクトルLMVを大域動きベクトル算出部68、動き補償予測部70、および局所動きベクトル差分符号化部72に与える。
動き補償予測部70は、ローカル動きベクトルLMVを用いて対象マクロブロックを動き補償して、予測画像を生成し、符号化対象画像と予測画像の差分画像をDCT部20に出力する。
大域動きベクトル算出部68は、領域設定部64により設定された各グローバル領域内の大域的な動きを示すグローバル動きベクトルGMVを算出する。たとえば、大域動きベクトル算出部68は、領域内のローカル動きベクトルLMVの平均を求め、グローバル動きベクトルGMVとする。ここで、各グローバル領域のグローバル動きベクトルGMVのビット数は、各グローバル領域内で求められたローカル動きベクトルLMVのビット数と同じであり、ビット数調整部62により調整されたビット数となる。
また、大域動きベクトル算出部68は、各グローバル領域内の大域的な動きに関する情報を取得し、その情報をもとに各グローバル領域のグローバル動きベクトルGMVを算出してもよい。たとえば、カメラのズームやパン、画面のスクロールなどが行われた場合に、画面全体の動きに関する情報から、各グローバル領域内の大域的な動きを判断し、グローバル動きベクトルGMVを算出することができる。また、大域動きベクトル算出部68は、画面上の人物等のオブジェクトの動きを自動抽出し、オブジェクトの動きから各グローバル領域内の大域的な動きを判断し、グローバル動きベクトルGMVを算出することもできる。
大域動きベクトル算出部68は、ビット数調整部62により調整されたビット数で求められたグローバル動きベクトルGMVを局所動きベクトル差分符号化部72と大域動きベクトル差分符号化部74に与える。
局所動きベクトル差分符号化部72は、局所動きベクトル検出部66からローカル動きベクトルLMV、大域動きベクトル算出部68からグローバル動きベクトルGMVの入力をそれぞれ受け取り、グローバル領域毎に、グローバル領域内のローカル動きベクトルLMVとグローバル動きベクトルGMVの差分ΔLMV=LMV−GMVを算出し、このローカル動きベクトル差分ΔLMVを可変長符号化する。局所動きベクトル差分符号化部72は、符号化後のローカル動きベクトル差分ΔLMVを動きベクトル情報として多重化部92に与える。
大域動きベクトル差分符号化部74は、大域動きベクトル算出部68から各領域のグローバル動きベクトルGMVの入力を受け取り、少なくとも1つの領域のグローバル動きベクトルGMVを基準に選ぶ。基準となるグローバル動きベクトルGMVを基準グローバル動きベクトルGMVBと呼ぶ。大域動きベクトル差分符号化部74は、基準グローバル動きベクトルGMVB以外の各グローバル領域のグローバル動きベクトルGMVと基準グローバル動きベクトルGMVBの差分ΔGMV=GMV−GMVBを算出し、基準グローバル動きベクトルGMVBとグローバル動きベクトル差分ΔGMVを可変長符号化する。
大域動きベクトル差分符号化部74は、符号化後の基準グローバル動きベクトルGMVBと各グローバル領域のグローバル動きベクトル差分ΔGMVを動きベクトル情報として多重化部92に与える。このとき、大域動きベクトル差分符号化部74は、領域設定部64により設定されたグローバル領域についての領域情報を動きベクトル情報の一部に付加する。さらに、大域動きベクトル差分符号化部74は、ビット数調整部62により決定されたグローバル領域毎の動き探索範囲の大きさや動き補償の画素精度、グローバル領域毎のローカル動きベクトルLMVが取りうる最大値などの動き補償のパラメータの情報を動きベクトル情報の一部に付加する。これらの動き補償の各種パラメータは、復号装置300において動き補償を行う際、参照される。
多重化部92には、動きベクトル情報として、基準グローバル動きベクトルGMVB、グローバル動きベクトル差分ΔGMV、ローカル動きベクトル差分ΔLMVが与えられることになる。
図3は、動き補償部60による動きベクトルの差分符号化の手順を説明するフローチャートである。図4〜図6の例を適宜参照しながら符号化の手順を説明する。
符号化装置100のフレームメモリ80に符号化対象画像が入力される(S10)。領域設定部64は、画像上にグローバル領域を設定する(S12)。ビット数調整部62は、グローバル領域毎に、ローカル動きベクトルLMVのビット数を調整する(S13)。
動き補償部60の局所動きベクトル検出部66は、符号化対象画像においてグローバル領域毎に、調整されたビット数でマクロブロック単位のローカル動きベクトルLMVを検出する(S14)。
次に、大域動きベクトル算出部68は、グローバル領域毎にグローバル動きベクトルGMVを算出する(S16)。
局所動きベクトル差分符号化部72は、グローバル領域毎にローカル動きベクトル差分ΔLMVを算出して符号化する(S18)。大域動きベクトル差分符号化部74は、グローバル領域毎にグローバル動きベクトル差分ΔGMVを算出して符号化する(S20)。
図4(a)〜(c)は、グローバル領域の例を説明する図である。図4(a)の例では、領域設定部64は、符号化対象画像200上に第1グローバル領域211および第2グローバル領域212を設定する。大域動きベクトル算出部68は、第1グローバル領域211において第1グローバル動きベクトルGMV1を求め、第2グローバル領域212において第2グローバル動きベクトルGMV2を求める。この例では、第1グローバル領域211および第2グローバル領域212以外の背景部分には、グローバル動きベクトルを求めるための領域は設定されていない。
図4(a)の場合、局所動きベクトル差分符号化部72は、第1グローバル領域211内のマクロブロック毎のローカル動きベクトルLMVを符号化する際、第1グローバル動きベクトルGMV1との差分ΔLMV=LMV−GMV1を求めて符号化する。同様に、局所動きベクトル差分符号化部72は、第2グローバル領域212内では、マクロブロック毎にローカル動きベクトルLMVと第2グローバル動きベクトルGMV2の差分ΔLMV=LMV−GMV2を求めて符号化する。
図4(a)の例では、第1グローバル領域211および第2グローバル領域212以外の背景領域については、グローバル動きベクトルGMVは求められていないため、局所動きベクトル差分符号化部72は、背景領域内ではローカル動きベクトルLMVを、差分を求めることなくそのまま符号化する。
図4(b)の例では、図4(a)の例とは違って、領域設定部64は、第1グローバル領域211および第2グローバル領域212以外の背景部分を第3グローバル領域210として設定し、大域動きベクトル算出部68は、第3グローバル領域210において第3グローバル動きベクトルGMV0を求める。局所動きベクトル差分符号化部72は、第3グローバル領域210内で、マクロブロック毎にローカル動きベクトルLMVと第3グローバル動きベクトルGMV0の差分ΔLMV=LMV−GMV0を求めて符号化する。
図4(c)は、符号化対象画像200上で複数のグローバル領域が互いに包含関係を有する例を示す。この例では、第1グローバル領域211の内部に第2グローバル領域212が包含されており、第1グローバル領域211および第2グローバル領域212は、その全体が第3グローバル領域210に包含されている。
局所動きベクトル差分符号化部72は、第2グローバル領域212の内側では、マクロブロック毎にローカル動きベクトルLMVと第2グローバル動きベクトルGMV2の差分を符号化し、第2グローバル領域212よりも外側で第1グローバル領域211の内側では、マクロブロック毎にローカル動きベクトルLMVと第1グローバル動きベクトルGMV1の差分を符号化する。また、第1グローバル領域211よりもさらに外側の第3グローバル領域210内では、マクロブロック毎にローカル動きベクトルLMVと第3グローバル動きベクトルGMV0の差分を符号化する。
図5(a)〜(c)は、大域動きベクトル差分符号化部74によりグローバル動きベクトル差分を算出する例を説明する図である。ここでは、図4(b)あるいは図4(c)のように、3つのグローバル領域が設定され、各グローバル領域のグローバル動きベクトルGMV0、GMV1、GMV2が得られた場合に、それら3つのグローバル動きベクトルGMV0、GMV1、GMV2を符号化する例を説明する。
図5(a)は、3つのグローバル動きベクトルGMV0、GMV1、GMV2の間に階層構造を設けない場合を示す。この場合、大域動きベクトル差分符号化部74は、3つのグローバル動きベクトルGMV0、GMV1、GMV2をすべて基準グローバル動きベクトルとして扱い、グローバル動きベクトル差分を求めることなく、それぞれ9ビットのグローバル動きベクトルGMV0、GMV1、GMV2をそのまま符号化し、出力する。
図5(b)は、3つのグローバル動きベクトルGMV0、GMV1、GMV2の間に階層構造を設ける場合であり、GMV0は上位の階層に位置し、GMV1とGMV2はGMV0のすぐ下の階層に位置する。このとき、大域動きベクトル差分符号化部74は、上位階層にあるグローバル動きベクトルGMV0を基準グローバル動きベクトルとして、下位階層にある各グローバル動きベクトルGMV1、GMV2と基準グローバル動きベクトルGMV0の差分ΔGMV1=GMV1−GMV0、ΔGMV2=GMV2−GMV0を符号化する。これにより、9ビットあった下位階層にある各グローバル動きベクトルGMV1、GMV2の符号量が、上位階層にあるグローバル動きベクトルGMV0との差分をとることでそれぞれ3ビット、4ビットに減っている。
図5(c)は、3つのグローバル動きベクトルGMV0、GMV1、GMV2の間に別の階層関係を設ける場合で、GMV0は最上位の階層に位置し、GMV1はGMV0の次の階層に位置し、GMV2はGMV1のさらに下の階層に位置する。このとき、大域動きベクトル差分符号化部74は、第1階層のグローバル動きベクトルGMV0を基準グローバル動きベクトルとして、第2階層のグローバル動きベクトルGMV1と第1階層のグローバル動きベクトルGMV0の差分ΔGMV1=GMV1−GMV0を符号化する。9ビットあった第2階層のグローバル動きベクトルGMV1の符号量が、第1階層のグローバル動きベクトルGMV0との差分をとることで3ビットに減っている。
次に、大域動きベクトル差分符号化部74は、第3階層のグローバル動きベクトルGMV2と第2階層のグローバル動きベクトルGMV1の差分ΔGMV2=GMV2−GMV1を符号化する。9ビットあった第3階層のグローバル動きベクトルGMV2の符号量が、第2階層のグローバル動きベクトルGMV1との差分をとることで2ビットに減っている。
図5(b)、(c)のいずれの場合でも、大域動きベクトル差分符号化部74は、動きベクトル情報として、基準グローバル動きベクトルGMV0、および2つのグローバル動きベクトル差分ΔGMV1、ΔGMV2を出力する。このとき、3つのグローバル動きベクトルGMV0、GMV1、GMV2の間の階層構造を示す情報が動きベクトル情報の一部として付加される。
図5(b)、(c)の例で示したように、グローバル動きベクトルの間に適宜、階層構造を設け、隣り合う階層間で差分を取ることにより、グローバル動きベクトルの符号量を削減することができる。なお、上記の例では、階層構造の上位にあるグローバル動きベクトルを基準として、下位にあるグローバル動きベクトルと上位の基準グローバル動きベクトルとの差分を符号化したが、逆に、階層構造の下位にあるグローバル動きベクトルを基準として、上位にあるグローバル動きベクトルと下位の基準グローバル動きベクトルとの差分を符号化してもよい。
グローバル動きベクトルの階層構造は、グローバル領域の包含関係とは無関係に決めてもよく、グローバル領域の包含関係の順序にしたがってグローバル動きベクトルの階層構造の順位を決めてもよい。
たとえば、図4(b)のように、第1グローバル領域211および第2グローバル領域212が第3グローバル領域210に包含されている場合、大域動きベクトル差分符号化部74は、そのグローバル領域の包含関係を利用して、図5(b)のように、第3グローバル領域210のグローバル動きベクトルGMV0を上位階層とし、第1グローバル領域211、第2グローバル領域212のグローバル動きベクトルGMV1、GMV2をそのすぐ下の階層とする階層構造を設けて、グローバル動きベクトルの差分符号化を行う。
また、図4(c)のように、第2グローバル領域212が第1グローバル領域211に含まれ、第1グローバル領域211および第2グローバル領域212が全体として第3グローバル領域210に含まれるという包含関係がある場合、大域動きベクトル差分符号化部74は、第3グローバル領域210のグローバル動きベクトルGMV0を最上位階層とし、第1グローバル領域211のグローバル動きベクトルGMV1を第2階層とし、第2グローバル領域212のグローバル動きベクトルGMV2を第3階層とする階層構造を設けて、グローバル動きベクトルの差分符号化を行う。
このように領域設定部64により設定されたグローバル領域の包含関係をグローバル動きベクトルの階層構造にそのまま用いるなら、グローバル領域の包含関係に関する情報が動きベクトル情報の一部に含まれていれば、グローバル動きベクトルの階層構造に関する情報を動きベクトル情報に別途含める必要はなく、ヘッダ情報のデータ量を削減することができる。
また、グローバル領域の包含関係が、画像の中央付近と背景領域、あるいは特定のオブジェクトの領域とその背景などといった画像の動き量の相対的な違いを反映するものとなっている場合、グローバル領域の包含関係をそのままグローバル動きベクトルの階層構造に反映させ、その階層構造にしたがってグローバル動きベクトル差分を求めることで、差分を取ったときのビット数が少なくなることが一般的に期待できる。
図6は、ビット数調整部62により調整されるローカル動きベクトルLMVのビット数を説明する図である。
ローカル動きベクトルLMVのx座標値およびy座標値は、一例として、8ビットの整数部と2ビットの小数部からなり、全体で最大10ビットで表される。整数部の桁数は、ローカル動きベクトルLMVが取ることのできる最大値に応じて決められる。小数部の桁数は、動き補償の画素精度に応じて決められる。1/2画素精度で動きベクトルを表現するには、小数点以下に1ビットの情報が必要であり、1/4画素精度の場合は、小数点以下に2ビットの情報が必要である。
ここでは、図4(b)あるいは図4(c)のように、3つのグローバル動きベクトルGMV0、GMV1、GMV2のそれぞれに対応するグローバル領域が設定された場合に、各グローバル領域内でマクロブロック毎に求められるローカル動きベクトルLMVのビット数の調整例を示す。
第1グローバル動きベクトルGMV1、第2グローバル動きベクトルGMV2、第3グローバル動きベクトルGMV0が定められる第1、第2、第3グローバル領域内のローカル動きベクトルをそれぞれ第1ローカル動きベクトルLMV1、第2ローカル動きベクトルLMV2、第3ローカル動きベクトルLMV0と呼ぶ。
第3ローカル動きベクトルLMV0は、符号240に示すように、小数部が2ビット、整数部が6ビット設けられ、全体で8ビットで表される。この場合、画素精度は1/4画素となり、6ビットで表現できる正の整数の最大値は、26=64であるから、動きベクトルの各座標値が取りうる値の最大値は±32画素である。したがって、動き探索範囲が±32画素以内で、動きを1/4画素精度で求めるべき領域を第3グローバル領域として選択されることが望ましく、たとえば、動きが細かく、高い精度の動き補償が求められる人物などのオブジェクトの占める領域が選択される。
第1ローカル動きベクトルLMV1は、符号241に示すように、小数部が1ビット、整数部が6ビット設けられ、全体で7ビットで表される。この場合、画素精度は1/2画素となり、動きベクトルの各座標値が取りうる値の最大値は±32画素である。したがって、動き探索範囲が±32画素以内で、動きを1/2画素精度で求めるべき領域を第1グローバル領域として選択されることが望ましく、たとえば、動きが比較的少なく、あまり高い精度の動き補償が求められない背景領域が選択される。
第2ローカル動きベクトルLMV2は、符号242に示すように、小数部が1ビット、整数部が8ビット設けられ、全体で9ビットで表される。この場合、画素精度は1/2画素となり、8ビットで表現できる正の整数の最大値は、28=256であるから、動きベクトルの各座標値が取りうる値の最大値は±128画素である。したがって、動き探索範囲が±128画素以内で、動きを1/2画素精度で求めるべき領域を第2グローバル領域として選択されることが望ましく、たとえば、変化の大きい背景領域や動きが激しいオブジェクトの占める領域が選択される。
領域設定部64によりグローバル領域が設定されたときに、ビット数調整部62は、各グローバル領域における動き探索範囲の大きさや動き補償の画素精度をあらかじめ設定してもよい。その場合、ローカル動きベクトルのビット数が決まってから、局所動きベクトル検出部66が各グローバル領域内のローカル動きベクトルを検出することになる。
別の符号化手順として、局所動きベクトル検出部66が各グローバル領域内のローカル動きベクトルを検出してから、ビット数調整部62が、各グローバル領域内で検出されたローカル動きベクトルの大きさを評価して、そのグローバル領域においてローカル動きベクトルを表現するために必要とされるビット数を決めてもよい。その場合、同じグローバル領域であっても、動きの時間的な変化に応じて、ローカル動きベクトルのビット数は可変にすることができる。
図7は、実施の形態に係る復号装置300の構成図である。これらの機能ブロックもハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現することができる。
復号装置300は、符号化ストリームの入力を受け取り、符号化ストリームを復号して出力画像を生成する。入力された符号化ストリームはフレームメモリ380に格納される。
可変長復号部310は、フレームメモリ380に格納された符号化ストリームを可変長復号し、復号された画像データを逆量子化部320に供給し、復号された動きベクトル情報を動き補償部360に供給する。
逆量子化部320は、可変長復号部310により復号された画像データを逆量子化し、逆DCT部330に供給する。逆量子化部320により逆量子化された画像データはDCT係数である。逆DCT部330は、逆量子化部320により逆量子化されたDCT係数を逆離散コサイン変換(IDCT)することにより、元の画像データを復元する。逆DCT部330により復元された画像データは、動き補償部360に供給される。
動き補償部360は、過去または未来の画像フレームを参照画像として利用し、可変長復号部310から供給される動きベクトル情報を用いて予測画像を生成し、逆DCT部330から供給される差分画像と加算することにより、元の画像データを復元し、出力する。
図8は、動き補償部360の構成を説明する図である。復号装置300に入力される符号化ストリームは、図1の符号化装置100により符号化されたものであり、動き補償部360に供給される動きベクトル情報として、基準グローバル動きベクトルGMVB、グローバル動きベクトル差分ΔGMV、ローカル動きベクトル差分ΔLMVがある。動き補償部360は、これらの動きベクトル情報を参照して、復号対象フレームのローカル動きベクトルLMVを求め、動き補償を行う。動き補償部360は、動きベクトル情報の一部として提供されるグローバル領域毎の動き探索範囲の大きさや動き補償の画素精度、グローバル領域毎のローカル動きベクトルLMVが取りうる最大値などの動き補償のパラメータを参照して、以下の動き補償の各処理を行う。
大域動きベクトル算出部362は、可変長復号部310から基準グローバル動きベクトルGMVBと各グローバル領域のグローバル動きベクトル差分ΔGMVの入力を受け取り、グローバル領域毎にグローバル動きベクトルGMV=ΔGMV+GMVBを求め、局所動きベクトル算出部364に与える。
局所動きベクトル算出部364は、可変長復号部310からローカル動きベクトル差分ΔLMVの入力、大域動きベクトル算出部362から各グローバル領域のグローバル動きベクトルGMVの入力をそれぞれ受け取り、グローバル領域毎にローカル動きベクトルLMV=ΔLMV+GMVを求める。局所動きベクトル算出部364は、各グローバル領域内のローカル動きベクトルLMVを画像復元部366に与える。
画像復元部366は、参照画像と各グローバル領域内のマクロブロック単位のローカル動きベクトルLMVを用いて予測画像を生成し、逆DCT部330から与えられた差分画像と予測画像を加算して元の画像を復元し、出力する。
以上述べたように、本実施の形態の符号化装置100によれば、動きベクトルを符号化する際に、領域毎に動きベクトルのビット数を可変にすることで、動きベクトルの精度や絶対量があまり要求されない領域では動きベクトルのビット数を減らすことができ、動きベクトルの符号化効率の向上を図ることができる。
動きベクトルのビット数を領域毎に異ならせることができるため、たとえば、動きの細かい領域では画素精度を上げたり、動きの激しい領域では動きベクトルのとりうる最大値を大きくすることができる。逆に、動きが粗い領域では画素精度を下げたり、動きが少ない領域では動きベクトルのとりうる最大値を小さくすることができる。これにより、領域毎の動きの細かさや動きの大きさに応じて、あるいは、領域毎に要求される動き補償の精度に応じて、動きベクトルの割り当てビット数を最適に調整することができ、動画像の再生画質を高めることができるとともに、動画像ストリームの圧縮効率を向上させることができる。
また、動きベクトルを符号化する際に、空間領域内の動きベクトル情報をその領域のグローバル動きベクトルとの差分値で表すことにより、動きベクトル情報自体のデータ量を削減し、動画像ストリーム全体の符号量を減らして圧縮効率を高めることができる。また、各空間領域のグローバル動きベクトルの間に階層構造をもたせて、異なる階層間でグローバル動きベクトルの差分を求めて符号化することにより、さらに動きベクトル情報の符号量を削減することができる。
また、本実施の形態の復号装置300によれば、符号化装置100により領域毎に異なるビット数をもつ動きベクトルが符号化された圧縮効率の高い動画ストリームから、領域毎に動きベクトルを取得して動き補償を行うことにより、画質の高い動画像を復元することができる。領域毎に最適なビット数の動きベクトルが符号化されているため、各領域の動き補償が効率良く、高い精度で行われる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上記の説明では、符号化装置100および復号装置300は、MPEGシリーズの規格(MPEG−1、MPEG−2およびMPEG−4)、H.26xシリーズの規格(H.261、H.262およびH.263)、もしくはH.264/AVCに準拠して動画像の符号化および復号を行ったが、本発明は、時間的スケーラビリティをもつ階層的な動画像の符号化および復号を行う場合にも適用することができる。特にMCTF技術を用いた場合の動きベクトルの符号化において、動きベクトルの符号量を削減するために本発明は有効である。
上記の実施の形態では、ビット数調整部62は、グローバル動きベクトルを求めるグローバル領域毎にローカル動きベクトルのビット数を調整したが、ローカル動きベクトルのビット数を調整する単位となる領域は、特に実施の形態で述べたグローバル領域に限られない。動き補償部60は、グローバル動きベクトルを求めて符号化するための構成を含まず、単にローカル動きベクトルを検出して符号化するための構成だけを含んでもよい。
また、符号化装置100にはROI領域設定部が設けられ、動画像上に注目領域(Region of Interest;ROI)が設定され、ビット数調整部62は、設定された注目領域毎にローカル動きベクトルのビット数を調整してもよい。
注目領域は、ユーザが画像上の特定の領域を指定することによって選択されてもよく、画像の中心領域などあらかじめ定まった領域が選択されてもよい。また、人物や文字が映っている領域などの重要領域が注目領域として自動的に抽出されてもよい。また、動画像において特定のオブジェクト等の動きを追跡することによって注目領域がフレーム単位で自動的に選択されてもよい。
また、複数の注目領域間で優先度が設定される場合、ビット数調整部62は、注目領域の優先度に応じて、その注目領域内のローカル動きベクトルのビット数を調整してもよい。注目領域は優先度に応じた画質で再生可能に符号化されるが、優先度の高い注目領域ほど動き探索の範囲を大きくしたり、動き補償の画素精度を高くするなどして、ローカル動きベクトルのビット数を増やすことにより、動き補償により再生される注目領域の画質を一層高めることができる。
20 DCT部、 30 量子化部、 60 動き補償部、 62 ビット数調整部、 64 領域設定部、 66 局所動きベクトル検出部、 68 大域動きベクトル算出部、 70 動き補償予測部、 72 局所動きベクトル差分符号化部、 74 大域動きベクトル差分符号化部、 80 フレームメモリ、 90 可変長符号化部、 92 多重化部、 100 符号化装置、 300 復号装置、 310 可変長復号部、 320 逆量子化部、 330 逆DCT部、 360 動き補償部、 362 大域動きベクトル算出部、 364 局所動きベクトル算出部、 366 画像復元部、 380 フレームメモリ。
Claims (6)
- 動画像を構成するピクチャであって、ピクチャ間予測符号化されるピクチャ上に複数の領域を定義し、領域毎に動きベクトルの符号化の条件を設定することを特徴とする符号化方法。
- 前記動きベクトルの符号化の条件は、動き補償の画素精度に関する条件であることを特徴とする請求項1に記載の符号化方法。
- 前記動きベクトルの符号化の条件は、動きベクトルが取りうる最大値に関する条件であることを特徴とする請求項1に記載の符号化方法。
- 前記動きベクトルの符号化の条件をその条件が設定された各領域に対応させて前記動画像の符号化データに含めることを特徴とする請求項1から3のいずれかに記載の符号化方法。
- 前記動画像から抽出されたオブジェクトが占める領域が前記複数の領域の一つとして設定されることを特徴とする請求項1から4のいずれかに記載の符号化方法。
- 前記動画像における背景領域が前記複数の領域の一つとして設定されることを特徴とする請求項1から5のいずれかに記載の符号化方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005219592A JP2007036889A (ja) | 2005-07-28 | 2005-07-28 | 符号化方法 |
US11/494,619 US20070025442A1 (en) | 2005-07-28 | 2006-07-28 | Coding method for coding moving images |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005219592A JP2007036889A (ja) | 2005-07-28 | 2005-07-28 | 符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007036889A true JP2007036889A (ja) | 2007-02-08 |
Family
ID=37795558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005219592A Withdrawn JP2007036889A (ja) | 2005-07-28 | 2005-07-28 | 符号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007036889A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008219628A (ja) * | 2007-03-06 | 2008-09-18 | Nippon Hoso Kyokai <Nhk> | 動き補償装置 |
JP2009272718A (ja) * | 2008-04-30 | 2009-11-19 | Sony Corp | 画像処理装置およびその方法、並びにプログラム |
JP2010109917A (ja) * | 2008-10-31 | 2010-05-13 | Canon Inc | 動きベクトル検出装置及び動きベクトル検出方法 |
WO2014002619A1 (ja) * | 2012-06-25 | 2014-01-03 | ソニー株式会社 | 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法 |
JP2021103876A (ja) * | 2019-12-03 | 2021-07-15 | アクシス アーベー | ビデオシーケンスの画像をエンコードする方法及びシステム |
-
2005
- 2005-07-28 JP JP2005219592A patent/JP2007036889A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008219628A (ja) * | 2007-03-06 | 2008-09-18 | Nippon Hoso Kyokai <Nhk> | 動き補償装置 |
JP2009272718A (ja) * | 2008-04-30 | 2009-11-19 | Sony Corp | 画像処理装置およびその方法、並びにプログラム |
JP2010109917A (ja) * | 2008-10-31 | 2010-05-13 | Canon Inc | 動きベクトル検出装置及び動きベクトル検出方法 |
WO2014002619A1 (ja) * | 2012-06-25 | 2014-01-03 | ソニー株式会社 | 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法 |
JPWO2014002619A1 (ja) * | 2012-06-25 | 2016-05-30 | ソニー株式会社 | 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法 |
US10257522B2 (en) | 2012-06-25 | 2019-04-09 | Sony Corporation | Image decoding device, image decoding method, image encoding device, and image encoding method |
JP2021103876A (ja) * | 2019-12-03 | 2021-07-15 | アクシス アーベー | ビデオシーケンスの画像をエンコードする方法及びシステム |
JP7229982B2 (ja) | 2019-12-03 | 2023-02-28 | アクシス アーベー | ビデオシーケンスの画像をエンコードする方法及びシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11438610B2 (en) | Block-level super-resolution based video coding | |
US20070025442A1 (en) | Coding method for coding moving images | |
JP5061179B2 (ja) | 照明変化補償動き予測符号化および復号化方法とその装置 | |
JP4401336B2 (ja) | 符号化方法 | |
US20070025444A1 (en) | Coding Method | |
US7310371B2 (en) | Method and/or apparatus for reducing the complexity of H.264 B-frame encoding using selective reconstruction | |
JP4703449B2 (ja) | 符号化方法 | |
US20070047649A1 (en) | Method for coding with motion compensated prediction | |
US20060153300A1 (en) | Method and system for motion vector prediction in scalable video coding | |
JP2008011455A (ja) | 符号化方法 | |
JP2009532979A (ja) | 加重平均合を用いてfgs階層をエンコーディングおよびデコーディングする方法および装置 | |
US20060012719A1 (en) | System and method for motion prediction in scalable video coding | |
JP2006279573A (ja) | 符号化装置と方法、ならびに復号装置と方法 | |
JP2007189698A (ja) | スムージング予測を利用した多階層基盤のビデオエンコーディング方法、デコーディング方法、ビデオエンコーダおよびビデオデコーダ | |
JP2007266749A (ja) | 符号化方法 | |
JP2007174568A (ja) | 符号化方法 | |
JP2007036888A (ja) | 符号化方法 | |
Paul et al. | Video coding with dynamic background | |
JP2007235314A (ja) | 符号化方法 | |
JP7343817B2 (ja) | 符号化装置、符号化方法、及び符号化プログラム | |
JP2007036889A (ja) | 符号化方法 | |
JP4660408B2 (ja) | 符号化方法 | |
JP4401341B2 (ja) | 符号化方法 | |
JP2007096541A (ja) | 符号化方法 | |
JP2007266750A (ja) | 符号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080428 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090709 |