符号化装置、符号化プログラムおよび符号化方法
【課題】画質の劣化を回避することを課題とする。
【解決手段】ピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する。
【解決手段】ピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、符号化装置、符号化プログラムおよび符号化方法に関する。
【背景技術】
【0002】
従来より、DVDやデジタルテレビ等の画像データを符号化する符号化方式の一つとして、MPEG2(Moving Picture Experts Group 2)が普及している。具体的には、画像データは、コーデック(CODEC:encoder、decoder)と呼ばれる符号化装置(エンコーダ)および復号化装置(デコーダ)によって、MPEG2の方式で符号化されたり復号化されたりする。
【0003】
エンコーダやデコーダについて簡単に説明すると、まず、画像を電気信号(画像データ)に変換する画面走査(scan)には、プログレッシブ方式(順次走査)とインターレース方式(飛び越し走査)とがある。図11は、画面走査について説明するための図であるが、図11に示すように、プログレッシブ方式は、1画面である1フレームを、最上部から最下部まで順次走査する方式であり、インターレース方式は、1画面である1フレームを、最上位(top)のラインを含んでいる奇数ラインで構成されるトップフィールド(top field)と、偶数ラインで構成されるボトムフィールド(bottom field)の2つのフィールドに分割して走査する方式で、トップフィールドを最上部から最下部まで走査し、次に、ボトムフィールドを最上部から最下部まで走査する。
【0004】
また、MPEG2のピクチャ構造には、フィールド構造とフレーム構造とがある。図12は、ピクチャ構造を説明するための図であるが、図12に示すように、フィールド構造は、画像データのトップフィールドやボトムフィールドの1フィールドを1ピクチャとして符号化する方式であり、フレーム構造は、1フレームを1ピクチャとして符号化する方式である。なお、図12に示すように、画面走査がインターレース方式の場合には、フィールド構造およびフレーム構造のいずれのピクチャ構造も対応するが、プログレッシブ方式の場合には、フレーム構造のみが対応する。
【0005】
画面走査がインターレース方式の場合において、エンコーダがフィールド構造の画像データを符号化し、デコーダがフィールド構造の画像データを復号化する手法について説明すると、一般的には、図13に示すように、まず、エンコーダが、1フィールド分の画像データの蓄積を開始し、1フィールド分の画像データの蓄積が完了すると、蓄積した1フィールド分の画像データの符号化を開始し、1フィールド分の画像データの符号化が完了すると、符号化した1フィールド分のストリーム出力を開始する。続いて、デコーダが、1フィールド分のストリーム入力を開始し、1フィールド分のストリーム入力が完了すると、入力した1フィールド分のストリームの復号化を開始し、1フィールド分のストリームの復号化が完了すると、復号化した1フィールド分の画像データ出力を開始する。
【0006】
同様に、エンコーダがフレーム構造の画像データを符号化し、デコーダがフレーム構造の画像データを復号化する手法について説明すると、一般的には、図14に示すように、まず、エンコーダが、1フレーム分(top fieldおよびbottom field)の画像データの蓄積を開始し、1フレーム分の画像データの蓄積が完了すると、蓄積した1フレーム分の画像データの符号化(top fieldおよびbottom fieldについて一緒に符号化)を開始し、1フレーム分の画像データの符号化が完了すると、符号化した1フレーム分のストリーム出力を開始する。続いて、デコーダが、1フレーム分のストリーム入力を開始し、1フレーム分のストリーム入力が完了すると、入力した1フレーム分のストリームの復号化を開始し、1フレーム分のストリームの復号化が完了すると、復号化した1フレーム分の画像データ出力をtop fieldから開始する。
【0007】
ここで、MPEG2によるピクチャ符号化について説明すると、MPEG2では、画像データにおいては、隣接する画素の相関が高いことに着目し、周辺の画素から予測する予測符号化の方式を採用している。具体的には、MPEG2は、Iピクチャ(Intra-codedピクチャ)、Pピクチャ(Predictive-codedピクチャ)、およびBピクチャ(Bidirectionally predictive-codedピクチャ)の3種類のピクチャを組み合わせることによって、各種の方式を採用する。なお、Iピクチャは、予測せずに入力された画像データをそのまま符号化するピクチャのことであり、Pピクチャは、直前のIピクチャまたはPピクチャから(動き補償)予測をして符号化するピクチャのことであり、Bピクチャは、直前のIピクチャまたはPピクチャ、および、直後のIピクチャまたはPピクチャから(動き補償)予測をして符号化するピクチャのことである。
【0008】
例えば、図15および16は、予測符号化の方式について説明するための図であるが、図15に示すように、IピクチャとPピクチャとで構成された「I、P、P」のGOP(Group of Picture)の順で画像データを符号化する方式や、図16に示すように、Pピクチャのみの画像データを符号化する方式などがある。図15に示す方式では、Iピクチャを挿入することでリフレッシュ(画質の劣化を防ぐこと)を行い、図16に示す方式では、イントラスライス(予測せずに入力された画像データをそのまま符号化するイントラマクロブロックで構成されたスライス)をピクチャに挿入して一巡させることでリフレッシュを行う。
【0009】
ここで、Iピクチャは、予測せずに入力された画像データをそのまま符号化するピクチャであることから、Pピクチャに比較して、その符号発生量(ビットレート)が増大すると考えられる。このため、符号化装置が図15に示す方式で予測符号化を行うと、ピクチャ単位での符号発生量の変動が大きくなってしまう。一方、イントラスライスも、予測せずに入力された画像データをそのまま符号化するスライスであることから、他のスライスに比較して、その符号発生量が増大すると考えられる。このため、符号化装置が図16に示す方式で予測符号化を行うと、スライス単位での符号発生量の変動が生じてしまうが、図15に示す方式に比較すると、ピクチャ単位での符号発生量は比較的安定する。したがって、符号化や復号化における遅延を抑える観点などからは、図16に示す方式(以下、イントラスライス方式)が選択されるなどする。
【0010】
また、例えば、特許文献1には、同文献の図4や図5に示すように、奇数番目のイントラセグメント(イントラマクロブロックで構成)で構成された第一イントラセグメントと、偶数番目のイントラセグメントで構成された第二イントラセグメントとをピクチャに挿入して移動させることでリフレッシュを行う形式が開示されている。
【0011】
【特許文献1】特許第2801560号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
ところで、上記してきた従来の技術では、以下に説明するように、画質の劣化を生じさせるおそれがあるという課題がある。すなわち、上記したように、符号化や復号化における遅延を抑える観点などからイントラスライス方式が選択されるとすると、符号化装置は、図16に示すように、イントラスライスをピクチャに挿入して一巡させることでリフレッシュを行うので、図17に示すように、ピクチャの上方が、既にリフレッシュされた「キレイ」なマクロブロックになり、ピクチャの下方が、未だリフレッシュされていない「キタナイ」マクロブロックになると考えられる。
【0013】
ここで、従来の符号化装置では、Iピクチャを挿入することでリフレッシュを行う方式を前提として、Pピクチャのマクロブロックについては、広範囲のマクロブロックを参照して予測符号化する方が画質が向上すると仮定している。しかしながら、イントラスライス方式において、Pピクチャのマクロブロックが、直前のPピクチャ全体のマクロブロックを参照して予測符号化すると、図18に示すように、未だリフレッシュされていない「キタナイ」マクロブロックから予測してしまうおそれがあり、このような予測が継続されることで、結果として、画質の劣化を生じさせるおそれがある。なお、符号化装置と復号化装置との間の演算精度の違いから、画質の劣化を生じさせるおそれもある。また、かかる課題は、イントラスライス方式に限らず、Pピクチャのみの画像データを符号化する方式であれば、同様に課題となる。
【0014】
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、画質の劣化を回避することが可能な符号化装置、符号化プログラムおよび符号化方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手段を備えたことを特徴とする。
【0016】
また、請求項2に係る発明は、上記の発明において、前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化することを特徴とする。
【0017】
また、請求項3に係る発明は、上記の発明において、前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、当該予測に替えて前記イントラマクロブロックとして符号化することを特徴とする。
【0018】
また、請求項4に係る発明は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する方法をコンピュータに実行させる符号化プログラムであって、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手順をコンピュータに実行させることを特徴とする。
【0019】
また、請求項5に係る発明は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化方法であって、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化工程を含んだことを特徴とする。
【発明の効果】
【0020】
請求項1、4または5の発明によれば、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化するので、画質の劣化を回避することが可能になる。
【0021】
請求項2の発明によれば、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化するので、画質の劣化を回避することが可能になる。
【0022】
請求項3の発明によれば、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、予測に替えてイントラマクロブロックとして符号化するので、イントラマクロブロックとして既に選択されたマクロブロックから予測するように予測に制限を設ける手法に比較して、簡易な実装で、画質の劣化を回避することが可能になる。
【発明を実施するための最良の形態】
【0023】
以下に添付図面を参照して、本発明に係る符号化装置の実施例を説明する。なお、以下では、実施例で用いる主要な用語、実施例1に係る符号化装置の概要および特徴、実施例1に係る符号化装置の構成、実施例1に係る符号化装置による処理の手順、実施例1の効果を順に説明し、続いて、他の実施例について説明する。
【実施例1】
【0024】
[用語の説明]
まず最初に、以下の実施例で用いる主要な用語を説明する。「画像データ」とは、画面走査によって電気信号に変換された画像のことである。すなわち、MPEG2(Moving Picture Experts Group 2)の方式で符号化されたり復号化されたりする「画像データ」とは、画面走査によって電気信号に変換された「1ピクチャ」の「画像データ」が、時系列に従って複数連続している一連の「画像データ」のことであるといえる。なお、「1ピクチャ」の「画像データ」は、複数の「マクロブロック」で構成されている。
【0025】
ここで、MPEG2による「1ピクチャ」の符号化について説明すると、MPEG2では、画像データにおいては、隣接する画素の相関が高いことに着目し、周辺の画素から予測する予測符号化の方式を採用している。具体的には、MPEG2では、Iピクチャ、Pピクチャ、およびBピクチャの3種類のピクチャを組み合わせることによって、各種の方式が採用される。なお、本発明に係る符号化装置は、Pピクチャのみの画像データを符号化する方式を採用することを前提とするものである。
【0026】
ところで、予測符号化の方式を採用するにあたっては、リフレッシュすることで、画質の劣化を防がなければならない。このため、符号化装置においては、Pピクチャを構成する複数のマクロブロックの内、所定の個数のマクロブロックについては、予測せずに入力された画像データをそのまま符号化する「イントラマクロブロック」として選択して符号化し、Pピクチャを構成するその他のマクロブロックについては、時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する「インターマクロブロック」(特許請求の範囲に記載の「非イントラマクロブロック」に対応する)または「イントラマクロブロック」として符号化することで、「1ピクチャ」を符号化したストリームを生成する。こうすることで、「イントラマクロブロック」として選択されて符号化されたマクロブロックについては、リフレッシュされることになる。
【0027】
しかしながら、ピクチャを符号化するごとに、かかるイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化したとしても、画質の劣化が生じるおそれがある。
【0028】
すなわち、上記したような符号化の手法によると、一定の周期の中でイントラマクロブロックとして既に選択されたピクチャの一部分が、既にリフレッシュされた「キレイ」なマクロブロックになり、その他の部分が、未だリフレッシュされていない「キタナイ」マクロブロックになると考えられる。このような状況において、Pピクチャのマクロブロックが、直前のPピクチャ全体のマクロブロックを参照して予測符号化すると、未だリフレッシュされていない「キタナイ」マクロブロックから予測してしまうおそれがあり、このような予測が継続されることで、結果として、画質の劣化を生じさせるおそれがある。本発明に係る符号化装置は、この点について解決するものである。
【0029】
[実施例1に係る符号化装置の概要および特徴]
続いて、図1を用いて、実施例1に係る符号化装置の概要および特徴を説明する。図1は、実施例1に係る符号化装置の概要および特徴を説明するための図である。
【0030】
実施例1に係る符号化装置は、上記したように、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロック(インターマクロブロック)またはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化することを概要とし、画質の劣化を回避することを主たる特徴とする。
【0031】
この主たる特徴について簡単に説明すると、実施例1に係る符号化装置は、図1に示すように、複数のマクロブロック(図1において、白い四角、黒い四角、および斜線の四角全てが、マクロブロックである)で構成されているピクチャが、時系列に従って複数連続している一連の画像データを符号化するものである。また、符号化装置は、図1に示すように、所定のピクチャ(図1において、5行×6列)を構成しているマクロブロックの内(図1において、30マクロブロック)、所定の個数のマクロブロック(図1において、6個のマクロブロックで構成されているイントラスライス)については、イントラマクロブロック(図1において、黒い四角)として選択して符号化し、その他のマクロブロック(図1において、4行×6列の24マクロブロック)については、インターマクロブロックまたはイントラマクロブロックとして符号化することで、所定のピクチャを符号化したストリームを生成するものである。
【0032】
また、符号化装置は、図1に示すように、ピクチャを符号化するごとにイントラスライスの選択を、1行目、2行目、・・・、6行目と変更することで、6ピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するものである。ここで、一定の周期の中でイントラマクロブロックとして既に選択されたマクロブロックを、図1においては、白い四角で表現することとし、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックを、図1においては、斜線の四角で表現することとする。また、イントラマクロブロックとして既に選択されたマクロブロックは、リフレッシュされているという意味から、「キレイ」と表現し、イントラマクロブロックとして未だ選択されていないマクロブロックは、リフレッシュされていないという意味から、「キタナイ」と表現している。
【0033】
このような構成のもと、実施例1に係る符号化装置は、マクロブロックをインターマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には(図1の(1)を参照)、当該予測に替えて、イントラマクロブロックとして符号化する(図1の(2)を参照)。
【0034】
すなわち、実施例1に係る符号化装置は、図1の3番目のピクチャを構成する2行3列のマクロブロックを、インターマクロブロックとして図1の2番目のピクチャを構成するマクロブロックから予測する時に、2番目のピクチャの内、イントラマクロブロックとして未だ選択されていない3〜5行目のマクロブロック(例えば、4行3列のマクロブロック)から予測しようとする場合には、符号化装置は、当該予測に替えて、2行3列のマクロブロックをイントラマクロブロックに置き換えて、イントラマクロブロックとして符号化する。
【0035】
なお、図1の4番目のピクチャを構成する2行3列のマクロブロックが黒い四角で表現されているのは、3番目のピクチャを符号化する際に、当該マクロブロックがイントラマクロブロックに置き換えられて符号化されたことを示すものである。
【0036】
こうして、実施例1に係る符号化装置は、画質の劣化を回避することが可能になる。
【0037】
なお、実施例1(図1)においては、説明の便宜上から、1ピクチャが5行×6列の30個のマクロブロックで構成されており、6個のイントラマクロブロックで構成されたイントラスライスが、6ピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択する事例について説明したが、これは一例にすぎず、ピクチャを構成するマクロブロックの個数や、イントラマクロブロックとして選択するマクロブロックの選び方や個数など、実装に適した形態であれば、いずれでもよい。
【0038】
[実施例1に係る符号化装置の構成]
次に、図2および3を用いて、実施例1に係る符号化装置の構成を説明する。図2は、実施例1に係る符号化装置の構成を示すブロック図であり、図3は、実施例1における符号化について説明するための図である。
【0039】
実施例1に係る符号化装置10は、特に本発明に密接に関連するものとして、図2に示すように、マクロブロックカウンタ部11と、イントラスライスカウンタ部12と、第一選択部13aと、比較部13bと、第二選択部13cと、インターマクロブロック生成部14と、イントラマクロブロック生成部15とを備える。ここで、図2は、本発明に係る符号化装置10の一部を示した図であり、必ずしも図2に示した各部のみで動作しなければならないものではない(すなわち、符号化装置10は、上記した各部以外の部を備えて動作するものであってもよい)。なお、第一選択部13aと比較部13bと第二選択部13cとインターマクロブロック生成部14とイントラマクロブロック生成部15とが、特許請求の範囲に記載の「符号化手段」に対応する機能を備える。
【0040】
マクロブロックカウンタ部11は、複数のマクロブロックで構成されているピクチャが符号化装置10によって符号化される時に、処理の対象となるマクロブロックの座標(行、列)を決定するカウンタである。具体的には、マクロブロックカウンタ部11は、ピクチャを構成するマクロブロックの座標(行、列)をカウントし、カウントしたマクロブロックの座標を、イントラスライスカウンタ部12、第一選択部13aおよび比較部13bに送信する。
【0041】
イントラスライスカウンタ部12は、所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては、イントラスライスとして選択する。具体的には、イントラスライスカウンタ部12は、所定の個数のマクロブロックをイントラスライスとして選択し、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックを、イントラマクロブロックとして選択することを示す情報を、第一選択部13aに送信する。
【0042】
また、イントラスライスカウンタ部12は、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を、比較部13bに送信する。
【0043】
なお、実施例1においては、イントラスライスカウンタ部12が、イントラスライスとしてイントラマクロブロックを選択する方式について説明したが、本発明はこれに限られるものではなく、例えば、イントラカラムとしてピクチャの列ごとにイントラマクロブロックを選択する方式や、ランダムにイントラマクロブロックを選択する方式など、Pピクチャのみの画像データを符号化する方式であれば、イントラマクロブロックをいかなる方式で選択するかについては、いずれでもよい。
【0044】
ところで、実施例1におけるイントラスライスカウンタ部12は、ピクチャを符号化するごとにイントラスライス(イントラマクロブロック)の選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラスライス(イントラマクロブロック)として一度ずつ選択する。すなわち、イントラスライス(イントラマクロブロック)として選択されて符号化されたマクロブロックについては、リフレッシュされることになるので、一定の周期の中で、ピクチャを構成するマクロブロックが、全てイントラスライス(イントラマクロブロック)として一度ずつ選択されれば、ピクチャ全体について、リフレッシュされることになる。
【0045】
ここで、図2に戻ると、インターマクロブロック生成部14は、インターマクロブロックデータ(インターマクロブロックを符号化したデータ)を生成する。イントラマクロブロック生成部15は、イントラマクロブロックデータ(イントラマクロブロックを符号化したデータ)を生成する。
【0046】
第一選択部13aは、ストリームの生成にあたり、マクロブロックデータを選択する。具体的には、第一選択部13aは、イントラスライスカウンタ部12によってイントラスライスとして選択されたマクロブロックについてはイントラマクロブロックとして符号化し、その他のマクロブロックについてはインターマクロブロック(またはイントラマクロブロック)として符号化する。
【0047】
具体的に例を挙げて説明すると、第一選択部13aは、例えば、通常、インターマクロブロックデータの符号発生量とイントラマクロブロックデータの符号発生量とを比較し、符号発生量が小さい方を選択し、選択した方を第二選択部13cに送信するなどしている。具体的には、第一選択部13aは、インターマクロブロック生成部14によって生成されたインターマクロブロックデータの符号発生量と、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータの符号発生量とを比較し、符号発生量が小さい方を選択し、選択したインターマクロブロックデータ(あるいはイントラマクロブロックデータ)を、第二選択部13cに送信するなどしている。
【0048】
また、第一選択部13aは、イントラスライスカウンタ部12からイントラマクロブロック(イントラスライス)として選択することを示す情報を受け付けると、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックについては、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータを選択し、選択したイントラマクロブロックデータを、第二選択部13cに送信するなどしている。
【0049】
比較部13bは、マクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しているか否かを判定することを目的として、ベクトル情報や「イントラスライスの境界を示す情報」などを比較する。具体的には、比較部13bは、インターマクロブロック生成部14から、予測にあたり参照したマクロブロックとのベクトル情報を受け付け、また、イントラスライスカウンタ部12から、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を受け付け、これらの情報などを比較することで、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しているか否かを判定する。
【0050】
また、比較部13bは、マクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていると判定した場合には、当該予測に替えて、イントラマクロブロックとして符号化することを指示する。具体的には、比較部13bは、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていると判定した場合には、「イントラマクロブロックとして符号化することを指示する情報」を、第二選択部13cに送信する。
【0051】
第二選択部13cは、ストリームの生成にあたり、マクロブロックデータを最終的に選択する。具体的には、第二選択部13cは、第一選択部13aからマクロブロックデータを受け付け、また、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付ける。また、第二選択部13cは、比較部13bから「イントラマクロブロックとして符号化することを指示する情報」を受け付けたか否かを判定し、受け付けた場合には、イントラマクロブロック生成部15から受け付けたイントラマクロブロックデータを最終的に選択し、受け付けていない場合には、第一選択部13aから受け付けたマクロブロックデータを最終的に選択する。
【0052】
第一選択部13a、比較部13bおよび第二選択部13cによって、このように選択されることで、実施例1に係る符号化装置10は、例えば、図3に示すように、2番目のピクチャを構成する2行3列のマクロブロックをインターマクロブロックとして、図3の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとして未だ選択されていない3〜6行目のマクロブロック(例えば、4行3列のマクロブロック)から予測しようとする場合には、当該予測に替えて、2行3列のマクロブロックをイントラマクロブロックに置き換えて、イントラマクロブロックとして符号化する。
【0053】
なお、図3の3番目のピクチャを構成する2行3列のマクロブロックが黒い四角で表現されているのは、2番目のピクチャを符号化する際に、当該マクロブロックがイントラマクロブロックに置き換えられて符号化されたことを示すものである。
【0054】
[実施例1に係る符号化装置による処理の手順]
次に、図4〜7を用いて、実施例1に係る符号化装置による処理の手順を説明する。図4は、イントラスライスカウンタ部による処理の手順を示すフローチャートであり、図5は、第一選択部による処理の手順を示すフローチャートであり、図6は、比較部による処理の手順を示すフローチャートであり、図7は、第二選択部による処理の手順を示すフローチャートである。
【0055】
図4に示すように、イントラスライスカウンタ部12は、まず、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する(ステップS401)。イントラスライスカウンタ部12は、マクロブロックの座標を受け付けていない場合には(ステップS401否定)、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する処理に戻る。
【0056】
一方、イントラスライスカウンタ部12は、処理の対象となるマクロブロックの座標を受け付けると(ステップS401肯定)、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を比較部13bに送信する(ステップS402)。
【0057】
次に、イントラスライスカウンタ部12は、ステップS401において受け付けた座標のマクロブロックを、イントラマクロブロックとして選択するか否か(イントラスライスか否か)を判定する(ステップS403)。イントラマクロブロックとして選択しない場合には(ステップS403否定)、イントラスライスカウンタ部12は、処理を終了する。
【0058】
一方、イントラスライスカウンタ部12は、イントラマクロブロックとして選択する場合には(ステップS403肯定)、「イントラマクロブロックとして選択することを示す情報」を第一選択部13aに送信する(ステップS404)。
【0059】
次に、図5に示すように、第一選択部13aは、まず、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する(ステップS501)。第一選択部13aは、マクロブロックの座標を受け付けていない場合には(ステップS501否定)、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する処理に戻る。
【0060】
一方、第一選択部13aは、処理の対象となるマクロブロックの座標を受け付けると(ステップS501肯定)、次に、イントラスライスカウンタ部12から、「イントラマクロブロックとして選択することを示す情報」を受け付けたか否かを判定する(ステップS502)。
【0061】
受け付けていない場合には(ステップS502否定)、第一選択部13aは、インターマクロブロック生成部14によって生成されたインターマクロブロックデータの符号発生量と、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータの符号発生量とを比較し(ステップS503)、符号発生量が小さい方を選択し(ステップS504)、その後、選択したマクロブロックデータを第二選択部13cに送信する(ステップS505)。
【0062】
一方、第一選択部13aは、イントラスライスカウンタ部12から、「イントラマクロブロックとして選択することを示す情報」を受け付けた場合には(ステップS502肯定)、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータを選択し(ステップS506)、その後、選択したイントラマクロブロックデータを第二選択部13cに送信する(ステップS505)。
【0063】
次に、図6に示すように、比較部13bは、まず、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する(ステップS601)。比較部13bは、マクロブロックの座標を受け付けていない場合には(ステップS601否定)、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する処理に戻る。
【0064】
一方、比較部13bは、処理の対象となるマクロブロックの座標を受け付けると(ステップS601肯定)、次に、インターマクロブロック生成部14から、予測にあたり参照したマクロブロックとのベクトル情報を受け付けたか否かを判定する(ステップS602)。比較部13bは、予測にあたり参照したマクロブロックとのベクトル情報を受け付けていない場合には(ステップS602否定)、予測にあたり参照したマクロブロックとのベクトル情報を受け付けたか否かを判定する処理に戻る。
【0065】
一方、比較部13bは、予測にあたり参照したマクロブロックとのベクトル情報を受け付けると(ステップS602肯定)、次に、イントラスライスカウンタ部12から、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を受け付けたか否かを判定する(ステップS603)。比較部13bは、「イントラスライスの境界を示す情報」を受け付けていない場合には(ステップS603否定)、「イントラスライスの境界を示す情報」を受け付けたか否かを判定する処理に戻る。
【0066】
一方、比較部13bは、「イントラスライスの境界を示す情報」を受け付けると(ステップS603肯定)、次に、マクロブロックの座標で特定されるマクロブロックが、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしているか否かを判定する(ステップS604)。
【0067】
イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていると判定された場合には(ステップS604肯定)、比較部13bは、「イントラマクロブロックとして符号化することを指示する情報」を第二選択部13cに送信する(ステップS605)。一方、イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていないと判定された場合には(ステップS604否定)、比較部13bは、そのまま処理を終了する。
【0068】
次に、図7に示すように、第二選択部13cは、まず、第一選択部13aからマクロブロックデータを受け付けたか否かを判定する(ステップS701)。第二選択部13cは、第一選択部13aからマクロブロックデータを受け付けていない場合には(ステップS701否定)、第一選択部13aからマクロブロックデータを受け付けたか否かを判定する処理に戻る。
【0069】
一方、第二選択部13cは、第一選択部13aからマクロブロックデータを受け付けると(ステップS701肯定)、次に、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けたか否かを判定する(ステップS702)。第二選択部13cは、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けていない場合には(ステップS702否定)、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けたか否かを判定する処理に戻る。
【0070】
一方、第二選択部13cは、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けると(ステップS702肯定)、次に、比較部13bから、「イントラマクロブロックとして符号化することを指示する情報」を受け付けたか否かを判定する(ステップS703)。
【0071】
第二選択部13cは、「イントラマクロブロックとして符号化することを指示する情報」を受け付けた場合には(ステップS703肯定)、イントラマクロブロック生成部15から受け付けたイントラマクロブロックデータを最終的に選択し(ステップS704)、その後、選択したイントラマクロブロックデータをストリームとして転送するなどする。
【0072】
一方、第二選択部13cは、「イントラマクロブロックとして符号化することを指示する情報」を受け付けていない場合には(ステップS703否定)、第一選択部13aから受け付けたマクロブロックデータを最終的に選択し(ステップS705)、その後、選択したマクロブロックデータをストリームとして転送するなどする。
【0073】
[実施例1の効果]
上記してきたように、実施例1によれば、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化するので、画質の劣化を回避することが可能になる。
【0074】
また、実施例1によれば、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、予測に替えてイントラマクロブロックとして符号化するので、イントラマクロブロックとして既に選択されたマクロブロックから予測するように予測に制限を設ける手法に比較して、簡易な実装で、画質の劣化を回避することが可能になる。
【実施例2】
【0075】
さて、これまで本発明の実施例について説明してきたが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。以下では、実施例2に係る符号化装置として、その他の実施例について説明する。
【0076】
[予測に制限]
実施例1においては、符号化装置が、マクロブロックをインターマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、当該予測に替えて、イントラマクロブロックとして符号化する手法について説明してきたが、本発明はこれに限られるものではない。符号化装置が、マクロブロックをインターマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化する手法にも、本発明を同様に適用することができる。
【0077】
例えば、図8に示すように、実施例2に係る符号化装置は、2番目のピクチャを構成する2行3列のマクロブロックを、インターマクロブロックとして、図8の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとしてすでに選択された1〜2行目のマクロブロックから予測するように、予測に制限を加える。
【0078】
[イントラカラム]
また、実施例1においては、符号化装置が、ピクチャを構成するマクロブロックの内、イントラマクロブロックとしてイントラスライスを選択して符号化する手法について説明してきたが、本発明はこれに限られるものではない。符号化装置が、イントラマクロブロックとしてイントラカラムを選択して符号化する手法にも、本発明を同様に適用することができる。
【0079】
例えば、図9に示すように、実施例2に係る符号化装置は、2番目のピクチャを構成する3行2列のマクロブロックを、インターマクロブロックとして、図9の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとして未だ選択されていない3〜6列目のマクロブロック(例えば、4行4列のマクロブロック)から予測しようとする場合には、当該予測に替えて、3行2列のマクロブロックをイントラマクロブロックに置き換えて、イントラマクロブロックとして符号化する。
【0080】
なお、図9の3番目のピクチャを構成する3行2列のマクロブロックが黒い四角で表現されているのは、2番目のピクチャを符号化する際に、当該マクロブロックがイントラマクロブロックに置き換えられて符号化されたことを示すものである。
【0081】
また、例えば、図10に示すように、実施例2に係る符号化装置は、2番目のピクチャを構成する3行2列のマクロブロックを、インターマクロブロックとして、図10の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとしてすでに選択された1〜2列目のマクロブロックから予測するように、予測に制限を加える。
【0082】
[符号化方法]
また、実施例1においては、第一選択部13aが、通常、インターマクロブロックデータの符号発生量とイントラマクロブロックデータの符号発生量とを比較し、符号発生量が小さい方を選択する事例について説明したが、本発明はこれに限られるものではない。例えば、第一選択部13aが、イントラマクロブロックデータとして選択することをイントラスライスカウンタ部12から指示されていない場合には、常に、インターマクロブロックデータを選択する事例など、第一選択部13aが、イントラマクロブロックデータを強制的に選択すべき時以外にどのようにマクロブロックデータを選択するかなどについては、実装に適した形態であれば、いずれでもよい。
【0083】
[システム構成等]
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順(例えば、図4〜7など)、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0084】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示(例えば、図2など)の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0085】
なお、本実施例で説明した符号化方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【0086】
以上のように、本発明に係る符号化装置、符号化プログラムおよび符号化方法は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化することに有用であり、特に、画質の劣化を回避することに適する。
【図面の簡単な説明】
【0087】
【図1】実施例1に係る符号化装置の概要および特徴を説明するための図である。
【図2】実施例1に係る符号化装置の構成を示すブロック図である。
【図3】実施例1における符号化を説明するための図である。
【図4】イントラスライスカウンタ部による処理の手順を示すフローチャートである。
【図5】第一選択部による処理の手順を示すフローチャートである。
【図6】比較部による処理の手順を示すフローチャートである。
【図7】第二選択部による処理の手順を示すフローチャートである。
【図8】実施例2における符号化を説明するための図である。
【図9】実施例2における符号化を説明するための図である。
【図10】実施例2における符号化を説明するための図である。
【図11】画面走査について説明するための図である。
【図12】ピクチャ構造について説明するための図である。
【図13】従来技術について説明するための図である。
【図14】従来技術について説明するための図である。
【図15】予測符号化の方式について説明するための図である。
【図16】予測符号化の方式について説明するための図である。
【図17】リフレッシュについて説明するための図である。
【図18】従来技術について説明するための図である。
【符号の説明】
【0088】
10 符号化装置
11 マクロブロックカウンタ部
12 イントラスライスカウンタ部
13a 第一選択部
13b 比較部
13c 第二選択部
14 インターマクロブロック生成部
15 イントラマクロブロック生成部
【技術分野】
【0001】
この発明は、符号化装置、符号化プログラムおよび符号化方法に関する。
【背景技術】
【0002】
従来より、DVDやデジタルテレビ等の画像データを符号化する符号化方式の一つとして、MPEG2(Moving Picture Experts Group 2)が普及している。具体的には、画像データは、コーデック(CODEC:encoder、decoder)と呼ばれる符号化装置(エンコーダ)および復号化装置(デコーダ)によって、MPEG2の方式で符号化されたり復号化されたりする。
【0003】
エンコーダやデコーダについて簡単に説明すると、まず、画像を電気信号(画像データ)に変換する画面走査(scan)には、プログレッシブ方式(順次走査)とインターレース方式(飛び越し走査)とがある。図11は、画面走査について説明するための図であるが、図11に示すように、プログレッシブ方式は、1画面である1フレームを、最上部から最下部まで順次走査する方式であり、インターレース方式は、1画面である1フレームを、最上位(top)のラインを含んでいる奇数ラインで構成されるトップフィールド(top field)と、偶数ラインで構成されるボトムフィールド(bottom field)の2つのフィールドに分割して走査する方式で、トップフィールドを最上部から最下部まで走査し、次に、ボトムフィールドを最上部から最下部まで走査する。
【0004】
また、MPEG2のピクチャ構造には、フィールド構造とフレーム構造とがある。図12は、ピクチャ構造を説明するための図であるが、図12に示すように、フィールド構造は、画像データのトップフィールドやボトムフィールドの1フィールドを1ピクチャとして符号化する方式であり、フレーム構造は、1フレームを1ピクチャとして符号化する方式である。なお、図12に示すように、画面走査がインターレース方式の場合には、フィールド構造およびフレーム構造のいずれのピクチャ構造も対応するが、プログレッシブ方式の場合には、フレーム構造のみが対応する。
【0005】
画面走査がインターレース方式の場合において、エンコーダがフィールド構造の画像データを符号化し、デコーダがフィールド構造の画像データを復号化する手法について説明すると、一般的には、図13に示すように、まず、エンコーダが、1フィールド分の画像データの蓄積を開始し、1フィールド分の画像データの蓄積が完了すると、蓄積した1フィールド分の画像データの符号化を開始し、1フィールド分の画像データの符号化が完了すると、符号化した1フィールド分のストリーム出力を開始する。続いて、デコーダが、1フィールド分のストリーム入力を開始し、1フィールド分のストリーム入力が完了すると、入力した1フィールド分のストリームの復号化を開始し、1フィールド分のストリームの復号化が完了すると、復号化した1フィールド分の画像データ出力を開始する。
【0006】
同様に、エンコーダがフレーム構造の画像データを符号化し、デコーダがフレーム構造の画像データを復号化する手法について説明すると、一般的には、図14に示すように、まず、エンコーダが、1フレーム分(top fieldおよびbottom field)の画像データの蓄積を開始し、1フレーム分の画像データの蓄積が完了すると、蓄積した1フレーム分の画像データの符号化(top fieldおよびbottom fieldについて一緒に符号化)を開始し、1フレーム分の画像データの符号化が完了すると、符号化した1フレーム分のストリーム出力を開始する。続いて、デコーダが、1フレーム分のストリーム入力を開始し、1フレーム分のストリーム入力が完了すると、入力した1フレーム分のストリームの復号化を開始し、1フレーム分のストリームの復号化が完了すると、復号化した1フレーム分の画像データ出力をtop fieldから開始する。
【0007】
ここで、MPEG2によるピクチャ符号化について説明すると、MPEG2では、画像データにおいては、隣接する画素の相関が高いことに着目し、周辺の画素から予測する予測符号化の方式を採用している。具体的には、MPEG2は、Iピクチャ(Intra-codedピクチャ)、Pピクチャ(Predictive-codedピクチャ)、およびBピクチャ(Bidirectionally predictive-codedピクチャ)の3種類のピクチャを組み合わせることによって、各種の方式を採用する。なお、Iピクチャは、予測せずに入力された画像データをそのまま符号化するピクチャのことであり、Pピクチャは、直前のIピクチャまたはPピクチャから(動き補償)予測をして符号化するピクチャのことであり、Bピクチャは、直前のIピクチャまたはPピクチャ、および、直後のIピクチャまたはPピクチャから(動き補償)予測をして符号化するピクチャのことである。
【0008】
例えば、図15および16は、予測符号化の方式について説明するための図であるが、図15に示すように、IピクチャとPピクチャとで構成された「I、P、P」のGOP(Group of Picture)の順で画像データを符号化する方式や、図16に示すように、Pピクチャのみの画像データを符号化する方式などがある。図15に示す方式では、Iピクチャを挿入することでリフレッシュ(画質の劣化を防ぐこと)を行い、図16に示す方式では、イントラスライス(予測せずに入力された画像データをそのまま符号化するイントラマクロブロックで構成されたスライス)をピクチャに挿入して一巡させることでリフレッシュを行う。
【0009】
ここで、Iピクチャは、予測せずに入力された画像データをそのまま符号化するピクチャであることから、Pピクチャに比較して、その符号発生量(ビットレート)が増大すると考えられる。このため、符号化装置が図15に示す方式で予測符号化を行うと、ピクチャ単位での符号発生量の変動が大きくなってしまう。一方、イントラスライスも、予測せずに入力された画像データをそのまま符号化するスライスであることから、他のスライスに比較して、その符号発生量が増大すると考えられる。このため、符号化装置が図16に示す方式で予測符号化を行うと、スライス単位での符号発生量の変動が生じてしまうが、図15に示す方式に比較すると、ピクチャ単位での符号発生量は比較的安定する。したがって、符号化や復号化における遅延を抑える観点などからは、図16に示す方式(以下、イントラスライス方式)が選択されるなどする。
【0010】
また、例えば、特許文献1には、同文献の図4や図5に示すように、奇数番目のイントラセグメント(イントラマクロブロックで構成)で構成された第一イントラセグメントと、偶数番目のイントラセグメントで構成された第二イントラセグメントとをピクチャに挿入して移動させることでリフレッシュを行う形式が開示されている。
【0011】
【特許文献1】特許第2801560号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
ところで、上記してきた従来の技術では、以下に説明するように、画質の劣化を生じさせるおそれがあるという課題がある。すなわち、上記したように、符号化や復号化における遅延を抑える観点などからイントラスライス方式が選択されるとすると、符号化装置は、図16に示すように、イントラスライスをピクチャに挿入して一巡させることでリフレッシュを行うので、図17に示すように、ピクチャの上方が、既にリフレッシュされた「キレイ」なマクロブロックになり、ピクチャの下方が、未だリフレッシュされていない「キタナイ」マクロブロックになると考えられる。
【0013】
ここで、従来の符号化装置では、Iピクチャを挿入することでリフレッシュを行う方式を前提として、Pピクチャのマクロブロックについては、広範囲のマクロブロックを参照して予測符号化する方が画質が向上すると仮定している。しかしながら、イントラスライス方式において、Pピクチャのマクロブロックが、直前のPピクチャ全体のマクロブロックを参照して予測符号化すると、図18に示すように、未だリフレッシュされていない「キタナイ」マクロブロックから予測してしまうおそれがあり、このような予測が継続されることで、結果として、画質の劣化を生じさせるおそれがある。なお、符号化装置と復号化装置との間の演算精度の違いから、画質の劣化を生じさせるおそれもある。また、かかる課題は、イントラスライス方式に限らず、Pピクチャのみの画像データを符号化する方式であれば、同様に課題となる。
【0014】
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、画質の劣化を回避することが可能な符号化装置、符号化プログラムおよび符号化方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手段を備えたことを特徴とする。
【0016】
また、請求項2に係る発明は、上記の発明において、前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化することを特徴とする。
【0017】
また、請求項3に係る発明は、上記の発明において、前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、当該予測に替えて前記イントラマクロブロックとして符号化することを特徴とする。
【0018】
また、請求項4に係る発明は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する方法をコンピュータに実行させる符号化プログラムであって、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手順をコンピュータに実行させることを特徴とする。
【0019】
また、請求項5に係る発明は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化方法であって、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化工程を含んだことを特徴とする。
【発明の効果】
【0020】
請求項1、4または5の発明によれば、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化するので、画質の劣化を回避することが可能になる。
【0021】
請求項2の発明によれば、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化するので、画質の劣化を回避することが可能になる。
【0022】
請求項3の発明によれば、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、予測に替えてイントラマクロブロックとして符号化するので、イントラマクロブロックとして既に選択されたマクロブロックから予測するように予測に制限を設ける手法に比較して、簡易な実装で、画質の劣化を回避することが可能になる。
【発明を実施するための最良の形態】
【0023】
以下に添付図面を参照して、本発明に係る符号化装置の実施例を説明する。なお、以下では、実施例で用いる主要な用語、実施例1に係る符号化装置の概要および特徴、実施例1に係る符号化装置の構成、実施例1に係る符号化装置による処理の手順、実施例1の効果を順に説明し、続いて、他の実施例について説明する。
【実施例1】
【0024】
[用語の説明]
まず最初に、以下の実施例で用いる主要な用語を説明する。「画像データ」とは、画面走査によって電気信号に変換された画像のことである。すなわち、MPEG2(Moving Picture Experts Group 2)の方式で符号化されたり復号化されたりする「画像データ」とは、画面走査によって電気信号に変換された「1ピクチャ」の「画像データ」が、時系列に従って複数連続している一連の「画像データ」のことであるといえる。なお、「1ピクチャ」の「画像データ」は、複数の「マクロブロック」で構成されている。
【0025】
ここで、MPEG2による「1ピクチャ」の符号化について説明すると、MPEG2では、画像データにおいては、隣接する画素の相関が高いことに着目し、周辺の画素から予測する予測符号化の方式を採用している。具体的には、MPEG2では、Iピクチャ、Pピクチャ、およびBピクチャの3種類のピクチャを組み合わせることによって、各種の方式が採用される。なお、本発明に係る符号化装置は、Pピクチャのみの画像データを符号化する方式を採用することを前提とするものである。
【0026】
ところで、予測符号化の方式を採用するにあたっては、リフレッシュすることで、画質の劣化を防がなければならない。このため、符号化装置においては、Pピクチャを構成する複数のマクロブロックの内、所定の個数のマクロブロックについては、予測せずに入力された画像データをそのまま符号化する「イントラマクロブロック」として選択して符号化し、Pピクチャを構成するその他のマクロブロックについては、時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する「インターマクロブロック」(特許請求の範囲に記載の「非イントラマクロブロック」に対応する)または「イントラマクロブロック」として符号化することで、「1ピクチャ」を符号化したストリームを生成する。こうすることで、「イントラマクロブロック」として選択されて符号化されたマクロブロックについては、リフレッシュされることになる。
【0027】
しかしながら、ピクチャを符号化するごとに、かかるイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化したとしても、画質の劣化が生じるおそれがある。
【0028】
すなわち、上記したような符号化の手法によると、一定の周期の中でイントラマクロブロックとして既に選択されたピクチャの一部分が、既にリフレッシュされた「キレイ」なマクロブロックになり、その他の部分が、未だリフレッシュされていない「キタナイ」マクロブロックになると考えられる。このような状況において、Pピクチャのマクロブロックが、直前のPピクチャ全体のマクロブロックを参照して予測符号化すると、未だリフレッシュされていない「キタナイ」マクロブロックから予測してしまうおそれがあり、このような予測が継続されることで、結果として、画質の劣化を生じさせるおそれがある。本発明に係る符号化装置は、この点について解決するものである。
【0029】
[実施例1に係る符号化装置の概要および特徴]
続いて、図1を用いて、実施例1に係る符号化装置の概要および特徴を説明する。図1は、実施例1に係る符号化装置の概要および特徴を説明するための図である。
【0030】
実施例1に係る符号化装置は、上記したように、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロック(インターマクロブロック)またはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化することを概要とし、画質の劣化を回避することを主たる特徴とする。
【0031】
この主たる特徴について簡単に説明すると、実施例1に係る符号化装置は、図1に示すように、複数のマクロブロック(図1において、白い四角、黒い四角、および斜線の四角全てが、マクロブロックである)で構成されているピクチャが、時系列に従って複数連続している一連の画像データを符号化するものである。また、符号化装置は、図1に示すように、所定のピクチャ(図1において、5行×6列)を構成しているマクロブロックの内(図1において、30マクロブロック)、所定の個数のマクロブロック(図1において、6個のマクロブロックで構成されているイントラスライス)については、イントラマクロブロック(図1において、黒い四角)として選択して符号化し、その他のマクロブロック(図1において、4行×6列の24マクロブロック)については、インターマクロブロックまたはイントラマクロブロックとして符号化することで、所定のピクチャを符号化したストリームを生成するものである。
【0032】
また、符号化装置は、図1に示すように、ピクチャを符号化するごとにイントラスライスの選択を、1行目、2行目、・・・、6行目と変更することで、6ピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するものである。ここで、一定の周期の中でイントラマクロブロックとして既に選択されたマクロブロックを、図1においては、白い四角で表現することとし、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックを、図1においては、斜線の四角で表現することとする。また、イントラマクロブロックとして既に選択されたマクロブロックは、リフレッシュされているという意味から、「キレイ」と表現し、イントラマクロブロックとして未だ選択されていないマクロブロックは、リフレッシュされていないという意味から、「キタナイ」と表現している。
【0033】
このような構成のもと、実施例1に係る符号化装置は、マクロブロックをインターマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には(図1の(1)を参照)、当該予測に替えて、イントラマクロブロックとして符号化する(図1の(2)を参照)。
【0034】
すなわち、実施例1に係る符号化装置は、図1の3番目のピクチャを構成する2行3列のマクロブロックを、インターマクロブロックとして図1の2番目のピクチャを構成するマクロブロックから予測する時に、2番目のピクチャの内、イントラマクロブロックとして未だ選択されていない3〜5行目のマクロブロック(例えば、4行3列のマクロブロック)から予測しようとする場合には、符号化装置は、当該予測に替えて、2行3列のマクロブロックをイントラマクロブロックに置き換えて、イントラマクロブロックとして符号化する。
【0035】
なお、図1の4番目のピクチャを構成する2行3列のマクロブロックが黒い四角で表現されているのは、3番目のピクチャを符号化する際に、当該マクロブロックがイントラマクロブロックに置き換えられて符号化されたことを示すものである。
【0036】
こうして、実施例1に係る符号化装置は、画質の劣化を回避することが可能になる。
【0037】
なお、実施例1(図1)においては、説明の便宜上から、1ピクチャが5行×6列の30個のマクロブロックで構成されており、6個のイントラマクロブロックで構成されたイントラスライスが、6ピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択する事例について説明したが、これは一例にすぎず、ピクチャを構成するマクロブロックの個数や、イントラマクロブロックとして選択するマクロブロックの選び方や個数など、実装に適した形態であれば、いずれでもよい。
【0038】
[実施例1に係る符号化装置の構成]
次に、図2および3を用いて、実施例1に係る符号化装置の構成を説明する。図2は、実施例1に係る符号化装置の構成を示すブロック図であり、図3は、実施例1における符号化について説明するための図である。
【0039】
実施例1に係る符号化装置10は、特に本発明に密接に関連するものとして、図2に示すように、マクロブロックカウンタ部11と、イントラスライスカウンタ部12と、第一選択部13aと、比較部13bと、第二選択部13cと、インターマクロブロック生成部14と、イントラマクロブロック生成部15とを備える。ここで、図2は、本発明に係る符号化装置10の一部を示した図であり、必ずしも図2に示した各部のみで動作しなければならないものではない(すなわち、符号化装置10は、上記した各部以外の部を備えて動作するものであってもよい)。なお、第一選択部13aと比較部13bと第二選択部13cとインターマクロブロック生成部14とイントラマクロブロック生成部15とが、特許請求の範囲に記載の「符号化手段」に対応する機能を備える。
【0040】
マクロブロックカウンタ部11は、複数のマクロブロックで構成されているピクチャが符号化装置10によって符号化される時に、処理の対象となるマクロブロックの座標(行、列)を決定するカウンタである。具体的には、マクロブロックカウンタ部11は、ピクチャを構成するマクロブロックの座標(行、列)をカウントし、カウントしたマクロブロックの座標を、イントラスライスカウンタ部12、第一選択部13aおよび比較部13bに送信する。
【0041】
イントラスライスカウンタ部12は、所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては、イントラスライスとして選択する。具体的には、イントラスライスカウンタ部12は、所定の個数のマクロブロックをイントラスライスとして選択し、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックを、イントラマクロブロックとして選択することを示す情報を、第一選択部13aに送信する。
【0042】
また、イントラスライスカウンタ部12は、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を、比較部13bに送信する。
【0043】
なお、実施例1においては、イントラスライスカウンタ部12が、イントラスライスとしてイントラマクロブロックを選択する方式について説明したが、本発明はこれに限られるものではなく、例えば、イントラカラムとしてピクチャの列ごとにイントラマクロブロックを選択する方式や、ランダムにイントラマクロブロックを選択する方式など、Pピクチャのみの画像データを符号化する方式であれば、イントラマクロブロックをいかなる方式で選択するかについては、いずれでもよい。
【0044】
ところで、実施例1におけるイントラスライスカウンタ部12は、ピクチャを符号化するごとにイントラスライス(イントラマクロブロック)の選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラスライス(イントラマクロブロック)として一度ずつ選択する。すなわち、イントラスライス(イントラマクロブロック)として選択されて符号化されたマクロブロックについては、リフレッシュされることになるので、一定の周期の中で、ピクチャを構成するマクロブロックが、全てイントラスライス(イントラマクロブロック)として一度ずつ選択されれば、ピクチャ全体について、リフレッシュされることになる。
【0045】
ここで、図2に戻ると、インターマクロブロック生成部14は、インターマクロブロックデータ(インターマクロブロックを符号化したデータ)を生成する。イントラマクロブロック生成部15は、イントラマクロブロックデータ(イントラマクロブロックを符号化したデータ)を生成する。
【0046】
第一選択部13aは、ストリームの生成にあたり、マクロブロックデータを選択する。具体的には、第一選択部13aは、イントラスライスカウンタ部12によってイントラスライスとして選択されたマクロブロックについてはイントラマクロブロックとして符号化し、その他のマクロブロックについてはインターマクロブロック(またはイントラマクロブロック)として符号化する。
【0047】
具体的に例を挙げて説明すると、第一選択部13aは、例えば、通常、インターマクロブロックデータの符号発生量とイントラマクロブロックデータの符号発生量とを比較し、符号発生量が小さい方を選択し、選択した方を第二選択部13cに送信するなどしている。具体的には、第一選択部13aは、インターマクロブロック生成部14によって生成されたインターマクロブロックデータの符号発生量と、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータの符号発生量とを比較し、符号発生量が小さい方を選択し、選択したインターマクロブロックデータ(あるいはイントラマクロブロックデータ)を、第二選択部13cに送信するなどしている。
【0048】
また、第一選択部13aは、イントラスライスカウンタ部12からイントラマクロブロック(イントラスライス)として選択することを示す情報を受け付けると、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックについては、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータを選択し、選択したイントラマクロブロックデータを、第二選択部13cに送信するなどしている。
【0049】
比較部13bは、マクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しているか否かを判定することを目的として、ベクトル情報や「イントラスライスの境界を示す情報」などを比較する。具体的には、比較部13bは、インターマクロブロック生成部14から、予測にあたり参照したマクロブロックとのベクトル情報を受け付け、また、イントラスライスカウンタ部12から、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を受け付け、これらの情報などを比較することで、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しているか否かを判定する。
【0050】
また、比較部13bは、マクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていると判定した場合には、当該予測に替えて、イントラマクロブロックとして符号化することを指示する。具体的には、比較部13bは、マクロブロックカウンタ部11によって送信されたマクロブロックの座標で特定されるマクロブロックをインターマクロブロックとして符号化する際に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていると判定した場合には、「イントラマクロブロックとして符号化することを指示する情報」を、第二選択部13cに送信する。
【0051】
第二選択部13cは、ストリームの生成にあたり、マクロブロックデータを最終的に選択する。具体的には、第二選択部13cは、第一選択部13aからマクロブロックデータを受け付け、また、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付ける。また、第二選択部13cは、比較部13bから「イントラマクロブロックとして符号化することを指示する情報」を受け付けたか否かを判定し、受け付けた場合には、イントラマクロブロック生成部15から受け付けたイントラマクロブロックデータを最終的に選択し、受け付けていない場合には、第一選択部13aから受け付けたマクロブロックデータを最終的に選択する。
【0052】
第一選択部13a、比較部13bおよび第二選択部13cによって、このように選択されることで、実施例1に係る符号化装置10は、例えば、図3に示すように、2番目のピクチャを構成する2行3列のマクロブロックをインターマクロブロックとして、図3の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとして未だ選択されていない3〜6行目のマクロブロック(例えば、4行3列のマクロブロック)から予測しようとする場合には、当該予測に替えて、2行3列のマクロブロックをイントラマクロブロックに置き換えて、イントラマクロブロックとして符号化する。
【0053】
なお、図3の3番目のピクチャを構成する2行3列のマクロブロックが黒い四角で表現されているのは、2番目のピクチャを符号化する際に、当該マクロブロックがイントラマクロブロックに置き換えられて符号化されたことを示すものである。
【0054】
[実施例1に係る符号化装置による処理の手順]
次に、図4〜7を用いて、実施例1に係る符号化装置による処理の手順を説明する。図4は、イントラスライスカウンタ部による処理の手順を示すフローチャートであり、図5は、第一選択部による処理の手順を示すフローチャートであり、図6は、比較部による処理の手順を示すフローチャートであり、図7は、第二選択部による処理の手順を示すフローチャートである。
【0055】
図4に示すように、イントラスライスカウンタ部12は、まず、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する(ステップS401)。イントラスライスカウンタ部12は、マクロブロックの座標を受け付けていない場合には(ステップS401否定)、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する処理に戻る。
【0056】
一方、イントラスライスカウンタ部12は、処理の対象となるマクロブロックの座標を受け付けると(ステップS401肯定)、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を比較部13bに送信する(ステップS402)。
【0057】
次に、イントラスライスカウンタ部12は、ステップS401において受け付けた座標のマクロブロックを、イントラマクロブロックとして選択するか否か(イントラスライスか否か)を判定する(ステップS403)。イントラマクロブロックとして選択しない場合には(ステップS403否定)、イントラスライスカウンタ部12は、処理を終了する。
【0058】
一方、イントラスライスカウンタ部12は、イントラマクロブロックとして選択する場合には(ステップS403肯定)、「イントラマクロブロックとして選択することを示す情報」を第一選択部13aに送信する(ステップS404)。
【0059】
次に、図5に示すように、第一選択部13aは、まず、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する(ステップS501)。第一選択部13aは、マクロブロックの座標を受け付けていない場合には(ステップS501否定)、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する処理に戻る。
【0060】
一方、第一選択部13aは、処理の対象となるマクロブロックの座標を受け付けると(ステップS501肯定)、次に、イントラスライスカウンタ部12から、「イントラマクロブロックとして選択することを示す情報」を受け付けたか否かを判定する(ステップS502)。
【0061】
受け付けていない場合には(ステップS502否定)、第一選択部13aは、インターマクロブロック生成部14によって生成されたインターマクロブロックデータの符号発生量と、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータの符号発生量とを比較し(ステップS503)、符号発生量が小さい方を選択し(ステップS504)、その後、選択したマクロブロックデータを第二選択部13cに送信する(ステップS505)。
【0062】
一方、第一選択部13aは、イントラスライスカウンタ部12から、「イントラマクロブロックとして選択することを示す情報」を受け付けた場合には(ステップS502肯定)、イントラマクロブロック生成部15によって生成されたイントラマクロブロックデータを選択し(ステップS506)、その後、選択したイントラマクロブロックデータを第二選択部13cに送信する(ステップS505)。
【0063】
次に、図6に示すように、比較部13bは、まず、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する(ステップS601)。比較部13bは、マクロブロックの座標を受け付けていない場合には(ステップS601否定)、処理の対象となるマクロブロックの座標を受け付けたか否かを判定する処理に戻る。
【0064】
一方、比較部13bは、処理の対象となるマクロブロックの座標を受け付けると(ステップS601肯定)、次に、インターマクロブロック生成部14から、予測にあたり参照したマクロブロックとのベクトル情報を受け付けたか否かを判定する(ステップS602)。比較部13bは、予測にあたり参照したマクロブロックとのベクトル情報を受け付けていない場合には(ステップS602否定)、予測にあたり参照したマクロブロックとのベクトル情報を受け付けたか否かを判定する処理に戻る。
【0065】
一方、比較部13bは、予測にあたり参照したマクロブロックとのベクトル情報を受け付けると(ステップS602肯定)、次に、イントラスライスカウンタ部12から、「イントラスライスの境界を示す情報」(例えば、イントラスライスの行番号など)を受け付けたか否かを判定する(ステップS603)。比較部13bは、「イントラスライスの境界を示す情報」を受け付けていない場合には(ステップS603否定)、「イントラスライスの境界を示す情報」を受け付けたか否かを判定する処理に戻る。
【0066】
一方、比較部13bは、「イントラスライスの境界を示す情報」を受け付けると(ステップS603肯定)、次に、マクロブロックの座標で特定されるマクロブロックが、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしているか否かを判定する(ステップS604)。
【0067】
イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていると判定された場合には(ステップS604肯定)、比較部13bは、「イントラマクロブロックとして符号化することを指示する情報」を第二選択部13cに送信する(ステップS605)。一方、イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとしていないと判定された場合には(ステップS604否定)、比較部13bは、そのまま処理を終了する。
【0068】
次に、図7に示すように、第二選択部13cは、まず、第一選択部13aからマクロブロックデータを受け付けたか否かを判定する(ステップS701)。第二選択部13cは、第一選択部13aからマクロブロックデータを受け付けていない場合には(ステップS701否定)、第一選択部13aからマクロブロックデータを受け付けたか否かを判定する処理に戻る。
【0069】
一方、第二選択部13cは、第一選択部13aからマクロブロックデータを受け付けると(ステップS701肯定)、次に、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けたか否かを判定する(ステップS702)。第二選択部13cは、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けていない場合には(ステップS702否定)、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けたか否かを判定する処理に戻る。
【0070】
一方、第二選択部13cは、イントラマクロブロック生成部15からイントラマクロブロックデータを受け付けると(ステップS702肯定)、次に、比較部13bから、「イントラマクロブロックとして符号化することを指示する情報」を受け付けたか否かを判定する(ステップS703)。
【0071】
第二選択部13cは、「イントラマクロブロックとして符号化することを指示する情報」を受け付けた場合には(ステップS703肯定)、イントラマクロブロック生成部15から受け付けたイントラマクロブロックデータを最終的に選択し(ステップS704)、その後、選択したイントラマクロブロックデータをストリームとして転送するなどする。
【0072】
一方、第二選択部13cは、「イントラマクロブロックとして符号化することを指示する情報」を受け付けていない場合には(ステップS703否定)、第一選択部13aから受け付けたマクロブロックデータを最終的に選択し(ステップS705)、その後、選択したマクロブロックデータをストリームとして転送するなどする。
【0073】
[実施例1の効果]
上記してきたように、実施例1によれば、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化するので、画質の劣化を回避することが可能になる。
【0074】
また、実施例1によれば、その他のマクロブロックを非イントラマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、予測に替えてイントラマクロブロックとして符号化するので、イントラマクロブロックとして既に選択されたマクロブロックから予測するように予測に制限を設ける手法に比較して、簡易な実装で、画質の劣化を回避することが可能になる。
【実施例2】
【0075】
さて、これまで本発明の実施例について説明してきたが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。以下では、実施例2に係る符号化装置として、その他の実施例について説明する。
【0076】
[予測に制限]
実施例1においては、符号化装置が、マクロブロックをインターマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、当該予測に替えて、イントラマクロブロックとして符号化する手法について説明してきたが、本発明はこれに限られるものではない。符号化装置が、マクロブロックをインターマクロブロックとして符号化する時に、一定の周期の中でイントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化する手法にも、本発明を同様に適用することができる。
【0077】
例えば、図8に示すように、実施例2に係る符号化装置は、2番目のピクチャを構成する2行3列のマクロブロックを、インターマクロブロックとして、図8の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとしてすでに選択された1〜2行目のマクロブロックから予測するように、予測に制限を加える。
【0078】
[イントラカラム]
また、実施例1においては、符号化装置が、ピクチャを構成するマクロブロックの内、イントラマクロブロックとしてイントラスライスを選択して符号化する手法について説明してきたが、本発明はこれに限られるものではない。符号化装置が、イントラマクロブロックとしてイントラカラムを選択して符号化する手法にも、本発明を同様に適用することができる。
【0079】
例えば、図9に示すように、実施例2に係る符号化装置は、2番目のピクチャを構成する3行2列のマクロブロックを、インターマクロブロックとして、図9の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとして未だ選択されていない3〜6列目のマクロブロック(例えば、4行4列のマクロブロック)から予測しようとする場合には、当該予測に替えて、3行2列のマクロブロックをイントラマクロブロックに置き換えて、イントラマクロブロックとして符号化する。
【0080】
なお、図9の3番目のピクチャを構成する3行2列のマクロブロックが黒い四角で表現されているのは、2番目のピクチャを符号化する際に、当該マクロブロックがイントラマクロブロックに置き換えられて符号化されたことを示すものである。
【0081】
また、例えば、図10に示すように、実施例2に係る符号化装置は、2番目のピクチャを構成する3行2列のマクロブロックを、インターマクロブロックとして、図10の1番目のピクチャを構成するマクロブロックから予測する時に、1番目のピクチャの内、イントラマクロブロックとしてすでに選択された1〜2列目のマクロブロックから予測するように、予測に制限を加える。
【0082】
[符号化方法]
また、実施例1においては、第一選択部13aが、通常、インターマクロブロックデータの符号発生量とイントラマクロブロックデータの符号発生量とを比較し、符号発生量が小さい方を選択する事例について説明したが、本発明はこれに限られるものではない。例えば、第一選択部13aが、イントラマクロブロックデータとして選択することをイントラスライスカウンタ部12から指示されていない場合には、常に、インターマクロブロックデータを選択する事例など、第一選択部13aが、イントラマクロブロックデータを強制的に選択すべき時以外にどのようにマクロブロックデータを選択するかなどについては、実装に適した形態であれば、いずれでもよい。
【0083】
[システム構成等]
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順(例えば、図4〜7など)、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0084】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示(例えば、図2など)の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0085】
なお、本実施例で説明した符号化方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【0086】
以上のように、本発明に係る符号化装置、符号化プログラムおよび符号化方法は、複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、所定のピクチャを構成するその他のマクロブロックについては所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたはイントラマクロブロックとして符号化し、ピクチャを符号化するごとにイントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化することに有用であり、特に、画質の劣化を回避することに適する。
【図面の簡単な説明】
【0087】
【図1】実施例1に係る符号化装置の概要および特徴を説明するための図である。
【図2】実施例1に係る符号化装置の構成を示すブロック図である。
【図3】実施例1における符号化を説明するための図である。
【図4】イントラスライスカウンタ部による処理の手順を示すフローチャートである。
【図5】第一選択部による処理の手順を示すフローチャートである。
【図6】比較部による処理の手順を示すフローチャートである。
【図7】第二選択部による処理の手順を示すフローチャートである。
【図8】実施例2における符号化を説明するための図である。
【図9】実施例2における符号化を説明するための図である。
【図10】実施例2における符号化を説明するための図である。
【図11】画面走査について説明するための図である。
【図12】ピクチャ構造について説明するための図である。
【図13】従来技術について説明するための図である。
【図14】従来技術について説明するための図である。
【図15】予測符号化の方式について説明するための図である。
【図16】予測符号化の方式について説明するための図である。
【図17】リフレッシュについて説明するための図である。
【図18】従来技術について説明するための図である。
【符号の説明】
【0088】
10 符号化装置
11 マクロブロックカウンタ部
12 イントラスライスカウンタ部
13a 第一選択部
13b 比較部
13c 第二選択部
14 インターマクロブロック生成部
15 イントラマクロブロック生成部
【特許請求の範囲】
【請求項1】
複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、
前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手段を備えたことを特徴とする符号化装置。
【請求項2】
前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化することを特徴とする請求項1に記載の符号化装置。
【請求項3】
前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、当該予測に替えて前記イントラマクロブロックとして符号化することを特徴とする請求項1または2に記載の符号化装置。
【請求項4】
複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する方法をコンピュータに実行させる符号化プログラムであって、
前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手順をコンピュータに実行させることを特徴とする符号化プログラム。
【請求項5】
複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化方法であって、
前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化工程を含んだことを特徴とする符号化方法。
【請求項1】
複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化装置であって、
前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手段を備えたことを特徴とする符号化装置。
【請求項2】
前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして既に選択されたマクロブロックから予測するように符号化することを特徴とする請求項1に記載の符号化装置。
【請求項3】
前記符号化手段は、前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しようとする場合には、当該予測に替えて前記イントラマクロブロックとして符号化することを特徴とする請求項1または2に記載の符号化装置。
【請求項4】
複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する方法をコンピュータに実行させる符号化プログラムであって、
前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化手順をコンピュータに実行させることを特徴とする符号化プログラム。
【請求項5】
複数のマクロブロックで構成されているピクチャが時系列に従って複数連続している一連の画像データを符号化するにあたり、前記画像データの内の所定のピクチャを構成するマクロブロックの内、所定の個数のマクロブロックについては予測しないイントラマクロブロックとして選択して符号化し、前記所定のピクチャを構成するその他のマクロブロックについては当該所定のピクチャに対して時系列で一つ前にあたるピクチャを構成するマクロブロックから予測する非イントラマクロブロックまたは前記イントラマクロブロックとして符号化し、前記ピクチャを符号化するごとに前記イントラマクロブロックの選択を変更することで、複数のピクチャについて符号化する一定の周期の中で、ピクチャを構成するマクロブロックをイントラマクロブロックとして一度ずつ選択するように符号化する符号化方法であって、
前記その他のマクロブロックを前記非イントラマクロブロックとして符号化する時に、前記一定の周期の中で前記イントラマクロブロックとして未だ選択されていないマクロブロックから予測しないように符号化する符号化工程を含んだことを特徴とする符号化方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2008−258953(P2008−258953A)
【公開日】平成20年10月23日(2008.10.23)
【国際特許分類】
【出願番号】特願2007−99397(P2007−99397)
【出願日】平成19年4月5日(2007.4.5)
【出願人】(500489509)アイベックステクノロジー株式会社 (9)
【Fターム(参考)】
【公開日】平成20年10月23日(2008.10.23)
【国際特許分類】
【出願日】平成19年4月5日(2007.4.5)
【出願人】(500489509)アイベックステクノロジー株式会社 (9)
【Fターム(参考)】
[ Back to top ]