以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態1では、画像を構成する少なくとも1つの画素の集合であるブロックを処理単位として画像信号の符号化歪みを除去する方法について説明する。本実施の形態では、ブロックは矩形状であり、第1処理境界がブロックの水平境界であり、第2処理境界が垂直境界であるとする。
具体的には、垂直境界は、現在処理中のブロック(以下、「処理中のブロック」または「現在のブロック」とする)と当該現在のブロックの左側に隣接する前に処理されたブロック(以下、「処理済みのブロック」または「前のブロック」とする)との間の境界である。また、水平境界は、現在のブロックと当該現在のブロックの上側に隣接する前のブロックとの間の境界である。
図1は、本発明の実施の形態1に係る符号化歪み除去装置100の機能構成を示すブロック図である。図1に示すように、符号化歪み除去装置100は、スイッチ101と、フィルタ対象画素決定部102と、フィルタ候補情報保持部103と、スイッチ104と、スイッチ105と、フィルタ処理部106と、スイッチ107とを備える。符号化歪み除去装置100への入力信号は、符号化歪みが含まれる可能性のある画像信号である。
スイッチ101は、フィルタ対象画素決定部102への入力信号の入力先の切り替えを行う。この入力信号の入力先の切り替えと連動して、フィルタ対象画素決定部102による処理の対象となるブロック境界の方向が切り替えられる。
本実施の形態では、スイッチ101が「a」に接続されているときには、符号化歪み除去装置100の外部から画像信号がフィルタ対象画素決定部102に入力される。一方、スイッチ101が「b」に接続されているときには、フィルタ対象画素決定部102から画像信号が再びフィルタ対象画素決定部102に入力される。
フィルタ対象画素決定部102は、第1決定部と第2決定部とに相当する。フィルタ対象画素決定部102は、少なくとも隣接画素の画素値を用いて、ブロック境界に対するフィルタ対象画素を決定する。
ここで、隣接画素とは、ブロック境界に隣接する2つの画素である。また、フィルタ対象画素とは、フィルタ処理部106によってフィルタ処理が行われる対象となる画素である。また、フィルタ処理とは、符号化歪み除去処理の一例であり、例えば適応的デブロッキングフィルタである。
具体的には、フィルタ対象画素決定部102は、まず、垂直境界に隣接する隣接画素(第1隣接画素)の画素値に基づいて、当該垂直境界に対するフィルタ対象画素(第1対象画素)を決定する。次に、フィルタ対象画素決定部102は、水平境界に隣接する隣接画素(第2隣接画素)の画素値に基づいて、当該水平境界に対するフィルタ対象画素(第2対象画素)を決定する。このとき、フィルタ対象画素決定部102は、水平境界に隣接する隣接画素の画素値として垂直境界に対するフィルタ処理が行われる前の画素値を用いて、当該水平境界に対するフィルタ対象画素を決定する。
さらに具体的には、本実施の形態では、スイッチ101が「a」に接続されているときには、フィルタ対象画素決定部102は、垂直境界に対するフィルタ対象画素を決定する。一方、スイッチ101が「b」に接続されているときには、フィルタ対象画素決定部102は、水平境界に対するフィルタ対象画素を決定する。
フィルタ候補情報保持部103は、フィルタ対象画素決定部102によって決定されたフィルタ対象画素に関する情報をフィルタ候補情報として保持する。具体的には、フィルタ候補情報保持部103は、例えばブロック境界ごとにフィルタ対象画素の位置を示す情報をフィルタ候補情報として保持する。また、フィルタ候補情報保持部103は、例えばブロック境界の隣接画素がフィルタ対象画素であるか否かを示す情報をフィルタ候補情報として保持してもよい。
スイッチ104は、フィルタ対象画素決定部102からの出力信号の出力先を切り替える。本実施の形態では、スイッチ104が「a」に接続されているときには、フィルタ対象画素決定部102からの出力信号はスイッチ101に出力される。一方、スイッチ104が「b」に接続されているときには、フィルタ対象画素決定部102からの出力信号はスイッチ105に出力される。
スイッチ105は、フィルタ処理部106への入力信号の入力先の切り替えを行う。この入力信号の入力先の切り替えと連動して、フィルタ処理部106による処理の対象となるブロック境界の方向が切り替えられる。
フィルタ処理部106は、第1除去部と第2除去部とに相当する。フィルタ処理部106は、決定されたフィルタ対象画素に対してフィルタ処理を行う。具体的には、スイッチ105が「a」に接続されているときには、フィルタ処理部106は、垂直境界に対するフィルタ対象画素に対して、フィルタ処理を行う。一方、スイッチ105が「b」に接続されているときには、フィルタ処理部106は、水平境界に対するフィルタ対象画素に対して、フィルタ処理を行う。
スイッチ107は、フィルタ処理部106からの出力信号の出力先を切り替える。この出力信号は、フィルタ処理後の画像信号である。本実施の形態では、スイッチ107が「a」に接続されているときには、フィルタ処理部106からの出力信号はスイッチ105に出力される。一方、スイッチ107が「b」に接続されているときには、フィルタ処理部106からの出力信号は、処理済み画像信号として符号化歪み除去装置100の外部へ出力される。
次に、以上のように構成された符号化歪み除去装置100における各種動作について説明する。
図2は、本発明の実施の形態1に係る符号化歪み除去方法の一例を示すフローチャートである。具体的には、図2は、本発明の実施の形態1に係る符号化歪み除去装置100による1つのブロックに対する処理の流れを示すフローチャートである。
まず、フィルタ対象画素決定部102は、第nのフィルタ処理方向に対応するブロック境界に対するフィルタ対象画素を、少なくともブロック境界の隣接画素の画素値を用いて決定する(S201)。このステップS201は、第1決定ステップおよび第2決定ステップに相当する。
以下に、このステップS201の処理の具体例を説明する。
処理開始時点では、スイッチ101は、「a」に接続されている。スイッチ101の「a」に入力された画像信号は、フィルタ対象画素決定部102に入力される。フィルタ対象画素決定部102は、スイッチ101が「a」に接続されている場合には、水平方向のフィルタ処理方向(第1のフィルタ処理方向)に対応する垂直境界に対するフィルタ対象画素を決定する。
また、垂直境界に対するフィルタ対象画素を決定された後には、スイッチ104は、「b」に接続されている。スイッチ104の「a」からスイッチ101の「b」に入力された画像信号は、フィルタ対象画素決定部102に入力される。フィルタ対象画素決定部102は、スイッチ101が「b」に接続されている場合には、垂直方向のフィルタ処理方向(第2のフィルタ処理方向)に対応する水平境界に対するフィルタ対象画素を決定する。
ここで、フィルタ対象画素決定部102におけるフィルタ対象画素の決定方法の一例を、図3A〜図3Cを用いて説明する。
図3Aおよび図3Bに示すように、水平境界近傍の画素のインデックス、および垂直境界近傍の画素のインデックスを、それぞれp0〜p3およびq0〜q3と表わす。なお、画素値は、これらのインデックスによって表わされる。以下において、例えばインデックスがp0の画素を「画素p0」と記載する。
ここで、フィルタ対象画素は、フィルタ処理方向に延びる処理ライン単位で決定される。つまり、フィルタ対象画素決定処理は、ブロック境界と直交する方向に並ぶ画素列である処理ラインごとに行われる。なお、このフィルタ対象画素決定処理の処理ラインを示す模式図を図3Cに示す。図3Cでは、垂直境界に対するフィルタ対象画素決定処理における処理ラインが示されている。例えば、図3Aの左端の垂直ラインでは、画素p0およびq0がフィルタ対象画素と決定され、左端から2番目のラインでは画素p1、p0、q0、およびq1がフィルタ対象画素と決定される。
図4は、本発明の実施の形態1に係るフィルタ対象画素決定方法の一例を示すフローチャートである。
まず、フィルタ対象画素決定部102は、ブロック境界に隣接する画素p0と画素q0との差分値の絶対値DIFaを算出する(ステップS40a)。次に、フィルタ対象画素決定部102は、算出した差分値の絶対値DIFaと予め決められた方法で与えられる閾値THaとを比較する(ステップS40b)閾値THaは、例えば、符号化または復号化において用いられる量子化ステップ値に応じて決定される値であればよい。
ここで、絶対値DIFaが閾値THaより小さい場合(ステップS40bでYES)、フィルタ対象画素決定部102は、画素p0と画素q0とに対してフィルタ処理を行うことを決定する(ステップS40c)。つまり、フィルタ対象画素決定部102は、ブロック境界の隣接画素である画素p0と画素q0とをフィルタ対象画素と決定する。
一方、絶対値DIFaが閾値THa以上である場合(ステップS40bでNo)、フィルタ対象画素決定部102は、画素p0と画素q0とに対してフィルタ処理を行わないと決定する(ステップS40d)。つまり、フィルタ対象画素決定部102は、ブロック境界の隣接画素である画素p0と画素q0とをフィルタ非対象画素と決定する。
このように、ステップS201において、フィルタ対象画素決定部102は、ブロック境界の隣接画素の画素値に基づいて、そのブロック境界に対するフィルタ対象画素を決定する。なお、フィルタ対象画素を決定する方法については、ブロック境界の隣接画素の画素値の関係性(例えば差分値または比など)に基づいて決定されればよい。フィルタ対象画素の決定方法の他の例については、他の実施の形態で説明する。
なお、ここではフィルタ処理方向として水平方向と垂直方向とを例示したが、これに限ったものではなく、ブロック境界が斜め方向の場合には、その斜め方向と平行もしくは垂直な方向をフィルタ処理方向とすることも考えられる。また、フィルタ処理方向は、必ずしも2方向である必要はなく、ブロックの形状に応じて3方向以上であってもよい。
次に、フィルタ対象画素決定部102は、フィルタ対象画素に関する情報をフィルタ候補情報としてフィルタ候補情報保持部103に出力し、かつ画像信号を変更せずにそのままスイッチ104へ出力する(ステップS202)。つまり、フィルタ候補情報保持部103は、フィルタ対象画素決定部102によって決定された垂直境界または水平境界に対するフィルタ対象画素に関する情報をフィルタ候補情報として保持する。
処理開始時点では、スイッチ104は「a」に接続されている。したがって、フィルタ対象画素決定部102からスイッチ104へ出力された画像信号は、スイッチ104の「a」からスイッチ101の「b」に送られる。ここで、スイッチ101は「a」から「b」に切替えられる。つまり、フィルタ対象画素決定部102から出力された画像信号は、変更されずに再度フィルタ対象画素決定部102に入力される。
このとき、フィルタ対象画素決定部102は、上述したように、水平境界に対するフィルタ対象画素を決定する。フィルタ対象画素決定部102は、水平境界に対するフィルタ対象画素に関する情報をフィルタ候補情報保持部103に出力する。
第Nのフィルタ処理方向に関するステップS201およびS202の処理が終了した後、スイッチ104は「b」に接続される。したがって、フィルタ対象画素決定部102から出力された画像信号は、スイッチ105に入力される。スイッチ105は、処理開始時点では「a」に接続されている。
次に、フィルタ処理部106は、フィルタ候補情報保持部103から取得するフィルタ候補情報に基づいて、入力される画像信号に対してフィルタ処理を行う(ステップS203)。つまり、フィルタ処理部106は、フィルタ対象画素決定部102によって決定されたフィルタ対象画素に対してフィルタ処理を行う。このステップS203は、第1除去ステップおよび第2除去ステップに相当する。
以下に、このステップS203の処理の具体例を説明する。
フィルタ処理部106は、スイッチ105が「a」に接続されている場合には、垂直境界に対するフィルタ処理を行う。一方、スイッチ105が「b」に接続されている場合には、フィルタ処理部106は、水平境界に対してフィルタ処理を行う。
図5は、本発明の実施の形態1に係るフィルタ処理の概念を説明するための図である。図5において、横軸は画素位置を示し、縦軸は画素値を示す。
例えば、図5(a)に示す原画像の画像信号に対して、ブロック単位の符号化処理が行われると、図5(b)に示すように、ブロック歪みが発生する。ブロック歪みとは、ブロック内部では画素値が滑らかに連続的に変化し、ブロック境界のみで画素値が不連続に変化することを示す。
そこで、図5(b)に示すブロック境界のフィルタ処理が行われることで、図5(c)に示すようにブロック境界において画素値が連続的に変化するように補正され、符号化に起因するブロック歪みが低減される。
このように、フィルタ処理部106は、フィルタ対象画素決定部102によって決定されたフィルタ対象画素に対してフィルタ処理を行う。なお、フィルタ処理の具体的な方法については、他の実施の形態に詳しく説明する。
ここで、スイッチ107のスイッチング動作について説明する。フィルタ処理された画像信号は、スイッチ107へ出力される。処理開始時点では、スイッチ107は、「a」に接続されている。したがって、フィルタ処理部106からスイッチ107へ出力された画像信号は、スイッチ107の「a」からスイッチ105の「b」に送られる。ここでスイッチ105は、「a」から「b」に切替えられる。つまり、フィルタ処理部106から出力された、垂直境界に対するフィルタ処理済みの画像信号は、フィルタ処理部106に再度入力される。
このとき、フィルタ処理部106は、フィルタ候補情報保持部103から取得するフィルタ候補情報に基づいて、水平境界に対するフィルタ処理を行う。フィルタ処理された画像信号は、スイッチ107へ出力される。ここでスイッチ107は、「a」から「b」に切替えられる。したがって、水平境界に対するフィルタ処理済みの画像信号は、符号化歪み除去装置100の外部に出力される。
以上のように、符号化歪み除去装置100は、垂直境界および水平境界の双方に対するフィルタ対象画素を決定した後に、垂直境界および水平境界に対するフィルタ処理を行う。つまり、符号化歪み除去装置100は、フィルタ処理が行われる前の画素値に基づいて、フィルタ対象画素を決定する。
(実施の形態1の変形例)
なお、本実施の形態では垂直境界に対するフィルタ対象画素の決定、水平境界に対するフィルタ対象画素の決定という順番でフィルタ対象画素が決定されたが、図6に示すように、垂直境界に対するフィルタ対象画素の決定と水平境界に対するフィルタ対象画素の決定とが並列で実行されてもよい。
図6は、本発明の実施の形態1の変形例に係る符号化歪み除去装置600の機能構成の一例を示すブロック図である。図6に示すように、符号化歪み除去装置600は、第1フィルタ対象画素決定部601と、第2フィルタ対象画素決定部602と、フィルタ候補情報保持部603と、スイッチ604と、フィルタ処理部605と、スイッチ606とを備える。
フィルタ候補情報保持部603は、フィルタ候補情報保持部103と同じであり、同じ動作を行う。また、スイッチ604は、スイッチ105と同じであり、同じ動作を行う。また、フィルタ処理部605は、フィルタ処理部106と同じであり、同じ動作を行う。また、スイッチ606は、スイッチ107と同じであり、同じ動作を行う。
また、第1フィルタ対象画素決定部601は第1決定部に相当し、第2フィルタ対象画素決定部602は第2決定部に相当する。つまり、第1フィルタ対象画素決定部601と第2フィルタ対象画素決定部602とは、フィルタ対象画素決定部102を水平方向用と垂直方向用とに分割した処理部に相当する。したがって、第1フィルタ対象画素決定部601および第2フィルタ対象画素決定部602の両方は、フィルタ対象画素決定部102と同様の動作を行う。
つまり、第1フィルタ対象画素決定部601は、垂直境界の隣接画素の画素値に基づいて、当該垂直境界に対するフィルタ対象画素を決定する。また、第2フィルタ対象画素決定部602は、水平境界の隣接画素の画素値に基づいて、当該水平境界に対するフィルタ対象画素を決定する。
なお、フィルタ対象画素決定処理を分割する方向として水平方向と垂直方向とを例示したが、これに限ったものではなく、ブロック境界が斜め方向の場合にはそれと平行もしくは垂直な方向で分割することも考えられる。
このようにフィルタ対象画素決定処理(ステップS201)を、フィルタ処理方向(つまりブロック境界の方向)で分割して並列に実行することで、処理待ち時間を削減することができるため、符号化歪み除去装置600による処理時間を短縮することができる。処理時間の違いを、図7を用いて説明する。
図7は、本発明の実施の形態1の変形例における符号化歪み除去処理の処理時間を説明するための図である。具体的には、図7(a)は、従来の符号化歪み除去方法による処理時間を示した概念図である。また、図7(b)は、実施の形態1に係る符号化歪み除去方法による処理時間を示した概念図である。また、図7(c)は、本変形例に係る符号化歪み除去方法による処理時間を示した概念図である。
ここで、第1フィルタ対象画素決定処理(垂直境界)に必要な処理時間をTDA、第1フィルタ処理(垂直境界)に必要な処理時間をTFAとする。また、第2フィルタ対象画素決定処理(水平境界)に必要な処理時間をTDB、第2フィルタ処理(水平境界)に必要な処理時間をTFBとする。ここでは各処理の間に必要な時間は、各処理に必要な時間と比較してとても短いため、各処理の間に必要な時間をゼロとして説明する。
従来の符号化歪み除去方法では、全ての処理を逐次的に行う必要があるため、符号化歪み除去に必要な処理時間は、TDA+TFA+TDB+TFBとなる。また、実施の形態1に係る符号化歪み除去方法でも、図7(b)に示すように、符号化歪み除去に必要な処理時間は、TDA+TDB+TFA+TFBとなる。つまり、実施の形態1に係る符号化歪み除去方法では、従来の符号化歪み除去方法と、符号化歪みの除去に必要な処理時間は変化しない。
一方、本変形例に係る符号化歪み除去方法では、図7(c)に示すように、符号化歪み除去に必要な処理時間は、MAX(TDA、TDB)+TFA+TFBとなる。つまり、本変形例に係る符号化歪み除去方法では、従来の符号化歪み除去方法より短い時間で処理を終わらせることができる。
なお、ここでは垂直境界に対するフィルタ処理、水平境界に対するフィルタ処理という順番でフィルタ処理が実行されたが、逆の順番でもよい。また順番について、予め符号化装置および復号化装置で決めておく、もしくは、ストリームのヘッダ情報として付加された信号によって、切替えてもよい。また、垂直境界に対するフィルタ処理、水平境界に対するフィルタ処理とは同時に実行されてもよい。
なお、図1の構成および図6の構成どちらでも処理済み画像は全く一致するため、どちらの構成を選択するかは、符号化装置および復号化装置で適した構成を選択することができる。例えば、並列処理に不向きな単体ソフトウェアの場合、図1の構成を選択し、並列処理が有効なハードウェアの場合、図6の構成を選択することができる。また、どちらの構成を選択しても、処理結果は同じとなるため、符号化装置および復号化装置の互換性を維持することが可能となり、実用的な効果が非常に高い。
以上のように、本発明の実施の形態1またはその変形例に係る符号化歪み除去装置100、600によれば、水平境界および垂直境界に対するフィルタ対象画素決定処理に、フィルタ処理前の画像信号が入力される。ここで、フィルタ候補情報保持部103、603は、フィルタ対象画素と決定された画素を特定するためのフィルタ候補情報を保持する。そして、フィルタ処理部106、605は、画像信号に対して水平方向および垂直方向のフィルタ処理を実施する際に、フィルタ候補情報保持部103、603からフィルタ候補情報を取得することにより、決定されたファイル対象画素に対してフィルタ処理を行う。
このような動作により、符号化歪み除去装置100、600は、垂直方向または水平方向に対するフィルタ処理前の画像信号を用いて、水平境界または垂直境界に対するフィルタ対象画素を決定することができる。つまり、符号化歪み除去装置100、600は、フィルタ処理後の画像信号を用いてフィルタ対象画素を決定することによって物体境界に対してもフィルタ対象画素と判断していた従来の符号化歪み除去方法の欠点を解消することができる。つまり、符号化歪み除去装置100、600は、画像信号の画質を損なう可能性が少ない符号化歪み除去方法を実現することができる。
また、符号化歪み除去装置100、600は、フィルタ対象画素決定処理において、フィルタ処理後の画像信号を使わない。これにより、実施の形態1の変形例のように、符号化歪み除去装置600は、水平境界および垂直境界に対するフィルタ対象画素決定処理を並列に実行することができ、符号化歪み除去処理に必要な時間を短縮することができる。
なお、上記ではブロック境界の歪み除去として説明したが、H.264におけるブロック単位に限定したものではなく、変換の処理単位間での歪み除去にも同様の効果がある。
また、上記実施の形態1では、垂直境界および水平境界の双方に対するフィルタ対象画素が決定された後に、垂直境界および水平境界の双方に対するフィルタ処理が行われていたが、必ずしもこのように処理される必要はない。例えば、垂直境界に対するフィルタ対象画素決定処理およびフィルタ処理が実行された後に、水平境界に対するフィルタ対象画素決定処理およびフィルタ処理が実行されてもよい。この場合、垂直境界に対するフィルタ処理が行われる前の画素値がメモリ等に保持される必要がある。
また、上記のフィルタ対象画素決定処理およびフィルタ処理は、1ラインごとに行われていたが、必ずしも1ラインごとに行われる必要はない。
(実施の形態2)
次に、本発明の実施の形態2について説明する。具体的には、本実施の形態では、実施の形態1で示したフィルタ対象画素の決定方法とは異なるフィルタ対象画素の決定方法について説明する。また、フィルタ処理の方法についても詳しく説明する。なお、本実施の形態に係る符号化歪み除去装置は、図1に示した実施の形態1に係る符号化歪み除去装置と同様であるので、図示を省略する。
フィルタ対象画素の決定方法について、図3Cに示すフィルタ処理方向に延びる処理ラインに含まれる画素p3、p2、p1、p0、q0、q1、q2、およびq3を用いて詳しく説明する。なお、各画素の値は画素のインデックスで表されるものとする。
実施の形態1では、ブロック境界に隣接する画素値のみを用いてフィルタ対象画素を決定する方法の一例を示した。しかし、フィルタ対象画素の決定方法は、例えば画像信号の生成方法によって変更されてもよい。例えば、面内予測を用いて符号化された信号の場合には、広い範囲(例えばp2、p1、p0、q0、q1、q2)の画素の画素値の関係性を用いてフィルタ対象画素を決定し、それ以外の場合には狭い範囲(例えばp1、p0、q0、q1)の画素の画素値の関係性(例えば差分値)を用いて、フィルタ対象画素を決定してもよい。
以下に、フィルタ対象画素決定方法を画像信号の生成方法に応じて切り替える例について説明する。
図8は、本発明の実施の形態2に係るフィルタ対象画素決定方法の一例を示すフローチャートである。
まず、フィルタ対象画素決定部102は、ブロック境界に隣接する2つのブロックの画素値が面内予測により符号化されているかどうかを調べる(ステップS40X)。ここで、ブロック境界に隣接する2つのブロックのうちの少なくとも一方のブロックが面内予測によって符号化されている場合(ステップS40XでYES)、フィルタ対象画素決定部102は、画素p2、画素p1、画素p0、画素q0、画素q1、および画素q2に対してフィルタ処理をすることを決定する(ステップS400)。つまり、フィルタ対象画素決定部102は、画素p2、画素p1、画素p0、画素q0、画素q1、および画素q2をフィルタ対象画素と決定する。
一方、ブロック境界に隣接する2つのブロックの双方が動き補償予測により符号化されている場合(ステップS40XでNO)、フィルタ対象画素決定部102は、ブロック境界近傍の画素p0、画素p1、画素q0、および画素q1を用いて、図8に示す差分値の絶対値DIFa、DIFb、およびDIFcをそれぞれ算出する(ステップS401)。次に、フィルタ対象画素決定部102は、算出した差分値の絶対値DIFa、DIFb、およびDIFcと予め決められた方法で与えられる閾値(例えば、符号化・復号化において用いられる量子化ステップ値によって決められる値)THa、およびTHbとの比較を行う(ステップS402)。
ここで、一方、ステップS402に示される3条件のうちの1つの条件でも満たされない場合(ステップS402でNO)、フィルタ対象画素決定部102は、この処理ラインに含まれる画素に対して、フィルタ処理を行わないことを決定する(ステップS411)。つまり、フィルタ対象画素決定部102は、画素p2、画素p1、画素p0、画素q0、画素q1、および画素q2をフィルタ非対象画素と決定する。
一方、ステップS402に示される3条件が全て満たされる場合(ステップS402でYES)、フィルタ対象画素決定部102は、画素p0および画素q0に対するフィルタ処理を実行することを決定する(ステップS403)。つまり、フィルタ対象画素決定部102は、画素p0および画素q0をフィルタ対象画素と決定する。次に、フィルタ対象画素決定部102は、ブロック境界近傍の画素p2、画素p0、画素q2、および画素q0を用いて、差分値の絶対値DIFdおよびDIFeをそれぞれ算出する(ステップS404)。
次に、フィルタ対象画素決定部102は、算出した差分値の絶対値DIFdと予め決められた方法で与えられる閾値THbとの比較を行う(ステップS405)。ここで、ステップS405に示される条件を満たす場合(ステップS405でYES)、フィルタ対象画素決定部102は、画素p1に対するフィルタ処理を実行することを決定する(ステップS406)。つまり、フィルタ対象画素決定部102は、画素p1をフィルタ対象画素と決定する。
一方、ステップS405に示される条件を満たさない場合(ステップS405でNO)、フィルタ対象画素決定部102は、画素p1に対してフィルタ処理を行わないことを決定する(ステップS407)。つまり、フィルタ対象画素決定部102は、画素p1をフィルタ非対象画素と決定する。
次に、フィルタ対象画素決定部102は、算出した差分値の絶対値DIFeと予め決められた方法で与えられる閾値THbとの比較を行う(ステップS408)。ここで、ステップS408に示される条件を満たす場合(ステップS408でYES)、フィルタ対象画素決定部102は、画素q1に対するフィルタ処理を実行することを決定する(ステップS409)。つまり、フィルタ対象画素決定部102は、画素q1をフィルタ対象画素と決定する。
一方、ステップS408に示される条件を満たさない場合(ステップS408でNO)、フィルタ対象画素決定部102は、画素q1に対してフィルタ処理を行わないことを決定する(ステップS410)。つまり、フィルタ対象画素決定部102は、画素q1をフィルタ非対象画素と決定する。
フィルタ対象画素決定部102は、以上の処理を行うことにより、画素q1、画素q0、画素p0、および画素p1のそれぞれに対して、フィルタ処理を実行するかどうかを決定する。
つまり、本実施の形態に係る符号化歪み除去装置100は、上記の処理を行うことで、物体境界がどこにあるかを判断し、物体境界に対応する画素に対してはフィルタ処理をしないという判断を行うことができ、物体境界がフィルタ処理によりボケた映像になることを防ぐことができる。
ここで物体境界かどうかを判断する、実施の形態1および2で記載した閾値THaおよびTHbの決定方法の一例を以下に示す。この閾値は、符号化および復号化の双方において同じ方法で決められる。
符号化によって発生する符号化歪みは、主に差分信号を量子化処理することに起因するとされる。このため、量子化精度が粗い場合には、符号化歪みが大きくなり、量子化精度が細かい場合には、量子化歪みが小さくなる。このため、閾値THaおよび閾値THbは、例えば符号化および復号化で用いられる量子化の精度を示す値QP(QPが大きくなれば、量子化精度が粗くなる値)を用いて、(式1)により決定してもよい。なお、THa<Thbとなるように設定する。
ここで、OffsetAおよびOffsetBは、調整のための値であり、ストリーム単位もしくはフレーム単位もしくはスライス単位に符号列に記述されてもよい。
なお、(式1)を用いた閾値決定方法は、一例である。つまり、量子化ステップ値またはQP値が大きくなるほど閾値が大きくなるように閾値を決定することができる式であれば、どのような式を用いて閾値を決定してもよい。また、(式1)で得られる値を有するテーブルを符号化装置、および復号化装置で管理し、そのテーブルを参照しながら符号化歪み除去処理が行われるようにしてもよい。また、例えば、(式1)における“0.8”、“0.5”の部分を変数a、bとして表わし、その変数a、bの値がストリーム単位もしくはフレーム単位もしくはスライス単位に符号列に記述されてもよい。
このようにすることで、ブロック境界における画素値の変化が、物体境界による画素値の変化であるか、または符号化歪みによる画素値の変化であるかの判断の精度を向上させることができる。
次に、上記に示す方法で決められたフィルタ対象画素に対して、フィルタ処理を行う方法について詳しく説明する。
実施の形態1で示したように、例えば図5(a)に示す原画像の画像信号に対して、ブロック単位の符号化処理を行うと、図5(b)に示すように、ブロック内部では滑らかに連続的に変化し、ブロック境界のみで画素値が不連続となるブロック歪みが発生する。そこで、フィルタ処理を行うことで、図5(c)に示すようにブロック境界部で画素値が連続となるように補正し、符号化に起因するブロック歪みを低減できる。
ここで画素q1、画素q0、画素p0、画素p1の画素値をそれぞれq1、q0、p0、p1とする。また、画素q1、画素q0、画素p0、画素p1に対するフィルタ処理後の画素q’1、画素q’0、画素p’0、画素p’1の画素値をそれぞれq’1、q’0、p’0、p’1とする。この場合、フィルタ処理は(式2)に従って行われる。
c0,0、c0,1、c0,2、c0,3、c1,0、c1,1、c1,2、c1,3はフィルタ係数であり、例えば(式3)で表される。
(式3)のフィルタ係数を用いたフィルタ処理は、図5(b)の信号を図5(c)の信号のように平滑化する。なお、フィルタ係数については、(式3)に限るものではなく、例えば(式4)のように単純化したフィルタ係数でもよい。
(式4)のフィルタ係数の場合、平滑化度合いが強く、入力画像信号に元々含まれる情報も失われることがあるが、フィルタ処理のための処理量を大きく削減することができる。
なお、フィルタ処理に用いるフィルタ係数は、予め符号化側と復号化側とで同じ値(例えば(式3)の値)を決めておいてもよいし、ストリーム単位またはフレーム単位またはスライス単位に記録しておいてもよい。また、複数種類(例えば(式3)、(式4))のフィルタ係数を適応的に切り替えながらフィルタ処理を行ってもよい。
このようなフィルタ係数の切り換えも、フィルタ処理対象画素の決定と同様に、量子化精度に依存させてもよい。例えば、粗い量子化精度で符号化処理を行う際には、参照画像MCの分割境界の差分が大きいため、平滑化度合いが強いフィルタ係数(例えば(式4))を用いてフィルタ処理を行う。一方、細かい量子化精度で符号化を行う際には、元信号の情報を失わないために、平滑化度合いが低いフィルタ係数(例えば(式3))を用いてフィルタ処理を行う。これにより、符号化歪み除去装置100は、効果的に符号化歪みの除去を行うことができ、画質を向上することができる。
上記のように、本実施の形態に係る符号化歪み除去装置100は、符号化歪みおよび物体境界を考慮したフィルタ対象画素の決定および、フィルタ処理を行うことにより、効果的に符号化歪みを除去することができる。
なお、ここではフィルタ対象画素がブロック境界の両側のそれぞれ2画素に対するフィルタ処理について説明したが、両側それぞれ3画素に対してフィルタ処理を行う場合にも、フィルタ係数を増やすことにより同様に実現することが可能である。
(実施の形態3)
次に、本発明の実施の形態3について説明する。本実施の形態では、フィルタ対象画素決定方法の他の一例について説明する。またさらに、本実施の形態に係る符号化歪み除去方法による効果について、従来の方法(HM 0.9 software(http://hevc.kw.bbc.co.uk/trac/browser/tags/0.9))と比較しながら説明する。なお以下において、特に説明がない限り、決定処理はフィルタ対象画素決定部によって行われ、フィルタ処理はフィルタ処理部によって行われる。
図9は、本発明の実施の形態3に係る垂直境界部を示す図である。以下において、垂直境界部における左側の画素の集合を「A」、右側の画素の集合を「B」とそれぞれ表わす。また、水平境界部の場合には、水平境界部の上側の画素の集合を「A」、下側の画素の集合を「B」と表わす。
ここで、各境界部において行われる決定処理およびフィルタ処理について、以下に説明する。
まず、(式5)の条件を満たすか否かが計算される。
なお、(式5)の左辺の第1部分である(式6)の計算処理(決定処理)を、垂直境界の場合にはd1,vと表わし、水平境界の場合にはd1,hと表わす。また、(式5)の左辺の第2部分である(式7)の計算処理(決定処理)を、垂直境界の場合にはd2,vと表わし、水平境界の場合にはd2,hと表わす。
ここで、(式5)が真である場合、その境界部にフィルタ処理を行うと決定される。さらに、境界部を構成する8ライン(i=0〜7)の各々において、いわゆる強フィルタといわゆる弱フィルタとのいずれのフィルタを用いてフィルタ処理を実行するかを決定するための決定処理が行われる。この決定処理は、(式8)を計算することにより行われる。
なお、(式8)が真である場合、強フィルタが適用され、そうでなければ弱フィルタが適用される。なお、(式8)の各ラインにおける計算処理(決定処理)を、垂直境界の場合にはDi,vと表わし、水平境界の場合にはDi,hと表わす。
弱フィルタおよび強フィルタのうち、以下の(式9)に示す弱フィルタのフィルタ処理では、大部分において逐次的な処理が要求される。
なお、このようなフィルタ処理を、垂直境界の場合にはFi,vと表わし、水平境界の場合にはFi,hと表わす。
次に、上述した決定処理およびフィルタ処理(d1,v、d1,h、d2,v、d2,h、Di,v、Di,h、Fi,v、およびFi,h)に関して、クリティカルパスにおける逐次処理の数について、従来の符号化歪み除去方法の場合と本実施の形態に係る符号化歪み除去方法の場合とを比較しながら説明する。なお以下では、処理単位となるブロックのサイズを8×8画素として説明する。
従来の符号化歪み除去方法の場合、決定処理およびフィルタ処理では、以下のように6つの逐次的なステップが必要となる。
1.決定処理d1,v、d2,vおよびd2,hの実行
2.決定処理のDi,v(i=1〜8)の実行
3.フィルタ処理Fi,v(i=1〜8)の実行
4.決定処理d1,hの実行
5.決定処理のDi,h(i=1〜8)の実行
6.フィルタ処理Fi,h(i=1〜8)の実行
図10は、従来の符号化歪み除去方法における6つの逐次的なステップを説明するための図である。図10において、右下のブロックが現在のブロックであり、他のブロックが前のブロックである。ここでは、右下のブロックと左下のブロックとの間の垂直境界と、右下のブロックと右上のブロックとの間の水平境界とに対して符号化歪み除去処理が施される。なお、図10(a)〜(f)の各々において、破線で囲まれた領域は、各処理を実行するために用いられる画素を示す。
ここで、決定処理またはフィルタ処理内の逐次処理の数について説明する。
図11Aは、決定処理d1,v内における逐次処理の数を説明するための図である。図11Aに示すように、決定処理d1,vでは、4つの逐次処理が必要となる。また、決定処理d1,h、d2,v、およびd2,hも同様に実現される。そして、加算処理d1,v+d2,vとβに対する比較処理との2つの追加的な逐次処理が要求される。
図11Bは、決定処理Di,v内における逐次処理の数を説明するための図である。図11Bに示すように、決定処理Di,vは6つの逐次処理によって実現される。決定処理Di,hも同様に実現される。
図11Cは、フィルタ処理Fi,v内における逐次処理の数を説明するための図である。図11Cに示すように、フィルタ処理Fi,vは10の逐次処理によって実現される。決定処理Fi,hも同様に実現される。
図12は、従来の符号化歪み除去方法における各処理の依存関係とクリティカルパスにおける逐次処理の数とを示す図である。具体的には、図12では、複数の決定処理および複数のフィルタ処理間の依存関係が示されている。ここで、必須の各処理において逐次処理の数を合計することにより、クリティカルパスにおいて合計で44の逐次処理があることがわかる。
以上、図10〜図12を用いて説明したように、従来の符号化歪み除去方法では、垂直境界に対する決定処理およびフィルタ処理と、水平境界に対する決定処理およびフィルタ処理とは互いに依存関係を有する。これらの依存関係のために並行して実行することができない処理が多くなる。その結果、クリティカルパスにおける逐次処理の数が多くなってしまう。つまり、従来の符号化歪み除去方法では、処理の並列化によって処理時間を短縮することが難しい。
次に、本実施の形態に係る符号化歪み除去方法において、従来よりもクリティカルパスにおける逐次処理の数を削減できることについて説明する。
本実施の形態に係る符号化歪み除去方法では、フィルタ処理前の画像信号に基づいて、すべての決定処理d1,v、d1,h、d2,v、d2,h、Di,v、およびDi,hが行われる。これにより、クリティカルパスにおける逐次処理の増大につながる依存関係を解消することができる。
具体的には、本実施の形態に係る符号化歪み除去方法の場合、決定処理およびフィルタ処理では、以下のように4つの逐次的なステップのみが必要となる。
1.決定処理d1,v、d2,v、d1,hおよびd2,hの実行
2.決定処理のDi,v(i=1〜8)およびDi,h(i=1〜8)の実行
3.フィルタ処理Fi,v(i=1〜8)およびFi,h(i=1〜4)の実行
4.フィルタ処理Fi,h(i=5〜8)の実行
図13は、本発明の実施の形態3に係る符号化歪み除去方法における4つの逐次的なステップを説明するための図である。図13に示すように、すべての決定処理d1,v、d1,h、d2,v、d2,h、Di,vおよびDi,hは、フィルタ処理前の信号に基づいて行われる。したがって、決定処理d1,v、d1,h、d2,vおよびd2,h間の依存関係と、Di,vおよびDi,h間の依存関係とが解消され、並行して行うことができる処理が増加する。
図14は、本発明の実施の形態3に係る符号化歪み除去方法における各処理の依存関係とクリティカルパスにおける逐次処理の数とを示す図である。図14に示すように、本実施の形態に係る符号化歪み除去方法では、クリティカルパスにおける逐次処理の数は、従来の44からわずか32まで約30%減少する。
(実施の形態4)
次に、本発明の実施の形態4について説明する。
上記の実施の形態1〜3では、現在のブロックに含まれる画素のフィルタ処理前の画素値を用いて、フィルタ処理対象画素を決定する符号化歪み除去装置について説明した。本実施の形態では、現在のブロックに隣接する処理済みブロックに含まれる画素についてもフィルタ処理前の画素値を用いて、フィルタ処理対象画素を決定する符号化歪み除去装置について説明する。
ここで、本実施の形態に係る符号化歪み除去装置について説明する前に、階層化された処理単位(多階層ブロック構造)について説明する。
まず、JCT−VC(Joint Collaborative Team on Video Coding)の下で、検討されている画像符号化規格について説明する。JCT−VCとは、ITU−T(国際電気通信連合電気通信標準化部門:International Telecommunication Union−Telecommunication Stadardization Sector)とMPEG(Moving Picture Experts Group)との共同チームのことである。
JCT−VCにおいて、各社から提案されたツールのうち、画像符号化規格に採用される可能性が高い技術が集められた技術群は、TMuC(Test Model Under Consideration)と呼ばれる。そのような技術群のドキュメントおよびソフトウェアは、TMuCとして、整備されつつある。
このTMuCの基本技術の1つとして、階層化された処理単位(多階層ブロック構造)の技術がある。処理単位は、複数の小さな処理単位に分割され、その小さな処理単位がさらに複数のより小さな処理単位に分割されるように、階層化されている。なお、処理単位が小さいほど、その処理単位がある階層は深く、下位にあり、その階層を示す値は大きい。逆に、処理単位が大きいほど、その処理単位がある階層は浅く、上位にあり、その階層を示す値は小さい。
図15は、階層化された処理単位(多階層ブロック構造)を説明するための図である。処理単位には、CU(符号化単位:Coding Unit)とPU(予測単位:Prediction Unit)とTU(変換単位:Transform Unit)とがある。ピクチャは、複数のスライスに分割され、1つのスライスは、一連のLCU(最大符号化単位:Largest Coding Unit)を含む。
LCUは、スライス内で許される最大サイズのCUである。LCUは、様々なサイズ(例えば、16×16画素、32×32画素、64×64画素など)を有する。LCUの位置は、最大符号化単位アドレス「lcuAddr」によって特定される。
CUは、様々なサイズ(例えば、8×8画素、16×16画素など)を有し、従来のマクロブロックに相当する単位である。CUは、4つのCUに再帰的に分割される。CUの位置は、LCUの左上に位置する画素との相対的な位置関係を示す符号化単位インデックス「cuIdx」によって特定される。
PUは、画面間予測処理の基本単位である。PUのサイズは、CUのサイズと同一かそれよりも小さいサイズである。PUの位置は、CUの左上に位置する画素との相対的な位置関係を示す予測単位インデックス「puIdx」によって特定される。
また、PUは、複数のパーティションを有する。このパーティションは、あらかじめ決められた任意の形状(例えば、16×16画素、16×8画素、8×16画素など)とすることができる。パーティションの位置は、あらかじめパーティションの形状を示すモード情報「partMode(PUType)」によって特定される。
TUは、直交変換処理および量子化処理の基本単位である。TUのサイズは、PUと同じサイズ、またはPUよりも一階層小さいサイズである。TUの位置は、PUの左上に位置する画素との相対的な位置関係を示す変換単位インデックス「tuIdx」によって特定される。
図16Aは、LCUの処理順序の一例を示す図である。また、図16Bは、LCU内におけるCUの処理順序の一例を示す図である。図16Aおよび図16Bにおいて、処理単位内に記載された数字は処理順序を示す。このような処理順序で各ユニットが処理される際に、CU、PUまたはTUの垂直境界および水平境界には符号化歪み除去処理が施される。
図16Cは、符号化歪み除去処理が施される処理境界の一例を示す図である。図16Cには、CUに含まれる4つTUの各々の処理境界に対応する4つの垂直境界v1〜v4と4つの水平境界h1〜h4とが示されている。
垂直境界に対する符号化歪み除去処理は、上から下に、そして、左から右に順に処理される。また、水平境界に対する符号化歪み除去処理は、左から右に、そして、上から下に順に処理される。
以上のような階層化された処理単位を踏まえた上で、本実施の形態に係る符号化歪み除去装置について説明する。
図17は、本発明の実施の形態4に係る符号化歪み除去装置の機能構成を示すブロック図である。
符号化歪み除去装置700は、各々が画像信号の処理境界であって互いに異なる方向の処理境界である第1処理境界および第2処理境界における符号化歪みを除去する。図17に示すように、符号化歪み除去装置700は、フィルタ対象画素決定部701と、記憶制御部702と、フィルタ処理部703とを備える。
なお、本実施の形態では、画像信号は、第1処理単位と当該第1処理単位を分割することにより得られる第2処理単位とに基づいて符号化された画像信号である。第1処理単位は例えばLCUであり、第2処理単位は例えばCUである。
フィルタ対象画素決定部701は、第2処理単位ごとに、当該第2処理単位の処理境界の隣接画素の画素値に基づいて、当該処理境界に対するフィルタ対象画素を決定する。このとき、フィルタ対象画素決定部701は、隣接画素のうち処理済みの第2処理単位に含まれる画素の画素値を記憶部710から読み出す。なお、記憶部710には、フィルタ処理前の画素値が記憶されている。つまり、フィルタ対象画素決定部701は、処理中の第2処理単位に含まれる隣接画素と処理済みの第2処理単位に含まれる隣接画素との両方についてフィルタ処理前の画素値に基づいてフィルタ対象画素を決定する。
記憶制御部702は、記憶部710からのデータの読み出しと記憶部710へのデータの書き込みを制御する。本実施の形態では、記憶制御部702は、現在の第2処理単位と次の第2処理単位とが互いに異なる第1処理単位に含まれる場合には、フィルタ対象画素の決定が行われた後に、記憶部710に記憶されている画素値を削除可能と決定する。なお、第2処理単位は、第1処理単位を分割することにより得られる処理単位である。
フィルタ処理部703は、フィルタ対象画素決定部701によって決定されたフィルタ対象画素に対してフィルタ処理を行う。
次に、以上のように構成された符号化歪み除去装置700の各種動作について説明する。以下において、第1処理単位がLCUであり、第2処理単位がCUである場合を一例として説明する。なお、本実施の形態に係る符号化歪み除去方法では、必ずしもこのような処理単位である必要はなく、例えば、第1処理単位がCUであり、第2処理単位がTUであってもよい。
図18は、本発明の実施の形態4に係る符号化歪み除去装置の動作を示すフローチャートである。このフローチャートは、CUごとに繰り返し実行される。また、開始前には、現在および前のブロックに含まれる画素の画素値が記憶部710に記憶されているとする。
まず、フィルタ対象画素決定部701は、垂直境界および水平境界に対してフィルタ対象画素を決定する(ステップS701)。このとき、フィルタ対象画素決定部701は、記憶部710に記憶されているフィルタ処理前の隣接画素の画素値に基づいて、フィルタ対象画素を決定する。
次に、記憶制御部702は、現在のCUと次のCUとが同一のLCUに含まれるか否かを判定する(ステップS702)。つまり、記憶制御部702は、次のCUが現在のLCU内であるか否かを判定する。
ここで、現在のCUと次のCUとが異なるLCUに含まれる場合(ステップS702でNO)、記憶制御部702は、記憶部710に記憶されているフィルタ処理前の画素値を削除可能と決定する(ステップS703)。一方、現在のCUと次のCUとが同一のLCUに含まれる場合(ステップS702でYES)、記憶制御部702は、記憶部710に記憶されているフィルタ処理前の画素値をそのまま保持する。
次に、フィルタ処理部703は、決定されたフィルタ対象画素に対してフィルタ処理を行う(ステップS705)。なお、フィルタ処理は、ステップS702の前に実行されてもよい。
ここで、図16Bと図19を参照しながら、符号化歪み除去方法をさらに詳細に説明する。
図19は、本発明の実施の形態4に係る符号化歪み除去方法を説明するための図である。図19では、各CUに対して各処理が行われるタイミングが示されている。
例えば、4番目のCUに対して逆変換処理が行われた後、フィルタ対象画素決定部701は、1番目のCUと4番目のCUとの間の垂直境界におけるフィルタ対象画素を決定するとともに、および2番目のCUと4番目のCUとの間の水平境界におけるフィルタ対象画素を決定する。
そして、記憶制御部702は、1番目のCUと4番目のCUとの間の垂直境界に対してフィルタ対象画素と決定された画素A(図16B)の画素値であってフィルタ処理前の画素値を記憶部710に格納する。
また、記憶制御部702は、4番目のCUと5番目のCUとの間の垂直境界に対してフィルタ対象画素と決定された画素C(図16B)の画素値であってフィルタ処理前の画素値を記憶部710に格納する。
フィルタ対象画素決定部701は、このように記憶部710に格納された画素Aおよび画素Cの画素値に基づいて、4番目および5番目のCUと16番目のCUとの間の水平境界におけるフィルタ対象画素を決定する。
そして、記憶制御部702は、現在のCU(16番目のCU)と次のCUとが異なるLCUに含まれるので、前のCU(4番目および5番目のCU)に含まれる画素Aおよび画素Cの画素値を削除可能と決定する。
以上のように、本実施の形態に係る符号化歪み除去装置700によれば、処理済みの処理単位に含まれる隣接画素についてもフィルタ処理前の画素値を用いて、フィルタ対象画素を決定することができる。これにより、さらに、画像信号の画質を損なう可能性が少ない符号化歪み除去処理を実現することができる。
また、本実施の形態に係る符号化歪み除去装置700によれば、処理中の第2処理単位が含まれる第1処理単位が切り替わるときに、記憶部710に記憶されている、処理済みの第2処理単位に含まれる画素のフィルタ処理前の画素値を削除可能と決定することができる。ここで、第1処理単位を小さな処理単位とすれば、フィルタ処理前の画素値を記憶するための記憶容量を小さくすることができる。一方、第1処理単位を大きな処理単位とすれば、画像信号の画質を損なう可能性がより少ない符号化歪み除去処理を実現することができる。
例えば、第1処理単位がピクチャである場合、図16Aの10番目のLCUの水平境界に対するフィルタ対象画素が決定されるまで、5番目のLCUのフィルタ処理前の画素値が記憶部に記憶される。つまり、少なくともピクチャの1ライン分のフィルタ処理前の画素値が記憶部に記憶される必要があるので、記憶部の記憶容量が増大するが、画像信号の画質を損なう可能性がより少なくなる。
一方、第1処理単位がLCUである場合、5番目のLCUに含まれる画素の画素値についてはフィルタ処理後の画素値を用いて、10番目のLCUの水平境界に対するフィルタ対象画素が決定される。つまり、記憶部の記憶容量は削減できるが、画像信号の画質を損なう可能性は高くなる。
(実施の形態5)
本実施の形態では、実施の形態1〜4のいずれかで示した符号化歪み除去方法を実現することができる符号化装置について説明する。
図20Aは、本発明の実施の形態5に係る符号化装置を示すブロック図である。図20Aに示すように、符号化装置800は、差分部801、変換・量子化部802、逆量子化・逆変換部803、加算部804、符号化歪み除去部805、参照ピクチャ用メモリ806、面内予測部807、動き補償予測部808、動き検出部809、スイッチ810、可変長符号化部811を備える。参照ピクチャ用メモリ806は、符号化装置800に接続された外部メモリの形で構成してもよい。
変換・量子化部802は、符号化部の一例である。また、逆量子化・逆変換部803および加算部804は、再構成部の一例である。
入力画像が符号化装置800に入力される。参照ピクチャ用メモリ806には、符号化済み画像の復号化画像が既に蓄積されており、これが入力画像を符号化する場合の参照ピクチャとして用いられるものとする。
差分部801は後述する方法で生成される予測画像PRと入力画像との差分をとり、算出される差分画像を変換・量子化部802に対して出力する。変換・量子化部802は、入力される差分画像に対し、変換、量子化処理を施し、量子化信号QDを逆量子化・逆変換部803と可変長符号化部811に対して出力する。逆量子化・逆変換部803は、入力された信号QDに対し、逆量子化・逆変換処理を施し、加算部804に対し出力する。加算部804は、逆量子化・逆変換部より取得した信号と、予測画像PRとを加算し、符号化歪み除去部805に対して出力する。
ここで、符号化歪み除去部805は、実施の形態1〜4のいずれかで説明した符号化歪み除去装置として動作する。
符号化歪み除去部805は、入力された信号に対して符号化歪み除去処理を施し、参照ピクチャ用メモリ806に対して符号化済み画像の復号化画像として出力する。
予測画像PRの生成には、動き補償予測と面内予測に大別され、スイッチ810によって切り替えられる。
面内予測により予測画像PRを生成する場合について説明する。面内予測部807は、参照ピクチャ用メモリ806より参照ピクチャを取得し、取得した参照ピクチャから予め決められた方法(例えば、隣接する画素を水平または垂直方向に引き伸ばすこと)により面内予測画像を生成し、スイッチ810の「a」に出力する。スイッチ810により「a」が選択された場合、面内予測画像が参照画像PRとして、符号化に用いられる。
動き補償予測により予測画像PRを生成する場合について説明する。動き検出部809は入力画像の符号化対象となるブロックに対応する領域を、参照ピクチャより検出し、位置を示す動き情報MVを動き補償予測部808と、可変長符号化部811に対して出力する。なお、検出する方法は、入力画像と参照ピクチャ内の検出対象画像の差分和と動き情報MVとの重み付け和等を用いることができ、この場合は、予め決められた参照ピクチャ内の領域(例えば水平32画素、垂直16画素内)のうち最も小さい値をとる動き情報MVを出力すればよい。
動き補償予測部808は、取得した動き情報MVで示される参照ピクチャ内の画像を取り出し、動き補償予測画像としてスイッチ810の「b」に出力する。
スイッチ810では、予測画像PRに面内予測画像か、動き補償予測画像を用いるかを予め決められた方法で切り替える。例えば、入力画像と面内予測画像との差分和と、入力画像と動き補償予測画像の差分和を比較し、差分和が小さい方を予測画像PRとして用いるとしてもよい。予測画像PRの生成方法の情報を予測画像生成情報CIとして可変長符号化部811に対して出力する。
可変長符号化部811は、量子化信号QDと、動き情報MV、予測画像生成情報CIに対して可変長符号化処理を施し、符号列BSとして出力する。
このような構成をとることにより、実施の形態1で説明する符号化歪み方法を画像符号化装置において実現することができる。これにより、符号化歪みの小さい参照画像を生成することができ、差分信号を小さくし、符号量を削減することができる。
(実施の形態6)
本実施の形態では、実施の形態1〜4のいずれかで示した符号化歪み除去方法を実現することができる復号化装置について説明する。
図20Bは、本発明の実施の形態6に係る復号化装置を示すブロック図である。図20Bに示すように、復号化装置900は、可変長復号化部901、逆量子化・逆変換部902、加算部903、符号化歪み除去部904、参照ピクチャ用メモリ905、面内予測部906、動き補償予測部907、スイッチ908を備える。参照ピクチャ用メモリ905は、復号化装置900に接続された外部メモリの形で構成してもよい。可変長復号化部901および逆量子化・逆変換部902は、復号部の一例である。
ここで参照ピクチャ用メモリ905には、復号化済みの画像が既に蓄積されており、これが入力画像を復号化する場合の参照ピクチャとして用いられるものとする。
符号列BSが復号化装置900に入力される。可変長復号化部901は、符号列BSを可変長復号化し、予測画像生成情報CI、動き情報MVと量子化信号QDを取得し、それぞれ、スイッチ908、動き補償予測部907、逆量子化・変換部902に対して出力する。逆量子化・逆変換部902は量子化信号QDに対して逆量子化・逆変換処理を施し差分信号とし、加算部903に対して出力する。加算部903は差分信号と、後述する予測画像PRとを加算し、符号化歪み除去部904に対し出力する。
ここで、符号化歪み除去部904は、実施の形態1〜4のいずれかで説明した符号化歪み除去装置として動作する。
符号化歪み除去部904は、入力された信号に対して符号化歪み除去処理を施し、参照ピクチャ用メモリ905に対して復号化済み画像として出力する。
なお、予測画像PRの生成方法については、予測画像生成情報CIに基づいて、実施の形態2で示した符号化装置と同様に、参照ピクチャ用メモリ905から取得する参照ピクチャに基づき、面内予測部906または、動き情報MVと動き補償予測部907により生成される。
このような構成をとることにより、実施の形態1で説明する符号化歪み方法を画像復号化装置において実現することができる。これにより、符号化装置において、符号化歪み方法が施された符号列を正しく復号することができる。
なお、実施の形態1で説明する符号化歪み方法が施されていない符号列に対しては、図20Bに示す復号化装置の構成を変形することで、復号化画像に対して符号化歪み方法を実現することができる。
図20Bの加算部903の出力値を符号化歪み除去部904ではなく、参照ピクチャ用メモリ905に出力する。一方、符号化歪み除去部は参照ピクチャ用メモリ905に対しては出力せず、復号化画像としてのみ出力するという構成とし、動作は前述と同じである。
このような構成にすることで、符号化歪み除去部904で処理される画像は参照ピクチャとして用いられないため、符号化装置と同様に参照画像PRを生成することができ、正しく符号列を復号化することができ、さらに出力画像(復号化画像)に対して、復号化歪み除去方法を適用することができるため、符号化歪みを減らすことが可能となる。
以上、実施の形態1〜6に基づいて符号化歪み除去方法について説明したが、本発明の一態様に係る符号化歪み除去方法は、これらの実施の形態に限定されるものではない。例えば、本発明の一態様に係る符号化歪み除去方法は、図20Cに示すような各ステップを含む方法であってもよい。
図20Cは、本発明の一態様に係る符号化歪み除去方法の一例を示すフローチャートである。図20Cでは、まず、少なくとも第1処理境界に隣接する第1隣接画素の画素値に基づいて、第1処理境界に対する符号化歪み除去処理の対象となる第1対象画素が決定される(ステップS11)。さらに、少なくとも第2処理境界に隣接する第2隣接画素の画素値に基づいて、第2処理境界に対する符号化歪み除去処理の対象となる第2対象画素が決定される(ステップS12)。
次に、決定された第1対象画素に対して符号化歪み除去処理が行われる(ステップS13)。続いて、決定された第2対象画素に対して符号化歪み除去処理が行われる(ステップS14)。
なお、本発明は、図20Cに示す符号化歪み除去方法に含まれる各ステップの処理を実行する処理部を備える符号化歪み除去装置として実現されてもよい。
(実施の形態7)
上記各実施の形態で示した動画像符号化方法または動画像復号化方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法や動画像復号化方法の応用例とそれを用いたシステムを説明する。
図21は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図21のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局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や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図22に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置または動画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図23は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部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、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図24に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図25に光ディスクである記録メディア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の構成は例えば図23に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図26(a)は、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図26(b)を用いて説明する。携帯電話ex114は、表示部ex358および操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex356から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声信号入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調回路部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態8)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図27は、多重化データの構成を示す図である。図27に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラファイックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図28は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図29は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図29における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図29の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図30は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD−ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図30下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期をとるために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図31はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図32に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図32に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図33に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図34に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態9)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図35に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AVI/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex510が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex510の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態10)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図36は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図35のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図35の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態8で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態8で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図38のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図37は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態11)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図39(a)のex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図39(b)のex1000に示す。この例では、本発明に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。