JP4230289B2 - 動画像符号化方法および動画像復号化方法 - Google Patents
動画像符号化方法および動画像復号化方法 Download PDFInfo
- Publication number
- JP4230289B2 JP4230289B2 JP2003169832A JP2003169832A JP4230289B2 JP 4230289 B2 JP4230289 B2 JP 4230289B2 JP 2003169832 A JP2003169832 A JP 2003169832A JP 2003169832 A JP2003169832 A JP 2003169832A JP 4230289 B2 JP4230289 B2 JP 4230289B2
- Authority
- JP
- Japan
- Prior art keywords
- picture
- motion vector
- encoding
- decoding
- pictures
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の属する技術分野】
本発明は、動画像を効率良く圧縮する画像符号化方法とそれを正しく復号化する画像復号化方法に関し、特に直接モードを使用して処理を行う画像符号化方法と画像復号化方法に関する。
【0002】
【従来の技術】
近年、音声,画像,その他のデータを統合的に扱うマルチメディア時代を迎え、従来からの情報メディア,つまり新聞,雑誌,テレビ,ラジオ,電話等の情報を人に伝達する手段がマルチメディアの対象として取り上げられるようになってきた。一般に、マルチメディアとは、文字だけでなく、図形、音声、特に画像等を同時に関連づけて表すことをいうが、上記従来の情報メディアをマルチメディアの対象とするには、その情報をディジタル形式にして表すことが必須条件となる。
【0003】
ところが、上記各情報メディアの持つ情報量をディジタル情報量として見積もってみると、文字の場合1文字当たりの情報量は1〜2バイトであるのに対し、音声の場合1秒当たり64Kbits(電話品質)、さらに動画については1秒当たり100Mbits(現行テレビ受信品質)以上の情報量が必要となり、上記情報メディアでその膨大な情報をディジタル形式でそのまま扱うことは現実的では無い。例えば、テレビ電話は、64Kbit/s〜1.5Mbits/sの伝送速度を持つサービス総合ディジタル網(ISDN : Integrated Services Digital Network)によってすでに実用化されているが、テレビ・カメラの映像をそのままISDNで送ることは不可能である。
【0004】
そこで、必要となってくるのが情報の圧縮技術であり、例えば、テレビ電話の場合、ITU-T(国際電気通信連合 電気通信標準化部門)で国際標準化されたH.261やH.263規格の動画圧縮技術が用いられている。また、MPEG-1規格の情報圧縮技術によると、通常の音楽用CD(コンパクト・ディスク)に音声情報とともに画像情報を入れることも可能となる。
【0005】
ここで、MPEG(Moving Picture Experts Group)とは、動画像信号圧縮の国際規格であり、MPEG-1は、動画像信号を1.5Mbpsまで、つまりテレビ信号の情報を約100分の1にまで圧縮する規格である。また、MPEG-1規格を対象とする伝送速度が主として約1.5Mbpsに制限されていることから、さらなる高画質化の要求をみたすべく規格化されたMPEG-2では、動画像信号が2〜15Mbpsに圧縮される。さらに現状では、MPEG-1,MPEG-2と標準化を進めてきた作業グループ(ISO/IEC JTC1/SC29/WG11) によって、MPEG-1,MPEG-2を上回る圧縮率を達成し、更に物体単位で符号化・復号化・操作を可能とし、マルチメディア時代に必要な新しい機能を実現するMPEG-4が規格化された。MPEG-4では、当初、低ビットレートの符号化方法の標準化を目指して進められたが、現在はインタレース画像などの高ビットレートも含む、より汎用的な符号化に拡張されている。
【0006】
MPEG−4やH.26L等の動画像符号化方式では、Bピクチャ(なお、以下では、動画中の一画面である静止画が「フレーム」であっても「フィールド」であってもよい場合、「ピクチャ」という。)の符号化において、直接モードという符号化モードを選択することができる。(MPEG−4ビジュアル規格書(1999年、ISO/IEC 14496-2:1999 Information technology -- Coding of audio-visual objects -- Part2: Visual, p.154)。図26は、従来の直接モードにおけるピクチャ間予測方法の一例を示す図である。直接モードにおけるピクチャ間予測方法を、図26を用いて説明する。今、ピクチャB3のブロックaを直接モードで符号化/復号化するとする。この場合、H.26L方式においては、ピクチャB3を符号化/復号化する際に、第2参照インデックス(参照インデックスは「相対インデックス」ともいう。参照インデックスについては後述する。)が「0」である参照ピクチャ中のブロックaと同じ位置にあるブロックの動きベクトルを利用する。ここでは、ピクチャP4がピクチャB3に対して第2参照インデックスが「0」の参照ピクチャであるとする。この場合には、ピクチャP4中のブロックbの動きベクトルcを利用する。動きベクトルcは、ブロックbが符号化/復号化された際に用いられた動きベクトルであり、ピクチャP1を参照している。ブロックaは、動きベクトルcと平行な動きベクトルを用いて、参照ピクチャであるピクチャP1とピクチャP4とから双方向予測を行う。この場合のブロックaを符号化/復号化する際に用いる動きベクトルは、ピクチャP1に対しては動きベクトルd、ピクチャP4に対しては動きベクトルeとなる。
【0007】
図27は、入力された各ピクチャに対するピクチャ番号および参照インデックスの付与の一例を示す説明図である。ピクチャ番号・参照インデックスは参照ピクチャ用メモリに格納された参照ピクチャを一意に識別するための番号である。参照画像としてメモリに蓄積されるピクチャ毎に「1」増加する値がピクチャ番号として割り当てられる。
【0008】
図28は、従来の動画像符号化方法、動画像復号化方法における画像符号化信号のフォーマットを示す概念図である。Pictureは1ピクチャ分の符号化信号、Headerはピクチャ先頭に含まれるヘッダ符号化信号、Block1は直接モードによるブロックの符号化信号、Block2は直接モード以外の補間(動き補償)予測によるブロックの符号化信号、RIdx0,RIdx1は参照インデックス、MV0,MV1は動きベクトルを示す。補間(動き補償)予測ブロックBlock2では、補間(動き補償)に使用する2つの参照ピクチャ(第1参照ピクチャおよび第2参照ピクチャ)を示すため2つの参照インデックスRIdx0,RIdx1を符号化信号中にこの順で有する。参照インデックスRIdx0,RIdx1いずれを使用するかはPredTypeにより判断することができる。例えば、PredTypeにより双方向でピクチャを参照することが示される場合はRIdx0とRIdx1が用いられ、片方向でピクチャを参照することが示される場合はRIdx0またはRIdx1が用いられ、直接モードが示されている場合はRIdx0、RIdx1ともに用いられない。第1参照ピクチャを示す参照インデックスRIdx0を第1参照インデックス、第2参照ピクチャを示す参照インデックスRIdx1を第2参照インデックスと呼ぶ。第1参照ピクチャと第2参照ピクチャとは符号化ストリーム中のデータ位置で決まる。
【0009】
以下、第1参照インデックス、第2参照インデックスの付与方法について図27(a)を用いて説明する。
第1参照インデックスの値には、まず、符号化/復号化対象ピクチャより前の表示時刻を持つ参照ピクチャに対し、符号化/復号化対象ピクチャに近い順より「0」から始まる値が割り当てられる。符号化/復号化対象より前の表示時刻を持つ参照ピクチャ全てに対し「0」から始まる値が割り当てられたら、次に符号化/復号化対象ピクチャより後の表示時刻を持つ参照ピクチャに対し、符号化/復号化対象ピクチャに近い順から続きの値が割り当てられる。
【0010】
第2参照インデックスの値には、まず、符号化/復号化対象ピクチャより後の表示時刻を持つ参照ピクチャに対し、符号化/復号化対象ピクチャに近い順より「0」から始まる値が割り当てられる。符号化/復号化対象より後の表示時刻を持つ参照ピクチャ全てに対し「0」から始まる値が割り当てられたら、次に符号化/復号化対象ピクチャより前の表示時刻を持つ参照ピクチャに対し、符号化/復号化対象ピクチャに近い順から続きの値が割り当てられる。
【0011】
図27(a)における第1参照インデックスRIdx0が「0」で第2参照インデックスRIdx1が「1」の場合、図27に示すように、第1参照ピクチャはピクチャ番号「14」のBピクチャであり、第2参照ピクチャはピクチャ番号「13」のBピクチャである。
【0012】
ブロック中の参照インデックスは可変長符号語により表現され、値が小さいほど短い符号長のコードが割り当てられている。通常、ピクチャ間予測の参照ピクチャとして符号化/復号化対象ピクチャに最も近いピクチャが選択される可能性が高いため、上記のように符号化/復号化対象ピクチャに近い順に参照インデックス値を割り当てれば符号化効率は高くなる。
【0013】
一方、符号化信号中のバッファ制御信号(図28のHeader内のRPSL)を用いて参照インデックスの割り当て変更(リマッピング)を明示することにより、参照インデックスに対する参照ピクチャの割り当てを任意に変更することができる。従って、この割り当ての変更により、第2参照インデックスが「0」の参照ピクチャを、ピクチャメモリ内のどの参照ピクチャに定めてもよいということになる。例えば、図27(b)に示すように、第2参照インデックスが「0」の参照ピクチャが、符号化/復号化対象ピクチャの直前の表示時刻を持つ参照ピクチャとなるように、ピクチャ番号に対する参照インデックスの割り当てを変更することもできる。
【0014】
また、図27(a)および図27(b)に示した例では、Bピクチャが他のピクチャの符号化/復号化の際に参照される場合を示したが、一般的には、以下の条件の下に符号化が行われる場合が多い。
(1)Bピクチャは、他のピクチャに参照されない。
【0015】
(2)Bピクチャの各ブロックは、表示順で前方にある直近のN(Nは正の整数)枚のPピクチャ(またはIピクチャ)と、表示順で後方にある直近の1枚のPピクチャ(またはIピクチャ)とのうちから任意の2枚を参照して動き補償を行う。
【0016】
図29(a)は、Bピクチャが前方4枚(N=4)および後方1枚のPピクチャを参照ピクチャとして符号化される場合における符号化対象ピクチャB11に対する参照インデックスの初期設定の一例を示す図である。図29(a)において、図27(a)に示した例と異なる点は、Bピクチャが他のピクチャに参照されないので、Bピクチャには参照インデックスは割り当てられず、Pピクチャ(とIピクチャと)にのみ参照インデックスが割り当てられる。例えば、ピクチャB11は、表示順で前方にある直近4枚のPピクチャと後方にある直近1枚のPピクチャとを参照することができるので、ピクチャP0、ピクチャP1、ピクチャP4、ピクチャP7およびピクチャP10にだけ参照インデックスが付されている。
【0017】
図29(a)に示した例では、ピクチャB11に対して第1参照インデックスが「0」である参照ピクチャは、ピクチャP7であり、第2参照インデックスが「0」である参照ピクチャは、ピクチャP10である。ピクチャP10は、ピクチャB11に対して表示順で後方にあり、ピクチャB11に対して最も近傍にあるPピクチャである。上記の条件下においても、参照インデックスに対する参照ピクチャの割り当ては、自由に変更することができる。図29(b)は、図29(a)に示した参照インデックスに対して、リマッピングが行われた場合におけるピクチャB11の参照インデックスの一例を示す図である。図29(b)に示すように、H.26L方式では、初期設定でピクチャP7に割り当てられていた第1参照インデックスの値「0」を、ピクチャP1に割り当て直したり、初期設定でピクチャP10に割り当てられていた第2参照インデックスの値「0」を、ピクチャP0に割り当て直したり、当該Bピクチャの符号化効率などに応じて、自由にリマッピングすることができる。
【0018】
このように、参照インデックスに対する参照ピクチャの割り当ては、自由に変更することができるため、通常、参照ピクチャとして選択することにより符号化対象ピクチャの符号化効率が高くなるピクチャに対してより小さい参照インデックスが割り当てられるように変更される。すなわち、ブロック中の参照インデックスは可変長符号語により表現され、値が小さいほど短い符号長のコードが割り当てられているので、参照することにより符号化効率が向上するピクチャに対して、より小さな参照インデックスを割り当てることにより、参照インデックスの符号量を減らし、さらに符号化効率の向上を行うものである(例えば、非特許文献1参照。)。
【0019】
【非特許文献1】
MPEG−4ビジュアル規格書(1999年、ISO/IEC 14496-2:1999
Information technology -- Coding of audio-visual objects --
Part2: Visual
【0020】
【発明が解決しようとする課題】
上記従来の方法においては、Bピクチャのブロックを直接モードによって処理する場合、第2参照インデックスが「0」である参照ピクチャの動きベクトルを利用する。そのため、Bピクチャの符号化/復号化処理の際には、第2参照インデックスが「0」である参照ピクチャの動きベクトルを記憶しておかなければならない。しかしながら、特に復号化処理の際には、復号化対象のBピクチャの符号列を処理し始めるまで、どの参照ピクチャが第2参照インデックス「0」のピクチャであるかがわからない。これは、バッファ制御信号(図28の Header内のRPSL)を用いて明示的に指示することにより、参照インデックスに対する参照ピクチャの割り当てを任意に変更することができるためである。したがって、Bピクチャの符号化/復号化処理の際には、すべての参照ピクチャに対する動きベクトルを記憶しておかなければならない。よって従来の方法においては、画像サイズが大きくなるに従い、また、参照ピクチャ数が多くなるに従い、動きベクトルを格納するためのメモリ量が爆発的に増大するという問題がある。
【0021】
本発明は、上記問題を解決するためのものであり、直接モード用に格納する動きベクトルのメモリ量を低減することを可能とする動画像符号化方法および動画像復号化方法を提供することを目的とする。
【0022】
【課題を解決するための手段】
この課題を解決するために、本発明の動画像符号化方法は、複数のブロックから構成されるピクチャの並びである動画像を符号化する方法であって、動きベクトルを用いた動き補償を行いながら動画像をブロック単位で符号化し、符号列を生成するステップと、動き補償に用いる動きベクトルの記憶に関する制限を示す制限情報を生成するステップと、生成された前記制限情報を符号化するステップとを有することを特徴とする。これにより、複数のブロックを有するピクチャ中の符号化対象ブロックの動き補償を行うときに用いる動きベクトルの記憶の制限を示すことができる。
【0023】
また、本発明の他の動画像符号化方法は、複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら符号化する方法であって、符号化対象ブロックの符号化モードを決定する決定ステップと、前記符号化対象ブロックの符号化モードが直接モードである場合に、参照インデックスで特定される符号化済ピクチャの動きベクトルが記憶部に格納されているかどうかを判断する判断ステップと、前記参照インデックスで特定される符号化済フレームの動きベクトルが、記憶部に格納されていないと判断された場合に、前記符号化対象ブロックを有するピクチャと同一のピクチャ内にあり前記符号化対象ブロックの周辺にあるブロックを符号化するときに用いられた動きベクトルを用いて前記符号化対象ブロックの動き補償を行う導出ステップとを有し、前記直接モードは、符号化済ピクチャ中のブロックが符号化されたときに用いられた動きベクトルを用いて前記符号化対象ブロックの動き補償を行う符号化モードであり、前記参照インデックスは、記憶部に格納されている複数の符号化済ピクチャから、前記符号化対象ブロックに対して動き補償を行うときに参照する参照ピクチャを選択するために、前記符号化済ピクチャに対して付与されたインデックスであることを特徴とする。これにより、直接モードで動き補償を行うために必要な動きベクトルが記憶部になくても符号化対象ブロックの動き補償を行うことができる。
【0024】
また、前記動画像符号化方法は、さらに、前記参照インデックスで特定される符号化済フレームの動きベクトルが、記憶部に格納されていないと判断された場合に、前記符号化対象ブロックの動きベクトルを「0」として前記符号化対象ブロックの動き補償を行う別の導出ステップを有するとしてもよい。これにより、直接モードで動き補償を行うために必要な動きベクトルが記憶部になくても符号化対象ブロックの動き補償を行うことができる。
【0025】
前記動画像符号化方法は、さらに、前記参照インデックスで特定される符号化済フレームを符号化するときに用いた動きベクトルが記憶部に格納されていると判断された場合に、記憶部に格納されている前記動きベクトルを用いて前記符号化対象ブロックの動き補償を行う別の導出ステップを有するとしてもよい。これにより、直接モードで動き補償を行うために必要な動きベクトルがあるかないかの判断に基づいて符号化対象ブロックの動き補償をすることができる。
【0026】
また、本発明のさらに他の動画像符号化方法は、複数のブロックから構成されるピクチャの並びである動画像を符号化する方法であって、動きベクトルを用いた動き補償を行いながら動画像をブロック単位で符号化し、符号列を生成するステップと、動き補償に用いる動きベクトルの記憶に関する制限を示す制限情報を生成する第一の出力ステップと、前記符号化対象ブロックが参照するピクチャがBピクチャである場合に、前記Bピクチャを符号化するときに用いた動きベクトルを記憶しないことを示す保存情報を生成する第二の出力ステップと、生成された前記制限情報と前記保存情報とを符号化するステップとを有し、前記Bピクチャは、ブロック毎に最大2枚のピクチャを参照して動き補償を行うピクチャであることを特徴とする。これにより、複数のブロックを有するピクチャ中の符号化対象ブロックの動き補償を行うときに用いる動きベクトルの記憶の制限を示し、ピクチャタイプにより保存しない動きベクトルを示すことができる。
【0027】
前記動画像符号化方法は、前記制限情報と前記保存情報とを符号化するステップでは、前記制限情報と前記保存情報とを前記符号列中のヘッダ情報として符号化するとしてもよい。前記動画像符号化方法は、さらに、前記保存情報に基づき前記Bピクチャを符号化するときに用いた動きベクトルを記憶領域に格納せず、符号化順で、前記符号化対象ブロックを有するピクチャの直前に符号化されたPピクチャの動きベクトルを記憶領域に格納するステップを有し、前記Pピクチャは、ブロック毎に既に符号化済みのピクチャを最大1枚参照して予測符号化を行うピクチャであるとしてもよい。これにより、複数のブロックを有するピクチャ中の符号化対象ブロックの動き補償を行うときに用いる動きベクトルの記憶の制限を示し、ピクチャタイプにより保存しない動きベクトルを示すことができる。
【0028】
本発明のさらに他の動画像符号化方法は、複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら符号化する方法であって、符号化対象のピクチャがトップフィールドとボトムフィールドとからなるインタレース画像のいずれかのフィールドである場合に、前記符号化対象のピクチャが前記トップフィールドであるか前記ボトムフィールドであるかを判断するステップと、前記符号化対象のピクチャが前記トップフィールドであると判断された場合に、符号化対象ピクチャの動き補償に用いた動きベクトルをトップフィールド用の記憶領域に格納し、前記符号化対象のピクチャが前記ボトムフィールドであると判断された場合に、符号化対象ピクチャの動き補償に用いた動きベクトルをボトムフィールド用の記憶領域に格納するステップとを有することを特徴とする。これにより、フィールドのパリティ毎に動きベクトルを格納することができる。
【0029】
前記動画像符号化方法は、前記トップフィールド用の記憶領域に格納する動きベクトルと、前記ボトムフィールド用の記憶領域に格納する動きベクトルとは、同一フレームに属するトップフィールドとボトムフィールドを符号化するときに用いた動きベクトルであるとしてもよい。これにより、同一フレームに属するフィールドを符号化するときに用いた動きベクトルを保存することができる。
【0030】
前記動画像符号化方法は、さらに、符号化対象のピクチャをフレーム構造で符号化する場合に、前記符号化対象ピクチャの動き補償に用いた動きベクトルを、トップフィールド用の記憶領域とボトムフィールド用の記憶領域とに格納するステップを有するとしてもよい。これにより、トップフィールド用の記憶領域とボトムフィールド用の記憶領域との両方に、フレーム構造の符号化対象のピクチャにおいて動き補償を行うときに用いた動きベクトルを記憶できる。
【0031】
上記課題を解決するために、本発明の動画像復号化方法は、複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら復号化する方法であって、復号化対象ブロックの動き補償に用いる動きベクトルの記憶に関する制限を示す制限情報を有する符号化列を入力するステップと、前記符号化列を復号化し前記制限情報を抽出するステップと、前記制限情報に基づいて動きベクトルを記憶領域に格納するステップとを有することを特徴とする。これにより、複数のブロックを有するピクチャ中の符号化対象ブロックの動き補償を行うときに用いる動きベクトルの記憶の制限をすることができる。
【0032】
また、本発明の他の動画像復号化方法は、複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら復号化する方法であって、復号化対象ブロックの符号化モードを示す符号化モード情報を有する符号化列を入力するステップと、前記符号化列を復号化し前記符号化モード情報を抽出するステップと、前記符号化モード情報が直接モードを示している場合に、参照インデックスで特定される復号化済ピクチャを復号化するときに用いた動きベクトルが記憶部に格納されているかどうかを判断する判断ステップと、前記参照インデックスで特定される復号化済ピクチャの動きベクトルが、記憶部に格納されていないと判断された場合に、前記復号化対象ブロックを有するピクチャと同一のピクチャ内にあり前記復号化対象ブロックの周辺にあるブロックを復号化するときに用いられた動きベクトルを用いて前記復号化対象ブロックの動き補償を行う導出ステップとを有し、前記直接モードは、参照するピクチャ中において前記復号化対象ブロックと同じ位置にあるブロックが復号化されたときに用いられた動きベクトルを用いて前記復号化対象ブロックの動き補償を行う符号化モードであり、前記参照インデックスは、記憶部に格納されている複数の復号化済ピクチャから、前記復号化対象ブロックに対して動き補償を行うときに参照する参照ピクチャを選択するために、前記復号化済ピクチャに対して付与されたインデックスであることを特徴とする。これにより、直接モードで動き補償を行うために必要な動きベクトルが記憶部になくても復号化対象ブロックの動き補償を行うことができる。
【0033】
また、さらに、前記参照インデックスで特定される復号化済ピクチャの動きベクトルが、記憶部に格納されていないと判断された場合に、前記復号化対象ブロックの動きベクトルを「0」として前記復号化対象ブロックの動き補償を行う別の導出ステップを有するとしてもよい。これにより、直接モードで動き補償を行うために必要な動きベクトルが記憶部になくても復号化対象ブロックの動き補償を行うことができる。
【0034】
前記動画像復号化方法は、さらに、前記参照インデックスで特定される復号化済ピクチャを復号化するときに用いた動きベクトルが記憶部に格納されていると判断された場合に、記憶部に格納されている前記動きベクトルを用いて前記復号化対象ブロックの動き補償を行う別の導出ステップを有するとしてもよい。これにより、直接モードで動き補償を行うために必要な動きベクトルがあるかないかの判断に基づいて復号化対象ブロックの動き補償をすることができる。
【0035】
本発明のさらに他の動画像復号化方法は、複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら復号化する方法であって、復号化対象ブロックの動き補償に用いる動きベクトルの記憶に関する制限を示す制限情報と、前記復号化対象ブロックが参照するピクチャがBピクチャであるときに、前記Bピクチャを復号化するときに用いた動きベクトルを記憶部に格納しないことを示す保存情報とを有する符号化列を入力する入力ステップと、前記符号化列を復号化し前記制限情報と前記保存情報とを抽出する抽出ステップと、前記制限情報に基づいて動きベクトルを記憶部に格納し、さらに前記保存情報に基づいてBピクチャを復号化するときに用いた動きベクトルを記憶部に格納しない格納ステップとを有し、前記Bピクチャは、ブロック毎に最大2枚の復号化済みピクチャを参照して動き補償を行うピクチャであることを特徴とする。これにより、抽出された制限情報と保存情報とにより、動きベクトルを保存すべきかどうかを決めることができる。
【0036】
さらに、前記格納ステップにおいて、前記保存情報に基づき前記Bピクチャを復号化するときに用いた動きベクトルを記憶部に格納せず、復号化順で、前記復号化対象ブロックを有するピクチャの直前に復号化されたPピクチャの動きベクトルを記憶部に格納し、前記Pピクチャは、ブロック毎に既に復号化済みのピクチャを最大1枚参照して動き補償を行うピクチャであるとしてもよい。これにより、抽出された制限情報と保存情報とにより、動きベクトルを保存すべきかどうかを決めることができる。
【0037】
また、本発明のさらに他の動画像復号化方法は、複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら復号化する方法であって、復号化対象のピクチャがトップフィールドとボトムフィールドとからなるインタレース画像のいずれかのフィールドである場合に、前記復号化対象のピクチャが前記トップフィールドであるか前記ボトムフィールドであるかを判断するステップと、前記復号化対象のピクチャが前記トップフィールドであると判断された場合に、復号化対象ピクチャの動き補償に用いた動きベクトルをトップフィールド用の記憶領域に格納し、前記復号化対象のピクチャが前記ボトムフィールドであると判断された場合に、復号化対象ピクチャの動き補償に用いた動きベクトルをボトムフィールド用の記憶領域に格納するステップとを有することを特徴とする。これにより、フィールドのパリティ毎に動きベクトルを格納することができる。
【0038】
本発明に係る動画像符号化装置は、通信機能を備えるパーソナルコンピュータ、PDA、ディジタル放送の放送局および携帯電話機などに備えられる動画像符号化装置として有用である。
また、本発明に係る動画像復号化装置は、通信機能を備えるパーソナルコンピュータ、PDA、ディジタル放送を受信するSTBおよび携帯電話機などに備えられる動画像復号化装置として有用である。
【0039】
【発明の実施の形態】
以下、本発明の実施の形態について、図1から図25を用いて説明する。
【0040】
(実施の形態1)
図1は、本発明の実施の形態1の動画像符号化装置100の構成を示すブロック図である。動画像符号化装置100は、各ピクチャの符号化の際に、符号化対象ピクチャの直前に符号化された参照ピクチャで検出された動きベクトルだけをメモリ内に格納しておき、Bピクチャを直接モードで符号化する際に参照すべき動きベクトルがメモリ内に格納されていない場合には、従来の直接モードとは異なる方法で符号化する動画像符号化装置であって、フレームメモリ101、差分演算部102、予測残差符号化部103、符号列生成部104、予測残差復号化部105、加算演算部106、フレームメモリ107、動きベクトル検出部108、モード選択部109、符号化制御部110、スイッチ111〜115、動きベクトル記憶部116を備える。フレームメモリ101は、入力画像をピクチャ単位で保持する画像メモリで、入力画像として表示順に入力されるピクチャを、符号化順に並べ替えるための記憶領域を提供する。差分演算部102は、フレームメモリ101内のピクチャからブロック単位で読み出された画像と、フレームメモリ107内の参照ピクチャから動きベクトルに基づいて読み出された1ブロックの画像との差分である予測残差を求めて出力する。予測残差符号化部103は、差分演算部102で求められた予測残差に周波数変換を施し、量子化して出力する。この予測残差符号化部103による量子化においては、除算結果の丸めなどによって非可逆となる処理が含まれる場合がある。符号列生成部104は、予測残差符号化部103からの量子化結果を可変長符号化した後、出力用の符号化ビットストリームのフォーマットに変換し、符号化された予測残差の関連情報を記述したヘッダ情報などの付加情報を付して符号列を生成する。予測残差復号化部105は、予測残差符号化部103からの符号化結果を可変長復号化し、逆量子化した後、逆周波数変換を施し、復号化された予測残差を出力する。加算演算部106は、予測残差復号化部105の復号化結果である予測残差のブロックに前記参照画像のブロックを加算して、復号化された1ブロック分の画像を出力する。フレームメモリ107は、復号化された各ブロックの画像を蓄積し、参照画像をピクチャ単位で保持する画像メモリである。
【0041】
動きベクトル検出部108は、対象ピクチャの動きベクトルを、所定の大きさのブロックを単位として検出する。モード選択部109は、フレームメモリ101から読み出された対象ブロックとそれに対して検出される動きベクトルとを参照して、対象ブロックの動きベクトルを直接モードで計算するか他のモードで計算するかを選択する。直接モードを選択した場合、モード選択部109は、動きベクトル記憶部116に格納されている、符号化対象ピクチャより表示順で後方にある参照ピクチャの動きベクトルを用いて対象ブロックの動きベクトルを計算する。モード選択部109は、計算の結果である動きベクトルによって示される参照画像のブロックを、フレームメモリ107から読み出して差分演算部102と加算演算部106とに出力する。符号化制御部110は、フレームメモリ101に表示順で格納されている入力画像のピクチャを、符号化される順に入れ替え、符号化の対象となるピクチャから符号化の順に、符号化処理の単位となるブロックを読み出す。また、符号化制御部110は、参照ピクチャごとに参照インデックスを割り当て、割り当てた参照インデックスの一覧である参照インデックスリストを管理する。さらに、符号化制御部110は、符号化対象ピクチャの直前に符号化された参照ピクチャの動きベクトルだけを動きベクトル記憶部116に格納し、動きベクトル記憶部116に格納される動きベクトルの記憶量を示す情報を作成する。動きベクトル記憶部116は、符号化対象のピクチャの直前に符号化された参照ピクチャにおいて得られている動きベクトルを保存するための記憶領域を提供する。
【0042】
以下では、上記のように構成された動画像符号化装置100の動作について説明する。図1に示した動画像符号化装置100の入力画像は、表示時間順にピクチャ単位でフレームメモリ101に入力される。図2(a)は、図1の動画像符号化装置100に入力画像として入力されるピクチャの順序を示す図である。フレームメモリ101に入力されるピクチャの順序を図2(a)に示す。図2(a)において、縦線はピクチャを示し、各ピクチャの右下に示す記号は、1文字目のアルファベットがピクチャタイプ(I、PまたはB)を示し、2文字目以降の数字が表示順のピクチャ番号を示している。フレームメモリ101に入力された各ピクチャは、符号化順に並び替えられる。符号化順への並び替えは、ピクチャ間予測符号化における参照関係に基づいて行われ、参照ピクチャとして用いられるピクチャが、符号化対象ピクチャよりも先に符号化されるように並び替える。図2(b)は、図2(a)に示したピクチャの順序を符号化順に並べ替えた場合のピクチャの順序を示す図である。例えば、Pピクチャは、表示順で前方にある近傍3枚のIピクチャまたはPピクチャを参照ピクチャとする。すなわち、符号化対象のPピクチャにおいて符号化対象となる各ブロックは、表示順で前方にある1枚の参照ピクチャを参照して動き補償を行うのであるが、ブロックごとにこの1枚を、表示順で前方にある近傍3枚のIピクチャまたはPピクチャの中から任意に選択することができる。また、Bピクチャは、表示順で前方にある近傍3枚のIピクチャまたはPピクチャと、表示順で後方にある近傍1枚のIピクチャまたはPピクチャとを参照ピクチャとして用いるものとする。従って、符号化対象のBピクチャにおいて符号化対象となる各ブロックは、2枚の参照ピクチャを参照して動き補償を行うのであるが、ブロックごとにこの2枚を、表示順で前方にある近傍3枚のIピクチャまたはPピクチャと、表示順で後方にある近傍1枚のIピクチャまたはPピクチャとの中から任意に選択することができる。このため、Bピクチャの符号化より前の時点で、当該Bピクチャより表示順で後方にある近傍1枚のIピクチャまたはPピクチャを符号化しておかなくてはならない。この場合、図2(a)のピクチャを並び替えた結果は図2(b)のようになる。例えば、BピクチャであるピクチャB5に注目すると、ピクチャB5より表示順で後方にある(Iピクチャまたは)Pピクチャであって、かつ、ピクチャB5の最も近傍にあるピクチャP7が、ピクチャB5を符号化する前に符号化される。
【0043】
フレームメモリ101で並び替えが行われた各ピクチャは、マクロブロックの単位で読み出されるとする。ここでは、マクロブロックは水平16画素×垂直16画素の大きさであるとする。また、動き補償はブロック単位(ここでは8画素×8画素の大きさとする)単位で行うものとする。以下では、ピクチャP13、ピクチャB11の符号化処理について順に説明する。なお、本実施の形態における参照インデックスの管理は符号化制御部110において行うものとする。
【0044】
<ピクチャP13の符号化処理>
ピクチャP13はPピクチャであるので、前方参照を用いたピクチャ間予測符号化を行う。この場合の参照ピクチャはピクチャP10、ピクチャP7、ピクチャP4となる。これらの参照ピクチャは、既に符号化が終了しており、復号化画像がフレームメモリ107に蓄積されている。
【0045】
符号化制御部110は、入力されたピクチャをどのタイプのピクチャ(I、PまたはBピクチャ)で符号化するかを決定し、そのピクチャタイプにより、スイッチ113、スイッチ114、スイッチ115を制御する。ここで、ピクチャタイプの決定は、例えば、周期的にピクチャタイプを割り当てる方法が一般的に用いられる。ピクチャタイプの決定により、フレームメモリ101内でピクチャの符号化順序の入れ替えが行われる。
【0046】
Pピクチャの符号化においては、符号化制御部110は、スイッチ113、スイッチ114、スイッチ115がオンになるように各スイッチを制御する。したがって、フレームメモリ101から読み出されたピクチャP13のマクロブロックは、まず動きベクトル検出部108、モード選択部109、差分演算部102に入力される。
【0047】
動きベクトル検出部108では、フレームメモリ107に蓄積されたピクチャP10の復号化画像データを参照ピクチャとして用い、マクロブロック内の各ブロックに対して、動きベクトルの検出を行う。検出された動きベクトルは、モード選択部109に対して出力される。
【0048】
モード選択部109では、動きベクトル検出部108で検出した動きベクトルを用いて、マクロブロックの符号化モードを決定する。ここで符号化モードとは、マクロブロックをどのような方法で符号化するかを示すものである。例えば、Pピクチャの場合には、ピクチャ内符号化、動きベクトルを用いたピクチャ間予測符号化、動きベクトルを用いない(動きベクトルを「0」として扱う、または、周囲ブロックの動きベクトルから選択する)ピクチャ間予測符号化の中から、いずれの方法で符号化するかを決めることができるとする。符号化モードの決定においては、一般的には、少ないビット量でより符号化誤差が小さくなる方法を選択する。
【0049】
モード選択部109で決定された符号化モードは、符号列生成部104に対して出力される。また、現ピクチャが、他のピクチャの符号化時に参照ピクチャとして用いられるピクチャであり、モード選択部109で決定された符号化モードがピクチャ間予測符号化である場合には、モード選択部109は、そのピクチャ間予測符号化で用いられる動きベクトルを動きベクトル記憶部116に格納する。ただし、動きベクトル記憶部116への動きベクトルの格納動作は、後述するように符号化制御部110により制御される。また、動きベクトルは、モード選択部109から符号列生成部104に対して出力される。
【0050】
さて、以下では、モード選択部109による動きベクトル記憶部116への動きベクトル格納動作について説明する。動きベクトル記憶部116に格納される動きベクトルの数は、符号化制御部110により指定される。Pピクチャは、前方の3つのピクチャを参照ピクチャとして用いて符号化されるが、ここでは参照ピクチャ数よりも少ないピクチャ数の動きベクトルを、動きベクトル記憶部116に格納する。例えば、ここでは1つのピクチャのみの動きベクトルを格納するとする。この場合、格納する動きベクトルとしては、参照ピクチャのうち符号化順で現ピクチャの直前に符号化された参照ピクチャの動きベクトルを格納する方法がある。ここで、すでに動きベクトル記憶部116に記憶されている動きベクトルは、現ピクチャの符号化の開始時に消去しても良いし、符号化モードが決定される度に、動きベクトルを符号化されるブロックの順に上書きしても良い。なお、格納する動きベクトルの量としては、復号化装置が有する動きベクトルを格納する領域(メモリ)の大きさをもとに決めても良い。また、動きベクトル記憶部116に格納する動きベクトルとしては、Iピクチャのみ、Pピクチャのみ、またはIピクチャとPピクチャのみにするようにしても良い。さらに、これらに加えて、符号化中のピクチャにおいて、対象ブロックよりも前に直接モード以外のピクチャ間予測を用いて符号化されている所定数のブロックまたは全ブロックの動きベクトルが格納されるようにしてもよい。ここで、Iピクチャに関して格納される動きベクトルの情報としては、動きベクトルが格納されていないことを示す情報のことである(Iピクチャは動き補償されないため)。また、動きベクトル記憶部116に格納する動きベクトルとしては、表示順で符号化対象ピクチャに近いものから数ピクチャを保存するようにしても、符号化の順番(ストリーム順序)で符号化対象ピクチャに近いピクチャから(ストリーム順序で後のピクチャから)数ピクチャを保存するようにしても、いずれでも構わない。Bピクチャが後方の2枚のPピクチャを参照する場合、符号化(または復号化)の順番では近くても、時間的に離れているため、画像としては近い画像ではない(動き補償に適した画像ではない)可能性が高い。よって、Bピクチャが後方の複数のPピクチャを参照する場合には、表示順で符号化対象ピクチャに近いものから動きベクトルを保存するとよい場合がある。一方、符号化の順番(ストリーム順序)で符号化対象ピクチャに近いピクチャから(ストリーム順序で後のピクチャから)動きベクトルを保存すると、メモリの管理を簡略化できる利点がある。
【0051】
またさらに、符号化制御部110により指定された、動きベクトル記憶部116に格納される動きベクトルの数(例えば、参照ピクチャ数、マクロブロック数)は、符号列生成部104に対して出力される。
次に、図1に示したように、モード選択部109で決定された符号化モードに基づいた参照画像が、差分演算部102と加算演算部106とに出力される。ただし、ピクチャ内符号化が選択された場合には、参照画像は出力されない。また、モード選択部109でピクチャ内符号化が選択された場合には、符号化制御部110は、スイッチ111を端子aに、スイッチ112を端子cに接続するように制御し、ピクチャ間予測符号化が選択された場合には、スイッチ111を端子bに、スイッチ112を端子dに接続するように制御する。
【0052】
以下では、モード選択部109でピクチャ間予測符号化が選択された場合について説明する。
差分演算部102には、マクロブロックの画像データ以外に、モード選択部109から参照画像が入力される。差分演算部109では、マクロブロックの画像データと参照画像との差分を演算し、予測残差画像を生成し出力する。
【0053】
予測残差画像は予測残差符号化部103に入力される。予測残差符号化部103では、入力された予測残差画像に対して周波数変換や量子化等の符号化処理を施すことにより、符号化データを生成して出力する。ここで例えば、周波数変換や量子化の処理は、水平8画素×垂直8画素の単位で行うことができる。予測残差符号化部103から出力された符号化データは、符号列生成部104と予測残差復号化部105とに入力される。
【0054】
符号列生成部104では、入力された符号化データに対して、可変長符号化等を施し、さらにモード選択部109から入力された動きベクトルの情報、符号化モードの情報、その他のヘッダ情報、等を付加することにより符号列を生成する。この場合、ヘッダ情報には、符号化制御部110により決定された、動きベクトルの記憶量に関する情報(例えば、参照ピクチャ数、マクロブロック数)が記述される。この記述は、符号列全体のヘッダ(シーケンスヘッダ)、複数ピクチャから構成されるGOPのヘッダ(GOPヘッダ)、ピクチャヘッダ、スライスヘッダ等に記述すれば良い。また、符号化装置と復号化装置とで動きベクトルの記憶量に関する情報を予め共有しているような場合には、動きベクトルの記憶量に関する情報は、符号化されてもされなくてもよい。図3は、図1に示した符号列生成部103によって生成される符号列の一例を示す図である。以下の図において、斜線部は、それぞれヘッダを示す。図3(a)は、動きベクトルの記憶量に関する情報がシーケンスヘッダに記述された符号列の一例を示す図である。図3(b)は、動きベクトルの記憶量に関する情報がGOP(Group of Pictures)ヘッダに記述された符号列の一例を示す図である。図3(c)は、動きベクトルの記憶量に関する情報がピクチャヘッダに記述された符号列の一例を示す図である。図3(d)は、動きベクトルの記憶量に関する情報がスライスヘッダに記述された符号列の一例を示す図である。また、この記述は符号列全体のヘッダに1つだけ記述するようにしてもよいし、GOPのヘッダ(GOPヘッダ)、ピクチャヘッダ、およびスライスヘッダ等に同一の情報を繰り返し記述するようにしてもよい。
【0055】
また、上記の動きベクトルの記憶量に関する情報は、参照ピクチャ数またはマクロブロック数などに限らず、例えば、単に、動きベクトルの記憶量に制限が設けられていることを示す情報またはメモリに格納されるデータに制限が設けられていることを示す情報などであってもよい。
【0056】
予測残差復号化部105では、入力された符号化データに対して、逆量子化や逆周波数変換等の復号化処理を施し、復号化差分画像を生成して出力する。復号化差分画像は加算演算部106において、予測画像と加算されることにより復号化画像となり、フレームメモリ107に蓄積される。
【0057】
同様の処理により、ピクチャP13の残りのマクロブロックに対して、符号化処理が行われる。そして、ピクチャP13のすべてのマクロブロックについて処理が終わると、次にピクチャB11の符号化処理が行われる。
【0058】
<ピクチャB11の符号化処理>
ピクチャB11はBピクチャであるので、2方向参照を用いたピクチャ間予測符号化を行う。この場合の参照画像は、表示順で前方にある参照ピクチャがピクチャP10、ピクチャP7、ピクチャP4、表示順で後方にある参照ピクチャがピクチャP13となる。ピクチャB11の符号化処理においては、符号化制御部110は、スイッチ113がオン、スイッチ114、スイッチ115がオフになるように各スイッチを制御するものとする。よって、フレームメモリ101から読み出されたピクチャB11のマクロブロックは、動きベクトル検出部108、モード選択部109、差分演算部102に入力される。
【0059】
動きベクトル検出部108では、フレームメモリ107に蓄積されたピクチャP10、ピクチャP7、ピクチャP4の復号化画像データを前方参照ピクチャとして、ピクチャP13の復号化画像データを後方参照ピクチャとして用いることにより、マクロブロックに含まれる各ブロックの前方動きベクトルと後方動きベクトルの検出を行う。
【0060】
モード選択部109では、動きベクトル検出部108で検出した動きベクトルを用いて、マクロブロックの符号化モードを決定する。ここで、Bピクチャの符号化モードは、例えば、ピクチャ内符号化、前方動きベクトルを用いたピクチャ間予測符号化、後方動きベクトルを用いたピクチャ間予測符号化、双方向動きベクトルを用いたピクチャ間予測符号化、直接モードから選択することができるものとする。
【0061】
ここで、直接モードで符号化を行う場合について説明する。図4は、対象ブロックの動きベクトルを、直接モードを用いて計算する場合の計算方法の一例を示す図である。図4において、符号化対象ブロックがピクチャB11内のブロックaであるとする。ブロックaを直接モードで符号化する場合には、ピクチャB11に対して第2参照インデックスが「0」である参照ピクチャ中の、ブロックaと同じ位置にあるブロックの動きベクトルを利用する。
【0062】
まず、ピクチャB11に対して第2参照インデックスが「0」の参照ピクチャが、ピクチャP13である場合について説明する。動きベクトル記憶部116に格納されている動きベクトルは、その動きベクトルがどのピクチャのものであるかを特定するために、ピクチャ番号と対応付けて格納されている。モード選択部109は、ピクチャB11に対して第2参照インデックスが「0」である参照ピクチャのピクチャ番号「13」をピクチャB11の参照インデックスリストから調べ、ピクチャ番号「13」の参照ピクチャの動きベクトルが動きベクトル記憶部116に格納されているか否かを判断する。ピクチャP13は、符号化順序でピクチャB11に最も近く符号化された参照ピクチャであるので、ピクチャP13の各ブロックを符号化した際の動きベクトルは、動きベクトル記憶部116に保持されている。よって、ブロックaを直接モードで符号化する際には、ピクチャP13のブロックbの動きベクトルを利用することになる。動きベクトルcは、ブロックbが符号化された際に用いられた動きベクトルであり、動きベクトル記憶部116に記憶されている。この動きベクトルcは、ピクチャP10を参照している。ブロックaは、動きベクトルcから生成した動きベクトルを用いて、参照ピクチャであるピクチャP10とピクチャP13とから2方向予測が行われる。この場合のブロックaを符号化する際に用いる動きベクトルは、ピクチャP10に対しては動きベクトルd、ピクチャP13に対しては動きベクトルeとなる。
【0063】
ここで、動きベクトルcからブロックaの動きベクトルを生成する第1の方法としては、ピクチャ間の時間的距離を用いてスケーリングを施す方法がある。今、前方向動きベクトルである動きベクトルdの大きさをMVF、後方向動きベクトルである動きベクトルeの大きさをMVB、動きベクトルcの大きさをMVP、現在のピクチャ(ピクチャB11)の第2参照インデックスが「0」である参照ピクチャ(ピクチャP13)と、その参照ピクチャ(ピクチャP13)のブロックが参照しているピクチャ(ピクチャP10)との時間的距離をTRD、現在のピクチャ(ピクチャB11)と参照ピクチャ(ピクチャP13)のブロックが参照しているピクチャ(ピクチャP10)との時間的距離をTRBとすると、動きベクトルMVF、動きベクトルMVBは、それぞれ(数式1)、(数式2)で求められる。
(数式1) MVF=MVP×TRB/TRD
(数式2) MVB=(TRB−TRD)×MV/TRD
ここで、MVF、MVBはそれぞれ、動きベクトルの水平成分、垂直成分を合成して表現しているものとする。
【0064】
また、動きベクトルcからブロックaの動きベクトルを生成する第2の方法としては、予め定めたスケーリング係数を用いて、動きベクトルcに対してスケーリングを行う方法がある。ここで使用されるスケーリング係数は、複数ブロック単位または複数ピクチャ単位で、変更可能としても良い。また、このスケーリング係数は、システムで一意に決定し、符号化側と復号化側とで共有しても良いし、符号列中にヘッダ情報として記述することにより、符号化側と復号化側とで共有しても良い。
【0065】
次に、第2参照インデックスが「0」の参照ピクチャが、ピクチャP13以外の参照ピクチャである場合について説明する。例えば、ピクチャP10、ピクチャP7、ピクチャP4のいずれかが、ピクチャB11に対して第2参照インデックスが「0」の参照ピクチャである場合が考えられる。ピクチャP13以外の参照ピクチャは、符号化順序でピクチャB11に最も近く符号化された参照ピクチャではないので、それらのピクチャの各ブロックを符号化した際の動きベクトルは、動きベクトル記憶部116に保持されていない。よって、ブロックaを直接モードで符号化しようとしても、第2参照インデックスが「0」の参照ピクチャの動きベクトルを利用することができない。
【0066】
この場合における、直接モードの処理の第1の方法としては、動きベクトルを「0」として2方向予測する方法がある。この場合の参照ピクチャは、例えば、ピクチャB11に対して第1参照インデックスが「0」であるピクチャと、第2参照インデックスが「0」であるピクチャとを用いることができる。図5は、Bピクチャを直接モードで符号化する際に第2参照インデックスが「0」の参照ピクチャの動きベクトルを利用できない場合の2方向予測の一例を示す図である。例えば、第1参照インデックスが「0」であるピクチャがピクチャP7であり、第2参照インデックスが「0」であるピクチャがピクチャP10である場合、図5のようにブロックaに対して2方向予測を行うことができる。ブロックaは、ピクチャP7とピクチャP10においてブロックaと同じ位置にあるブロックを参照して動き補償を行う。
【0067】
また、直接モードの処理の第2の方法としては、同一ピクチャ内の周辺ブロックの動きベクトルを利用する方法がある。ただし、この場合、対象ブロックの周辺にあるブロックの動きベクトルは、モード選択部109により、動きベクトル記憶部116に格納されているものとする。この方法では、例えば図6に示すように、ブロックBLを直接モードで符号化する場合には、3つの周辺ブロックBL1、ブロックBL2、ブロックBL3を符号化する際に用いた動きベクトルを利用して、ブロックBLを符号化する際に用いる動きベクトルを決定する。この動きベクトルの決定方法としては、例えば前方向動きベクトルと後方向動きベクトルとのそれぞれについて、3つの周辺ブロックの動きベクトルの中央値や平均値を求める方法、第1参照ピクチャを参照する動きベクトルと第2参照ピクチャを参照する動きベクトルとのそれぞれについて、3つの周辺ブロックの動きベクトルの中央値や平均値を求める方法等が考えられる。
【0068】
さて、図1に示したように、モード選択部109で決定された符号化モードは符号列生成部104に対して出力される。また、モード選択部104で決定された符号化モードに基づいた参照画像が差分演算部102と加算演算部106に出力される。ただし、ピクチャ内符号化が選択された場合には、参照画像は出力されない。また、モード選択部109でピクチャ内符号化が選択された場合には、符号化制御部110は、スイッチ111を端子aに、スイッチ112を端子cに接続するように制御し、ピクチャ間予測符号化が選択された場合には、スイッチ111を端子bに、スイッチ112を端子dに接続するように制御する。以下では、モード選択部109でピクチャ間予測符号化が選択された場合について説明する。
【0069】
差分演算部102には、モード選択部109から参照画像が入力される。差分演算部109では、ピクチャB11のマクロブロックと参照画像との差分を演算し、予測残差画像を生成し出力する。
予測残差画像は予測残差符号化部103に入力される。予測残差符号化部103では、入力された予測残差画像に対して周波数変換や量子化等の符号化処理を施すことにより、符号化データを生成して出力する。予測残差符号化部103から出力された符号化データは、符号列生成部104に入力される。
【0070】
符号列生成部104では、入力された符号化データに対して、可変長符号化等を施し、さらにモード選択部109から入力された動きベクトルの情報、符号化モードの情報、その他のヘッダ情報、等を付加することにより符号列を生成する。ただし、直接モードで符号化されたマクロブロックについては、動きベクトルの情報は符号列に付加されない。
【0071】
同様の処理により、ピクチャB11の残りのマクロブロックに対して、符号化処理が行われる。そして、ピクチャB11のすべてのマクロブロックについて処理が終わると、次にピクチャB12の符号化処理が行われる。
以上のように、本発明の動画像符号化方法は、直接モードで符号化を行う際に利用する動きベクトルについて、どれだけ(例えば何ピクチャ分)の動きベクトルを記憶すべきかに対して制限を設ける。そして、その制限を加えていることを示す情報(請求の範囲でいう制限情報および保存情報)を符号列のヘッダ情報として記述する。また、直接モードで符号化を行う際に、利用すべき動きベクトルがメモリ上に存在する場合には、その動きベクトルを利用する。一方、利用すべき動きベクトルがメモリ上に存在しない場合には、対象ブロックの動きベクトルを「0」として符号化するか、または同一ピクチャ内において符号化対象ブロックの周辺にある符号化済みブロックを符号化する際に用いた動きベクトルを利用して符号化を行う。
【0072】
このような動作により、直接モードのために記憶しておくべき動きベクトルの記憶量を削減することができ、ハードウェアやソフトウェアにおけるメモリ量の削減を行うことができる。さらに、直接モードにおいて利用すべき動きベクトルがない場合であっても、代替的な方法により直接モードを実施することができる。また本発明は、上記で説明したように、第2参照インデックスが「0」となるピクチャに関わらず実施することができるため、第2参照インデックスが「0」となるピクチャの設定方法を新たに定義する必要がなく、設計上の煩雑さを招くことを防ぐことができる。
【0073】
なお、本実施の形態においては、マクロブロックは水平16画素×垂直16画素の単位で、動き補償は8画素×8画素のブロック単位で、ブロック予測残差画像の符号化は水平8画素×垂直8画素の単位で処理する場合について説明したが、これらの単位は別の画素数でも良い。
【0074】
また、本実施の形態においては、図6を用いた説明において、符号化済みの3つの周辺ブロックの動きベクトルを用い、直接モードにおいて用いる動きベクトルを決定する方法について説明したが、この周辺ブロック数、予測値の決定方法、は他の値や他の方法であっても良い。例えば、左隣のブロックの動きベクトルを予測値として用いる方法、等がある。
【0075】
また、本実施の形態においては、Pピクチャは、表示順で前方にある近傍3枚のIピクチャまたはPピクチャを参照ピクチャとし、Bピクチャは表示順で前方にある近傍3枚のIピクチャまたはPピクチャを前方参照ピクチャ、表示順で後方にある近傍1枚のIピクチャまたはPピクチャを後方参照ピクチャとして用いる場合について説明したが、これらの参照ピクチャ数は異なる値であっても良い。
【0076】
また、本実施の形態においては、Bピクチャを参照ピクチャとしては用いない場合について説明したが、これはBピクチャを参照ピクチャとして用いた場合であっても良い。Bピクチャを参照ピクチャとして用いる場合、Bピクチャを局所復号化した後のピクチャを参照ピクチャとしてフレームメモリ107に保存する必要があるため、符号化制御部110によるスイッチ114、スイッチ115の制御は本実施の形態におけるPピクチャの符号化の場合と同じとなる。また、Bピクチャが参照ピクチャとして用いられる場合であっても、Bピクチャが他のピクチャに対して第2参照インデックスが「0」のピクチャとなることがない場合、Bピクチャを符号化した際の動きベクトルを動きベクトル記憶部116に格納しなくても良い。これは、Bピクチャが第2参照インデックス「0」のピクチャとなることがない場合、第2参照インデックスが「0」となるピクチャはIピクチャまたはPピクチャのみとなるからである。したがってこのような場合、IピクチャまたはPピクチャを符号化する際に用いた動きベクトルのみを動きベクトル記憶部116に格納すればよい。これにより、直接モードにおいて、符号化対象ピクチャに対して第2参照インデックスが「0」となるピクチャを符号化した際に用いた動きベクトルを利用することができ、符号化効率の向上を図ることができる。ここで、Bピクチャを符号化する際に用いた動きベクトルを動きベクトル記憶部116に格納するかどうかは、符号化装置側と復号化装置側で予め決定しておくこともできるし、符号化装置側で決定し、その情報を符号列中のヘッダ部に記述しておくこともできる。符号化装置側で決定する場合には、符号化制御部110で決定を行い、その情報を符号列生成部104でヘッダ中に記述すればよい。
【0077】
また、ピクチャを符号化する際に用いた動きベクトルを動きベクトル記憶部116に格納するかどうかを、符号化装置側と復号化装置側で予め決定し、その情報を符号列生成部104でヘッダ中に記述しなくてもいいようにしてもよい。
また、本実施の形態においては、直接モード用に記憶しておく動きベクトルを、符号化順で直前に符号化された1つの参照ピクチャを符号化する際に用いた動きベクトルを記憶しておく場合について説明したが、これとは異なる参照ピクチャ数の動きベクトルを記憶しておいても良い。
【0078】
また、動きベクトルのうち、記憶すべきものと記憶しないものとを直接復号化装置に対して指定してもよい。これは例えば、動きベクトルの記憶の有無を指定されるピクチャのヘッダ中や、他のピクチャのヘッダ中において、動きベクトルの記憶の有無を指定されるピクチャのピクチャ番号等を指定することにより、どのピクチャの動きベクトルが記憶され、どのピクチャの動きベクトルが記憶されていないかを、復号化装置に指示することができる。例えば、ピクチャB11の符号化の際に、第2参照インデックスが「0」である参照ピクチャがピクチャP10となることがわかっている場合、ピクチャP10の動きベクトルは記憶し、ピクチャP13の動きベクトルは記憶しないように指示する。これにより、ピクチャB11の符号化の際には、ピクチャP10(第2参照インデックスが「0」である参照ピクチャ)の動きベクトルが動きベクトル記憶部116に保存されていることになり、直接モードにおいて、第2参照インデックスが「0」である参照ピクチャの動きベクトルを利用することができる。ここで、どの動きベクトルを保持しておくかを指定する情報は、符号列中のヘッダ情報として記述すればよい。一例としては、ピクチャ毎に動きベクトルを保存するかどうかを示す情報(例えば、「0」または「1」)を符号列中のヘッダの中に記述しておく。別の例としては、動きベクトルを保存する期間を示す情報(例えば、保存しなければ「0」、所定のピクチャにおいて3ピクチャ後のピクチャで新たに保存しなおすのであれば所定のピクチャの付随情報として「3」)を記述しておく。このような方法を用いることにより、より柔軟な動きベクトルの記憶管理を行うことが可能となり、また符号化効率の向上を図ることができる。
【0079】
(実施の形態2)
以下では、本発明の第2の実施の形態の動画像復号化装置700について、図7を用いて説明する。図7は、実施の形態2の動画像復号化装置700の構成を示すブロック図である。動画像復号化装置700は、符号列中のヘッダ情報に記述されている動きベクトルの格納方法にしたがって、参照ピクチャの動きベクトルをメモリに格納し、復号化対象ピクチャの復号化を行う動画像復号化装置であって、符号列解析部701、予測残差復号化部702、モード復号部703、動き補償復号部705、動きベクトル記憶部706、フレームメモリ707、加算演算部708、スイッチ709およびスイッチ710を有する。
【0080】
図8(a)は、符号列中に含まれるピクチャの順序を示すである。図8(b)は、図8(a)に示したピクチャの並びを復号化順に並べ替えた場合のピクチャの順序を示す図である。動画像復号化装置700に入力される符号列中のピクチャの順序は、図8(a)に示す通りであるとする。ここで、Pピクチャは、表示順で前方にある近傍3枚のIピクチャまたはPピクチャを参照ピクチャとし、Bピクチャは表示順で前方にある近傍3枚のIピクチャまたはPピクチャと、表示順で後方にある近傍1枚のIピクチャまたはPピクチャとを参照ピクチャとして用いて、符号化されているものとする。以下では、Pピクチャ、Bピクチャの復号化処理の代表例として、ピクチャP13、ピクチャB11の復号化処理について順に説明する。なお、本実施の形態における参照インデックスの管理は符号列解析部701において行うものとする。
【0081】
<ピクチャP13の復号化処理>
動画像復号化装置700の入力である符号列は、まず符号列解析部701に入力される。符号列解析部701では、入力された符号列から、各種データの抽出を行う。ここで各種データとは、モード選択の情報や符号化された動きベクトルを表す動きベクトル情報等である。抽出されたモード選択の情報は、モード復号部703に対して出力される。また、抽出された動きベクトル情報は、動き補償復号部705に対して出力される。さらに、予測残差符号化データは、予測残差復号化部702に対して出力される。
【0082】
モード復号部703では、符号列から抽出されたモード選択の情報を参照し、スイッチ709とスイッチ710の制御を行う。モード選択がピクチャ内符号化である場合には、スイッチ709は端子aに、スイッチ710は端子cに接続されるように制御する。また、モード選択がピクチャ間予測符号化である場合には、スイッチ709は端子bに、スイッチ710は端子dに接続されるように制御する。
【0083】
またモード復号部703では、モード選択の情報を動き補償復号部705に対しても出力する。以下では、モード選択がピクチャ間予測符号化である場合について説明する。
予測残差復号化部702では、入力された予測残差符号化データの復号化を行い、予測残差画像を生成する。生成された予測残差画像は、スイッチ709に対して出力される。ここでは、スイッチ709は端子bに接続されているので、予測残差画像は加算演算部708に対して出力される。
【0084】
動き補償復号部705は、符号列解析部701から入力された、符号化された動きベクトルである動きベクトル情報に対して、復号化処理を行う。そして、復号化された参照ピクチャ番号と動きベクトルとに基づいて、フレームメモリ707から動き補償画像(ブロック)を取得する。このようにして生成された動き補償画像は加算演算部708に対して出力される。
【0085】
また、動き補償復号部705では、他のピクチャの復号化時に参照ピクチャとして用いられるピクチャの復号化を行う場合には、動きベクトルを動きベクトル記憶部706に格納する。ここでは、Pピクチャが参照ピクチャとして用いられるので、ピクチャP13を復号化する際に得られた動きベクトルは、動きベクトル記憶部706に格納される。ただし、動きベクトル記憶部706への動きベクトルの記憶は、符号列のヘッダ情報により制御される。
【0086】
さて、動きベクトル記憶部706の動作について説明する。動きベクトル記憶部706に格納される動きベクトル数は、符号列のヘッダ中に記述されている。このヘッダ情報は、符号列解析部701で抽出されて、動き補償復号部705に対して出力される。ここでは1ピクチャのみの動きベクトルを格納するとヘッダ中に記述されているとする。この場合、格納する動きベクトルの量としては、符号化順で最近に復号化した参照ピクチャの動きベクトルを格納する方法がある。ここで、すでに動きベクトル記憶部706に記憶されている動きベクトルは、現ピクチャの復号化の開始時に消去しても良いし、ブロックを復号化して動きベクトルが得られる度に、動きベクトルを順に上書きしても良い。
【0087】
加算演算部708では、入力された予測残差画像と動き補償画像とを加算し、復号化画像を生成する。生成された復号化画像はスイッチ710を介してフレームメモリ707に対して出力される。
以上のようにして、ピクチャP13のマクロブロックが順に復号化される。ピクチャP16のマクロブロックがすべて復号化されると、ピクチャB11の復号化が行われる。
【0088】
<ピクチャB11の復号化処理>
符号列解析部701とモード復号部703、予測残差復号化部702の動作は、ピクチャP16の復号化処理の際と同様であるので、説明は省略する。
動き補償復号部705は、符号列解析部701から入力された、符号化された動きベクトルに対して、復号化処理を行う。そして、復号化された動きベクトルに基づいて、フレームメモリ707から動き補償画像(ブロック)を取得する。
【0089】
ここでは、モード復号部703で得られた符号化モードが、直接モードである場合について説明する。図4は、ピクチャP10からP13までの各ピクチャを時間順に並べた図であり、復号化対象ブロックがブロックaであるとする。ブロックaを直接モードで復号化する場合には、第2参照インデックスが「0」である参照ピクチャ中の、ブロックaと同じ位置にあるブロックの動きベクトルを利用する。
【0090】
まず、第2参照インデックスが「0」の参照ピクチャが、ピクチャP13である場合について説明する。上記ピクチャB13の復号化処理で示したように、ここでは1ピクチャのみの動きベクトルを格納するとヘッダ中に記述されており、参照ピクチャのうち復号化順で直前に復号化された参照ピクチャの動きベクトルが記憶されている。また、ピクチャP13は、復号化順でピクチャB11に最も近く復号化された参照ピクチャであるので、ピクチャP13の各ブロックを復号化した際の動きベクトルは、動きベクトル記憶部706に保持されている。よって、ブロックaを直接モードで復号化する際には、ピクチャP13のブロックbの動きベクトルを利用することになる。動きベクトルcは、ブロックbが符号化された際に用いられた動きベクトルであり、動きベクトル記憶部706に記憶されている。この動きベクトルcは、ピクチャP10を参照している。ブロックaは、動きベクトルcから生成した動きベクトルを用いて、参照ピクチャであるピクチャP10とピクチャP13とから2方向予測が行われる。この場合のブロックaを符号化する際に用いる動きベクトルは、ピクチャP10に対しては動きベクトルd、ピクチャP13に対しては動きベクトルeとなる。
【0091】
ここで、動きベクトルcからブロックaの動きベクトルを生成する第1の方法としては、ピクチャ間の時間的距離を用いてスケーリングを施す方法がある。今、前方向動きベクトルである動きベクトルdの大きさをMVF、後方向動きベクトルである動きベクトルeの大きさをMVB、動きベクトルcの大きさをMVP、現在のピクチャ(ピクチャB11)の第2参照インデックスが「0」である参照ピクチャ(ピクチャP13)と、その第2参照インデックスが「0」である参照ピクチャのブロックが参照しているピクチャ(ピクチャP10)との時間的距離をTRD、現在のピクチャ(ピクチャB11)と第2参照インデックスが「0」である参照ピクチャのブロックが参照しているピクチャ(ピクチャP10)との時間的距離をTRBとすると、動きベクトルMVF、動きベクトルMVBは、それぞれ(数式1)、(数式2)で求められる。
【0092】
また、動きベクトルcからブロックaの動きベクトルを生成する第2の方法としては、予め定めたスケーリング係数を用いて、動きベクトルcに対してスケーリングを行う方法がある。ここで使用されるスケーリング係数は、複数ブロック単位または複数ピクチャ単位で、変更可能としても良い。また、このスケーリング係数は、システムで一意に決定し、符号化側と復号化側とで共有しても良いし、符号列中にヘッダ情報として記述されているものを符号列解析部701で抽出することにより使用しても良い。
【0093】
次に、第2参照インデックスが「0」の参照ピクチャが、ピクチャP13以外の参照ピクチャである場合について説明する。例えば、ピクチャP10、P7、P4のいずれかが、第2参照インデックスが「0」の参照ピクチャである場合が考えられる。ピクチャP13以外の参照ピクチャは、復号化順序でピクチャB11に最も近く復号化された参照ピクチャではないので(動きベクトル記憶部116に記憶されている動きベクトルがどのピクチャのものであるか、さらに第2参照インデックスが「0」のピクチャがどのピクチャのものであるかをそれぞれピクチャ番号で得て、得られたピクチャ番号をそれぞれ比較することによって判断する)、それらのピクチャの各ブロックを復号化した際の動きベクトルは、動きベクトル記憶部706に保持されていない。よって、ブロックaを直接モードで符号化する際には、第2参照インデックスが「0」の参照ピクチャの動きベクトルを利用することができない。
【0094】
この場合における、直接モードの処理の第1の方法としては、動きベクトルを0として2方向予測する方法がある。この場合の参照ピクチャは、例えば、第1参照インデックスが「0」であるピクチャと、第2参照インデックスが「0」であるピクチャとを用いることができる。例えば、参照インデックスが「0」であるピクチャがピクチャP7であり、第2参照インデックスが「0」であるピクチャがピクチャP10である場合、図5のようにブロックaに対して2方向予測を行うことができる。
【0095】
また、直接モードの処理の第2の方法としては、同一ピクチャ内の周辺ブロックの動きベクトルを利用する方法がある。この場合、例えば図6に示すように、ブロックBLを直接モードで復号化する場合には、3つの周辺ブロックBL1、BL2、BL3を復号化する際に用いた動きベクトルを利用して、ブロックBLを復号化する際に用いる動きベクトルを決定する方法が考えられる。ここでの復号化に用いる動きベクトルの決定方法としては、例えば前方向動きベクトル、後方向動きベクトル毎に3つの周辺ブロックの動きベクトルの中央値や平均値を求める方法、等が考えられる。また、この場合の周辺ブロックの動きベクトルは、動き補償部705により、動きベクトル記憶部706に記憶されているとする。
【0096】
このようにして生成された動き補償画像は加算演算部708に対して出力される。
加算演算部708では、入力された予測残差画像と動き補償画像とを加算し、復号化画像を生成する。生成された復号化画像はスイッチ710を介してフレームメモリ707に対して出力される。
【0097】
以上のようにして、ピクチャB11のマクロブロックが順に復号化される。ピクチャB11のマクロブロックがすべて復号化されると、ピクチャB12の復号化が行われる。また、復号化されたピクチャは図8(b)に示すように、順次出力画像としてフレームメモリ707から出力される。
【0098】
以上のように、本発明の動画像復号化方法は、直接モードで符号化を行う際に利用する動きベクトルについて、どれだけ(例えば何ピクチャ分)の動きベクトルを記憶すべきかに対して制限を設けて符号化が行われた符号列を入力とし、その符号列を復号化する。そしてその復号化の際には、制限を加えていることを示す情報を符号列のヘッダ情報から抽出し、抽出された情報に基づいて復号化を行う。また、直接モードで復号化を行う際に、利用すべき動きベクトルがメモリ上に存在する場合には、その動きベクトルを利用し、メモリ上に存在しない場合には、動きベクトルを0として復号化するか、同一ピクチャ内の周辺ブロックを復号化する際に用いた動きベクトルを利用して復号化を行う。
【0099】
このような動作により、直接モードで符号化を行う際に利用する動きベクトルについて制限を設けて符号化が行われた符号列を正しく復号化することができ、また直接モードのために記憶すべき動きベクトルの記憶量を削減することができ、ハードウェアやソフトウェアにおけるメモリ量の削減を行うことができる。さらに、直接モードにおいて利用すべき動きベクトルがない場合であっても、代替的な方法により直接モードを実施することができる。また本発明は、上記で説明したように、第2参照インデックスが「0」となるピクチャに関わらず実施することができるため、第2参照インデックスが「0」となるピクチャの設定方法を新たに定義する必要がなく、設計上の煩雑さを招くことを防ぐことができる。
【0100】
なお、本実施の形態においては、図6を用いた説明において、復号化済みの3つの周辺ブロックの動きベクトルを用い、直接モードにおいて用いる動きベクトルを決定する方法について説明したが、この周辺ブロック数、予測値の決定方法、は他の値や他の方法であっても良い。例えば、左隣のブロックの動きベクトルを予測値として用いる方法、等がある。
【0101】
また、本実施の形態においては、Pピクチャは、表示順で前方にある近傍3枚のIピクチャまたはPピクチャを参照ピクチャとし、Bピクチャは表示順で前方にある近傍3枚のIピクチャまたはPピクチャを前方参照ピクチャ、表示順で後方にある近傍1枚のIピクチャまたはPピクチャを後方参照ピクチャとして用いる場合について説明したが、これらの参照ピクチャ数は異なる値であっても良い。また、Bピクチャを参照ピクチャとして用いていても良い。
【0102】
また、本実施の形態においては、Bピクチャを参照ピクチャとしては用いない場合について説明したが、これはBピクチャを参照ピクチャとして用いた場合であっても良い。Bピクチャを参照ピクチャとして用いる場合、Bピクチャを復号化した後のピクチャを参照ピクチャとしてフレームメモリ707に保存する。また、Bピクチャが参照ピクチャとして用いられる場合であっても、Bピクチャを復号化した際の動きベクトルは動きベクトル記憶部706には記憶しなくても良い。Bピクチャを復号化する際に用いた動きベクトルを動きベクトル記憶部706に格納するかどうかは、符号化装置側と復号化装置側で予め決定しておくこともできるし、符号化装置側で決定され、符号列中のヘッダ部に記述された情報を抽出することにより判断することもできる。
【0103】
また、本実施の形態においては、直接モード用に格納する動きベクトルを、復号化順で直前に復号化された1つの参照ピクチャを復号化する際に用いた動きベクトルを格納する場合について説明したが、これは異なる参照ピクチャ数の動きベクトルを記憶しても良い。
【0104】
また、動きベクトルのうち、記憶すべきものと記憶しないものとが直接指定されていてもよい。これは例えば、記憶の有無を指定されるピクチャのヘッダ中や、他のピクチャのヘッダ中で記憶の有無を指定されるピクチャのピクチャ番号等を指定することによりどのピクチャの動きベクトルを記憶し、どのピクチャの動きベクトルを記憶しないかがヘッダ中に指示されているとする。したがって、これらの指示情報は、符号列中のヘッダ情報から抽出すればよい。今、ピクチャP10の動きベクトルは記憶し、ピクチャP13の動きベクトルは記憶しないように指定されている場合、ピクチャB11の復号化の時点では、動きベクトル記憶部706には、ピクチャP10の動きベクトルが記憶されていることになる。ここで、ピクチャB11の復号化において、第2参照インデックスが「0」である参照ピクチャがピクチャP10であるとすると、直接モードにおいて、第2参照インデックスが「0」である参照ピクチャを復号化した際に用いた動きベクトルを利用することができる。このような方法を用いることにより、より柔軟な動きベクトルの記憶管理を行うことが可能となる。
【0105】
また、上記のように復号化対象ブロックを有するピクチャが参照する参照ピクチャのうちストリーム順で、つまり符号化装置において符号化順で直前に符号化されたPピクチャを復号化装置で復号化するときに用いた動きベクトルを格納する以外に、復号化対象ブロックを有するピクチャが参照する参照ピクチャのうち表示順で直前のPピクチャまたは表示順で前のPピクチャを復号化するときに用いた動きベクトルを格納するようにしてもよい。復号化されたピクチャは順次出力画像としてフレームメモリ707から出力するが、その出力はフレームメモリ707に記憶されているピクチャが有する時刻をもとに表示時刻順に並び替えられた上での出力である。また、それぞれのピクチャが有する時刻は、例えばピクチャをパケット等の伝送路で伝送するためのシステムが出力する時刻情報から取得してもよいし、あるいは、ビデオストリームとオーディオストリームとを多重化するためのフォーマット中の時刻情報から取得してもよく、あるいは、ビデオストリームのフォーマット中の時刻情報から取得してもよい。また、これらはピクチャ毎に時刻がわかる絶対時刻であっても、ピクチャ間で時間の前後がわかる相対時刻であってもどちらでもよい。
【0106】
このように復号化対象ブロックを有するピクチャが参照する参照ピクチャのうち表示順で直前のPピクチャまたは表示順で前のPピクチャを復号化するときに用いた動きベクトルを格納するようにし、復号化対象ブロックを有するピクチャに時間的に近い参照ピクチャを復号化するときに用いた動きベクトルを格納することにより、動き補償の精度を向上させる可能性をあげることができる。
【0107】
(実施の形態3)
上記実施の形態1においては、動きベクトルの記憶量に関する情報を、符号列中のヘッダに記述する場合について説明したが、符号列中のヘッダに記述する場合に限らず、例えば、符号列中には含まれない管理情報中に記述するようにしてもよい。以下では、図9〜図13を用いて、本発明の実施の形態3の動画像符号化装置および記録装置について説明する。図9は、記録媒体からのデータの再生を管理するための管理情報と、符号化されたAVデータとをDVDなどの記録媒体に記録する記録装置500の概略的構成を示すブロック図である。記録装置500は、音声を伴う映像データを符号化して記録媒体に記録する記録装置であって、ビデオ符号化部501、オーディオ符号化部502およびシステム符号化部503を備える。ビデオ符号化部501は、入力された映像データを符号化する動画像符号化装置である。オーディオ符号化部502は、入力されたオーディオデータを符号化するオーディオ符号化装置である。システム符号化部503は、ビデオストリームとオーディオストリームとを多重化してAVストリームを生成し、記録媒体に記録する。また、システム符号化部503は、AVストリームの記録後、図示しない入力部などからの入力に従って管理情報を生成し、生成された管理情報を記録媒体中のAVストリームが記録されている領域とは異なる領域に記録する。
【0108】
以下では、上記のように構成された記録装置500の動作について説明する。記録装置500に入力された映像データは、ビデオ符号化部501に入力され、入力されたオーディオデータは、オーディオ符号化部502に出力される。ビデオ符号化部501に入力された映像データと、オーディオ符号化部502に入力されたオーディオデータとは、ビデオ符号化部501とオーディオ符号化部502との間で同期を取りながら、リアルタイムで符号化される。ビデオ符号化部501によって生成された符号列は、ビデオストリームとしてシステム符号化部503に出力される。オーディオ符号化部502によって符号化された符号列は、オーディオストリームとしてシステム符号化部503に出力される。システム符号化部503は、ビデオ符号化部501から入力されたビデオストリームと、オーディオ符号化部502から入力されたオーディオストリームとを多重化してAVストリームを生成し、生成されたAVストリームをリアルタイムで記録媒体に記録する。記録媒体へのAVストリームの記録が完了すると、システム符号化部503は、ビデオ符号化部501によって生成された制御コードをビデオ符号化部501から読み出し、読み出された制御コードを含む管理情報を生成し、生成された管理情報を、AVストリームが記録されている領域とは異なる記録媒体中の領域に記録する。図10は、図9に示したシステム符号化部503によって生成された管理情報とAV(Audio Video)ストリームとが記録されたDVDなどの記録媒体400の一例を示す図である。図10に示すように、記録媒体400には、同心円状にデータが記録され、管理情報401と、AVデータ402とがそれぞれ記録媒体400上の異なる領域に記録される。一般に、AVデータ402は記録媒体400の外周側の領域に記録され、管理情報401は記録媒体400の内周側の領域に記録される。
【0109】
図11は、図9に示した記録装置500に備えられる動画像符号化装置900の構成を示すブロック図である。動画像符号化装置900は、図9に示したビデオ符号化部501に相当する。動画像符号化装置900は、動きベクトル記憶部内に格納されるデータに制限が設けられていることを示す制御コード(請求の範囲でいう制御情報)を、前記符号列とは別のデータとして別のタイミングで出力する動画像符号化装置であって、フレームメモリ101、差分演算部102、予測残差符号化部103、予測残差復号化部105、加算演算部106、フレームメモリ107、動きベクトル検出部108、モード選択部109、スイッチ111〜115、動きベクトル記憶部116、符号列生成部904および符号化制御部910を備える。同図において、図1に示した動画像符号化装置100と同じ構成要素についてはすでに説明しているので、同一の参照符号を付し、説明を省略する。ただし、ここでは、動きベクトル検出部108は、実施の形態1と異なり、Bピクチャを符号化する際に、表示順で符号化対象ピクチャの前方にある4枚のIピクチャまたはPピクチャおよび表示順で符号化対象ピクチャの後方にある1枚のIピクチャまたはPピクチャを参照ピクチャとして動きベクトルの探索を行う。符号列生成部904は、予測残差符号化部103からの量子化結果を可変長符号化した後、出力用の符号化ビットストリームのフォーマットに変換し、符号化された予測残差の関連情報を記述したヘッダ情報などの付加情報を付して符号列を生成する。さらに、符号列生成部904は、符号化制御部910によって生成された制御コードを符号列に対応付けて保持し、その制御コードを符号列とは異なるタイミングで出力する。具体的には、外部(例えば、図9に示した記録装置500のシステム符号化部503など)からの出力指示に従って、制御コードを出力する。符号化制御部910には、オーディオ符号化部502と同期を取りながら、映像データとオーディオデータとをリアルタイムで符号化するために、同期を取るための制御信号が外部から入力される。符号化制御部910は、符号化対象ピクチャに対して表示順で直後にある、すなわち、符号化対象ピクチャの直前に符号化された参照ピクチャの動きベクトルだけが動きベクトル記憶部116に格納されるようモード選択部109を制御し、メモリに保存されるデータに何らかの制限が加えられていることを示す制御コードを生成する。符号化制御部910による制御コード生成のタイミングは、いつでもよいが、符号化処理の開始時または終了直後が好ましい。また、符号化制御部910は、制御コードをあらかじめ内部に記憶しておいてもよい。
【0110】
以下では、上記のように構成された動画像符号化装置900の符号化処理におけるメモリへの参照ピクチャおよび動きベクトルの格納動作に付いて、従来のMPEG−4符号化方式と比較しながら説明する。図12(a)は、表示順に入力されたピクチャとそれらの符号化の順を示す図である。図12(b)は、従来のMPEG−4符号化方式において、各ピクチャの符号化に伴ってメモリ内に格納される参照ピクチャと動きベクトルとを示す図である。図13(a)は、表示順に入力されたピクチャとそれらの符号化の順を示す図である。図13(b)は、図11に示した動画像符号化装置900において、各ピクチャの符号化に伴ってメモリ内に格納される参照ピクチャと動きベクトルとを示す図である。ここで、いずれの場合も、Bピクチャは他のピクチャに参照されず、IピクチャとPピクチャとだけが他のピクチャに参照されるものとする。すなわち、IピクチャとPピクチャとは他のピクチャの参照ピクチャとなるが、Bピクチャは他のピクチャの参照ピクチャとならない。なお、図13(a)と図12(a)とは同じ図である。
【0111】
図13(a)と図12(a)とにおいて、入力画像に含まれる各ピクチャを縦線で示し、他のピクチャに参照されないBピクチャを破線で示している。また、各ピクチャに付されている「B」および「P」は、各ピクチャのピクチャタイプを示し、その右に付されている数字は、各ピクチャに対して符号化順に付されたピクチャ番号を示している。すなわち、図12(a)および図13(a)に示すように、入力画像内のピクチャはI0→B2→B3→P1→B5→B6→P4→B8→B9→P7→B11→B12→P10の順に入力され、この順で表示される。これに対し、Bピクチャは表示順で後方にあるピクチャを参照するため、Bピクチャの符号化前にBピクチャよりも表示順で後方にあるIピクチャまたはPピクチャが符号化されていなければならない。従って、入力画像内のピクチャはI0→P1→B2→B3→P4→B5→B6→P7→B8→B9→P10→B11→B12の順に符号化される。表示順でピクチャI0の前方にBピクチャがあったとすれば、ピクチャI0の符号化後、ピクチャP1の符号化前に符号化される。
【0112】
従来のMPEG−4では、符号化対象ピクチャの直前に符号化された2枚の参照ピクチャの画素値と、その参照ピクチャで動き補償に用いられた動きベクトルとをメモリ内に保存する。一般的には、図12(b)に示すように、符号化対象ピクチャの直前に符号化された2枚の参照ピクチャの画素値と、2枚の参照ピクチャのうち、より後で符号化された方の1枚の動きベクトルとをメモリ内に保存している。また、MPEG−4では、Pピクチャは、表示順で前方にある直前の1枚の参照ピクチャを参照し、Bピクチャは、符号化対象ピクチャに対して表示順で直前の前方1枚、直後の後方1枚の2枚の参照ピクチャを参照して符号化される。例えば、符号化対象ピクチャがピクチャB6であるとき、符号化対象ピクチャの直前に符号化された2枚の参照ピクチャとはピクチャP1とピクチャP4であり、より後で符号化された方の参照ピクチャは、ピクチャP4である。従って、符号化対象ピクチャがピクチャB6であるとき、メモリ内には、ピクチャP1およびピクチャP4の画素値と、ピクチャP4で求められた動きベクトルとが格納されている。ピクチャB6は、メモリ内に格納されているピクチャP1とピクチャP4とを参照して符号化される。ピクチャP1は表示順でピクチャB6の直前にある参照ピクチャであり、ピクチャP4は表示順でピクチャB6の直後にある参照ピクチャである。また、ピクチャB6内の符号化対象ブロックが直接モードで符号化されるときには、表示順でピクチャB6の直後にある参照ピクチャ(すなわち、ピクチャP4)において符号化対象ブロックと同じ位置にあるブロックの動きベクトルはメモリ内に格納されており、これを用いて動き補償が行われる。ただし、ピクチャB6は、他のピクチャに参照されないので、画素値および動きベクトルはメモリ内に保存されず、メモリの更新は起こらない。
【0113】
ピクチャP7が符号化対象ピクチャのときには、メモリ内に保存されているピクチャP1またはピクチャP4のいずれかを参照して符号化が行われる。ピクチャP7は、他のピクチャに参照されるので、メモリ内に画素値と動きベクトルとが保存される。この際には、ピクチャP7の符号化/復号化に従って、メモリ内の画素値および動きベクトルが更新される。ピクチャP7の符号化前にメモリ内に格納されていたピクチャP1およびピクチャP4の画素値のうち、古いほうのピクチャP1の画素値がメモリから追い出され、新たにピクチャP7の画素値が格納される。また、メモリ内に格納されていたピクチャP4の動きベクトルがメモリから追い出され、新たにピクチャP7の動きベクトルが格納される。
【0114】
ピクチャB8が符号化されるときには、表示順でピクチャB8の前方にあるピクチャP4と後方にあるピクチャP7との2枚が参照される。ピクチャB8内の対象ブロックが直接モードで符号化されるときには、表示順でピクチャB8の直後にある参照ピクチャ(ピクチャP7)において対象ブロックと同じ位置にあるブロックの動きベクトルを用いて動き補償が行われる。メモリ内には、ピクチャB8に参照される2枚の参照ピクチャ(ピクチャP4およびピクチャP7)の画素値が格納されており、また、直接モードで用いられるピクチャP7の動きベクトルが格納されている。また、ピクチャB8は他のピクチャに参照されないのでメモリ内のデータは更新されない。
【0115】
ピクチャB9が符号化されるときも、ピクチャB8が符号化されるときと同様に、メモリ内に格納されている2枚のピクチャを参照して符号化が行われる。また、ピクチャB9内の対象ブロックが直接モードで符号化されるときも、メモリ内に格納されているピクチャP7の動きベクトルを用いて符号化される。
【0116】
このように、従来のMPEG−4では、メモリ内に2枚の参照ピクチャの画素値と、参照ピクチャ2枚のうちの後方の参照ピクチャ分の動きベクトルとを格納しておくことにより、Bピクチャ内の対象ブロックを直接モードで符号化する際にも、問題なく符号化を行うことができる。しかし、MPEG−4では、参照ピクチャが決められているかまたは数が少ないため、符号化対象ブロックに対して符号化効率がより高くなる参照ブロックを探す探索範囲が限られてしまう。この結果、符号化効率が頭打ちとなり、低ビットレートで高画質の動画像を伝送したいという要求に答えることが難しい。このために、H.26Lでは、探索範囲となる参照ピクチャの数を増やし、各対象ブロックが実際に参照した参照ピクチャを、参照インデックスで特定することに定めている。そして、図28に示したように、Bピクチャでは対象ブロックごとに、参照した参照ピクチャを特定するための第1参照インデックスと第2参照インデックスとを符号列中に記述するよう定めている。一方、各参照ピクチャに対する参照インデックスの割り当ては、すでに説明したように、表示順で前方と後方とに向かって、それぞれ、符号化対象ピクチャに最も近い参照ピクチャに「0」が割り当てられ、符号化対象ピクチャから遠ざかるにつれて昇順で番号が割り当てられるように初期設定されている。この初期設定では、対象ブロックを含むピクチャに近い参照ピクチャほど、より小さな値の参照インデックスで特定することができる。しかし、対象ブロックを含むピクチャから遠い参照ピクチャほど、参照ピクチャを特定するための参照インデックスの値が大きくなってしまう。この結果、対象ブロックを含むピクチャから遠い参照ピクチャが多くの対象ブロックに参照されるような場合、初期設定のままだと、大きな値の参照インデックスが多数のブロックで符号列中に記述されることになり、符号列のデータ量が増加するので好ましくない。従って、参照インデックスは、ピクチャごとに符号化効率がより高くなる参照ピクチャに対してより小さい値を割り当てることができるよう、リマッピングが認められている。
【0117】
本実施の形態では、Pピクチャは、表示順で符号化対象ピクチャの前方にある4枚のIピクチャまたはPピクチャを参照ピクチャとし、Bピクチャは、表示順で符号化対象ピクチャの前方にある4枚のIピクチャまたはPピクチャと、表示順で符号化対象ピクチャの後方にある1枚のIピクチャまたはPピクチャとを参照ピクチャとする。図13(b)に示すように、本実施の形態では、Bピクチャの符号化のために、各ピクチャの直前に符号化された5枚の参照ピクチャの画素値をメモリ内に保存し、符号化対象ピクチャの直前に符号化された1枚の参照ピクチャの動きベクトルだけを保存する。例えば、モード選択部109は、符号化対象ピクチャの各対象ブロックに対し、動きベクトル検出部106によって動きベクトルが検出される都度、検出された動きベクトルを、すでに動きベクトル記憶部108に格納されている動きベクトルとは別の記憶領域に一時的に格納する。当該符号化対象ピクチャがPピクチャである場合、モード選択部109は、別の記憶領域に一時的に格納されていた動きベクトルで、それ以前に格納されていた動きベクトルを上書きする。また、次の符号化対象ピクチャの符号化を開始する際には、直前に符号化されたピクチャの動きベクトルが一時的に格納されていた記憶領域に、新たな符号化対象ピクチャの動きベクトルを上書きし、上書きされた動きベクトルを一時的に格納する。しかし、当該符号化対象ピクチャがPピクチャでない場合、モード選択部109は、動きベクトル記憶部108に一時的に格納された動きベクトルを、例えば、符号化対象ピクチャの全ブロックを符号化した後に、動きベクトル記憶部108内から削除する。一時的に格納された動きベクトルを動きベクトル記憶部108内から削除する方法は、一時的に格納された動きベクトルを動きベクトル記憶部108内から消去する方法であってもよいし、動きベクトルを一時的に格納する記憶領域に、そのまま次の符号化対象ピクチャの動きベクトルを上書きする方法であってもよい。モード選択部109は、このような方法で、動きベクトル記憶部108に格納される動きベクトルの格納量を制御する。なお、Bピクチャの直接モードによる符号化においては、第2参照インデックスが「0」の参照ピクチャの動きベクトルがメモリ内に格納されていない場合、実施の形態1ですでに説明した方法を用いて動き補償を行う。
【0118】
図13(b)において、例えば、符号化対象ピクチャがピクチャB6である場合、ピクチャB6よりも前にピクチャI0、ピクチャP1およびピクチャP4が符号化されている。従って、ピクチャB6の符号化時には、メモリ内には、ピクチャI0、ピクチャP1およびピクチャP4の画素値が格納されている。さらに、ピクチャI0よりも前に符号化されているIピクチャまたはPピクチャがあれば、ピクチャI0の直前に符号化された2枚の画素値がメモリ内に格納されている。ピクチャP4は、メモリ内に格納されている参照ピクチャのうち、2枚を参照して符号化される。さらに、メモリ内には、ピクチャB6の直前に符号化された参照ピクチャであるピクチャP4の動きベクトルが格納されている。モード選択部109は、ピクチャB6内の対象ブロックを直接モードで符号化する場合、ピクチャB6に対して第2参照インデックスが「0」の参照ピクチャがピクチャP4であれば、メモリ内に格納されている動きベクトルを用いて対象ブロックの動き補償を行う。また、第2参照インデックスが「0」の参照ピクチャがピクチャP4でなければ、例えば、対象ブロックの動きベクトルを「0」とし、ピクチャB6に対して第1参照インデックスが「0」の参照ピクチャと、ピクチャB6に対して第2参照インデックスが「0」の参照ピクチャとを参照して、2方向で動き補償を行う。
【0119】
符号化対象ピクチャがP7であるとき、ピクチャP7は、直前に符号化され、メモリ内に格納されている3枚の参照ピクチャ(ピクチャI0、ピクチャP1およびピクチャP4)を参照して符号化される。ピクチャP7は、他のピクチャに参照されるので、ピクチャP7の符号化/復号化に従って、メモリ内に最も古く格納されている参照ピクチャ1枚の画素値がメモリから追い出され、新たにピクチャP7の画素値が格納される。また、メモリ内に格納されていたピクチャP4の動きベクトルがメモリから追い出され、新たにピクチャP7で求められた動きベクトルが格納される。
【0120】
次に、ピクチャB8が符号化されるときには、ピクチャB8は、メモリ内に格納されている5枚の参照ピクチャのうちの2枚を参照して符号化される。また、ピクチャB8内の対象ブロックが直接モードで符号化される場合、モード選択部109は、ピクチャB8に対して第2参照インデックスが「0」のピクチャがピクチャP7であれば、メモリ内に格納されているピクチャP7の動きベクトルを用いて対象ブロックの動き補償を行う。ピクチャB8に対して第2参照インデックスが「0」のピクチャがピクチャP7でなければ、対象ブロックの動きベクトルを「0」として、ピクチャB8に対し第1参照インデックスが「0」および第2参照インデックスが「0」の2枚の参照ピクチャ(ピクチャP4およびピクチャP7)を参照して、2方向の動き補償を行う。ピクチャB8は、他のピクチャに参照されないので、メモリには保存されず、メモリ内でのデータの更新は行われない。ピクチャB9が符号化される場合も、ピクチャB8が符号化された場合と同様にして符号化が行われる。
【0121】
このように、本実施の形態3によれば、Bピクチャの直接モードによる符号化を行うためにメモリ内に保存する動きベクトルを、Bピクチャの直前に符号化された1枚の参照ピクチャの動きベクトルに限定することにより、動画像の符号化に要するメモリ容量を抑制しつつ、符号化効率を向上することができる動画像符号化装置を提供することができる。
【0122】
なお、上記実施の形態3では、動画像符号化装置900は、記録媒体400に記録されるビデオデータおよび制御コードを生成したが、記録媒体に記録される場合に限らず、例えば、デジタルテレビ放送等で配信されるビデオストリームと、ビデオストリームの再生を管理するための管理情報とを生成するとしても良い。図14は、デジタルテレビ放送で送信される放送用パケットの一例を示す図である。同図において、「S」、「A」、「V」で示す各部分は、それぞれ、管理情報、オーディオデータおよびビデオデータのパケットを示している。デジタルテレビ放送では、ビデオストリームおよびオーディオストリームなどの符号化データは、適当なデータ長でパケットに区切られ(例えばMPEG−2のトランスポートストリームでは188バイト)、このパケットを単位として送信される。そして、オーディオデータのパケットおよびビデオデータのパケットの随所に管理情報のパケットが挿入されて送信される。動画像符号化装置900によって生成された符号列は、このようなビデオデータのパケットとして送信される。また、符号化制御部910によって生成された制御コードは、管理情報に記述され管理情報のパケットとして送信される。このように、動画像符号化装置900によって生成された符号列をビデオデータのパケットとして送信し、符号化制御部910によって生成された制御コードを管理情報のパケットとして送信することによって、デジタルテレビ放送を受信して映像データを再生するSTBおよびデジタルテレビなどの再生装置においても、メモリの使用量を節約しつつ、符号化効率の高い高画質の動画像を再生することができる。
【0123】
なお、上記実施の形態3では、制御コードが、メモリに保存されるデータに何らかの制限が加えられていることを示す情報であるとして説明したが、本発明はこれに限定されず、制御コードは、単に、生成された符号列が何らかの制限の下に符号化されていることのみを示す情報であってもよい。また、この制御コードは、例えば、値が「0」のとき「制限なし」を示し、値が「1」のとき「制限あり」を示すフラグなどであってもよい。また、この制御コードは、管理情報内の特定の場所に記述されていれば「制限あり」を示し、記述されていなければ「制限なし」を示すコードであってもよい。もちろん、この制御コードは、あらかじめメモリに記憶されているテーブルを参照することによって、メモリに保存されるデータに何らかの制限が加えられていることや、符号化対象ピクチャの直前に符号化された何枚のPピクチャの動きベクトルをメモリ内に格納するかなどの複数種類の処理内容を特定することができるコードであってもよいことは言うまでもない。
【0124】
(実施の形態4)
以下では、記録媒体に記録されているAVストリームを再生する再生装置およびその再生装置に備えられる動画像復号化装置について説明する。図15は、実施の形態4の再生装置1500の概略的構成を示すブロック図である。再生装置1500は、図10に示した記録媒体400から符号化されたAVストリームと、AVストリームの再生を管理するための管理情報とを読み取り、音声を伴う映像データを再生する再生装置であって、ビデオ復号化部1501、オーディオ復号化部1502、システム復号化部1503、モニタ1511およびスピーカ1512を備える。システム復号化部1503は、記録媒体から管理情報と符号化されたAVストリームとを読み出し、管理情報から制御コードを抽出してビデオ復号化部1501に出力する。また、読み出したビデオストリームとオーディオストリームとを分離して、それぞれビデオ復号化部1501とオーディオ復号化部1502とに出力する。ビデオ復号化部1501は、システム復号化部1503から受け取った制御コードに、メモリに格納されるデータに制限が設けられていることが示されている場合には、システム復号化部1503から受け取ったビデオストリームを復号化する際に、復号化対象ピクチャの直前に復号化された参照ピクチャ1枚分の動きベクトルをメモリに格納して、復号化対象ピクチャを復号化する。ビデオ復号化部1501は、ビデオストリームに含まれる各ピクチャを復号化して復号化された各ピクチャを表示順に出力し、動画像を表す映像信号をモニタ1511に出力する。オーディオ復号化部1502は、システム復号化部1503から受け取ったオーディオストリームを復号化してオーディオ信号を生成し、生成したオーディオ信号をスピーカ1512に出力する。モニタ1511は、ビデオ復号化部1501によって生成された映像信号を表示する。スピーカ1512は、オーディオ復号化部1502によって生成されたオーディオ信号を音声として再生する。
【0125】
図16は、図15に示したビデオ復号化部1501に相当する動画像復号化装置1600の構成を示すブロック図である。動画像復号化装置1600は、外部から入力された制御コードに、メモリに格納されるデータに制限が設けられていることが示されている場合には、復号化対象ピクチャの直前に復号化された参照ピクチャ1枚分の動きベクトルをメモリに格納し、符号列を復号化する動画像復号化装置であって、予測残差復号化部702、動き補償復号部705、動きベクトル記憶部706、フレームメモリ707、加算演算部708、スイッチ709、スイッチ710、符号列解析部1601およびモード復号部1603を備える。同図において、図7に示した動画像復号化装置700と同様の構成要素については既に説明しているので、同一の参照符号を付し、説明を省略する。符号列解析部1601は、外部から入力された制御コードを、モード復号部1603に出力する。符号列解析部1601は、入力された符号列から、モード選択の情報や動きベクトル情報等を抽出し、抽出したモード選択の情報をモード復号部703に、抽出した動きベクトル情報を動き補償復号部705に、さらに、予測残差符号化データを予測残差復号化部702に出力する。モード復号部703は、符号列解析部1601から入力された制御コードに、メモリに格納されるデータに制限が設けられていることが示されている場合または入力されたビデオストリームが何らかの制限の下に符号化されていることが示されている場合には、復号化対象ピクチャの直前に復号化された参照ピクチャ1枚分の動きベクトルを動きベクトル記憶部706に格納するよう、動き補償復号化部705を制御する。
【0126】
動画像復号化装置1600において、動きベクトル記憶部706に格納される動きベクトルの数と、フレームメモリ707に格納される画素値の数とは、図13(b)に示した例と同様である。
以上のように、本実施の形態4の動画像復号化装置1600によれば、記録媒体に記録されているビデオストリームを復号化する場合においても、動画像復号化装置のメモリ資源を節約し、かつ、符号化効率の高い符号列を復号化することができるという効果がある。
【0127】
なお、上記実施の形態4では、動画像復号化装置1600が記録媒体に記録されているビデオストリームを復号化する場合について説明したが、本発明はこれに限定されず、本発明の動画像復号化装置は、デジタルテレビ放送等で配信される放送用パケット中のビデオストリームを復号化するとしてもよい。この場合、動画像復号化装置1600は、例えば、デジタルテレビ放送を受信するDTV(デジタルテレビ)やSTBなどに備えられる。図14に示した放送用パケットは、DTVやSTBなどにおいて受信され、管理情報、オーディオデータおよびビデオデータの各パケットに分離される。分離された管理情報からは、さらに、メモリに格納されるデータに何らかの制限が加えられていることを示す制御コードが抽出され、動画像復号化装置1600に入力される。また、各パケットから抽出されたビデオストリームとオーディオストリームとは、動画像復号化装置1600とオーディオ復号化装置とに入力され、同期をとりながらリアルタイムに復号化される。この動画像復号化装置1600の構成および動作は、図16に示した動画像復号化装置1600と同様であるので、説明を省略する。
【0128】
以上のように、本実施の形態の動画像復号化装置1600によれば、デジタルテレビ放送等で配信される放送用パケット中のビデオストリームを復号化する場合においても、動画像復号化装置のメモリ資源を節約しつつ、符号化効率の高い符号列を復号化することができるという効果がある。
【0129】
また、上記実施の形態4においても、制御コードは、メモリに格納されるデータに制限が設けられていることを示す場合に限定されず、単に、生成された符号列が何らかの制限の下に符号化されていることのみを示す情報であってもよい。また、この制御コードは、例えば、値が「0」のとき「制限なし」を示し、値が「1」のとき「制限あり」を示すフラグなどであってもよい。また、この制御コードは、管理情報内の特定の場所に記述されていれば「制限あり」を示し、記述されていなければ「制限なし」を示すコードであってもよい。もちろん、この制御コードは、あらかじめメモリに記憶されているテーブルを参照することによって、メモリに保存されるデータに何らかの制限が加えられていることや、符号化対象ピクチャの直前に符号化された何枚のPピクチャの動きベクトルをメモリ内に格納するかなどを特定することができるコードであってもよいことは言うまでもない。
【0130】
(実施の形態5)
動画像を構成するピクチャはフレームおよびフィールドの両者を包含する1つの符号化の単位を意味する。上記実施の形態1〜実施の形態4では、ピクチャが全てフレーム構造の場合について説明したが、ピクチャをフィールド単位で扱った場合でも、上記で説明した発明を適用して、同様の効果を得ることができる。以下、上記実施の形態で説明した方法をインタレース画像に適用する場合で、上記実施の形態1〜実施の形態4とは異なる実施の形態について考える。ここで、インタレース画像とは、1つのフレームが時刻(タイムスタンプ)の異なる2つのフィールドから構成される画像である。インタレース画像の符号化や復号化処理においては、1つのフレームをフレームのまま処理したり、2つのフィールドとして処理したり、フレーム内のブロック毎にフレーム構造またはフィールド構造として処理したりすることができる。
【0131】
なお、各ピクチャをフレーム構造で符号化するか、またはフィールド構造で符号化するかは、例えば図1に示す符号化制御部110により適応的に決定することができる。フレーム構造とフィールド構造のいずれで符号化するかは、例えば、ピクチャ内の画素値の分散をフレーム構造とフィールド構造とで求め、分散の小さい方を選択する方法がある。また、各ピクチャをブロック単位でフレーム構造またはフィールド構造のいずれかで符号化する方法も考えられるが、ここではピクチャ単位でフレーム構造またはフィールド構造を切り替える場合について説明する。まず、動画像にフィールド構造のピクチャが含まれる場合のピクチャ番号と参照インデックスの振られ方について説明し、それから本実施の形態5の具体的な説明をする。
【0132】
図27において動画像を構成するピクチャが全てフレームの場合についてのピクチャ番号と参照インデックスについて示したが、図17および図18を用いて、動画像を構成するピクチャにフレームとフィールドとが混在する場合について説明する。
【0133】
図17は、符号化または復号化の対象ピクチャがフィールド構造である場合のピクチャ間の参照関係の一例を示す図である。以下、フレームの奇数番目のラインから構成されるフィールドをトップフィールド、フレームの偶数番目のラインから構成されるフィールドをボトムフィールドと呼ぶ。また、本実施の形態においては、トップフィールドがフィールド構造のピクチャの表示順で前方のフィールド、ボトムフィールドが表示順で後方のフィールドとなる場合について説明するが、これらの順序が入れ替わっても本発明と同様の動作により、同様の効果を得ることができる。符号化または復号化の対象ピクチャがフィールド構造である場合、参照ピクチャは全てフィールド構造として扱う。図17はピクチャB3をフィールド構造で符号化または復号化する場合にフィールドB32が符号化または復号化対象ピクチャである場合を示しており、ピクチャP1、B3、P4はフィールド構造、ピクチャB2はフレーム構造で符号化または復号化される場合、フレーム構造である参照ピクチャB2は2つのフィールドB21、B22として扱われる。そして、ピクチャ番号は符号化または復号化される順番で振られる。第1参照インデックスはデフォルトでは、符号化または復号化の対象ピクチャよりも表示時間順で前にあるピクチャ、符号化または復号化の対象ピクチャから表示時間順で近いピクチャ、符号化または復号化の対象ピクチャと同一パリティをもつピクチャの優先順で割り振られる。図17を用いて具体的に説明すると、まずフィールドB32よりも表示時間順で前方にあり、同一パリティで、かつ、符号化または復号化の順番でフィールドB32に最も近いフィールドB22に参照インデックスとして「0」が振られ、次にフィールドB32よりも表示時間順で前方にあり、違うパリティであるが、符号化または復号化の順番ではフィールドB32に最も近いフィールドB31に参照インデックスとして「1」が振られる。
【0134】
ここでパリティとは第1(トップ)フィールド、第2(ボトム)フィールドのいずれであるかを示す値であり、パリティの情報は動画像の符号列において例えばスライス単位で符号化され、あるいは復号化される。
図18は、符号化または復号化の対象ピクチャがフレームである場合についてピクチャ間の参照関係の一例を示す図である。符号化または復号化の対象ピクチャがフレームである場合、参照ピクチャは全てフレームとして扱う。図18のように、ピクチャB2、P4はフィールド構造、ピクチャP1、B3はフレーム構造で符号化または復号化されている場合、フィールド構造で符号化または復号化されたフィールドB21、B22、P41、P42は2つの参照フレームB2、P4として扱われる。なお、ピクチャ番号と参照インデックスの振られ方は、図27で説明した通りである。
【0135】
図19は、動画像を符号化または復号化する際の、各フレームの時間的並びを示す図である。図19において、フレームP1、P4はPピクチャとして処理され、フレームB2、B3はBピクチャとして処理される。また、1つのフレームは2つのフィールドとして扱うことができる。例えば、フレームP1はフィールドP11、P12として、フレームB2はフィールドB21、B22として、フレームB3はフィールドB31、B32として、フレームP4はフィールドP41、P42として扱うことができる。さらに、各フレームは、フレーム構造またはフィールド構造のいずれかの形式で適応的に符号化、復号化処理がなされるものとする。
【0136】
以下、具体的に本実施の形態5について説明する。実施の形態5が上記実施の形態1〜実施の形態4と異なる点は、直接モードのために記憶すべき動きベクトルの記憶量を削減する方法として、パリティ毎に動きベクトルを格納する点である。
【0137】
図19において、ピクチャを示す記号のうち、上段の記号が振られている単位で符号化と復号化の処理が行われる。例えば、図19においては、すべてのピクチャがフィールド単位で処理される。まず、図19を用いて動画像を構成するピクチャをフィールド構造で扱う場合における直接モードについて説明する。
【0138】
現在の処理対象ピクチャが、フィールドB31であるとする。すなわち、フレームB3はフィールド構造で処理される。またフィールドB31は参照ピクチャとしてフィールドP11、フィールドP12、フィールドP41またはフィールドP42を用いるとする。これらの参照ピクチャは、すでに符号化または復号化処理が完了している。また、フレームP1、フレームP4はフィールド単位で処理がなされているものとする。
【0139】
今、フィールドB31のブロックaを直接モードで処理する場合を考える。この場合、第2参照インデックスが「0」である参照ピクチャ(ここではデフォルトで参照インデックスが割り振られているとする)であるフィールドP41中の、ブロックaと同一位置にあるブロックbの動きベクトルを利用する。以下では、この動きベクトルを「参照動きベクトル」と呼ぶ。
【0140】
ここでは、図19のように、ブロックbが、動きベクトルAを用いて処理されており、この動きベクトルAは、フィールドP11を参照している場合について説明する。この場合、ブロックaは、参照動きベクトルAから所定の方法により計算して得られる動きベクトルを用いて、前方参照フィールドであるフィールドP11(参照動きベクトルAが指しているフィールド)と後方参照フィールドであるフィールドP41(ブロックbが属するフィールド)とから動き補償を行う。この場合にブロックaを処理する際に用いる動きベクトルは、フィールドP11に対しては動きベクトルB、フィールドP41に対しては動きベクトルCになるとする。この際、動きベクトルAの大きさをMV1、動きベクトルBの大きさをMVf1、動きベクトルCの大きさをMVb1とすると、MVf1、MVb1はそれぞれ式3、式4によって得られる。
【0141】
(式3) MVf1= N1×MV1/D1
(式4) MVb1=―M1×MV1/D1
以下ではこれらN1、M1、D1の値をスケーリング係数と呼ぶとする。スケーリング係数は、フィールド単位で設定された値であるとする。例えばこの場合、スケーリング係数は、各フィールド間の時間的距離から設定することができる。例えばフィールドP11からフィールドP41の時間的距離をD1、フィールドP11からフィールドB31の時間的距離をN1、フィールドB31からフィールドP41の時間的距離をM1と設定すれば、MVf1とMVb1はMVに平行な動きベクトルとなる。ここで、スケーリング係数の値の決定方法としては、符号化側と復号化側で同じ規則により生成する(例えば時間情報(タイムスタンプ)から生成する)方法や、符号化時に設定して関連情報等として符号列中または符号列の付属情報として記述し、復号化時にスケーリング係数を符号列中または符号列の付属情報から取得する方法がある。そして直接モードにより符号化されているブロックを復号化する際には、式3、式4を用いてMVf1、MVb1を計算すれば良い。
【0142】
さて、動きベクトル記憶部116の動作について説明する。動きベクトル記憶部116に格納される動きベクトル数は符号化制御部110により指定される。また、ここではトップフィールドの動きベクトルとボトムフィールドの動きベクトルを1フィールド分ずつ格納するとする。
【0143】
この場合、格納する動きベクトルとしては、参照ピクチャのうち符号化または復号化の順で直前に符号化または復号化された参照ピクチャの動きベクトルを格納する方法がある。ここで、すでに動きベクトル記憶部116に記憶されている動きベクトルは、符号化モードが決定される度に、動きベクトルを順に上書きすれば良い。
【0144】
具体的には図20(a)に示すように、動きベクトル記憶部106を先入れ先出し方式(FIFO)のメモリと同様に制御し、新規のものが格納されると記憶した時刻が古い記憶内容が順に破棄され、常に最新のピクチャが保存されるようにする。また、図20(a)ではIピクチャまたはPピクチャが符号化または復号化されるときに用いられた動きベクトルのみを保存する場合について示す。これは直接モードが用いられるBピクチャがIピクチャまたはPピクチャのみを参照する場合を前提としているためである。Bピクチャが他のBピクチャを参照するような場合には、参照ピクチャとして用いられるBピクチャを符号化または復号化されるときに用いられた動きベクトルも保存すれば良い。
【0145】
フィールドB31の符号化または復号化においては、メモリアドレスM1にはフィールドP41を符号化または復号化したときの動きベクトルが記憶されており、メモリアドレスM1に記憶されている動きベクトルAを用いて動きベクトルBおよび動きベクトルCを導出することが可能である。なお、メモリアドレスM2にはフィールドP42を符号化または復号化したときの動きベクトルが記憶されている。
【0146】
動きベクトル記憶部106の別の例としては図20(b)に示すように、トップフィールドの動きベクトルとボトムフィールドの動きベクトルとを2フィールド分ずつ格納することができるものが考えられる。この場合、動きベクトル記憶部106を先入れ先出し方式(FIFO)のメモリと同様に制御し、メモリアドレスM11に記憶されている動きベクトルは新たに動きベクトルが格納されることになればメモリアドレスM12に移動し、メモリアドレスM12に記憶されている動きベクトルは削除される。メモリアドレスM21、M22についても同様である。
【0147】
なお、パリティごとに複数のピクチャに対する動きベクトルの記憶領域がある場合、特に不要な画像については、明示的に開放することも可能である。また、使用するメモリの物理的な配置は、連続する配置である必要はなく、FIFO的な動作によってメモリ領域の使用の有無が決定されるようにすればよい。
【0148】
また、図20における説明では符号化または復号化の対象となるピクチャが全てフィールドの場合について述べたが、符号化または復号化の対象となるピクチャがフレームである場合、その符号化または復号化の対象となるフレームを動き補償するときに用いた動きベクトルは、図20(a)ではメモリアドレスM1、メモリアドレスM2ともに格納するようにしてもよい。図20(b)においても同様に、メモリアドレスM11、メモリアドレスM21ともに格納するようにしてもよい。符号化または復号化対象のピクチャがフィールドであり、参照ピクチャがフレームである場合、参照ピクチャをフィールドとして扱う。そして、直接モードにおいては、第2参照インデックスが「0」である参照フィールドの動きベクトルを利用するが、この場合、第2参照インデックスが「0」である参照フィールドが元々フレーム構造で処理されていると、そのフレームに含まれる2つのフィールドは、フレーム構造の動きベクトルと同じ動きベクトルを有していると考える。よって、フレーム構造で処理された動きベクトルをメモリアドレスM1とM2の両者に格納することにより、参照ピクチャがフィールド構造とフレーム構造のいずれで処理されているかを意識することなく、直接モードにおいて利用する動きベクトルを取得することができる。
【0149】
一方、このように参照ピクチャであるフレームと同一のピクチャがトップフィールドとボトムフィールドの両者にあるものとして扱わない場合、つまり、例えばトップフィールド用のメモリアドレスに参照ピクチャであるフレームが符号化または復号化対象であったときにこのフレームを動き補償するときに用いた動きベクトルを保存する場合、参照インデックスの再付与によって(参照インデックスは変更(リマッピング)可能であるため)、参照する動きベクトルを誤る可能性がある。なお、このように参照ピクチャであるフレームと同一のピクチャがトップフィールドとボトムフィールドの両者にあるものとして扱わない場合でも、図20(a)に示すように動きベクトルを保存するメモリアドレスが1ピクチャ分であれば、参照インデックスの再付与が生じても、参照する動きベクトルが誤るという問題は起こりにくい。
【0150】
このように、フィールドのパリティごとに動きベクトルを格納するように制御することで、フィールド構造でピクチャを処理する場合であっても、直接モードにおいて必要となる動きベクトルを上書きすることがない。
さらに、上記実施の形態1と実施の形態2で説明した本願発明とフィールドのパリティごとに動きベクトルを格納するように制御することとを適応的に組み合わせることが可能である。そして、フィールドのパリティごとに動きベクトルを格納するように制御することで、動きベクトルを格納する量を制限してメモリ量の削減を図ることができ、かつフィールド構造でピクチャを処理する場合であっても、直接モードにおいて必要となる動きベクトルを上書きすることがない。また、同一フレームに属する2つのフィールド(トップフィールドとボトムフィールド)を符号化または復号化するときに用いた動きベクトルを1組として格納するようにするとよい。同一フレームに属するかどうかは、例えばピクチャ番号の連続性とパリティを示す情報とによって判断することができる。あるいは、フレームP1、フレームB2、フレームB3、およびフレームP4の連続性を示す情報から判断することができる。また、本実施の形態のおいては、ピクチャ単位でフレーム構造とフィールド構造のいずれで符号化または復号化するかを切り替える場合について説明したが、これはピクチャ内のブロック単位でフレーム構造とフィールド構造のいずれで符号化または復号化するかを切り替えても良い。この場合、フレーム構造で処理したブロックの動きベクトルは、トップフィールド用の動きベクトルメモリとボトムフィールド用の動きベクトルメモリの両者に保持し、フィールド構造でブロックの動きベクトルは、該当するパリティの動きベクトルメモリに保持すれば良い。
【0151】
(実施の形態6)
さらに、上記各実施の形態で示した動画像符号化方法および動画像復号化方法の構成を実現するためのプログラムを、フレキシブルディスク等の記録媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【0152】
図21は、上記実施の形態1から実施の形態5の動画像符号化方法および動画像復号化方法をコンピュータシステムにより実現するためのプログラムを格納するための記録媒体についての説明図である。
図21(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図21(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクFD上に割り当てられた領域に、上記プログラムとしての動画像符号化方法および動画像復号化方法が記録されている。
【0153】
また、図21(c)は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムとしての動画像符号化方法および動画像復号化方法を、フレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記動画像符号化方法および動画像復号化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
【0154】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、CD-ROM、メモリカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
【0155】
(実施の形態7)
さらにここで、上記実施の形態で示した動画像符号化方法や動画像復号化方法の応用例とそれを用いたシステムを説明する。
図22は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107〜ex110が設置されている。
【0156】
このコンテンツ供給システムex100は、例えば、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex107〜ex110を介して、コンピュータex111、PDA(personal digital assistant)ex112、カメラex113、携帯電話ex114、カメラ付きの携帯電話ex115などの各機器が接続される。
【0157】
しかし、コンテンツ供給システムex100は図22のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex107〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。
【0158】
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、PDC(Personal Digital Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはGSM(Global System for Mobile Communications)方式の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
【0159】
また、ストリーミングサーバex103は、カメラex113から基地局ex109、電話網ex104を通じて接続されており、カメラex113を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラex116で撮影した動画データはコンピュータex111を介してストリーミングサーバex103に送信されてもよい。カメラex116はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex116で行ってもコンピュータex111で行ってもどちらでもよい。また、符号化処理はコンピュータex111やカメラex116が有するLSIex117において処理することになる。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な記録媒体である何らかの蓄積メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込んでもよい。さらに、カメラ付きの携帯電話ex115で動画データを送信してもよい。このときの動画データは携帯電話ex115が有するLSIで符号化処理されたデータである。
【0160】
このコンテンツ供給システムex100では、ユーザがカメラex113、カメラex116等で撮影しているコンテンツ(例えば、音楽ライブを撮影した映像等)を上記実施の形態同様に符号化処理してストリーミングサーバex103に送信する一方で、ストリーミングサーバex103は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114等がある。このようにすることでコンテンツ供給システムex100は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
【0161】
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した動画像符号化装置あるいは動画像復号化装置を用いるようにすればよい。
その一例として携帯電話について説明する。
図23は、上記実施の形態で説明した動画像符号化方法と動画像復号化方法を用いた携帯電話ex115を示す図である。携帯電話ex115は、基地局ex110との間で電波を送受信するためのアンテナex201、CCDカメラ等の映像、静止画を撮ることが可能なカメラ部ex203、カメラ部ex203で撮影した映像、アンテナex201で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex202、操作キーex204群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex208、音声入力をするためのマイク等の音声入力部ex205、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex207、携帯電話ex115に記録メディアex207を装着可能とするためのスロット部ex206を有している。記録メディアex207はSDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(Electrically Erasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものである。
【0162】
さらに、携帯電話ex115について図24を用いて説明する。携帯電話ex115は表示部ex202及び操作キーex204を備えた本体部の各部を統括的に制御するようになされた主制御部ex311に対して、電源回路部ex310、操作入力制御部ex304、画像符号化部ex312、カメラインターフェース部ex303、LCD(Liquid Crystal Display)制御部ex302、画像復号化部ex309、多重分離部ex308、記録再生部ex307、変復調回路部ex306及び音声処理部ex305が同期バスex313を介して互いに接続されている。
【0163】
電源回路部ex310は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex115を動作可能な状態に起動する。
携帯電話ex115は、CPU、ROM及びRAM等でなる主制御部ex311の制御に基づいて、音声通話モード時に音声入力部ex205で集音した音声信号を音声処理部ex305によってディジタル音声データに変換し、これを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。また携帯電話機ex115は、音声通話モード時にアンテナex201で受信した受信データを増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部ex306でスペクトラム逆拡散処理し、音声処理部ex305によってアナログ音声データに変換した後、これを音声出力部ex208を介して出力する。
【0164】
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex204の操作によって入力された電子メールのテキストデータは操作入力制御部ex304を介して主制御部ex311に送出される。主制御部ex311は、テキストデータを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して基地局ex110へ送信する。
【0165】
データ通信モード時に画像データを送信する場合、カメラ部ex203で撮像された画像データをカメラインターフェース部ex303を介して画像符号化部ex312に供給する。また、画像データを送信しない場合には、カメラ部ex203で撮像した画像データをカメラインターフェース部ex303及びLCD制御部ex302を介して表示部ex202に直接表示することも可能である。
【0166】
画像符号化部ex312は、本願発明で説明した画像符号化装置を備えた構成であり、カメラ部ex203から供給された画像データを上記実施の形態で示した画像符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex308に送出する。また、このとき同時に携帯電話機ex115は、カメラ部ex203で撮像中に音声入力部ex205で集音した音声を音声処理部ex305を介してディジタルの音声データとして多重分離部ex308に送出する。
【0167】
多重分離部ex308は、画像符号化部ex312から供給された符号化画像データと音声処理部ex305から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。
【0168】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex201を介して基地局ex110から受信した受信データを変復調回路部ex306でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex308に送出する。
【0169】
また、アンテナex201を介して受信された多重化データを復号化するには、多重分離部ex308は、多重化データを分離することにより画像データのビットストリームと音声データのビットストリームとに分け、同期バスex313を介して当該符号化画像データを画像復号化部ex309に供給すると共に当該音声データを音声処理部ex305に供給する。
【0170】
次に、画像復号化部ex309は、本願発明で説明した画像復号化装置を備えた構成であり、画像データのビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号することにより再生動画像データを生成し、これをLCD制御部ex302を介して表示部ex202に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex305は、音声データをアナログ音声データに変換した後、これを音声出力部ex208に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【0171】
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図25に示すようにディジタル放送用システムにも上記実施の形態の少なくとも動画像符号化装置または動画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex409では映像情報のビットストリームが電波を介して通信または放送衛星ex410に伝送される。これを受けた放送衛星ex410は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex406で受信し、テレビ(受信機)ex401またはセットトップボックス(STB)ex407などの装置によりビットストリームを復号化してこれを再生する。また、記録媒体であるCDやDVD等の蓄積メディアex402に記録したビットストリームを読み取り、復号化する再生装置ex403にも上記実施の形態で示した動画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex404に表示される。また、ケーブルテレビ用のケーブルex405または衛星/地上波放送のアンテナex406に接続されたセットトップボックスex407内に動画像復号化装置を実装し、これをテレビのモニタex408で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでも良い。また、アンテナex411を有する車ex412で衛星ex410からまたは基地局ex107等から信号を受信し、車ex412が有するカーナビゲーションex413等の表示装置に動画を再生することも可能である。
【0172】
更に、画像信号を上記実施の形態で示した画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクex421に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex420がある。更にSDカードex422に記録することもできる。レコーダex420が上記実施の形態で示した動画像復号化装置を備えていれば、DVDディスクex421やSDカードex422に記録した画像信号を再生し、モニタex408で表示することができる。
【0173】
なお、カーナビゲーションex413の構成は例えば図24に示す構成のうち、カメラ部ex203とカメラインターフェース部ex303、画像符号化部ex312を除いた構成が考えられ、同様なことがコンピュータex111やテレビ(受信機)ex401等でも考えられる。
【0174】
また、上記携帯電話ex114等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式が考えられる。
このように、上記実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
【0175】
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【0176】
【発明の効果】
以上の様に、本発明の動画像符号化方法および動画像復号化方法によれば、直接モードで必要となる動きベクトルを格納するためのメモリ量を削減しつつ、より符号化効率の高い符号列を生成することができ、その実用的価値が高い。
【図面の簡単な説明】
【図1】本発明の実施の形態1の動画像符号化装置の構成を示すブロック図である。
【図2】(a)は、図1の動画像符号化装置に入力画像として入力されるピクチャの順序を示す図である。(b)は、(a)に示したピクチャの順序を符号化順に並べ替えた場合のピクチャの順序を示す図である。
【図3】図1に示した符号列生成部によって生成される符号列の一例を示す図である。(a)は、動きベクトルの記憶量に関する情報がシーケンスヘッダに記述された符号列の一例を示す図である。(b)は、動きベクトルの記憶量に関する情報がGOP(Group of Pictures)ヘッダに記述された符号列の一例を示す図である。(c)は、動きベクトルの記憶量に関する情報がピクチャヘッダに記述された符号列の一例を示す図である。(d)は、動きベクトルの記憶量に関する情報がスライスヘッダに記述された符号列の一例を示す図である。
【図4】対象ブロックの動きベクトルを、直接モードを用いて計算する場合の計算方法の一例を示す図である。
【図5】Bピクチャを直接モードで符号化する際に第2参照インデックスが「0」の参照ピクチャの動きベクトルを利用できない場合の2方向予測の一例を示す図である。
【図6】Bピクチャを直接モードで符号化する際に第2参照インデックスが「0」の参照ピクチャの動きベクトルを利用できない場合の2方向予測の他の例を示す図である。
【図7】実施の形態2の動画像復号化装置の構成を示すブロック図である。
【図8】(a)は、符号列中に含まれるピクチャの順序を示すである。(b)は、(a)に示したピクチャの並びを復号化順に並べ替えた場合のピクチャの順序を示す図である。
【図9】記録媒体からのデータの再生を管理するための管理情報と、符号化されたAVデータとをDVDなどの記録媒体に記録する記録装置の概略的構成を示すブロック図である。
【図10】図9に示したシステム符号化部によって生成された管理情報とAV(Audio Video)ストリームとが記録されたDVDなどの記録媒体の一例を示す図である。
【図11】図9に示した記録装置に備えられる動画像符号化装置の構成を示すブロック図である。
【図12】(a)は、表示順に入力されたピクチャとそれらの符号化の順を示す図である。(b)は、従来のMPEG−4符号化方式において、各ピクチャの符号化に伴ってメモリ内に格納される参照ピクチャと動きベクトルとを示す図である。
【図13】(a)は、表示順に入力されたピクチャとそれらの符号化の順を示す図である。(b)は、図11に示した動画像符号化装置において、各ピクチャの符号化に伴ってメモリ内に格納される参照ピクチャと動きベクトルとを示す図である。
【図14】デジタルテレビ放送で送信されるデータストリームの一例を示す図である。
【図15】実施の形態4の再生装置の概略的構成を示すブロック図である。
【図16】図15に示したビデオ復号化部に相当する動画像復号化装置の構成を示すブロック図である。
【図17】符号化または復号化の対象ピクチャがフィールド構造である場合のピクチャ間の参照関係の一例を示す図である。
【図18】符号化または復号化の対象ピクチャがフレームである場合についてピクチャ間の参照関係の一例を示す図である。
【図19】動画像を符号化または復号化する際の、各フレームの時間的並びを示す図である。
【図20】(a)は、動きベクトルを保存するメモリアドレスが1ピクチャ分である場合のメモリの動作を説明するための模式図である。(b)は、トップフィールドの動きベクトルとボトムフィールドの動きベクトルとを2フィールド分ずつ格納する場合のメモリの動作を説明するための模式図である。
【図21】上記各実施の形態の動画像符号化方法、動画像復号化方法を、フレキシブルディスク等の記録媒体に記録されたプログラムを用いて、コンピュータシステムにより実施する場合の説明図である。(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、(c) は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。
【図22】コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示すブロック図である。
【図23】上記実施の形態で説明した動画像符号化方法と動画像復号化方法を用いた携帯電話ex115を示す図である。
【図24】携帯電話の構成を示すブロック図である。
【図25】ディジタル放送用システムの一例を示す図である。
【図26】従来の直接モードにおけるピクチャ間予測方法の一例を示す図である。
【図27】入力された各ピクチャに対するピクチャ番号および参照インデックスの付与の一例を示す説明図である。
【図28】従来の動画像符号化方法、動画像復号化方法における画像符号化信号のフォーマットを示す概念図である。
【図29】(a)は、Bピクチャが前方4枚および後方1枚のPピクチャを参照ピクチャとして符号化される場合における符号化対象ピクチャB11に対する参照インデックスの初期設定の一例を示す図である。(b)は、(a)に示した参照インデックスに対して、リマッピングが行われた場合におけるピクチャB11の参照インデックスの一例を示す図である。
【符号の説明】
100 動画像符号化装置
101、107 フレームメモリ
102 差分演算部
103 予測残差符号化部
104 符号列生成部
105 予測残差復号化部
106 加算演算部
108 動きベクトル検出部
109 モード選択部
110 符号化制御部
111、112、113、114、115 スイッチ
116 動きベクトル記憶部
700 動画像復号化装置
701 符号列解析部
702 予測残差復号化部
703 モード復号部
705 動き補償復号部
706 動きベクトル記憶部
707 フレームメモリ
708 加算演算部
709、710 スイッチ
Cs コンピュータシステム
FD フレキシブルディスク
FDD フレキシブルディスクドライブ
Claims (11)
- 複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら符号化する方法であって、
符号化対象のピクチャの動き補償に用いる動きベクトルの記憶量に関する制限を示す制限情報を生成するステップと、
生成された前記制限情報を符号化するステップと、
符号化対象のピクチャがトップフィールドとボトムフィールドとからなるインタレース画像のいずれかのフィールドである場合に、前記符号化対象のピクチャが前記トップフィールドであるか前記ボトムフィールドであるかを判断するステップと、
前記符号化対象のピクチャが前記トップフィールドであると判断された場合に、符号化対象ピクチャの動き補償に用いた動きベクトルであって前記制限情報で制限されている量の動きベクトルをトップフィールド用の記憶領域に格納し、前記符号化対象のピクチャが前記ボトムフィールドであると判断された場合に、符号化対象ピクチャの動き補償に用いた動きベクトルであって前記制限情報で制限されている量の動きベクトルをボトムフィールド用の記憶領域に格納するステップと
を有することを特徴とする動画像符号化方法。 - 前記トップフィールド用の記憶領域に格納する動きベクトルと、前記ボトムフィールド用の記憶領域に格納する動きベクトルとは、同一フレームに属するトップフィールドとボトムフィールドを符号化するときに用いた動きベクトルである
ことを特徴とする請求項1記載の動画像符号化方法。 - 前記制限情報を符号化するステップでは、前記制限情報を動画像の符号列中のヘッダ情報として符号化する
ことを特徴とする請求項1記載の動画像符号化方法。 - 前記ヘッダ情報は、符号列全体のヘッダに付されるヘッダ情報、ピクチャ単位のヘッダに付されるヘッダ情報、またはスライス単位のヘッダに付されるヘッダ情報のうち、いずれか1つのヘッダ情報である
ことを特徴とする請求項3記載の動画像符号化方法。 - 前記制限情報はピクチャの枚数またはマクロブロック数を示す情報である
ことを特徴とする請求項1記載の動画像符号化方法。 - さらに、前記符号化対象のピクチャが前記トップフィールドであるか前記ボトムフィールドであるかを示すフィールド情報を符号化するステップ
を有することを特徴とする請求項1記載の動画像符号化方法。 - 複数のブロックから構成されるピクチャの並びである動画像を、動きベクトルを用いた動き補償を行いながら復号化する方法であって、
復号化対象のピクチャの動き補償に用いる動きベクトルの記憶に関する制限を示す制限情報と、前記復号化対象のピクチャがトップフィールドとボトムフィールドとからなるインタレース画像のいずれかのフィールドである場合に、前記復号化対象のピクチャが前記トップフィールドであるか前記ボトムフィールドであるかを示すフィールド情報とを有する符号化列から前記制限情報と前記フィールド情報とを抽出するステップと、
前記復号化対象のピクチャが前記トップフィールドであるか前記ボトムフィールドであるかを前記フィールド情報に基づいて判断するステップと、
前記復号化対象のピクチャが前記トップフィールドであると判断された場合に、復号化対象ピクチャの動き補償に用いた動きベクトルであって前記制限情報で制限されている量の動きベクトルをトップフィールド用の記憶領域に格納し、前記復号化対象のピクチャが前記ボトムフィールドであると判断された場合に、復号化対象ピクチャの動き補償に用いた動きベクトルであって前記制限情報で制限されている量の動きベクトルをボトムフィールド用の記憶領域に格納するステップと
を有することを特徴とする動画像復号化方法。 - 前記トップフィールド用の記憶領域に格納する動きベクトルと、前記ボトムフィールド用の記憶領域に格納する動きベクトルとは、同一フレームに属するトップフィールドとボトムフィールドを復号化するときに用いた動きベクトルである
ことを特徴とする請求項7記載の動画像復号化方法。 - 前記制限情報はピクチャの枚数またはマクロブロック数を示す情報である
ことを特徴とする請求項7記載の動画像復号化方法。 - 前記制限情報はピクチャを復号化する順番またはピクチャを表示する順番を基準に前記復号化対象ブロックを有するピクチャから何枚前までのピクチャの動きベクトルを記憶領域に格納するかを示した情報である
ことを特徴とする請求項7記載の動画像復号化方法。 - 前記制限情報は前記符号化列のヘッダ情報中にあり、前記ヘッダ情報は、符号列全体のヘッダに付されるヘッダ情報、ピクチャ単位のヘッダに付されるヘッダ情報、またはスライス単位のヘッダに付されるヘッダ情報のうち、いずれか1つのヘッダ情報である
ことを特徴とする請求項7記載の動画像復号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003169832A JP4230289B2 (ja) | 2002-07-26 | 2003-06-13 | 動画像符号化方法および動画像復号化方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002218001 | 2002-07-26 | ||
JP2002229487 | 2002-08-07 | ||
JP2002289421 | 2002-10-02 | ||
JP2002305143 | 2002-10-18 | ||
JP2003169832A JP4230289B2 (ja) | 2002-07-26 | 2003-06-13 | 動画像符号化方法および動画像復号化方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004194274A JP2004194274A (ja) | 2004-07-08 |
JP2004194274A5 JP2004194274A5 (ja) | 2006-07-06 |
JP4230289B2 true JP4230289B2 (ja) | 2009-02-25 |
Family
ID=32777285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003169832A Expired - Fee Related JP4230289B2 (ja) | 2002-07-26 | 2003-06-13 | 動画像符号化方法および動画像復号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4230289B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI268715B (en) * | 2004-08-16 | 2006-12-11 | Nippon Telegraph & Telephone | Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus |
JP4592656B2 (ja) * | 2006-08-17 | 2010-12-01 | 富士通セミコンダクター株式会社 | 動き予測処理装置、画像符号化装置および画像復号化装置 |
KR100986992B1 (ko) | 2008-08-05 | 2010-10-11 | 연세대학교 산학협력단 | H.264 인코딩 시 고속 인터 모드 결정 방법 |
JP5209572B2 (ja) * | 2009-06-29 | 2013-06-12 | 三菱電機株式会社 | 画像符号化装置及び画像復号装置 |
JP2011259040A (ja) * | 2010-06-04 | 2011-12-22 | Sony Corp | 画像処理装置および方法 |
WO2012096157A1 (ja) * | 2011-01-12 | 2012-07-19 | パナソニック株式会社 | 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 |
BR112014012038A2 (pt) * | 2011-11-18 | 2017-05-30 | Motorola Mobility Llc | armazenamento eficiente de informação de movimento para codificação de vídeo de alta eficiência |
-
2003
- 2003-06-13 JP JP2003169832A patent/JP4230289B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004194274A (ja) | 2004-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4114859B2 (ja) | 動きベクトル符号化方法および動きベクトル復号化方法 | |
JP4763663B2 (ja) | 動画像符号化方法 | |
WO2004012459A1 (ja) | 動画像符号化方法、動画像復号化方法および記録媒体 | |
JP5355807B2 (ja) | 符号化データ配信方法および配信システム | |
JP4348209B2 (ja) | 画像符号化方法および画像復号化方法 | |
JP4672751B2 (ja) | 動きベクトル復号化方法 | |
WO2003098939A1 (en) | Moving image encoding method, moving image decoding method, and data recording medium | |
JP4405272B2 (ja) | 動画像復号化方法、動画像復号化装置及びプログラム | |
JP4230289B2 (ja) | 動画像符号化方法および動画像復号化方法 | |
JP2004242286A (ja) | 動画像符号化方法および動画像復号化方法 | |
JP2004228617A (ja) | 動画像符号化装置および動画像復号化装置 | |
JP2004120138A (ja) | 動画像符号化方法および動画像復号化方法 | |
JP2004274734A (ja) | 画像復号化装置、画像符号化装置及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060523 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060523 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080604 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080617 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080805 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080930 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081020 |
|
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: 20081111 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081203 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121212 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |