IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソシオネクストの特許一覧

特許7147788符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
<>
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図1
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図2
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図3
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図4
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図5
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図6
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図7
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図8
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図9
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図10
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図11
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図12
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図13
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図14
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図15
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図16
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図17
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図18
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図19
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図20
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図21
  • 特許-符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-27
(45)【発行日】2022-10-05
(54)【発明の名称】符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
(51)【国際特許分類】
   H04N 19/85 20140101AFI20220928BHJP
   H04N 19/463 20140101ALI20220928BHJP
   H04N 19/80 20140101ALI20220928BHJP
【FI】
H04N19/85
H04N19/463
H04N19/80
【請求項の数】 12
(21)【出願番号】P 2019563922
(86)(22)【出願日】2018-07-03
(86)【国際出願番号】 JP2018025141
(87)【国際公開番号】W WO2019135294
(87)【国際公開日】2019-07-11
【審査請求日】2021-06-10
(31)【優先権主張番号】62/613,920
(32)【優先日】2018-01-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】佐々木 瑛一
【審査官】田中 純一
(56)【参考文献】
【文献】特開2017-005504(JP,A)
【文献】特表2014-533048(JP,A)
【文献】特開2016-201824(JP,A)
【文献】米国特許出願公開第2015/0195534(US,A1)
【文献】Robert Cohen, et al.,Description of screen content coding technology proposal by Mitsubishi Electric Corporation,Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 17th M,米国,JCTVC,2014年03月27日,JCTVC-Q0036_r2,pp.6-8,http://phenix.it-sudparis.eu/jct/index.php
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
算出した画素の数が多い上位n個(nは1以上の整数)のクラスを選択し、選択したn個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算工程と、
加算したオフセット値を含むSAOパラメータをシグナリングする第1のシグナリング工程と
を有することを特徴とする符号化方法。
【請求項2】
前記画素値の階調が2BD階調(BDは8以上の整数)であった場合、前記算出工程は、前記画素値の階調を、少なくとも2(BD-7)の階調数を有する複数のクラスに分割することを特徴とする請求項1に記載の符号化方法。
【請求項3】
前記クラス加算工程は、算出した画素の数が多い上位4個または6個のクラスを選択することを特徴とする請求項1または2に記載の符号化方法。
【請求項4】
符号化単位のブロックの画素値の階調を、32個のバンドに分割するバンド分割工程と、
前記32個のバンドの中からバンドポジションを決定し、決定したバンドポジションに応じて特定される4個のバンドそれぞれに属する画素の画素値に、オフセット値を加算するバンド加算工程と、
決定したバンドポジションと、加算したオフセット値とを含むSAOパラメータをシグナリングする第2のシグナリング工程と
を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の符号化方法。
【請求項5】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
シグナリングされたSAOパラメータに含まれるオフセット値を取得する第1の取得工程と、
算出した画素の数が多い上位n個(nは1以上の整数)のクラスを選択し、選択したn個のクラスそれぞれに属する画素の画素値に、取得したオフセット値を加算するクラス加算工程と
を有することを特徴とする復号方法。
【請求項6】
前記画素値の階調が2BD階調(BDは8以上の整数)であった場合、前記算出工程は、前記画素値の階調を、少なくとも2(BD-7)の階調数を有する複数のクラスに分割することを特徴とする請求項5に記載の復号方法。
【請求項7】
前記クラス加算工程は、算出した画素の数が多い上位4個または6個のクラスを選択することを特徴とする請求項5または6に記載の復号方法。
【請求項8】
符号化単位のブロックの画素値の階調を、32個のバンドに分割するバンド分割工程と、
シグナリングされたSAOパラメータに含まれるバンドポジションとオフセット値とを取得する第2の取得工程と、
取得したバンドポジションに応じて特定される4個のバンドそれぞれに属する画素の画素値に、取得したオフセット値を加算するバンド加算工程と
を更に有することを特徴とする請求項5乃至7のいずれか1項に記載の復号方法。
【請求項9】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出部と、
算出した画素の数が多い上位n個(nは1以上の整数)のクラスを選択し、選択したn個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算部と、
加算したオフセット値を含むSAOパラメータをシグナリングするシグナリング部と
を有することを特徴とする符号化装置。
【請求項10】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出部と、
シグナリングされたSAOパラメータに含まれるオフセット値を取得する取得部と、
算出した画素の数が多い上位n個(nは1以上の整数)のクラスを選択し、選択したn個のクラスそれぞれに属する画素の画素値に、取得したオフセット値を加算するクラス加算部と
を有することを特徴とする復号装置。
【請求項11】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
算出した画素の数が多い上位n個(nは1以上の整数)のクラスを選択し、選択したn個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算工程と、
加算したオフセット値を含むSAOパラメータをシグナリングするシグナリング工程と
をコンピュータに実行させるための符号化プログラム。
【請求項12】
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
シグナリングされたSAOパラメータに含まれるオフセット値を取得する取得工程と、
算出した画素の数が多い上位n個(nは1以上の整数)のクラスを選択し、選択したn個のクラスそれぞれに属する画素の画素値に、取得したオフセット値を加算するクラス加算工程と
をコンピュータに実行させるための復号プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラムに関する。
【背景技術】
【0002】
動画像データの圧縮符号化に関する国際標準として、H.265/HEVCが知られている。H.265/HEVCでは、圧縮符号化時の画質の劣化を抑えるループフィルタ技術として、画素適応オフセット(SAO(Sample Adaptive Offset))が導入されている。
【0003】
H.265/HEVCで導入された画素適応オフセットには、エッジオフセットとバンドオフセットとが含まれ、圧縮符号化時にいずれかのオフセットを適用することができる。このうち、バンドオフセットは、画素値の階調を32個のバンドに分割し、その中から決定したバンドポジションに基づく連続した4個のバンドを選択したうえで、該4個のバンドそれぞれに属する画素の画素値にオフセット値を加算(または減算)する処理である。
【0004】
かかるバンドオフセットを適用することで、特定の連続する階調値に対応する画素値を調節することができるため、圧縮符号化時の誤差を低減させ画質を改善することができる。
【先行技術文献】
【特許文献】
【0005】
【文献】特表2014-534762号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、現状のバンドオフセットは、バンド幅が広いうえに、特定の連続する階調値を対象としているため、画素値の詳細な調節を行うことが困難であり、画質の向上には限界があるという問題がある。
【0007】
例えば、色差における階調値の中央値付近は無彩色であるため、歪みがある場合、主観的画質の劣化が生じやすいが、現状のバンドオフセットでは、バンド幅が広いうえに、中央値以外の連続した4個のバンドが対象となった場合に、適切な対象にオフセット値を加算(または減算)することができない。このようなことから、現在検討中である次世代ビデオコーデック(H.265/HEVCに続く次世代コーデック)においては、バンドオフセットにおける画質の向上が望まれる。
【0008】
また、バンドオフセットは、処理対象のブロックごとに、決定したバンドポジションと、選択した4個のバンドそれぞれに対応するオフセット値とを含むSAOパラメータをシグナリングしてデコーダに送信する。このため、デコーダに送信されるSAOパラメータのビット量が大きいという問題がある。このようなことから、現在検討中である次世代ビデオコーデックにおいては、SAOパラメータのビット量を削減することが望まれる。
【0009】
一つの側面では、画質を向上させるとともに、SAOパラメータのビット量を削減することを目的としている。
【課題を解決するための手段】
【0010】
一態様によれば、符号化方法は、以下の構成を備える。すなわち、
符号化単位のブロックの画素値の階調を、所定の階調数を有する複数のクラスに分割し、該複数のクラスそれぞれに属する画素の数を算出する算出工程と、
算出した画素の数が多い上位n個(nは1以上の整数)のクラスを選択し、選択したn個のクラスそれぞれに属する画素の画素値に、オフセット値を加算するクラス加算工程と、
加算したオフセット値を含むSAOパラメータをシグナリングする第1のシグナリング工程とを有することを特徴とする。
【発明の効果】
【0011】
画質を向上させるとともに、SAOパラメータのビット量を削減することができる。
【図面の簡単な説明】
【0012】
図1図1は、エンコーダ及びデコーダの適用例を示す図である。
図2図2は、エンコーダ及びデコーダの他の適用例を示す図である。
図3図3は、エンコーダのハードウェア構成の一例を示す図である。
図4図4は、エンコーダの機能構成の一例を示す図である。
図5図5は、一般的なエンコーダのループフィルタ部の機能構成の一例を示す図である。
図6図6は、一般的なエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。
図7図7は、一般的なエンコーダにおけるバンドオフセット処理の処理内容を説明するための図である。
図8図8は、一般的なエンコーダによるバンドオフセット処理の流れを示すフローチャートである。
図9図9は、一般的なエンコーダによるシグナリング処理の流れを示すフローチャートである。
図10図10は、第1の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。
図11図11は、第1の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第1の図である。
図12図12は、第1の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第2の図である。
図13図13は、第1の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第3の図である。
図14図14は、第1の実施形態に係るエンコーダによるクラスオフセット処理の流れを示すフローチャートである。
図15図15は、第1の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。
図16図16は、デコーダの機能構成の一例を示す図である。
図17図17は、一般的なデコーダのループフィルタ部の機能構成の一例を示す図である。
図18図18は、一般的なデコーダによる画素適応オフセット処理の流れを示すフローチャートである。
図19図19は、一般的なデコーダによるバンドオフセット処理の流れを示すフローチャートである。
図20図20は、第1の実施形態に係るデコーダのループフィルタ部の機能構成の一例を示す図である。
図21図21は、第1の実施形態に係るデコーダによるクラスオフセット処理の流れを示すフローチャートである。
図22図22は、第2の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0014】
[第1の実施形態]
<1.エンコーダ及びデコーダの適用例>
はじめに、エンコーダ(符号化装置)及びデコーダ(復号装置)の適用例について説明する。図1は、エンコーダ及びデコーダの適用例を示す図である。
【0015】
図1に示すように、エンコーダ110を送信装置に、デコーダ120を受信装置にそれぞれ配し、ネットワーク160を介して接続することで、エンコーダ110及びデコーダ120を適用した画像処理システム100を形成することができる。
【0016】
画像処理システム100において、送信装置に配されたエンコーダ110は、入力された動画像データを符号化することでデータストリーム(符号化列)を生成する。また、送信装置は生成されたデータストリームを、ネットワーク160を介して受信装置に送信する。
【0017】
受信装置はデータストリームを受信する。また、受信装置に配されたデコーダ120は、データストリームを復号することで動画像データを生成し、表示する。
【0018】
かかる画像処理システム100を形成することで、動画像データを送信する際の送信負荷を低減できる。このため、画像処理システム100は、インタネット分野、放送分野、通信分野等の種々の分野に適用することができる。
【0019】
適用例100aは、画像処理システム100をインタネット分野に適用した例を示している。適用例100aの場合、送信装置110の一例であるサーバ装置111より送信されたデータストリームを、受信装置120の一例であるパーソナルコンピュータ121a、スマート端末121b等が受信し、表示する。これにより、パーソナルコンピュータ121aやスマート端末121bのユーザは、サーバ装置111が保持する動画像データをインタネットを介して視聴することができる。
【0020】
適用例100bは、画像処理システム100を放送分野に適用した例を示している。適用例100bの場合、送信装置110の一例である放送用送信機112より送信されたデータストリームを、受信装置120の一例であるテレビ122が受信し、表示する。これにより、例えば、テレビ122のユーザは、放送用送信機112が送信する放送内容を視聴することができる。
【0021】
適用例100cは、画像処理システム100を通信分野に適用した例を示している。適用例100cの場合、送信装置110の一例であるテレビ電話機113より送信されたデータストリームを、受信装置120の一例であるテレビ電話機123が受信し、表示する。これにより、テレビ電話機123のユーザは、通話相手の顔を見ながら通話することができる。
【0022】
図2は、エンコーダ及びデコーダの他の適用例を示す図である。図2に示すように、エンコーダ110とデコーダ120とを一体的に構成することで、エンコーダ110及びデコーダ120を適用した蓄積装置200を形成することができる。
【0023】
蓄積装置200は、入力された動画像データをエンコーダ110が符号化し、生成したデータストリームを記録媒体に格納する。また、蓄積装置200は、記録媒体に格納されたデータストリームを、デコーダ120が復号することで動画像データを生成し、表示する。
【0024】
かかる蓄積装置200を形成することで、動画像データを格納する際の容量を低減できるため、例えば、蓄積分野に適用することができる。適用例200aは蓄積装置200を蓄積分野に適用した例を示している。適用例200aの場合、蓄積装置200の一例であるビデオレコーダ211は、内蔵するエンコーダ110が、動画像データを符号化することで生成したデータストリームを記録媒体212に格納する。また、ビデオレコーダ211は、内蔵するデコーダ120が、記録媒体212より読み出したデータストリームを復号することで動画像データを生成し、モニタ213に表示する。これにより、ビデオレコーダ211のユーザは、取得した動画像データを効率的に蓄積することができる。
【0025】
<2.エンコーダ及びデコーダのハードウェア構成>
次に、エンコーダ及びデコーダのハードウェア構成について説明する。なお、エンコーダ110及びデコーダ120は、同様のハードウェア構成を有していることから、ここでは、エンコーダ110のハードウェア構成について説明する。
【0026】
図3は、エンコーダのハードウェア構成の一例を示す図である。図3に示すように、エンコーダ110は、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303を有する。CPU301、ROM302、RAM303は、いわゆるコンピュータを形成する。また、エンコーダ110は、補助記憶装置304、入力装置305、表示装置306、接続装置307、ドライブ装置308を有する。なお、エンコーダ110の各ハードウェアは、バス309を介して相互に接続される。
【0027】
CPU301は、補助記憶装置304にインストールされた各種プログラム(例えば、符号化プログラム(デコーダ120の場合にあっては、復号プログラム)等)を実行する。
【0028】
ROM302は、不揮発性メモリである。ROM302は、補助記憶装置304にインストールされた各種プログラムをCPU301が実行するために必要な各種プログラム、データ等を記憶する、主記憶デバイスとして機能する。具体的には、ROM302はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を記憶する。
【0029】
RAM303は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリである。RAM303は、補助記憶装置304にインストールされた各種プログラムがCPU301によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【0030】
補助記憶装置304は、インストールされた各種プログラムや、各種プログラムを実行する際に用いる情報を記憶する補助記憶デバイスである。
【0031】
入力装置305は、エンコーダ110に対して各種指示を入力する際に用いる入力デバイスである。
【0032】
表示装置306は、エンコーダ110の内部情報を表示する表示デバイスである。接続装置307は、エンコーダ110が外部からの動画像データを受け付けたり、エンコーダ110がデコーダ120と接続し、通信を行うための通信デバイスである。
【0033】
ドライブ装置308はコンピュータ読み取り可能な記録媒体310をセットするためのデバイスである。ここでいう記録媒体310には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。あるいは、記録媒体310には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0034】
なお、補助記憶装置304にインストールされる各種プログラムは、例えば、配布された記録媒体310がドライブ装置308にセットされ、該記録媒体310に記録された各種プログラムがドライブ装置308により読み出されることでインストールされてもよい。あるいは、補助記憶装置304にインストールされる各種プログラムは、接続装置307を介してネットワーク160からダウンロードされることでインストールされる。
【0035】
なお、図3に示すハードウェア構成は、あくまで一例にすぎず、適用形態によっては、図3に示すハードウェアの一部を除外して、あるいは他のハードウェアに置き換えてもよいことはいうまでもない。
【0036】
<3.エンコーダの機能構成>
次に、符号化プログラムを実行することで実現される、エンコーダ110の機能構成について説明する。図4は、エンコーダの機能構成の一例を示す図である。図4に示すように、エンコーダ110は、ブロック分割部401、直交変換部402、量子化部403、エントロピ符号化部404を有する。また、エンコーダ110は、逆量子化部405、逆直交変換部406、ループフィルタ部407、復号画像記憶部408、イントラ/インタ予測部409を有する。
【0037】
ブロック分割部401は、入力された動画像データに含まれる各画面(入力画面)をストリームで固定サイズのブロックに分割する。更に、ブロック分割部401は、固定サイズのブロックそれぞれを、更に再帰的に、符号化単位のブロックに分割する。
【0038】
なお、H.265/HEVCにおけるブロック分割部では、入力画面をストリームで固定サイズのブロックであるCTU(Coding Tree Unit)に分割する。また、H.265/HEVCにおけるブロック分割部では、各CTUのブロックを符号化単位のブロックであるCU(Coding Unit)に分割する。更に、H.265/HEVCにおけるブロック分割部では、各CUのブロックを予測ユニット(PU(Prediction Unit))と変換ユニット(TU(Transform Unit))のブロックに分割する。
【0039】
しかしながら、H.265/HEVCに続く次世代コーデックでは、PU、TUを廃止し、全てCUのブロックに分割することが見込まれている。このため、本実施形態では、ブロック分割部401が、CTUのブロックを、全てCUのブロックに分割するものとして説明する。なお、H.265/HEVCに続く次世代コーデックにおいて検討されている内容によれば、CTUのブロックのサイズは、最大128画素×128画素であるので、以下では、CTUのブロックのサイズは、128画素×128画素として説明する。
【0040】
ブロック分割部401によりCUのブロックに分割された各入力画面は、イントラ/インタ予測部409に通知されるとともに、予測残差信号の算出に用いられる。
【0041】
直交変換部402は、入力画面内の各CUのブロックの入力画像と、対応する各CUのブロックの予測画像との差分に基づいて算出された予測残差信号に対して直交変換処理を実行する。
【0042】
量子化部403は、直交変換処理が実行された予測残差信号を量子化することで量子化信号を生成し、エントロピ符号化部404及び逆量子化部405に出力する。
【0043】
エントロピ符号化部404は、量子化信号をエントロピ符号化することで、データストリームを生成し、出力する。
【0044】
逆量子化部405は、量子化信号を逆量子化し、逆直交変換部406に出力する。逆直交変換部406は、逆量子化された量子化信号に対して逆直交変換処理を実行する。逆直交変換部406により得られた信号に対しては、例えば、イントラ/インタ予測部409が生成した予測画像が加算されることで復号画像が生成され、ループフィルタ部407に入力される。
【0045】
ループフィルタ部407は、入力された復号画像の符号化ノイズを低減するフィルタ処理を行う。なお、ループフィルタ部407は、更に、
・デブロッキングフィルタ(Deblocking Filter)部、
・画素適応オフセット(Sample Adaptive Offset)処理部、
を有する(詳細は後述)。ループフィルタ部407が有するこれらの各部が処理を実行する際に用いるパラメータ(例えば、画素適応オフセット処理部が画素適応オフセット処理を実行する際に用いる画素適応オフセットパラメータ(SAOパラメータ)等)はシグナリングされる。ループフィルタ部407によりシグナリングされたパラメータ(SAOパラメータを含む)は、付帯情報としてエントロピ符号化部404によりデータストリームに組み込まれる。
【0046】
復号画像記憶部408は、ループフィルタ部407によりフィルタ処理された復号画像を画面ごとに記憶する。
【0047】
イントラ/インタ予測部409は、復号中の画面内の各CUのブロックの復号画像を用いて処理対象のCUのブロックの予測画像を生成するイントラ予測(画面内予測)を行う。また、イントラ/インタ予測部409は、参照画面内の各CUのブロックの復号画像を用いて画面間で動き補償を行い、処理対象のCUのブロックの予測画像を生成する動き補償インタ予測(画面間予測)を行う。
【0048】
更に、イントラ/インタ予測部409は、イントラ予測により生成された各CUのブロックの予測画像であるイントラ予測画像または動き補償インタ予測により生成された各CUのブロックの予測画像であるインタ予測画像のいずれか一方を出力する。
【0049】
イントラ/インタ予測部409より出力された各CUのブロックの予測画像は、入力画面内の各CUのブロックの入力画像との残差計算に用いられ、算出された予測残差信号は、直交変換部402に入力される。また、イントラ/インタ予測部409より出力された予測画像は、逆直交変換部406により得られた信号に加算され、復号画像としてループフィルタ部407に入力される。
【0050】
<4.ループフィルタ部の説明>
続いて、エンコーダ110のループフィルタ部407の詳細について説明する。なお、エンコーダ110のループフィルタ部407の詳細を説明するにあたっては、まず、比較対象として、一般的な(H.265/HEVCにおける)エンコーダのループフィルタ部について詳細を説明する。以下、「4.1」~「4.4」までは、一般的なエンコーダのループフィルタ部について詳細を説明する。その後、「4.5」~「4.8」において、第1の実施形態に係るエンコーダ110のループフィルタ部407について詳細を説明する。
【0051】
<4.1 一般的なエンコーダのループフィルタ部の機能構成>
図5は、一般的なエンコーダのループフィルタ部の機能構成の一例を示す図である。図5に示すように、ループフィルタ部は、デブロッキングフィルタ部510、画素適応オフセット処理部520を有する。
【0052】
デブロッキングフィルタ部510は、処理対象のブロックの復号画像をフィルタ処理することで、入力画面内の各CUのブロックの入力画像を符号化した際にブロック境界で生じた歪を減少させる。画素適応オフセット処理部520は、デブロッキングフィルタ部510によりフィルタ処理された処理対象のブロックの復号画像を、画素単位で分類し、各画素に対して分類に応じたオフセット値を加算する。
【0053】
なお、画素適応オフセット処理部520は、具体的には、エッジオフセット処理部521、バンドオフセット処理部522、選択部523を有する。
【0054】
エッジオフセット処理部521は、エッジオフセットクラスとして指定された方向に連続する3画素の画素値の大小関係によりエッジ状態を分類する。また、エッジオフセット処理部521は、エッジ状態の分類に対応するオフセット値を処理対象のブロックの復号画像の画素値に加算する。更に、エッジオフセット処理部521は、画素値にオフセット値が加算された処理対象のブロックを、選択部523に通知する。
【0055】
なお、エッジオフセット処理部521は、これらの処理(エッジオフセット処理)を、エッジオフセット処理に関わるSAOパラメータを変更しながら、それぞれのSAOパラメータについて実行する。
【0056】
バンドオフセット処理部522は、処理対象のブロックの復号画像が取り得る画素値の階調を32個のバンドに分割し、その中から決定したバンドポジションに基づく連続した4個のバンドを選択する。そして、バンドオフセット処理部522は、該4個のバンドそれぞれに属する画素の画素値に、オフセット値を加算(または減算)する。
【0057】
具体的には、バンドオフセット処理部522は、図5の右側に示すように、ブロック読み出し部541、SAOパラメータ決定部542、画素値変更部543を有する。ブロック読み出し部541は、画素適応オフセット処理部520が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部543に通知する。SAOパラメータ決定部542は、処理対象のブロックの復号画像が取り得る画素値の階調を32個のバンドに分割するとともに、バンドオフセット処理に関わるSAOパラメータ(バンドポジション、オフセット値)を決定し、画素値変更部543に出力する。
【0058】
画素値変更部543は、処理対象のブロックの復号画像の各色成分(輝度信号(Y)、色差信号(Cb、Cr))の画素値のうち、バンドポジションに基づく連続した4個のバンドそれぞれに属する画素の画素値に、オフセット値を加算する。また、画素値変更部543はオフセット値が加算された処理対象のブロックの復号画像を、バンドオフセット処理に関わるSAOパラメータ(バンドポジション、オフセット値)とともに選択部523に通知する。
【0059】
なお、バンドオフセット処理部522は、これらの処理(バンドオフセット処理)を、バンドオフセット処理に関わるSAOパラメータ(バンドポジション、オフセット値)を変更しながら、それぞれのSAOパラメータについて実行する。
【0060】
選択部523は、処理対象のブロックの復号画像に対して、エッジオフセット処理部521が行った各処理結果、及び、バンドオフセット処理部522が行った各処理結果をそれぞれ取得し、レート歪(RD(Rate Distortion))コストを算出する。また、選択部523は、算出したRDコストが最も低い処理結果を判定し、判定した処理結果の算出に用いられたSAOパラメータをシグナリングする。
【0061】
<4.2 一般的なエンコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ>
次に、一般的なエンコーダの画素適応オフセット処理部520による画素適応オフセット処理の流れについて説明する。図6は、一般的なエンコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【0062】
処理対象のブロックについてデブロッキングフィルタ部510によるデブロッキングフィルタ処理が完了すると、画素適応オフセット処理部520は、図6に示す画素適応オフセット処理を開始する。なお、ここでは説明の簡略化のため、処理対象のブロック1個分の処理について説明する。
【0063】
ステップS601において、画素適応オフセット処理部520は、処理対象のブロックを取得する。
【0064】
ステップS602において、エッジオフセット処理部521は、取得された処理対象のブロックを読み出し、エッジオフセット処理に関わる所定のSAOパラメータを用いて、エッジオフセット処理を行う。
【0065】
ステップS603において、選択部523は、ステップS602におけるエッジオフセット処理の処理結果について、RDコストを算出する。
【0066】
ステップS604において、エッジオフセット処理部521は、処理対象のブロックに対して、予め定められた範囲内の全てのSAOパラメータ(エッジオフセット処理に関わるSAOパラメータ)を用いてエッジオフセット処理を実行したか否かを判定する。
【0067】
ステップS604において、エッジオフセット処理の実行に用いられていないSAOパラメータがあると判定した場合には(ステップS604においてNoの場合には)、ステップS602に戻る。
【0068】
一方、ステップS604において、予め定められた範囲内の全てのSAOパラメータを用いてエッジオフセット処理を実行したと判定した場合には、ステップS605に進む。
【0069】
ステップS605において、バンドオフセット処理部522は、処理対象のブロックを読み出し、バンドオフセット処理に関わる所定のSAOパラメータを用いて、バンドオフセット処理(詳細は後述)を行う。
【0070】
ステップS606において、選択部523は、ステップS605におけるバンドオフセット処理の処理結果について、RDコストを算出する。
【0071】
ステップS607において、バンドオフセット処理部522は、処理対象のブロックに対して、予め定められた範囲内の全てのSAOパラメータ(バンドオフセット処理に関わるSAOパラメータ)を用いてバンドオフセット処理を実行したか否かを判定する。
【0072】
ステップS607において、バンドオフセット処理の実行に用いられていないSAOパラメータがあると判定した場合には(ステップS607においてNoの場合には)、ステップS605に戻る。
【0073】
一方、ステップS607において、予め定められた範囲内の全てのSAOパラメータを用いてバンドオフセット処理を実行したと判定した場合には、ステップS608に進む。
【0074】
ステップS608において、選択部523は、エッジオフセット処理部521が行った各処理結果、及び、バンドオフセット処理部522が行った各処理結果それぞれのRDコストを比較し、RDコストが最も低い処理結果を判定する。また、選択部523は、判定した処理結果の算出に用いられたSAOパラメータを特定する。
【0075】
ステップS609において、選択部523は、判定した処理結果を、画素適応オフセット処理の処理結果として出力する。
【0076】
ステップS610において、選択部523は、特定したSAOパラメータについてシグナリング処理(詳細は後述)を行う。
【0077】
<4.3 一般的なエンコーダにおけるバンドオフセット処理(ステップS605)の詳細>
次に、一般的なエンコーダにおけるバンドオフセット処理(ステップS605)の詳細について説明する。
【0078】
(1)バンドオフセット処理の処理内容
はじめに、バンドオフセット処理(ステップS605)の処理内容について説明する。図7は、一般的なエンコーダにおけるバンドオフセット処理の処理内容を説明するための図である。このうち、図7の700aは、処理対象のブロックを示している。図7の700aに示すように、一般的なエンコーダの場合、バンドオフセット処理は、復号中の画面710においてCTU単位のブロックに対して実行される。図7の700aの例は、128画素×128画素のCTU720のブロックに対してバンドオフセット処理が実行され、処理結果として、CTU720'のブロックが生成された様子を示している。
【0079】
図7の700bは、バンドオフセット処理の具体例を示している。ここでは、復号中の画面710の各色成分(輝度信号(Y)、色差信号(Cb、Cr))のうち、色差信号(Cr)に対するバンドオフセット処理について説明する。
【0080】
図7の700bに示すように、復号中の画面710において、処理対象のブロックの復号画像における色差信号(Cr)の取り得る画素値が256階調であった場合、画素値変更部543では、当該256階調を、32個のバンドに分割する。これにより、1バンドあたりの階調数は8階調となる。
【0081】
ここで、SAOパラメータ決定部542が、CTU720のブロックの復号画像に対するバンドポジションとして、矢印730で示すバンドポジションを出力したとする。この場合、画素値変更部543は、連続する4個のバンドとして、バンド731~734を特定する。
【0082】
そして、画素値変更部543は、CTU720のブロックの復号画像に含まれる各画素のうち、バンド731に属する画素の色差信号(Cr)の画素値にオフセット値Vを加算する。同様に、画素値変更部543は、CTU720のブロックの復号画像に含まれる各画素のうち、バンド732に属する画素の色差信号(Cr)の画素値にオフセット値Vを加算する。同様に、画素値変更部543は、CTU720のブロックの復号画像に含まれる各画素のうち、バンド733に属する画素の色差信号(Cr)の画素値にオフセット値Vを加算する。同様に、画素値変更部543は、CTU720のブロックの復号画像に含まれる各画素のうち、バンド734に属する画素の色差信号(Cr)の画素値にオフセット値Vを加算する。
【0083】
このように、バンドオフセット処理部522では、バンドオフセット処理に関わるSAOパラメータ=(矢印730で示すバンドポジション、オフセット値V~V)を用いて、CTU720のブロックの復号画像に対してバンドオフセット処理を行う。なお、バンドオフセット処理部522では、輝度信号(Y)、色差信号(Cb)に対しても同様のバンドオフセット処理を行うものとする。これにより、バンドオフセット処理の処理結果として、CTU720'のブロックが生成される。
【0084】
なお、連続する4個のバンドそれぞれに加算(または減算)するオフセット値V~Vは、異なる値であっても同じ値(1種類の値)であってもよい。
【0085】
(2)バンドオフセット処理の流れ
続いて、一般的なエンコーダによるバンドオフセット処理(ステップS605)の詳細なフローチャートについて説明する。図8は、一般的なエンコーダによるバンドオフセット処理の流れを示すフローチャートである。
【0086】
ステップS801において、ブロック読み出し部541は、画素適応オフセット処理部520が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【0087】
ステップS802において、SAOパラメータ決定部542は、バンドオフセット処理に関わるSAOパラメータとして、"バンドポジション"、連続する4個のバンドのオフセット値として"オフセットの絶対値"及び"オフセットの符号"を色成分ごとに決定する。なお、SAOパラメータ決定部542によって決定されるバンドオフセット処理に関わるSAOパラメータの範囲は色成分ごとに予め定められているものとし、SAOパラメータ決定部542は、当該範囲内のSAOパラメータを順次決定していく。また、SAOパラメータ決定部542は、色成分ごとに決定したバンドオフセット処理に関わるSAOパラメータ(各色成分のバンドポジション、4個のオフセット絶対値、4個のオフセット符号)を、順次、画素値変更部543に出力していく。
【0088】
ステップS803において、画素値変更部543は、処理対象のブロックの復号画像の画素値を、バンドオフセット処理に関わるSAOパラメータ(各色成分のバンドポジション、4個のオフセット絶対値、4個のオフセット符号)を用いて色成分ごとに変更する。
【0089】
<4.4 一般的なエンコーダによるシグナリング処理(ステップS610)の詳細>
次に、一般的なエンコーダによるシグナリング処理(ステップS610)の詳細について説明する。図9は、一般的なエンコーダによるシグナリング処理の流れを示すフローチャートである。なお、ここでは、RDコスト比較により、バンドオフセット処理に関わるSAOパラメータを用いたバンドオフセット処理の処理結果が、最もRDコストが低い処理結果であると判定されたものとして説明する。
【0090】
ステップS901において、選択部523は、画素適応オフセット処理において、バンドオフセット処理の処理結果が選択されたことを示す情報をシグナリングする。
【0091】
ステップS902において、選択部523は、最もRDコストが低い処理結果が算出された際の、バンドオフセット処理に関わるSAOパラメータである、各色成分の4個のオフセット絶対値をシグナリングする。
【0092】
ステップS903において、選択部523は、最もRDコストが低い処理結果が算出された際の、バンドオフセット処理に関わるSAOパラメータである、各色成分の4個のオフセット符号をシグナリングする。
【0093】
ステップS904において、選択部523は、最もRDコストが低い処理結果が算出された際の、バンドオフセット処理に関わるSAOパラメータである、各色成分のバンドポジションをシグナリングする。
【0094】
<4.5 第1の実施形態に係るエンコーダのループフィルタ部の機能構成>
続いて、第1の実施形態に係るエンコーダ110のループフィルタ部407の機能構成について説明する。
【0095】
図10の右側は、第1の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。なお、図5を用いて説明した、一般的なエンコーダのループフィルタ部と同様の機能については同じ符号を付すこととし、ここでは説明を省略する。
【0096】
図5との相違点は、画素適応オフセット処理部520がクラスオフセット処理部1001を有する点と、選択部1002の機能が選択部523の機能とは異なる点である。なお、後述するように、クラスオフセット処理部1001は、色差歪みを削減することも可能であり、CAR(Chroma Artifact Reduction) SAOとしての機能も有する。
【0097】
図10に示すように、クラスオフセット処理部1001は、ブロック読み出し部541と、画素数算出部1011と、クラス選択部1012と、オフセット決定部1013と、画素値変更部1014とを有する。
【0098】
ブロック読み出し部541は、画素適応オフセット処理部520が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部1014に通知する。
【0099】
画素数算出部1011は算出部の一例である。画素数算出部1011は、処理対象のブロックの復号画像の各色成分(輝度信号(Y)、色差信号(Cb、Cr))の画素値の階調を、所定の階調数を有する複数のグループに分割する。以降、当該グループを、「クラス」と称する。画素数算出部1011は、画素値の階調を、各クラスが同じ階調数を有するように分割してもよいし、異なる階調数を有するように分割してもよい。
【0100】
また、各クラスが有する階調数は、図5で示したバンドオフセット処理部522により32個のバンドに分割された際の、各バンドが有する階調数(画素値が256階調であった場合、各バンドが有する階調数は"8")よりも多くても少なくてもよい。
【0101】
なお、各クラスが有する階調数を、各バンドが有する階調数よりも少なくした場合(つまり、バンド幅を狭くした場合)、処理対象のブロック内において、小さな劣化が起こっている特定領域に対してオフセット値を加算することができる。この場合、一般的なエンコーダのバンドオフセット処理と比較して、色ずれの改善効果を大きくすることができる。
【0102】
画素数算出部1011は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて、各クラスに分類することで、各クラスに属する画素の数を算出する。
【0103】
クラス選択部1012は、算出された画素の数の多い上位n個のクラス(nは1以上の整数。例えば、"3")を色成分ごとに選択して、画素値変更部1014に通知する。
【0104】
なお、色成分ごとに選択する上位n個のクラスを4個未満とすることで(つまり、一般的なエンコーダの場合と比較してオフセット値を加算するバンド数を少なくすることで)、各色成分のオフセット値をシグナリングした際のビット量を減らすことができる。
【0105】
クラス選択部1012は、別例として、処理対象のブロックの復号画像の各色成分が色差信号(Cb、Cr)の場合は、階調値の中央値(1<<(bitdepth-1))前後のm個のクラス(mは1以上の整数。例えば"6")を選択し、m個の中から、算出された画素の数の多い上位n個のクラス(nは1以上の整数。例えば、"3")を選択して、画素値変更部1014に通知する。
【0106】
なお、階調値の中央値付近は無彩色であり、歪みがある場合、中央値付近を固定で選択することで、主観的な画質を向上させることができる。また、選択する上位n個のクラスを4個未満とすることで(つまり、一般的なエンコーダの場合と比較してオフセット値を加算するバンド数を少なくすることで)、各色成分のオフセット値をシグナリングした際のビット量を減らすことができる。
【0107】
オフセット決定部1013は、クラス選択部1012から選択したn個のクラス情報を受け、復号時の画素値の2乗誤差が最小となるように、色成分ごとにn個のオフセット値(n個のオフセット絶対値、n個のオフセット符号)を決定する。また、オフセット決定部1013は、決定した各色成分のn個のオフセット値を画素値変更部1014に通知する。
【0108】
画素値変更部1014はクラス加算部の一例である。画素値変更部1014は、処理対象のブロックの復号画像に含まれる各画素のうち、クラス選択部1012により選択されたクラスに属する画素の画素値に対して、色成分ごとに、決定されたオフセット値を加算する。また、画素値変更部1014は、色成分ごとにオフセット値を加算した処理対象のブロックの復号画像を選択部1002に出力する。また、画素値変更部1014は、クラスオフセット処理に関わるSAOパラメータとして、各色成分のオフセット値を含むSAOパラメータを選択部1002に出力する。
【0109】
選択部1002はシグナリング部の一例である。選択部1002は、処理対象のブロックの復号画像に対して、エッジオフセット処理部521が行った各処理結果、及び、クラスオフセット処理部1001が行った各処理結果を取得し、RDコストを算出する。また、選択部1002は、算出したRDコストが最も低い処理結果を判定し、判定した処理結果を選択して、適応ループフィルタ部530に出力する。更に、選択部1002は、判定した処理結果の算出に用いられたSAOパラメータをシグナリングする。
【0110】
<4.6 第1の実施形態に係るエンコーダにおけるクラスオフセット処理の詳細>
次に、第1の実施形態に係るエンコーダ110におけるクラスオフセット処理の詳細について説明する。
【0111】
(1)クラスオフセット処理の具体例
はじめに、クラスオフセット処理の具体例について説明する。なお、図7の説明と同様に、ここでも、色差信号(Cr)に対するクラスオフセット処理について説明する。
【0112】
(1-1)クラスオフセット処理の具体例その1
図11は、第1の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第1の図である。
【0113】
図11の1100aの例は、復号中の画面710において、処理対象のブロックの復号画像における色差信号(Cr)の取り得る画素値が256階調であった場合に、画素数算出部1011が、当該256階調を128個のクラスに均等に分割した様子を示している。これにより、1クラスあたりの階調数は2階調となる。
【0114】
また、図11の1100aの例は、画素数算出部1011が、CTU720のブロックの復号画像に含まれる各画素を、色差信号(Cr)の画素値に基づいて各クラスに分類することで、ヒストグラム1101を生成した様子を示している。
【0115】
図11の1100bの例は、クラス選択部1012が、算出された画素の数が多い上位3個のクラスを選択した様子を示している。また、図11の1100bの例は、画素値変更部1014が、選択された3個のクラスに属する画素の色差信号(Cr)の画素値に対して、オフセット値V、V、Vをそれぞれ加算した様子を示している。
【0116】
図11の1100bの別例として、クラス選択部1012は、階調値の中央値前後の6個のクラスを固定で選択し、3個のクラスを選択するようにしてもよい。
【0117】
このように、図11の例の場合、クラスオフセット処理部1001は、CTU720のブロックの復号画像に対して、下記の内容で、クラスオフセット処理を行っている。
・オフセット値を加算する対象を、8階調のバンドよりも狭い2階調のクラスとしている。
・バンドポジションに相当するパラメータを決定せず、各クラスに属する画素の数に基づいて、オフセット値を加算する対象を選択している。また、バンドポジションに相当するパラメータを決定せず、階調値の中央値前後を固定で選択し、各クラスに属する画素の数に基づいて、オフセット値を加算する対象を選択することもできる。
・オフセット値を加算する対象の数を、3個としている。
【0118】
これにより、クラスオフセット処理部1001では、CTU720のブロックの復号画像において、小さな劣化が起こっている特定領域の色差信号(Cr)に対してのみオフセット値を加算することができる。このため、一般的なエンコーダのバンドオフセット処理と比較して、色ずれの改善効果を大きくすることができる。
【0119】
また、クラスオフセット処理部1001では、バンドポジションに相当するパラメータを、SAOパラメータに含めてデコーダ側に送信する必要がない。このため、一般的なエンコーダのバンドオフセット処理と比較して、デコーダに送信するSAOパラメータのビット量を削減することができる。
【0120】
更に、クラスオフセット処理部1001では、SAOパラメータに含めるオフセット値の個数を減らすことができる。このため、一般的なエンコーダのバンドオフセット処理と比較して、デコーダに送信するSAOパラメータのビット量を更に削減することができる。
【0121】
(1-2)クラスオフセット処理の具体例その2
次に、クラスオフセット処理の他の具体例について説明する。図12は、第1の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第2の図である。
【0122】
図12の1200aの例は、図11の1100aの例と同様に、画素数算出部1011が、CTU720のブロックの復号画像に含まれる各画素を、色差信号(Cr)の画素値に基づいて各クラスに分類することで、ヒストグラム1201を生成した様子を示している。図11の1100aとの相違点は、算出した画素の数が多い上位3個のクラスが、連続していない点である。
【0123】
なお、図12の1200bに示すように、クラス選択部1012は、上位3個のクラスが連続しているか否かに関わらず、算出した画素の数が多い上位3個のクラスを選択する。また、画素値変更部1014では、クラス選択部1012により選択された3個のクラスに属する画素の色差信号(Cr)の画素値に対して、オフセット値V、V、Vをそれぞれ加算する。
【0124】
このように、クラスオフセット処理部1001では、CTU720のブロックの復号画像に含まれる各画素の画素値の分布に関わらず、上記具体例その1と同様の内容でクラスオフセット処理を行うことで、上記具体例その1と同様の効果を得ることができる。
【0125】
加えて、一般的なエンコーダのバンドオフセット処理とは異なり、連続していないクラスに属する画素の画素値に対してもオフセット値を加算することができる。このため、例えば、背景と物体のような色差の値が大きく異なるものが含まれる領域に対しても、それぞれにオフセット値を加算することができるため、色ずれの改善効果を大きくすることができる。
【0126】
(1-3)クラスオフセット処理の具体例その3
次に、クラスオフセット処理の他の具体例について説明する。図13は、第1の実施形態に係るエンコーダにおけるクラスオフセット処理の具体例を示す第3の図である。
【0127】
図13の1300aの例は、復号中の画面710において、処理対象のブロックの復号画像における色差信号(Cr)の取り得る画素値が256階調であった場合に、画素数算出部1011が、当該256階調を異なる階調数のクラスに分割した様子を示している。具体的には、画素数算出部1011は、階調数=2のクラスから階調数=16のクラスまで含む複数のクラスに分割している。
【0128】
また、図13の1300aの例は、画素数算出部1011が、CTU720のブロックの復号画像に含まれる各画素を、色差信号(Cr)の画素値に基づいて各クラスに分類することで、ヒストグラム1301を生成した様子を示している。図12の1200aとの相違点は、算出した画素の数が多い上位3個のクラスが、それぞれ、異なる階調数(階調数:2、4、6)を有している点である。
【0129】
なお、クラス選択部1012は、図13の1300bに示すように、上位3個のクラスそれぞれが有する階調数が同じであるか異なるかに関わらず、算出した画素の数が多い上位3個のクラスを選択する。また、画素値変更部1014では、クラス選択部1012により選択された各クラスに属する画素の色差信号(Cr)の画素値に対して、オフセット値V、V、Vをそれぞれ加算する。または、上位3個のクラスそれぞれが有する階調数が異なる場合には、画素の数が最も多い階調数に属するクラスから、画素の数が多い上位3個のクラスを選択する。
【0130】
このように、クラスオフセット処理部1001では、各クラスが有する階調数が同じであるか異なるかに関わらず、上記具体例(具体例その1)と同様の内容でクラスオフセット処理を行うことで、上記具体例その1と同様の効果を得ることができる。
【0131】
加えて、一般的なエンコーダのバンドオフセット処理とは異なり、オフセット値を加算する階調数を階調値に応じて変えることができるため、色ずれの改善効果を大きくすることができる。
【0132】
(1-4)クラスオフセット処理の具体例その4
上記(1-1)~(1-3)の例(具体例その1~その3)では、クラス選択部1012が、算出した画素の数が多い上位3個のクラスを選択するものとして説明した。しかしながら、選択するクラスの数は、これに限定されず、例えば、上位4個以上のクラス(例えば、上位4個のクラスあるいは上位6個のクラス)を選択するようにしてもよい。
【0133】
また、上記(1-1)~(1-2)の例では、復号中の画面710において、処理対象のブロックの復号画像における色差信号(Cr)の取り得る画素値が256階調であった場合に、各クラスが有する階調数が"2"となるように分割する場合について説明した。
【0134】
一方で、復号中の画面710において、処理対象のブロックの復号画像の色差信号(Cr)の画素値は、例えば、0~511の512階調であってもよい。この場合、画素数算出部1011は、各クラスそれぞれが有する階調数が"4"となるように分割してもよい。つまり、均等に分割る場合、各クラスが有する階調数を、階調に応じて変更してもよい。例えば、復号中の画面710において、処理対象のブロックの復号画像における色差信号(Cr)の取り得る画素値のビット深さ(Bit Depth)をBDとおく(色差信号(Cr)の画素値を2BD階調とする)。この場合、画素数算出部1011は、各クラスが有する階調数が、2(BD-7)となるように分割してもよい。ただし、BDは、8以上の整数とする。
【0135】
(2)クラスオフセット処理の流れ
続いて、一般的なエンコーダによるバンドオフセット処理(図6のステップS605)に代わる処理として、第1の実施形態に係るエンコーダ110によるクラスオフセット処理の詳細な流れについて説明する。図14は、第1の実施形態に係るエンコーダによるクラスオフセット処理の流れを示すフローチャートである。
【0136】
ステップS1401において、ブロック読み出し部541は、画素適応オフセット処理部520が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【0137】
ステップS1403において、画素数算出部1011は、処理対象のブロックの復号画像において各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。また、画素数算出部1011は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて各クラスに分類することで、各クラスに属する画素の数を算出する。更に、クラス選択部1012は、色成分ごとに、算出した画素の数が多い上位n個のクラスを選択する。あるいは、クラス選択部1012は、色成分が色差信号(Cb、Cr)の場合は、階調値の中央値(1<<(bitdepth-1))前後のm個のクラスを選択し、m個の中から、算出した画素の数が多い上位n個のクラスを選択する。
【0138】
ステップS1404において、オフセット決定部1013は、選択したn個のクラスに属する画素の画素値に加算するオフセット値として、色成分ごとにn個のオフセット絶対値とn個のオフセット符号とを決定する。
【0139】
ステップS1405において、画素値変更部1014は、各色成分において、選択したn個のクラスそれぞれに属する画素の画素値に対して、決定したn個のオフセット値(n個のオフセット絶対値、n個のオフセット符号)を加算する。
【0140】
<4.7 第1の実施形態に係るエンコーダによるシグナリング処理の詳細>
次に、第1の実施形態に係るエンコーダ110によるシグナリング処理の詳細について説明する。図15は、第1の実施形態に係るエンコーダによるシグナリング処理の流れを示すフローチャートである。なお、ここでは、選択部1002におけるRDコスト比較により、クラスオフセット処理に関わるSAOパラメータを用いたクラスオフセット処理の処理結果が、最もRDコストが低い処理結果であると判定されたものとして説明する。
【0141】
ステップS1501において、選択部1002は、画素適応オフセット処理において、クラスオフセット処理の処理結果が選択されたことを示す情報をシグナリングする。
【0142】
ステップS1502において、選択部1002は、最もRDコストが低い処理結果が算出された際のSAOパラメータのうち、各色成分について算出された、n個のクラスそれぞれのオフセット絶対値をシグナリングする。
【0143】
ステップS1503において、選択部1002は、最もRDコストが低い処理結果が算出された際のSAOパラメータのうち、各色成分について算出された、n個のクラスそれぞれのオフセット符号をシグナリングする。
【0144】
<5.デコーダの機能構成>
次に、復号プログラムを実行することで実現される、デコーダ120の機能構成について説明する。図16は、デコーダの機能構成の一例を示す図である。図16に示すように、デコーダ120は、エントロピ復号部1601、逆量子化部1602、逆直交変換部1603、ループフィルタ部1604、復号画像記憶部1605、イントラ/インタ予測部1606を有する。
【0145】
エントロピ復号部1601は、受信したデータストリームを復号し、量子化信号を出力する。また、エントロピ復号部1601は、データストリームより付帯情報(ループフィルタ部1604において用いられるSAOパラメータ等を含む)を抽出し、ループフィルタ部1604に通知する。
【0146】
逆量子化部1602は、量子化信号を逆量子化し、逆直交変換部1603に出力する。逆直交変換部1603は、逆量子化された量子化信号に対して逆直交変換処理を実行する。
【0147】
逆直交変換部1603により逆直交変換処理が実行されることで得られた信号に対しては、例えば、イントラ/インタ予測部1606が生成した予測画像が加算されることで復号画像が生成され、ループフィルタ部1604に入力される。
【0148】
ループフィルタ部1604は、通知された付帯情報を用いて、入力された復号画像の符号化ノイズを低減するフィルタ処理を行う。なお、ループフィルタ部1604は、更に、デブロッキングフィルタ部と、画素適応オフセット処理部、適応ループフィルタ部とを有する(詳細は後述)。
【0149】
また、ループフィルタ部1604は、フィルタ処理した復号画像を復号結果として出力するとともに、復号画像記憶部1605に記憶する。
【0150】
イントラ/インタ予測部1606は、復号中の画面内の各CUのブロックの復号画像を用いて処理対象のCUのブロックの予測画像を生成するイントラ予測を行う。また、イントラ/インタ予測部1606は、参照画面内の各CUのブロックの復号画像を用いて画面内で動き補償を行い、処理対象のCUのブロックの予測画像を生成するインタ予測を行う。
【0151】
更に、イントラ/インタ予測部1606は、イントラ予測により生成された各CUのブロックの予測画像であるイントラ予測画像または動き補償インタ予測により生成された各CUのブロックの予測画像であるインタ予測画像のいずれか一方を出力する。出力された予測画像は、逆直交変換部1603により逆直交変換処理が実行されることで得られた信号に加算され、復号画像としてループフィルタ部1604に入力される。
【0152】
<6.ループフィルタ部の説明>
続いて、デコーダ120のループフィルタ部1604の詳細について説明する。なお、デコーダ120のループフィルタ部1604の詳細を説明するにあたっては、まず、比較対象として、一般的な(H.265/HEVCにおける)デコーダのループフィルタ部について詳細を説明する。以下、「6.1」~「6.3」までは、一般的なデコーダのループフィルタ部について詳細を説明する。その後、「6.4」~「6.5」において、第1の実施形態に係るデコーダ120のループフィルタ部1604について詳細を説明する。
【0153】
<6.1 一般的なデコーダのループフィルタ部の機能構成>
図17は、一般的なデコーダのループフィルタ部の機能構成の一例を示す図である。図17に示すように、ループフィルタ部は、デブロッキングフィルタ部1710、画素適応オフセット処理部1720を有する。
【0154】
デブロッキングフィルタ部1710は、処理対象のブロックの復号画像をフィルタ処理することで、エンコーダが、入力画面内の各CUのブロックの入力画像を符号化した際にブロック境界で生じた歪を減少させる。画素適応オフセット処理部1720は、デブロッキングフィルタ部1710によりフィルタ処理された処理対象のブロックの復号画像を、画素単位で分類し、各画素に対して分類に応じたオフセット値を加算する。
【0155】
なお、画素適応オフセット処理部1720は、具体的には、エッジオフセット処理部1721、バンドオフセット処理部1722を有しており、エントロピ復号部1601より通知された付帯情報に基づいて、いずれかの処理部を実行させる。
【0156】
エッジオフセット処理部1721は、エッジオフセットクラスとして指定された方向に連続する3画素の画素値の大小関係によりエッジ状態を分類する。また、エッジオフセット処理部1721は、エッジ状態の分類に対応するオフセット値を処理対象のブロックの復号画像の画素値に加算する。
【0157】
バンドオフセット処理部1722は、処理対象のブロックの復号画像が取り得る画素値の階調を32個のバンドに分割し、その中からバンドポジションに基づく連続した4個のバンドを選択する。そして、バンドオフセット処理部1722は、該4個のバンドそれぞれに属する画素の画素値に、オフセット値を加算(または減算)する。
【0158】
具体的には、バンドオフセット処理部1722は、図17の右側に示すように、ブロック読み出し部1741、SAOパラメータ取得部1742、画素値変更部1743を有する。ブロック読み出し部1741は、画素適応オフセット処理部1720が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部1743に通知する。SAOパラメータ取得部1742は、処理対象のブロックの復号画像が取り得る画素値の階調を32個のバンドに分割する。また、SAOパラメータ取得部1742は、付帯情報に含まれるバンドオフセット処理に関わるSAOパラメータ(バンドポジション、オフセット値)を取得し、画素値変更部1743に出力する。
【0159】
画素値変更部1743は、処理対象のブロックの復号画像の各色成分(輝度信号(Y)、色差信号(Cb、Cr))の画素値を、SAOパラメータ取得部1742より出力された、バンドオフセット処理に関わるSAOパラメータを用いて変更する。また、画素値変更部1743は画素値を変更した処理対象のブロックの復号画像を出力する。
【0160】
適応ループフィルタ部530は、画素適応オフセット処理部520によりオフセット処理された処理対象のブロックの復号画像をフィルタ処理することで、対応する入力画像との誤差を低減させる。
【0161】
<6.2 一般的なデコーダの画素適応オフセット処理部による画素適応オフセット処理の流れ>
次に、一般的なデコーダの画素適応オフセット処理部1720による画素適応オフセット処理の流れについて説明する。図18は、一般的なデコーダによる画素適応オフセット処理の流れを示すフローチャートである。
【0162】
処理対象のブロックについてデブロッキングフィルタ部1710によるデブロッキングフィルタ処理が完了すると、画素適応オフセット処理部1720は、図18に示す画素適応オフセット処理を開始する。なお、ここでは説明の簡略化のため、処理対象のブロック1個分の処理について説明する。
【0163】
ステップS1801において、画素適応オフセット処理部1720は、処理対象のブロックを取得する。
【0164】
ステップS1802において、画素適応オフセット処理部1720は、エントロピ復号部1601より付帯情報を取得する。
【0165】
ステップS1803において、画素適応オフセット処理部1720は、取得した付帯情報に基づいて、オフセットモードがバンドオフセットモードか否かを判定する。ステップS1803においてバンドオフセットモードであると判定した場合には(ステップS1803においてYesの場合には)、ステップS1804に進む。
【0166】
ステップS1804において、バンドオフセット処理部1722は、付帯情報に含まれるバンドオフセット処理に関わるSAOパラメータを用いて、バンドオフセット処理を実行する。
【0167】
一方、ステップS1803においてバンドオフセットモードではないと判定した場合には(ステップS1803においてNoの場合には)、ステップS1805に進む。
【0168】
ステップS1805において、画素適応オフセット処理部1720は、オフセットモードがエッジオフセットモードか否かを判定する。ステップS1805においてエッジオフセットモードであると判定した場合には(ステップS1805においてYesの場合には)、ステップS1806に進む。
【0169】
ステップS1806において、エッジオフセット処理部1721は、付帯情報に含まれるエッジオフセット処理に関わるSAOパラメータを用いてエッジオフセット処理を実行する。
【0170】
一方、ステップS1805において、エッジオフセットモードでないと判定した場合には(ステップS1805においてNoの場合には)、オフセットモードがオフであると判定して、処理対象のブロックに対する画素適応オフセット処理を終了する。
【0171】
<6.3 一般的なデコーダの画素適応オフセット処理部のバンドオフセット処理部によるバンドオフセット処理の流れ>
続いて、一般的なデコーダによるバンドオフセット処理(ステップS1804)の詳細なフローチャートについて説明する。図19は、一般的なデコーダによるバンドオフセット処理の流れを示すフローチャートである。
【0172】
ステップS1901において、ブロック読み出し部1741は、画素適応オフセット処理部1720が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【0173】
ステップS1902において、SAOパラメータ取得部1742は、付帯情報に含まれるバンドオフセット処理に関わるSAOパラメータとして、バンドポジションと、4個のオフセット絶対値と、4個のオフセット符号を色成分ごとに取得する。
【0174】
ステップS1903において、画素値変更部1743は、処理対象のブロックの復号画像の画素値を、バンドオフセット処理に関わるSAOパラメータ(バンドポジション、4個のオフセット絶対値、4個のオフセット符号)を用いて色成分ごとに変更する。
【0175】
<6.4 第1の実施形態に係るデコーダのループフィルタ部の機能構成>
次に、第1の実施形態に係るデコーダ120のループフィルタ部1604の機能構成について説明する。
【0176】
図20は、第1の実施形態に係るデコーダのループフィルタ部の機能構成の一例を示す図である。なお、図17を用いて説明した、一般的なデコーダのループフィルタ部と同様の機能については同じ符号を付すこととし、ここでは説明を省略する。
【0177】
図17との相違点は、画素適応オフセット処理部1720がクラスオフセット処理部2001を有する点である。なお、後述するように、クラスオフセット処理部2001は、色差歪みを削減することも可能であり、CAR SAOとしての機能も有する。図20の右側に示すように、クラスオフセット処理部2001は、ブロック読み出し部1741と、画素数算出部2011と、クラス選択部2012と、SAOパラメータ取得部2013と、画素値変更部2014とを有する。
【0178】
ブロック読み出し部1741は、画素適応オフセット処理部1720が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出し、画素値変更部2014に通知する。
【0179】
画素数算出部2011は算出部の一例である。画素数算出部2011は、処理対象のブロックの復号画像の各色成分(輝度信号(Y)、色差信号(Cb、Cr))の画素値の階調を、所定の階調数を有する複数のクラスに分割する。画素数算出部2011は、画素値の階調を、各クラスが同じ階調数を有するように分割してもよいし、異なる階調数を有するように分割してもよい。
【0180】
また、各クラスが有する階調数は、図17で示したバンドオフセット処理部1722により32個のバンドに分割された際の、各バンドが有する階調数(画素値の階調が256階調であった場合、各バンドが有する階調数は"8")よりも多くても少なくてもよい。
【0181】
ただし、画素数算出部2011が各クラスを生成する際の分割方法は、エンコーダ110において、画素数算出部1011が各クラスを生成する際に用いた分割方法と同じであり、予め決められているものとする。
【0182】
なお、各クラスが有する階調数を、各バンドが有する階調数よりも少なくした場合(つまり、バンド幅を狭くした場合)、処理対象のブロック内において、小さな劣化が起こっている特定領域に対してオフセット値を加算することができる。この場合、一般的なデコーダのバンドオフセット処理と比較して、色ずれの改善効果を大きくすることができる。
【0183】
更に、画素数算出部2011は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて、各クラスに分類することで、各クラスに属する画素の数を算出する。
【0184】
クラス選択部2012は、算出された画素の数が多い上位n個のクラス(nは1以上の整数。例えば、"3")を色成分ごとに選択して、画素値変更部2014に通知する。
【0185】
クラス選択部2012は、別例として、処理対象のブロックの復号画像の各色成分が色差信号(Cb、Cr)の場合は、階調値の中央値(1<<(bitdepth-1))前後のm個のクラス(mは1以上の整数。例えば"6")を選択し、m個の中から、算出された画素の数の多い上位n個のクラス(nは1以上の整数。例えば、"3")を選択して、画素値変更部1014に通知する。
【0186】
ただし、クラス選択部2012が選択するクラスの数は、エンコーダ110において、画素数算出部1011が選択するクラスの数と同じであり、予め決められているものとする。
【0187】
SAOパラメータ取得部2013は、クラスオフセット処理に関わるSAOパラメータを取得する。なお、本実施形態において、SAOパラメータ取得部2013は、SAOパラメータとして、色成分ごとにn個のオフセット値(n個のオフセット絶対値、n個のオフセット符号)を取得する。また、SAOパラメータ取得部2013は、取得した各色成分のn個のオフセット値を画素値変更部2014に通知する。
【0188】
画素値変更部2014はクラス加算部の一例である。画素値変更部2014は、処理対象のブロックの復号画像に含まれる各画素のうち、クラス選択部2012により選択されたクラスに属する画素の画素値に対して、色成分ごとに、通知されたオフセット値を加算する。また、画素値変更部2014は、色成分ごとにオフセット値を加算した処理対象のブロックの復号画像を出力する。
【0189】
<6.5 第1の実施形態に係るデコーダによるクラスオフセット処理の詳細>
次に、一般的なデコーダによるバンドオフセット処理(図18のステップS1804)に代わる処理として、第1の実施形態に係るデコーダ120によるクラスオフセット処理の詳細な流れについて説明する。図21は、第1の実施形態に係るデコーダによるクラスオフセット処理の流れを示すフローチャートである。
【0190】
ステップS2101において、ブロック読み出し部1741は、画素適応オフセット処理部1720が取得した各ブロックの復号画像のうち、処理対象のブロックの復号画像を読み出す。
【0191】
ステップS2103において、画素数算出部2011は、処理対象のブロックの復号画像において、各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。また、画素数算出部2011は、処理対象のブロックの復号画像に含まれる各画素を、色成分ごとに、画素値に基づいて各クラスに分類することで、各クラスに属する画素の数を算出する。更に、クラス選択部2012は、色成分ごとに、算出した画素の数が多い上位n個のクラスを選択する。あるいは、別例として、クラス選択部2012は、色成分が色差信号(Cb、Cr)の場合は、階調値の中央値(1<<(bitdepth-1))前後のm個のクラスを選択し、m個の中から、算出した画素の数が多い上位n個のクラスを選択する。
【0192】
ステップS2104において、SAOパラメータ取得部2013は、付帯情報に含まれるSAOパラメータとして、n個のクラスそれぞれのオフセット値(n個のオフセット絶対値、n個のオフセット符号)を色成分ごとに取得する。
【0193】
ステップS2105において、画素値変更部2014は、各色成分において、選択したn個のクラスそれぞれに属する画素の画素値に対して、取得したn個のオフセット値(n個のオフセット絶対値、n個のオフセット符号)を加算する。
【0194】
<7.まとめ>
以上の説明から明らかなように、第1の実施形態に係るエンコーダ110において、画素適応オフセット処理部は、バンドオフセット処理部に代えてクラスオフセット処理部を有しており、該クラスオフセット処理部は、
・処理対象のブロックの復号画像における各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。
・複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位n個のクラスを選択し、選択したn個のクラスにオフセット値を加算する。または、階調値の中央値前後を固定で選択し、選択された複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位n個のクラスを選択し、選択したn個のクラスにオフセット値を加算することもできる。
・加算したオフセット値を含むSAOパラメータをシグナリングしてデコーダに送信する。
【0195】
このように、画素の数に応じてクラスを選択し、オフセット値を加算することで、第1の実施形態に係るエンコーダ110によれば、SAOパラメータとしてバンドポジションをデコーダに送信する必要がなくなる。この結果、SAOパラメータのビット量を削減することができる。
【0196】
また、第1の実施形態に係るエンコーダ110は、クラスオフセット処理部がクラスオフセット処理を行う際に、
・選択するクラスの数を減らすことで(4個未満とすることで)、SAOパラメータに含めるオフセット絶対値、オフセット符号の数を減らすことが可能となる。この結果、SAOパラメータのビット量を更に削減することができる。
・各クラスが有する階調数を小さくすることで、小さな劣化が起こっている特定領域に対してのみオフセット値を加算することが可能となる。この結果、色ずれの改善効果を大きくすることができる。
【0197】
同様に、第1の実施形態に係るデコーダ120において、画素適応オフセット処理部はバンドオフセット処理部に代えてクラスオフセット処理部を有しており、該クラスオフセット処理部は、
・処理対象のブロックの復号画像における各色成分の画素値の階調を、所定の階調数を有する複数のクラスに分割する。
・複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位n個のクラスを選択し、選択したn個のクラスにオフセット値を加算する。または、階調値の中央値前後を固定で選択し、選択された複数のクラスそれぞれに属する画素の数を算出し、算出した画素の数が多い上位n個のクラスを選択し、選択したn個のクラスにオフセット値を加算することもできる。
・SAOパラメータとして、オフセット値をエンコーダより受信する。
【0198】
このように、画素の数に応じてクラスを選択し、オフセット値を加算することで、第1の実施形態に係るデコーダ120によれば、SAOパラメータを介してバンドポジションを受信する必要がなくなる。この結果、SAOパラメータのビット量を削減することができる。
【0199】
また、第1の実施形態に係るデコーダ120は、クラスオフセット処理部がクラスオフセット処理を行う際に、
・選択するクラスの数を減らすことで(4個未満とすることで)、SAOパラメータに含めるオフセット絶対値、オフセット符号の数を減らすことが可能となる。この結果、SAOパラメータのビット量を更に削減することができる。
・各クラスが有する階調数を小さくすることで、小さな劣化が起こっている特定領域に対してのみオフセット値を加算することが可能となる。この結果、色ずれの改善効果を大きくすることができる。
【0200】
[第2の実施形態]
上記第1の実施形態では、画素適応オフセット処理部が、バンドオフセット処理部に代えて、クラスオフセット処理部を有する構成とした。また、上記第1の実施形態では、処理対象のブロックの復号画像において、各色成分に対して、同様のオフセット処理を行うものとして説明した。
【0201】
しかしながら、画素適応オフセット処理部の構成はこれに限定されず、例えば、バンドオフセット処理部に加えて、クラスオフセット処理部を有する構成としてもよい。また、色成分ごとに、バンドオフセット処理またはクラスオフセット処理のいずれかを行うように構成してもよい。以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
【0202】
図22は、第2の実施形態に係るエンコーダのループフィルタ部の機能構成の一例を示す図である。図10に示した機能構成との相違点は、画素適応オフセット処理部2200が、エッジオフセット処理部521、クラスオフセット処理部1001、選択部1002に加えて、バンドオフセット処理部522を有している点である。
【0203】
図22に示す機能構成のもと、画素適応オフセット処理部2200では、例えば、各色成分のうち、輝度信号(Y)については、バンドオフセット処理部522によるバンドオフセット処理を行うよう制御する。また、色差信号(Cb、Cr)については、クラスオフセット処理部1001によるクラスオフセット処理を行うよう制御する。ただし、各色成分について、バンドオフセット処理を行うか、クラスオフセット処理を行うかは、予め設定されているものとする。
【0204】
なお、図22では、エンコーダ110のループフィルタ部の機能構成について示したが、デコーダ120のループフィルタ部についても同様に構成することができる。
【0205】
このように、色成分ごとに、異なるオフセット処理を行う構成とすることで、色ずれの改善効果を大きくすることができる。
【0206】
[その他の実施形態]
上記第1及び第2の実施形態では、n個のオフセット値の送信順序について特に言及しなかったが、n個のオフセット値は、予め定められた順序で送信されるものとする。例えば、選択部1002は、画素の数が多いクラスの順に、n個のオフセット値を送信するように構成してもよい。あるいは、選択部1002は、階調値の小さいクラスの順または階調値の大きいクラスの順に、n個のオフセット値を送信するように構成してもよい。あるいは、選択部1002は、階調値が中央値に近いクラスの順に、n個のオフセット値を送信するように構成してもよい。
【0207】
また、上記第1及び第2の実施形態では、算出した画素の数が多い上位n個のクラスを選択するものとして説明したが、算出した画素の数が同数のクラスが複数(n個以上)となる場合も発生しうる。
【0208】
このような場合、クラス選択部1012では、選択されるクラスの数がn個になるように、算出した画素の数が同数のクラスの一部を、選択対象から除外する。例えば、画素の数が同数のクラスを比較して、階調値が中央値から最も離れているクラスを、選択対象から除外するようにしてもよい。
【0209】
また、上記第1及び第2の実施形態では、デブロッキングフィルタ部510による処理が実行された後に、画素適応オフセット処理部520による処理が実行されるものとして説明した。
【0210】
しかしながら、デブロッキングフィルタ部510による処理は、隣接するブロックの画素を利用して行われる。このため、画素の数を算出する処理が後に実行されることでオフセット値が加算される画素が確定しない場合、デブロッキングフィルタ部510では処理を実行することができない画素が生じる。この場合、当該画素を一時的に保持するメモリが必要となり、メモリ使用量が増大する。
【0211】
そこで、クラスオフセット処理部1001による処理のうち、画素の数を算出する処理を、デブロッキングフィルタ部510による処理が実行される前に実行するように構成してもよい。これにより、オフセット値が加算される画素が確定するため、メモリ使用量の増大を回避することができる。なお、画素の数を算出する処理を、デブロッキングフィルタ部510による処理が実行される前に実行するか否かは、ストリーム単位で定義するように構成してもよい。
【0212】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【0213】
本出願は、2018年1月5日に出願された米国特許第62/613920号に基づきその優先権を主張するものであり、同米国特許出願の全内容を参照することにより本願に援用する。
【符号の説明】
【0214】
100 :画像処理システム
110 :エンコーダ
120 :デコーダ
407 :ループフィルタ部
520 :画素適応オフセット処理部
521 :エッジオフセット処理部
522 :バンドオフセット処理部
541 :ブロック読み出し部
1001 :クラスオフセット処理部
1002 :選択部
1011 :画素数算出部
1012 :クラス選択部
1013 :オフセット決定部
1014 :画素値変更部
1720 :画素適応オフセット処理部
1721 :エッジオフセット処理部
1741 :ブロック読み出し部
2001 :クラスオフセット処理部
2011 :画素数算出部
2012 :クラス選択部
2013 :SAOパラメータ取得部
2014 :画素値変更部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22