本発明によれば、空間領域または周波数領域におけるフィルタ条件を設計するためには、予測信号と、予測誤差信号と、再構築動画像信号とを考慮することができる。これにより、これら3つの信号それぞれのノイズを個々に考慮することが可能になる。これらの信号のうち少なくとも2つに対してフィルタデータを決定し、そのフィルタデータを、当該少なくとも2つの信号のフィルタデータ間の相互相関を用いて符号化する。
これにより、本発明は、効率的なフィルタリング手法を提供することができ、符号化動画像ストリームを伝送するために必要なデータ量を削減しつつ、フィルタリングされたデータの質を高めることが可能になる。つまり、符号化効率の低下を抑えて復号動画像の画質を向上させることができる。
以下、本発明の実施の形態について説明する。
(実施の形態1)
図5は、本実施の形態における、H.264/MPEG−4 AVCに基づく例示的なエンコーダたる動画像符号化装置500のブロック図である。
本実施の形態における動画像符号化装置500は、減算器105、変換/量子化部110、逆量子化/逆変換部120、加算器125、デブロッキングフィルタ130、メモリ140、補間フィルタ150、動き補償予測部160、動き検出部165、画面内予測部170、イントラ/インタースイッチ175、ポストフィルタ設計部540およびエントロピー符号化部590を備える。本実施の形態における動画像符号化装置500では、ポストフィルタ設計部540の処理動作に特徴がある。
減算器105は、入力信号である動画像信号から予測信号を減算することにより予測誤差信号を生成する。
変換/量子化部110は、減算器105によって生成された予測誤差信号に対して、DCTなどの直交変換および量子化を行うことによって、量子化係数を生成する。
逆量子化/逆変換部120は、変換/量子化部110によって生成された量子化係数に対して、逆量子化を行うとともに逆DCTなどの逆直交変換を行うことによって、量子化予測誤差信号を生成する。
加算器125は、予測信号に対応する量子化予測誤差信号に、その予測信号を加算することによって、再構築信号を生成する。
デブロッキングフィルタ130は、再構築信号の示す画像に含まれるブロック歪みを取り除き、ブロック歪みが除去された再構築信号である再構築動画像信号をメモリ140に格納する。なお、本実施の形態では、加算器125およびデブロッキングフィルタ130から再構築部が構成される。
補間フィルタ150は、メモリ140に格納されている再構築動画像信号によって示される参照画像を読み出し、その参照画像に対して小数画素を補間する。
画面内予測部170は、画面内予測により符号化対象ブロックの予測画像を生成し、その予測画像を示す予測信号を出力する。
動き検出部165は、メモリ140に格納されている再構築動画像信号によって示される参照画像を参照し、動画像信号に含まれるブロックに対して動きベクトルを検出する。そして、動き検出部165は、その動きベクトルを動きデータとして動き補償予測部160およびエントロピー符号化部590に出力する。
動き補償予測部160は、補間フィルタ150によって小数画素が補間された参照画像と、動き検出部165から出力された動きデータとを用いて動き補償を行う。これにより、動き補償予測部160は、画面間予測により符号化対象ブロックの予測画像を生成し、その予測画像を示す予測信号を出力する。
イントラ/インタースイッチ175は、符号化対象ブロックの符号化タイプに応じて、画面内予測部170によって生成された予測信号と、動き補償予測部160によって生成された予測信号とを切り換えて、減算器105および加算器125に出力する。例えば、符号化対象ブロックが画面内予測符号化される場合には、イントラ/インタースイッチ175は、画面内予測部170によって生成された予測信号を減算器105および加算器125に出力する。一方、符号化対象ブロックが画面間予測符号化される場合には、イントラ/インタースイッチ175は、動き補償予測部160によって生成された予測信号を減算器105および加算器125に出力する。
ポストフィルタ設計部540は、ポストフィルタリングについてのフィルタ係数などのフィルタ条件を設計する。つまり、ポストフィルタ設計部540は、入力信号である動画像信号と、再構築動画像信号と、予測信号と、量子化予測誤差信号とに基づいて、再構築動画像信号、予測信号および量子化予測誤差信号のそれぞれに対するフィルタ係数を算出する。次に、ポストフィルタ設計部540は、それらのフィルタ係数をデコーダ側において復元するためのフィルタヒントを、フィルタ係数間の相互相関に基づいて生成し、フィルタヒントを含む新たなフィルタデータ(差分フィルタデータ)をエントロピー符号化部590に出力する。つまり、ポストフィルタ設計部540は、再構築動画像信号、予測信号および量子化予測誤差信号のそれぞれに対して、フィルタ係数を含むフィルタデータを決定し、フィルタデータ間の相互相関に基づいてフィルタヒント(差分フィルタデータ)を生成する。なお、上述のフィルタヒントは、再構築動画像信号、予測信号および量子化予測誤差信号のそれぞれに対して生成され、フィルタ係数そのものであっても、フィルタ係数と異なるものであってもよい。また、フィルタデータは、例えば相互相関ベクトルなど、いかなる情報であってもよい。
エントロピー符号化部590は、量子化係数および動きデータと共にその差分フィルタデータをエントロピー符号化(例えば、算術符号化)し、エントロピー符号化された差分フィルタデータを含む符号化動画像信号を出力する。なお、本実施の形態では、ポストフィルタ設計部540のフィルタデータを決定する機能部分が決定部として構成され、ポストフィルタ設計部540のフィルタヒント(差分フィルタデータ)を生成する機能部分と、エントロピー符号化部590とが符号化部として構成されている。
例えば、ポストフィルタ設計部540は、入力信号である所望の信号sとフィルタリング済み信号s’との間の平均二乗誤差が最小になるようにフィルタ係数を算出する。
上記(式1)において、w1,・・・,wM はポストフィルタリングのM個のフィルタ係数であり、M個の予測サンプル(予測信号)p1,・・・,pMに適用される。また、wM+1,・・・,wM+NはポストフィルタリングのN個のフィルタ係数であり、N個の量子化予測誤差サンプル(量子化予測誤差信号)e1,・・・,eNに適用される。また、wM+N+1,・・・,wM+N+OはポストフィルタリングのO個のフィルタ係数であり、O個の再構築動画像サンプル(再構築動画像信号)r1,・・・,rOに適用される。wM+N+O+1はオフセットである。
図4に関して上述したように、所望の信号sとフィルタリング済み信号s’との間の平均二乗誤差を最小化するフィルタ係数は、Wiener−Hopf方程式を解くことにより決定してもよい。
図6Aは、本実施の形態における動画像符号化装置500の処理動作を示すフローチャートである。
動画像符号化装置500の画面内予測部170または動き補償予測部160は、予測信号を生成する(ステップS100)。次に、減算器105は、動画像信号から予測信号を減算することによって予測誤差信号を生成し、変換/量子化部110および逆量子化/逆変換部120は、その予測誤差信号に対して量子化および逆量子化を行うことによって量子化予測誤差信号を生成する(ステップS110)。さらに、加算器125は、量子化予測誤差信号を予測信号に加算することによって再構築信号を生成し、デブロッキングフィルタ130は、その再構築信号からブロック歪みを除去することによって再構築動画像信号を生成する(ステップS120)。
ポストフィルタ設計部540は、ステップS100,S110,S120で生成された各信号に対してフィルタデータを決定する(ステップS130)。このとき、ポストフィルタ設計部540は、上記(式1)に基づく演算を行い、平均二乗誤差が最小になるようにフィルタ係数を決定する。つまり、ポストフィルタ設計部540は、予測信号、量子化予測誤差信号および再構築動画像信号のそれぞれが示す画像よりも、動画像信号の示す画像に近い画像(復号画像)が得られるように、フィルタ係数を含むフィルタデータを決定する。そして、ポストフィルタ設計部540およびエントロピー符号化部590は、決定されたフィルタデータ間の相互相関に基づいて、その決定されたフィルタデータを符号化する(ステップS140)。
図6Bは、フィルタデータの符号化(ステップS140)の詳細な処理動作を示すフローチャートである。
ポストフィルタ設計部540は、決定された2つのフィルタデータのうちの一方のフィルタデータから、他方のフィルタデータを予測することによって、他方のフィルタデータの予測データを特定する(ステップS142)。次に、ポストフィルタ設計部540は、その他方のフィルタデータと予測データとの差分を算出することよって、差分フィルタデータ(フィルタヒント)を算出する(ステップS144)。そして、エントロピー符号化部590は、その差分フィルタデータをエントロピー符号化する(ステップS146)。このように、他方のフィルタデータに対して、差分の算出およびエントロピー符号化が行われることによって、その他方のフィルタデータは符号化される。つまり、符号化フィルタデータが生成される。
なお、フィルタデータは、典型的にはフィルタ係数であり、差分フィルタデータは、典型的には、2つのフィルタ係数間の差分を示す差分フィルタ係数であり、その差分フィルタ係数がフィルタヒントとして扱われる。また、上述の予測データは、典型的には、一方のフィルタデータ、すなわち一方のフィルタ係数そのものである。
具体的には、ポストフィルタ設計部540は、ステップS120で、再構築動画像信号に対するフィルタ係数と、予測信号に対するフィルタ係数と、量子化予測誤差信号に対するフィルタ係数とを決定する。そして、ポストフィルタ設計部540は、ステップS142で、再構築動画像信号に対するフィルタ係数から、予測信号に対するフィルタ係数を予測することによって、その予測信号に対する予測データ(予測フィルタ係数)を特定する。次に、ポストフィルタ設計部540は、ステップS144,S146で、予測信号に対するフィルタ係数と予測フィルタ係数との差分を算出し、エントロピー符号化することによって、予測信号に対するフィルタ係数を符号化する。また、ポストフィルタ設計部540は、ステップS142では、例えば、再構築動画像信号に対するフィルタ係数を予測フィルタ係数として特定する。
また、ポストフィルタ設計部540は、ステップS130で決定した、予測信号、量子化予測誤差信号および再構築動画像信号のそれぞれのフィルタ係数(フィルタデータ)を量子化し、その量子化されたフィルタ係数から差分フィルタ係数を算出してもよい。または、ポストフィルタ設計部540は、フィルタ係数を量子化せずに、差分フィルタ係数を算出し、その差分フィルタ係数を量子化してもよい。また、予測信号、量子化予測誤差信号および再構築動画像信号のうち、何れか1つまたは2つの信号に対するフィルタ係数のみを量子化してもよい。このような量子化が行われる場合には、ポストフィルタ設計部540は、その量子化の精度(Wiener_Filter_Precision[c])を示す情報(filter_precision[c])を差分フィルタデータに含める。
また、ポストフィルタ設計部540は、フィルタ係数を決定する際には、フィルタ係数のそれぞれを色成分ごとに決定し、第1の色成分(例えばc=1に対応する色成分)のフィルタ係数と、第2の色成分(例えばc=2に対応する色成分)のフィルタ係数との間の相互相関に基づいて、第1の色成分のフィルタ係数を符号化してもよい。
図7は、本実施の形態におけるデコーダたる動画像復号装置600のブロック図である。
本実施の形態における動画像復号装置600は、動画像符号化装置500から出力された出力信号である符号化動画像信号を入力信号として取得し、その入力信号を復号する。この動画像復号装置600は、エントロピー復号部600、逆量子化/逆変換部220、加算器225、デブロッキングフィルタ230、メモリ240、補間フィルタ250、画面内予測部270、イントラ/インタースイッチ275、動き補償予測部260およびポストフィルタ640を備える。本実施の形態における動画像復号装置600では、ポストフィルタ640に特徴がある。
エントロピー復号部690は、入力信号である符号化動画像信号に対してエントロピー復号(例えば、算術復号)を行うことにより、動きデータ、量子化係数およびフィルタデータ(差分フィルタデータ)をそれぞれ、動き補償予測部260、逆量子化/逆変換部220およびポストフィルタ640に出力する。このとき、符号化動画像信号に含まれていた符号化フィルタデータは、エントロピー復号され、差分フィルタデータに変換される。
逆量子化/逆変換部220は、エントロピー復号部690から出力された量子化係数に対して、逆量子化を行うとともに逆DCTなどの逆直交変換を行うことによって、量子化予測誤差信号を生成する。なお、本実施の形態では、エントロピー復号部690および逆量子化/逆変換部220から予測誤差信号生成部が構成されている。また、エントロピー復号部690から取得部が構成されている。
加算器225は、逆量子化/逆変換部220によって生成された量子化予測誤差信号に、その量子化予測誤差信号に対応する予測信号を加算することにより、再構築信号を生成する。
デブロッキングフィルタ230は、再構築信号の示す画像に含まれるブロック歪みを取り除き、ブロック歪みが除去された再構築信号である再構築動画像信号をメモリ240に格納する。なお、本実施の形態では、加算器225およびデブロッキングフィルタ230から再構築部が構成されている。
補間フィルタ250は、メモリ240に格納されている再構築動画像信号によって示される参照画像を読み出し、その参照画像に対して小数画素を補間する。
画面内予測部270は、画面内予測により符号化対象ブロックの予測画像を生成し、その予測画像を示す予測信号を出力する。
動き補償予測部260は、補間フィルタ250によって小数画素が補間された参照画像と、エントロピー復号部690から出力された動きデータとを用いて動き補償を行う。これにより、動き補償予測部260は、画面間予測により符号化対象ブロックの予測画像を生成し、その予測画像を示す予測信号を出力する。
イントラ/インタースイッチ275は、符号化対象ブロックの符号化タイプに応じて、画面内予測部270によって生成された予測信号と、動き補償予測部260によって生成された予測信号とを切り換えて、加算器225に出力する。例えば、符号化対象ブロックが画面内予測符号化されている場合には、イントラ/インタースイッチ275は、画面内予測部270によって生成された予測信号を加算器225に出力する。一方、符号化対象ブロックが画面間予測符号化されている場合には、イントラ/インタースイッチ275は、動き補償予測部260によって生成された予測信号を加算器225に出力する。
ポストフィルタ640は、エントロピー復号部690からフィルタデータ(差分フィルタデータ)を取得し、その差分フィルタデータに基づいてフィルタ係数などのフィルタ条件を設定する。この差分フィルタデータには、量子化予測誤差信号、予測信号および再構築動画像信号のそれぞれに対して適用されるべきフィルタ係数を復元するためのフィルタヒントが含まれている。つまり、ポストフィルタ640は、それらのフィルタデータ(フィルタ係数)間の相互相関に基づいて、量子化予測誤差信号、予測信号および再構築動画像信号のそれぞれに対して適用されるべきフィルタ係数をフィルタヒントから復元する。さらに、ポストフィルタ640は、量子化予測誤差信号、予測信号および再構築動画像信号のそれぞれに対して復元されたフィルタ係数を適用することにより、つまりポストフィルタリングを行うことにより、復号画像を示す復号動画像信号を生成し、その復号動画像信号を出力信号として出力する。
なお、本実施の形態では、エントロピー復号部690のエントロピー復号を行う機能部分と、ポストフィルタ640のフィルタ係数を復元する機能部分とから、フィルタデータ復号部が構成されている。さらに、ポストフィルタ640のフィルタリングを行う機能部分からフィルタが構成されている。
図8Aは、本実施の形態における動画像復号装置600の処理動作を示すフローチャートである。
動画像復号装置700のエントロピー復号部690は、符号化動画像信号に対してエントロピー復号を行うことによって量子化係数を生成し、逆量子化/逆変換部220は、その量子化係数に対して逆量子化および逆直交変換を行うことによって量子化予測誤差信号を生成する(ステップS200)。次に、画面内予測部270または動き補償予測部260は予測信号を生成する(ステップS210)。そして、加算器225は、量子化予測誤差信号に予測信号を加算することによって再構築信号を生成し、デブロッキングフィルタは、その再構築信号からブロック歪みを除去することによって再構築動画像信号を生成する(ステップS220)。
さらに、エントロピー復号部690は、符号化動画像信号から、量子化予測誤差信号、予測信号および再構築動画像信号のそれぞれに対する符号化フィルタデータを取得する(ステップS230)。エントロピー復号部690およびポストフィルタ640は、フィルタデータ間の相互相関に基づいて、それらの符号化フィルタデータを復号する(ステップS240)。
そして、ポストフィルタ640は、量子化予測誤差信号、予測信号および再構築動画像信号のそれぞれに対してフィルタデータを適用することによってフィルタリングを行い、出力信号である復号動画像信号を出力する(ステップS260)。
図8Bは、符号化フィルタデータの復号(ステップS240)の詳細な処理動作を示すフローチャートである。
エントロピー復号部690は、符号化フィルタデータをエントロピー復号することにより、量子化予測誤差信号、予測信号および再構築動画像信号のうち何れかの信号に対する差分フィルタデータ(フィルタヒント)を取得して、ポストフィルタ640に出力する(ステップS242)。
ポストフィルタ640は、その差分フィルタデータを取得すると、その差分フィルタデータに対応する元のフィルタデータ(典型的にはフィルタ係数)を予測する(ステップS244)。このときポストフィルタ640は、既に算出された他のフィルタデータ(典型的にはフィルタ係数)を用いて、上述の差分フィルタデータに対応する元のフィルタデータを予測する。これにより、予測データが特定される。次に、ポストフィルタ640は、差分フィルタデータ(フィルタヒント)に予測データを加算することによって、その差分フィルタデータに対応する元のフィルタデータを算出する(ステップS246)。このように、符号化フィルタデータに対して、エントロピー復号および加算が行われることによって、その符号化フィルタデータは復号される。なお、上述の予測データは、典型的には、既に算出された他のフィルタデータ、すなわち他のフィルタ係数そのものである。
また、差分フィルタデータに、量子化の精度(Wiener_Filter_Precision[c])を示す情報(filter_precision[c])が含まれている場合には、ポストフィルタ640は、その情報の示す精度にしたがって、予測信号、量子化予測誤差信号および再構築動画像信号のそれぞれに対するフィルタ係数または差分フィルタ係数を逆量子化する。
また、フィルタ条件の設計および/または適用は、周波数領域において効果的である。動画像信号の周波数領域におけるフィルタリングのためのフィルタが特に効果的なのは、ノイズが周波数領域でも付加される場合である。これは、周波数領域に変換された動画像信号を量子化および伝送/格納するための今日の動画像符号化方法の大半の場合がそうである。
図9は、周波数領域においてフィルタ設計を行う動画像符号化装置700のブロック図である。
動画像符号化装置700は、動画像符号化装置500のポストフィルタ設計部540の代わりに周波数領域ポストフィルタ設計部730を備えるエンコーダである。この周波数領域ポストフィルタ設計部730は、周波数領域においてポストフィルタリングのフィルタ条件を設計する。具体的には、周波数領域ポストフィルタ設計部730は、動画像信号、予測信号、量子化予測誤差信号および再構築動画像信号をそれぞれ直交変換する。これにより、それぞれの信号の領域が空間領域から周波数領域に変換される。さらに、周波数領域ポストフィルタ設計部730は、ポストフィルタ設計部540による処理と同様、周波数領域の上記各信号に基づいてフィルタ係数を決定し、それらのフィルタ係数からフィルタヒントを算出する。そして、周波数領域ポストフィルタ設計部730は、フィルタヒントを含む差分フィルタデータをエントロピー符号化部590に出力する。
図10は、周波数領域においてフィルタリングを行う動画像復号装置800のブロック図である。
動画像復号装置800は、動画像復号装置600のポストフィルタ640の代わりに周波数領域ポストフィルタ840を備えるデコーダである。周波数領域ポストフィルタ840は、ポストフィルタ640と同様、エントロピー復号部690から差分フィルタデータを取得し、その差分フィルタデータに基づいてフィルタ係数などのフィルタ条件を設定する。さらに、周波数領域ポストフィルタ840は、予測信号、量子化予測誤差信号および再構築動画像信号を取得し、それらの信号を直交変換する。これにより、それぞれの信号の領域が空間領域から周波数領域に変換される。次に、周波数領域ポストフィルタ840は、周波数領域で表される量子化予測誤差信号、予測信号および再構築動画像信号のそれぞれに対して設定されたフィルタ係数を適用することにより、周波数領域で表される復号動画像信号を生成する。そして、周波数領域ポストフィルタ840は、その復号動画像信号に対して逆直交変換を行う。これにより、復号動画像信号の領域が周波数領域から空間領域に変換される。周波数領域ポストフィルタ840は、その空間領域で表される復号動画像信号を出力信号として出力する。
なお、周波数領域ポストフィルタ840で設定されるフィルタ条件は、周波数領域ポストフィルタ設計部730によって設計されるフィルタ条件と同一であっても類似していてもよい。
例えば、予測信号と、量子化予測誤差信号と、再構築動画像信号とは、フィルタ条件の設計またはフィルタリングの前に、周波数領域に変換され、それぞれの信号に対してK個のフィルタ係数が決定される。フィルタリングが行われるときには、周波数領域の各信号に対して各フィルタ係数が個々に適用される。例えば、フィルタ条件の設計に対する最適化基準として、通常、入力信号の周波数係数である所望の周波数係数ckとフィルタリング済み周波数係数ck’との間の最小平均二乗誤差を用いてもよい。フィルタリング済み周波数係数ck’は以下の(式2)より求められる。
上記(式2)において、wk、1,・・・,wk、MはポストフィルタリングのM個のフィルタ係数であり、予測信号のM個の周波数係数ck,p,1,・・・,ck,p,Mに適用される。また、wk、M+1,・・・,wk、M+NはポストフィルタリングのN個のフィルタ係数であり、量子化予測誤差信号のN個の周波数係数ck,e,1,・・・,ck,e,Nに適用される。また、wk、M+N+1,・・・,wk、M+N+OはポストフィルタリングのO個のフィルタ係数であり、再構築動画像信号のO個の周波数係数ck,r,1,・・・,ck,r,Oに適用される。wk,M+N+O+1はオフセットである。
ここにおいても、所望の周波数係数ckとフィルタリング済み周波数係数ck’との間の平均二乗誤差を最小化するフィルタ係数は、Wiener−Hopf方程式を適用することにより求めることができる。
フィルタ係数およびオフセットは符号化され、デコーダへ伝送される必要がある。もしくは、デコーダにおいてフィルタ係数の算出に必要な情報および/またはオフセットを、デコーダ側に提供してもよい。そのような情報は、エンコーダに入力された原動画像信号に何らかの関連性があり、デコーダ側では入手不可能な情報であることが好ましい。例えば、予測信号と、(量子化)予測誤差信号と、再構築動画像信号とのうち少なくとも1つと、原動画像信号との相互相関がフィルタデータに含まれる。また、予測信号と、(量子化)予測誤差信号と、再構築動画像信号とのうち少なくとも1つと、量子化誤差信号との相互相関がフィルタデータに含まれてもよい。
動画像シーケンス(符号化動画像信号)のうち、数枚のピクチャ、GOP(Group of Pictures)、フレーム、スライスまたはブロックなどの小さな部分に対するフィルタデータを提供することにより、フィルタリング済みの信号の質を高めることがある。しかしながらその結果、符号化動画像信号(ビットストリーム)にそのようなフィルタデータを埋め込むために必要な帯域幅を増加させてしまう。
よって、本発明が提供する方式は、上述したような、個々のフィルタ係数が予測信号と、量子化予測誤差信号と、再構築動画像信号とのそれぞれに対応して伝送される多種のフィルタリング方式において必要とされるフィルタデータ(フィルタ係数やオフセットなど)を効率的に符号化する方式である。高い符号化効率を実現するために、この符号化方式では、符号化および伝送対象の係数とオフセットとの統計的依存関係を利用する。
本発明は他のフィルタリング方式に適用してもよい。例えば、予測信号と、量子化予測誤差信号と、再構築動画像信号との3つすべてを考慮しなくてもよい。動画像信号に適用される差分パルス符号変調方式にしたがって、予測信号および予測誤差信号が符号化対象動画像信号から算出される。次に、第1のフィルタデータを予測信号の統計的特性に基づき求めてもよく、第2のフィルタデータを予測誤差信号の統計的特性に基づき算出する。各フィルタデータの決定には、ウィナーフィルタまたは他の方法を用いてもよい。そして、第1のフィルタデータおよび第2のフィルタデータは両方、相互統計的特性を利用して符号化される。
また、異なる色成分に対応する信号など、他の信号を個々に考慮してもよい。
フィルタデータはフィルタ係数およびオフセットから構成されてもよい。しかし、フィルタ長または他のデータを含んでもよい。フィルタ係数を信号送信する代わりに、エンコーダに入力される原動画像信号と、複数のフィルタリング対象動画像信号のうちいずれかとの間の相互相関など、フィルタ係数の算出に必要な情報を信号送信してもよく、これにより、フィルタ係数をデコーダ側において算出できる。
フィルタリングはポストフィルタリングであってもよいが、それに限られない。本発明は、補間フィルタおよび/またはデブロッキングフィルタに適用してもよい。
また、参照フレームの整数画素位置に適用する予測フィルタにも適用可能である。 さらに、例えば、予測誤差信号のフィルタデータを複数のフィルタ(例えば、ポストフィルタリングおよび補間フィルタ)の設計に用いてもよい。これらの場合、異なるフィルタのフィルタデータ間における統計的依存関係を符号化に利用してもよい。
フィルタデータの符号化において、より高い符号化効率を実現するために、フィルタリング済み信号のフィルタデータ(フィルタ係数および/またはオフセットなど)間の統計的依存関係を利用する。これは以下のような様々な符号化技術を利用することにより達成する。
−フィルタデータの予測を用いた符号化
−フィルタデータの変換符号化または、
−マルコフモデルを用いたフィルタデータの符号化または、
−ベクトル量子化およびジョイントエントロピー符号化
これらの符号化技術は、フィルタデータがフィルタ係数およびオフセットからなる、空間領域フィルタリングに関する下記の例において説明する。
フィルタリング済み信号のフィルタ係数とオフセットとの間の統計的依存関係を利用するには、本発明の一実施の形態に係る予測符号化を行う。これにより、フィルタ係数w1,・・・,wM+N+O+1は、以下の(式3)のように予測される。
上記(式3)は予測フィルタ係数を示す。フィルタ係数 と予測フィルタ係数 との差分に相当する、残りの予測誤差である差分フィルタ係数ew1,・・・,ewM+N+O+1を符号化する。一般的に、フィルタ係数w1,・・・,wM+N+O+1を符号化するよりも、差分フィルタ係数ew1,・・・,ewM+N+O+1を符号化する方が符号化効率が高い。
エンコーダ(デコーダ)における対象フィルタ係数は、符号化(または復号)済みフィルタ係数に基づき予測される。しかし、伝送されたフィルタ係数以外の、デコーダにおいてすでに利用可能な情報も考慮して予測を行ってもよい。
例えば、予測フィルタ係数は、以下の(式4)から得られる。
上記(式4)において、インデックスtは時間インスタンスを示す。時間インスタンスは相対復号順序に関連している。すなわち、tより小さな時間インデックスを有する情報は符号化済みである。例えば、時間インスタンスtは、フィルタ係数が決定される領域に応じて、ピクチャまたは1ブロックの符号化(または復号)に関連してもよい。関数Fiは通常、すべての符号化済みフィルタ係数に応じて決まる関数である。
特に、線形予測因子をフィルタ係数およびオフセットの予測に用いてもよい。例えば、関数Fiは以下の(式5)のように示される。
上記(式5)において、αiは定数値である。予測係数αj,t ,・・・,αj,t−1 ,・・・,αj,t−2 ,・・・およびαiは、固定されていても、または適応的に変化してもよい。適応的な予測係数の場合、その予測係数をデコーダ側に提供してもよい。すなわち、適応的な予測係数を、例えばシーケンスヘッダまたはフレームヘッダにおける符号化動画像信号に含める。また、受信済みのデータからデコーダにおいて算出することもできる。また、予測係数αj,t ,・・・,αj,t−1 ,・・・,αj,t−2 ,・・・およびαiを、スライスまたはブロック等の、一枚のピクチャの任意部分(領域)に対して適応化させてもよい。
帯域幅をさらに縮小するには、ハフマン符号、算術符号、ゴロム(Golomb)符号、イライアス(Elias)符号などの可変長符号、または他の可変長符号により差分フィルタ係数(予測誤差)を符号化してもよい。また、差分フィルタ係数を固定長符号化してもよい。
再構築動画像信号は予測信号および(量子化)予測誤差信号に基づくため、フィルタデータを予測符号化することは効果的である。したがって、通常、特に再構築動画像信号と、予測信号および(量子化)予測誤差信号のそれぞれとの間に統計的関係が存在する。多くの場合、再構築動画像信号に対して決定されたフィルタデータと、予測信号に対して決定されたフィルタデータは同一もしくは類似の値を有する。その場合、例えば予測信号のフィルタデータを、再構築動画像信号のフィルタデータの値によって予測するだけで、符号化動画像信号に必要な帯域幅を効率的に縮小できる。例えば予測信号のフィルタデータを用いるなどして、(量子化)予測誤差信号のフィルタデータも同様に予測してもよい。しかし、1つの信号のフィルタデータは必ずしもペア単位で(つまり他の信号のフィルタデータから)予測されない。一般的に、1つの信号のフィルタデータを予測するには、複数の他の信号に対して決定されたフィルタデータにおける任意の関数を用いる。例えば、再構築動画像信号のフィルタデータの予測には、(量子化)予測誤差信号のフィルタデータおよび予測信号のフィルタデータにおける関数のいずれを用いてもよい。
また、フィルタ係数間およびオフセット間の線形統計的依存関係は、変換符号化においても利用可能である。つまり、フィルタ係数w1,・・・,wM+N+O+1を、変換係数cw1,・・・,cwM+N+O+1に変換し、これをさらに符号化してもよい。通常、変換係数cw1,・・・,cwM+N+O+1の符号化は、フィルタ係数及びオフセットw1,・・・,wM+N+O+1を直接符号化するよりも効率が高い。変換処理は以下の(式6)のように行う。
上記(式6)において、CWtは、変換係数cw1,・・・,cwM+N+O+1を含むベクトルであり、Wtは、フィルタ係数w1,・・・,wM+N+O+1を含むベクトルであり、Ttは、時間インスタンスtにおける変換行列である。入力される静止画像/動画像の特性によっては、各時間インスタンスにおいて同一もしくは異なる変換処理を行うことにより効果をもたらすことがある。離散コサイン変換(DCT)、高速フーリエ変換(FFT)または固定係数を用いたKarhunen−Loeve変換(KLT)など、適用される変換は固定的であってもよい。しかしながら、適応的であってもよい。適応的変換の場合、変換情報を例えばシーケンスヘッダ、フレームまたはスライスヘッダに挿入してデコーダへ伝送することができる。変換情報には、変換行列または変換行列を取得するための情報を含んでいてもよい。
変換係数cw1,・・・,cwM+N+O+1を符号化するには、可変長符号を適用することが好ましい。しかしながら、固定長符号を適用してもよい。
また、フィルタ係数間およびオフセット間の統計的依存関係は、マルコフソースを前提とした符号化方式においても利用可能である。これにより、フィルタ係数またはオフセットwi,tを、以下の(式7)に示すように、(可能な限りすべての)符号化および伝送済みフィルタ係数またはオフセットを条件とする符号語を用いて符号化する。
符号化方式や入力される静止画像/動画像によっては、符号化済みのフィルタ係数またはオフセットのサブセットのみを条件として考慮することにより効果を奏することがある。
マルコフソースを前提とした符号化方式は、ソースモデルに関する知識を必要とする。このモデルは固定的でも適応的でもよい。このような符号化方式は、例えば状態遷移図を用いて説明してもよい。適応的モデルの場合、モデル(例えば状態遷移図)を符号化し、例えばシーケンスヘッダ、フレームまたはスライスヘッダに挿入してデコーダ側へ伝送することができる。
マルコフソースを用いてフィルタ係数およびオフセットを符号化した後、符号化フィルタ係数およびオフセットを可変長符号または固定長符号を用いてさらに符号化してもよい。
上記3つの符号化方法は、符号化データ間の統計的関係を利用する符号化方式の例である。しかし、本発明は符号化対象データ間の統計的関係を考慮する他の方法を用いてもよい。例えば、ランレングス符号化、符号化済みデータの値に基づくテーブル切り替えを用いた可変長符号化、異なる信号に対するフィルタデータの組み合わせを1符号語として符号化する可変長符号化などである。
また、本実施の形態では、符号化動画像信号(ビットストリーム)に符号化フィルタデータを挿入する。当該ビットストリームのシンタックスおよびセマンティックは、将来の動画像符号化標準規格の主題となり得る。
以下、本発明に係る符号化方式を将来の動画像符号化標準規格に組み込んだ場合の例を説明する。この例においては、図5および図7を参照して上述した空間領域のフィルタリングを適用することと、フィルタデータには、予測方式が適用されるフィルタ係数を含むこととを前提とする。
シンタックスエレメントは、標準規格によって指定される符号を用いて符号化してもよい。例えば固定長符号や可変長符号などである。可能性のひとつとしては、確率モデルを特定のシンタックスエレメントに適応させることのできる算術符号化を使用する。別の可能性としては、ハフマン符号による符号語を用いる。しかし、単進符号(unary code)またはゴロム符号、指数ゴロム符号、イライアス符号など、(汎用)整数符号を用いてもよい。
フィルタデータ(例えばフィルタ係数)をそれに関連するデータ(例えばフレームデータ全体またはスライスデータなど)の最後に挿入して伝送することが好ましい。これにより、次のような効果が得られる。すなわち、エンコーダにおけるフィルタデータは、一般的に、フィルタデータが決定されるフレーム、スライスまたは任意の画像領域の符号化および復号の後に推定される。フィルタデータが推定されたデータを含むフレームまたはスライスのヘッダにそのフィルタデータが含まれている場合は、フィルタデータが算出されてビットストリームに挿入されるまで、当該ビットストリーム全体を格納しておく必要がある。全データを算術符号化する場合、フィルタデータを符号化した後、ビットストリームだけでなく符号化対象のシンタックスエレメントすべてを格納および符号化する必要がある。フレームまたはスライスデータの後に、ビットストリームに挿入したフィルタデータを伝送する場合は、符号化が行われている間はビットストリームやシンタックスエレメントを格納しなくてもよい。これにより、メモリサイズに対する条件を減らすことができる。
したがって、H.264/MPEG−4 AVCに準拠したSEIメッセージなど、別のNALユニットによってフィルタデータを伝送することが好ましい。
フィルタデータをフレームまたはスライスのヘッダに挿入して伝送する場合、算術符号器(エントロピー符号化部590)を終了そして再起動させると有益である。これにより、すべてのシンタックスエレメントではなくビットストリームのみをエンコーダに格納すればよいという効果が得られる。
符号化動画像信号(ビットストリーム)内で、フィルタデータをどこに配置するかに関しては、可能性がさらにある。特に、符号化動画像信号においてフィルタデータに関連する部分の前または後ろにそのフィルタデータを含めてもよい。
本実施の形態においてビットストリームの構成は、デコーダに対して最適化される。特に、フィルタデータに関連するフレームまたはスライスのフレームヘッダまたはスライスヘッダに、そのフィルタデータを含める。この場合、デコーダは、当該スライスまたはフレームのブロックを復号する前にポストフィルタリングに関する情報全体を知ることとなる。これにより、メモリの削減やメモリ割り当ての削減、デコーダにおける格納作業の削減などの利点がある。よって、より高速かつ安価に復号処理を行うことができる。
例えば、ポストフィルタリングは、スライスまたはフレーム内のブロックをある一定の数だけ復号および格納した後に行ってもよい。ポストフィルタリングを開始する前に格納しておく必要のあるブロックの数は、ポストフィルタのフィルタサイズによって決まる。ポストフィルタリング開始前に、スライスまたはフレーム(すなわち再構築動画像信号および/または量子化予測誤差信号および/または予測信号)内の全ブロックを復号および格納する必要はない。
スライスヘッダにおいて、フラグ(post_filter_flag[c])は、ある特定の色成分がポストフィルタリングにおいて考慮されるか否かを示してもよい。ある色成分に対してポストフィルタリングを行うべきでない場合、デコーダはいずれの信号(すなわち再構築動画像信号および/または量子化予測誤差信号および/または予測信号)もポストフィルタリング目的で格納する必要がない。
さらに、フィルタリング対象の信号(例えば再構築動画像信号、量子化予測誤差信号および予測信号)に関連するフィルタ係数がすべてゼロの場合、当該信号をポストフィルタリング目的で格納する必要はない。
算術符号化と組み合わせると、エンコーダは、ヘッダと、フィルタデータと、残りのマクロブロックデータとに対し、個々の符号語を生成するとさらに有益である。個々の符号語を生成するとは、算術符号器を、包括ヘッダの後に終了させ、フィルタデータの符号化前に再起動させその後終了させ、残りのマクロブロックデータの符号化前にまた再起動させその後終了させるという意味である。アーキテクチャによっては、算術符号化の符号語は、整数バイトの長さを有することが好ましい(例えばバイト配列を用いたアーキテクチャの場合)。個々の符号語を有することによって、再符号化をせずとも符号語を格納および並び替えできるという利点がある。配列された(例えばバイト配列された)符号語を用いることにより、エンコーダにおけるビットストリーム部分の格納および並び替えをさらに容易にできる。
図11Aは、符号化動画像信号(ビットストリーム)におけるスライスまたはフレームに対応する部分の構成の一例を示す図である。まず、ヘッダ901がビットストリームに含まれ、その後に、必要であれば配列データが続く。次に、フィルタデータ902がビットストリームに含まれ、その後に、必要であれば配列データが続く。最後に、マクロブロックの画像を示すマクロブロックデータ903が配列データ(必要であれば)とともにビットストリームに含まれる。
つまり、フィルタデータ902が、そのフィルタデータ902が適用される画像信号(マクロブロックデータ903)の前に配置されるため、ビットストリームに配列される順序にしたがって、そのフィルタデータ902とその画像信号とを生成すれば、生成されたそれらのデータを一時的に格納しておく必要が無く、メモリ容量の削減を図ることができる。この場合には、そのフィルタデータ902を用いて画像信号(マクロブロックデータ903)を生成することができるため、いわゆるループ内フィルタを実現することができる。つまり、減算器105→変換/量子化部110→逆量子化/逆変換部120→加算器125→デブロッキングフィルタ130→メモリ140→画面内予測部170(補間フィルタ150→動き補償予測部160)→減算器105によって構成されるループ内において、フィルタデータ903を用いたフィルタリングを予測信号に対して実行することができ、そのフィルタリングされた予測信号から量子化係数からなる画像信号(マクロブロックデータ903)を生成することができる。
本実施の形態では、ビットストリームの構成は、エンコーダに対して最適化されてもよい。特に、ビットストリームにおいて、関連するマクロブロックデータの後にフィルタデータを含めてもよい。この場合、スライスまたはフレームのブロックを符号化した後に、ポストフィルタリングに関する情報全体を生成することができる。これにより、メモリの削減やメモリ割り当ての削減、エンコーダにおける格納動作の削減などの利点がある。よって、より高速かつ安価に符号化処理を行うことができる。
ポストフィルタリングの最適ウィナーフィルタ係数を算出するには、フィルタリングが機能するためのすべてのデータが必要である。本実施の形態の場合、再構築動画像信号および/または量子化予測誤差信号および/または予測信号の全体が必要である。エンコーダでは、このデータは、スライスまたはフレームの符号化および復号を完了した後にのみ利用可能である。符号化を完了する間、ビットストリームはすでに生成および格納および/または伝送されている。したがって、マクロブロックデータの前にフィルタデータを含めるには、ビットストリーム全体を格納する必要がある。1符号語のみを用いて算術符号化を行う場合は(スライスまたはフレームの終わりに終了)、全シンタックスエレメントの格納およびそれらに対する再符号化の完了も必要となる。マクロブロックデータの後にフィルタ情報を含める場合は、上記のような格納作業は不要である。
図11Bは、符号化動画像信号(ビットストリーム)の一部分の構成の他の例を示す図である。
ヘッダ911と、マクロブロックデータ912と、フィルタデータ913とは、算術符号器(エントロピー符号化部590)においてそれぞれ1符号語として符号化される。すなわち、ビットストリームの異なる部分を符号化するごとに、符号化処理は再開始されることなく継続して行われる。
図11Cは、符号化動画像信号(ビットストリーム)の一部分の構成の他の例を示す図である。
ヘッダ921と、マクロブロックデータ922と、フィルタデータ923とはそれぞれ、算術符号器(エントロピー符号化部590)において別々の符号語として、個々に符号化されてもよい。
しかしながら、本発明は算術符号化の使用に限定されるものではなく、他種の符号化を用いることも可能である。シーケンスヘッダおよびフレームに対する、ビットストリーム内の好ましい情報エレメントのシンタックスを以下に説明する。
図12Aは、シーケンスヘッダのシンタックスを示す図である。
図12A中の「postfilter」は、フレームレベルでポストフィルタを適用できるかを示す。
post_filter_initial_probabilitiesは、フィルタデータの符号を制御するための初期確率を示す。
図12Bは、フレームのシンタックスを示す図である。
post_filter_flag[c]は、色成分cに対してポストフィルタリングを適用するかを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。
シンタックスエレメントdecode_post_filter(c)は、さらに複数のシンタックスエレメントを含む。
図13Aおよび図13Bは、decode_post_filter(c)のシンタックスを示す図である。
filter_hint_type[c]は、色成分cに対する、伝送されたフィルタヒントの種類を示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。取り得る値は、図14に示すとおり0〜3である。
図14は、filter_hint_type[c]の値とフィルタヒントの種類との関係を示す図である。
filter_hint_type[c]の値が0のときは、そのfilter_hint_type[c]は、フィルタヒントの種類として、1つの2次元FIRフィルタの係数を示す。filter_hint_type[c]の値が1のときは、そのfilter_hint_type[c]は、フィルタヒントの種類として、相互相関行列を示す。filter_hint_type[c]の値が2のときは、そのfilter_hint_type[c]は、フィルタヒントの種類として、2つの1次元FIRフィルタの係数を示す。filter_hint_type[c]の値が3のときは、そのfilter_hint_type[c]は、フィルタヒントの種類として、2つの相互相関ベクトルを示す。つまり、filter_hint_type[c]=0または1のときには、そのfilter_hint_type[c]はフィルタリングの範囲が2次元配列(図13Aまたは図13B中の「2D」)であることを示し、filter_hint_type[c]=2または3のときには、そのfilter_hint_type[c]はフィルタリングの範囲が1次元配列(図13Aまたは図13B中の「1D」)であることを示す。
図13Aに示すシンタックスにおいて各シンタックスエレメントのセマンティックは以下のとおりである。
filter_hint_size_rec_xは、再構築動画像信号に対するフィルタ係数配列または相互相関配列の水平方向サイズ(フィルタサイズ)を示す。
filter_hint_size_rec_yは、再構築動画像信号に対するフィルタ係数配列または相互相関配列の垂直方向サイズ(フィルタサイズ)を示す。
filter_hint_size_pred_xは、予測信号に対するフィルタ係数配列または相互相関配列の水平方向サイズ(フィルタサイズ)を示す。
filter_hint_size_pred_yは、予測信号に対するフィルタ係数配列または相互相関配列の垂直方向サイズ(フィルタサイズ)を示す。
filter_hint_size_qpe_xは、量子化予測誤差信号に対するフィルタ係数配列または相互相関配列の水平方向サイズ(フィルタサイズ)を示す。
filter_hint_size_qpe_yは、量子化予測誤差信号に対するフィルタ係数配列または相互相関配列の垂直方向サイズ(フィルタサイズ)を示す。
filter_hint_rec[c][cy][cx]は、再構築動画像信号に対するフィルタ係数行列のエレメント、または原信号(動画像信号)と再構築動画像信号との間の相互相関行列のエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cyは垂直方向のカウンタを表し、cxは水平方向のカウンタを表す。
filter_hint_pred[c][cy][cx]は、予測信号に対するフィルタ係数行列のエレメント、または原信号(動画像信号)と予測信号との間の相互相関行列のエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cyは垂直方向のカウンタを表し、cxは水平方向のカウンタを表す。
filter_hint_qpe[c][cy][cx]は、量子化予測誤差信号に対するフィルタ係数行列のエレメント、または原信号(動画像信号)と量子化予測誤差信号との間の相互相関行列のエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cyは垂直方向のカウンタを表し、cxは水平方向のカウンタを表す。
filter_hint_rec_x[c][cx]は、再構築動画像信号に対する水平方向フィルタリングのフィルタ係数ベクトルのエレメント、または原信号(動画像信号)と再構築動画像信号との間の水平相互相関ベクトルのエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cxは水平方向のカウンタを表す。
filter_hint_pred_x[c][cx]は、予測信号に対する水平方向フィルタリングのフィルタ係数ベクトルのエレメント、または原信号(動画像信号)と予測信号との間の水平相互相関ベクトルのエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cxは水平方向のカウンタを表す。
filter_hint_qpe_x[c][cx]は、量子化予測誤差信号に対する水平方向フィルタリングのフィルタ係数ベクトルのエレメント、または原信号(動画像信号)と量子化予測誤差信号との間の水平相互相関ベクトルのエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cxは水平方向のカウンタを表す。
filter_hint_rec_y[c][cy]は、再構築動画像信号に対する垂直方向フィルタリングのフィルタ係数ベクトルのエレメント、または原信号(動画像信号)と再構築動画像信号との間の垂直相互相関ベクトルのエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cyは垂直方向のカウンタを表す。
filter_hint_pred_y[c][cy]は、予測信号に対する垂直方向フィルタリングのフィルタ係数ベクトルのエレメント、または原信号(動画像信号)と予測信号との間の垂直相互相関ベクトルのエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cyは垂直方向のカウンタを表す。
filter_hint_qpe_y[c][cy]は、量子化予測誤差信号に対する垂直方向フィルタリングのフィルタ係数ベクトルのエレメント、または原信号(動画像信号)と量子化予測誤差信号との間の垂直相互相関ベクトルのエレメントを示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。cyは垂直方向のカウンタを表す。
filter_hint_offset[c]はオフセット値を示す。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分に対応する。
上述のシンタックスエレメントであるfilter_hint_rec、filter_hint_pred、filter_hint_qpe、filter_hint_rec_x、filter_hint_pred_x、filter_hint_qpe_x、filter_hint_rec_y、filter_hint_pred_y、およびfilter_hint_qpe_yは、それぞれフィルタ係数または差分フィルタ係数を示し、フィルタヒントとして扱われる。
filter_precision[c]は、フィルタデータ(フィルタ係数)の量子化の精度を示す。各色成分cに対し、シンタックスエレメントfilter_precision[c]の値は、その値に対応する精度Wiener_Filter_Precision[c]の値を示す。
図13Bに示すシンタックスにおいて、上記各シンタックスエレメントと異なるシンタックスエレメントのセマンティックは以下のとおりである。
filter_hint_size_rec_idxは、再構築動画像信号に対する2次元のフィルタ係数配列または相互相関配列のサイズ(フィルタサイズ)を特定するためのインデックスであって、0以上の整数を示す。このインデックスによって特定されるフィルタサイズは、水平方向および垂直方向に同一のサイズである。
filter_hint_size_pred_idxは、予測信号に対する2次元のフィルタ係数配列または相互相関配列のサイズ(フィルタサイズ)を特定するためのインデックスであって、0以上の整数を示す。このインデックスによって特定されるフィルタサイズは、水平方向および垂直方向に同一のサイズである。
filter_hint_size_qpe_idxは、量子化予測誤差信号に対する2次元のフィルタ係数配列または相互相関配列のサイズ(フィルタサイズ)を特定するためのインデックスであって、0以上の整数を示す。このインデックスによって特定されるフィルタサイズは、水平方向および垂直方向に同一のサイズである。
filter_hint_size_recは、再構築動画像信号に対する2次元のフィルタ係数配列または相互相関配列の、水平方向および垂直方向に同一のフィルタサイズを示す。このフィルタサイズは、インデックスfilter_hint_size_rec_idxによって特定される。つまり、filter_hint_size_recは、filter_hint_size_rec=2×(filter_hint_size_rec_idx)+1によって示される、1以上の奇数である。
filter_hint_size_predは、予測信号に対する2次元のフィルタ係数配列または相互相関配列の、水平方向および垂直方向に同一のフィルタサイズを示す。このフィルタサイズは、インデックスfilter_hint_size_pred_idxによって特定される。つまり、filter_hint_size_predは、filter_hint_size_pred=2×(filter_hint_size_pred_idx)+1によって示される、1以上の奇数である。
filter_hint_size_qpeは、量子化予測誤差信号に対する2次元のフィルタ係数配列または相互相関配列の、水平方向および垂直方法に同一のフィルタサイズを示す。このフィルタサイズは、インデックスfilter_hint_size_qpe_idxによって特定される。つまり、filter_hint_size_qpeは、filter_hint_size_qpe=2×(filter_hint_size_qpe_idx)+1によって示される、1以上の奇数である。
filter_hint_size_rec_x_idxは、再構築動画像信号に対する1次元(水平方向)の配列であるフィルタ係数ベクトルまたは相互相関ベクトルのフィルタサイズ(長さ)を特定するためのインデックスであって、0以上の整数を示す。この場合、filter_hint_size_rec_xは、filter_hint_size_rec_x=2×(filter_hint_size_rec_x_idx)+1によって示される、1以上の奇数である。
filter_hint_size_rec_y_idxは、再構築動画像信号に対する1次元(垂直方向)の配列であるフィルタ係数ベクトルまたは相互相関ベクトルのフィルタサイズ(長さ)を特定するためのインデックスであって、0以上の整数を示す。この場合、filter_hint_size_rec_yは、filter_hint_size_rec_y=2×(filter_hint_size_rec_y_idx)+1によって示される、1以上の奇数である。
filter_hint_size_pred_x_idxは、予測信号に対する1次元(水平方向)の配列であるフィルタ係数ベクトルまたは相互相関ベクトルのフィルタサイズ(長さ)を特定するためのインデックスであって、0以上の整数を示す。この場合、filter_hint_size_pred_xは、filter_hint_size_pred_x=2×(filter_hint_size_pred_x_idx)+1によって示される、1以上の奇数である。
filter_hint_size_pred_y_idxは、予測信号に対する1次元(垂直方向)の配列であるフィルタ係数ベクトルまたは相互相関ベクトルのフィルタサイズ(長さ)を特定するためのインデックスであって、0以上の整数を示す。この場合、filter_hint_size_pred_yは、filter_hint_size_pred_y=2×(filter_hint_size_pred_y_idx)+1によって示される、1以上の奇数である。
filter_hint_size_qpe_x_idxは、量子化予測誤差信号に対する1次元(水平方向)の配列であるフィルタ係数ベクトルまたは相互相関ベクトルのフィルタサイズ(長さ)を特定するためのインデックスであって、0以上の整数を示す。この場合、filter_hint_size_qpe_xは、filter_hint_size_qpe_x=2×(filter_hint_size_qpe_x_idx)+1によって示される、1以上の奇数である。
filter_hint_size_qpe_y_idxは、量子化予測誤差信号に対する1次元(垂直方向)の配列であるフィルタ係数ベクトルまたは相互相関ベクトルのフィルタサイズ(長さ)を特定するためのインデックスであって、0以上の整数を示す。この場合、filter_hint_size_qpe_yは、filter_hint_size_qpe_y=2×(filter_hint_size_qpe_y_idx)+1によって示される、1以上の奇数である。
図13Aに示すシンタックスでは、フィルタリングの範囲が1次元配列であるか2次元配列であるかに関わらず、予測信号、量子化予測誤差信号および再構築動画像信号のそれぞれに対する水平方向のフィルタサイズと垂直方向のフィルタサイズとが差分フィルタデータに含められてデコーダに送信される。
一方、図13Bに示すシンタックスでは、インデックスが差分フィルタデータに含められてデコーダに送信される。この場合には、デコーダは、そのインデックスと2との積に1を加算することによってフィルタサイズを算出する。ここで、この図13Bに示すシンタックスでは、フィルタリングの範囲が2次元配列の場合には、予測信号、量子化予測誤差信号および再構築動画像信号のそれぞれに対して、水平方向および垂直方向に共通のインデックスが差分フィルタデータに含められる。また、フィルタリングの範囲が1次元配列の場合には、予測信号、量子化予測誤差信号および再構築動画像信号のそれぞれに対して、水平方向のインデックスと垂直方向のインデックスとが差分フィルタデータに含められる。
このように、図13Bに示すシンタックスでは、フィルタサイズはインデックスとして差分フィルタデータに含められてデコーダに送信されるため、フィルタサイズの送信に要するビット量を削減することができる。また、フィルタリングの範囲が2次元配列の場合には、水平方向および垂直方向に共通のインデックスが差分フィルタデータに含められるため、フィルタサイズの送信に要するビット量をさらに削減することができる。
また、動画像符号化装置500のポストフィルタ設計部540は、スライス、フレームまたはシーケンスごとに、フィルタサイズを固定にしても変えてもよい。フィルタサイズを可変にする場合には、ポストフィルタ設計部540は、変更されたフィルタサイズを選択し、図13Aおよび図13Bのシンタックスに示すように、その変更されたフィルタサイズまたは、そのフィルタサイズに対応するインデックス(シンタックスエレメント)を差分フィルタデータに含める。
なお、上述の説明では、フィルタサイズを1以上の奇数としたが、0となり得る値としてもよい。フィルタサイズが0の場合は、フィルタリングは行われない。つまり、フィルタ係数(差分フィルタ係数を示すフィルタヒント)は、差分フィルタデータに含められず、デコーダに送信されることはない。
このように、フィルタサイズが0となり得る値の場合、フィルタサイズは、インデックスを用いて、max{0,2×(インデックス−1)+1}のように算出される。ここで、max{A,B}は、AおよびBのうちの最大の値を示す。具体的には、フィルタリングの範囲が2次元配列であるか1次元配列であるかに応じて、各フィルタサイズは以下に示す式によって算出される。
また、再構築動画像信号、予測信号、および量子化予測誤差信号のそれぞれに対して、フィルタ係数が0となるようなフィルタヒントをデコーダに送ることで、それぞれの信号がフィルタリングに使用されないようにしてもよい。この場合、フィルタサイズ=1となるようなインデックスを指定すれば符号量を抑制することができる。
2次元配列のフィルタサイズ:
・filter_hint_size_rec=max{0,2×(filter_hint_size_rec_idx−1)+1}
・filter_hint_size_pred=max{0,2×(filter_hint_size_pred_idx−1)+1}
・filter_hint_size_qpe=max{0, 2×(filter_hint_size_qpe_idx−1)+1}
1次元配列のフィルタサイズ:
・filter_hint_size_rec_x=max{0,2×(filter_hint_size_rec_x_idx−1)+1}
・filter_hint_size_rec_y=max{0,2×(filter_hint_size_rec_y_idx−1)+1}
・filter_hint_size_pred_x=max{0,2×(filter_hint_size_pred_x_idx−1)+1}
・filter_hint_size_pred_y=max{0,2×(filter_hint_size_pred_y_idx−1)+1}
・filter_hint_size_qpe_x=max{0,2×(filter_hint_size_qpe_x_idx−1)+1}
・filter_hint_size_qpe_y=max{0,2×(filter_hint_size_qpe_y_idx−1)+1}
デコーダである動画像復号装置600のポストフィルタ640は、上述のような式を用いて、差分フィルタデータに含まれているインデックスからフィルタサイズを算出し、フィルタサイズが0のときには、ポストフィルタリングを実行せず、フィルタサイズが1以上の奇数であるときには、そのフィルタサイズにしたがったポストフィルタリングを実行する。
なお、上述の説明では、フィルタサイズを、max{0,2×(インデックス−1)+1}として算出したが、max{0,2×インデックス−1}であってもよく、max{0,2×(インデックス−1)−1}であってもよい。また、フィルタサイズが0或いは正の奇数となるような、数式とインデックスの組合せであれば、どのような組合せを用いてもよい。
このように、エンコーダおよびデコーダは、フィルタサイズを0とするか1以上の奇数にするかに応じて、フィルタリングの有無を切り換えることができる。
なお、ある信号に対するフィルタヒントをデコーダに送らない場合には、フィルタヒントから算出される各信号に対するフィルタ係数のいずれか又は全てが不定とならないように、デコーダは、フィルタヒントを0などの規定値とみなして各信号に対するフィルタ係数を算出してもよい。
図15は、filter_precision[c]とWiener_Filter_Precision[c]との対応関係を示す図である。
Wiener_Filter_Precision[c]は、フィルタ係数の精度を定めるフィルタデータ量子化情報を示す。
本発明において、filter_precision[c]およびWiener_Filter_Precision[c]の取り得る値の数は12個に限定されるものではない。より多くの、もしくはより少ない数の値を取り得るとすることも可能である。シンタックスエレメント(filter_precision[c])の値の割り当ては、フィルタ精度(Wiener_Filter_Precision[c])の値の割り当てと異なってもよい。例えば、そのシンタックスエレメントの値が低いほど、フィルタ精度の値が高くなるように対応付けられてもよい。また、シンタックスエレメントの値とフィルタ精度の値との間の特定のマッピングを選択することによっても効果を奏する場合がある。全体として好ましい符号化効率を達成するために、マッピングと、filter_precision[c]の値を符号化するために用いる符号とをあわせて設計してもよい。Wiener_Filter_Precision[c]の取り得る値の数を信号送信してもよい。例えば、固定長符号または可変長符号を用いて符号化してもよい。
シンタックスエレメント(filter_precision[c])と、フィルタ精度(Wiener_Filter_Precision[c])との間のマッピングを信号送信してもよい。しかしながら、そのような信号送信に必要な帯域幅を縮小するには、例えば、Wiener_Filter_Precision[c]の値はすべて2のべき乗としてもよい。その場合、Wiener_Filter_Precision[c]の最小値(図15の例では8)および取り得るすべての値の数(図15の例では12)が分かるだけで、Wiener_Filter_Precision[c]の値をエンコーダ側でもデコーダ側でも同様に算出することができる。この場合、取り得るすべての値の数とWiener_Filter_Precision[c]の値の1つ(例えば最小値)のみを符号化すればよい。
Wiener_Filter_Precision[c]の値が低いほど、フィルタデータの精度は低く、それを伝送するために必要なレートも低い。
符号化動画像信号の全体のビットレートが低い場合、フィルタ精度(シンタックスエレメント)の符号化に用いるビットの相対量は多い。符号化動画像信号の全体のビットレートが高い場合、フィルタ精度の符号化に用いるビットの相対量はごくわずかである。
したがって、全体のビットレートが低い場合は、フィルタ精度(シンタックスエレメント)の符号化には非常に低いビットレートが望ましい。全体のビットレートが高い場合は、フィルタ精度の符号化には高ビットレートでも許容可能である。この条件を満たすには、フィルタ精度(シンタックスエレメント)のビットレートを全体のビットレートに適応させて(例えば低い全体ビットレートに最適化して)、符号化方式を適用することが好ましい。図15に示すfilter_precision[c]とWiener_Filter_Precision[c]とのマッピングでは、Wiener_Filter_Precision[c]の値が低いとフィルタデータ(例えばフィルタ係数)が粗く量子化される。その結果、符号化動画像信号のビットレートが低いほど、シンタックスエレメントfilter_precision[c]としての符号化パラメータ(フィルタ精度)Wiener_Filter_Precisionを含む符号化フィルタデータに必要なビットレートを低減させる。
例えば、低いWiener_Filter_Precision[c]を信号送信するには短い符号語を割り当て、高いWiener_Filter_Precision[c]を信号送信するには長い符号語を割り当てることにより、Wiener_Filter_Precision[c]の低い値を符号化するために必要なビットレートを低減できる。例えば、図16に示すように、単進符号を用いてもよい。
図16は、filter_precision[c](Wiener_Filter_Precision[c])に割り当てられる単進符号を示す図である。
単進符号以外の可変長符号を用いてもよく、符号化方式は適切に選択される。例えば、図17に示すようにゴロム符号を用いてもよい。
図17は、filter_precision[c](Wiener_Filter_Precision[c])に割り当てられるゴロム符号の一例を示す図である。
また、例えば、図18に示すように他のゴロム符号を用いてもよい。
図18は、filter_precision[c](Wiener_Filter_Precision[c])に割り当てられるゴロム符号の他の例を示す図である。
当然のことながら、取り得る値の数が16個ある場合などでは、固定符号語長を用いてもよい。
図19は、filter_precision[c](Wiener_Filter_Precision[c])に割り当てられる固定長符号を示す図である。
また、図16〜図19に示す符号表とは別の符号語表に切り替えることも可能である。符号語表の選択内容もエンコーダにより符号化し、デコーダへ信号送信することもできる。この場合、量子化ステップサイズをすぐに復号できるようにするため、filter_precision[c]の前に選択内容を信号送信することが好ましい。
さらに、固定規則にしたがって、複数の適切な符号語表からひとつを選択することもできる。固定規則とは、対象フレームまたはスライスの復号にすでに用いられたビットの数に基づくものでもよい。また、対象フレームまたはスライスの復号開始時に用いられる量子化パラメータ、または対象フレームまたはスライスの復号に平均的に用いられる量子化パラメータに基づくものでもよい。また、量子化予測誤差信号、例えばその分散、に基づくものでもよい。また、予測信号、例えばその分散、に基づくもの、または予測信号および/または予測誤差信号をもとに求められた他の基準に基づくものでもよい。
シンタックスエレメントfilter_precision[c]を表す2値記号の符号化には、算術符号化を用いることもできる。ここで、各2値記号の符号化には、同じまたは別々の符号を用いることができる。また、符号は状況に応じて決めることもできる。符号化は条件付であるため、符号化効率はさらに高まる。可能性のひとつとしては、filter_precision[i+1]および/またはfilter_precision[i+2]の符号化条件として、filter_precision[i]の値を用いる。また、各成分の係数に対して、異なるフィルタ精度を符号化、伝送および使用することも可能である。つまり、filter_precisionの個々の値は、再構築動画像信号と、予測信号と、量子化予測誤差信号とのそれぞれに対応するフィルタデータに用いられるという意味である。また、これらの信号それぞれに応じたフィルタデータに異なるフィルタ精度を用いることも可能である。例えば、フィルタデータに含まれるfilter_hint_rec_y[c][cy]のcおよびcyそれぞれに個々のフィルタ精度を用いる。
エンコーダでは、全体ビットレートのラグランジュアン・コスト、および原画像信号(動画像信号)とフィルタリング後の画像信号(復号動画像信号)との間の平均二乗再構築誤差を最小化することにより、Wiener_Filter_Precision[c]の値を有効に決定することができる。Wiener_Filter_Precision[c]の、ある値に対するラグランジュアン・コストの決定は、例えば、必要なビットの符号化および測定を完了することにより、そしてその結果得られる平均二乗再構築誤差の符号化および測定を完了することにより、行ってもよい。別の可能性としては、レートおよび平均二乗再構築誤差を推測することにより行う。平均二乗再構築誤差の推測は、画像信号の、あるサブセットのみをフィルタリングすることにより、そして当該サブセットに対する平均二乗再構築誤差は画像信号全体の平均二乗再構築誤差に近似すると仮定することにより行ってもよい。また、例えばフレームまたはスライスの量子化パラメータ値に応じて、Wiener_Filter_Precision[c]が取り得る値のサブセットのみをテストすることも可能である。
エンコーダ側からデコーダ側に提供されたフィルタデータ(差分フィルタデータ)は、動画像信号の復号に用いられる。特に、以下では、符号化フィルタデータの復号方法と、動画像信号の復号におけるフィルタデータの利用方法との例を示す。
第1および第2の例では、フィルタ係数およびオフセットを使用して復号画像(再構築動画像信号)の色成分をポストフィルタリングする。相互相関およびオフセットが伝送され、復号される場合は、第3および第4の例にて示すように、当該相互相関およびオフセットを用いてフィルタ条件を設定し、復号画像の色成分をポストフィルタリングしてもよい。
フィルタデータが予測符号化されていた場合は、まず、予測データ(予測フィルタ係数)を加えることによりフィルタ係数と、オフセットおよび/または相互相関情報とを再構築する。
第1の例(filter_hint_type[c]=0)は、1つの2次元FIRフィルタの係数が伝送される場合のポストフィルタ設計および処理に関連するものである。
再構築動画像信号、予測信号および量子化予測誤差信号をポストフィルタリングするためのフィルタ係数は、図20A〜図20Cの(式8)〜(式10)にそれぞれ示すように、受信した差分フィルタデータから算出される。つまり、動画像復号装置600のポストフィルタ640は、(式8)〜(式10)にしたがってフィルタ係数を算出する。
図20Aは、再構築動画像信号に対するフィルタ係数の算出式を示す図である。
図20Aの(式8)に示すように、再構築動画像信号に対するフィルタ係数である再構築信号フィルタ係数coeff_rec[c][cy][cx]は、フィルタデータ(差分フィルタデータ)に含まれるfilter_hint_rec[c][cy][cx]、filter_hint_size_rec_xおよびfilter_hint_size_rec_yと、Wiener_Filter_Precision[c]の値とに基づいて算出される。Wiener_Filter_Precision[c]は符号化されてビットストリームに含められるが、Wiener_Filter_Precision[c]=16384のように、可能であれば色成分cの値それぞれに対して、固定的に指定されてもよい。Wiener_Filter_Precision[c]は、いずれかの色成分、および/または予測信号と、量子化予測誤差信号と、再構築動画像信号とのいずれかに対して符号化され、ビットストリームに含められてもよい。
図20Bは、予測信号に対するフィルタ係数の算出式を示す図である。
図20Bの(式9)に示すように、予測信号に対するフィルタ係数である予測信号フィルタ係数coeff_pred[c][cy][cx]は、再構築信号フィルタ係数coeff_rec[c][oy][ox]と、Wiener_Filter_Precision[c]の値と、フィルタデータ(差分フィルタデータ)に含まれるfilter_hint_pred[c][cy][cx]、filter_hint_size_pred_x、filter_hint_size_pred_y、filter_hint_size_rec_x、およびfilter_hint_size_rec_yとに基づいて算出される。なお、oxは、再構築動画像信号に対するフィルタ係数配列の水平方向サイズ(水平方向のフィルタリング範囲)の中心位置を示し、oyは、再構築動画像信号に対するフィルタ係数配列の垂直方向サイズ(垂直方向のフィルタリング範囲)の中心位置を示す。
図20Cは、量子化予測誤差信号に対するフィルタ係数の算出式を示す図である。
図20Cの(式10)に示すように、量子化予測誤差信号に対するフィルタ係数である予測誤差信号フィルタ係数coeff_qpe[c][cy][cx]は、予測信号フィルタ係数coeff_pred[c][oy][ox]と、フィルタデータ(差分フィルタデータ)に含まれるfilter_hint_qpe[c][cy][cx]、filter_hint_size_qpe_x、filter_hint_size_qpe_y、filter_hint_size_pred_x、およびfilter_hint_size_pred_yとに基づいて算出される。なお、oxは、予測信号に対するフィルタ係数配列の水平方向サイズ(水平方向のフィルタリング範囲)の中心位置を示し、oyは、予測信号に対するフィルタ係数配列の垂直方向サイズ(垂直方向のフィルタリング範囲)の中心位置を示す。
なお、図20A〜図20Cに示すフィルタ係数の算出式では、再構築動画像信号に対するフィルタサイズ(フィルタリング範囲)と、予測信号に対するフィルタサイズと、量子化予測誤差信号に対するフィルタサイズとが異なる場合であっても、適切なフィルタ係数を算出することができる。また、図20A〜図20Cに示すフィルタ係数の算出式では、フィルタリング範囲の中心位置のフィルタ係数だけが差分フィルタ係数として符号化されており、その差分フィルタ係数と他のフィルタ係数との加算または減算によって、フィルタ係数が算出される。例えば、中心位置の予測信号フィルタ係数coeff_pred[c][cy][cx]は、差分フィルタ係数であるfilter_hint_pred[c][cy][cx]から、他のフィルタ係数である中心位置の再構築信号フィルタ係数coeff_rec[c][oy][ox]を減算し、Wiener_Filter_Precision[c]を加算することによって算出される。
以下に示す3つの傾向がある場合、このようにフィルタリング範囲の中心位置のフィルタ係数だけが差分フィルタ係数として符号化すると符号化効率が高くなりえる。第1の傾向は、中心位置の再構築信号フィルタ係数coeff_recが常に略同じ値になることである。第2の傾向は、中心位置の再構築信号フィルタ係数coeff_recと、中心位置の予測信号フィルタ係数coeff_predとの和が常に略同じ値になることである。第3の傾向は、中心位置の予測信号フィルタ係数coeff_predと、中心位置の予測誤差信号フィルタ係数coeff_qpeとが略同じ値になることである。また、フィルタ係数の伝送に必要な符号量とフィルタの画質改善効果とのトレードオフの関係などに応じて、フィルタサイズ(フィルタリング範囲)が動的に変更されることがあるが、その結果、中心位置以外のフィルタ係数(フィルタヒント)が不要になる場合があるため、フィルタリング範囲の中心位置のフィルタ係数だけが差分フィルタ係数として符号化される。つまり、フィルタサイズが1×1の場合には、中心位置以外のフィルタ係数は存在せず、中心位置以外のフィルタ係数(フィルタヒント)をフィルタデータに含めてデコーダに送信する必要がない。このようなフィルタサイズの動的な変更に簡単に対応し得るように、フィルタリング範囲の中心位置のフィルタ係数だけが差分フィルタ係数として符号化される。
そして、ポストフィルタ640は、図21の(式11)に示すように、算出されたフィルタ係数を再構築動画像信号、予測信号および量子化予測誤差信号にそれぞれ適用することによって、つまりポストフィルタリングを行うことによって、復号動画像信号を生成して出力する。
図21は、復号動画像信号の算出式を示す図である。
図21の(式11)に示すように、復号動画像信号によって示される、色成分cの位置(x,y)におけるポストフィルタリング処理後の値(filtered_image[c][y][x])は、フィルタ係数coeff_rec[c][j][i]、coeff_pred[c][j][i]およびcoeff_qpe[c][j][i]と、rec_image[c]、pred_image[c]およびqpe_image[c]とに基づいて算出される。なお、rec_image[c]は再構築動画像信号の色成分cに対応する値であり、pred_imageは予測信号の色成分cに対応する値であり、qpe_imageは量子化予測誤差信号の色成分cに対応する値である。c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分それぞれに対応する。YUV以外の色空間を用いる場合、この対応関係は、用いる色空間に基づくものでもよい。 例えばRGB色空間の場合、c=0は赤(R)成分に、c=1は緑(G)成分に、c=2は青(B)成分に対応してもよい。
次に、ポストフィルタ640は、図22Aの(式12)に示すように、復号動画像信号であるフィルタリング済み信号(filtered_image[c][y][x])に対して標準化およびクリッピングを行う。
図22Aは、標準化およびクリッピングの算出式を示す図である。
図22Aの(式12)に示すように、標準化およびクリッピングされたフィルタリング済み信号(filtered_image_clipped[c][y][x])は、filtered_image[c][y][x]に対して逆量子化およびフロア関数が適用され、0〜255の値に設定される。
ここで、Wiener_Filter_Precision[c]におけるステップサイズは、以下の(式14)によって示され、例えばハードウェアまたはソフトウェアの実施において非常に有益なものである。
なぜならば、ビットシフト(1ビットだけ右にシフト)により、以下の(式15)の除算を非常に効率よく実現することができるからである。
つまり、以下の(式16)の関係が成り立つ。
さらに、ビットシフト(αビットだけ右にシフト)により、2のα条の除算を非常に効率よく実現することができるからである。
したがって、ポストフィルタ640は、図22Bの(式13)に示す演算を行うことにより、フィルタリング済み信号(filtered_image[c][y][x])に対して標準化およびクリッピングを行ってもよい。
図22Bは、標準化およびクリッピングの他の算出式を示す図である。
Wiener_Filter_Precision[c]が2のべき乗で示される場合には、(式13)による演算は、(式12)と同様の利点が得られる。
ここで、予測信号フィルタ係数coeff_pred[c][cy][cx]を、図20Bの(式9)以外の式から求めてもよい。
図23Aは、予測信号に対する中心位置におけるフィルタ係数の算出式を示す図である。
図23Aの(式17)に示すように、予測信号におけるポストフィルタリングの範囲の中心位置では、ポストフィルタ640は、(式18)に示す算出式によって予測信号フィルタ係数coeff_pred[c][cy][cx]を算出する。
図23Bは、予測信号に対する中心位置以外の位置におけるフィルタ係数の算出式を示す図である。
図23Bの(式19)に示すように、予測信号におけるポストフィルタリングの範囲の中心位置以外の位置では、ポストフィルタ640は、(式20)に示す算出式によって予測信号フィルタ係数coeff_pred[c][cy][cx]を算出する。(式20)に示すように、中心位置以外の予測信号フィルタ係数coeff_pred[c][cy][cx]も、中心位置の予測信号フィルタ係数coeff_pred[c][cy][cx]と同様、所定の条件下において、差分フィルタ係数として符号化されており、その差分フィルタ係数であるfilter_hint_pred[c][cy][cx]と再構築信号フィルタ係数coeff_rec[c][oy][ox]との和によって算出される。
また、(式17)〜(式20)にしたがって予測信号フィルタ係数coeff_pred[c][cy][cx]を算出した場合には、ポストフィルタ640は、図23Cの(式21)にしたがって予測誤差信号フィルタ係数coeff_qpe[c][cy][cx]を算出する。
図23Cは、量子化予測誤差信号に対するフィルタ係数の算出式を示す図である。
図23Cの(式21)に示すように、予測誤差信号フィルタ係数coeff_qpe[c][cy][cx]は、中心位置のフィルタ係数であるか否かに関わらず、所定の条件下において、差分フィルタ係数として符号化されており、その差分フィルタ係数であるfilter_hint_qpe[c][cy][cx]と予測信号フィルタ係数coeff_pred[c][oy][ox]との和によって算出される。
このような、図23A〜図23Cの(式17)〜(式21)にしたがってフィルタ係数が算出される場合の符号化効率は、いくつかの傾向があれば、図20Bおよび図20Cの(式9)および(式10)にしたがってフィルタ係数が算出される場合の符号化効率よりも高くなりえる。そのいくつかの傾向は、上述の第1〜第3の傾向と、以下に示す第4の傾向および第5の傾向とである。第4の傾向は、中心位置以外の再構築信号フィルタ係数coeff_recと、中心位置以外の予測信号フィルタ係数coeff_predとが常に略同じ値になることである。第5の傾向は、中心位置以外の予測誤差信号フィルタ係数coeff_qpeと、中心位置以外の予測信号フィルタ係数coeff_predとが常に略同じ値になることである。
第2の例(filter_hint_type[c]=2)は、2つの1次元FIRフィルタの係数が伝送される場合のポストフィルタ設計および処理に関連するものである。
再構築動画像信号、予測信号および量子化予測誤差信号をポストフィルタリングするためのフィルタ係数は、図24A〜図24Cの(式22)〜(式27)にそれぞれ示すように、受信した差分フィルタデータから算出される。つまり、動画像復号装置600のポストフィルタ640は、(式22)〜(式27)にしたがってフィルタ係数を算出する。
図24Aは、再構築動画像信号に対するフィルタ係数の算出式を示す図である。
図24Aの(式22)に示すように、再構築動画像信号に対するフィルタ係数である再構築信号フィルタ係数のx成分(coeff_rec_x[c][cx])は、差分フィルタデータに含まれるfilter_hint_rec_x[c][cx]およびfilter_hint_size_rec_xと、Wiener_Filter_Precision[c]の値とに基づいて算出される。
また、図24Aの(式23)に示すように、再構築動画像信号に対するフィルタ係数である再構築信号フィルタ係数のy成分(coeff_rec_y[c][cy])は、差分フィルタデータに含まれるfilter_hint_rec_y[c][cy]およびfilter_hint_size_rec_yと、Wiener_Filter_Precision[c]の値とに基づいて算出される。
図24Bは、予測信号に対するフィルタ係数の算出式を示す図である。
図24Bの(式24)に示すように、予測信号に対するフィルタ係数である予測信号フィルタ係数のx成分(coeff_pred_x[c][cx])は、再構築信号フィルタ係数のx成分(coeff_rec_x[c][ox])と、Wiener_Filter_Precision[c]の値と、差分フィルタデータに含まれる差分フィルタ係数filter_hint_pred_x[c][cx]、filter_hint_size_pred_xおよびfilter_hint_size_rec_xとに基づいて算出される。
また、図24Bの(式25)に示すように、予測信号に対するフィルタ係数である予測信号フィルタ係数のy成分(coeff_pred_y[c][cy])は、再構築信号フィルタ係数のy成分(coeff_rec_y[c][oy])と、Wiener_Filter_Precision[c]の値と、差分フィルタデータに含まれる差分フィルタ係数filter_hint_pred_y[c][cy]、filter_hint_size_pred_yおよびfilter_hint_size_rec_yとに基づいて算出される。
図24Cは、量子化予測誤差信号に対するフィルタ係数の算出式を示す図である。
図24Cの(式26)に示すように、量子化予測誤差信号に対するフィルタ係数である予測誤差信号フィルタ係数のx成分(coeff_qpe_x[c][cx])は、予測信号フィルタ係数のx成分(coeff_pred_x[c][ox])と、差分フィルタデータに含まれる差分フィルタ係数filter_hint_qpe_x[c][cx]、filter_hint_size_qpe_x、およびfilter_hint_size_pred_xとに基づいて算出される。
図24Cの(式27)に示すように、量子化予測誤差信号に対するフィルタ係数である予測誤差信号フィルタ係数のy成分(coeff_qpe_y[c][cx])は、予測信号フィルタ係数のy成分(coeff_pred_y[c][ox])と、差分フィルタデータに含まれる差分フィルタ係数filter_hint_qpe_y[c][cx]、filter_hint_size_qpe_y、およびfilter_hint_size_pred_yとに基づいて算出される。
ポストフィルタ640は、上記の第1の例と同様に、再構築動画像信号(変数名における“rec”)をフィルタリングするためのフィルタ係数(変数名における“coeff”)をまず算出し、それに基づき予測信号(変数名における“pred”)をフィルタリングするためのフィルタ係数を算出し、後者に基づき量子化予測誤差信号(変数名における“qpe”)をフィルタリングするためのフィルタ係数を算出する。また、ポストフィルタ640は、各フィルタ係数を算出するときには、水平方向(変数名において“_x”と示す)フィルタリングのフィルタ係数と、垂直方向(変数名において“_y”と示す)フィルタリングのフィルタ係数とで、分けて算出する。
次に、ポストフィルタ640は、算出されたフィルタ係数を用いてポストフィルタリングの水平フィルタリングを行う。
図25は、水平フィルタリングを示す図である。
図25の(式28)に示すように、ポストフィルタリングの水平フィルタリングが適用された、色成分cの位置(x,y)における値(filtered_image_x[c][y][x])は、フィルタ係数のx成分であるcoeff_rec_x[c][i]、coeff_pred_x[c][i]およびcoeff_qpe_x[c][i]と、rec_image[c]、pred_image[c]およびqpe_image[c]と、filter_hint_size_rec_x、filter_hint_size_pred_xおよびfilter_hint_size_qpe_xとに基づいて算出される。
次に、ポストフィルタ640は、図26の(式29)に示すように、水平フィルタリング済み信号(filtered_image_x[c][y][x])に対して標準化およびクリッピングを行う。
図26は、水平フィルタリング済み信号に対する標準化およびクリッピングの算出式を示す図である。
図26の(式29)に示すように、標準化およびクリッピングされた水平フィルタリング済み信号(filtered_image_clipped_x[c][y][x])は、filtered_image_x[c][y][x]に対して逆量子化およびフロア関数が適用され、0〜255の値に設定される。
次に、ポストフィルタ640は、ポストフィルタリングの垂直フィルタリングを行う。
図27は、垂直フィルタリングを示す図である。
図27の(式30)に示すように、ポストフィルタリングの垂直フィルタリングが適用された、色成分cの位置(x,y)における値(filtered_image_xy[c][y][x])は、フィルタ係数のy成分であるcoeff_rec_y[c][j]、coeff_pred_y[c][j]およびcoeff_qpe_y[c][j]と、標準化およびクリッピングされた水平フィルタリング済み信号(filtered_image_clipped_x[c])と、pred_image[c]およびqpe_image[c]と、filter_hint_size_rec_y、filter_hint_size_pred_yおよびfilter_hint_size_qpe_yと、オフセット(filter_hint_offset[c])とに基づいて算出される。
次に、ポストフィルタ640は、図28の(式31)に示すように、水平および垂直フィルタリング済み信号(filtered_image_xy[c][y][x])に対して標準化およびクリッピングを行う。
図28は、水平および垂直フィルタリング済み信号に対する標準化およびクリッピングの算出式を示す図である。
図28の(式31)に示すように、標準化およびクリッピングされた水平および垂直フィルタリング済み信号(filtered_image_clipped_x[c][y][x])は、filtered_image_xy[c][y][x]に対して逆量子化およびフロア関数が適用され、0〜255の値に設定される。
なお、上記各式において、filtered_image[c]は、ポストフィルタリング処理後の色成分cに対応する値であり、rec_image[c]は、再構築動画像信号の色成分cに対応する値であり、pred_image[c]は、予測信号の色成分cに対応する値であり、qpe_image[c]は、量子化予測誤差信号の色成分cに対応する値である。値c=0は輝度成分に対応し、c=1およびc=2は2つの色差成分それぞれに対応する。
第3の例(filter_hint_type[c]=1)は、相互相関行列が伝送される場合のポストフィルタ設計および処理に関連するものである。
まず、ポストフィルタ640は、図29Aの(式32)に示すように、原画像(動画像信号)と復号画像(再構築動画像信号)との間の相互相関行列のエレメントを算出する。
図29Aは、再構築動画像信号に対応する相互相関行列のエレメントの算出式を示す図である。
動画像信号と再構築動画像信号との間の相互相関行列cc_recのエレメントは、図29Aの(式32)に示すように、再構築動画像信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。
次に、ポストフィルタ640は、図29Bの(式33)に示すように、原画像(動画像信号)と予測画像(予測信号)との間の相互相関行列のエレメントを算出する。
図29Bは、予測信号に対応する相互相関行列のエレメントの算出式を示す図である。
動画像信号と予測信号との間の相互相関行列cc_predのエレメントは、図29Bの(式33)に示すように、予測信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。また、中心位置では、(式32)で算出された相互相関行列cc_recのエレメントを用いて相互相関行列cc_predのエレメントが算出される。
次に、ポストフィルタ640は、図29Cの(式34)に示すように、原画像(動画像信号)と量子化予測誤差画像(量子化予測誤差信号)との間の相互相関行列のエレメントを算出する。
図29Cは、量子化予測誤差信号に対応する相互相関行列のエレメントの算出式を示す図である。
動画像信号と量子化予測誤差信号との間の相互相関行列cc_qpeのエレメントは、図29Cの(式34)に示すように、量子化予測誤差信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。また、中心位置では、(式33)で算出された相互相関行列cc_predのエレメントを用いて相互相関行列cc_qpeのエレメントが算出される。
このように算出されたそれぞれの相互相関行列を用いることにより、ウィナーフィルタであるポストフィルタのフィルタ係数を求めることができ、求めたフィルタ係数とfilter_hint_offset[c]とをあわせて用いることにより、上述した2次元FIRフィルタによるフィルタリングを行うことができる。
第4の例(filter_hint_type[c]=3)は、2つの相互相関ベクトルが伝送される場合のポストフィルタ設計および処理に関連するものである。
まず、ポストフィルタ640は、原画像(動画像信号)と復号画像(再構築動画像信号)との間の2つの相互相関ベクトル(水平相互相関ベクトルおよび垂直相互相関ベクトル)のエレメントを算出する。
図30Aは、再構築動画像信号に対応する水平相互相関ベクトルのエレメントの算出式を示す図である。
動画像信号と再構築動画像信号との間の水平相互相関ベクトルcc_rec_xのエレメントは、図30Aの(式35)に示すように、再構築動画像信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。
図30Bは、再構築動画像信号に対応する垂直相互相関ベクトルのエレメントの算出式を示す図である。
動画像信号と再構築動画像信号との間の垂直相互相関ベクトルcc_rec_yのエレメントは、図30Bの(式36)に示すように、再構築動画像信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。
次に、ポストフィルタ640は、原画像(動画像信号)と予測画像(予測信号)との間の2つの相互相関ベクトル(水平相互相関ベクトルおよび垂直相互相関ベクトル)のエレメントを算出する。
図30Cは、予測信号に対応する水平相互相関ベクトルのエレメントの算出式を示す図である。
動画像信号と予測信号との間の水平相互相関ベクトルcc_pred_xのエレメントは、図30Cの(式37)に示すように、予測信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。また、中心位置では、(式35)で算出された水平相互相関ベクトルcc_rec_xのエレメントを用いて水平相互相関ベクトルcc_pred_xのエレメントが算出される。
図30Dは、予測信号に対応する垂直相互相関ベクトルのエレメントの算出式を示す図である。
動画像信号と予測信号との間の垂直相互相関ベクトルcc_pred_yのエレメントは、図30Dの(式38)に示すように、予測信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。また、中心位置では、(式36)で算出された垂直相互相関ベクトルcc_rec_yのエレメントを用いて垂直相互相関ベクトルcc_pred_yのエレメントが算出される。
次に、ポストフィルタ640は、原画像(動画像信号)と量子化予測誤差画像(量子化予測誤差信号)との間の2つの相互相関ベクトル(水平相互相関ベクトルおよび垂直相互相関ベクトル)のエレメントを算出する。
図30Eは、量子化予測誤差信号に対応する水平相互相関ベクトルのエレメントの算出式を示す図である。
動画像信号と量子化予測誤差信号との間の水平相互相関ベクトルcc_qpe_xのエレメントは、図30Eの(式39)に示すように、量子化予測誤差信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。また、中心位置では、(式37)で算出された水平相互相関ベクトルcc_pred_xのエレメントを用いて水平相互相関ベクトルcc_qpe_xのエレメントが算出される。
図30Fは、量子化予測誤差信号に対応する垂直相互相関ベクトルのエレメントの算出式を示す図である。
動画像信号と量子化予測誤差信号との間の垂直相互相関ベクトルcc_qpe_yのエレメントは、図30Fの(式40)に示すように、量子化予測誤差信号のフィルタリング範囲の中心位置と、その他の位置とで異なる算出式により算出される。また、中心位置では、(式38)で算出された垂直相互相関ベクトルcc_pred_yのエレメントを用いて垂直相互相関ベクトルcc_qpe_yのエレメントが算出される。
このように算出されたそれぞれの相互相関ベクトルを用いることにより、水平方向のウィナーフィルタであるポストフィルタのフィルタ係数と、垂直方向のウィナーフィルタであるポストフィルタのフィルタ係数とを求めることができ、求めたフィルタ係数とfilter_hint_offset[c]とをあわせて用いることにより、上述した2つの1次元FIRフィルタによるフィルタリングを行うことができる。
上記例では、再構築動画像信号のフィルタ係数をまず算出し、それに基づき予測信号のフィルタ係数を算出し、後者に基づき量子化予測誤差信号のフィルタ係数を算出した。しかし、他の順序で各フィルタ係数を算出してもよい。例えば、最初に量子化予測誤差信号のフィルタ係数を算出してもよく、または、再構築動画像信号のフィルタ係数に基づいて量子化予測誤差信号のフィルタ係数を算出してもよい。他の依存関係や順序にてフィルタ係数の算出処理を行うことも可能である。
エンコーダでは、フィルタ係数と相互相関データとを、符号化および伝送する前に量子化する必要がある。エンコーダが、例えばフィルタ係数または相互相関データなどの例示的値coeff_doubleを、浮動小数点で表す場合、量子化を以下の(式41)にしたがって行う。ここで、そのフィルタ係数が整数となるように量子化してもよい。また、エンコーダは、再構築動画像信号、予測信号および量子化予測誤差信号のそれぞれに対応する全てのフィルタ係数(フィルタヒント)を量子化して送信してもよい。
前述したシンタックス、セマンティック、およびデコーダにおけるフィルタデータの適用は、一例にすぎない。一般的に、フィルタデータを信号送信するためのシンタックスエレメントは本例と異なることがある。特に、フィルタデータはフレームごとに提供される必要はない。数フレームごとに定期的に送ってもよいし、フレームにおけるフィルタデータの存在を、信号伝達用フラグにより不定期的に信号送信してもよい。さらに、フィルタデータは、スライス、既定のマクロブロックセット、マクロブロックまたはブロックなど、動画像フレームのある部分に対して信号送信してもよい。フィルタ特性を局所的に適応させることにより、品質の向上が可能になる。特に、実質的に異なる空間的および/または時間的特性を有する部分を持つ画像において、品質の向上が可能になる。
フィルタ係数間(またはオフセット間もしくは相関情報間)の統計的関係(相互相関)の利用は、単一の色成分に対するフィルタ係数に限られたことではない。複数の異なる色成分に対するフィルタ係数間の統計的依存関係(相互相関)も利用してよい。色成分の信号は通常互いに相関関係を有し、相関性のあるフィルタデータをもたらすことがあるからである。したがって、複数の異なる色成分に対するフィルタ情報(データ)もこれらの依存関係を用いて、例えば予測符号化、変換符号化またはマルコフモデルに基づいた符号化により、符号化してもよい。色成分間の統計的関係を利用した他の符号化を用いてもよい。例えば、ランレングス符号化や、符号語テーブルを切り替える、または複数のフィルタデータエレメントの組み合わせを単一の符号語に符号化するエントロピー符号化などである。
さらに、フィルタデータの符号化には、異なる画像領域のフィルタデータ間における統計的依存関係(相互相関)を用いてもよい。
図31は、符号化/復号の対象ブロックに隣接する周辺ブロックを示す図である。
ブロックごとにフィルタデータを決定する場合、対象ブロックと、対象ブロックに隣接し復号済みの周辺ブロック(ブロックm=2,…,5など)とにおける統計的関係(相互相関)を用いて、対象ブロックのフィルタデータを符号化してもよい。しかしながら、ブロック以外の領域に対してフィルタデータを決定してもよく、それらの領域に対応するフィルタデータ間の依存関係を用いて上記のように、例えば、予測や変換などを用いて、符号化を行ってもよい。さらに、統計的関係を用いてフィルタデータを符号化するこのような画像領域は、別々の画像に位置していてもよい(例えば、対応する位置または動き補償をおこなう位置)。
各信号/全ての信号、および/または色成分に対して、フィルタ精度(Wiener_Filter_Precision)もフィルタデータの量子化情報として符号化し、Wiener_Filter_Precision[c]としてデコーダに伝送してもよい。しかしながら、精度は固定的に定義づけられてもよい。フィルタ係数を予測するための信号予測方式もまた信号送信されてよい。これは、適応的予測方式を適用する場合に特に効果的である。
通常、フィルタデータは、FIR(有限インパルス応答)フィルタまたはIIR(無限インパルス応答)フィルタを用いたフィルタリングにおいて使用するために決定される。フィルタは2次元の非分離可能フィルタまたは1次元の分離可能フィルタであってもよい。
複数の異なる色成分および/または信号(予測信号、量子化予測誤差信号、再構築信号)をフィルタリングためのフィルタは、フィルタリング順序を繰り返し信号送信することを避けるために、同じ固定長を有してもよい。しかしながら、色成分毎に、および量子化予測誤差信号と、予測信号と、再構築動画像信号とのそれぞれに対して個々に、フィルタ長を符号化してもよい。フィルタ長の符号化には、複数の異なる信号および/または色成分をフィルタリングするためのフィルタ長の統計的関係(相互相関)を用いてもよい。したがって、予測符号化、変換符号化、マルコフ符号化、または他のいかなる符号化も、フィルタ長情報に適用できる。
予測(動画像)信号および量子化予測誤差信号に対するフィルタ係数は、ジョイントエンコーダの最適化により同一であってもよく、そのため伝送は1回のみでよい。その場合、フィルタ係数が同じであるということを信号送信してもよい。
フィルタリング対象の複数の異なる信号および/または複数の異なる色成分に対するフィルタデータの選択肢は、信号送信するフィルタデータのサイズを縮小するために、制限を設けてもよい。一例を挙げれば、少なくとも1つのフィルタリング対象信号(再構築動画像信号、予測信号、量子化予測誤差信号)および/または色成分信号に対して対称フィルタを用いるように制限を設ける。別の例では、3つの信号(復号信号、予測信号、量子化予測誤差信号)および/または色成分のうち2つもしくは3つに対して同等フィルタを用いるように制限を設ける。
または、フィルタ係数によっては固定的に設定されていてもよい。固定フィルタ係数の値を信号送信する頻度は、例えばシーケンスヘッダにおいてのみなど、可変フィルタ係数を信号送信する頻度より低くてもよい。
シンタックスに関して、符号語を符号化動画像信号およびフィルタデータに加えることで、3つの信号(再構築動画像信号、予測信号、量子化予測誤差信号)のうちいずれに対してフィルタ係数を符号化および伝送するのかを信号送信してもよい。例えば、3ビットにより符号語を構成することで、3ビットのそれぞれが再構築動画像信号、予測信号または量子化予測誤差信号に対するフィルタデータの有無を信号送信してもよい。このような信号送信は、例えばシーケンス、フレームまたはスライスヘッダにおいて行ってもよい。
将来の拡張のために、符号語“additional_extension_flag”を含めてもよい。
図32は、本実施の形態に係るシステムを示す図である。
このシステムでは、エンコーダ1501側からデコーダ1503側へ符号化動画像信号が送信される。エンコーダ1501は、動画像符号化装置500または700であり、デコーダ1503は、動画像復号装置600または800である。入力信号である動画像信号は、エンコーダ1501によって符号化され、チャネル1502へ提供される。上述したように、エンコーダ1501は、本発明の任意の実施の形態に係るエンコーダである。チャネル1502は、格納手段か伝送チャネルである。格納手段は、例えば、任意の揮発性または不揮発性メモリや、任意の磁気または光学媒体や、大容量格納手段などである。無線あるいは有線、固定的あるいは移動可能な、xDSL、ISDN、WLAN、GPRS、UMTS、Internetなどの任意の伝送システムや、標準化または特許化されたシステムの物理的リソースによって、伝送チャネルを形成してもよい。エンコーダ側は、エンコーダ以外にも、フォーマット変換などの動画像信号に対する前処理をおこなう前処理手段および/またはチャネル1502を通して符号化動画像信号を伝送するトランスミッタ、または符号化動画像信号を格納手段に送信するためのアプリケーションプログラムを含んでもよい。符号化動画像信号は、チャネル1502を通じてデコーダ1503によって取得される。上述したように、デコーダ1503は、本発明の任意の実施の形態に係るデコーダである。デコーダは、符号化動画像信号を復号する。デコーダ側は、デコーダ以外にも、さらに、伝送チャネルから符号化動画像信号を受信するためのレシーバまたは格納手段からの符号化動画像信号を抽出するためのアプリケーションプログラム、さらに/または、フォーマット変換など復号動画像信号に対する後処理をおこなう後処理手段を備えてもよい。
なお、本実施の形態のポストフィルタ設計部540,730は、再構築動画像信号、予測信号、および量子化予測誤差信号を用いてフィルタデータまたはフィルタ係数を決定したが、それらの信号のうちの少なくとも2つの信号を用いてフィルタデータまたはフィルタ係数を決定してもよい。また、量子化予測誤差信号の代わりに予測誤差信号を用いてもよい。同様に、本実施の形態のポストフィルタ640,840は、再構築動画像信号、予測信号、および量子化予測誤差信号に対してフィルタデータまたはフィルタ係数を適用したが、それらの信号のうちの少なくとも2つの信号に対してフィルタデータまたはフィルタ係数を適用してもよい。また、量子化予測誤差信号の代わりに予測誤差信号に対してフィルタデータまたはフィルタ係数を適用してもよい。
(実施の形態2)
上記実施の形態で示した動画像符号化装置、動画像復号装置またはそれらの方法を実現するためのプログラムを記憶メディアに記録することにより、上記実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記実施の形態で示した動画像符号化装置、動画像復号装置またはそれらの方法の応用例とそれらを用いたシステムを説明する。
図33は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106〜ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および、基地局ex106〜ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図33のような構成に限定されず、いずれかの要素を組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex106〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、もしくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、または、PHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化処理および復号処理は、一般的にコンピュータex111および各機器が有するLSI(Large Scale Integration)ex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、画像符号化用および画像復号用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化処理および復号処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバまたは複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利または設備を有さないユーザでも個人放送を実現できる。
このコンテンツ供給システムを構成する各機器の符号化、復号には上記実施の形態で示した動画像符号化方法あるいは動画像復号方法を用いるようにすればよい。
その一例として携帯電話ex114について説明する。
図34は、上記実施の形態で説明した動画像符号化装置、動画像復号装置またはそれらの方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex601、CCDカメラ等の映像、静止画を撮ることが可能なカメラ部ex603、カメラ部ex603で撮影した映像、アンテナex601で受信した映像等が復号されたデータを表示する液晶ディスプレイ等の表示部ex602、操作キーex604群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex608、音声入力をするためのマイク等の音声入力部ex605、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号されたデータを保存するための記録メディアex607、携帯電話ex114に記録メディアex607を装着可能とするためのスロット部ex606を有している。記録メディアex607はSDカード等のプラスチックケース内に電気的に書換えおよび消去が可能な不揮発性メモリであるEEPROMの一種であるフラッシュメモリ素子を格納したものである。
さらに、携帯電話ex114について図35を用いて説明する。携帯電話ex114は表示部ex602および操作キーex604を備えた本体部の各部を統括的に制御するようになされた主制御部ex711に対して、電源回路部ex710、操作入力制御部ex704、画像符号化部ex712、カメラインターフェース部ex703、LCD(Liquid Crystal Display)制御部ex702、画像復号部ex709、多重分離部ex708、記録再生部ex707、変復調回路部ex706および音声処理部ex705が同期バスex713を介して互いに接続されている。
電源回路部ex710は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付デジタル携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROMおよびRAM等でなる主制御部ex711の制御に基づいて、音声通話モード時に音声入力部ex605で集音した音声信号を音声処理部ex705によってデジタル音声データに変換し、これを変復調回路部ex706でスペクトラム拡散処理し、送受信回路部ex701でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex601を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex601で受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変復調回路部ex706でスペクトラム逆拡散処理し、音声処理部ex705によってアナログ音声データに変換した後、音声出力部ex608を介してこれを出力する。
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex604の操作によって入力された電子メールのテキストデータは操作入力制御部ex704を介して主制御部ex711に送出される。主制御部ex711は、テキストデータを変復調回路部ex706でスペクトラム拡散処理し、送受信回路部ex701でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex601を介して基地局ex110へ送信する。
データ通信モード時に画像データを送信する場合、カメラ部ex603で撮像された画像データを、カメラインターフェース部ex703を介して画像符号化部ex712に供給する。また、画像データを送信しない場合には、カメラ部ex603で撮像した画像データをカメラインターフェース部ex703およびLCD制御部ex702を介して表示部ex602に直接表示することも可能である。
画像符号化部ex712は、本願発明で説明した動画像符号化装置を備えた構成であり、カメラ部ex603から供給された画像データを上記実施の形態で示した動画像符号化装置に用いた動画像符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex708に送出する。また、このとき同時に携帯電話ex114は、カメラ部ex603で撮像中に音声入力部ex605で集音した音声を、音声処理部ex705を介してデジタルの音声データとして多重分離部ex708に送出する。
多重分離部ex708は、画像符号化部ex712から供給された符号化画像データと音声処理部ex705から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex706でスペクトラム拡散処理し、送受信回路部ex701でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex601を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex601を介して基地局ex110から受信した受信データを変復調回路部ex706でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex708に送出する。
また、アンテナex601を介して受信された多重化データを復号するには、多重分離部ex708は、多重化データを分離することにより画像データのビットストリームと音声データのビットストリームとに分け、同期バスex713を介して当該符号化画像データを画像復号部ex709に供給すると共に当該音声データを音声処理部ex705に供給する。
次に、画像復号部ex709は、本願で説明した動画像復号装置を備えた構成であり、画像データのビットストリームを上記実施の形態で示した動画像符号化方法に対応した動画像復号方法で復号することにより再生動画像データを生成し、これを、LCD制御部ex702を介して表示部ex602に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex705は、音声データをアナログ音声データに変換した後、これを音声出力部ex608に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、上記システムの例に限られず、最近は衛星、地上波によるデジタル放送が話題となっており、図36に示すようにデジタル放送用システムにも上記実施の形態の少なくとも動画像符号化装置または動画像復号装置を組み込むことができる。具体的には、放送局ex201では音声データ、映像データまたはそれらのデータが多重化されたビットストリームが電波を介して通信または放送衛星ex202に伝送される。これを受けた放送衛星ex202は、放送用の電波を発信し、衛星放送受信設備をもつ家庭のアンテナex204はこの電波を受信し、テレビ(受信機)ex300またはセットトップボックス(STB)ex217などの装置はビットストリームを復号してこれを再生する。また、記録媒体であるCDおよびDVD等の記録メディアex215、ex216に記録した画像データと、音声データが多重化されたビットストリームを読み取り、復号するリーダ/レコーダex218にも上記実施の形態で示した動画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示される。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号装置を実装し、これをテレビのモニタex219で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に動画像復号装置を組み込んでも良い。また、アンテナex205を有する車ex210で、衛星ex202または基地局等から信号を受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。
また、DVD、BD等の記録メディアex215に記録した音声データ、映像データまたはそれらのデータが多重化された符号化ビットストリームを読み取り復号する、または、記録メディアex215に、音声データ、映像データまたはそれらのデータを符号化し、多重化データとして記録するリーダ/レコーダex218にも上記実施の形態で示した動画像復号装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示される。また、符号化ビットストリームが記録された記録メディアex215により、他の装置およびシステム等は、映像信号を再生することができる。例えば、他の再生装置ex212は、符号化ビットストリームがコピーされた記録メディアex214を用いて、モニタex213に映像信号を再生することができる。
また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号装置を組み込んでもよい。
図37は、上記実施の形態で説明した動画像符号化装置、動画像復号装置またはそれらの方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像情報のビットストリームを取得、または、出力するチューナex301と、受信した符号化データを復調する、または、生成された符号化データを外部に送信するために変調する変調/復調部ex302と、復調した映像データと音声データとを分離する、または、符号化された映像データと音声データとを多重化する多重/分離部ex303を備える。また、テレビex300は、音声データ、映像データそれぞれを復号する、または、それぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305を有する信号処理部ex306と、復号された音声信号を出力するスピーカex307、復号された映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインターフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インターフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得したデータを復号し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した映像データ、音声データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号し、分離した映像データを映像信号処理部ex305で上記実施の形態で説明した動画像復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から符号化された符号化ビットストリームを読み出してもよい。次に、テレビex300が音声信号および映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記実施の形態で説明した動画像符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318〜ex321は図示しているように複数備えていてもよいし、一つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302と多重/分離部ex303との間等でもシステムのオーバフローおよびアンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送および記録メディア等から音声データおよび映像データを取得する以外に、マイクおよびカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は、上記の符号化処理、多重化、および、外部出力ができる構成として説明したが、これらのすべての処理を行うことはできず、上記受信、復号処理、および、外部出力のうちいずれかのみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから符号化ビットストリームを読み出す、または、書き込む場合には、上記復号処理または符号化処理はテレビex300およびリーダ/レコーダex218のうちいずれかで行ってもよいし、テレビex300とリーダ/レコーダex218とが互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図38に示す。情報再生/記録部ex400は、以下に説明する要素ex401〜ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しおよび書き込みの処理は、システム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成および追加を行うと共に、変調記録部ex402、再生復調部ex403およびサーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は、例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図39に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、あらかじめグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録および再生を行う装置は、情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233の内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりするなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図17に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111および携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器および復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
このように、上記実施の形態で示した動画像符号化方法あるいは動画像復号方法を上述したいずれの機器およびシステムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
また、本発明は、上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態3)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図40に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501〜ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503およびストリームコントローラex504等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117およびカメラex113等からAV信号の入力を受け付ける。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは、処理量および処理速度に応じて適宜複数回に分けるなどされ、信号処理部ex507に送られる。信号処理部ex507は、音声信号の符号化および/または映像信号の符号化を行う。ここで映像信号の符号化処理は、上記実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力されたビットストリームは、基地局ex107に向けて送信されたり、または、記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
また、例えば復号処理を行う場合には、LSIex500は、制御部ex501の制御に基づいて、ストリームI/Oex506によって基地局ex107を介して得た符号化データ、または、記録メディアex215から読み出して得た符号化データを一旦メモリex511等に蓄積する。制御部ex501の制御に基づいて、蓄積したデータは、処理量および処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られる。信号処理部ex507は、音声データの復号および/または映像データの復号を行う。ここで映像信号の復号処理は、上記実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦バッファex508等に蓄積するとよい。復号された出力信号は、メモリex511等を適宜介しながら、携帯電話ex114、ゲーム機ex115およびテレビex300等の各出力部から出力される。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も一つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
以上、本発明に係る動画像符号化方法、動画像符号化装置、動画像復号方法および動画像復号装置について、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を当該実施の形態に施した形態、および、異なる実施の形態における構成要素およびステップ等を組み合わせて構築される別の形態も、本発明の範囲内に含まれる。
H.264/AVCに基づく動画像符号化システムに関連して上述の例の大半を概要説明した。用語は、主として、H.264/AVCの用語に関連したものである。しかしながら、H.264/AVCに基づく符号化に対するさまざまな実施の形態の用語および記述は、本発明の原理および考えを、当該システムに限定することを意図しない。H.264/AVC標準規格に準拠した符号化および復号に関する詳細な説明は、ここで説明した例示的な実施の形態についての理解を深めることを意図しており、動画像符号化におけるプロセスおよび機能を、説明した特定の実施態様に本発明が限定されるように理解されるべきではない。一方、ここで提案した改良策は、動画像符号化において容易に応用可能であろう。さらに、本発明のコンセプトは、JVTによって現在討議されているH.264/AVCの拡張符号化においても容易に利用可能であろう。
要約すると、本発明に係る動画像信号の復号では、エンコーダ側から提供されるフィルタデータに基づいて、予測信号と、予測誤差信号と、再構築動画像信号とのうち少なくとも2つの信号に対して個々にフィルタリングし、本発明に係る動画像信号の符号化では、フィルタデータを、予測信号と、予測誤差信号と、再構築動画像信号とのうち前記少なくとも2つの信号間の統計的依存関係を利用して符号化する。