JP2024057980A - 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム - Google Patents

画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム Download PDF

Info

Publication number
JP2024057980A
JP2024057980A JP2022165024A JP2022165024A JP2024057980A JP 2024057980 A JP2024057980 A JP 2024057980A JP 2022165024 A JP2022165024 A JP 2022165024A JP 2022165024 A JP2022165024 A JP 2022165024A JP 2024057980 A JP2024057980 A JP 2024057980A
Authority
JP
Japan
Prior art keywords
frame
pixels
image
interpolation
reference picture
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
JP2022165024A
Other languages
English (en)
Inventor
孝明 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2022165024A priority Critical patent/JP2024057980A/ja
Priority to PCT/JP2023/028243 priority patent/WO2024079965A1/ja
Publication of JP2024057980A publication Critical patent/JP2024057980A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes

Landscapes

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

Abstract

【課題】 ズームシーン等において、インター予測に用いる参照フレームの画面外画素をより精度よく生成し、符号化効率を改善する。【解決手段】 符号化対象の第1のフレーム内の着目ブロックに対し、第1のフレームより前に符号化した第2のフレームを参照して予測画像を生成する予測部と、当該予測画像に対する着目ブロックの予測誤差データを符号化する符号化部と、第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に符号化された第3のフレームの画素を用いて、第2のフレームの境界外の画素を補間する補間部と、第1のフレームより前のフレームの解像度を変更する変換部とを含む。【選択図】 図1

Description

