JP2020092327A - 画像符号化装置、画像符号化方法、およびプログラム - Google Patents
画像符号化装置、画像符号化方法、およびプログラム Download PDFInfo
- Publication number
- JP2020092327A JP2020092327A JP2018228296A JP2018228296A JP2020092327A JP 2020092327 A JP2020092327 A JP 2020092327A JP 2018228296 A JP2018228296 A JP 2018228296A JP 2018228296 A JP2018228296 A JP 2018228296A JP 2020092327 A JP2020092327 A JP 2020092327A
- Authority
- JP
- Japan
- Prior art keywords
- block
- image
- encoding
- blocks
- unit
- 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
Abstract
【課題】 所定の単位ごとの符号化データが固定長以下に符号化する。【解決手段】 画像を所定の単位で固定長符号化する画像符号化装置であって、前記画像を、複数の画素からなるブロックに分割する分割手段と、前記画像の特徴量を取得する取得手段と、前記特徴量に基づいて、少なくとも2つ以上のブロックを含む前記所定の単位とするブロックの組み合わせを選択する選択手段と、前記選択手段により選択された所定の単位ごとに固定長符号化する符号化手段と、を有することを特徴とする。【選択図】 図1
Description
本発明は、画像データを固定長符号化する技術に関する。
従来、画像データを所定の符号量以下になるよう符号化する固定長符号化技術が知られている。特許文献1には、画像のおけるブロック毎に特徴を抽出し、ブロック毎に特徴に応じた量子化を行うことで、各ブロックに対して固定長符号化を実現する方を記載している。特許文献1に記載の方法によれば、1つのブロックに対する符号は、一定の長さとなる。
上記のような従来技術においては、画素値に変化のないブロックに余分に符号を割り当てたり、複雑なテクスチャのブロックに対しては他のブロックに比べて過剰画質を劣化させてしまったりする場合がある。
そこで本発明では、所定の単位ごとの符号化データが固定長以下に符号化しつつ、所定の単位ごとに固定長をオーバーするデータ量を抑制することを目的とする。
かかる課題を解決するため本発明は、画像を所定の単位で固定長符号化する画像符号化装置であって、前記画像を、複数の画素からなるブロックに分割する分割手段と、前記画像の特徴量を取得する取得手段と、前記特徴量に基づいて、少なくとも2つ以上のブロックを含む前記所定の単位とするブロックの組み合わせを選択する選択手段と、前記選択手段により選択された所定の単位ごとに固定長符号化する符号化手段と、を有することを特徴とする。
本発明により、所定の単位ごとの符号化データが固定長以下に符号化しつつ、所定の単位ごとに固定長をオーバーするデータ量を抑制することができる。
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必ずしも必須のものとは限らない。
<第1の実施形態>
第1の実施形態では、画像特徴量を利用して、固定長符号化するブロックの組み合わせを決定することで、高画質に固定長符号化する方法について説明する。本実施形態の画像符号化装置は、デジタルカメラ等の撮像装置に内蔵されるものとして説明する。
第1の実施形態では、画像特徴量を利用して、固定長符号化するブロックの組み合わせを決定することで、高画質に固定長符号化する方法について説明する。本実施形態の画像符号化装置は、デジタルカメラ等の撮像装置に内蔵されるものとして説明する。
図1は、第1の実施形態に適用可能な画像符号化装置の構成を示すブロック図である。本実施形態の画像符号化装置は、入力部101、ブロック分割部102、特徴量取得部103、ブロック選択部104、固定長符号化部105、符号列形成部106、出力部107を有する。各構成は、1つ以上の回路によって実現されている。
入力部101は、デジタルカメラが有する撮像素子で撮影された画像の画像データを入力する。本実施形態では、R/G0/G1/Bの単位画素群とするベイヤ配列のRAW画像データを入力するものとする。RAW画像データにおける各画素は14ビットのデータが保存されている。なお以下の説明では、RAW画像データに対して、色成分毎のプレーンに分離することにより、各色成分のモノクロ画像として符号化する場合を例に説明する。なお本実施形態は、RAW画像データだけではなく、RGB画像データなど、他の色表現を用いた画像データに対しても適用できる。例えば、RGB各8ビットで表現される画像データに対しては、色成分毎にモノクロ画像として符号化すれば良い。また、1画素がYCbCr各8ビットで表現される輝度色差成分に対しては、成分毎にモノクロ画像として符号化すれば良い。
ブロック分割部102は、入力部101から入力された画像データを、水平方向にBw画素(Bw≧2)、垂直方向にBh画素(Bh≧2)の矩形ブロックに分割する。なお符号化対象の画像は、水平方向にW画素、垂直方向にH画素とする。本実施形態では、符号化対象の画像における画素数Wは、矩形ブロックの幅Bwの整数倍であるものとする。同様に、符号化対象の画像における画素数Hは、矩形ブロックの幅Bhの整数倍であるとする。従ってここでは、符号化対象の画像を矩形ブロックに分割した場合に、不完全なブロックが発生しないものとする。この水平方向にBw画素、垂直方向にBh画素により構成される矩形ブロックをこれ以降、単にブロックと呼び、ブロックにおける全画素のデータをブロックデータと呼ぶ。また処理対象とするブロックを着目ブロックと呼ぶ。本実施形態では、ブロックサイズを4画素×4画素とする。なお、ブロックのサイズは、これに限らない。ブロックのサイズは、後述の符号量制御単位に応じて設定される。具体的には後述の符号量制御単位の半分以下のサイズであり、処理の負担にならないサイズであれば良い。図8に符号化対象の画像とブロックの関係を示す。図8に示すように、符号化対象の画像において、水平方向にi番目、垂直方向にj番目のブロックをB(i,j)と記す。また、ブロックB(i,j)における画素の位置をBij(m,n)と記す。例えば、B(2,3)ブロックにおいて最も左上にある先頭画素はB23(0,0)と記す。
特徴量取得部103は、符号化対象の画像について、ブロック毎の複雑度を取得する。複雑度とは、符号化したときに符号量が多くなるか少なくなるかを予測できる指標値であるものとする。本実施形態において特徴量取得部103は、ブロック内の最小画素値と最大画素値との差分に基づいて複雑度を算出する。最小画素値と最大画素値との差分が所定の閾値未満であれば0を、所定の閾値以上であれば1を出力する。つまり、ブロック毎の複雑度は、0か1かの2値によって表される。複雑度0は、複雑度が低いブロックであることを示し、複雑度1は、複雑度が高いブロックであることを示す。図2は、符号化対象の画像の一例を示す図である。図2に示す画像は4ブロックから構成される。また、ブロック1およびブロック2は、複雑度が0のブロックであり、ブロック3およびブロック4は、複雑度が1であるものとする。特徴量取得部103は、算出したブロック毎の複雑度をブロック選択部104に出力する。
ブロック選択部104には、ブロック分割部102に格納された1ブロック分のブロックデータと、特徴量算出部103が算出した特徴量を示す情報が入力される。ブロック選択部104は、順次入力されるブロックの特徴量に基づいて、符号化を実行する単位である符号量制御単位として複数のブロックを選択する。本実施形態においてブロック選択部104は、複雑度が低い1ブロックと複雑度が高い1ブロックの一組が符号量制御単位となるようにブロックを組み合わせる。
具体的には、ブロック選択部104には、ラスタ順にブロックの特徴量を示す情報とブロックデータが入力されるとすると、図2に示す画像の場合ブロック1の特徴量とブロックデータが入力される。次にブロック2の特徴量を示す情報とブロックデータが入力されるがブロック2は複雑度が0なので、ブロック選択部104のメモリ(不図示)に保持しておく。次にブロック3の特徴量を示す情報とブロックデータが入力される。この時ブロック3は複雑度1なので、ブロック1とブロック3を符号量制御単位として選択する。ブロック選択部104は、選択した組み合わせであるブロック1のブロックデータとブロック3のブロックデータを固定長符号化部105へ出力する。次にブロック選択部104は、ブロック4の特徴量を示す情報とブロックデータを取得する。ブロック4の複雑度は1なので、保持していたブロック2とブロック4とを1組として選択し、ブロック2のブロックデータとブロック4のブロックデータを固定長符号化部105に出力する。ただしブロック選択部104は、ブロック毎にデータを読み出すのではなく、複数のブロックそれぞれの特徴量およびデータを読み出すようにしてもよい。
固定長符号化部105は、符号量制御単位ごとに固定長符号化を実行する。固定長以下に符号化できる方式であれば、どのような方式で符号化しても構わない。
本実施形態における固定長符号化部105が実行する符号化の詳細な処理について説明する。固定長符号化部105の説明をするにあたり、まずは固定長FLについて説明する。固定長FLは、ブロック単位の最大符号長を制御するパラメータである。本実施形態において、ブロック内の画素には非圧縮でそのまま保持される画素と、固定長以下の可変長符号で表される画素が存在する。ブロック内の可変長符号のビット数上限を固定長FLと定める。ただし、符号化対象の画像全体に対する目標符号量を超えないように、各ブロックに対する固定長FLを設定する必要がある。固定値FLは、不図示の装置外部からユーザが入力しても構わないし、装置に予め値を設定しておいてもよい。処理の詳細は後述する。
符号列形成部106は、固定長符号化部105から出力される固定長以下の符号化データに必要な付加情報を加えて、画像符号化装置の出力となる符号列を形成する。図9は本実施形態の出力符号列の構成を示す図である。出力符号列の先頭には、画像を復号するために必要となる情報、例えば、画像の水平方向画素数、垂直方向画素数、コンポーネント数、各コンポーネントのビット数やブロックの幅、高さなどの付加情報がヘッダとして付けられる。本実施形態においては、ヘッダ情報として、符号量制御領域単位のブロック数やブロックの符号化順序を付加することで、復号時にブロック位置の特定が可能となる。ヘッダに続いて、各符号量制御単位の固定長符号化データが付加される。出力部107は、符号列形成部106から供給された符号化データを装置外部へ出力する。
図10は固定長符号化部105の詳細な構成を示すブロック図である。図10に示すように、固定長符号化部105は、固定長保証符号化部1001、オーバービット符号化部1002、バッファ1003、符号量制御部1004を有する。固定長保証符号化部1001へ信号線1000を介して、ブロック選択部104により符号量制御単位ごとにブロックデータが順次入力される。
図3は、固定長符号化部105の処理内容を示すフローチャートである。以下、図10と図3に従って固定長符号化部105の処理手順を説明する。なお以下のフローチャートにおいて、各工程(ステップ)を「S」と表記することとする。
まず、S301において固定長保証符号化部1001は、入力された符号化対象ブロック内の最小画素Pminと最大画素Pmaxを探索する。最小画素Pminとは、ブロックにおいて最小の画素値を有する画素を示し、最大画素Pmaxはブロックにおいて最大の画素値を有する画素を示す。図4(a)に示すように、ブロック内の画素を所定のスキャン順序(例えばラスタースキャン)で0番からn番まで順位付けし、最も左上に位置する先頭画素から順に、各画素値をP0,P1,・・・Pnと表現する。図4(b)の例において、最小画素Pminの画素位置(順位)は0番であり、最小画素Pminの値はP0となる。同図(b)において、最大画素Pmaxの画素位置は7番であり、最大画素Pmaxの値はP7となる。ちなみに、最小画素および最大画素以外の各画素は、図4(b)に示すように、OPm(m=1〜n−2)と表現する。
次に、S302において固定長保証符号化部1001は、最小画素Pminに関する情報と最大画素Pmaxに関する情報を符号化する。本実施形態においては、最小画素Pminの画素位置と画素値、最大画素Pmaxの画素位置と画素値をそれぞれ固定長の符号データとして保持するものとする。このとき画素位置については、ブロックサイズが4×4であるので、位置情報は4bitで表現可能である。ここでは自然二進数表現を用いるが、一意に復号できるものであれば、交番二進など、別の二値表現を用いても構わない。図4の例では、Pminの位置情報は0なので0000、Pmaxの位置情報は7なので0111と表現される。画素値については、非圧縮のままとする。すなわち、入力画像の画素値のビット精度が14bitであるため、14bitで表現される。但し、最大画素Pminの画素値および最大画素Pmaxの画素値は必ずしも非圧縮としなくとも良い。例えば、多少の劣化を許容できる方式であれば入力画素のビット数よりも少ないビットで最小画素値、最大画素値を表現しても構わない。最小画素と最大画素の符号化データについては、図10に示したバッファ1003へ格納される。
S303において固定長保証符号化部1001は、符号化対象ブロックのレンジBRを算出する。本実施形態において、ブロックレンジBRとは、ブロック内の最小画素の画素値と最大画素の画素値との差分のビットレンジのことを示すものと定義する。つまり固定長保証符号化部1001は、最大画素Pmaxの画素値から最小画素Pminの画素値を引くことで、差分値DIFFを算出し、この差分値DIFFを表現するために必要なビットレンジを、ブロックレンジBRとして算出する。例えば、図4に示すように、Pmin=12,Pmax=257の場合、差分値DIFF=245となる。即ち、ブロック内のすべての画素値は最小値と最大値の間の246階調のうちいずれかの階調であり、最小値(または最大値)からの差分で表すことができる。そこで最小値0から最大値DIFF=245を表現するためには、8bit必要になるため、ブロックレンジBR=8となる。
図6を用いてブロックレンジBRと固定長FLの関係を以下に説明する。図6(a)(b)(c)には、特徴の異なる3つのブロックの例を示している。図6(a)は、ブロック内の画素値の変化が小さく、ブロックレンジBRの値が小さい場合の例を示す。図6(b)は、画素値の変化がなだらかな例、図6(c)は、画素値の変化が大きく、ブロックレンジBRの値が大きなブロックの例を示す。各ブロックのブロックレンジBRは、図6(a)BR=2、図6(b)BR=7、図6(c)BR=14である。図6(d)(e)(f)は、図6(a)(b)(c)それぞれのブロックにおいて、固定長FLが7である場合の固定長FLとブロックレンジBRとの関係を示す図である。図6からわかるように、ブロックレンジBRが固定長FL以下である図6(a)、図6(b)のブロックについては、固定長保証符号化部1001は、情報損失なく固定長以下で符号化することができる。図6(a)に示すブロックの場合は、ブロックレンジBRが固定長FL未満であるため、利用しないですむ容量が生じる。この余りの容量を、余剰データ容量SDと呼ぶ。一方図6(c)のブロックについては、ブロックレンジBRが固定長FLより大きいため、BR−FL分、固定長を超えてしまう。そのため、上位ビットから固定長FLビットまでのFLビットは、固定長保証符号化部1001により符号化されるが、固定超FLビットから下位ビットまでのBPビットは後述するオーバービット符号化部1002により符号化されることになる。なお、BPビットの長さは、BR−FL分となる。
S304において固定長保証符号化部1001は、S303において算出されたブロックレンジBRと0とを比較する。ブロックレンジBRの値が0よりも大きい場合(Yes)は、S305へ進み、ブロックレンジBRの値が0以下である場合(No)は、S307に進む。ブロックレンジBRの値が0の場合、符号化対象ブロック内のすべての画素が同じ画素値を持つことを意味する。従って、最小画素と最大画素とを除く画素OP1〜OPmを符号化する必要がない。そのため、画素OP1〜OPmの符号化処理(S305〜S306)をスキップして、S307へ進むことができる。
S305において固定長保証符号化部1001は、最小画素と最大画素を除く画素OP1〜OPmの画素値を、固定長以下になるように符号化する。上述の通り本実施形態では、最小画素と最大画素とを除く画素OPは、OP1、OP2、・・・OP14の14画素存在する。ここでは固定長保証符号化部1001は、符号化対象ブロックのブロックレンジBRが固定長FL以下の場合、各OPの値(OP1〜OPm)から最小画素Pminの画素値を引いた値(Q1〜Qm)を符号化データとして出力する。一方、符号化対象ブロックのブロックレンジBRが固定長FLよりも大きい場合には、固定長保証符号化部1001はまず画素OP1〜OPmの値をそれぞれ最小画素の画素値Pminで引いた値Q1〜Qmを生成する。このQ1〜Qmを固定長FLで表現できるように、固定長保証符号化部1001は、各Q1〜Qmのうち上位FLビットを各OPの固定長FLの符号化データとして生成する。なお固定長保証符号化部1001は、固定長FLの符号化データを超えたビット(以下、オーバービットと呼ぶ)のデータをオーバービット符号化部1002に出力する。
図4(b)に示すブロックの場合について、以下に具体例を示す。本実施形態において固定長FL=7であり、図4(b)に示すブロックはブロックレンジBR=8であるため、下位1bitを切り捨てることで、ブロック内の画素値が7bitで表現できる値となる。例えば、Q1を1ビット右シフトすることで、符号化データ26(実際の符号はこれを7ビット自然二進で表現した”0011010”)が生成される。他のQ2〜Qmの値についても同様に1ビット右シフトして、符号化データを生成する。図4(b)に示すブロックに対する、画素OP1〜OPそれぞれの符号化データの各値については、図5に示すとおりである。固定長保証符号化部1001は、固定長符号化したデータをバッファ1003に格納する。
S306において固定長保証符号化部1001は、ブロックレンジBRと予め定められた固定長FLとを比較する。BRがFL以下の場合(Yes)は、処理をS305へ進める。一方、BRがFLよりも大きな値の場合(No)には、S308へ処理を遷移する。
S307において固定長保証符号化部1001は、余剰データ容量SDを算出する。つまり、FL−BR分がブロックに対する余剰データ容量SDである。S307で処理されるブロックは、ブロックレンジBR≦固定長FLであるため、固定長FL以下で可逆符号化できるブロックであると言える。更に、BR<FLの場合にはFL分すべてを利用せずに、可逆符号化が可能なブロックである。そのため、余剰データ容量SDが0より大きい場合、固定長FLを超えてしまうような他のブロックの符号化データに割り当てることができる。この余剰データ容量SDをこれ以降、プール容量SDと呼ぶ。本実施形態においてプール容量SDは、ブロックレンジBRが固定長FL以下の場合のビット長FL−BRで算出される値である。
具体的には、図6(a)のブロックの場合、SD=5となる。
S307において固定長保証符号化部1001は、算出した処理対象のブロックのプール容量SDを、既に算出した総プール容量に加算する。つまり固定長保証符号化部1001は、符号化対象の画像において生じたプール容量SDの合計を、プール容量SDとして算出する。なお、プール容量SDは画像内の先頭ブロック入力時に0に初期化されているものとする。
S308においてオーバービット符号化部1002は、BR>FLであるブロックにおいて、固定長FLを超えたオーバービットのデータを符号化する。オーバービット符号化処理では、オーバービットデータをビットプレーン毎にランレングス符号化などで符号化しても良いし、ビットデータをそのまま保持しても構わない。この後の符号量制御処理において、プール容量とデータ量を比較できる状態であり、オーバービットデータの中から符号量制御で追加できると判断されたデータ量分を追加可能な形式で保持されていればよい。オーバービット符号化部1002は、符号化したデータをバッファ1003に格納する。S307とS308の処理が終了すると、処理をS309へ進める。
S309において固定長保証符号化部1001は、符号化対象ブロックが最終ブロックであるかどうかの判断を行う。最終ブロックである場合(Yes)、処理をS310へ進める。最終ブロックでない場合(No)には、処理をS301へ戻し、次のブロックを処理する。
S310において符号量制御部1004は、符号量制御処理を行う。符号量制御の方法は、S307において算出したプール容量SD分だけ、オーバービット符号化データからデータを追加する。プール容量SDよりもオーバービット符号化データのデータ量が少ないか、同じデータ量の場合には、すべてのデータが追加される。一方、プール容量SDよりもオーバービット符号化データのデータ量が多い場合には、オーバービット符号化データの中のプール容量SD分のみデータが追加される。
以上に説明したとおり、符号化処理と符号量制御処理を行うことで、符号量制御単位ごとに、固定長以下での符号化が可能となる。図2に示す画像に固定長符号化を適用した場合、一般的にはブロック番号1→2→3→4の順に符号化される。符号量制御単位が2ブロック毎であるとすると、図7(a)に示すように、固定長以下に符号化されるブロック1、2と、符号長が固定長を超過するブロック3,4とがそれぞれ符号量制御単位0、1として符号化される。符号量制御単位0(ブロック1と2)については、固定長以下での符号化が可能となる。一方、符号量制御単位1(ブロック3と4)については、固定長を超過した符号化データ(図7(a)の斜線部分)は、すべて切り捨てられることになる。
本実施形態では、図2示す同じ画像に適用し、ブロック選択部104が選択した組み合わせにより符号化した場合には図7(b)に示す結果となる。ブロック選択部104から、ブロック1と3、2と4の組み合わせが符号量制御単位0、1としてそれぞれ、固定長符号化部105へ入力される。固定長符号化部105では、まずブロック1が符号化されて、プール容量SDが算出される。続いて、ブロック3が符号化されるが、ブロック3については、符号長が固定長を超えるため、オーバービット符号化処理が行われる。符号量制御単位0,1の固定長符号化が終えると、固定長符号化データに、それぞれの符号量制御単位0,1において生じた余剰データ容量の総量の分、オーバービット符号化データが追加される。図7(b)に示す例の場合には、プール容量SDとオーバービット符号化データのデータ量が等しいので、オーバービット符号化データをすべて追加することができる。従って、本実施形態の場合には、図2に示す画像をロスレスで固定長符号化することができる。なお、プール容量SDよりもオーバービット符号化データのデータ量の方が少ない場合には、図2の例と同様に、すべてのオーバービット符号化データを追加できる。プール容量SDよりもオーバービット符号化データのデータ量が多い場合には、オーバービット符号化データの中から、プール容量SD分のみのビットデータを追加する。この場合には、オーバービット符号化データの一部が切り捨てられることになるが、複雑度の高いブロックと低いブロックを組み合わせて処理をしていることで、切り捨てられる量は少なくなると言える。
以上の通り本実施形態によれば、複数のブロックを符号量制御単位とする場合、複雑度の低いブロックと複雑度の高いブロックとの組み合わせを含むように符号量制御単位を設定することで、できるだけ固定長をオーバーするデータ量を抑制することができる。さらに、他の符号量制御単位において生じた余剰のデータ容量分、オーバービットの符号化データを追加することで、切り捨てられる符号化データを減らすことができる。
<変形例>
第1実施形態では、ブロックにおける最小画素値と最大画素値との差分に基づいてブロックの複雑度を算出した。これにより、オーバービットが生じるブロックとオーバービットが生じないブロックとの組み合わせをより精度よく選択することができる。ただし、他の方法により複雑度を算出することもできる。例えば、ブロック内の画素値の分散を複雑度として算出しても良いし、エッジ検出して、エッジ数を複雑度として算出しても良い。また、上述の実施形態では、最小画素値と最大画素値との差分を、閾値を用いて量子化した。しかしながら、差分値をそのまま複雑度として出力しても良いし、0か1かの2値ではなく、複雑度を複数の段階に分けた情報を出力しても構わない。また、特徴量を算出する際に、画像内の全画素を使って算出しても良いが、必ずしも全画素から算出しなくてもよい。例えば、画像から一定間隔で間引いて取得した画素の値から算出するなどしても構わない。特徴量取得部103は符号化対象の画像から特徴量を算出したが、予め算出された特徴量を取得可能な場合には、必ずしも算出しなくてもよい。例えば、特徴量取得部103は符号化装置外部から与えられる特徴量を取得するなどしても良い。
第1実施形態では、ブロックにおける最小画素値と最大画素値との差分に基づいてブロックの複雑度を算出した。これにより、オーバービットが生じるブロックとオーバービットが生じないブロックとの組み合わせをより精度よく選択することができる。ただし、他の方法により複雑度を算出することもできる。例えば、ブロック内の画素値の分散を複雑度として算出しても良いし、エッジ検出して、エッジ数を複雑度として算出しても良い。また、上述の実施形態では、最小画素値と最大画素値との差分を、閾値を用いて量子化した。しかしながら、差分値をそのまま複雑度として出力しても良いし、0か1かの2値ではなく、複雑度を複数の段階に分けた情報を出力しても構わない。また、特徴量を算出する際に、画像内の全画素を使って算出しても良いが、必ずしも全画素から算出しなくてもよい。例えば、画像から一定間隔で間引いて取得した画素の値から算出するなどしても構わない。特徴量取得部103は符号化対象の画像から特徴量を算出したが、予め算出された特徴量を取得可能な場合には、必ずしも算出しなくてもよい。例えば、特徴量取得部103は符号化装置外部から与えられる特徴量を取得するなどしても良い。
また上述の実施形態では、2つのブロックを符号量制御単位として説明したが、符号量制御単位は、適宜各構成のデータ転送する際の転送速度や、処理するために保持できるデータ容量などを考慮して、符号量制御単位とすればよい。ブロック選択部104は、符号量制御単位として、少なくとも1つの複雑度が低いブロックと、少なくとも1つの複雑度が高いブロックとが含まれるようにブロックの組み合わせを選択すれば良い。
また上述の実施形態においては、固定長FLは全てのブロックに対して同じとしたが、ブロック単位に変更可能な場合にも、本実施形態は適用可能である。また、プール容量SDとオーバービット符号化データとをブロックごとに比較するために、プール容量をビット長FL−BRと定義した。しかしながら、プール容量と固定長をオーバーする符号化データとの比較ができれば良く、これに限るものではない。例えば、実際のブロックに対するプール容量としては、最小画素と最大画素以外の画素14画素について各(FL−BR)bitの余剰があることを意味するため、(FL−BR)×14bitをプール容量としてもよい。
また上述の実施形態において符号列形成部106は、ヘッダ情報としてブロックの符号化順序を付加すると説明したが、これに限らない。例えば、動画の1フレームを符号化する際に、先頭フレームでなく、直前に符号化したフレームとの差分が少ない場合には、直前フレームと同じ順序で符号化すると決めておいてもよい。その場合、ヘッダ情報としては、直前フレームと同じ順序で符号化するか否かのフラグを持つなどすればよい。
<第2の実施形態>
第1の実施形態では、ブロックにおける最大画素値と最小画素値との差分を、ブロックの複雑度として算出し、複雑度に基づいて符号量制御単位とするブロックを選択する方法について説明した。本実施形態では、画像の特徴量として関心領域を特徴量として取得しし、関心領域を含むブロックであるか否かに基づいてブロック選択方法について説明する。なお、第1の実施形態と同様の構成については同一の符号を付し、詳細な説明を省略する。
第1の実施形態では、ブロックにおける最大画素値と最小画素値との差分を、ブロックの複雑度として算出し、複雑度に基づいて符号量制御単位とするブロックを選択する方法について説明した。本実施形態では、画像の特徴量として関心領域を特徴量として取得しし、関心領域を含むブロックであるか否かに基づいてブロック選択方法について説明する。なお、第1の実施形態と同様の構成については同一の符号を付し、詳細な説明を省略する。
本実施形態において特徴量取得部103は、事前に画像の認識処理を行って得た関心領域(以下、ROIとも呼ぶ)の位置情報やサイズなどを取得する。ROIの位置情報とサイズを取得することで、画像内の各ブロックについて、特徴量取得部103は、ブロックがROIを含むか否かを特定することができる。図11に、ROIと、ROIを含むブロックとの関係の例を示す。図11の太枠で囲われた領域がROIであり、斜線で示した領域がROIを含むブロックを示している。特徴量取得部103では、ROIを含むブロックであるか含まないブロックであるかがわかる情報をブロック選択部104へ出力する。
ブロック選択部104は、ROIを含むブロックと含まないブロックを組み合わる。これは、ROIについては、符号量を少なくすることよりも画質を優先させ、一方、ROI以外の領域については、画質よりも符号量を少なくすることを優先させるためである。
例えば、図12(a)に示すように、符号量制御単位の中にROIを含むブロックしか存在しなかった場合、固定長をオーバーするブロックのオーバービット符号化データから均一に符号量を追加することになる。一方、図12(b)に示すように、関心領域と関心領域以外を組み合わせることで、関心領域のオーバービット符号化データを優先して追加することが可能となる。これにより、関心領域の画質を向上させることができる。
また、オーバービット符号化データから追加するデータを、ROIを含むブロックから優先的に選択するだけでなく、ROIを含むブロックとそれ以外のブロックで固定長符号化する際のパラメータを変化させることも可能である。第1の実施形態で説明をした固定長符号化の方法では、ブロック内の可変長符号のビット数上限を固定長FLと定めた。この方法で符号化するときに、図13の例の場合、ROIを含むブロックと含まないブロックで符号量が同等のため、固定長FLが全ブロックで固定であれば画質差無く符号化される。しかしながら、固定長FLを、ROIを含むブロックでは大きく、ROIを含まないブロックでは小さく設定しておくことで、ROIを含むブロックの画質を向上させることができる。
なお、画像の特徴量として、ROIと複雑度を組み合わせて取得することができた場合には、複雑度が高い関心領域と、複雑度の低い関心領域以外の領域を組み合わせることで、更にROIの画質を向上できる。
<第3の実施形態>
本実施形態においては、画質劣化が視認されうるか否かの判断基準から、符号量制御単位とするブロックを選択する方法について説明する。
本実施形態においては、画質劣化が視認されうるか否かの判断基準から、符号量制御単位とするブロックを選択する方法について説明する。
本実施形態において特徴量取得部103は、ノイズが目立ち易いブロックとノイズが目立ち難いブロックであるという情報を取得する。ここで、ノイズが目立ち易いブロックを劣化視認度の高いブロックとし、ノイズが目立ち難いブロックを劣化視認度の低いブロックと呼ぶものとする。この劣化視認度は、例えば、ブロックに対してDCTなどの周波数変換手段を適用し、高周波成分の電力を数値化することで算出できる。これにより、高周波成分の電力が高いブロックはノイズを視認し難く、高周波成分の電力が低いブロックはノイズを視認し易いと判断できる。
ブロック選択部104は、1つの符号量制御単位として、できるだけ劣化視認度の高いブロックと低いブロックを組み合わせる。劣化視認度の低いブロックに割り当てる符号量を少なくすることで、劣化視認度の高いブロックに対して、符号量を多く割り当てることができ、結果として符号化によるノイズをできるだけ発生させないように制御することが可能となる。
以上の方法により、符号量が同じように発生するような画像についても、画質劣化の視認度によって組み合わせを選択することで、見た目に画質良く固定長符号化することが可能となる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 入力部
102 ブロック分割部
103 特徴量取得部
104 ブロック選択部
105 固定長符号化部
106 符号列形成部
107 出力部
102 ブロック分割部
103 特徴量取得部
104 ブロック選択部
105 固定長符号化部
106 符号列形成部
107 出力部
Claims (10)
- 画像を所定の単位で固定長符号化する画像符号化装置であって、
前記画像を、複数の画素からなるブロックに分割する分割手段と、
前記画像の特徴量を取得する取得手段と、
前記特徴量に基づいて、少なくとも2つ以上のブロックを含む前記所定の単位とするブロックの組み合わせを選択する選択手段と、
前記選択手段により選択された所定の単位ごとに固定長符号化する符号化手段と、
を有することを特徴とする画像符号化装置。 - 前記符号化手段は、前記所定の単位ごとに、前記所定の単位に含まれる複数のブロックのデータを固定長以下になるように符号化する固定長符号化手段と、
前記固定長符号化手段により符号化されなかったオーバービットデータを取得し、前記オーバービットデータを符号化するオーバービット符号化手段と、
前記固定長符号化手段から出力される固定長符号化データと、前記オーバービット符号化手段から出力されるオーバービット符号化データとに基づいて、符号量を制御する符号量制御手段を有することを特徴とする請求項1に記載の画像符号化装置。 - 前記固定長符号化手段は、前記所定の単位ごとに、余剰となる余剰データ容量を算出し、
前記符号量制御手段は、前記余剰データ容量に基づいて、前記固定長符号化データに前記オーバービット符号化との少なくとも一部を追加することを特徴とする請求項2に記載の画像符号化装置。 - 前記選択手段は、符号量が多くなることが予測されるブロックと、符号量が小さくなることが予測されるブロックとを、前記所定の単位として組み合わせることを特徴とする請求項1乃至3の何れか一項に記載の画像符号化装置。
- 前記分割手段は、前記符号化手段が符号化できる前記所定の単位に、複数のブロックが含まれるように、前記所定の単位より小さいサイズのブロックに分割することを特徴とする請求項1乃至4の何れか一項に記載の画像符号化装置。
- 前記取得手段は、ブロック毎の複雑度を前記特徴量として取得し、
前記選択手段は、複雑度の高いブロックと複雑度の低いブロックとそれぞれ少なくとも1つを含むように、2つ以上のブロックを選択することを特徴とする請求項1乃至5の何れか一項に記載の画像符号化装置。 - 前記取得手段は、画像における関心領域を、前記特徴量として取得し、
前記選択手段は、前記心領域を含むブロックと関心領域を含まないブロックとそれぞれ少なくとも1つを含むように、2つ以上のブロックを選択することを特徴とする請求項1乃至5の何れか一項に記載の画像符号化装置。 - 前記取得手段は、ブロック毎の劣化視認度を取得し、
前記選択手段において、劣化視認度の高いブロックと、劣化視認度の低いブロックとそれぞれ少なくとも1つを含むように、2つ以上のブロックを選択することを特徴とする請求項1乃至5の何れか一項に記載の画像符号化装置。 - コンピュータに読み込ませ実行させることで、請求項1乃至8の何れか一項に記載の画像符号化装置として機能させるプログラム。
- 画像を所定の単位で固定長符号化する画像符号化方法であって、
前記画像を、複数の画素からなるブロックに分割し、
前記画像の特徴量を取得し、
前記特徴量に基づいて、少なくとも2つ以上のブロックを含む前記所定の単位とするブロックの組み合わせを選択し、
前記選択された所定の単位ごとに固定長符号化することを特徴とする画像符号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018228296A JP2020092327A (ja) | 2018-12-05 | 2018-12-05 | 画像符号化装置、画像符号化方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018228296A JP2020092327A (ja) | 2018-12-05 | 2018-12-05 | 画像符号化装置、画像符号化方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020092327A true JP2020092327A (ja) | 2020-06-11 |
Family
ID=71013170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018228296A Pending JP2020092327A (ja) | 2018-12-05 | 2018-12-05 | 画像符号化装置、画像符号化方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020092327A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023210594A1 (ja) * | 2022-04-27 | 2023-11-02 | ヌヴォトンテクノロジージャパン株式会社 | 画像符号化装置及び画像符号化方法 |
-
2018
- 2018-12-05 JP JP2018228296A patent/JP2020092327A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023210594A1 (ja) * | 2022-04-27 | 2023-11-02 | ヌヴォトンテクノロジージャパン株式会社 | 画像符号化装置及び画像符号化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2740034C1 (ru) | Линейный кодер для обработки изображений/видео | |
JP4418762B2 (ja) | 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体 | |
JP6626295B2 (ja) | 画像符号化装置、画像処理装置、画像符号化方法 | |
US6909811B1 (en) | Image processing apparatus and method and storage medium storing steps realizing such method | |
JP4979655B2 (ja) | 画像符号化装置及びその制御方法 | |
JP5208218B2 (ja) | 画像符号化装置、デジタルスチルカメラ、デジタルビデオカメラ、撮像素子、および画像符号化方法 | |
KR100611705B1 (ko) | 화상 부호화 장치, 화상 부호화 방법, 및 화상 처리 장치 | |
JP2016213528A (ja) | 画像符号化装置、画像処理装置、画像符号化方法 | |
EP3054683A1 (en) | Image coding device, image decoding device, and programs therefor | |
US8041135B2 (en) | Image encoding apparatus and control method thereof | |
US10154262B2 (en) | Image processing apparatus and image processing method using improved predictive encoding techniques | |
JP2017192078A (ja) | 画像符号化装置及びその制御方法 | |
JP2017005433A (ja) | 画像符号化装置、画像処理装置、画像符号化方法 | |
JP2020092327A (ja) | 画像符号化装置、画像符号化方法、およびプログラム | |
JP2016092589A (ja) | 符号化装置及びその制御方法 | |
JP6637711B2 (ja) | 符号化装置及びその制御方法、プログラム並びに記憶媒体 | |
US20110194767A1 (en) | Image encoding apparatus and control method therefor | |
JP6985924B2 (ja) | 画像符号化装置、画像処理装置、画像符号化方法 | |
US9020289B2 (en) | Image processing apparatus and image processing method for compressing image data by combining spatial frequency conversion, quantization, and entropy coding | |
JP6867774B2 (ja) | 画像符号化装置及びその制御方法 | |
US20190089915A1 (en) | Image processing device, image processing method, and non-transitory computer readable medium storing image processing program | |
JP6512927B2 (ja) | 画像符号化装置及びその制御方法 | |
JP2021072485A (ja) | 符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム | |
JP7444541B2 (ja) | 画像符号化装置、画像復号化装置、撮像装置、画像符号化方法、画像復号化方法、及びプログラム | |
CN110418133B (zh) | 用于为图像数据编码的方法和装置 |