JP2013118605A - 画像処理装置と画像処理方法 - Google Patents

画像処理装置と画像処理方法 Download PDF

Info

Publication number
JP2013118605A
JP2013118605A JP2012008966A JP2012008966A JP2013118605A JP 2013118605 A JP2013118605 A JP 2013118605A JP 2012008966 A JP2012008966 A JP 2012008966A JP 2012008966 A JP2012008966 A JP 2012008966A JP 2013118605 A JP2013118605 A JP 2013118605A
Authority
JP
Japan
Prior art keywords
unit
image
image data
tap
filter
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
JP2012008966A
Other languages
English (en)
Inventor
Masaru Ikeda
優 池田
Kazuya Ogawa
一哉 小川
Hisaji Nakagami
央二 中神
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.)
Sony Corp
Original Assignee
Sony Corp
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
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2012008966A priority Critical patent/JP2013118605A/ja
Priority to PCT/JP2012/063280 priority patent/WO2013001945A1/ja
Priority to US14/116,053 priority patent/US20140086501A1/en
Priority to CN201280030358.8A priority patent/CN103621080A/zh
Publication of JP2013118605A publication Critical patent/JP2013118605A/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/182Methods 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 a pixel
    • 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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Picture Signal Circuits (AREA)
  • Image Processing (AREA)

Abstract

【課題】ループフィルタ処理で用いるラインメモリのメモリ容量を削減できるようにする。
【解決手段】フィルタ演算部264は、復号処理して生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う。フィルタ制御部269は、ブロック内のタップ位置を判別して、タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなくフィルタ演算を行うように、所定範囲内のタップの画像データの置き換えまたは係数セットの変更を行う。
【選択図】 図8

Description