本発明は、画像の符号化/復号技術に関するものである。
動画像の圧縮記録の符号化方式として、VVC(Versatile Video Coding)符号化方式(以下、単にVVCと記す)が知られている。VVCでは符号化効率向上のため、CTU(Coding Tree Unit)と呼ばれる基本ブロックを、従来の正方形だけではなく、長方形のサブブロックへと分割する。
また、VVCでは、ズームシーン等における効率的なインター予測を可能とする目的から、スケーリングウィンドウと呼ばれる参照ピクチャの空間解像度を制御する技術が採用されている。さらに、VVCを代表とする動画像符号化では、インター予測において画面境界外の画素を参照するため、画面境界外の画素を補間する必要がある。特許文献1では、タイル単位の符号化処理における画面境界外の画素の補間技術が開示されている。
近年、VVCを標準化したJVET(Joint Video Experts Team)では、VVCを上回る符号化効率や高画質化を達成するための新たな符号化技術の検討が進められている。その一つの技術として、符号化効率の向上を目的として、インター予測に用いる参照ピクチャの画面境界外に位置する画素を、前記の参照ピクチャとは異なる参照ピクチャの画面境界内に位置する画素を用いて生成する新たな外挿手法(以下、動き補償画素補間と呼称する)の導入が検討されている。
特開2018-050085号公報
VVCでは、スケーリングウィンドウと呼ばれる技術が採用されており、各ピクチャにスケール処理に基づいた矩形領域を設定することができる。インター予測において、各フレームに設定されたスケーリングウィンドウのサイズを比較することで、フレーム間に生じるオブジェクトの拡大又は縮小を考慮したインター予測が可能になる。
また、VVCでは、インター予測を用いた予測画像を生成するために、参照ピクチャの画面境界外に位置する画素の情報を用いる場合がある。画面境界外の画素は符号化対象ではないため、符号化及び復号処理の双方に共通する補間方法として、参照ピクチャの画面境界の内側に位置する画素を単純に複製する補間を用いる。これに対して、JVETでは、参照フレームの画面境界外の画素を画面境界内のブロックが有する動き情報を用いて、前記の参照フレームとは異なる参照フレームの画面境界内の画素から生成する動き補償画素補間が検討されている。
しかしながら、参照ピクチャにスケーリングウィンドウが設定され、参照ピクチャの拡大又は縮小を伴う場合や、参照ピクチャの画面境界内のブロックが動き情報を有していない場合ついては動き補償画素補間を適用しない。そのため、インター予測における予測精度を向上できないという問題がある。
本発明はかかる問題に鑑みなされたものであり、解像度変換を伴うインター予測における動き補償画素の補間精度を、これまでよりも向上させ、もって高効率で符号化する技術を提供しようとするものである。
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
符号化対象の第1のフレーム内の着目ブロックに対し、前記第1のフレームより前に符号化した第2のフレームを参照して予測画像を生成する予測手段と、
前記予測画像に対する前記着目ブロックの予測誤差を符号化する符号化手段と、
前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に符号化された第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間手段と、
前記第1のフレームより前のフレームの解像度を変更する変換手段とを有する。
本発明によれば、インター予測に用いる参照フレームの画面外画素をより精度よく生成し、符号化効率を改善することができる。
実施形態における画像符号化装置のブロック構成図。 実施形態における画像復号装置のブロック構成図。 実施形態における符号化処理を示すフローチャート。 実施形態における画像復号処理を示すフローチャート。 実施形態の画像符号化装置、復号装置に適用可能なコンピュータのハードウェア構成図。 ビットストリーム構造の一例を示す図。 本実施形態で用いられるサブブロック分割例を示す図。 単純複製画素補間の一例を示す図。 動き補償画素補間による画面外画素補間の一例を示す図。 参照ピクチャの解像度変換を伴う動き補償画素補間による画面外画素補間の一例を示す図。 参照ピクチャの解像度変換を伴う動き補償画素補間による画面外画素補間の一例を示す図。 動き補償画素補間により補間されない画面境界外画素の画素生成の一例を示す図。 境界ブロックに隣接するブロック情報を用いて動き補償画素補間により画面外画素補間する一例を示す図。 本実施形態における動き補償画素補間の高速化処理の例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
図1は実施形態の画像符号化装置を示すブロック図である。同図において、制御部100はCPU、及び、CPUが実行するプログラムを格納するメモリで構成され、装置全体の制御を司る。端子101は画像データを入力する入力端子である。端子101には、符号化対象の動画像データの発生源が接続される。動画像データの発生源の種類は特に問わないが、典型的には、撮像部、或いは、符号化対象の動画像画像データを記憶する記憶装置である。
ブロック分割部102は、端子101を介して受信した1フレームの画像を複数の基本ブロックに分割し、基本ブロック単位のブロック画像を後段に出力する。
生成部103は、参照ピクチャの解像度変換に用いるオフセット情報などを生成し、解像度変換部113および統合符号化部111へ出力する。本実施形態において、オフセット情報とは、各ピクチャにおけるスケーリングウィンドウを設定するための情報であり、当該ピクチャの拡大率又は縮小率を算出するために生成される情報である(以降、解像度変換制御情報と呼称する)。解像度変換制御情報の生成方法については特に限定しないが、ユーザが解像度変換制御情報を入力してもよいし、映像の撮像デバイスにおいて検出されるズームイン・ズームアウト等の動作から導出される情報を解像度変換制御情報として入力してもよいし、或いは、初期値としてあらかじめ指定された解像度変換制御情報を使用してもよい。
予測部104は、基本ブロックを分割することによりサブブロックを生成する。そして、予測部104は、サブブロック単位でフレーム内予測であるイントラ予測やフレーム間予測であるインター予測のいずれを行うのかを決定する。予測部104は、補間部114から供給される画面境界外の画素が補間された画像(以降、補間画像と呼称する)を適宜参照して、予測画像データを生成する。さらに、予測部104は、符号化対象の画像データと生成された予測画像データとから、予測誤差を算出し、その予測誤差を変換・量子化部105に出力する。また、予測部104は、予測に必要な情報、例えばサブブロック分割、予測モードや動きベクトル等の情報も予測誤差と併せて出力する。以下ではこの予測に必要な情報を予測情報と呼称する。また、予測部104は、予測情報を補間部114にも出力する。
変換・量子化部105は、サブブロック単位で予測誤差データの直交変換を行い、得られた変換係数に対して、設定された量子化パラメータを用いて量子化を行い、残差係数を得る。なお、量子化パラメータは、直交変換によって得られた変換係数の量子化に用いるパラメータである。
逆量子化・逆変換部106は、変換・量子化部105から出力された残差係数を逆量子化して変換係数を再生し、さらに逆直交変換して予測誤差データを再生する。
フレームメモリ108は、再生された画像データを格納するメモリである。
解像度変換部113は、フレームメモリ108に格納された画像を解像度変換制御情報に基づいて拡大又は縮小し、その拡大または縮小後の画像を、解像度変換画像として出力する。
補間部114は、解像度変換部113が出力する解像度変換画像と、予測部104が出力する予測情報と、フレームメモリ108に格納されたフィルタ画像を適宜参照し、補間画像データを生成する。そして、補間部114は、生成した補間画像データを予測部104及び画像再生部107に出力する。なお、補間部114は、生成した画面外画素の情報を含む画像データを補間画像としてフレームメモリ108に格納してもよい。また、補間部114は、フレームメモリ108から生成済みの補間画像を取り出し、予測部104及び画像再生部107に出力してもよい。
画像再生部107は、予測部104から出力された予測情報に基づいて、補間部114が出力する補間画像データと、予測誤差データとから再生画像データを生成する。
インループフィルタ部109は、再生画像に対し、デブロッキングフィルタやサンプルアダプティブオフセットなどのインループフィルタ処理を行う。
符号化部110は、変換・量子化部105から出力された残差係数および予測部104から出力された予測情報を符号化して、符号データを生成する。
統合符号化部111は、生成部103の出力である解像度変換制御情報を符号化して、ヘッダ符号データを生成する。さらに統合符号化部111は、符号化部110から出力された符号データと合わせて、ビットストリームを形成する。
端子112は、統合符号化部111で生成されたビットストリームを外部に出力する出力端子である。出力先の種類としては、ネットワーク、もしくは記憶装置(記録媒体を含む)である。
以上、実施形態における画像符号化装置の構成と基本的な動作を説明した。次に、画像符号化装置による画像の符号化動作を以下に説明する。本実施形態では動画像データをフレーム単位に入力する構成とするが、1フレーム分の静止画像データを入力する構成としても構わない。
画像の符号化に先立ち、生成部103は、解像度変換制御情報を生成する。本実施形態おける解像度変換制御情報は、現ピクチャの水平サイズ及び垂直サイズと、現ピクチャのスケーリングウィンドウを表すオフセット情報、水平方向及び垂直方向の解像度変換倍率が含まれる。現ピクチャの水平サイズ及び垂直サイズは、端子101から入力された画像の水平方向の画素数及び垂直方向の画素数である。次に、スケーリングウィンドウを表すオフセット情報とは、現ピクチャに対するスケーリングウインドウの位置とサイズを規定する情報である。本実施形態では、スケーリングウインドウの位置とサイズを、現ピクチャの左辺、右辺、上辺、下辺の各辺からスケーリングウインドウの各辺までの距離を用いて規定し、これをオフセット情報とする。各辺に対するオフセットは、画素数で表現される。また、同オフセットは、ピクチャの画面境界から中心に向かう正の値で表され、画面境界から外に向かう値を負の値で表す。以降の説明では、各辺に対するオフセットを、左辺オフセット、右辺オフセット、上辺オフセット、下辺オフセットと表す。さらに、現ピクチャのオフセットをオフセットC、参照ピクチャのオフセットをオフセットRとして区別する。
続いて、生成部103は、前述の各辺に対するオフセットを用いて、現ピクチャに対する参照ピクチャの拡大率又は縮小率を表す解像度変換倍率を水平方向と垂直方向についてそれぞれ算出する。
例えば、水平方向の解像度変換倍率は、次式で算出される。
水平方向の解像度変換倍率=(参照ピクチャの水平サイズ-左辺オフセットR-右辺オフセットR)/(現ピクチャの水平サイズ-左辺オフセットC-右辺オフセットC)
また、垂直方向の解像度変換倍率は、次式で算出される。
垂直方向の解像度変換倍率=(参照ピクチャの垂直サイズ-上辺オフセットR-下辺オフセットR)/(現ピクチャの垂直サイズ-上辺オフセットC-下辺オフセットC)
このような算出式を用いて、現ピクチャの符号化において参照可能なすべての参照ピクチャについて、現ピクチャに対する解像度変換倍率が算出される。生成部103は、このように算出した解像度変換倍率を解像度変換制御情報に格納し、解像度変換制御情報を解像度変換部113及び統合符号化部111に出力する。
端子101から入力された1フレーム分の画像データはブロック分割部102に供給される。
ブロック分割部102では、入力された画像データを複数の基本ブロックに分割し、基本ブロック単位の画像を予測部104に出力する。
予測部104は、ブロック分割部102から入力された画像データ(基本ブロックの画像)に対し、予測処理を実行する。具体的には、予測部104は、まず、入力した基本ブロックサイズの画像を、さらに細かいサブブロックへの分割処理(サブブロック分割処理)を行う。
図7(a)乃至(f)に、基本ブロックのサブブロックへの分割例を示す。太線の枠の参照符号700は基本ブロックを表しており、説明を簡易にするため、基本ブロックのサイズを32×32画素の構成とし、太線の枠内の各四角形はサブブロックを表すものとする。図7(a)は、1つのサブブロックが基本ブロックと同じサイズの例である。
図7(b)は、4つの正方形サブブロックへの分割例を示している。基本ブロックのサイズが32×32画素としているので、図7(b)の4つのサブブロックそれぞれのサイズは16×16画素となる。また、図7(c)~(f)は、サブ分割によって得られる長方形サブブロックの種類の例を表している。図7(c)では、基本ブロックを、16×32画素サイズの縦長の2つの長方形のサブブロックへの分割例を示している。図7(d)は、32×16画素の横長の2つの長方形のサブブロックに分割されている。また、図7(e)、(f)は、1:2:1の比で長方形サブブロックに分割されている。このように、本実施形態では、正方形だけではなく、長方形のサブブロックを用いて符号化処理が行われる。
予測部104は、処理対象の各サブブロックに対し、予測モードを決定する。具体的には、予測部104は、処理対象のサブブロックを含む現ピクチャの符号化済みの画素を用いるイントラ予測、あるいは、現ピクチャとは異なる符号化済みピクチャの画素を用いるインター予測のいずれを用いるかの予測モードを決定する。そして、予測部104は、決定した予測モードおよび符号化済の画素から予測画像データを生成する。さらに予測部104は、入力された画像データと生成した予測画像データとから予測誤差データを生成し、生成した予測誤差データを変換・量子化部105に出力する。なお、補間部114が、参照ピクチャの画面境界外の画素を画素補間により生成してもよいし、或いは、補間部114が、符号化済みの画素を解像度変換することで参照ピクチャの画面境界外の画素を生成してもよい。このような解像度変換を伴うインター予測における動き補償画素補間による画面境界外の画素の生成方法については後述する。また、予測部104は、サブブロック分割や予測モードなどの情報を予測情報として、符号化部110、画像再生部107に出力する。
変換・量子化部105は、予測部104によって予測処理が行われたサブブロックの予測誤差データに対して周波数変換を行い、さらに量子化を行う。量子化に使用される量子化パラメータの値自体の決定方法については、特に限定はしないが、ユーザが量子化パラメータを入力しても良いし、入力画像の特性から算出しても、初期値として予め指定されたものを使用しても良い。
逆量子化・逆変換部106は、入力された残差係数を逆量子化して変換係数を再生し、さらに再生された変換係数を逆直交変換して予測誤差データを再生する。そして、逆量子化・逆変換部106は、再生した予測誤差データを画像再生部107に出力する。なお、逆量子化・逆変換部106がサブブロックの逆量子化処理を行う際に用いる量子化パラメータは、変換・量子化部105がそのサブブロックを量子化する際に用いた量子化パラメータと同一である。
画像再生部107は、予測部104から入力した予測情報に基づいて、補間部114から供給された補間画像を適宜参照し、予測画像を生成する。そして、画像再生部107は、生成された予測画像と、逆量子化・逆変換部106が生成した予測誤差データから画像データを再生し、その再生した画像データをフレームメモリ108に格納する。
インループフィルタ部109は、フレームメモリ108から再生画像を読み出しデブロッキングフィルタなどのインループフィルタ処理を行う。インループフィルタ処理は、予測部104の予測モードや変換・量子化部105で利用される量子化パラメータの値、さらに量子化後の処理サブブロックに非ゼロの値が存在の有無、あるいはサブブロック分割情報に基づいて行われる。インループフィルタ部109は、フィルタ処理して得た画像データを再びフレームメモリ108に再格納する。
解像度変換部113は、フレームメモリ108に格納された画像を解像度変換制御情報に基づいて拡大又は縮小する。そして、解像度変換部113は、拡大又は縮小後の画像を、解像度変換画像として出力する。
ここで、参照ピクチャにスケーリングウィンドウが設定され、現ピクチャにスケーリングウィンドウが設定されない場合、参照ピクチャの拡大又は縮小処理について一例を用いて説明する。例えば、現ピクチャと参照ピクチャの水平サイズが1920画素、垂直サイズが1080画素であるとする。そして、参照ピクチャに設定された左辺オフセットと右辺オフセットがそれぞれ240画素、上辺オフセットと下辺オフセットがそれぞれ135画素とする。また、現ピクチャにはオフセットが設定されていないとする。この場合、水平、垂直方向それぞれの解像度変換倍率は、前述の解像度変換倍率の算出式を用いて次式のようになる。
・水平方向の解像度変換倍率=(1920-240-240)/1920=0.75
・垂直方向の解像度変換倍率=(1080-135-135)/1080=0.75
解像度変換倍率は、現ピクチャのうちオフセットを適用した矩形領域を基準として、参照ピクチャのうちオフセットを適用した矩形領域がどのようなサイズであるかを表している。上記の場合、現ピクチャに対して、参照ピクチャが0.75、すなわち3/4倍に縮小された状態にある。したがって、この場合は、解像度変換部113は、解像度変換倍率の逆数である4/3倍の倍率で参照ピクチャを拡大することで解像度変換画像を生成する。そして、解像度変換部113は、生成した解像度変換画像を補間部114へ出力する。解像度変換に用いる補間フィルタ又は間引きフィルタ(以降、解像度変換フィルタと呼称する)は特に限定しないが、ユーザが一つ以上の解像度変換フィルタを入力してもよいし、初期値として予め指定されたものを使用してもよい。また、解像度変換部113は、解像度変換倍率に応じて複数の解像度変換フィルタを切り替えて解像度変換画像を生成してもよい。このように、解像度変換倍率に基づいて参照ピクチャを拡大又は縮小することで、ズームイン又はズームアウトシーンにおける映像のオブジェクトの拡大又は縮小に追随したインター予測が可能となる。
上記の例では、現ピクチャにオフセットが設定されていないものとしたが、本実施形態はこれに限定されず、現ピクチャにスケーリングウィンドウが設定されていてもよい。例えば、現ピクチャと参照ピクチャの水平サイズが1920画素、垂直サイズが1080画素であるとする。また、参照ピクチャに設定された左辺オフセットと右辺オフセットがそれぞれ510画素、上辺オフセットと下辺オフセットがそれぞれ270画素とする。また、現ピクチャに設定された左辺オフセットと右辺オフセットがそれぞれ360画素、上辺オフセットと下辺オフセットがそれぞれ180画素とする。かかる条件の場合、水平、垂直方向それぞれの解像度変換倍率は次のようになる。
・水平方向の解像度変換倍率=(1920-510-510)/(1920-360-360)=0.75
・垂直方向の解像度変換倍率=(1080-270-270)/(1080-180-180)=0.75
このように、前述の現ピクチャにオフセットを設定しない場合と同一の解像度変換倍率を指定することもできる。
また、現ピクチャと参照ピクチャの各々の水平サイズ及び垂直サイズが異なる画素数であっても構わない。例えば、現ピクチャの水平サイズが1920画素、垂直サイズが1080画素であり、参照ピクチャの水平サイズが960画素、垂直サイズが540画素であり、現ピクチャと参照ピクチャにスケーリングウィンドウが設定されていないとする。この場合、水平、垂直方向それぞれの解像度変換倍率は次のようになる。
水平方向の解像度変換倍率=(960-0-0)/(1920-0-0)=0.5
垂直方向の解像度変換倍率=(540-0-0)/(1080-0-0)=0.5
このように、現ピクチャと参照ピクチャが異なる画素数の画像であっても解像度変換倍率を指定でき、結果として、一部の区間が、他の区間よりも拡大又は縮小された画像で構成された映像であっても、補間部114は、動き補償画素補間を用いて参照ピクチャの画面境界外の画素を生成できる。
補間部114は、解像度変換部113が出力する解像度変換画像と、予測部104が出力する予測情報と、フレームメモリ108に格納されたフィルタ画像を適宜参照し、現ピクチャの画面境界外の画素を補間した画像データを生成する。補間部114は、現ピクチャの画面境界外の画素を補間するために、予測部104が出力する予測情報を用いて、画面外画素の補間に必要な画素の位置を特定し、画面外画素を生成する。そして、補間部114は、生成した画像データを予測部104及び画像再生部107に出力する。画面外画素の情報は、フィルタ画像を参照する度に生成しても構わないし、一度算出した画面外画素の情報を当該のフィルタ画像に関連付けた補間画像としてフレームメモリ108に格納してもよい。
補間部114は、前記画像データを生成するために、まず、画面外画素を補間する対象となる現ピクチャのフィルタ画像をフレームメモリ108から取り出し、予測部104から入力される現ピクチャの符号化に用いた予測情報と共に保持する。続いて、補間部114は、前記現ピクチャのフィルタ画像の画面境界の内側に接するすべてのサブブロックについての予測モードを予測情報から読み出す。そして、補間部114は、読み出した現ピクチャの画面境界に内側から接する各ブロック(以降、境界ブロックと呼称する)の予測モードの状態に応じて、前記現ピクチャのフィルタ画像の画面境界外の画素補間方法を決定する。本実施形態では、画面外画素の画素補間の方法として、参照ピクチャの画面境界内の画素を同じ参照ピクチャの画面境界外に単純に複製することで生成する補間(以降、単純複製画素補間と呼称する)、或いは、参照ピクチャの画面境界内の画素を前記参照ピクチャとは異なる参照ピクチャの画面境界内の画素を用いて生成する動き補償画素補間を用いる。単純複製画素補間と動き補償画素補間の詳細な処理は後述する。
ここで、参照ピクチャの解像度変換を伴うインター予測における動き補償画素補間を用いて、画面境界外の画素を生成する方法について、図10A及び図10Bを参照して説明する。
図10A及び図10Bは、予測部104が、符号化対象サブブロック1002をインター予測により符号化する場合を表している。太枠1001は、符号化対象である現ピクチャであり、太枠1011は参照ピクチャである。細枠1010は、参照ピクチャ1011の画面境界外の画素を有する領域であり、単純複製画素補間或いは動き補償画素補間により画面境界外の画素が生成されている。参照ピクチャ1011の矩形領域1012は、予測部104がインター予測によって生成した、符号化対象サブブロック1002の予測ブロックを表している。境界ブロック1013の左辺と境界ブロック1014の左辺は、参照ピクチャ1011の左辺に内側から接しており、境界ブロック1013と境界ブロック1014の予測モードが、インター予測であるとする。また、矩形領域1015と矩形領域1016は、単純複製画素補間或いは動き補償画素補間により生成された画素で満たされている。なお、補間部114は、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合についても、境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、単純複製画素補間或いは動き補償画素補間を用いて参照ピクチャ1011の画面境界外の画素を生成している。また、補間部114は、動き補償画素補間を用いる場合、動き補償画素補間を用いて生成しない参照ピクチャの画面境界外の画素を、参照ピクチャの画面境界の画素を用いて単純複製画素補間により生成している。そして、各境界ブロックの動き補償画素補間では、各境界ブロックの動き情報に基づき、参照ピクチャの画面境界内の内側に接するすべての境界ブロックの各々について、動き補償画素補間を用いて参照ピクチャの画面境界外に位置する画素を生成している。さらに、各境界ブロックの処理おいて、他の境界ブロックの動き情報を参照せずに参照ピクチャの画面境界外に位置する画素を生成している。
図10Aの場合、ピクチャ1021は、参照ピクチャ1011の境界ブロックのインター予測に使用されているフィルタ画像であり、フレームメモリ108から取り出したピクチャである。さらに、そのピクチャの画面境界内の画素値が、動き補償画素補間により、参照ピクチャの画面境界外の画素の生成に利用されるピクチャである(以降、補間用画像と呼称する)。補間用画像1021と参照ピクチャ1011には、スケーリングウィンドウが設定されておらず、すべてのオフセットが0である。そのため、解像度変換倍率は水平、垂直方向とも1であり、境界ブロック1013のインター予測において、補間用画像1021を解像度変換する必要がない。結果として、予測画像1012の内側に位置する境界ブロック1013に対応する予測ブロック1023は、補間用画像1021の画面境界の内側に位置している。同様に、予測画像1012の内側に位置する境界ブロック1014に対応する予測ブロック1024は、補間用画像1021の画面境界の内側に位置している。したがって、補間部114は、補間用画像1021の矩形領域1025の画素群を用いて、参照ピクチャの画面境界外に位置する矩形領域1015の画素を生成している。同様に、補間部114は補間用画像1021の矩形領域1026の画素群を用いて、参照ピクチャの画面境界外に位置する矩形領域1016の画素を生成している。したがって、補間部114は、サブブロック1002のインター予測により参照された参照ピクチャ1011の予測ブロック1012を構成する参照ピクチャの画面境界外の画素を、補間用画像1021の画面境界内の画素を用いて動き補償画素補間により生成する。さらに補間部114は、参照ピクチャ1011のすべての境界ブロックについて、動き補償画素補間を実行して生成した参照ピクチャの画面境界外が補間済みである参照ピクチャを補間画像としてフレームメモリ108に格納する。
図10Bの場合、補間用画像1021と参照ピクチャ1011に設定されたスケーリングウィンドウのオフセットのいずれかが0以外である。すなわち、境界ブロック1013のインター予測において、補間用画像1021を解像度変換する必要がある。そのため、予測画像1012の内側に位置する境界ブロック1013に対応する予測ブロック1023は、補間用画像1021ではなく、補間用画像1021と参照ピクチャ1011のオフセット情報に基づき解像度変換した解像度変換画像(以降、解像度変換済み補間用画像と呼称する)の画面境界の内側に位置している。同様に、予測画像1012の内側に位置する境界ブロック1014に対応する予測ブロック1024は、補間用画像1021ではなく、解像度変換済み補間用画像1022の画面境界の内側に位置している。
ここで、補間用画像1021から解像度変換済み補間用画像1022を生成する処理について説明する。説明を簡易にするために、補間用画像1021には、スケーリングウィンドウが設定され、現ピクチャ1001及び参照ピクチャ1011にはスケーリングウィンドウが設定されていないとする。ただし、本実施形態はこれに限定されない。現ピクチャ1001及び参照ピクチャ1011にスケーリングウィンドウが設定されてもよい。図10Bの例では、参照ピクチャ1011と補間用画像1021の水平サイズが1920画素、垂直サイズが1080画素であり、補間用画像1021に設定された左辺オフセットと右辺オフセットがそれぞれ240画素、上辺オフセットと下辺オフセットがそれぞれ135画素とする。また、参照ピクチャの四辺のオフセットはそれぞれ0画素である。この場合、解像度変換倍率は前述の計算式を用いて水平方向及び垂直方向について0.75となる。したがって、解像度変換済み補間用画像1022は、補間用画像1021を0.75の逆数である4/3倍に拡大した画像である。このように、参照ピクチャ1011と補間用画像1021に設定されたオフセット情報に基づいて、解像度変換済み補間用画像1022は、補間用画像1021から生成されている。
図10Bにおいて、参照ピクチャ1011の矩形領域1012は、予測部104がインター予測によって生成した符号化対象サブブロック1002の予測ブロックを表している。また、矩形領域1012に含まれる参照ピクチャ1011の境界ブロック1013及び1014の予測モードがインター予測であり、解像度変換済み補間用画像1022の画面境界内の領域1023及び1024に対して動きベクトルが発生している。また、境界ブロック1013及び1014の左辺は参照ピクチャ1011の左辺に内側から接している。このとき、参照ピクチャ1011の境界ブロックが本来参照する補間用画像1021、又は、参照ピクチャ1011のいずれかにはオフセットが設定されているため、境界ブロック1013及び1014のインター予測に用いられている予測画像は、補間用画像1021ではなく、補間用画像1021を前述のとおりに解像度変換した解像度変換済み補間用画像1022である。そのため、境界ブロック1013に対応する予測ブロック1023は、解像度変換済み補間用画像1022の画面境界の内側に位置している。また同様に、境界ブロック1014に対応する予測ブロック1024も、解像度変換済み補間用画像1022の画面境界の内側に位置している。さらに、矩形領域1012の一部の画素群は、参照ピクチャ1011の画面境界外の画素で構成される矩形領域1015及び矩形領域1016の画素である。矩形領域1015及び矩形領域1016の画素は、前述の単純複製画素補間或いは動き補償画素補間を用いて生成されている。具体的には、境界ブロック1013の左方に位置する矩形領域1015の画素群が、境界ブロック1013が参照する解像度変換済み補間用画像1022の画面境界内に位置する矩形領域1025を用いて生成されている。同様に、境界ブロック1014の左方に位置する矩形領域1016の画素群が、境界ブロック1014が参照する解像度変換済み補間用画像1022の画面境界内に位置する矩形領域1026を用いて生成されている。この場合、したがって、補間部114は、サブブロック1002のインター予測により参照された参照ピクチャ1011の予測ブロック1012を構成する参照ピクチャの画面境界外の画素を、解像度変換済み補間用画像1022の画面境界内の画素を用いて動き補償画素補間により生成する。さらに補間部114は、参照ピクチャ1011のすべての境界ブロックについて、動き補償画素補間を実行して生成した参照ピクチャの画面境界外が補間済みである参照ピクチャを補間画像としてフレームメモリ108に格納する。
図1に戻り、符号化部110は、ブロック単位で、変換・量子化部105で生成された残差係数、予測部104から入力された予測情報をエントロピー符号化し、符号データを生成する。
エントロピー符号化の方法は特に問わないが、典型的には、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。生成された符号データは統合符号化部111に出力される。量子化情報を構成する量子化パラメータの符号化においては、符号化対象のサブブロックの量子化パラメータと当該サブブロックよりも前に符号化されたサブブロックの量子化パラメータを用いて算出する予測値との差分値を示す識別子が符号化される。本実施形態では、符号化順で当該サブブロックの直前に符号化された量子化パラメータを予測値として、当該サブブロックの量子化パラメータとの差分値を計算するものとするが、量子化パラメータの予測値はこれに限定されない。当該サブブロックの左または上に隣接しているサブブロックの量子化パラメータを予測値としても良いし、平均値など複数のサブブロックの量子化パラメータから算出される値を予測値としても構わない。さらに、処理対象サブブロックが、基本ブロック行における最初の基本ブロックに属するサブブロックのうち、符号化順で最初のサブブロックである場合は、直上の基本ブロック中のサブブロックの量子化パラメータを予測値としてもよい。これにより、基本ブロック行単位での並列処理が可能となる。なお、基本ブロック行における最初の基本ブロックとは、左側にピクチャ境界またはタイル境界が存在する基本ブロックのことを示す。
統合符号化部111は、解像度変換制御情報を符号化する。本実施形態では、解像度変換制御情報には、現ピクチャの水平画素数と垂直画素数、オフセット情報として、左辺オフセット、右辺オフセット、上辺オフセット、下辺オフセットが含まれる。各オフセットは画素数であり、正負を表す符号を有する。また、統合符号化部111は、動き補償画素補間の実行を示すフラグも符号化する。具体的には、動き補償画素補間を実行する場合には、フラグとして1を符号化し、動き補償画素補間を実行しない場合には0を符号化する。
解像度変換制御情報と動き補償画素補間の実行を示すフラグの符号化の方法は特に指定しないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。また、統合符号化部111は、これらの符号や符号化部110から入力された符号データなどを多重化してビットストリームを形成する。最終的には、ビットストリームは端子112から外部に出力される。
図6(a)に符号化された解像度変換制御情報を含んだビットストリームのデータ構造の例を示す。解像度変換制御情報は、シーケンス、ピクチャ等のヘッダのいずれかに含まれる。本実施形態では、図6(a)に示されるようにピクチャのヘッダ部分に含まれるものとする。ただし、解像度変換制御情報が格納される位置はこれに限られず、図6(b)に示されるように、シーケンスのヘッダ部分に含まれても構わない。

