JP6512928B2 - 画像符号化装置、画像処理装置、画像符号化方法 - Google Patents

画像符号化装置、画像処理装置、画像符号化方法 Download PDF

Info

Publication number
JP6512928B2
JP6512928B2 JP2015092371A JP2015092371A JP6512928B2 JP 6512928 B2 JP6512928 B2 JP 6512928B2 JP 2015092371 A JP2015092371 A JP 2015092371A JP 2015092371 A JP2015092371 A JP 2015092371A JP 6512928 B2 JP6512928 B2 JP 6512928B2
Authority
JP
Japan
Prior art keywords
quantization step
image
quantization
groups
code length
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.)
Expired - Fee Related
Application number
JP2015092371A
Other languages
English (en)
Other versions
JP2016213528A5 (ja
JP2016213528A (ja
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 JP2015092371A priority Critical patent/JP6512928B2/ja
Priority to US15/139,008 priority patent/US10205946B2/en
Publication of JP2016213528A publication Critical patent/JP2016213528A/ja
Publication of JP2016213528A5 publication Critical patent/JP2016213528A5/ja
Application granted granted Critical
Publication of JP6512928B2 publication Critical patent/JP6512928B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • H04N11/046DPCM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は画像符号化装置、画像処理装置、画像符号化方法に関する。
近年、デジタルビデオなどの撮像装置は高解像度化、高フレームレート化に伴って、システムで扱う画像データ量が著しく増加しており、画像メモリやバスインターフェース回路の高速化が要求されている。これに対し、画像メモリやバスインターフェースの前後で画像の圧縮符号化を行って、画像データ量を削減することで回路の高速化の要求に対応することができる。
この場合、画像圧縮のための符号化方式は回路規模が小型で、符号化遅延の小さいことが望まれる。そのため、従来のJPEGやMPEG2に代表されるDCTベースの符号化方式は不向きである。そこでDPCM(Differential Pulse Code Modulation:差分パルス符号変調)ベースの予測符号化方式での提案がされている(特許文献1を参照)。
特開2010−004514号公報
しかし、DPCMベースの予測符号化方式では、画素レベルの変動が大きいエッジ部分の画質劣化が生じやすい。特許文献1の提案方式では、隣接画素データの差分値が所定の閾値以下であれば画質劣化の少ない符号化が可能である。しかし、急峻なエッジ部分のように隣接画素データの差分値が所定の閾値を超える場合、量子化により元の画素データビットを半分にする(例えば、10ビットから5ビットにする)必要があり、大きな画質劣化の原因になる。同様に、予測画像と符号化対象画像との差分が大きい場合にも、大きな画質劣化の原因となる。
本発明は上記課題に鑑み、効率的に符号化を行い、急峻なエッジ部分など、画素間での差分が大きい部分での画質劣化の低減を目的とする。
上記課題を解決するための本発明は、画像符号化装置であって、
それぞれが所定数の画素からなる複数のグループを含む符号化対象のブロックの符号長が所定値を超えないように、前記グループごとに、前記グループの画像データの符号化処理における量子化のための量子化ステップと符号化方式とを決定する決定手段と、
前記符号化対象のブロックについて、該ブロックに含まれる前記グループごとに前記決定手段が決定した前記量子化ステップと前記符号化方式とに基づき前記符号化処理を行って符号化データを生成する符号化手段と
を備え、
前記決定手段は、
前記グループごとに、量子化された画像データを出力する第1の符号化方式と、量子化された画像データと予測データとの差分を符号化したデータを出力する第2の符号化方式とのうち、符号長がより小さくなる符号化方式に決定し、
複数の量子化ステップのうち、少なくとも第1の量子化ステップと第2の量子化ステップとの何れかを前記グループごとに決定し、
前記第1の量子化ステップは、前記符号化対象のブロックに含まれる前記グループの全てについて該第1の量子化ステップを用いて量子化を行い、該グループのそれぞれについて前記決定された符号化方式で符号化した場合の前記符号化対象のブロックの符号長が前記所定値を超えず、且つ、最大の値となる量子化ステップであって、
前記第2の量子化ステップは、前記第1の量子化ステップよりも小さい量子化ステップであることを特徴とする。
本発明によれば、効率的に符号化を行い、急峻なエッジ部分など、画素間での差分が大きい部分での画質劣化を低減することができる。
発明の実施形態に対応する画像処理装置及び画像符号化部の構成例を示すブロック図。 発明の実施形態に対応する画像復号化部の構成例を示すブロック図。 発明の実施形態に対応する画像符号化部の構成例を示すブロック図。 符号化ブロックを構成する画素データと画素グループとの関係を説明するための図。 発明の実施形態に対応するQP決定部115における処理の一例を示すフローチャート。 図5のS503の処理の一例を示すフローチャート。 図5のS504の処理の一例を示すフローチャート。 図5のS504の処理の他の一例を示すフローチャート。 発明の実施形態に対応する画素グループ単位の符号長及び選択されたQPの一例を示す図。 発明の実施形態に対応する符号化データのフォーマットの例を示す図。
以下、添付の図面を参照しながら、発明の実施形態について詳細に説明する。
[実施形態1]
(画像処理装置の説明)
以下、発明の実施形態に対応する画像処理装置を説明する。図1(a)は発明の実施形態における画像処理装置の構成の一例を示す図である。画像処理装置100は、例えば取得部10、画像符号化部20、メモリ30を有する。図1の画像処理装置100において、各ブロックは、撮像素子や表示素子のような物理的デバイスを除き専用のデバイス、ロジック回路やメモリを用いてハードウェア的に構成されてもよい。或いは、メモリに記憶されている処理プログラムをCPU等のコンピュータが実行することにより、ソフトウェア的に構成されてもよい。画像処理装置100は例えばデジタルカメラとして実施することができるが、それ以外にも、例えばパーソナルコンピュータ、携帯電話、スマートフォン、PDA、タブレット端末、デジタルビデオカメラなどの任意の情報処理端末或いは撮像装置とすることができる。
図1(a)において、取得部10は画像データを入力する機能を有する。取得部10は、例えば、撮像センサを備える撮像部や、外部から伝送路を介して画像データを入力する構成を含む。或いは、取得部10は、記録媒体などから画像データを読み出す構成を含む。また、取得される画像データは、静止画データであってもよく、動画データであってもよい。取得部10が取得する画像データが動画データの場合、複数のフレームの動画データが連続的に取得されてもよい。
取得部10は、取得した画像データを画像符号化部20に供給する。画像符号化部20は、取得部10から供給される画像データをパルス符号変調(PCM)または差分パルス符号変調(DPCM)のいずれかの符号化方式に従って符号化し、情報量が圧縮された符号化データを出力する。出力された符号化データは、メモリ30に記憶される。メモリ30は、画像符号化部20から出力された符号化データを記憶するために必要な記憶容量を有する。メモリ30に記憶された符号化データには後段の処理部において現像処理や更なる圧縮処理が実施される。
なお、図1(a)では、取得部、画像符号化部20及びメモリ30を独立した構成として示しているが、画像処理装置100に実装するに当り、これらを一体に例えば1チップに統合してもよいし、あるいは別体として独立に構成しても良い。
(画像符号化部の説明)
以下、図1(b)を参照して、発明の実施形態に対応する画像符号化部20の構成を説明する。図1(b)は、発明の実施形態に係る画像符号化部20の構成例を示すブロック図である。以下、本実施形態の画像符号化部20の各ブロックの動作について説明する。
図1(a)に示した画像符号化部20は、仮符号化系110と本符号化系120の2つの大ブロックより構成される。さらに仮符号化系110は符号化部111A〜111D、QP決定部115から構成され、本符号化系120で本符号化を行う際に使用する量子化パラメータのセットを決定するように動作する。本符号化系120は遅延部121、符号化部111E、多重化部123で構成され、仮符号化系110で決定された量子化パラメータのセットを用いた量子化処理を含む本符号化を実行するように動作する。画像符号化部20は、画像符号化装置として専用のデバイス、ロジック回路やメモリを用いてハードウェア的に一体的に構成されても良いし、或いは、複数のデバイス等で分散して構成されてもよい。或いは、メモリに記憶されている処理プログラムをCPU等のコンピュータが実行することにより、ソフトウェア的に構成されてもよい。
画像符号化部20には、外部から符号化対象となる画像データが入力端子101を介して入力される。本実施形態では画像データの形式として、図4(a)に示すRGB画像データを例として説明するが、他のデータ形式であっても良い。他のデータ形式の詳細は本実施形態の最後に図4(b)及び(c)を参照して説明する。また、画像データはラスタースキャン順に入力され、各カラー要素であるR(赤)、G(緑)、B(青)の各画素データは時分割に多重されており順次入力されるものとする。また各画素のビット深度は一例として10ビットとする。
(符号ブロックと画素グループの説明)
本実施形態において画像符号化部20が実行する画像符号化処理では、入力画像データを所定サイズ(画素数)を有するブロック(以下、「符号化ブロック」という)に分割し、符号化ブロック単位に符号化を行うものとする。また、符号化ブロックは1つ以上の所定数の画素からなる「画素グループ」にさらに分割される。画素グループは後述する符号化方法(PCM/DPCM)の切り替えや、量子化パラメータ(以下、「QP」という)の切り替えを行う単位となる。画素グループは同一座標の画素や隣接画素など相関性の高い画素で構成されることが望ましく、単一のカラー要素のみで構成してもよいし、複数のカラー要素で構成してもよい。
本実施形態では、RGB画像データの各カラー要素それぞれ水平16画素×垂直1画素×3色=48画素を符号化ブロックとする。また、各カラー要素の1画素ずつの計3画素を画素グループとする。
図4(a)は本実施形態における符号化ブロックを構成する画素データと、画素グループとの関係を説明するための図である。図4(a)に示すように、符号化ブロックは、R、G、Bの各カラー要素について16画素ずつから構成され、画素位置に応じてR、G、Bからなるカラー要素の組のそれぞれにグループ番号が割り当てられ、各画素には画素番号0から47までのいずれかがそれぞれ割り当てられている。例えば、各カラー要素の1画素目のデータであるR0、G0、B0はグループ番号が「0」の画素グループを構成し、2画素目のデータであるR1、G1、B1はグループ番号が「1」の画素グループを構成している。本実施形態では、各画素のデータのことを「画像データ」と呼ぶことにする。
(符号化部111の説明)
次に、仮符号化系110、本符号化系120で共通に使用される符号化部111の構成及び動作について、図3を参照して説明する。図3は符号化部111の構成例を示すブロック図である。図3に示すように、符号化部111は、例えば量子化部301、予測部302、減算器303、可変長符号化部304、PCM符号長算出部305、符号長比較部306、セレクタ307、308を含んで構成される。
符号化部111には、画像データとQPとが入力される。仮符号化系110の場合、QPは符号化部111Aから111Dのそれぞれに対して固定値として予め割り当てられていてもよい。図1(b)では一例として、符号化部111Aから111Dまで順にQPとして0、1、2、3がそれぞれ割り当てられている場合を示している。仮符号化系110の場合、各符号化部が予めQPの値を保持していても良い。本符号化系120には、仮符号化系110で決定されたQPがQP決定部115から入力される。以下、符号化部111の具体的構成及びその動作について詳述する。
まず、符号化部111に入力された画像データは量子化部301に入力される。量子化部301は与えられたQPにより入力画像データを量子化し、量子化されたデータを予測部302、減算器303、セレクタ307にそれぞれ出力する。本発明では量子化部301で量子化された量子化データをPCMデータと呼ぶ。本実施形態では、QPの値を0を最小値とする整数値とし、0から3までの範囲で変更できるものとして説明するが、より大きなQPの値を設定して更に大きな量子化ステップを使用しても良い。
本実施形態において量子化部301は、QPが小さいほど量子化ステップを小さく(細かく)し、QPが大きいほど量子化ステップを大きく(粗く)する。そして、QPが1増えるとPCMデータの有意ビットが1ビット減少するように量子化を行う。例えば、式1で表される量子化を行う。
Quant = Data / (1 << QP) ・・・式1
(Quant:量子化データ、Data:入力画像データ、QP:量子化パラメータである。)
また、1<<QPとは、入力された画像データが、QPで示されるビット数だけ、ビットシフトすることを示す。
式1のように量子化することよってQPに対する出力値、有意ビットは以下のようになる。
QP=0:量子化ステップ=1、入力データは量子化されずそのまま出力。有意ビット不変。
QP=1:量子化ステップ=2、入力データは1/2に量子化。有意ビットは1ビット減少。
QP=2:量子化ステップ=4、入力データは1/4に量子化。有意ビットは2ビット減少。
QP=n:量子化ステップ=(1<<n)、入力データは1/(1<<n)に量子化。有意ビットはnビット減少。
上記式1は本実施形態における量子化処理の一例を示すものであって、これに限定されるものではない。QPが1変化するたびに符号長が1ビット減少するような量子化であればよい。例えば非線形量子化を行ってもよい。本実施形態において、QP=0からQP=nまでQPの値を1ずつ増加させることを量子化ステップを1段上げる、1段大きくする、1段粗くする等といい、逆にQP=nからQP=0までQPの値を1ずつ減少させることを量子化ステップを1段下げる、1段小さくする、1段細かくする等というものとする。
PCM符号長算出部305は、量子化部301から出力されたPCMデータの符号長を、画像データのビット数(本実施形態では10ビット)とQPとから、下記の式2を用いて決定する。
PCM符号長 = 画像データビット数 − QP ・・・式2
本実施形態では、QPの値が1増える毎に、PCMデータの符号長が1ビットずつ減少する。よって、QP=0を初期値として、QPが1増える毎に、PCMデータの符号長は10ビットから1ビットずつ短くなる。ここで、仮符号化系110では、QPの値は符号化部111Aから111Dのそれぞれについて固定的に割り当てられているのでPCM符号長も固定値となる。よって、PCM符号長算出部305は式2の演算によりPCM符号長を算出するのではなく、割り当てられたQPの値に基づくPCM符号長の固定値を保持し、出力する構成であってもよい。PCM符号長算出部305は、決定したPCM符号長を符号長比較部306とセレクタ308とにそれぞれ出力する。
次に、予測部302の動作を説明する。予測部302は図3に示すように逆量子化部310、画素遅延部311、量子化部312を含むように構成される。予測部302に入力されたPCMデータは逆量子化部310にて一旦逆量子化された後、画素遅延部311に入力される。逆量子化部310での逆量子化処理では、量子化部301が画像データの量子化に使用したQPがそのまま用いられる。画素遅延部311は、同じカラー要素の前値が予測データとなるようカラー要素分遅延する。
例えば、本実施形態では図4(a)に示すようにRGBの各カラー要素の画像データが順に入力され、画像データG0の符号化後、次にG1を符号化するまでにB0、R1の画像データを先に符号化する。よって、画素遅延部311は3画素分遅延させて、G1を符号化するタイミングで量子化部312に対して保持していた逆量子化された画像データを出力する。量子化部312は、画素遅延部311から入力された画像データを量子化する。このとき量子化部312には、量子化部301が画像データG1を量子化する際に用いるQPが入力されるので、量子化部301と量子化部312との間で量子化ステップが一致する。予測部302で逆量子化を行った後で再度量子化する構成は、QPの値が画素間で異なる場合に量子化ステップを一致させるために必要な構成であって、本符号化系120では必須である。一方、仮符号化系110ではQPは固定のため逆量子化部310、量子化部312を省略して、画素遅延部311だけでもよい。量子化部312での量子化結果は予測データとして減算器303に出力される。なお、各カラー要素の符号化ブロックの最初の画素(R0、G0、B0)は前画素が存在しないため、予測データとしては0の値を出力する。
減算器303は、量子化部301からのPCMデータと、予測部302からの予測データとの差分を予測差分データとして、可変長符号化部304へ出力する。予測差分データは正負の値を持つデータであり、画像データの変動の小さい平坦な部分では0付近の値となり、変動の大きいエッジ部分などでは大きな値になる。予測差分データは一般に0を中心としたラプラス分布の特性を持つ。
可変長符号化部304は、入力された予測差分データに対して所定の可変長符号化方式による符号化を行って、1画素毎に符号データと符号長とを出力する。符号データはセレクタ307へ出力され、符号長は符号長比較部306及びセレクタ308にそれぞれ出力される。所定の可変長符号化方式には、例えばハフマン符号、ゴロム符号などが含まれる。可変長符号化部304が実行する可変長符号化方式では、入力値が0の場合に最も短い符号長の符号データが割り当てられており、入力値の絶対値が大きくなるほど、符号データの符号長は長くなる。なお、本実施形態において、可変長符号化部304から出力される符号データをDPCMデータと呼び、同符号長をDPCM符号長と呼ぶ。
符号長比較部306は、PCM符号長とDPCM符号長とを前述の画素グループ単位で比較し、符号長がより小さくなる符号データを選択するためのPCM/DPCM選択フラグを生成する。符号長比較部306は、画素グループを構成するR、G、Bの各色のPCM符号長とDPCM符号長とを保持するように構成される。PCM/DPCM選択フラグは、セレクタ307、セレクタ308に出力され、各セレクタでの出力データの切替えに用いられる。また、符号化部111の外部にも出力される。
符号長の比較は前述した画素グループ単位で行われる。画素グループ単位での符号長の比較は具体的には以下のように算出する。ここでは、図4(a)のRGBコンポネント形式のデータ入力について、グループ番号1の画素を対象に実行した例を示している。
S_PCM_R1:R1のPCM符号長
S_PCM_G1:G1のPCM符号長
S_PCM_B1:B1のPCM符号長
S_DPCM_R1:R1のDPCM符号長
S_DPCM_G1:G1のDPCM符号長
S_DPCM_B1:B1のDPCM符号長
PCM_DPCM_SEL_FLAG:PCM/DPCM選択フラグ
S_PCM =S_PCM_R1 +S_PCM_G1 +S_PCM_B1
S_DPCM=S_DPCM_R1+S_DPCM_G1+S_DPCM_B1
if(S_PCM > S_DPCM)
PCM_DPCM_SEL_FLAG = 1
else
PCM_DPCM_SEL_FLAG = 0
符号長比較部306は、画素グループごとにPCM符号長またはDPCM符号長を合計してグループの符号長の合計(S_PCM、S_DPCM)を算出する。次に、これを比較して、PCM符号長の合計の方が大きい場合にフラグ値を1とし、DPCM符号長の合計の方が大きい場合にフラグ値を0とする。
セレクタ307にはPCMデータとDPCMデータが入力されており、PCM/DPCM選択フラグに従って符号長の小さい方の符号データが選択されて、符号化部111の外部へと出力される。具体的に、PCM/DPCM選択フラグのフラグ値が1の場合はDPCM符号長の合計の方が小さいのでDPCMデータが選択され、フラグ値が0の場合はPCM符号長の合計の方が小さいのでPCMデータが選択される。セレクタ308にはPCM符号長とDPCM符号長が入力されており、PCM/DPCM選択フラグに従って符号長の小さい方の符号長が選択されて、符号化部111の外部へと出力される。具体的に、PCM/DPCM選択フラグのフラグ値が1の場合はDPCM符号長が選択され、フラグ値が0の場合はPCM符号長が選択される。
(仮符号化系の説明)
ここで図1の画像符号化部20の説明に戻り、仮符号化系110における仮符号化処理について説明する。図1の仮符号化系110に入力された画像データは複数の符号化部111A〜111Dによって、QPが0〜3でそれぞれ仮符号化が行われ符号長がQP決定部115に出力される。この符号長は、各QPに対応する量子化ステップで量子化処理を行った量子化結果をPCMまたはDPCMで符号化した符号データの符号長を表す。符号化部111A〜111Dは図3に示した構成を有し、出力信号として、符号データ、符号長、PCM/DPCM選択フラグが存在するが、この仮符号化系110では符号長のみを使用し、符号データ、PCM/DPCM選択フラグは使用しなくてもよい。
なお、本実施形態では符号化に用いるQPの範囲として0〜3としたため、仮符号化系110は符号化部111を4つ備えているが、発明の実施形態は当該構成に限定されるものではなく、符号化に用いるQPの範囲に応じて、符号化部111の数を変更することができる。
QP決定部115は前段の符号化部111A〜111Dから入力されたQP毎の複数の符号長の情報に基づき、画素グループ単位に適用するQP(適用QP)を決定する。以下、QP決定部115における適用QPの決定方法の詳細を説明する。
本施形態における、QP決定部115が実行する処理手順の概要を、図5を用いて説明する。図5において、符号化ブロック毎に本処理が開始されると、S501にてQP決定部115は符号化部111A〜111Dから、各符号化部に割り当てられたQP毎に算出された符号長の情報を画素グループ単位に取得する。以下、取得される符号データの符号長を、QPの値:qp、画素グループ番号:pgを要素とする、pg_size[qp][pg]と表す。qpは0から3までの値をとり、pgは0から15までの値をとる。
次に、S502においてQP決定部115は、QP毎に符号化ブロック全体の符号長を算出する。符号化ブロック全体の符号長の算出に際しては符号化データに多重するヘッダ情報の符号長を加味する必要がある。ヘッダ情報とは復号時に必要な画素グループ毎のQPやPCM/DPCM選択フラグの情報であり、ヘッダ情報の符号長は、本実施形態ではQP(0〜3)の表現のための2ビット×16画素グループ=32ビットと、PCM/DPCM選択フラグの1ビット×16画素グループ=16ビットの合計48ビットとなる。このとき、ヘッダ情報の符号長はQPや画像データの値に依らず固定値として予め予測可能であるので、ヘッダ情報の符号長を除外して符号化ブロックの符号長を算出してもよい。
ヘッダ情報の符号長hd_size(=48ビット)と、全画素グループの符号長との合計を加算したブロック符号長bl_size[qp]の算出が行われる。図9(a)は、pg_size[qp][pg]とbl_size[qp]の値の具体的な例を示す。図9(a)において、例えば参照番号901が示す値(30)はpg_size[0][0]であり、符号化ブロックにおける先頭の画素グループをQP=0で符号化した場合の符号長を示す。同様に、参照番号902が示す値(18)はpg_size[0][15]であり、符号化ブロックにおける最後の画素グループをQP=0で符号化した場合の符号長を示す。また、参照番号903が示す値(382)はbl_size[0]であり、QP=0で符号化した場合のブロック符号長を示し、参照番号904が示す値(293)はbl_size[3]であり、QP=3で符号化した場合のブロック符号長を示す。それぞれの値はビット単位で表されている。同図の値は以降の説明でも、具体的な値の例として用いて説明する。
次に、S503においてQP決定部115は、bl_size[qp]の中から所定の目標符号量target_size以下で、かつ最大の値を有するブロック符号長をsel_sizeに選定し、この時のqpをsel_qpに選定する。S503における具体的な処理は、図6のフローチャートに示すとおりである。
まずS601にて、QP決定部115はQPの値:qpを0に初期化する。次にS602にてQP決定部115は、現在選択されているQPにおける符号化ブロックの符号長:bl_size[qp]と目標符号量:target_sizeとを比較する。比較の結果、bl_size[qp]がtarget_size以下である場合(S602で「YES」)にはS603に移行し、bl_size[qp]がtarget_sizeより大きい場合(S602で「NO」)にはS605に移行する。
S603では、S602において判定対象となったbl_size[qp]を選択すべきブロック符号長sel_sizeに決定する。次いでS604では、bl_size[qp]のQPの値を符号化ブロックの暫定的なQPを表すsel_qpに決定し、処理を終了する。
S605では、現在選択されているQPの値が最大値(MAX_QP)よりも小さいかどうかを判定し、最大値より小さい場合(S605で「YES」)はS606においてQPの値を1つ更新し、S602に戻って処理を継続する。現在のQPの値が最大値以上の場合(S605で「NO」)は処理を終了する。本実施形態におけるMAX_QPの値は3となる。なお、S605でNOと判定された場合、目標符号量より小さいブロック符号長が存在せず、QPを選択できないこととなる。しかし、実際には、画像データのビット数に基づき、QPの設定範囲及び目標符号量の値を予め調整することにより、QPの最小値から最大値の間で目標符号量を下回るブロック符号長が得られるように設計することができる。
このようにQP=0の初期値から1ずつ更新して、量子化ステップを1から2へ、2から4へと1段ずつ上げながら符号化ブロックの符号長を順に目標符号量と比較していく。そして、最初に目標符号量以下となった符号長に対応するQPの値を暫定的なQP値とすることができる。目標符号量target_sizeの具体的値については、本実施形態では例示的に360ビットとして説明する。この値は、符号化前の画像データの情報量が10ビット×3×16=480ビットであるので、その3/4に相当する。目標符号量の大きさは期待する圧縮率に応じて任意に設定することができる。図9(a)に示す例では、QP:2のブロック符号長bl_size[2]である326(ビット)が目標符号量360ビットよりも小さく、sel_sizeとして選定される。またこのときのQPの値2がsel_qpに決定される。ここで、符号化ブロックの符号長にヘッダ情報の符号長を含めていない場合、目標符号量の値は360ビットからヘッダ情報の符号長を差し引いた値となる。上述の例ではヘッダの符号長は48ビットであったので、この場合の目標符号量は312ビットとなる。
図5の説明に戻り、S504ではQP決定部115がS503で決定した符号化ブロックの暫定的なQPの値sel_qpに対し画素グループ単位の調整を行う。これにより、画素グループ単位の適用QP:pg_qp[pg]を決定することができる。S504におけるpg_qp[pg]を決定するための処理の詳細を、図7のフローチャートを参照して詳述する。
図7において、S701では、QP決定部115は画素グループ単位の適用QPであるpg_qp[pg]を、S503で決定された暫定的なQPの値sel_qpで初期化する。このとき、pg_qp[0]〜pg_qp[15]までの全てがsel_qpの値に初期化される。図9(a)の例では、QP=2が選択されたのでpg_qp[0]〜pg_qp[15]は全て2に初期化される。次にS702において、QP決定部115は処理対象の画素グループの番号を示すパラメータpgを初期化する。画素グループは0から15までの16グループがあるので、pg=0に初期化される。
続くS703では、QP決定部115は現在選択されているQPを示すパラメータqpの値をsel_qpの値で初期化し、S704に移行する。S704では、QP決定部115はpg_size[qp][pg]とpg_size[sel_qp][pg]とを比較し、両者が一致するか否かを判定する。ここで、pg_size[qp][pg]は、S702、S703で設定された画素グループの番号pgとqpとの値における符号長を表す。またpg_size[sel_qp][pg]は、画素グループの番号pgとsel_qpに一致するqpとの値における符号長を表す。
S704にて両者が一致すると判定された場合(S704で「YES」)、S705に移行して、QP決定部115はその時点でのqpの値を、画素グループ単位の適用QP:pg_qp[pg]の値とする。その後、S706に移行する。また、S704にて両者が一致しない判定された場合(S704で「NO」)、S708に移行する。S706では、QP決定部115はqpの値が最小値である0より大きいか否かを判定する。S706にて、qpの値が0であれば(S706で「NO」)S708に移行する。一方、0より大きい値と判定されれば(S706で「YES」)、S707に移行してqpの値を1だけ減じてS704に戻って処理を継続する。例えばqpがsel_qp=2に設定されていた場合は、新たに1に設定されS704に戻って符号長が一致するかどうかが判定されることになる。
ここで、S704からS707の処理の具体例を、図9(a)を参照して説明する。図9(a)の例では、sel_qp=2とする。まず、初期化により画素グループ番号pg=0についてqp=sel_qp=2が選択された場合、S704ではpg_size[sel_qp=2][0]=pg_size[qp=2][0]=24となる。よって、S704ではYES判定となりS705にて、適用QP:pg_qp[0]の値にqp=sel_qp=2が設定される。次いでS706ではqp>0であるのでqpが1減じられqp=1となって、S704に戻る。S704での2回目の判定において、比較対象となる符号長pg_size[qp][pg]は、pg_size[1][0]=27となる。もう一方の符号長pg_size[sel_qp][pg]は、pg_size[2][0]=24である。両者を比較するとpg_size[1][0]>pg_size[2][0]となり、S704ではNO判定となる。従って、処理対象の画素グループの適用QP:pg_qp[0]はqp=sel_qp=2のまま変更されず、画素グループ番号:pg=0における適用QPは2となり、そのときの符号長は24である(図9(b)を参照のこと)。
次に、図9(a)の画素グループの番号pg=8のケースに着目すると、QPが2から0間における各符号長は、pg_size[2][8]=pg_size[1][8]=pg_size[0][8]=pg_size[sel_qp2][8]=16である。この場合S704では常にYES判定となり、S705において適用QP:pg_qp[8]の値は2、1、0の順で更新される。さらに、図9(a)の画素グループの番号pg=10のケースのように、QPの値が2と1では符号長が17で不変であるが、QPが0になると符号長が長くなってしまう場合、適用QP:pg_qp[10]の値の更新は1止まりとなる。
このようにしてQP決定部115はS704からS707の処理を繰り返すことにより、画素グループ単位に符号長が変化しない範囲で、適用QP:pg_qp[pg]の値をより小さな値に決定することができる。その後のS708、S709の処理では処理対象となる画素グループを更新していく。具体的にS708では、QP決定部115は現在の処理対象の画素グループの番号pgが画素グループの番号の最大値(MAX_PG)より小さいか否かを判定する。MAX_PGの値は、本実施形態の場合、15となる。ここで、pgが最大値より小さい場合(S708で「YES」)、S709に移行してQP決定部115はpgを1だけ更新して、S704に戻って新たな画素グループについて画素グループ単位の適用QP:pg_qp[pg]を決定する処理を行う。一方、pgが最大値に一致する場合(S708で「NO」)、本処理を終了する。このようにして決定された適用QPの値はQP決定部115から本符号化系120へ出力される。
以上の処理により決定された適用QPの具体的な値を図9(b)に示す。図9(b)では、太線で囲った符号長に対応するQPが、画素グループ毎に決定された適用QPを表している。画素グループ単位の適用QPの値は、pg_qp[0〜7、9、11、13、15]は2、pg_qp[8,12,14]は0、pg_qp[10]は1となる。符号長が同一であってもQPが小さいほど量子化ステップが小さく画質が良いので、ブロック全体の符号長を増加させることなく画素グループ単位で品質をできる限り向上させることができる。
(本符号化系の説明)
次に、図1の本符号化系120の動作について説明する。本符号化系120にも仮符号化系110に入力された画像データと同一の画像データが入力されるが、仮符号化系110のQP決定部115が適用QPを決定し出力するまで待機する必要がある。そこで、入力画像データは遅延部121に入力され、仮符号化系110が適用QPを決定するために必要な所定の処理サイクル分だけ遅延される。遅延後の画像データは遅延部121から符号化部111Eへ出力される。これにより符号化部111Eは、仮符号化系110が適用QPを決定した符号化ブロックを、当該決定された適用QPを用いて符号化することができる。
符号化部111Eは、図3に示した符号化部111と同一の構成を有し、適用QPを用いて、遅延された画像データを本符号化する。これによりQP決定部115が決定したブロック符号長と同じ符号長の符号データが生成され、PCM/DPCM選択フラグ、符号長と共に多重化部123に出力される。多重化部123には符号化部111Eからの符号データ、符号長、PCM/DPCM選択フラグと、QP決定部115からのQPが入力されており、符号ブロック毎に所定のフォーマットで多重化が行われる。
以下、発明の実施形態に対応するフォーマットの一例について図10(a)を用いて説明する。図10(a)は符号化フォーマットのデータ構造を表す図であり、括弧で示す数値は各領域に格納されるデータのビット数を表している。ブロックの全体の符号化データ1001(360ビット)は、ヘッダ部1002(48ビット)と、画素データ部1003(312ビット)から構成される。ヘッダ部1002はQPの値を格納するQP値部1004(32ビット)とPCM/DPCM選択フラグを格納するフラグ部1005(16ビット)とで構成される。QP値部1004には画素グループ毎に2ビットのQP(1004_0〜1004_fまで)が16個分格納される。フラグ部1005には画素グループ毎に1ビットのPCM/DPCM選択フラグのフラグ値(1005_0〜1505_fまで)が16個分格納される。画素データ部1003には符号データが画素数分(3×16=48画素分)格納される。多重化された符号化データ1001はストリームデータとして出力端子102に出力され、非図示の画像メモリ、バスインターフェースに出力される。
(画像復号化部の説明)
次に、画像符号化部20で生成された符号化データを復号する、発明の実施形態に対応する画像復号化部の構成例及び動作について説明する。図2は、発明の実施形態に対応する画像復号化部40の構成例を示すブロック図である。画像処理装置100は画像復号化部40を有し、メモリ30に記憶された符号化データを復号することができる。以下、本実施形態の画像復号化部の構成例において各ブロックの動作について説明する。
図2に示す画像復号化部40は、分離部203、可変長復号化部204、加算器205、セレクタ206、逆量子化部207、予測部208で構成されている。画像復号化部40は、専用のデバイス、ロジック回路やメモリを用いてハードウェア的に一体的に構成されても良いし、或いは、複数のデバイス等で分散して構成されてもよい。或いは、メモリに記憶されている処理プログラムをCPU等のコンピュータが実行することにより、ソフトウェア的に構成されてもよい。
画像復号化部40には、非図示の画像メモリ、バスインターフェースなどを介して、画像符号化部20で生成されたストリームデータが入力端子201を介して分離部203に入力される。分離部203は入力されたストリームデータを所定のフォーマットに従ってデコードして、QP、PCM/DPCM選択フラグ、符号データの情報を分離し、処理サイクル毎に順次出力する。QPは逆量子化部207と量子化部210に出力し、PCM/DPCM選択フラグはセレクタ206に出力する。符号データのうち、PCMデータはセレクタ206に出力し、DPCMデータは可変長復号化部204に出力する。可変長復号化部204は入力されたDPCMデータの可変長復号化を行い、復号化されたDPCMデータを加算器205に出力する。加算器205は、後述の予測部208からの予測値と復号されたDPCMデータを加算して復号値を得て、セレクタ206に出力する。
セレクタ206は分離部203からのPCMデータと、加算器205からの復号値を、PCM/DPCM選択フラグに応じて切り替えて量子化データとして出力し、逆量子化部207へ出力する。逆量子化部207はQP値を用いて、セレクタ206からの量子化データを逆量子化して、復号画像データを生成し、予測部208と出力端子202に出力する。予測部208は画素遅延部209、量子化部210から構成される。逆量子化部207から入力された復号画像データは、画素遅延部209にて同じカラー要素の前値が予測値となるようカラー要素分遅延され、量子化部210にて量子化されて予測値として出力される。なお、各カラー要素の符号化ブロックの最初の画素は前画素が存在しないため、予測値としては0の値を出力する。逆量子化部207から出力された復号画像データは出力端子202を介し、外部へと出力される。
以上説明したように、本実施形態では、複数の画素グループからなる符号化対象の符号化ブロック毎の固定長の符号化を行うため、まず、仮符号化系にて複数のQPで仮符号化して符号量を求め、それらの符号量から画素グループ単位に適用するQPの値を決定する。次いで本符号化系にて、決定された適用QPを用いて本符号化を行う構成とした。これにより、符号化ブロックのブロック符号長が所定値を超えない最大の値となるようにQPの値を決定することができる。また、画素グループ毎に符号長が変わらない範囲でQPの値をより小さい値とすることができるので、ブロック符号長に影響を与えることなく、画素グループ単位に画質を向上させることができる。
また、符号化の際に用いるQPおよびPCM/DPCM選択フラグは画素グループ単位で選択(切替)が可能な構成とした。PCM/DPCM選択は、隣接画素差分に応じて、差分が大きい場合はPCMとし、差分が小さい場合はDPCMにするのではなく、各画素グループでPCM、DPCMの両方の符号長を算出しておき、符号長がより小さくなる符号化方式を選択するようにした。これにより、ブロック単位での効率的な符号化が可能となる。
具体的に本実施形態では、隣接画素間の差分が大きくなる場合であっても特許文献1のようにPCM符号化の場合に符号長を10ビットから5ビットに強制的に半分にはしない。その代わり、量子化ステップ1を含む段階的に設定された複数の量子化ステップを用いて、PCM及びDPCMの各符号化結果において符号長の短いものを画素グループ毎に選択しておく。さらに、本実施形態ではグループ単位の符号長だけでなく、符号化ブロックのブロック符号長を考慮して量子化ステップを選択するため、一部の画素グループにおいて符号長が大きくなったとしても、他の画素グループの符号長が小さければそこで相殺される。よって、符号化ブロック内に急峻なエッジが含まれ、当該エッジ成分で大きな符号長が費やされたとしても、エッジの前後が平坦であれば当該エッジの符号長の分はそこで吸収されるので、エッジ成分を符号化する際に特許文献1のように不必要にビットを削減する必要がなくなる。
上述の発明の実施形態において、画像データのビット数は、10ビットに限定されるものではなく、8ビット、12ビットなど異なるビット数であってもよい。また、ブロックサイズは水平16画素×垂直1画に限定されるものではなく、任意のサイズでよい。例えば水平4画素×垂直4画素のように2次元構造としてもよい。
さらに、符号化対象の画像データの形式はRGB画像データに限定されるものではなく、グレースケール画像、カラー画像のうちYCbCr、ベイヤー配列データなどの画像データ形式であってもよい。図4(b)は画像データ形式が輝度信号(Y)と、二つの色差信号(Cr,b)であり、YCbCr4:2:2の場合の符号化ブロックを構成する画素データと、画素グループとの関係について示す。図4(b)では、Yを2画素、Cb、Crを1画素ずつの計4画素を単位画素グループとし、符号化ブロックを4×8=32画素から構成する例を示している。ここで、符号化ブロックに含める画素グループの数はより8グループよりも多くても良い。図4(c)は、画像データ形式がベイヤー配列の場合の符号化ブロックを構成する画素データと、画素グループとの関係について示す。図4(c)では、Gを2画素、R、Bを1画素ずつの計4画素を単位画素グループとし、符号化ブロックを4×8=32画素から構成する例を示している。ここで、符号化ブロックに含める画素グループの数はより8グループよりも多くても良い。グレースケール画像については不図示であるが、グレースケール画像を構成する画素のうち隣接画素の組から画素グループを構成することができる。その際、単位画素グループには例えば3画素または4画素の隣接画素を含めることができる。
[実施形態2]
次に、発明の他の実施形態を説明する。本実施形態2と上述の実施形態1との相違点は、画像符号化部20のQP決定部115内部の処理にあり、その他の符号化部、遅延部、多重化部の構成及び動作については実施形態1と同様であるため説明は省略する。
本施形態における、QP決定部115の処理手順の概要は図5及び図6に示したものと基本的に同じである。但し、本実施形態では、S504で画素グループ単位の適用QPを決定する方法が実施形態1とは異なる。本実施形態に対応する処理の詳細は図8のフローチャートに示す通りである。
図8において、S801では、QP決定部115は画素グループ単位の適用QPであるpg_qp[pg]を、S503で決定されたQP:sel_qpで初期化する。このとき、pg_qp[0]〜pg_qp[15]までの全てがsel_qpの値に初期化される。図9(a)の例では、QP=2が選択されたのでpg_qp[0]〜pg_qp[15]は全て2に初期化される。次にS802では、QP決定部115は現時点の符号化ブロックの符号長を表すパラメータnew_sizeを、S603で決定されたsel_sizeの値に初期化する。例えば図9(a)の例では、sel_sizeはQPが2のときのブロック符号長326に決定されたので、S802ではnew_sizeの値は326に初期化される。ヘッダ符号長を考慮していない場合は、ブロック符号長は278となる。次にS803では、QP決定部115は現在選択されているQPを示すパラメータqpの値をS604で決定されたsel_qpの値で初期化する。例えば図9(a)の例では、sel_qpは2に決定されたので、S803ではqpの値は2に初期化される。
次にS804では、QP決定部115は新たなQPを示すパラメータnew_qpの値を、qpより1を減じた値で初期化する。new_qpは、現在選択されているqpの値を1つ繰り下げた値を示す。さらにS805では、QP決定部115は処理対象の画素グループの番号を示すパラメータpgを初期化する。画素グループは0から15までの16グループがあるので、pg=0に初期化される。さらにS806、S807ではQP決定部115はminus_sizeをpg_size[qp][pg]に設定し、plus_sizeをpg_size[new_qp][pg]に設定する。ここで、minus_sizeとは、現在のqpの値に基づく選択画素グループの符号長を示し、plus_sizeは現在のqpから1減じたnew_qpの値に基づく選択画素グループの符号長を示す。例えば、pg=0でqp=2の場合を考えると、図9(a)に示す例では、minus_sizeは24となり、plus_sizeは27となる。このminus_sizeと、plus_sizeとは、画素グループ単位にqpを1だけ変更した場合に想定される符号化ブロックのブロック符号長の変化量を計算するために用いられる。
S808では、QP決定部115は画素グループ単位にqpを1だけ変更した場合のブロック符号長を示すパラメータtmp_sizeを、上記のnew_size、minus_size、plus_sizeから式3により求める。
tmp_size=new_size−minus_size+plus_size・・・式3
例えば、pg=0でqp=2の場合を考えると、図9(a)の例ではnew_size=326、minus_size=24、plus_size=27であるから、tmp_size=329となる。
次にS809にてQP決定部115は、S808で求めたqp変更後の符号長tmp_sizeが、目標符号量(target_size)以下かどうかを判定する。tmp_sizeの値が目標符号量を上回る場合(S809で「NO」)、S814に移行する。一方、tmp_sizeの値が目標符号量以下の場合(S809で「YES」)、S810に移行する。S810では、QP決定部115はnew_sizeの値をtmp_sizeの値で更新する。次いでS811においてQP決定部115は処理対象の画素グループの適用QP:pg_qp[pg]をnew_qpの値で更新する。その後のS812、S813の処理では処理対象となる画素グループを更新していく。具体的にS812では、QP決定部115は現在の処理対象の画素グループの番号pgが画素グループの番号の最大値(MAX_PG)より小さいか否かを判定する。MAX_PGの値は、本実施形態の場合15となる。ここで、pgが最大値より小さい場合(S812で「YES」)、S813に移行してQP決定部115はpgを1だけ更新して、S806に戻って新たな画素グループについて画素グループ単位の適用QP:pg_qp[pg]を決定する処理を行う。一方、pgが最大値に一致する場合(S813で「NO」)、S814に移行する。
次にS814では、QP決定部115は現在のqpの値が0より大きいか否かを判定すると共に、sel_qpから現在のqpを引いた値がMAX_DIFFより小さいか否かを判定する。MAX_DIFFは、sel_qpからqpを下げることが可能な回数を規定している。MAX_DIFFはQPが取り得る範囲に応じて任意に決定でき、例えば2とすることができ、その場合にはsel_qpの値から2回まではqpの値を下げることができる。上記の例ではsel_qp=2であるから、qp=0となるまで処理を行うことができる。仮にsel_qp=3であった場合にはqp=1までは下げられるが、qp=0には下げられない。またMAX_DIFFを1または3としてもよい。このように回数を制限するのは、再帰的処理の実行時間を制限するためである。MAX_DIFFを設定することによりsel_qpに追加して適用QPに含めることが可能なQPの種類数を規定することができる。
S814では、QP決定部115はqpが0であった場合、または、qpを下げた回数がMAX_DIFFに一致する場合(S814で「NO」)は本処理を終了する。qpが0より大きく、かつ、qpを下げた回数がMAX_DIFFに満たない場合(S814で「YES」)は、S815に移行する。S815ではQP決定部115はqpの値を1だけ減じて、S804に戻って処理を繰り返す。このようにして決定された適用QPはQP決定部115から本符号化系120へ出力される。
ここで、図8における処理の具体例を、図9(a)を参照して説明する。選定されたsel_size(図9(a)の例では326)を基にして、まず、画素グループ番号0の画素グループのQPの値を1だけ小さくした場合のブロック符号長(326−24−27=329)を算出し、目標符号量(360)と比較する。算出したブロック符号長が目標符号量以下であった場合、次の画素グループ番号1のQPを1だけ小さくした場合のブロック符号長を算出して、同じように目標符号量と比較する。このとき算出される画素グループ番号1のブロック符号長は(329−24+27=332)であり、目標符号量よりも小さい。このようにして画素グループを順に選択してブロック符号長を算出していくと以下のようになる。
画素グループ番号2:332−24+27=335
画素グループ番号3:335−18+22=339
画素グループ番号4:339−19+23=343
画素グループ番号5:343−15+18=346
画素グループ番号6:346−13+15=348
画素グループ番号7:348−13+15=350
画素グループ番号8:350−16+16=350
画素グループ番号9:350−18+22=354
画素グループ番号10:354−17+17=354
画素グループ番号11:354−15+18=357
画素グループ番号12:357−12+12=357
画素グループ番号13:357−16+20=361
上記算出されたブロック符号長において、画素グループ番号13のブロック符号長は目標符号量を超えてしまう。よって、これ以降は再び画素グループ番号0に戻ってQPの値を更に1だけ減少させて、同じようにブロック符号長を算出していく。但し、MAX_DIFF=1であった場合にはこの時点で処理を終了する。
画素グループ番号0:357−27+30=360
画素グループ番号1:360−27+30=363
ここでは画素グループ番号1において目標符号量を超えてしまう。この時点でqpの値は0となっているので処理を終了する。このようにして決定された適用QPの具体的な値を図9(c)に示す。図9(c)では、太線で囲った符号長に対応するQPが、画素グループ毎に決定された適用QPを表している。画素グループ単位の適用QPの各値は、pg_qp[0]は0、pg_qp[1〜12]は1、pg_qp[13〜15]は2となる。このように、本実施形態では、先頭の画素グループから順により小さいQPが割り当てられる。図9(c)では先頭の画素グループのみにQP=0が割り当てられたが、他の条件では先頭の画素グループを含む連続する複数の画素グループに対して最小のQPを割り当てることも可能である。以上の例では、ヘッダ情報の符号長を考慮した場合について説明したが、ヘッダ情報の符号長を考慮しない場合には上述の数値からヘッダ情報の符号長48ビットを適宜差し引くだけでよい。
以上、説明したように、本実施形態では、QP決定部115におけるS504の画素グループ単位の適用QPの決定方法において、ブロックの総符号量が目標符号量を超えない範囲で、先頭の画素グループから順にQPを小さい値に変更することができる。特に本実施形態では、ブロック符号量が所定値を超えない範囲でQPを高画質となる方向に調整して未使用のビットを可能な限り削減しつつ、符号化結果の品質を向上させることができる。具体的に、実施形態1の場合と比較すると、実施形態1の方法では画像データに対して割り当てられたビット数は278ビットであったのに対し、本実施形態では画像データに対して312ビットを割り当てることができる。また、実施形態1はQP=1、0が使用されている割合は4/16であるのに対し、本実施形態では13/16となっている。これにより、量子化ステップが小さいQPの使用割合が増え、未使用のビット数を削減できるため、符号化による画質劣化をさらに低減できる。
[実施形態3]
次に、発明の更なる実施形態について説明する。本実施形態3と上述の実施形態2との相違点は多重化部123内部の処理方法であり、その他の符号化部、QP決定部、遅延部、多重化部の構成及び動作については実施形態2と同様であるため説明は省略する。
多重化部123には符号化部111Eからの符号データ、符号長、PCM/DPCM選択フラグと、QP決定部115からのQPが入力されており、符号ブロック毎に所定のフォーマットで多重化が行われる。ここで、QP決定部115からのQPは、実施形態2で説明したように、
pg_qp[0]=0、
pg_qp[1〜12]=1
pg_qp[13〜15]=2
のように規則性がある。実施形態1では、図10(a)に示すとおり、QPを格納する領域1004を32ビット分用意した。しかし、実施形態2の例では全てのQPを格納しなくても、先頭(画素グループ番号:0)のQPと、QPが切り替る位置を示す画素グループ番号の情報があれば符号化ブロックにおけるQPの配列パターンを復元することができる。そこで、先頭のQPをqp0、QPが1番目に変化する画素グループ番号をqp_pos1、QPが2番目に変化する画素グループ番号をqp_pos2としてヘッダに格納する。このようなフォーマットによりヘッダ符号長の削減が可能になる。
また、上記では格納すべきQP値として先頭のQP、即ち最小のQPとしたが、同様の効果は割り当てられた最大のQPとした場合でも得られる。この場合でも切り替わり位置が特定できれば正しいQPの割当てを再現することができるからである。
本実施形態に対応するヘッダフォーマットの一例を図10(b)を用いて説明する。図10(b)は符号化フォーマットのデータ構造の一例を示す図であり、ブロックの全体の符号化データ1011(360ビット)は、ヘッダ部1012(26ビット)と、画素データ部1013(334ビット)から構成される。ヘッダ部1012はQPを格納するQP値部1014(10ビット)とPCM/DPCM選択フラグを格納するフラグ部1015(16ビット)とで構成される。QP値部1014にはqp0の2ビット(1016)、qp_pos1の4ビット(1017)、qp_pos2の4ビット(1018)が格納される。図9(c)の例では、(0、1、13)の値が格納される。フラグ部1015には画素グループ毎に1ビットのPCM/DPCM選択フラグのフラグ値(1015_0〜1015_f)が16個分格納される。画素データ部1013には可変長符号である符号データが画素数分(3×16=48画素分)格納される。多重化された符号化データ1011はストリームデータとして出力端子102に出力され、非図示の画像メモリ、バスインターフェースに出力される。
図10(b)に示すヘッダフォーマットでは、ヘッダ符号長が26ビットで画像データ部の符号長が334ビットとなるため、上述の実施形態におけるブロック符号長の算出方法及び目標符号量の値が異なる。具体的に図5のS502におけるブロック符号長bl_size[qp]の算出においては、ヘッダ符号長を考慮する場合には、その大きさを26ビットとする。ブロック符号長の算出にヘッダ符号長を考慮しない場合、S503の目標符号量を334ビットとする。
図10(b)では、ヘッダ部にQPの切り替わり位置の情報を2つ持たせる場合を説明したが、ヘッダ部に含めるべき切り替わり位置の情報の数は、図8のS814における判定で使用したMAX_DIFFの値に依存する。図10(b)はMAX_DIFF=2の場合を示したが、MAX_DIFF=1の場合は切り替わりの位置の情報としてqp_pos1の4ビットだけあれば足りるので、ヘッダ部1012のサイズを更に4ビット削減し、画素データ部1013のサイズを更に4ビット増加することができる。
以上、説明したように、本実施形態においては多重化部123でQPをヘッダに格納する際に、QPの値をそのままヘッダに格納するのではなく、QPの初期値と、QPが切り替る位置の情報とを格納する。これにより、ヘッダ部の符号長を削減し、符号化データに含める画素データのサイズを増加させることができる。この結果、量子化ステップの小さいQPの使用割合が増えるため、符号化による画質劣化をさらに低減できる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
10:取得部、20:画像符号化部、30:メモリ、101:入力端子、102:出力端子、110:仮符号化系、120:本符号化系

Claims (17)

  1. それぞれが所定数の画素からなる複数のグループを含む符号化対象のブロックの符号長が所定値を超えないように、前記グループごとに、前記グループの画像データの符号化処理における量子化のための量子化ステップと符号化方式とを決定する決定手段と、
    前記符号化対象のブロックについて、該ブロックに含まれる前記グループごとに前記決定手段が決定した前記量子化ステップと前記符号化方式とに基づき前記符号化処理を行って符号化データを生成する符号化手段と
    を備え、
    前記決定手段は、
    前記グループごとに、量子化された画像データを出力する第1の符号化方式と、量子化された画像データと予測データとの差分を符号化したデータを出力する第2の符号化方式とのうち、符号長がより小さくなる符号化方式に決定し、
    複数の量子化ステップのうち、少なくとも第1の量子化ステップと第2の量子化ステップとの何れかを前記グループごとに決定し、
    前記第1の量子化ステップは、前記符号化対象のブロックに含まれる前記グループの全てについて該第1の量子化ステップを用いて量子化を行い、該グループのそれぞれについて前記決定された符号化方式で符号化した場合の前記符号化対象のブロックの符号長が前記所定値を超えず、且つ、最大の値となる量子化ステップであって、
    前記第2の量子化ステップは、前記第1の量子化ステップよりも小さい量子化ステップである
    ことを特徴とする画像符号化装置。
  2. 前記第2の量子化ステップは、前記符号化対象のブロックに含まれるグループのそれぞれについて、該第2の量子化ステップを用いて量子化した場合の符号長が、前記第1の量子化ステップを用いて量子化した場合の符号長と同じである最小の量子化ステップであることを特徴とする、請求項1に記載の画像符号化装置。
  3. 前記符号化データのヘッダ部には、前記複数のグループのそれぞれについて決定された量子化ステップの情報が少なくとも含まれることを特徴とする、請求項2に記載の画像符号化装置。
  4. 前記第2の量子化ステップは、前記複数のグループのうち、少なくとも前記符号化対象のブロックの先頭のグループに割り当てられることを特徴とする、請求項1に記載の画像符号化装置。
  5. 前記第2の量子化ステップは、前記複数のグループのうち、前記先頭のグループを含む連続する複数のグループに割り当てられることを特徴とする、請求項4に記載の画像符号化装置。
  6. 前記第1の量子化ステップは、前記複数のグループのうち、前記連続する複数のグループを除いたグループに割り当てられることを特徴とする、請求項5に記載の画像符号化装置。
  7. 前記第2の量子化ステップは、複数の異なる量子化ステップを含み、
    前記符号化対象のブロックの先頭のグループには、前記複数の異なる量子化ステップのうち最小の量子化ステップが割り当てられることを特徴とする、請求項4または5に記載の画像符号化装置。
  8. 前記第2の量子化ステップに含まれる複数の異なる量子化ステップの種類の数は予め定められた数を超えないことを特徴とする、請求項7に記載の画像符号化装置。
  9. 前記第2の量子化ステップは、第1の量子化ステップを1段下げた量子化ステップであることを特徴とする、請求項4乃至6のいずれか1項に記載の画像符号化装置。
  10. 前記決定手段は、前記複数のグループのうち一部のグループに前記第2の量子化ステップを割り当て、前記複数のグループの残りのグループに前記第1の量子化ステップを割り当て、
    前記一部のグループは、
    前記一部のグループのそれぞれを前記第2の量子化ステップを用いて量子化し、該一部のグループのそれぞれについて前記決定された符号化方式で符号化した場合の符号長の第1の合計と、
    前記残りのグループのそれぞれを前記第1の量子化ステップを用いて量子化し、該残りのグループのそれぞれについて前記決定された符号化方式で符号化した場合の符号長の第2の合計と
    の合計が、前記所定値を超えず、且つ、最大の値となるように決定されることを特徴とする、請求項4乃至9のいずれか1項に記載の画像符号化装置。
  11. 前記符号化データのヘッダ部には、前記先頭のグループに割り当てられた前記第2の量子化ステップの情報と、前記量子化ステップが切り替わるグループの位置を示す情報とが少なくとも含まれることを特徴とする、請求項4乃至10のいずれか1項に記載の画像符号化装置。
  12. 前記符号化データのヘッダ部には、前記第1の量子化ステップの情報と、前記量子化ステップが切り替わるグループの位置を示す情報とが少なくとも含まれることを特徴とする、請求項4乃至10のいずれか1項に記載の画像符号化装置。
  13. 前記量子化ステップは、該量子化ステップが1段上がるごとに量子化結果が1ビットずつ小さくなることを特徴とする、請求項1乃至12のいずれか1項に記載の画像符号化装置。
  14. 前記画像がカラー画像である場合に、前記グループは該カラー画像を構成するカラー要素の組であることを特徴とする、請求項1乃至13のいずれか1項に記載の画像符号化装置。
  15. 前記画像がグレースケール画像である場合に、前記グループは該グレースケール画像を構成する隣接画素の組であることを特徴とする、請求項1乃至13のいずれか1項に記載の画像符号化装置。
  16. 画像を取得する取得手段と、
    前記取得手段が取得した前記画像を符号化処理する請求項1乃至15のいずれか1項に記載の符号化装置と
    を備えることを特徴とする画像処理装置。
  17. 画像符号化装置が実行する画像符号化方法であって、
    前記画像符号化装置の決定手段が、それぞれが所定数の画素からなる複数のグループを含む符号化対象のブロックの符号長が所定値を超えないように、前記グループごとに、前記グループの画像データの符号化処理における量子化のための量子化ステップと符号化方式とを決定する決定工程と、
    前記画像符号化装置の符号化手段が、前記符号化対象のブロックについて該ブロックに含まれる前記グループごとに、前記決定工程で決定された前記量子化ステップと前記符号化方式とに基づき前記符号化処理を行って符号化データを生成する符号化工程と
    を含み、
    前記決定工程では、
    前記グループごとに、量子化された画像データを出力する第1の符号化方式と、量子化された画像データと予測データとの差分を符号化したデータを出力する第2の符号化方式とのうち、符号長がより小さくなる符号化方式に決定され、
    複数の量子化ステップのうち、少なくとも第1の量子化ステップと第2の量子化ステップとの何れかを前記グループごとに決定され、
    前記第1の量子化ステップは、前記符号化対象のブロックに含まれる前記グループの全てについて該第1の量子化ステップを用いて量子化を行い、該グループのそれぞれについて前記決定された符号化方式で符号化した場合の前記符号化対象のブロックの符号長が所定値を超えず、且つ、最大の値となる量子化ステップであって、
    前記第2の量子化ステップは、前記第1の量子化ステップよりも小さい量子化ステップである
    ことを特徴とする画像符号化方法。
JP2015092371A 2015-04-28 2015-04-28 画像符号化装置、画像処理装置、画像符号化方法 Expired - Fee Related JP6512928B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015092371A JP6512928B2 (ja) 2015-04-28 2015-04-28 画像符号化装置、画像処理装置、画像符号化方法
US15/139,008 US10205946B2 (en) 2015-04-28 2016-04-26 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015092371A JP6512928B2 (ja) 2015-04-28 2015-04-28 画像符号化装置、画像処理装置、画像符号化方法

Publications (3)

Publication Number Publication Date
JP2016213528A JP2016213528A (ja) 2016-12-15
JP2016213528A5 JP2016213528A5 (ja) 2018-06-14
JP6512928B2 true JP6512928B2 (ja) 2019-05-15

Family

ID=57205440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015092371A Expired - Fee Related JP6512928B2 (ja) 2015-04-28 2015-04-28 画像符号化装置、画像処理装置、画像符号化方法

Country Status (2)

Country Link
US (1) US10205946B2 (ja)
JP (1) JP6512928B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101973822B1 (ko) * 2011-05-11 2019-04-29 포토네이션 케이맨 리미티드 어레이 카메라 이미지 데이터를 송신 및 수신하기 위한 시스템들 및 방법들
JP6626295B2 (ja) * 2015-09-09 2019-12-25 キヤノン株式会社 画像符号化装置、画像処理装置、画像符号化方法
JP7121584B2 (ja) * 2018-08-10 2022-08-18 キヤノン株式会社 画像符号化装置及びその制御方法及びプログラム
JP7041380B2 (ja) * 2018-11-14 2022-03-24 日本電信電話株式会社 符号化システム、学習方法、及びプログラム
MX2022003020A (es) 2019-09-17 2022-06-14 Boston Polarimetrics Inc Sistemas y metodos para modelado de superficie usando se?ales de polarizacion.
KR20230004423A (ko) 2019-10-07 2023-01-06 보스턴 폴라리메트릭스, 인크. 편광을 사용한 표면 법선 감지 시스템 및 방법
WO2021108002A1 (en) 2019-11-30 2021-06-03 Boston Polarimetrics, Inc. Systems and methods for transparent object segmentation using polarization cues
JP2021103875A (ja) 2019-12-25 2021-07-15 キヤノン株式会社 画像符号化装置及び画像復号装置、並びにそれらの制御方法及びプログラム、及び、撮像装置
US11195303B2 (en) 2020-01-29 2021-12-07 Boston Polarimetrics, Inc. Systems and methods for characterizing object pose detection and measurement systems
KR20220133973A (ko) 2020-01-30 2022-10-05 인트린식 이노베이션 엘엘씨 편광된 이미지들을 포함하는 상이한 이미징 양식들에 대해 통계적 모델들을 훈련하기 위해 데이터를 합성하기 위한 시스템들 및 방법들
WO2021243088A1 (en) 2020-05-27 2021-12-02 Boston Polarimetrics, Inc. Multi-aperture polarization optical systems using beam splitters
DE102021117397A1 (de) * 2020-07-16 2022-01-20 Samsung Electronics Co., Ltd. Bildsensormodul, bildverarbeitungssystem und bildkomprimierverfahren
US12069227B2 (en) 2021-03-10 2024-08-20 Intrinsic Innovation Llc Multi-modal and multi-spectral stereo camera arrays
US12020455B2 (en) 2021-03-10 2024-06-25 Intrinsic Innovation Llc Systems and methods for high dynamic range image reconstruction
US11954886B2 (en) 2021-04-15 2024-04-09 Intrinsic Innovation Llc Systems and methods for six-degree of freedom pose estimation of deformable objects
US11290658B1 (en) 2021-04-15 2022-03-29 Boston Polarimetrics, Inc. Systems and methods for camera exposure control
US12067746B2 (en) 2021-05-07 2024-08-20 Intrinsic Innovation Llc Systems and methods for using computer vision to pick up small objects
US11689813B2 (en) 2021-07-01 2023-06-27 Intrinsic Innovation Llc Systems and methods for high dynamic range imaging using crossed polarizers

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3125543B2 (ja) 1993-11-29 2001-01-22 ソニー株式会社 信号符号化方法及び装置、信号復号化方法及び装置、並びに記録媒体
JP3336754B2 (ja) * 1994-08-19 2002-10-21 ソニー株式会社 デジタルビデオ信号の記録方法及び記録装置
US5949956A (en) * 1994-09-22 1999-09-07 Matsushita Electric Industrial Co., Ltd. Variable bit rate video encoder, and video recorder, including code amount allocation
US6414992B1 (en) 1999-01-27 2002-07-02 Sun Microsystems, Inc. Optimal encoding of motion compensated video
PT2268034T (pt) * 2001-11-22 2016-11-18 Godo Kaisha Ip Bridge 1 Método de codificação de comprimento variável e método de descodificação de comprimento variável
JP4042597B2 (ja) * 2002-03-28 2008-02-06 ソニー株式会社 画像符号化装置及び方法、プログラム、記録媒体
JP4410989B2 (ja) 2002-12-12 2010-02-10 キヤノン株式会社 画像処理装置及び画像復号処理装置
US8340445B2 (en) 2007-10-01 2012-12-25 Sharp Kabushiki Kaisha Image encoding device, image encoding method, image encoding/decoding system
KR101664125B1 (ko) * 2009-09-22 2016-10-10 삼성전자주식회사 랜덤 액세스 가능한 영상 인코딩 시스템 및 방법
US20110292247A1 (en) * 2010-05-27 2011-12-01 Sony Corporation Image compression method with random access capability
JP2011259345A (ja) * 2010-06-11 2011-12-22 Sharp Corp 符号化装置
JP5285682B2 (ja) * 2010-11-29 2013-09-11 シャープ株式会社 画像符号化装置、画像符号化方法
US9723312B2 (en) * 2015-06-09 2017-08-01 Samsung Electronics Co., Ltd. Method and system for random accessible image compression with adaptive quantization

Also Published As

Publication number Publication date
US10205946B2 (en) 2019-02-12
US20160323578A1 (en) 2016-11-03
JP2016213528A (ja) 2016-12-15

Similar Documents

Publication Publication Date Title
JP6512928B2 (ja) 画像符号化装置、画像処理装置、画像符号化方法
JP6626295B2 (ja) 画像符号化装置、画像処理装置、画像符号化方法
KR20190091426A (ko) 쿼드 트리를 이용한 블록 정보 부/복호화 방법 및 이러한 방법을 사용하는 장치
WO2012148139A2 (ko) 참조 픽쳐 리스트 관리 방법 및 이러한 방법을 사용하는 장치
US20120128064A1 (en) Image processing device and method
US11223827B2 (en) Image encoding device, image decoding device, and the programs thereof
JP6502739B2 (ja) 画像符号化装置、画像処理装置、画像符号化方法
JP6502753B2 (ja) 画像符号化装置、画像処理装置、画像符号化方法
JP6491628B2 (ja) 映像符号化方法、映像符号化装置及び映像符号化プログラム
JP4833309B2 (ja) 動画像圧縮符号化装置
JP7121584B2 (ja) 画像符号化装置及びその制御方法及びプログラム
CN116918331A (zh) 编码方法和编码装置
CN110087074B (zh) 图像处理装置和用于操作图像处理装置的方法
US11503296B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
US11849114B2 (en) Image encoding apparatus, image decoding apparatus, control methods thereof, and non-transitory computer-readable storage medium
JP6985924B2 (ja) 画像符号化装置、画像処理装置、画像符号化方法
JP6749725B2 (ja) 画像符号化装置、画像処理装置、画像符号化方法
TWI820063B (zh) 影像處理裝置及影像處理裝置的操作方法
JP7444541B2 (ja) 画像符号化装置、画像復号化装置、撮像装置、画像符号化方法、画像復号化方法、及びプログラム
US9560364B2 (en) Encoding image data with quantizing and inverse-quantizing pixel values
TWI795480B (zh) 用於執行資料解壓縮的影像處理裝置及用於執行資料壓縮的影像處理裝置
JP6581469B2 (ja) 画像符号化装置及びその制御方法、並びにプログラム及び記憶媒体
JP4530421B2 (ja) 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,それらのプログラムおよびそれらのプログラム記録媒体
JP2009004878A (ja) 画像処理装置、画像処理方法および画像処理プログラム、並びに撮像装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180416

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190409

R151 Written notification of patent or utility model registration

Ref document number: 6512928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees