JPWO2012046435A1 - 画像処理装置、画像符号化方法および画像処理方法 - Google Patents

画像処理装置、画像符号化方法および画像処理方法 Download PDF

Info

Publication number
JPWO2012046435A1
JPWO2012046435A1 JP2012537581A JP2012537581A JPWO2012046435A1 JP WO2012046435 A1 JPWO2012046435 A1 JP WO2012046435A1 JP 2012537581 A JP2012537581 A JP 2012537581A JP 2012537581 A JP2012537581 A JP 2012537581A JP WO2012046435 A1 JPWO2012046435 A1 JP WO2012046435A1
Authority
JP
Japan
Prior art keywords
processing
unit
image
encoding
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012537581A
Other languages
English (en)
Inventor
田中 健
健 田中
博史 天野
博史 天野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=45927441&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPWO2012046435(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2012046435A1 publication Critical patent/JPWO2012046435A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、パイプライン方式で複数の処理を効率的に施す画像処理装置を提供する。画像処理装置は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理装置であって、それぞれが複数の第1処理のいずれかを実行することによって、符号化ストリームに対してパイプライン方式で複数の第1処理を施す複数の第1処理部(2111)と、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部(2111)を制御する制御部(2110)とを備える。

Description

本発明は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の処理を施す画像処理装置に関する。
動画像を符号化する画像符号化装置は、動画像を構成する各ピクチャを16x16画素でそれぞれが構成される複数のマクロブロック(Macroblock、略してMBと呼ぶこともある)に分割する。そして、画像符号化装置は、ラスタースキャン順に各マクロブロックを符号化する。画像符号化装置は、動画像を符号化し圧縮することにより、符号化ストリームを生成する。画像復号装置は、この符号化ストリームをラスタースキャン順でマクロブロック毎に復号し、元の動画像の各ピクチャを再生する。
従来の画像符号化方式の1つとしてITU−T H.264規格がある(例えば、非特許文献1を参照)。画像復号装置は、H.264規格で符号化された画像を復号するため、まず、符号化ストリームを読み込む。そして、画像復号装置は、各種ヘッダ情報を復号後、可変長復号を行う。画像復号装置は、可変長復号により得られた係数情報を逆量子化して、逆周波数変換する。これにより、差分画像が生成される。
次に、画像復号装置は、可変長復号により得られたマクロブロックタイプに応じて、面内予測または動き補償を行う。これにより、画像復号装置は、予測画像を生成する。その後、画像復号装置は、予測画像に差分画像を加算することにより、再構成処理を行う。そして、画像復号装置は、再構成画像にデブロックフィルタ処理を行うことで復号対象画像を復号する。
このようにして、画像復号装置は、可変長復号処理からデブロックフィルタ処理までをマクロブロック毎に行うことで、符号化された画像を復号していく。この復号処理を高速化する手法として、マクロブロック単位のパイプライン処理によって復号処理を実行する手法が一般に用いられている(例えば、特許文献1を参照)。マクロブロック単位のパイプライン処理では、可変長復号処理からデブロックフィルタ処理までの一連の処理がいくつかのステージに分割される。そして、各ステージの処理が並列に実行される。
図62は、先に説明した復号処理を5つのステージに分割した場合のパイプライン処理の例である。図62に示す例では、1つのマクロブロックに対して、第1ステージから第5ステージまでの処理が、順次行われる。そして、互いに異なる複数のマクロブロックに対して、第1ステージから第5ステージまでの処理が、同時に行われる。
第1ステージでは、画像復号装置は、符号化ストリームを可変長復号して、動きベクトルなどの符号化情報、および、各画素データに対応する係数情報を出力する。第2ステージでは、画像復号装置は、第1ステージで得られた係数情報に対して逆量子化および逆周波数変換を行い、差分画像を生成する。
第3ステージでは、画像復号装置は、可変長復号して得られたマクロブロックタイプに応じて、動き補償を行って予測画像を生成する。第4ステージでは、画像復号装置は、第3ステージで得られた動き補償の予測画像、および、第4ステージで行う面内予測処理の予測画像のいずれかと、第2ステージで得られた差分画像とを用いて、再構成処理を行う。第5ステージでは、画像復号装置は、デブロックフィルタ処理を行う。
このように、画像復号装置は、パイプライン処理を用いて、各ステージで異なる複数のマクロブロックを同時に処理する。これにより、画像復号装置は、並列処理を実現し、復号処理を高速化することができる。
この時、パイプライン処理のタイムスロット(TS)のサイクルは、最も処理サイクルが長いステージの処理サイクルによって決定される。そのため、あるステージの処理サイクルだけが長くなってしまうと、他のステージは、その最長ステージの処理が完了するまで次のマクロブロックの処理を開始できない状態となる。したがって、無駄な空きが発生してしまう。パイプライン処理を効率的に動作させるには、パイプライン処理を構成する各処理サイクルをできるだけ均等になるように構成することが重要である。
H.264規格に係る画像符号化装置は、先ほど述べた通り、16x16画素で構成されるマクロブロック単位で画像を符号化する。しかし、符号化の単位として16x16画素が、必ずしも最適とは限らない。一般に、画像の解像度が高くなるにつれて、隣接ブロック間の相関が高くなる。そのため、符号化の単位を大きくした方が、より圧縮効率を向上させることができる。
近年、4K2K(3840画素×2160画素)等のように、超高精細なディスプレイの開発が行われてきている。したがって、扱う画像の解像度がますます高くなっていくことが予想される。H.264規格に係る画像符号化装置は、このように画像の高解像度化が進むにつれて、これらの高解像度の画像を効率的に符号化することができなくなってきている。
一方、次世代の画像符号化規格として提案されている技術の中には、このような課題を解決する技術がある(非特許文献2)。この技術では、従来のH.264規格に対応する符号化単位ブロックのサイズが可変になる。そして、この技術に係る画像符号化装置は、従来の16x16画素よりも大きなブロックで画像を符号化することも可能であり、超高精細画像を適切に符号化することができる。
具体的には、非特許文献2では、符号化のデータ単位として、符号化ユニット(CU:Coding Unit)が定義されている。この符号化ユニットは、従来の符号化規格におけるマクロブロックと同様に、面内予測を行うイントラ予測と、動き補償を行うインター予測とを切り替えることが可能なデータ単位であり、符号化の最も基本的なブロックサイズとして規定されている。
この符号化ユニットのサイズは、4x4画素、8x8画素、16x16画素、32x32画素、64x64画素、および、128x128画素のいずれかである。最も大きな符号化ユニットは、最大符号化ユニット(LCU:Largest Coding Unit)と呼ばれる。
64x64画素の符号化ユニットには、4096画素のデータが含まれる。128x128画素の符号化ユニットには、16384画素のデータが含まれる。すなわち、128x128画素の符号化ユニットには、64x64画素の符号化ユニットの4倍のデータが含まれる。
図63は、128x128画素と64x64画素とで構成される複数の符号化ユニットの例を示す。非特許文献2において、さらに、周波数変換ユニット(TU:Transform Unit)が定義されている。周波数変換ユニットは、周波数変換のブロックサイズとして規定されている。具体的には、この周波数変換ユニットのサイズは、4x4画素、8x8画素、16x16画素、32x32画素、および、64x64画素のいずれかである。
また、さらに、面内予測またはインター予測のデータ単位として、予測ユニット(PU:Prediction Unit)が定義されている。予測ユニットは、符号化ユニットの内部において、128x128画素、64x128画素、128x64画素、または、64x64画素など、4x4画素以上の様々な矩形サイズから、選択される。
特開2005−295526号公報
Thomas Wiegand et al、"Overview of the H.264/AVC Video Coding Standard"、IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY、JULY 2003、PP.1−19 「Test Model Under Consideration(TMuC)」、[online]、Joint Collaborative Team on Video Coding(JCT−VC)、2010年4月15日、[2010年8月27日検索]、インターネット<URL:http://wftp3.itu.int/av−arch/jctvc−site/2010_04_A_Dresden/JCTVC−A205.zip>
以上のように、非特許文献2では、符号化ユニットすなわちマクロブロックのサイズを可変にすることにより符号化効率を向上させる技術が、述べられている。しかしながら、このような可変の符号化ユニットに対して、特許文献1で示されるパイプライン処理が適用された場合、符号化ユニットに含まれる画素数に比例して必要な処理量が増大する。また、処理サイクル数も同様に大きくなる。
すなわち、符号化ストリーム内に異なるサイズの符号化ユニットが混在している場合、パイプライン処理の各ステージの処理サイクルが、符号化ユニットのサイズによって大きく変動してしまう。そのため、小さい符号化ユニットを処理するステージでは、何も処理できない待ち時間が発生する。そして、パイプラインの処理効率が低下してしまう。つまり、可変のサイズの符号化ユニットは、画像復号装置の処理効率の低下を招く原因となってしまう。
例えば、図64には、5つのステージのパイプライン処理で符号化ストリームを復号する例が示されている。この例では、図63のように、CU0が128x128画素の符号化ユニットであり、次にCU1〜CU4がそれぞれ64x64画素の符号化ユニットである。この場合、CU0が、CU1〜CU4の4倍の画素数で構成される符号化ユニットであるため、CU0の処理サイクルが、他の符号化ユニットの処理サイクルの4倍になる。
そのため、第1ステージのCU1の処理が完了してから、第2ステージのCU0の処理が完了するまで、第1ステージにおいて空き時間が生じている。同様に、第2ステージのCU1の処理が完了してから、第3ステージのCU0の処理が完了するまで、第2ステージにおいて空き時間が生じている。また、第3ステージのCU1の処理が完了してから、第4ステージのCU0の処理が完了するまで、第3ステージにおいて空き時間が生じている。すなわち、それぞれのステージで、処理が行われない空き時間が生じている。
このように、符号化ユニットのサイズが変動すると、処理する画素データ量が増減する。符号化ストリームがパイプライン処理で復号される場合、画素データ量の大きい符号化ユニットによってパイプライン処理の単位時間が決定される。その結果、画素データ量の少ない符号化ユニットの処理後に空き時間が生じてしまう。したがって、処理効率および処理性能が低下する。
そこで、本発明は、画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、パイプライン方式で複数の処理を効率的に施す画像処理装置を提供することを目的とする。
上記課題を解決するため、本発明に係る画像処理装置は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理装置であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える。
これにより、複数の処理部は、ひとつのサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
また、前記複数の第1処理部は、前記符号化ストリームに対して、前記画像を復号するための前記複数の第1処理を施してもよい。
これにより、画像が効率的に復号される。
また、前記制御部は、前記符号化ストリームを構成する符号化単位ブロックを分割することにより、または、前記符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、前記符号化ストリームを前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の符号化単位ブロックから複数の処理単位ブロックが得られる。複数の処理単位ブロックは、それぞれがひとつのサイズで構成される。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、前記複数の第1処理単位ブロックのそれぞれに対して前記複数の第1処理のそれぞれが所定の期間で実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の処理単位ブロックに対して、タイムスロット毎に、順次、複数の処理が施される。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、それぞれが画面間予測と画面内予測との切り替え可能な最小単位である前記複数の符号化単位ブロックに前記画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる前記符号化ストリームを、前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、符号化効率が高くなるように符号化単位ブロックで符号化された画像が、処理効率が高くなるように処理単位ブロックで処理される。
また、前記制御部は、前記符号化ストリームを、最も大きい符号化単位ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の符号化単位ブロックが、ひとつの処理単位ブロックとして扱われる。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、前記符号化ストリームを、前記最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の処理部は、規格等で予め定められたサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、前記符号化ストリームを、最も大きい周波数変換ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率が向上する。
また、前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
また、前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、それぞれのサイズが前記第1サイズ以下である複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
また、前記制御部は、輝度情報と色差情報とが分割されるように、前記複数の第1処理単位ブロックを前記複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
これにより、輝度情報と色差情報とが別々に処理される。したがって、パイプライン処理が小さいサイズで実行され、動作効率が向上する。
また、前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割し、前記動き補償処理が第3処理単位ブロック毎に実行されるように、前記動き補償処理部を制御し、前記制御部は、前記輝度情報と前記色差情報とが1つの第3処理単位ブロックに含まれるように、前記複数の第1処理単位ブロックを前記複数の第3処理単位ブロックに分割してもよい。
これにより、動き補償処理において、輝度情報と色差情報とが一緒に処理される。したがって、動作の無駄が削減される。
また、前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、前記制御部は、前記動き補償処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記動き補償処理が第1処理単位ブロック毎に実行されるように、前記動き補償処理部を制御してもよい。
これにより、動き補償処理部と他の処理部との間で交換される情報量が、さらに低減される。したがって、回路規模の縮小が可能になる。
また、前記複数の第1処理部は、面内予測処理を実行する面内予測処理部を含み、前記制御部は、前記面内予測処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記面内予測処理が第1処理単位ブロック毎に実行されるように、前記面内予測処理部を制御してもよい。
これにより、面内予測処理部と他の処理部との間で交換される情報量が、さらに低減される。したがって、回路規模の縮小が可能になる。
また、前記複数の第1処理部は、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を実行するデブロックフィルタ処理部を含み、前記制御部は、前記画像が符号化される時に周波数変換処理が実行された順序に従って、前記デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、前記デブロックフィルタ処理部を制御してもよい。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
また、本発明に係る画像符号化方法は、画像を符号化する画像符号化方法であって、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、前記符号化処理が実行された前記画像に含まれるブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を、符号化単位ブロック毎とは異なる所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
これにより、デブロックフィルタ処理の処理サイクルが平坦化され、デブロックフィルタ処理が円滑に実行される。また、デブロックフィルタ処理に適したサイズでデブロックフィルタ処理が実行されるため、処理効率が向上する。
また、本発明に係る画像符号化方法は、画像を符号化する画像符号化方法であって、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、前記画像に対して前記符号化処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を符号化単位ブロック毎に実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
これにより、デブロックフィルタ処理と、前段の処理との間の空き時間が削減される。したがって、動作効率が向上する。また、典型的には、符号化側と復号側とで同じ順序が用いられる。したがって、復号側の動作効率も向上する。
また、本発明に係る画像符号化方法は、画像を符号化単位ブロック毎に符号化する画像符号化方法であって、前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、前記符号化単位ブロックに対して前記周波数変換処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を周波数変換ブロック毎に実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
また、本発明に係る画像符号化方法は、画像を符号化単位ブロック毎に符号化する画像符号化方法であって、前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、前記周波数変換処理が実行された前記符号化単位ブロックを符号化して、前記画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する符号化処理ステップとを含む画像符号化方法でもよい。
これにより、復号側でも、輝度情報および色差情報を分けることなく、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。したがって、動作効率が向上する。
また、本発明に係る画像処理方法は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理方法であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理ステップと、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理ステップを制御する制御ステップとを含む画像処理方法でもよい。
これにより、前記画像処理装置が画像処理方法として実現される。
また、本発明に係るプログラムは、前記画像処理方法に含まれるステップをコンピュータに実行させるためのプログラムでもよい。
これにより、前記画像処理方法がプログラムとして実現される。
また、本発明に係る集積回路は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す集積回路であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える集積回路でもよい。
これにより、前記画像処理装置が集積回路として実現される。
本発明により、画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、複数の処理がパイプライン方式で効率的に施される。
図1は、実施の形態1に係る画像復号装置の構成を示す構成図である。 図2は、実施の形態1に係る画像復号装置の可変長復号部と逆量子化部との接続を示す構成図である。 図3Aは、実施の形態1に係るシーケンスを示す図である。 図3Bは、実施の形態1に係るピクチャを示す図である。 図3Cは、実施の形態1に係る符号化ストリームを示す図である。 図4Aは、実施の形態1に係る符号化ユニットの第1構成例を示す図である。 図4Bは、実施の形態1に係る符号化ユニットの第2構成例を示す図である。 図5Aは、実施の形態1に係る周波数変換ユニットの第1構成例を示す図である。 図5Bは、実施の形態1に係る周波数変換ユニットの第2構成例を示す図である。 図6Aは、実施の形態1に係る符号化ユニットのヘッダを示す図である。 図6Bは、実施の形態1に係る予測ユニットを示す図である。 図7Aは、実施の形態1に係る動作の説明に用いられる複数の符号化ユニットの構成例を示す図である。 図7Bは、実施の形態1に係る動作の説明に用いられる複数の符号化ユニットの詳細を示す図である。 図8は、実施の形態1に係る画像復号装置の動作を示すフローチャートである。 図9は、実施の形態1に係る符号化ユニットの復号処理を示すフローチャートである。 図10は、実施の形態1に係る画像復号装置の動作を示すタイムチャートである。 図11は、実施の形態2に係る画像復号装置の動作を示すタイムチャートである。 図12は、実施の形態3に係る画像復号装置の構成を示す構成図である。 図13は、実施の形態3に係る動き補償部の構成を示す構成図である。 図14は、実施の形態3に係る面内予測部の構成を示す構成図である。 図15は、実施の形態3に係る動き補償部の動作を示すフローチャートである。 図16は、実施の形態3に係る予測ユニットと参照画像との関係を示す図である。 図17は、実施の形態3に係る分割ブロックの動き補償処理を示す図である。 図18は、実施の形態3に係る第1分割ブロックと参照画像との関係を示す図である。 図19は、実施の形態3に係る第2分割ブロックと参照画像との関係を示す図である。 図20は、実施の形態3に係る第3分割ブロックと参照画像との関係を示す図である。 図21は、実施の形態3に係る第4分割ブロックと参照画像との関係を示す図である。 図22は、実施の形態3に係る面内予測部の動作を示すフローチャートである。 図23は、実施の形態3に係る分割ブロックの面内予測処理を示す図である。 図24は、実施の形態3に係る画像復号装置の動作を示すタイムチャートである。 図25は、実施の形態1に係るデブロックフィルタ処理の順序の例を示す図である。 図26は、実施の形態4に係るデブロックフィルタ処理の順序の第1例を示す図である。 図27は、実施の形態4に係るデブロックフィルタ処理の順序の第2例を示す図である。 図28は、実施の形態4に係る画像復号装置の動作を示すタイムチャートである。 図29は、実施の形態5に係る画像復号装置の構成を示す構成図である。 図30は、実施の形態5に係る面内予測部の構成を示す構成図である。 図31は、実施の形態5に係る動作の説明に用いられる複数の符号化ユニットの構成例を示す図である。 図32は、実施の形態5に係る面内予測部の動作を示すフローチャートである。 図33は、実施の形態6に係る周波数変換ユニットの構成例を示す図である。 図34は、実施の形態6に係る画像復号装置の動作を示すタイムチャートである。 図35は、実施の形態6に係る可変長復号部の動作を示すフローチャートである。 図36は、実施の形態6に係る逆量子化部の動作を示すフローチャートである。 図37は、実施の形態7に係る画像復号装置の動作を示すタイムチャートである。 図38は、実施の形態8に係る画像処理装置の構成を示す構成図である。 図39は、実施の形態8に係る画像処理装置の動作を示すフローチャートである。 図40は、実施の形態9に係る画像処理装置の構成を示す構成図である。 図41は、実施の形態9に係る画像処理装置の動作を示すフローチャートである。 図42は、実施の形態10に係る画像処理装置の構成を示す構成図である。 図43は、実施の形態10に係る画像処理装置の動作を示すフローチャートである。 図44は、実施の形態11に係る画像処理装置の構成を示す構成図である。 図45は、実施の形態11に係る画像処理装置の動作を示すフローチャートである。 図46は、実施の形態12に係る画像処理装置の構成を示す構成図である。 図47は、実施の形態12に係る画像処理装置の動作を示すフローチャートである。 図48は、実施の形態13に係る画像符号化装置の構成を示す構成図である。 図49は、実施の形態13に係る画像符号化装置の動作を示すフローチャートである。 図50は、実施の形態14に係る画像符号化装置の構成を示す構成図である。 図51は、実施の形態14に係る画像符号化装置の動作を示すフローチャートである。 図52は、実施の形態15に係る画像符号化装置の構成を示す構成図である。 図53は、実施の形態15に係る画像符号化装置の動作を示すフローチャートである。 図54は、実施の形態15に係る周波数変換ユニットの構成例を示す図である。 図55は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。 図56は、デジタル放送用システムの全体構成図である。 図57は、テレビの構成例を示すブロック図である。 図58は、光ディスクである記録メディアに情報の読み書きを行う情報再生/記録部の構成例を示すブロック図である。 図59は、光ディスクである記録メディアの構造例を示す図である。 図60は、画像復号処理を実現する集積回路の構成例を示す構成図である。 図61は、画像復号処理および画像符号化処理を実現する集積回路の構成例を示す構成図である。 図62は、従来技術に係るパイプライン処理を示す説明図である。 図63は、従来技術に係る可変サイズのブロックを示す説明図である。 図64は、従来技術に係る可変サイズのブロックに対してパイプライン処理が適用された場合の動作を示す説明図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示す。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
また、128x128画素、および、64x64画素等の表現は、それぞれ、128画素x128画素、および、64画素x64画素等のサイズを意味する。
また、以下において、ブロック、データ単位および符号化ユニット(CU)等の表現は、それぞれ、まとまった領域を意味する。それらは、それぞれ、画像領域を意味する場合もある。あるいは、それらは、それぞれ、符号化ストリームにおけるデータ領域を意味する場合もある。
また、画像は、動画像、静止画像、動画像を構成する複数のピクチャ、1つのピクチャ、および、ピクチャの一部等のいずれでもよい。
(実施の形態1)
(1−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、最大符号化ユニット(LCU:Largest Coding Unit)のサイズで、複数の処理を行う。なお、最大符号化ユニットは、符号化ストリームを構成する複数の符号化ユニットのうち最も大きい符号化ユニットである。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、処理性能が向上する。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(1−2.構成)
次に、本実施の形態に係る画像復号装置の構成について説明する。
図1は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置は、制御部501、フレームメモリ502、再構成画像メモリ509、可変長復号部503、逆量子化部504、逆周波数変換部505、動き補償部506、面内予測部507、再構成部508およびデブロックフィルタ部510を備える。
制御部501は、全体を制御する。フレームメモリ502は、復号された画像データを記憶するためのメモリである。再構成画像メモリ509は、生成された再構成画像の一部を記憶するためのメモリである。可変長復号部503は、符号化ストリームを読み込み、可変長符号を復号する。逆量子化部504は、逆量子化を行う。逆周波数変換部505は、逆周波数変換を行う。
動き補償部506は、フレームメモリ502から参照画像を読み出して、動き補償を行い、予測画像を生成する。面内予測部507は、再構成画像メモリ509から参照画像を読み出して、面内予測(イントラ予測ともいう)を行い、予測画像を生成する。再構成部508は、差分画像と予測画像とを加算して再構成画像を生成し、その一部を再構成画像メモリ509に格納する。デブロックフィルタ部510は、再構成画像のブロックノイズを除去し、再構成画像を高画質化する。
図2は、可変長復号部503と逆量子化部504との接続を示す構成図である。図1と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態の可変長復号部503と逆量子化部504とは、係数を記憶するためのメモリ511を介してそれぞれが接続されるように、構成される。図2は、可変長復号部503と逆量子化部504との接続のみを示しているが、図1に示す各処理部の間は同様の構成で接続される。
以上が、本実施の形態に係る画像復号装置の構成についての説明である。
(1−3.動作)
次に、本実施の形態に係る画像復号装置の動作を説明する。本実施の形態に係る画像復号装置が復号する符号化ストリームは、符号化ユニット(CU)と、周波数変換ユニット(TU)と、予測ユニット(PU)とで構成される。
符号化ユニット(CU)は、128x128画素〜8x8画素のサイズで設定され、面内予測とインター予測との切り替え可能なデータ単位である。周波数変換ユニット(TU)は、符号化ユニット(CU)の内部で64x64画素〜4x4画素のサイズで設定される。予測ユニット(PU)は、符号化ユニット(CU)の内部で128x128画素〜4x4画素のサイズで設定され、面内予測のモード、または、インター予測の動きベクトルを有する。以下、図3A〜図6Bを用いて符号化ストリームの構成について説明する。
図3Aおよび図3Bは、本実施の形態に係る画像復号装置が復号する符号化ストリームの、階層的な構成を示している。図3Aに示すように、複数のピクチャをひとまとまりにしたものをシーケンスと呼ぶ。また、図3Bに示すように、各ピクチャはスライスに分割され、各スライスはさらに符号化ユニット(CU)に分割される。ピクチャはスライスに分割されない場合もある。
本実施の形態において、最大符号化ユニット(LCU)のサイズは、128x128画素である。また、128x128画素の符号化ユニット(CU)と、64x64画素の符号化ユニット(CU)とが混在している。
図3Cは、本実施の形態に係る符号化ストリームを示す図である。図3Aおよび図3Bに示されたデータが階層的に符号化されることにより、図3Cに示された符号化ストリームが得られる。
図3Cに示された符号化ストリームは、シーケンスを制御するシーケンスヘッダ、ピクチャを制御するピクチャヘッダ、スライスを制御するスライスヘッダ、および、符号化ユニットレイヤデータ(CUレイヤデータ)で構成される。H.264規格では、シーケンスヘッダをSPS(Sequence Parameter Set)、ピクチャヘッダをPPS(Picture Parameter Set)と呼んでいる。
次に、本実施の形態の説明に使用する符号化ユニットと符号化ストリームの構成について、図4Aおよび図4Bを用いて説明する。符号化ストリームは、CU分割フラグとCUデータで構成される。このCU分割フラグは、「1」の場合、ブロックを4分割することを示し、「0」の場合、ブロックを4分割しないことを示す。図4Aのように、128x128画素の符号化ユニットの場合、ブロックは分割されない。すなわち、CU分割フラグは「0」である。
図4Bに示すように64x64画素の4つの符号化ユニットの場合、最初のCU分割フラグは「1」である。この最初のCU分割フラグにより、128x128画素のブロックが少なくとも64x64画素の4つのブロックに分割されることが示される。そして、64x64画素の4つのブロックのそれぞれは分割されないため、後続のCU分割フラグは、「0」である。このようにして、符号化ユニットのサイズは、CU分割フラグによって、128x128画素から4x4画素までのいずれかに特定される。
図5Aおよび図5Bは、それぞれ、本実施の形態に係る周波数変換ユニットの構成例を示す。各符号化ユニットのCUデータは、さらに、CUヘッダ、TU分割フラグ、係数情報で構成される。CUヘッダについては後述する。TU分割フラグは、符号化ユニットの中で周波数変換ユニットのサイズを示し、CU分割フラグと同様に、階層的にそのサイズを4分割するか否かを示す。
図5Aは、128x128画素の符号化ユニットが、64x64画素の4つの周波数変換ユニットで構成される場合の例を示す。128x128画素の符号化ユニットの場合、周波数変換ユニットは最大が64x64画素であるので、必ず4分割される。図5Aの場合、それぞれの64x64画素のブロックは分割されない。そのため、TU分割フラグは、全て「0」である。
図5Bは、128x128画素の符号化ユニットが、64x64画素の3つの周波数変換ユニット、および、32x32画素の4つの周波数変換ユニットで構成される例を示す。この場合、「1」の値を有するTU分割フラグが存在する。
図5Aおよび図5Bの各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれている。つまり、符号化ストリームにおいて、輝度データおよび色差データの両方を含む係数情報が周波数変換ユニット毎にまとめられている。
次に、CUヘッダについて説明する。図6Aに示すように、CUヘッダは、CUタイプを含み、さらに、動きベクトルまたは面内予測モードを含む。CUタイプによって、予測ユニットのサイズが決定される。図6Bは、128x128画素、64x128画素、128x64画素、および、64x64画素の予測ユニットを示す。予測ユニットのサイズは、4x4画素以上のサイズから選択可能である。また、予測ユニットの形状は、長方形でもよい。予測ユニット毎に動きベクトルまたは面内予測モードが指定される。
次に、本実施の形態に係る画像復号装置の動作を具体的に説明する。図7Aおよび図7Bは、動作の説明に用いられる複数の符号化ユニットの構成例を示す。図7Aに示された8つの符号化ユニット(CU0〜CU7)が動作の説明のために用いられる。
図7Bに示すように、CU0、CU5〜CU7は、128x128画素で構成される符号化ユニットである。CU1〜CU4は、64x64画素で構成される符号化ユニットである。CU4の周波数変換ユニットのサイズは32x32画素である。他の周波数変換ユニットのサイズは全て64x64画素である。CU0の予測ユニットのサイズは、128x128画素であり、CU1〜CU4の予測ユニットのサイズは、64x64画素であり、CU5〜CU7の予測ユニットのサイズは、128x128画素である。
次に、図8に示すフローチャートを用いて、図1に示した画像復号装置の動作を説明する。図8は、符号化ストリームに含まれる1シーケンスの復号動作を示すフローチャートである。図8に示すように、画像復号装置は、まず、シーケンスヘッダを復号する(S901)。その際、可変長復号部503は、制御部501の制御に基づいて、符号化ストリームを復号する。次に、画像復号装置は、同様に、ピクチャヘッダを復号し(S902)、スライスヘッダを復号する(S903)。
次に、画像復号装置は、符号化ユニットを復号する(S904)。符号化ユニットの復号については後で詳しく説明する。画像復号装置は、符号化ユニットの復号後、復号された符号化ユニットがスライス最後の符号化ユニットであるか否かを判定する(S905)。そして、復号された符号化ユニットがスライス最後の符号化ユニットでない場合、再度、画像復号装置は、次の符号化ユニットを復号する(S904)。
さらに、画像復号装置は、復号された符号化ユニットを含むスライスがピクチャ最後のスライスであるか否かを判定する(S906)。そして、ピクチャ最後のスライスでない場合、画像復号装置は、再度、スライスヘッダを復号する(S903)。
さらに、画像復号装置は、復号された符号化ユニットを含むピクチャがシーケンス最後のピクチャであるか否かを判定する(S907)。そして、シーケンス最後のピクチャでない場合、画像復号装置は、再度、ピクチャヘッダを復号する(S902)。画像復号装置は、シーケンスの全てのピクチャの復号後、一連の復号動作を終了する。
次に、図9に示すフローチャートを用いて、図8の符号化ユニットの復号(S904)の動作を説明する。図9は、1つの符号化ユニットの復号動作を示すフローチャートである。
まず、可変長復号部503は、入力された符号化ストリームに含まれる処理対象の符号化ユニットについて、可変長復号を行う(S1001)。可変長復号処理(S1001)では、可変長復号部503は、符号化ユニットタイプ、面内予測(イントラ予測)モード、動きベクトル情報および量子化パラメータなどの符号化情報を出力し、各画素データに対応する係数情報を出力する。符号化情報は、制御部501に出力され、その後、各処理部に入力される。係数情報は、次の逆量子化部504に出力される。次に、逆量子化部504は、逆量子化処理を行う(S1002)。その後、逆周波数変換部505は、逆周波数変換を行って差分画像を生成する(S1003)。
次に、制御部501は、処理対象の符号化ユニットにインター予測が用いられるか、面内予測が用いられるかの判定を行う(S1004)。インター予測が用いられる場合、制御部501により動き補償部506が起動し、動き補償部506が1/2画素精度または1/4画素精度等の予測画像を生成する(S1005)。一方、インター予測が用いられない場合、すなわち、面内予測が用いられる場合、制御部501により面内予測部507が起動し、面内予測部507が面内予測の処理を行い、予測画像を生成する(S1006)。
再構成部508は、動き補償部506または面内予測部507が出力する予測画像と、逆周波数変換部505が出力する差分画像とを加算することにより、再構成画像を生成する(S1007)。
生成された再構成画像は、デブロックフィルタ部510に入力される。同時に、面内予測で用いられる部分は、再構成画像メモリ509に格納される。最後に、デブロックフィルタ部510は、得られた再構成画像に対して、ブロックノイズを低減するためのデブロックフィルタ処理を行う。そして、デブロックフィルタ部510は、フレームメモリ502に結果を格納する(S1008)。以上で、符号化ユニットの復号動作を終了する。
ここで、図9に示すフローチャートに示す各処理を、図9の点線で示すように複数のステージに分割する。画像復号装置は、これらの第1ステージから第5ステージまでの複数のステージにおいて、ステージ毎にそれぞれ異なる複数の最大符号化ユニットに対して、複数の処理を同時に行う。これにより、並列処理が実現され、性能が向上する。このような処理をパイプライン処理と呼ぶ。
図9の例では、第1ステージは、可変長復号処理(S1001)を含む。第2ステージは、逆量子化処理(S1002)と逆周波数変換処理(S1003)とを含む。第3ステージは、動き補償処理(S1005)を含む。第4ステージは、面内予測処理(S1006)と再構成処理(S1007)とを含む。第5ステージは、デブロックフィルタ処理(S1008)を含む。
これらの複数のステージに分割された複数の処理が、ステージ毎に互いに異なる複数の最大符号化ユニットに対して、パイプライン方式で実行される。本実施の形態に係る画像復号装置に含まれる各処理部は、1つのステージにおいて、最大符号化ユニット内の全ての符号化ユニットに対して処理を行う。
つまり、128x128画素の最大符号化ユニット内に128x128画素の1つの符号化ユニットしかない場合、各処理部は、1つのステージにおいて、1つの符号化ユニットの処理を行う。128x128画素の最大符号化ユニット内に64x64画素の4つの符号化ユニットがある場合、各処理部は、1つのステージにおいて、4つの符号化ユニットの全てに対して処理を行う。
図10は、本実施の形態に係る画像復号装置の時系列の動作を示す図である。図10は、図9のように複数の処理が複数のステージに分割され、かつ、複数の符号化ユニットが図7Aのように構成されている場合の動作を示す。
TS=0では、CU0に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=1では、CU0に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われると同時に、CU1〜CU4に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0に対して第3ステージの動き補償処理(S1005)が行われ、CU1〜CU4に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU5に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=3では、CU0に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われ、CU1〜CU4に対して第3ステージの動き補償処理(S1005)が行われる。また、同時に、CU5に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU6に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=4では、CU0に対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU1〜4に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われる。また、同時に、CU5に対して第3ステージの動き補償処理(S1005)が行われ、CU6に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU7に対して第1ステージの可変長復号処理(S1001)が行われる。この結果、CU0の復号処理が全て完了する。
TS=5では、CU1〜CU4に対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU5に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われる。また、同時に、CU6に対して第3ステージの動き補償処理(S1005)が行われ、CU7に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU8に対して第1ステージの可変長復号処理(S1001)が行われる。この結果、CU1〜CU4の復号処理が全て完了する。
ここで、図10のTS=5の第5ステージのデブロックフィルタ処理(S1008)について、CU1〜CU4が分けて記載されていない。これは次のような理由による。
本実施の形態に係るデブロックフィルタ処理は、図25に示す番号の順序で実行される。具体的には、垂直の境界に対して先にデブロックフィルタ処理が行われ、次に水平の境界に対してデブロックフィルタ処理が行われる。
従って、CU1、CU2、CU3、CU4の順ではなく、CU1〜CU4の全ての垂直境界に対してデブロックフィルタ処理が実行された後に、CU1〜CU4の全ての水平境界に対してデブロックフィルタ処理が実行される。
TS=6以降は、TS=5までと同様であるので説明を省略する。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0の可変長復号処理(S1001)が行われる。また、TS=1において、CU0の逆量子化処理(S1002)が行われ、同時に、CU1〜CU4の可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0の可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0に対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU1〜CU4の可変長復号処理の結果をメモリ511に書き込む。メモリ511には、最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が少なくとも必要である。
可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間にも同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(1−4.効果)
本実施の形態に示された画像復号装置は、最大符号化ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
(1−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、最大符号化ユニット毎にパイプライン方式で実行されてもよい。これにより、本実施の形態と同様に効率的にパイプライン処理が実行される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態2)
(2−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。また、符号化ストリームにおける各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれる。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態1に比べて処理部間のメモリ容量を削減することが可能である。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(2−2.構成)
図1は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態1と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
(2−3.動作)
本実施の形態では、実施の形態1と同様に、図3A〜図6Bに示された符号化ストリームの構造が用いられる。また、実施の形態1と同様に、図7Aおよび図7Bに示された複数の符号化ユニットの構成が例として用いられる。本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1の動作フローと同様であるので、説明を省略する。
本実施の形態と実施の形態1との違いは、図9に示されたフローチャートの各ステージの動作タイミングの違いである。
図11は、本実施の形態に係る画像復号装置の時系列の動作を示す。図11には、図7Aに示された複数の符号化ユニットについての処理の動作が示されている。説明のため、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域をCU0aと呼び、右上の領域をCU0bと呼び、左下の領域をCU0cと呼び、右下の領域をCU0dと呼ぶ。
TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0に対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。
ここで、CU0の予測ユニットのサイズは、128x128画素である。そのため、動き補償処理(S1005)は、128x128画素のサイズで実行される。したがって、動き補償処理(S1005)は、4つのタイムスロットを占用する。そして、動き補償処理(S1005)は、TS=5まで行われる。
TS=3では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=4では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=5では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=6では、CU0に対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU1に対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=7以降は、TS=6までと同様であるので、説明を省略する。
本実施の形態において、図5Aおよび図5Bのように、符号化ユニットのサイズが128x128画素である場合、必ず周波数変換ユニットのサイズは64x64画素以下である。そして、64x64画素のデータ単位で、順次、符号化ストリームが形成されている。したがって、周波数変換ユニットの最大のサイズである64x64画素のデータ単位でパイプライン処理が実行されている。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われる。また、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプライン処理を実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、第3ステージの動き補償以降では、最大符号化ユニットでパイプラインが構成されている。そのため、これら処理について、実施の形態1と同様に、少なくとも128x128画素の最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が必要である。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(2−4.効果)
本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。
図5Aおよび図5Bの各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれる。そのため、輝度データおよび色差データを分けることなく、図11のように、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位でパイプラインを構成することが可能になる。つまり、128x128画素の符号化ユニット、および、64x64画素の符号化ユニットが混在する場合でも、各ステージで処理されるデータ量が一定になる。
したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
また、実施の形態1と比べて、最も大きい周波数変換ユニットでパイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
(2−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、最も大きい周波数変換ユニット毎にパイプライン方式で実行されてもよい。これにより、本実施の形態と同様に効率的にパイプライン処理が実行される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態3)
(3−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理または面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態1および実施の形態2に比べて処理部間のメモリ容量を削減することが可能になる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(3−2.構成)
次に、本実施の形態に係る画像復号装置の構成について説明する。
図12は、本実施の形態に係る画像復号装置の構成図である。図1に示された実施の形態1の構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態に係る画像復号装置は、動き補償部520および面内予測部521を備える。動き補償部520は、最も大きい周波数変換ユニットのサイズ以下のサイズで予測ユニットを分割して動き補償処理を行う。面内予測部521は、最も大きい周波数変換ユニットのサイズ以下のサイズで予測ユニットを分割して面内予測処理を行う。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
図13は、図12の動き補償部520の構成を示す。図12に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。動き補償部520は、動き補償ブロック分割部601、参照画像取得部602および動き補償演算部603を備える。動き補償ブロック分割部601は、予測ユニットを分割する。参照画像取得部602は、フレームメモリ502から参照画像を取得する。動き補償演算部603は、動き補償処理を行う。
図14は、図12の面内予測部521の構成を示す。図12に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。面内予測部521は、面内予測ブロック分割部701、再構成画像取得部702および面内予測演算部703を備える。面内予測ブロック分割部701は、予測ユニットを分割する。再構成画像取得部702は、再構成画像メモリ509から再構成画像を取得する。面内予測演算部703は、面内予測処理を行う。
以上が、本実施の形態に係る画像復号装置の構成についての説明である。
(3−3.動作)
本実施の形態では、実施の形態1と同様に、図3A〜図6Bに示された符号化ストリームの構造が用いられる。また、実施の形態1と同様に、図7Aおよび図7Bに示された複数の符号化ユニットの構成が例として用いられる。本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1の動作フローと、動き補償処理(S1005)および面内予測処理(S1006)を除いて、同様であるので、説明を省略する。以下、動き補償処理(S1005)と面内予測処理(S1006)について、説明する。
本実施の形態の動き補償部520による動き補償処理(S1005)の動作を図15に示すフローチャートを用いて説明する。まず、動き補償ブロック分割部601は、予測ユニットが64x64画素よりも大きいか否かを判定する(S1100)。
予測ユニットが64x64画素よりも大きくない場合(S1100でNo)、通常の動き補償処理と同様の処理が実行される。すなわち、参照画像取得部602は、参照画像を取得し(S1105)、動き補償演算部603は、動き補償の演算を行う(S1106)。
予測ユニットが64x64画素よりも大きい場合(S1100でYes)、動き補償ブロック分割部601は、予測ユニットを64x64画素の複数の分割ブロックに分割する(S1101)。次に、参照画像取得部602は、分割ブロック毎に参照画像を取得する(S1102)。動き補償演算部603は、分割ブロック毎に動き補償の演算を行う(S1103)。次に、動き補償ブロック分割部601は、未処理の分割ブロックがあるか否かを判定する(S1104)。
未処理の分割ブロックがある場合(S1104でYes)、参照画像取得部602は、参照画像を取得し(S1102)、動き補償演算部603は、動き補償の演算を行う(S1103)。未処理の分割ブロックがない場合(S1104でNo)、動き補償部520は処理を終了する。
次に、以上の動き補償の動作を、具体例を使って説明する。図16は、予測ユニットが128x128画素である場合の動き補償の動作を示している。この例では、復号対象ピクチャの符号化ユニットの予測ユニットが128x128画素サイズで、動きベクトルがvである。動き補償処理では、参照ピクチャ内において、動きベクトルが指す128x128画素のブロックが参照画像として用いられる。
この例において、まず、動き補償ブロック分割部601は、予測ユニットを、実施の形態2で示された最も大きい周波数変換ユニットのサイズである64x64画素の4つの分割ブロックに分割する。図17に示す通り、各分割ブロックの動きベクトルは、128x128画素の予測ユニットの動きベクトルと同じでよい。つまり、各分割ブロックの動きベクトルは、全てvでよい。ここで、予測ユニットの左上に位置するブロックをCU0a、右上に位置するブロックをCU0b、左下に位置するブロックをCU0c、右下に位置するブロックをCU0dと呼ぶ。
次に、参照画像取得部602は、CU0aの位置と、CU0aの動きベクトルと、参照インデックスとによって特定される画像をフレームメモリ502から取得する。CU0aの動きベクトルはvである。したがって、図18に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる左上の64x64画素ブロックである。参照画像取得部602は、この64x64画素ブロックをフレームメモリ502から取得する。
参照画像の取得の完了後、動き補償演算部603がCU0aの動き補償を行い、予測画像を生成する。動き補償演算部603は、動きベクトルが小数画素位置を指す場合、取得された参照画像にフィルタ処理を行って予測画像を生成する。動きベクトルが整数画素位置を指す場合、動き補償演算部603は、取得された参照画像をそのまま予測画像として出力する。以上で、CU0aの動き補償が完了する。
同様に、参照画像取得部602は、CU0bの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0bの動きベクトルはvである。したがって、図19に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる右上の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0bの動き補償を行い、予測画像を生成する。以上で、CU0bの動き補償が完了する。
同様に、参照画像取得部602は、CU0cの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0cの動きベクトルはvである。したがって、図20に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる左下の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0cの動き補償を行い、予測画像を生成する。以上で、CU0cの動き補償が完了する。
同様に、参照画像取得部602は、CU0dの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0dの動きベクトルはvである。したがって、図21に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる右下の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0dの動き補償を行い、予測画像を生成する。以上で、CU0dの動き補償が完了する。
以上で、CU0a〜CU0dの動き補償が完了し、動きベクトルがvである予測ユニットの動き補償の動作が完了する。
次に、本実施の形態の面内予測部521による面内予測処理(S1006)の動作を図22に示すフローチャートを用いて説明する。まず、面内予測ブロック分割部701は、予測ユニットが64x64画素よりも大きいか否かを判定する(S1800)。
予測ユニットが64x64画素よりも大きくない場合(S1800でNo)、通常の面内予測処理と同様の処理が実行される。すなわち、再構成画像取得部702は、再構成画像を取得し(S1805)、面内予測演算部703は、面内予測の演算を行う(S1806)。
予測ユニットが64x64画素よりも大きい場合(S1800でYes)、面内予測ブロック分割部701は、予測ユニットを64x64画素の4つの分割ブロックに分割する(S1801)。次に、再構成画像取得部702は、分割ブロック毎に参照画像を取得し(S1802)、面内予測演算部703は、分割ブロック毎に面内予測の演算を行う(S1803)。次に、面内予測ブロック分割部701は、未処理の分割ブロックがあるか否かを判定する(S1804)。
未処理の分割ブロックがある場合(S1804でYes)、再構成画像取得部702は再構成画像を取得し(S1802)、面内予測演算部703は面内予測の演算を行う(S1803)。未処理の分割ブロックがない場合(S1804でNo)、面内予測部521は処理を終了する。
次に、上述の面内予測の動作を、具体例を使って説明する。図23は、面内予測の予測ユニットのサイズが128x128画素である場合の面内予測の動作を示している。この例では、図23の(a)に示す通り、面内予測モードが「128x128垂直予測モード」である。そのため、面内予測は、復号対象予測ユニットの上に隣接し128x1画素のサイズを有する再構成画像ブロックを用いて処理が行われる。具体的には、復号対象予測ユニットの上に隣接する再構成画像ブロック内の画素値を下方向にコピーすることにより、予測画像が得られる。
図23の例において、まず、面内予測ブロック分割部701が、予測ユニットを64x64画素の分割ブロックに分割する。元の予測ユニットは、各分割ブロックよりも大きく、128x128画素のブロックである。各分割ブロックの面内予測モードは、64x64画素の面内予測モードである。より具体的には、各分割ブロックの面内予測モードは、全て「64x64垂直予測モード」である。ここで、予測ユニットの左上に位置するブロックをCU0a、右上に位置するブロックをCU0b、左下に位置するブロックをCU0c、右下に位置するブロックをCU0dと呼ぶ。
次に、再構成画像取得部702は、CU0aの位置と、CU0aの面内予測モードとに基づいて、CU0aの参照画像を再構成画像メモリ509から取得する。取得される再構成画像の位置とサイズは、以下の手順で決定する。
元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。再構成画像取得部702は、予測ユニット内のCU0aの領域の面内予測で参照される再構成画像の位置とサイズを計算して、再構成画像を取得する。この例では、図23の(b)に示される通り、取得される再構成画像は、CU0aの上に隣接する64x1画素ブロックである。再構成画像取得部702は、CU0aの上に隣接する64x1画素ブロックの位置とサイズを、取得される再構成画像の位置とサイズとして決定する。
再構成画像取得部702は、以上の手順で、取得される再構成画像の位置とサイズを決定した後、CU0aの上に隣接する64x1画素ブロックを再構成画像メモリ509から取得する。
再構成画像の取得の完了後、面内予測演算部703が、取得された再構成画像を用いて、CU0aの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703が、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0aの面内予測が完了する。
同様に、再構成画像取得部702は、CU0bの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(c)に示される通り、CU0bの上に隣接する64x1画素ブロックである。
再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0bの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0bの面内予測が完了する。
同様に、再構成画像取得部702は、CU0cの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(d)に示される通り、CU0aの上に隣接する64x1画素ブロックである。
再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0cの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0cの面内予測が完了する。
同様に、再構成画像取得部702は、CU0dの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(e)に示される通り、CU0bの上に隣接する64x1画素ブロックである。
再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0dの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0dの面内予測が完了する。
以上で、CU0a〜CU0dの面内予測が完了する。すなわち、面内予測モードが「128x128垂直予測モード」である予測ユニットの面内予測の動作が完了する。
本実施の形態では、動き補償処理または面内予測処理に用いられる予測ユニットが分割される。これにより、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、動き補償処理および面内予測処理を含むパイプライン処理が実行される。
ここでは、最も大きい周波数変換ユニットのサイズである64x64画素よりも予測ユニットのサイズが大きい場合の例のみが示されている。64x64画素よりも予測ユニットのサイズが小さい場合、予測ユニットは分割されなくてもよい。その場合、64x64画素のブロックに含まれる全ての予測ユニットに対して、動き補償および面内予測の処理が実行されればよい。
また、64x64画素の境界をまたぐ予測ユニットが存在する場合、画像復号装置は、その予測ユニットを64x64画素の境界で複数のブロックに分割し、上述の動作と同様に、64x64画素のデータ単位で、動き補償および面内予測の処理を実行すればよい。
図24は、本実施の形態に係る画像復号装置の時系列の動作を示す。図24には、図7Aに示された複数の符号化ユニットを処理する際の動作が示されている。説明のため、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域をCU0aと呼び、右上の領域をCU0bと呼び、左下の領域をCU0cと呼び、右下の領域をCU0dと呼ぶ。
TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0aに対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、予測ユニットは、128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=3では、CU0aに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0bに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは、128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=4では、CU0bに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0cに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=5では、CU0cに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0dに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=6では、CU0dに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU1に対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=7以降は、TS=6までと同様であるので、説明を省略する。
本実施の形態において、図5Aおよび図5Bのように、符号化ユニットのサイズが128x128画素である場合、必ず周波数変換ユニットのサイズは64x64画素以下である。そして、64x64画素のデータ単位で、順次、符号化ストリームが形成されている。したがって、周波数変換ユニットの最大のサイズである64x64画素のデータ単位でパイプライン処理が実行されている。
さらに、64x64画素よりも大きい予測ユニットを分割することにより、動き補償処理および面内予測処理も、64x64画素のデータ単位で実行されている。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われ、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプライン処理を実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、第5ステージのデブロックフィルタ処理では、最大符号化ユニットでパイプラインが構成されている。そのため、この処理について、実施の形態1と同様に、少なくとも128x128画素の最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が必要である。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(3−4.効果)
本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
また、実施の形態2と比べて、動き補償処理および面内予測処理についても、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
(3−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。また、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、動き補償または面内予測に用いられる予測ユニットを最も大きい周波数変換ユニットのサイズで分割してもよい。
また、本実施の形態において、参照画像のフィルタ処理に必要な周辺画素について、言及されていない。しかし、画像復号装置は、過去に復号されたピクチャから参照画像を取得する際、必要に応じて、フィルタ処理に用いられる周辺画素を取得しても構わない。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、パイプライン方式で実行されてもよい。これにより、メモリ容量が低減され、回路規模が削減される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態4)
(4−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、本実施の形態では、符号化ストリームにおけるデブロックフィルタ処理が、H.264規格で定められた順序とは異なる順序で実行される。そして、動き補償処理、面内予測処理、デブロックフィルタ処理が、周波数変換ユニットのサイズで実行される。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態3に比べて処理部間のメモリ容量をさらに削減することが可能になる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(4−2.構成)
図12は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態3と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態3と同様であるので、説明を省略する。
(4−3.動作)
本実施の形態における画像復号装置の動作は、図8および図9のフローチャートに示された動作と同様であり、実施の形態3の動作と同様であるが、デブロックフィルタ処理(S1008)が異なる。
本実施の形態に係る画像復号装置は、図7Aに示されたCU1〜CU4に対して、図26に示された番号の順にデブロックフィルタ処理を行う。つまり、デブロックフィルタ部510は、CU1の垂直境界、CU1の水平境界、CU2の垂直境界、CU2の水平境界、CU3の垂直境界、CU3の水平境界、CU4の垂直境界、CU4の水平境界の順にデブロックフィルタ処理を行う。
これにより、再構成部508がCU1の再構成処理(S1007)を完了した後、直ちに、デブロックフィルタ部510がCU1のデブロックフィルタ処理(S1008)を行うことができる。そして、再構成部508とデブロックフィルタ部510の間には、64x64画素のデータ単位を記憶できるメモリがあればよい。
また、同様に、本実施の形態に係る画像復号装置は、図7Aに示されたCU0に対して、図27に示された番号の順にデブロックフィルタ処理を行う。つまり、デブロックフィルタ部510は、CU0aの垂直境界、CU0aの水平境界、CU0bの垂直境界、CU0bの水平境界、CU0cの垂直境界、CU0cの水平境界、CU0dの垂直境界、CU0dの水平境界の順にデブロックフィルタ処理を行う。
これにより、再構成部508がCU0aの再構成処理(S1007)を完了した後、直ちに、デブロックフィルタ部510がCU0aのデブロックフィルタ処理(S1008)を行うことができる。なお、CU0aは、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域である。同様に、CU0bは右上の領域であり、CU0cは左下の領域であり、CU0dは右下の領域である。
図28は、本実施の形態に係る画像復号装置の時系列の動作を示す。図28には、図7Aに示された複数の符号化ユニットを処理する際の動作が示されている。
TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0aに対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=3では、CU0aに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0bに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=4では、CU0aに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0bに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU0cに対して第3ステージの動き補償処理(S1005)が行われ、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=5では、CU0bに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0cに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU0dに対して第3ステージの動き補償処理(S1005)が行われ、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=6では、CU0cに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0dに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU1に対して第3ステージの動き補償処理(S1005)が行われ、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=7以降は、TS=6までと同様であるので、説明を省略する。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われ、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプラインを実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、全てが64x64画素の最も大きい周波数変換ユニットのサイズでパイプラインが構成されている。そのため、実施の形態1〜3に比べて、メモリ容量を小さくすることが可能である。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(4−4.効果)
本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
また、実施の形態3と比べて、デブロックフィルタ処理の処理順序が変更されている。そして、デブロックフィルタ処理についても、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
(4−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、デブロックフィルタ処理の処理順序の変更が、実施の形態3に係る画像復号装置に適用されている。しかし、デブロックフィルタ処理の処理順序の変更が、実施の形態1または実施の形態2に係る画像復号装置に適用されても構わない。
また、本実施の形態において、デブロックフィルタ処理が、CU1の垂直境界に対して行われた後、水平境界に対して行われている。しかし、デブロックフィルタ処理の順序は、上述の順序に限られず、どのような順序であってもよい。
また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。また、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、動き補償または面内予測に用いられる予測ユニットを最も大きい周波数変換ユニットのサイズで分割してもよい。
また、本実施の形態において、複数の符号化ユニットは、ラスター順に符号化されている。しかし、H.264規格に係る任意スライス順序(ASO:Arbitrary Slice Order)では、複数の符号化ユニットは、ラスター順で符号化されていない。このような場合、画像復号装置は、スライス境界に対してデブロックフィルタ処理を行わず、スライス内部に対してのみデブロックフィルタ処理を行う。これにより、本実施の形態と同様の処理順序およびパイプライン処理が実現可能となる。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、パイプライン方式で実行されてもよい。これにより、メモリ容量が低減され、回路規模が削減される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態5)
(5−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
また、本実施の形態に係る画像復号装置は、1つのタイムスロットにおいて、インター予測の結果を面内予測に用いることができる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(5−2.構成)
次に、本実施の形態に係る画像復号装置の構成について説明する。
図29は本実施の形態に係る画像復号装置の構成図である。図1に示された実施の形態1の構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態に係る画像復号装置は、面内予測部710を備える。面内予測部710は、最大符号化ユニットのサイズのデータ単位で、再構成処理を行いながら面内予測処理を行う。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
図30は、図29の面内予測部710の構成を示す。図29に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。面内予測部710は、再構成画像取得部702、面内予測演算部703、スイッチ711および再構成部712を備える。
再構成画像取得部702は、再構成画像を取得する。面内予測演算部703は、面内予測画像の生成を行う。スイッチ711は、インター予測と面内予測とを切り替える。再構成部712は、予測画像と差分画像とを用いて復号画像を生成する。再構成画像メモリ509は、再構成画像を記憶するためのメモリである。
以上が、本実施の形態に係る画像復号装置の構成についての説明である。
(5−3.動作)
本実施の形態では、実施の形態1と同様に、図3A〜図6Bに示された符号化ストリームの構造が用いられる。
図31は、動作の説明に用いられる複数の符号化ユニットの構成例を示す。また、図31は、図7Aに続く複数の符号化ユニットを示す。図31に示された複数の符号化ユニットは、64x64画素のCU8、CU9、32x32画素のCU10〜CU13、および、64x64画素のCU14を含む。CU12には、面内予測が用いられている。CU12以外の全ての符号化ユニットには、インター予測が用いられている。
本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1と、面内予測処理(S1006)および再構成処理(S1007)を除いて、同様であるので、説明を省略する。以下、面内予測処理(S1006)および再構成処理(S1007)について、説明する。
本実施の形態の面内予測部710による面内予測処理(S1006)および再構成処理(S1007)を図32に示すフローチャートを用いて説明する。まず、面内予測部710は、処理対象の符号化ユニットに面内予測が用いられる否かを判定する(S5000)。符号化ユニットに面内予測が用いられる場合(S5000でYes)、再構成画像取得部702は再構成画像メモリ509から画像を取得する。そして、面内予測演算部703は面内予測画像を生成する(S5001)。
符号化ユニットに面内予測が用いられない場合(S5000でNo)、再構成部712は、動き補償部520のインター予測により生成された予測画像を取得する(S5003)。次に、再構成部712は、予測画像と、差分画像とから、再構成画像を生成する(S5002)。そして、再構成部712は、生成された再構成画像のうち、参照される可能性のある画像を再構成画像メモリ509に格納する(S5004)。
次に、面内予測部710は、再構成処理が全て完了したか否かを判定する(S5005)。再構成処理が全て完了していない場合(S5005でNo)、面内予測部710は、再度面内予測が用いられる否かを判定する(S5000)。再構成処理が全て完了している場合(S5005でYes)、面内予測部710は、処理を終了する。
以上が、本実施の形態における画像復号装置の動作である。本実施の形態では、上述のように、面内予測部710が再構成処理を行う。これにより、パイプライン処理が円滑に実行される。
例えば、図31に示されたCU12にように、1つのデータ単位である64x64画素のブロックが、さらに、複数の符号化ユニットに分割され、複数の符号化ユニットの1つに面内予測が用いられる場合がある。このような場合でも、面内予測部710は、CU10の再構成処理、および、CU11の再構成処理を行った後、その結果の再構成画像を用いてCU12の面内予測処理を行うことができる。
(5−4.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
本実施の形態の面内予測部710を用いたパイプライン構成は、実施の形態1(図10)、実施の形態2(図11)、実施の形態3(図24)、および、実施の形態4(図29)などで示されたいずれの構成であってもよい。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態6)
(6−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
また、画像復号装置は、輝度データ(輝度情報)と色差データ(色差情報)とがそれぞれ別々に配置されている符号化ストリームを効率的に復号する。すなわち、画像復号装置は、色差データの可変長復号処理の終了を待つことなく、輝度データに対して後続の処理を実行する。よって、バッファメモリの容量の削減が可能になる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(6−2.構成)
図29は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態5と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
図30は、図29の面内予測部710の構成を示す。面内予測部710の構成は、実施の形態5と同様であるので、説明を省略する。
(6−3.動作)
本実施の形態では、実施の形態5と同様に、図3A〜図4B、図6Aおよび図6Bに示された符号化ストリームの構造が用いられる。一方、本実施の形態では、図33に示すように、符号化ストリーム内における係数情報の構成が、実施の形態5の構成とは異なる。
本実施の形態では、符号化ストリーム内において、輝度(図33においてYで示す)の係数データが64x64画素の周波数変換ユニット毎に配置される。また、輝度に続いて、青の色差(図33においてCbで示す)の係数データが32x32画素の周波数変換ユニット毎に配置される。次に、赤の色差(図33においてCrで示す)の係数データが32x32画素の周波数変換ユニット毎に配置される。
また、本実施の形態では、4:2:0のフォーマットが、画像のフォーマットとして、想定されている。そのため、色差(Cb、Cr)のデータが32x32画素となっている。
本実施の形態に係る画像復号装置の動作フローは、図8、図9および図32に示された実施の形態5と同様であるので、説明を省略する。
本実施の形態では、パイプライン処理の構成が実施の形態5とは異なる。図34は、パイプライン処理の時系列の動作を示す。図34において、右上がりの斜線でハッチングされたブロックは、青の色差(Cb)のブロックを示し、左上がりの斜線でハッチングされたブロックは、赤の色差(Cr)のブロックを示す。
図34に示すように、本実施の形態に係る画像復号装置は、CU0を、CU0aY〜CU0dY、CU0Cb、CU0Crの6つのブロックに分割して、パイプライン処理を実行する。ここで、CU0は、128x128画素の1つの符号化ユニットである。CU0aY〜CU0dYは、それぞれ、輝度のブロックである。CU0Cbは、青の色差のブロックである。CU0Crは、赤の色差のブロックである。
CU1およびCU2などのように、64x64画素の輝度データで構成される符号化ユニットについて、色差(Cb、Cr)のデータ単位のサイズは、それぞれ32x32画素である。その他のデータ単位のサイズが64x64画素であることに比べて、CU1およびCU2の色差(Cb、Cr)についてのデータ単位のサイズが小さくなってしまう。したがって、実施の形態5等のように、複数のステージにおいて、同一のデータ単位で処理を切り替えることが困難になる。
そこで、画像復号装置は、図35および図36のフローチャートに示された動作により、処理を切り替える。
図35は、可変長復号部503が、CU0aY、CU0bY、・・・と処理を切り替える場合の動作を示す。まず、可変長復号部503は、可変長復号部503の出力用のメモリ511が空いているか否かを判定する(S6000)。
メモリ511が空いていない場合(S6000でNo)、可変長復号部503は、そのまま、メモリ511が空くまで待つ。メモリ511が空いている場合(S6000でYes)、可変長復号部503は、次のデータの可変長復号処理を行う(S6001)。
図36は、逆量子化部504が、CU0aY、CU0bY、・・・と処理を切り替える場合の動作を示す。まず、逆量子化部504は、処理対象のデータに対して可変長復号部503による可変長復号処理が終わっているか否かを判定する(S6002)。
可変長復号処理が終わっていない場合(S6002でNo)、逆量子化部504は、可変長復号処理が終わるまで待つ。可変長復号処理が終わっている場合(S6002でYes)、逆量子化部504は、逆量子化部504の出力用のメモリ(図示せず)が空いているかをチェックする(S6003)。メモリが空いていない場合(S6003でNo)、逆量子化部504は、メモリが空くまで待つ。メモリが空いている場合(S6003でYes)、逆量子化部504は、逆量子化処理を行う(S6004)。
ここでは、可変長復号部503および逆量子化部504の動作が示されている。他の処理部も、同様に、処理対象のデータが存在し、かつ、メモリが空いている場合、そのデータの処理を行うことができる。したがって、画像復号装置は、複数のステージにおいて、完全に同一のタイミングで処理を切り替えなくても、パイプライン処理を実行できる。
また、画像復号装置は、輝度および色差を別々のデータ単位として扱う。これにより、色差データを待たずに輝度データの処理が実行される。したがって、内部バッファの容量の削減が可能になる。
(6−4.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態では、フォーマットが4:2:0である場合の例が示されている。しかし、4:2:2、または、4:4:4等の他のフォーマットでも、同様の処理が可能である。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態7)
(7−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
また、画像復号装置は、輝度データと色差データとを含むデータ単位で、動き補償処理を実行する。これにより、効率的に動き補償処理が実行される。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(7−2.構成)
図29は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態6と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態6と同様であるので、説明を省略する。
図30は、図29の面内予測部710の構成を示している。面内予測部710は、実施の形態6と同様であるので、説明を省略する。
(7−3.動作)
本実施の形態では、実施の形態6と同様に、図3A〜図4B、図6A、図6Bおよび図33に示された符号化ストリームの構造が用いられる。また、本実施の形態に係る画像復号装置の動作フローは、図8、図9および図32に示された実施の形態6と同様であるので、説明を省略する。
本実施の形態では、パイプライン処理の構成が実施の形態6とは異なる。図37は、パイプライン処理の時系列の動作を示す。図37において、右上がりの斜線でハッチングされたブロックは、青の色差(Cb)のブロックを示し、左上がりの斜線でハッチングされたブロックは、赤の色差(Cr)のブロックを示す。
図37に示すように、本実施の形態に係る画像復号装置は、CU0を、CU0aY〜CU0dY、CU0Cb、CU0Crの6つのブロックに分割して、パイプライン処理を実行する。ここで、CU0は、128x128画素の1つの符号化ユニットである。CU0aY〜CU0dYは、それぞれ、輝度のブロックである。CU0Cbは、青の色差のブロックである。CU0Crは、赤の色差のブロックである。
本実施の形態では、第3ステージの動き補償処理において、CU0が輝度データと色差データとに分割されずに、CU0a〜CU0dとして扱われる。また、動き補償処理が、第3ステージの逆量子化処理と同時に行われる。これらの点が実施の形態6とは異なっている。
図9のフローチャートでは、説明のため、逆周波数変換処理(S1003)が終わった後に、動き補償処理(S1005)が実行されている。しかし、実際には、動き補償処理(S1005)は、動きベクトルが可変長復号されていれば、実行可能である。したがって、逆量子化処理(S1002)および逆周波数変換処理(S1003)が終わっていなくても、動き補償処理(S1005)は実行可能である。
したがって、本実施の形態に係る画像復号装置は、CU0aY〜CU0dY、CU0Cb、CU0Crの逆量子化処理および逆周波数変換処理と同時に、動き補償処理を行う。
これにより、本実施の形態に係る画像復号装置は、演算量の大きい動き補償処理を輝度および色差について並列に同時に行うことができる。したがって、回路の構成が容易になり、性能の向上が可能になる。
(7−4.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態では、フォーマットが4:2:0である場合の例が示されている。しかし、4:2:2、または、4:4:4等の他のフォーマットでも、同様の処理が可能である。
また、本実施の形態では、第3ステージの動き補償処理が、第2ステージの逆量子化と同時に開始されている。しかし、動き補償処理は、動きベクトルの可変長復号処理が終わっていれば、第1ステージの可変長復号処理の実行中に開始されてもよいし、あるいはもっと遅れて開始されても構わない。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
以下、実施の形態8〜実施の形態15において、上述の実施の形態1〜実施の形態7で示された特徴的な構成要素を示す。
(実施の形態8)
図38は、実施の形態8に係る画像処理装置の構成を示す構成図である。図38に示された画像処理装置2100は、制御部2110および複数の第1処理部2111を備える。複数の第1処理部2111は、処理部2121および処理部2122を含む。すなわち、処理部2121および処理部2122は、それぞれ、第1処理部である。
画像処理装置2100は、符号化ストリームに対して、パイプライン方式で複数の第1処理を施す。符号化ストリームは、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる。
複数の第1処理部2111は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す。その際、複数の第1処理部2111に含まれる処理部2121および処理部2122は、それぞれ、複数の第1処理のいずれかを実行する。
制御部2110は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する。そして、制御部2110は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2111を制御する。
図39は、図38に示された画像処理装置2100の動作を示すフローチャートである。
まず、制御部2110は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2101)。そして、制御部2110は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2111を制御する。
次に、複数の第1処理部2111は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2102)。その際、複数の第1処理部2111に含まれる処理部2121および処理部2122は、それぞれ、複数の第1処理のいずれかを実行する(S2111、S2112)。
これにより、複数の第1処理部2111は、ひとつのサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
なお、複数の第1処理部2111は、符号化ストリームに対して、画像を復号するための複数の第1処理を施してもよい。
また、制御部2110は、符号化ストリームを構成する符号化単位ブロックを分割することにより、符号化ストリームを複数の第1処理単位ブロックに分割してもよい。または、符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、符号化ストリームを複数の第1処理単位ブロックに分割してもよい。
また、制御部2110は、複数の第1処理単位ブロックのそれぞれに対して複数の第1処理のそれぞれが所定の期間で実行されるように、複数の第1処理部2111を制御してもよい。所定の期間は、例えば、所定の数のタイムスロットである。
また、符号化単位ブロックは、画面間予測と画面内予測との切り替え可能な最小単位であってもよい。
また、上述の第1サイズは、最も大きい符号化単位ブロックのサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい符号化単位ブロックのサイズとして予め定められたサイズでもよい。
また、上述の第1サイズは、最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最大符号化ユニットのサイズとして予め定められたサイズでもよい。
また、上述の第1サイズは、最も大きい周波数変換ブロックのサイズとして予め定められたサイズでもよい。周波数変換ブロックは、符号化処理における周波数変換のためのデータ単位、または、復号処理における逆周波数変換のためのデータ単位である。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい周波数変換ブロックのサイズとして予め定められたサイズでもよい。
また、上述の第1サイズは、最も大きい周波数変換ブロックである最も大きい周波数変換ユニット(Transform Unit)のサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい周波数変換ユニットのサイズとして予め定められたサイズでもよい。
(実施の形態9)
図40は、実施の形態9に係る画像処理装置の構成を示す構成図である。図40に示された画像処理装置2200は、制御部2210および複数の第1処理部2211を備える。
複数の第1処理部2211は、処理部2221、処理部2222および処理部2223を含む。また、複数の第1処理部2211は、複数の第2処理部2212を含む。複数の第2処理部2212は、処理部2222および処理部2223を含む。すなわち、処理部2221は、第1処理部である。また、処理部2222および処理部2223は、それぞれ、第1処理部であり、かつ、第2処理部である。
画像処理装置2200は、実施の形態8の画像処理装置2100と同様に、符号化ストリームに対して、パイプライン方式で複数の第1処理を施す。
複数の第1処理部2211は、実施の形態8の複数の第1処理部2111と同様に、符号化ストリームに対してパイプライン方式で複数の第1処理を施す。その際、複数の第1処理部2211に含まれる処理部2221、処理部2222および処理部2223は、それぞれ、複数の第1処理のいずれかを実行する。
複数の第2処理部2212は、複数の第1処理に含まれる複数の第2処理を実行する。
制御部2210は、実施の形態8の制御部2110と同様に、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する。そして、制御部2210は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2211を制御する。
また、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割する。そして、制御部2210は、複数の第2処理が第2処理単位ブロック毎に実行されるように、複数の第2処理部2212を制御する。
図41は、図40に示された画像処理装置2200の動作を示すフローチャートである。
まず、制御部2210は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2201)。そして、制御部2210は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2211を制御する。
次に、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割する(S2202)。そして、制御部2210は、複数の第2処理が第2処理単位ブロック毎に実行されるように、複数の第2処理部2212を制御する。
次に、複数の第1処理部2211は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2203)。その際、複数の第1処理部2211に含まれる処理部2221、処理部2222および処理部2223は、それぞれ、複数の第1処理のいずれかを実行する(S2211、S2212、S2213)。
上述の動作に伴って、複数の第2処理部2212は、複数の第2処理を実行する(S2204)。その際、複数の第2処理部2212に含まれる処理部2222および処理部2223は、それぞれ、複数の第2処理のいずれかを実行する(S2211、S2212)。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
なお、制御部2210は、複数の第1処理単位ブロックを、それぞれのサイズが第1サイズ以下である複数の第2処理単位ブロックに分割してもよい。これによっても、パイプライン処理が小さいサイズで実行される。したがって、動作効率が向上する。
また、制御部2210は、輝度情報と色差情報とが分割されるように、複数の第1処理単位ブロックを複数の第2処理単位ブロックに分割してもよい。これにより、輝度情報と色差情報とが別々に処理される。そして、パイプライン処理が小さいサイズで実行され、動作効率が向上する。
また、複数の第1処理部2211は、動き補償処理を実行する動き補償処理部を含んでいてもよい。
そして、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割してもよい。その際、制御部2210は、輝度情報と色差情報とが1つの第3処理単位ブロックに含まれるように、複数の第1処理単位ブロックを複数の第3処理単位ブロックに分割してもよい。そして、制御部2210は、動き補償処理が第3処理単位ブロック毎に実行されるように、動き補償処理部を制御してもよい。
これにより、動き補償処理において、輝度情報と色差情報とが一緒に処理される。したがって、動作の無駄が削減される。
(実施の形態10)
図42は、実施の形態10に係る画像処理装置の構成を示す構成図である。図42に示された画像処理装置2300は、制御部2310および複数の第1処理部2311を備える。複数の第1処理部2311は、処理部2321、動き補償処理部2322を含む。すなわち、処理部2321および動き補償処理部2322は、それぞれ、第1処理部である。
画像処理装置2300は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に、動作する。制御部2310、複数の第1処理部2311、処理部2321および動き補償処理部2322は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2300の各構成要素は、対応する構成要素と同様に、動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
動き補償処理部2322は、動き補償処理を実行する。動き補償処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2310は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2310は、動き補償処理が第1処理単位ブロック毎に実行されるように、動き補償処理部2322を制御する。予測ブロックは、予測処理のためのデータ単位である。
図43は、図42に示された画像処理装置2300の動作を示すフローチャートである。
まず、制御部2310は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2301)。そして、制御部2310は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2311を制御する。
また、この時、制御部2310は、動き補償処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2310は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2310は、動き補償処理が第1処理単位ブロック毎に実行されるように、動き補償処理部2322を制御する。
次に、複数の第1処理部2311は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2302)。その際、複数の第1処理部2311に含まれる処理部2321および動き補償処理部2322は、それぞれ、複数の第1処理のいずれかを実行する(S2311、S2312)。特に、動き補償処理部2322は、複数の第1処理に含まれる動き補償処理を実行する(S2312)。
これにより、動き補償処理部2322と他の処理部との間で交換される情報量が低減される。したがって、回路規模の縮小が可能になる。
(実施の形態11)
図44は、実施の形態11に係る画像処理装置の構成を示す構成図である。図44に示された画像処理装置2400は、制御部2410および複数の第1処理部2411を備える。複数の第1処理部2411は、処理部2421、面内予測処理部2422を含む。すなわち、処理部2421および面内予測処理部2422は、それぞれ、第1処理部である。
画像処理装置2400は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に動作する。制御部2410、複数の第1処理部2411、処理部2421および面内予測処理部2422は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2400の各構成要素は、対応する構成要素と同様に動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
面内予測処理部2422は、面内予測処理を実行する。面内予測処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2410は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2410は、面内予測処理が第1処理単位ブロック毎に実行されるように、面内予測処理部2422を制御する。予測ブロックは、予測処理のためのデータ単位である。
図45は、図44に示された画像処理装置2400の動作を示すフローチャートである。
まず、制御部2410は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2401)。そして、制御部2410は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2411を制御する。
また、この時、制御部2410は、面内予測処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2410は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2410は、面内予測処理が第1処理単位ブロック毎に実行されるように、面内予測処理部2422を制御する。
次に、複数の第1処理部2411は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2402)。その際、複数の第1処理部2411に含まれる処理部2421および面内予測処理部2422は、それぞれ、複数の第1処理のいずれかを実行する(S2411、S2412)。特に、面内予測処理部2422は、複数の第1処理に含まれる面内予測処理を実行する(S2412)。
これにより、面内予測処理部2422と他の処理部との間で交換される情報量が低減される。したがって、回路規模の縮小が可能になる。
(実施の形態12)
図46は、実施の形態12に係る画像処理装置の構成を示す構成図である。図46に示された画像処理装置2500は、制御部2510および複数の第1処理部2511を備える。複数の第1処理部2511は、処理部2521、デブロックフィルタ処理部2522を含む。すなわち、処理部2521およびデブロックフィルタ処理部2522は、それぞれ、第1処理部である。
画像処理装置2500は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に、動作する。制御部2510、複数の第1処理部2511、処理部2521およびデブロックフィルタ処理部2522は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2500の各構成要素は、対応する構成要素と同様に、動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
デブロックフィルタ処理部2522は、周波数変換ブロック等のブロックの境界における符号化歪みを除去するためのデブロックフィルタ処理を実行する。制御部2510は、画像が符号化される時に周波数変換処理が実行された順序に従って、デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、デブロックフィルタ処理部2522を制御する。
図47は、図46に示された画像処理装置2500の動作を示すフローチャートである。
まず、制御部2510は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2501)。そして、制御部2510は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2511を制御する。また、この時、制御部2510は、画像が符号化される時に周波数変換処理が実行された順序に従って、デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、デブロックフィルタ処理部2522を制御する。
次に、複数の第1処理部2511は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2502)。その際、複数の第1処理部2511に含まれる処理部2521およびデブロックフィルタ処理部2522は、それぞれ、複数の第1処理のいずれかを実行する(S2511、S2512)。特に、デブロックフィルタ処理部2522は、複数の第1処理に含まれるデブロックフィルタ処理を実行する(S2512)。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
(実施の形態13)
図48は、実施の形態13に係る画像符号化装置の構成を示す構成図である。図48に示された画像符号化装置2600は、符号化処理部2610およびデブロックフィルタ処理部2611を備える。画像符号化装置2600は、画像を符号化する。
図49は、図48に示された画像符号化装置2600の動作を示すフローチャートである。
まず、符号化処理部2610は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像を分割する。そして、符号化処理部2610は、画像に対して符号化単位ブロック毎に符号化処理を実行する(S2601)。符号化処理には、例えば、周波数変換処理、量子化処理、可変長符号化処理、逆量子化処理、逆周波数変換処理、動き補償処理および面内予測処理等が含まれていてもよい。
次に、デブロックフィルタ処理部2611は、符号化単位ブロックに対して符号化処理が実行された順序に従って、デブロックフィルタ処理を符号化単位ブロック毎に実行する(S2602)。例えば、デブロックフィルタ処理部2611は、図26で示された順序で、デブロックフィルタ処理を実行する。デブロックフィルタ処理が施された符号化単位ブロックは、参照画像として、後続の符号化単位ブロックに対する動き補償処理等の符号化処理で用いられる。
これにより、デブロックフィルタ処理と、前段の処理との間の空き時間が削減される。したがって、動作効率が向上する。また、典型的には、符号化側と復号側とで同じ順序が用いられる。したがって、復号側の動作効率も向上する。
なお、デブロックフィルタ処理部2611は、符号化処理が実行された順序によらず、デブロックフィルタ処理(S2602)を実行してもよい。そして、デブロックフィルタ処理部2611は、デブロックフィルタ処理を符号化単位ブロック毎とは異なる所定のデータ単位毎に実行してもよい。例えば、デブロックフィルタ処理部2611は、図25のように、デブロックフィルタ処理を、所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行してもよい。
(実施の形態14)
図50は、実施の形態14に係る画像符号化装置の構成を示す構成図である。図50に示された画像符号化装置2700は、周波数変換処理部2710およびデブロックフィルタ処理部2711を備える。画像符号化装置2700は、画像を符号化単位ブロック毎に符号化する。
図51は、図50に示された画像符号化装置2700の動作を示すフローチャートである。
まず、周波数変換処理部2710は、画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割する。そして、周波数変換処理部2710は、符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する(S2701)。
次に、デブロックフィルタ処理部2711は、符号化単位ブロックに対して周波数変換処理が実行された順序に従って、デブロックフィルタ処理を周波数変換ブロック毎に実行する(S2702)。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
(実施の形態15)
図52は、実施の形態15に係る画像符号化装置の構成を示す構成図である。図52に示された画像符号化装置2800は、周波数変換処理部2810および符号化処理部2811を備える。画像符号化装置2800は、画像を符号化単位ブロック毎に符号化する。
図53は、図52に示された画像符号化装置2800の動作を示すフローチャートである。
まず、周波数変換処理部2810は、画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割する。そして、周波数変換処理部2810は、符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する(S2801)。
次に、符号化処理部2811は、周波数変換処理が実行された符号化単位ブロックを符号化する。例えば、符号化処理部2811は、可変長符号化処理を実行する。そして、符号化処理部2811は、画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する(S2802)。例えば、符号化処理部2811は、図5Aおよび図5Bに示された符号化ストリームのように、輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する。
図54は、本実施の形態に係る符号化ストリームの例を示す図である。図54の例では、符号化単位ブロックは、4つの周波数変換ブロックA、B、C、Dを含む。そして、各周波数変換ブロックに対応する係数情報は、輝度情報(Y)および色差情報(Cb、Cr)を含む。すなわち、符号化処理部2811は、図54のように、輝度情報(Y)および色差情報(Cb、Cr)が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する。
これにより、復号側でも、輝度情報および色差情報を分けることなく、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。したがって、動作効率が向上する。
なお、符号化ストリームは、第1周波数変換ブロックの輝度情報、第1周波数変換ブロックの色差情報、第2周波数変換ブロックの輝度情報、第2周波数変換ブロックの色差情報というような順序で、構成されていてもよい。すなわち、輝度情報および色差情報がそれぞれ独立して符号化ストリームに含まれ、かつ、輝度情報および色差情報が周波数変換ブロック毎に一緒にまとめられていてもよい。このような構成でも、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。
以上、本発明に係る画像処理装置、画像復号装置および画像符号化装置について、複数の実施の形態に基づいて説明したが、本発明はそれらの実施の形態に限定されるものではない。それらの実施の形態に対して当業者が思いつく変形を施して得られる形態、および、それらの実施の形態における構成要素を任意に組み合わせて実現される別の形態も本発明に含まれる。
例えば、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。
また、本発明は、画像処理装置、画像復号装置または画像符号化装置として実現できるだけでなく、画像処理装置、画像復号装置または画像符号化装置を構成する処理手段をステップとする方法として実現できる。例えば、それらのステップは、コンピュータによって実行される。そして、本発明は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体として実現できる。
また、画像処理装置、画像復号装置または画像符号化装置に含まれる複数の構成要素は、集積回路であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。例えば、メモリ以外の構成要素が、1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSIまたはウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、画像処理装置、画像復号装置または画像符号化装置に含まれる構成要素の集積回路化を行ってもよい。
(実施の形態16)
上記各実施の形態で示した画像符号化方法および画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらに、ここで、上記各実施の形態で示した画像符号化方法および画像復号方法の応用例とそれを用いたシステムを説明する。
図55は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106〜ex110が設置されている。
このコンテンツ供給システムex100では、電話網ex104、および、基地局ex106〜ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が相互に接続される。また、各機器が、インターネットサービスプロバイダex102を介して、インターネットex101に接続されている。
しかし、コンテンツ供給システムex100は、図55のような構成に限定されず、いずれかの要素を組み合せて接続するようにしてもよい。また、固定無線局である基地局ex106〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113は、デジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116は、デジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、LTE(Long Term Evolution)方式、若しくは、HSPA(High Speed Packet Access)方式の携帯電話、または、PHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して、上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は、要求のあったクライアントに対して、送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
なお、撮影したデータの符号化処理は、カメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理は、クライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理は、カメラex116、コンピュータex111およびストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化処理および復号処理は、一般的にコンピュータex111および各機器が有するLSI(Large Scale Integration)ex500において実行される。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、画像符号化用のソフトウェアまたは画像復号用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化処理または復号処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画像データを送信してもよい。このときの動画像データは、携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は、複数のサーバまたは複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利および設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図56に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも画像符号化装置または画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または衛星ex202に伝送される。このビットストリームは、上記各実施の形態で説明した画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
また、記録媒体であるCDおよびDVD等の記録メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または、記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した画像復号装置または画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置およびシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に画像復号装置を組み込んでもよい。
図57は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)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の構成を図58に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図59に光ディスクである記録メディア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の構成は例えば図57に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111および携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器および復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
このように、上記各実施の形態で示した画像符号化方法あるいは画像復号方法を上述したいずれの機器またはシステムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態17)
本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現する。実現した形態を図60に示す。フレームメモリ502をDRAM上に実現し、その他の回路およびメモリをLSI上に構成している。符号化ストリームを格納するビットストリームバッファをDRAM上に実現してもよい。
これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話、テレビ、デジタルビデオレコーダー、デジタルビデオカメラおよびカーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶、PDP(プラズマディスプレイパネル)および有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
また、本実施の形態におけるLSIは、符号化ストリームを蓄積するビットストリームバッファ、および、画像を蓄積するフレームメモリ等を備えるDRAM(Dynamic Random Access Memory)と連携することにより、符号化処理または復号処理を行ってもよい。また、本実施の形態におけるLSIは、DRAMではなく、eDRAM(embeded DRAM)、SRAM(Static Random Access Memory)、または、ハードディスクなど他の記憶装置と連携しても構わない。
(実施の形態18)
上記各実施の形態で示した画像符号化装置、画像復号装置、画像符号化方法および画像復号方法は、典型的には集積回路であるLSIで実現される。一例として、図61に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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本発明に係る画像処理装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器、または、撮像機器に利用可能であり、利用価値が高い。
501、2110、2210、2310、2410、2510、ex310 制御部
502 フレームメモリ
503 可変長復号部
504 逆量子化部
505 逆周波数変換部
506、520 動き補償部
507、521、710 面内予測部
508、712 再構成部
509 再構成画像メモリ
510 デブロックフィルタ部
511、ex511 メモリ
601 動き補償ブロック分割部
602 参照画像取得部
603 動き補償演算部
701 面内予測ブロック分割部
702 再構成画像取得部
703 面内予測演算部
711 スイッチ
2100、2200、2300、2400、2500 画像処理装置
2121、2122、2221、2222、2223、2321、2421、2521 処理部
2111、2211、2311、2411、2511 複数の第1処理部
2212 複数の第2処理部
2322 動き補償処理部
2422 面内予測処理部
2522、2611、2711 デブロックフィルタ処理部
2600、2700、2800 画像符号化装置
2610、2811 符号化処理部
2710、2810 周波数変換処理部
ex100 コンテンツ供給システム
ex101 インターネット
ex102 インターネットサービスプロバイダ
ex103 ストリーミングサーバ
ex104 電話網
ex106、ex107、ex108、ex109、ex110 基地局
ex111 コンピュータ
ex112 PDA(Personal Digital Assistant)
ex113、ex116 カメラ
ex114 携帯電話
ex115 ゲーム機
ex117 マイク
ex200 デジタル放送用システム
ex201 放送局
ex202 放送衛星(衛星)
ex203 ケーブル
ex204、ex205 アンテナ
ex210 車
ex211 カーナビゲーション(カーナビ)
ex212 再生装置
ex213、ex219 モニタ
ex214、ex215、ex216 記録メディア
ex217 セットトップボックス(STB)
ex218 リーダ/レコーダ
ex220 リモートコントローラ
ex230 情報トラック
ex231 記録ブロック
ex232 内周領域
ex233 データ記録領域
ex234 外周領域
ex300 テレビ(受信機)
ex301 チューナ
ex302 変調/復調部
ex303 多重/分離部
ex304 音声信号処理部
ex305 映像信号処理部
ex306、ex507 信号処理部
ex307 スピーカ
ex308 表示部
ex309 出力部
ex311、ex505 電源回路部
ex312 操作入力部
ex313 ブリッジ
ex314 スロット部
ex315 ドライバ
ex316 モデム
ex317 インタフェース部
ex318、ex319、ex320、ex321、ex404 バッファ
ex400 情報再生/記録部
ex401 光ヘッド
ex402 変調記録部
ex403 再生復調部
ex405 ディスクモータ
ex406 サーボ制御部
ex407 システム制御部
ex500 LSI
ex502 マイコン(マイクロコンピュータ)
ex503 メモリコントローラ
ex504 ストリームI/O
ex509 AV I/O
ex510 バス
本発明は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の処理を施す画像処理装置に関する。
動画像を符号化する画像符号化装置は、動画像を構成する各ピクチャを16x16画素でそれぞれが構成される複数のマクロブロック(Macroblock、略してMBと呼ぶこともある)に分割する。そして、画像符号化装置は、ラスタースキャン順に各マクロブロックを符号化する。画像符号化装置は、動画像を符号化し圧縮することにより、符号化ストリームを生成する。画像復号装置は、この符号化ストリームをラスタースキャン順でマクロブロック毎に復号し、元の動画像の各ピクチャを再生する。
従来の画像符号化方式の1つとしてITU−T H.264規格がある(例えば、非特許文献1を参照)。画像復号装置は、H.264規格で符号化された画像を復号するため、まず、符号化ストリームを読み込む。そして、画像復号装置は、各種ヘッダ情報を復号後、可変長復号を行う。画像復号装置は、可変長復号により得られた係数情報を逆量子化して、逆周波数変換する。これにより、差分画像が生成される。
次に、画像復号装置は、可変長復号により得られたマクロブロックタイプに応じて、面内予測または動き補償を行う。これにより、画像復号装置は、予測画像を生成する。その後、画像復号装置は、予測画像に差分画像を加算することにより、再構成処理を行う。そして、画像復号装置は、再構成画像にデブロックフィルタ処理を行うことで復号対象画像を復号する。
このようにして、画像復号装置は、可変長復号処理からデブロックフィルタ処理までをマクロブロック毎に行うことで、符号化された画像を復号していく。この復号処理を高速化する手法として、マクロブロック単位のパイプライン処理によって復号処理を実行する手法が一般に用いられている(例えば、特許文献1を参照)。マクロブロック単位のパイプライン処理では、可変長復号処理からデブロックフィルタ処理までの一連の処理がいくつかのステージに分割される。そして、各ステージの処理が並列に実行される。
図62は、先に説明した復号処理を5つのステージに分割した場合のパイプライン処理の例である。図62に示す例では、1つのマクロブロックに対して、第1ステージから第5ステージまでの処理が、順次行われる。そして、互いに異なる複数のマクロブロックに対して、第1ステージから第5ステージまでの処理が、同時に行われる。
第1ステージでは、画像復号装置は、符号化ストリームを可変長復号して、動きベクトルなどの符号化情報、および、各画素データに対応する係数情報を出力する。第2ステージでは、画像復号装置は、第1ステージで得られた係数情報に対して逆量子化および逆周波数変換を行い、差分画像を生成する。
第3ステージでは、画像復号装置は、可変長復号して得られたマクロブロックタイプに応じて、動き補償を行って予測画像を生成する。第4ステージでは、画像復号装置は、第3ステージで得られた動き補償の予測画像、および、第4ステージで行う面内予測処理の予測画像のいずれかと、第2ステージで得られた差分画像とを用いて、再構成処理を行う。第5ステージでは、画像復号装置は、デブロックフィルタ処理を行う。
このように、画像復号装置は、パイプライン処理を用いて、各ステージで異なる複数のマクロブロックを同時に処理する。これにより、画像復号装置は、並列処理を実現し、復号処理を高速化することができる。
この時、パイプライン処理のタイムスロット(TS)のサイクルは、最も処理サイクルが長いステージの処理サイクルによって決定される。そのため、あるステージの処理サイクルだけが長くなってしまうと、他のステージは、その最長ステージの処理が完了するまで次のマクロブロックの処理を開始できない状態となる。したがって、無駄な空きが発生してしまう。パイプライン処理を効率的に動作させるには、パイプライン処理を構成する各処理サイクルをできるだけ均等になるように構成することが重要である。
H.264規格に係る画像符号化装置は、先ほど述べた通り、16x16画素で構成されるマクロブロック単位で画像を符号化する。しかし、符号化の単位として16x16画素が、必ずしも最適とは限らない。一般に、画像の解像度が高くなるにつれて、隣接ブロック間の相関が高くなる。そのため、符号化の単位を大きくした方が、より圧縮効率を向上させることができる。
近年、4K2K(3840画素×2160画素)等のように、超高精細なディスプレイの開発が行われてきている。したがって、扱う画像の解像度がますます高くなっていくことが予想される。H.264規格に係る画像符号化装置は、このように画像の高解像度化が進むにつれて、これらの高解像度の画像を効率的に符号化することができなくなってきている。
一方、次世代の画像符号化規格として提案されている技術の中には、このような課題を解決する技術がある(非特許文献2)。この技術では、従来のH.264規格に対応する符号化単位ブロックのサイズが可変になる。そして、この技術に係る画像符号化装置は、従来の16x16画素よりも大きなブロックで画像を符号化することも可能であり、超高精細画像を適切に符号化することができる。
具体的には、非特許文献2では、符号化のデータ単位として、符号化ユニット(CU:Coding Unit)が定義されている。この符号化ユニットは、従来の符号化規格におけるマクロブロックと同様に、面内予測を行うイントラ予測と、動き補償を行うインター予測とを切り替えることが可能なデータ単位であり、符号化の最も基本的なブロックサイズとして規定されている。
この符号化ユニットのサイズは、4x4画素、8x8画素、16x16画素、32x32画素、64x64画素、および、128x128画素のいずれかである。最も大きな符号化ユニットは、最大符号化ユニット(LCU:Largest Coding Unit)と呼ばれる。
64x64画素の符号化ユニットには、4096画素のデータが含まれる。128x128画素の符号化ユニットには、16384画素のデータが含まれる。すなわち、128x128画素の符号化ユニットには、64x64画素の符号化ユニットの4倍のデータが含まれる。
図63は、128x128画素と64x64画素とで構成される複数の符号化ユニットの例を示す。非特許文献2において、さらに、周波数変換ユニット(TU:Transform Unit)が定義されている。周波数変換ユニットは、周波数変換のブロックサイズとして規定されている。具体的には、この周波数変換ユニットのサイズは、4x4画素、8x8画素、16x16画素、32x32画素、および、64x64画素のいずれかである。
また、さらに、面内予測またはインター予測のデータ単位として、予測ユニット(PU:Prediction Unit)が定義されている。予測ユニットは、符号化ユニットの内部において、128x128画素、64x128画素、128x64画素、または、64x64画素など、4x4画素以上の様々な矩形サイズから、選択される。
特開2005−295526号公報
Thomas Wiegand et al、"Overview of the H.264/AVC Video Coding Standard"、IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY、JULY 2003、PP.560−576 「Test Model Under Consideration(TMuC)」、[online]、Joint Collaborative Team on Video Coding(JCT−VC)、2010年4月15日、[2010年8月27日検索]、インターネット<URL:http://wftp3.itu.int/av−arch/jctvc−site/2010_04_A_Dresden/JCTVC−A205.zip>
以上のように、非特許文献2では、符号化ユニットすなわちマクロブロックのサイズを可変にすることにより符号化効率を向上させる技術が、述べられている。しかしながら、このような可変の符号化ユニットに対して、特許文献1で示されるパイプライン処理が適用された場合、符号化ユニットに含まれる画素数に比例して必要な処理量が増大する。また、処理サイクル数も同様に大きくなる。
すなわち、符号化ストリーム内に異なるサイズの符号化ユニットが混在している場合、パイプライン処理の各ステージの処理サイクルが、符号化ユニットのサイズによって大きく変動してしまう。そのため、小さい符号化ユニットを処理するステージでは、何も処理できない待ち時間が発生する。そして、パイプラインの処理効率が低下してしまう。つまり、可変のサイズの符号化ユニットは、画像復号装置の処理効率の低下を招く原因となってしまう。
例えば、図64には、5つのステージのパイプライン処理で符号化ストリームを復号する例が示されている。この例では、図63のように、CU0が128x128画素の符号化ユニットであり、次にCU1〜CU4がそれぞれ64x64画素の符号化ユニットである。この場合、CU0が、CU1〜CU4の4倍の画素数で構成される符号化ユニットであるため、CU0の処理サイクルが、他の符号化ユニットの処理サイクルの4倍になる。
そのため、第1ステージのCU1の処理が完了してから、第2ステージのCU0の処理が完了するまで、第1ステージにおいて空き時間が生じている。同様に、第2ステージのCU1の処理が完了してから、第3ステージのCU0の処理が完了するまで、第2ステージにおいて空き時間が生じている。また、第3ステージのCU1の処理が完了してから、第4ステージのCU0の処理が完了するまで、第3ステージにおいて空き時間が生じている。すなわち、それぞれのステージで、処理が行われない空き時間が生じている。
このように、符号化ユニットのサイズが変動すると、処理する画素データ量が増減する。符号化ストリームがパイプライン処理で復号される場合、画素データ量の大きい符号化ユニットによってパイプライン処理の単位時間が決定される。その結果、画素データ量の少ない符号化ユニットの処理後に空き時間が生じてしまう。したがって、処理効率および処理性能が低下する。
そこで、本発明は、画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、パイプライン方式で複数の処理を効率的に施す画像処理装置を提供することを目的とする。
上記課題を解決するため、本発明に係る画像処理装置は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理装置であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える。
これにより、複数の処理部は、ひとつのサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
また、前記複数の第1処理部は、前記符号化ストリームに対して、前記画像を復号するための前記複数の第1処理を施してもよい。
これにより、画像が効率的に復号される。
また、前記制御部は、前記符号化ストリームを構成する符号化単位ブロックを分割することにより、または、前記符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、前記符号化ストリームを前記複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の符号化単位ブロックから複数の処理単位ブロックが得られる。複数の処理単位ブロックは、それぞれがひとつのサイズで構成される。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、前記複数の第1処理単位ブロックのそれぞれに対して前記複数の第1処理のそれぞれが所定の期間で実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の処理単位ブロックに対して、タイムスロット毎に、順次、複数の処理が施される。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、それぞれが画面間予測と画面内予測との切り替え可能な最小単位である前記複数の符号化単位ブロックに前記画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる前記符号化ストリームを、前記複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、符号化効率が高くなるように符号化単位ブロックで符号化された画像が、処理効率が高くなるように処理単位ブロックで処理される。
また、前記制御部は、前記符号化ストリームを、最も大きい符号化単位ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の符号化単位ブロックが、ひとつの処理単位ブロックとして扱われる。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、前記符号化ストリームを、前記最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、複数の処理部は、規格等で予め定められたサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
また、前記制御部は、前記符号化ストリームを、最も大きい周波数変換ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率が向上する。
また、前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
また、前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、それぞれのサイズが前記第1サイズ以下である複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
また、前記制御部は、輝度情報と色差情報とが分割されるように、前記複数の第1処理単位ブロックを前記複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
これにより、輝度情報と色差情報とが別々に処理される。したがって、パイプライン処理が小さいサイズで実行され、動作効率が向上する。
また、前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割し、前記動き補償処理が第3処理単位ブロック毎に実行されるように、前記動き補償処理部を制御し、前記制御部は、前記輝度情報と前記色差情報とが1つの第3処理単位ブロックに含まれるように、前記複数の第1処理単位ブロックを前記複数の第3処理単位ブロックに分割してもよい。
これにより、動き補償処理において、輝度情報と色差情報とが一緒に処理される。したがって、動作の無駄が削減される。
また、前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、前記制御部は、前記動き補償処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記動き補償処理が第1処理単位ブロック毎に実行されるように、前記動き補償処理部を制御してもよい。
これにより、動き補償処理部と他の処理部との間で交換される情報量が、さらに低減される。したがって、回路規模の縮小が可能になる。
また、前記複数の第1処理部は、面内予測処理を実行する面内予測処理部を含み、前記制御部は、前記面内予測処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記面内予測処理が第1処理単位ブロック毎に実行されるように、前記面内予測処理部を制御してもよい。
これにより、面内予測処理部と他の処理部との間で交換される情報量が、さらに低減される。したがって、回路規模の縮小が可能になる。
また、前記複数の第1処理部は、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を実行するデブロックフィルタ処理部を含み、前記制御部は、前記画像が符号化される時に周波数変換処理が実行された順序に従って、前記デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、前記デブロックフィルタ処理部を制御してもよい。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
また、本発明に係る画像符号化方法は、画像を符号化する画像符号化方法であって、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、前記符号化処理が実行された前記画像に含まれるブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を、符号化単位ブロック毎とは異なる所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
これにより、デブロックフィルタ処理の処理サイクルが平坦化され、デブロックフィルタ処理が円滑に実行される。また、デブロックフィルタ処理に適したサイズでデブロックフィルタ処理が実行されるため、処理効率が向上する。
また、本発明に係る画像符号化方法は、画像を符号化する画像符号化方法であって、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、前記画像に対して前記符号化処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を符号化単位ブロック毎に実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
これにより、デブロックフィルタ処理と、前段の処理との間の空き時間が削減される。したがって、動作効率が向上する。また、典型的には、符号化側と復号側とで同じ順序が用いられる。したがって、復号側の動作効率も向上する。
また、本発明に係る画像符号化方法は、画像を符号化単位ブロック毎に符号化する画像符号化方法であって、前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、前記符号化単位ブロックに対して前記周波数変換処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を周波数変換ブロック毎に実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
また、本発明に係る画像符号化方法は、画像を符号化単位ブロック毎に符号化する画像符号化方法であって、前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、前記周波数変換処理が実行された前記符号化単位ブロックを符号化して、前記画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する符号化処理ステップとを含む画像符号化方法でもよい。
これにより、復号側でも、輝度情報および色差情報を分けることなく、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。したがって、動作効率が向上する。
また、本発明に係る画像処理方法は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理方法であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理ステップと、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理ステップを制御する制御ステップとを含む画像処理方法でもよい。
これにより、前記画像処理装置が画像処理方法として実現される。
また、本発明に係るプログラムは、前記画像処理方法に含まれるステップをコンピュータに実行させるためのプログラムでもよい。
これにより、前記画像処理方法がプログラムとして実現される。
また、本発明に係る集積回路は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す集積回路であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割または結合し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える集積回路でもよい。
これにより、前記画像処理装置が集積回路として実現される。
本発明により、画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、複数の処理がパイプライン方式で効率的に施される。
図1は、実施の形態1に係る画像復号装置の構成を示す構成図である。 図2は、実施の形態1に係る画像復号装置の可変長復号部と逆量子化部との接続を示す構成図である。 図3Aは、実施の形態1に係るシーケンスを示す図である。 図3Bは、実施の形態1に係るピクチャを示す図である。 図3Cは、実施の形態1に係る符号化ストリームを示す図である。 図4Aは、実施の形態1に係る符号化ユニットの第1構成例を示す図である。 図4Bは、実施の形態1に係る符号化ユニットの第2構成例を示す図である。 図5Aは、実施の形態1に係る周波数変換ユニットの第1構成例を示す図である。 図5Bは、実施の形態1に係る周波数変換ユニットの第2構成例を示す図である。 図6Aは、実施の形態1に係る符号化ユニットのヘッダを示す図である。 図6Bは、実施の形態1に係る予測ユニットを示す図である。 図7Aは、実施の形態1に係る動作の説明に用いられる複数の符号化ユニットの構成例を示す図である。 図7Bは、実施の形態1に係る動作の説明に用いられる複数の符号化ユニットの詳細を示す図である。 図8は、実施の形態1に係る画像復号装置の動作を示すフローチャートである。 図9は、実施の形態1に係る符号化ユニットの復号処理を示すフローチャートである。 図10は、実施の形態1に係る画像復号装置の動作を示すタイムチャートである。 図11は、実施の形態2に係る画像復号装置の動作を示すタイムチャートである。 図12は、実施の形態3に係る画像復号装置の構成を示す構成図である。 図13は、実施の形態3に係る動き補償部の構成を示す構成図である。 図14は、実施の形態3に係る面内予測部の構成を示す構成図である。 図15は、実施の形態3に係る動き補償部の動作を示すフローチャートである。 図16は、実施の形態3に係る予測ユニットと参照画像との関係を示す図である。 図17は、実施の形態3に係る分割ブロックの動き補償処理を示す図である。 図18は、実施の形態3に係る第1分割ブロックと参照画像との関係を示す図である。 図19は、実施の形態3に係る第2分割ブロックと参照画像との関係を示す図である。 図20は、実施の形態3に係る第3分割ブロックと参照画像との関係を示す図である。 図21は、実施の形態3に係る第4分割ブロックと参照画像との関係を示す図である。 図22は、実施の形態3に係る面内予測部の動作を示すフローチャートである。 図23は、実施の形態3に係る分割ブロックの面内予測処理を示す図である。 図24は、実施の形態3に係る画像復号装置の動作を示すタイムチャートである。 図25は、実施の形態1に係るデブロックフィルタ処理の順序の例を示す図である。 図26は、実施の形態4に係るデブロックフィルタ処理の順序の第1例を示す図である。 図27は、実施の形態4に係るデブロックフィルタ処理の順序の第2例を示す図である。 図28は、実施の形態4に係る画像復号装置の動作を示すタイムチャートである。 図29は、実施の形態5に係る画像復号装置の構成を示す構成図である。 図30は、実施の形態5に係る面内予測部の構成を示す構成図である。 図31は、実施の形態5に係る動作の説明に用いられる複数の符号化ユニットの構成例を示す図である。 図32は、実施の形態5に係る面内予測部の動作を示すフローチャートである。 図33は、実施の形態6に係る周波数変換ユニットの構成例を示す図である。 図34は、実施の形態6に係る画像復号装置の動作を示すタイムチャートである。 図35は、実施の形態6に係る可変長復号部の動作を示すフローチャートである。 図36は、実施の形態6に係る逆量子化部の動作を示すフローチャートである。 図37は、実施の形態7に係る画像復号装置の動作を示すタイムチャートである。 図38は、実施の形態8に係る画像処理装置の構成を示す構成図である。 図39は、実施の形態8に係る画像処理装置の動作を示すフローチャートである。 図40は、実施の形態9に係る画像処理装置の構成を示す構成図である。 図41は、実施の形態9に係る画像処理装置の動作を示すフローチャートである。 図42は、実施の形態10に係る画像処理装置の構成を示す構成図である。 図43は、実施の形態10に係る画像処理装置の動作を示すフローチャートである。 図44は、実施の形態11に係る画像処理装置の構成を示す構成図である。 図45は、実施の形態11に係る画像処理装置の動作を示すフローチャートである。 図46は、実施の形態12に係る画像処理装置の構成を示す構成図である。 図47は、実施の形態12に係る画像処理装置の動作を示すフローチャートである。 図48は、実施の形態13に係る画像符号化装置の構成を示す構成図である。 図49は、実施の形態13に係る画像符号化装置の動作を示すフローチャートである。 図50は、実施の形態14に係る画像符号化装置の構成を示す構成図である。 図51は、実施の形態14に係る画像符号化装置の動作を示すフローチャートである。 図52は、実施の形態15に係る画像符号化装置の構成を示す構成図である。 図53は、実施の形態15に係る画像符号化装置の動作を示すフローチャートである。 図54は、実施の形態15に係る周波数変換ユニットの構成例を示す図である。 図55は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。 図56は、デジタル放送用システムの全体構成図である。 図57は、テレビの構成例を示すブロック図である。 図58は、光ディスクである記録メディアに情報の読み書きを行う情報再生/記録部の構成例を示すブロック図である。 図59は、光ディスクである記録メディアの構造例を示す図である。 図60は、画像復号処理を実現する集積回路の構成例を示す構成図である。 図61は、画像復号処理および画像符号化処理を実現する集積回路の構成例を示す構成図である。 図62は、従来技術に係るパイプライン処理を示す説明図である。 図63は、従来技術に係る可変サイズのブロックを示す説明図である。 図64は、従来技術に係る可変サイズのブロックに対してパイプライン処理が適用された場合の動作を示す説明図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示す。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
また、128x128画素、および、64x64画素等の表現は、それぞれ、128画素x128画素、および、64画素x64画素等のサイズを意味する。
また、以下において、ブロック、データ単位および符号化ユニット(CU)等の表現は、それぞれ、まとまった領域を意味する。それらは、それぞれ、画像領域を意味する場合もある。あるいは、それらは、それぞれ、符号化ストリームにおけるデータ領域を意味する場合もある。
また、画像は、動画像、静止画像、動画像を構成する複数のピクチャ、1つのピクチャ、および、ピクチャの一部等のいずれでもよい。
(実施の形態1)
(1−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、最大符号化ユニット(LCU:Largest Coding Unit)のサイズで、複数の処理を行う。なお、最大符号化ユニットは、符号化ストリームを構成する複数の符号化ユニットのうち最も大きい符号化ユニットである。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、処理性能が向上する。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(1−2.構成)
次に、本実施の形態に係る画像復号装置の構成について説明する。
図1は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置は、制御部501、フレームメモリ502、再構成画像メモリ509、可変長復号部503、逆量子化部504、逆周波数変換部505、動き補償部506、面内予測部507、再構成部508およびデブロックフィルタ部510を備える。
制御部501は、全体を制御する。フレームメモリ502は、復号された画像データを記憶するためのメモリである。再構成画像メモリ509は、生成された再構成画像の一部を記憶するためのメモリである。可変長復号部503は、符号化ストリームを読み込み、可変長符号を復号する。逆量子化部504は、逆量子化を行う。逆周波数変換部505は、逆周波数変換を行う。
動き補償部506は、フレームメモリ502から参照画像を読み出して、動き補償を行い、予測画像を生成する。面内予測部507は、再構成画像メモリ509から参照画像を読み出して、面内予測(イントラ予測ともいう)を行い、予測画像を生成する。再構成部508は、差分画像と予測画像とを加算して再構成画像を生成し、その一部を再構成画像メモリ509に格納する。デブロックフィルタ部510は、再構成画像のブロックノイズを除去し、再構成画像を高画質化する。
図2は、可変長復号部503と逆量子化部504との接続を示す構成図である。図1と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態の可変長復号部503と逆量子化部504とは、係数を記憶するためのメモリ511を介してそれぞれが接続されるように、構成される。図2は、可変長復号部503と逆量子化部504との接続のみを示しているが、図1に示す各処理部の間は同様の構成で接続される。
以上が、本実施の形態に係る画像復号装置の構成についての説明である。
(1−3.動作)
次に、本実施の形態に係る画像復号装置の動作を説明する。本実施の形態に係る画像復号装置が復号する符号化ストリームは、符号化ユニット(CU)と、周波数変換ユニット(TU)と、予測ユニット(PU)とで構成される。
符号化ユニット(CU)は、128x128画素〜8x8画素のサイズで設定され、面内予測とインター予測との切り替え可能なデータ単位である。周波数変換ユニット(TU)は、符号化ユニット(CU)の内部で64x64画素〜4x4画素のサイズで設定される。予測ユニット(PU)は、符号化ユニット(CU)の内部で128x128画素〜4x4画素のサイズで設定され、面内予測のモード、または、インター予測の動きベクトルを有する。以下、図3A〜図6Bを用いて符号化ストリームの構成について説明する。
図3Aおよび図3Bは、本実施の形態に係る画像復号装置が復号する符号化ストリームの、階層的な構成を示している。図3Aに示すように、複数のピクチャをひとまとまりにしたものをシーケンスと呼ぶ。また、図3Bに示すように、各ピクチャはスライスに分割され、各スライスはさらに符号化ユニット(CU)に分割される。ピクチャはスライスに分割されない場合もある。
本実施の形態において、最大符号化ユニット(LCU)のサイズは、128x128画素である。また、128x128画素の符号化ユニット(CU)と、64x64画素の符号化ユニット(CU)とが混在している。
図3Cは、本実施の形態に係る符号化ストリームを示す図である。図3Aおよび図3Bに示されたデータが階層的に符号化されることにより、図3Cに示された符号化ストリームが得られる。
図3Cに示された符号化ストリームは、シーケンスを制御するシーケンスヘッダ、ピクチャを制御するピクチャヘッダ、スライスを制御するスライスヘッダ、および、符号化ユニットレイヤデータ(CUレイヤデータ)で構成される。H.264規格では、シーケンスヘッダをSPS(Sequence Parameter Set)、ピクチャヘッダをPPS(Picture Parameter Set)と呼んでいる。
次に、本実施の形態の説明に使用する符号化ユニットと符号化ストリームの構成について、図4Aおよび図4Bを用いて説明する。符号化ストリームは、CU分割フラグとCUデータで構成される。このCU分割フラグは、「1」の場合、ブロックを4分割することを示し、「0」の場合、ブロックを4分割しないことを示す。図4Aのように、128x128画素の符号化ユニットの場合、ブロックは分割されない。すなわち、CU分割フラグは「0」である。
図4Bに示すように64x64画素の4つの符号化ユニットの場合、最初のCU分割フラグは「1」である。この最初のCU分割フラグにより、128x128画素のブロックが少なくとも64x64画素の4つのブロックに分割されることが示される。そして、64x64画素の4つのブロックのそれぞれは分割されないため、後続のCU分割フラグは、「0」である。このようにして、符号化ユニットのサイズは、CU分割フラグによって、128x128画素から4x4画素までのいずれかに特定される。
図5Aおよび図5Bは、それぞれ、本実施の形態に係る周波数変換ユニットの構成例を示す。各符号化ユニットのCUデータは、さらに、CUヘッダ、TU分割フラグ、係数情報で構成される。CUヘッダについては後述する。TU分割フラグは、符号化ユニットの中で周波数変換ユニットのサイズを示し、CU分割フラグと同様に、階層的にそのサイズを4分割するか否かを示す。
図5Aは、128x128画素の符号化ユニットが、64x64画素の4つの周波数変換ユニットで構成される場合の例を示す。128x128画素の符号化ユニットの場合、周波数変換ユニットは最大が64x64画素であるので、必ず4分割される。図5Aの場合、それぞれの64x64画素のブロックは分割されない。そのため、TU分割フラグは、全て「0」である。
図5Bは、128x128画素の符号化ユニットが、64x64画素の3つの周波数変換ユニット、および、32x32画素の4つの周波数変換ユニットで構成される例を示す。この場合、「1」の値を有するTU分割フラグが存在する。
図5Aおよび図5Bの各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれている。つまり、符号化ストリームにおいて、輝度データおよび色差データの両方を含む係数情報が周波数変換ユニット毎にまとめられている。
次に、CUヘッダについて説明する。図6Aに示すように、CUヘッダは、CUタイプを含み、さらに、動きベクトルまたは面内予測モードを含む。CUタイプによって、予測ユニットのサイズが決定される。図6Bは、128x128画素、64x128画素、128x64画素、および、64x64画素の予測ユニットを示す。予測ユニットのサイズは、4x4画素以上のサイズから選択可能である。また、予測ユニットの形状は、長方形でもよい。予測ユニット毎に動きベクトルまたは面内予測モードが指定される。
次に、本実施の形態に係る画像復号装置の動作を具体的に説明する。図7Aおよび図7Bは、動作の説明に用いられる複数の符号化ユニットの構成例を示す。図7Aに示された8つの符号化ユニット(CU0〜CU7)が動作の説明のために用いられる。
図7Bに示すように、CU0、CU5〜CU7は、128x128画素で構成される符号化ユニットである。CU1〜CU4は、64x64画素で構成される符号化ユニットである。CU4の周波数変換ユニットのサイズは32x32画素である。他の周波数変換ユニットのサイズは全て64x64画素である。CU0の予測ユニットのサイズは、128x128画素であり、CU1〜CU4の予測ユニットのサイズは、64x64画素であり、CU5〜CU7の予測ユニットのサイズは、128x128画素である。
次に、図8に示すフローチャートを用いて、図1に示した画像復号装置の動作を説明する。図8は、符号化ストリームに含まれる1シーケンスの復号動作を示すフローチャートである。図8に示すように、画像復号装置は、まず、シーケンスヘッダを復号する(S901)。その際、可変長復号部503は、制御部501の制御に基づいて、符号化ストリームを復号する。次に、画像復号装置は、同様に、ピクチャヘッダを復号し(S902)、スライスヘッダを復号する(S903)。
次に、画像復号装置は、符号化ユニットを復号する(S904)。符号化ユニットの復号については後で詳しく説明する。画像復号装置は、符号化ユニットの復号後、復号された符号化ユニットがスライス最後の符号化ユニットであるか否かを判定する(S905)。そして、復号された符号化ユニットがスライス最後の符号化ユニットでない場合、再度、画像復号装置は、次の符号化ユニットを復号する(S904)。
さらに、画像復号装置は、復号された符号化ユニットを含むスライスがピクチャ最後のスライスであるか否かを判定する(S906)。そして、ピクチャ最後のスライスでない場合、画像復号装置は、再度、スライスヘッダを復号する(S903)。
さらに、画像復号装置は、復号された符号化ユニットを含むピクチャがシーケンス最後のピクチャであるか否かを判定する(S907)。そして、シーケンス最後のピクチャでない場合、画像復号装置は、再度、ピクチャヘッダを復号する(S902)。画像復号装置は、シーケンスの全てのピクチャの復号後、一連の復号動作を終了する。
次に、図9に示すフローチャートを用いて、図8の符号化ユニットの復号(S904)の動作を説明する。図9は、1つの符号化ユニットの復号動作を示すフローチャートである。
まず、可変長復号部503は、入力された符号化ストリームに含まれる処理対象の符号化ユニットについて、可変長復号を行う(S1001)。可変長復号処理(S1001)では、可変長復号部503は、符号化ユニットタイプ、面内予測(イントラ予測)モード、動きベクトル情報および量子化パラメータなどの符号化情報を出力し、各画素データに対応する係数情報を出力する。符号化情報は、制御部501に出力され、その後、各処理部に入力される。係数情報は、次の逆量子化部504に出力される。次に、逆量子化部504は、逆量子化処理を行う(S1002)。その後、逆周波数変換部505は、逆周波数変換を行って差分画像を生成する(S1003)。
次に、制御部501は、処理対象の符号化ユニットにインター予測が用いられるか、面内予測が用いられるかの判定を行う(S1004)。インター予測が用いられる場合、制御部501により動き補償部506が起動し、動き補償部506が1/2画素精度または1/4画素精度等の予測画像を生成する(S1005)。一方、インター予測が用いられない場合、すなわち、面内予測が用いられる場合、制御部501により面内予測部507が起動し、面内予測部507が面内予測の処理を行い、予測画像を生成する(S1006)。
再構成部508は、動き補償部506または面内予測部507が出力する予測画像と、逆周波数変換部505が出力する差分画像とを加算することにより、再構成画像を生成する(S1007)。
生成された再構成画像は、デブロックフィルタ部510に入力される。同時に、面内予測で用いられる部分は、再構成画像メモリ509に格納される。最後に、デブロックフィルタ部510は、得られた再構成画像に対して、ブロックノイズを低減するためのデブロックフィルタ処理を行う。そして、デブロックフィルタ部510は、フレームメモリ502に結果を格納する(S1008)。以上で、符号化ユニットの復号動作を終了する。
ここで、図9に示すフローチャートに示す各処理を、図9の点線で示すように複数のステージに分割する。画像復号装置は、これらの第1ステージから第5ステージまでの複数のステージにおいて、ステージ毎にそれぞれ異なる複数の最大符号化ユニットに対して、複数の処理を同時に行う。これにより、並列処理が実現され、性能が向上する。このような処理をパイプライン処理と呼ぶ。
図9の例では、第1ステージは、可変長復号処理(S1001)を含む。第2ステージは、逆量子化処理(S1002)と逆周波数変換処理(S1003)とを含む。第3ステージは、動き補償処理(S1005)を含む。第4ステージは、面内予測処理(S1006)と再構成処理(S1007)とを含む。第5ステージは、デブロックフィルタ処理(S1008)を含む。
これらの複数のステージに分割された複数の処理が、ステージ毎に互いに異なる複数の最大符号化ユニットに対して、パイプライン方式で実行される。本実施の形態に係る画像復号装置に含まれる各処理部は、1つのステージにおいて、最大符号化ユニット内の全ての符号化ユニットに対して処理を行う。
つまり、128x128画素の最大符号化ユニット内に128x128画素の1つの符号化ユニットしかない場合、各処理部は、1つのステージにおいて、1つの符号化ユニットの処理を行う。128x128画素の最大符号化ユニット内に64x64画素の4つの符号化ユニットがある場合、各処理部は、1つのステージにおいて、4つの符号化ユニットの全てに対して処理を行う。
図10は、本実施の形態に係る画像復号装置の時系列の動作を示す図である。図10は、図9のように複数の処理が複数のステージに分割され、かつ、複数の符号化ユニットが図7Aのように構成されている場合の動作を示す。
TS=0では、CU0に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=1では、CU0に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われると同時に、CU1〜CU4に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0に対して第3ステージの動き補償処理(S1005)が行われ、CU1〜CU4に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU5に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=3では、CU0に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われ、CU1〜CU4に対して第3ステージの動き補償処理(S1005)が行われる。また、同時に、CU5に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU6に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=4では、CU0に対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU1〜4に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われる。また、同時に、CU5に対して第3ステージの動き補償処理(S1005)が行われ、CU6に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU7に対して第1ステージの可変長復号処理(S1001)が行われる。この結果、CU0の復号処理が全て完了する。
TS=5では、CU1〜CU4に対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU5に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われる。また、同時に、CU6に対して第3ステージの動き補償処理(S1005)が行われ、CU7に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU8に対して第1ステージの可変長復号処理(S1001)が行われる。この結果、CU1〜CU4の復号処理が全て完了する。
ここで、図10のTS=5の第5ステージのデブロックフィルタ処理(S1008)について、CU1〜CU4が分けて記載されていない。これは次のような理由による。
本実施の形態に係るデブロックフィルタ処理は、図25に示す番号の順序で実行される。具体的には、垂直の境界に対して先にデブロックフィルタ処理が行われ、次に水平の境界に対してデブロックフィルタ処理が行われる。
従って、CU1、CU2、CU3、CU4の順ではなく、CU1〜CU4の全ての垂直境界に対してデブロックフィルタ処理が実行された後に、CU1〜CU4の全ての水平境界に対してデブロックフィルタ処理が実行される。
TS=6以降は、TS=5までと同様であるので説明を省略する。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0の可変長復号処理(S1001)が行われる。また、TS=1において、CU0の逆量子化処理(S1002)が行われ、同時に、CU1〜CU4の可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0の可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0に対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU1〜CU4の可変長復号処理の結果をメモリ511に書き込む。メモリ511には、最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が少なくとも必要である。
可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間にも同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(1−4.効果)
本実施の形態に示された画像復号装置は、最大符号化ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
(1−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、最大符号化ユニット毎にパイプライン方式で実行されてもよい。これにより、本実施の形態と同様に効率的にパイプライン処理が実行される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態2)
(2−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。また、符号化ストリームにおける各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれる。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態1に比べて処理部間のメモリ容量を削減することが可能である。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(2−2.構成)
図1は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態1と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
(2−3.動作)
本実施の形態では、実施の形態1と同様に、図3A〜図6Bに示された符号化ストリームの構造が用いられる。また、実施の形態1と同様に、図7Aおよび図7Bに示された複数の符号化ユニットの構成が例として用いられる。本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1の動作フローと同様であるので、説明を省略する。
本実施の形態と実施の形態1との違いは、図9に示されたフローチャートの各ステージの動作タイミングの違いである。
図11は、本実施の形態に係る画像復号装置の時系列の動作を示す。図11には、図7Aに示された複数の符号化ユニットについての処理の動作が示されている。説明のため、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域をCU0aと呼び、右上の領域をCU0bと呼び、左下の領域をCU0cと呼び、右下の領域をCU0dと呼ぶ。
TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0に対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。
ここで、CU0の予測ユニットのサイズは、128x128画素である。そのため、動き補償処理(S1005)は、128x128画素のサイズで実行される。したがって、動き補償処理(S1005)は、4つのタイムスロットを占用する。そして、動き補償処理(S1005)は、TS=5まで行われる。
TS=3では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=4では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=5では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=6では、CU0に対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU1に対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。
TS=7以降は、TS=6までと同様であるので、説明を省略する。
本実施の形態において、図5Aおよび図5Bのように、符号化ユニットのサイズが128x128画素である場合、必ず周波数変換ユニットのサイズは64x64画素以下である。そして、64x64画素のデータ単位で、順次、符号化ストリームが形成されている。したがって、周波数変換ユニットの最大のサイズである64x64画素のデータ単位でパイプライン処理が実行されている。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われる。また、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプライン処理を実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、第3ステージの動き補償以降では、最大符号化ユニットでパイプラインが構成されている。そのため、これら処理について、実施の形態1と同様に、少なくとも128x128画素の最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が必要である。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(2−4.効果)
本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。
図5Aおよび図5Bの各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれる。そのため、輝度データおよび色差データを分けることなく、図11のように、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位でパイプラインを構成することが可能になる。つまり、128x128画素の符号化ユニット、および、64x64画素の符号化ユニットが混在する場合でも、各ステージで処理されるデータ量が一定になる。
したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
また、実施の形態1と比べて、最も大きい周波数変換ユニットでパイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
(2−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、最も大きい周波数変換ユニット毎にパイプライン方式で実行されてもよい。これにより、本実施の形態と同様に効率的にパイプライン処理が実行される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態3)
(3−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理または面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態1および実施の形態2に比べて処理部間のメモリ容量を削減することが可能になる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(3−2.構成)
次に、本実施の形態に係る画像復号装置の構成について説明する。
図12は、本実施の形態に係る画像復号装置の構成図である。図1に示された実施の形態1の構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態に係る画像復号装置は、動き補償部520および面内予測部521を備える。動き補償部520は、最も大きい周波数変換ユニットのサイズ以下のサイズで予測ユニットを分割して動き補償処理を行う。面内予測部521は、最も大きい周波数変換ユニットのサイズ以下のサイズで予測ユニットを分割して面内予測処理を行う。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
図13は、図12の動き補償部520の構成を示す。図12に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。動き補償部520は、動き補償ブロック分割部601、参照画像取得部602および動き補償演算部603を備える。動き補償ブロック分割部601は、予測ユニットを分割する。参照画像取得部602は、フレームメモリ502から参照画像を取得する。動き補償演算部603は、動き補償処理を行う。
図14は、図12の面内予測部521の構成を示す。図12に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。面内予測部521は、面内予測ブロック分割部701、再構成画像取得部702および面内予測演算部703を備える。面内予測ブロック分割部701は、予測ユニットを分割する。再構成画像取得部702は、再構成画像メモリ509から再構成画像を取得する。面内予測演算部703は、面内予測処理を行う。
以上が、本実施の形態に係る画像復号装置の構成についての説明である。
(3−3.動作)
本実施の形態では、実施の形態1と同様に、図3A〜図6Bに示された符号化ストリームの構造が用いられる。また、実施の形態1と同様に、図7Aおよび図7Bに示された複数の符号化ユニットの構成が例として用いられる。本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1の動作フローと、動き補償処理(S1005)および面内予測処理(S1006)を除いて、同様であるので、説明を省略する。以下、動き補償処理(S1005)と面内予測処理(S1006)について、説明する。
本実施の形態の動き補償部520による動き補償処理(S1005)の動作を図15に示すフローチャートを用いて説明する。まず、動き補償ブロック分割部601は、予測ユニットが64x64画素よりも大きいか否かを判定する(S1100)。
予測ユニットが64x64画素よりも大きくない場合(S1100でNo)、通常の動き補償処理と同様の処理が実行される。すなわち、参照画像取得部602は、参照画像を取得し(S1105)、動き補償演算部603は、動き補償の演算を行う(S1106)。
予測ユニットが64x64画素よりも大きい場合(S1100でYes)、動き補償ブロック分割部601は、予測ユニットを64x64画素の複数の分割ブロックに分割する(S1101)。次に、参照画像取得部602は、分割ブロック毎に参照画像を取得する(S1102)。動き補償演算部603は、分割ブロック毎に動き補償の演算を行う(S1103)。次に、動き補償ブロック分割部601は、未処理の分割ブロックがあるか否かを判定する(S1104)。
未処理の分割ブロックがある場合(S1104でYes)、参照画像取得部602は、参照画像を取得し(S1102)、動き補償演算部603は、動き補償の演算を行う(S1103)。未処理の分割ブロックがない場合(S1104でNo)、動き補償部520は処理を終了する。
次に、以上の動き補償の動作を、具体例を使って説明する。図16は、予測ユニットが128x128画素である場合の動き補償の動作を示している。この例では、復号対象ピクチャの符号化ユニットの予測ユニットが128x128画素サイズで、動きベクトルがvである。動き補償処理では、参照ピクチャ内において、動きベクトルが指す128x128画素のブロックが参照画像として用いられる。
この例において、まず、動き補償ブロック分割部601は、予測ユニットを、実施の形態2で示された最も大きい周波数変換ユニットのサイズである64x64画素の4つの分割ブロックに分割する。図17に示す通り、各分割ブロックの動きベクトルは、128x128画素の予測ユニットの動きベクトルと同じでよい。つまり、各分割ブロックの動きベクトルは、全てvでよい。ここで、予測ユニットの左上に位置するブロックをCU0a、右上に位置するブロックをCU0b、左下に位置するブロックをCU0c、右下に位置するブロックをCU0dと呼ぶ。
次に、参照画像取得部602は、CU0aの位置と、CU0aの動きベクトルと、参照インデックスとによって特定される画像をフレームメモリ502から取得する。CU0aの動きベクトルはvである。したがって、図18に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる左上の64x64画素ブロックである。参照画像取得部602は、この64x64画素ブロックをフレームメモリ502から取得する。
参照画像の取得の完了後、動き補償演算部603がCU0aの動き補償を行い、予測画像を生成する。動き補償演算部603は、動きベクトルが小数画素位置を指す場合、取得された参照画像にフィルタ処理を行って予測画像を生成する。動きベクトルが整数画素位置を指す場合、動き補償演算部603は、取得された参照画像をそのまま予測画像として出力する。以上で、CU0aの動き補償が完了する。
同様に、参照画像取得部602は、CU0bの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0bの動きベクトルはvである。したがって、図19に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる右上の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0bの動き補償を行い、予測画像を生成する。以上で、CU0bの動き補償が完了する。
同様に、参照画像取得部602は、CU0cの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0cの動きベクトルはvである。したがって、図20に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる左下の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0cの動き補償を行い、予測画像を生成する。以上で、CU0cの動き補償が完了する。
同様に、参照画像取得部602は、CU0dの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0dの動きベクトルはvである。したがって、図21に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる右下の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0dの動き補償を行い、予測画像を生成する。以上で、CU0dの動き補償が完了する。
以上で、CU0a〜CU0dの動き補償が完了し、動きベクトルがvである予測ユニットの動き補償の動作が完了する。
次に、本実施の形態の面内予測部521による面内予測処理(S1006)の動作を図22に示すフローチャートを用いて説明する。まず、面内予測ブロック分割部701は、予測ユニットが64x64画素よりも大きいか否かを判定する(S1800)。
予測ユニットが64x64画素よりも大きくない場合(S1800でNo)、通常の面内予測処理と同様の処理が実行される。すなわち、再構成画像取得部702は、再構成画像を取得し(S1805)、面内予測演算部703は、面内予測の演算を行う(S1806)。
予測ユニットが64x64画素よりも大きい場合(S1800でYes)、面内予測ブロック分割部701は、予測ユニットを64x64画素の4つの分割ブロックに分割する(S1801)。次に、再構成画像取得部702は、分割ブロック毎に参照画像を取得し(S1802)、面内予測演算部703は、分割ブロック毎に面内予測の演算を行う(S1803)。次に、面内予測ブロック分割部701は、未処理の分割ブロックがあるか否かを判定する(S1804)。
未処理の分割ブロックがある場合(S1804でYes)、再構成画像取得部702は再構成画像を取得し(S1802)、面内予測演算部703は面内予測の演算を行う(S1803)。未処理の分割ブロックがない場合(S1804でNo)、面内予測部521は処理を終了する。
次に、上述の面内予測の動作を、具体例を使って説明する。図23は、面内予測の予測ユニットのサイズが128x128画素である場合の面内予測の動作を示している。この例では、図23の(a)に示す通り、面内予測モードが「128x128垂直予測モード」である。そのため、面内予測は、復号対象予測ユニットの上に隣接し128x1画素のサイズを有する再構成画像ブロックを用いて処理が行われる。具体的には、復号対象予測ユニットの上に隣接する再構成画像ブロック内の画素値を下方向にコピーすることにより、予測画像が得られる。
図23の例において、まず、面内予測ブロック分割部701が、予測ユニットを64x64画素の分割ブロックに分割する。元の予測ユニットは、各分割ブロックよりも大きく、128x128画素のブロックである。各分割ブロックの面内予測モードは、64x64画素の面内予測モードである。より具体的には、各分割ブロックの面内予測モードは、全て「64x64垂直予測モード」である。ここで、予測ユニットの左上に位置するブロックをCU0a、右上に位置するブロックをCU0b、左下に位置するブロックをCU0c、右下に位置するブロックをCU0dと呼ぶ。
次に、再構成画像取得部702は、CU0aの位置と、CU0aの面内予測モードとに基づいて、CU0aの参照画像を再構成画像メモリ509から取得する。取得される再構成画像の位置とサイズは、以下の手順で決定する。
元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。再構成画像取得部702は、予測ユニット内のCU0aの領域の面内予測で参照される再構成画像の位置とサイズを計算して、再構成画像を取得する。この例では、図23の(b)に示される通り、取得される再構成画像は、CU0aの上に隣接する64x1画素ブロックである。再構成画像取得部702は、CU0aの上に隣接する64x1画素ブロックの位置とサイズを、取得される再構成画像の位置とサイズとして決定する。
再構成画像取得部702は、以上の手順で、取得される再構成画像の位置とサイズを決定した後、CU0aの上に隣接する64x1画素ブロックを再構成画像メモリ509から取得する。
再構成画像の取得の完了後、面内予測演算部703が、取得された再構成画像を用いて、CU0aの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703が、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0aの面内予測が完了する。
同様に、再構成画像取得部702は、CU0bの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(c)に示される通り、CU0bの上に隣接する64x1画素ブロックである。
再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0bの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0bの面内予測が完了する。
同様に、再構成画像取得部702は、CU0cの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(d)に示される通り、CU0aの上に隣接する64x1画素ブロックである。
再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0cの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0cの面内予測が完了する。
同様に、再構成画像取得部702は、CU0dの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(e)に示される通り、CU0bの上に隣接する64x1画素ブロックである。
再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0dの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0dの面内予測が完了する。
以上で、CU0a〜CU0dの面内予測が完了する。すなわち、面内予測モードが「128x128垂直予測モード」である予測ユニットの面内予測の動作が完了する。
本実施の形態では、動き補償処理または面内予測処理に用いられる予測ユニットが分割される。これにより、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、動き補償処理および面内予測処理を含むパイプライン処理が実行される。
ここでは、最も大きい周波数変換ユニットのサイズである64x64画素よりも予測ユニットのサイズが大きい場合の例のみが示されている。64x64画素よりも予測ユニットのサイズが小さい場合、予測ユニットは分割されなくてもよい。その場合、64x64画素のブロックに含まれる全ての予測ユニットに対して、動き補償および面内予測の処理が実行されればよい。
また、64x64画素の境界をまたぐ予測ユニットが存在する場合、画像復号装置は、その予測ユニットを64x64画素の境界で複数のブロックに分割し、上述の動作と同様に、64x64画素のデータ単位で、動き補償および面内予測の処理を実行すればよい。
図24は、本実施の形態に係る画像復号装置の時系列の動作を示す。図24には、図7Aに示された複数の符号化ユニットを処理する際の動作が示されている。説明のため、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域をCU0aと呼び、右上の領域をCU0bと呼び、左下の領域をCU0cと呼び、右下の領域をCU0dと呼ぶ。
TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0aに対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、予測ユニットは、128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=3では、CU0aに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0bに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは、128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=4では、CU0bに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0cに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=5では、CU0cに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0dに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=6では、CU0dに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU1に対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=7以降は、TS=6までと同様であるので、説明を省略する。
本実施の形態において、図5Aおよび図5Bのように、符号化ユニットのサイズが128x128画素である場合、必ず周波数変換ユニットのサイズは64x64画素以下である。そして、64x64画素のデータ単位で、順次、符号化ストリームが形成されている。したがって、周波数変換ユニットの最大のサイズである64x64画素のデータ単位でパイプライン処理が実行されている。
さらに、64x64画素よりも大きい予測ユニットを分割することにより、動き補償処理および面内予測処理も、64x64画素のデータ単位で実行されている。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われ、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプライン処理を実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、第5ステージのデブロックフィルタ処理では、最大符号化ユニットでパイプラインが構成されている。そのため、この処理について、実施の形態1と同様に、少なくとも128x128画素の最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が必要である。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(3−4.効果)
本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
また、実施の形態2と比べて、動き補償処理および面内予測処理についても、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
(3−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。また、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、動き補償または面内予測に用いられる予測ユニットを最も大きい周波数変換ユニットのサイズで分割してもよい。
また、本実施の形態において、参照画像のフィルタ処理に必要な周辺画素について、言及されていない。しかし、画像復号装置は、過去に復号されたピクチャから参照画像を取得する際、必要に応じて、フィルタ処理に用いられる周辺画素を取得しても構わない。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、パイプライン方式で実行されてもよい。これにより、メモリ容量が低減され、回路規模が削減される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態4)
(4−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、本実施の形態では、符号化ストリームにおけるデブロックフィルタ処理が、H.264規格で定められた順序とは異なる順序で実行される。そして、動き補償処理、面内予測処理、デブロックフィルタ処理が、周波数変換ユニットのサイズで実行される。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態3に比べて処理部間のメモリ容量をさらに削減することが可能になる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(4−2.構成)
図12は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態3と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態3と同様であるので、説明を省略する。
(4−3.動作)
本実施の形態における画像復号装置の動作は、図8および図9のフローチャートに示された動作と同様であり、実施の形態3の動作と同様であるが、デブロックフィルタ処理(S1008)が異なる。
本実施の形態に係る画像復号装置は、図7Aに示されたCU1〜CU4に対して、図26に示された番号の順にデブロックフィルタ処理を行う。つまり、デブロックフィルタ部510は、CU1の垂直境界、CU1の水平境界、CU2の垂直境界、CU2の水平境界、CU3の垂直境界、CU3の水平境界、CU4の垂直境界、CU4の水平境界の順にデブロックフィルタ処理を行う。
これにより、再構成部508がCU1の再構成処理(S1007)を完了した後、直ちに、デブロックフィルタ部510がCU1のデブロックフィルタ処理(S1008)を行うことができる。そして、再構成部508とデブロックフィルタ部510の間には、64x64画素のデータ単位を記憶できるメモリがあればよい。
また、同様に、本実施の形態に係る画像復号装置は、図7Aに示されたCU0に対して、図27に示された番号の順にデブロックフィルタ処理を行う。つまり、デブロックフィルタ部510は、CU0aの垂直境界、CU0aの水平境界、CU0bの垂直境界、CU0bの水平境界、CU0cの垂直境界、CU0cの水平境界、CU0dの垂直境界、CU0dの水平境界の順にデブロックフィルタ処理を行う。
これにより、再構成部508がCU0aの再構成処理(S1007)を完了した後、直ちに、デブロックフィルタ部510がCU0aのデブロックフィルタ処理(S1008)を行うことができる。なお、CU0aは、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域である。同様に、CU0bは右上の領域であり、CU0cは左下の領域であり、CU0dは右下の領域である。
図28は、本実施の形態に係る画像復号装置の時系列の動作を示す。図28には、図7Aに示された複数の符号化ユニットを処理する際の動作が示されている。
TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
TS=2では、CU0aに対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=3では、CU0aに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0bに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=4では、CU0aに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0bに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU0cに対して第3ステージの動き補償処理(S1005)が行われ、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=5では、CU0bに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0cに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU0dに対して第3ステージの動き補償処理(S1005)が行われ、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=6では、CU0cに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0dに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU1に対して第3ステージの動き補償処理(S1005)が行われ、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
TS=7以降は、TS=6までと同様であるので、説明を省略する。
本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われ、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプラインを実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、全てが64x64画素の最も大きい周波数変換ユニットのサイズでパイプラインが構成されている。そのため、実施の形態1〜3に比べて、メモリ容量を小さくすることが可能である。
以上が、本実施の形態に係る画像復号装置の動作についての説明である。
(4−4.効果)
本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
また、実施の形態3と比べて、デブロックフィルタ処理の処理順序が変更されている。そして、デブロックフィルタ処理についても、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
(4−5.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態において、デブロックフィルタ処理の処理順序の変更が、実施の形態3に係る画像復号装置に適用されている。しかし、デブロックフィルタ処理の処理順序の変更が、実施の形態1または実施の形態2に係る画像復号装置に適用されても構わない。
また、本実施の形態において、デブロックフィルタ処理が、CU1の垂直境界に対して行われた後、水平境界に対して行われている。しかし、デブロックフィルタ処理の順序は、上述の順序に限られず、どのような順序であってもよい。
また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。また、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、動き補償または面内予測に用いられる予測ユニットを最も大きい周波数変換ユニットのサイズで分割してもよい。
また、本実施の形態において、複数の符号化ユニットは、ラスター順に符号化されている。しかし、H.264規格に係る任意スライス順序(ASO:Arbitrary Slice Order)では、複数の符号化ユニットは、ラスター順で符号化されていない。このような場合、画像復号装置は、スライス境界に対してデブロックフィルタ処理を行わず、スライス内部に対してのみデブロックフィルタ処理を行う。これにより、本実施の形態と同様の処理順序およびパイプライン処理が実現可能となる。
また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、パイプライン方式で実行されてもよい。これにより、メモリ容量が低減され、回路規模が削減される。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態5)
(5−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
また、本実施の形態に係る画像復号装置は、1つのタイムスロットにおいて、インター予測の結果を面内予測に用いることができる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(5−2.構成)
次に、本実施の形態に係る画像復号装置の構成について説明する。
図29は本実施の形態に係る画像復号装置の構成図である。図1に示された実施の形態1の構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態に係る画像復号装置は、面内予測部710を備える。面内予測部710は、最大符号化ユニットのサイズのデータ単位で、再構成処理を行いながら面内予測処理を行う。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
図30は、図29の面内予測部710の構成を示す。図29に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。面内予測部710は、再構成画像取得部702、面内予測演算部703、スイッチ711および再構成部712を備える。
再構成画像取得部702は、再構成画像を取得する。面内予測演算部703は、面内予測画像の生成を行う。スイッチ711は、インター予測と面内予測とを切り替える。再構成部712は、予測画像と差分画像とを用いて復号画像を生成する。再構成画像メモリ509は、再構成画像を記憶するためのメモリである。
以上が、本実施の形態に係る画像復号装置の構成についての説明である。
(5−3.動作)
本実施の形態では、実施の形態1と同様に、図3A〜図6Bに示された符号化ストリームの構造が用いられる。
図31は、動作の説明に用いられる複数の符号化ユニットの構成例を示す。また、図31は、図7Aに続く複数の符号化ユニットを示す。図31に示された複数の符号化ユニットは、64x64画素のCU8、CU9、32x32画素のCU10〜CU13、および、64x64画素のCU14を含む。CU12には、面内予測が用いられている。CU12以外の全ての符号化ユニットには、インター予測が用いられている。
本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1と、面内予測処理(S1006)および再構成処理(S1007)を除いて、同様であるので、説明を省略する。以下、面内予測処理(S1006)および再構成処理(S1007)について、説明する。
本実施の形態の面内予測部710による面内予測処理(S1006)および再構成処理(S1007)を図32に示すフローチャートを用いて説明する。まず、面内予測部710は、処理対象の符号化ユニットに面内予測が用いられる否かを判定する(S5000)。符号化ユニットに面内予測が用いられる場合(S5000でYes)、再構成画像取得部702は再構成画像メモリ509から画像を取得する。そして、面内予測演算部703は面内予測画像を生成する(S5001)。
符号化ユニットに面内予測が用いられない場合(S5000でNo)、再構成部712は、動き補償部520のインター予測により生成された予測画像を取得する(S5003)。次に、再構成部712は、予測画像と、差分画像とから、再構成画像を生成する(S5002)。そして、再構成部712は、生成された再構成画像のうち、参照される可能性のある画像を再構成画像メモリ509に格納する(S5004)。
次に、面内予測部710は、再構成処理が全て完了したか否かを判定する(S5005)。再構成処理が全て完了していない場合(S5005でNo)、面内予測部710は、再度面内予測が用いられる否かを判定する(S5000)。再構成処理が全て完了している場合(S5005でYes)、面内予測部710は、処理を終了する。
以上が、本実施の形態における画像復号装置の動作である。本実施の形態では、上述のように、面内予測部710が再構成処理を行う。これにより、パイプライン処理が円滑に実行される。
例えば、図31に示されたCU12にように、1つのデータ単位である64x64画素のブロックが、さらに、複数の符号化ユニットに分割され、複数の符号化ユニットの1つに面内予測が用いられる場合がある。このような場合でも、面内予測部710は、CU10の再構成処理、および、CU11の再構成処理を行った後、その結果の再構成画像を用いてCU12の面内予測処理を行うことができる。
(5−4.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
本実施の形態の面内予測部710を用いたパイプライン構成は、実施の形態1(図10)、実施の形態2(図11)、実施の形態3(図24)、および、実施の形態4(図29)などで示されたいずれの構成であってもよい。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態6)
(6−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
また、画像復号装置は、輝度データ(輝度情報)と色差データ(色差情報)とがそれぞれ別々に配置されている符号化ストリームを効率的に復号する。すなわち、画像復号装置は、色差データの可変長復号処理の終了を待つことなく、輝度データに対して後続の処理を実行する。よって、バッファメモリの容量の削減が可能になる。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(6−2.構成)
図29は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態5と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
図30は、図29の面内予測部710の構成を示す。面内予測部710の構成は、実施の形態5と同様であるので、説明を省略する。
(6−3.動作)
本実施の形態では、実施の形態5と同様に、図3A〜図4B、図6Aおよび図6Bに示された符号化ストリームの構造が用いられる。一方、本実施の形態では、図33に示すように、符号化ストリーム内における係数情報の構成が、実施の形態5の構成とは異なる。
本実施の形態では、符号化ストリーム内において、輝度(図33においてYで示す)の係数データが64x64画素の周波数変換ユニット毎に配置される。また、輝度に続いて、青の色差(図33においてCbで示す)の係数データが32x32画素の周波数変換ユニット毎に配置される。次に、赤の色差(図33においてCrで示す)の係数データが32x32画素の周波数変換ユニット毎に配置される。
また、本実施の形態では、4:2:0のフォーマットが、画像のフォーマットとして、想定されている。そのため、色差(Cb、Cr)のデータが32x32画素となっている。
本実施の形態に係る画像復号装置の動作フローは、図8、図9および図32に示された実施の形態5と同様であるので、説明を省略する。
本実施の形態では、パイプライン処理の構成が実施の形態5とは異なる。図34は、パイプライン処理の時系列の動作を示す。図34において、右上がりの斜線でハッチングされたブロックは、青の色差(Cb)のブロックを示し、左上がりの斜線でハッチングされたブロックは、赤の色差(Cr)のブロックを示す。
図34に示すように、本実施の形態に係る画像復号装置は、CU0を、CU0aY〜CU0dY、CU0Cb、CU0Crの6つのブロックに分割して、パイプライン処理を実行する。ここで、CU0は、128x128画素の1つの符号化ユニットである。CU0aY〜CU0dYは、それぞれ、輝度のブロックである。CU0Cbは、青の色差のブロックである。CU0Crは、赤の色差のブロックである。
CU1およびCU2などのように、64x64画素の輝度データで構成される符号化ユニットについて、色差(Cb、Cr)のデータ単位のサイズは、それぞれ32x32画素である。その他のデータ単位のサイズが64x64画素であることに比べて、CU1およびCU2の色差(Cb、Cr)についてのデータ単位のサイズが小さくなってしまう。したがって、実施の形態5等のように、複数のステージにおいて、同一のデータ単位で処理を切り替えることが困難になる。
そこで、画像復号装置は、図35および図36のフローチャートに示された動作により、処理を切り替える。
図35は、可変長復号部503が、CU0aY、CU0bY、・・・と処理を切り替える場合の動作を示す。まず、可変長復号部503は、可変長復号部503の出力用のメモリ511が空いているか否かを判定する(S6000)。
メモリ511が空いていない場合(S6000でNo)、可変長復号部503は、そのまま、メモリ511が空くまで待つ。メモリ511が空いている場合(S6000でYes)、可変長復号部503は、次のデータの可変長復号処理を行う(S6001)。
図36は、逆量子化部504が、CU0aY、CU0bY、・・・と処理を切り替える場合の動作を示す。まず、逆量子化部504は、処理対象のデータに対して可変長復号部503による可変長復号処理が終わっているか否かを判定する(S6002)。
可変長復号処理が終わっていない場合(S6002でNo)、逆量子化部504は、可変長復号処理が終わるまで待つ。可変長復号処理が終わっている場合(S6002でYes)、逆量子化部504は、逆量子化部504の出力用のメモリ(図示せず)が空いているかをチェックする(S6003)。メモリが空いていない場合(S6003でNo)、逆量子化部504は、メモリが空くまで待つ。メモリが空いている場合(S6003でYes)、逆量子化部504は、逆量子化処理を行う(S6004)。
ここでは、可変長復号部503および逆量子化部504の動作が示されている。他の処理部も、同様に、処理対象のデータが存在し、かつ、メモリが空いている場合、そのデータの処理を行うことができる。したがって、画像復号装置は、複数のステージにおいて、完全に同一のタイミングで処理を切り替えなくても、パイプライン処理を実行できる。
また、画像復号装置は、輝度および色差を別々のデータ単位として扱う。これにより、色差データを待たずに輝度データの処理が実行される。したがって、内部バッファの容量の削減が可能になる。
(6−4.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態では、フォーマットが4:2:0である場合の例が示されている。しかし、4:2:2、または、4:4:4等の他のフォーマットでも、同様の処理が可能である。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
(実施の形態7)
(7−1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
また、画像復号装置は、輝度データと色差データとを含むデータ単位で、動き補償処理を実行する。これにより、効率的に動き補償処理が実行される。
以上が、本実施の形態に係る画像復号装置の概要についての説明である。
(7−2.構成)
図29は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態6と同様であるので、説明を省略する。
図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態6と同様であるので、説明を省略する。
図30は、図29の面内予測部710の構成を示している。面内予測部710は、実施の形態6と同様であるので、説明を省略する。
(7−3.動作)
本実施の形態では、実施の形態6と同様に、図3A〜図4B、図6A、図6Bおよび図33に示された符号化ストリームの構造が用いられる。また、本実施の形態に係る画像復号装置の動作フローは、図8、図9および図32に示された実施の形態6と同様であるので、説明を省略する。
本実施の形態では、パイプライン処理の構成が実施の形態6とは異なる。図37は、パイプライン処理の時系列の動作を示す。図37において、右上がりの斜線でハッチングされたブロックは、青の色差(Cb)のブロックを示し、左上がりの斜線でハッチングされたブロックは、赤の色差(Cr)のブロックを示す。
図37に示すように、本実施の形態に係る画像復号装置は、CU0を、CU0aY〜CU0dY、CU0Cb、CU0Crの6つのブロックに分割して、パイプライン処理を実行する。ここで、CU0は、128x128画素の1つの符号化ユニットである。CU0aY〜CU0dYは、それぞれ、輝度のブロックである。CU0Cbは、青の色差のブロックである。CU0Crは、赤の色差のブロックである。
本実施の形態では、第3ステージの動き補償処理において、CU0が輝度データと色差データとに分割されずに、CU0a〜CU0dとして扱われる。また、動き補償処理が、第3ステージの逆量子化処理と同時に行われる。これらの点が実施の形態6とは異なっている。
図9のフローチャートでは、説明のため、逆周波数変換処理(S1003)が終わった後に、動き補償処理(S1005)が実行されている。しかし、実際には、動き補償処理(S1005)は、動きベクトルが可変長復号されていれば、実行可能である。したがって、逆量子化処理(S1002)および逆周波数変換処理(S1003)が終わっていなくても、動き補償処理(S1005)は実行可能である。
したがって、本実施の形態に係る画像復号装置は、CU0aY〜CU0dY、CU0Cb、CU0Crの逆量子化処理および逆周波数変換処理と同時に、動き補償処理を行う。
これにより、本実施の形態に係る画像復号装置は、演算量の大きい動き補償処理を輝度および色差について並列に同時に行うことができる。したがって、回路の構成が容易になり、性能の向上が可能になる。
(7−4.補足)
なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素〜8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
また、本実施の形態では、フォーマットが4:2:0である場合の例が示されている。しかし、4:2:2、または、4:4:4等の他のフォーマットでも、同様の処理が可能である。
また、本実施の形態では、第3ステージの動き補償処理が、第2ステージの逆量子化と同時に開始されている。しかし、動き補償処理は、動きベクトルの可変長復号処理が終わっていれば、第1ステージの可変長復号処理の実行中に開始されてもよいし、あるいはもっと遅れて開始されても構わない。
また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
以下、実施の形態8〜実施の形態15において、上述の実施の形態1〜実施の形態7で示された特徴的な構成要素を示す。
(実施の形態8)
図38は、実施の形態8に係る画像処理装置の構成を示す構成図である。図38に示された画像処理装置2100は、制御部2110および複数の第1処理部2111を備える。複数の第1処理部2111は、処理部2121および処理部2122を含む。すなわち、処理部2121および処理部2122は、それぞれ、第1処理部である。
画像処理装置2100は、符号化ストリームに対して、パイプライン方式で複数の第1処理を施す。符号化ストリームは、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる。
複数の第1処理部2111は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す。その際、複数の第1処理部2111に含まれる処理部2121および処理部2122は、それぞれ、複数の第1処理のいずれかを実行する。
制御部2110は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する。そして、制御部2110は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2111を制御する。
図39は、図38に示された画像処理装置2100の動作を示すフローチャートである。
まず、制御部2110は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2101)。そして、制御部2110は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2111を制御する。
次に、複数の第1処理部2111は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2102)。その際、複数の第1処理部2111に含まれる処理部2121および処理部2122は、それぞれ、複数の第1処理のいずれかを実行する(S2111、S2112)。
これにより、複数の第1処理部2111は、ひとつのサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
なお、複数の第1処理部2111は、符号化ストリームに対して、画像を復号するための複数の第1処理を施してもよい。
また、制御部2110は、符号化ストリームを構成する符号化単位ブロックを分割することにより、符号化ストリームを複数の第1処理単位ブロックに分割してもよい。または、符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、符号化ストリームを複数の第1処理単位ブロックに分割してもよい。
また、制御部2110は、複数の第1処理単位ブロックのそれぞれに対して複数の第1処理のそれぞれが所定の期間で実行されるように、複数の第1処理部2111を制御してもよい。所定の期間は、例えば、所定の数のタイムスロットである。
また、符号化単位ブロックは、画面間予測と画面内予測との切り替え可能な最小単位であってもよい。
また、上述の第1サイズは、最も大きい符号化単位ブロックのサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい符号化単位ブロックのサイズとして予め定められたサイズでもよい。
また、上述の第1サイズは、最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最大符号化ユニットのサイズとして予め定められたサイズでもよい。
また、上述の第1サイズは、最も大きい周波数変換ブロックのサイズとして予め定められたサイズでもよい。周波数変換ブロックは、符号化処理における周波数変換のためのデータ単位、または、復号処理における逆周波数変換のためのデータ単位である。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい周波数変換ブロックのサイズとして予め定められたサイズでもよい。
また、上述の第1サイズは、最も大きい周波数変換ブロックである最も大きい周波数変換ユニット(Transform Unit)のサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい周波数変換ユニットのサイズとして予め定められたサイズでもよい。
(実施の形態9)
図40は、実施の形態9に係る画像処理装置の構成を示す構成図である。図40に示された画像処理装置2200は、制御部2210および複数の第1処理部2211を備える。
複数の第1処理部2211は、処理部2221、処理部2222および処理部2223を含む。また、複数の第1処理部2211は、複数の第2処理部2212を含む。複数の第2処理部2212は、処理部2222および処理部2223を含む。すなわち、処理部2221は、第1処理部である。また、処理部2222および処理部2223は、それぞれ、第1処理部であり、かつ、第2処理部である。
画像処理装置2200は、実施の形態8の画像処理装置2100と同様に、符号化ストリームに対して、パイプライン方式で複数の第1処理を施す。
複数の第1処理部2211は、実施の形態8の複数の第1処理部2111と同様に、符号化ストリームに対してパイプライン方式で複数の第1処理を施す。その際、複数の第1処理部2211に含まれる処理部2221、処理部2222および処理部2223は、それぞれ、複数の第1処理のいずれかを実行する。
複数の第2処理部2212は、複数の第1処理に含まれる複数の第2処理を実行する。
制御部2210は、実施の形態8の制御部2110と同様に、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する。そして、制御部2210は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2211を制御する。
また、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割する。そして、制御部2210は、複数の第2処理が第2処理単位ブロック毎に実行されるように、複数の第2処理部2212を制御する。
図41は、図40に示された画像処理装置2200の動作を示すフローチャートである。
まず、制御部2210は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2201)。そして、制御部2210は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2211を制御する。
次に、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割する(S2202)。そして、制御部2210は、複数の第2処理が第2処理単位ブロック毎に実行されるように、複数の第2処理部2212を制御する。
次に、複数の第1処理部2211は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2203)。その際、複数の第1処理部2211に含まれる処理部2221、処理部2222および処理部2223は、それぞれ、複数の第1処理のいずれかを実行する(S2211、S2212、S2213)。
上述の動作に伴って、複数の第2処理部2212は、複数の第2処理を実行する(S2204)。その際、複数の第2処理部2212に含まれる処理部2222および処理部2223は、それぞれ、複数の第2処理のいずれかを実行する(S2211、S2212)。
これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
なお、制御部2210は、複数の第1処理単位ブロックを、それぞれのサイズが第1サイズ以下である複数の第2処理単位ブロックに分割してもよい。これによっても、パイプライン処理が小さいサイズで実行される。したがって、動作効率が向上する。
また、制御部2210は、輝度情報と色差情報とが分割されるように、複数の第1処理単位ブロックを複数の第2処理単位ブロックに分割してもよい。これにより、輝度情報と色差情報とが別々に処理される。そして、パイプライン処理が小さいサイズで実行され、動作効率が向上する。
また、複数の第1処理部2211は、動き補償処理を実行する動き補償処理部を含んでいてもよい。
そして、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割してもよい。その際、制御部2210は、輝度情報と色差情報とが1つの第3処理単位ブロックに含まれるように、複数の第1処理単位ブロックを複数の第3処理単位ブロックに分割してもよい。そして、制御部2210は、動き補償処理が第3処理単位ブロック毎に実行されるように、動き補償処理部を制御してもよい。
これにより、動き補償処理において、輝度情報と色差情報とが一緒に処理される。したがって、動作の無駄が削減される。
(実施の形態10)
図42は、実施の形態10に係る画像処理装置の構成を示す構成図である。図42に示された画像処理装置2300は、制御部2310および複数の第1処理部2311を備える。複数の第1処理部2311は、処理部2321、動き補償処理部2322を含む。すなわち、処理部2321および動き補償処理部2322は、それぞれ、第1処理部である。
画像処理装置2300は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に、動作する。制御部2310、複数の第1処理部2311、処理部2321および動き補償処理部2322は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2300の各構成要素は、対応する構成要素と同様に、動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
動き補償処理部2322は、動き補償処理を実行する。動き補償処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2310は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2310は、動き補償処理が第1処理単位ブロック毎に実行されるように、動き補償処理部2322を制御する。予測ブロックは、予測処理のためのデータ単位である。
図43は、図42に示された画像処理装置2300の動作を示すフローチャートである。
まず、制御部2310は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2301)。そして、制御部2310は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2311を制御する。
また、この時、制御部2310は、動き補償処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2310は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2310は、動き補償処理が第1処理単位ブロック毎に実行されるように、動き補償処理部2322を制御する。
次に、複数の第1処理部2311は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2302)。その際、複数の第1処理部2311に含まれる処理部2321および動き補償処理部2322は、それぞれ、複数の第1処理のいずれかを実行する(S2311、S2312)。特に、動き補償処理部2322は、複数の第1処理に含まれる動き補償処理を実行する(S2312)。
これにより、動き補償処理部2322と他の処理部との間で交換される情報量が低減される。したがって、回路規模の縮小が可能になる。
(実施の形態11)
図44は、実施の形態11に係る画像処理装置の構成を示す構成図である。図44に示された画像処理装置2400は、制御部2410および複数の第1処理部2411を備える。複数の第1処理部2411は、処理部2421、面内予測処理部2422を含む。すなわち、処理部2421および面内予測処理部2422は、それぞれ、第1処理部である。
画像処理装置2400は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に動作する。制御部2410、複数の第1処理部2411、処理部2421および面内予測処理部2422は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2400の各構成要素は、対応する構成要素と同様に動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
面内予測処理部2422は、面内予測処理を実行する。面内予測処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2410は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2410は、面内予測処理が第1処理単位ブロック毎に実行されるように、面内予測処理部2422を制御する。予測ブロックは、予測処理のためのデータ単位である。
図45は、図44に示された画像処理装置2400の動作を示すフローチャートである。
まず、制御部2410は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2401)。そして、制御部2410は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2411を制御する。
また、この時、制御部2410は、面内予測処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2410は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2410は、面内予測処理が第1処理単位ブロック毎に実行されるように、面内予測処理部2422を制御する。
次に、複数の第1処理部2411は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2402)。その際、複数の第1処理部2411に含まれる処理部2421および面内予測処理部2422は、それぞれ、複数の第1処理のいずれかを実行する(S2411、S2412)。特に、面内予測処理部2422は、複数の第1処理に含まれる面内予測処理を実行する(S2412)。
これにより、面内予測処理部2422と他の処理部との間で交換される情報量が低減される。したがって、回路規模の縮小が可能になる。
(実施の形態12)
図46は、実施の形態12に係る画像処理装置の構成を示す構成図である。図46に示された画像処理装置2500は、制御部2510および複数の第1処理部2511を備える。複数の第1処理部2511は、処理部2521、デブロックフィルタ処理部2522を含む。すなわち、処理部2521およびデブロックフィルタ処理部2522は、それぞれ、第1処理部である。
画像処理装置2500は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に、動作する。制御部2510、複数の第1処理部2511、処理部2521およびデブロックフィルタ処理部2522は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2500の各構成要素は、対応する構成要素と同様に、動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
デブロックフィルタ処理部2522は、周波数変換ブロック等のブロックの境界における符号化歪みを除去するためのデブロックフィルタ処理を実行する。制御部2510は、画像が符号化される時に周波数変換処理が実行された順序に従って、デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、デブロックフィルタ処理部2522を制御する。
図47は、図46に示された画像処理装置2500の動作を示すフローチャートである。
まず、制御部2510は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2501)。そして、制御部2510は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2511を制御する。また、この時、制御部2510は、画像が符号化される時に周波数変換処理が実行された順序に従って、デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、デブロックフィルタ処理部2522を制御する。
次に、複数の第1処理部2511は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2502)。その際、複数の第1処理部2511に含まれる処理部2521およびデブロックフィルタ処理部2522は、それぞれ、複数の第1処理のいずれかを実行する(S2511、S2512)。特に、デブロックフィルタ処理部2522は、複数の第1処理に含まれるデブロックフィルタ処理を実行する(S2512)。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
(実施の形態13)
図48は、実施の形態13に係る画像符号化装置の構成を示す構成図である。図48に示された画像符号化装置2600は、符号化処理部2610およびデブロックフィルタ処理部2611を備える。画像符号化装置2600は、画像を符号化する。
図49は、図48に示された画像符号化装置2600の動作を示すフローチャートである。
まず、符号化処理部2610は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像を分割する。そして、符号化処理部2610は、画像に対して符号化単位ブロック毎に符号化処理を実行する(S2601)。符号化処理には、例えば、周波数変換処理、量子化処理、可変長符号化処理、逆量子化処理、逆周波数変換処理、動き補償処理および面内予測処理等が含まれていてもよい。
次に、デブロックフィルタ処理部2611は、符号化単位ブロックに対して符号化処理が実行された順序に従って、デブロックフィルタ処理を符号化単位ブロック毎に実行する(S2602)。例えば、デブロックフィルタ処理部2611は、図26で示された順序で、デブロックフィルタ処理を実行する。デブロックフィルタ処理が施された符号化単位ブロックは、参照画像として、後続の符号化単位ブロックに対する動き補償処理等の符号化処理で用いられる。
これにより、デブロックフィルタ処理と、前段の処理との間の空き時間が削減される。したがって、動作効率が向上する。また、典型的には、符号化側と復号側とで同じ順序が用いられる。したがって、復号側の動作効率も向上する。
なお、デブロックフィルタ処理部2611は、符号化処理が実行された順序によらず、デブロックフィルタ処理(S2602)を実行してもよい。そして、デブロックフィルタ処理部2611は、デブロックフィルタ処理を符号化単位ブロック毎とは異なる所定のデータ単位毎に実行してもよい。例えば、デブロックフィルタ処理部2611は、図25のように、デブロックフィルタ処理を、所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行してもよい。
(実施の形態14)
図50は、実施の形態14に係る画像符号化装置の構成を示す構成図である。図50に示された画像符号化装置2700は、周波数変換処理部2710およびデブロックフィルタ処理部2711を備える。画像符号化装置2700は、画像を符号化単位ブロック毎に符号化する。
図51は、図50に示された画像符号化装置2700の動作を示すフローチャートである。
まず、周波数変換処理部2710は、画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割する。そして、周波数変換処理部2710は、符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する(S2701)。
次に、デブロックフィルタ処理部2711は、符号化単位ブロックに対して周波数変換処理が実行された順序に従って、デブロックフィルタ処理を周波数変換ブロック毎に実行する(S2702)。
これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
(実施の形態15)
図52は、実施の形態15に係る画像符号化装置の構成を示す構成図である。図52に示された画像符号化装置2800は、周波数変換処理部2810および符号化処理部2811を備える。画像符号化装置2800は、画像を符号化単位ブロック毎に符号化する。
図53は、図52に示された画像符号化装置2800の動作を示すフローチャートである。
まず、周波数変換処理部2810は、画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割する。そして、周波数変換処理部2810は、符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する(S2801)。
次に、符号化処理部2811は、周波数変換処理が実行された符号化単位ブロックを符号化する。例えば、符号化処理部2811は、可変長符号化処理を実行する。そして、符号化処理部2811は、画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する(S2802)。例えば、符号化処理部2811は、図5Aおよび図5Bに示された符号化ストリームのように、輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する。
図54は、本実施の形態に係る符号化ストリームの例を示す図である。図54の例では、符号化単位ブロックは、4つの周波数変換ブロックA、B、C、Dを含む。そして、各周波数変換ブロックに対応する係数情報は、輝度情報(Y)および色差情報(Cb、Cr)を含む。すなわち、符号化処理部2811は、図54のように、輝度情報(Y)および色差情報(Cb、Cr)が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する。
これにより、復号側でも、輝度情報および色差情報を分けることなく、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。したがって、動作効率が向上する。
なお、符号化ストリームは、第1周波数変換ブロックの輝度情報、第1周波数変換ブロックの色差情報、第2周波数変換ブロックの輝度情報、第2周波数変換ブロックの色差情報というような順序で、構成されていてもよい。すなわち、輝度情報および色差情報がそれぞれ独立して符号化ストリームに含まれ、かつ、輝度情報および色差情報が周波数変換ブロック毎に一緒にまとめられていてもよい。このような構成でも、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。
以上、本発明に係る画像処理装置、画像復号装置および画像符号化装置について、複数の実施の形態に基づいて説明したが、本発明はそれらの実施の形態に限定されるものではない。それらの実施の形態に対して当業者が思いつく変形を施して得られる形態、および、それらの実施の形態における構成要素を任意に組み合わせて実現される別の形態も本発明に含まれる。
例えば、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。
また、本発明は、画像処理装置、画像復号装置または画像符号化装置として実現できるだけでなく、画像処理装置、画像復号装置または画像符号化装置を構成する処理手段をステップとする方法として実現できる。例えば、それらのステップは、コンピュータによって実行される。そして、本発明は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体として実現できる。
また、画像処理装置、画像復号装置または画像符号化装置に含まれる複数の構成要素は、集積回路であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。例えば、メモリ以外の構成要素が、1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSIまたはウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、画像処理装置、画像復号装置または画像符号化装置に含まれる構成要素の集積回路化を行ってもよい。
(実施の形態16)
上記各実施の形態で示した画像符号化方法および画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらに、ここで、上記各実施の形態で示した画像符号化方法および画像復号方法の応用例とそれを用いたシステムを説明する。
図55は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106〜ex110が設置されている。
このコンテンツ供給システムex100では、電話網ex104、および、基地局ex106〜ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が相互に接続される。また、各機器が、インターネットサービスプロバイダex102を介して、インターネットex101に接続されている。
しかし、コンテンツ供給システムex100は、図55のような構成に限定されず、いずれかの要素を組み合せて接続するようにしてもよい。また、固定無線局である基地局ex106〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113は、デジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116は、デジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、LTE(Long Term Evolution)方式、若しくは、HSPA(High Speed Packet Access)方式の携帯電話、または、PHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して、上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は、要求のあったクライアントに対して、送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
なお、撮影したデータの符号化処理は、カメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理は、クライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理は、カメラex116、コンピュータex111およびストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化処理および復号処理は、一般的にコンピュータex111および各機器が有するLSI(Large Scale Integration)ex500において実行される。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、画像符号化用のソフトウェアまたは画像復号用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化処理または復号処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画像データを送信してもよい。このときの動画像データは、携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は、複数のサーバまたは複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利および設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図56に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも画像符号化装置または画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または衛星ex202に伝送される。このビットストリームは、上記各実施の形態で説明した画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
また、記録媒体であるCDおよびDVD等の記録メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または、記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した画像復号装置または画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置およびシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に画像復号装置を組み込んでもよい。
図57は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)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の構成を図58に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図59に光ディスクである記録メディア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の構成は例えば図57に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111および携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器および復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
このように、上記各実施の形態で示した画像符号化方法あるいは画像復号方法を上述したいずれの機器またはシステムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態17)
本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現する。実現した形態を図60に示す。フレームメモリ502をDRAM上に実現し、その他の回路およびメモリをLSI上に構成している。符号化ストリームを格納するビットストリームバッファをDRAM上に実現してもよい。
これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話、テレビ、デジタルビデオレコーダー、デジタルビデオカメラおよびカーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶、PDP(プラズマディスプレイパネル)および有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
また、本実施の形態におけるLSIは、符号化ストリームを蓄積するビットストリームバッファ、および、画像を蓄積するフレームメモリ等を備えるDRAM(Dynamic Random Access Memory)と連携することにより、符号化処理または復号処理を行ってもよい。また、本実施の形態におけるLSIは、DRAMではなく、eDRAM(embeded DRAM)、SRAM(Static Random Access Memory)、または、ハードディスクなど他の記憶装置と連携しても構わない。
(実施の形態18)
上記各実施の形態で示した画像符号化装置、画像復号装置、画像符号化方法および画像復号方法は、典型的には集積回路であるLSIで実現される。一例として、図61に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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本発明に係る画像処理装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器、または、撮像機器に利用可能であり、利用価値が高い。
501、2110、2210、2310、2410、2510、ex310 制御部
502 フレームメモリ
503 可変長復号部
504 逆量子化部
505 逆周波数変換部
506、520 動き補償部
507、521、710 面内予測部
508、712 再構成部
509 再構成画像メモリ
510 デブロックフィルタ部
511、ex511 メモリ
601 動き補償ブロック分割部
602 参照画像取得部
603 動き補償演算部
701 面内予測ブロック分割部
702 再構成画像取得部
703 面内予測演算部
711 スイッチ
2100、2200、2300、2400、2500 画像処理装置
2121、2122、2221、2222、2223、2321、2421、2521 処理部
2111、2211、2311、2411、2511 複数の第1処理部
2212 複数の第2処理部
2322 動き補償処理部
2422 面内予測処理部
2522、2611、2711 デブロックフィルタ処理部
2600、2700、2800 画像符号化装置
2610、2811 符号化処理部
2710、2810 周波数変換処理部
ex100 コンテンツ供給システム
ex101 インターネット
ex102 インターネットサービスプロバイダ
ex103 ストリーミングサーバ
ex104 電話網
ex106、ex107、ex108、ex109、ex110 基地局
ex111 コンピュータ
ex112 PDA(Personal Digital Assistant)
ex113、ex116 カメラ
ex114 携帯電話
ex115 ゲーム機
ex117 マイク
ex200 デジタル放送用システム
ex201 放送局
ex202 放送衛星(衛星)
ex203 ケーブル
ex204、ex205 アンテナ
ex210 車
ex211 カーナビゲーション(カーナビ)
ex212 再生装置
ex213、ex219 モニタ
ex214、ex215、ex216 記録メディア
ex217 セットトップボックス(STB)
ex218 リーダ/レコーダ
ex220 リモートコントローラ
ex230 情報トラック
ex231 記録ブロック
ex232 内周領域
ex233 データ記録領域
ex234 外周領域
ex300 テレビ(受信機)
ex301 チューナ
ex302 変調/復調部
ex303 多重/分離部
ex304 音声信号処理部
ex305 映像信号処理部
ex306、ex507 信号処理部
ex307 スピーカ
ex308 表示部
ex309 出力部
ex311、ex505 電源回路部
ex312 操作入力部
ex313 ブリッジ
ex314 スロット部
ex315 ドライバ
ex316 モデム
ex317 インタフェース部
ex318、ex319、ex320、ex321、ex404 バッファ
ex400 情報再生/記録部
ex401 光ヘッド
ex402 変調記録部
ex403 再生復調部
ex405 ディスクモータ
ex406 サーボ制御部
ex407 システム制御部
ex500 LSI
ex502 マイコン(マイクロコンピュータ)
ex503 メモリコントローラ
ex504 ストリームI/O
ex509 AV I/O
ex510 バス