ここで、単純複製画素補間について図8を参照して説明する。図8は、参照ピクチャの画面境界内の画素を、同じ参照ピクチャの画面境界外に単純に複製することで生成する単純複製画素補間の一例を示している。太線の枠801は、参照ピクチャの画面境界を表し、細線の枠802が参照ピクチャの画面境界外の領域を表している。符合AからTまで記号が付された各円は、画面境界内及び画面境界外の画素を表している。また、連続する3つの黒丸は、画面境界外の画素の表記の省略を表す。単純複製画素補間では、参照ピクチャの画面境界に接し、かつ、参照ピクチャの画面境界の内側に位置する画素を、ピクチャ境界の法線方向に対して単純に複製することにより、参照ピクチャの画面境界外の画素を生成する。例えば、参照ピクチャの左辺における画面境界において、上から3番目に位置する画面境界内の画素はCである。この場合、当該の画素Cは、参照ピクチャ左辺の法線、すなわち、参照ピクチャの画面境界外の左方に向けて、連続して同じ値Cが複製され、参照ピクチャの画面境界外の画素が生成される。同様に、参照ピクチャの右辺における画面境界においては、右方に向けて画面境界内の画素を複製し、参照ピクチャの上辺における画面境界においては、上方に向けて画面内境界内の画素を複製し、また、参照ピクチャの下辺における画面境界においては、下方に向けて画面境界内の画素を複製することで、参照ピクチャの画面境界外の画素が生成される。なお、左辺、右辺、上辺、下辺の法線上に位置しない画素である参照ピクチャの左上、右上、左下、右下の領域における画素は、参照ピクチャの画面境界内の四隅に位置する画素を用いて生成する。具体的には、左上の領域の画素は、画面境界内左上の画素Aを単純に複製する。同様に、右上の領域の画素は、画面境界内右上の画素Kを単純に複製し、左下の領域の画素は、画面境界内左下の画素Fを単純に複製し、右下の領域の画素は、画面境界内右下の画素Pを単純に複製する。このような単純複製画素補間を用いることで、各参照ピクチャの画面境界外の画素値を高速に生成できる。
次に、動き補償画素補間について、図9を用いて詳細に説明する。図9は、現ピクチャのフィルタ画像の画面境界外の画素を、フレームバッファ108から取り出したフィルタ画像の画面境界内の画素を用いて生成する補間の一例を示している。前記取り出したフィルタ画像は、現ピクチャの符号化対象の各サブブロックがインター予測により参照するインループフィルタ処理済みであるフィルタ画像、又は、補間部114により画面境界外の画素が生成済みである補間画像である。太枠901は、参照元となる現ピクチャのフィルタ画像(以降、現フィルタ画像と呼称する)の画面境界を表し、細線の枠902が現フィルタ画像の画面境界外の領域を表している。また、領域903は現フィルタ画像の画面境界の左辺に内側から接する境界ブロックである。簡単のため、図9では4×4画素の正方形ブロックである場合を示しているが、本実施形態はこれに限定されない。例えば、8×8画素の正方形ブロックを用いてもよいし、8×16画素の矩形ブロックとしてもよい。以降では、正方形ブロックのサイズをN×N画素で表す。図9のように境界ブロックの左辺が現フィルタ画像の左辺に内側から接する場合、現フィルタ画像の境界ブロックの外側に隣接する矩形領域904は、現フィルタ画像の左辺に外側から接する。この場合、矩形領域904の右辺は、境界ブロックの左辺と同一の線分である。
図9の太線905は、フレームバッファ108から取り出した前述の現フィルタ画像とは異なり、現フィルタ画像の境界ブロックがインター予測により参照しているフィルタ画像(以降、参照フィルタ画像と呼称する)の画面境界を表し、領域906は、参照フィルタ画像の内側に位置する正方形ブロックである。補間部114は、境界ブロック903の予測情報に基づいて、境界ブロック903の参照先である正方形ブロック906の位置を特定する。正方形ブロック906は、境界ブロック903の予測誤差の算出に使われたブロックであるため、境界ブロック903と正方形ブロック906は同一のブロックサイズである。さらに、太線の枠907は、正方形ブロック906の左辺と、参照フィルタ画像の画面境界905の同じく左辺が成す矩形領域であり、それらの2辺が成す距離をMとする。図9ではM=5の場合を示している。また、矩形領域907の右辺と正方形ブロック906の左辺は同一の線分であるから、矩形領域907の垂直サイズは正方ブロック907と同じくN画素である。したがって、矩形領域907は、M×N画素の矩形領域である。
水平サイズMと垂直サイズNで指定される矩形領域907の内側は、参照フィルタ画像の画面境界内の画素で満たされている。図9の場合、0から19までの番号が付された各円は、太線907の矩形領域を満たす画素群である。また、図9の例では同画素群は、5×4(=20)画素で構成している。このように、特定した参照フィルタ画像の矩形領域907の画素群を、現フィルタ画像において、矩形領域907と同じサイズの矩形領域904の生成に用いる。矩形領域904に含まれる画素の生成は、単純に参照フィルタ画像の矩形領域907の画素と同じ値を複製してもよいし、鮮鋭化フィルタや平滑化フィルタなどを適用してもよい。
このように、現フィルタ画像の画面境界外の領域902に属する画素が、動き補償画素補間により生成されるが、領域902のすべての画素が生成されるとは限らない。画面境界外の画素のうち値が未定の画素は、単純複製画素補間を用いて生成する。例えば、正方ブロック906の左辺が、参照フィルタ画像905の左辺の左方に位置する場合において、境界ブロック903が、参照フィルタ画像905の画面境界外を参照しているため、参照フィルタ画像の画面境界内において特定した矩形領域907は、画素が1つも存在しない。必然的に現フィルタ画像の矩形領域904に対応する画素も存在しないため、この場合には、単純複製画素補間を用いて、境界ブロック903の左方の画面境界外の画素を生成する。また、動き補償画素補間により生成された矩形領域904の画素群のさらに外側に位置する画素について、単純複製画素補間を用いて画素を生成する。そして、境界ブロックの上辺が現フィルタ画像の上辺に内側から接する場合、境界ブロックの右辺が現フィルタ画像の右辺に内側から接する場合、境界ブロックの下辺が現フィルタ画像の下辺に内側から接する場合についても、前述の境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成する。これにより、現フィルタ画像の左方、右方、上方、下方に位置する画面境界画素を生成する。なお、左上、右上、左下、右下の領域に存在する画素は、前述の単純複製画素補間を用いて画面境界外の画素を生成する。
このように、補間部114は、前述の単純複製画素補間或いは動き補償画素補間を用いて現ピクチャの画面境界外の画素を補間し、処理結果を補間画像としてフレームメモリ108に出力する。
図3は、本実施形態に係る画像符号化装置における符号化処理を示すフローチャートである。
まず、S301にて、生成部103は、解像度変換部113による参照ピクチャを解像度変換するためのオフセット情報を決定する。そして、生成部103は、その情報を解像度変換制御情報とする。この解像度変換制御情報を符号化するため、生成部103はその情報を統合符号化部111に出力する。
S302にて、ブロック分割部102はフレーム単位の入力画像を基本ブロック単位に分割する。
S303にて、予測部104はS301にて生成された基本ブロック単位の画像データに対して分割処理を行い、サブブロックを生成する。そして予測部104は、その生成されたサブブロック単位で予測処理を行い、ブロック分割や予測モードなどの予測情報及び予測画像データを生成する。そして、予測部104は、入力された画像データと、生成した予測画像データとから、予測誤差データを算出する。具体的には、予測部104は、サブブロックの予測モードにインター予測を設定する。そして、予測部104は、補間部114が補間用画像の画面境界内の画素を用いて生成した参照ピクチャの画面境界外の画素を含む予測ブロックを生成する。さらに、予測部104は、その予測ブロックとサブブロックとの情報から、予測誤差データを生成する。或いは、生成部103は解像度変換制御情報に含まれる現ピクチャのオフセット情報と、各参照ピクチャのオフセット情報を用いて、参照可能な各参照ピクチャの現ピクチャに対する解像度変換倍率を算出する。そして、前記の解像度変換倍率に基づいて補間用画像を変換した解像度変換済み補間用画像を生成する。この場合、予測部104は、サブブロックの予測モードにインター予測を設定する。そして、予測部104は、補間部114が解像度変換済み補間用画像の画面境界内の画素を用いて生成した参照ピクチャの画面境界外の画素を含む予測ブロックを生成する。さらに、予測部104はその予測ブロックとサブブロックとの情報から、予測誤差データを生成する。
S304にて、変換・量子化部105は、S303で算出された予測誤差データを直交変換して変換係数を生成する。そして、変換・量子化部105は、量子化パラメータを用いて変換係数の量子化を行い、残差係数を生成する。
S305にて、逆量子化・逆変換部106は、S304で生成された残差係数を逆量子化・逆直交変換し、予測誤差を再生する。本ステップでの逆量子化処理では、S304で用いられた量子化パラメータと同一のものが用いられる。
S306にて、画像再生部107は、S303で生成された予測情報に基づいて予測画像を再生する。画像再生部107は、さらに再生された予測画像と、S305で生成された予測誤差から画像データを再生する。
S307にて、符号化部110は、ブロックの分割情報とともに、S303で生成された予測情報およびS304で生成された残差係数を符号化し、符号データを生成する。符号化部110は、さらに量子化パラメータ等の他の符号データも含め、ビットストリームを生成する。
S308にて、画像符号化装置の制御部100は、着目フレーム(現ピクチャ)内の全ての基本ブロックの符号化が終了したか否かの判定を行う。制御部100は、終了したと判定した場合は、処理をS309に進める。また、制御部100は、未処理の基本ブロックが存在すると判定した場合は、次の基本ブロックの符号化を行うため、処理をS303に戻す。
S309にて、インループフィルタ部109は、S306で再生された画像データに対し、インループフィルタ処理を行い、フィルタ処理された画像(フィルタ画像)を生成する。
S310にて、解像度変換部113は、現ピクチャのフィルタ画像と、現ピクチャの境界ブロックがインター予測で参照する参照ピクチャをフレームメモリ108から取り出し、また、生成部103から供給される解像度変換制御情報を用いて、参照ピクチャを拡大又は縮小し、解像度変換画像を生成する。続いて補間部114は、現ピクチャのフィルタ画像の境界ブロックに隣接する、現ピクチャのフィルタ画像の画面境界外に位置する画素群を、単純複製画素補間、或いは、動き補償画素補間を用いて生成する。各境界ブロックについて、動き補償画素補間を用いる場合には、解像度変換画像の画面境界内に位置する画素を用いて画面境界外の画素を生成する。そして、補間部114は、画面境界外の画素が生成された補間画像をフレームメモリ108に格納し、処理を終了する。
以上の構成と動作により、特にS301において解像度変換制御情報を生成し、S310において、前記解像度変換制御情報に基づいて参照ピクチャを拡大又は縮小することで動き補償画素補間における予測画像の生成精度を向上させることができ、さらには、そのような予測画像を用いることで予測誤差を小さくできる。結果として、生成されるビットストリーム全体のデータ量を抑えつつ、符号化された画像の画質を向上させることができる。
なお、本実施形態では、動き補償画素補間を用いて生成しない参照ピクチャの画面境界外の画素を、参照ピクチャの画面境界内の画素を用いて生成するとしたが、これに限定されない。参照ピクチャの画面境界から最も遠い場所に位置する画面境界外の動き補償画素補間により算出した画素を終端画素とし、その終端画素をさらに複製してもよいし、或いは、終端画素と、単純複製画素補間で用いる画面境界内側の画素との平均値をさらに複製してもよい。図11を参照して具体的な例を説明する。
図11の太枠1101は、参照ピクチャであり、細枠1102は、参照ピクチャの画面境界外の領域を表している。領域1103は境界ブロックであり、境界ブロックの左辺が参照ピクチャの左辺に内側から接している。領域1104は、動き補償画素補間により、参照ピクチャよりも前に符号化されたピクチャの画素を用いて生成されており、その右辺が参照ピクチャの左辺に外側から接している。領域1104の内部は、0~9の番号を有する10個の画素で満たされている。このうち、画素0と画素5が終端画素である。この場合において、領域1104の外側に位置する画素Yは、画素Vと同じ値でもよいし、終端画素0と同じ値でもよい。あるいは、画素Vと終端画素0の平均値を用いてもよい。あるいは、画素Vが存在する境界ブロックの左辺の法線上の画素群で、前記法線上の画素群で、領域1103に含まれる画素Vを含む画素群の平均値、中央値、最大値、最小値のいずれかを用いて画素Yを算出してもよい。或いは、領域1104に含まれる画素群、すなわち、画素0~4の平均値、中央値、最大値、最小値、のいずれかを用いて画素Yを算出してもよい。或いは、前記法線上の画素群で領域1103と領域1104を含む画素群の平均値、中央値、最大値、最小値、のいずれかを用いて画素Yを算出してもよい。さらには、前記領域1104の画素群を用いて算出した値と、前記領域1103の画素群を用いて算出した値の平均値、中央値、最大値、最小値のいずれかを用いて画素Yを算出してもよい。また同様に、画素Zを画素Wが存在する境界ブロックの左辺の法線上の画素を用いて算出してもよい。結果として、算出に用いる画素群の特性に応じて平均値、中央値、最大値、最小値を選択することで精度よく補間画素を生成できる。すなわち、算出に用いる画素群の画素値が変動している場合には平均値を用いることで変動の影響を受けない精度の高い画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない精度の高い画素を生成できる。また、算出に用いる画素群のうち、単純複製画素補間で用いる画面境界内側の画素又は終端画素の値が、他の値より著しく小さな値の場合には最大値を用い、また、単純複製画素補間で用いる画面境界内側の画素又は終端画素の値が、他の値より著しく大きい値の場合には最小値を用いることで、局所的なノイズの影響を避けることができる。なお、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合についても、前述の境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成してもよい。このように、動き補償補間により生成された画素群の値を考慮して、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成することで、画面境界外において補間した画素同士の不連続性が低減され、符号化対象のサブブロックの予測誤差信号を効率よく符号化可能となる。
また、本実施形形態ではさらに、左上、右上、左下、右下の領域における画素は、参照ピクチャの画面境界内の四隅に位置する画素を用いて生成するとしたが、これに限定されない。参照ピクチャの四隅の画素の外側に位置する画素を用いて算出してもよい。図11を用いて、具体的な例を説明する。図11の各矩形領域は前述の説明と同じであるから説明を省略する。ただし、領域1111は、参照ピクチャ1101の左上隅に位置する境界ブロック1105がインター予測により参照している補間用画像であり、領域1115は、境界ブロック1105に対応する予測ブロックである。
参照ピクチャ1101の左上隅の画素Aに対して、画素10、12、20、24の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素11、21、22、23は、補間用画像1111の画素11、21、22、23から生成してもよい。これにより、画素Aを単純複製するよりも精度よく参照ピクチャの左上に位置する画素を生成できる。或いは、画素10と画素12の平均値を用いて、画素11を生成してもよい。或いは、画素10と画素12と画素Aの平均値、中央値のいずれかの値を用いて、画素11を生成してもよい。また、画素20と画素24の平均値を用いて、画素21~画素23を生成してもよい。或いは、画素20と画素24と画素Aの平均値、中央値のいずれかの値を用いて、画素21~画素23を生成してもよい。平均値を用いることで参照ピクチャ左方と上方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
参照ピクチャ1101の右上隅の画素Kに対して、画素50、52、60、64の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素51、61、62、63は、補間用画像1111の画素51、61、62、63から生成してもよい。これにより、画素Kを単純複製するよりも精度よく参照ピクチャの右上に位置する画素を生成できる。或いは、画素50と画素52の平均値を用いて、画素51を生成してもよい。或いは、画素50と画素52と画素Kの平均値、中央値のいずれかの値を用いて、画素51を生成してもよい。また、画素60と画素64の平均値を用いて、画素61~画素63を生成してもよい。或いは、画素60と画素64と画素Kの平均値、中央値のいずれかの値を用いて、画素61~画素63を生成してもよい。平均値を用いることで参照ピクチャ上方と右方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
参照ピクチャ1101の左下隅の画素Fに対して、画素30、32、40、44の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素31、41、42、43は、補間用画像1111の画素31、41、42、43から生成してもよい。これにより、画素Fを単純複製するよりも精度よく参照ピクチャの左上に位置する画素を生成できる。或いは、画素30と画素32の平均値を用いて、画素31を生成してもよい。或いは、画素30と画素32と画素Fの平均値、中央値のいずれかの値を用いて、画素31を生成してもよい。また、画素40と画素44の平均値を用いて、画素41~画素43を生成してもよい。或いは、画素40と画素44と画素Fの平均値、中央値のいずれかの値を用いて、画素41~画素43を生成してもよい。平均値を用いることで参照ピクチャ左方と下方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
参照ピクチャ1101の右下隅の画素Pに対して、画素70、72、80、84の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素71、81、82、83は、補間用画像1111の画素71、81、82、83から生成してもよい。これにより、画素Pを単純複製するよりも精度よく参照ピクチャの左上に位置する画素を生成できる。或いは、画素70と画素72の平均値を用いて、画素71を生成してもよい。或いは、画素70と画素72と画素Pの平均値、中央値のいずれかの値を用いて、画素71を生成してもよい。また、画素80と画素84の平均値を用いて、画素81~画素83を生成してもよい。或いは、画素80と画素84と画素Pの平均値、中央値のいずれかの値を用いて、画素81~画素83を生成してもよい。平均値を用いることで参照ピクチャ右方と下方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
このように、動き補償補間により生成された画素群の値を考慮して、動き補償画素補間を用いて生成した画素群に囲まれる参照ピクチャの左上、右上、左下、右下に位置する画素を生成することで、画面境界外において補間した画素同士の不連続性が低減され、符号化対象のサブブロックの予測誤差信号を効率よく符号化可能となる。
なお、本実施形態では、各境界ブロックの動き情報に基づき、他の境界ブロックの動き情報を参照せずに参照ピクチャの画面境界外に位置する画素を生成すると説明したが、本実施形態はこれに限定されない。処理対象の境界ブロックの上下、又は、左右に位置する境界ブロックの動き情報を参照して動き補償画素補間を実行してもよい。図12を用いて具体例を説明する。太枠1211は参照ピクチャの画面境界であり、細枠1210が、参照ピクチャ1211の境界外の領域を表す。また、境界ブロック1212、1213、1214の左辺が、参照ピクチャの左辺に内側から接しており、各境界ブロックに対応する領域1215、1216、1217は、動き補償画素補間により、参照ピクチャよりも前に符号化されたピクチャを解像度変換して得られる解像度変換済み補間用画像1221の画面境界内に位置する画素を用いて生成されており、それぞれの右辺が参照ピクチャの左辺に外側から接している。参照ピクチャ1211の内側に位置する各境界ブロックを、左上から右下に向けて順次、各境界ブロックの予測情報に基づいて、解像度変換済み補間用画像1221の画面境界内に位置するインター予測に用いた解像度変換済み補間用画像1221の矩形領域を特定する。図12では、境界ブロック1212、1213、1214に対応するインター予測に用いられた領域を、ブロック1222、1223、1224で表し、各々のブロックに隣接する矩形領域1225、1226、1227が、参照ピクチャの画面領域外の画素群である領域1215、1216、1217の生成に使われるとする。さらに、領域1212と領域1214の動きベクトルが同一であるとする。この場合、境界ブロック1213の動き情報が指し示すインター予測に用いられた領域である領域1223は、境界ブロック1222と1224に隣接していない。一方、領域1212と領域1214の動きベクトルが同一であり、領域1212と領域1214との相対位置関係が、領域1222と領域1224との相対位置関係と一致している。スケーリングウィンドウを設定するズームシーンでは、解像度変換により画面内のオブジェクトが同等の大きさに拡大又は縮小されているため、インター予測で生じる動きベクトルは、画面全体のグローバルな動きを反映していると考えられる。したがって、このような場合には、領域1216の画素を領域1226の画素ではなく、領域1225と領域1227に挟まれた領域1228を用いて生成してもよい。このように、参照ピクチャの左辺について、隣接する境界ブロックの動き情報を用いて、処理対象の境界ブロックの動き補償画素補間の補正処理を実行する場合には、参照ピクチャの左辺の補正処理の実行を示すフラグとして1を符号化し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を符号化してもよい。なお、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合についても、前述の境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成してもよい。その場合、さらに、参照ピクチャの右辺の補正処理の実行を示すフラグとして1を符号化し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を符号化してもよい。或いは、参照ピクチャの上辺の補正処理の実行を示すフラグとして1を符号化し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を符号化してもよい。参照ピクチャの下辺の補正処理の実行を示すフラグとして1を符号化し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を符号化してもよい。このように、参照ピクチャの各辺について補正処理の有無を制御することで、補正処理により補間精度が向上する辺のみに補間処理の実行を限定することが可能となる。このように処理することで、画面境界外において補間した画素の補間精度が向上し、符号化対象のサブブロックの予測誤差信号を効率よく符号化可能となる。
なお、本実施形態では、各境界ブロックの動き情報に基づき、参照ピクチャの画面境界内の内側に接するすべての境界ブロックの各々について、動き補償画素補間を用いて参照ピクチャの画面境界外に位置する画素を生成すると説明したが、本実施形態はこれに限定されない。参照ピクチャの周囲の各辺について、四隅の境界ブロックに隣接する各矩形領域に挟まれる矩形領域について、一括して画面境界外の画素を生成してもよい。図13(a)、(b)を参照して具体例を説明する。
図13(a),(b)の太枠1311は参照ピクチャの画面境界であり、細枠1310が、参照ピクチャ1311の境界外の領域を表す。また、境界ブロック1312、1313の左辺が、参照ピクチャの左辺に内側から接している。また、各境界ブロックに対応する領域1314、1315は、動き補償画素補間により、参照ピクチャよりも前に符号化されたピクチャを解像度変換して得られる解像度変換済み補間用画像1321の画面境界内に位置する画素を用いて生成されている。そして、領域1314,1315は、それぞれの右辺が参照ピクチャの左辺に外側から接している。まず左上隅、右上隅、左下隅、右下隅に位置する境界ブロックについて動き補償画素補間を実行する。続いて、参照ピクチャ1311の内側に位置する各境界ブロックのうち左上隅、右上隅、左下隅、右下隅に位置する境界ブロック以外の各境界ブロックについて、左上から右下に向けて順次、各境界ブロックの予測情報に基づいて、解像度変換済み補間用画像1321の画面境界内に位置するインター予測に用いた解像度変換済み補間用画像1321の矩形領域を特定する。図13では、境界ブロック1312、1313に対応するインター予測に用いられた領域を、予測ブロック1322、1323で表し、各々の予測ブロックに隣接する矩形領域1324、1325が、参照ピクチャの画面領域外の画素群である領域1314、1315の生成に使われるとする。さらに、領域1312と領域1314の動きベクトルが同一であるとする。
図13(a)の場合、境界ブロック1312と境界ブロック1313の動きベクトルが同一であり、領域1314と領域1315との相対位置関係が、領域1324と領域1325との相対位置関係と一致している。スケーリングウィンドウを設定するズームシーンでは、解像度変換により画面内のオブジェクトが同等の大きさに拡大又は縮小されているため、インター予測で生じる動きベクトルは、画面全体のグローバルな動きを反映していると考えられる。したがって、このような場合には、領域1324と領域1325に挟まれた領域1326を用いて領域1316の領域を生成してもよい。このように、境界ブロック1312と境界ブロック1313に挟まれる境界ブロックの各々について動き補償画素補間を実行することなく、参照ピクチャの画面境界の左方に位置する画素を補間する一括した補間処理を実行する場合には、一括した補間処理の実行を示すフラグとして1を符号化し、一括した補間処理を実行しない場合には、一括した補間処理を実行しないフラグとして0を符号化してもよい。
図13(b)の場合、境界ブロック1312と境界ブロック1313の動きベクトルが同一であり、領域1314と領域1315との相対位置関係が、領域1324と領域1325との相対位置関係と一致している。スケーリングウィンドウを設定するズームシーンでは、解像度変換により画面内のオブジェクトが同等の大きさに拡大又は縮小されているため、インター予測で生じる動きベクトルは、画面全体のグローバルな動きを反映していると考えられる。したがって、このような場合には、領域1324と領域1325に挟まれた領域1326を用いて領域1316の領域を生成してもよい。ただし、図13(b)の場合は、領域1326に含まれる画素群の一部は、解像度変換済み補間用画像1321の画面境界外の画素であるので、この場合は、領域1326と解像度変換済み補間用画像1321の領域が重なる領域に含まれる画素のみを領域1316に複製してもよい。また、領域1316のうち、複製された画素以外の画素は、前述の単純反復画素補間を用いて画素を補間してもよい。このように、境界ブロック1312と境界ブロック1313に挟まれる境界ブロックの各々について動き補償画素補間を実行することなく、参照ピクチャの画面境界の左方に位置する画素を補間する一括補間処理を実行する場合には、一括した補間処理の実行を示すフラグとして1を符号化し、一括した補間処理を実行しない場合には、一括した補間処理を実行しないフラグとして0を符号化してもよい。
なお、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合についても、前述の境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成してもよい。その場合、さらに、参照ピクチャの右辺の補正処理の実行を示すフラグとして1を符号化し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を符号化してもよい。或いは、参照ピクチャの上辺の補正処理の実行を示すフラグとして1を符号化し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を符号化してもよい。参照ピクチャの下辺の補正処理の実行を示すフラグとして1を符号化し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を符号化してもよい。このように、参照ピクチャの各辺について補正処理の有無を制御することで、補正処理により補間精度が向上する辺のみに補間処理の実行を限定することが可能となる。
このように処理することで、すべての境界ブロックではなく、参照ピクチャの四隅に位置する境界ブロックの処理結果に基づいて、そのほかの境界ブロックの動き補償画素補間の実行を制御可能となり、一括した画素補間を実行する場合においてより少ない処理量で参照ピクチャの画面境界の外側の画素を生成可能になる。
なお、本実施形態では画像データがフレーム単位で入力されて、符号化処理をしてビットストリームを生成し出力する構成としたが、符号化処理の対象は画像データに限定されない。例えば、物体認識などの機械学習に用いられる特徴量データを2次元の形状で入力し、符号化処理をしてビットストリームを符号化する構成としてもよい。これにより、機械学習に用いられる特徴量データを効率よく符号化すること可能となる。
[第2の実施形態]
上記第1の実施形態の画像符号化装置が出力した符号データ(ビットストリーム)を復号する画像復号装置を第2の実施形態として説明する。
図2は、第2の実施形態における画像復号装置の構成を示すブロック構成図である。制御部200は、CPU、及び、CPUが実行するプログラムを格納するメモリで構成され、装置全体の制御を司る。
端子201は、符号化されたビットストリームを入力する入力端子である。分離復号部202は、端子201を介して入力したビットストリームから復号処理に関する情報や残差係数に関する符号データに分離する。また、分離復号部202は、ビットストリームのヘッダ部に存在する符号データを復号する。本実施形態の分離復号部202は、解像度変換制御情報を復号し、後段に出力する。分離復号部202は、図1の統合符号化部111と逆の動作を行うと考えると分かり易い。
復号部203は、分離復号部202から出力された符号データを復号することで、残差係数および予測情報を取得する。
逆量子化・逆変換部204は、ブロック単位で入力された残差係数に対して逆量子化を行い、さらに逆直交変換を行うことにより予測誤差を取得する。
フレームメモリ206は、再生されたピクチャの画像データを格納するメモリである。
画像再生部205は、復号部203から入力された予測情報と、補間部210から入力される補間画像データを用いて予測画像データを生成する。そして、画像再生部205は、この予測画像データと逆量子化・逆変換部204で再生された予測誤差データから再生画像データを生成し、出力する。
インループフィルタ部207は、図1のインループフィルタ部109同様、再生画像に対し、デブロッキングフィルタなどのインループフィルタ処理を行い、フィルタ処理された画像を出力する。
解像度変換部209は、フレームメモリ206に格納されたフィルタ画像を解像度変換制御情報に基づいて拡大又は縮小し、解像度変換画像を生成し、解像度変換画像として出力する。
補間部210は、解像度変換部209が出力する解像度変換画像と、復号部203が出力する予測情報と、フレームメモリ206に格納されたフィルタ画像を適宜参照し、補間画像データを生成する。そして、補間部210は、生成した補間画像データを画像再生部205に出力する。なお、補間部210は、生成した画面外画素の情報を含む画像データを補間画像としてフレームメモリ206に格納してもよい。また、補間部210は、フレームメモリ206から生成済みの補間画像を取り出し、画像生成部205に出力してもよい。
フレームメモリ206に格納された現フレームの画像データは、端子208を介して外部に出力される。
上記画像復号装置における画像の復号動作を以下に説明する。本実施形態の画像復号装置は、第1の実施形態の画像符号化装置で生成されたビットストリームを復号する。