この技術は、画像処理装置と画像処理方法に関する。詳しくは、ブロック単位で符号化処理と復号処理が行われた画像のループフィルタ処理で用いるラインメモリのメモリ容量を削減できるようにする。
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEG2(ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)13818-2)などの方式に準拠した装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及している。また、MPEG2等に比べ、その符号化、復号により多くの演算量が要求されるものの、より高い符号化効率が実現されることができるH.264およびMPEG4 Part10(AVC(Advanced Video Coding))と呼ばれる方式も用いられるようになった。さらに、昨今、ハイビジョン画像の4倍の4000×2000画素程度の高解像度画像の圧縮や配信等を効率よく行うことができるように、次世代の画像符号化方式であるHEVC(High Efficiency Video Coding)の標準化作業が、ITU-TとISO/IECとの共同の標準化団体であるJCTVC (Joint Collaboration Team - Video Coding)により進められている。
このような高い符号化効率を実現する画像符号化方式では、適応ループフィルタ(ALF(Adaptive Loop Filter))を用いて、デブロッキングフィルタ処理で残ってしまったブロック歪みや量子化による歪みの低減がはかられている(特許文献1,非特許文献1)。
また、HEVCでは、非特許文献2に開示されているPQAO(Picture Quality Adaptive Offset)をデブロックフィルタと適応ループフィルタの間に設けることが検討されている。オフセットの種類としては、バンドオフセットと呼ばれるものが2種類、エッジオフセットと呼ばれるものが6種類あり、さらに、オフセットを適応しないことも可能である。そして、画像をquad-treeに分割し、それぞれの領域に、上述したどのオフセットの種類により符号化するかを選択することで符号化効率を向上させる。
特開2011−49740号公報
Ken.McCann (Samsung/ZetaCast),Benjamin.Bross (HHI),Shun-ichi.Sekiguchi (Mitsubishi),Woo-Jin.Han (Samsung),"JCTVC-E602 HM3: High Efficiency Video Coding (HEVC) Test Model 3 Encoder Description",Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,5th Meeting: Geneva, CH, 16-23 March, 2011 "CE8 Subtest 3:Picture Quality Adaptive Offset",JCTVC-D122,2011年1月
適応ループフィルタでは、適応ループフィルタの処理対象画素に対してタップを設定して、タップの画像データを用いてフィルタ演算が行われる。タップは適応ループフィルタの前段に設けられたフィルタのフィルタ処理範囲に含まれる。すなわち、ループフィルタ処理では、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後の画像データが必要となる。したがって、ループフィルタ処理を行う画像処理装置は、画像をブロック単位でラスタースキャン方向に処理する場合に、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように、境界から所定ライン数分の画像データをラインメモリに記憶する。
このように、画像処理装置は、タップが適応ループフィルタの前段に設けられたフィルタのフィルタ処理範囲に含まれる場合、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように、境界から所定ライン数分の画像データを記憶する必要がある。このため、水平方向の画素数が多くなると、メモリ容量の大きいラインメモリが必要となる。
そこで、この技術ではループフィルタ処理で用いるラインメモリのメモリ容量を削減できる画像処理装置と画像処理方法を提供する。
この技術の第1の側面は、符号化された画像を復号処理して画像を生成する復号部と、前記復号部により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部とを備える画像処理装置にある。
この技術においては、符号化された画像を復号処理して得られた画像のフィルタ処理画素に対して構築されたタップと係数セットを用いてフィルタ演算が行われる。タップ位置が下側ブロック境界から所定範囲内、例えばデブロッキングフィルタ処理のフィルタ処理範囲の位置である場合に、所定範囲の境界の外側に隣接する画素を垂直方向に複写して所定範囲内のタップとして用いるように、画像データの置き換えまたは係数セットの変更を行い、または、所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、所定範囲内のタップに対してミラー複写が行われた画素を用いるように、画像データの置き換えまたは係数セットの変更を行うことで、所定範囲内の画像データを用いることなくフィルタ演算が行われる。また、ブロック単位で符号化処理を行うことにより生成された符号化された画像に含められている係数セットの情報に基づいて、係数セットの構築が行われる。また、ブロック単位で符号化処理を行うことにより生成された符号化された画像に含められている係数セットの情報に基づいて、係数セットの構築が行われる。また、タップ位置が下側ブロック境界から所定範囲内の位置となることがないようにタップを縮小するようにしてもよい。
この技術の第2の側面は、符号化された画像を復号処理して画像を生成する工程と、前記復号処理により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と含む画像処理方法にある。
この技術の第3の側面は、画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と、前記フィルタ演算部によりフィルタ演算が行われた画像を用いて、前記画像を符号化する符号化部とを備える画像処理装置にある。
この技術においては、画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算が行われる。タップ位置が下側ブロック境界から所定範囲内、例えばデブロッキングフィルタ処理のフィルタ処理範囲の位置である場合に、所定範囲の境界の外側に隣接する画素を垂直方向に複写して所定範囲内のタップとして用いるように、画像データの置き換えまたは係数セットの変更を行い、または、所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、所定範囲内のタップに対してミラー複写が行われた画素を用いるように、画像データの置き換えまたは係数セットの変更を行うことで、所定範囲内の画像データを用いることなくフィルタ演算が行われる。また、フィルタ演算に用いた係数セットの情報は、ブロック単位で符号化処理を行うことにより生成される符号化された画像に含められる。また、タップ位置が所定範囲内の位置となる場合にフィルタ演算を行うことなく画像データを出力する処理の符号化コストと、所定範囲内のタップの画像データの置き換えまたは係数セットの変更を行う処理の符号化コストを比較して、比較結果に基づき何れかの処理が選択される。
この技術の第4の側面は、画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と、前記フィルタ演算が行われた画像を用いて、前記画像を符号化する工程とを含む画像処理方法にある。
この技術によれば、復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いたフィルタ演算が行われる。このため、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後の画像データを用いることなく適応ループフィルタ処理を行うことができるので、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように画像データを記憶するラインメモリのメモリ容量を削減できる。
従来のループフィルタ処理においてラインメモリに記憶する画像データを説明するための図である。 画像符号化装置に適用した場合の構成を示す図である。 画像符号化動作を示すフローチャートである。 イントラ予測処理を示すフローチャートである。 インター予測処理を示すフローチャートである。 画像復号装置に適用した場合の構成を示す図である。 画像復号動作を示すフローチャートである。 ループフィルタ処理部の第1の実施の形態の構成を示す図である。 ループフィルタ処理部の第1の実施の形態の動作を示すフローチャートである。 タップ形状を例示した図である。 第1の実施の形態におけるデブロッキングフィルタ処理対応のタップ構築を例示した図である。 第1の実施の形態におけるデブロッキングフィルタ処理対応の係数セット構築を例示した図である。 デブロッキングフィルタ処理対応のタップ構築または係数セット構築を行った場合にラインメモリに記憶する画像データを示す図である。 第2の実施の形態におけるデブロッキングフィルタ処理対応のタップ構築を例示した図である。 第2の実施の形態におけるデブロッキングフィルタ処理対応の係数セット構築を例示した図である。 ループフィルタ処理部の第3の実施の形態の構成を示す図である。 ループフィルタ処理部の第3の実施の形態の動作を示すフローチャートである。 ループフィルタがオフ状態とされる処理対象画素の位置を示した図である。 仮想境界を設定した場合の従来の処理を説明するための図である。 フィルタ形状を例示した図である。 下端ラインが境界を越える場合の処理を説明するための図である。 上端ラインが境界を越える場合の処理を説明するための図である。 下端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。 上端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。 画像符号化装置に適用した場合の他の構成を示す図である。 quad-tree構造を説明するための図である。 エッジオフセットを説明するための図である。 エッジオフセットの規則一覧表を示す図である。 ラインメモリに記憶する画像データ(輝度データ)の関係を示している。 ラインメモリに記憶する画像データ(色差データ)の関係を示している。 画像符号化装置に適用した場合の他の構成の動作を示すフローチャートである。 画像復号装置に適用した場合の他の構成を示す図である。 画像復号装置に適用した場合の他の構成の動作を示すフローチャートである。 タップを縮小する場合の処理を示すフローチャートである。 タップを縮小する場合のループフィルタ処理部の動作(輝度データ)を説明するための図である。 タップを縮小する場合のループフィルタ処理部の動作(色差データ)を説明するための図である。 タップ数を削減する場合にループフィルタ処理を行わないラインを設けた処理を示すフローチャートである。 SAO処理済み最終ラインでループフィルタ処理を行わないようにした場合のループフィルタ処理部の動作(輝度データ)を説明するための図である。 SAO処理済み最終ラインでループフィルタ処理を行わないようにした場合のループフィルタ処理部の動作(色差データ)を説明するための図である。 テレビジョン装置の概略的な構成の一例を示した図である。 携帯電話機の概略的な構成の一例を示した図である。 記録再生装置の概略的な構成の一例を示した図である。 撮像装置の概略的な構成の一例を示した図である。
以下、本技術を実施するための形態について説明する。なお、説明は以下の順序で行う。
1.従来のループフィルタ処理
2.画像符号化装置に適用した場合の構成
3.画像符号化装置の動作
4.画像復号装置に適用した場合の構成
5.画像復号装置の動作
6.ループフィルタ処理部の基本構成と動作
7.ループフィルタ処理部の第1の実施の形態
8.ループフィルタ処理部の第2の実施の形態
9.ループフィルタ処理部の第3の実施の形態
10.ループフィルタ処理部の第4の実施の形態
11.ループフィルタ処理部の第5の実施の形態
12.画像符号化装置に適用した場合の他の構成と動作
13.画像復号装置に適用した場合の他の構成と動作
14.ループフィルタ処理部の第6の実施の形態
15.応用例
<1.従来のループフィルタ処理>
画像をブロック単位でラスタースキャン方向に処理する場合、ループフィルタの前段に設けられたフィルタ(例えばデブロッキングフィルタ)のフィルタ処理における垂直フィルタは、ループフィルタ処理を行うブロック(カレントブロック)と、カレントブロックの下側に隣接するブロックの画像データを用いて行われる。また、ループフィルタ処理は、デブロッキングフィルタ処理後の画像データを用いて行われる。このため、デブロッキングフィルタ処理後の画像データを用いてループフィルタ処理を行うことができるように、カレントブロックの所定ライン数分の画像データをラインメモリに記憶する。また、記憶している画像データと、下側に隣接するブロックの画像データを用いて行ったデブロッキングフィルタ処理後の画像データを用いて、ループフィルタ処理が行われる。
図1は、従来のループフィルタ処理においてラインメモリに記憶する画像データを説明するための図である。デブロッキングフィルタ処理における垂直フィルタでは、図1の(A)に示すように、列毎にブロック境界から例えば4ラインの画像データを用いてブロック境界から3ライン分のデブロッキングフィルタ処理後の画像データを生成する。なお、デブロッキングフィルタの処理対象画素を二重丸で示している。また、ブロック例えばLCU(Largest Coding Unit)aとLCUbのブロック境界を「BB」、デブロッキングフィルタのフィルタ処理範囲の上側境界を「DBU」、下側境界を「DBL」として示している。
適応ループフィルタでは、図1の(B),(C)に示すように、適応ループフィルタの処理対象画素(黒四角で示す)に対してタップを設定して、タップの画像データを用いてフィルタ演算が行われる。タップは例えば黒丸で示す位置と処理対象画素の位置に構築される。
ここで、図1の(B)に示すように、ループフィルタ処理の対象画素がブロック境界BBから6ライン目の画素である場合、タップはデブロッキングフィルタのフィルタ処理範囲に含まれない。したがって、ループフィルタ処理を行う画像処理装置は、デブロッキングフィルタ処理後の画像データを用いることなくループフィルタ処理が可能である。しかし、図1の(C)に示すように、ループフィルタ処理の対象画素がブロック境界BBから5ライン目の画素となると、タップはデブロッキングフィルタのフィルタ処理範囲に含まれる。すなわち、ループフィルタ処理では、デブロッキングフィルタ処理後の画像データが必要となる。したがって、ループフィルタ処理を行う画像処理装置は、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように、ブロック境界BBから7ライン分の画像データをラインメモリに記憶する。
このように、画像処理装置は、タップがデブロッキングフィルタのフィルタ処理範囲に含まれる場合、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように、ブロック境界BBから所定ライン数分の画像データを記憶する必要がある。このため、水平方向の画素数が多くなると、メモリ容量の大きいラインメモリが必要となる。
<2.画像符号化装置に適用した場合の構成>
図2は、本技術の画像処理装置を画像符号化装置に適用した場合の構成を示している。画像符号化装置10は、アナログ/ディジタル変換部(A/D変換部)11、画面並べ替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。さらに、画像符号化装置10は、逆量子化部21、逆直交変換部22、加算部23、デブロッキングフィルタ処理部24、ループフィルタ処理部25、係数メモリ部26、フレームメモリ27、セレクタ29、イントラ予測部31、動き予測・補償部32、予測画像・最適モード選択部33を備えている。
A/D変換部11は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ12に出力する。
画面並べ替えバッファ12は、A/D変換部11から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部13とイントラ予測部31と動き予測・補償部32に出力する。
減算部13には、画面並べ替えバッファ12から出力された画像データと、後述する予測画像・最適モード選択部33で選択された予測画像データが供給される。減算部13は、画面並べ替えバッファ12から出力された画像データと予測画像・最適モード選択部33から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部14に出力する。
直交変換部14は、減算部13から出力された予測誤差データに対して、離散コサイン変換(DCT;Discrete Cosine Transform)、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部14は、直交変換処理を行うことにより得られた変換係数データを量子化部15に出力する。
量子化部15には、直交変換部14から出力された変換係数データと、後述するレート制御部18からレート制御信号が供給されている。量子化部15は変換係数データの量子化を行い、量子化データを可逆符号化部16と逆量子化部21に出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づき量子化パラメータ(量子化スケール)を切り替えて、量子化データのビットレートを変化させる。
可逆符号化部16には、量子化部15から出力された量子化データと、後述するイントラ予測部31と動き予測・補償部32および予測画像・最適モード選択部33から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを識別可能とするマクロブロックタイプ、予測モード、動きベクトル情報、参照ピクチャ情報等が含まれる。可逆符号化部16は、量子化データに対して例えば可変長符号化、または算術符号化等により可逆符号化処理を行い、符号化された画像である符号化ストリームを生成して蓄積バッファ17に出力する。また、可逆符号化部16は、予測モード情報や後述する係数セットを示す情報等を可逆符号化して、符号化ストリームのヘッダ情報に付加する。
蓄積バッファ17は、可逆符号化部16からの符号化ストリームを蓄積する。また、蓄積バッファ17は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
レート制御部18は、蓄積バッファ17の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部15に出力する。レート制御部18は、例えば蓄積バッファ17から空き容量を示す情報を取得する。レート制御部18は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部18は蓄積バッファ17の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
逆量子化部21は、量子化部15から供給された量子化データの逆量子化処理を行う。逆量子化部21は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部22に出力する。
逆直交変換部22は、逆量子化部21から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部23に出力する。
加算部23は、逆直交変換部22から供給されたデータと予測画像・最適モード選択部33から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ処理部24とフレームメモリ27に出力する。
デブロッキングフィルタ処理部24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ処理部24は、加算部23から供給された復号画像データ、すなわちローカル復号処理された復号画像の画像データからブロック歪みを除去するフィルタ処理を行い、デブロッキングフィルタ処理後の画像データをループフィルタ処理部25に出力する。
ループフィルタ処理部25は、係数メモリ部26から供給された係数と復号画像データを用いて、適応ループフィルタ(ALF(Adaptive Loop Filter))処理を行う。ループフィルタ処理部25は、フィルタとして、例えばウィナーフィルタ(Wiener Filter)が用いられる。もちろんウィナーフィルタ以外のフィルタを用いてもよい。ループフィルタ処理部25は、フィルタ処理結果をフレームメモリ27に供給し、参照画像の画像データとして記憶させる。また、ループフィルタ処理部25は、ループフィルタ処理に用いた係数セットを示す情報を可逆符号化部16に供給して符号化ストリームに含めるようにする。なお、可逆符号化部16に供給する係数セットは、符号化効率が良好となるループフィルタ処理で用いる係数セットである。
フレームメモリ27は、加算部23から供給された復号画像データとループフィルタ処理部25から供給されたフィルタ処理後の復号画像データを参照画像の画像データとして保持する。
セレクタ29は、イントラ予測を行うためにフレームメモリ27から読み出されたフィルタ処理前の参照画像データをイントラ予測部31に供給する。また、セレクタ29は、インター予測を行うためフレームメモリ27から読み出されたフィルタ処理後の参照画像データを動き予測・補償部32に供給する。
イントラ予測部31は、画面並べ替えバッファ12から出力された符号化対象画像の画像データとフレームメモリ27から読み出したフィルタ処理前の参照画像データを用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部31は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部31は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、イントラ予測部31は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部16に出力する。
動き予測・補償部32は、マクロブロックに対応する全ての予測ブロックサイズで動き予測・補償処理を行う。動き予測・補償部32は、画面並べ替えバッファ12から読み出された符号化対象画像における各予測ブロックサイズの画像毎に、フレームメモリ27から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部32は、検出した動きベクトルに基づいて復号画像に動き補償処理を施して予測画像の生成を行う。また、動き予測・補償部32は、各予測ブロックサイズに対してコスト関数値を算出して、算出したコスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。なお、最適インター予測モードの選択では、ループフィルタ処理部で係数セット毎にフィルタ処理された参照画像データを用いて行い、係数セットも考慮して最適インター予測モードを選択する。動き予測・補償部32は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、動き予測・補償部32は、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部16に出力する。
予測画像・最適モード選択部33は、イントラ予測部31から供給されたコスト関数値と動き予測・補償部32から供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部33は、最適モードで生成した予測画像データを減算部13と加算部23に出力する。さらに、予測画像・最適モード選択部33は、最適モードの予測モード情報を可逆符号化部16に出力する。なお、予測画像・最適モード選択部33は、スライス単位でイントラ予測またはインター予測を行うようにしてもよい。
なお、請求項における符号化部は、予測画像データを生成するイントラ予測部31や動き予測・補償部32、予測画像・最適モード選択部33、減算部13、直交変換部14、量子化部15、可逆符号化部16等で構成される。
<3.画像符号化装置の動作>
図3は、画像符号化動作を示すフローチャートである。ステップST11において、A/D変換部11は入力された画像信号をA/D変換する。
ステップST12において画面並べ替えバッファ12は、画面並べ替えを行う。画面並べ替えバッファ12は、A/D変換部11より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップST13において減算部13は、予測誤差データの生成を行う。減算部13は、ステップST12で並べ替えられた画像の画像データと予測画像・最適モード選択部33で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。なお、予測画像・最適モード選択部33でイントラ予測部31から供給された予測画像と動き予測・補償部32からの予測画像の選択がスライス単位で行われる場合、イントラ予測部31から供給された予測画像が選択されたスライスでは、イントラ予測が行われる。また、動き予測・補償部32からの予測画像が選択されたスライスでは、インター予測が行われる。
ステップST14において直交変換部14は、直交変換処理を行う。直交変換部14は、減算部13から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
ステップST15において量子化部15は、量子化処理を行う。量子化部15は、変換係数データを量子化する。量子化に際しては、後述するステップST26の処理で説明されるように、レート制御が行われる。
ステップST16において逆量子化部21は、逆量子化処理を行う。逆量子化部21は、量子化部15により量子化された変換係数データを量子化部15の特性に対応する特性で逆量子化する。
ステップST17において逆直交変換部22は、逆直交変換処理を行う。逆直交変換部22は、逆量子化部21により逆量子化された変換係数データを直交変換部14の特性に対応する特性で逆直交変換する。
ステップST18において加算部23は、復号画像データの生成を行う。加算部23は、予測画像・最適モード選択部33から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、復号画像データを生成する。
ステップST19においてデブロッキングフィルタ処理部24は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部24は、加算部23より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
ステップST20においてループフィルタ処理部25は、ループフィルタ処理を行う。ループフィルタ処理部25は、デブロッキングフィルタ処理後の復号画像データをフィルタリングして、デブロッキングフィルタ処理で残ってしまったブロック歪みや量子化による歪みを低減する。
ステップST21においてフレームメモリ27は、復号画像データを記憶する。フレームメモリ27は、デブロッキングフィルタ処理前の復号画像データとループフィルタ処理後の復号画像データを記憶する。
ステップST22においてイントラ予測部31と動き予測・補償部32は、それぞれ予測処理を行う。すなわち、イントラ予測部31は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部32は、インター予測モードの動き予測・補償処理を行う。この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部33に供給される。
ステップST23において予測画像・最適モード選択部33は、予測画像データの選択を行う。予測画像・最適モード選択部33は、イントラ予測部31および動き予測・補償部32より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部33は、決定した最適モードの予測画像データを選択して、減算部13と加算部23に供給する。この予測画像が、上述したように、ステップST13,ST18の演算に利用される。
ステップST24において可逆符号化部16は、可逆符号化処理を行う。可逆符号化部16は、量子化部15より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップST22において可逆符号化部16に入力された予測モード情報(例えばマクロブロックタイプや予測モード、動きベクトル情報、参照ピクチャ情報等を含む)や係数セットなども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報の可逆符号化データが付加される。
ステップST25において蓄積バッファ17は、蓄積処理を行い符号化ストリームを蓄積する。この蓄積バッファ17に蓄積された符号化ストリームは適宜読み出され、伝送路を介して復号側に伝送される。
ステップST26においてレート制御部18は、レート制御を行う。レート制御部18は、蓄積バッファ17で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ17で発生しないように、量子化部15の量子化動作のレートを制御する。
次に、図3のステップST22における予測処理を説明する。予測処理では、イントラ予測処理とインター予測処理を行う。イントラ予測処理では、処理対象のブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、イントラ予測において参照される参照画像の画像データは、デブロッキングフィルタ処理部24とループフィルタ処理部25によりフィルタ処理が行われることなくフレームメモリ27に記憶されている参照画像データが用いられる。イントラ予測処理の詳細は後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最良となる1つのイントラ予測モードが選択される。
インター予測処理では、フレームメモリ27に記憶されているフィルタ処理後の参照画像データを用いて、候補となる全てのインター予測モード(全ての予測ブロックサイズ)のインター予測処理を行う。インター予測処理の詳細は後述するが、この処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最良となる1つのインター予測モードが選択される。
次に、イントラ予測処理について図4のフローチャートを参照して説明する。ステップST31でイントラ予測部31は、各予測モードのイントラ予測を行う。イントラ予測部31は、フレームメモリ27に記憶されているフィルタ処理前の復号画像データを用いて、イントラ予測モード毎に予測画像データを生成する。
ステップST32でイントラ予測部31は、各予測モードに対するコスト関数値を算出する。例えば、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、次の式(1)で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=D+λ・R ・・・(1)
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー(歪み)を示している。Rは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
また、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報などのヘッダビットまでを算出し、次の式(2)で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=D+QPtoQuant(QP)・Header_Bit ・・・(2)
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー(歪み)を示している。Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
ステップST33でイントラ予測部31は、最適イントラ予測モードを決定する。イントラ予測部31は、ステップST32において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
次に、図5のフローチャートを参照して、インター予測処理について説明する。ステップST41で動き予測・補償部32は、各予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、動き予測・補償部32は、各予測モードの処理対象のブロックについて、動きベクトルと参照画像をそれぞれ決定する。
ステップST42で動き予測・補償部32は、各予測モードに対して動き補償を行う。動き予測・補償部32は、各予測モード(各予測ブロックサイズ)について、ステップST41で決定された動きベクトルに基づいて、参照画像に対する動き補償を行い、各予測モードについて予測画像データを生成する。
ステップST43で動き予測・補償部32は、各予測モードに対して動きベクトル情報の生成を行う。動き予測・補償部32は、各予測モードで決定された動きベクトルについて、符号化ストリームに含める動きベクトル情報を生成する。例えば、メディアン予測等を用いて予測動きベクトルを決定して、動き予測により検出した動きベクトルと予測動きベクトルの差を示す動きベクトル情報を生成する。このようにして生成された動きベクトル情報は、次のステップST44におけるコスト関数値の算出にも用いられて、最終的に予測画像・最適モード選択部33で対応する予測画像が選択された場合には、予測モード情報に含まれて可逆符号化部16へ出力される。
ステップST44で動き予測・補償部32は、各インター予測モードに対して、コスト関数値の算出を行う。動き予測・補償部32は、上述した式(1)または式(2)を用いてコスト関数値の算出を行う。
ステップST45で動き予測・補償部32は、最適インター予測モードを決定する。動き予測・補償部32は、ステップST44において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つの予測モードを選択して最適インター予測モードに決定する。
<4.画像復号装置に適用した場合の構成>
入力画像を符号化して生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号装置に供給されて復号される。
図6は、本技術の画像処理装置を画像復号装置に適用した場合の構成を示している。画像復号装置50は、蓄積バッファ51、可逆復号部52、逆量子化部53、逆直交変換部54、加算部55、デブロッキングフィルタ処理部56、ループフィルタ処理部57、画面並べ替えバッファ58、D/A変換部59を備えている。さらに、画像復号装置50は、フレームメモリ61、セレクタ62,65、イントラ予測部63、動き補償部64を備えている。
蓄積バッファ51は、伝送されてきた符号化ストリームを蓄積する。可逆復号部52は、蓄積バッファ51より供給された符号化ストリームを、図2の可逆符号化部16の符号化方式に対応する方式で復号する。また、可逆復号部52は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をイントラ予測部63や動き補償部64、ループフィルタ処理の係数セットをループフィルタ処理部57に出力する。
逆量子化部53は、可逆復号部52で復号された量子化データを、図2の量子化部15の量子化方式に対応する方式で逆量子化する。逆直交変換部54は、図2の直交変換部14の直交変換方式に対応する方式で逆量子化部53の出力を逆直交変換して加算部55に出力する。
加算部55は、逆直交変換後のデータとセレクタ65から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ処理部56とフレームメモリ61に出力する。
デブロッキングフィルタ処理部56は、加算部55から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してループフィルタ処理部57に出力する。
ループフィルタ処理部57は、図2のループフィルタ処理部25と同様に構成されており、可逆復号部52によって符号化ストリームから取得した係数セットの情報に基づき、デブロッキングフィルタ処理後の画像データのループフィルタ処理を行う。ループフィルタ処理部57は、フィルタ処理後の画像データをフレームメモリ61に供給し蓄積させるとともに、画面並べ替えバッファ58に出力する。
画面並べ替えバッファ58は、画像の並べ替えを行う。すなわち、図2の画面並べ替えバッファ12により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、D/A変換部59に出力される。
D/A変換部59は、画面並べ替えバッファ58から供給された画像データをD/A変換し、図示せぬディスプレイに出力することで画像を表示させる。
フレームメモリ61は、加算部55から供給されたフィルタ処理前の復号画像データとループフィルタ処理部57から供給されたフィルタ処理後の復号画像データとを、参照画像の画像データとして保持する。
セレクタ62は、可逆復号部52から供給された予測モード情報に基づき、イントラ予測が行われた予測ブロックの復号が行われるとき、フレームメモリ61から読み出されたフィルタ処理前の参照画像データをイントラ予測部63に供給する。また、セレクタ29は、可逆復号部52から供給された予測モード情報に基づき、インター予測が行われた予測ブロックの復号が行われるとき、フレームメモリ61から読み出されたフィルタ処理後の参照画像データを動き補償部64に供給する。
イントラ予測部63は、可逆復号部52から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ65に出力する。
動き補償部64は、可逆復号部52から供給された予測モード情報に基づいて、動き補償を行い、予測画像データを生成してセレクタ65に出力する。すなわち、動き補償部64は、予測モード情報に含まれる動きベクトル情報と参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して動きベクトル情報に基づく動きベクトルで動き補償を行い、予測画像データを生成する。
セレクタ65は、イントラ予測部63で生成された予測画像データを加算部55に供給する。また、セレクタ65は、動き補償部64で生成された予測画像データを加算部55に供給する。
なお、請求項における復号部は、可逆復号部52、逆量子化部53、逆直交変換部54、加算部55、イントラ予測部63、動き補償部64等で構成される。
<5.画像復号装置の動作>
次に、図7のフローチャートを参照して、画像復号装置50で行われる画像復号動作について説明する。
ステップST51で蓄積バッファ51は、伝送されてきた符号化ストリームを蓄積する。ステップST52で可逆復号部52は、可逆復号処理を行う。可逆復号部52は、蓄積バッファ51から供給される符号化ストリームを復号する。すなわち、図2の可逆符号化部16により符号化された各ピクチャの量子化データが得られる。また、可逆復号部52、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号を行い、得られた予測モード情報をデブロッキングフィルタ処理部56やセレクタ62,65に供給する。さらに、可逆復号部52は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部63に出力する。また、可逆復号部52は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部64に出力する。また、可逆復号部52は、符号化ストリームを復号して得られたループフィルタ処理の係数セットをループフィルタ処理部57に出力する。
ステップST53において逆量子化部53は、逆量子化処理を行う。逆量子化部53は、可逆復号部52により復号された量子化データを、図2の量子化部15の特性に対応する特性で逆量子化する。
ステップST54において逆直交変換部54は、逆直交変換処理を行う。逆直交変換部54は、逆量子化部53により逆量子化された変換係数データを、図2の直交変換部14の特性に対応する特性で逆直交変換する。
ステップST55において加算部55は、復号画像データの生成を行う。加算部55は、逆直交変換処理を行うことにより得られたデータと、後述するステップST60で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
ステップST56においてデブロッキングフィルタ処理部56は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部56は、加算部55より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
ステップST57においてループフィルタ処理部57は、ループフィルタ処理を行う。ループフィルタ処理部57は、デブロッキングフィルタ処理後の復号画像データをフィルタリングして、デブロッキングフィルタ処理で残ってしまったブロック歪みや量子化による歪みを低減する。
ステップST58においてフレームメモリ61は、復号画像データの記憶処理を行う。
ステップST59においてイントラ予測部63と動き補償部64は、予測処理を行う。イントラ予測部63と動き補償部64は、可逆復号部52から供給される予測モード情報に対応してそれぞれ予測処理を行う。
すなわち、可逆復号部52からイントラ予測の予測モード情報が供給された場合、イントラ予測部63は、予測モード情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号部52からインター予測の予測モード情報が供給された場合、動き補償部64は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
ステップST60において、セレクタ65は予測画像データの選択を行う。すなわち、セレクタ65は、イントラ予測部63から供給された予測画像と動き補償部64で生成された予測画像データを選択して加算部55に供給して、上述したように、ステップST55において逆直交変換部54の出力と加算させる。
ステップST61において画面並べ替えバッファ58は、画像並べ替えを行う。すなわち画面並べ替えバッファ58は、図2の画像符号化装置10の画面並べ替えバッファ12により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップST62において、D/A変換部59は、画面並べ替えバッファ58からの画像データをD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
<6.ループフィルタ処理部の基本構成と動作>
図2に示す画像符号化装置10のループフィルタ処理部25と図6に示す画像復号装置のループフィルタ処理部57は、等しい構成および動作とされており、本技術の画像処理装置に相当する。
ループフィルタ処理部は、ブロック単位で符号化処理と復号処理が行われたデブロッキング処理後の画像の処理対象画素に対してタップの構築と係数セットの構築を行い、タップの画像データと係数セットを用いてフィルタ演算を行う。また、ブロック内のタップ位置を判別して、タップ位置が下側のブロック境界から所定範囲内、例えばデブロッキングフィルタのフィルタ処理範囲内の位置となる場合、所定範囲内の画像データを用いることなくフィルタ演算を行うように、所定範囲内に位置するタップの画像データの置き換えまたは係数セットの変更を行う。
以下、ループフィルタ処理部25の構成および動作について詳細な説明を行う。また、ループフィルタ処理部57については、ループフィルタ処理部25との相違部分についての説明を行う。
<7.ループフィルタ処理部の第1の実施の形態>
[ループフィルタ処理部の構成]
図8は、ループフィルタ処理部の第1の実施の形態の構成を示している。ループフィルタ処理部25は、ラインメモリ251、タップ構築部252、係数構築部253、フィルタ演算部254、フィルタ制御部259を備えている。
デブロッキングフィルタ処理部24から出力された画像データは、ラインメモリ251とタップ構築部252に供給される。
ラインメモリ251は、フィルタ制御部259からの制御信号に基づき、ループフィルタ処理を行うカレントブロックの下側ブロック境界から所定ライン数分の画像データを記憶する。また、ラインメモリ251は、制御信号に基づき記憶している画像データを読み出してタップ構築部252に出力する。
タップ構築部252は、デブロッキングフィルタ処理部24から供給された画像データやラインメモリ251に記憶されている画像データを用いて、ループフィルタの処理対象画素を基準としてタップを構築する。タップ構築部252は、構築したタップの画像データをフィルタ演算部254に出力する。
係数構築部253は、係数メモリ部26からフィルタ演算に用いる係数を読み出して、タップ構築部252で構築したタップに対応する係数を決定して、各タップの係数からなる係数セットを構築する。係数構築部253は、構築した係数セットをフィルタ演算部254に出力する。なお、ループフィルタ処理部57の係数構築部は、可逆復号部52から供給された係数セットを用いる。
フィルタ演算部254は、タップ構築部252から供給されたタップの画像データと係数構築部253から供給された係数を用いて演算を行い、ループフィルタ処理後の画像データを生成する。
フィルタ制御部259は、制御信号をラインメモリ251に供給して、ラインメモリ251への画像データの記憶および記憶されている画像データを読み出しを制御する。また、フィルタ制御部259はライン判定部2591を有している。フィルタ制御部259は、ライン判定部2591によってタップ位置が下側のブロック境界から所定範囲内、例えばデブロッキングフィルタのフィルタ処理範囲内の位置と判定された場合、所定範囲内の画像データを用いることなくフィルタ演算を行うように、タップ構築部252で生成するタップの画像データの置き換え、または係数構築部253で構築する係数セットの変更を行う。
[ループフィルタ処理部の動作]
図9は、ループフィルタ処理部25の第1の実施の形態の動作を示すフローチャートである。ステップST71でループフィルタ処理部25は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部25は、ループフィルタの処理対象画素のライン位置が、デブロッキングフィルタのフィルタ処理範囲のタップを含まない位置であるか判別する。ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲にタップが含まれない場合、通常ループフィルタ処理範囲内と判別してステップST72に進む。また、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ対象範囲にタップが含まれる場合、通常ループフィルタ処理範囲外であると判別してステップST74に進む。
ステップST72で、ループフィルタ処理部25は、タップの構築を行う。ループフィルタ処理部25は、ループフィルタの処理対象画素を基準としてタップを構築してステップST73に進む。
ステップST73でループフィルタ処理部25は、係数セットの構築を行う。ループフィルタ処理部25は、係数メモリ部26から係数を読み出して、タップに対する係数を示す係数セットを構築してステップST76に進む。
ループフィルタ処理部25は、ステップST74,75の何れかで、デブロッキングフィルタ処理対応のタップ構築または係数セットの構築の何れかを行う。
デブロッキングフィルタ処理対応のタップ構築を行う場合、例えばステップST74でループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
デブロッキングフィルタ処理対応の係数セットの構築を行う場合、例えばステップST75でループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、係数を変更する。
ステップST76でループフィルタ処理部25は、フィルタ演算を行う。ループフィルタ処理部25はステップST72〜75の処理によって構築されたタップと係数セットを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出する。
ステップST77でループフィルタ処理部25は、通常ループフィルタ処理範囲内の最終ラインまでの処理が完了したか判別する。ループフィルタ処理部25は、LCUにおいて通常ループフィルタ処理範囲内の最終ラインまでのループフィルタ処理が完了していない場合にはステップST71に戻り、次のライン位置についてのループフィルタ処理を行う。ループフィルタ処理部25は、最終ラインまでのループフィルタ処理が完了したと判別した場合にステップST78に進む。
ステップST78でループフィルタ処理部25は、最後のLCUであるか判別する。ループフィルタ処理部25は、ループフィルタ処理を行ったLCUが最後のLCUでない場合にはステップST71に戻り、次のLCUに対してループフィルタ処理を行う。また、ループフィルタ処理部25は、ループフィルタ処理を行ったLCUが最後のLCUである場合にはループフィルタ処理を終了する。
図10は、ループフィルタ処理対象画素に対して構築されるタップ形状を例示しており、ループフィルタ処理対象画素を中心として、例えば水平方向が7タップで垂直方向が5タップである菱形状とされている。なお、ループフィルタ処理対象画素はタップT11の位置である。
図11は、デブロッキングフィルタ処理対応のタップ構築、図12は、デブロッキングフィルタ処理対応の係数セット構築をそれぞれ例示している。なお、図11,12において「C0〜C11,Ca〜Ce」は係数、「P0〜P22」は各タップの画像データを示している。なお、以下の説明では、デブロッキングフィルタのフィルタ処理範囲の上側境界を「DBU」とする。
図11の(A)は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図11の(B),(C)は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図11の(B),(C)の場合、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
すなわち、図11の(B)に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップT20の画像データとしてタップT16の画像データP16を用いる。同様に、フィルタ処理範囲内のタップT21の画像データとしてタップT17の画像データP17、タップT22の画像データとしてタップT18の画像データP18を用いる。
また、図11の(C)に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップT16,T20の画像データとしてタップT10の画像データP10を用いる。同様に、フィルタ処理範囲内のタップT17,T21の画像データとしてタップT11の画像データP11、タップT18,T22の画像データとしてタップT12の画像データP12を用いる。
図12の(A)は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図12の(B),(C)は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図12の(B),(C)の場合、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、係数セットの変更を行う。
すなわち、図12の(B)に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接するタップT16の係数にフィルタ処理範囲内のタップT20の係数を加算して係数Ca(=C2+C6)とする。同様に、タップT17の係数にタップT21の係数を加算して係数Cb(=C1+C5)、タップT18の係数にタップT22の係数を加算して係数Cc(=C0+C4)とする。また、デブロッキングフィルタ処理対象範囲内のタップの係数を「0」とする。
また、図12の(C)に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接するタップT9の係数にフィルタ処理範囲内のタップT7の係数を加算して係数Ca(=C7+C9)とする。同様に、タップT10の係数にタップT16,T20の係数を加算して係数Cb(=C2+C6+C10)、タップT11の係数にタップT17,T21の係数を加算して係数Cc(=C1+C5+C11)とする。さらに、タップT12の係数にタップT18,T22の係数を加算して係数Cd(=C0+C4+C10)、タップT13の係数にタップT19の係数を加算して係数Ce(=C3+C9)とする。また、デブロッキングフィルタ処理対象範囲内のタップの係数を「0」とする。
このように、何れかのタップがデブロッキングフィルタのフィルタ処理範囲に含まれるようになった場合、デブロッキングフィルタ処理対応のタップ構築、またはデブロッキングフィルタ処理対応の係数セット構築を行う。したがって、デブロックフィルタ処理後の画像データを用いることなくループフィルタ処理を行うことが可能となり、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように画像データを記憶するラインメモリのメモリ容量を削減できる。
例えば、図11の(B),(C)または図12の(B),(C)の処理を行う場合、図13の(A)に示すように、ループフィルタ処理の対象画素がブロック境界BBから3ライン目の画素となると、デブロッキングフィルタ処理後の画像データが必要となる。したがって、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように、ブロック境界BBから5ライン分の画像データをラインメモリに記憶すればよい。なお、図13の(B)は、本技術を用いない場合に7ライン分の画像データをラインメモリに記憶することを示している。
<8.ループフィルタ処理部の第2の実施の形態>
ループフィルタ処理部の第2の実施の形態は、第1の実施の形態に対してデブロッキングフィルタ処理対応のタップ構築とデブロッキングフィルタ処理対応の係数セット構築の動作が相違する。
デブロッキングフィルタ処理対応のタップ構築を行う場合、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部25は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
デブロッキングフィルタ処理対応の係数セット構築を行う場合、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部25は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、係数セットの変更を行う。
図14は、デブロッキングフィルタ処理対応のタップ構築、図15は、デブロッキングフィルタ処理対応の係数セット構築をそれぞれ例示している。なお、図14,図15において「C0〜C11,Ca〜Ch」は係数、「P0〜P22」は各タップの画像データを示している。
図14の(A)は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図14の(B),(C)は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図14の(B),(C)の場合、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部25は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
すなわち、図14の(B)に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップT20の画像データとしてタップT10の画像データP10を用いる。同様に、フィルタ処理範囲内のタップT21の画像データとしてタップT11の画像データP11、タップT22の画像データとしてタップT12の画像データP12を用いる。
また、図14の(C)に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップT15の画像データとしてタップT3の画像データP3を用いる。同様に、フィルタ処理範囲内のタップT16の画像データとしてタップT4の画像データP4、タップT17の画像データとしてタップT5の画像データP5、タップT18の画像データとしてタップT6の画像データP6、タップT19の画像データとしてタップT7の画像データP7を用いる。さらに、デブロッキングフィルタのフィルタ処理範囲内のタップT20の画像データとしてタップT0の画像データP0、タップT21の画像データとしてタップT1の画像データP1、タップT22の画像データとしてタップT2の画像データP2を用いる。
図15の(A)は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図15の(B),(C)は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図15の(B),(C)の場合、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部25は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、係数セットの変更を行う。
すなわち、図15の(B)に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、互いに対象位置であるタップT10の係数にタップT20の係数を加算して係数Ca(=C2+C10)とする。同様に、タップT11の係数にタップT21の係数を加算して係数Cb(=C1+C11)、タップT1の係数にタップT22の係数を加算して係数Cc(=C0+C10)とする。また、デブロッキングフィルタ処理対象範囲内のタップの係数を「0」とする。
また、図15の(C)に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、互いに対象位置であるタップT3の係数にタップT15の係数を加算して係数Ca(=C3+C7)とする。同様に、タップT4の係数にタップT16の係数を加算して係数Cb(=C4+C6)、タップT5の係数にタップT17の係数を加算して係数Cc(=C5+C5)、タップT6の係数にタップT18の係数を加算して係数Cd(=C4+C6)、タップT7の係数にタップT19の係数を加算して係数Ce(=C3+C7)とする。さらに、タップT0の係数にタップT20の係数を加算して係数Cf(=C0+C2)、タップT1の係数にタップT21の係数を加算して係数Cg(=C1+C1)、タップT2の係数にタップT22係数を加算して係数Cg(=C0+C2)とする。
このように、何れかのタップがデブロッキングフィルタのフィルタ処理範囲に含まれるようになった場合、デブロッキングフィルタ処理対応のタップ構築、またはデブロッキングフィルタ処理対応の係数セット構築を行う。したがって、デブロックフィルタ処理後の画像データを用いることなくループフィルタ処理を行うことが可能となり、第1の実施の形態と同様にラインメモリのメモリ容量を削減できる。
<9.ループフィルタ処理部の第3の実施の形態>
[ループフィルタ処理部の構成]
図16は、ループフィルタ処理部の第3の実施の形態の構成を示している。ループフィルタ処理部25は、ラインメモリ251、タップ構築部252、係数構築部253、フィルタ演算部254、センタータップ出力部255、出力選択部256、フィルタ制御部259を備えている。
デブロッキングフィルタ処理部24から出力された画像データは、ラインメモリ251とタップ構築部252に供給される。
ラインメモリ251は、フィルタ制御部259からの制御信号に基づき、ループフィルタ処理を行うカレントブロックの下側ブロック境界から所定ライン数分の画像データを記憶する。また、ラインメモリ251は、制御信号に基づき記憶している画像データを読み出してタップ構築部252に出力する。
タップ構築部252は、デブロッキングフィルタ処理部24から供給された画像データやラインメモリ251に記憶されている画像データを用いて、ループフィルタの処理対象画素を基準としてタップを構築する。タップ構築部252は、構築したタップの画像データをフィルタ演算部254に出力する。
係数構築部253は、係数メモリ部26からフィルタ演算に用いる係数を読み出して、タップ構築部252で構築したタップに対応する係数を決定して、各タップの係数からなる係数セットを構築する。係数構築部253は、構築した係数セットをフィルタ演算部254に出力する。
フィルタ演算部254は、タップ構築部252から供給されたタップの画像データと係数構築部253から供給された係数を用いて演算を行い、ループフィルタ処理後の画像データを生成する。
センタータップ出力部255は、タップ構築部252から供給されたタップからセンタータップの画像データ、すなわちループフィルタの処理対象画素の画像データを出力選択部256に出力する。
出力選択部256は、フィルタ制御部259からの制御信号に基づき画像データの選択を行い、選択した画像データをフィルタ演算部254から出力する。
フィルタ制御部259は、制御信号をラインメモリ251に供給して、ラインメモリ251への画像データの記憶および記憶されている画像データを読み出しを制御する。また、フィルタ制御部259はライン判定部2591を有しており、タップ位置が下側のブロック境界から所定範囲内、例えばデブロッキングフィルタのフィルタ処理範囲内の位置であるか否かに応じて、出力選択部256の画像データの選択動作を制御する。
[ループフィルタ処理部の動作]
図17は、ループフィルタ処理部25の第3の実施の形態の動作を示すフローチャートである。ステップST81でループフィルタ処理部25は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部25は、ループフィルタの処理対象画素のライン位置が、デブロッキングフィルタのフィルタ処理範囲のタップを含まない位置であるか判別する。ループフィルタ処理部25は、デブロッキングフィルタのフィルタ処理範囲にタップが含まれない場合、通常ループフィルタ処理範囲内と判別してステップST82に進む。また、ループフィルタ処理部25は、デブロッキングフィルタのフィルタ対象範囲にタップが含まれる場合、通常ループフィルタ処理範囲外であると判別してステップST85に進む。
ステップST82で、ループフィルタ処理部25は、タップの構築を行う。ループフィルタ処理部25は、ループフィルタの処理対象画素を基準としてタップを構築してステップST83に進む。
ステップST83でループフィルタ処理部25は、係数セットの構築を行う。ループフィルタ処理部25は、係数メモリ部26から係数を読み出して、タップに対する係数からなる係数セットを構築してステップST84に進む。
ステップST84でループフィルタ処理部25は、フィルタ演算を行う。ループフィルタ処理部25はステップST82,83の処理によって構築されたタップと係数セットを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出してST87に進む。
ステップST85でループフィルタ処理部25は、センタータップを取得する。ループフィルタ処理部25は、ループフィルタの処理対象画素であるセンタータップの画像データを取得してステップST86に進む。
ステップST86でループフィルタ処理部25は、センタータップの出力を行う。ループフィルタ処理部25は、センタータップの画像データを出力する。すなわち、ループフィルタ処理部25は、処理対象画素が通常ループフィルタ処理範囲でない場合、ループフィルタ処理を行うことなく画像データを出力してステップST87に進む。
ステップST87でループフィルタ処理部25は、通常ループフィルタ処理範囲内の最終ラインまでの処理が完了したか判別する。ループフィルタ処理部25は、例えばLCUにおいて通常ループフィルタ処理範囲内の最終ラインまでのループフィルタ処理が完了していない場合にはステップST81に戻り、次のライン位置についてのループフィルタ処理を行う。ループフィルタ処理部25は、最終ラインまでのループフィルタ処理が完了したと判別した場合にステップST88に進む。
ステップST88でループフィルタ処理部25は、最後のLCUであるか判別する。ループフィルタ処理部25は、ループフィルタ処理を行ったLCUが最後のLCUでない場合にはステップST81に戻り、次のLCUに対してループフィルタ処理を行う。また、ループフィルタ処理部25は、ループフィルタ処理を行ったLCUが最後のLCUである場合にはループフィルタ処理を終了する。
図18は、ループフィルタがオフ状態とされる処理対象画素の位置を示している。このように、ループフィルタの処理対象画素に対してタップを構築した場合、タップがデブロッキングフィルタ対象範囲内である場合には、ループフィルタ処理がオフ状態とされる。したがって、デブロックフィルタ処理後の画像データを用いてループフィルタ処理を行うことができるように画像データを記憶する必要がないことからラインメモリを削減できる。
<10.ループフィルタ処理部の第4の実施の形態>
ループフィルタ処理部の第4の実施の形態は、第3の実施の形態の動作と第1または第2の実施の形態の動作を選択的に行う。なお、ループフィルタ処理部の第4の実施の形態の構成は、図16に示す第3の実施の形態と同様に構成されている。
フィルタ制御部259は、制御信号をラインメモリ251に供給して、ラインメモリ251への画像データの記憶および記憶されている画像データを読み出してタップ構築部252に供給する制御を行う。また、フィルタ制御部259はライン判定部2591を有しており、ループフィルタの処理対象画素の位置に応じて、タップ構築部252と係数構築部253および出力選択部256の動作を制御する。
フィルタ制御部259は、符号化コストや量子化部15で用いられている量子化パラメータ、例えばフレーム単位で設定された量子化パラメータに基づき、上述の第1(第2)の実施の形態の動作、または第3の実施の形態の動作を選択する。
フィルタ制御部259は、符号化コストを用いる場合、第1(第2)の実施の形態の動作を選択した場合のコスト関数値と第3の実施の形態の動作を選択した場合のコスト関数値を比較して、コスト関数値の小さい動作を選択する。
また、フィルタ制御部259は、例えば、量子化パラメータが閾値以下である場合、量子化ステップが小さく画質が良好と考えられることから第3の実施の形態の動作を行う。また、量子化パラメータが閾値よりも大きい場合、量子化ステップが大きく、量子化パラメータが小さい場合に比べて画質が劣化していると考えられることから、第1(第2)の実施の形態のように、タップで用いる画像データの置き換えや係数セットの変更を行う。
さらに、画像符号化装置10のループフィルタ処理部25におけるフィルタ制御部259は、画像復号装置50で画像符号化装置10と同様なループフィルタ処理を行うことができるように、フィルタ演算を行うことなく画像データを出力する処理(第3の実施の形態の動作)と、タップの画像データの置き換えまたは係数セットの変更を行う処理(第1(第2)の実施の形態の動作)の何れが選択されているかを示す選択情報を符号化ストリームに含める。また、画像復号装置50のループフィルタ処理部57は、符号化ストリームに含められている選択情報に基づき、画像符号化装置10と同様に処理を行う。
なお、ループフィルタ処理におけるラインメモリの削減方法として、例えば「Semih.Esenlik,Matthias.Narroschke,Thomas.Wedi(Panasonic R&D Center)"JCTVC-E225 Line Memory Reduction for ALF Decoding",Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,5th Meeting: Geneva, CH, 16-23 March, 2011」では、ループフィルタ処理のタップがデブロッキングフィルタのフィルタ処理範囲の位置となる場合、デブロッキングフィルタ処理前の画像データを用いることで、ラインメモリを削減することが提案されている。しかし、この方法では、タップがデブロッキングフィルタのフィルタ処理範囲の位置でない場合、デブロッキングフィルタ処理後の画像データを用いたループフィルタ処理が行われる。また、タップがデブロッキングフィルタのフィルタ処理範囲の位置である場合は、デブロッキングフィルタ処理前の画像データを用いてループフィルタ処理が行われて、その後デブロッキングフィルタ処理前の画像データのデブロッキングフィルタ処理が行われる。このように、デブロッキングフィルタ処理とループフィルタ処理とで処理順序に依存性が生じていることから、デブロッキングフィルタ処理を並列化して行うことができない。しかし、本技術では、デブロッキングフィルタ処理が行われた画像データを用いてループフィルタ処理を行う。したがって、依存性を有することなく処理が独立して行われるので、デブロッキングフィルタ処理やループフィルタ処理を画面内で並列化して行うことに、支障をきたさない。
<11.ループフィルタ処理部の第5の実施の形態>
ところで、「"JCTVC-G212 Non-CE8.c.7: Single-source SAO and ALF virtual boundary processing with cross9x9",Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH, 21-30 November, 2011」では、図19に示すように仮想境界VBを設定して、図19の(A)や図19の(B)に示すように、1ラインが仮想境界にかかる場合、フィルタ処理前の画素とフィルタ処理後の画素の平均化が行われている。また、図19の(C)や図19の(D)に示すように2ラインが仮想境界にかかる場合、フィルタ処理をスキップすることが行われている。なお、図19では、処理対象画素を黒四角、タップを黒丸で示している。しかし、このような処理では、1ラインが仮想境界にかかる場合にフィルタ処理前の画素が用いられることから、フィルタ効果が低下する。また、2ラインが仮想境界にかかる場合にフィルタ効果が得られない。したがって、仮想境界部分ではノイズの少ない良好な画質を得ることができない。そこで、ループフィルタ処理部の第5の実施の形態では、境界部分例えば仮想境界部分でもノイズの少ない良好な画質を得ることができる処理について説明する。
以下、第5の実施の形態の動作について説明する。第5の実施の形態の動作では、下端ラインまたは上端ラインが境界を越える場合、境界を越えている範囲内の画像データを用いることなくフィルタ演算を行うように、境界を越えている範囲内のタップの画像データの置き換えまたはフィルタの係数セットの変更を行う。なお、フィルタは例えば図20に示すように5×5画素の星形形状とする。
図21は、下端ラインが境界を越える場合の処理を説明するための図である。図21の(A)は、下端の1ラインが境界BOを越える場合、図21の(B)は、下端の2ラインが境界BOを越える場合である。下端ラインが境界を越える場合、例えばフィルタ処理のホールドを行う。フィルタ処理のホールドでは、境界を越えたラインの画素として境界を超えていないライン(境界内のライン)の画素を用いてフィルタ処理を行う。
下端の1ラインが境界を越える場合、図21の(A)に示すように、境界BOを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ca,Cb,Ccとして示している。係数Caは「Ca=C14」とする。すなわち、係数C14のタップの画像データとして、係数Caの画素の画像データを用いてフィルタ演算を行う。また、係数Cbは「Cb=C12+C15」とする。すなわち、係数C15のタップの画像データとして、係数Cbの画素の画像データを用いてフィルタ演算を行う。係数Ccは「Cc=C16」とする。係数C16のタップの画像データとして、係数Ccの画素の画像データを用いてフィルタ演算を行う。このようにして、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなくフィルタ演算を行う。さらに、下端の1ラインが境界を越える場合、フィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
下端の2ラインが境界を越える場合、図21の(B)に示すように、境界BOを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ca,Cb,Cc,Cd,Ceとして示している。係数Caは「Ca=C6+C14」とする。係数Cbは「Cb=C7+C11」とする。係数Ccは「Cc=C8+C12+C15」とする。係数Cdは「Cd=C9+C13」とする。係数Ceは「Ce=C10+C16」とする。このようにして、下端の1ラインが境界を越える場合と同様に、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなく、下端の2ラインが境界を越える場合にもフィルタ演算を行う。
図22は、上端ラインが境界を越える場合の処理を説明するための図である。図22の(A)は、上端の1ラインが境界BOを越える場合、図22の(B)は、上端の2ラインが境界BOを越える場合である。上端ラインが境界を越える場合、下端ラインが境界を越える場合と同様に例えばフィルタ処理のホールドを行う。
上端の1ラインが境界を越える場合、図22の(A)に示すように、境界BOを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ca,Cb,Ccとして示している。係数Caは「Ca=C0」とする。係数Cbは「Cb=C1+C4」とする。係数Ccは「Cc=C2」とする。このようにして、上端の1ラインが境界を越える場合も下端の1ラインが境界を越える場合と同様に、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなくフィルタ演算を行う。さらに、上端の1ラインが境界を越える場合、フィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
上端の2ラインが境界を越える場合、図22の(B)に示すように、境界BOを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ca,Cb,Cc,Cd,Ceとして示している。係数Caは「Ca=C0+C6」とする。係数Cbは「Cb=C3+C7」とする。係数Ccは「Cc=C1+C4+C8」とする。係数Cdは「Cd=C5+C9」とする。係数Ceは「Ce=C2+C10」とする。このようにして、上端の1ラインが境界を越える場合と同様に、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなく、上端の2ラインが境界を越える場合にもフィルタ演算を行う。
また、フィルタの係数として係数Ca〜Ceを用いて、図21,図22における係数Ca〜Ceの位置の画素をタップとしてフィルタ演算を行うようにしてもよい。
さらに、下端ラインまたは上端ラインが境界を越える場合、境界を越えている範囲内の画像データを用いることなくフィルタ演算を行うように、フィルタサイズやフィルタ形状を変更してもよい。また、フィルタサイズやフィルタ形状を変更する場合に、重み付けを行うようにしてもよい。
図23は、下端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。図23の(A)は、下端の1ラインが境界BOを越える場合、図23の(B)は、下端の2ラインが境界BOを越える場合である。
下端の1ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図20に示すフィルタの上下それぞれ1ライン分を削除した図23の(A)に示す「5(横)×3(縦)」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Caを「Ca=C0+C1+C2+C8+C14+C15+C16」とする。なお、下端の1ラインが境界を越える場合、上述のようにフィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
下端の2ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図20に示すフィルタの上下それぞれ2ライン分を削除した図23の(B)に示す「5(横)×1(縦)」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Caを「Ca=C0+C1+C2+C3+C4+C5+C8+C11+C12+C13+C14+C15+C16」とする。
図24は、上端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。図24の(A)は、上端の1ラインが境界BOを越える場合、図24の(B)は、上端の2ラインが境界BOを越える場合である。
上端の1ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図20に示すフィルタの上下それぞれ1ライン分を削除した図24の(A)に示す「5(横)×3(縦)」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Caを「Ca=C0+C1+C2+C8+C14+C15+C16」とする。なお、上端の1ラインが境界を越える場合、上述のようにフィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
上端の2ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図20に示すフィルタの上下それぞれ2ライン分を削除した図24の(B)に示す「5(横)×1(縦)」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Caを「Ca=C0+C1+C2+C3+C4+C5+C8+C11+C12+C13+C14+C15+C16」とする。
このように、第5の実施の形態では、下端1ラインまたは上端1ラインが境界を越える場合、フィルタ処理前の画素とフィルタ処理後の画素を用いた平均化が行われることがないので、フィルタ効果が低下されてしまうことを防止できる。また、下端2ラインまたは上端2ラインが境界を越える場合でも、フィルタ処理が行われるのでフィルタ効果を得ることができる。したがって、境界部分でもノイズの少ない画像を得ることができる。
<12.画像符号化装置に適用した場合の他の構成と動作>
図25は、本技術の画像処理装置を画像符号化装置に適用した場合の他の構成を示している。なお、図25において、図2と対応するブロックについては同一符号を付している。
図25に示す画像符号化装置10では、デブロッキングフィルタ処理部24とループフィルタ処理部25との間にSAO(Sample Adaptive Offset)部28を設けており、ループフィルタ処理部25はSAO部28で適応的にオフセット処理(以下「SAO処理」という)が行われた画像データに対してループフィルタ処理を行う。なお、SAOは上述のPQAO(Picture Quality Adaptive Offset)に相当する。また、SAO部28は、SAO処理に関する情報を可逆符号化部16に供給して符号化ストリームに含めるようにする。
次にSAO部28の動作について説明する。SAO部28のオフセットの種類としては、バンドオフセットと呼ばれるものが2種類、エッジオフセットと呼ばれるものが6種類あり、さらに、オフセットを適応しないことも可能である。そして、画像をquad-treeに分割し、それぞれの領域に、上述したどのオフセットの種類により符号化するかを選択することができる。
この選択情報は可逆符号化部16により符号化されて、ビットストリームに含められる。この方法を用いることで、符号化効率を向上させる。
ここで、図26を参照して、quad-tree構造について説明する。例えば、画像符号化装置10では、図26の(A)に示されるように、領域0が分割されていない状態を示すLevel-0(分割深度0)のコスト関数値J0が計算される。また、領域0が4つの領域1乃至4に分割された状態を示すLevel-1(分割深度0)のコスト関数値J1,J2,J3,J4が計算される。
そして、図26の(B)に示されるように、コスト関数値が比較され、J0>(J1+J2+J3+J4)により、コスト関数値が小さいLevel-1の分割領域(Partitions)が選択される。
同様にして、図26の(C)に示されるように、領域0が16個の領域5乃至20に分割された状態を示すLevel-2(分割深度2)のコスト関数値J5乃至J20が計算される。
そして、図26の(D)に示されるように、コスト関数値がそれぞれ比較され、J1<(J5+J6+J9+J10)により、領域1においては、Level-1の分割領域(Partitions)が選択される。J2>(J7+J8+J11+J12)により、領域2においては、Level-2の分割領域(Partitions)が選択される。J3>(J13+J14+J17+J18)により、領域3においては、Level-2の分割領域(Partitions)が選択される。J4>(J15+J16+J19+J20)により、領域4においては、Level-1の分割領域(Partitions)が選択される。
その結果、Quad-tree構造における図26の(D)に示される最終的なQuad-tree領域(Partitions)が決定される。そして、Quad-tree構造の決定された領域毎に、2種類のバンドオフセット、6種類のエッジオフセット、およびオフセットなしの全てについてコスト関数値が算出され、どのオフセットにより符号化されるのかが決定される。
例えば、図26の(E)に示すように、領域1に対しては、EO(4)、すなわち、エッジオフセットのうちの4種類目が決定されている。領域7に対しては、OFF、すなわち、オフセットなしが決定されており、領域8に対しては、EO(2)、すなわち、エッジオフセットのうちの2種類目が決定されている。領域11および12に対しては、OFF、すなわち、オフセットなしが決定されている。
また、領域13に対しては、BO(1)、すなわち、バンドオフセットのうちの1種類目が決定されており、領域14に対しては、EO(2)、すなわち、エッジオフセットのうちの2種類目が決定されている。領域17に対しては、BO(2)、すなわち、バンドオフセットのうちの2種類目が決定されており、領域18に対しては、BO(1)、すなわち、バンドオフセットのうちの1種類目が決定されている。領域4に対しては、EO(1)、すなわち、エッジオフセットのうちの1種類目が決定されている。
次に、図27を参照して、エッジオフセットの詳細について説明する。エッジオフセットにおいては、当該画素値と、当該画素値に隣接する隣接画素値の比較が行われ、これに対応したカテゴリに対して、オフセット値が伝送されることになる。
エッジオフセットには、図27の(A)乃至(D)に示される4つの1次元パターンと、図27の(E)および(F)に示される2つの2次元パターンが存在し、それぞれ、図28に示されるカテゴリでオフセットが伝送される。
図27の(A)は、当該画素Cに対して、隣接画素が左右の1次元に配置されている、すなわち、図27の(A)のパターンに対して0度をなしている1-D,0-degreeパターンを表している。図27の(B)は、当該画素Cに対して、隣接画素が上下の1次元に配置されている、すなわち、図27の(A)のパターンに対して90度をなしている1-D,90-degreeパターンを表している。
図27の(C)は、当該画素Cに対して、隣接画素が左上と右下の1次元に配置されている、すなわち、図27の(A)のパターンに対して135度をなしている1-D,135-degreeパターンを表している。図27の(D)は、当該画素Cに対して、隣接画素が右上と左下の1次元に配置されている、すなわち、図27の(A)のパターンに対して45度をなしている1-D,135-degreeパターンを表している。
図27の(E)は、当該画素Cに対して、隣接画素が上下左右2次元に配置されている、すなわち、当該画素Cに対して交差している2-D,crossパターンを表している。図27の(F)は、当該画素Cに対して、隣接画素が右上左下、左上右下の2次元に配置されている、すなわち、当該画素Cに対して斜めに交差している2-D,diagonalパターンを表している。
図28の(A)は、1次元パターンの規則一覧表(Classification rule for 1-D patterns)を示している。図27の(A)乃至(D)のパターンは、図28の(A)に示されるような5種類のカテゴリに分類され、そのカテゴリによりオフセットが算出されて、復号部に送られる。
当該画素Cの画素値が2つの隣接画素の画素値より小さい場合、カテゴリ1に分類される。当該画素Cの画素値が一方の隣接画素の画素値より小さくて、他方の隣接画素の画素値と一致する場合、カテゴリ2に分類される。当該画素Cの画素値が一方の隣接画素の画素値より大きくて、他方の隣接画素の画素値と一致する場合、カテゴリ3に分類される。当該画素Cの画素値が2つの隣接画素の画素値より大きい場合、カテゴリ4に分類される。以上のどれでもない場合、カテゴリ0に分類される。
図28の(B)は、2次元パターンの規則一覧表(Classification rule for 2-D patterns)を示している。図27の(E)および(F)のパターンは、図28の(B)に示されるような7種類のカテゴリに分類され、そのカテゴリによりオフセットが復号部に送られる。
当該画素Cの画素値が4つの隣接画素の画素値より小さい場合、カテゴリ1に分類される。当該画素Cの画素値が3つの隣接画素の画素値より小さくて、4番目の隣接画素の画素値と一致する場合、カテゴリ2に分類される。当該画素Cの画素値が3つの隣接画素の画素値より小さくて、4番目の隣接画素の画素値より大きい場合、カテゴリ3に分類される。
当該画素Cの画素値が3つの隣接画素の画素値より大きくて、4番目の隣接画素の画素値より小さい場合、カテゴリ4に分類される。当該画素Cの画素値が3つの隣接画素の画素値より大きくて、4番目の隣接画素の画素値と一致する場合、カテゴリ5に分類される。当該画素Cの画素値が4つの隣接画素の画素値より大きい場合、カテゴリ6に分類される。以上のどれでもない場合、カテゴリ0に分類される。
以上のように、エッジオフセットにおいては、3×3画素の判定処理が行われることから、SAO部28では、判定処理にデブロッキングフィルタのフィルタ処理対象画素が含まれる画素位置となるとオフセット処理を行うことができない。また、その後、デブロッキングフィルタでフィルタ処理が行われた場合、SAO部28は、デブロッキングフィルタ処理後の画素を用いて判定処理を行う。したがって、SAO部28は、処理した画像データを記憶しておく必要がある。さらに、ループフィルタ処理部25は、ループフィルタ処理のタップがSAOで処理が行われていない画素位置となるとループフィルタ処理を行うことができない。また、その後、SAOで処理が行われた場合、ループフィルタ処理部25は、SAO28で処理された画素を用いてループフィルタ処理を行う。したがって、ループフィルタ処理部25は、SAO部28で処理された画像データを記憶しておく必要がある。
図29は、デブロッキングフィルタ処理部24でフィルタ処理を行うためにラインメモリに記憶する画像データと、SAO部28を行うためにラインメモリに記憶する画像データと、ループフィルタ処理部25でループフィルタ処理を行うためにラインメモリに記憶する画像データの関係を示している。なお、図29では、画像データが輝度データ(Lumaデータ)である場合を例示している。
デブロッキングフィルタ処理部24は、例えば4ラインの画像データを用いてブロック境界から3ライン分のフィルタ処理後の画像データを生成する場合、図29の(A)に示すように、下側のブロック境界BBから4ライン分の画像データを記憶する必要がある。なお、図29の(A)において二重丸印は、デブロッキングフィルタの処理対象画素であってデブロッキングフィルタ処理(DF処理)が行われていないことを示している。
SAO部28は、判定処理にデブロッキングフィルタのフィルタ処理対象画素が含まれる画素位置となると処理を行うことができない。すなわち、図29の(B)に示すように、下側のブロック境界BBから5ライン目の位置まで処理を進めることができる。しかし、4ライン目の位置では、3×3画素の判定処理の範囲内にデブロッキングフィルタのフィルタ処理対象画素が含まれることから処理を行うことができない。したがって、デブロッキングフィルタ処理後に、下側のブロック境界BBから4ライン目の位置から処理を進めることができるように、SAO部28で処理が行われている5ライン目の画像データをラインメモリに記憶する必要がある。なお、図29の(B)において、丸印の中にバツ印が示されている画素は、デブロッキングフィルタ処理が行われていないためにSAO処理を行うことができない画素を示している。
ループフィルタ処理部25は、例えばタップが5×5画素である場合、タップ内にSAO部28で処理されていない画素が含まれる画素位置となると処理を行うことができない。すなわち、図29の(C)に示すように、下側のブロック境界BBから7ライン目まで処理を進めることができるが、6ライン目の位置では、5×5画素のタップ範囲内にSAO部28で処理されていない画素が含まれることから処理を行うことができない。したがって、デブロッキングフィルタ処理後に、6ライン目から処理を進めることができるように、SAO部28で処理が行われている下側のブロック境界から5ライン目〜8ライン目までの4ライン分の画像データをラインメモリに記憶する必要がある。なお、図29の(C)において、丸印の中に+印が示されている画素は、デブロッキングフィルタ処理が行われていないことによるSAO処理後の画像データが入力されないため、ループフィルタ処理(ALF)を行うことができない画素を示している。
すなわち、デブロッキングフィルタ処理部24とSAO部28とループフィルタ処理部25では、輝度データに対して合わせて9ライン分の画像データを記憶する必要がある。また、色差データ(Chromaデータ)については、図30に示すように、デブロッキングフィルタ処理部24で図30の(A)に示すように、2ライン分の画像データを記憶すると、図30の(B)に示すSAO部28と図30の(C)に示すループフィルタ処理部25の処理のために記憶する画像データと合わせて7ライン分の画像データを記憶する必要がある。
したがって、ループフィルタ処理部25は、タップ位置が下側のブロック境界BBから所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなくフィルタ演算を行うように、例えば係数セットの変更を行い、フィルタ演算に用いる画素を削減する。すなわちタップ数を削減してループフィルタ処理を行う。
図31は、画像符号化装置に適用した場合の他の構成の動作を示すフローチャートである。なお、図31において、図3と対応する処理については同一符号を付している。図31では、ステップST19のデブロッキングフィルタ処理とステップST20のループフィルタ処理との間にステップST27としてSAO処理を行う。SAO処理では、上述のSAO部28と同様に適応的なオフセット処理を行う。
<13.画像復号装置に適用した場合の他の構成と動作>
図32は、本技術の画像処理装置を画像復号装置に適用した場合の他の構成を示している。なお、図32において、図6と対応するブロックについては同一符号を付している。
図32に示す画像復号装置50では、デブロッキングフィルタ処理部56とループフィルタ処理部57との間にSAO部60を設けている。ループフィルタ処理部57は、SAO部60で適応的にオフセット処理が行われた画像データに対してループフィルタ処理を行う。なお、SAO部60は、符号化ストリームに含まれているSAO処理に関する情報に基づき画像符号化装置10のSAO部28と同様な処理を行う。
図33は、画像復号装置に適用した場合の他の構成の動作を示すフローチャートである。なお、図33において、図7と対応する処理については同一符号を付している。
図33では、ステップST56のデブロッキングフィルタ処理とステップST57のループフィルタ処理との間にステップST63としてSAO処理を行う。SAO処理では、上述のSAO部28と同様に適応的なオフセット処理を行う。
<14.ループフィルタ処理部の第6の実施の形態>
以下、ループフィルタ処理部の第6の実施の形態の動作について説明する。ループフィルタ処理部の第6の実施の形態では、処理対象画素が通常ループフィルタ処理範囲外となる場合、タップを縮小してループフィルタ処理を行う。
図34は、タップを縮小する場合の処理を示すフローチャートである。ステップST91でループフィルタ処理部25は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部25は、ループフィルタの処理対象画素のライン位置が、SAO部28の処理が行われていない画素をタップとして含まない位置であるか判別する。ループフィルタ処理部25は、SAO部28の処理が行われていない画素をタップとして含まない位置である場合、通常ループフィルタ処理範囲内と判別してステップST92に進む。また、ループフィルタ処理部25は、SAO部28の処理が行われていない画素をタップとして含む位置である場合、通常ループフィルタ処理範囲外であると判別してステップST93に進む。
ステップST92で、ループフィルタ処理部25は、タップの構築を行う。ループフィルタ処理部25は、SAO部28の処理が行われていない画素がタップに含まれていないので、所定のタップ数、例えば5×5画素のタップとしてステップST94に進む。
ステップST93で、ループフィルタ処理部25は、縮小したタップの構築を行う。ループフィルタ処理部25は、SAO部28の処理が行われていない画素がタップとして用いられないようにタップを縮小する。例えば、SAO部28の処理が行われていない画素を用いるタップの画像データを用いないように係数セットを変更して、3×3画素のタップとしてステップST94に進む。
ステップST94でループフィルタ処理部25は、フィルタ演算を行う。ループフィルタ処理部25はステップST92またはステップST93の処理によって構築されたタップを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出する。
ステップST95でループフィルタ処理部25は、最終ラインまでの処理が完了したか判別する。ループフィルタ処理部25は、最終ラインすなわちSAO部28で処理が行われている最終ラインまでのループフィルタ処理が完了しているか判別する。ループフィルタ処理部25は、最終ラインまでの処理が完了していない場合にはステップST96に進む。また、ループフィルタ処理部25は、最終ラインまでのループフィルタ処理が完了したと判別した場合には、下段のブロックの処理が行われて、SAO部28で次のラインの処理が行われるまでブロックの処理を終了する。
ステップST96でループフィルタ処理部26は、処理対象画素のラインを次のラインに移動してステップST91に戻る。
図35は、ループフィルタ処理部25の動作を示している。ループフィルタ処理部25は、図35の(A)に示すように、SAO処理は下側のブロック境界BBから4ライン目目までは処理が完了しておらず、5ライン目から上側では処理が完了している。したがって、ループフィルタ処理部25は、所定のタップが例えば5×5画素のタップである場合、下側ブロック境界BBから7ライン目までループフィルタ処理を行う。
次に、ループフィルタ処理部25は、下側のブロック境界BBから6ライン目の位置で所定タップ数のフィルタ処理を行うと、SAO部28で処理が行われていない画素(下側ブロック境界から4ライン目目の画素)が必要となる。したがって、ループフィルタ処理部25は、SAO部28で処理が行われていない画素を用いることなくループフィルタ処理を行うことができるようにタップを縮小する。例えば、図35の(B)に示すようにタップ数を3×3画素に縮小する。このようにすれば、下側のブロック境界BBから6ライン目の位置までループフィルタ処理を進めることができる。また、このようにタップ数を縮小すると、下側のブロック境界BBから5ライン目の位置でループフィルタ処理を行うためには、SAO部28で処理が行われている下側のブロック境界BBから5ライン目と6ライン目の2ライン分の画像データを記憶しておけばよい。すなわち、タップ位置が下側のブロック境界BBから所定範囲内の位置である場合に、タップ数を縮小することで、画像データを記憶するラインメモリを削減できる。また、係数セットを変更してタップの縮小を行うようにすればハードウェア構成を変更することなくタップを縮小できる。なお、図36は、色差データについてのループフィルタ処理部25の動作を示しており、図36の(A)は、タップの縮小が行われていない場合、図36の(B)はタップの縮小が行われた場合を示している。
さらに、ループフィルタ処理部25は、デブロッキングフィルタ処理が行われていないためにSAO部28で処理が停止される直前の処理済みのラインでは、ループフィルタ処理を行わないようにする。このようにすれば、ループフィルタ処理済みとなるライン位置をさらに1ライン進めることができる。
図37は、タップ数を削減する場合にループフィルタ処理を行わないラインを設けた処理を示すフローチャートである。ステップST101でループフィルタ処理部25は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部25は、ループフィルタの処理対象画素のライン位置が、SAO部28の処理が行われていない画素をタップとして含まない位置であるか判別する。ループフィルタ処理部25は、SAO部28の処理が行われていない画素をタップとして含まない位置である場合、通常ループフィルタ処理範囲内と判別してステップST102に進む。また、ループフィルタ処理部25は、SAO部28の処理が行われていない画素をタップとして含む位置である場合、通常ループフィルタ処理範囲外であると判別してステップST103に進む。
ステップST102で、ループフィルタ処理部25は、タップの構築を行う。ループフィルタ処理部25は、SAO部28の処理が行われていない画素がタップに含まれていないので、所定のタップ数、例えば5×5画素のタップとしてステップST106に進む。
ステップST103でループフィルタ処理部25は、SAO処理が停止される直前のSAO処理済みのライン位置(SAO処理済み最終ライン位置)であるか判別する。ループフィルタ処理部25は、SAO処理済み最終ライン位置である場合にステップST104に進み、SAO処理済み最終ライン位置に達していない場合にステップST105に進む。
ステップST104でループフィルタ処理部25は、ループフィルタ処理を行わないように設定する。例えばループフィルタ処理部25は、ループフィルタ処理の対象画素の画像データをそのまま出力するようにフィルタ係数を設定してステップST106に進む。
ステップST105でループフィルタ処理部25は、縮小したタップの構築を行う。ループフィルタ処理部25は、SAO部28の処理が行われていない画素がタップとして用いられないようにタップを縮小する。例えば、SAO部28の処理が行われていない画素を用いることがないように、3×3画素のタップに縮小してステップST106に進む。
ステップST106でループフィルタ処理部25は、フィルタ演算を行う。ループフィルタ処理部25はステップST102乃至ステップST105の処理によって構築されたタップを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出する。
ステップST107でループフィルタ処理部25は、最終ラインまでの処理が完了したか判別する。ループフィルタ処理部25は、LCUにおいてSAO処理済み最終ライン位置までのループフィルタ処理が完了しているか判別する。ループフィルタ処理部25は、最終ラインまでの処理が完了していない場合にはステップST108に進む。また、ループフィルタ処理部25は、最終ラインまでのループフィルタ処理が完了したと判別した場合には、下段のブロックの処理が行われて、SAO部28で次のラインの処理が行われるまで当該LCUの処理を終了する。
ステップST108でループフィルタ処理部25は、処理対象画素のラインを次のラインに移動してステップST101に戻る。
図38は、SAO処理済み最終ラインでループフィルタ処理を行わないようにした場合のループフィルタ処理部25の動作を示している。ループフィルタ処理部25は、図38の(A)に示すように、SAO処理は下側のブロック境界BBから4ライン目までは処理が完了しておらず、5ライン目から上側では処理が完了している。したがって、ループフィルタ処理部25は、所定のタップが例えば5×5画素のタップである場合、下側ブロック境界BBから7ライン目までループフィルタ処理を行う。
次に、ループフィルタ処理部25は、下側のブロック境界BBから6ライン目の位置で所定タップ数のループフィルタ処理を行うと、SAO部28で処理が行われていない画素(下側のブロック境界BBから4ライン目の画素)が必要となる。したがって、ループフィルタ処理部25は、SAO部28で処理が行われていない画素を用いることなくフィルタ処理を行うことができるようにタップを縮小する。例えば、図38の(B)に示すようにタップ数を3×3画素に縮小する。このようにすれば、下側のブロック境界BBから6ライン目の位置までループフィルタ処理を進めることができる。
さらに、ループフィルタ処理部25は、下側のブロック境界BBから5ライン目の位置すなわちSAO処理済み最終ライン位置で縮小したタップ数でループフィルタ処理を行うと、SAO部28で処理が行われていない画素(下側のブロック境界BBから4ライン目の画素)が必要となる。したがって、ループフィルタ処理部25は、処理対象画素のループフィルタ処理を行わないようにする。このようにすれば、下側のブロック境界BBから5ライン目の位置までループフィルタ処理部25で処理を進めることができる。また、ループフィルタ処理部25で処理が行われた画像データを記憶しておく必要がないのでラインメモリをさらに削減できる。なお、図39は、色差データについてのループフィルタ処理部25の動作を示している。図39の(A)はタップの縮小が行われていない場合、図39の(B)はタップの縮小が行われた場合、図39の(C)はSAO処理済み最終ライン位置でループフィルタ処理を行わない場合を示している。
本明細書において、ブロックおよびマクロブロックとの用語は、HEVCの文脈における符号化単位(CU:Coding Unit)、予測単位(PU:Prediction Unit)、変換単位(TU:Transform Unit)をも含むものとする。
また、上述した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送する。コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
<15.応用例>
本技術の画像処理装置を用いた上述の実施形態に係る画像符号化装置10および画像復号装置50は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信等における送信機若しくは受信機、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録する記録装置、または、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
[第1の応用例]
図40は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置90は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置90は、制御部910、ユーザインタフェース部911等を有している。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。すなわち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置90における伝送手段としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリームおよび音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリームおよび音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタンまたはカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイまたはOLEDなど)の映像面上に映像または画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換および増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。外部インタフェース部909は、テレビジョン装置90と外部機器またはネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部909を介して受信される映像ストリームまたは音声ストリームが、デコーダ904により復号されてもよい。すなわち、外部インタフェース部909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置90における伝送手段としての役割を有する。
制御部910は、CPU(Central Processing Unit)などのプロセッサ、並びにRAM(Random Access Memory)およびROM(Read Only Memory)などのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、およびネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置90の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部911から入力される操作信号に応じて、テレビジョン装置90の動作を制御する。
ユーザインタフェース部911は、制御部910と接続される。ユーザインタフェース部911は、例えば、ユーザがテレビジョン装置90を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース部909および制御部910を相互に接続する。
このように構成されたテレビジョン装置90において、デコーダ904は、上述した実施形態に係る画像復号装置50の機能を有する。それにより、テレビジョン装置90での画像の復号に際して、ラインメモリのメモリ容量を削減できる。
[第2の応用例]
図41は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機92は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、およびバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924およびマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、および制御部931を相互に接続する。
携帯電話機92は、音声通話モード、データ通信モード、撮影モードおよびテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メールまたは画像データの送受信、画像の撮像、およびデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化および変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調および復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張しおよびD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化および変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調および復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAMまたはフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化および変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。これら送信信号および受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調および復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリームおよび音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張しおよびD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機92において、画像処理部927は、上述した実施形態に係る画像符号化装置10および画像復号装置50の機能を有する。それにより、携帯電話機92での画像の符号化および復号に際して、ラインメモリのメモリ容量を削減できる。
[第3の応用例]
図42は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置94は、例えば、受信した放送番組の音声データおよび映像データを符号化して記録媒体に記録する。また、記録再生装置94は、例えば、他の装置から取得される音声データおよび映像データを符号化して記録媒体に記録してもよい。また、記録再生装置94は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタおよびスピーカ上で再生する。このとき、記録再生装置94は、音声データおよび映像データを復号する。
記録再生装置94は、チューナ941、外部インタフェース部942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、およびユーザインタフェース部950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。すなわち、チューナ941は、記録再生装置94における伝送手段としての役割を有する。
外部インタフェース部942は、記録再生装置94と外部機器またはネットワークとを接続するためのインタフェースである。外部インタフェース部942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、またはフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部942を介して受信される映像データおよび音声データは、エンコーダ943へ入力される。すなわち、外部インタフェース部942は、記録再生装置94における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース部942から入力される映像データおよび音声データが符号化されていない場合に、映像データおよび音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像および音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像および音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録および読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)またはBlu−ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像および音声の記録時には、チューナ941またはエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944またはディスクドライブ945へ出力する。また、セレクタ946は、映像および音声の再生時には、HDD944またはディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データおよび音声データを生成する。そして、デコーダ947は、生成した映像データをOSD部948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD部948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD部948は、表示する映像に、例えばメニュー、ボタンまたはカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAMおよびROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、およびプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置94の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部950から入力される操作信号に応じて、記録再生装置94の動作を制御する。
ユーザインタフェース部950は、制御部949と接続される。ユーザインタフェース部950は、例えば、ユーザが記録再生装置94を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置94において、エンコーダ943は、上述した実施形態に係る画像符号化装置10の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置50の機能を有する。それにより、記録再生装置94での画像の符号化および復号に際して、ラインメモリのメモリ容量を削減できる。
[第4の応用例]
図43は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置96は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置96は、光学ブロック961、撮像部962、カメラ信号処理部963、画像処理部964、表示部965、外部インタフェース部966、メモリ967、メディアドライブ968、OSD部969、制御部970、ユーザインタフェース部971、およびバス972を備える。
光学ブロック961は、フォーカスレンズおよび絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号をカメラ信号処理部963へ出力する。
カメラ信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、カメラ信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース部966またはメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース部966またはメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、カメラ信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD部969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD部969は、例えばメニュー、ボタンまたはカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース部966は、例えばUSB入出力端子として構成される。外部インタフェース部966は、例えば、画像の印刷時に、撮像装置96とプリンタとを接続する。また、外部インタフェース部966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスクまたは光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置96にインストールされ得る。さらに、外部インタフェース部966は、LANまたはインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。すなわち、外部インタフェース部966は、撮像装置96における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブまたはSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAMおよびROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、およびプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置96の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部971から入力される操作信号に応じて、撮像装置96の動作を制御する。
ユーザインタフェース部971は、制御部970と接続される。ユーザインタフェース部971は、例えば、ユーザが撮像装置96を操作するためのボタンおよびスイッチなどを有する。ユーザインタフェース部971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
バス972は、画像処理部964、外部インタフェース部966、メモリ967、メディアドライブ968、OSD部969、および制御部970を相互に接続する。
このように構成された撮像装置96において、画像処理部964は、上述した実施形態に係る画像符号化装置10および画像復号装置50の機能を有する。それにより、撮像装置96での画像の符号化および復号に際して、ラインメモリのメモリ容量を削減できる。
さらに、本技術は、上述した実施形態に限定して解釈されるべきではない。この実施形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
なお、本技術の画像処理装置は以下のような構成も取ることができる。
(1) 符号化された画像を復号処理して画像を生成する復号部と、
前記復号部により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と
を備える画像処理装置。
(2) 前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素を垂直方向に複写して前記所定範囲内のタップとして用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う(1)に記載の画像処理装置。
(3) 前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、前記所定範囲内のタップに対してミラー複写が行われた画素を用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う(1)に記載の画像処理装置。
(4) 前記フィルタ演算部は、前記符号化された画像に含められている係数セットの情報に基づいて構築された係数セットを用いてフィルタ演算を行う(1)乃至(3)の何れかに記載の画像処理装置。
(5) 前記フィルタ制御部は、前記符号化された画像に含まれている選択情報に基づき、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理と、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の何れかを選択する(1)乃至(4)の何れかに記載の画像処理装置。
(6) 前記フィルタ制御部は、前記所定範囲内の画像データを用いることなく前記フィルタ演算を行うように前記タップを縮小する(1)に記載の画像処理装置。
(7) 前記所定範囲は、デブロッキングフィルタ処理のフィルタ処理範囲である(1)乃至(6)の何れかに記載の画像処理装置。
(8) 前記所定範囲は、SAO(Sample Adaptive Offset)処理が行われていない画素範囲である(1)乃至(6)の何れかに記載の画像処理装置。
(9) 画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と、
前記フィルタ演算部によりフィルタ演算が行われた画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
(10) 前記フィルタ制御部は、前記フィルタ演算に用いた前記係数セットの情報を、前記符号化された画像に含める(9)に記載の画像処理装置。
(11) 前記フィルタ制御部は、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理の符号化コストと、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の符号化コストを比較して、比較結果に基づき何れかの処理を選択して用いる(9)または(10)に記載の画像処理装置。
(12) 前記フィルタ制御部は、前記選択された処理を示す選択情報を前記符号化された画像に含める(11)に記載の画像処理装置。
この技術の画像処理装置と画像処理方法によれば、復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いたフィルタ演算が行われる。このため、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後の画像データを用いることなく適応ループフィルタ処理を行うことができるので、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように画像データを記憶するラインメモリのメモリ容量を削減できる。したがって、この技術の画像処理装置や画像処理方法を適用した電子機器を安価に提供ことが可能となる。
10・・・画像符号化装置、11・・・A/D変換部、12,58・・・画面並べ替えバッファ、13・・・減算部、14・・・直交変換部、15・・・量子化部、16・・・可逆符号化部、17・・・蓄積バッファ、18・・・レート制御部、21,53・・・逆量子化部、22,54・・・逆直交変換部、23,55・・・加算部、24,56・・・デブロッキングフィルタ処理部、25,57・・・ループフィルタ処理部、26・・・係数メモリ部、27,61・・・フレームメモリ、28,60・・・SAO(Sample Adaptive Offset)部、29,62,65・・・セレクタ、31,63・・・イントラ予測部、32・・・動き予測・補償部、33・・・予測画像・最適モード選択部、50・・・画像復号装置、51・・・蓄積バッファ、52・・・可逆復号部、59・・・D/A変換部、64・・・動き補償部、90・・・テレビジョン装置、92・・・携帯電話機、94・・・記録再生装置、96・・・撮像装置、251・・・ラインメモリ、252・・・タップ構築部、253・・・係数構築部、254・・・フィルタ演算部、255・・・センタータップ出力部、256・・・出力選択部、259・・・フィルタ制御部