Claims (22)

  1. 少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理装置であって、
    それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、
    前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える
    画像処理装置。
  2. 前記複数の第1処理部は、前記符号化ストリームに対して、前記画像を復号するための前記複数の第1処理を施す
    請求項1に記載の画像処理装置。
  3. 前記制御部は、前記符号化ストリームを構成する符号化単位ブロックを分割することにより、または、前記符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、前記符号化ストリームを前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
    請求項1または2に記載の画像処理装置。
  4. 前記制御部は、前記複数の第1処理単位ブロックのそれぞれに対して前記複数の第1処理のそれぞれが所定の期間で実行されるように、前記複数の第1処理部を制御する
    請求項1〜3のいずれか1項に記載の画像処理装置。
  5. 前記制御部は、それぞれが画面間予測と画面内予測との切り替え可能な最小単位である前記複数の符号化単位ブロックに前記画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる前記符号化ストリームを、前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
    請求項1〜4のいずれか1項に記載の画像処理装置。
  6. 前記制御部は、前記符号化ストリームを、最も大きい符号化単位ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
    請求項1〜5のいずれか1項に記載の画像処理装置。
  7. 前記制御部は、前記符号化ストリームを、前記最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
    請求項6に記載の画像処理装置。
  8. 前記制御部は、前記符号化ストリームを、最も大きい周波数変換ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
    請求項1〜5のいずれか1項に記載の画像処理装置。
  9. 前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、
    前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御する
    請求項1〜8のいずれか1項に記載の画像処理装置。
  10. 前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、
    前記制御部は、前記複数の第1処理単位ブロックを、それぞれのサイズが前記第1サイズ以下である複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御する
    請求項1〜8のいずれか1項に記載の画像処理装置。
  11. 前記制御部は、輝度情報と色差情報とが分割されるように、前記複数の第1処理単位ブロックを前記複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御する
    請求項10に記載の画像処理装置。
  12. 前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、
    前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割し、前記動き補償処理が第3処理単位ブロック毎に実行されるように、前記動き補償処理部を制御し、
    前記制御部は、前記輝度情報と前記色差情報とが1つの第3処理単位ブロックに含まれるように、前記複数の第1処理単位ブロックを前記複数の第3処理単位ブロックに分割する
    請求項11に記載の画像処理装置。
  13. 前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、
    前記制御部は、前記動き補償処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記動き補償処理が第1処理単位ブロック毎に実行されるように、前記動き補償処理部を制御する
    請求項8に記載の画像処理装置。
  14. 前記複数の第1処理部は、面内予測処理を実行する面内予測処理部を含み、
    前記制御部は、前記面内予測処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記面内予測処理が第1処理単位ブロック毎に実行されるように、前記面内予測処理部を制御する
    請求項8に記載の画像処理装置。
  15. 前記複数の第1処理部は、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を実行するデブロックフィルタ処理部を含み、
    前記制御部は、前記画像が符号化される時に周波数変換処理が実行された順序に従って、前記デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、前記デブロックフィルタ処理部を制御する
    請求項8、13または14に記載の画像処理装置。
  16. 画像を符号化する画像符号化方法であって、
    少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、
    前記符号化処理が実行された前記画像に含まれるブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を、符号化単位ブロック毎とは異なる所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行するデブロックフィルタ処理ステップとを含む
    画像符号化方法。
  17. 画像を符号化する画像符号化方法であって、
    少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、
    前記画像に対して前記符号化処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を符号化単位ブロック毎に実行するデブロックフィルタ処理ステップとを含む
    画像符号化方法。
  18. 画像を符号化単位ブロック毎に符号化する画像符号化方法であって、
    前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、
    前記符号化単位ブロックに対して前記周波数変換処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を周波数変換ブロック毎に実行するデブロックフィルタ処理ステップとを含む
    画像符号化方法。
  19. 画像を符号化単位ブロック毎に符号化する画像符号化方法であって、
    前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、
    前記周波数変換処理が実行された前記符号化単位ブロックを符号化して、前記画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する符号化処理ステップとを含む
    画像符号化方法。
  20. 少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理方法であって、
    それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理ステップと、
    前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理ステップを制御する制御ステップとを含む
    画像処理方法。
  21. 請求項20に記載の画像処理方法に含まれるステップをコンピュータに実行させるためのプログラム。
  22. 少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す集積回路であって、
    それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、
    前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える
    集積回路。
JP2012537581A 2010-10-04 2011-10-03 画像処理装置、画像符号化方法および画像処理方法 Pending JPWO2012046435A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010224547 2010-10-04
JP2010224547 2010-10-04
PCT/JP2011/005575 WO2012046435A1 (ja) 2010-10-04 2011-10-03 画像処理装置、画像符号化方法および画像処理方法

Publications (1)

Publication Number Publication Date
JPWO2012046435A1 true JPWO2012046435A1 (ja) 2014-02-24

Family

ID=45927441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012537581A Pending JPWO2012046435A1 (ja) 2010-10-04 2011-10-03 画像処理装置、画像符号化方法および画像処理方法

Country Status (4)

Country Link
US (1) US9414059B2 (ja)
JP (1) JPWO2012046435A1 (ja)
CN (1) CN103125119B (ja)
WO (1) WO2012046435A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674528B2 (en) 2011-11-21 2017-06-06 Panasonic Intellectual Property Management Co., Ltd. Image processing apparatus and image processing method
CN103765903B (zh) 2012-01-18 2017-09-01 松下知识产权经营株式会社 图像解码装置、图像编码装置、图像解码方法及图像编码方法
JP2014007469A (ja) * 2012-06-21 2014-01-16 Canon Inc 画像符号化装置及び画像符号化方法
CN103338374B (zh) * 2013-06-21 2016-07-06 华为技术有限公司 图像处理方法及装置
WO2015015681A1 (ja) * 2013-07-31 2015-02-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像符号化方法および画像符号化装置
GB2520310A (en) * 2013-11-15 2015-05-20 Sony Corp A method, server, client and software
CN106134192B (zh) * 2014-03-25 2020-08-11 株式会社索思未来 图像解码装置、图像解码方法及集成电路
JP6528765B2 (ja) * 2014-03-28 2019-06-12 ソニー株式会社 画像復号装置および方法
CN103997650B (zh) * 2014-05-30 2017-07-14 华为技术有限公司 一种视频解码的方法和视频解码器
US20160029022A1 (en) * 2014-07-25 2016-01-28 Mediatek Inc. Video processing apparatus with adaptive coding unit splitting/merging and related video processing method
CN105451025B (zh) * 2014-07-31 2019-03-01 富士通株式会社 图像处理方法以及装置
CN105874800B (zh) * 2014-09-17 2019-05-10 联发科技股份有限公司 句法解析装置和句法解析方法
US10091530B2 (en) * 2014-10-01 2018-10-02 Qualcomm Incorporated Pipelined intra-prediction hardware architecture for video coding
EP3276958A4 (en) * 2015-03-23 2018-08-29 LG Electronics Inc. Method for processing image on basis of intra prediction mode and apparatus therefor
CN107710757B (zh) * 2015-06-04 2021-08-10 英特尔公司 用于缓慢运动视频记录的自适应批量编码
KR102171119B1 (ko) * 2015-11-05 2020-10-28 삼성전자주식회사 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
US10846142B2 (en) 2016-02-23 2020-11-24 Intel Corporation Graphics processor workload acceleration using a command template for batch usage scenarios
WO2018020299A1 (en) * 2016-07-29 2018-02-01 Chan Kam Fu Lossless compression and decompression methods
WO2019053915A1 (ja) * 2017-09-15 2019-03-21 富士ゼロックス株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
JP7082529B2 (ja) * 2018-06-06 2022-06-08 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置による処理方法
AU2018217336A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
AU2018217333A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
WO2020137643A1 (ja) * 2018-12-28 2020-07-02 ソニー株式会社 画像処理装置および方法
US20240080499A1 (en) * 2022-09-05 2024-03-07 Samsung Electronics Co.,Ltd. Video decoding device, operating method thereof, display device, and video system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001275116A (ja) * 2000-03-24 2001-10-05 Sharp Corp 画像処理装置
JP2005295526A (ja) * 2004-03-11 2005-10-20 Matsushita Electric Ind Co Ltd 画像符号化方法、画像符号化装置および画像符号化プログラム
JP2006311526A (ja) * 2005-03-31 2006-11-09 Matsushita Electric Ind Co Ltd 画像復号装置、画像復号方法、画像復号プログラム、画像復号集積回路
JP2008271127A (ja) * 2007-04-19 2008-11-06 Nec Electronics Corp 符号化装置
JP2009081830A (ja) * 2007-09-05 2009-04-16 Panasonic Corp 動画像圧縮符号化における符号化処理方法及び符号化処理装置
JP2010502102A (ja) * 2006-08-25 2010-01-21 トムソン ライセンシング 低減された解像度の分割の方法及び装置
JP2011041037A (ja) * 2009-08-12 2011-02-24 Sony Corp 画像処理装置および方法
WO2011161949A1 (ja) * 2010-06-23 2011-12-29 パナソニック株式会社 画像復号装置、画像復号方法、集積回路およびプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252549A (ja) 1998-02-27 1999-09-17 Toshiba Corp 画像符号化/復号化装置
CN1235411C (zh) 2003-10-17 2006-01-04 中国科学院计算技术研究所 基于流水线的帧内预测模式块编码加速方法
JP4289126B2 (ja) * 2003-11-04 2009-07-01 ソニー株式会社 データ処理装置およびその方法と符号化装置
US8588304B2 (en) 2005-03-31 2013-11-19 Panasonic Corporation Video decoding device, video decoding method, video decoding program, and video decoding integrated circuit
JPWO2008093698A1 (ja) * 2007-01-31 2010-05-20 ソニー株式会社 情報処理装置および方法
JP4254867B2 (ja) * 2007-01-31 2009-04-15 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US20090060039A1 (en) 2007-09-05 2009-03-05 Yasuharu Tanaka Method and apparatus for compression-encoding moving image
EP2238764A4 (en) * 2008-01-25 2015-04-22 Hewlett Packard Co CODE MODE SELECTION FOR BLOCK-BASED CODING
US8754895B2 (en) 2008-09-09 2014-06-17 Sony Corporation Pipelined image processing engine
CN101686388B (zh) * 2008-09-24 2013-06-05 国际商业机器公司 视频流编码装置及其方法
KR20100071865A (ko) 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치
US20100169892A1 (en) 2008-12-29 2010-07-01 Advanced Micro Devices, Inc. Processing Acceleration on Multi-Core Processor Platforms
JP5449791B2 (ja) 2009-02-02 2014-03-19 オリンパス株式会社 データ処理装置および画像処理装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001275116A (ja) * 2000-03-24 2001-10-05 Sharp Corp 画像処理装置
JP2005295526A (ja) * 2004-03-11 2005-10-20 Matsushita Electric Ind Co Ltd 画像符号化方法、画像符号化装置および画像符号化プログラム
JP2006311526A (ja) * 2005-03-31 2006-11-09 Matsushita Electric Ind Co Ltd 画像復号装置、画像復号方法、画像復号プログラム、画像復号集積回路
JP2010502102A (ja) * 2006-08-25 2010-01-21 トムソン ライセンシング 低減された解像度の分割の方法及び装置
JP2008271127A (ja) * 2007-04-19 2008-11-06 Nec Electronics Corp 符号化装置
JP2009081830A (ja) * 2007-09-05 2009-04-16 Panasonic Corp 動画像圧縮符号化における符号化処理方法及び符号化処理装置
JP2011041037A (ja) * 2009-08-12 2011-02-24 Sony Corp 画像処理装置および方法
WO2011161949A1 (ja) * 2010-06-23 2011-12-29 パナソニック株式会社 画像復号装置、画像復号方法、集積回路およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6011069300; 'Test Model under Consideration, Output Document (draft007)' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 1st M , 201007, ITU-T *

