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

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

▶ キヤノン株式会社の特許一覧

特許7451131画像符号化装置、画像符号化方法、及びプログラム
<>
  • 特許-画像符号化装置、画像符号化方法、及びプログラム 図1
  • 特許-画像符号化装置、画像符号化方法、及びプログラム 図2
  • 特許-画像符号化装置、画像符号化方法、及びプログラム 図3
  • 特許-画像符号化装置、画像符号化方法、及びプログラム 図4
  • 特許-画像符号化装置、画像符号化方法、及びプログラム 図5
  • 特許-画像符号化装置、画像符号化方法、及びプログラム 図6
  • 特許-画像符号化装置、画像符号化方法、及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-08
(45)【発行日】2024-03-18
(54)【発明の名称】画像符号化装置、画像符号化方法、及びプログラム
(51)【国際特許分類】
   H04N 19/436 20140101AFI20240311BHJP
   H04N 19/85 20140101ALI20240311BHJP
   H04N 19/91 20140101ALI20240311BHJP
   H04N 19/433 20140101ALI20240311BHJP
【FI】
H04N19/436
H04N19/85
H04N19/91
H04N19/433
【請求項の数】 16
(21)【出願番号】P 2019185396
(22)【出願日】2019-10-08
(65)【公開番号】P2021061547
(43)【公開日】2021-04-15
【審査請求日】2022-09-21
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】塚本 展行
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】特開2008-67026(JP,A)
【文献】特開平3-205985(JP,A)
【文献】特開2008-48130(JP,A)
【文献】特開2010-41235(JP,A)
【文献】特開2017-17541(JP,A)
【文献】国際公開第2010/082231(WO,A1)
【文献】特開2004-30515(JP,A)
【文献】国際公開第2011/004577(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
動画のフレームに画像処理を行う、一つ以上の画像処理手段と、
前記画像処理がなされた後のフレームに可変長符号化処理を行う、二つ以上の可変長符号化手段と、
前記画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化手段を決定する制御手段と、
を有し、
前記二つ以上の可変長符号化手段は、並列して可変長符号化処理を実行可能であり、前記可変長符号化手段ごとに、異なるフレームを可変長符号化処理し、
前記二つ以上の可変長符号化手段の処理能力は、メモリへのアクセス優先度で表され、
前記二つ以上の可変長符号化手段は、前記可変長符号化手段ごとに異なる前記アクセス優先度が設定され、
前記制御手段は、前記画像処理がなされた後のフレームと前記設定されたアクセス優先度とに基づいて、当該画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化手段を決定する
ことを特徴とする画像符号化装置。
【請求項2】
前記メモリは、前記画像処理手段による前記画像処理がなされた後のデータを記憶する中間バッファであることを特徴とする請求項に記載の画像符号化装置。
【請求項3】
前記可変長符号化手段ごとに異なる前記アクセス優先度を設定する設定手段を有することを特徴とする請求項またはに記載の画像符号化装置。
【請求項4】
前記画像処理手段によって前記画像処理がなされた後のフレームは、フレームごとに可変長符号化処理にかかる時間が異なり、
前記制御手段は、前記アクセス優先度が高く設定された可変長符号化手段に対して、可変長符号化処理に時間がかかるフレームを割り当てることを特徴とする請求項に記載の画像符号化装置。
【請求項5】
動画のフレームに画像処理を行う、一つ以上の画像処理手段と、
前記画像処理がなされた後のフレームに可変長符号化処理を行う、二つ以上の可変長符号化手段と、
前記画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化手段を決定する制御手段と、
を有し、
前記二つ以上の可変長符号化手段は、並列して可変長符号化処理を実行可能であり、前記可変長符号化手段ごとに、異なるフレームを可変長符号化処理し、
前記二つ以上の可変長符号化手段の処理能力は、クロック周波数の高さで表され、
前記二つ以上の可変長符号化手段は、前記可変長符号化手段ごとに異なるクロック周波数が設定され、
前記制御手段は、前記画像処理がなされた後のフレームと前記設定されたクロック周波数とに基づいて、当該画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化手段を決定する
ことを特徴とする画像符号化装置。
【請求項6】
前記可変長符号化手段ごとに異なる前記クロック周波数を設定する設定手段を有することを特徴とする請求項に記載の画像符号化装置。
【請求項7】
前記画像処理手段によって前記画像処理がなされた後のフレームは、フレームごとに可変長符号化処理にかかる時間が異なり、
前記制御手段は、前記クロック周波数が高く設定された可変長符号化手段に対して、可変長符号化処理に時間がかかるフレームを割り当てることを特徴とする請求項5または6に記載の画像符号化装置。
【請求項8】
複数の前記画像処理手段を有し、
前記複数の画像処理手段は、前記画像処理手段ごとに、同じフレームの異なる領域のデータに対して画像処理を行うことを特徴とする請求項1または5に記載の画像符号化装置。
【請求項9】
前記複数の画像処理手段により画像処理が行われたデータを記憶する複数のメモリ領域であって、前記複数の画像処理手段にそれぞれ対応する複数のメモリ領域、を有し、
前記複数の画像処理手段により画像処理され前記複数のメモリ領域に記憶された同じフレームのデータを、前記二つ以上の可変長符号化手段のうちの1つの可変長符号化手段により符号化することを特徴とする請求項に記載の画像符号化装置。
【請求項10】
動画のフレームを入力する入力手段を有し、
前記画像処理手段は、前記入力手段により入力された動画のフレームに画像処理を行い、
前記可変長符号化手段は、前記複数のメモリ領域に記憶されている1つのフレームのデータを、前記入力手段による入力順に対応する順序で符号化することを特徴とする請求項に記載の画像符号化装置。
【請求項11】
前記画像処理手段は、前記動画のフレームをマクロブロック行単位で前記画像処理することを特徴とする請求項1または5に記載の画像符号化装置。
【請求項12】
前記画像処理手段が複数ある場合、前記画像処理手段ごとに前記動画のフレームの異なるマクロブロック行の前記画像処理を行うことを特徴とする請求項11に記載の画像符号化装置。
【請求項13】
前記画像符号化装置は、H.264(ISO/IEC14496-10)またはH.265(ISO/IEC23008-3)の規格に則った画像圧縮符号化処理を行う装置であることを特徴とする請求項1乃至12のいずれか1項に記載の画像符号化装置。
【請求項14】
画像符号化装置が実行する画像符号化方法であって、
動画のフレームに画像処理を行う、一つ以上の画像処理工程と、
前記画像処理がなされた後のフレームに可変長符号化処理を行う、二つ以上の可変長符号化工程と、
前記画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化工程を決定する制御工程と、
を有し、
前記二つ以上の可変長符号化工程は、並列して可変長符号化処理を実行可能であり、前記可変長符号化工程ごとに、異なるフレームを可変長符号化処理し、
前記二つ以上の可変長符号化工程の処理能力は、メモリへのアクセス優先度で表され、
前記二つ以上の可変長符号化工程では、前記可変長符号化工程ごとに異なる前記アクセス優先度が設定され、
前記制御工程では、前記画像処理がなされた後のフレームと前記設定されたアクセス優先度とに基づいて、当該画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化工程を決定する
ことを特徴とする画像符号化方法。
【請求項15】
画像符号化装置が実行する画像符号化方法であって、
動画のフレームに画像処理を行う、一つ以上の画像処理工程と、
前記画像処理がなされた後のフレームに可変長符号化処理を行う、二つ以上の可変長符号化工程と、
前記画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化工程を決定する制御工程と、
を有し、
前記二つ以上の可変長符号化工程は、並列して可変長符号化処理を実行可能であり、前記可変長符号化工程ごとに、異なるフレームを可変長符号化処理し、
前記二つ以上の可変長符号化工程の処理能力は、クロック周波数の高さで表され、
前記二つ以上の可変長符号化工程では、前記可変長符号化工程ごとに異なるクロック周波数が設定され、
前記制御工程では、前記画像処理がなされた後のフレームと前記設定されたクロック周波数とに基づいて、当該画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化工程を決定する
ことを特徴とする画像符号化方法。
【請求項16】
コンピュータを、請求項1乃至13のいずれか1項に記載の画像符号化装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を圧縮符号化する技術に関する。
【背景技術】
【0002】
MPEG圧縮技術などを用いて、画像を圧縮(エンコード)伸長(デコード)する技術が、デジタル画像処理機器に用いられている。2013年1月には、ISO/IEC標準23008-3(通称、H.265/HEVC)が国際標準化された。これに伴い、画像圧縮伸長技術は民生AV機器や産業機器においてさらに広く利用されることが予想される。今後の傾向としては、8k4k次世代放送規格(いわゆるスーパーハイビジョン規格:UHDTV(Ultra High Definition Television))に代表されるような画像の高解像度、高画素レート化が進むと予想される。そのために、従来の画像サイズや、高ビットレートなど、幅広いユーザーニーズに対応する必要がある。このような状況において、消費電力を考慮した技術が、特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2008-141531号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の画像符号化装置は、二値化部と二値算術符号化部の間にバッファを設け、二値化部と二値算術符号化部の処理クロックを異ならせ、各処理部に適切な動作周波数を割り当てる事で消費電力を低減できるようにしている。しかしながら、複数の画像(フレーム)から構成される動画を符号化する場合の符号化処理の効率化および符号化処理時間の短縮という観点からみた場合には適しているとは言い難い。
【0005】
そこで、本発明は、複数の画像(フレーム)から構成される動画を符号化する場合の符号化効率の向上と符号化処理時間の短縮を可能にすることを目的とする。
【課題を解決するための手段】
【0006】
本発明は、動画のフレームに画像処理を行う、一つ以上の画像処理手段と、前記画像処理がなされた後のフレームに可変長符号化処理を行う、二つ以上の可変長符号化手段と、前記画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化手段を決定する制御手段と、を有し、前記二つ以上の可変長符号化手段は、並列して可変長符号化処理を実行可能であり、前記可変長符号化手段ごとに、異なるフレームを可変長符号化処理し、前記二つ以上の可変長符号化手段の処理能力は、メモリへのアクセス優先度で表され、前記二つ以上の可変長符号化手段は、前記可変長符号化手段ごとに異なる前記アクセス優先度が設定され、前記制御手段は、前記画像処理がなされた後のフレームと前記設定されたアクセス優先度とに基づいて、当該画像処理がなされた後のフレームの可変長符号化処理を行う前記可変長符号化手段を決定することを特徴とする。
【発明の効果】
【0007】
本発明によれば、複数の画像(フレーム)から構成される動画を符号化する場合の符号化効率の向上と符号化処理時間の短縮が可能となる。
【図面の簡単な説明】
【0008】
図1】画像符号化装置の構成例を示す図である。
図2】画像処理部の構成例を示す図である。
図3】画像符号化装置の動作説明に用いる図である。
図4】画像圧縮処理の流れを示すフローチャートである。
図5】第1の実施形態の可変長符号化処理の流れを示すフローチャートである。
図6】画像圧縮処理と可変長符号化処理のタイミングの一例を示す図である。
図7】第2の実施形態の可変長符号化処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
本発明の実施形態を、添付の図面に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
<第1の実施形態>
先ず、本発明の第1の実施形態に係る画像符号化装置の構成について説明する。図1は、本実施形態の画像符号化装置100の構成例を示す図である。
画像符号化装置100は、H.264(ISO/IEC14496-10)またはH.265(ISO/IEC23008-3)の規格に則った画像圧縮符号化処理を行う装置である。本実施形態の画像符号化装置100は、撮像装置で撮像して生成された複数のフレーム画像によりなる動画のデータ(以下、動画のフレーム画像を原画像とする)が、撮像装置から画像符号化装置100の入力部(図1では不図示)に順次入力される。そして、入力部により入力した原画像を外部メモリ130に配置した原画像バッファ(図1では不図示)に順次格納し、その原画像を圧縮符号化する。なお、画像符号化装置100は、撮像装置と別の装置とし、撮像装置から入力部を介して動画のデータを入力してもよいし、撮像装置の内部に設け、撮像装置の撮像部で撮像され、画像処理や変換処理などを施された動画のデータを、入力部を介して入力してもよい。また、外部メモリ130は、画像符号化装置100と共に、撮像装置の内部に設けてもよいし、あるいは、画像符号化装置100の内部に設け、メモリバス105を介してデータを格納するようにしてもよい。
【0010】
本実施形態の画像符号化装置100において、画像圧縮符号化処理は、イントラ予測又はインター予測による予測画像生成、差分画像生成、周波数変換、量子化・逆量子化を行う画像処理と、エントロピー符号化処理を行う可変長符号化処理とに分かれている。
【0011】
図1の構成例において、画像処理を行う構成は、画像処理部111、112、113、および114の合計4系統あり、それら画像処理部111、112、113、および114の各々が同等の機能を有している。画像処理部111、112、113、および114は、それぞれ、原画像をマクロブロック行単位で並列処理を行うことが可能になっている。
【0012】
また図1の構成例において、可変長符号化処理を行う構成は、可変長符号化部121、122、123、および124の合計4系統あり、それら可変長符号化部121、122、123、および124の各々が同等の機能を有している。可変長符号化部121,122、123、および124は、並列動作を行うことが可能になっている。
【0013】
画像処理部111~114と、可変長符号化部121~124とは、外部メモリ130内に設けられた中間バッファ領域(図1には図示せず)を介して、データの受け渡しを行う。
なお、本実施形態では、4系統の画像処理部111~114、および、同じく4系統の可変長符号化部121~124の例を挙げているが、この例に限定されるものではない。画像符号化装置100に対する要求処理能力やコストなどに応じて、任意に、画像処理部をn系統(nは1以上の整数)、可変長符号化部をm系統(mは2以上の整数)にすることが可能である。
【0014】
制御部101は、画像符号化装置100が備える各ブロックの動作を制御する。制御部101は、制御バス104を介して、クロック制御部102、メモリ制御部103、画像処理部111~114、可変長符号化部121~124を制御する。
【0015】
クロック制御部102は、画像処理部111~114および可変長符号化部121~124に接続され、制御部101による制御の下、画像処理部111~114および可変長符号化部121~124のクロック周波数を設定する設定機能を有している。
【0016】
メモリ制御部103は、制御部101により制御され、画像処理部111~114および可変長符号化部121~124が外部メモリ130へメモリバス105を介してアクセスする優先順位(アクセス優先度)を設定するような設定機能を有している。
【0017】
次に、画像処理部111~114の構成について説明する。図2は、画像処理部111~114の構成例を示した図である。なお、画像処理部111~114は、それぞれが図2に示した構成を有している。
【0018】
画像処理部111~114は、画像処理部ごとに、同じフレームの異なる領域のデータに対して画像処理を行うことができる。画像処理部111~114は、外部メモリ130の原画像バッファ領域(図2には不図示)に格納された原画像のデータを、メモリバス105を経由してマクロブロック行単位で読み出す。画像処理部111は、原画像の(n*4+1)マクロブロック行目(n=0,1,2、3、・・・)を読み出す。なお、画像処理部112は原画像の(n*4+2)マクロブロック行目を読み出し、画像処理部113は原画像の(n*4+3)マクロブロック行目を、画像処理部114は原画像の(n*4+4)マクロブロック行目を読み出す。
【0019】
イントラ予測モード判定部141は、読み出された原画像について例えば輝度成分のイントラ予測モードや色差成分のイントラ予測モードなどのイントラ予測モード判定を行い、その判定結果をイントラ予測部142に知らせる。
イントラ予測部142は、イントラ予測モードの判定結果に応じてイントラ予測画像を生成する。そして、イントラ予測部142は、生成したイントラ予測画像を、残差計算部144と残差計算部153とに出力する。
【0020】
探索部143は、インター予測に最適な動きベクトルを算出し、該動きベクトルに応じた位置の参照画像を外部メモリ130内にある参照フレーム領域(図示せず)からメモリバス105を経由して読み出して、インター予測画像を生成する。そして、探索部143は、生成したインター予測画像を、残差計算部144と残差計算部153とに出力する。
【0021】
残差計算部144は、イントラ予測部142で生成されたイントラ予測画像、又は探索部143で生成されたインター予測画像と、外部メモリ130から入力される原画像との差分を求めることにより、予測残差を生成する。予測残差は、離散コサイン変換部145に入力される。このとき予測残差として、インター予測画像から生成された予測残差か、あるいはイントラ予測画像から生成された予測残差のいずれを用いるかは、そのときの残差の量に応じて選択される。この選択は、例えば、各マクロブロックの残差の絶対値差分和を求め、その値が小さい方を選択することでも実現可能である。
【0022】
離散コサイン変換部145は、入力されてくる予測残差を整数コサイン変換により周波数変換し、得られた周波数サンプルを量子化部146に出力する。
量子化部146は、入力された周波数サンプルのデータを所定の量子化スケールで除算する。そして量子化部146による量子化後の各周波数サンプルは、ジグザグスキャン部147に出力される。
ジグザグスキャン部147は、量子化後の各周波数サンプルの2次元の行列から、ジグザグスキャン順に読み出して、一次元のデータとしてランレングス符号化部148へ出力する。
【0023】
また、残差計算部144は、マクロブロックの分割情報及び、イントラ予測であれば予測モード、インター予測であれば動きベクトルを、ランレングス符号化部148に転送する。
ランレングス符号化部148は、入力されたデータを、H.264規格に則ってゼロ(0)の連続個数及び非ゼロ係数化されたデータに変換し、それらのデータを、メモリバス105を介して外部メモリ130内に設けた中間バッファ領域(不図示)に格納する。
【0024】
外部メモリ130内の中間バッファ領域は、画像処理部111~114の系統ごとの中間バッファ(図1では図示せず)として管理されている。ランレングス符号化部148から出力されたデータは、それら系統ごとの中間バッファに中間データとして格納される。
【0025】
画像処理部111~114では、前述のような画像処理作業と並行して、参照画像を生成するために、量子化部146で除算された各周波数サンプルが逆量子化部151に出力される。
逆量子化部151は、入力されたデータを所定の量子化スケールで乗算するような逆量子化処理により、周波数サンプルが生成される。逆量子化で得られた周波数サンプルは、逆離散コサイン変換部152へ出力される。
逆離散コサイン変換部152は、入力された周波数サンプルを整数コサイン変換する。これにより残差成分が復元され、その残差成分は、残差計算部153に出力される。
【0026】
残差計算部153は、イントラ予測部142で生成されたイントラ予測画像、又は探索部143で生成されたインター予測画像と、逆離散コサイン変換部152からの残差成分とを加算する。そして、残差計算部153で残差成分が加算された後の予測画像は、デブロッキングフィルタ部154に出力される。
【0027】
デブロッキングフィルタ部154は、デブロッキング処理およびブロック歪みの除去処理を行って参照画像を生成し、その参照画像を、メモリバス105を介して外部メモリ130に格納する。
【0028】
前述したような画像圧縮処理は、画像処理部111~114において同様に行われる。そして、画像処理部111~114は、前述のような1フレーム分の画像に対する画像圧縮処理が修了すると、それを制御部101に通知する。
制御部101は、画像処理部111~114から1フレーム分の画像圧縮処理の終了通知を受けると、可変長符号化部121~124を起動する。
【0029】
可変長符号化部121~124は、制御部101により制御され、画像処理部111~114が出力して外部メモリ130の中間バッファにそれぞれ格納された各中間データを、メモリバス105を経由して読み出す。可変長符号化部121~124は、並列して可変長符号化を実行可能である。可変長符号化部121~124は、中間バッファから読み出された各中間データに対し、スライス単位で可変長符号化処理を行う。そして、可変長符号化部121~124は、可変長符号化処理結果であるビットストリームを、メモリバス105を経由して、外部メモリ130のストリームバッファ領域(図1には不図示)に書き込む。
【0030】
ここで、外部メモリ130内のストリームバッファ領域は、可変長符号化部121~124の系統ごとのストリームバッファ(図1では図示せず)として管理されている。可変長符号化部121~124から出力されたデータは、それら系統ごとのストリームバッファに、それぞれビットストリームデータとして格納される。
【0031】
次に、図3を用いて、本実施形態に係る画像符号化装置100の各部の構成とその動作について説明する。なお図3には、画像符号化装置100内の各系統における画像処理部111~114および可変長符号化部121~124と、外部メモリ130内の原画像バッファ領域131、中間バッファ領域132、およびストリームバッファ領域133のみを示している。原画像バッファ領域131は、原画像のI2フレーム(符号順1フレーム目、Iピクチャ)、原画像のB0フレーム(符号順2フレーム目、Bピクチャ)、および原画像のB1フレーム(符号順3フレーム目、Bピクチャ)の画像のみが格納されている例を示す。また中間バッファ領域132には、画像処理部111~114および可変長符号化部121~124の4系統に対応した中間バッファ1~4が設けられている。またストリームバッファ領域133には、可変長符号化部121~124の4系統に対応したストリームバッファ1~4が設けられている。
【0032】
まず図3を用いて、画像符号化装置100が、原画像バッファ領域131に格納された原画像のI2フレーム(符号順1フレーム目、Iピクチャ)の可変長符号化を行う動作について説明する。
原画像バッファ領域131に格納された原画像のI2フレームの可変長符号化が行われる場合、画像処理部111はI2フレームの画像圧縮処理結果である中間データを中間バッファ領域132の中間バッファ1に出力して格納させる。同様に、画像処理部112~114はI2フレームの画像圧縮処理結果である中間データを、それぞれ対応した中間バッファ2~4に出力して格納させる。つまり中間バッファ1~4は、画像処理部111~114により画像処理が行われたデータを記憶する複数のメモリ領域であって、画像処理部111~114にそれぞれ対応するメモリ領域である。そして、画像処理部111~114は、それぞれI2フレームの画像圧縮処理が終了すると、その旨を制御部101に通知する。
【0033】
制御部101は、I2フレームの画像圧縮処理の終了通知を受けると、そのI2フレームの可変長符号化処理を行う可変長符号化部を、可変長符号化部121~124のうち、1つの可変長符号化部121に決定して起動させる。可変長符号化部121は、制御部101により制御され、画像処理部111~114からそれぞれ出力され中間バッファ1~4に格納された中間データを読み出して、スライス単位で可変長符号化する。中間バッファ1~4に格納されたI2フレームの中間データは、I2フレームの原画像の入力順となるように中間バッファ1~4から順に読み出し、スライス単位で可変長符号化する。つまり、可変長符号化部121は、中間バッファ1~4に記憶されている1つのフレームのデータを、入力順に対応する順序で符号化する。これにより、符号化後にデータを並べ替えなくても、符号化後の画像データが構成され、出力されるようになる。そして、可変長符号化部121は、I2フレームの符号化結果であるビットストリームを、ストリームバッファ領域133内のストリームバッファ1に出力して格納させる。なお、I2フレームのようなIピクチャの画像圧縮処理終了通知に応じて、制御部101が可変長符号化部121を起動するのは、後述するように、可変長符号化部121が処理能力の高い可変長符号化部として設定されているためである。また詳細は後述するが、第1の実施形態の場合、可変長符号化部における処理能力の高さは、外部メモリ130へのアクセス優先度によって表されており、可変長符号化部121はアクセス優先度が最も高く設定されている。
【0034】
次に、本実施形態に係る画像符号化装置100において原画像バッファ領域131に格納された原画像のB0フレーム(符号順2フレーム目、Bピクチャ)の可変長符号化を行う場合の動作について説明する。
原画像のB0フレームの可変長符号化が行われる場合、画像処理部111~114は、それぞれ、B0フレームの画像圧縮処理結果である中間データを中間バッファ領域132の中間バッファ1~4に出力して格納させる。そして、画像処理部111~114は、それぞれB0フレームの画像圧縮処理が終了すると、その旨を制御部101に通知する。
【0035】
制御部101は、B0フレームの画像圧縮処理の終了通知を受けると、そのB0フレームの可変長符号化処理を行う可変長符号化部を、可変長符号化部122に決定して起動させる。可変長符号化部122は、制御部101により制御され、画像処理部111~114からそれぞれ出力され中間バッファ1~4に格納された中間データを読み出して、スライス単位で可変長符号化する。そして、可変長符号化部122は、B0フレームの符号化結果であるビットストリームを、ストリームバッファ領域133内のストリームバッファ2に出力して格納させる。なお、B0フレームのようなBピクチャの画像圧縮処理終了通知に応じて、制御部101が可変長符号化部122を起動するのは、後述するように、可変長符号化部122が処理能力の低い可変長符号化部として設定されているためである。詳細は後述するが、第1の実施形態の場合、可変長符号化部121はアクセス優先度が低く設定されている。
【0036】
次に本実施形態に係る画像符号化装置100において原画像バッファ領域131に格納された原画像のB1フレーム(符号順3フレーム目、Bピクチャ)の可変長符号化を行う場合の動作について説明する。
原画像のB1フレームの可変長符号化が行われる場合、画像処理部111~114は、それぞれ、B1フレームの画像圧縮処理結果である中間データを中間バッファ領域132の中間バッファ1~4に出力して格納させる。そして、画像処理部111~114は、それぞれB0フレームの画像圧縮処理が終了すると、その旨を制御部101に通知する。
【0037】
制御部101は、B1フレームの画像圧縮処理の終了通知を受けると、B1フレームの可変長符号化処理を行う可変長符号化部を、可変長符号化部123又は124に決定して起動させる。可変長符号化部123又は124は、制御部101により制御され、画像処理部111~114からそれぞれ出力され中間バッファ1~4に格納された中間データを読み出して、スライス単位で可変長符号化する。そして、可変長符号化部123又は124は、B1フレームの符号化結果であるビットストリームを、ストリームバッファ領域133内のストリームバッファ3又は4に出力して格納させる。なお、詳細は後述するが、本実施形態の場合、可変長符号化部123と124は処理能力の低い可変長符号化部として設定されている。
【0038】
図4は、第1の実施形態における画像圧縮処理の流れを示したフローチャートである。
画像符号化装置100の電源がオン(ON)になされると、制御部101は、ステップS1の処理に進む。ステップS1に進むと、制御部101は、フレーム数を示す変数Nを1(N=1)に設定する。N=1は1フレーム目の画像圧縮処理であることを示す。その後、制御部101は、ステップS2に処理を進める。
【0039】
ステップS2に進むと、制御部101は、画像処理部111~114を起動してNフレーム目の画像圧縮処理を行うように制御する。その後、画像符号化装置100の処理は、ステップS3に進む。
【0040】
ステップS3に進むと、画像処理部111~114は、画像圧縮処理を行い、Nフレーム目の画像圧縮処理を完了して中間データを中間バッファ1~4に出力すると、制御部101に画像圧縮処理完了を通知する。画像処理部111~114からのNフレーム目の画像圧縮処理完了通知は、後述する図5のステップS23における制御部101の判定処理に用いられる。その後、画像符号化装置100の処理はステップS4に進む。
【0041】
ステップS4に進むと、制御部101は、フレーム数を示す変数Nを1プラスして更新する。その後、制御部101は、ステップS5に処理を進める。
ステップS5に進むと、制御部101は、全フレームの画像圧縮処理が終了したか判定し、未処理のフレームが存在する場合にはステップS2に処理を戻す。一方、全フレームの画像圧縮処理が終了した場合、制御部101は、図4のフローチャートの処理を終了する。
【0042】
図5は、第1の実施形態における可変長符号化処理の流れを示したフローチャートである。
画像符号化装置100の電源がONになされると、制御部101は、ステップS21の処理に進む。ステップS21に進むと、制御部101は、起動する可変長符号化部を示す変数M=1を設定する。M=1は可変長符号化部121を起動対象とすることを示す。同様にM=2、3、4はそれぞれ可変長符号化部122、123、124を起動対象とすることを示す。ステップS21の後、制御部101は、ステップS22に処理を進める。
【0043】
ステップS22に進むと、制御部101は、メモリ制御部103を制御することで、外部メモリ130への可変長符号化部121~124のメモリアクセスの優先度を設定させる。第1の実施形態の場合、制御部101は、メモリ制御部103を制御することで、可変長符号化部121、122、123、124の順にメモリアクセスの優先度を高く設定する。これにより、可変長符号化部121は可変長符号化部122、123、および124よりも優先的に外部メモリ130へアクセスすることが可能となる。また、可変長符号化部122は、可変長符号化部123および124よりも優先的に外部メモリ130へアクセスすることが可能となる。また、可変長符号化部123は、可変長符号化部124よりも優先的に外部メモリ130へアクセスすることが可能となる。ステップS22の後、制御部101は、ステップS23に処理を進める。
【0044】
ステップS23に進むと、制御部101は、画像処理部111~114からNフレーム目の画像圧縮処理完了が通知されたか否か判定し、画像処理部111~114からNフレーム目の画像圧縮処理完了が通知されるまでステップS23の判定処理を繰り返す。そして、画像処理部111~114からNフレーム目の画像圧縮処理完了通知を受け取ると、制御部101は、ステップS24に処理を進める。
【0045】
ステップS24に進むと、制御部101は、Nフレーム目がIピクチャであるか判定する。そして、制御部101は、Iピクチャであると判定した場合にはステップS27に処理を進め、Iピクチャでないと判定した場合にはステップS25に処理を進める。
【0046】
ステップS27に進むと、画像圧縮後の中間データサイズが大きく可変長符号化に時間のかかるIピクチャを符号化するための可変長符号化部として、制御部101は、外部メモリ130へのメモリアクセスの優先度が最も高い可変長符号化部121を起動する。すなわち本実施形態の場合、Iピクチャを可変長符号化処理する際には、外部メモリ130へのメモリアクセスの優先度が最も高い可変長符号化部121が用いられることになる。起動された可変長符号化部121は、外部メモリ130上の中間バッファ1~4に格納されたNフレーム目の中間データを読み出し、スライス単位で可変長符号化処理を行う。そして、可変長符号化部121は、Nフレーム目の符号化結果であるビットストリームを外部メモリ130のストリームバッファ領域133内のストリームバッファ1に格納する。このステップS27の処理後、画像符号化装置100の処理はステップS30に進む。
【0047】
ステップS25に進んだ場合、制御部101は、Nフレーム目がPピクチャであるか判定する。そして、制御部101は、Pピクチャであると判定した場合にはステップS28に処理を進め、Pピクチャでないと判定した場合にはステップS26に処理を進める。
【0048】
ステップS28に進むと、Pピクチャを符号化するための可変長符号化部として、制御部101は、外部メモリ130へのメモリアクセスの優先度が2番目に高い可変長符号化部122を起動する。起動された可変長符号化部122は、外部メモリ130上の中間バッファ1~4に格納されたNフレーム目の中間データを読み出し、スライス単位で可変長符号化処理を行う。そして、可変長符号化部122は、Nフレーム目の符号化結果であるビットストリームを外部メモリ130のストリームバッファ領域133内のストリームバッファ2に格納する。このステップS28の処理後、画像符号化装置100の処理はステップS30に進む。
【0049】
ステップS26に進んだ場合、制御部101は、Nフレーム目がBピクチャであるか判定する。そして、制御部101は、Bピクチャであると判定した場合にはステップS29に処理を進め、Bピクチャでないと判定した場合にはステップS32に処理を進める。
【0050】
ステップS29に進むと、画像圧縮後の中間データサイズが小さく可変長符号化に時間のかからないBピクチャを符号化するための可変長符号化部として、制御部101は、メモリアクセスの優先度が低い可変長符号化部123又は124を起動する。起動された可変長符号化部123又は124は、外部メモリ130上の中間バッファ1~4に格納されたNフレーム目の中間データを読み出し、スライス単位で可変長符号化処理を行う。そして、可変長符号化部123又は124は、Nフレーム目の符号化結果であるビットストリームを外部メモリ130のストリームバッファ領域133内のストリームバッファ3又は4に格納する。このステップS29の処理後、画像符号化装置100の処理はステップS30に進む。
【0051】
ステップS30に進むと、ステップS27、ステップS28、ステップS29のいずれかで起動された可変長符号化部は、可変長符号化処理が完了してビットストリームをストリームバッファに格納すると、可変長符号化完了を制御部101に通知する。ステップS30による可変長符号化完了通知を受け取ると、制御部101は、ステップS32に処理を進める。
【0052】
ステップS32に進むと、制御部101は、全フレームの可変長符号化処理が終了したか判定し、未処理のフレームが存在する場合にはステップS23に処理を戻す。一方、全フレームの可変長符号化処理が終了した場合、制御部101は、図5のフローチャートの処理を終了する。
【0053】
図6は、第1の実施形態の画像符号化装置100の画像処理部111~114における画像処理、および可変長符号化部121~124における可変長符号化処理のタイミングを示す図である。
図6に示すように、画像処理部111~114では、I2フレーム、B0フレーム、B1フレーム、P5フレーム、B3フレーム、B4フレームの順に画像圧縮処理が行われるとする。I2フレームはIピクチャとして圧縮符号化され、B0フレーム、B1フレーム、B3フレーム、およびB4フレームはBピクチャとして、P5フレームはPピクチャとして圧縮符号化される。
【0054】
ここで、画像処理部111~114がI2フレームの画像圧縮処理を完了する時間がT0であるとする。I2フレームの画像圧縮処理を完了すると、その完了時間T0のタイミングで、外部メモリ130へのメモリアクセス優先度が最も高い可変長符号化部121は、可変長符号化時間の長いI2フレームの可変長符号化を開始する。
【0055】
次に画像処理部111~114がB0フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、メモリアクセスの優先度が低い可変長符号化部123は、可変長符号化時間の短いB0フレームの可変長符号化を開始する。
【0056】
次に画像処理部111~114がB1フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、メモリアクセスの優先度が低い可変長符号化部124は、可変長符号化時間の短いB1フレームの可変長符号化を開始する。
【0057】
次に画像処理部111~114がP5フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、メモリアクセスの優先度が2番目に高い可変長符号化部122は、P5フレームの可変長符号化を開始する。
【0058】
次に画像処理部111~114がB3フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、メモリアクセスの優先度が低い可変長符号化部123は、可変長符号化時間の短いB3フレームの可変長符号化を開始する。
【0059】
その後、画像処理部111~114がB4フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、メモリアクセスの優先度が低い可変長符号化部124は、可変長符号化時間の短いB4フレームの可変長符号化を開始する。
そして図6の例の場合、B4フレームの可変長符号化が終了する時間T3において、I2フレーム、B0フレーム、B1フレーム、P5フレーム、B3フレーム、およびB4フレームの圧縮符号化が完了したことになる。
【0060】
このように本実施形態の画像符号化装置100は、I2フレーム、B0フレーム、B1フレーム、P5フレーム、B3フレーム、およびB4フレームの圧縮符号化を、複数の処理能力の異なる可変長符号化部121~124に割り振るようになされている。すなわち、本実施形態の画像符号化装置100は、複数の処理能力の異なる可変長符号化部121~124を備えており、画像の符号化処理時間に応じて、最適な可変長符号化部121~124を割り当てる。これにより、本実施形態の画像符号化装置100によれば、可変長符号化部121~124におけるアイドル時間を短縮することができ、複数の画像から構成される動画シーケンス全体の符号化効率の向上と符号化処理時間の短縮が可能となる。
【0061】
<第2の実施形態>
以下第2の実施形態について説明する。なお、第2の実施形態の画像符号化装置100の構成は前述した図1と同様であり、画像処理部111~114の構成は前述した図2と同様であるため、それらの図示と説明は省略する。また、第2の実施形態に係る画像符号化装置100の各部の構成とその動作についても前述の図3で説明したのと同様である。
前述した第1の実施形態では、可変長符号化部121~124の処理能力の高さが外部メモリ130へのアクセス優先度により表されていたが、第2の実施形態の場合は、クロック周波数の高さによって可変長符号化部121~124の処理能力の高さが表される。
【0062】
図7は、第2の実施形態の画像符号化装置100における可変長符号化処理の流れを示したフローチャートである。
第2の実施形態の画像符号化装置100の電源がONになされると、制御部101は、ステップS41の処理に進む。ステップS41に進むと、制御部101は、図5のステップS21と同様に、起動する可変長符号化部を示す変数M=1を設定する。なお、M=2、3、4は前述同様にそれぞれ可変長符号化部122、123、124を起動対象とすることを示す。ステップS41の後、制御部101は、ステップS42に処理を進める。
【0063】
ステップS42に進むと、制御部101は、クロック制御部102を制御することで、可変長符号化部121~124のクロック周波数を設定する。第2の実施形態の場合、制御部101は、クロック制御部102を制御することで、可変長符号化部121、122、123、124の順にクロック周波数を高く設定する。これにより、可変長符号化部121は、可変長符号化部122、123、および124よりも高速に可変長符号化処理が可能となる。また、可変長符号化部122は、可変長符号化部123および124よりも高速に可変長符号化処理が可能となる。また、可変長符号化部123は、可変長符号化部124よりも高速に可変長符号化処理が可能となる。このステップS42の後、制御部101は、ステップS43に処理を進める。
【0064】
ステップS43に進むと、制御部101は、図5のステップS23と同様に、画像処理部111~114からNフレーム目の画像圧縮処理完了が通知されたか否か判定する。そして、画像処理部111~114からNフレーム目の画像圧縮処理完了通知を受け取ると、制御部101は、ステップS44に処理を進める。
【0065】
ステップS44に進むと、制御部101は、図5のステップS24と同様に、Nフレーム目がIピクチャであるか判定し、Iピクチャである場合にはステップS47に進み、Iピクチャでない場合にはステップS45に処理を進める。
【0066】
ステップS47に進むと、画像圧縮後の中間データサイズが大きく可変長符号化に時間のかかるIピクチャを符号化する可変長符号化部として、制御部101は、可変長符号化処理の速度が最も高速な可変長符号化部121を起動する。起動された可変長符号化部121は、外部メモリ130上の中間バッファ1~4に格納されたNフレーム目の中間データを読み出し、スライス単位で可変長符号化処理を行う。そして、可変長符号化部121は、Nフレーム目の符号化結果であるビットストリームを外部メモリ130のストリームバッファ領域133内のストリームバッファ1に格納する。このステップS47の処理後、画像符号化装置100の処理はステップS50に進む。
【0067】
ステップS45に進んだ場合、制御部101は、図5のステップS25と同様に、Nフレーム目がPピクチャであるか判定し、Pピクチャである場合にはステップS48に処理を進め、Pピクチャでない場合にはステップS46に処理を進める。
【0068】
ステップS48に進むと、Pピクチャを符号化する可変長符号化部として、制御部101は、可変長符号化処理の速度が2番目に高速な可変長符号化部122を起動する。起動された可変長符号化部122は、外部メモリ130上の中間バッファ1~4に格納されたNフレーム目の中間データを読み出し、スライス単位で可変長符号化処理を行う。そして、可変長符号化部122は、Nフレーム目の符号化結果であるビットストリームを外部メモリ130のストリームバッファ領域133内のストリームバッファ2に格納する。このステップS48の処理後、画像符号化装置100の処理はステップS50に進む。
【0069】
ステップS46に進んだ場合、制御部101は、図5のステップS26と同様に、Nフレーム目がBピクチャであるか判定し、Bピクチャである場合にはステップS49に処理を進め、Bピクチャでない場合にはステップS52に処理を進める。
【0070】
ステップS49に進むと、画像圧縮後の中間データサイズが小さく可変長符号化に時間のかからないBピクチャを符号化する可変長符号化部として、制御部101は、可変長符号化処理の速度が低速な可変長符号化部123又は124を起動する。起動された可変長符号化部123又は124は、外部メモリ130上の中間バッファ1~4に格納されたNフレーム目の中間データを読み出し、スライス単位で可変長符号化処理を行う。そして、可変長符号化部123又は124は、Nフレーム目の符号化結果であるビットストリームを外部メモリ130のストリームバッファ領域133内のストリームバッファ3又は4に格納する。このステップS49の処理後、画像符号化装置100の処理はステップS50に進む。
【0071】
ステップS50に進むと、ステップS47、ステップS48、ステップS49のいずれかで起動された可変長符号化部は、可変長符号化処理が完了してビットストリームをストリームバッファに格納すると、可変長符号化完了を制御部101に通知する。ステップS50による可変長符号化完了通知を受け取ると、制御部101は、ステップS52に処理を進める。
【0072】
ステップS52に進むと、制御部101は、全フレームの可変長符号化処理が終了したか判定し、未処理のフレームが存在する場合にはステップS43に処理を戻す。一方、全フレームの可変長符号化処理が終了した場合、制御部101は、図7のフローチャートの処理を終了する。
【0073】
次に、第2の実施形態の画像符号化装置100の画像処理部111~114における画像処理、および可変長符号化部121~124における可変長符号化処理のタイミングを、前述した図6を用いて説明する。
【0074】
第2の実施形態の場合、画像処理部111~114がI2フレームの画像圧縮処理を完了した時間T0のタイミングで、クロック周波数が最も高い可変長符号化部121は、可変長符号化時間の長いI2フレームの可変長符号化を開始する。
【0075】
次に画像処理部111~114がB0フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、クロック周波数が低い可変長符号化部123は、可変長符号化時間の短いB0フレームの可変長符号化を開始する。
【0076】
次に画像処理部111~114がB1フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、クロック周波数が低い可変長符号化部124は、可変長符号化時間の短いB1フレームの可変長符号化を開始する。
【0077】
次に画像処理部111~114がP5フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、クロック周波数が2番目に高い可変長符号化部122は、P5フレームの可変長符号化を開始する。
【0078】
次に画像処理部111~114がB3フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、クロック周波数が低い可変長符号化部123は、可変長符号化時間の短いB3フレームの可変長符号化を開始する。
【0079】
その後、画像処理部111~114がB4フレームの画像圧縮処理を完了すると、その完了時間のタイミングで、クロック周波数が低い可変長符号化部124は、可変長符号化時間の短いB4フレームの可変長符号化を開始する。
そして第2の実施形態においても、前述同様に、B4フレームの可変長符号化が終了する時間T3において、I2フレーム、B0フレーム、B1フレーム、P5フレーム、B3フレーム、およびB4フレームの圧縮符号化が完了したことになる。
【0080】
このように、第2の実施形態の画像符号化装置100は、複数の処理クロック等の処理能力の異なる可変長符号化部121~124を備え、画像の符号化処理時間に応じて、最適な可変長符号化部121~124を割り当てる。これにより、第2の実施形態の画像符号化装置100によれば、可変長符号化部121~124のアイドル時間を短縮して、複数の画像から構成される動画シーケンス全体の符号化効率の向上と符号化処理時間の短縮が可能となる。
【0081】
以上、本発明の各実施形態について説明したが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の各実施形態の一部を適宜組み合わせることも可能である。
【0082】
前述した実施形態に係る構成または各フローチャートの処理は、ハードウェア構成により実現されてもよいし、例えばCPUが本実施形態に係るプログラムを実行することによりソフトウェア構成により実現されてもよい。また、一部がハードウェア構成で残りがソフトウェア構成により実現されてもよい。ソフトウェア構成のためのプログラムは、予め用意されている場合だけでなく、不図示の外部メモリ等の記録媒体から取得されたり、不図示のネットワーク等を介して取得されたりしてもよい。
【0083】
なお前述した実施形態の制御部101、画像処理部111~114のイントラ予測モード判定部141、イントラ予測部142、探索部143等では、人工知能(AI:artificial intelligence)を適用した処理が行われてもよい。例えば、それらの各部の代わりとして、機械学習された学習済みモデルを用いてもよい。その場合には、それら各部への入力データと出力データとの組合せを学習データとして複数個準備し、それらから機械学習によって知識を獲得し、獲得した知識に基づいて入力データに対する出力データを結果として出力する学習済みモデルを生成する。この学習済みモデルは、例えばニューラルネットワークモデルで構成できる。そして、それらの学習済みモデルは、前述の各部と同等の処理をするためのプログラムとして、CPUあるいはGPUなどと協働で動作することにより、前述した各部の処理を行う。また、前述の学習済みモデルは、必要に応じて一定のデータを処理する毎に更新する等も可能である。
【0084】
本発明に係る制御処理における1以上の機能を実現するプログラムは、ネットワーク又は記憶媒体を介してシステム又は装置に供給可能であり、そのシステム又は装置のコンピュータの1つ以上のプロセッサにより読また出し実行されることで実現可能である。
前述の各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0085】
100:画像符号化装置、101:制御部、102:クロック制御部、103:メモリ制御部、111~114:画像処理部、121~124:可変長符号化部
図1
図2
図3
図4
図5
図6
図7