以下、本発明の実施の形態について、図を用いて説明する。
図10は、本発明のスライス分割方法を用いた場合における画像符号化装置100の構成を示すブロック図である。
画像符号化装置100は、ブロック数カウンタ部102と、イントラ/インター決定部104と、スライスサイズ決定部106と、ビデオ・エンコーダ108とを備える。
ブロック数カウンタ部102は、符号化するスライスにおけるブロック数を計測する。
また、ブロック数カウンタ部102は、ビデオ・エンコーダ108が符号化対象とするスライスのブロック数、すなわち、スライス内でいくつ目のブロックであるかをイントラ/インター決定部104とスライスサイズ決定部106とに通知する。
イントラ/インター決定部104は、ブロック数カウンタ部102から通知されたブロック数から、ビデオ・エンコーダ108が符号化対象とするスライスがIスライスかPスライスかのいずれであるかを決定する。
イントラ/インター決定部104は、決定したスライスの種類(IスライスまたはPスライス)をビデオ・エンコーダ108とスライス種類取得部1064に通知する。
スライスサイズ決定部106は、ブロック数取得部1062とスライス種類取得部1064と、参照部1065と、スライス分割位置決定部1066とを備える。
スライス種類取得部1064は、イントラ/インター決定部104から通知されたビデオ・エンコーダ808が符号化対象とするスライスの種類(IスライスかPスライス)を取得する。
ブロック数取得部1062は、ブロック数カウンタ部102から通知されたビデオ・エンコーダ808が符号化対象とするスライスのブロック数を取得する。
スライス分割位置決定部1066は、スライス種類取得部1064が取得したスライスの種類に基づきブロック数取得部1062が取得したブロック数から、ビデオ・エンコーダ108が符号化対象とするスライス単位の区切りのブロック(以下、スライス分割位置と記載)であるかどうかを決定する。
スライス分割位置決定部1066は、決定したスライス分割位置をビデオ・エンコーダ808に通知する。スライス分割位置決定部1066から通知されるスライス分割位置によりビデオ・エンコーダ108でスライスに分割される。具体的には、スライス分割位置決定部1066は、スライス種類取得部1064が取得したスライスの種類がIスライスである場合、ブロック数カウンタ部102から通知されたスライス内のブロック数がM個になった時点をスライス分割位置と決定し、ビデオ・エンコーダ108に通知する。
スライス分割位置決定部1066は、スライス種類取得部1064が取得したスライスの種類がPスライスである場合、ブロック数カウンタ部102から通知されたブロック数がN個(N>M)になった時点をスライス分割位置と決定し、ビデオ・エンコーダ108に通知する。ここで、NおよびMは整数である。
ここでは、スライス分割位置決定部1066は、参照部1065に保存されているテーブルなどに記載されたルールに基づいてスライス分割位置を決定している。参照部1065では、例えば、Pスライスならブロック数がN個(N>M)になった時点をPスライス分割位置とし、Iスライスならブロック数がM個(N>M)になった時点をIスライス分割位置とする等のスライス分割位置決定ルールを記載したテーブルが保存されている。
ビデオ・エンコーダ108は、スライスサイズ決定部106で通知されるスライス分割位置毎のスライス単位で、かつイントラ/インター決定部104で通知されたスライスの種類に基づいて、ブロック単位に入力画像VINを使用可能な符号化方法(イントラ符号化もしくはインター符号化)で、符号化する。ビデオ・エンコーダ108は、符号化した入力画像VINをストリームSTRとしてパケット化部200に出力する。
パケット化部200は、ストリームSTRをネットワークの伝送に適した形式に変換する。例えば、ストリームSTRをスライス単位で1つのネットワーク伝送単位に変換する。ここで、ストリームSTRにおいて1つのスライスを複数のネットワーク伝送単位に変換してもよい。
(実施の形態1)
図11は、本発明の実施の形態1におけるスライス分割方法を用いた場合のスライスとブロックとの関係を説明する図である。図11に示すピクチャ(1フレーム)は、複数のブロックで構成されている。ピクチャを構成するブロックの中で、斜線をつけた複数のブロックの領域は、スライスであり、Iスライスである。その他の太い線で囲まれた複数のブロックは、スライスであり、Pスライスである。ここでは、ピクチャはIスライスとPスライスとで構成される例を示している。図1のMPEG−2規格のスライス分割方法と本発明におけるスライス分割方法との違いは、Iスライスに含まれるブロック数がPスライスに含まれるブロック数よりも少ない(スライスサイズが小さい)ことである。
図12は、本発明の実施の形態1における時間順に連続するピクチャのスライス分割例を示す図である。ここで、斜線をつけたスライスは、Iスライスであり、その他のスライスはPスライスである。
図12(a)〜図12(l)はこの順で時間順に連続するピクチャである。Iスライスの位置が、時間順に次のピクチャでは1行下に移動する。PスライスとPスライスの間の分割位置は、Iスライスの位置によらず固定である。すなわち、スライス分割位置決定部1066は、Pスライスを構成するブロック数は原則として一定となるようスライス分割位置を決定している。しかしながら、ピクチャ内のIスライスの直前および直後のPスライスでは、Iスライスが挿入されることでPスライスに含まれるブロック数が、例外的に少なくなる。そのため、スライス分割位置決定部1066は、例外的に少なくなるこの場合を許容してスライス分割位置を決定している。また、ピクチャのブロック数が等サイズのPスライスで分割できない場合は、ピクチャの最下位行のPスライスも例外的にブロック数が少なくなる。スライス分割位置決定部1066は、同様に、例外的に少なくなるこの場合を許容してスライス分割位置を決定している。
このように、Iスライスのブロック数を少なくし、Pスライスのブロック数を多くすることで、ピクチャ内のスライス数を少なくできる。さらに、イントラ符号化のブロックのみで構成されるIスライスをピクチャ単位で巡回的に移動することができるので、ストリームの消失に強い画像符号化を行うことができる。すなわち、ある時点でストリームが消失してPスライスの画質が劣化しても、ストリームが消失したPスライスのピクチャ内の水平・垂直位置のスライスが、時間順に後のピクチャでIスライスとなった際に、ピクチャが正しく復号することができ、画像劣化のあったストリームを回復できる。
また、図12で示すように、ピクチャ内のIスライスの位置が、最下位行に移動した次のピクチャは、Iスライスを含まないPスライスのみのピクチャとして符号化され、次のピクチャで最上位行に戻るように符号化される(図12(j)から図12(l))。すなわち、スライスサイズ決定部106は、スライス決定したスライス分割位置が、ビデオ・エンコーダ108が符号化するスライスが、Iスライスで、かつピクチャの最下位行であった場合に、ビデオ・エンコーダ108が次に符号化するピクチャは、Iスライスを含まないPスライスのみで構成するようビデオ・エンコーダ108に通知する。ビデオ・エンコーダ108は、スライスサイズ決定部106の通知に基づいて、例えば直前のピクチャと同じスライス分割位置で、かつ、Pスライスのみで構成するピクチャを符号化する。
なお、Iスライスを含まないPスライスのみのピクチャを、ブロック数が0であるIスライスと1つ以上のPスライスとで構成されるピクチャと表現してもよい。
また、Iスライスを含まないPスライスのみのピクチャとして符号化する方法は、参照部1065に保存されているテーブルに記載されたルールに基づいている。
これにより、ピクチャのIスライスと、次のピクチャのIスライスとの間にあるPスライスの符号化されるブロック数は、Iスライスが循環する過程(例えば図12(a)から図12(l))で一定になる。その結果、ストリーム中で、符号化されたビット数の多いIスライスのビット位置がほぼ等間隔となる。それ故、例えば、ストリームSTRをスライス単位でネットワーク伝送する場合に、ネットワーク伝送するビット数を平準化することができる。
ビットレートが低い場合あるいは、複雑な動きの少ない画像信号では、Iスライスのビット数と比べてPスライスのビット数が非常に少なくなる。イントラ符号化のブロックあたりのビット数が、インター符号化のビット数の10倍以上になることも多く、Pスライスのブロック数をIスライスのブロック数より多くしても、Iスライスのビット数が非常に多くなることがある。ストリーム中で、符号化されたIスライスのビット位置をほぼ等間隔とすることで、IスライスとPスライスの発生するビット数に偏りがあったとしても周期的な変動になるため、ネットワークの送受信バッファでその変動を吸収しやすくなり、変動が大きい場合に発生頻度が高くなるネットワークでのストリーム消失を低減することができる。
このように、ストリーム消失に強いIスライスと、ストリーム消失には弱いが圧縮率の良いインター符号化を含むPスライスとでピクチャを構成し、Iスライスの位置を時間順にピクチャ内で循環する。例えば、ある時点でストリームが消失してPスライスの画質が劣化すると、ストリームが消失したPスライスの位置のスライスは、後に続くピクチャでIスライスとなるまで画質劣化が伝播する。しかし、ストリームが消失したそのピクチャでの位置のスライスが、時間順に後のピクチャでIスライスとなったときには、Iスライスはスライス内の画素の相関のみを利用して符号化されるスライスであるので、ピクチャのその位置でのスライスが正しく復号される。すなわち、画像劣化のあったストリームが回復される。それ故、画質劣化が無限に伝播することを防止できる。
なお、より確実に画質劣化の伝播を防止するためには、各ピクチャ(例えば図12(a)から図12(l))におけるPスライスが参照する(画素相関を利用する)範囲が、各ピクチャ(例えば図12(a)から図12(l))におけるそのPスライスよりも上(先頭)側に位置するPスライスまたはIスライスに限定するとよい。しかし、そのような限定をしない場合であっても、一般的に参照するのは時間的に近い(例えば直前の)ピクチャの同じ位置のスライスであることが多いことから、以前に生じた画質劣化が、画質劣化を生じた画素と同じ位置の画素を含むスライスがIスライスであるピクチャ以降のピクチャにまで伝播する可能性は低減する。
ここで、ストリームをネットワーク伝送する場合のビット数の振れを図13Aおよび図13Bに示す。
図13Aおよび図13Bは、本発明の実施の形態1におけるストリームをネットワーク伝送する場合を説明するための図である。
図13Aでは、比較のために従来例として、ストリームをピクチャ単位(フレーム単位)でネットワーク伝送する場合を示す図である。
図13Bは、ストリームをスライス単位でネットワーク伝送する場合を示す図である。
本発明では、Iスライスのブロック数をPスライスのブロック数よりも少なくしているので、図13Bに示すように、IスライスとPスライスとのビット数の大きさの隔たりを少なくできる。また、IスライスとPスライスの発生するビット数に偏りがあったとしてもIスライスでのビット数の振れは周期的なものとなる。そのため、ネットワーク伝送するビット数を平準化することができる。
ここで、上述したように、図12(k)においてIスライスを含まないPスライスのみのピクチャとして符号化する。それにより、図13Bで示すフレーム毎だけでなく、連続したフレーム(ストリーム)を符号化した場合に、フレーム境界付近で、Iスライスが連続して符号化されて、大きなビット数が連続しないようにすることができる。すなわち、Iスライスでのビット数の振れを周期的にすることで、ネットワーク伝送するビット数を平準化できる。
なお、図12から明らかなように、ピクチャのスライスの境界となるマクロブロック位置はピクチャ毎に(巡回するが)固定的に決定されており、入力の画像信号の内容に依存しない。従って、スライス単位で符号化処理を並列化し、高速な画像符号化装置を実現することが可能である。
図14は、本発明の実施の形態1における画像符号化装置100が符号化する場合の処理を説明するフローチャートである。
まず、スライスサイズ決定部106は、ビデオ・エンコーダ108の符号化対象スライスがIスライスであるかを判定する(S101)。具体的には、スライス分割位置決定部1066は、スライス種類取得部1064に取得されたスライスの種類を判定する。
スライス種類取得部1064が取得したスライスの種類がIスライスである場合(S101の“はい”の場合)、スライス分割位置決定部1066は、参照部1065に保存されているルールに基づいて、スライス分割位置をMブロック目と決定する。すなわち、スライス分割位置決定部1066は、ブロック数取得部1062に取得されたブロック数から、Iスライスの開始となるブロックからMブロック目をスライス分割位置と決定する。スライス分割位置決定部1066から通知されるスライス分割位置に基づいて、ビデオ・エンコーダ808は、IスライスのスライスサイズをMブロックとして符号化する(S104)。
次に、スライス種類取得部1064に取得されたスライスの種類がIスライスでない場合(S101の“いいえ”の場合)、すなわち、スライス種類取得部1064に取得された符号化対象スライスの種類がPスライスである場合、スライス分割位置決定部1066は、符号化対象スライスがピクチャ最後(最下位行)のスライスであるかどうかを判定する(S102)。すなわち、スライス分割位置決定部1066は、ブロック数取得部1062に取得されたブロック数から、符号化対象スライスがピクチャ最後のスライス位置であるかを判定する。
符号化対象スライスがピクチャ最後のスライスである場合、スライス分割位置決定部1066は、参照部1065に保存されているルールに基づいて、スライス分割位置をN以下(N>M)のブロック目と決定する。スライス分割位置決定部1066から通知されるスライス分割位置に基づいて、ビデオ・エンコーダ808は、ピクチャ最後のPスライスのスライスサイズをN以下(N>M)のブロック数として符号化する(S105)。ピクチャ最後のPスライスのスライスサイズ、すなわちピクチャ最後のPスライスを構成するブロック数はピクチャのブロック数で決定される。例えば、ピクチャがLブロックで構成される場合には、LをNで除算した余りの数が最後のスライスのブロック数になる。
次に、符号化対象スライスがピクチャ最後のスライスでない場合、スライス分割位置決定部1066は、ブロック数取得部1062に取得されたブロック数とスライス種類取得部1064に取得されたスライスの種類に基づいて、符号化対象のPスライスのピクチャ内での位置がIスライスの直前もしくは直後のスライスであるかどうかを判定する(S103)。
符号化対象スライスが、Iスライスの直前もしくは直後のスライスである場合、図12に示すようにIスライス挿入によってPスライスのブロック数がNより少なくなるので、そのブロック数に応じたスライスにする(S105)。すなわち、符号化対象PスライスがIスライスの直前もしくは直後のスライスである場合、スライス分割位置決定部1066は、ブロック数取得部1062に取得されたブロック数とスライス種類取得部1064に取得されたスライスの種類とに基づいて、スライスを構成するブロックの数をN以下として、Iスライスの直前もしくは直後であるPスライスのスライス分割位置を決定する。
次に、符号化対象スライスが、Iスライスの直前でも直後でもないスライスの場合、Nブロック数でスライスを構成する(S106)。すなわち、スライス分割位置決定部1066は、ブロック数取得部1062に取得されたブロック数とスライス種類取得部1064に取得されたスライスの種類とに基づいて、Pスライスを構成するブロックの数をNとしてIスライスの直前もしくは直後でないPスライスのスライス分割位置を決定する。
なお、図14を用いて説明した、S101、S102およびS103の判定順序は、スライスを構成するブロック数が上述で記述した内容と変わらない範囲で入れ替えても構わない。例えば、S102とS103の順序は入れ替え可能である。
以上、本実施の形態1によれば、ある時点でストリームが消失してPスライスの画質が劣化しても、ストリームが消失したPスライスの位置のスライスが、時間順に後のピクチャでIスライスとなった際に、ピクチャが正しく復号することができ、画像劣化のあったストリームを回復できる。それ故、画質劣化が無限に伝播することを防止できる。さらに、スライスのブロック数を少なくし、Pスライスのブロック数を多くすることで、ピクチャ内のスライス数を少なくできる。スライスの分割位置がピクチャ単位で決まっているため、パイプライン化あるいは並列化を阻害することなく、ストリーム消失の頻度を低めつつ、処理量削減と圧縮率とを向上する画像符号化方法および画像符号化装置を実現できる。
なお、本発明におけるスライス単位で符号化の並列処理を行うためには、画像符号化装置100を複数個準備し、各並列単位におけるブロック数カウンタ部102で上述したようにブロック数を計算すればよい。例えば、図11と図12のスライス分割例において2つで並列化する場合は、ピクチャの上半分の6行と、下半分の4行のブロックに分割し、上半分と下半分の処理を並列化することができる。つまり、本実施の形態1では、Pスライスのピクチャ内での境界位置は原則固定である。そのため、単純にブロック数でピクチャを固定の境界位置で分割して、複数の処理ユニット(プロセッサもしくはハードウェア)で処理させることで、スライス単位で処理を並列化することができる。
(実施の形態2)
次に、実施の形態2について、以下説明する。なお、実施の形態1と同じ構成および同じ動作については説明を省略する。
図15は、本発明の実施の形態2における時間順に連続するピクチャのスライス分割例を示す図である。ここで、斜線をつけたスライスは、Iスライスであり、その他のスライスはPスライスである。図12における実施の形態1のスライス分割方法と図15における本実施の形態2のスライス分割方法との違いは、Iスライスの直後のPスライスの大きさが一定(Nブロック)であり、Iスライスより下のPスライスの境界位置(スライス分割位置)がIスライスの行数だけ下に移動することである。
そのため、本実施の形態2では、ピクチャを構成するスライス数が実施の形態1より少ないのが特徴である。例えば、図12と図15とを比較する。図12(a)と図15(a)、図12(b)と図15(b)、図12(d)と図15(d)並びに、図12(e)と図15(e)を比較すると図15で示される実施の形態2におけるピクチャを構成するスライス数が少ない。従って、ピクチャを構成するスライス数が削減でき、処理量削減あるいは圧縮率向上の効果が得られる。
図16は、本発明の実施の形態2における画像符号化装置100が符号化する場合の処理を説明するフローチャートである。なお、図14で説明した処理と同じ処理の箇所は同じ記号を付し、説明を省略する。
本実施の形態2ではIスライス直後の位置でのPスライスのブロック数は、ピクチャ内最後の位置の場合でのPスライスを除外するとNブロックである。よって、図14のS103の代わりに、Iスライスの直前のスライスであれば、図15に示すようにIスライス挿入によってPスライスのブロック数がNより少なくなるので、そのブロック数に応じたスライスにする(S110)。すなわち、符号化対象PスライスがIスライスの直前のスライスである場合、スライス分割位置決定部1066は、ブロック数取得部1062に取得されたブロック数とスライス種類取得部1064に取得されたスライスの種類とに基づいて、スライスを構成するブロックの数をN以下として、Iスライスの直前であるPスライスのスライス分割位置を決定する。
(実施の形態3)
次に、実施の形態3について、以下説明する。なお、実施の形態1および2と同じ構成および同じ動作については説明を省略する。
図17は、本発明の実施の形態3における時間順に連続するピクチャのスライス分割例を示す図である。ここで、斜線をつけたスライスは、Iスライスであり、その他のスライスはPスライスである。
実施の形態1では、最下位行がIスライスのピクチャと最上位行がIスライスのピクチャの間のピクチャを除き、全てのピクチャにIスライスを含む例を示した。本実施の形態3では、ネットワークの品質が高く、Iスライスの挿入頻度が少なくてもよい場合を想定する。その場合には、図17に示すように、Iスライスを含まないピクチャを定期的に挿入する。
ところで、一般的には、ストリームを再生する場合において、2秒間のストリームの中に1つ以上Iピクチャを挿入するのが望ましいといわれている。例えば、ストリーム再生1秒間に30フレームが必要とする場合には、60フレーム毎に1枚のIピクチャが必要ということになる。ここでは、ピクチャ単位でなく、スライス単位での伝送を想定しているので、60フレーム単位で、ピクチャ内でのIスライスの位置が時間順に移動、すなわち、周期的に循環すればよい。
それ故、図17に示すように、時間順に連続する2ピクチャ毎に、Iスライスを含まないピクチャを定期的に挿入しても、ストリーム再生に影響はない。したがって、ネットワークの品質が高くて、Iスライスの挿入頻度が少なくてもよい場合には、ビット数の多いイントラ符号化のブロック数を削減し、圧縮率を向上できる。
図18は、本発明の実施の形態3における画像符号化装置100が符号化する場合の処理を説明するフローチャートである。なお、図14で説明した処理と同じ処理の箇所は同じ記号を付し、説明を省略する。
まず、最初にスライスサイズ決定部106は、ビデオ・エンコーダ108の符号化対象ブロックを含むピクチャにIスライスを含めるかどうかを決定する(S200)。
ここで、符号化対象ブロックを含むピクチャにIスライスを含めるかどうかは、参照部1065に保存されたテーブルに記載されたルールに基づいてスライス分割位置決定部1066が決定する。ここでは、例えば図17に示すように、2ピクチャ毎にIスライスを含まないピクチャがあるように決定している。
スライスサイズ決定部106が、ビデオ・エンコーダ108の符号化対象ブロックを含むピクチャにIスライスを含むと決定した場合は(S200の“はい”の場合)、実施の形態1における図14のフローチャートと同じ処理になるので、説明を省略する。
次に、スライスサイズ決定部106が、ビデオ・エンコーダ108の符号化対象ブロックを含むピクチャにIスライスを含めないと決定した場合(S200の“いいえ”の場合)、スライスサイズ決定部106は、ビデオ・エンコーダ108の符号化対象スライスのピクチャ内の位置が最下位かどうかを判定する(S201)。
ビデオ・エンコーダ108は、スライスサイズ決定部106からの判定結果の通知に基づいて、ピクチャ内で最下位行以外のPスライスのブロック数をNブロックとして符号化し(S106)、最下位行のPスライスは、符号化対象のピクチャと時間順に直前もしくは直後のピクチャの最下位行のPスライスのブロック数と同じにして符号化する(S105)。
(実施の形態4)
次に、実施の形態4について、以下説明する。なお、実施の形態1および実施の形態2と同じ構成および同じ動作については説明を省略する。
図19は、本発明の実施の形態4における時間順に連続するピクチャのスライス分割例を示す図である。ここで、斜線をつけたスライスは、Iスライスであり、その他のスライスはPスライスである。図15における実施の形態2のスライス分割方法と図19における本実施の形態4のスライス分割方法との違いは、実施の形態2のスライス分割方法に加えて、Iスライスを含まないピクチャを定期的に挿入している点にある。例えば、図19(f)、図19(h)および図19(l)がそれに相当する。
実施の形態2のように、ピクチャ全体のPスライスの境界がIスライスの挿入位置に応じて移動する場合は、実施の形態3に示すように、Iスライスを含まないピクチャのPスライスの境界位置を固定的に決定することはできない。それ故、実施の形態4では、ピクチャがIスライスを含まない場合には、符号化対象のピクチャと時間順に直前のPスライスの境界と同じ位置をスライス分割位置とするPスライスにする。
なお、ピクチャがIスライスを含まない場合において、符号化対象のピクチャと時間順に直後のPスライスの境界と同じ位置をスライス分割位置とするPスライスに分割してもよい。また、実施の形態3におけるIスライスを含まないピクチャと同じ位置を固定的にスライス分割位置とするPスライスに分割してもよい。
(実施の形態5)
次に、実施の形態5について、以下説明する。なお、実施の形態1〜実施の形態4と同じ構成および同じ動作については説明を省略する。
図20は、本発明の実施の形態5における時間順に連続するピクチャのスライス分割例を示す図である。ここで、斜線をつけたスライスは、Iスライスであり、その他のスライスはPスライスである。
ここまで(実施の形態1〜実施の形態4)の説明では、Iスライスを構成するブロックは、ピクチャを構成するブロックの行単位である場合について説明した。しかし、Iスライスを構成するブロックは、ピクチャを構成するブロックの行単位でなく、ピクチャを構成するブロックの行の途中の一部のブロックであってもよい。図20では、Iスライスを、ピクチャを構成するブロックの行の半分のブロックであるとし、ピクチャ毎に左半分がIスライスの場合と右半分がIスライスの場合を交互に符号化する。
このようにすることで、ネットワークの品質が高く、Iスライスの挿入頻度が少なくてもよい場合には、ビット数の多いイントラ符号化のブロック数を削減し、圧縮率を向上できる。
(実施の形態6)
次に、実施の形態6について説明する。実施の形態1〜実施の形態5では、Iスライスを構成するブロック数がPスライスを構成するブロック数より少ない場合について、説明した。実施の形態6では、Iスライスを構成するブロック数がPスライスを構成するブロック数と同じ場合を前提に説明する。
図21は、本発明の実施の形態6における時間順に連続するピクチャのスライス分割例を示す図である。ここで、斜線をつけたスライスは、Iスライスであり、その他のスライスはPスライスである。また、ここでは、それぞれのピクチャは5つのスライスで構成される。
図21において、ピクチャNからピクチャN+9は、この順で時間順に連続するピクチャである。Iスライスの位置は、ピクチャNからピクチャN+4まで順番にピクチャ内での位置が1つずつ下に移動し、ピクチャN+4でピクチャ内での最下位置になる。ピクチャN+5では、Iスライスを含まずPスライスのみとなっている。ピクチャN+6では、ピクチャ内での最上位置がIスライスの位置となっている。このように、図21では、時間順に連続するピクチャ内のIスライスの位置が移動する。
図22Aおよび図22Bは、本発明の実施の形態6における時間順に各スライスを符号化したビット数の例を示す図である。図22Aおよび図22Bでは、ストリームを図21で示すスライス単位でネットワーク伝送する場合に、時間順に各スライスを符号化したビット数の例を示している。図22Aは、図21で示すピクチャを構成するスライスを上から下の順序で符号化し、横軸に時刻、縦軸に当該スライスの符号化で発生するビット数の大きさのイメージを図示している。図21および図22Aから分かるように、ピクチャを構成するIスライスが時間順に上から下の順序、すなわち、周期的に循環する。
また、図22Bは、時間順に連続する複数のピクチャを符号化し、これらピクチャを符号化順に一定のビットレートで伝送している様子を示している。ここで、図22Bでは、横軸方向の幅(長さ)がビット数の大きさを示している。
ところで、上述したように、各ピクチャに同数のIスライスを含む図9Bに示す従来例の場合では、ピクチャN+4とピクチャN+5の間でIスライスが2回連続する。これに対して、図22Bに示す実施の形態6の場合、ピクチャN+4、ピクチャN+5、ピクチャN+6の間でも、Iスライスとその次のIスライスとの間のPスライスは5個と固定である。すなわち、ストリームをスライス単位でネットワーク伝送する場合に、Iスライスが2回連続することがないようにすることで、ネットワーク伝送するビット数を平準化している。
実施の形態6におけるスライス構造では、図22Bの区間A〜区間Eに示すように、いずれの区間での6個のスライス、すなわちどの連続する6個のスライスにも、1つのIスライスと5つのPスライスとが含まれることになる。
従って、スライス単位で1つのネットワーク伝送単位に変換して符号化制御を行う場合、“連続する6つのスライスのビット数の和が一定値”となるように符号化を制御すれば、いずれの区間でも一定のビット数となる符号化制御ができる。すなわち、ネットワーク伝送するビット数を平準化することができる。
ここで、例えば、連続する6つのスライスのビット数の和をΣBITとし、1つのIスライスと1つのPスライスとの符号化で発生するビット数を、それぞれRI、RPとする。
まず、区間AにおけるIスライスであるスライス0をBIT0(=ΣBIT×RI/(RI+5×RP))ビットで符号化しようとして制御した結果、実際に符号化で発生したビットがBIT0+ΔBIT0ビットであるとする。この場合、区間Aでは、ΔBIT0だけビット数が変化していることになる。
なお、区間AではΔBIT0だけビット数が変化したため、区間Bでは、ΣBIT−ΔBIT0ビットを割り当てる。また、実際に発生したビット数BIT0+ΔBIT0に基づいて、RIを更新する。
次に、スライス1をBIT1(=(ΣBIT−ΔBIT0)×RP/(RI+5×RP))ビットで符号化しようとして制御した結果、実際に符号化で発生したビットがBIT1+ΔBIT1ビットであるとする。この場合、区間BではΔBIT1だけビット数が変化していることになるため、上述同様に、区間CではΣBIT−ΔBIT1ビットを割り当てる。また、実際に発生したビット数BIT1+ΔBIT1に基づいて、RPを更新する。
次に、スライス2をBIT2(=(ΣBIT−ΔBIT1)×RP/(RI+5×RP))ビットで符号化しようとして制御した結果、実際に符号化で発生したビットがBIT2+ΔBIT2ビットであるとする。この場合、区間CではΔBIT2だけビット数が変化していることになるため、上述同様に、区間CではΣBIT−ΔBIT1ビットを割り当てる。また、実際に発生したビット数BIT2+ΔBIT2に基づいて、RPを更新する。
次に、上述同様に、スライス3以降を符号化して、変動したビット数を、符号化したスライスが属する区間の次の区間で調整する。また、実際に発生したスライスのビット数に基づいて、RPまたはRIを更新する。
以上のようにして、実際に発生したスライスのビット数に基づいて、RIまたはRPを更新することで、符号化対象画像が急な動きを含む場合あるいは、シーンチェンジなどの画像の統計量が大きく変化する場合でも、簡単な計算式で符号化対象スライスのビット数を導出でき、スライス単位のビット数を適切に制御することができる。
なお、ここで特に重要なことは、画像の統計量によって発生するビット数の変動があるものの、Iスライスのビット数はPスライスのビット数よりも遥かに大きいことである。その結果、実際に発生したビット数の誤差(ΔBIT0、ΔBIT1、ΔBIT2、など)の大きさは、Iスライスの場合に大きくなる。
図9Bで示した従来例のように、ネットワーク伝送時に、Iスライスが連続すると大きな誤差変化が連続するため、画質劣化しやすくなるだけでなく、符号化制御が難しくなり一定のビットレートにすることが困難になる。そこで、実施の形態6では、時間順に連続する複数のピクチャにおいて、あるピクチャのIスライスと次のピクチャのIスライスとの間にあるPスライスの個数またはブロック数を一定にする。それにより、ネットワーク伝送のために符号化するときに、実際に発生したビット数の誤差の変化量が抑制できる。
図23は、本発明の実施の形態6における画像符号化装置100が符号化する場合の処理を説明するフローチャートである。
イントラ/インター決定部104は、ブロック数カウンタ部102から通知されたブロック数から、ビデオ・エンコーダ108が符号化対象とするスライスがIスライスかPスライスかのいずれであるかを決定する。実施の形態6では、イントラ/インター決定部104は、Pスライスの行数を示す値をカウンタLとして保持している。イントラ/インター決定部104は、ブロック数カウンタ部102から通知されたブロック数と、カウンタLを用いてスライスの種類を決定する。
まず、イントラ/インター決定部104は、Pスライスの行数を示す値であるカウンタLを0で初期化(S302)した後、イントラ/インター決定部104は、ビデオ・エンコーダ108の符号化対象スライスがIスライスであるかを判定する。すなわち、イントラ/インター決定部104は、Pスライス行数を示す値であるカウンタLが0以下であるかどうかを判定する(S304)。
次に、イントラ/インター決定部104は、カウンタLが0以下である場合(S304の“はい”の場合)、ビデオ・エンコーダ108が符号化対象とするスライスの種類はIスライスであると決定する。ビデオ・エンコーダ108は、スライスサイズ決定部106で通知されるスライス分割位置と、イントラ/インター決定部104で通知されたスライスの種類とに基づき、符号化対象とするスライスをIスライスで符号化する(S306)。
ビデオ・エンコーダ108が、符号化対象とするスライスをIスライスで符号化した後、イントラ/インター決定部104は、カウンタLに、連続するピクチャにおけるIスライス挿入間隔である、Iスライスとその次のIスライスとの間のPスライスの行数の合計の値を代入する(S307)。
次に、イントラ/インター決定部104は、ビデオ・エンコーダ108が全ピクチャに対して符号化が完了したかどうかを確認する(S316)。
なお、イントラ/インター決定部104は、カウンタLが0より大きい場合(S304の“いいえ”の場合)、ビデオ・エンコーダ108が符号化対象とするスライスの種類はPスライスであると決定する。ビデオ・エンコーダ108は、スライスサイズ決定部106で通知されるスライス分割位置と、イントラ/インター決定部104で通知されたスライスの種類とに基づき、符号化対象とするスライスをPスライスで符号化する(S312)。
ビデオ・エンコーダ108が、符号化対象とするスライスをPスライスで符号化した後、イントラ/インター決定部104は、カウンタLから、符号化したPスライスの行数を減算する(S313)。
次に、イントラ/インター決定部104は、ビデオ・エンコーダ108が全ピクチャに対して符号化が完了したかどうかを確認する(S316)。完了していない場合には(S316の“いいえ”の場合)、S304〜S313の処理を全ての画像に対して繰り返す。
以上のように、本発明の実施の形態6における画像符号化装置100は、符号化する場合に、連続するピクチャにおけるIスライスとその次のIスライスとの間に一定数のPスライスを挿入することができる。
図24は、本発明の実施の形態6における画像符号化装置100が符号化する場合の処理を説明するフローチャートである。図24は、図23をさらに詳細にしたものであり、図23と同じ動作をする処理は同じ番号を付し、説明は省略する。
ここで、連続する所定数のスライスのビット数の和、すなわちIスライスのビット数と、Iスライスとその次のIスライスの間にあるPスライスの個数分のビット数との和をΣBITとする。
ここで、スライス分割位置決定部1066は、スライス種類取得部1064に取得されたスライスの種類と、ブロック数取得部1062に取得されたブロック数とに基づき、ビデオ・エンコーダ108が符号化対象とするスライスのスライス分割位置を決定する。実施の形態6では、スライス分割位置決定部1066は、スライス分割位置を決定するために用いるΣBITの変動値であるΔBITと、Iスライスのビット数の値を示すPIとPスライスのビット数の値を示すPRとを保持している。
まず、イントラ/インター決定部104は、Pスライス行数を示す値であるカウンタLを0で初期化する。また、スライス分割位置決定部1066は、ΣBITの変動値であるΔBITを0で初期化し、Iスライスのビット数の値を示すPIとPスライスのビット数の値を示すPRに初期値を代入する(S303)。
次に、イントラ/インター決定部104は、ビデオ・エンコーダ108の符号化対象スライスがIスライスであるかを判定する。すなわち、イントラ/インター決定部104は、Pスライス行数を示す値であるカウンタLが0以下であるかどうかを判定する(S304)。
イントラ/インター決定部104は、カウンタLが0以下である場合(S304の“はい”の場合)、ビデオ・エンコーダ108が符号化対象とするスライスの種類はIスライスであると決定する。スライスサイズ決定部106におけるスライス分割位置決定部1066は、Lが0以下である場合、(ΣBIT−ΔBIT)×RI/(RI+NP×RP)のビット数をIスライスに割り当てる(S305)。すなわち、スライス種類取得部1064に取得されたスライスの種類がIスライスである場合、スライスサイズ決定部106は、上述したビット数でスライス分割位置を決定し、決定したスライス分割位置をビデオ・エンコーダ108に通知する。ここで、NPは、連続するピクチャにおけるIスライスとその次のIスライスとの間にあるPスライスの個数である。
次に、ビデオ・エンコーダ108は、スライスサイズ決定部106で通知されるスライス分割位置と、イントラ/インター決定部104で通知されたスライスの種類とに基づき、符号化対象とするスライスをIスライスで符号化する(S306)。
ビデオ・エンコーダ108が、符号化対象とするスライスをIスライスで符号化した後、イントラ/インター決定部104は、カウンタLに、連続するピクチャにおけるIスライス挿入間隔である、Iスライスとその次のIスライスとの間のPスライスの行数の合計の値を代入する(S307)。
ここで、スライス分割位置決定部1066は、ビデオ・エンコーダ108がIスライスの符号に割り当てたビット数(ΣBIT−ΔBIT)×RI/(RI+NP×RP)と、実際にIスライスを符号化したビット数との差のビット数を保持しているΔBITに代入する(S308)。
また、スライス分割位置決定部1066は、ビデオ・エンコーダ108がIスライスを符号化したビット数を保持しているRIに代入する(S309)。
次に、イントラ/インター決定部104は、ビデオ・エンコーダ108が全ピクチャに対して符号化が完了したかどうかを確認する(S316)。
なお、S304において、カウンタLが0より大きければ(S304の“いいえ”の場合)、イントラ/インター決定部104は、ビデオ・エンコーダ108が符号化対象とするスライスの種類はPスライスであると決定する。スライスサイズ決定部106におけるスライス分割位置決定部1066は、カウンタLが0より大きい場合、(ΣBIT−ΔBIT)×RP/(RI+NP×RP)のビット数をPスライスに割り当てる(S311)。すなわち、スライス種類取得部1064に取得されたスライスの種類がPスライスである場合、スライスサイズ決定部106は、上述したビット数でスライス分割位置を決定し、決定したスライス分割位置をビデオ・エンコーダ108に通知する。
次に、ビデオ・エンコーダ108は、スライスサイズ決定部106で通知されるスライス分割位置と、イントラ/インター決定部104で通知されたスライスの種類とに基づき、符号化対象とするスライスをPスライスで符号化する(S312)。
ビデオ・エンコーダ108が、符号化対象とするスライスをPスライスで符号化した後、イントラ/インター決定部104は、カウンタLから、符号化したPスライスの行数を減算する(S313)。
ここで、スライス分割位置決定部1066は、ビデオ・エンコーダ108がPスライスの符号に割り当てたビット数(ΣBIT−ΔBIT)×RP/(RI+NP×RP)と、実際にPスライスを符号化したビット数との差のビット数を保持しているΔBITに代入する(S314)。
また、スライス分割位置決定部1066は、ビデオ・エンコーダ108がPスライスを符号化したビット数をRPに代入する(S315)。
次に、イントラ/インター決定部104は、ビデオ・エンコーダ108が全ピクチャに対して符号化が完了したかどうかを確認する(S316)。完了していない場合には(S316の“いいえ”の場合)、S304〜S315の処理を全ての画像に対して繰り返す(S316)。
以上のように、本発明の実施の形態6における画像符号化装置100は、連続するピクチャにおけるIスライスとその次のIスライスとの間に一定数のPスライスを挿入し、スライスに適切なビット割り当てを行った符号化を行う。
以上、実施の形態6によれば、ある時点でストリームが消失してPスライスの画質が劣化しても、ストリームが消失したPスライスの位置のスライスが、時間順に後のピクチャでIスライスとなった際に、ピクチャが正しく復号することができ、画像劣化のあったストリームを回復できる。それ故、その画質劣化が無限に伝播することを防止できる。さらに、ネットワーク伝送するビット数を平準化することができるので、パイプライン化あるいは並列化を阻害することなく、ストリーム消失の頻度を低めつつ、処理量削減と圧縮率とを向上することができる。
なお、図23および図24で示す処理を行う際には、スライス分割位置決定部1066が決定するIスライスおよびPスライスの分割位置は、同じブロック数の時点をスライス分割位置と決定することを前提に説明している。しかしながら、実施の形態1〜5と同様に、IスライスおよびPスライスで異なるブロック数の時点をIスライスおよびPスライスのスライス分割位置としてもよく、その場合も本発明の範囲内に含まれる。
また、実施の形態6では、説明を簡単にするために、Iスライスを構成するブロック数とPスライスを構成するブロック数とが同じ場合を前提に説明したが、それに限定されない。例えば、Iスライスを構成するブロック数よりもPスライスを構成するブロック数が多くてもよい。さらに、実施の形態1〜5で示したように、ピクチャ内のIスライスの位置によりPスライスを構成するブロック数が調整されるようにPスライスを構成するブロック数は一定でなくてよい。
(実施の形態7)
次に、実施の形態7について説明する。
図25は、本発明の実施の形態7における時間順に連続するピクチャのスライス分割例を示す図である。
図21における実施の形態6のスライス分割方法と図25における本実施の形態4のスライス分割方法との違いは、実施の形態6のスライス分割方法に加えて、Iスライスを含まないピクチャを定期的に挿入している点にある。例えば、図25におけるピクチャN+1、ピクチャN+3、ピクチャN+5、ピクチャN+9およびピクチャN+12がそれに相当する。
このように、Iスライスを含まないピクチャを定期的に挿入している場合も、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間にあるPスライスのブロック数を一定にすることで、実施の形態6と同様の効果が得られる。
なお、上述したように、ピクチャを構成するスライス数が一定、かつ、IスライスとPスライスとを構成するブロック数が一定の場合に、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間のPスライス数を一定にすることで、実施の形態6と同様の効果が得られる。言い換えると、時間順に連続するピクチャにおけるIスライスがピクチャ内で最大1つである図25の例の場合に限らない。時間的に連続するピクチャ内におけるIスライスが2つ以上でもよい。また時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間にあるPスライスの個数は10である、図25の例の場合に限らない。ピクチャを構成するスライス数が一定、かつ、IスライスとPスライスとを構成するブロック数が一定の場合に、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間のPスライス数を一定にすればよい。以下、その例を示す。
図26は、本発明の実施の形態7における時間順に連続するピクチャのスライス分割例を示す図である。図27Aおよび図27Bは、本発明の実施の形態7における時間順に各スライスを符号化したビット数の例を示す図である。
図21におけるスライス分割方法と図26におけるスライス分割方法との違いは、時間順に連続するピクチャにおけるIスライスがピクチャ内で最大1つではなく2つである点である。また、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間にあるPスライスの個数は2個である。この場合でも、図27Aおよび図27Bに示すように、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間のPスライス数を一定(ここでは2個)にすることで、ネットワーク伝送するビット数を平準化することができ、実施の形態6と同様の効果が得られる。
また、図28、図29、図30および図31は、本発明の実施の形態7における時間順に連続するピクチャの別のスライス分割例を示す図である。
図28におけるスライス分割方法では、時間順に連続するピクチャにおけるIスライスがピクチャ内で最大2つである。また、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間にあるPスライスの個数は2個および1個である。
図29および図30におけるスライス分割方法では、時間順に連続するピクチャにおけるIスライスがピクチャ内で最大2つである。また、時間順に連続するピクチャにおけるIスライスとその次のIスライスの間にあるPスライスの個数とその次のIスライスとその次の次のIスライスの間にあるPスライスの個数は3個および2個である。
図31におけるスライス分割方法では、時間順に連続するピクチャにおけるIスライスがピクチャ内で最大3つである。また、時間順に連続するピクチャにおける3つのIスライスの間にあるPスライスの個数は3個、3個および2個である。
これらの場合でも、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間のPスライス数を一定にすることができるので、ネットワーク伝送するビット数を平準化することができ、実施の形態6と同様の効果が得られる。
なお、ピクチャ内のIスライスの位置が最下位行に移動する次のピクチャが、Iスライスを含まないPスライスのみのピクチャとして符号化することでビットの平準化を図ってもよい。その例を変形例として以下に説明する。
図32は、本発明の実施の形態7における時間順に連続するピクチャのスライス分割の変形例を示す図である。図33Aおよび図33Bは、図32における時間順に各スライスを符号化したビット数の例を示す図である。
図21におけるスライス分割方法と図32におけるスライス分割方法との違いは、時間順に連続するピクチャのそれぞれに含まれるIスライスが1つではなく2つである点である。また、ピクチャ内のIスライスの位置が、最下位行に移動した次のピクチャは、Iスライスを含まないPスライスのみのピクチャとして符号化され、次のピクチャで最上位行に戻るように符号化される。この場合でも、図33Aおよび図33Bに示すように、ビット数に偏りのあるIスライスが連続してネットワーク伝送されないようにできるので、ネットワーク伝送するビット数を平準化することができる。図32におけるスライス分割方法では、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間のPスライス数を一定にする場合に比べて、ビット数の偏りがあり、平準化という点では劣るが、Iスライスが連続することがないため、ネットワークでのストリーム消失を低減することができる。
また、図34は、図35、図36および図37は、本発明の実施の形態7における時間順に連続するピクチャの別のスライス分割の変形例を示す図である。
図34、図35および図36におけるスライス分割方法では、時間順に連続するピクチャにおけるIスライスがピクチャ内で最大2つである。また、ピクチャ内のIスライスの位置が、最下位行に移動した次のピクチャ(図34ではピクチャN+3)は、Iスライスを含まないPスライスのみのピクチャとして符号化され、次のピクチャ(図34ではピクチャN+4)で最上位行に戻るように符号化される。ここで、図34に示すように各ピクチャにおけるIスライスの間にあるPスライスの個数は一定(図34では2個および1個)である。
図37におけるスライス分割方法では、時間順に連続するピクチャにおけるIスライスがピクチャ内で最大3つであり、その他は図34、図35および図36と同様である。
なお、スライス分割方法は図26〜図37に示す例に限定されない。時間順に連続するピクチャのそれぞれに含まれる複数のIスライスの位置は違っていてもよい。また、時間順に連続するピクチャのそれぞれに含まれるスライス数も、それぞれのピクチャに含まれるIスライスの数も任意に決めてよい。
以上、実施の形態7によれば、ある時点でストリームが消失してPスライスの画質が劣化しても、ストリームが消失したPスライスの位置のスライスが、時間順に後のピクチャでIスライスとなった際に、ピクチャが正しく復号することができ、画像劣化のあったストリームを回復できる。それ故、画質劣化が無限に伝播することを防止できる。それにより、パイプライン化あるいは並列化を阻害することなく、ストリーム消失の頻度を低めつつ、処理量削減と圧縮率とを向上する画像符号化方法および画像符号化装置を実現できる。
また、時間順に連続するピクチャにおけるIスライスとその次のIスライスとの間のPスライスのブロック数を一定にすることで、連続した所定数のスライス単位で一定のビットレートとなる制御が容易になり、動きの大きい動画あるいは、シーンチェンジを含む動画に対しても、大きな画質劣化なく一定のビットレートでの符号化が実現できるので、ストリーム消失の頻度をさらに低めることができる。
(実施の形態8)
実施の形態1〜7では、時間順に連続するピクチャにおいて、Iスライスの位置をピクチャ毎に、ピクチャの上端から下端に移動させることにより、画質劣化が無限に伝播することを防止する画像符号化方法および画像化装置について説明した。実施の形態1〜7における画像符号化装置は、ある時点でストリームが消失してPスライスの画質が劣化しても、ストリームが消失したPスライスの位置のスライスが、時間順に後のピクチャでIスライスとなった際に、ピクチャが正しく復号することができる。それにより、画質劣化が無限に伝播することを防止できる。
しかし、実施の形態1〜7の画像符号化装置によるストリームでは、ピクチャがIスライスとPスライスとを含む構成をとるため、Iスライスのみを含むIピクチャが存在せず、MPEG−2の場合におけるGOP(Group Of Pictures)構造を明確に定義できない。そのため、このストリームを受けて視聴する視聴者が、このストリームを途中再生するとき、視聴者が違和感を受ける映像が表示される可能性がある。
以下、GOP構造について説明したのち、視聴者が違和感を受ける可能性について説明する。
ピクチャ間の画素の相関を利用した圧縮を行うと、前のピクチャの画素がないと正しく画素が復号できなくなる。そこで、ピクチャ内の画素の相関を利用した圧縮のみが行われるピクチャであるI(イントラ)ピクチャと、ピクチャ間の画素の相関を利用した圧縮が行われるピクチャであるP(インター)ピクチャを組み合わせた符号化を用いるGOP構造がMPEG−1やMPEG−2で導入されている。このGOP構造を用いることで、Iピクチャ以降のピクチャを正しく復号できる。
図38は、MPEG−2のピクチャのGOP構造を示す図である。図38に示すようにIピクチャ1501とそれに続く複数のPピクチャ1502とで構成されるピクチャ群をGOPと呼ぶ。GOPの先頭はIピクチャ1501であるから、GOPをまたぐピクチャ間の画素の相関を利用した圧縮は行われない。これにより、受信側の画像復号化装置は、GOP単位でピクチャを正しく復号することが可能である。このGOPは、ランダムアクセス時、および途中から復号を開始する場合の復号開始単位として、画像復号化装置が用いることができる。
また、ネットワークを介して符号化した画像データ、すなわちストリームを伝送する際に、ネットワーク輻輳などによりストリームの一部が消失した場合には、受信側で消失したストリームに対応する箇所の画像を正しく復号できない。さらに、ピクチャ間の画素の相関を利用した圧縮では正しく復号できない状態が後続のピクチャ復号にも影響する。つまり、画質劣化が後続のピクチャにも伝播する。しかし、GOP構造では、GOPをまたぐピクチャ間の画素の相関を利用した圧縮は行われないので、GOP単位で画質劣化の伝播も停止する。
図39は、MPEG−2のストリーム構造を示す図である。図39に示すように、Iピクチャ501の符号化データ1511、およびPピクチャ1502の符号化データ1512は、それぞれ図38に示すGOPを構成する順序でストリームに配置される。また、Iピクチャ1501の符号化データ1511およびPピクチャ1502の符号化データ1512のそれぞれは、複数のスライスの符号化データを含む。ここで、スライスとは、ブロックを複数まとめた符号化単位である。
Iピクチャ1501は、ピクチャ内の画素の相関を利用した圧縮のみが行われる複数のI(イントラ)スライス1521で構成される。Pピクチャ1502は、ピクチャ間の画素の相関を利用した圧縮が行われる複数のP(インター)スライス1522で構成される。つまり、Iピクチャ1501の符号化データ1511は、複数のIスライス1521の符号化データ1514を含み、Pピクチャ502の符号化データ1512は、複数のPスライス1522の符号化データ1514を含む。
このIスライス1521は、当該Iスライス1521内の画素相関を利用して符号化されるスライス内符号化により符号化される。また、Pスライス1522は、スライス内符号化、または、当該Pスライス1522と他のスライスとの間の画素相関を利用して符号化されるスライス間符号化により符号化される。つまり、Pスライス1522は、当該Pスライス1522内の画素相関、または当該ピクチャ内の当該Pスライス1522以外のスライスとの間の画素相関、または当該Pスライス1522と他のピクチャとの間の画素相関を利用して符号化される。
さらに、GOPの先頭には、GOP内の全てのピクチャに共通に用いられる共通データ1513が付与される。従って、画像復号化装置は、GOP単位でストリームを正しく取得できれば、GOPに含まれるピクチャを全て正しく復号できる。
このように、画像復号化装置は、ランダムアクセス時、および途中再生時には、このGOP単位でストリームを再生できる。
一方、H.264では、1つのピクチャにIスライス1521とPスライス1522とを混在可能である。なお、H.264においても、MPEG−2と同様に、Iスライス1521は、スライス内符号化され、Pスライス1522は、スライス内符号化、またはスライス間符号化される。
図40は、H.264におけるピクチャにおけるスライス分割例を示す図である。図40に示すように、H.264では、MPEG−2と異なり、ピクチャをIスライス1521とPスライス1522とで構成することが可能である。ここでIスライス1521は、画面間の画素の相関を利用しないで符号化されるので、以前のピクチャの画素の有無に関わらず正しく復号できる。
しかし、図40に示すように各ピクチャがIスライス1521とPスライス1522とを含む場合、MPEG−2の場合のように、Iスライス1521のみを含むIピクチャ1501が存在しない。これにより、Iピクチャ1501の直前に共通データ1513を配置できない。つまり、実施の形態1〜7における画像符号化方法では、明確にGOPを定義できないため、途中再生時に、視聴者が違和感を受ける映像が表示される可能性がある。
具体的には、Iスライス1521がピクチャの中央付近に位置する場合、当該中央付近の画像のみが最初に表示されるために、視聴者が違和感を受ける可能性がある。
そこで、以下では、実施の形態1〜7における画像符号化装置が、さらに、途中再生された場合に、視聴者が違和感を受け難い映像が表示される動画像ストリームを生成する例について説明する。
図41は、本発明に係る画像符号化装置1000の構成を示すブロック図である。
画像符号化装置1000は、ブロック数カウンタ部1103と、イントラ/インター決定部1104と、スライスサイズ決定部106と、ビデオ・エンコーダ108と、共通データ生成判定部1106と、共通データ生成部1107とを備える。なお、図10と同様の要素には同一の符号を付しており、詳細な説明は省略する。
ブロック数カウンタ部1103は、符号化するブロック数をカウントすることにより、符号化対象ブロックがピクチャのどの位置に対応するかを計測する。また、ブロック数カウンタ部1103は、符号化対象ブロックがピクチャのどの位置に対応するかを示すブロック位置情報を生成し、生成したブロック位置情報をイントラ/インター決定部1104および共通データ生成判定部1106に通知する。
イントラ/インター決定部1104は、ブロック数カウンタ部102から通知されたブロック位置情報を用いて、符号化対象のスライスがIスライスかPスライスかのいずれであるかを決定する。言い換えると、イントラ/インター決定部1104は、符号化対象ピクチャをIスライスとPスライスとに分割する。
また、イントラ/インター決定部1104は、決定したスライスの種類(IスライスまたはPスライス)を示すスライス情報をビデオ・エンコーダ108におけるスライス符号化部1105および共通データ生成判定部1106に通知する。
スライスサイズ決定部106は、実施の形態1〜7で説明したのと同じ構成要素であるので説明を省略する。
共通データ生成判定部1106は、イントラ/インター決定部1104から符号化対象スライスがIスライスであることが通知された場合、ブロック数カウンタ部1103により通知されたブロック位置情報を用いて、符号化対象のIスライスがピクチャの上端に位置するか否かを判定する。また、共通データ生成判定部1106は、判定結果を共通データ生成部1107に通知する。
共通データ生成部1107は、共通データ生成判定部1106により符号化対象スライスが、Iスライスであり、かつピクチャの上端に位置するスライスであることが通知された場合、複数ピクチャに共通のデータを符号化することにより共通データを生成する。
ビデオ・エンコーダ108は、スライス符号化部1105と、ストリーム生成部1108とから構成される。ビデオ・エンコーダ108は、スライスサイズ決定部106で通知されるスライス分割位置毎のスライス単位で、かつイントラ/インター決定部104で通知されたスライスの種類を示すスライス情報に基づいて、ブロック単位に入力画像を使用可能な符号化方法(イントラ符号化もしくはインター符号化)で、符号化する。
具体的には、スライス符号化部1105は、スライスサイズ決定部106で通知されるスライス分割位置毎のスライス単位で、かつ、イントラ/インター決定部1104から通知されたスライス情報に基づいて、入力画像をIスライスまたはPスライスとして符号化することによりスライス単位の符号化データを生成する。ストリーム生成部1108は、共通データ生成部1107が共通データを生成した場合、共通データ生成部1107が生成した共通データ1211の次にスライス符号化部1105が符号化した符号化データを配置したストリームを出力する。また、ストリーム生成部1108は、共通データ生成部1107が共通データを生成しない場合は、スライス符号化部1105が符号化した符号化データのみを配置したストリームを出力する。
以上の構成により、画像符号化装置1000は、実施の形態1〜7で示したように、時間順に連続するピクチャにおいて、Iスライスの位置をピクチャ毎に、ピクチャの上端から下端に移動させる。さらに、画像符号化装置1000は、複数ピクチャに共通のデータをIスライスの位置が上端のピクチャの直前に配置したストリームを生成する。このストリームを途中再生した場合、ピクチャの上端から下端に向かい画像が正しく表示される領域が広がっていくので、視聴者の違和感を低減できる。
なお、画像符号化装置1000において、Iスライスの位置をピクチャ毎に、ピクチャの上端から下端に移動させる方法は、下記の1)または2)でもよく1)および2)を組み合わせた方法でもよい。
1)Iスライスを構成するブロック数よりもPスライスを構成するブロック数を大きくする。
2)連続するピクチャにおけるIスライスとその次のIスライスとの間に挿入するPスライスを一定にする。
また、画像符号化装置1000において、スライスサイズ決定部106を明示的に備えないとしてもよい。その場合、画像符号化装置において、Iスライスの位置をピクチャ毎に、ピクチャの上端から下端に移動させるとして、複数ピクチャに共通のデータをIスライスの位置が上端のピクチャの直前に配置したストリームを生成させてもよい。その場合の画像符号化装置を前提に以下の実施の形態を説明する。
(実施の形態9)
本発明の実施の形態9に係る画像符号化装置1100は、Iスライスの位置をピクチャ毎に、ピクチャの上端から下端に移動させる。さらに、画像符号化装置1100は、複数ピクチャに共通のデータをIスライスの位置が上端のピクチャの直前に配置したストリームを生成する。このストリームを途中再生した場合、ピクチャの上端から下端に向かい画像が正しく表示される領域が広がっていくので、視聴者の違和感を低減できる。また、実施の形態9では、各ピクチャを行単位でスライス分割することを前提に以下説明する。
まず、本発明の実施の形態9に係る画像符号化装置1100の構成を説明する。
図42は、本発明の実施の形態9に係る画像符号化装置1100の構成を示すブロック図である。
図42に示す画像符号化装置1100は、入力画像1101に含まれる複数のピクチャの各々を、それぞれが複数ブロックを含む複数のスライスに分割する。さらに、画像符号化装置1100は、分割した各スライスをブロック単位で符号化し、符号化した符号化データを含むストリーム1102を生成し、生成したストリーム1102を出力する。
この画像符号化装置1100は、ブロック数カウンタ部1103と、イントラ/インター決定部1104と、スライス符号化部1105と、共通データ生成判定部1106と、共通データ生成部1107と、ストリーム生成部1108とを備える。
ブロック数カウンタ部1103は、符号化するブロック数をカウントすることにより、符号化対象ブロックがピクチャのどの位置に対応するかを計測する。また、ブロック数カウンタ部1103は、符号化対象ブロックがピクチャのどの位置に対応するかを示すブロック位置情報を生成し、生成したブロック位置情報をイントラ/インター決定部1104および共通データ生成判定部1106に通知する。
イントラ/インター決定部1104は、ブロック数カウンタ部1103から通知されたブロック位置情報を用いて、符号化対象のスライスがIスライス1201かPスライス1202かを決定する。言い換えると、イントラ/インター決定部1104は、符号化対象ピクチャをIスライス1201とPスライス1202とに分割する。
具体的には、イントラ/インター決定部1104は、連続する複数のピクチャにおいて、Iスライス1201の位置がピクチャの上端から下端へとピクチャ間で、表示順に順次移動するように(ずれるように)、符号化対象スライスをIスライス1201またはPスライス1202に決定する。さらに、イントラ/インター決定部1104は、予め設定された数のピクチャ毎にIスライス1201の上端から下端への移動が繰り返されるように、符号化対象スライスをIスライス1201またはPスライス1202に決定する。
また、イントラ/インター決定部1104は、決定した、符号化対象スライスがIスライス1201であるかPスライス1202であるかを示すスライス情報をスライス符号化部1105および共通データ生成判定部1106に通知する。
図43は、画像符号化装置1100によるピクチャ1200のスライス分割例を示す図である。図43に示すピクチャ1200a〜1200lは、この順に連続するピクチャである。なお、複数のピクチャ1200a〜1200lを特に区別しない場合には、ピクチャ1200と記す。
図43に示すように、複数のピクチャ1200は、それぞれ(斜線で塗りつぶした)Iスライス1201と、(斜線で塗りつぶしていない)Pスライス1202とを含む。ここで、Iスライス1201は、(ピクチャ1200内の)当該Iスライス1201内の画素の相関を利用した圧縮(スライス内符号化)のみが行われるスライスである。そして、Pスライス1202は、当該Pスライス1202内の画素の相関(スライス内符号化)、または当該Pスライス1202と当該ピクチャ1200に含まれる当該Pスライス1202以外のスライスとの画素の相関、または当該Pスライス1202と他のピクチャ1200との間の画素の相関を利用した圧縮(スライス間符号化)が行われるスライスである。つまり、Iスライス1201は、スライス内符号化が行われるブロックのみを含み、Pスライス1202は、スライス間符号化が行われるブロックのみを含む、または、スライス内符号化が行われるブロックとスライス間符号化が行われるブロックとを含む。
また、ピクチャ1200aでは、Iスライス1201はピクチャ1200aの上端に位置し、次のピクチャ1200bではIスライス1201の位置は1スライス下に移動する。また、Iスライス1201の位置は、ピクチャ1200毎に順次、1スライス下に移動する。Iスライス1201が下端に移動したピクチャ1200jの次のピクチャ1200kでは、Iスライス1201は上端に戻る。
本発明の実施の形態9では、Iスライス1201が1行目に位置するピクチャ1200aおよび1200kをGOPの先頭のピクチャとする。従って、図43では、ピクチャ1200a〜1200jが1つのGOPを構成し、ピクチャ1200k以降は別のGOPを構成する。
このように、本発明の実施の形態9における各ピクチャ1200は、参照ピクチャのストリーム消失に強いIスライス1201と、参照ピクチャのストリーム消失には弱いが圧縮率の良いPスライス1202とを含む。さらに、ピクチャ内におけるIスライス1201の位置は、ピクチャ毎に循環される。これにより、ストリームの一部がネットワーク伝送中にパケットロス等で消失することによりPスライス1202の画質が劣化しても、次に画質劣化が生じた位置にIスライス1201が位置するピクチャにおいて、画質劣化なく復号できる。このように、本発明の実施の形態9に係る画像符号化装置100は、画質劣化が無限に伝播することを防止できる。
また、本発明の実施の形態9では、Pスライス1202と比べてビット数の多いIスライス1201が全てのピクチャに同等数(同等ブロック数)含まれる。これにより、各ピクチャ単位でのビット数はほぼ一定になる。ここで、符号化したストリームを、ネットワークを介して、一定ビットレートで伝送する場合、受信側が、受信したストリームを復号し、復号したピクチャを一定間隔で途切れなく表示するためには、最も伝送に時間がかかるピクチャ1200を伝送し終わるのに必要な時間分だけの遅延時間が必要になる。よって、本発明の実施の形態9では、ピクチャ単位のビット数を一定にする(Iスライス1201が多いピクチャをなくす)ことで、ピクチャ1200のビット数の最大値を小さくできるので、ピクチャ1200の伝送にかかる時間の最大値を小さくでき、これにより遅延時間を削減できる。
スライス符号化部1105は、入力画像1101をイントラ/インター決定部1104から通知されたスライス情報に基づいて、Iスライス1201またはPスライス1202として符号化することによりスライス単位の符号化データ(以下、スライス符号化データ)を生成する。具体的には、スライス符号化部1105は、Iスライス1201を当該Iスライス1201内の画素相関を利用してブロック単位で符号化する。そして、スライス符号化部1105は、Pスライス1202を、当該Pスライス1202内の画素相関、または当該Pスライス1202と当該ピクチャ1200に含まれる当該Pスライス1202以外のスライスとの画素相関、または当該Pスライス1202と他のピクチャとの間の画素相関を利用してブロック単位で符号化する。これらにより、ピクチャ単位の符号化データ(以下、ピクチャ符号化データ)を生成する。このピクチャ符号化データは、複数のスライス符号化データを含む。
共通データ生成判定部1106は、イントラ/インター決定部1104から符号化対象スライスがIスライス1201であることが通知された場合、ブロック数カウンタ部1103により通知されたブロック位置情報を用いて、符号化対象のIスライス1201がピクチャの上端に位置するか否かを判定する。また、共通データ生成判定部1106は、判定結果を共通データ生成部1107に通知する。
共通データ生成部1107は、共通データ生成判定部1106により符号化対象スライスが、Iスライス1201であり、かつピクチャの上端に位置するスライスであることが通知された場合、複数ピクチャに共通のデータを符号化することにより共通データ1211を生成する。
ストリーム生成部1108は、共通データ生成部1107が共通データ1211を生成した場合、共通データ生成部1107が生成した共通データ1211の次にスライス符号化部1105が符号化した符号化データを配置したストリーム1102を出力する。また、ストリーム生成部1108は、共通データ生成部1107が共通データ1211を生成しない場合は、スライス符号化部1105が符号化した符号化データのみを配置したストリーム1102を出力する。つまり、ストリーム生成部1108は、Iスライス1201が一方端に位置するピクチャが符号化されたピクチャ符号化データの直前に、共通データ1211を配置する。また、ストリーム生成部1108は、Iスライス1201が一方端に位置するピクチャが符号化されたピクチャ符号化データの直前以外には共通データ1211を配置しない。
図44は、本発明の実施の形態9に画像符号化装置1100により生成された符号化ストリーム1102の構造を示す図である。また、図44は、図42に示すピクチャを符号化した場合のストリーム1102の構成を示す図である。
図44に示すように、ストリーム1102は、共通データ1211と、複数のピクチャ符号化データ1212a〜1212jとを含む。複数のピクチャ符号化データ1212a〜1212jは、それぞれ複数のピクチャ1200a〜1200jが符号化された符号化データである。また、ストリーム1102において、ピクチャ1200a〜1200jの順序でピクチャ符号化データ1212a〜1212jが配置される。なお、複数のピクチャ符号化データ1212a〜1212jを特に区別しない場合には、ピクチャ符号化データ1212と記す。
各ピクチャ符号化データ1212は、複数のスライス符号化データ1213を含む。複数のスライス符号化データ1213は、それぞれ、Iスライス1201またはPスライス1202が符号化されたデータである。つまり、各ピクチャ符号化データ1212は、それぞれ、Iスライス1201が符号化されたスライス符号化データ1213と、Pスライス1202が符号化されたスライス符号化データ1213とを含む。
また、各ピクチャ符号化データ1212内での、Iスライス1201が符号化されたスライス符号化データ1213の位置は、ピクチャ符号化データ1212内の先頭から末尾へピクチャ符号化データ1212間で順次移動する。また、GOP毎に先頭から末尾への移動が繰り返されるように配置される。
また、GOPの先頭に、共通データ1211と、GOPの先頭であることを示す識別子(図示せず)とが配置される。つまり、Iスライス1201が符号化されたスライス符号化データ1213が、ピクチャ符号化データ1212内で先頭に位置するピクチャ符号化データ1212aの直前に、共通データ1211と上記識別子とが配置される。
この共通データ1211は、画像復号化装置における、GOPに含まれるピクチャの復号化に共通に用いられるデータが符号化されたデータである。具体的には、当該共通に用いられるデータは、ピクチャの画像サイズ、参照ピクチャの情報、および量子化マトリックス等を含む。ここで、参照ピクチャの情報とは、各ピクチャが参照可能なピクチャの範囲(最大何枚前までのピクチャを参照可能か、およびどのピクチャを参照可能か)等を示す情報である。なお、共通データ1211は、ストリーム1102に含まれるピクチャの復号化に共通に用いられるデータともいえる。
また、画像復号化装置では、この共通データ1211を取得するまでは、ピクチャ1200を正しく符号化できない。つまり、画像復号化装置は、途中再生等を行う場合には、共通データ1211以降に配置されたピクチャのみを正しく復号したうえで、表示できる。言い換えると、画像復号化装置は、途中再生等を行う場合に、GOP単位でピクチャを復号できる。
ここで、本発明の実施の形態9では、MPEG−2の場合と異なり、GOPの先頭ピクチャ1200aがPスライス1202を含む。従って、インター符号化が行われるPスライス1202は、GOPの最初のピクチャ1200aでは正しく復号することができない。一方、Iスライス1201は正しく復号できる。よって、正しく復号されたIスライス1201を参照する、後続のピクチャに含まれるPスライス1202も正しく復号できる。
図45は、本発明の実施の形態9におけるスライス分割でGOPの最初から正しく復号できるスライスを説明するための図である。図45に示すように、正しく復号できるスライス1204は、GOPの先頭のピクチャ1200aでは最初の1スライス(Iスライス1201)だけであるが、後続のピクチャ1200になるにつれ、徐々に下方のスライスも正しく復号できるようになる。これにより、GOPの最後のピクチャ1200jでは全てのスライスを正しく復号できる。
なお、このように確実に正しく復号できるのは、Pスライス1202が参照する(画素相関を利用する)範囲が、各ピクチャ1200においてIスライス1201よりも上(先頭)側に位置するスライスまたはIスライス1201に限定される場合である。従って、Pスライス1202を符号化する際は、Iスライス1201よりも上(先頭)側に位置するスライスまたはIスライス1201内の画素を参照するスライス間符号化か、スライス内符号化を行うことが望ましい。しかし、そのような限定がない場合であっても、一般的に参照するのは時間的に近い(例えば直前の)ピクチャの同じ位置のスライスであることが多いことから、以前に生じたエラーが、エラーを生じた画素と同じ位置の画素を含むスライスがIスライスであるピクチャ以降のピクチャにまで伝播する可能性は大幅に低減する。
このように、ストリーム1102を復号する場合、画像復号化装置は、ピクチャ1200の上端から徐々に正しい画像を復号し表示できる。
図46は、画像復号化装置によるストリーム1102の表示例を示す図である。
図46に示すように、ピクチャ1200の上端から下方に向けて徐々に画像が表示される領域が広がっていく。この表示方法は、画面のスクロールと同様であり、日常よく目にする表示方法と似ているので視聴者が違和感を受け難い。このように、本発明に係る画像符号化装置1100は、GOPを途中復号の開始位置として使用してそれ以降のGOPを連続して復号する、いわゆる途中再生時において、視聴者が違和感を受け難い映像を画像復号化装置が表示できる動画像ストリーム1102を生成できる。
ここで、画像復号化装置がGOP単位でランダムに復号する場合には、GOPの最後のピクチャ1200jまでは、全ての画像が正しく復号できないので、ランダムアクセスに対して本発明は必ずしも適しているとはいえない。しかしながら、上述したように、本発明は、途中再生用途の場合は、ピクチャ1200k以降に位置するGOPのスライスは全て正しく復号でき、かつ途中再生開始時の、視聴者の違和感を低減できる。さらに、ネットワーク伝送におけるストリーム消失が生じた場合も、GOPは連続的に復号される。つまり、本発明は、ストリーム消失が生じた場合にも、画像復号化装置が、ピクチャに含まれる全てのスライスを2つ目のGOPから正しく復号できるという効果を有する。
さらに、GOPにおいて、Iスライス1201の位置をピクチャ1200の上端位置から開始するのには、もう1つの利点がある。
図47は、比較のための図であり、上から3スライス目にIスライス1201が位置するピクチャがGOP先頭の場合に正しく復号できるスライスを説明するための図である。図47に示すピクチャ1215a〜1215fは、この順に連続したピクチャであり、ピクチャ1215aはGOPの先頭ピクチャである。
図48A〜Dは、本発明の実施の形態9における参照ピクチャと対象ピクチャとの関係を示す図である。図48Aおよび図48Bは、本発明のようにGOPの先頭ピクチャの上端にIスライス1201が位置する場合の例であり、図48Cおよび図48Dは、GOPの先頭ピクチャの上から3スライス目にIスライス1201が位置する場合の例である。
Pスライス1202を正しく復号するためには、参照ピクチャにおいて正しく復号したIスライス1201または正しく復号できるPスライス1202を参照した符号化が行われているか、スライス内の画素を参照した符号化が行われていなければならない。スライス間の画素を参照して復号する場合に、本発明の場合では、図45に示すように、処理するピクチャ1200のIスライス1201の位置より上の位置のスライスは全て正しく復号できる。よって、図48Aおよび図48Bに示すように対象ピクチャにおいてPスライス1202が参照可能な参照ピクチャのスライスは、“対象ピクチャにおけるIスライス1201から上の位置のスライスの画素のみを参照した符号化を行う”という簡単な規則になるので、符号化装置の実装が容易である。
一方、GOPの先頭ピクチャが上から4スライス目にIスライス1201が位置する場合、図47に示すように上から3スライス目よりも上のスライスは正しく復号できていない。よって、図48Cおよび図48Dに示すように、対象ピクチャのPスライス1202が参照可能な参照ピクチャのスライスは、“対象ピクチャにおけるIスライス1201から上の位置のスライスであり、かつ上から4スライス目から下に位置するスライス”という規則になり条件が増えるので実装が複雑になる。
例えば、本発明に対応する図48Aおよび図48Bに示すPスライス1202aおよび1202bでは、“対象ピクチャにおけるIスライス1201から上の位置のスライスの画素のみを参照した符号化を行う”という規則のみに従い、参照可能なスライスを判定できる。
一方、図48Dに示すPスライス1202dでは、上記と同様に、“対象ピクチャにおけるIスライス1201から上の位置のスライスの画素のみを参照した符号化を行う”という規則のみに従い、当該Pスライス1202dと同じ位置、および直前と直後との位置にあるスライスを参照可能と判定できる。しかしながら、図48Cに示すPスライス1202cでは、参照可能なスライスを判定するために、さらに、“上から4スライス目から下に位置するスライスの画素のみを参照した符号化を行う”という規定が必要になる。
このように、本発明では、GOPの先頭ピクチャの上端にIスライス1201を配置することにより、Pスライスの参照先のピクチャを容易に制御することができる。
また、上記制御により、Pスライス1202は、当該Pスライス1202内の画素相関、または当該Pスライス1202と、当該ピクチャにおけるIスライス1201の位置から当該ピクチャの上端の位置までのスライスとの間の画素相関、または他のピクチャにおけるIスライスの位置から当該他のピクチャの上端に位置するスライスまでのスライスと、当該スライスとの間の画素相関を利用してブロック単位で符号化される。
次に、画像符号化装置1100の動作の流れを説明する。
図49は、画像符号化装置1100によるスライス符号化動作の流れを示すフローチャートである。
まず、イントラ/インター決定部1104は、符号化対象ピクチャを複数のスライスに分割する(S1101)。次に、イントラ/インター決定部1104は、符号化対象スライスがIスライス1201およびPスライス1202のいずれであるかを判定する(S1102)。
符号化対象スライスがIスライス1201の場合(S1102でYes)、共通データ生成判定部1106は、符号化対象のIスライス1201がピクチャの先頭のスライスであるか否かを判定する(S1103)。
符号化対象のIスライス1201がピクチャ先頭のスライスの場合(S1103でYes)、共通データ生成部1107は、複数ピクチャに共通のデータを符号化することで、共通データ1211を生成する(S1104)。また、スライス符号化部1105は、符号化対象のIスライス1201を符号化することによりスライス符号化データを生成する(S1105)。
一方、符号化対象スライスがIスライス1201でない場合(Pスライス1202の場合)(S1102でNo)、および符号化対象のIスライス1201がピクチャの先頭スライスでない場合(S1103でNo)、共通データ生成部1107は、共通データ1211を生成しない。また、スライス符号化部1105は、符号化対象スライスを符号化することによりスライス符号化データを生成する(S1105)。
次に、ストリーム生成部1108は、共通データ生成部1107が共通データ1211を生成した場合(S1104)、共通データ1211の次にスライス符号化部1105が符号化したスライス符号化データを配置したストリーム1102を出力する。また、ストリーム生成部1108は、共通データ生成部1107が共通データ1211を生成しない場合は、スライス符号化部1105が符号化したスライス符号化データのみを配置したストリーム1102を出力する(S1106)。
以上より、本発明の実施の形態9に係る画像符号化装置1100は、Iスライス1201がピクチャの上端に位置するピクチャの直前に共通データ1211を配置したストリーム1102を生成する。これにより、画像復号化装置による途中再生時には、ピクチャの上端から下端に向かい画像が正しく表示される領域が広がっていく。この表示方法は、画面のスクロールと同様であり、日常よく目にする表示方法と似ているので視聴者が違和感を受け難い。このように、本発明に係る画像符号化方法は、途中再生時において、視聴者が違和感を受け難い映像が表示されるストリーム1102を生成できる。
(実施の形態10)
本発明の実施の形態10では、スライス分割の変形例について説明する。
図50は、本発明の実施の形態10における各ピクチャのスライス分割例を示す図である。上述した実施の形態9では、図43に示すように各ピクチャを行単位でスライス分割する例を示した。実施の形態10では、図50に示すようにスライスが行の途中で分割される。この場合も、実施の形態9と同様に、ピクチャの最初のスライス(左上端)がIスライス1201となるピクチャ1220aをGOPの先頭ピクチャとする。
図50に示すピクチャ1220a〜1220vは、この順に連続するピクチャである。また、ピクチャ1220a〜1220tが1つのGOPを構成し、ピクチャ1220u以降が次のGOPを構成する。つまり、Iスライス1201の位置がピクチャの左上端から右下端へピクチャ毎に順次移動する。また、GOP単位で当該移動が繰り返される。
図51は、本発明の実施の形態10におけるストリーム1102の構造を示す図である。また、図51は、図50に示すピクチャを符号化した場合のストリーム1102の構成を示す図である。
図51に示すように、ストリーム1102は、共通データ1211と、複数のピクチャ符号化データ1232a〜1232vとを含む。複数のピクチャ符号化データ1232a〜1232vは、それぞれ複数のピクチャ1220a〜1220vが符号化されたデータである。また、ストリーム1102において、ピクチャ1220a〜1220vの順序でピクチャ符号化データ1232a〜1232vが配置される。
各ピクチャ符号化データ1232a〜1232vは、複数のスライスが符号化されたスライス符号化データ1233を含む。複数のスライス符号化データ1233は、それぞれ、Iスライス1201またはPスライス1202が符号化されたデータである。
また、実施の形態9と同様に、GOPの先頭に、共通データ1211と、GOPの先頭であることを示す識別子(図示せず)とが配置される。
以上の構成でも、実施の形態9と同様の効果を得ることができる。
なお、ここでは、1つの行を2個のスライスに分割する例を述べたが、1つの行を3個以上のスライスに分割してもよい。また、スライスの分割は、任意の単位で行ってもよい。例えば、2つの行を3個のスライスに分割してもよい。
また、1つのピクチャを複数行からなるスライスに分割し、同様にGOPの先頭ピクチャの最初のスライスをIスライス1201としてもよい。
また、分割単位はピクチャ毎に異なってもよい。ただし、Iスライス1201の大きさがピクチャ毎に異なると符号化レートは変動する。
(実施の形態11)
本発明の実施の形態11では、スライス分割の変形例について説明する。
図52は、本発明の実施の形態11における各ピクチャのスライス分割例を示す図である。上述した実施の形態9では、図43に示すように全てのピクチャ1200がIスライス1201を含む例を示した。実施の形態11では、図52に示すようにIスライス1201を含まないピクチャがGOPに含まれる。この場合も、実施の形態9と同様にピクチャの最初のスライスがIスライス1201となるピクチャをGOPの先頭ピクチャとする。
図52に示すピクチャ1240a〜1240vは、この順に連続するピクチャである。また、ピクチャ1240a〜1240tが1つのGOPを構成し、ピクチャ1240u以降が次のGOPを構成する。
図52に示すように連続するピクチャにおいて、Iスライス1201を含むピクチャと、Iスライス1201を含まない(Pスライス1202のみを含む)ピクチャとが交互に配置される。さらに、Iスライス1201を含むピクチャにおいて、Iスライス1201の位置がピクチャの上端から下端へ順次移動する。また、GOP単位で当該移動が繰り返される。
図53は、本発明の実施の形態11におけるストリーム1102の構造を示す図である。また、図53は、図52に示すピクチャを符号化した場合のストリーム1102の構成を示す図である。
図53に示すように、ストリーム1102は、共通データ1211と、複数のピクチャ符号化データ1252a〜1252tとを含む。複数のピクチャ符号化データ1252a〜1252tは、それぞれ複数のピクチャ1240a〜1240vが符号化されたデータである。また、ストリーム1102において、ピクチャ1240a〜1240vの順序でピクチャ符号化データ1252a〜1252tが配置される。
各ピクチャ符号化データ1252a〜1252tは、複数のスライスがそれぞれ符号化された複数のスライス符号化データ1253を含む。複数のスライス符号化データ1253は、それぞれ、Iスライス1201またはPスライス1202が符号化されたデータである。
また、実施の形態9と同様に、GOPの先頭に、共通データ1211と、GOPの先頭であることを示す識別子(図示せず)とが配置される。
以上の構成でも、実施の形態9と同様の効果を得ることができる。
なお、ここではIスライス1201を含むピクチャと、Iスライス1201を含まないピクチャとが交互に配置される例を述べたが、これに限らず、GOPにIスライス1201を含まないピクチャが1個以上含まれる場合も、実施の形態9と同様の効果を得ることができる。
(実施の形態12)
本発明の実施の形態12では、スライス分割の変形例について説明する。
上述した実施の形態9では、図43に示すように各ピクチャ1200が1つのIスライス1201を含む例を示した。実施の形態11では、各ピクチャが2つのIスライス1201を含む例を説明する。この場合も、実施の形態9と同様にピクチャの最初のスライスがIスライス1201となるピクチャをGOPの先頭ピクチャとする。
図54は、本発明の実施の形態12における各ピクチャのスライス分割例を示す図である。
図54に示すピクチャ1260a〜1260fは、この順に連続するピクチャである。また、ピクチャ1260a〜1260eが1つのGOPを構成し、ピクチャ1260f以降が次のGOPを構成する。また、図54に示すように、各ピクチャ1260a〜1260eは、連続した2つのIスライス1201を含む。さらに、連続した2つのIスライス1201の位置がピクチャの上端から下端へ順次移動する。また、GOP単位で当該移動が繰り返される。
図54に示す構造を用いた場合でも、実施の形態9と同様の効果を得ることができる。
なお、本発明の実施の形態12におけるストリーム1102の構造は、上述した実施の形態9におけるストリーム1102の構成と同様である。具体的には、ストリーム1102は、共通データ1211と、複数のピクチャ1260a〜1260eが符号化された複数のピクチャ符号化データとを含む。また、実施の形態9と同様に、GOPの先頭に、共通データ1211と、GOPの先頭であることを示す識別子(図示せず)とが配置される。
また、ここではIスライス1201が連続して配置される例を述べたが、各ピクチャは連続しない複数のIスライス1201を含んでもよい。
図55は、本発明の実施の形態12における各ピクチャのスライス分割例の変形例を示す図である。
図55に示すピクチャ1270a〜1270fは、この順に連続するピクチャである。また、ピクチャ1270a〜1270eが1つのGOPを構成し、ピクチャ1270f以降が次のGOPを構成する。
図55に示すように、各ピクチャ1270a〜1270eは、2つのIスライス1201を含む。この2つのIスライス1201は、1個以上のPスライス1202を挟んで配置される。例えば、当該2つのIスライス1201の間には、4つのPスライス1202が配置される。
図55に示す構造を用いた場合でも、実施の形態9と同様の効果を得ることができる。
なお、各ピクチャは、2個以上のIスライス1201を含んでもよい。
(実施の形態13)
本発明の実施の形態13では、スライス分割の変形例について説明する。
図56は、本発明の実施の形態13における各ピクチャのスライス分割例を示す図である。上述した実施の形態9では、図43に示すように各ピクチャ1200に含まれるIスライス1201とPスライス1202との大きさ(含まれるブロック数)が同じ場合の例を示した。実施の形態13では、図56に示すようにPスライス1202がIスライス1201より大きい。この場合も、実施の形態9と同様にピクチャの最初のスライスがIスライス1201となるピクチャをGOPの先頭ピクチャとする。
図56に示すピクチャ1280a〜1280lは、この順に連続するピクチャである。また、ピクチャ1280a〜1280kが1つのGOPを構成し、ピクチャ1280l以降が次のGOPを構成する。
また、Iスライス1201の位置がピクチャの上端から下端へピクチャ毎に順次移動する。また、GOP単位で当該移動が繰り返される。
図56に示す構造を用いた場合でも、実施の形態9と同様の効果を得ることができる。
また、各ピクチャ1280a〜1280jおよび1280lは、Iスライス1201より大きいPスライス1202を含む。
このように、Pスライス1202を大きくすることで、ピクチャに含まれるスライスの数を少なくできる。これにより、スライス先頭での初期化の回数を削減できるので、符号化の際の処理量を低減できる。また、スライスヘッダの符号量を削減できるので、圧縮効率を向上できる。
ここで、Iスライス1201とPスライス1202との大きさが等しい場合、Iスライス1201のビット数は、Pスライス1202のビット数より多くなる。例えば、Iスライス1201のビット数は、Pスライス1202のビット数の2〜10倍のビット数になる。これに対して、本発明の実施の形態13では、Pスライス1202をIスライス1201より大きくすることで、Iスライス1201とPスライス1202とのビット数の差を縮めることができる。
また、図45に示すピクチャ1200a〜1200lでは、各ピクチャ1200に含まれるIスライス1201の間隔が、等間隔にならないという問題がある。具体的には、ピクチャ1200aのIスライス1201と、ピクチャ1200bのIスライス1201との間には、1ピクチャ分のブロックを含む複数のPスライス1202が配置される。しかしながら、ピクチャ1200jのIスライス1201と、ピクチャ1200kのIスライス201とは連続して配置される。つまり、短時間における平均ビット数が一定とならない。
ここで、符号化の際には、直前に発生したビット数に基づき、これから符号化するスライスの符号化後のビット数を予測することが行われる。上述したように、短時間における平均ビット数が一定とならない場合には、当該ビット数の予測が困難となるという問題がある。
これに対して、本発明の実施の形態13では、GOPの最後のピクチャ1280kは、Iスライス1201を含まない。これにより、ピクチャ1280jのIスライス1201と、その次のIスライス1201である、ピクチャ1280lのIスライス1201との間に配置されるPスライス1202の大きさを同じにできる。よって、符号化の際のビット数の予測を容易に行うことができる。
なお、本発明の実施の形態13におけるストリーム1102の構造は、上述した実施の形態9におけるストリーム1102の構成と同様である。具体的には、ストリーム1102は、共通データ1211と、複数のピクチャ1280a〜1280lが符号化された複数の符号化データとを含む。また、実施の形態9と同様に、GOPの先頭に、共通データ1211と、GOPの先頭であることを示す識別子(図示せず)とが配置される。
なお、上記実施の形態10〜13において、Iスライス1201が、GOP毎に、ピクチャの上端(左上端)から下端(右下端)に移動する例を説明したが、下端(右下端)から上端(左上端)に移動してもよい。つまり、Iスライス1201は、GOP毎にピクチャの一方端から他方端へ移動すればよい。
また、ストリーム生成部1108は、ストリーム1102において、共通データ1211を、Iスライス1201がピクチャの上端(一方端)に位置するピクチャの直前に常に配置する必要はない。言い換えると、上述したGOPを複数含むピクチャを1つのGOPとしてもよい。つまり、1つのGOP内で、ピクチャの一方端から他方端へIスライス1201の移動が複数回繰り返されてもよい。
また、上記実施の形態10〜13において、スライス分割の変形例を個別に説明したが、上記実施の形態10〜13の変形例を組み合わせてもよい。
(実施の形態14)
本発明の実施の形態14では、上記実施の形態1〜13で示した画像符号化装置を実現するためのプログラムを、フレキシブルディスク等の記録媒体に記録することにより、上記実施の形態1〜13で示した処理を、独立したコンピュータシステムにおいて実施する例を説明する。
図57A〜図57Cは、上記各実施の形態の画像符号化装置を、フレキシブルディスク等の記録媒体に記録されたプログラムを用いて、コンピュータシステムにより実施する場合の説明図である。
図57Aは、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示す図である。図57Bは、フレキシブルディスク1300を正面からみた外観、フレキシブルディスク1300の断面構造、およびディスク1301を示す図である。
フレキシブルディスク1300は、ケース1302と、ケース1302内に内蔵されるディスク1301とを備える。ディスク1301の表面には、同心円状に外周から内周に向かって複数のトラック1303が形成される。各トラック1303は角度方向に16のセクタ1304に分割される。従って、ディスク1301上に割り当てられた領域に、上記プログラムが記録されている。
また、図57Cは、フレキシブルディスク1300への上記プログラムの記録、およびフレキシブルディスク1300からの上記プログラムの読み出しおよび再生を行うコンピュータシステム1310の構成を示す図である。例えば画像符号化装置1000を実現する上記プログラムをフレキシブルディスク1300に記録する場合は、コンピュータシステム1310は、上記プログラムを、フレキシブルディスクドライブ1311を介してフレキシブルディスク1300に書き込む。
また、フレキシブルディスク1300内のプログラムを実行することにより画像符号化装置1000の機能をコンピュータシステム1310中に構築する場合は、フレキシブルディスクドライブ1311によりプログラムをフレキシブルディスク1300から読み出し、コンピュータシステム1310に転送する。コンピュータシステム1310は、転送されたプログラムを実行することにより、上述した画像符号化装置1000の機能を実現する。
なお、上記説明では、記録媒体としてフレキシブルディスク1300を例に説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ICカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。また、コンピュータシステム1310に着脱可能な記録媒体に限らず、コンピュータシステム1310が備えるHDD(ハードディスク・ドライブ)、不揮発性メモリ、RAMおよびROMに記録されるプログラムを、コンピュータシステム1310が実行してもよい。さらに、コンピュータシステム1310は有線または無線の通信網を介して取得したプログラムを実行してもよい。
また、上述した実施の形態1〜13に示す画像符号化装置に関しても、同様に、コンピュータシステム1310で実現可能である。
なお、図41に示す画像符号化装置1000に含まれる各機能ブロックは集積回路であるLSIとして実現されてもよい。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。例えばメモリ以外の機能ブロックが1チップ化されていてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、またはLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらに、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
また、各機能ブロックのうち、符号化の対象となるデータを格納する手段だけ1チップ化せずに別構成としてもよい。
以上、本発明の画像符号化方法および画像符号化装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものあるいは、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。