Also Published As

Publication number Publication date
US9414059B2 (en) 2016-08-09
US20130188723A1 (en) 2013-07-25
WO2012046435A1 (ja) 2012-04-12
CN103125119A (zh) 2013-05-29
CN103125119B (zh) 2016-10-26

Similar Documents

Publication Publication Date Title
WO2012046435A1 (ja) 画像処理装置、画像符号化方法および画像処理方法
JP6390883B2 (ja) 画像処理装置
JP5518069B2 (ja) 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法、プログラムおよび集積回路
JP5574345B2 (ja) 符号化方法、エラー検出方法、復号方法、符号化装置、エラー検出装置及び復号装置
WO2011161949A1 (ja) 画像復号装置、画像復号方法、集積回路およびプログラム
WO2012035730A1 (ja) 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置
US8718149B2 (en) Image coding method and image decoding method
WO2011048764A1 (ja) 復号装置、復号方法、プログラム、及び集積回路
WO2013108330A1 (ja) 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
JP5999515B2 (ja) 画像処理装置、及び、画像処理方法
JP6260921B2 (ja) 画像処理装置および画像処理方法
JP5546044B2 (ja) 画像復号装置、画像符号化装置、画像復号回路及び画像復号方法
JP5468604B2 (ja) 画像復号装置、集積回路、画像復号方法及び画像復号システム
WO2013076897A1 (ja) 画像処理装置および画像処理方法
WO2011129052A1 (ja) 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
JP2011182132A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、集積回路およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140605

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20141008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151222