図2において、制御部200は画像復号装置全体を制御するプロセッサであり、端子201から入力されたビットストリームは分離復号部202に入力される。
分離復号部202は、ビットストリームから復号処理に関する情報や係数に関する符号データに分離し、ビットストリームのヘッダ部に存在する符号データを復号する。具体的には、分離復号部202は、まず、図6(a)に示されるビットストリームのピクチャヘッダから解像度変換制御情報を復号する。そして、分離復号部202は、復号して得た解像度変換制御情報を解像度変換部209に出力する。さらに、分離復号部202は、ピクチャデータのブロック単位の符号データを復号部203に出力する。なお、復号した解像度変換制御情報は、現ピクチャの水平サイズ及び垂直サイズと、現ピクチャのスケーリングウィンドウを表すオフセット情報が含まれている。オフセット情報は、現ピクチャの左辺、右辺、上辺、下辺の各辺からの距離に対応するオフセットである。各辺に対するオフセットは、画素数で表現される。また、同オフセットは、ピクチャの画面境界から中心に向けて正の値で表され、画面境界から外に向けて負の値で表される。現ピクチャに対する参照ピクチャの拡大率又は縮小率を表す解像度変換倍率を水平方向と垂直方向についてそれぞれ算出する。水平、及び、垂直方向の解像度変換倍率は次式に従ってえられる。
・水平方向の解像度変換倍率=(参照ピクチャの水平サイズ-左辺オフセットR-右辺オフセットR)/(現ピクチャの水平サイズ-左辺オフセットC-右辺オフセットC)
・垂直方向の解像度変換倍率=(参照ピクチャの垂直サイズ-上辺オフセットR-下辺オフセットR)/(現ピクチャの垂直サイズ-上辺オフセットC-下辺オフセットC)
分離復号部202は、上式に従って、現ピクチャの復号において参照可能なすべての参照ピクチャについて、現ピクチャに対する解像度変換倍率を算出する。
復号部203は、符号データを復号し、残差係数、予測情報および量子化パラメータを取得する。そして、復号部203は、残差係数や量子化パラメータを逆量子化・逆変換部204に出力し、取得された予測情報を画像再生部205に出力する。
逆量子化・逆変換部204は、入力された残差係数に対し逆量子化を行って直交変換係数を生成する。更に、逆量子化・逆変換部204は、生成した直交変換係数に対して逆直交変換を施して予測誤差を再生する。なお、逆量子化・逆変換部204による各サブブロックの逆量子化で用いる量子化パラメータは、符号化側で用いた量子化パラメータと同じである。逆量子化・逆変換部204は、取得した予測情報を画像再生部205に出力する。
画像再生部205は、補間部210から入力される画面境界外の画素が生成済みの補間画像と、復号部203から入力された予測情報に基づいて予測画像を生成する。そして、画像再生部205は、この予測画像と、逆量子化・逆変換部204から入力された予測誤差から画像データを再生し、再生した画像データをフレームメモリ206に格納する。フレームメモリ206に格納された画像データは、後続する復号対象のサブブロックを復号時の予測の際の参照に用いられる。
本実施形態では、予測画像の生成において参照ピクチャの画面境界外の画素が、単純複製画素補間、或いは、参照ピクチャの解像度変換を伴うインター予測における動き補償画素補間を用いて生成されている。具体的な生成方法について、図10Aおよび図10Bを参照して説明する。図10Aおよび図10Bは、復号部203が、復号対象サブブロック1002をインター予測により復号する場合を表している。太枠1001は、復号対象である現ピクチャであり、太枠1011は、現ピクチャのサブブロックが参照する参照ピクチャである。細枠1010は、参照ピクチャ1011の画面境界外の画素を有する領域であり、単純複製画素補間或いは動き補償画素補間により画面境界外の画素が生成されている。参照ピクチャ1011の矩形領域1012は、画像再生部205が予測情報に基づいて特定した、復号対象サブブロック1002の予測ブロックを表している。境界ブロック1013の左辺と境界ブロック1014の左辺は、参照ピクチャ1011の左辺に内側から接している。また、境界ブロック1013と境界ブロック1014の予測モードが、インター予測であるとする。また、矩形領域1015と矩形領域1016は、単純複製画素補間或いは動き補償画素補間により生成された画素で満たされている。なお、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合がある。また、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合がある。更にまた、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合がある。いずれの場合でも、補間部210は、境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、単純複製画素補間或いは動き補償画素補間を用いて参照ピクチャ1011の画面境界外の画素を生成する。また、補間部210は、動き補償画素補間を用いる場合、動き補償画素補間を用いて生成しない参照ピクチャの画面境界外の画素を、参照ピクチャの画面境界の画素を用いて単純複製画素補間により生成する。そして、補間部210は、各境界ブロックの動き補償画素補間では、各境界ブロックの動き情報に基づき、参照ピクチャの画面境界内の内側に接するすべての境界ブロックの各々について、動き補償画素補間を用いて参照ピクチャの画面境界外に位置する画素を生成する。さらに、補間部210は、各境界ブロックの処理おいて、他の境界ブロックの動き情報を参照せずに参照ピクチャの画面境界外に位置する画素を生成する。
図10Aの場合、ピクチャ1021は、参照ピクチャ1011の境界ブロックのインター予測に使用されているフィルタ画像であり、フレームメモリ206から取り出したピクチャである。さらに、そのピクチャ1021の画面境界内の画素値が、動き補償画素補間により、参照ピクチャ1011の画面境界外の画素の生成に利用されるピクチャである(以降、補間用画像と呼称する)。補間用画像1021と参照ピクチャ1011には、スケーリングウィンドウが設定されておらず、すべてのオフセットが0である。そのため、解像度変換倍率は水平、垂直方向とも1であり、境界ブロック1013のインター予測において、補間用画像1021を解像度変換する必要がない。結果として、予測画像1012の内側に位置する境界ブロック1013に対応する予測ブロック1023は、補間用画像1021の画面境界の内側に位置している。同様に、予測画像1012の内側に位置する境界ブロック1014に対応する予測ブロック1024は、補間用画像1021の画面境界の内側に位置している。したがって、補間部210は補間用画像1021の矩形領域1025の画素群を用いて、参照ピクチャの画面境界外に位置する矩形領域1015の画素を生成する。同様に、補間部210は、補間用画像1021の矩形領域1026の画素群を用いて、参照ピクチャの画面境界外に位置する矩形領域1016の画素を生成する。したがって、補間部210は、サブブロック1002のインター予測により参照された参照ピクチャ1011の予測ブロック1012を構成する参照ピクチャの画面境界外の画素を、補間用画像1021の画面境界内の画素を用いて動き補償画素補間により生成する。さらに補間部210は、参照ピクチャ1011のすべての境界ブロックについて、動き補償画素補間を実行して生成した参照ピクチャの画面境界外が補間済みである参照ピクチャを補間画像としてフレームメモリ206に格納する。
図10Bの場合、補間用画像1021と参照ピクチャ1011に設定されたスケーリングウィンドウのオフセットのいずれかが0以外である。すなわち、境界ブロック1013のインター予測において、補間用画像1021を解像度変換する必要がある。そのため、予測画像1012の内側に位置する境界ブロック1013に対応する予測ブロック1023は、補間用画像1021ではなく、補間用画像1021と参照ピクチャ1011のオフセット情報に基づき解像度変換した解像度変換済み補間用画像の画面境界の内側に位置している。同様に、予測画像1012の内側に位置する境界ブロック1014に対応する予測ブロック1024は、補間用画像1021ではなく、解像度変換済み補間用画像1022の画面境界の内側に位置している。
ここで、補間用画像1021から解像度変換済み補間用画像1022を生成する処理について説明する。説明を簡易にするために、補間用画像1021には、スケーリングウィンドウが設定され、現ピクチャ1001及び参照ピクチャ1011にはスケーリングウィンドウが設定されていないとする。ただし、これに限定されず、現ピクチャ1001及び参照ピクチャ1011にスケーリングウィンドウが設定されてもよい。図10Bの例では、参照ピクチャ1011と補間用画像1021の水平サイズが1920画素、垂直サイズが1080画素である。また、補間用画像1021に設定された左辺オフセットと右辺オフセットがそれぞれ240画素、上辺オフセットと下辺オフセットがそれぞれ135画素とする。また、参照ピクチャ1011の四辺のオフセットはそれぞれ0画素である。この場合、解像度変換倍率は前述の計算式を用いて水平方向及び垂直方向について0.75となる。したがって、解像度変換済み補間用画像1022は、補間用画像1021を0.75の逆数である4/3倍に拡大した画像である。このように、参照ピクチャ1011と補間用画像1021に設定されたオフセット情報に基づいて、解像度変換済み補間用画像1022は、補間用画像1021から生成されている。
図10Bにおいて、参照ピクチャ1011の矩形領域1012は、画面再生部205がインター予測によって生成した復号対象サブブロック1002の予測ブロックを表している。また、矩形領域1012に含まれる参照ピクチャ1011の境界ブロック1013及び1014の予測モードがインター予測であり、解像度変換済み補間用画像1022の画面境界内の領域1023及び1024に対して動きベクトルが発生している。また、境界ブロック1013及び1014の左辺は参照ピクチャ1011の左辺に内側から接している。このとき、参照ピクチャ1011の境界ブロックが本来参照する補間用画像1021、又は、参照ピクチャ1011のいずれかにはオフセットが設定されている。このため、境界ブロック1013及び1014のインター予測に用いられている予測画像は、補間用画像1021ではなく、補間用画像1021を前述のとおりに解像度変換した解像度変換済み補間用画像1022である。そのため、境界ブロック1013に対応する予測ブロック1023は、解像度変換済み補間用画像1022の画面境界の内側に位置している。また同様に、境界ブロック1014に対応する予測ブロック1024も解像度変換済み補間用画像1022の画面境界の内側に位置している。さらに、矩形領域1012の一部の画素群は、参照ピクチャ1011の画面境界外の画素で構成される矩形領域1015及び矩形領域1016の画素である。矩形領域1015及び矩形領域1016の画素は、前述の単純複製画素補間或いは動き補償画素補間を用いて生成されている。具体的には、境界ブロック1013の左方に位置する矩形領域1015の画素群が、境界ブロック1013が参照する解像度変換済み補間用画像1022の画面境界内に位置する矩形領域1025を用いて生成されている。同様に、境界ブロック1014の左方に位置する矩形領域1016の画素群が、境界ブロック1014が参照する解像度変換済み補間用画像1022の画面境界内に位置する矩形領域1026を用いて生成されている。したがって、補間部210は、サブブロック1002のインター予測により参照された参照ピクチャ1011の予測ブロック1012を構成する参照ピクチャの画面境界外の画素を、解像度変換済み補間用画像1022の画面境界内の画素を用いて動き補償画素補間により生成する。さらに補間部210は、参照ピクチャ1011のすべての境界ブロックについて、動き補償画素補間を実行して生成した参照ピクチャの画面境界外が補間済みである参照ピクチャを補間画像としてフレームメモリ206に格納する。
インループフィルタ部207は、図1の符号化装置におけるインループフィルタ109と同様、フレームメモリ206から再生画像を読み出し、デブロッキングフィルタやサンプルアダプティブオフセットなどのインループフィルタ処理を行う。そして、インループフィルタ部207は、フィルタ処理後の画像を再びフレームメモリ206に格納し、更新する。
解像度変換部209は、フレームメモリ206に格納された画像を解像度変換制御情報に基づいて拡大又は縮小する。そして、解像度変換部209は、拡大又は縮小後の画像を、解像度変換画像として出力する。解像度変換に用いる解像度変換フィルタは特に限定しないが、ユーザが一つ以上の解像度変換フィルタを入力してもよいし、初期値として予め指定されたものを使用してもよい。また、解像度変換部209は、オフセット情報を用いて算出される解像度変換倍率に応じて複数の解像度変換フィルタを切り替えて解像度変換画像を生成してもよい。
補間部210は、解像度変換部209が出力する解像度変換画像と、復号部203が出力する予測情報と、フレームメモリ206に格納されたフィルタ画像を適宜参照し、分離復号部202が復号した動き補償画素補間の実行を示すフラグの値に応じて、単純複製画素補間或いは動き補償画素補間を用いて現ピクチャの画面境界外の画素を補間した画像データを生成する。具体的には、復号したフラグが1である場合、補間部210は、画面境界外の画素を動き補償画素補間により画像データを生成する。復号したフラグが0である場合、補間部210は、画面境界外の画素を単純複製画素補間により画像データを生成する。そして、補間部210は、生成した画像データを補間画像として画像再生部205に出力する。また、生成した画像データにフィルタ画像の画面外画素の情報が含まれる場合、補間部210は、生成した画面外画素の情報を含む画像データを補間画像としてフレームメモリ206に出力してもよい。単純複製画素補間及び動き補償画素補間の処理の詳細は、第1の実施形態の画像符号化装置と同じであるため説明を省略する。
フレームメモリ206に格納された再生画像は、最終的には端子208から外部に出力される。
図4は、本実施形態における画像復号装置の画像の復号処理を示すフローチャートである。
S401にて、分離復号部202は、入力したビットストリームからヘッダ部分の符号データを復号し、解像度変換制御情報を取得する。また、分離復号部202は、復号処理に関する情報や係数に関する符号データに分離する。本実施形態では、解像度変換に関する情報として、復号対象である現ピクチャの水平サイズ及び垂直サイズと、現ピクチャのオフセット情報を復号する。具体的には、分離復号部202は、解像度変換制御情報として、現ピクチャの水平画素数と垂直画素数、オフセット情報として、左辺オフセット、右辺オフセット、上辺オフセット、下辺オフセットを復号する。各オフセットは画素数であり、正負を表す符号を有する。また、分離復号部202は、動き補償画素補間の実行を示すフラグも復号する。すなわち、動き補償画素補間を実行する場合には、フラグとして1が復号され、動き補償画素補間を実行しない場合には0が復号される。
S402にて、復号部203は、S401で分離された符号データを復号し、ブロックの分割情報、残差係数、予測情報および量子化パラメータを取得する。
S403にて、逆量子化・逆変換部204は、サブブロック単位で残差係数に対し逆量子化を行い、さらに逆直交変換を行うことにより、予測誤差を取得する。
S404にて、画像再生部205は、S402で取得された予測情報に基づいて予測画像を生成する。更に、画像再生部205は、生成された予測画像と、S403で生成された予測誤差から画像データを再生し、フレームメモリ206に格納する。
S405にて、画像復号装置の制御部200は、フレーム内の全てのブロックの復号が終了したか否かの判定を行う。制御部200は、全ブロックの復号が終了していると判定した場合は処理をS406に進める。制御部200は、未だ復号していないブロックが存在すると判定した場合は、そのブロックを対象とする復号処理を行うため、処理をS402に戻す。
S406にて、インループフィルタ部207は、S404で再生された画像データに対し、インループフィルタ処理を行い、フィルタ処理された画像を生成し、フレームメモリ206に再格納する。
S407にて、解像度変換部209は、現ピクチャのフィルタ画像と、現ピクチャの境界ブロックがインター予測で参照する参照ピクチャをフレームメモリ206から取り出し、また、分離復号部202から供給される解像度変換制御情報を用いて、参照ピクチャを拡大又は縮小し、解像度変換画像を生成する。
続いて補間部210は、現ピクチャのフィルタ画像の境界ブロックに隣接する、現ピクチャのフィルタ画像の画面境界外に位置する画素群を、単純複製画素補間、或いは、動き補償画素補間を用いて生成する。補間部210は、各境界ブロックについて、動き補償画素補間を用いる場合には、解像度変換画像の画面境界内に位置する画素を用いて画面境界外の画素を生成する。そして、補間部210は、画面境界外の画素が生成された補間画像をフレームメモリ206に格納し、処理を終了する。
以上の構成と動作により、解像度変換制御情報に基づいて参照ピクチャを拡大又は縮小することで、動き補償画素補間における予測画像の生成精度を向上させることができ、さらには、そのような予測画像を用いることで予測誤差信号をより少ない符号量で表現したビットストリームを復号することができる。
なお、本実施形態では、動き補償画素補間を用いて生成しない参照ピクチャの画面境界外の画素を、参照ピクチャの画面境界内の画素を用いて生成するとしたが、これに限定されない。参照ピクチャの画面境界から最も遠い場所に位置する画面境界外の動き補償画素補間により算出した画素を終端画素とし、その終端画素をさらに複製してもよいし、或いは、終端画素と、単純複製画素補間で用いる画面境界内側の画素との平均値をさらに複製してもよい。図11を用いて、具体的な例を説明する。
図11の太枠1101は、参照ピクチャであり、細枠1102は、参照ピクチャの画面境界外の領域を表している。領域1103は境界ブロックであり、境界ブロックの左辺が参照ピクチャの左辺に内側から接している。領域1104は、動き補償画素補間により、参照ピクチャよりも前に復号されたピクチャの画素を用いて生成されており、その右辺が参照ピクチャの左辺に外側から接している。領域1104の内部は、0~9の番号を有する10個の画素で満たされている。このうち、画素0と画素5が終端画素である。この場合において、領域1104の外側に位置する画素Yは、画素Vと同じ値でもよいし、終端画素0と同じ値でもよい。あるいは、画素Vと終端画素0の平均値を用いてもよい。あるいは、画素Vが存在する境界ブロックの左辺の法線上の画素群で、前記法線上の画素群で、領域1103に含まれる画素Vを含む画素群の平均値、中央値、最大値、最小値のいずれかを用いて画素Yを算出してもよい。或いは、領域1104に含まれる画素群、すなわち、画素0~4の平均値、中央値、最大値、最小値、のいずれかを用いて画素Yを算出してもよい。或いは、前記法線上の画素群で領域1103と領域1104を含む画素群の平均値、中央値、最大値、最小値、のいずれかを用いて画素Yを算出してもよい。さらには、前記領域1104の画素群を用いて算出した値と、前記領域1103の画素群を用いて算出した値の平均値、中央値、最大値、最小値のいずれかを用いて画素Yを算出してもよい。また同様に、画素Zを画素Wが存在する境界ブロックの左辺の法線上の画素を用いて算出してもよい。結果として、算出に用いる画素群の特性に応じて平均値、中央値、最大値、最小値を選択することで精度よく補間画素を生成できる。すなわち、算出に用いる画素群の画素値が変動している場合には平均値を用いることで変動の影響を受けない精度の高い画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。また、算出に用いる画素群のうち、単純複製画素補間で用いる画面境界内側の画素又は終端画素の値が、他の値より著しく小さな値の場合には最大値を用い、また、単純複製画素補間で用いる画面境界内側の画素又は終端画素の値が、他の値より著しく大きい値の場合には最小値を用いることで、局所的なノイズの影響を避けることができる。なお、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合についても、前述の境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成してもよい。このように、動き補償補間により生成された画素群の値を考慮して、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成することで、画面境界外において補間した画素同士の不連続性が低減され、符号化対象のサブブロックの予測誤差信号をより少ない符号量で表現したビットストリームを復号可能となる。
また、本実施形形態ではさらに、左上、右上、左下、右下の領域における画素は、参照ピクチャの画面境界内の四隅に位置する画素を用いて生成するとしたが、これに限定されない。参照ピクチャの四隅の画素の外側に位置する画素を用いて算出してもよい。図11を用いて、具体的な例を説明する。図11の各矩形領域は前述の説明と同じであるから説明を省略する。ただし、領域1111は、参照ピクチャ1101の左上隅に位置する境界ブロック1105がインター予測により参照している補間用画像であり、領域1115は、境界ブロック1105に対応する予測ブロックである。
参照ピクチャ1101の左上隅の画素Aに対して、画素10、12、20、24の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素11、21、22、23は、補間用画像1111の画素11、21、22、23から生成してもよい。これにより、画素Aを単純複製するよりも精度よく参照ピクチャの左上に位置する画素を生成できる。或いは、画素10と画素12の平均値を用いて、画素11を生成してもよい。或いは、画素10と画素12と画素Aの平均値、中央値のいずれかの値を用いて、画素11を生成してもよい。また、画素20と画素24の平均値を用いて、画素21~画素23を生成してもよい。或いは、画素20と画素24と画素Aの平均値、中央値のいずれかの値を用いて、画素21~画素23を生成してもよい。平均値を用いることで参照ピクチャ左方と上方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
参照ピクチャ1101の右上隅の画素Kに対して、画素50、52、60、64の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素51、61、62、63は、補間用画像1111の画素51、61、62、63から生成してもよい。これにより、画素Kを単純複製するよりも精度よく参照ピクチャの右上に位置する画素を生成できる。或いは、画素50と画素52の平均値を用いて、画素51を生成してもよい。或いは、画素50と画素52と画素Kの平均値、中央値のいずれかの値を用いて、画素51を生成してもよい。また、画素60と画素64の平均値を用いて、画素61~画素63を生成してもよい。或いは、画素60と画素64と画素Kの平均値、中央値のいずれかの値を用いて、画素61~画素63を生成してもよい。平均値を用いることで参照ピクチャ上方と右方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
参照ピクチャ1101の左下隅の画素Fに対して、画素30、32、40、44の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素31、41、42、43は、補間用画像1111の画素31、41、42、43から生成してもよい。これにより、画素Fを単純複製するよりも精度よく参照ピクチャの左上に位置する画素を生成できる。或いは、画素30と画素32の平均値を用いて、画素31を生成してもよい。或いは、画素30と画素32と画素Fの平均値、中央値のいずれかの値を用いて、画素31を生成してもよい。また、画素40と画素44の平均値を用いて、画素41~画素43を生成してもよい。或いは、画素40と画素44と画素Fの平均値、中央値のいずれかの値を用いて、画素41~画素43を生成してもよい。平均値を用いることで参照ピクチャ左方と下方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
参照ピクチャ1101の右下隅の画素Pに対して、画素70、72、80、84の各画素が動き補償画素補間により生成されているとする。この場合、参照ピクチャ1101の画素71、81、82、83は、補間用画像1111の画素71、81、82、83から生成してもよい。これにより、画素Pを単純複製するよりも精度よく参照ピクチャの左上に位置する画素を生成できる。或いは、画素70と画素72の平均値を用いて、画素71を生成してもよい。或いは、画素70と画素72と画素Pの平均値、中央値のいずれかの値を用いて、画素71を生成してもよい。また、画素80と画素84の平均値を用いて、画素81~画素83を生成してもよい。或いは、画素80と画素84と画素Pの平均値、中央値のいずれかの値を用いて、画素81~画素83を生成してもよい。平均値を用いることで参照ピクチャ右方と下方の信号の状態を反映した画素を生成でき、中央値を用いる場合は、外れ値の影響を受けない画素を生成できる。
このように、動き補償補間により生成された画素群の値を考慮して、動き補償画素補間を用いて生成した画素群に囲まれる参照ピクチャの左上、右上、左下、右下に位置する画素を生成することで、画面境界外において補間した画素同士の不連続性が低減され、符号化対象のサブブロックの予測誤差信号をより少ない符号量で表現したビットストリームを復号可能となる。
なお、本実施形態では、各境界ブロックの動き情報に基づき、他の境界ブロックの動き情報を参照せずに参照ピクチャの画面境界外に位置する画素を生成すると説明したが、本実施形態はこれに限定されない。処理対象の境界ブロックの上下、又は、左右に位置する境界ブロックの動き情報を参照して動き補償画素補間を実行してもよい。図12を用いて具体例を説明する。太枠1211は参照ピクチャの画面境界であり、細枠1210が、参照ピクチャ1211の境界外の領域を表す。また、境界ブロック1212、1213、1214の左辺が、参照ピクチャの左辺に内側から接している。境界ブロック1212,1213,1214それぞれに対応する領域1215、1216、1217は、動き補償画素補間により、参照ピクチャよりも前に復号されたピクチャを解像度変換して得られる解像度変換済み補間用画像1221の画面境界内に位置する画素を用いて生成されており、それぞれの右辺が参照ピクチャの左辺に外側から接している。参照ピクチャ1211の内側に位置する各境界ブロックを、左上から右下に向けて順次、各境界ブロックの予測情報に基づいて、解像度変換済み補間用画像1221の画面境界内に位置するインター予測に用いた解像度変換済み補間用画像1221の矩形領域を特定する。図12では、境界ブロック1212、1213、1214に対応するインター予測に用いられた領域を、ブロック1222、1223、1224で表し、各々のブロックに隣接する矩形領域1225、1226、1227が、参照ピクチャの画面領域外の画素群である領域1215、1216、1217の生成に使われるとする。さらに、領域1212と領域1214の動きベクトルが同一であるとする。この場合、境界ブロック1213の動き情報が指し示すインター予測に用いられた領域である領域1223は、境界ブロック1222と1224に隣接していない。一方、領域1212と領域1214の動きベクトルが同一であり、領域1212と領域1214との相対位置関係が、領域1222と領域1224との相対位置関係と一致している。スケーリングウィンドウを設定するズームシーンでは、解像度変換により画面内のオブジェクトが同等の大きさに拡大又は縮小されているため、インター予測で生じる動きベクトルは、画面全体のグローバルな動きを反映していると考えられる。したがって、このような場合には、領域1216の画素を領域1226の画素ではなく、領域1225と領域1227に挟まれた領域1228を用いて生成してもよい。このように、参照ピクチャの左辺について、隣接する境界ブロックの動き情報を用いて、処理対象の境界ブロックの動き補償画素補間の補正処理を実行する場合には、参照ピクチャの左辺の補正処理の実行を示すフラグとして1を復号し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を復号してもよい。
なお、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合についても、前述の境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成してもよい。さらに、参照ピクチャの右辺の補正処理の実行を示すフラグとして1を復号し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を復号してもよい。或いは、参照ピクチャの上辺の補正処理の実行を示すフラグとして1を復号し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を復号してもよい。参照ピクチャの下辺の補正処理の実行を示すフラグとして1を復号し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を復号してもよい。このように、参照ピクチャの各辺について補正処理の有無を制御することで、補正処理により補間精度が向上する辺のみに補間処理の実行を限定することが可能となる。このように処理することで、画面境界外において補間した画素の補間精度が向上し、符号化対象のサブブロックの予測誤差信号をより少ない符号量で表現したビットストリームを復号可能となる。
なお、本実施形態では、各境界ブロックの動き情報に基づき、参照ピクチャの画面境界内の内側に接するすべての境界ブロックの各々について、動き補償画素補間を用いて参照ピクチャの画面境界外に位置する画素を生成すると説明したが、これに限定されない。参照ピクチャの周囲の各辺について、四隅の境界ブロックに隣接する各矩形領域に挟まれる矩形領域について、一括して画面境界外の画素を生成してもよい。図13(a)、(b)を用いて具体例を説明する。図13(a)、(b)の太枠1311は参照ピクチャの画面境界であり、細枠1310が、参照ピクチャ1311の境界外の領域を表す。また、境界ブロック1312、1313の左辺が、参照ピクチャの左辺に内側から接しており、各境界ブロックに対応する領域1314、1315は、動き補償画素補間により、参照ピクチャよりも前に復号されたピクチャを解像度変換して得られる解像度変換済み補間用画像1321の画面境界内に位置する画素を用いて生成されており、それぞれの右辺が参照ピクチャの左辺に外側から接している。まず左上隅、右上隅、左下隅、右下隅に位置する境界ブロックについて動き補償画素補間を実行する。続いて、参照ピクチャ1311の内側に位置する各境界ブロックのうち左上隅、右上隅、左下隅、右下隅に位置する境界ブロック以外の各境界ブロックについて、左上から右下に向けて順次、各境界ブロックの予測情報に基づいて、解像度変換済み補間用画像1321の画面境界内に位置するインター予測に用いた解像度変換済み補間用画像1321の矩形領域を特定する。図13では、境界ブロック1312、1313に対応するインター予測に用いられた領域を、予測ブロック1322、1323で表し、各々の予測ブロックに隣接する矩形領域1324、1325が、参照ピクチャの画面領域外の画素群である領域1314、1315の生成に使われるとする。さらに、領域1312と領域1314の動きベクトルが同一であるとする。
図13(a)の場合、境界ブロック1312と境界ブロック1313の動きベクトルが同一であり、領域1314と領域1315との相対位置関係が、領域1324と領域1325との相対位置関係と一致している。スケーリングウィンドウを設定するズームシーンでは、解像度変換により画面内のオブジェクトが同等の大きさに拡大又は縮小されているため、インター予測で生じる動きベクトルは、画面全体のグローバルな動きを反映していると考えられる。したがって、このような場合には、領域1324と領域1325に挟まれた領域1326を用いて領域1316の領域を生成してもよい。このように、境界ブロック1312と境界ブロック1313に挟まれる境界ブロックの各々について動き補償画素補間を実行することなく、参照ピクチャの画面境界の左方に位置する画素を補間する一括した補間処理を実行する場合には、一括した補間処理の実行を示すフラグとして1を復号し、一括した補間処理を実行しない場合には、一括した補間処理を実行しないフラグとして0を復号してもよい。
図13(b)の場合、境界ブロック1312と境界ブロック1313の動きベクトルが同一であり、領域1314と領域1315との相対位置関係が、領域1324と領域1325との相対位置関係と一致している。スケーリングウィンドウを設定するズームシーンでは、解像度変換により画面内のオブジェクトが同等の大きさに拡大又は縮小されているため、インター予測で生じる動きベクトルは、画面全体のグローバルな動きを反映していると考えられる。したがって、このような場合には、領域1324と領域1325に挟まれた領域1326を用いて領域1316の領域を生成してもよい。ただし、図13(b)の場合は、領域1326に含まれる画素群の一部は、解像度変換済み補間用画像1321の画面境界外の画素であるので、この場合は、領域1326と解像度変換済み補間用画像1321の領域が重なる領域に含まれる画素のみを領域1316に複製してもよい。また、領域1316のうち、複製された画素以外の画素は、前述の単純反復画素補間を用いて画素を補間してもよい。このように、境界ブロック1312と境界ブロック1313に挟まれる境界ブロックの各々について動き補償画素補間を実行することなく、参照ピクチャの画面境界の左方に位置する画素を補間する一括補間処理を実行する場合には、一括した補間処理の実行を示すフラグとして1を復号し、一括した補間処理を実行しない場合には、一括した補間処理を実行しないフラグとして0を復号してもよい。
なお、境界ブロックの上辺が参照ピクチャの上辺に内側から接する場合、境界ブロックの右辺が参照ピクチャの右辺に内側から接する場合、境界ブロックの下辺が参照ピクチャの下辺に内側から接する場合についても、前述の境界ブロックの左辺が参照ピクチャの左辺に内側から接する場合と同様に、動き補償画素補間を用いて生成した画素群の外側に位置する画素を生成してもよい。その場合、さらに、参照ピクチャの右辺の補正処理の実行を示すフラグとして1を復号し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を復号してもよい。或いは、参照ピクチャの上辺の補正処理の実行を示すフラグとして1を復号し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を復号してもよい。参照ピクチャの下辺の補正処理の実行を示すフラグとして1を復号し、補正処理を実行しない場合には、補正処理を実行しないフラグとして0を復号してもよい。このように、参照ピクチャの各辺について補正処理の有無を制御することで、補正処理により補間精度が向上する辺のみに補間処理の実行を限定することが可能となる。
このように処理することで、すべての境界ブロックではなく、参照ピクチャの四隅に位置する境界ブロックの処理結果に基づいて、そのほかの境界ブロックの動き補償画素補間の実行を制御可能となり、一括した画素補間を実行する場合においてより少ない処理量で参照ピクチャの画面境界の外側の画素を生成可能になる。
さらに、本実施形態では画像データがフレーム単位で入力されて、符号化処理をして生成されたビットストリームを復号する構成としたが、復号処理の対象は画像データを符号化したビットストリームに限定されない。例えば、物体認識などの機械学習に用いられる特徴量データを2次元の形状で入力し、符号化処理をして生成されたビットストリームを復号する構成としても良い。これにより、機械学習に用いられる特徴量データを効率よく符号化したビットストリームを復号することが可能となる。
[第3の実施形態]
上記第1の実施形態では、画像符号化装置が図1に示したハードウェアを持つものとして説明した。また、第2の実施形態では、画像復号装置が図2に示したハードウェアを持つものとして説明した。しかし、図1、図2に示す各処理部で行う処理をコンピュータプログラムでもって実現させても構わない。第3の実施形態では、コンピュータプログラムにより実現する例を説明する。
図5は、上記第1、第2の実施形態で示された装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
CPU501は、RAM502やROM503に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU501は、図1、図2に示した各処理部として機能することになる。
RAM502は、外部記憶装置506からロードされたコンピュータプログラムやデータ、I/F(インターフェース)507を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM502は、CPU501が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM502は、例えば、フレームメモリとして割り当てたり、その他の各種のエリアを適宜提供したりすることができる。
ROM503には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部504は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU501に対して入力することができる。表示部505は、CPU501による処理結果を表示する。また表示部505は例えば液晶ディスプレイで構成される。
外部記憶装置506は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置506には、OS(オペレーティングシステム)や、図1、図2に示した各部の機能をCPU501に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置506には、処理対象としての各画像データが保存されていても良い。
外部記憶装置506に保存されているコンピュータプログラムやデータは、CPU501による制御に従って適宜、RAM502にロードされ、CPU501による処理対象となる。I/F507には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F507を介して様々な情報を取得したり、送出したりすることができる。508は上述の各部を繋ぐバスである。
上述の構成からなる作動は前述のフローチャートで説明した作動をCPU501が中心となってその制御、処理を行う。
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
本発明は静止画・動画の符号化・復号を行う符号化装置・復号装置に用いられる。特に、インター予測において参照ピクチャの画面境界外の画素を生成する符号化方式および復号方式に適用が可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本明細書の開示は、以下の画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラムを含む。
(項目1)
符号化対象の第1のフレーム内の着目ブロックに対し、前記第1のフレームより前に符号化した第2のフレームを参照して予測画像を生成する予測手段と、
前記予測画像に対する前記着目ブロックの予測誤差を符号化する符号化手段と、
前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に符号化された第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間手段と、
前記第1のフレームより前のフレームの解像度を変更する変換手段とを有する
ことを特徴とする画像符号化装置。
(項目2)
前記第1のフレームより前のフレームは、前記第2のフレーム、又は、前記第3のフレームである
ことを特徴とする項目1に記載の画像符号化装置。
(項目3)
前記第1のフレームより前のフレームは、前記第2のフレーム、及び、前記第3のフレームを含む
ことを特徴とする項目1に記載の画像符号化装置。
(項目4)
画像符号化方法であって、
符号化対象の第1のフレーム内の着目ブロックに対し、前記第1のフレームより前に符号化した第2のフレームを参照して予測画像を生成する予測工程と、
前記予測画像に対する前記着目ブロックの予測誤差を符号化する符号化工程と、
前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に符号化された第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間工程と、
前記第1のフレームより前のフレームの解像度を変更する変換工程とを有する
ことを特徴とする画像符号化方法。
(項目5)
コンピュータが読み込み実行することで、前記コンピュータに、項目4に記載の方法の各工程を実行させるためのプログラム。
(項目6)
符号化データを復号することで、第1のフレーム内の着目ブロックの予測誤差データを取得する復号手段と、
前記第1のフレームより前に復号した第2のフレームを参照して予測画像を生成する生成手段と、
前記予測誤差データと前記予測画像から前記着目ブロックの画像を再生する再生手段と
前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に復号した第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間手段と、
前記第1のフレームより前のフレームの解像度を変更する解像度変換手段とを有する含む
ことを特徴とする画像復号装置。
(項目7)
前記第1のフレームより前のフレームは、前記第2のフレーム、又は、前記第3のフレームである
ことを特徴とする項目6に記載の画像復号装置。
(項目8)
前記第1のフレームより前のフレームは、前記第2のフレーム、及び、前記第3のフレームを含む
ことを特徴とする項目6に記載の画像復号装置。
(項目9)
画像復号方法であって、
符号化データを復号することで、第1のフレーム内の着目ブロックの予測誤差データを取得する復号工程と、
前記第1のフレームより前に復号した第2のフレームを参照して予測画像を生成する生成工程と、
前記予測誤差データと前記予測画像から前記着目ブロックの画像を再生する再生工程と、
前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に復号した第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間工程と、
前記第1のフレームより前のフレームの解像度を変更する変換工程とを有する
ことを特徴とする画像復号方法。
(項目10)
コンピュータが読み込み実行することで、前記コンピュータに、項目9に記載の方法の各工程を実行させるためのプログラム。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために項目を添付する。
101…入力端子、102…ブロック分割部、103…解像度変換部、104…予測部、105…変換・量子化部、106…逆量子化・逆変換部、107…画像再生部、108…フレームメモリ、109…インループフィルタ部、110…符号化部、111…統合符号化部、112…出力端子、113…解像度変換部、114…補間部
3…解像度変換部、114…補間部

