JP2018170673A - 画像符号化装置、画像符号化方法、及びプログラム - Google Patents
画像符号化装置、画像符号化方法、及びプログラム Download PDFInfo
- Publication number
- JP2018170673A JP2018170673A JP2017067323A JP2017067323A JP2018170673A JP 2018170673 A JP2018170673 A JP 2018170673A JP 2017067323 A JP2017067323 A JP 2017067323A JP 2017067323 A JP2017067323 A JP 2017067323A JP 2018170673 A JP2018170673 A JP 2018170673A
- Authority
- JP
- Japan
- Prior art keywords
- block
- prediction
- threshold value
- unit
- size
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】符号化単位のブロック内に多数の予測ブロックが存在した場合でも、処理性能が低下してしまう可能性を低減することを可能にすることを課題とする。
【解決手段】ブロック決定部(201)は、符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する。閾値決定部(202)は、所定の予測ブロックサイズに対する予測ブロック数の閾値を決定する。変更部(203)は、決定された閾値に基づいて、ブロック決定部(201)にて決定された複数の予測ブロックのサイズうち、第1の予測ブロックサイズを第2の予測ブロックサイズに変更する。
【選択図】図2
【解決手段】ブロック決定部(201)は、符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する。閾値決定部(202)は、所定の予測ブロックサイズに対する予測ブロック数の閾値を決定する。変更部(203)は、決定された閾値に基づいて、ブロック決定部(201)にて決定された複数の予測ブロックのサイズうち、第1の予測ブロックサイズを第2の予測ブロックサイズに変更する。
【選択図】図2
Description
本発明は、画像信号を符号化する画像符号化装置、画像符号化方法、及びプログラムに関する。
動画符号化技術には、HEVC(High Efficiency Video Coding)(非特許文献1)等がある。これらの動画符号化技術では、画像を符号化単位の画素ブロック(以降、符号化ブロックと呼ぶ。)に分割し、符号化ブロックで符号化処理を行う。HEVCでは、画像を符号化ブロック(Coding Tree Block(CTB))に分割し、符号化ブロックを四分木構造で階層的にサブブロック(Coding Unit(CU))に分割することが可能となっている。さらにCUは、予測処理を行うための予測ブロック(Prediction Unit(PU))及び、変換処理を行うための変換ブロック(Transform Unit(TU))に分割され、各ブロック単位の予測処理及び変換処理が行われる。
予測処理には、画面内の符号化済みブロックを参照して予測符号化を行う画面内(イントラ)符号化と、現在符号化中の画像とは時間的に異なる画像を参照して予測符号化を行う画面間(インター)符号化がある。イントラ予測処理では、符号化済みの符号化対象の予測ブロック周辺のブロックの画素を用いて予測画像が生成され、どの方向の画素を用いるかを示す予測モードに基づいて、予測ブロックの画素と予測画素との差分を求める。そして、この差分画素に対して直交変換処理及び量子化処理を行い、エントロピー符号化処理を行うことにより、データ量が削減される。また、量子化後のデータは、逆量子化処理及び逆直交変換処理が行われ、その逆直交変換後のデータと予測画素とを足し合わせることで再構成画素が生成される。再構成画像は、次の予測ブロックの予測画素として利用される。
なお、特許文献1には、複数のフレームを含む画像データを符号化する画像符号化装置において、符号化位置又は発生符号量に応じて符号化ブロックの上限サイズを決定して符号化誤差を制御する技術が開示されている。特許文献1に記載の技術では、フレームの未符号化ブロック数を全符号化ブロック数で割って、フレームの符号化率を算出し、フレームの符号化率が閾値より大きい場合に、予測ブロックサイズの上限を制限することで、符号量の制御を可能としている。
ITU−T H.265 (04/2013) High efficiency video coding
ここで、符号化処理の際に予測ブロックが参照する予測画素には、前述したように符号化済みの画像データを用いて再構成された画像の画素が使用される。一方、HEVCでは様々なサイズの予測ブロックの利用が可能となされている。例えば符号化ブロックサイズが64×64画素の場合、全ての予測ブロックサイズが4×4画素であるならば、一つの符号化ブロック内には256個の予測ブロックが存在し得ることになる。しかしながら、符号化ブロック内に多数の予測ブロックが存在すると、直前のブロックの再構成画素の生成が完了するまで予測画素を準備できず、次のブロックの予測処理を開始できない状態になることがあり、この場合、処理性能が低下してしまう。このため、符号化ブロック内に多数の予測ブロックが存在する場合であっても、処理性能の低下を防ぐことが望まれる。なお、特許文献1に記載の技術のように、予測ブロックサイズを制限して符号量を制御すれば、或る程度、処理性能の低下を防ぐことは可能になる。しかし、特許文献1に記載の技術は、予測ブロックサイズの上限を制限して発生符号量を制御する技術であるため、符号化ブロック内の予測ブロック数が増加してしまった場合の処理性能の低下を防ぐことは困難である。
そこで、本発明は、符号化単位のブロック内に多数の予測ブロックが存在した場合に、処理性能が低下してしまう可能性を低減することを目的とする。
本発明は、画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置であって、前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定手段と、所定の予測ブロックサイズの予測ブロック数に対する閾値を決定する閾値決定手段と、前記閾値決定手段で決定された閾値に基づいて、前記決定手段にて決定された複数の予測ブロックのサイズのうち、第1の予測ブロックサイズを第2の予測ブロックサイズに変更する変更手段と、を有することを特徴とする。
本発明によれば、符号化単位のブロック内に多数の予測ブロックが存在した場合でも、処理性能が低下してしまう可能性を低減することが可能となる。
以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
<第1の実施形態>
図1は実施形態の画像符号化装置100の概略構成例を示す図である。
図1において、入力端子101には、例えば、不図示の撮像部により撮像された画像データ、不図示の記録部が記録媒体から読み出した画像データ、又は、不図示の通信ネットワーク等を介して受信した画像データ等が入力される。入力端子101を介した画像データは、分割部102に入力される。
<第1の実施形態>
図1は実施形態の画像符号化装置100の概略構成例を示す図である。
図1において、入力端子101には、例えば、不図示の撮像部により撮像された画像データ、不図示の記録部が記録媒体から読み出した画像データ、又は、不図示の通信ネットワーク等を介して受信した画像データ等が入力される。入力端子101を介した画像データは、分割部102に入力される。
分割部102は、入力された画像データを、それぞれ符号化単位の画素ブロックである複数の符号化ブロックに切り出し、それら符号化ブロック毎の画像データを、補償部106、イントラ予測部103、インター予測部104に出力する。本実施形態では、入力端子101から入力される画像を32×32画素の符号化ブロックに分割する例を挙げて説明するが、符号化ブロックのサイズや分割方法はこの例に限定されない。例えば符号化ブロックサイズは、16×16画素でもよいし、64×64画素でも、またN×M画素(N、Mは1以上の整数)でもよい。また、ブロック分割方法は、入力画像の性質に応じてブロックサイズを決定する分割方法や、ブロックサイズごとに符号化コストを計算して符号化コストが最小となるブロックサイズを適応的に選択する分割方法等でもよい。
イントラ予測部103は、符号化対象となっている符号化ブロック(CTU)内の予測ブロックサイズを決定する。そして、イントラ予測部103は、決定した予測ブロックサイズで複数のイントラ予測モードの符号化コストを計算し、最適なイントラ予測モードを決定する。イントラ予測部103により決定された予測ブロックサイズ及びイントラ予測モードを示す情報は、予測情報として判定部105に送られる。
インター予測部104は、符号化対象となっている符号化ブロック(CTU)内の予測ブロックサイズ及び動きベクトルを求め、符号化コストを計算して、最適なインター予測モードを決定する。イントラ予測部103により決定された予測ブロックサイズ及び動きベクトルとインター予測モードを示す情報は、予測情報として判定部105に送られる。また、インター予測部104からの予測情報は後述する画像再生部109にも送られる。
判定部105は、イントラ/インター判定部である。判定部105は、イントラ予測部103とインター予測部104とから出力された予測情報を基に、イントラ予測モードとインター予測モードのそれぞれの符号化コストを比較する。そして、判定部105は、各予測ブロックに対してイントラ符号化とインター符号化の何れの符号化を行うかを判定し、符号化コストが低い方の予測情報を補償部106に送る。
補償部106は、分割部102から出力された符号化ブロック単位の画像データに対し、判定部105から出力された予測情報に基づく予測ブロックごとにイントラ予測処理又はインター予測処理を行って、予測画像データを生成する。さらに、補償部106は、入力された画像データと前記予測画像データから予測誤差を算出して、その予測誤差データを変換・量子化部107に出力する。
変換・量子化部107は、補償部106から出力された予測誤差データを変換ブロック単位で直交変換して変換係数を得、さらにその変換係数を量子化して量子化係数を得る。この量子化係数は、符号化部112と逆変換・逆量子化部108に送られる。
逆変換・逆量子化部108は、変換・量子化部107から出力された量子化係数を逆量子化して変換係数を再生し、さらにその変換係数を逆直交変換して予測誤差を再生する。この再生された予測誤差データは画像再生部109に送られる。
逆変換・逆量子化部108は、変換・量子化部107から出力された量子化係数を逆量子化して変換係数を再生し、さらにその変換係数を逆直交変換して予測誤差を再生する。この再生された予測誤差データは画像再生部109に送られる。
画像再生部109は、インター予測部104から出力された予測情報に基づいて、フレームメモリ111を適宜参照して予測画像データを生成する。さらに、画像再生部109は、その予測画像データと逆変換・逆量子化部108から入力された予測誤差とから画像データを再構成してフィルタ処理部110に出力する。
フィルタ処理部110は、画像再生部109にて再構成された画像データに対して、フィルタ処理を行い、そのフィルタ処理後の画像データをフレームメモリ111に出力する。
フレームメモリ111は、フィルタ処理部110から出力される画像データを格納する。このフレームメモリ111に格納された画像データは、インター予測部104で参照される参照画像データである。
フレームメモリ111は、フィルタ処理部110から出力される画像データを格納する。このフレームメモリ111に格納された画像データは、インター予測部104で参照される参照画像データである。
符号化部112は、エントロピー符号化部である。符号化部112は、変換・量子化部107から出力された量子化係数及び予測情報を符号化してビットストリームを生成し、出力端子113から出力する。
出力端子113は、符号化部112で生成されたビットストリームを図示しない外部の構成に出力する。
出力端子113は、符号化部112で生成されたビットストリームを図示しない外部の構成に出力する。
ここで、本実施形態においては、例えばHEVC等の符号化方式を用いて動画の符号化を行う例を挙げる。以下、HEVCにおける予測ブロック分割の概要と符号化処理の順番及び予測ブロックが参照する画素の概要について説明する。図12(a)と図12(b)はHEVCにおける予測ブロック分割の一例を示す図であり、図13(a)と図13(b)は符号化処理の順番及び予測ブロックが参照する画素の概要を説明する図である。HEVCでは、例えば図12(a)と図12(b)に示すように、符号化ブロック内において、予測ブロックサイズとして最小4×4画素から最大64×64画素まで、様々なブロックサイズを利用することが可能となされている。なお、図12(a)は64×64画素の符号化ブロックとその中の複数サイズの予測ブロック例を示し、図12(b)は32×32画素の符号化ブロックとその中の複数サイズの予測ブロック例を示している。また、図13(a)と図13(b)に示すように、予測画素1311には符号化済みのブロックの画素が使用される。図13(a)は例えば四つの予測ブロックの符号化順を示しており、図中の矢印の順に符号化が行われる。図13(b)は符号化済みの予測ブロック、処理対象の予測ブロック1301及び符号化済みでない未符号化の予測ブロック1302と予測画素1311との関係を表している。符号化済みでない未符号化の箇所については、他の参照画素を複製するなどして補間した画素が参照される予測画素1311として用いられる。ただし、符号化ブロック内に多数の予測ブロックが存在する場合は、直前のブロックの再構成画素の生成が完了するまで予測画素を準備できないことがあり、次のブロックの予測処理を開始できないため、処理性能が低下してしまう。そこで、第1の実施形態では、符号化ブロック内に多数の予測ブロックが存在する場合には、符号化ブロック内の予測ブロックの個数を制限して、符号化ブロック内の予測ブロックの個数を減らすことにより性能低下を防ぐようにしている。
図2は、本実施形態の画像符号化装置100のイントラ予測部103の構成を示す図である。以下、図2を参照しながらイントラ予測部103の詳細な構成について説明する。
図2において、ブロック決定部201は、符号化ブロック毎の画像データを受け取り、符号化ブロック内を複数の予測ブロックに分割する際の予測ブロックサイズを決定する。そして、ブロック決定部201は、それら各予測ブロックのサイズの情報を閾値決定部202に出力する。なお、符号化ブロック内を複数の予測ブロックに分ける際の各予測ブロックのサイズは、HEVC等の符号化方式において規定されるサイズから後述する方法に基づいて選択される。また、ブロック決定部201は、符号化ブロックの画像データを後述するモード決定部204に出力する。
図2において、ブロック決定部201は、符号化ブロック毎の画像データを受け取り、符号化ブロック内を複数の予測ブロックに分割する際の予測ブロックサイズを決定する。そして、ブロック決定部201は、それら各予測ブロックのサイズの情報を閾値決定部202に出力する。なお、符号化ブロック内を複数の予測ブロックに分ける際の各予測ブロックのサイズは、HEVC等の符号化方式において規定されるサイズから後述する方法に基づいて選択される。また、ブロック決定部201は、符号化ブロックの画像データを後述するモード決定部204に出力する。
閾値決定部202は、予測ブロックサイズの情報をブロック決定部201から受け取り、1符号化ブロック内の予測ブロックサイズ毎にそれぞれ予測ブロックの個数をカウントする。そして、閾値決定部202は、予測ブロックサイズ毎の予測ブロック数に基づいて符号化ブロック内の4×4画素からなる予測ブロック数に対する閾値を算出する。なお、本実施形態では、以下、M×N画素からなる予測ブロックをM×N予測ブロックと記す。さらに、閾値決定部202は、後述する変更部203に、各予測ブロックサイズの個数及び4×4予測ブロック数の閾値の情報を出力する。閾値決定部202で行われる閾値の算出方法の詳細については後述する。
変更部203は、1符号化ブロック内の各予測ブロックサイズの個数及び4×4予測ブロック数の閾値を閾値決定部202から受け取り、予測ブロックサイズの変更が必要か否かを判定し、変更が必要と判定された場合には予測ブロックサイズの変更を行う。変更部203で行われる予測ブロックサイズの変更の要否判定とサイズ変更方法の詳細については後述する。そして、変更部203は、必要に応じてサイズ変更を行った後の後の予測ブロックサイズの情報を、後述するモード決定部204に出力する。
モード決定部204は、ブロック決定部201から符号化ブロックの各画素データを受け取る。また、モード決定部204は、変更部203から、予測ブロックサイズの情報を受け取る。そして、モード決定部204は、各予測ブロックに対するイントラ予測モードを決定する。具体的には、モード決定部204は、各予測ブロックに対して複数のイントラ予測モードのそれぞれについて符号化コストを求め、最も符号化コストが低くなるイントラ予測モードを選択する。なお、本実施形態における予測モード選択手法はこの例に限定されるものではない。例えば、すでに選択済みの周囲の予測ブロックのイントラ予測モードに基づいて、イントラ予測モードの候補を求め、各候補の符号化コストを算出し、最も符号化コストが低くなるイントラ予測モードを選択してもよい。
以下、図2に示した構成のイントラ予測部103の動作について、図3のフローチャートを参照しながら説明する。図3はイントラ予測部103にて行われるイントラ予測モード決定処理のうち、特に予測ブロックサイズの決定から、必要に応じた予測ブロックサイズ変更までの処理の流れを示したフローチャートである。なお、以下の説明では、図3の処理ステップS301〜S304をそれぞれS301〜S304と略記する。また図3のフローチャートの処理は、ハードウェア構成により実行されてもよいし、CPU等がプログラムを実行することにより実現されてもよい。これらのことは後述する他のフローチャートにおいても同様とする。
S301において、ブロック決定部201は、符号化ブロックを複数の予測ブロックに分ける際の各予測ブロックのサイズを決定する。具体的には、ブロック決定部201は、複数のイントラ予測モード(画面内予測モード)と予測ブロックサイズの組み合わせのそれぞれについて符号化コストを求め、最も符号化コストが低くなる予測ブロックサイズを選択する。なお、本実施形態における予測ブロックサイズの選択手法はこの例に限定されるものではない。例えば、ブロック決定部201は、符号化ブロック内を所定の画素ブロックに分割し、ブロック内の画素の平均値と各画素との差分の絶対値を合計した画素分散を求め、その画素分散の値に基づいて予測ブロックサイズを決めてもよい。また、ブロック決定部201は、符号化ブロック内のオブジェクトの境界を検出し、オブジェクト境界がブロック境界となるよう各予測ブロックとそのサイズを決めてもよい。
次のS302において、閾値決定部202は、S301で決定した予測ブロックサイズ毎に各予測ブロックの個数をカウントし、それら予測ブロックサイズ毎の予測ブロック数を基に、4×4予測ブロック数に対する閾値を算出する。閾値の算出方法の詳細は後述する。なお、本実施形態では、予測ブロック数の閾値を求める際の予測ブロックサイズが4×4画素である例を挙げて説明を行うが、これには限定されない。例えば、予測ブロックサイズが、8×8画素からなる予測ブロックでもよいし、4×8画素からなる予測ブロックでもよい。
次のS303において、変更部203は、S302で算出した4×4予測ブロック数の閾値と、S301で決定された各予測ブロックサイズのうちの4×4予測ブロックの数とを比較する。そして、変更部203は、S303にて4×4予測ブロック数が閾値より多いと判定した場合には、S304に処理を進める。一方、S303において4×4予測ブロック数が閾値未満であると判定された場合、イントラ予測部103は、図3のフローチャートの処理を終了する。
S304の処理に進んだ場合、変更部203は、S301で決定した4×4予測ブロックサイズの変更を行う。
以下、図3のS302の閾値算出処理とS304のサイズ変更処理について、図4(a)〜図4(d)を用いて詳細に説明する。図4(a)は、S301で決定した各予測ブロックサイズで符号化ブロックが分割された場合の各予測ブロックの一例を示している。なお、図4(a)中の16×16と記された箇所が16×16予測ブロック、8×8と記された箇所が8×8予測ブロック、4×4と記された箇所が4×4予測ブロックを表している。図4(b)は、図4(a)に示した各予測ブロック例に対して、S304で予測ブロックサイズが変更された後の各予測ブロックの一例を示している。図4(c)は、S302において図4(a)の4×4予測ブロック数をカウントする際のカウント順を示しており、図4(c)の4×4予測ブロック内に記されている番号の順にカウントが行われる。図4(d)は、S304において予測ブロックサイズが変更された後の、図4(b)の各4×4予測ブロックを、図4(c)のカウント番号に対応させて示した図である。
以下、図3のS302の閾値算出処理とS304のサイズ変更処理について、図4(a)〜図4(d)を用いて詳細に説明する。図4(a)は、S301で決定した各予測ブロックサイズで符号化ブロックが分割された場合の各予測ブロックの一例を示している。なお、図4(a)中の16×16と記された箇所が16×16予測ブロック、8×8と記された箇所が8×8予測ブロック、4×4と記された箇所が4×4予測ブロックを表している。図4(b)は、図4(a)に示した各予測ブロック例に対して、S304で予測ブロックサイズが変更された後の各予測ブロックの一例を示している。図4(c)は、S302において図4(a)の4×4予測ブロック数をカウントする際のカウント順を示しており、図4(c)の4×4予測ブロック内に記されている番号の順にカウントが行われる。図4(d)は、S304において予測ブロックサイズが変更された後の、図4(b)の各4×4予測ブロックを、図4(c)のカウント番号に対応させて示した図である。
図4(a)に示したように、符号化ブロックには、16×16予測ブロックが1個、8×8予測ブロックが6個、4×4予測ブロックが24個存在している。閾値決定部202は、S302において、16×16予測ブロックの個数及び32×32予測ブロックの個数をカウントし、それらカウント数を基に、符号化ブロック内の4×4予測ブロック数に対する閾値を算出する。本実施形態の場合、符号化ブロック内に、16×16予測ブロックが1個につき4×4予測ブロックを16個許容する。また、本実施形態では、符号化ブロック内に、32×32予測ブロックが1個につき、4×4予測ブロックを64個許容する。
なお、本実施形態では、符号化ブロック内に、16×16予測ブロックが1個につき4×4予測ブロックを16個許容する例を挙げているがこれには限定されない。例えば、符号化ブロック内に、16×16予測ブロックが1個につき4×4予測ブロックを32個許容してもよい。また、符号化ブロック内に、32×32予測ブロックが1個につき4×4予測ブロックを16個許容してもよい。図4(a)の場合は、符号化ブロック内には16×16予測ブロックが1個で、32×32予測ブロックが0個であるため、閾値決定部202は、16×1+64×0=16個を、符号化ブロック内の4×4予測ブロック数に対する閾値として算出する。
そして、変更部203は、S304において、閾値16を超える4×4予測ブロックを8×8予測ブロックに変更する。本実施形態の場合、変更部203は、4×4予測ブロックサイズの各予測ブロックの内、符号化ブロック内で下側に位置する4×4予測ブロックから順に、8×8予測ブロックサイズに変更する。また、本実施形態の場合、変更部203は、4×4予測ブロックサイズの各予測ブロックの内、符号化ブロック内の符号化順とは逆の順に、4×4予測ブロックサイズを8×8予測ブロックサイズに変更してもよい。これらのサイズ変更処理により、図4(a)の例の場合、8×8予測ブロックに変更される4×4予測ブロックは、例えば図4(c)の17番目から24番目の4×4予測ブロックとなされる。これにより、図4(c)の17番目から24番目の4×4予測ブロックは、図4(b)に示すように8×8予測ブロックに変更される。
図4(d)は、図4(b)に示すように4×4予測ブロックが8×8予測ブロックに変更された後の符号化ブロック内の4×4予測ブロックの個数を示している。図4(d)に示したように、4×4予測ブロックの個数は1番目から16番目までの16個に変更されている。このように本実施形態では、変更部203が、閾値を超える4×4予測ブロックを8×8予測ブロックに変更することにより、符号化ブロック内の予測ブロックの個数が制限される。S304の処理後、図3のフローチャートの処理は終了する。
なお、本実施形態では4×4予測ブロックサイズを8×8予測ブロックサイズに変更する場合を例に説明しているが、この例には限定されない。変更部203は、8×8予測ブロックサイズを16×16予測ブロックサイズに変更してもよいし、16×16予測ブロックサイズを32×32予測ブロックサイズに変更してもよい。また、変更部203は、K×L(K、Lは1以上の整数)予測ブロックをM×N(MはM≧Kが成り立つ整数、NはN≧Lが成り立つ整数)予測ブロックに変更してもよい。さらに、変更部203は、16個の4×4予測ブロックを1個の16×16予測ブロックサイズに変更してもよい。
次に、図5(a)と図5(b)を用いて、図3のS302において、閾値決定部202が4×4予測ブロック数をカウントする際のスキャン順序を説明する。図5(a)の各ブロックは図4(a)に示した各予測ブロックに対応している。図5(a)は、図4(a)に示した各予測ブロックのスキャン順を示した図であり、図中矢印に示す順にスキャンが行われる。すなわち、予測ブロック数のカウント時のスキャン順は、図5(a)に示すように、8×8予測ブロック単位で、符号化ブロックの左上から右にスキャンされ、一番右のブロックまでスキャンが終わったら、一つ下の行を一番左から右へスキャンする順となされる。また、4つの4×4予測ブロック数をカウントする際のスキャン順序は、図5(b)に示すように、左上、右上、左下、右下の順で行われる。なお、スキャン順序については、この例に限定されるものではなく、別のスキャン順でカウントが行われてもよい。例えば、図6(a)の矢印に示すような順番で予測ブロック数をカウントするスキャンが行われてもよい。図6(a)の順番で予測ブロック数のカウントがなされた場合、4×4予測ブロックのカウント番号は図6(b)に示すようになる。
本実施形態の画像符号化装置100では、イントラ予測部103において、図3のS301〜S304の処理を行うことにより、符号化ブロック内の予測ブロックの個数を制限できる。これにより、本実施形態の画像符号化装置100によれば、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、その結果、性能低下を防ぐことが可能となる。
<第2の実施形態>
第1の実施形態では、符号化ブロック内の4×4予測ブロック数の閾値を、16×16予測ブロックや32×32予測ブロックの個数に基づいて算出したが、第2の実施形態では、画像サイズやフレームレートに基づいて閾値を算出する方法について説明する。なお、第2の実施形態の画像符号化装置100の構成は、図1及び図2で示した第1の実施形態の画像符号化装置100の構成と同様であるためその図示と説明は省略する。
第1の実施形態では、符号化ブロック内の4×4予測ブロック数の閾値を、16×16予測ブロックや32×32予測ブロックの個数に基づいて算出したが、第2の実施形態では、画像サイズやフレームレートに基づいて閾値を算出する方法について説明する。なお、第2の実施形態の画像符号化装置100の構成は、図1及び図2で示した第1の実施形態の画像符号化装置100の構成と同様であるためその図示と説明は省略する。
第2の実施形態の画像符号化装置100における動作について、前述した図3のフローチャートを用いて説明する。なお、S301、S303、S304の処理については第1の実施形態におけるイントラ予測部103の処理と同様であるため、その説明は省略する。
第2の実施形態の場合、S302において、閾値決定部202は、S301で決定された予測ブロックの個数を、予測ブロックサイズ毎にカウントし、各予測ブロックサイズの個数の情報を変更部203に出力する。さらに、閾値決定部202は、画像サイズやフレームレートに基づいて閾値を算出して、その閾値の情報を変更部203に出力する。画像サイズやフレームレートについては、画像符号化装置100が外部から入力として受け取り、閾値決定部202に入力される。
第2の実施形態の場合、S302において、閾値決定部202は、S301で決定された予測ブロックの個数を、予測ブロックサイズ毎にカウントし、各予測ブロックサイズの個数の情報を変更部203に出力する。さらに、閾値決定部202は、画像サイズやフレームレートに基づいて閾値を算出して、その閾値の情報を変更部203に出力する。画像サイズやフレームレートについては、画像符号化装置100が外部から入力として受け取り、閾値決定部202に入力される。
先ず、第2の実施形態において、画像サイズに基づいて閾値を算出する方法について説明する。
本実施形態において、画像のサイズが例えば640×480画素である場合には、符号化ブロック内に、4×4予測ブロックを4個許容する。すなわち、閾値決定部202は、画像のサイズが640×480画素である場合には閾値を4に決定する。また本実施形態において、画像サイズが例えば1280×720画素である場合には、符号化ブロック内に、4×4予測ブロックを8個許容する。この場合、閾値決定部202は閾値を8に決定する。また本実施形態において、画像サイズが例えば1920×1080画素である場合には、符号化ブロック内に、4×4予測ブロックを16個許容する。この場合、閾値決定部202は閾値を16に決定する。
本実施形態において、画像のサイズが例えば640×480画素である場合には、符号化ブロック内に、4×4予測ブロックを4個許容する。すなわち、閾値決定部202は、画像のサイズが640×480画素である場合には閾値を4に決定する。また本実施形態において、画像サイズが例えば1280×720画素である場合には、符号化ブロック内に、4×4予測ブロックを8個許容する。この場合、閾値決定部202は閾値を8に決定する。また本実施形態において、画像サイズが例えば1920×1080画素である場合には、符号化ブロック内に、4×4予測ブロックを16個許容する。この場合、閾値決定部202は閾値を16に決定する。
なお、第2の実施形態では、画像サイズが640×480画素、1280×720画素、1920×1080画素の場合を例に説明したが、本発明はこれに限定されない。例えば、画像サイズは3840×2160画素や7680×4320画素であってもよい。また、閾値についても、前述の例に限定されない。例えば、640×480画素の場合の閾値は16としてもよい。
また、閾値決定部202は、HEVCやH.264等の所定の符号化方式で規定される所定のレベル(Level)に応じて閾値を算出してもよい。例えば、レベルがLevel5(4096×2048画素で24フレーム/秒)である場合は閾値を16とし、Level4(1920×1080画素で24フレーム/秒)である場合は閾値を32としてもよい。
次に、フレームレートに基づいて閾値を算出する方法について説明する。
S302において、閾値決定部202は、画像符号化装置100が外部から入力として受け取ったフレームレートの情報に基づいて閾値を算出する。本実施形態において、フレームレートが例えば60fpsである場合には、符号化ブロック内に、4×4予測ブロックを4個許容する。すなわちこの場合、閾値決定部202は閾値を4に決定する。また本実施形態において、フレームレートが例えば30fpsである場合には、符号化ブロック内に、4×4予測ブロックを8個許容する。すなわちこの場合、閾値決定部202は閾値を8に決定する。また本実施形態において、フレームレートが例えば15fpsである場合には、符号化ブロック内に、4×4予測ブロックを16個許容する。すなわちこの場合、閾値決定部202は閾値を16に決定する。
S302において、閾値決定部202は、画像符号化装置100が外部から入力として受け取ったフレームレートの情報に基づいて閾値を算出する。本実施形態において、フレームレートが例えば60fpsである場合には、符号化ブロック内に、4×4予測ブロックを4個許容する。すなわちこの場合、閾値決定部202は閾値を4に決定する。また本実施形態において、フレームレートが例えば30fpsである場合には、符号化ブロック内に、4×4予測ブロックを8個許容する。すなわちこの場合、閾値決定部202は閾値を8に決定する。また本実施形態において、フレームレートが例えば15fpsである場合には、符号化ブロック内に、4×4予測ブロックを16個許容する。すなわちこの場合、閾値決定部202は閾値を16に決定する。
なお、本実施形態では、フレームレートが60fps、30fps、15fpsの場合を例に説明したが、本発明はこれに限定されない。例えば、フレームレートは、24fpsや5fpsであってもよい。さらに、閾値についても前述の例には限定されない。例えば、フレームレートが60fpsの場合、閾値は16に決定されてもよい。
第2の実施形態においては、前述したように、画像サイズやフレームレートに応じて、符号化ブロック内に予測ブロック数を制限することが可能となる。したがって、第2の実施形態においても前述した第1の実施形態の場合と同様に、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、その結果、性能低下を防ぐことが可能となる。
<第3の実施形態>
以下、第3の実施形態の画像符号化装置100について説明する。第3の実施形態の画像符号化装置100の構成は、図1及び図2で示した第1の実施形態の画像符号化装置100の構成と同様であるためその図示と説明は省略する。第3の実施形態は、変更部203において予測ブロックのサイズを変更する4×4予測ブロックを決定する際の4×4予測ブロックの選択方法が前述した第1、第2の実施形態の例とは異なる。
以下、第3の実施形態の画像符号化装置100について説明する。第3の実施形態の画像符号化装置100の構成は、図1及び図2で示した第1の実施形態の画像符号化装置100の構成と同様であるためその図示と説明は省略する。第3の実施形態は、変更部203において予測ブロックのサイズを変更する4×4予測ブロックを決定する際の4×4予測ブロックの選択方法が前述した第1、第2の実施形態の例とは異なる。
第3の実施形態の画像符号化装置100の動作について、図7のフローチャートを参照して説明する。なお、図7のフローチャートのS701、S702、S703の処理は、第1の実施形態におけるS301、S302、S303の処理と同様であるため、その説明は省略する。以下、図7のS704及びステップS705の処理について説明する。
第3の実施形態の場合、S703にて4×4予測ブロック数が閾値より多いと判定(Yes)した場合、S704に処理を進める。S704に進むと、変更部203は、予測ブロックサイズを変更する候補となる4つの4×4予測ブロックを含む、8×8予測ブロック毎に画素分散を求める。画素分散は、8×8予測ブロック内の各画素値の平均値を求め、8×8予測ブロック内の各画素値と画素の平均値との差分の絶対値を合計したものである。
次に、S705において、変更部203は、S704で算出した画素分散の値に基づいて、4×4予測ブロックサイズを8×8予測ブロックサイズに変更する。S705の処理後、図7のフローチャートの処理は終了する。
図8(a)〜図8(c)を用いて、予測ブロックサイズの変更方法について説明する。図8(a)はS701で決定された各予測ブロックサイズにより符号化ブロックが分割された場合の各予測ブロックの一例を示している。なお、図8(a)の16×16、8×8、4×4は前述の図4(a)と同様に各予測ブロックのサイズに対応している。図8(b)は、S704で算出した、4個の4×4予測ブロックに対応した8×8予測ブロック毎の画素分散の値の例を示した図であり、図中の各数値が画素分散の値の例である。図8(c)は、図8(b)に示した画素分散の値に基づいて、S705で変更部203が予測ブロックサイズを変更した後の予測ブロックを示している。図8(a)の例の場合、16×16予測ブロックは1個存在し、32×32予測ブロックは存在しない。したがって、本実施形態の場合、前述の第1の実施形態で説明した例と同様に4×4予測ブロックの閾値は16×1+64×0=16個である。
図8(a)〜図8(c)を用いて、予測ブロックサイズの変更方法について説明する。図8(a)はS701で決定された各予測ブロックサイズにより符号化ブロックが分割された場合の各予測ブロックの一例を示している。なお、図8(a)の16×16、8×8、4×4は前述の図4(a)と同様に各予測ブロックのサイズに対応している。図8(b)は、S704で算出した、4個の4×4予測ブロックに対応した8×8予測ブロック毎の画素分散の値の例を示した図であり、図中の各数値が画素分散の値の例である。図8(c)は、図8(b)に示した画素分散の値に基づいて、S705で変更部203が予測ブロックサイズを変更した後の予測ブロックを示している。図8(a)の例の場合、16×16予測ブロックは1個存在し、32×32予測ブロックは存在しない。したがって、本実施形態の場合、前述の第1の実施形態で説明した例と同様に4×4予測ブロックの閾値は16×1+64×0=16個である。
一方、図8(a)の例の場合、符号化ブロック内に含まれる4×4予測ブロックの数は36個である。したがって、変更部203は、36個−16個=20個の4×4予測ブロックを、8×8予測ブロックに変更する。本実施形態の場合、変更部203は、S704で算出した画素分散が低い順(画素分散の値が小さい順)に4×4予測ブロックを8×8予測ブロックに変更する。図8(b)の例の場合、画素分散の値が小さい8×8予測ブロックの順番は、画素分散の値は200→180→170→120→110→90→60→50→10の順番で小さくなっている。このため変更部203は、4×4予測ブロック数がS302で算出した予測ブロック数の閾値を超えないようにするために、図8(c)の中で画素分散の値が小さい順の10、50、60、90、110の各4×4予測ブロックを8×8予測ブロックに変更する。図8(c)は、図8(b)で画素分散が10、50、60、90、110となっていた4個の4×4予測ブロックを、8×8予測ブロックに変更した後の各予測ブロックを示している。
以上のように第3の実施形態の画像符号化装置100では、図7のフローチャートの処理を行うことにより、符号化ブロック内の予測ブロックの個数を制限できる。これにより、第3の実施形態においても前述した第1,第2の実施形態の場合と同様に、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、その結果、性能低下を防ぐことが可能となる。また、第3の実施形態では、ブロックサイズを変更する予測ブロックを画素分散に基づいて選択しており、画素分散の値が小さい予測ブロックについて予測ブロックサイズを変更しているため、予測ブロックサイズの変更に伴う画質劣化を抑制可能となる。
なお、第3の実施形態においても前述の各実施形態と同様に、4×4予測ブロックサイズを8×8予測ブロックサイズに変更する場合を例に説明しているが、これに限定されない。8×8予測ブロックサイズを16×16予測ブロックサイズに変更してもよいし、16×16予測ブロックサイズを32×32予測ブロックサイズに変更してもよい。K×L(K、Lは1以上の整数)予測ブロックをM×N(MはM≧Kが成り立つ整数、NはN≧Lが成り立つ整数)予測ブロックに変更してもよい。さらに16個の4×4予測ブロックを1個の16×16予測ブロックサイズに変更してもよい。
また、第3の実施形態では、画素分散を求めるブロックは8×8画素サイズのブロックとしているが、この例には限定されず、変更する予測ブロックのサイズに応じて、画素分散を求めるブロックのサイズを変えてもよい。
さらに、第3の実施形態では、ブロックサイズを変更する予測ブロックを、画素分散に基づいて決定したが、この例には限定されない。例えば、予測ブロックサイズを変更する前後の符号化コストを予測ブロック毎に計算し、最も符号化コストが小さくなるように、ブロックサイズを変更する予測ブロックを選択してもよい。
さらに、第3の実施形態では、ブロックサイズを変更する予測ブロックを、画素分散に基づいて決定したが、この例には限定されない。例えば、予測ブロックサイズを変更する前後の符号化コストを予測ブロック毎に計算し、最も符号化コストが小さくなるように、ブロックサイズを変更する予測ブロックを選択してもよい。
<第4の実施形態>
以下、第4の実施形態の画像符号化装置100について説明する。第4の実施形態の画像符号化装置100の構成は図1で示した第1の実施形態の画像符号化装置100の構成と概ね同様である。ただし、第4の実施形態の場合、イントラ予測部103は、図9に示す構成となされる。以下、第4の実施形態におけるイントラ予測部103について、図9を用いて説明する。
以下、第4の実施形態の画像符号化装置100について説明する。第4の実施形態の画像符号化装置100の構成は図1で示した第1の実施形態の画像符号化装置100の構成と概ね同様である。ただし、第4の実施形態の場合、イントラ予測部103は、図9に示す構成となされる。以下、第4の実施形態におけるイントラ予測部103について、図9を用いて説明する。
図9において、ブロック決定部901は、符号化ブロックのデータを受け取り、符号化ブロック内の各予測ブロックのサイズを決定して、各予測ブロックサイズ及び画素データをモード決定部902に出力する。
モード決定部902は、ブロック決定部901から符号化ブロックの画素データ及び予測ブロックサイズの情報を受け取り、各予測ブロックに対するイントラ予測モードを決定する。
モード決定部902は、ブロック決定部901から符号化ブロックの画素データ及び予測ブロックサイズの情報を受け取り、各予測ブロックに対するイントラ予測モードを決定する。
以下、第4の実施形態のブロック決定部901の動作について、図10のフローチャートを参照して説明する。
S901において、ブロック決定部901は、符号化ブロック内に使用できる4×4予測ブロックの数を示すblock_numを初期値0にセット(block_num=0とする。)する。
S901において、ブロック決定部901は、符号化ブロック内に使用できる4×4予測ブロックの数を示すblock_numを初期値0にセット(block_num=0とする。)する。
次のS902にて、ブロック決定部901は、block_numが0より大きいか(block_num>0)否かを判定する。そして、ブロック決定部901は、S902の判定においてblock_num>0であると判定(Yes)した場合にはS903に処理を進め、一方、block_numが0であると判定(No)した場合にはS904に処理を進める。
S903に進んだ場合、ブロック決定部901は、4×4予測ブロックを予測ブロックサイズの候補として含めて、符号化ブロック内の各予測ブロックのサイズを決定する。予測ブロックサイズの決定処理は、前述の第1の実施形態におけるS301と同様の処理であるため、その説明は省略する。S903の後、ブロック決定部901の処理はS905に進む。
一方、S904に進んだ場合、ブロック決定部901は、4×4予測ブロックを予測ブロックサイズの候補として含めず、符号化ブロック内の各予測ブロックのサイズを決定する。S904の後、ブロック決定部901の処理はS905に進む。
一方、S904に進んだ場合、ブロック決定部901は、4×4予測ブロックを予測ブロックサイズの候補として含めず、符号化ブロック内の各予測ブロックのサイズを決定する。S904の後、ブロック決定部901の処理はS905に進む。
S905において、ブロック決定部901は、S903又はS904で決定した予測ブロックサイズが4×4予測ブロックサイズであるか否かを判定する。ブロック決定部901は、予測ブロックサイズが4×4予測ブロックサイズであると判定(Yes)した場合にはS906に処理を進め、4×4予測ブロックサイズでないと判定(No)した場合にはS907に処理を進める。
S906に進むと、ブロック決定部901は、block_num=block_num−1をセットする。すなわちこの場合、使用できる4×4予測ブロックの個数は1個減少する。S906の後、ブロック決定部901の処理はS913に進む。
一方、S907に進んだ場合、ブロック決定部901は、S903又はS904で決定した予測ブロックサイズが8×8予測ブロックサイズであるか否かを判定する。ブロック決定部901は、予測ブロックサイズが8×8予測ブロックサイズであると判定(Yes)した場合にはS908に処理を進め、8×8予測ブロックサイズでないと判定(No)した場合にはS909に処理を進める。
一方、S907に進んだ場合、ブロック決定部901は、S903又はS904で決定した予測ブロックサイズが8×8予測ブロックサイズであるか否かを判定する。ブロック決定部901は、予測ブロックサイズが8×8予測ブロックサイズであると判定(Yes)した場合にはS908に処理を進め、8×8予測ブロックサイズでないと判定(No)した場合にはS909に処理を進める。
S908に進むと、ブロック決定部901は、block_num=block_numをセットする。すなわちこの場合、使用可能な4×4予測ブロックの個数はそのままとなる。S908の後、ブロック決定部901の処理はS913に進む。
一方、S909に進んだ場合、ブロック決定部901は、S903又はS904で決定した予測ブロックサイズが16×16予測ブロックサイズであるか否かを判定する。ブロック決定部901は、予測ブロックサイズが16×16予測ブロックサイズであると判定(Yes)した場合にはS910に処理を進め、16×16予測ブロックサイズでないと判定(No)した場合にはS911に処理を進める。
一方、S909に進んだ場合、ブロック決定部901は、S903又はS904で決定した予測ブロックサイズが16×16予測ブロックサイズであるか否かを判定する。ブロック決定部901は、予測ブロックサイズが16×16予測ブロックサイズであると判定(Yes)した場合にはS910に処理を進め、16×16予測ブロックサイズでないと判定(No)した場合にはS911に処理を進める。
S910に進むと、ブロック決定部901は、block_num=block_num+16をセットする。すなわちこの場合、使用可能な4×4予測ブロック数は16個増加する。S910の後、ブロック決定部901の処理はS913に進む。
一方、S911に進んだ場合、ブロック決定部901は、S904で決定した予測ブロックサイズが32×32予測ブロックサイズであるか否かを判定する。ブロック決定部901は、予測ブロックサイズが32×32予測ブロックサイズであると判定(Yes)した場合にはS912に処理を進め、32×32予測ブロックサイズでないと判定(No)した場合にはS913に処理を進める。
一方、S911に進んだ場合、ブロック決定部901は、S904で決定した予測ブロックサイズが32×32予測ブロックサイズであるか否かを判定する。ブロック決定部901は、予測ブロックサイズが32×32予測ブロックサイズであると判定(Yes)した場合にはS912に処理を進め、32×32予測ブロックサイズでないと判定(No)した場合にはS913に処理を進める。
S912に進むと、ブロック決定部901は、block_num=block_num+64をセットする。すなわちこの場合、使用可能な4×4予測ブロックの個数は64個増加する。S912の後、ブロック決定部901の処理はS913に進む。
S913に進むと、ブロック決定部901は、符号化ブロック内の全ての画素について予測ブロックが決定したか否かを判定する。ブロック決定部901は、全ての画素の予測ブロックが決定したと判定(Yes)した場合には図10のフローチャートの処理を終了し、一方、全ての画素の予測ブロックが決定していないと判定(No)した場合にはS902に処理を戻して、以降の処理を行う。
S913に進むと、ブロック決定部901は、符号化ブロック内の全ての画素について予測ブロックが決定したか否かを判定する。ブロック決定部901は、全ての画素の予測ブロックが決定したと判定(Yes)した場合には図10のフローチャートの処理を終了し、一方、全ての画素の予測ブロックが決定していないと判定(No)した場合にはS902に処理を戻して、以降の処理を行う。
なお、本実施形態の場合、S906、S908、S910及びS912において、block_numの値を増減するが、増減幅は前述の例には限定されない。一例として、S910でblock_numの値を32個増加させたりしてもよい。
第4の実施形態によれば、図9のフローチャートの処理を行うことで、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、性能低下を防ぐことが可能である。
また、本実施形態では、4×4予測ブロックの個数を制限しているが、これには限定されず、例えば8×8予測ブロックの個数を制限しても、また、M×N(M、Nは1以上の整数)予測ブロックの個数を制限してもよい。さらに、制限する予測ブロックのサイズは1種類でなくてもよい。
第4の実施形態によれば、図9のフローチャートの処理を行うことで、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、性能低下を防ぐことが可能である。
また、本実施形態では、4×4予測ブロックの個数を制限しているが、これには限定されず、例えば8×8予測ブロックの個数を制限しても、また、M×N(M、Nは1以上の整数)予測ブロックの個数を制限してもよい。さらに、制限する予測ブロックのサイズは1種類でなくてもよい。
また、本実施形態では、例えばblock_numの値に応じて、4×4予測ブロックと8×8予測ブロックの使用を制限してもよい。この例の場合、ブロック決定部901は、符号化ブロック内で複数の予測ブロックサイズを決定する際に、符号化ブロック内で既に決定された他の予測ブロックサイズに基づいて、4×4予測ブロック等の所定の予測ブロックサイズの使用を制限する機能を有する。
<第5の実施形態>
以下、第5の実施形態に画像符号化装置100について説明する。第1の実施形態では、符号化ブロック毎に4×4予測ブロック数を制限したが、第5の実施形態では、複数の符号化ブロックにわたって4×4予測ブロック数を制限する。なお、第5の実施形態の画像符号化装置100の構成は図1及び図2で示した第1の実施形態の画像符号化装置100の構成と同様である。
以下、第5の実施形態におけるイントラ予測部103の動作を図11のフローチャートを使用して説明する。なお、図11のフローチャートのS1101、S1102、S1104、S1105の処理は、第1の実施形態におけるS301、S302、S303、S304と同様であるためその説明は省略する。
以下、第5の実施形態に画像符号化装置100について説明する。第1の実施形態では、符号化ブロック毎に4×4予測ブロック数を制限したが、第5の実施形態では、複数の符号化ブロックにわたって4×4予測ブロック数を制限する。なお、第5の実施形態の画像符号化装置100の構成は図1及び図2で示した第1の実施形態の画像符号化装置100の構成と同様である。
以下、第5の実施形態におけるイントラ予測部103の動作を図11のフローチャートを使用して説明する。なお、図11のフローチャートのS1101、S1102、S1104、S1105の処理は、第1の実施形態におけるS301、S302、S303、S304と同様であるためその説明は省略する。
第5の実施形態の場合、S1102の処理後、イントラ予測部1103の処理は、変更部203で行われるS1103の処理に進む。S1103において、変更部203は、予測ブロック数の閾値の更新を行う。本実施形態の場合、変更部203は、後述するS1106にて保持した一つ前の符号化ブロックにおける4×4予測ブロック数と閾値との差分を示す値と、S1102で算出された閾値とを加算して、予測ブロック数の閾値を更新する。そして、S1103の処理後、変更部203は、S1104に処理を進める。
また、第5の実施形態の場合、変更部203は、S1104において4×4予測ブロック数が閾値以下と判定(No)した場合にはS1106に処理を進める。S1106の処理に進むと、変更部203は、S1102で算出した4×4予測ブロック数と閾値との差分を保持する。そして、変更部203は、S1106で保持された差分を、次の符号化ブロックにおける4×4予測ブロック数の閾値に加算する。そして、S1106の後、変更部203は、S1107に処理を進める。また、第5の実施形態の場合、変更部203は、S1105の処理後、S1107に処理を進める。
S1107に進むと、変更部203は、全ての符号化ブロックの処理が完了したかを判定する。変更部203は、全ての符号化ブロックの処理が完了したと判定(Yes)した場合には図7のフローチャートの処理を終了し、一方全ての符号化ブロックの処理が完了していないと判定(No)した場合にはS1101に戻って次の符号化ブロックの処理を行う。
第5の実施形態では、S1160において4×4予測ブロック数と閾値との差分を保持し、S1103において一つ前の符号化ブロックの4×4予測ブロック数と閾値との差分値を閾値に加算して予測ブロック数の閾値を更新している。このため、第5の実施形態によれば、符号化ブロックを跨って4×4予測ブロック数を制限することが可能となる。したがって、第5の実施形態によれば、符号化ブロック内に予測ブロックが多く存在することを防ぐことが可能となり、性能低下を防ぐことが可能となる。
<PCへの適用例>
図14は、前述した各実施形態に係る画像符号化装置をコンピュータにより実現する場合の、コンピュータの概略構成例を示す図である。
図14において、CPU1001は、中央演算装置である。RAM1002は、揮発性メモリであり、前述した各実施形態の何れかの画像符号化処理を実現するためのプログラムが展開され、また、画像データなどが一時的に格納される。ROM1003は不揮発性メモリであり、CPU1001の起動用プログラムや各種初期設定データ等が格納されている。外部記憶装置1006は、RAM1002と比較して大容量な記録デバイスであり、例えばHDD(ハードディスクドライブ)やSSD(ソリッドステートドライブ)からなる。外部記憶装置1006には、CPU1001により実行されるOS(基本ソフトウェア)や、実施形態に係る画像符号化処理を実現するためのプログラム、その他各種のデータ等が格納されている。また、外部記憶装置1006には、撮影された画像データやネットワーク等を介して取得された画像データ等も記録可能となされている。I/F1007は、外部ネットワーク等と接続するためのインターフェースであり、I/F1007を介してインターネット等を介した通信や他のコンピュータ等との通信が行われる。実施形態の画像符号化処理のプログラムはI/F1007を介して取得されてもよく、また、実施形態の画像符号化処理にて扱う画像データもI/F1007を介して取得されてもよい。出力部1005は、液晶等の表示デバイスである。これらの各構成はバス1010により接続されている。
図14は、前述した各実施形態に係る画像符号化装置をコンピュータにより実現する場合の、コンピュータの概略構成例を示す図である。
図14において、CPU1001は、中央演算装置である。RAM1002は、揮発性メモリであり、前述した各実施形態の何れかの画像符号化処理を実現するためのプログラムが展開され、また、画像データなどが一時的に格納される。ROM1003は不揮発性メモリであり、CPU1001の起動用プログラムや各種初期設定データ等が格納されている。外部記憶装置1006は、RAM1002と比較して大容量な記録デバイスであり、例えばHDD(ハードディスクドライブ)やSSD(ソリッドステートドライブ)からなる。外部記憶装置1006には、CPU1001により実行されるOS(基本ソフトウェア)や、実施形態に係る画像符号化処理を実現するためのプログラム、その他各種のデータ等が格納されている。また、外部記憶装置1006には、撮影された画像データやネットワーク等を介して取得された画像データ等も記録可能となされている。I/F1007は、外部ネットワーク等と接続するためのインターフェースであり、I/F1007を介してインターネット等を介した通信や他のコンピュータ等との通信が行われる。実施形態の画像符号化処理のプログラムはI/F1007を介して取得されてもよく、また、実施形態の画像符号化処理にて扱う画像データもI/F1007を介して取得されてもよい。出力部1005は、液晶等の表示デバイスである。これらの各構成はバス1010により接続されている。
CPU1001は、電源ON等の起動時、ROM1003に格納されている起動用プログラムを実行する。この起動用プログラムは、外部記憶装置1006に格納されているOSを読み出し、RAM1002に展開するためのものである。CPU1001は、OSの起動後、操作部1004等を介してユーザにより実施形態の画像符号化処理のプログラムを起動する旨の指示がなされると、外部記憶装置1006から画像符号化処理のプログラムを読み出してRAM1002に展開する。これにより、CPU1001は、実施形態の画像符号化処理を実行可能な状態となる。また、CPU1001は、実施形態の画像符号化処理のプログラムの動作に用いられる各種データについてもRAM1002上に格納して読み書きを行う。
また、実施形態の画像符号化処理プログラムは、図1の画像符号化装置100の各部の処理を、CPU1001が実行可能なプログラムとなされる。すなわち、画像符号化処理プログラムを実行することで、CPU1001は、分割部102、イントラ予測部103、インター予測部104、判定部105、補償部106等の各部の処理を行う。また、CPU1001は、画像符号化処理プログラムを実行することで、変換・量子化部107、逆変換・逆量子化部108、画像再生部109、フィルタ処理部110、符号化部112の各処理も行うこともできる。特に実施形態の画像符号化処理プログラムは、図2や図9の構成、図3、図7、図10、図11の各フローチャートの処理を、CPU1001が実行可能なプログラムとなされている。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
102:分割部、103:イントラ予測部、104:インター予測部、105:判定部、106:補償部、107:変換・量子化部、108:逆変換・逆量子化部、109:画像再生部、110:フィルタ処理部、111:フレームメモリ、112:符号化部、201,901:ブロック決定部、202:閾値決定部、203:ブロック変更部、204,902:モード決定部
Claims (13)
- 画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置であって、
前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定手段と、
所定の予測ブロックサイズの予測ブロック数に対する閾値を決定する閾値決定手段と、
前記閾値決定手段で決定された閾値に基づいて、前記決定手段にて決定された複数の予測ブロックのサイズのうち、第1の予測ブロックサイズを第2の予測ブロックサイズに変更する変更手段と、
を有することを特徴とする画像符号化装置。 - 前記閾値決定手段は、前記符号化単位のブロック内で前記予測ブロックのサイズ毎にカウントした予測ブロック数に基づいて前記閾値を決定することを特徴とする請求項1に記載の画像符号化装置。
- 前記閾値決定手段は、M×N(Mは1以上の整数、Nは1以上の整数)画素の予測ブロックサイズの予測ブロック数に基づいて前記閾値を算出することを特徴とする請求項2に記載の画像符号化装置。
- 前記閾値決定手段は、画像サイズに基づいて前記閾値を決定することを特徴とする請求項1に記載の画像符号化装置。
- 前記閾値決定手段は、所定の符号化方式に規定されている所定のレベルに基づいて前記閾値を決定することを特徴とする請求項1に記載の画像符号化装置。
- 前記閾値決定手段は、画像のフレームレートに基づいて前記閾値を決定することを特徴とする請求項1に記載の画像符号化装置。
- 前記変更手段は、前記第1の予測ブロックサイズの予測ブロックの内、前記符号化単位のブロック内の下側に位置する予測ブロックから順に、前記第2の予測ブロックサイズへの変更を行うことを特徴とする請求項1から6の何れか1項に記載の画像符号化装置。
- 前記変更手段は、前記第1の予測ブロックサイズである予測ブロックの内、前記符号化単位のブロック内の符号化順とは逆の順に、前記第2の予測ブロックサイズへの変更を行うことを特徴とする請求項1から6の何れか1項に記載の画像符号化装置。
- 前記変更手段は、前記第1の予測ブロックサイズである予測ブロックの内、画素分散が低いブロックから順に前記第2の予測ブロックサイズへの変更を行うことを特徴とする請求項1から6の何れか1項に記載の画像符号化装置。
- 前記変更手段は、前記閾値決定手段により決定された閾値と一つ前に処理された符号化単位のブロックに対して決定された閾値との差分を保持し、次に処理される符号化単位のブロックに対して決定された閾値に前記差分を加算することを特徴とする請求項1から9の何れか1項に記載の画像符号化装置。
- 画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置であって、
前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定手段を有し、
前記決定手段は、前記符号化単位のブロック内で前記予測ブロックのサイズを決定する際に、前記符号化単位のブロック内で既に決定されたほかの予測ブロックのサイズに基づいて、所定の予測ブロックサイズの使用を制限する制限手段を含む
ことを特徴とする画像符号化装置。 - 画像を複数に分割した符号化単位のブロック毎に符号化を行う画像符号化装置の画像符号化方法であって、
前記符号化単位のブロック内を複数の予測ブロックに分割する際の各予測ブロックのサイズを決定する決定工程と、
所定の予測ブロックサイズの予測ブロック数に対する閾値を決定する閾値決定工程と、
前記閾値決定工程で決定された閾値に基づいて、前記決定工程にて決定された複数の予測ブロックのサイズのうち、第1の予測ブロックサイズを第2の予測ブロックサイズに変更する変更工程と、
を有することを特徴とする画像符号化方法。 - コンピュータを、請求項1から11の何れか1項に記載の画像符号化装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017067323A JP2018170673A (ja) | 2017-03-30 | 2017-03-30 | 画像符号化装置、画像符号化方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017067323A JP2018170673A (ja) | 2017-03-30 | 2017-03-30 | 画像符号化装置、画像符号化方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018170673A true JP2018170673A (ja) | 2018-11-01 |
Family
ID=64020663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017067323A Pending JP2018170673A (ja) | 2017-03-30 | 2017-03-30 | 画像符号化装置、画像符号化方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018170673A (ja) |
-
2017
- 2017-03-30 JP JP2017067323A patent/JP2018170673A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109997361B (zh) | 用于视频译码的低复杂度符号预测 | |
JP7403555B2 (ja) | イントラコーディングモードにおけるマトリクスの導出 | |
JP5134001B2 (ja) | 下層のフィルタリングを備えたスケーラブルビデオ符号化 | |
TWI521890B (zh) | Image coding apparatus, method and program, and image decoding apparatus, method and program | |
CN117221528B (zh) | 视频编码方法、计算设备和介质 | |
CN111133759B (zh) | 编码或解码视频数据的方法和装置 | |
KR102438246B1 (ko) | 디블로킹 필터 방법 및 장치 | |
CN111316642B (zh) | 信令图像编码和解码划分信息的方法和装置 | |
WO2020219940A1 (en) | Global motion for merge mode candidates in inter prediction | |
US9420303B2 (en) | Method and apparatus for displacement vector component transformation in video coding and decoding | |
JP4801778B2 (ja) | 映像圧縮符号化装置、映像復元装置、映像圧縮プログラム、及び、映像復元プログラム | |
JP2022544156A (ja) | ブロックベースの適応分解能管理 | |
CN111264061B (zh) | 视频编码的方法与装置,以及视频解码的方法与装置 | |
CN114257810B (zh) | 上下文模型的选择方法、装置、设备及存储介质 | |
US11202082B2 (en) | Image processing apparatus and method | |
JP2018170673A (ja) | 画像符号化装置、画像符号化方法、及びプログラム | |
CN112956191A (zh) | 帧内预测方法及装置、计算机可读存储介质 | |
KR20130022541A (ko) | 영상의 부호화 방법 및 장치, 및 영상의 복호화 방법 및 장치 | |
JP2013157950A (ja) | 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム | |
JP7310919B2 (ja) | フィルタ生成方法、フィルタ生成装置及びプログラム | |
JP4768011B2 (ja) | 動画像符号化装置、及び、動画像復号装置 | |
JP6543548B2 (ja) | 動画像符号化装置、動画像符号化方法、及びプログラム | |
CN117119189A (zh) | 应用于视频编解码的量化、反量化方法、装置以及设备 | |
CN115834882A (zh) | 一种帧内预测方法、装置、电子设备及存储介质 | |
CN113261279A (zh) | 预测值的确定方法、编码器、解码器以及存储介质 |