(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した画像処理装置に関し、以下の問題が生じることを見出した。
具体的には、非特許文献2では、符号化のデータ単位として、符号化ユニット(以下、CU:Coding Unit)が定義されている。このCUは、上記符号化単位ブロックに相当する。また、このCUは、従来の符号化規格におけるマクロブロック(以下、MB)と同様に、予測方法をイントラ予測とインター予測とで切り換えることが可能なデータ単位(最小単位)であり、符号化の最も基本的なブロックサイズとして規定されている。このCUのサイズは、輝度については、8x8画素、16x16画素、32x32画素、および64x64画素のうちのいずれかである。CUのサイズが64x64画素の場合、そのサイズはH.264のMBの16倍である。つまり、非特許文献2では、H.264と比較して、最大で16倍のデータ量を必要とする。このCUを周波数変換する単位として、周波数変換ユニット(以下、TU:transform Unit)が定義されている。このTUは、上記周波数変換単位ブロックに相当する。また、このTUのサイズは、輝度については、4x4画素、8x8画素、16x16画素、32x32画素、4x16画素、16x4画素、8x32画素、および32x8画素のうちのいずれかである。
図1Aおよび図1Bは、非特許文献2の規格に従って符号化されたビットストリーム(符号化ストリーム)の例を示す図である。画像はCU単位で符号化され、CU内では、復号対象とされる各係数情報が、輝度の少なくとも1つの係数情報(輝度情報)、色差の少なくとも1つの係数情報(色差情報)の順に配置されている。また、TUのサイズはCUのサイズと同じか小さい。したがって、CU内には、そのCU内に含まれるTUの個数分だけ、輝度情報(Y)と色差情報(Cb/Cr)が存在する。この例を、64x64画素を表現する符号化ストリームを例にとって、図1Aおよび図1Bを用いて説明する。なお、符号化ストリーム中のY0、Cb0およびCr0は、TU0の輝度Y、色差Cbおよび色差Crの係数情報をそれぞれ示す。つまり、Yn、CbnおよびCrnは、TUnの輝度Y、色差Cbおよび色差Crの係数情報をそれぞれ示す(n=0、1、2または3)。また、以下の説明において、輝度Y(またはY)、色差Cb(またはCb)および色差Cr(またはCr)は、それぞれに対応する種類の係数情報(色成分)を意味する。
図1Aに示すように、CUサイズが64x64画素で、TUサイズが32x32画素の場合は、それぞれ32x32画素からなる4つの輝度Yと、それぞれ16x16画素からなる4つの色差Cbと、それぞれ16x16画素からなる4つの色差Crが、Y0、Y1、Y2、Y3、Cb0、Cb1、Cb2、Cb3、Cr0、Cr1、Cr2、Cr3の順に格納されている。一方、図1Bに示すように、CUサイズが32x32画素、TUサイズが32x32画素の場合には、1つのTUまたはCU内には、Y(32x32画素)、Cb(16x16画素)、Cr(16x16画素)がこの順に格納されている。64x64画素内には、CUまたはTUが図1Bに示す順で4つ並んでおり、符号化ストリームには、4つの輝度Y、4つの色差Cbおよび4つの色差Crがそれぞれ、Y0、Cb0、Cr0、Y1、Cb1、Cr1、Y2、Cb2、Cr2、Y3、Cb3、Cr3の順に格納されている。
従来のH.264のストリーム構成(非特許文献1)では、輝度情報および色差情報のサイズはそれぞれ16x16画素および8x8画素である。さらに、輝度情報および色差情報は8x8画素単位で格納され、それらの格納順(配置)は固定である。しかし、非特許文献2の規格に従った符号化ストリームでは、上記のとおり、輝度情報および色差情報のサイズは可変(最大32x32画素、最小4x4画素)であり、また、それらのサイズに応じて輝度情報および色差情報の格納順(配置)が異なるという特徴がある。
以上のように、非特許文献2において、符号化単位ブロックである符号化ユニット(CU)のサイズを可変にし、最大サイズを64x64画素とH.264に比べて16倍とすることで、符号化効率の向上が図られている。
また、上述のように、特許文献1には、このような符号化ストリームを復号するための各処理を並列に行うことによって、復号処理の効率を向上するパイプライン処理技術を用いた画像処理装置(画像復号装置)が記載されている。
図2は、特許文献1の画像処理装置の構成を示すブロック図である。
この画像処理装置におけるパイプライン処理技術では、図2に示すとおり、例えば、逆量子化部602はメモリ705からデータを読み出し、その結果をメモリ706に書き込む。同時に、逆周波数変換部506は、メモリ706からデータを読み出して、その結果をメモリ707に書き込む。逆量子化部602と逆周波数変換部506との間のメモリ706は、それぞれの処理が一度に必要とするデータを保持する必要がある。その他の処理部間(可変長復号部504と逆量子化部602との間など)も同様である。
図3は、非特許文献1および特許文献1から想定される画像処理装置の構成を示すブロック図である。
H.264規格に対して特許文献1を適用した場合、図3に示すように、例えばメモリ730〜733はそれぞれ、少なくとも768画素のデータ(係数情報)を保持する必要がある。つまり、メモリ731は、16x16=256画素からなる輝度情報と、それぞれ8x8=64画素からなる2つの色差情報とを含む384画素のデータを2セット分保持する必要がある。
図4は、非特許文献2および特許文献1から想定される画像処理装置の構成を示すブロック図である。
この特許文献1の技術を非特許文献2に適用した場合、図4に示すように、メモリ734〜737には、メモリ731の容量の16倍、つまり、12,288画素のデータを保持するだけの多くの容量が必要になるという問題がある。このようなメモリは非常に大きいものであり、コストの増加を招くことになる。また、メモリが大きいと消費電力が増大する。なお、ここでは、メモリは、データの記憶が可能な記憶素子を指す。
ここで、パイプラインの各処理部間にある記憶素子の容量を減らすためには、処理を行うデータのサイズを小さくする方法があるが、非特許文献2においては、符号化ユニット(CU)のサイズによりデータの格納順およびサイズが異なるために、単純に、データのサイズを小さくすることができない。
図1Aおよび図1Bに示す符号化ストリームでは、ともに周波数変換ユニット(TU)サイズが32x32画素のブロックであるが、CUサイズが異なる。輝度Y、色差Cb、色差CrはCU内にこの順に格納されているため、同一サイズのTUであっても、ストリーム中でTUが出現する順序がそれぞれの符号化ストリームで異なる。
この例では、先頭32x32画素分はともに左上のTU0に対応する輝度Y0であるが、次に現れる画素は、図1Aに示す符号化ストリームの場合では、右上のTU1に対応する32x32画素分の輝度Y1に属する。一方、図1Bに示す符号化ストリームの場合では、次に現れる画素は、左上のTU0に対応する16x16画素分の色差Cb0に属する。このように、CUおよびTUサイズにより、互いに異なる2つの符号化ストリームの間で、Y、CbおよびCrのサイズが異なるだけでなく、互いに対応するTUの位置も異なる。したがって、元の符号化ストリームを単純に小さなサイズのブロックに分割して処理することはできない。
そこで、符号化ストリーム中の係数情報を入れ換えることで、より小さなブロック単位ごとに処理を行うことができ、記憶素子の容量を削減することを可能にする画像処理装置及び画像処理方法を発明するに至った。つまり、本発明では、処理効率(符号化効率または復号効率)の低下を抑えながら、画像に対して処理を行うために用いられる記憶素子の容量を削減することが可能な画像処理装置を提供する。
上記問題を解決するために、本発明の一態様に係る画像処理装置は、画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、前記符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理部と、前記第1の処理部から出力された複数の成分の順序を入れ換えることにより、前記第1の処理単位とは異なる第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換え部と、前記入れ換え部から出力された複数の成分に対して、前記第2の処理単位ごとに、第2の処理を行う第2の処理部とを備える。
ここで、前記入れ換え部は、前記第1の処理単位よりも小さいサイズの前記第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力してもよい。
これにより、第1の処理によって、複数の成分が第1の処理単位ごとに出力された場合であっても、その複数の成分の順序が入れ換えられ、複数の成分が第2の処理単位ごとに出力される。そして、複数の成分に対する第2の処理が、第2の処理単位ごとに行われるため、第2の処理が行われた複数の成分を、第2の処理単位ごとに記憶素子に格納しておくことができる。したがって、第2の処理単位が第1の処理単位よりも小さい場合には、その第2の処理が行われた複数の成分を格納しておくための記憶素子の容量を削減することができる。つまり、例えばパイプライン処理を行うための記憶素子の容量を抑えることができる。さらに、記憶素子の容量を削減することができるため、コストおよび消費電力を抑えることができる。さらに、第1の処理単位が大きいことによって、第1の処理の処理効率の低下を防ぐことができる。
なお、第2の処理単位が第1の処理単位よりも大きい場合には、大きな処理単位ごとに第2の処理が行われるため、符号化ストリームに対する処理効率を向上することができる。
ここで、例えば、前記第1の処理単位は、前記画像の符号化に用いられた符号化ユニットである。このとき、前記第2の処理単位は、前記符号化ユニットの周波数変換に用いられた周波数変換ユニット、または前記周波数変換ユニットよりも小さいサイズの処理単位であってもよい。また、前記第1の処理部は、前記符号化ストリームの構成に応じて可変なサイズの前記第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力してもよい。同様に、前記入れ換え部は、前記符号化ストリームの構成に応じて可変なサイズの前記第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力してもよい。また、前記画像処理装置は、さらに、前記第2の処理によって生成されるストリームに対して第3の処理を行うことによって、前記符号化ストリームを復号する第3の処理部を備えてもよい。前記第1の処理単位は、前記画像の符号化に用いられる予測方法をイントラ予測とインター予測とに切り換えることが可能な最小単位であってもよい。
これにより、第1の処理単位が符号化ユニットである場合には、大きなサイズの符号化ユニットであっても、その符号化ユニットから構成される符号化ストリームを(例えば、パイプライン処理により)復号するために用いられる記憶素子の容量を抑えることができる。さらに、符号化ユニットを小さくする必要がないため、その符号化ストリームを生成するための画像符号化装置の符号化効率の低下を防ぐことができる。さらに、可変サイズの第1の処理単位および第2の処理単位に対して適切に処理することができる。
また、前記第1の処理部は、前記第1の処理単位に含まれる複数の成分として複数の色成分のそれぞれを順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序を入れ換えることにより、前記第2の処理単位に含まれる複数の色成分を順次出力してもよい。
これにより、記憶素子の容量を削減することができるだけでなく、画面中で同一座標を表現する複数の色成分を同時に処理することができ、動作効率を向上することができる。
また、前記第1の処理部は、前記複数の色成分のそれぞれを順次出力することによって、前記複数の色成分のそれぞれを記憶部に順次格納し、前記入れ換え部は、前記記憶部に格納されている前記複数の色成分の順序と異なる順序で、前記複数の色成分のそれぞれを順次読み出すことによって、前記複数の色成分の順序を入れ換えてもよい。または、前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序と異なる順序で前記複数の色成分のそれぞれを記憶部に順次書き込むことによって、前記複数の色成分の順序を入れ換え、前記第2の処理部は、前記記憶部に格納されている前記複数の色成分の順序にしたがって、前記複数の色成分のそれぞれを順次読み出してもよい。
これにより、記憶素子の容量を削減することができるだけでなく、例えばメモリなどの記憶部を用いて、画面中で同一座標を表現する複数の色成分を同時に適切に処理することができ、動作効率を向上することができる。
また、前記第2の処理部は、前記第2の処理単位に含まれる複数の色成分を用いて、当該第2の処理単位に対応する画像を再構成する再構成処理を、前記第2の処理に含まれる処理として行ってもよい。
これにより、記憶素子の容量を削減することができるだけでなく、画面中で同一座標を表現する複数の色成分を同時に処理することが必要な画像の再構成処理の動作効率を向上することができる。
また、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第2の処理部は、前記第2の処理に含まれる処理として逆量子化を行ってもよい。
これにより、パイプライン処理における逆量子化以降の処理に用いられる処理部間に必要な記憶素子の容量を削減することができる。
また、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序を入れ換え、前記第2の処理部は、前記第2の処理に含まれる処理として可変長符号化を行ってもよい。
これにより、符号化ストリームは可変長復号され、複数の成分が入れ換えられた状態で、再び可変長符号化されることになる。その結果、符号化ストリームをトランスコードすることができる。また、符号化ストリームの生成において用いられた可変長符号化の方式よりも簡単に可変長復号することができる可変長符号化の方式を、第2の処理において用いることができる。その結果、第2の処理によって出力された複数の色成分からなる、トランスコード後の符号化ストリームの復号に要する負担を、トランスコード前の符号化ストリームの復号に要する負担よりも軽減することができる。つまり、符号化ストリームの復号に要する画像復号装置の処理負担を軽減することができるとともに、その装置の性能保証を容易にすることができる。
また、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分のそれぞれを、色成分の種類ごとに分類する分割部と、色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長符号化を行い、前記可変長符号化によって生成されるストリームを記憶部に格納する可変長符号化部と、前記記憶部に格納されている、色成分の種類ごとに生成されたストリームから、前記第1の処理部から出力された複数の色成分の順序とは異なる順序で、前記複数の色成分のそれぞれを順次読み出すことによって、前記複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成するストリーム再構成部とを備え、前記可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行い、前記入れ換え済符号化ストリームは、前記第2の処理単位のサイズと同じサイズの符号化ユニットを含んでもよい。または、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分のそれぞれに対して、当該色成分の種類を識別するためのマーカを付加するマーカ挿入部と、前記マーカ挿入部によって付加されたマーカに基づいて、前記第1の処理部から出力された複数の色成分のそれぞれの種類を識別し、色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長符号化を行い、前記可変長符号化によって生成されるストリームを記憶部に格納する可変長符号化部と、前記記憶部に格納されている、色成分の種類ごとに生成されたストリームから、前記第1の処理部から出力された複数の色成分の順序とは異なる順序で、前記複数の色成分を順次読み出すことによって、前記複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成するストリーム再構成部とを備え、前記可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行ってもよい。
これにより、例えば、輝度の色成分に対する可変長符号化と、色差の色成分に対する可変長符号化とが並列に行われる。したがって。可変長符号化を高速化することができ、動作効率を向上することができる。
また、前記ストリーム再構成部は、前記複数の色成分のそれぞれに対して付加されたマーカとともに前記複数の色成分を順次読み出すことによって、前記複数の色成分のそれぞれに対してマーカが付加された前記入れ換え済符号化ストリームを生成し、前記第2の処理部は、前記入れ換え済符号化ストリームに含まれる複数の前記マーカに基づいて、前記色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長復号を行う可変長復号部と、前記色成分の種類ごとに、当該種類に属する可変長復号された前記複数の色成分に対する逆量子化を行う逆量子化部と、前記色成分の種類ごとに、当該種類に属する逆量子化された前記複数の色成分に対する逆周波数変換を行うことによって、複数の前記マーカを含む色成分データを生成する逆周波数変換部と、前記色成分の種類ごとに生成された色成分データを、前記色成分データに含まれる複数の前記マーカに基づいて識別し、前記入れ換え部によって入れ換えられた順序どおりに、逆周波数変換された前記複数の色成分が配列するように、前記複数の色成分を再構成する成分再構成部とを備え、前記可変長復号部、前記逆量子化部、および前記逆周波数変換部はそれぞれ、前記色成分の種類のそれぞれに対する処理を並列に行ってもよい。
これにより、入れ換え済符号化トリームに対する可変長復号、逆量子化および逆周波数変換のそれぞれの処理では、例えば、輝度の色成分に対する処理と、色差の色成分に対する処理とが並列に行われるため、可変長復号、逆量子化および逆周波数変換を高速化することができ、動作効率を向上することができる。
ここで、具体的には、第1の処理部は、第1の処理単位ごとに、当該第1の処理単位に含まれる複数の成分を、4つの輝度成分、4つの第1の色差成分(Cb)、4つの第2の色差成分(Cr)の順に出力し、前記入れ換え部は、前記複数の成分の順序を入れ換えることにより、第2の処理単位ごとに、当該第2の処理単位に含まれる複数の成分を、1つの輝度成分、1つの第1の色差成分、1つの第2の色差成分の順に出力してもよい。
以下、実施の形態における画像処理装置について、図面を参照しながら説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
また、64x64画素、および、32x32画素等の表現は、それぞれ、64画素x64画素、および、32画素x32画素等のサイズを意味する。
また、以下において、ブロック、データ単位および符号化ユニット(CU)等の表現は、それぞれ、まとまった領域を意味する。それらは、それぞれ、画像領域を意味する場合もある。あるいは、それらは、それぞれ、符号化ストリームにおけるデータ領域を意味する場合もある。
また、画像は、動画像、静止画像、動画像を構成する複数のピクチャ、1つのピクチャ、および、ピクチャの一部等のいずれでもよい。
(実施の形態1)
本実施の形態における画像処理装置である画像復号装置は、逆量子化部内に、符号化ストリーム中の係数情報(成分)を入れ換える順序入れ換え部を持つ点に特徴がある。
(1−1.概要)
まず、本実施の形態における画像復号装置の概要について説明する。本実施の形態における画像復号装置は、符号化ストリームに対して可変長復号を行った後、符号化ユニット(CU)単位で格納されている係数情報を、順序入れ換え部で並べ換えることで、CU単位よりも小さなサイズで、可変長復号よりも後段の処理を行う。具体的には、画像復号装置は、符号化ストリームに対して64x64画素のCU単位で可変長復号を行った後、32x32画素のTU単位(32x32画素の輝度Y、16x16画素の色差Cb、および16x16画素の色差Crからなる単位)で、逆量子化以降の処理を行う。
(1−2.構成)
次に、本実施の形態の画像復号装置の構成について説明する。
図5は、本実施の形態における画像復号装置の構成を示すブロック図である。本実施の形態の画像復号装置513は、制御部501、ビットストリームバッファ502、フレームメモリ503、可変長復号部504、入れ換え逆量子化部505、逆周波数変換部506、イントラ予測部507、動きベクトル算出部508、動き補償部509、スイッチ510、再構成部511、およびデブロックフィルタ部512を備える。なお、図5には示されていないが、画像復号装置513は、メモリ701、メモリ702、メモリ703およびメモリ704を備えている(図6参照)。
図6は、本実施の形態における画像復号装置513の構成を他の観点から示すブロック図である。つまり、画像復号装置513は、可変長復号部504、入れ換え逆量子化部505、逆周波数変換部506、画像再構成部603、デブロックフィルタ部512、および4つのメモリ701〜704を備える。ここで、入れ換え逆量子化部505は、順序入れ換え部601および逆量子化部602を備える。なお、図6では、説明の都合上、制御部501、ビットストリームバッファ502およびフレームメモリ503を省略している。さらに、画像再構成部603は、イントラ予測部507、動きベクトル算出部508、動き補償部509、スイッチ510、および再構成部511から構成されている。
制御部501は、画像復号装置513の全体を制御する。ビットストリームバッファ502は、入力された符号化ストリームを格納する。フレームメモリ503は、復号された画像データを格納する。
可変長復号部504は、ビットストリームバッファ502から符号化ストリームを読み出し、その符号化ストリームに対して可変長復号を行うことによって、複数の量子化値を生成して入れ換え逆量子化部505に出力する。入れ換え逆量子化部505は、その複数の量子化値(複数の係数情報)のうちの少なくとも一部の順序を入れ換える。さらに、入れ換え逆量子化部505は、入れ換えられた順序で複数の量子化値のそれぞれに対して逆量子化を行うことによって、複数の周波数係数を生成して逆周波数変換部506に出力する。逆周波数変換部506は、その複数の周波数係数に対して逆周波数変換を行うことによって、差分画像を生成する。イントラ予測部507は、復号対象画像に対して画面内予測(イントラ予測ともいう)を行うことによって、予測画像を生成する。動きベクトル算出部508は、動きベクトルを算出して動き補償部509に出力する。動き補償部509は、その動きベクトルを用いて、復号対象画像に対して動き補償を行うことによって、予測画像を生成する。スイッチ510は、予測画像の取得先をイントラ予測部507および動き補償部509のうちの何れかに切り換え、その取得先から取得された予測画像を再構成部511に出力する。再構成部511は、逆周波数変換によって生成された差分画像と、予測画像とから復号画像を生成する画像再構成処理(画像の再構成処理)を行う。デブロックフィルタ部512は、画像再構成処理によって生成された復号画像のブロックノイズを除去することによって、その復号画像を高画質化する。
(1−3.動作)
次に、図5に示した画像復号装置513の動作を説明する。
図7Aおよび図7Bは、符号化ストリームの階層的な構成を示す図である。複数のピクチャを1まとまりにしたものをシーケンスと呼ぶ。各ピクチャはスライスに分割される。さらに、スライスは、符号化ユニット(CU)に分割される。さらにCUは、周波数変換ユニット(TU)と、予測ユニット(PU)とで構成される。なお、ピクチャをスライスに分割しない場合もある。符号化ユニット(CU)は、64x64画素〜8x8画素のサイズで設定される。CUは、画像の符号化に用いられる予測方法をイントラ予測とインター予測とに切り換えることが可能なデータ単位(最小単位)である。周波数変換ユニット(TU)は、符号化ユニット(CU)の内部で32x32画素〜4x4画素のサイズで設定される。予測ユニット(PU)は、符号化ユニット(CU)の内部で64x64画素〜4x4画素のサイズで設定される。PUは、イントラ予測のモード、または、インター予測の動きベクトルを有する。
図7Cは、符号化ストリーム内の各データの配置を示す図である。
符号化ストリームは、図7Cに示すように、画像を階層的に符号化することによって構成されており、シーケンスを制御するためのシーケンスヘッダ、ピクチャを制御するためのピクチャヘッダ、スライスを制御するためのスライスヘッダ、および符号化ユニット(CU)から構成される。なお、H.264規格では、シーケンスヘッダをSPS(Sequence Parameter Set)、ピクチャヘッダをPPS(picture parameter Set)と呼んでいる。
図8は、画像復号装置513による符号化ストリームの1シーケンスに対する復号動作を示すフローチャートである。図8に示すように、画像復号装置513は、まず、シーケンスヘッダを復号する(S901)。シーケンスヘッダの復号(S901)は、制御部501の制御のもと、ビットストリームバッファ502に蓄えられた符号化ストリームを可変長復号部504が復号することによって行われる。次に、同様にして、画像復号装置513は、ピクチャヘッダを復号し(S902)、スライスヘッダを復号する(S903)。
次に、画像復号装置513はCUを復号する(S904)。このCUの復号については後で詳しく説明する。1つのCUの復号が終わると、画像復号装置513はそれがスライスの最後のCUかどうかを判断する(S905)。スライスの最後のCUでない場合は、画像復号装置513は、再びS904の処理を行い、次のCUの復号を行う。スライスの最後のCUである場合は、画像復号装置513はS906の処理を行う。
つまり、画像復号装置513は、S906において、先に復号されたスライスがピクチャの最後のスライスかどうかを判断する。ピクチャの最後のスライスでない場合は、画像復号装置513は、再びS903からの処理を行い、次のスライスヘッダの復号を行う。ピクチャの最後のスライスである場合は、画像復号装置513はS907の処理を行う。
つまり、画像復号装置513は、S907において、先に復号されたピクチャがシーケンスの最後のピクチャかどうかを判断する。シーケンスの最後のピクチャでない場合は、画像復号装置513は、再びS902からの処理を行い、次のピクチャヘッダの復号を行う。画像復号装置513は、シーケンスの全てのピクチャの復号が終わると一連の復号動作を終了する。
図9は、画像復号装置513による1つのCUに対する復号動作を示すフローチャートである。つまり、図9は、図8に示すS904における符号化ユニットを復号する処理を示す。まず、画像復号装置513は、入力された符号化ストリームを可変長復号部504によって可変長復号する(S101)。可変長復号部504は、符号化情報(CU種別、イントラ予測モード、動きベクトル情報、量子化パラメータなど)と、各画素データに対応する係数情報(輝度Y、色差Cbおよび色差Crのそれぞれの量子化値)とを出力する。
次に、動きベクトル算出部508は、復号対象のCUが、動き補償を用いて符号化されたインターCUであるか、イントラ予測を用いて符号化されたイントラCUであるかの判定を行う(S102)。ここで、インターCUの場合は、動きベクトル算出部508は、符号化情報を用いて動きベクトルを算出する(S103)。つまり、動きベクトル算出部508は、予測動きベクトルを算出し、この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報(動きベクトルの差分値)とを加算することによって、動きベクトルを算出する。なお、符号化情報は、可変長復号部504から制御部501に出力され、その後、各処理部(画像復号装置513の各構成要素)に入力される。係数情報は入れ換え逆量子化部505に出力される。次に、入れ換え逆量子化部505は逆量子化処理を行う(S104)。なお、可変長復号部504および入れ換え逆量子化部505の動作については後で詳細に説明する。次に、逆周波数変換部506は逆周波数変換を行う(S105)。
次に、制御部501は、復号対象のCUがインターCUであるかイントラCUであるかの判定を行う(S106)。インターCUの場合は、制御部501は、動きベクトル算出部508によって算出された動きベクトルを動き補償部509に入力させる。そして、制御部501は、フレームメモリ503から動き補償部509に、その動きベクトルが示す参照画像を転送させる(S107)。動き補償部509は、転送された参照画像を用いて、1/2画素精度や1/4画素精度の予測画像を生成する(S108)。つまり、動き補償部509は動き補償を行う。
一方、インターCUで無い場合(S106)、すなわちイントラCUの場合は、制御部501は、イントラ予測部507にインター予測の処理を行わせ、予測画像を生成させる(S109)。制御部501は、ステップS106の判定結果に応じてスイッチ510を制御することによって、再構成部511に出力される予測画像を、動き補償部509によって生成された予測画像、およびイントラ予測部507によって生成された予測画像のうちの何れかに切り換える。
再構成部511は、得られた予測画像と、逆周波数変換部506から出力される差分画像とを加算することによって復号画像を生成する(S110)。つまり、再構成部511は、画像再構成処理(画像を再構成すること)を行う。次に、デブロックフィルタ部512は、その画像再構成処理によって得られた復号画像に対して、ブロックノイズを低減するデブロックフィルタ処理を行う(S111)。これにより、ブロックフィルタ処理された復号画像がフレームメモリ503に格納される。以上で、1つのCUの復号動作が終了する。
次に、図6を用いて、本実施の形態の特徴である可変長復号部504、順序入れ換え部601および逆量子化部602の動作について詳しく説明する。ここでは、64x64画素の符号化ユニットを復号する場合を考える。
可変長復号部504は、入力された符号化ストリームに対して可変長復号を行う。その結果、可変長復号部504は、符号化情報(CU種別、イントラ予測モード、動きベクトル情報、量子化パラメータなど)と、各画素データに対応する係数情報とを出力する。
ここでは、係数情報の処理フローについて説明する。可変長復号部504から出力された係数情報は、メモリ701を介し、順序入れ換え部601に渡される。順序入れ換え部601は、符号化ストリーム内での複数の係数情報の順序(配置)を入れ換え、順序が入れ換えられた複数の係数情報が逆量子化部602に出力される。逆量子化部602は、それらの係数情報に対して逆量子化を行う。
ここで、順序入れ換え部601の動作について、図10および図11を用いて詳しく説明する。なお、符号化ストリームでは、図1Aに示されるように、インター予測およびイントラ予測の切り換え単位であるCUのサイズは64x64画素である。また、周波数変換ユニットであるTUのサイズは32x32画素である。
図10は、複数の係数情報の順序の入れ換えを説明するための図である。また、図11は、順序入れ換え部601の処理動作を示すフローチャートである。なお、この入れ換えによって、可変長復号部504から出力された複数の係数情報の順序が入れ換えられる。
可変長復号後の複数の係数情報はメモリ701に、図10の(a)に示される順序で格納または配置される。順序入れ換え部601は、図11に示すフローによって、まず32x32画素の左上TU0に対応するY0(32x32画素)、Cb0(16x16画素)、およびCr0(32x32画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S201)。次に、順序入れ換え部601は、右上TU1に対応するY1(32x32画素)、Cb1(16x16画素)、およびCr1(16x16画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S202)。次に、順序入れ換え部601は、左下TU2に対応するY2(32x32画素)、Cb2(16x16画素)、およびCr2(16x16画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S203)。次に、順序入れ換え部601は、右下TU3に対応するY3(32x32画素)、Cb3(16x16画素)、およびCr3(16x16画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S204)。
このように、順序入れ換え部601は、CU内で同じ座標に位置するブロック(TU)に対応する輝度および色差の係数情報を、ブロックごとに順に読み出して出力する。このような読み出しと出力が順次繰り返されることで、輝度Y、色差Cbおよび色差Crのそれぞれの複数の係数情報の順序が、図10に示すように入れ換えられる。つまり、図10の(a)に示される順から(b)に示される順に入れ換えられる。その結果、逆量子化部602は32x32画素単位(TU単位)で係数情報を受け取り、その画素単位で逆量子化を行う。また、逆量子化の後の処理も同様に、32x32画素単位(TU)で行われる。
以上の係数情報の順序の入れ換えにより、Y(32x32画素を4つ)、Cb(16x16画素を4つ)、およびCr(16x16画素を4つ)をまとめた計6,144画素単位(CUサイズの単位)を、1,536画素単位(TUサイズの単位)で4回に分割して出力することが可能となる。
次に、逆量子化部602は、順序入れ換え部601から、複数の係数情報の入れ換えが行われた符号化ストリームを取得し、その符号化ストリームに対して、Y(32x32画素)、Cb(16x16画素)、およびCr(16x16画素)からなる1,536画素単位ごとに逆量子化を行う。そして、逆量子化部602は、その逆量子化によって生成された複数の周波数係数をメモリ702に格納する。逆周波数変換部506は、メモリ702から複数の周波数係数を読み出し、その複数の周波数係数に対して上述の1,536画素単位ごとに逆周波数変換を行う。そして、逆周波数変換部506は、その逆周波数変換によって生成される差分画像をメモリ703に格納する。画像再構成部603は、メモリ703から差分画像を読み出し、その差分画像に対して上述の1,536画素単位ごとに画像再構成処理などの処理を行う。そして、画像再構成部603は、その処理によって生成された復号画像をメモリ704に格納する。デブロックフィルタ部512は、メモリ704から復号画像を読み出し、その復号画像に対して上述の1,536画素単位ごとにデブロックフィルタ処理を行う。なお、上述の量子化値、周波数係数および画素は、それぞれ状態が異なっているが、所定の係数情報または成分を意味する。
このような本実施の形態を纏めると、以下のとおりである。
画像復号装置513は、画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、例えば可変長復号部504である第1の処理部と、例えば順序入れ換え部601である入れ換え部と、例えば逆量子化部602である第2の処理部とを備える。
第1の処理部は、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する。例えば、第1の処理単位はCUである。また、第1の処理単位は、符号化ストリームの構成に応じて可変なサイズの第1の処理単位(CU)ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する。
入れ換え部は、第1の処理部から出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する。例えば、第2の処理単位はTU、またはTUよりも小さいサイズの処理単位である。また、入れ換え部は、符号化ストリームの構成に応じて可変なサイズの第2の処理単位ごとに、第2の処理単位に含まれる少なくとも1つの成分を順次出力する。また、入れ換え部は、第1の処理単位よりも小さいサイズの第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する。
また、第1の処理部は、第1の処理単位に含まれる複数の成分として複数の色成分のそれぞれを順次出力する。このとき、入れ換え部は、第1の処理部から出力された複数の色成分の順序を入れ換えることにより、第2の処理単位に含まれる複数の色成分を順次出力する。この複数の色成分は、例えば、輝度Yの係数情報、色差Cbの係数情報および色差Crの係数情報などである。
また、第1の処理部は、複数の色成分のそれぞれを順次出力することによって、複数の色成分のそれぞれを記憶部に順次格納する。記憶部は、例えばメモリ701である。ここで、図11に示すように、入れ換え部は、その記憶部に格納されている複数の色成分の順序と異なる順序で、複数の色成分のそれぞれを順次読み出すことによって、複数の色成分の順序を入れ換える。
さらに、第2の処理部は、第2の処理単位に含まれる複数の色成分を用いて、その第2の処理単位に対応する画像を再構成する再構成処理を、前記第2の処理に含まれる処理として行ってもよい。つまり、第2の処理部は、画像再構成部603または再構成部511としての機能を備えていてもよい。また、第1の処理部は、可変長復号を第1の処理として行い、第2の処理部は、第2の処理に含まれる処理として逆量子化を行ってもよい。
なお、上記成分は、色成分であっても他の成分(例えば、符号化情報など)であってもよい。
(1−4.効果)
このように、本実施の形態では、可変長復号部504によって出力されてメモリ701に格納された複数の係数情報の順序が、逆量子化部602の前にある順序入れ換え部601によって入れ換えられる。これにより、逆量子化部602以降のメモリ702、メモリ703およびメモリ704の容量を、64x64画素の2セット分(輝度Y、色差Cbおよび色差Crのそれぞれの画素の合計である12,288画素)から32x32画素の2セット分(輝度Y、色差Cbおよび色差Crのそれぞれの画素の合計である3,072画素)に削減することが可能となる。つまり、逆量子化部602以降の各処理部間をつなぐメモリの容量をそれぞれ1/4に削減することができる。これにより、メモリにかかるコストを削減できると共に、消費電力の低減を図ることができる。
(なお書き)
なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
また、フレームメモリ503、メモリ701、メモリ702、メモリ703、メモリ704は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
また、順序入れ換え部601において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、順序入れ換え部601は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
また、順序入れ換え部601は、例として、逆量子化部602の直前に配置されていたが、これに限定されるものではない。逆周波数変換部506の直前であっても良いし、画像再構成部603の直前であっても良い。
また、順序の入れ換えを、メモリからの読み出し時に行う例で示したが、これに限定されるものではない。例えば、図12に示すフローに従って、図13に示す通り、メモリへの書き込み時に、係数情報の順序の入れ換えを行った上で、読み出し時に順番に読み出す方法でも構わない。
図12は、複数の係数情報のメモリへの書き込み順を示すフローチャートである。図13は、複数の係数情報がメモリに書き込まれる順序と、読み出される順序とを示す図である。
図12に示すように、順序入れ換え部601は、可変長復号部504から複数の係数情報を受け取ると、輝度Y0をメモリのY0領域に書き込み(S301)、輝度Y1をメモリのY1領域に書き込み(S302)、輝度Y2をメモリのY2領域に書き込み(S303)、輝度Y3をメモリのY3領域に書き込む(S304)。さらに、順序入れ換え部601は、色差Cb0をメモリのCb0領域に書き込み(S305)、色差Cb1をメモリのCb1領域に書き込み(S306)、色差Cb2をメモリのCb2領域に書き込み(S307)、色差Cb3をメモリのCb3領域に書き込む(S308)。さらに、順序入れ換え部601は、色差Cr0をメモリのCr0領域に書き込み(S309)、色差Cr1をメモリのCr1領域に書き込み(S310)、色差Cr2をメモリのCr2領域に書き込み(S311)、色差Cr3をメモリのCr3領域に書き込む(S312)。
その結果、メモリ701の各領域には、図13に示すように係数情報が格納される。この場合、逆量子化部602は、メモリ701の各領域に格納されている複数の係数情報の配置どおりに、それらの係数情報を読み出し、それらの係数情報に対して逆量子化を行う。
つまり、本実施の形態では、入れ換え部(順序入れ換え部601)は、第1の処理部(可変長復号部504)から出力された複数の色成分の順序と異なる順序で前記複数の色成分のそれぞれを記憶部(メモリ701)に順次書き込むことによって、複数の色成分の順序を入れ換え、第2の処理部(逆量子化部602)は、その記憶部に格納されている複数の色成分の順序にしたがって、複数の色成分のそれぞれを順次読み出してもよい。
また、順序入れ換え部601が、可変長復号部504の直後であっても良いし、逆量子化部602の直後であっても良いし、逆周波数変換部506の直後であっても良いし、画像再構成部603の直後であっても良い。このように、順序入れ換え部601は、係数情報が受け渡しされる処理部のいずれかあるいは複数の部分に配置されればよい。
(実施の形態2)
(2−1.概要)
次に、本実施の形態における画像処理装置の概要について説明する。実施の形態1における画像処理装置は、画像復号装置513として構成され、図6に示した可変長復号部504による処理以降で複数の係数情報の順序を入れ換える。これに対して、本実施の形態における画像処理装置は、入力される符号化ストリームに含まれる複数の係数情報の順序の入れ換えを、CUの復号前に行い、その結果生成される入れ換え済符号化ストリームに対して、CUの復号を含む復号処理を行う。
(2−2.構成)
次に、本実施の形態における画像処理装置の構成について説明する。
図14は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、ストリーム変換部605と、画像復号装置513aとを備える。ビットストリームバッファ604は符号化ストリームを保持するためのメモリである。ストリーム変換部605は、ビットストリームバッファ604から符号化ストリームを読み出して、その符号化ストリームに含まれる複数の係数情報の順序を入れ換えることによって、入れ換え済符号化ストリームを生成する。そして、ストリーム変換部605は、その入れ換え済符号化ストリームを画像復号装置513aのビットストリームバッファ502に出力する。画像復号装置513は、実施の形態1の画像復号装置513に含まれる構成要素のうち、入れ換え逆量子化部505を除く全ての構成要素を備え、入れ換え逆量子化部505の代わりに逆量子化部602を備える。なお、本実施の形態では、実施の形態1と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
図15は、ストリーム変換部605の構成を示すブロック図である。
ストリーム変換部605は、図15に示すとおり、可変長復号部606と、メモリ708と、順序入れ換え部601と、可変長符号化部607とを備える。
(2−3.動作)
次に、ストリーム変換部605の動作を説明する。
図16は、ストリーム変換部605の処理動作を示すフローチャートである。ここでは、図10に示すように、複数の係数情報の順序を入れ換える例を説明する。
可変長復号部606は、符号化ストリームをビットストリームバッファ604から読み出して、その符号化ストリームに対して可変長復号を行う(S401)。そして、可変長復号部606は、可変長復号された符号化ストリームを可変長復号ストリームとしてメモリ708に格納する。順序入れ換え部601は、メモリ708から可変長復号ストリームを読み出し、その可変長復号ストリームに対して係数情報の順序の入れ換えが必要か否かを判断する(S402)。すなわち、順序入れ換え部601は、可変長復号ストリームに含まれる64x64画素の画像データが、64x64画素のCUと、それぞれ32x32画素の4つのTUとで構成されている場合に、入れ換えが必要と判断する。そして、順序入れ換え部601は、入れ換えが必要と判断した際には(S402のYes)、複数の係数情報の順序を図11に示すフローにしたがって入れ換える(S403)。順序入れ換え部601は、この入れ換えによって入れ換え済可変長復号ストリームを生成して可変長符号化部607に出力する。可変長符号化部607は、入れ換え済可変長復号ストリームに対して可変長符号化を行う(S404)。可変長復号部606は、その画像データが符号化ストリームの終端の画像データか否かを判断し(S405)、符号化ストリームの終端でないと判断すると(S405のNo)、S401の処理を繰り返し実行する。
このようなS401〜S405の処理が繰り返し実行されることによって、ストリーム変換部605は、上述の入れ換え済符号化ストリームを生成して、画像復号装置513aのビットストリームバッファ502に出力する。なお、順序入れ換え部601は、可変長復号ストリームに含まれる情報のうち、係数情報以外の情報、つまり上述の符号化情報に対しては順序の入れ換えを行わず、その符号化情報を入れ換え済可変長復号ストリームに含めたまま出力する。
図17は、画像復号装置513aの構成を他の観点から示すブロック図である。つまり、画像復号装置513aは、可変長復号部504、逆量子化部602、逆周波数変換部506、画像再構成部603、デブロックフィルタ部512、および4つのメモリ702〜704,709を備える。なお、画像復号装置513aは、実施の形態1の画像復号装置513のメモリ701の代わりにメモリ709を備えている。メモリ709は、可変長復号部504から出力されるデータを格納する。
ストリーム変換部605による上述の処理により、画像復号装置513aへ入力される符号化ストリームは、係数情報の順序が入れ換えられたものである。したがって、画像復号装置513aにおいて、図17に示すとおり、各処理部の間に必要なメモリ702〜704,709の容量を削減することが可能となる。
さらに、可変長符号化部607は、入れ換え済可変長復号ストリームを、元の符号化方式と異なる符号化方式で可変長符号化してもよい。例えば、元の可変長符号化の符号化方式、つまり符号化ストリームの符号化方式は、非特許文献1あるいは非特許文献2に示されているCABAC(Context−based Adaptive Binary Arithmetic Coding)である。この符号化方式は、非特許文献1あるいは非特許文献2に示されるCAVLC(Context Adaptive Variable Length Coding)と比較して、符号化効率が高い代わりに、処理が複雑である。そこで、ストリーム変換部605における可変長符号化部607は、入れ換え済可変長復号ストリームに対する符号化方式に、処理が容易な符号化方式(CAVLC)を採用することで、画像復号装置513aの可変長復号の処理負担を軽減することが可能になる。
さらに、上記方法を用いた場合、ストリーム変換部605は、処理の複雑なCABAC方式によって符号化された符号化ストリームを高速に可変長復号および符号化し、入れ換え済符号化ストリームのデータを十分にビットストリームバッファ502へ蓄える。その後、画像復号装置513は処理の軽減された復号を行う。これにより、性能保証を容易に行うことができる。なお、画像復号装置513aは、実施の形態1における画像復号装置513から順序入れ換え部601を除いたものであり、従来と同様のパイプライン処理を行うため、ここではその処理動作の説明を省略する。
このような本実施の形態では、第1の処理部は例えば可変長復号部606であり、入れ換え部は例えば順序入れ換え部601であり、第2の処理部は例えば可変長符号化部607である。つまり、本実施の形態では、第1の処理部は、可変長復号を第1の処理として行い、第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、入れ換え部は、第1の処理部から出力された複数の色成分の順序を入れ換える。そして、第2の処理部は、第2の処理に含まれる処理として可変長符号化を行う。なお、本実施の形態におけるストリーム変換部605を本発明の一態様に係る画像処理装置と称してもよい。
また、本実施の形態では、画像処理装置は、さらに、第2の処理によって生成されるストリームに対して第3の処理を行うことによって、符号化ストリームを復号する第3の処理部を備える。この第3の処理部は例えば画像復号装置513aである。
(2−4.効果)
本実施の形態では、実施の形態1と同様、可変長復号の後に、メモリを用いて、係数情報の順序の入れ換えを行うことによって、画像復号装置513aのメモリ702〜704の容量を削減することが可能である。また、CABACのように複雑な可変長符号化の符号化方式を用いて生成された符号化ストリームの場合、画像復号装置がその符号化ストリームに対してCABACにしたがった復号を行うと、復号の処理時間が大きくなり、画像復号装置の性能が低下することがある。しかし、本実施の形態では、画像復号装置513aに入力される前の符号化ストリーム(可変長復号ストリーム)の状態に基づいて、係数情報の順序を入れ換えるとともに、さらに、符号化ストリームを、より可変長復号しやすい符号化方式の入れ換え済符号化ストリームに変換する。これにより、画像復号装置513aの高性能化を可能にすると同時に、画像復号装置513aのメモリ(特に、メモリ709)の容量を削減することが可能となる。
(なお書き)
なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
また、フレームメモリ503、メモリ708、メモリ709、メモリ702、メモリ703、メモリ704は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
また、順序入れ換え部601において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、順序入れ換え部601は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
また、順序の入れ換えを、メモリからの読み出し時に行う例で示したが、これに限定されるものではない。例えば、図12に示すフローに従って、図13に示す通り、メモリへの書き込み時に、係数情報の順序の入れ換えを行った上で、読み出し時に順番に読み出す方法でも構わない。
(実施の形態3)
(3−1.概要)
次に、本実施の形態における画像処理装置の概要について説明する。実施の形態2における画像処理装置は、入力される符号化ストリームに含まれる複数の係数情報の入れ換えを、CUの復号前に行い、その結果生成される入れ換え済符号化ストリームに対して、CUの復号を含む復号処理を行う。ここで、実施の形態2における画像処理装置は、入れ換え済符号化ストリームの生成の際、入れ換えられた順序の複数の係数情報のそれぞれに対する可変長符号化を逐次的に実行する。これに対して、本実施の形態では、その複数の係数情報のそれぞれに対する可変長符号化を並列に実行する。
(3−2.構成)
次に、本実施の形態における画像処理装置の構成について説明する。
図18は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、ストリーム変換部608と、画像復号装置513aとを備える。なお、本実施の形態では、実施の形態1または2と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
つまり、本実施の形態における画像処理装置は、実施の形態2の画像処理装置に含まれる構成要素のうち、ストリーム変換部605を除く全ての構成要素を備え、そのストリーム変換部605の代わりに他のストリーム変換部608を備えている。このストリーム変換部608は、ストリーム変換部605と同様、ビットストリームバッファ604から符号化ストリームを読み出して、その符号化ストリームに含まれる複数の係数情報の順序を入れ換えることによって、入れ換え済符号化ストリームを生成する。そして、ストリーム変換部608は、その入れ換え済符号化ストリームを画像復号装置513aのビットストリームバッファ502に出力する。
図19は、本実施の形態におけるストリーム変換部608の構成を示すブロック図である。ストリーム変換部608は、図19に示すとおり、可変長復号部606と、分割部609と、輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712と、符号化情報用メモリ713と、輝度Y用可変長符号化部611と、色差Cb用可変長符号化部612と、色差Cr用可変長符号化部613と、符号化情報用可変長符号化部614と、輝度Yストリーム用メモリ714と、色差Cbストリーム用メモリ715と、色差Crストリーム用メモリ716と、符号化情報ストリーム用メモリ717と、ストリーム再構成部610とを備える。
(3−3.動作)
次に、ストリーム変換部608の動作を説明する。
可変長復号部606は、入力された符号化ストリームを可変長復号する。次に、分割部609は、その可変長復号によって生成された可変長復号ストリームを、輝度Yの係数情報と、色差Cbの係数情報と、色差Crの係数情報と、その他の符号化情報とに分割する。その他の符号化情報とは、CU種別、イントラ予測モード、動きベクトル情報、または量子化パラメータなどである。
図20は、分割部609の処理動作を示すフローチャートである。まず、分割部609は、可変長復号ストリームのうちの一部の情報である復号済データを取得する(S501)。次に、分割部609は、その復号済データが係数情報であるか否かを判定する(S502)。ここで、分割部609は、係数情報でないと判定すると(S502のNo)、後述の符号化情報処理を行う(S503)。一方、分割部609は、係数情報であると判定すると(S502のYes)、さらに、その係数情報が輝度Yの係数情報であるか否かを判定する(S505)。ここで、分割部609は、輝度Yの係数情報であると判定すると(S505のYes)、輝度Y用メモリ710にその輝度Yの係数情報である復号済データを出力する(S508)。一方、分割部609は、輝度Yの係数情報でないと判定すると(S505のNo)、さらに、その係数情報が色差Cbの係数情報であるか否かを判定する(S506)。
ここで、分割部609は、色差Cbの係数情報であると判定すると(S506のYes)、色差Cb用メモリ711にその色差Cbの係数情報である復号済データを出力する(S509)。一方、分割部609は、色差Cbの係数情報でないと判定すると(S506のNo)、その係数情報は色差Crの係数情報であるため、色差Cr用メモリ712にその色差Crの係数情報である復号済データを出力する(S507)。
また、分割部609は、S503の処理を行った後、S501で取得された復号済データが可変長復号ストリームの終端のデータか否かを判定する(S504)。そして、分割部609は、終端のデータでないと判定すると(S504のNo)、または、S507〜S509の何れかの処理が行われると、再び、S501の処理を実行する。つまり、分割部609は、可変長復号ストリームから次の復号済データを取得して、その復号済データに対してS502〜S509の処理を実行する。
次に、復号済データが係数情報でない場合、すなわち符号化情報である場合の動作について図21のフローチャートを用いて説明する。
図21は、分割部609による符号化情報処理(S503)を示すフローチャートである。符号化情報は、輝度Y、色差Cbおよび色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類される。そこで、分割部609は、まず、上述の復号済データが輝度Y、色差Cbおよび色差Crの全ての符号化に必要な符号化情報かどうかを判定する(S601)。ここで、分割部609は、輝度Y、色差Cbおよび色差Crの全ての符号化に必要な符号化情報であると判定すると(S601のYes)、輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712とに、その符号化情報である復号済データを出力する(S605)。
一方、分割部609は、輝度Y、色差Cbおよび色差Crの全ての符号化に必要な符号化情報ではないと判定すると(S601のNo)、さらに、上述の復号済データが輝度Yの符号化にのみ必要な符号化情報であるかどうかを判定する(S602)。ここで、分割部609は、輝度Yの符号化にのみ必要な符号化情報であると判定すると(S602のYes)、輝度Y用メモリ710に、その符号化情報である復号済データを出力する(S606)。
一方、分割部609は、輝度Yの符号化にのみ必要な符号化情報ではないと判定すると(S602のNo)、さらに、上述の復号済データが色差Cbと色差Crの符号化にのみ必要な符号化情報であるかどうかを判定する(S603)。ここで、分割部609は、色差Cbと色差Crの符号化にのみ必要な符号化情報であると判定すると(S603のYes)、色差Cb用メモリ711と色差Cr用メモリ712のそれぞれに、その符号化情報である復号済データを出力する(S607)。
一方、分割部609は、色差Cbと色差Crの符号化にのみ必要な符号化情報ではないと判定すると(S603のNo)、すなわち、その符号化情報が逆量子化以降の復号に必要な情報である場合、符号化情報用メモリ713にその符号化情報である復号済データを出力する(S604)。
このように、分割部609から出力された複数の復号済データは、輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712と、符号化情報用メモリ713とのうちの少なくとも1つのメモリにそれぞれ分配される。以降の処理では、それぞれのメモリ上の情報を用いて可変長符号化が行われる。
輝度Y用可変長符号化部611は、輝度Y用メモリ710から復号済データを読み出して、その復号済データに対して可変長符号化を行うことによって、輝度Yストリームを生成する。輝度Y用可変長符号化部611は、その輝度Yストリームを輝度Yストリーム用メモリ714に出力する。
また、色差Cb用可変長符号化部612は、色差Cb用メモリ711から復号済データを読み出し、その復号済データに対して可変長符化を行うことによって、色差Cbストリームを生成する。色差Cb用可変長符号化部612は、その色差Cbストリームを色差Cbストリーム用メモリ715に出力する。
また、色差Cr用可変長符号化部613は、色差Cr用メモリ712から復号済データを読み出し、その復号済データに対して可変長符化を行うことによって、色差Crストリームを生成する。色差Cr用可変長符号化部613は、その色差Crストリームを色差Crストリーム用メモリ716に出力する。
また、符号化情報用可変長符号化部614は、符号化情報用メモリ713から復号済データを読み出し、その復号済データに対して可変長符化を行うことによって、符号化情報ストリームを生成する。符号化情報用可変長符号化部614は、その符号化情報ストリームを符号化情報ストリーム用メモリ717に出力する。
以上に示した可変長符号化は、それぞれ独立して動作可能である。つまり、本実施の形態におけるストリーム変換部608は、実施の形態2において逐次行っていた可変長符号化を、並列に行うことが可能となる。
図22は、可変長符号化の並列処理を説明するためのタイミングチャートである。このタイミングチャートは、輝度Y、色差Cbおよび色差Crと、その符号化に必要な符号化情報とがそれぞれ各メモリに格納された後の動作を示している。実施の形態2のストリーム変換部605は、図22の(a)に示すように、各係数情報に対して可変長符号化を逐次実行する。つまり、ストリーム変換部605の可変長符号化部607は、可変長符号化を逐次実行するため、輝度Y、色差Cbおよび色差Crを順にメモリ708から読み出して可変長符号化を行う。一方、本実施の形態におけるストリーム変換部608は、図22の(b)に示すように、各係数情報に対する可変長符号化を並列に実行する。つまり、本実施の形態では、輝度Y用可変長符号化部611、色差Cb用可変長符号化部612、および色差Cr用可変長符号化部613がそれぞれ独立して可変長符号化を行うことによって、可変長符号化の並列処理が実現される。その結果、本実施の形態では、図22の(a)および(b)によって示されているように、実施の形態2における逐次処理と比較して、可変長符号化の全体的な処理時間を大幅に削減することができる。
ストリーム再構成部610は、輝度Yストリーム、色差Cbストリーム、色差Crストリーム、および符号化情報ストリームを、それぞれ輝度Yストリーム用メモリ714、色差Cbストリーム用メモリ715、色差Crストリーム用メモリ716、および符号化情報ストリーム用メモリ717から取り出す。なお、輝度Yストリームは、可変長符号化された輝度Yの複数の係数情報からなり、色差Cbストリームは、可変長符号化された色差Cbの複数の係数情報からなり、色差Crストリームは、可変長符号化された色差Crの複数の係数情報からなる。さらに、符号化情報ストリームは、可変長符号化された複数の符号化情報からなる。
つまり、ストリーム再構成部610は、上記各メモリから各ストリームを取り出すときには、それぞれのストリームに含まれる情報(係数情報または符号化情報)をそれぞれ順次選択して取り出す。そして、ストリーム再構成部610は、情報が取り出される度に、取り出された係数情報または符号化情報を、その直前に取り出された係数情報または符号化情報に繋げることによって、入れ換え済符号化ストリームを生成する。この際、ストリーム再構成部610は、入れ換え済符号化ストリーム中の符号化情報の位置が、元の符号化ストリーム中の位置と同一になるように、つまり、元の符号化ストリーム中の順序どおりに、符号化情報を取り出す。また、ストリーム再構成部610は、上述のそれぞれのストリームに含まれる係数情報を図11に示したフローに従って取り出す。このような取り出し方を行うことによって、上述の入れ換え済符号化ストリームが生成される。
このような本実施の形態では、第1の処理部は例えば可変長復号部606である。また、入れ換え部は、例えば、ストリーム変換部608のうちの可変長復号部606以外の構成要素群、つまり、分割部609、各可変長符号化部611〜614、各メモリ710〜717、およびストリーム再構成部610からなる。また、第2の処理部は例えば画像復号装置513aである。
つまり、第1の処理部は、可変長復号を第1の処理として行い、第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力する。入れ換え部は、分割部609と、可変長符号化部と、ストリーム再構成部610とを備える。分割部609は、第1の処理部から出力された複数の色成分のそれぞれを、色成分の種類ごとに分類する。可変長符号化部は、例えば上記各可変長符号化部611〜614からなり、色成分の種類ごとに、その種類に属する複数の色成分に対する可変長符号化を行い、その可変長符号化によって生成されるストリームを記憶部に格納する。記憶部は、例えば、上記各メモリ714〜717である。ストリーム再構成部610は、記憶部に格納されている、色成分の種類ごとに生成されたストリームから、第1の処理部から出力された複数の色成分の順序とは異なる順序で、複数の色成分のそれぞれを順次読み出すことによって、複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成する。ここで、上述の可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行う。また、入れ換え済符号化ストリームは、第2の処理単位のサイズと同じサイズの符号化ユニットを含む。
(3−4.効果)
本実施の形態では、実施の形態2と同様、画像復号装置513aに入力される前の符号化ストリームに含まれる係数情報の順序を入れ換え、さらに、元の符号化方式よりも復号しやすい符号化方式の可変長符号化によって入れ換え済符号化ストリームを生成する。これにより、画像復号装置513aの高性能化を可能にすると同時に、画像復号装置513aのメモリの容量を削減することが可能である。さらに、本実施の形態では、可変長符号化を並列に実行するため、入れ換え済符号化ストリームの生成にかかる処理時間を短縮することが可能となる。
(なお書き)
なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
また、フレームメモリ503、輝度Y用メモリ710、色差Cb用メモリ711、色差Cr用メモリ712、符号化情報用メモリ713、輝度Yストリーム用メモリ714、色差Cbストリーム用メモリ715、色差Crストリーム用メモリ716、および符号化情報ストリーム用メモリ717は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
また、ストリーム変換部608において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、ストリーム変換部608は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
また、分割部609における処理は、図20と図21によって示される処理に限定されるものではない。
また、本実施の形態では、分割部609は、複数の復号済データのそれぞれを、輝度Y用メモリ710、色差Cb用メモリ711、色差Cr用メモリ712、および符号化情報用メモリ713のうち、その復号済データに応じたメモリに格納していたが、これに限定することなく、共通のメモリに格納してもよい。
また、本実施の形態では、3つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbに対する可変長符号化と、色差Crに対する可変長符号化)を並列に行うことなく、2つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbおよび色差Crに対する可変長符号化)を並列に行ってもよい。この場合、ストリーム変換部608は、色差Cb用メモリ711と色差Cr用メモリ613の代わりに、これらのメモリの機能を兼ね備えた共通の1つのメモリを備える。そして、分割部609は、複数の復号済データのうち、色差Cbおよび色差Crのそれぞれの係数情報をその共通の1つのメモリに格納する。
また、本実施の形態では、符号化情報を、輝度Y、色差Cbおよび色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類し、輝度Y用メモリ710、色差Cb用メモリ711、および色差Cr用メモリ712のうち、その分類結果に応じたメモリに出力した。しかし、分類を行うことなく、符号化情報を、全ての輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712とに出力してもよい。この場合、各可変長符号化部611〜613は、メモリの中から必要な符号化情報を選択して可変長符号化に利用すればよい。
また、本実施の形態では、複数の復号済データを、輝度Y、色差Cbおよび
(実施の形態4)
(4−1.概要)
次に、本実施の形態における画像処理装置の概要について説明する。実施の形態3における画像処理装置では、分割部609が、可変長復号ストリームを輝度Y、色差Cb、色差Crおよび符号化情報に分割して、それらの復号済データを各メモリに格納する。これに対して、本実施の形態では、分割することなく、可変長復号ストリームに、輝度Y、色差Cb、色差Cr、および符号化情報をそれぞれ識別するためのマーカを付加(挿入)する。これにより、容易にメモリの共通化を図ることができる。
(4−2.構成)
次に、本実施の形態における画像処理装置の構成について説明する。
図23は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、ストリーム変換部615と、画像復号装置513aとを備える。なお、本実施の形態では、実施の形態1、2または3と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
つまり、本実施の形態における画像処理装置は、実施の形態3の画像処理装置に含まれる構成要素のうち、ストリーム変換部608を除く全ての構成要素を備え、そのストリーム変換部608の代わりに他のストリーム変換部615を備えている。このストリーム変換部615は、ストリーム変換部608と同様、ビットストリームバッファ604から符号化ストリームを読み出して、その符号化ストリームに含まれる複数の係数情報の順序を入れ換えることによって、入れ換え済符号化ストリームを生成する。そして、ストリーム変換部615は、その入れ換え済符号化ストリームを画像復号装置513aのビットストリームバッファ502に出力する。
図24は、本実施の形態におけるストリーム変換部615の構成を示すブロック図である。ストリーム変換部615は、図24に示すとおり、可変長復号部606と、マーカ挿入部616と、マーカ挿入済ストリームメモリ722と、輝度Y用可変長符号化部617と、色差Cb用可変長符号化部618と、色差Cr用可変長符号化部619と、符号化情報用可変長符号化部620と、輝度Yストリーム用メモリ718と、色差Cbストリーム用メモリ719と、色差Crストリーム用メモリ720と、符号化情報ストリーム用メモリ721と、ストリーム再構成部621とを備える。
(4−3.動作)
次に、ストリーム変換部615の動作を説明する。
可変長復号部606は、入力された符号化ストリームを可変長復号する。次に、マーカ挿入部616は、その可変長復号によって生成された可変長復号ストリームから、輝度Yの係数情報と、色差Cbの係数情報と、色差Crの係数情報と、その他の符号化情報とを識別して、それぞれに対するマーカを挿入する。
図25は、マーカ挿入部616の処理動作を示すフローチャートである。まず、マーカ挿入部616は、可変長復号ストリームのうちの一部の情報である復号済データを取得する(S701)。次に、マーカ挿入部616は、その復号済データが係数情報であるか否かを判定する(S702)。ここで、マーカ挿入部616は、係数情報でないと判定すると(S702のNo)、その復号済データは符号化情報であるので、可変長復号ストリーム中のその符号化情報の直前に、符号化情報マーカを挿入する(S705)。一方、マーカ挿入部616は、係数情報であると判定すると(S702のYes)、後述する係数情報マーカ挿入処理を実行する(S703)。
また、マーカ挿入部616は、S703またはS705の処理を行った後、S701で取得された復号済データが可変長復号ストリームの終端のデータか否かを判定する(S704)。そして、マーカ挿入部616は、終端のデータでないと判定すると(S704のNo)、再び、S701の処理を実行する。つまり、マーカ挿入部616は、可変長復号ストリームから次の復号済データを取得して、その復号済データに対してS702〜S705の処理を実行する。
図26は、マーカ挿入部616による係数情報マーカ挿入処理(S703)を示すフローチャートである。なお、符号化ストリーム(可変長復号ストリーム)では、図27の(a)に示すように、複数の係数情報は、輝度Y0、輝度Y1、輝度Y2、輝度Y3、色差Cb0、色差Cb1、色差Cb2、色差Cb3、色差Cr0、色差Cr1、色差Cr2、色差Cr3の順に配置されている。
マーカ挿入部616は、まず、可変長復号ストリームから輝度Y0の係数情報を読み出し、その可変長復号ストリーム中のその係数情報の直前に、輝度Y0を示すマーカを挿入する(S801)。次に、マーカ挿入部616は、可変長復号ストリームから輝度Y1の係数情報を読み出し、その可変長復号ストリーム中のその係数情報の直前に、輝度Y1を示すマーカを挿入する(S802)。以下同様にして、各係数情報に対して、識別可能なマーカを順に挿入する(S803〜S812)。
図27は、可変長復号ストリームに対するマーカの挿入を説明するための図である。
マーカ挿入部616は、図27の(a)に示す可変長復号ストリームに対して上述の処理動作を行い、その結果、図27の(b)に示す、マーカが挿入された可変長復号ストリームであるマーカ挿入済ストリームを生成する。このマーカ挿入済ストリームでは、係数情報ごとに、その係数情報の直前に、その係数情報を識別するためのマーカが挿入されている。そして、マーカ挿入部616は、そのマーカ挿入済ストリームをマーカ挿入済ストリームメモリ722に格納する。
次に、輝度Y用可変長符号化部617は、マーカ挿入済ストリームから、マーカに従って、輝度Yの符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。輝度Y用可変長符号化部617は、このような可変長符号化を繰り返すことによって輝度Yストリームを生成し、その輝度Yストリームを輝度Yストリーム用メモリ718に出力する。
また、色差Cb用可変長符号化部618は、マーカ挿入済ストリームから、マーカに従って、色差Cbの符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。色差Cb用可変長符号化部618は、このような可変長符号化を繰り返すことによって色差Cbストリームを生成し、その色差Cbストリームを色差Cbストリーム用メモリ719に出力する。同様に、色差Cr用可変長符号化部619は、マーカ挿入済ストリームから、マーカに従って、色差Crの符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。色差Cr用可変長符号化部619は、このような可変長符号化を繰り返すことによって、色差Crストリームを生成し、その色差Crストリームを色差Crストリーム用メモリ720に出力する。
また、符号化情報用可変長符号化部620は、マーカ挿入済ストリームから、マーカに従って、符号化情報の符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。符号化情報用可変長符号化部620は、このような可変長符号化を繰り返すことによって、符号化情報ストリームを生成し、その符号化情報ストリームを符号化情報ストリーム用メモリ721に出力する。
以上に示した可変長符号化は、実施の形態3と同様、それぞれ独立して実行可能である。ただし、本実施の形態では、各ストリーム(輝度Yストリーム、色差Cbストリーム、色差Crストリームおよび符号化情報ストリーム)には、マーカが残されている。
次に、ストリーム再構成部621は、マーカに基づいて、輝度Yストリーム、色差Cbストリーム、色差Crストリーム、および符号化情報ストリームを、それぞれ輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、および符号化情報ストリーム用メモリ721から取り出す。なお、輝度Yストリームは、可変長符号化された輝度Yの複数の係数情報とそれらに対するマーカとからなり、色差Cbストリームは、可変長符号化された色差Cbの複数の係数情報とそれらに対するマーカとからなり、色差Crストリームは、可変長符号化された色差Crの複数の係数情報とそれらに対するマーカとからなる。さらに、符号化情報ストリームは、可変長符号化された複数の符号化情報とそれらに対するマーカとからなる。
つまり、ストリーム再構成部621は、上記各メモリから各ストリームを取り出すときには、それぞれのストリームに含まれる情報(係数情報または符号化情報)を、それらの情報に対して挿入されたマーカに基づいて、それぞれ順次選択して取り出す。そして、ストリーム再構成部621は、情報が取り出される度に、取り出された係数情報または符号化情報を、その直前に取り出された係数情報または符号化情報に繋げることによって、入れ換え済符号化ストリームを生成する。この際、ストリーム再構成部621は、入れ換え済符号化ストリーム中の符号化情報の位置が、元の符号化ストリーム中の位置と同一になるように、つまり、元の符号化ストリーム中の順序どおりに、符号化情報を取り出す。また、ストリーム再構成部621は、上述のそれぞれのストリームに含まれる係数情報を図11に示したフローに従って取り出す。このような取り出し方を行うことによって、上述の入れ換え済符号化ストリームが生成される。本実施の形態では、この際、マーカが取り除かれる。
このような本実施の形態では、第1の処理部は例えば可変長復号部606である。また、入れ換え部は、例えば、ストリーム変換部615のうちの可変長復号部606以外の構成要素群、つまり、マーカ挿入部616、各可変長符号化部617〜620、各メモリ718〜722、およびストリーム再構成部621からなる。また、第2の処理部は例えば画像復号装置513aである。
つまり、第1の処理部は、可変長復号を第1の処理として行い、第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力する。入れ換え部は、マーカ挿入部616と、可変長符号化部と、ストリーム再構成部621とを備える。マーカ挿入部616は、第1の処理部から出力された複数の色成分のそれぞれに対して、その色成分の種類を識別するためのマーカを付加する。可変長符号化部は、例えば上記各可変長符号化部617〜620からなり、マーカ挿入部616によって付加されたマーカに基づいて、第1の処理部から出力された複数の色成分のそれぞれの種類を識別し、色成分の種類ごとに、その種類に属する複数の色成分に対する可変長符号化を行い、可変長符号化によって生成されるストリームを記憶部に格納する。記憶部は、例えば、上記各メモリ718〜721である。ストリーム再構成部621は、記憶部に格納されている、色成分の種類ごとに生成されたストリームから、第1の処理部から出力された複数の色成分の順序とは異なる順序で、複数の色成分を順次読み出すことによって、複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成する。ここで、上述の可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行う。
(4−4.効果)
本実施の形態では、実施の形態3と同様、画像復号装置513aに入力される前の符号化ストリームに含まれる係数情報の順序を入れ換え、さらに、元の符号化方式よりも復号しやすい符号化方式の可変長符号化によって入れ換え済符号化ストリームを生成する。これにより、画像復号装置513aの高性能化を可能にすると同時に、画像復号装置513aのメモリの容量を削減することが可能である。また、本実施の形態では、実施の形態3と同様、可変長符号化を並列に実行するため、入れ換え済符号化ストリームの生成にかかる処理時間を短縮することが可能となる。
さらに、本実施の形態では、輝度Y、色差Cb、色差Cr、および符号化情報を識別するためのマーカを挿入することで、それらを一連のデータとして、メモリに格納することが可能となる。また、メモリ資源の共通化を図ることができる。これにより、輝度Y、色差Cb、色差Cr、および符号化情報を個別にメモリに格納する場合よりも、メモリの管理および制御を簡略化し、可変長符号化に係る処理を並列実行する際の性能を向上させることが可能となる。これにより、入れ換え済符号化ストリームの生成にかかる処理時間をさらに短縮し、画像処理装置の高性能化を可能にし、画像処理装置のメモリの容量を削減することが可能となる。
(なお書き)
なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
また、フレームメモリ503、輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、符号化情報ストリーム用メモリ721、およびマーカ挿入済ストリームメモリ722は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
また、ストリーム変換部615において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、ストリーム変換部615は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
また、マーカ挿入部616における処理は、図25と図26によって示される処理に限定されるものではない。
また、符号化情報を、輝度Y、色差Cb、および色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類し、マーカを挿入してもよい。
また、上述の各マーカは、それぞれの情報が識別可能な値であればよく、規格上利用されていない数値列や、情報のビット幅を示すもの等であってもよい。
また、本実施の形態では、3つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbに対する可変長符号化と、色差Crに対する可変長符号化)を並列に行うことなく、2つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbおよび色差Crに対する可変長符号化)を並列に行ってもよい。この場合、マーカ挿入部616は、複数の復号済データのうち、色差Cbおよび色差Crのそれぞれの係数情報(復号済データ)に対して共通のマーカを挿入してもよい。
(実施の形態5)
(5−1.概要)
次に、本実施の形態における画像処理装置の概要について説明する。実施の形態4における画像処理装置では、マーカ挿入部616によって挿入されたマーカにしたがって、各可変長符号化部が並列に動作する。そして、ストリーム再構成部621によってマーカが削除され、画像復号装置513aは、マーカが挿入されていない入れ換え済符号化ストリームに対して復号処理を逐次実行する。これに対して、本実施の形態では、ストリーム再構成部によってマーカは除去されず、画像復号装置は、マーカが挿入された入れ換え済符号化ストリームに対して復号処理を並列に行う。
(5−2.構成)
次に、本実施の形態における画像処理装置の構成について説明する。
図28は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、入力された符号化ストリームに、輝度Y、色差Cb、色差Crおよび符号化情報を識別するためのマーカを挿入するストリーム変換部622と、画像復号装置650とを備える。なお、本実施の形態では、実施の形態1〜4と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
図29は、本実施の形態におけるストリーム変換部622の構成を示すブロック図である。ストリーム変換部622は、図29に示すとおり、可変長復号部606と、マーカ挿入部616と、マーカ挿入済ストリームメモリ722と、輝度Y用可変長符号化部617と、色差Cb用可変長符号化部618と、色差Cr用可変長符号化部619と、符号化情報用可変長符号化部620と、輝度Yストリーム用メモリ718と、色差Cbストリーム用メモリ719と、色差Crストリーム用メモリ720と、符号化情報ストリーム用メモリ721と、ストリーム再構成部623とを備える。
つまり、本実施の形態におけるストリーム変換部622は、実施の形態4のストリーム変換部615に含まれる構成要素のうち、ストリーム再構成部621を除く全ての構成要素を備え、そのストリーム再構成部621の代わりに他のストリーム再構成部623を備えている。このストリーム再構成部623は、ストリーム再構成部621と同様、各メモリ718〜721から情報(係数情報または符号化情報)を取り出すが、その情報だけでなく、その情報に対応するマーカも取り出す。そして、ストリーム再構成部623は、例えば、図27の(b)に示すような、複数のマーカと複数の情報とを含むマーカ挿入済符号化ストリームを生成する。
画像復号装置650は、ビットストリームバッファ520と、可変長復号部640と、逆量子化部641と、動きベクトル算出部642と、動き補償部643と、逆周波数変換部644と、イントラ予測部645と、制御部501と、フレームメモリ503と、再構成部511と、デブロックフィルタ部512とを備える。
ビットストリームバッファ520は、ストリーム変換部622から出力されるマーカ挿入済符号化ストリームを保持する。可変長復号部640は、ビットストリームバッファ520からマーカ挿入済符号化ストリームを読み出し、そのマーカ挿入済符号化ストリームに含まれる輝度Yと、色差Cbおよび色差Crとに対する可変長復号を並列に行う。逆量子化部641は、輝度Yの可変長復号結果(量子化値)と、色差Cbおよび色差Crの可変長復号結果とに対する逆量子化を並列に行う。逆周波数変換部644は、輝度Yの逆量子化結果(周波数係数)と、色差Cbおよび色差Crの逆量子化結果とに対する逆周波数変換を並列に行う。
動きベクトル算出部642は、マーカ挿入済符号化ストリームに含まれる輝度Yと、色差Cbおよび色差Crとに対する動きベクトルの算出を並列に行う。動き補償部643は、輝度Yと、色差Cbおよび色差Crとに対する動き補償を並列に行う。イントラ予測部645は、輝度Yと、色差Cbおよび色差Crとに対するイントラ予測を逐次行う。
つまり、本実施の形態の画像復号装置650では、可変長復号部640、逆量子化部641、逆周波数変換部644、動きベクトル算出部642、および動き補償部643のそれぞれが、輝度Yと、色差Cbおよび色差Crとに対して並列に処理を実行する点が、実施の形態2〜4の画像復号装置513aと異なる。
図30は、画像復号装置650における可変長復号部640、逆量子化部641、逆周波数変換部644、動きベクトル算出部642および動き補償部643の構成を示す図である。可変長復号部640は、輝度可変長復号部624と色差可変長復号部625とを備える。逆量子化部641は、輝度逆量子化部626と色差逆量子化部627とを備える。逆周波数変換部644は、輝度逆周波数変換部628と、色差逆周波数変換部629と、輝度用メモリ727と、色差用メモリ728と、係数再構成部630とを備える。動きベクトル算出部642は、輝度動きベクトル算出部631と色差動きベクトル算出部632とを備える。動き補償部643は、輝度動き補償部633と、色差動き補償部634と、動き補償再構成部635とを備える。
図31は、画像復号装置650におけるイントラ予測部645の構成を示す図である。イントラ予測部645は、図31に示すとおり、輝度イントラ予測部636と、イントラ予測画像メモリ729と、色差イントラ予測部637とを備える。
なお、各処理部間は、それぞれメモリを介して接続されている。つまり、可変長復号部640と逆量子化部641とは、輝度用メモリ723および色差用メモリ724を介して接続されている。さらに、逆量子化部641と逆周波数変換部644とは、輝度用メモリ725および色差用メモリ726を介して接続されている、なお、これらのメモリ723〜726は画像復号装置650に備えられている。
(5−3.動作)
次に、図28に示した画像処理装置の動作を説明する。なお、符号化ストリーム(可変長復号ストリーム)では、図27の(a)に示すように、複数の係数情報は、輝度Y0、輝度Y1、輝度Y2、輝度Y3、色差Cb0、色差Cb1、色差Cb2、色差Cb3、色差Cr0、色差Cr1、色差Cr2、色差Cr3の順に配置されている。
まず、ストリーム変換部622の動作を、図29を用いて説明する。実施の形態4と同様に、ストリーム変換部622のマーカ挿入部616は、輝度Yの係数情報と、色差Cbの係数情報と、色差Crの係数情報と、その他の符号化情報とを識別して、それぞれに対してマーカを挿入する。さらに、可変長符号化部617〜620はそれぞれ、上述の各情報に対して並列に可変長符号化を行う。その結果、それらの情報に対する可変長符号化によって生成されたストリームはそれぞれ、輝度Yストリーム用メモリ718と、色差Cbストリーム用メモリ719と、色差Crストリーム用メモリ720と、符号化情報ストリーム用メモリ721のうち、そのストリームに対応するメモリに出力される。
次に、ストリーム再構成部623は、マーカに基づいて、輝度Yストリーム、色差Cbストリーム、色差Crストリーム、および符号化情報ストリームを、それぞれ輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、および符号化情報ストリーム用メモリ721から取り出す。つまり、ストリーム再構成部623は、上記各メモリから各ストリームを取り出すときには、それぞれのストリームに含まれる情報(係数情報または符号化情報)を、それらの情報に対して挿入されたマーカに基づいて、それぞれ順次選択して取り出す。そして、ストリーム再構成部621は、情報が取り出される度に、取り出された係数情報または符号化情報を、その直前に取り出された係数情報または符号化情報に繋げることによって、マーカ挿入済符号化ストリームを生成する。この際、ストリーム再構成部623は、マーカ挿入済符号化ストリーム中の符号化情報の位置が、元の符号化ストリーム中の位置と同じ位置になるように、つまり、元の符号化ストリーム中の順序どおりに、符号化情報を取り出す。また、ストリーム再構成部623は、上述のそれぞれのストリームに含まれる係数情報を図11に示したフローに従って取り出す。このような取り出し方を行うことによって、上述のマーカ挿入済符号化ストリームが生成される。
ただし、本実施の形態のストリーム再構成部623は、情報(係数情報または符号化情報)を取り出すときには、その情報に対して挿入されているマーカもその情報とともに取り出す。つまり、実施の形態4では、ストリーム再構成部から出力されるストリームでは、マーカが取り除かれていたが、本実施の形態ではマーカがある。
これにより、マーカ挿入済符号化ストリームでは、複数のマーカと複数の係数情報とが、輝度Y0のマーカ、輝度Y0、色差Cb0のマーカ、色差Cb0、色差Cr0のマーカ、色差Cr0、輝度Y1のマーカ、輝度Y1、色差Cb1のマーカ、色差Cb1、色差Cr1のマーカ、色差Cr1、輝度Y2のマーカ、輝度Y2、色差Cb2のマーカ、色差Cb2、色差Cr2のマーカ、色差Cr2、輝度Y3のマーカ、輝度Y3、色差Cb3のマーカ、色差Cb3、色差Cr3のマーカ、色差Cr3の順に配置されている。そして、このようなマーカ挿入済符号化ストリームがビットストリームバッファ520へ出力される。
次に、画像復号装置650の動作を説明する。まず、可変長復号部640と、逆量子化部641と、逆周波数変換部644と、動きベクトル算出部642と、動き補償部643の動作を、図30を用いて説明する。可変長復号部640と、逆量子化部641と、逆周波数変換部644とは、輝度および色差のそれぞれに対する処理部を持つ。輝度用の処理部のそれぞれは、実施の形態1に示す可変長復号、逆量子化、および逆周波数変換を、輝度に対して実行し、色差用の処理部のそれぞれは、実施の形態1に示す可変長復号、逆量子化、および逆周波数変換を、色差に対して実行する。そして、輝度用の処理部と色差用の処理部は並列に処理を実行する。
具体的には、可変長復号部640では、輝度可変長復号部624がマーカ挿入済符号化ストリーム内の輝度の係数情報に対して可変長符号化を行い、その可変長符号化された係数情報(輝度の量子化値)を輝度用メモリ723に格納する。そして、輝度可変長復号部624による処理と並行して、色差可変長復号部625がマーカ挿入済符号化ストリーム内の色差の係数情報に対して可変長符号化を行い、その可変長符号化された係数情報(色差の量子化値)を色差用メモリ724に格納する。
逆量子化部641では、輝度逆量子化部626が、輝度用メモリ723から輝度の量子化値である係数情報を取得して逆量子化し、その逆量子化された係数情報(輝度の周波数係数)を輝度用メモリ725に格納する。そして、輝度逆量子化部626による処理と並行して、色差逆量子化部627が、色差用メモリ724から色差の量子化値である係数情報を取得して逆量子化し、その逆量子化された係数情報(色差の周波数係数)を色差用メモリ726に格納する。
逆周波数変換部644では、輝度逆周波数変換部628が、輝度用メモリ725から輝度の周波数係数である係数情報を取得して逆周波数変換し、その逆周波数変換された係数情報(輝度の画素値)を輝度用メモリ727に格納する。そして、輝度逆周波数変換部628による処理と並行して、色差逆周波数変換部629が、色差用メモリ726から色差の周波数係数である係数情報を取得して逆周波数変換し、その逆周波数変換された係数情報(色差の画素値)を色差用メモリ728に格納する。
次に、係数再構成部630は、図11のフローにしたがって、輝度用メモリ727および色差用メモリ728から、輝度および色差の画素値である係数情報を取り出す。この際、係数再構成部630は、ストリーム変換部622で挿入されたマーカを取り除く。これにより、以降の処理は図10の(b)に示す単位で実行される。
動きベクトル算出部642では、輝度動きベクトル算出部631が輝度の係数情報に対する動きベクトルを実施の形態1と同様に算出する。そして、輝度動きベクトル算出部631による処理と並行して、色差動きベクトル算出部632が色差の係数情報に対する動きベクトルを実施の形態1と同様に算出する。
動き補償部643では、輝度動き補償部633が輝度の係数情報に対する動き補償を実施の形態1と同様に行う。そして、輝度動き補償部633による処理と並行して、色差動き補償部634が色差の係数情報に対する動き補償を実施の形態1と同様に行う。動き補償再構成部635は、図10の(b)に示す係数情報の順と対応する順に、輝度動き補償部633および色差動き補償部634の動き補償によって生成された情報(動き補償情報)を並べ換える。
次に、イントラ予測部645の動作を、図31を用いて説明する。輝度イントラ予測部636は、再構成部511から出力される復号画像と、イントラ予測に必要なパラメータとを用いて、輝度画像のイントラ予測を行い、その予測結果であるイントラ予測画像をイントラ予測画像メモリ729に出力する。次に、色差イントラ予測部637は、イントラ予測画像メモリ729に格納されている輝度のイントラ予測画像を参照し、色差画像のイントラ予測を行う。
このような本実施の形態では、第1の処理部は例えば可変長復号部606である。また、入れ換え部は、例えば、ストリーム変換部622のうちの可変長復号部606以外の構成要素群、つまり、マーカ挿入部616、各可変長符号化部617〜620、各メモリ718〜722、およびストリーム再構成部623からなる。また、第2の処理部は例えば画像復号装置650である。
つまり、本実施の形態では、ストリーム再構成部623は、複数の色成分のそれぞれに対して付加されたマーカとともに複数の色成分を順次読み出すことによって、複数の色成分のそれぞれに対してマーカが付加された入れ換え済符号化ストリームを生成する。そして、第2の処理部である画像復号装置636は、可変長復号部640と、逆量子化部641と、逆周波数変換部と、成分再構成部とを備える。可変長復号部640は、入れ換え済符号化ストリームに含まれる複数の前記マーカに基づいて、色成分の種類ごとに、その種類に属する複数の色成分に対する可変長復号を行う。逆量子化部641は、色成分の種類ごとに、その種類に属する可変長復号された複数の色成分に対する逆量子化を行う。逆周波数変換部は、例えば輝度逆周波数変換部628および色差逆周波数変換部629からなり、色成分の種類ごとに、その種類に属する逆量子化された複数の色成分に対する逆周波数変換を行うことによって、複数のマーカを含む色成分データを生成する。また、成分再構成部は、例えば係数再構成部630であり、色成分の種類ごとに生成された色成分データを、色成分データに含まれる複数のマーカに基づいて識別し、入れ換え部によって入れ換えられた順序どおりに、逆周波数変換された複数の色成分が配列するように、複数の色成分を再構成する。ここで、上述の可変長復号部640、逆量子化部641、および逆周波数変換部628,629はそれぞれ、色成分の種類のそれぞれに対する処理を並列に行う。
(5−4.効果)
本実施の形態では、実施の形態4と同様、符号化情報、輝度Yの係数情報、色差Cbの係数情報、色差Crの係数情報を識別するためのマーカに基づいて、ストリーム変換部における可変長符号化処理を並列実行することで、メモリの容量の削減と、ストリーム変換部および画像処理装置を高性能化することができる。さらに、本実施の形態では、画像復号装置650における可変長復号、逆量子化、逆周波数変換、動きベクトルの算出、および動き補償のそれぞれの処理において、輝度に対する処理と、色差別に対する処理とを並列に実行することで、処理効率および性能を向上することができる。また、再構成部511までに、輝度の係数情報と色差の係数情報との同期を取ることで、輝度と色差の処理に依存関係があるイントラ予測を適切に処理することが可能となる。
(なお書き)
なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
また、フレームメモリ503、輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、符号化情報ストリーム用メモリ721、マーカ挿入済ストリームメモリ722、輝度用メモリ723、色差用メモリ724、輝度用メモリ725、色差用メモリ726、輝度用メモリ727、色差用メモリ728、およびイントラ予測画像メモリ729は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
また、ストリーム変換部622において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、ストリーム変換部622は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
また、符号化情報を、輝度Y、色差Cb、および色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類し、マーカを挿入してもよい。
また、上述の各マーカは、それぞれの情報が識別可能な値であればよく、規格上利用されていない数値列や、情報のビット幅を示すもの等であってもよい。
また、輝度に対する処理と色差に対する処理とを分離して並列に実行したが、この粒度を限定するものではない。例えば、輝度Y、色差Cbおよび色差Crを分離して並列に実行してもよい。あるいは、輝度Y0、輝度Y1、輝度Y2、輝度Y3、色差Cb0、色差Cb1、色差Cb2、色差Cb3、色差Cr0、色差Cr1、色差Cr2、および色差Cr3を分離して、並列に実行してもよい。
また、本実施の形態では、3つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbに対する可変長符号化と、色差Crに対する可変長符号化)を並列に行うことなく、2つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbおよび色差Crに対する可変長符号化)を並列に行ってもよい。この場合、マーカ挿入部616は、複数の復号済データのうち、色差Cbおよび色差Crのそれぞれの係数情報(復号済データ)に対して共通のマーカを挿入してもよい。
なお、上記実施の形態2〜5では、画像復号装置、ストリーム変換部およびビットストリームバッファを含む装置を画像処理装置と称したが、この画像処理装置を画像復号装置と称して扱ってもよい。
また、上記実施の形態1〜5では、図1Aまたは図10の(a)に示すように、64x64画素サイズのCU内で、32x32画素サイズの輝度Yが4つ連続して並び、16x16画素サイズの色差Cbが4つ連続して並び、16x16画素サイズの色差Crが4つ連続して並んでいる符号化ストリームに対して、上述のような係数情報の入れ換えを行う。しかし、入れ換えの対象となる符号化ストリームは、このような構成のものに限らない。例えば、64x64画素サイズのCU内であっても、図10の(b)に示すように、32x32画素サイズの輝度Y、16x16画素サイズの色差Cb、および16x16画素サイズの色差Crを含む処理単位(TU)が4つ連続して並んでいる符号化ストリームに対しても、上述のような係数情報の入れ換えを行ってもよい。この場合、上述の処理単位(TU)内において係数情報の入れ換えが行われる。このような入れ換えは、例えば、図6に示す逆周波数変換部506による処理と、画像再構成部603による処理との間で行われる。
(実施の形態6)
上記各実施の形態で示した画像処理化方法および画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらに、ここで、上記各実施の形態で示した画像処理方法および画像復号方法の応用例とそれを用いたシステムを説明する。
図32は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107〜ex110が設置されている。
このコンテンツ供給システムex100では、電話網ex104および基地局ex107〜ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114などの各機器が相互に接続される。また、各機器が、インターネットサービスプロバイダex102を介して、インターネットex101に接続されている。
しかし、コンテンツ供給システムex100は、図32のような構成に限定されず、いずれかの要素を組み合せて接続するようにしてもよい。また、固定無線局である基地局ex107〜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等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
なお、撮影したデータの符号化処理は、カメラ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では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利および設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図33に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも画像処理装置または画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または衛星ex202に伝送される。このビットストリームは、上記各実施の形態で説明した画像処理方法により処理される符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
また、記録媒体であるCDおよびDVD等の記録メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像復号装置または画像処理装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または、記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した画像復号装置または画像処理装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置およびシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に画像復号装置を組み込んでもよい。
図34は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)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は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302および多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等および記録メディア等から音声データおよび映像データを取得する以外に、マイクおよびカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから符号化ビットストリームを読み出す、または、書き込む場合には、上記復号処理または符号化処理はテレビex300とリーダ/レコーダex218とのいずれで行ってもよいし、テレビex300とリーダ/レコーダex218とが互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図35に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図36に光ディスクである記録メディア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の構成は例えば図34に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111および携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器および復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
このように、上記各実施の形態で示した画像処理方法あるいは画像復号方法を上述したいずれの機器またはシステムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態7)
本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現する。実現した形態を図37に示す。ビットストリームバッファ502およびフレームメモリ503をDRAM上に実現し、その他の回路やメモリをLSI上に構成している。
これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話、テレビ、デジタルビデオレコーダー、デジタルビデオカメラおよびカーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶、PDP(プラズマディスプレイパネル)および有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
また、本実施の形態におけるLSIは、システムLSIはDRAM(Dynamic Random Access Memory)と連携することにより、符号化処理または復号処理を行ってもよい。また、本実施の形態におけるLSIは、DRAMではなく、eDRAM(embeded DRAM)、SRAM(Static Random Access Memory)、または、ハードディスクなど他の記憶装置と連携しても構わない。
(実施の形態8)
上記各実施の形態で示した画像処理装置、画像復号装置、画像処理方法および画像復号方法は、典型的には集積回路であるLSIで実現される。一例として、図38に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex502〜ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば、符号化処理を行う場合には、LSIex500は、AV I/Oex509によりマイクex117およびカメラex113等からAV信号の入力を受け付ける。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。蓄積したデータは、処理量および処理速度に応じて適宜複数回に分けるなどされ、信号処理部ex507に送られる。信号処理部ex507は、音声信号の符号化および/または映像信号の符号化を行う。ここで映像信号の符号化処理は、上記実施の形態で説明した符号化処理である。信号処理部ex507では、さらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex504から外部に出力する。この出力されたビットストリームは、基地局ex107に向けて送信されたり、または、記録メディアex215に書き込まれたりする。
また、例えば、復号処理を行う場合には、LSIex500は、マイコン(マイクロコンピュータ)ex502の制御に基づいて、ストリームI/Oex504によって、基地局ex107から得られた符号化データ、または、記録メディアex215から読み出して得た符号化データを一旦メモリex511等に蓄積する。マイコンex502の制御に基づいて、蓄積したデータは処理量および処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声データの復号および/または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex511等に蓄積するとよい。復号された出力信号はメモリex511等を適宜介しながら、AVI/Oex509からモニタex219等に出力される。メモリex511にアクセスする際にはメモリコントローラex503を介する構成である。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
なお、本発明の一態様に係る画像処理装置について、上記各実施の形態を用いて説明したが、この画像処理装置はこれらに限定されるものではない。
図39Aは、本発明の一態様に係る画像処理装置の構成を示すブロック図である。
つまり、本発明の一態様に係る画像処理装置10は、画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理部1と、第1の処理部1から出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換え部2と、入れ換え部2から出力された複数の成分に対して、第2の処理単位ごとに、第2の処理を行う第2の処理部3とを備える。
図39Bは、画像処理装置10による画像処理方法を示すフローチャートである。
画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理方法は、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理ステップ(S1)と、第1の処理ステップ(S1)で出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換えステップ(S2)と、入れ換えステップ(S2)で出力された複数の成分に対して、第2の処理単位ごとに、第2の処理を行う第2の処理ステップ(S3)と、を含む。
このような構成または処理手順であっても、複数の成分の順序が入れ換えられるため、上記各実施の形態と同様の効果を奏すことができる。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の画像処理装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理ステップ(S1)と、第1の処理ステップ(S1)で出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換えステップ(S2)と、入れ換えステップ(S2)で出力された複数の成分に対して、第2の処理単位ごとに、第2の処理を行う第2の処理ステップ(S3)と、を実行させる。