Claims (10)

  1. 符号化対象の第1のフレーム内の着目ブロックに対し、前記第1のフレームより前に符号化した第2のフレームを参照して予測画像を生成する予測手段と、
    前記予測画像に対する前記着目ブロックの予測誤差を符号化する符号化手段と、
    前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に符号化された第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間手段と、
    前記第1のフレームより前のフレームの解像度を変更する変換手段とを有する
    ことを特徴とする画像符号化装置。
  2. 前記第1のフレームより前のフレームは、前記第2のフレーム、又は、前記1第3のフレームである
    ことを特徴とする請求項1に記載の画像符号化装置。
  3. 前記第1のフレームより前のフレームは、前記第2のフレーム、及び、前記第3のフレームを含む
    ことを特徴とする請求項1に記載の画像符号化装置。
  4. 画像符号化方法であって、
    符号化対象の第1のフレーム内の着目ブロックに対し、前記第1のフレームより前に符号化した第2のフレームを参照して予測画像を生成する予測工程と、
    前記予測画像に対する前記着目ブロックの予測誤差を符号化する符号化工程と、
    前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に符号化された第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間工程と、
    前記第1のフレームより前のフレームの解像度を変更する変換工程とを有する
    ことを特徴とする画像符号化方法。
  5. コンピュータが読み込み実行することで、前記コンピュータに、請求項4に記載の方法の各工程を実行させるためのプログラム。
  6. 符号化データを復号することで、第1のフレーム内の着目ブロックの予測誤差データを取得する復号手段と、
    前記第1のフレームより前に復号した第2のフレームを参照して予測画像を生成する生成手段と、
    前記予測誤差データと前記予測画像から前記着目ブロックの画像を再生する再生手段と
    前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に復号した第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間手段と、
    前記第1のフレームより前のフレームの解像度を変更する変換手段とを有する
    ことを特徴とする画像復号装置。
  7. 前記第1のフレームより前のフレームは、前記第2のフレーム、又は、前記第3のフレームである
    ことを特徴とする請求項6に記載の画像復号装置。
  8. 前記第1のフレームより前のフレームは、前記第2のフレーム、及び、前記第3のフレームを含む
    ことを特徴とする請求項6に記載の画像復号装置。
  9. 画像復号方法であって、
    符号化データを復号することで、第1のフレーム内の着目ブロックの予測誤差データを取得する復号工程と、
    前記第1のフレームより前に復号した第2のフレームを参照して予測画像を生成する生成工程と、
    前記予測誤差データと前記予測画像から前記着目ブロックの画像を再生する再生工程と、
    前記第2のフレームの境界の外の画素を参照する場合に、当該第2のフレームより前に復号した第3のフレームの画素を用いて、前記第2のフレームの境界外の画素を補間する補間工程と、
    前記第1のフレームより前のフレームの解像度を変更する変換工程とを有する
    ことを特徴とする画像復号方法。
  10. コンピュータが読み込み実行することで、前記コンピュータに、請求項9に記載の方法の各工程を実行させるためのプログラム。