Claims (14)

  1. 符号化された画像を復号処理して画像を生成する復号部と、
    前記復号部により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
    前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と
    を備える画像処理装置。
  2. 前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素を垂直方向に複写して前記所定範囲内のタップとして用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う請求項1記載の画像処理装置。
  3. 前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、前記所定範囲内のタップに対してミラー複写が行われた画素を用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う請求項1記載の画像処理装置。
  4. 前記フィルタ演算部は、前記符号化された画像に含められている係数セットの情報に基づいて構築された係数セットを用いてフィルタ演算を行う請求項1記載の画像処理装置。
  5. 前記フィルタ制御部は、前記符号化された画像に含まれている選択情報に基づき、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理と、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の何れかを選択する請求項1記載の画像処理装置。
  6. 前記フィルタ制御部は、前記所定範囲内の画像データを用いることなく前記フィルタ演算を行うように前記タップを縮小する請求項1記載の画像処理装置。
  7. 前記所定範囲は、デブロッキングフィルタ処理のフィルタ処理範囲である請求項1記載の画像処理装置。
  8. 前記所定範囲は、SAO(Sample Adaptive Offset)処理が行われていない画素範囲である請求項1記載の画像処理装置。
  9. 符号化された画像を復号処理して画像を生成する工程と、
    前記復号処理により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、
    前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と
    含む画像処理方法。
  10. 画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
    前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と、
    前記フィルタ演算部によりフィルタ演算が行われた画像を用いて、前記画像を符号化する符号化部と
    を備える画像処理装置。
  11. 前記フィルタ制御部は、前記フィルタ演算に用いた前記係数セットの情報を、前記符号化された画像に含める請求項10記載の画像処理装置。
  12. 前記フィルタ制御部は、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理の符号化コストと、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の符号化コストを比較して、比較結果に基づき何れかの処理を選択して用いる請求項10記載の画像処理装置。
  13. 前記フィルタ制御部は、前記選択された処理を示す選択情報を前記符号化された画像に含める請求項12記載の画像処理装置。
  14. 画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、
    前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と、
    前記フィルタ演算が行われた画像を用いて、前記画像を符号化する工程と
    を含む画像処理方法。
