(57)【要約】【課題】タイルに分割されたピクチャを符号化あるいは復号する映像処理装置において、タイル境界においてもデブロッキングフィルタ処理を可能とする。【解決手段】カレントＣＴＵが垂直タイル境界の左隣であると判定した場合、カレントＣＴＵの右端４画素列をタイルメモリ１２７へ格納した後、カレントＣＴＵに対してＶＥフィルタ処理を行い、当該カレントＣＴＵをＨＥフィルタ処理するときは、タイルメモリ１２７に格納された右端４画素列を除く画素データに対してＨＥフィルタ処理を行い、カレントＣＴＵが垂直タイル境界の右隣であると判定した場合、タイルメモリ１２７からカレントＣＴＵの左隣のＣＴＵの右端４画素列を取り込んだ後、カレントＣＴＵに対してＶＥフィルタ処理を行い、当該カレントＣＴＵをＨＥフィルタ処理するときは、タイルメモリ１２７に格納された右端４画素列を含む画素データに対してＨＥフィルタ処理を行う。【選択図】図１
2018198468.tif 000002
【特許請求の範囲】
【請求項１】
タイル境界により複数のタイルに分割されたピクチャを処理する映像処理装置であって、
前記タイル境界に隣接する画素群を格納するタイルメモリと、
前記ピクチャを所定の大きさで分割した画素ブロックをタイル毎にラスタスキャン順で取り込み垂直境界フィルタ処理の後に水平境界フィルタ処理をするフィルタ処理手段と、を有し、
第１の画素ブロックと第２の画素ブロックとが前記タイル境界を挟んでそれぞれ左と右に隣接して配置されるとき、
前記フィルタ処理手段は、前記第１の画素ブロックについて、右端のｍ行ｎ列画素群（ｍは画素ブロックの一辺の画素数、ｎは垂直境界フィルタ処理単位の長辺の画素数の半分）を前記タイルメモリに格納し、前記第１の画素ブロックの残りの画素群について垂直境界フィルタ処理と水平境界フィルタ処理を実施し、
前記フィルタ処理手段は、前記第２の画素ブロックについて、前記タイルメモリから前記ｍ行ｎ列画素群を取得し、前記第２の画素ブロックと共に垂直境界フィルタ処理と水平境界フィルタ処理を実施する
ことを特徴とする映像処理装置。
【請求項２】
タイル境界により複数のタイルに分割されたピクチャを処理する映像処理装置により実行される映像処理方法であって、
前記ピクチャを所定の大きさで分割した画素ブロックをタイル毎にラスタスキャン順で取り込み垂直境界フィルタ処理の後に水平境界フィルタ処理をするステップを有し、
第１の画素ブロックと第２の画素ブロックとが前記タイル境界を挟んでそれぞれ左と右に隣接して配置されるとき、
前記第１の画素ブロックについて、右端のｍ行ｎ列画素群（ｍは画素ブロックの一辺の画素数、ｎは垂直境界フィルタ処理単位の長辺の画素数の半分）をタイルメモリに格納し、前記第１の画素ブロックの残りの画素群について垂直境界フィルタ処理と水平境界フィルタ処理を実施し、
前記第２の画素ブロックについて、前記タイルメモリから前記ｍ行ｎ列画素群を取得し、前記第２の画素ブロックと共に垂直境界フィルタ処理と水平境界フィルタ処理を実施する
ことを特徴とする映像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像の符号化あるいは復号を行う映像処理技術に関し、特にブロックノイズを低減するために用いられるデブロッキングフィルタを用いた映像処理技術に関する。
【背景技術】
【０００２】
現在の映像符号化技術では、離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：ＤＣＴ）と予測符号化の双方を用いたハイブリッド符号化方式が主流となっている。ハイブリッド符号化方式では、複数の画素のまとまりである「ブロック」を処理単位とし、ブロック単位でＤＣＴなどの処理を行う。このようなブロック単位で処理を行う映像符号化方式では、隣り合うブロックの境界付近で画素値の連続性が失われ、ピクチャの全体あるいは一部が格子状に区切られたように見えてしまう「ブロックノイズ」あるいは「ブロック歪み」が発生することがあった。
【０００３】
国際標準化団体であるＩＴＵ−ＴとＩＳＯ／ＩＥＣが共同で策定した映像符号化標準規格「Ｈ．２６４およびＭＰＥＧ−４  Ｐａｒｔ  １０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」（Ｈ．２６４／ＡＶＣ）は、符号化処理において、ブロックノイズを抑制するための「デブロッキングフィルタ」（Ｄｅ−ｂｌｏｃｋｉｎｇ  Ｆｉｌｔｅｒ：ＤＦ）を採用している。同様に、最新の映像符号化標準規格である「Ｈ．２６５／ＨＥＶＣ」にもＤＦは採用されている。Ｈ．２６４／ＡＶＣではマクロブロック単位で該当する垂直境界（Ｖｅｒｔｉｃａｌ  Ｅｄｇｅ：ＶＥ）、水平境界（Ｈｏｒｉｚｏｎｔａｌ  Ｅｄｇｅ：ＨＥ）の順にフィルタ処理を行っていたのに対し、Ｈ．２６５／ＨＥＶＣではピクチャ単位で該当する全ＶＥにフィルタ処理し、その後に該当する全ＨＥにフィルタ処理を行うように改善されている（特許文献１、非特許文献１の１４６ページ）。
【０００４】
Ｈ．２６５／ＨＥＶＣでは、ピクチャをＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）と呼ばれる正方形の画素ブロック単位に分割し、ラスタスキャン順に符号化処理（ＤＣＴや予測符号化、ＤＦなど）を行っていく。輝度信号（Ｙ）においては、ＣＴＵはピクチャごとに６４×６４画素、３２×３２画素、１６×１６画素のいずれかに設定される。Ｈ．２６５／ＨＥＶＣにおけるＤＦ処理では、ＣＴＵが８×８画素の画素ブロック（８×８ブロック）に分割され、各８×８ブロックの左側ＶＥおよび上側ＨＥが平滑化処理される。ここで、Ｈ．２６５／ＨＥＶＣのＤＦ処理は、上述のとおり、ピクチャ単位で該当する全ＶＥにフィルタ処理し、その後に該当する全ＨＥにフィルタ処理する。
【０００５】
また、Ｈ．２６５／ＨＥＶＣでは、１つのピクチャを複数のＣＴＵからなる矩形領域（タイル）に分割し、これらタイルを処理単位として符号化処理を行う仕組みが、新たに加えられた（非特許文献１の７４〜７５ページ）。ピクチャ内ではタイルがラスタスキャン順に符号化処理され、タイル内でもＣＴＵがラスタスキャン順に符号化処理される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２０７５３６号公報
【非特許文献】
【０００７】
【非特許文献１】村上篤道、浅井光太郎、関口俊一共著、「高効率映像符号化技術  ＨＥＶＣ／Ｈ．２６５とその応用」、オーム社
【発明の概要】
【発明が解決しようとする課題】
【０００８】
Ｈ．２６５／ＨＥＶＣでは、タイル境界でＤＦ処理を行うことを禁止しているわけではないが、その規格には、タイル境界に対してＤＦ処理を行う具体的な方法は開示されていなかった。非特許文献１または特許文献１には、タイル境界に対してＤＦ処理を行う具体的な方法は開示されていなかった。タイル分割されたピクチャとタイル分割されていないピクチャとではＣＴＵを処理する順番が異なり、タイル境界においてはタイル分割されていないピクチャと同様にＤＦ処理することができないという問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであり、タイルに分割されたピクチャを符号化あるいは復号する映像処理装置において、タイル境界においてもデブロッキングフィルタ処理を可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
第１の本発明に係る映像処理装置は、タイル境界により複数のタイルに分割されたピクチャを処理する映像処理装置であって、前記タイル境界に隣接する画素群を格納するタイルメモリと、  前記ピクチャを所定の大きさで分割した画素ブロックをタイル毎にラスタスキャン順で取り込み垂直境界フィルタ処理の後に水平境界フィルタ処理をするフィルタ処理手段と、を有し、第１の画素ブロックと第２の画素ブロックとが前記タイル境界を挟んでそれぞれ左と右に隣接して配置されるとき、前記フィルタ処理手段は、前記第１の画素ブロックについて、右端のｍ行ｎ列画素群（ｍは画素ブロックの一辺の画素数、ｎは垂直境界フィルタ処理単位の長辺の画素数の半分）を前記タイルメモリに格納し、前記第１の画素ブロックの残りの画素群について垂直境界フィルタ処理と水平境界フィルタ処理を実施し、前記フィルタ処理手段は、前記第２の画素ブロックについて、前記タイルメモリから前記ｍ行ｎ列画素群を取得し、前記第２の画素ブロックと共に垂直境界フィルタ処理と水平境界フィルタ処理を実施することを特徴とする。
【００１１】
第２の本発明に係る映像処理方法は、タイル境界により複数のタイルに分割されたピクチャを処理する映像処理装置により実行される映像処理方法であって、前記ピクチャを所定の大きさで分割した画素ブロックをタイル毎にラスタスキャン順で取り込み垂直境界フィルタ処理の後に水平境界フィルタ処理をするステップを有し、第１の画素ブロックと第２の画素ブロックとが前記タイル境界を挟んでそれぞれ左と右に隣接して配置されるとき、前記第１の画素ブロックについて、右端のｍ行ｎ列画素群（ｍは画素ブロックの一辺の画素数、ｎは垂直境界フィルタ処理単位の長辺の画素数の半分）をタイルメモリに格納し、前記第１の画素ブロックの残りの画素群について垂直境界フィルタ処理と水平境界フィルタ処理を実施し、前記第２の画素ブロックについて、前記タイルメモリから前記ｍ行ｎ列画素群を取得し、前記第２の画素ブロックと共に垂直境界フィルタ処理と水平境界フィルタ処理を実施することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、タイルに分割されたピクチャを符号化あるいは復号する映像処理装置において、タイル境界においてもデブロッキングフィルタ処理ができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る映像処理装置の構成を示す機能ブロック図である。
【図２】上記映像処理装置が処理するピクチャのイメージを示す図である。
【図３】上記ピクチャの５番目のＣＴＵに対して行うデブロッキングフィルタ処理を説明する図である。
【図４】本実施形態に係る映像処理装置の垂直ＤＦ処理部の処理の流れを示すフローチャートである。
【図５】本実施形態に係る映像処理装置の水平ＤＦ処理部の処理の流れを示すフローチャートである。
【図６】垂直ＤＦ処理部と水平ＤＦ処理部におけるパイプライン処理を説明する図である。
【図７Ａ】垂直ＤＦ処理部が６番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図７Ｂ】垂直ＤＦ処理部が６番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図７Ｃ】垂直ＤＦ処理部が６番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図８Ａ】水平ＤＦ処理部が５番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図８Ｂ】水平ＤＦ処理部が５番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図８Ｃ】水平ＤＦ処理部が５番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図９Ａ】垂直ＤＦ処理部が１１番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図９Ｂ】垂直ＤＦ処理部が１１番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図９Ｃ】垂直ＤＦ処理部が１１番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図１０Ａ】垂直ＤＦ処理部が１８番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図１０Ｂ】垂直ＤＦ処理部が１８番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図１０Ｃ】垂直ＤＦ処理部が１８番目のＣＴＵをＶＥフィルタ処理する例を説明する図である。
【図１１Ａ】水平ＤＦ処理部が１１番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図１１Ｂ】水平ＤＦ処理部が１１番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図１１Ｃ】水平ＤＦ処理部が１１番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図１２Ａ】水平ＤＦ処理部が１８番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図１２Ｂ】水平ＤＦ処理部が１８番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【図１２Ｃ】水平ＤＦ処理部が１８番目のＣＴＵをＨＥフィルタ処理する例を説明する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を用いて説明する。
【００１５】
図１は、本実施形態に係る映像処理装置の構成を示す機能ブロック図である。同図に示す映像処理装置１は、前段処理部１１、デブロッキングフィルタ（ＤＦ）処理部１２および後段処理部１３を備える。
【００１６】
前段処理部１１は、ピクチャのデータを取り込み、ＤＦ処理部１２がデブロッキングフィルタ処理をするＣＴＵの順に、ＣＴＵ単位で画素データをＤＦ処理部１２へ出力する。前段処理部１１は、ＤＦ処理部１２の処理に必要な各種データ、例えば、入力されたピクチャのサイズや、ＣＴＵサイズ、タイル分割の有無、ＣＴＵの処理順などを保持する。
【００１７】
ＤＦ処理部１２は、前段処理部１１からＣＴＵ単位の画素データを取り込み、ＣＴＵを構成する８×８ブロックの左側垂直境界（ＶＥ）と上側水平境界（ＨＥ）をＶＥ，ＨＥの順にデブロッキングフィルタ処理を行う。なお、ＤＦ処理部１２の詳細については後述する。
【００１８】
ＤＦ処理部１２は、ＤＦ制御部１２１、垂直ＤＦ処理部１２２、水平ＤＦ処理部１２３、垂直ラインメモリ１２４、中間メモリ１２５、水平ラインメモリ１２６およびタイルメモリ１２７を備える。
【００１９】
ＤＦ制御部１２１は、前段処理部１１からデブロッキングフィルタ処理に必要な情報を取得し、垂直ＤＦ処理部１２２および水平ＤＦ処理部１２３に提供する。取得する情報としては、例えば、処理しようとしているピクチャのサイズ、処理しようとしているピクチャにおけるＣＴＵサイズ、垂直ＤＦ処理部１２２あるいは水平ＤＦ処理部１２３がこれから処理するＣＴＵ（以下、「カレントＣＴＵ」と称する。）の位置情報（ピクチャ内の左から何番目、上から何番目のＣＴＵか）、処理しようとしているピクチャのタイル情報（タイルの有無と、タイルに分割されている場合は垂直／水平タイル境界の位置）がある。
【００２０】
垂直ＤＦ処理部１２２は、前段処理部１１からＣＴＵ単位の画素データを取り込み、ＤＦ制御部１２１から取得した情報に基づき、当該ＣＴＵに含まれる８×８ブロックの左側ＶＥに対して平滑化処理（以下、「ＶＥフィルタ処理」と称する。）を行う。ＶＥフィルタ処理がなされたＣＴＵの画素データは中間メモリ１２５へ格納される。
【００２１】
水平ＤＦ処理部１２３は、中間メモリ１２５に格納されたＶＥフィルタ処理済みの画素データをＣＴＵ単位で取り込み、ＤＦ制御部１２１から取得した情報に基づき、当該ＣＴＵに含まれる８×８ブロックの上側ＨＥに対して平滑化処理（以下、「ＨＥフィルタ処理」と称する。）を行う。ＨＥフィルタ処理がなされたＣＴＵの画素データは後段処理部１３へ出力される。
【００２２】
垂直ラインメモリ１２４は、垂直ＤＦ処理部１２２でＶＥフィルタ処理することができなかった画素データを格納するバッファである。中間メモリ１２５は、垂直ＤＦ処理部１２２でＶＥフィルタ処理がなされた画素データを格納するバッファである。水平ラインメモリ１２６は、水平ＤＦ処理部１２３でＨＥフィルタ処理することができなかった画素データを格納するバッファである。タイルメモリ１２７は、垂直ＤＦ処理部１２２でＶＥフィルタ処理することができなかった画素データであって、垂直タイル境界に隣接した画素データを格納するバッファである。垂直ＤＦ処理部１２２および水平ＤＦ処理部１２３は、これらのメモリを介して画素データをやり取りする。
【００２３】
なお、ＤＦ制御部１２１、垂直ＤＦ処理部１２２および水平ＤＦ処理部１２３は、汎用プロセッサをソフトウェアで制御することにより実現される構成であってもよい。あるいは、ロジック回路で実現される構成であってもよい。垂直ラインメモリ１２４、中間メモリ１２５、水平ラインメモリ１２６およびタイルメモリ１２７は、例えばＳＲＡＭあるいはＤＲＡＭなどの揮発性メモリであってもよい。例えば、１つのＳＲＡＭあるいはＤＲＡＭのメモリ領域を分割し、分割したそれぞれのメモリ領域を、垂直ラインメモリ１２４、中間メモリ１２５、水平ラインメモリ１２６およびタイルメモリ１２７に割り当てる構成であってもよい。もちろん、これらメモリのうち幾つかは、個別のＳＲＡＭあるいはＤＲＡＭを用いる構成であってもよい。
【００２４】
後段処理部１３は、ピクチャの符号化あるいは復号を行う際、デブロッキングフィルタ処理に続く処理を行う。例えば、インループフィルタにＤＦ処理部１２が組み込まれるのであれば、後段処理部１３は、例えば、適応オフセットフィルタであればよい。
【００２５】
次に、映像処理装置１が処理するピクチャとＣＴＵに対するデブロッキングフィルタ処理について説明する。
【００２６】
図２は、映像処理装置１が処理するピクチャのイメージである。図２のピクチャは、太実線で示した垂直タイル境界および水平タイル境界で複数のタイルに分割されている。図２では、実線で囲まれた四角形の領域が１６×１６画素からなるＣＴＵを示しており、各ＣＴＵには、ＤＦ処理部１２が処理する順番を付与している。ピクチャが複数のタイルに分割される場合、タイルがラスタスキャン順に処理され、タイル内でもＣＴＵがラスタスキャン順に処理される。つまり、図２のピクチャでは、左上のタイル、右上のタイル、左下のタイル、右下のタイルの順に処理され、タイル毎にＣＴＵが左から右に１段ずつ処理される。なお、図２では、各ＣＴＵを点線で分割し、ＤＦ処理部１２がデブロッキングフィルタ処理を行う最小のブロック単位である８×８ブロックを示している。ＤＦ処理部１２は、図２の実線および点線に沿ってデブロッキングフィルタ処理をする。
【００２７】
図３は、図２の５番目のＣＴＵ（以下、「ＣＴＵ−５」と称する。）に対して行うデブロッキングフィルタ処理を説明する図である。まず、垂直ＤＦ処理部１２２は前段処理部１１からＣＴＵ−５の画素データを取り込み、図３（ａ）に示すように、ＣＴＵ−５内の４つの８×８ブロックそれぞれの左側ＶＥを中心として左右４画素からなる８×１画素の領域（以下、「ＶＥフィルタ処理単位」と称する。）を設定し、ＶＥフィルタ処理単位ごとに所定の演算によりフィルタ強度を算出する。各ＶＥフィルタ処理単位では、算出したフィルタ強度に基づき平滑化処理を行う。この平滑化処理を、各ＶＥに沿って上側のＶＥフィルタ処理単位から下側のＶＥフィルタ処理単位に向けて実行する。ＶＥフィルタ処理されたＣＴＵ−５の画素データは、中間メモリ１２５へ格納される。
【００２８】
ＣＴＵ−５がＶＥフィルタ処理されると、水平ＤＦ処理部１２３は中間メモリ１２５からＣＴＵ−５の画素データを取り込み、図３（ｂ）に示すように、ＣＴＵ−５内の４つの８×８ブロックそれぞれの上側ＨＥを中心として上下４画素からなる１×８画素の領域（以下、「ＨＥフィルタ処理単位」と称する。）を設定し、ＨＥフィルタ処理単位ごとに所定の演算によりフィルタ強度を算出する。各ＨＥフィルタ処理単位では、算出したフィルタ強度に基づき平滑化処理を行う。この平滑化処理を、各ＨＥに沿って左側のＨＥフィルタ処理単位から右側のＨＥフィルタ処理単位に向けて実行する。ＨＥフィルタ処理されたＣＴＵ−５の画素データは、後段処理部１３へ出力される。
【００２９】
次に、本実施形態に係る映像処理装置のＤＦ処理部の動作について説明する。
【００３０】
図４は、本実施形態に係る映像処理装置１の垂直ＤＦ処理部１２２の処理の流れを示すフローチャートである。
【００３１】
処理が開始されると、垂直ＤＦ処理部１２２は、前段処理部１１からカレントＣＴＵの画素データを取り込む（ステップＳ１０１）。
【００３２】
垂直ＤＦ処理部１２２は、ＤＦ制御部１２１から取得したカレントＣＴＵの位置情報に基づき、カレントＣＴＵがピクチャの左端のＣＴＵであるか否かを判定する（ステップＳ１０２）。カレントＣＴＵがピクチャの左端のＣＴＵの場合（ステップＳ１０２のＹＥＳ）、カレントＣＴＵの左側には、カレントＣＴＵと共にＶＥフィルタ処理する画素がないので、ステップＳ１０６に進む。
【００３３】
カレントＣＴＵがピクチャの左端のＣＴＵでない場合（ステップＳ１０２のＮＯ）、垂直ＤＦ処理部１２２は、ＤＦ制御部１２１から取得したタイル情報に基づき、カレントＣＴＵが垂直タイル境界の右隣に位置するＣＴＵであるか否かを判定する（ステップＳ１０３）。カレントＣＴＵが垂直タイル境界の右隣に位置するＣＴＵでない場合（ステップＳ１０３のＮＯ）、垂直ＤＦ処理部１２２は、垂直ラインメモリ１２４からカレントＣＴＵの左側に隣接する４画素列を取り込む（ステップＳ１０４）。垂直ラインメモリ１２４には、１つ前のＣＴＵ処理時間において処理された左隣のＣＴＵの右端４画素列が格納されている。ＣＴＵが１６×１６画素の場合はＣＴＵの右端の４×１６画素が垂直ラインメモリ１２４に格納されている。
【００３４】
カレントＣＴＵが垂直タイル境界の右隣に位置するＣＴＵの場合（ステップＳ１０３のＹＥＳ）、垂直ＤＦ処理部１２２は、タイルメモリ１２７からカレントＣＴＵの左側に隣接する４画素列を取り込む（ステップＳ１０５）。カレントＣＴＵが垂直タイル境界の右隣に位置する場合、カレントＣＴＵが属するタイルと左隣のＣＴＵが属するタイルは異なり、左隣のＣＴＵの右端４画素列は垂直ラインメモリ１２４ではなく、タイルメモリ１２７に格納されている。
【００３５】
続いて、垂直ＤＦ処理部１２２は、ＤＦ制御部１２１から取得したカレントＣＴＵの位置情報に基づき、カレントＣＴＵがピクチャの右端のＣＴＵであるか否かを判定する（ステップＳ１０６）。カレントＣＴＵがピクチャの右端のＣＴＵの場合（ステップＳ１０６のＹＥＳ）、カレントＣＴＵの右端４画素列はＶＥフィルタ処理をしないため、カレントＣＴＵの右端４画素列を垂直ラインメモリ１２４やタイルメモリ１２７に格納せずに、ステップＳ１１０に進む。
【００３６】
カレントＣＴＵがピクチャの右端のＣＴＵでない場合（ステップＳ１０６のＮＯ）、垂直ＤＦ処理部１２２は、ＤＦ制御部１２１から取得したタイル情報に基づき、カレントＣＴＵが垂直タイル境界の左隣に位置するＣＴＵであるか否かを判定する（ステップＳ１０７）。カレントＣＴＵが垂直タイル境界の左隣に位置するＣＴＵでない場合（ステップＳ１０７のＮＯ）、垂直ＤＦ処理部１２２は、垂直ラインメモリ１２４にカレントＣＴＵの右端４画素列を格納する（ステップＳ１０８）。
【００３７】
カレントＣＴＵが垂直タイル境界の左隣に位置するＣＴＵの場合（ステップＳ１０７のＹＥＳ）、垂直ＤＦ処理部１２２は、タイルメモリ１２７にカレントＣＴＵの右端４画素列を格納する（ステップＳ１０９）。カレントＣＴＵが垂直タイル境界の左隣に位置する場合、カレントＣＴＵの右端４画素列は次のＣＴＵ処理時間でＶＥフィルタ処理されないので、垂直ラインメモリ１２４ではなく、タイルメモリ１２７に格納する。タイルメモリ１２７に格納されたカレントＣＴＵの右端４画素列は、垂直タイル境界を挟んで隣接する別のタイルのＣＴＵを処理するときに合わせて処理される。
【００３８】
上記の処理を終えた後、垂直ＤＦ処理部１２２は、図３（ａ）で示したように、カレントＣＴＵの８×８ブロックの左側ＶＥに対してＶＥフィルタ処理を行い（ステップＳ１１０）、ＶＥフィルタ処理を終えた画素データを中間メモリ１２５へ格納し（ステップＳ１１１）、ステップＳ１０１に戻り、次のＣＴＵを処理する。
【００３９】
図５は、本実施形態に係る映像処理装置１の水平ＤＦ処理部１２３の処理の流れを示すフローチャートである。
【００４０】
処理が開始されると、水平ＤＦ処理部１２３は、中間メモリ１２５からカレントＣＴＵの画素データを取り込む（ステップＳ２０１）。
【００４１】
水平ＤＦ処理部１２３は、ＤＦ制御部１２１から取得したカレントＣＴＵの位置情報に基づき、カレントＣＴＵがピクチャの上端のＣＴＵであるか否かを判定する（ステップＳ２０２）。カレントＣＴＵがピクチャの上端のＣＴＵの場合（ステップＳ２０２のＹＥＳ）、カレントＣＴＵの上側には、カレントＣＴＵと共にＨＥフィルタ処理する画素がないので、ステップＳ２０６に進む。
【００４２】
カレントＣＴＵがピクチャの上端のＣＴＵでない場合（ステップＳ２０２のＮＯ）、水平ＤＦ処理部１２３は、ＤＦ制御部１２１から取得したタイル情報に基づき、カレントＣＴＵが垂直タイル境界の右隣に位置するＣＴＵであるか否かを判定する（ステップＳ２０３）。カレントＣＴＵが垂直タイル境界の右隣に位置するＣＴＵでない場合（ステップＳ２０３のＮＯ）、カレントＣＴＵの左側には、カレントＣＴＵと共にＨＥフィルタ処理する画素がないので、ステップＳ２０５に進む。
【００４３】
カレントＣＴＵが垂直タイル境界の右隣に位置するＣＴＵの場合（ステップＳ２０３のＹＥＳ）、水平ＤＦ処理部１２３は、中間メモリ１２５からカレントＣＴＵの左側に隣接する４画素列を取り込む（ステップＳ２０４）。垂直タイル境界の左隣に位置するＣＴＵ（カレントＣＴＵの左隣のＣＴＵ）の右端４画素列は、当該ＣＴＵがＨＥフィルタ処理されるときにタイルメモリ１２７に格納されていたのでＨＥフィルタ処理されていない。そこで、このタイミングでカレントＣＴＵと共にＨＥフィルタ処理をする。
【００４４】
水平ＤＦ処理部１２３は、水平ラインメモリ１２６からカレントＣＴＵの上側に隣接する画素行を取り込む（ステップＳ２０５）。水平ラインメモリ１２６には、以前のＣＴＵ処理時間において処理された上側に隣接するＣＴＵの下端４画素列が格納されている。ＣＴＵが１６×１６画素の場合はＣＴＵの下端の１６×４画素が水平ラインメモリ１２６に格納されている。なお、カレントＣＴＵが垂直タイル境界に隣接しない場合、カレントＣＴＵが垂直タイル境界の左隣に位置する場合、およびカレントＣＴＵが垂直タイル境界の右隣に位置する場合のそれぞれで水平ラインメモリ１２６から取り込む画素行の大きさが変化する。詳細については後述の具体例で説明する。
【００４５】
続いて、水平ＤＦ処理部１２３は、ＤＦ制御部１２１から取得したカレントＣＴＵの位置情報に基づき、カレントＣＴＵがピクチャの下端のＣＴＵであるか否かを判定する（ステップＳ２０６）。カレントＣＴＵがピクチャの下端のＣＴＵの場合（ステップＳ２０６のＹＥＳ）、カレントＣＴＵの下端４画素列はＨＥフィルタ処理をしないため、カレントＣＴＵの下端４画素列を水平ラインメモリ１２６に格納せずに、ステップＳ２０８に進む。
【００４６】
カレントＣＴＵがピクチャの下端のＣＴＵでない場合（ステップＳ２０６のＮＯ）、水平ＤＦ処理部１２３は、水平ラインメモリ１２６にカレントＣＴＵの下端４画素行を格納する（ステップＳ２０７）。
【００４７】
上記の処理を終えた後、水平ＤＦ処理部１２３は、図３（ｂ）で示したように、カレントＣＴＵの８×８ブロックの上側ＨＥに対してＨＥフィルタ処理を行い（ステップＳ２０８）、ＨＥフィルタ処理を終えた画素データを後段処理部１３へ出力し（ステップＳ２０９）、ステップＳ２０１に戻り、次のＣＴＵを処理する。
【００４８】
次に、本実施形態に係る映像処理装置１のＤＦ処理部１２の処理を具体例を用いて説明する。
【００４９】
図６は、垂直ＤＦ処理部１２２と水平ＤＦ処理部１２３におけるパイプライン処理を説明する図である。図６中の四角形は、垂直ＤＦ処理部１２２と水平ＤＦ処理部１２３のそれぞれが処理するＣＴＵを示す。水平ＤＦ処理部１２３は、垂直ＤＦ処理部１２２においてＶＥフィルタ処理が終わったＣＴＵを処理する。例を挙げて説明すると、垂直ＤＦ処理部１２２がＣＴＵ−１の処理を終えたときにＣＴＵ−０の右端の画素列のＶＥフィルタ処理が完了するので、垂直ＤＦ処理部１２２がＣＴＵ−２を処理するときに、水平ＤＦ処理部１２３はＣＴＵ−０を処理する。以下では、図６中の点線で囲まれたＣＴＵ−６，５、ＣＴＵ−１１、およびＣＴＵ−１８を垂直ＤＦ処理部１２２と水平ＤＦ処理部１２３が処理する例について説明する。
【００５０】
まず、図７Ａ〜図７Ｃを用いて、垂直ＤＦ処理部１２２がＣＴＵ−６を処理する例について説明する。以下の説明中には、図４のフローチャートの対応するステップを記載している。
【００５１】
図７Ａに示すように、垂直ＤＦ処理部１２２は、前段処理部１１からカレントＣＴＵの画素データとしてＣＴＵ−６の画素データを取り込むとともに（ステップＳ１０１）、垂直ラインメモリ１２４からＣＴＵ−６の左隣のＣＴＵ−５の右端４画素列を取り込む（ステップＳ１０４）。ＣＴＵ−５の右端４画素列は、垂直ＤＦ処理部１２２が１ＣＴＵ処理時間前に取り込んだＣＴＵ−５の画素データのうち、ＶＥフィルタ処理されていない画素列である。
【００５２】
垂直ＤＦ処理部１２２は、ＣＴＵ−６がピクチャの右端のＣＴＵでなく（ステップＳ１０６のＮＯ）、垂直タイル境界の左側に隣接するＣＴＵでないと判定すると（ステップＳ１０７のＮＯ）、図７Ｂに示すように、ＣＴＵ−６の画素データの右端４画素列を垂直ラインメモリ１２４へ格納する（ステップＳ１０８）。ＣＴＵ−６の右側のＶＥ、すなわち、ＣＴＵ−６の右端４画素列は、ＣＴＵ−６の右隣のＣＴＵ−７の画素データが取り込まれない限り、ＶＥフィルタ処理されない。そのため、垂直ＤＦ処理部１２２は、同ＣＴＵ処理時間にＶＥフィルタ処理されないＣＴＵ−６の右端４画素列を垂直ラインメモリ１２４へ退避させる。なお、ピクチャの右端に位置するＣＴＵ（図２の例では、ＣＴＵ−１４，１７，２０，３１，３４）では、当該ＣＴＵの右端４画素列を垂直ラインメモリ１２４へ格納しない。
【００５３】
そして、垂直ＤＦ処理部１２２は、ＣＴＵ−６に含まれる全ての８×８ブロックの左側ＶＥに対してＶＥフィルタ処理を行う（ステップＳ１１０）。図７Ｂでは、上向き実線矢印によりＶＥフィルタ処理がなされたＶＥを示している。
【００５４】
図７Ｃに示すように、垂直ＤＦ処理部１２２は、ＶＥフィルタ処理を終えた画素、すなわち、ＣＴＵ−５の右端４画素列と、右端４画素列を除くＣＴＵ−６の画素データを中間メモリ１２５へ格納する（ステップＳ１１１）。中間メモリ１２５には、１つ前のＣＴＵ処理時間においてＶＥフィルタ処理した、右端４画素列を除くＣＴＵ−５の画素データが格納されているので、今回のＣＴＵ処理時間でＶＥフィルタ処理した画素データを中間メモリ１２５へ格納することで、中間メモリ１２５には、ＣＴＵ−５の全ての画素データが格納されることになる。したがって、水平ＤＦ処理部１２３は、次のＣＴＵ処理時間で、ＣＴＵ−５をＨＥフィルタ処理することができる。
【００５５】
続いて、図８Ａ〜図８Ｃを用いて、水平ＤＦ処理部１２３が、ＣＴＵ−５をＨＥフィルタ処理する例について説明する。以下の説明中には、図５のフローチャートの対応するステップを記載している。
【００５６】
図８Ａに示すように、水平ＤＦ処理部１２３は、中間メモリ１２５からカレントＣＴＵの画素データとしてＣＴＵ−５の画素データを取り込むとともに（ステップＳ２０１）、水平ラインメモリ１２６からＣＴＵ−５の上側のＣＴＵ−１の下端４画素行を取り込む（ステップＳ２０５）。ＣＴＵ−１の下端４画素行は、水平ＤＦ処理部１２３が以前に処理したＣＴＵ−１の画素データのうち、ＨＥフィルタ処理されていない画素行である。
【００５７】
そして、水平ＤＦ処理部１２３は、ＣＴＵ−５がピクチャの下端のＣＴＵでないと判定すると（ステップＳ２０６のＮＯ）、図８Ｂに示すように、ＣＴＵ−５の画素データの下端４画素行を水平ラインメモリ１２６へ格納する（ステップＳ２０７）。ＣＴＵ−５の下側のＨＥ、すなわち、ＣＴＵ−５の下端４画素行は、ＣＴＵ−５の下側のＣＴＵ−９の画素データが取り込まれない限り、ＨＥフィルタ処理されない。そのため、水平ＤＦ処理部１２３は、同ＣＴＵ処理時間にＨＥフィルタ処理されないＣＴＵ−５の下端４画素を水平ラインメモリ１２６へ退避させる。なお、ピクチャの下端に位置するＣＴＵ（図２の例では、ＣＴＵ−２５〜２８，３２〜３４）では、当該ＣＴＵの下端４画素行を水平ラインメモリ１２６へ格納しない。
【００５８】
そして、水平ＤＦ処理部１２３は、ＣＴＵ−５に含まれる全ての８×８ブロックの上側ＨＥに対してＨＥフィルタ処理を行う（ステップＳ２０８）。図８Ｂでは、右向き点線矢印によりＨＥフィルタ処理がなされたＨＥを示している。
【００５９】
図８Ｃに示すように、水平ＤＦ処理部１２３は、ＨＥフィルタ処理を終えた画素、すなわち、ＣＴＵ−１の下端４画素行と、下端４画素行を除くＣＴＵ−５の画素データを後段処理部１３へ出力する（ステップＳ２０９）。
【００６０】
次に、垂直ＤＦ処理部１２２が垂直タイル境界に隣接するＣＴＵ−１１，１８を処理する例について説明する。
【００６１】
まず、図９Ａ〜９Ｃを用いて、垂直ＤＦ処理部１２２が垂直タイル境界の左側に位置するＣＴＵ−１１を処理する例について説明する。以下の説明中には、図４のフローチャートの対応するステップを記載している。
【００６２】
図９Ａに示すように、垂直ＤＦ処理部１２２は、前段処理部１１からカレントＣＴＵの画素データとしてＣＴＵ−１１の画素データを取り込むとともに（ステップＳ１０１）、垂直ラインメモリ１２４からＣＴＵ−１１の左隣のＣＴＵ−１０の右端４画素列を取り込む（ステップＳ１０４）。
【００６３】
そして、垂直ＤＦ処理部１２２は、ＣＴＵ−１１が垂直タイル境界の左側に隣接するＣＴＵであると判定すると（ステップＳ１０７のＹＥＳ）、図９Ｂに示すように、ＣＴＵ−１１の画素データの右端４画素列をタイルメモリ１２７へ格納する（ステップＳ１０９）。ＣＴＵ−１１の右隣のＣＴＵ−１８は、ＣＴＵ−１１が属するタイルと異なるタイルに属しているため、ＣＴＵ−１８に隣接するＣＴＵ−１１の右端４画素列は、垂直ラインメモリ１２４ではなくタイルメモリ１２７へ格納する。
【００６４】
そして、垂直ＤＦ処理部１２２は、ＣＴＵ−１１に含まれる全ての８×８ブロックの左側ＶＥに対してＶＥフィルタ処理を行う（ステップＳ１１０）。
【００６５】
図９Ｃに示すように、垂直ＤＦ処理部１２２は、ＶＥフィルタ処理を終えた画素、すなわち、ＣＴＵ−１０の右端４画素列と、右端４画素列を除くＣＴＵ−１１の画素データを中間メモリ１２５へ格納する（ステップＳ１１１）。
【００６６】
続いて、図１０Ａ〜１０Ｃを用いて、垂直ＤＦ処理部１２２が垂直タイル境界の右側に位置するＣＴＵ−１８を処理する例について説明する。以下の説明中には、図４のフローチャートの対応するステップを記載している。
【００６７】
図１０Ａに示すように、垂直ＤＦ処理部１２２は、前段処理部１１からカレントＣＴＵの画素データとしてＣＴＵ−１８の画素データを取り込むとともに（ステップＳ１０１）、タイルメモリ１２７からＣＴＵ−１８の左隣のＣＴＵ−１１の右端４画素列を取り込む（ステップＳ１０５）。ＣＴＵ−１８の左隣のＣＴＵ−１１は、ＣＴＵ−１８が属するタイルとは異なるタイルに属しているため、ＣＴＵ−１１の画素データの右端４画素列は垂直ラインメモリ１２４ではなくタイルメモリ１２７に格納されている。
【００６８】
そして、垂直ＤＦ処理部１２２は、ＣＴＵ−１８がピクチャの右端のＣＴＵでなく（ステップＳ１０６）、垂直タイル境界の左側に位置するＣＴＵでないと判定すると（ステップＳ１０７）、図１０Ｂに示すように、ＣＴＵ−１８の画素データの右端４画素列を垂直ラインメモリ１２４へ格納する（ステップＳ１０８）。
【００６９】
そして、垂直ＤＦ処理部１２２は、ＣＴＵ−１８に含まれる全ての８×８ブロックの左側ＶＥに対してＶＥフィルタ処理を行う（ステップＳ１１０）。
【００７０】
図１０Ｃに示すように、垂直ＤＦ処理部１２２は、ＶＥフィルタ処理を終えた画素、すなわち、ＣＴＵ−１１の右端４画素列と、右端４画素列を除くＣＴＵ−１８の画素データを中間メモリ１２５へ格納する（ステップＳ１１１）。
【００７１】
このように、垂直ＤＦ処理部１２２は、垂直タイル境界を挟んで隣接するＣＴＵの画素列をタイルメモリ１２７を用いてやり取りする。具体的には、垂直ＤＦ処理部１２２は、垂直タイル境界の左側のＣＴＵを処理するときに当該ＣＴＵの右端４画素列をタイルメモリ１２７へ格納し、垂直タイル境界の右側のＣＴＵを処理するときにタイルメモリ１２７から画素列を取り込む。
【００７２】
次に、水平ＤＦ処理部１２３が垂直タイル境界に隣接するＣＴＵ−１１，１８を処理する例について説明する。
【００７３】
まず、図１１Ａ〜１１Ｃを用いて、水平ＤＦ処理部１２３が垂直タイル境界の左側に位置するＣＴＵ−１１を処理する例について説明する。以下の説明中には、図５のフローチャートの対応するステップを記載している。
【００７４】
図１１Ａに示すように、水平ＤＦ処理部１２３は、中間メモリ１２５からカレントＣＴＵの画素データとしてＣＴＵ−１１の画素データを取り込むとともに（ステップＳ２０１）、水平ラインメモリ１２６からＣＴＵ−１１の上側のＣＴＵ−７の下端４画素行を取り込む（ステップＳ２０５）。ＣＴＵ−１１は、垂直タイル境界の左側に位置するので、ＣＴＵ−１１の右端４画素列はタイルメモリ１２７に格納されている。したがって、ここでは右端４画素列を除くＣＴＵ−１１の画素データが中間メモリ１２５から取り込まれる。また、水平ラインメモリ１２６から取り込むＣＴＵ−７の画素行についても、中間メモリ１２５から取り込んだＣＴＵ−１１の画素データの幅に合わせて、右端４画素列を除くＣＴＵ−７の下端４画素行が取り込まれる。
【００７５】
そして、水平ＤＦ処理部１２３は、ＣＴＵ−１１がピクチャの下端のＣＴＵでないと判定すると（ステップＳ２０６）、図１１Ｂに示すように、ＣＴＵ−１１の画素データの下端４画素行を水平ラインメモリ１２６へ格納する（ステップＳ２０７）。ここでは右端４画素列を除くＣＴＵ−１１の下端４画素行が水平ラインメモリ１２６に格納される。
【００７６】
そして、水平ＤＦ処理部１２３は、ＣＴＵ−１１に含まれる全ての８×８ブロックの上側ＨＥに対してＨＥフィルタ処理を行う（ステップＳ２０８）。
【００７７】
図１１Ｃに示すように、水平ＤＦ処理部１２３は、ＨＥフィルタ処理を終えた画素、すなわち、右端４画素列を除く、ＣＴＵ−７の下端４画素行と下端４画素行を除くＣＴＵ−１１の画素データを後段処理部１３へ出力する（ステップＳ２０９）。
【００７８】
続いて、図１２Ａ〜１２Ｃを用いて、水平ＤＦ処理部１２３が垂直タイル境界の右側に位置するＣＴＵ−１８を処理する例について説明する。以下の説明中には、図５のフローチャートの対応するステップを記載している。
【００７９】
図１２Ａに示すように、水平ＤＦ処理部１２３は、中間メモリ１２５からカレントＣＴＵの画素データとしてＣＴＵ−１８の画素データと、ＣＴＵ−１８の左隣のＣＴＵ−１１の右端４画素列を取り込むとともに（ステップＳ２０１，Ｓ２０４）、水平ラインメモリ１２６からＣＴＵ−１１，１８の上側のＣＴＵ−７，１５の下端４画素行を取り込む（ステップＳ２０５）。水平ＤＦ処理部１２３は、ＣＴＵ−１８を処理するときにＣＴＵ−１１の右端４画素列も合わせて処理する。
【００８０】
そして、水平ＤＦ処理部１２３は、ＣＴＵ−１８がピクチャの下端のＣＴＵでないと判定すると（ステップＳ２０６）、図１２Ｂに示すように、ＣＴＵ−１１の右端４画素列とＣＴＵ−１８の画素データの下端４画素行を水平ラインメモリ１２６へ格納する（ステップＳ２０７）。
【００８１】
そして、水平ＤＦ処理部１２３は、ＣＴＵ−１８に含まれる全ての８×８ブロックの上側ＨＥに対してＨＥフィルタ処理を行う（ステップＳ２０８）。
【００８２】
図１２Ｃに示すように、水平ＤＦ処理部１２３は、ＨＥフィルタ処理を終えた画素、すなわち、ＣＴＵ−７，１１，１５，１８の画素データを後段処理部１３へ出力する（ステップＳ２０９）。
【００８３】
なお、水平タイル境界に隣接するＣＴＵの処理は、図７Ａ〜７Ｃと図８Ａ〜８Ｃを用いて説明した処理と同様である。水平タイル境界と垂直タイル境界の両方に隣接するＣＴＵの処理は、垂直タイル境界とＣＴＵとの関係により、図９Ａ〜９Ｃと図１１Ａ〜１１Ｃ、あるいは図１０Ａ〜１０Ｃと図１２Ａ〜１２Ｃのいずれかと同様に処理できる。
【００８４】
また、水平タイル境界の上側に隣接するＣＴＵを処理するときに当該ＣＴＵの下端４画素行をタイルメモリ１２７へ格納しておき、水平タイル境界の下側に隣接するＣＴＵを処理するときにタイルメモリ１２７から取り込んでもよい。
【００８５】
以上説明したように、本実施の形態によれば、垂直ＤＦ処理部１２２は、カレントＣＴＵが垂直タイル境界の左隣に位置するＣＴＵであると判定した場合、カレントＣＴＵの右端４画素列をタイルメモリ１２７へ格納した後、カレントＣＴＵの８×８ブロックの左側ＶＥに対してＶＥフィルタ処理を行い、水平ＤＦ処理部１２３が当該カレントＣＴＵの８×８ブロックの上側ＨＥに対してＨＥフィルタ処理するときは、タイルメモリ１２７に格納された右端４画素列を除く画素データに対してＨＥフィルタ処理を行い、垂直ＤＦ処理部１２２は、カレントＣＴＵが垂直タイル境界の右隣に位置するＣＴＵであると判定した場合、タイルメモリ１２７からカレントＣＴＵの左隣のＣＴＵの右端４画素列を取り込んだ後、カレントＣＴＵの８×８ブロックの左側ＶＥに対してＶＥフィルタ処理を行い、水平ＤＦ処理部１２３が当該カレントＣＴＵの８×８ブロックの上側ＨＥに対してＨＥフィルタ処理するときは、タイルメモリ１２７に格納された右端４画素列を含む画素データに対してＨＥフィルタ処理を行うことにより、垂直タイル境界の左側に隣接する４画素列がＶＥフィルタ処理される前にＨＥフィルタ処理されないようタイルメモリ１２７へ退避されるので、垂直タイル境界に対しても、Ｈ．２６５／ＨＥＶＣの規格に沿ったデブロッキングフィルタ処理を行うことができる。
【００８６】
なお、複数のＤＦ処理部１２を備えて、各タイルを並列処理してもよい。その場合、タイル境界のデブロッキングフィルタ処理については、共通のタイルメモリ１２７を用いて画素データをやり取りできる。
【符号の説明】
【００８７】
１…映像処理装置
１１…前段処理部
１２…ＤＦ処理部
１２１…ＤＦ制御部
１２２…垂直ＤＦ処理部
１２３…水平ＤＦ処理部
１２４…垂直ラインメモリ
１２５…中間メモリ
１２６…水平ラインメモリ
１２７…タイルメモリ
１３…後段処理部
【図１】
2018198468.tif 000003
【図２】
2018198468.tif 000004
【図３】
2018198468.tif 000005
【図４】
2018198468.tif 000006
【図５】
2018198468.tif 000007
【図６】
2018198468.tif 000008
【図７Ａ】
2018198468.tif 000009
【図７Ｂ】
2018198468.tif 000010
【図７Ｃ】
2018198468.tif 000011
【図８Ａ】
2018198468.tif 000012
【図８Ｂ】
2018198468.tif 000013
【図８Ｃ】
2018198468.tif 000014
【図９Ａ】
2018198468.tif 000015
【図９Ｂ】
2018198468.tif 000016
【図９Ｃ】
2018198468.tif 000017
【図１０Ａ】
2018198468.tif 000018
【図１０Ｂ】
2018198468.tif 000019
【図１０Ｃ】
2018198468.tif 000020
【図１１Ａ】
2018198468.tif 000021
【図１１Ｂ】
2018198468.tif 000022
【図１１Ｃ】
2018198468.tif 000023
【図１２Ａ】
2018198468.tif 000024
【図１２Ｂ】
2018198468.tif 000025
【図１２Ｃ】
2018198468.tif 000026