JP2022165024A 2022-10-13 2022-10-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム Pending JP2024057980A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022165024A JP2024057980A (ja) 2022-10-13 2022-10-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
PCT/JP2023/028243 WO2024079965A1 (ja) 2022-10-13 2023-08-02 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022165024A JP2024057980A (ja) 2022-10-13 2022-10-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2024057980A true JP2024057980A (ja) 2024-04-25

Family

ID=90669376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022165024A Pending JP2024057980A (ja) 2022-10-13 2022-10-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Country Status (2)

Country Link
JP (1) JP2024057980A (ja)
WO (1) WO2024079965A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052250A1 (ko) * 2015-09-23 2017-03-30 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
US10630992B2 (en) * 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image
US10200715B2 (en) * 2016-02-17 2019-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for encoding and decoding video pictures
US10728573B2 (en) * 2017-09-08 2020-07-28 Qualcomm Incorporated Motion compensated boundary pixel padding

Also Published As

Publication number Publication date
WO2024079965A1 (ja) 2024-04-18

Similar Documents

Publication Publication Date Title
CN113612994B (zh) 具有仿射运动补偿的视频编解码的方法
TW201739252A (zh) 具有仿射運動補償的視訊編碼的方法以及裝置
JP7005854B2 (ja) ビデオ符号化のためのインター予測装置の補間フィルタ及び方法
JPH1155667A (ja) 画像符号化装置および画像復号化装置および画像符号化データを記録した記録媒体
JP2010514300A (ja) ビデオ画像のブロックを復号化する方法
JP2007013298A (ja) 画像符号化装置
JP2010098633A (ja) 予測符号化装置および予測符号化方法
WO2024079965A1 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US11202082B2 (en) Image processing apparatus and method
US8223840B2 (en) Image decoding method of decoding hierarchy-encoded image data in respective hierarchies, and a device thereof
WO2020255688A1 (ja) 画像符号化装置及び画像復号装置及び方法及びプログラム
WO2020255689A1 (ja) 画像符号化装置及び画像復号装置及び方法及びプログラム
JP7102663B2 (ja) ビデオコーディングのためのインター予測装置及び方法
JP7061737B1 (ja) 画像復号装置、画像復号方法及びプログラム
JP7034363B2 (ja) 画像復号装置、画像復号方法及びプログラム
TW202034699A (zh) 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法及程式
WO2021111595A1 (ja) フィルタ生成方法、フィルタ生成装置及びプログラム
JP2022087335A (ja) 画像復号装置、画像復号方法及びプログラム
CN116506610A (zh) 对视频信号编码的方法、计算设备、存储介质、程序产品
TW202333497A (zh) 圖像編碼裝置、圖像編碼方法、圖像解碼裝置、圖像解碼方法
CN116671104A (zh) 利用基于几何变换的块复制的帧内预测的方法和装置
JP2020145626A (ja) 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法
JP2013223149A (ja) 画像符号化装置、画像復号装置、画像符号化プログラム及び画像復号プログラム
JP2010246021A (ja) 動画像復号装置、動画像復号方法、プログラムおよび記録媒体
JP2015053727A (ja) 画像符号化装置,画像復号装置,画像符号化方法,画像復号方法,画像符号化プログラムおよび画像復号プログラム