JP2012008966A 2011-06-28 2012-01-19 画像処理装置と画像処理方法 Pending JP2013118605A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012008966A JP2013118605A (ja) 2011-06-28 2012-01-19 画像処理装置と画像処理方法
PCT/JP2012/063280 WO2013001945A1 (ja) 2011-06-28 2012-05-24 画像処理装置と画像処理方法
US14/116,053 US20140086501A1 (en) 2011-06-28 2012-05-24 Image processing device and image processing method
CN201280030358.8A CN103621080A (zh) 2011-06-28 2012-05-24 图像处理装置和图像处理方法

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2011143460 2011-06-28
JP2011143460 2011-06-28
JP2011241014 2011-11-02
JP2011241014 2011-11-02
JP2012008966A JP2013118605A (ja) 2011-06-28 2012-01-19 画像処理装置と画像処理方法

Publications (1)

Publication Number Publication Date
JP2013118605A true JP2013118605A (ja) 2013-06-13

Family

ID=47423848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012008966A Pending JP2013118605A (ja) 2011-06-28 2012-01-19 画像処理装置と画像処理方法

Country Status (4)

Country Link
US (1) US20140086501A1 (ja)
JP (1) JP2013118605A (ja)
CN (1) CN103621080A (ja)
WO (1) WO2013001945A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014524708A (ja) * 2011-08-18 2014-09-22 クゥアルコム・インコーポレイテッド パーティションベースフィルタを適用するビデオコーディングのための方法およびデバイス、および記憶媒体
JP2016131300A (ja) * 2015-01-13 2016-07-21 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
WO2018225593A1 (ja) * 2017-06-05 2018-12-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
WO2019131400A1 (ja) * 2017-12-26 2019-07-04 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置
JP2022531523A (ja) * 2019-12-24 2022-07-07 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 適応ループフィルタ処理のための仮想境界処理

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013098873A (ja) * 2011-11-02 2013-05-20 Sony Corp 画像処理装置と画像処理方法
US8983218B2 (en) * 2012-04-11 2015-03-17 Texas Instruments Incorporated Virtual boundary processing simplification for adaptive loop filtering (ALF) in video coding
US9565440B2 (en) * 2013-06-25 2017-02-07 Vixs Systems Inc. Quantization parameter adjustment based on sum of variance and estimated picture encoding cost
KR102276854B1 (ko) 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
CN105530519B (zh) * 2014-09-29 2018-09-25 炬芯(珠海)科技有限公司 一种环内滤波方法及装置
US11405611B2 (en) 2016-02-15 2022-08-02 Qualcomm Incorporated Predicting filter coefficients from fixed filters for video coding
US11451833B2 (en) * 2017-12-01 2022-09-20 Sony Corporation Encoding device, encoding method, decoding device, and decoding method
WO2019225459A1 (ja) 2018-05-23 2019-11-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN111787334B (zh) * 2020-05-29 2021-09-14 浙江大华技术股份有限公司 一种用于帧内预测的滤波方法,滤波器及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002307765A1 (en) * 2001-04-11 2002-10-28 Nice Systems Ltd. Digital video protection for authenticity verification
US8681867B2 (en) * 2005-10-18 2014-03-25 Qualcomm Incorporated Selective deblock filtering techniques for video coding based on motion compensation resulting in a coded block pattern value
CN101453651B (zh) * 2007-11-30 2012-02-01 华为技术有限公司 一种去块滤波方法和装置
US8259819B2 (en) * 2009-12-10 2012-09-04 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for improving video quality by utilizing a unified loop filter
US20110293004A1 (en) * 2010-05-26 2011-12-01 Jicheng An Method for processing motion partitions in tree-based motion compensation and related binarization processing circuit thereof
EP2592831A2 (en) * 2010-07-09 2013-05-15 Samsung Electronics Co., Ltd Method and apparatus for encoding video using adjustable loop filtering, and method and apparatus for decoding video using adjustable loop filtering

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014524708A (ja) * 2011-08-18 2014-09-22 クゥアルコム・インコーポレイテッド パーティションベースフィルタを適用するビデオコーディングのための方法およびデバイス、および記憶媒体
US9641866B2 (en) 2011-08-18 2017-05-02 Qualcomm Incorporated Applying partition-based filters
JP2016131300A (ja) * 2015-01-13 2016-07-21 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
WO2018225593A1 (ja) * 2017-06-05 2018-12-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
WO2019131400A1 (ja) * 2017-12-26 2019-07-04 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置
JP2022531523A (ja) * 2019-12-24 2022-07-07 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 適応ループフィルタ処理のための仮想境界処理
JP7180001B2 (ja) 2019-12-24 2022-11-29 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 適応ループフィルタ処理のための仮想境界処理
US11689725B2 (en) 2019-12-24 2023-06-27 Telefonaktieblaget Lm Ericsson (Publ) Virtual boundary processing for adaptive loop filtering

