以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
以下、本発明の実施形態を、図面を用いて説明する。図1は本実施形態の画像符号化装置を示すブロック図である。図1において、106は画像データを入力する端子である。107は入力された画像データをピクチャ毎に格納するフレームメモリである。113は変倍部であり、入力された画像データを倍率n/m(n、mは正の数)で変倍する。114は変倍された画像データをピクチャ単位で格納するフレームメモリである。108、115は予測部であり、画像データを複数のブロックに切り出し、フレーム内予測であるイントラ予測や、動き補償によるインター予測等を行い、予測画像データを生成する。但し、予測の方法についてはこれらに限定されない。さらに入力された画像データと前記予測画像データから予測誤差を算出し、出力する。インター予測を行う場合は符号化済みの他のピクチャを参照し、動きベクトルを算出し、出力する。また予測に必要な情報、例えば、イントラ予測モード等の情報も予測誤差と併せて出力される。109、116は前記予測誤差をブロック単位で直交変換して変換係数を得て、さらに量子化を行い、量子化係数を得る変換・量子化部である。112、119は再生された画像データを格納しておくフレームメモリである。111、118は画像再生部である。ブロック単位で量子化係数を入力し、逆量子化を行って、変換係数を得て、さらに逆直交変換を行い、予測誤差を再生する。予測部108、115から動きベクトルや予測に関する情報からフレームメモリ112、119を適宜参照して予測画像データを生成し、これと再生された予測誤差から再生画像データを生成し、出力する。110、117は変換・量子化部109、116から出力された量子化係数を符号化して量子化係数符号データを生成する係数符号化部である。
100は本発明に関する動きベクトル符号化装置である。101、104はブロック単位で動きベクトルを保持する動きベクトル保持部である。動きベクトル保持部104は予測部108で生成された動きベクトルを、動きベクトル保持部101は予測部115で生成された動きベクトルを、保持しておく。102、105は予測部108、115で生成したブロックの動きベクトルを符号化して動きベクトル符号データを生成する動きベクトル符号化部である。103は変倍部113の変倍率に応じて動きベクトルを変倍する動きベクトル変倍部である。120は変倍部であり、変倍部113と逆の変倍率(m/n)でフレームメモリ119の画像データを変倍する。
121、122は統合符号化部である。ヘッダ情報や予測に関する情報の符号データを生成するとともに、動きベクトル符号化部102、105で生成された動きベクトル符号データおよび係数符号化部110、117で生成された量子化係数符号データを統合する。
ここで、フレームメモリ114、119、予測部115、変換・量子化部116、係数符号化部117、画像再生部118、動きベクトル保持部101、動きベクトル符号化部102は基本レイヤの画像データを符号化する。また、フレームメモリ107、112、予測部108、変換・量子化部109、係数符号化部110、画像再生部111、動きベクトル保持部104、動きベクトル符号化部105は拡張レイヤの画像データを符号化する。
123はこれらの基本レイヤの符号データと拡張レイヤの符号データを多重化してビットストリームを形成する多重化部である。124は端子であり、多重化部123で生成されたビットストリームを外部に出力する端子である。
上記画像符号化装置における画像の符号化動作を以下に説明する。最初に基本レイヤの符号化動作について説明する。
端子106から入力された1フレーム分の画像データはフレームメモリ107に格納される。変倍部113ではフレームメモリ107に格納された画像データを所定の倍率n/mで変倍する。空間スケーラビリティの場合、n/mは1未満の値となる。変倍された画像データはフレームメモリ114に格納される。また、変倍率は変倍部120、動きベクトル変倍部103に入力される。
予測部115はイントラ予測または動き補償によるインター予測を行う。変倍部120はフレームメモリ119の基本レイヤの画像データをm/n倍に変倍して基本レイヤの参照画像データを生成する。インター予測の場合はフレームメモリ119に格納されている符号化済みのピクチャと基本レイヤの参照画像データを参照し、動きベクトルを算出する。算出された動きベクトルは画像再生部118、動きベクトル保持部101に入力される。動きベクトル保持部101はブロック単位で動きベクトルを保持する。また、予測部115は生成した予測誤差を変換・量子化部116に入力する。変換・量子化部116で生成された量子化係数は係数符号化部117に入力され、エントロピー符号化され量子化係数符号データを生成する。エントロピー符号化の方法は特に限定しないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。また、量子化係数、動きベクトル及び予測に関する情報が画像再生部118に入力され、符号化対象のブロックの再生画像を生成し、フレームメモリ119に格納される。
予測部115で生成された動きベクトルは動きベクトル符号化部102で符号化され、動きベクトル符号データを生成する。図2に動きベクトル符号化部102の詳細なブロック図を示す。図2において、201は端子であり、動きベクトル保持部101から動きベクトルを入力する。202は端子であり、予測部115から符号化対象ブロックの動きベクトルを入力する。203は動きベクトル抽出部であり、端子201を通じて符号化対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルを抽出する。204は動きベクトル統合部であり、同じ成分の動きベクトルをまとめ、参照動きベクトル群を生成する。また、参照動きベクトル群ではまとめられた動きベクトルを所定の順に並べられている。並べ方に関しては特に限定しないが、成分の大きさ順、発生確率の高い順、抽出されたブロックの位置等に基づいて並べられる。並べ方は復号側と同じ方法をとればいずれの方法でも構わない。
205は予測動きベクトル選択部であり、端子202から符号化対象のブロックの動きベクトルを、動きベクトル統合部204から参照動きベクトル群を入力する。入力された参照動きベクトル群から符号化対象のブロックの動きベクトルに最も近い動きベクトルを予測動きベクトルとして選択する。選択された予測動きベクトルを参照動きベクトル群で識別するための識別番号と、選択された予測動きベクトルを出力する。206はインデックス符号化部であり、出力された識別番号を符号化して識別情報符号データを生成する。識別番号の符号化の方法は特に限定しないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。207は予測部であり、入力された予測動きベクトルで符号化対象のブロックの動きベクトルを予測した時の予測誤差を出力する。208は動きベクトルの予測誤差を符号化して動きベクトル予測誤差符号データを生成する動きベクトル誤差符号化部である。動きベクトルの予測誤差を符号化する方法は特に限定しないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。209は符号形成部であり、識別情報符号データと動きベクトル予測誤差符号データを成形して動きベクトル符号データを生成する。210は端子であり、生成された動きベクトル符号データを図1の統合符号化部122に出力する。
上記の構成で基本レイヤの動きベクトルの符号化動作を以下に説明する。
動きベクトル抽出部203は符号化する基本レイヤのブロックの周囲のブロックの動きベクトル、時間方向予測動きベクトルを、端子201を介して入力する。これらの動きベクトルは動きベクトル統合部204に入力され、動きベクトルの成分を比較し、同じものをまとめて参照動きベクトル群を生成する。図6に動きベクトルの抽出・統合の様子を示す。600は第n番目の拡張レイヤのピクチャを表し、601は第n−1番目の拡張レイヤのピクチャを表す。603は符号化対象のブロックであり、604、605、606は符号化対象ブロックに隣接するブロックを表す。607は第n−1番目の拡張レイヤのピクチャでブロック603と同じ位置のブロックを表す。609は符号化対象ブロックの動きベクトルを表し、610、611、612、613は各ブロックの動きベクトルを表す。ここで、動きベクトル611と612が同じ成分だった場合に参照動きベクトル群は動きベクトル613、612、610となる。
生成された参照動きベクトル群は予測動きベクトル選択部205に入力される。端子202から入力された符号化対象のブロックの動きベクトルは予測動きベクトル選択部205で参照動きベクトル群の動きベクトルと比較される。参照動きベクトル群の中から符号化対象のブロックの動きベクトルと最も近い成分の動きベクトルを予測動きベクトルとして選択する。選択された動きベクトルを参照動きベクトル群で識別するために順番を表す識別番号を生成し、インデックス符号化部206で符号化し、識別情報符号データを生成する。また、予測動きベクトルは予測部207に入力され、符号化対象のブロックの動きベクトルを予測して予測誤差を算出し、動きベクトル誤差符号化部208に出力する。動きベクトル誤差符号化部208では予測誤差を符号化し、動きベクトル予測誤差符号データを生成する。識別情報符号データと動きベクトル予測誤差符号データは符号成形部209で成形され動きベクトル符号データとして端子210から出力される。
図1に戻り、生成された動きベクトル符号データと係数符号化部117で生成された量子化係数符号データは統合符号化部122に入力され、ブロック単位の符号データを生成する。生成された符号データは多重化部123に入力される。
続いて、拡張レイヤの画像データの符号化動作について説明する。
予測部108はフレームメモリ107に格納された画像データに対して、ブロック分割を行い、ブロック単位でイントラ予測または動き補償によるインター予測を行う。インター予測の場合はフレームメモリ112に格納されている符号化済みのピクチャを参照し、動きベクトルを算出する。算出された動きベクトルは画像再生部111、動きベクトル保持部104に入力される。動きベクトル保持部104はブロック単位で動きベクトルを保持する。また、予測部108は生成した予測誤差を変換・量子化部109に入力する。変換・量子化部109で生成された量子化係数は係数符号化部110に入力され、係数符号化部117と同様にエントロピー符号化され量子化係数符号データを生成する。また、量子化係数、動きベクトル及び予測に関する情報が画像再生部111に入力され、画像再生部118と同様に符号化対象のブロックの再生画像を生成し、フレームメモリ112に格納される。
予測部108で生成された動きベクトルは動きベクトル符号化部105で符号化され、動きベクトル符号データを生成する。動きベクトル符号化部105での動きベクトルの符号化に先立ち、動きベクトル変倍部103は符号化対象の拡張レイヤのブロックに対応する基本レイヤのブロックの位置の動きベクトルを動きベクトル保持部101から抽出する。抽出された動きベクトルは変倍部113から出力された変倍率(n/m)に応じてm/n倍され、レイヤ間予測動きベクトルとして動きベクトル符号化部105に出力される。図6で動きベクトルの抽出・統合の様子を示す。602は第n番目の拡張レイヤの対応する基本レイヤのピクチャを表す。608は拡張レイヤの符号化対象のブロックに対応する位置のブロックを表す。614は基本レイヤのブロック608の動きベクトルを表す。動きベクトル614は変倍されて、拡張レイヤの解像度と同じ精度のレイヤ間予測動きベクトルとなる。ここで、動きベクトル611と612及びレイヤ間予測動きベクトルが同じ成分だった場合に参照動きベクトル群はレイヤ間予測動きベクトル、動きベクトル613、610となる。
図3に動きベクトル符号化部105の詳細なブロック図を示す。図3において、図2のブロックと同様の機能を実現するブロックについては同じ番号を付し、説明を省略する。301は端子であり、動きベクトル変倍部103からレイヤ間予測動きベクトルを入力する。303は動きベクトル抽出部であり、端子201を通じて拡張レイヤの符号化対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルを抽出し、端子301からレイヤ間予測動きベクトルを入力する。304は動きベクトル統合部であり、同じ成分の動きベクトルをまとめ、参照動きベクトル群を生成する。また、参照動きベクトル群ではまとめられた動きベクトルを所定の順に並べられている。並べ方に関しては特に限定しないが、先頭にレイヤ間予測動きベクトルを配置する。それ以外は成分の大きさ順、発生確率の高い順、抽出されたブロックの位置等に基づいて並べても良い。なお、端子201は動きベクトル保持部104に接続され、端子202は予測部108に接続され、端子210は統合符号化部121に接続されている。
上記の構成で拡張レイヤの動きベクトルの符号化動作を以下に説明する。
動きベクトル抽出部303は符号化する基本レイヤのブロックの周囲のブロックの動きベクトル、時間方向予測動きベクトル、レイヤ間予測動きベクトルを入力する。これらの動きベクトルは動きベクトル統合部304で動きベクトルの成分を比較し、同じものをまとめて参照動きベクトル群を生成する。参照動きベクトル群ではまとめられた動きベクトルを所定の順に並べる。生成された参照動きベクトル群は予測動きベクトル選択部205に入力される。以下、基本レイヤの動きベクトル符号化部102と同様に、符号化対象のブロックの動きベクトルと参照動きベクトル群の動きベクトルと比較をし、予測動きベクトルを選択し、識別番号を生成し、符号化して、識別情報符号データを生成する。符号化対象のブロックの動きベクトルの予測誤差を算出し、符号化し、動きベクトル予測誤差符号データを生成する。識別情報符号データと動きベクトル予測誤差符号データは符号成形部209で成形され動きベクトル符号データとして端子210から出力される。
図1に戻り、生成された動きベクトル符号データは係数符号化部110で生成された量子化係数符号データは統合符号化部121に入力され、ブロック単位の符号データを生成する。生成された符号データは多重化部123に入力される。
多重化部123では所定の書式にしたがってこれらの符号データを多重化し、ビットストリームとして端子124から外部に出力する。
図4は、実施形態1に係る画像符号化装置における基本レイヤの動きベクトル符号化処理を示すフローチャートである。まず、ステップS401にて、基本レイヤの符号化対象のブロックの動きベクトルが入力され、後段での参照のため、保持される。ステップS402にて、基本レイヤの符号化対象のブロックの周囲のブロックまたは基本レイヤの符号化済みのピクチャの同一位置のブロックの動きベクトルを保持された符号化済みの基本レイヤの動きベクトルの中から抽出する。ステップS403にて、ステップS402で抽出された動きベクトルで同じ成分の動きベクトルをまとめ、所定の順番に並べ替え、参照動きベクトル群を生成する。ステップS404にて、ステップS403で生成された参照動きベクトル群と基本レイヤの符号化対象ブロックの動きベクトルを比較し、最も近い動きベクトルを基本レイヤの予測動きベクトルとして選択し、識別情報を生成する。ステップS405にて、符号化対象の動きベクトルを予測動きベクトルから予測誤差を算出する。ステップS406にて、ステップS404で生成された識別情報を符号化する。ステップS407にて、基本レイヤの動きベクトルの予測誤差を符号化する。
また、図5は、実施形態1に係る画像符号化装置における拡張レイヤの動きベクトル符号化処理を示すフローチャートである。図5において、図4のブロックと同様の機能を実現するステップについては同じ番号を付し、説明を省略する。まず、ステップS501にて、拡張レイヤの符号化対象のブロックの動きベクトルが入力され、後段での参照のため、保持される。ステップS502にて、拡張レイヤの符号化対象のブロックの周囲のブロックまたは符号化済みの拡張レイヤのピクチャの同一位置のブロックの動きベクトルを保持された拡張レイヤの動きベクトルの中から抽出する。ステップS503にて、拡張レイヤの符号化対象ブロックの位置に該当する基本レイヤのブロックの動きベクトルを抽出する。ステップS504にて、抽出された基本レイヤの動きベクトルを変倍し、レイヤ間予測動きベクトルを算出する。ステップS505にて、ステップS502で抽出された動きベクトル、及びレイヤ間予測動きベクトルで同じ成分の動きベクトルをまとめ、所定の順番に並べ替え、参照動きベクトル群を生成する。以下、図4の基本レイヤの動きベクトル符号化と同様に、ステップS504からステップS506にて、予測動きベクトルを決定し、識別情報を生成する。さらに、予測動きベクトルから予測誤差を算出する。生成された識別情報と動きベクトルの予測誤差を符号化する。
以上の構成と動作により、拡張レイヤの動きベクトル符号化において、基本レイヤの動きベクトルを用いて効率的な符号化を行うことができる。なお、変倍の倍率が1である場合、変倍部113、120、動きベクトル変倍部103は省略が可能である。
なお、動きベクトル統合部204でレイヤ間予測動きベクトルを必ず参照動きベクトル群の先頭に割り当てることも可能である。これにより、参照される可能性の非常に高いレイヤ間予測動きベクトルに短い符号が割当たりやすくすることでさらに符号化効率の向上が可能である。
なお、動きベクトル抽出部203は時間方向予測動きベクトル符号化済みのピクチャの同じ位置のブロックの動きベクトルを入力したが、これに限定されない。例えばレイヤ間予測動きベクトルが存在する場合は時間方向予測動きベクトルの入力を省略しても構わない。
なお、動きベクトル統合部304はレイヤ間予測動きベクトルを先頭に配置する場合について説明したが、時間方向予測動きベクトルに続く順番でも構わない。さらには動きベクトル統合部204と同様に特に配置を決めなくても構わない。
なお、符号化効率向上のため、動きベクトル統合部で同じ成分を持つ動きベクトルをまとめることを行ったが、これに限定されず、固定の数の動きベクトルを選択しても良い。さらには動きベクトル統合部を省略しても構わない。
また、基本レイヤの符号化装置と拡張レイヤの符号装置が個別にあり、変倍部113、変倍部120が外部にある構成でも構わない。
なお、参照動きベクトル群の動きベクトルとして図6に示す位置のブロックを参照したが、これに限定されない。例えばブロック604の右に隣接するブロックの動きベクトルを加えても構わないし、これらの動きベクトルの中央値からなる動きベクトルを加えても構わない。また、基本レイヤから参照される動きベクトルは同一位置に限定されない。図16のようにブロック608の下のブロック1601の動きベクトル1604、右下のブロック1602の動きベクトル1605、右のブロック1603の動きベクトル1606を参照しても構わない。また、さらに他のブロックの動きベクトルを参照しても構わない。
<実施形態2>
図7は、本発明の実施形態2に係る画像復号装置の構成を示すブロック図である。本実施形態では、実施形態1で生成された符号化データの復号を例にとって説明する。
706は符号化されたビットストリームを入力する端子である。707はビットストリームを基本レイヤの符号データと拡張レイヤの符号データに分離する分離部である。分離部707は図1の多重化部123の逆の動作を行う。708と715は統合復号部であり、基本レイヤと拡張レイヤに関してヘッダ情報や予測に関する情報の符号データの復号を行い、量子化係数符号データと動きベクトル符号データを分離し、後段に出力する。709、716は係数復号部であり、図1の係数符号化部117、110と逆の動作を行って、量子化係数を再生する。710、717は逆量子化・逆変換部である。入力された量子化係数に対して、図1の変換・量子化部116、109と逆の動作を行い、逆量子化によって直交変換係数を再生し、逆直交変換によって、予測誤差を生成する。
700は本発明に関する動きベクトル復号装置である。701、704は動きベクトル符号データを復号し、復号対象ブロックの動きベクトルを再生する動きベクトル復号部である。702、705はブロック単位で動きベクトルを保持する動きベクトル保持部である。706は図1の変倍部113と同じ変倍率に応じて動きベクトルを変倍する動きベクトル変倍部である。変倍率の算出については特に限定しない。基本レイヤの解像度と拡張レイヤの解像度の比を算出しても良いし、所定の値を設定しても構わない。
712、713、719、720はフレームメモリであり、再生されたピクチャの画像データを格納しておく。
711、718は画像再生部であり、動きベクトルを入力して復号済みのピクチャの画像データを参照して動き補償を行い、復号された予測誤差を用いて画像データを再生する。714は図1の変倍部113と同じ変倍率に応じて基本レイヤの画像データを変倍する変倍部である。なお、変倍率の算出については特に限定しない。基本レイヤの解像度と拡張レイヤの解像度の比を算出しても良いし、所定の値を設定しても構わない。721、722は端子であり、端子721は基本レイヤの画像データを出力し、端子722は拡張レイヤの画像データを出力する。
ここで、統合復号部708、係数復号部709、逆量子化・逆変換部710、動きベクトル復号部701、動きベクトル保持部702、画像再生部711、フレームメモリ712、713は基本レイヤの符号データを復号し、基本レイヤの画像データを再生する。また、統合復号部715、係数復号部716、逆量子化・逆変換部717、動きベクトル復号部704、動きベクトル保持部705、画像再生部718、フレームメモリ719、720は拡張レイヤの符号データを復号し、拡張レイヤの画像データを再生する。
上記画像復号装置における画像の復号動作を以下に説明する。本実施形態では実施形態1で生成されたビットストリームを復号する。
図7において、端子706から入力されたビットストリームは分離部707に入力され、基本レイヤの符号データと拡張レイヤの符号データに分離され、前者は統合復号部708に、後者は統合復号部715に入力される。
最初に基本レイヤの符号データの復号動作について説明する。基本レイヤの符号化データは統合復号部708に入力される。統合復号部708はヘッダ情報や予測に関する情報の符号データの復号を行い、量子化係数符号データと動きベクトル符号データを分離し、動きベクトル符号データを動きベクトル復号部701に入力し、量子化係数符号データを係数復号部709に入力する。
係数復号部709は量子化係数符号データを復号し、量子化係数を再生する。再生された量子化係数は逆量子化・逆変換部710に入力され、逆量子化を行って直交変換係数を生成し、更に逆直交変換を施して予測誤差を再生する。再生された予測誤差は画像再生部711に入力される。
動きベクトル復号部701は動きベクトル符号データを復号し、基本レイヤの復号対象のブロックの動きベクトルを復号する。図8に動きベクトル復号部701の詳細なブロック図を示す。図8において、801は端子であり、統合復号部708から復号対象ブロックの動きベクトル符号データを入力する。802は端子であり、動きベクトル保持部702から動きベクトルを入力する。803は動きベクトル抽出部であり、端子802を通じて基本レイヤの復号対象ブロックの周囲の動きベクトルないし前に復号されたピクチャの動きベクトルを抽出する。804は動きベクトル統合部であり、図2の動きベクトル統合部204と同様な動作を行い、同じ成分の動きベクトルをまとめ、参照動きベクトル群を生成する。805は符号分離部であり、動きベクトル符号データから識別情報符号データと動きベクトル予測誤差符号データを分離する。806はインデックス復号部であり、識別情報符号データを復号し、識別情報を再生する。インデックス復号部806は図2のインデックス符号化部206の逆の動作を行って復号する。807は動きベクトル誤差復号部であり、動きベクトル予測誤差符号データを復号し、復号対象のブロックの動きベクトルの予測誤差を再生する。動きベクトル誤差復号部807は図2の動きベクトル誤差符号化部208と逆の動作を行って復号する。808は予測動きベクトル選択部である。再生された識別情報を用いて参照動きベクトル群から予測動きベクトルを選択する。809は動きベクトル再生部であり、選択された予測動きベクトルと再生された動きベクトルの予測誤差から基本レイヤの復号対象ブロックの動きベクトルを再生する。810は端子であり、再生された動きベクトルを図7の画像再生部711及び動きベクトル保持部702に出力する。
上記の構成で基本レイヤの動きベクトルの復号動作を以下に説明する。端子801から入力された基本レイヤの復号対象ブロックの動きベクトル符号データは符号分離部805に入力され識別情報符号データと動きベクトル予測誤差符号データに分離される。前者はインデックス復号部806に入力され、後者は動きベクトル誤差復号部807に入力される。インデックス復号部806は識別情報符号データを復号し、識別情報を再生する。また、動きベクトル誤差復号部807は動きベクトル予測誤差符号データを復号し、基本レイヤの復号対象ブロックの動きベクトルの予測誤差を再生する。また、図6に示したように動きベクトル抽出部803は復号する基本レイヤのブロックの周囲のブロックの動きベクトル、時間方向予測動きベクトルを、端子802を介して動きベクトル保持部702から抽出する。抽出された動きベクトルは動きベクトル統合部804に入力され、図2の動きベクトル統合部204と同等に参照動きベクトル群を生成する。
予測動きベクトル選択部808はインデックス復号部806から識別情報を入力し、参照動きベクトル群から予測動きベクトルを選択する。選択された予測動きベクトルは再生された基本レイヤの復号対象ブロックの動きベクトルの予測誤差とともに動きベクトル再生部809に入力される。動きベクトル再生部809は再生された予測誤差と予測動きベクトルから復号対象ブロックの動きベクトルを再生する。再生された動きベクトルは端子810を介して出力される。
図7に戻り、再生された動きベクトルは画像再生部711と動きベクトル保持部702に入力される。動きベクトル保持部702ではブロック単位で動きベクトルを格納しておく。画像再生部711は再生された動きベクトルを用いてフレームメモリ713から基本レイヤの復号対象ブロックの予測画像データを算出する。さらに逆量子化・逆変換部710で再生された予測誤差を入力し、予測画像データを用いて基本レイヤの画像データを再生する。再生された基本レイヤの画像データはフレームメモリ712及びフレームメモリ713に格納され、参照に用いられる。再生された基本レイヤの画像データは端子721から出力される。
続いて、拡張レイヤの符号データの復号動作について説明する。動きベクトル復号部704での動きベクトルの復号に先立ち、動きベクトル変倍部703は復号対象の拡張レイヤのブロックに対応する基本レイヤのブロックの位置の動きベクトルを動きベクトル保持部702から抽出する。抽出された動きベクトルは変倍率(n/m)に応じてm/n倍され、レイヤ間予測動きベクトルとして動きベクトル復号部704に出力される。
拡張レイヤの符号化データは統合復号部715に入力される。統合復号部715はヘッダ情報や予測に関する情報の符号データの復号を行い、量子化係数符号データと動きベクトル符号データを分離し、動きベクトル符号データを動きベクトル復号部704に入力し、量子化係数符号データを係数復号部716に入力する。
係数復号部716は量子化係数符号データを復号し、量子化係数を再生する。再生された量子化係数は逆量子化・逆変換部717に入力され、逆量子化を行って直交変換係数を生成し、更に逆直交変換を施して予測誤差を再生する。再生された予測誤差は画像再生部718に入力される。
動きベクトル復号部704は動きベクトル符号データを復号し、拡張レイヤの復号対象のブロックの動きベクトルを復号する。図9に動きベクトル復号部704の詳細なブロック図を示す。図9において、図8のブロックと同様の機能を実現するブロックについては同じ番号を付し、説明を省略する。図9において、901は端子であり、動きベクトル変倍部703から動きベクトルを入力する。903は動きベクトル抽出部であり、端子901を通じて図6に示したように、拡張レイヤの復号対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルを入力する。また、端子901から入力されたレイヤ間予測動きベクトルを入力する。904は動きベクトル統合部であり、図8の動きベクトル統合部904と同様な動作を行い、同じ成分の動きベクトルをまとめ、参照動きベクトル群を生成する。参照動きベクトル群ではまとめられた動きベクトルを所定の順に並べられている。並べ方に関しては特に限定しないが、先頭にレイヤ間予測動きベクトルを配置する。それ以外は成分の大きさ順、発生確率の高い順、抽出されたブロックの位置等に基づいて並べても良い。なお、端子801は統合復号部715に接続され、端子802は動きベクトル保持部705に接続され、端子810は動きベクトル保持部705と画像再生部718に接続されている。
上記の構成で拡張レイヤの動きベクトルの復号動作を以下に説明する。動きベクトル抽出部903は復号する拡張レイヤのブロックの周囲のブロックの動きベクトル、時間方向予測動きベクトルを、端子802を介して動きベクトル保持部705から入力する。さらに、レイヤ間予測動きベクトルを、端子901をから入力する。これらの動きベクトルは動きベクトル統合部904に入力され、図8の動きベクトル統合部804と同等に参照動きベクトル群を生成する。以下、基本レイヤの動きベクトル復号部701と同様に、識別情報と参照動きベクトル群から予測動きベクトルを選択する。選択された予測動きベクトルと再生された拡張レイヤの復号対象ブロックの動きベクトルの予測誤差によって拡張レイヤの復号対象ブロックの動きベクトルを再生する。再生された動きベクトルは端子810を介して出力される。
図7に戻り、再生された動きベクトルは画像再生部718と動きベクトル保持部705に入力される。動きベクトル保持部705ではブロック単位で動きベクトルを格納しておく。画像再生部718は再生された動きベクトルを用いてフレームメモリ720またはフレームメモリ713から対応する画像データを読み出して変倍部714で変倍された画像データを入力する。これらの画像データから拡張レイヤの復号対象ブロックの予測画像データを算出する。さらに逆量子化・逆変換部717で再生された予測誤差を入力し、予測画像データを用いて拡張レイヤの画像データを再生する。再生された拡張レイヤの画像データはフレームメモリ719及びフレームメモリ720に格納され、参照に用いられる。再生された拡張レイヤの画像データは端子722から出力される。
図10は、実施形態2に係る画像復号装置における基本レイヤの動きベクトル復号処理を示すフローチャートである。まず、ステップS1001にて、基本レイヤの復号対象のブロックの周囲のブロックの動きベクトルと時間方向予測動きベクトルを保持した動きベクトルから抽出する。ステップS1002にて、ステップS1001で抽出された動きベクトルで同じ成分の動きベクトルをまとめ、所定の順番に並べ替え、参照動きベクトル群を生成する。ステップS1003にて、識別情報符号データを復号し識別情報を再生する。ステップS1004にて、ステップS1003で再生された識別情報によって、ステップS1002で生成された参照動きベクトル群から予測動きベクトルを選択する。ステップS1005にて、動きベクトル予測誤差符号データを復号し、基本レイヤの復号対象のブロックの動きベクトルの予測誤差を再生する。ステップS1006にて、ステップS1004で選択された予測動きベクトルとステップS1005で再生された動きベクトルの予測誤差から基本レイヤの復号対象ブロックの動きベクトルを再生する。ステップS1007にて、再生された動きベクトルを出力し、さらに後段での参照のため、保持する。
また、図11は、実施形態2に係る画像符号化装置における拡張レイヤの動きベクトル復号処理を示すフローチャートである。図11において、図10のブロックと同様の機能を実現するステップについては同じ番号を付し、説明を省略する。まず、ステップS1101にて、拡張レイヤの復号対象のブロックの周囲のブロックまたは拡張レイヤの時間方向予測動きベクトルを保持された復号済みの拡張レイヤの動きベクトルの中から抽出する。ステップS1102にて、拡張レイヤの復号対象ブロックの位置に対応する基本レイヤのブロックの動きベクトルを抽出する。ステップS1103にて、抽出された基本レイヤの動きベクトルを変倍し、レイヤ間予測動きベクトルを算出する。ステップS1104にて、ステップS1102で抽出された動きベクトル、及びレイヤ間予測動きベクトルで同じ成分の動きベクトルをまとめ、所定の順番に並べ替え、参照動きベクトル群を生成する。ステップS1105にて、識別情報符号データを復号し識別情報を再生する。ステップS1106にて、再生された識別情報によって、ステップS1104で生成された参照動きベクトル群から予測動きベクトルを選択する。以下、図10の基本レイヤの動きベクトル復号と同様に、動きベクトル予測誤差符号データを復号し、動きベクトルの予測誤差を再生する。選択された予測動きベクトルと動きベクトルの予測誤差から拡張レイヤの復号対象ブロックの動きベクトルを再生して出力、保持する。
以上の構成と動作により、実施形態1で生成された、基本レイヤの動きベクトルを用いて効率的に符号化されたビットストリームの復号を行い、再生画像を得ることができる。なお、変倍の倍率が1である場合、変倍部714、動きベクトル変倍部703は省略が可能である。
なお、動きベクトル統合部904でレイヤ間予測動きベクトルを必ず参照動きベクトル群の先頭に割り当てることも可能である。これにより、参照される可能性の最も高いレイヤ間予測動きベクトルに短い符号が割当たりやすくすることでさらに符号化効率の向上が可能である。
なお、動きベクトル抽出部903は時間方向予測動きベクトルを入力したが、これに限定されない。例えばレイヤ間予測動きベクトルが存在する場合は時間方向予測動きベクトルの入力を省略しても構わない。
なお、動きベクトル統合部904はレイヤ間予測動きベクトルを先頭に配置する場合について説明したが、時間方向予測動きベクトルに続く順番でも構わない。さらには動きベクトル統合部204と同様に特に配置を決めなくても構わない。
本実施形態において動きベクトル変倍部703から変倍率を入力しているが、これに限定されず、個別に基本レイヤの解像度と拡張レイヤの解像度の比を算出しても良いし、所定の値を設定しても構わない。
なお、符号化効率向上のため、動きベクトル統合部で同じ成分を持つ動きベクトルをまとめることを行ったが、これに限定されず、固定の数の動きベクトルを選択しても良い。さらには動きベクトル統合部を省略しても構わない。
また、基本レイヤの復号装置と拡張レイヤの復号装置が個別にあり、変倍部714が外部にある構成でも構わない。
なお、参照動きベクトル群の動きベクトルとして図6に示す位置のブロックを参照したが、これに限定されない。例えばブロック604の右に隣接するブロックの動きベクトルを加えても構わないし、これらの動きベクトルの中央値からなる動きベクトルを加えても構わない。また、基本レイヤから参照される動きベクトルは同一位置に限定されない。図16のようにブロック608の下のブロック1601の動きベクトル1604、右下のブロック1602の動きベクトル1605、右のブロック1603の動きベクトル1606を参照しても構わない。また、さらに他のブロックの動きベクトルを参照しても構わない。
<実施形態3>
本実施形態では画像符号化装置は実施形態1の図1と同じ構成をとる。ただし、拡張レイヤの動きベクトル符号化部105の構成が異なる。したがって、基本レイヤに関する符号化及び、拡張レイヤの量子化係数の符号化に関しては実施形態1と同様であり、説明を省略する。
図12は本実施形態の動きベクトル符号化部105の詳細な構成を示すブロック図である。図12において、実施形態1の図3と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。1201は端子であり、図3の端子301と同様に動きベクトル変倍部103からレイヤ間予測動きベクトルを入力する。1203は動きベクトル抽出部であり、端子201から入力される拡張レイヤの符号化対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルを抽出する。1205は予測動きベクトル選択部である。端子202から拡張レイヤの符号化対象のブロックの動きベクトルを、動きベクトル統合部204から参照動きベクトル群を、端子1201からレイヤ間予測動きベクトルを入力する。入力された参照動きベクトル群から符号化対象のブロックの動きベクトルに最も近い動きベクトルを予測動きベクトルとして選択する。
上記の構成で拡張レイヤの動きベクトルの符号化動作を以下に説明する。
動きベクトル抽出部1203は図6に示す拡張レイヤの符号化対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルを抽出する。抽出された動きベクトルは動きベクトル統合部304に入力される。動きベクトル統合部304は実施形態1と同様に入力された動きベクトルで同じ成分を持つ動きベクトルをまとめ、参照動きベクトル群を生成する。予測動きベクトル選択部1205は入力された参照動きベクトル群、レイヤ間予測動きベクトルから符号化対象ブロックの動きベクトルに最も類似した動きベクトルを予測動きベクトルをとして選択する。選択された予測動きベクトルを識別する識別情報と予測動きベクトルを出力する。
ここで、実施形態1との相違はレイヤ間予測動きベクトルは参照動きベクトル群とは独立して選択の候補となることである。したがって、参照動きベクトル群の中に同じ成分を持つ動きベクトルが存在する可能性がある。この場合、予測動きベクトル選択部1205は予測動きベクトルとしてレイヤ間予測動きベクトルと参照動きベクトル群の中のベクトルが選べる時、レイヤ間予測動きベクトルを選択することとする。
以下、実施形態1と同様に識別情報はインデックス符号化部206で符号化される。また、予測部207は符号化対象ブロックの動きベクトルと予測動きベクトルから予測誤差を算出し、動きベクトル誤差符号化部208で符号化する。
図13は、実施形態3に係る画像符号化装置における拡張レイヤの動きベクトル符号化処理を示すフローチャートである。図13において、図4のブロックと同様の機能を実現するステップについては同じ番号を付し、説明を省略する。まず、ステップS501からステップS504については実施形態1と同様である。すなわち、拡張レイヤの符号化対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルとレイヤ間予測動きベクトルの算出が行われる。ステップS1301にて、拡張レイヤの符号化対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルについて同じ成分の動きベクトルをまとめ、所定の順番に並べ替え、参照動きベクトル群を生成する。ステップS1302にて、レイヤ間予測動きベクトルを生成された参照動きベクトル群の先頭に追加する。ステップS404にて、実施形態1と同様に参照動きベクトル群から予測動きベクトルを選択する。ステップS1303にて、予測動きベクトルがレイヤ間予測動きベクトルと同じ成分であった場合、ステップS1304に進む。そうでなければステップS405に進む。ステップS1304にて、レイヤ間予測動きベクトルを予測動きベクトルとして選択する。これにより、同じ成分を持つ他の動きベクトルが選択されることを防ぐ。以下、実施形態1の図3の拡張レイヤの動きベクトル符号化処理と同様にステップS405からステップS407にて動きベクトル予測誤差の算出、識別情報の符号化、動きベクトル予測誤差の符号化を行う。
以上の構成と動作により、拡張レイヤの動きベクトル符号化において、基本レイヤの動きベクトルを他の動きベクトルより優先的に用いて効率的な符号化を行うことができる。これはレイヤ間予測動きベクトルが拡張レイヤのブロックの動きベクトルと非常に相関が高いためである。
なお、参照動きベクトル群の動きベクトルとして図6に示す位置のブロックを参照したが、これに限定されない。例えばブロック604の右に隣接するブロックの動きベクトルを加えても構わないし、これらの動きベクトルの中央値からなる動きベクトルを加えても構わない。
なお、符号化効率向上のため、動きベクトル統合部で同じ成分を持つ動きベクトルをまとめることを行ったが、これに限定されず、固定の数の動きベクトルを選択しても良い。さらには動きベクトル統合部を省略しても構わない。
なお、参照動きベクトル群の動きベクトルとして図6に示す位置のブロックを参照したが、これに限定されない。
<実施形態4>
本実施形態では画像符号化装置は実施形態2の図7と同じ構成をとる。ただし、拡張レイヤの動きベクトル復号部704の構成が異なる。したがって、基本レイヤに関する復号及び、拡張レイヤの量子化係数の復号に関しては実施形態2と同様であり、説明を省略する。また、本実施形態では実施形態3で生成された符号化データの復号を例にとって説明する。
図14は本実施形態の動きベクトル復号部704の詳細な構成を示すブロック図である。図14において、実施形態2の図9と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。端子1401は図9の端子901と同様に動きベクトル変倍部703からレイヤ間予測動きベクトルを入力する。1403は動きベクトル抽出部であり、実施形態3の動きベクトル抽出部1203と同様に図6に示す拡張レイヤの符号化対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルを抽出する。1405は予測動きベクトル選択部であり、レイヤ間予測動きベクトルと参照動きベクトル群から予測動きベクトルから識別情報に従って予測動きベクトルを選択する。
上記の構成で拡張レイヤの動きベクトルの符号化動作を以下に説明する。
動きベクトル抽出部1403は図6に示す拡張レイヤの復号対象ブロックの周囲の動きベクトルないし前に符号化されたピクチャの動きベクトルを抽出する。抽出された動きベクトルは動きベクトル統合部804に入力される。動きベクトル統合部804は実施形態2と同様に入力された動きベクトルで同じ成分を持つ動きベクトルをまとめ、参照動きベクトル群を生成する。また、実施形態2と同様にインデックス復号部806は識別情報符号データを復号し、識別情報を再生する。予測動きベクトル選択部1405は識別情報に従って、レイヤ間予測動きベクトルか参照動きベクトル群から予測動きベクトルを選択する。以下、実施形態2と同様に動きベクトルの予測誤差と選択された予測動きベクトルから拡張レイヤの復号対象の動きベクトルを再生する。
図15は、実施形態4に係る画像復号装置における拡張レイヤの動きベクトル復号処理を示すフローチャートである。図15において、図11のブロックと同様の機能を実現するステップについては同じ番号を付し、説明を省略する。まず、ステップS1101からステップS1103については実施形態2と同様である。すなわち、拡張レイヤの復号対象ブロックの周囲の動きベクトルないし前に復号されたピクチャの動きベクトルとレイヤ間予測動きベクトルの算出が行われる。ステップS1501にて、拡張レイヤの復号対象ブロックの周囲の動きベクトルないし前に復号されたピクチャの動きベクトルについて同じ成分の動きベクトルをまとめ、所定の順番に並べ替え、参照動きベクトル群を生成する。ステップS1502にて、レイヤ間予測動きベクトルを生成された参照動きベクトル群の先頭に追加する。以下、実施形態2の図11の拡張レイヤの動きベクトル復号処理と同様にステップS1105からステップS1007の処理が行われる。すなわち、識別情報の復号、予測動きベクトルの選択、動きベクトル予測誤差の再生、拡張レイヤの復号対象ブロックの動きベクトルの再生を行う。
以上の構成と動作により、拡張レイヤの動きベクトル復号において、基本レイヤの動きベクトルを他の動きベクトルより積極的に用いてより少ない符号量で符号化された符号データの復号を行うことができる。これはレイヤ間予測動きベクトルが拡張レイヤのブロックの動きベクトルと非常に相関が高いためである。
なお、符号化効率向上のため、動きベクトル統合部で同じ成分を持つ動きベクトルをまとめることを行ったが、これに限定されず、固定の数の動きベクトルを選択しても良い。さらには動きベクトル統合部を省略しても構わない。
なお、参照動きベクトル群の動きベクトルとして図6に示す位置のブロックを参照したが、これに限定されない。
<実施形態5>
図1、図2、図3、図7、図8、図9、図12、図14に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、これらの図に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
図17は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
CPU1701は、RAM1702やROM1703に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU1701は、図1、図2、図3、図7、図8、図9、図12、図14に示した各処理部として機能することになる。
RAM1702は、外部記憶装置1706からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1709を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM1702は、CPU1701が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM1702は、例えば、フレームメモリとして割当てたり、その他の各種のエリアを適宜提供することができる。
ROM1703には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部1704は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU1701に対して入力することができる。表示部1705は、CPU1701による処理結果を表示する。また表示部1705は例えば液晶ディスプレイで構成される。
外部記憶装置1706は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置1706には、OS(オペレーティングシステム)や、図1、図2、図3、図7、図8、図9、図12、図14に示した各部の機能をCPU1701に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置1706には、処理対象としての各画像データが保存されていても良い。
外部記憶装置1706に保存されているコンピュータプログラムやデータは、CPU1701による制御に従って適宜、RAM1702にロードされ、CPU1701による処理対象となる。I/F1707には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F1707を介して様々な情報を取得したり、送出したりすることができる。1708は上述の各部を繋ぐバスである。
上述の構成からなる作動は前述のフローチャートで説明した作動をCPU1701が中心となってその制御を行う。
<その他の実施形態>
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。