Also Published As

Publication number Publication date
CN103621080A (zh) 2014-03-05
WO2013001945A1 (ja) 2013-01-03
US20140086501A1 (en) 2014-03-27
WO2013001945A8 (ja) 2013-11-14

Similar Documents

Publication Publication Date Title
JP6468381B2 (ja) 画像処理装置、画像処理方法、プログラム、並びに記録媒体
WO2013001945A1 (ja) 画像処理装置と画像処理方法
WO2014002896A1 (ja) 符号化装置および符号化方法、復号装置および復号方法
JPWO2011145601A1 (ja) 画像処理装置と画像処理方法
WO2012063878A1 (ja) 画像処理装置と画像処理方法
US10616599B2 (en) Image processing apparatus and method
WO2013088833A1 (ja) 画像処理装置及び画像処理方法
JP2013150164A (ja) 符号化装置および符号化方法、並びに、復号装置および復号方法
WO2013047325A1 (ja) 画像処理装置および方法
WO2012043166A1 (ja) 画像処理装置及び画像処理方法
WO2013065527A1 (ja) 画像処理装置と画像処理方法
WO2012056924A1 (ja) 画像処理装置と画像処理方法
JP5387520B2 (ja) 情報処理装置と情報処理方法
WO2014002900A1 (ja) 画像処理装置および画像処理方法