JP6902861B2 - 符号化装置、符号化方法、復号装置、復号方法および生成方法 - Google Patents

符号化装置、符号化方法、復号装置、復号方法および生成方法 Download PDF

Info

Publication number
JP6902861B2
JP6902861B2 JP2016240567A JP2016240567A JP6902861B2 JP 6902861 B2 JP6902861 B2 JP 6902861B2 JP 2016240567 A JP2016240567 A JP 2016240567A JP 2016240567 A JP2016240567 A JP 2016240567A JP 6902861 B2 JP6902861 B2 JP 6902861B2
Authority
JP
Japan
Prior art keywords
boundary
line
coded
header
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.)
Active
Application number
JP2016240567A
Other languages
English (en)
Other versions
JP2018098611A (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 JP2016240567A priority Critical patent/JP6902861B2/ja
Priority to US15/837,347 priority patent/US10555009B2/en
Publication of JP2018098611A publication Critical patent/JP2018098611A/ja
Application granted granted Critical
Publication of JP6902861B2 publication Critical patent/JP6902861B2/ja
Active 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/99Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals involving fractal coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/648Transmitting or storing the primary (additive or subtractive) colour signals; Compression thereof
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Description

本発明は、符号化装置、符号化方法、復号装置、復号方法および生成方法に関する。
境界の軌跡と領域の色とを用いて画像を表現する方法として、PDL(ページ記述言語)が広く普及している。PDLでは画像をグラフィックオブジェクトの集合として表現しており、グラフィックオブジェクトは輪郭を成す境界と色とによって表現される。PDLで記述された画像を印刷装置によって印刷するために、ソフトウエア処理によってPDLをハード処理に適した中間言語に変換し、その後、ハードウエアによって中間言語をラスタ画像に変換する技術が普及している。
例えば、特許文献1には、境界情報と塗り情報とによって表現されたグラフィックオブジェクトの集合からなる画像データ(中間データ)からラスタ画像を生成する方法が開示されている。境界情報は、軌跡(座標)を計算するための計算式を特定する情報と、計算式のパラメータと、を含む。また、画像データは、境界情報および塗り情報以外に、グラフィックオブジェクトの重なりの上下関係を示す層情報を含む。ラスタ画像は以下のごとく生成される。画像のラインごとにグラフィックオブジェクトの境界のX座標が計算され、隣接する境界の間の画素値が、対応するグラフィックオブジェクトの塗り情報を参照して求められる。同じ境界の間で複数のグラフィックオブジェクトが重なっていれば、層情報を参照して上下関係を求め、最も上(前面)にあるグラフィックオブジェクトの塗り情報が参照される。塗り情報が透明度を有する場合は、さらに下(後面)のグラフィックオブジェクトの塗り情報が参照され、複数のグラフィックオブジェクトの画素値をブレンドする計算が行われる。境界情報のうち、画素を生成したラインで終端せず次のラインで使われる境界については、パラメータを参照してY座標をインクリメントしたときのX座標が計算される。そして前記ラインで処理された全てのグラフィックオブジェクトの境界情報は、計算されたX座標の昇順にソートされ、次のラインの処理のために記憶される。以上を各ラインについて繰り返すことにより、ラスタ画像が生成される。
しかしながら、PDLで記述された画像が複雑な形状のグラフィックオブジェクトを含んでいたり、非常に多くのグラフィックオブジェクトを含む場合、中間言語も多数の境界データを含み、データ量や復号に必要になるメモリ容量が増大する。そこで、グラフィックオブジェクトの一部または全てをソフト処理によりラスタ画像に変換し、ラスタ画像を含む中間言語を生成して、データ量や復号に必要なメモリ容量を削減することがある。このとき中間言語に含まれるラスタ画像は圧縮されるが、グラフィック画像の劣化を回避するためにその圧縮には可逆符号化が用いられる。グラフィック画像を圧縮するために好適な可逆符号化方法として、ラスタ画像を隣接する同一色の画素から成る領域の集合とみなして、領域の境界の軌跡と画素値とを用いた符号化を行う可逆符号化技術が使われている。
また、画像品位を損なわずにデータ量をより小さくするために、非可逆符号化と可逆符号化とを領域毎に使い分ける符号化技術を用いることも考えられる。このような符号化では、領域の境界の軌跡と、境界に対応する領域が非可逆符号化された領域または可逆符号化された領域のいずれであるかを示す属性と、ラスタ画像を非可逆符号化した符号データと、可逆符号化された領域の画素値と、が符号化データに含まれる。
特開2000−149035号公報
しかしながら、上記の符号化技術では、復号の際のメモリ転送効率が低下する虞がある。または、復号の際に使用するメモリの容量が大きくなり、ハード規模が増大する虞がある。
本発明はこうした課題に鑑みてなされたものであり、その目的は、ハード規模を削減できる、またはメモリ転送効率を高めることができる画像処理技術の提供にある。
本発明のある態様は符号化装置に関する。この符号化装置は、画像の符号化単位を複数の領域に分割する分割手段と、複数の領域のそれぞれをラインと交差する方向に沿って区切る境界ごとに、その境界を特定するための境界ヘッダを生成するヘッダ生成手段と、ラインを進めたときの境界の変位を示す軌跡情報を生成する軌跡生成手段と、生成された境界ヘッダと生成された軌跡情報とを含む符号化データを生成する際、境界の数に応じて、前記境界ヘッダが連続して並べられる数が所定数以下になるように、境界ヘッダおよび軌跡情報の並べ方を変える整列手段と、を備える。
本発明によれば、ハード規模を削減できる、またはメモリ転送効率を高めることができる画像処理技術を提供できる。
実施の形態に係る画像処理システムのハードウエア構成図である。 符号化装置の機能および構成を示すブロック図である。 図2の符号化装置における符号化処理の流れを示すフローチャートである。 図2の符号化装置に入力される矩形領域の一例を示す図である。 図2の符号化装置に入力される矩形領域の他の例を示す図である。 図4の矩形領域から生成される色別領域と色別領域の境界とを示す図である。 図6の境界を数値で表した境界情報を示す図である。 図7の境界情報を整列することによって得られる符号化データを示す図である。 図1の復号装置の機能および構成を示すブロック図である。 図9の分離部をハードウエアで実装した場合のハードウエア構成図である。 図9の復号装置における復号処理の流れを示すフローチャートである。 図11の復号処理におけるライン復号処理の流れを示すフローチャートである。 図11の復号処理における後続境界選択処理の流れを示すフローチャートである。 符号化装置の機能および構成を示すブロック図。 図4に示される矩形領域において、ハッチがかかっていない領域を異なる画素値の領域が結合された領域であるとした場合の境界の数値データを示す図。 図15の符号化データを復号する復号装置の機能および構成を示すブロック図。
以下、図面を参照して本発明の実施の形態を説明する。ただし、本発明の実施の形態は以下の実施の形態に限定されるものではない。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
ラスタ画像を隣接する複数の画素から成る領域の集合とみなして、領域の境界の軌跡と画素値とを用いた符号化を行い、そのように符号化されたデータを復号する技術として、本出願人は特願2016−077580に記載の技術を提案している。そこでは、画像を隣接する画素からなる領域に分割し、領域を境界の開始点および変位量並びに領域の属性で表現することで符号化した符号化データを復号する方法が開示されている。符号化データには、境界の開始点座標および終端点座標並びに境界に囲まれる領域の属性からなるヘッダに続いて、境界の変位量の符号が順に記録される。属性は、領域が異なる色の画素を含み非可逆符号化された領域または単一色の画素からなる領域のいずれであるかを示し、単一色の画素からなる領域の場合は画素値を含む。また、ヘッダは開始点の座標順にソートされ、変位量の符号は適用対象の境界の座標順にソートされる。また、上記文献に記載の技術では、A4サイズなどの一ページの画像をより少ない画素数の矩形画像に分割して、矩形画像ごとに符号化と復号とを行う。符号化データは1ライン目から最終ラインまで順に復号される。各ラインの復号において、開始点が当該ライン上にある境界データが読み出され、隣の境界との間のX座標の差分が計算され、ヘッダから読み出した属性が単一色の画素からなる領域を示す場合は、ヘッダから読みだした画素値が計算によって求めたX座標の差分に応じて出力される。また、ヘッダから読み出した属性が異なる色の画素を含み非可逆符号化された領域を示す場合は、非可逆符号化データの復号手段が出力する画素がX座標の差分に応じて出力される。これを1ライン分行うことにより1ラインの画像を復号する。境界データは、終端点が当該ラインでなければ、当該境界データのY座標をインクリメントしたときのX座標が、当該ラインにおける当該境界データの座標と変位量とから計算され、次のラインの復号のために記憶される。
上記文献に記載の方法では、ライン上の各画素の値が異なる場合、ライン上の全ての画素が境界となる。したがって、境界情報の数は矩形画像の画素数が上限となる。また、領域は重なりを持たないため、符号化データは境界情報と境界情報の個数を示す情報とから構成され、符号化データのサイズも矩形画像の画素数によって上限が決まる。
本発明者は、上記文献に記載の方法について、以下の課題を認識した。上記文献に記載の方法では、全ての境界のヘッダの後に変位量の符号が続く符号化データを復号する際に、メモリをランダムアクセスすることによって符号化データの読み込みが行われるため、メモリ転送効率が低下しうる。あるいはまた、ランダムアクセスを回避するために、復号手段に符号化データに含まれる全ての境界のヘッダをバッファするためのメモリを設けてもよいが、その場合、ハード規模が増大しうる。
本実施の形態では、説明を簡単にするため、画像を隣接する同一色の画素からなる領域に分割する例を挙げて説明する。しかしながら、複数の異なる色の画素を含み非可逆符号化される領域と単一色の画素からなる領域とが混在する場合にも本実施の形態に係る技術的思想を適用できることは、本明細書に触れた当業者には明らかである。
図1は、実施の形態に係る画像処理システム100のハードウエア構成図である。画像処理システム100は、画像データの符号化技術および復号技術に関し、特に、画像データを色別の領域に分割し、領域の境界の軌跡と画素値とを用いた符号化を行う可逆符号化技術および復号技術に関する。画像処理システム100は、CPU101と、RAM102と、ROM103と、外部IF104と、DMAC105と、復号装置106と、画像処理装置107と、印刷装置108と、インターコネクト109と、を備える。
CPU101は、システム100全体の制御を行う。RAM102は、メモリコントローラとDRAMとから構成され、CPU101で動作するプログラムが展開されるほか、CPU101およびシステム100上で動作する処理装置のワークメモリとして使われる。ROM103は、CPU101で動作するプログラムが記憶される。外部IF104は、外部機器とデータの送受信を行う。外部IF104は例えばEthernetやUSBなどのIF(InterFace)である。DMAC105は、CPU101の制御の下、外部IF104、復号装置106、画像処理装置107、印刷装置108のそれぞれとRAM102との間で符号化データ、復号画像データ、印刷画像データを送受信させる。復号装置106は、符号化データを復号して復号画像データを生成する。画像処理装置107は、復号画像データを印刷装置108の特性に合うよう処理するとともに、印刷装置108の入力データフォーマットに合うように変換して印刷画像データを生成する。印刷装置108は、電子情報である印刷画像データに基づいて、トナーやインクを紙面などの記録媒体に定着させることで、紙面に画像を形成する。インターコネクト109は、CPU101、RAM102、ROM103、外部IF104、DMAC105、復号装置106、画像処理装置107、印刷装置108の間に介在し、それらを相互に接続する。インターコネクト109は、例えば共有バスやスイッチによって構成されたデータ転送経路である。
画像処理システム100では、図1では図示されない外部のホストコンピュータなどの符号化装置によって画像データを符号化して符号化データを生成し、外部IF104で符号化データを受信する。符号化データは復号されるまで、CPU101の制御の下でRAM102に保持される。あるいはまた、外部IF104で画像データを受信して、CPU101で画像データの符号化を行ってもよい。この場合、画像処理システム100は符号化装置を含む。
図2は、符号化装置200の機能および構成を示すブロック図である。符号化装置200は、画像を表す画像データを取得し、取得された画像データを符号化して符号化データを生成する。符号化装置200において、画像データは所定の符号化単位ごとに符号化される。符号化単位は符号化装置において一度に符号化する画素の集まりまたは画像領域であってもよい。符号化単位は例えば4×4画素、8×8画素、16×16画素、32×32画素、64×64画素であってもよい。以下、説明を簡単にするため、符号化単位として16×16画素の画像データを採用し、その符号化単位を符号化および復号する場合を例として説明するが、本実施の形態は16×16画素に限定されるものではない。
符号化対象の画像データは、符号化装置200に入力される前に、16×16画素の矩形領域(符号化単位)に分割される。分割の結果得られる矩形領域は予め定められた順序に従って、符号化装置200に入力される。画像データのサイズが16×16画素の整数倍でない場合は、16×16画素の整数倍となるように右端、下端にパディング画素が付加された後に、矩形領域に分割される。
領域分割部201は、符号化装置200に入力された16×16画素の矩形領域を画素の色で複数の色別領域に分割する。色別領域は、隣接する同じ色の画素からなる領域である。境界生成部202は、領域分割部201による分割の結果得られる色別領域をラインと交差する方向に沿って区切る境界を示す境界情報を生成する。例えば境界生成部202は、色別領域の左端の画素の座標の集合と色別領域の画素値(色)とから境界情報を生成する。ヘッダ生成部203は、境界ごとに、その境界を特定するための境界ヘッダを生成する。境界ヘッダは、対応する境界の両端の座標と対応する領域の画素値とを含む。例えばヘッダ生成部203は、境界生成部202によって生成された境界情報の始点のX座標およびY座標と、終点のY座標と、その境界情報が表す境界に対応する色別領域の画素値と、から境界ヘッダを生成する。境界情報に含まれる境界の座標は境界の位置を表す。軌跡生成部204は、ラインを進めたときの境界の変位を示す軌跡情報を生成する。例えば軌跡生成部204は、境界生成部202によって生成された境界情報を参照し、Y方向に隣接する2つのラインの間における境界のX方向の変位(オフセット)を、各境界、各ラインについて計算する。軌跡生成部204は、この計算の結果得られる変位の集合を含む軌跡情報を生成する。整列部205は、ヘッダ生成部203によって生成された境界ヘッダと軌跡生成部204によって生成された軌跡情報とを含む符号化データを生成する際、境界の数に応じて境界ヘッダおよび軌跡情報の並べ方を変える。例えば整列部205は、後述する規則に従って、境界ヘッダと軌跡情報とを整列する。
領域分割部201、境界生成部202、ヘッダ生成部203、軌跡生成部204、整列部205はいずれも汎用プロセッサとプロセッサとによって実行されるソフトウエアによって実装されてもよい。あるいはまた、それらはいずれも専用ハードウエアによって実装されてもよい。従って、符号化装置200は、汎用プロセッサとプロセッサとによって実行されるソフトウエアによって実装されてもよく、または専用ハードウエアによって実装されてもよい。あるいはまた、符号化装置200は、汎用プロセッサと専用ハードウエアとを組み合わせて実装されてもよい。
以下、図3〜図8を用いて、図2の符号化装置200における符号化処理を説明する。図3は、図2の符号化装置200における符号化処理の流れを示すフローチャートである。図4は、図2の符号化装置200に入力される矩形領域の一例を示す図である。図5は、図2の符号化装置200に入力される矩形領域の他の例を示す図である。図6は、図4の矩形領域から生成される色別領域と色別領域の境界とを示す図である。図7は、図6の境界を数値で表した境界情報を示す図である。図8は、図7の境界情報を整列することによって得られる符号化データを示す図である。
符号化装置200は符号化対象の画像を分割して得られる16×16画素の矩形領域400を読み込む(S301)。矩形領域400において、ハッチのパターンが色別領域の画素値に対応している。すなわち、2つの色別領域のハッチのパターンが同じであれば、それらの色別領域の色は同じであり、パターンが異なれば色も異なる。
図4、図5、図6において、ラインL0〜ラインL15はそれぞれ、ラインが延びる方向すなわち横方向(X方向)に連なる16個の画素からなるラインを示す。領域分割部201はラインL0〜ラインL15のそれぞれを左から右へと走査して、互いに隣接しかつ同じ画素値を有する複数の画素から成る色別領域に分割する。また領域分割部201は、同じ画素値を有する画素と隣接しない画素があればそれをひとつの色別領域としてもよい。あるラインの各色別領域は符号化装置200の内部記憶領域に記憶され、次のラインを処理する際に参照される。
矩形領域400の最初のラインL0は、次の8つの色別領域に分割される。
0番目の画素(0,0)と1番目の画素(1,0)の色別領域0
2番目の画素(2,0)と3番目の画素(3,0)の色別領域1
4番目の画素(4,0)と5番目の画素(5,0)の色別領域2
6番目の画素(6,0)と7番目の画素(7,0)の色別領域3
8番目の画素(8,0)と9番目の画素(9,0)の色別領域4
10番目の画素(10,0)と11番目の画素(11,0)の色別領域5
12番目の画素(12,0)と13番目の画素(13,0)の色別領域6
14番目の画素(14,0)と15番目の画素(15,0)の色別領域7
矩形領域400の次のラインL1は、先ず次の9つの色別領域に分割される。
0番目の画素(0,1)の色別領域8’
1番目の画素(1,1)と2番目の画素(2,1)の色別領域9’
3番目の画素(3,1)と4番目の画素(4,1)の色別領域10’
5番目の画素(5,1)と6番目の画素(6,1)の色別領域11’
7番目の画素(7,1)と8番目の画素(8,1)の色別領域12’
9番目の画素(9,1)と10番目の画素(10,1)の色別領域13’
11番目の画素(11,1)と12番目の画素(12,1)の色別領域14’
13番目の画素(13,1)と14番目の画素(14,1)の色別領域15’
15番目の画素(15,1)の色別領域16’
次に色別領域8’〜色別領域16’は、前のラインL0から得られた色別領域0〜色別領域7と比較され、同じ色かつ隣接する色別領域は、前のラインL0から得られた色別領域0〜色別領域7に統合される。ラインL0の色別領域とラインL1の色別領域とが隣接するとは、それらの色別領域がそれぞれ同じX座標の画素を含むことを意味する。その結果、以下の色別領域が生成される。
色別領域0:画素(0,0)、画素(1,0)、画素(1,1)、画素(2,1)
色別領域1:画素(2,0)、画素(3,0)、画素(3,1)、画素(4,1)
色別領域2:画素(4,0)、画素(5,0)、画素(5,1)、画素(6,1)
色別領域3:画素(6,0)、画素(7,0)、画素(7,1)、画素(8,1)
色別領域4:画素(8,0)、画素(9,0)、画素(9,1)、画素(10,1)
色別領域5:画素(10,0)、画素(11,0)、画素(11,1)、画素(12,1)
色別領域6:画素(12,0)、画素(13,0)、画素(13,1)、画素(14,1)
色別領域7:画素(14,0)、画素(15,0)、画素(15,1)
色別領域8:画素(0,1)
以降のラインL2〜ラインL15もそれぞれ同様に処理される(S302)。
ただし、あるライン上で、同じ画素値の色別領域が複数あり、かつそれら複数の色別領域がいずれも直前のライン上にある同じ色の一つの色別領域と隣接している場合には、それら複数の色別領域のうちのいずれか一つのみが統合される。図5に示されるように、同じ色の画素が隣接していても、異なる複数の色別領域に分割される場合がある。ラインL8において、色別領域8と隣接し、かつ同じ画素値の色別領域は二つ生成される(画素(0,8)、画素(1,8)の色別領域と画素(4,8)、画素(5,8)の色別領域)。左側の色別領域から処理されれば、画素(0,8)、画素(1,8)の色別領域が先に処理され、色別領域8と統合される。その結果、画素(4,8)、画素(5,8)の色別領域は、色別領域8と隣接しかつ同じ色の色別領域であるが、異なる色別領域15として分割される。
以上の処理によって、矩形領域400は図6に示される色別領域0〜色別領域20に分割される。
境界生成部202は色別領域0〜色別領域20のそれぞれの左端画素の座標と画素値とからなる境界情報を生成する(S303)。本実施の形態において、境界は対応する色別領域の左端の画素の座標の集合として表される。図6において、縦の太い実線は境界を示し、横の太い破線は境界が繋がっていることを示す補助線を示す。白丸は境界の開始点を示し、黒丸は境界の終端点を示す。以降、色別領域Rの境界を境界Rと表記する。例えば境界9は(2,2)を開始点として、(3,3)(4,4)(5,5)(6,6)と続き、(7,7)を終端点とする。
ヘッダ生成部203は、境界生成部202によって生成された境界情報を参照し、境界ごとに、その境界の開始点の座標(X,Y)と、終端点のY座標と、その境界に対応する色別領域の画素値と、を含む境界ヘッダを生成する(S304)。
軌跡生成部204は、境界生成部202によって生成された境界情報を参照し、Y方向に隣接する2つのラインの間における境界のX方向の変位を、各境界、各ラインについて計算する。軌跡生成部204は、この計算の結果得られる変位の集合を含むライン別軌跡情報を生成する(S305)。
図7は図6の境界0〜境界20の数値データを示す。境界0〜境界20の境界ヘッダはそれぞれ、対応する境界の開始点の座標(開始X座標,先頭Y座標)と、終端点のY座標である終端Y座標と、対応する色別領域の画素値である領域色と、を有する。境界0の境界別軌跡情報は、ラインを進めたときの境界0のX座標の変位の集合を示す。境界1〜境界20についても同様である。例えば境界2は座標Y=0〜15にまたがって存在するため、境界2の境界別軌跡情報は、以下の15個の変位の集合として生成される。
ライン0からライン1へのX座標の変位は+1である
ライン1からライン2へのX座標の変位は+1である
ライン2からライン3へのX座標の変位は+1である
ライン3からライン4へのX座標の変位は+1である
ライン4からライン5へのX座標の変位は+1である
ライン5からライン6へのX座標の変位は+1である
ライン6からライン7へのX座標の変位は+1である
ライン7からライン8へのX座標の変位は−1である
ライン8からライン9へのX座標の変位は−1である
ライン9からライン10へのX座標の変位は−1である
ライン10からライン11へのX座標の変位は−1である
ライン11からライン12へのX座標の変位は−1である
ライン12からライン13へのX座標の変位は−1である
ライン13からライン14へのX座標の変位は−1である
ライン14からライン15へのX座標の変位は−1である
軌跡生成部204は、生成された境界別軌跡情報を参照し、ラインごとに、そのラインと次のラインとの間における、そのラインに存在する境界の変位を含むライン別軌跡情報を生成する。図8にはライン別軌跡情報の例が示される。例えば、「軌跡情報@Y=0」はラインL0の軌跡情報であり、ラインL0とラインL1との間における、ラインL0に存在する境界0〜7の変位を含む。「境界0(0)」はラインL0からラインL1へ進むときの境界0の変位を示し、+1である。
境界生成部202は、境界データの生成が終わると、符号化データの先頭に境界の総数である境界数(E)を出力する(S306)。
整列部205は、符号化処理のステップS307〜S317の処理を実行することにより、ヘッダ生成部203によって生成された境界ヘッダと、軌跡生成部204によって生成された軌跡情報と、を整列して、符号化データを生成する。整列部205は、境界数(E)と横方向におけるラインの画素数(=16)とを比較する(S307)。なお、他の実施の形態では、ラインの画素数に応じた所定数、例えばラインの画素数よりも大きな所定数と境界数とが比較されてもよい。整列部205は、この比較の結果に応じて境界ヘッダおよびライン別軌跡情報の並べ方を変える。例えば、境界数(E)が16以下の場合、整列部205は境界数(E)の後に、全ての境界ヘッダを開始点の座標順に並べて出力し(S308)、その次に全てのライン別軌跡情報を適用対象の境界の座標順に並べて出力する(S309)。
境界数(E)が16より大きい場合、整列部205は境界数(E)の後に、先ず16個の境界ヘッダを開始点の座標順に出力する(S310)。続いて整列部205は1ライン分の(この場合、最初のラインL0についての)ライン別軌跡情報を適用対象の境界の座標順に出力する(S311)。次に、整列部205はまだ符号化データに出力されていない境界ヘッダの有無を判定する(S312)。符号化データに出力されていない境界ヘッダがある場合、整列部205はラインL0で終端する境界の有無を判定する(S313)。さらに、ラインL0で終端する境界がある場合は、整列部205はラインL0で終端した境界の数(n)と符号化データに出力されていない境界ヘッダの数とを比較する(S314)。ラインL0で終端した境界の数(n)が符号化データに出力されていない境界ヘッダの数より小さい場合、整列部205は未出力の境界ヘッダからn個の境界ヘッダを選択する。整列部205は、選択されたn個の境界ヘッダをステップS311で出力されたライン別軌跡情報の後に出力する(S315)。また、ラインL0で終端した境界の数(n)が符号化データに出力されていない境界ヘッダの数以上の場合、整列部205はステップS311で出力されたライン別軌跡情報の後に全ての未出力の境界ヘッダを出力する(S316)。整列部205は、処理したラインが最終ラインであるかを判定し(S317)、最終ラインであれば符号化を終了する。最終ラインでなければ、以降、ステップS311〜S316の処理が次のラインに対して繰り返される。
上記の処理によると、整列部205は、E>16の場合、16個の境界ヘッダと残りの境界ヘッダとを、最初のラインL0に対応するライン別軌跡情報を挟んで並べる。図8は符号化データの一例を示す。ステップS306の処理により、符号化データの先頭には境界数を表すデータ領域802(ビット列)が配置される。ステップS310の処理により、データ領域802の後には、16個の境界ヘッダがY座標、X座標の昇順に並べられたデータ領域804が配置される。ステップS311の処理により、データ領域804の後には、最初のラインL0についてのライン別軌跡情報(軌跡情報@Y=0)を表すデータ領域806が配置される。軌跡情報@Y=0はラインL0に存在しラインL0で終端しない境界0、境界1、境界2、境界3、境界4、境界5、境界6、境界7のそれぞれについて、ラインL0とラインL1との間のX座標の変位量を含む。
ラインL0が当該ラインのとき、ステップS313においてNoすなわちラインL0で終端する境界はないと判定される。したがって、ステップS317でのNo判定を経て処理はステップS311に戻り、データ領域806の後に次のラインL1についてのライン別軌跡情報(軌跡情報@Y=1)を表すデータ領域808が配置される。軌跡情報@Y=1はラインL1に存在しラインL1で終端しない境界8、境界2、境界5のそれぞれについて、ラインL1とラインL2との間のX座標の変位量を含む。当該ラインL1について、ステップS312、S313ではいずれもYesと判定され、ステップS314ではn=6≧4(=未出力の境界の数)なのでNoと判定され、ステップS316に進む。ステップS316の処理により、データ領域808の後には、まだ符号化データに出力されていない残りの4個の境界ヘッダがY座標、X座標の昇順に並べられたデータ領域810が配置される。
以降の符号化処理ではステップS312の判定において必ずNoと判定されるので、最終ラインL15に至るまでステップS311の処理が繰り返し実行される。その結果、データ領域810の後に、ラインL2〜L14についてのライン別軌跡情報(軌跡情報@Y=2〜14)を表すデータ領域812が配置される。なお、ラインL15は最終ラインであり、ラインL15を超えて存在する境界はないので、ラインL15についてのライン別軌跡情報はない。
軌跡情報@Y=2はラインL2に存在しラインL2で終端しない境界8、境界9、境界10、境界2、境界11、境界12、境界5、境界13のそれぞれについて、ラインL2とラインL3との間のX座標の変位量を含む。軌跡情報@Y=3はラインL3に存在しラインL3で終端しない境界8、境界9、境界10、境界2、境界11、境界12、境界5のそれぞれについて、ラインL3とラインL4との間のX座標の変位量を含む。軌跡情報@Y=4はラインL4に存在しラインL4で終端しない境界8、境界9、境界10、境界2、境界11、境界12、境界5のそれぞれについて、ラインL4とラインL5との間のX座標の変位量を含む。軌跡情報@Y=5はラインL5に存在しラインL5で終端しない境界8、境界9、境界10、境界2、境界11、境界12のそれぞれについて、ラインL5とラインL6との間のX座標の変位量を含む。軌跡情報@Y=6はラインL6に存在しラインL6で終端しない境界8、境界9、境界10、境界2、境界11、境界12のそれぞれについて、ラインL6とラインL7との間のX座標の変位量を含む。軌跡情報@Y=7はラインL7に存在しラインL7で終端しない境界8、境界2のそれぞれについて、ラインL7とラインL8との間のX座標の変位量を含む。軌跡情報@Y=8はラインL8に存在しラインL8で終端しない境界8、境界14、境界15、境界16、境界17、境界2、境界18、境界19のそれぞれについて、ラインL8とラインL9との間のX座標の変位量を含む。軌跡情報@Y=9はラインL9に存在しラインL9で終端しない境界14、境界15、境界16、境界17、境界2、境界18、境界19、境界20のそれぞれについて、ラインL9とラインL10との間のX座標の変位量を含む。軌跡情報@Y=10はラインL10に存在しラインL10で終端しない境界14、境界15、境界16、境界17、境界2、境界18、境界19、境界20のそれぞれについて、ラインL10とラインL11との間のX座標の変位量を含む。軌跡情報@Y=11はラインL11に存在しラインL11で終端しない境界15、境界16、境界17、境界2、境界18、境界19、境界20のそれぞれについて、ラインL11とラインL12との間のX座標の変位量を含む。軌跡情報@Y=12はラインL12に存在しラインL12で終端しない境界15、境界16、境界17、境界2、境界18、境界19、境界20のそれぞれについて、ラインL12とラインL13との間のX座標の変位量を含む。軌跡情報@Y=13はラインL13に存在しラインL13で終端しない境界16、境界17、境界2、境界18、境界19、境界20のそれぞれについて、ラインL13とラインL14との間のX座標の変位量を含む。軌跡情報@Y=14はラインL14に存在しラインL14で終端しない境界16、境界17、境界2、境界18、境界19、境界20のそれぞれについて、ラインL14とラインL15との間のX座標の変位量を含む。
このように、符号化データにおいて、境界データの数が所定数(=16)を超える場合、一部の境界ヘッダの出力は後回しにされる。外部のホストコンピュータなどの符号化手段によって生成された符号化データは、外部IF104で受信され、CPU101の制御の下、RAM102に転送され記憶される。
図9は、図1の復号装置106の機能および構成を示すブロック図である。復号装置106は、読込部901と、分離部902と、第1キュー903と、境界選択部904と、後続境界記憶部905と、先行境界記憶部906と、画素数計算部907と、領域色読取部908と、画素出力部909と、更新部910と、第2キュー911と、カウント部912と、を含む。読込部901は、符号化データを先頭からシーケンシャルに読み込む。分離部902は、読込部901によって読み込まれた符号化データを、境界ヘッダとライン別軌跡情報とに分離する。第1キュー903は、分離部902における分離処理により得られた境界ヘッダを新規境界ヘッダとして記憶するFIFOである。第1キュー903への書き込みおよび第1キュー903からの読み出しは境界ヘッダの単位で行われる。また、第1キュー903の先頭に記憶されている境界ヘッダを第1キュー903から削除せずに参照可能とするよう第1キュー903を構成することが可能である。第1キュー903は、最大で16個の境界ヘッダを保持できるよう構成される。
境界選択部904は、第2キュー911に記憶されている継続境界の情報と第1キュー903に記憶されている新規境界ヘッダとを比較する。具体的には、境界選択部904は座標(X,Y)が小さい(Y座標が小さいか、Y座標が同値の場合はX座標が小さい)方の境界を後続境界として選択する。詳細な選択方法については、図12を用いて後述する。
後続境界記憶部905は、境界選択部904によって選択された後続境界を記憶する。先行境界記憶部906は、境界選択部904によって新たに後続境界が選択されるとき、既に後続境界記憶部905に記憶されていた後続境界を先行境界として記憶する。画素数計算部907は、後続境界のX座標と先行境界のX座標との差分を計算し、計算結果を出力画素数とする。領域色読取部908は、先行境界記憶部906に記憶されている先行境界の画素値を読み取る。画素出力部909は、領域色読取部908で読み取った画素値を出力画素値として、画素数計算部907による計算の結果得られた出力画素数だけ出力画素値を連続して出力する。
更新部910は、先行境界の終端点のY座標を読み取る。更新部910は、読み取られたY座標が処理中のラインのY座標より大きいとき、分離部902における分離処理により得られた処理中のラインのライン別軌跡情報によって、境界の座標(X,Y)を更新する。第2キュー911は、更新部910によって座標(X,Y)が更新された境界の情報を継続境界の情報(以下、継続境界情報という)として記憶するFIFOである。第2キュー911への書き込みおよび第2キュー911からの読み出しは継続境界情報の単位で行われる。また、第2キュー911の先頭に記憶されている継続境界情報を第2キュー911から削除せずに参照可能とするよう第2キュー911を構成することが可能である。第2キュー911は、最大で16個の境界ヘッダを保持できるよう構成される。
ここで、継続境界情報は、境界の更新された座標(X,Y)と、終端点のY座標と、対応する色別領域の画素値と、を含む。例えば図6の例で、境界0の境界ヘッダがラインL0の復号処理において更新されると、座標はラインL1上の座標(1,1)となる。この座標は終端点のY座標(1)、色別領域の画素値(0xAAAAAA)とともに第2キュー911に継続境界情報として記憶される。カウント部912は、画素出力部909が矩形領域の横方向の画素数である16個の画素を出力するごとにカウントアップすることによって復号済のライン数(以下、復号済ライン数)をカウントする。
読込部901、分離部902、第1キュー903、境界選択部904、後続境界記憶部905、先行境界記憶部906、画素数計算部907、領域色読取部908、画素出力部909、更新部910、第2キュー911、カウント部912はいずれも汎用プロセッサとプロセッサとによって実行されるソフトウエアによって実装されてもよい。あるいはまた、それらはいずれも専用ハードウエアによって実装されてもよい。従って、復号装置106は、汎用プロセッサとプロセッサとによって実行されるソフトウエアによって実装されてもよく、または専用ハードウエアによって実装されてもよい。あるいはまた、復号装置106は、汎用プロセッサと専用ハードウエアとを組み合わせて実装されてもよい。
図10は、図9の分離部902をハードウエアで実装した場合のハードウエア構成図である。分離部902は、境界数読取部1001と、境界ヘッダ読取部1002と、軌跡情報読取部1003と、境界ヘッダカウント部1004と、第1比較部1005と、終端座標読取部1006と、終端記憶部1007と、第2比較部1008と、を有する。境界数読取部1001は、符号化データの先頭を参照し、境界数を読み取る。境界ヘッダ読取部1002は、第1比較部1005の比較結果と第2比較部1008の比較結果とに応じて、符号化データから境界ヘッダを読み取る。軌跡情報読取部1003は、更新部910からの要求に応じて、符号化データからライン別軌跡情報を読み取る。
境界ヘッダカウント部1004は、境界数読取部1001によって読み取られた境界数をカウント値の初期値としてセットし、後に境界ヘッダ読取部1002が境界ヘッダを読み取るごとに該カウント値をデクリメントする。この動作により、符号化データからまだ読み出していない境界ヘッダの数がカウントされる。すなわち、境界ヘッダカウント部1004のカウント値は、符号化データからまだ読み出していない境界ヘッダの数を表す。
第1比較部1005は、境界数読取部1001によって読み取られた境界数と矩形領域の横方向の画素数である16とを比較し、比較結果を境界ヘッダ読取部1002に出力する。具体的には、第1比較部1005は、境界数が16以下であるか否かを判定し、判定結果を境界ヘッダ読取部1002に出力する。終端座標読取部1006は、境界ヘッダの終端Y座標を読み取る。終端記憶部1007は、矩形領域のラインごとにそのラインで終端する境界の数をカウントして記憶する。第2比較部1008は、復号済ライン数がカウント部912によって更新されると、まだ読み出されていない境界ヘッダの数と直前のラインにおいて終端した境界の数とを比較し、比較結果を境界ヘッダ読取部1002に出力する。
境界数読取部1001、境界ヘッダ読取部1002、軌跡情報読取部1003、境界ヘッダカウント部1004、第1比較部1005、終端座標読取部1006、終端記憶部1007、第2比較部1008はいずれも汎用プロセッサとプロセッサとによって実行されるソフトウエアによって実装されてもよい。あるいはまた、それらはいずれも専用ハードウエアによって実装されてもよい。従って、分離部902は、汎用プロセッサとプロセッサとによって実行されるソフトウエアによって実装されてもよく、または専用ハードウエアによって実装されてもよい。あるいはまた、分離部902は、汎用プロセッサと専用ハードウエアとを組み合わせて実装されてもよい。
以下、図8および図11〜図13を用いて、図9の復号装置106における復号処理を説明する。図11は、図9の復号装置106における復号処理の流れを示すフローチャートである。図12は、図11の復号処理における1ライン復号処理の流れを示すフローチャートである。図13は、図11の復号処理における後続境界選択処理の流れを示すフローチャートである。
復号装置106は、DMAC105によりRAM102から転送される符号化データ(図8参照)を読込部901により読み込む(S1101)。境界数読取部1001は、読み込まれた符号化データの先頭から境界数(E)を読み取り、記憶する(S1102)。第1比較部1005は、読み取られた境界数(E)が1ラインの画素数である16以下であるか否かを判定する(S1103)。境界数(E)が16以下であれば、境界ヘッダ読取部1002は符号化データから全ての境界ヘッダを読み出し、第1キュー903に格納する(S1104)。この場合、軌跡情報読取部1003は符号化データの残りの部分を全てライン別軌跡情報として更新部910に転送する。復号装置106は後述する1ライン復号処理を行う(S1105)。境界数(E)が16以下の場合、復号装置106は1ライン復号処理を行った当該ラインが最終ライン(L15)であるか否かを判定する(S1106)。復号装置106は、最終ラインでなければ次のラインの復号処理を行い、最終ラインであれば復号処理を終了する。上記の通り、ステップS1103では、境界数と所定数(=16)との大小関係に応じて、全ての境界ヘッダを一度に第1キュー903に格納するか否かが決定される。
ステップS1103における判定の結果、境界数(E)が17以上の場合、分離部902は符号化データから16個の境界ヘッダを読み出し、第1キュー903に格納する(S1107)。図8の符号化データは境界数が21なので、ステップS1107ではそれらのなかから16個の境界ヘッダが第1キュー903に読み込まれる。復号装置106は後述する1ライン復号処理を行う(S1108)。1ライン復号処理が終わると、復号装置106はまだ第1キュー903に読み込まれていない境界ヘッダ(以下、残り境界ヘッダという)があるか否かを判定する(S1109)。図8の符号化データでは、最初に16個の境界ヘッダが第1キュー903に読み込まれたため、残り5個の残り境界ヘッダがある。ステップS1109による判定の結果、残り境界ヘッダがある場合、復号装置106は復号対象のラインLで終端した境界があるか否かを判定する(S1110)。図8の符号化データでは、最初のライン(L0)で終端する境界はないため、復号装置106はラインL0が最終ラインか否か判定した(S1114)後、次のラインL1の処理を行う。ラインL2,L3,L4,L5,L6,L8,L10,L12,L14においても同様の処理となる。
ステップS1110における判定の結果、復号対象のラインLで終端した境界がある場合、第2比較部1008はラインLで終端した境界数(n)と残り境界ヘッダの数とを比較する(S1111)。ラインL1では、境界0、境界1、境界3、境界4、境界6、境界7の6個の境界が終端しているため、ステップS1111では終端した境界数(=6)が残り境界数(=5)より小さいか否かが判定される。ステップS1111における判定の結果、ラインLで終端した境界数(n)が残り境界ヘッダの数より小さい場合、境界ヘッダ読取部1002はn個の残り境界ヘッダを選択して第1キュー903に格納する(S1112)。一方、ラインLで終端した境界数(n)が残り境界ヘッダの数より大きいか等しい場合、境界ヘッダ読取部1002は全ての残り境界ヘッダを第1キュー903に格納する(S1113)。図8の符号化データでは、ラインL1で終端した境界数(=6)は残り境界数(=5)より小さくないため、5個全ての残り境界ヘッダが第1キュー903に格納される。もし、残り境界数が6より大きければ、ステップS1112の処理において6個の残り境界ヘッダが選択され、第1キュー903に格納される。ラインL3、L5、L7、L9、L11、L13では、そこで終端する境界があるが、既に全ての境界ヘッダが読み込まれているため、ステップS1109で残り境界ヘッダがないと判定され、第1キュー903への境界ヘッダの格納は行われない。そして、復号装置106は1ライン復号処理を行った当該ラインが最終ライン(L15)であるか否かを判定する(S1114)。ステップS1114における判定の結果、最終ライン(L15)でなければステップS1108に戻って次のラインの処理が行われ、最終ラインであれば復号処理が終了する。
図11の1ライン復号処理(S1105、S1108)は図12に示されるフローで行われる。復号装置106は、最初に後続境界記憶部905に復号対象のラインLの後続境界が記憶されているか否かを判定する(S1201)。後続境界記憶部905に当該ラインLの後続境界が記憶されている場合、復号装置106はその後続境界を先行境界記憶部906に転送する(S1202)。あるラインの処理を開始した時点では後続境界は後続境界記憶部905に記憶されていない。境界選択部904は、後述する後続境界選択処理に従って、第1キュー903および第2キュー911を参照して後続境界を選択する(S1203)。復号装置106は、後続境界選択処理において、後続境界が選択されたか、またはいずれのキューからも境界が選択されなかったか判定する(S1204)。後続境界が選択された場合、境界選択部904は第1キュー903および第2キュー911のうち選択されたキューから後続境界を後続境界記憶部905に転送し、そこに格納する(S1205)。
次に復号装置106は先行境界記憶部906に先行境界が記憶されているか否かを判定する(S1206)。あるラインで最初に後続境界が選択される場合は、先行境界記憶部906に先行境界は記憶されておらず、あるラインで2個目以降の後続境界が選択される場合は、先行境界記憶部906に先行境界が記憶されている。先行境界記憶部906に先行境界が記憶されている場合、領域色読取部908はその先行境界から領域色を読み取る(S1207)。次に、画素数計算部907は、後続境界記憶部905に後続境界が記憶されているか確認し(S1208)、記憶されていれば、先行境界のX座標と後続境界のX座標との差分を出力画素数に設定する(S1209)。ライン上の最も右の色別領域以外はステップS1209により出力画素数が設定される。また、後続境界記憶部905に後続境界が記憶されていなければ、画素数計算部907は先行境界のX座標と矩形領域の右端の座標(X=16)との差分を出力画素数に設定する(S1210)。ライン上の最も右の色別領域ではステップS1210により出力画素数が設定される。画素出力部909は、ステップS1207で読み取った領域色をステップS1209またはステップS1210で設定した出力画素数だけ連続して出力する(S1211)。更新部910は、先行境界の終端Y座標が当該ライン(L)であるか否かを判定する(S1212)。そして、当該ラインであれば(Y=L)、更新部910は先行境界を削除する(S1213)。それ以外の値(Y>L)であれば、更新部910は分離部902からライン別軌跡情報を読み出して先行境界の座標情報を更新し、その後、第2キュー911に転送し、格納する(S1214)。この時点で復号装置106は後続境界記憶部905に後続境界が記憶されていないかを判定し(S1215)、記憶されていなければ、ライン上の最も右の色別領域の処理が終わったものとして1ライン復号処理を終了する。また、後続境界記憶部905に後続境界が記憶されていれば、処理はステップS1201に戻り、次の色別領域の処理が行われる。
図12の後続境界選択処理(S1203)は図13に示されるフローで行われる。先ず、復号装置106は、第1キュー903に新規境界ヘッダが記憶されているか否かを判定する(S1301)。第1キュー903に新規境界ヘッダがなければ、復号装置106は第2キュー911に継続境界情報が記憶されているか否かを判定する(S1302)。第2キュー911に継続境界情報がなければ復号装置106は「後続境界なし」と判定する。ステップS1302で第2キュー911に継続境界情報があれば、復号装置106は第2キュー911の先頭の継続境界情報のY座標が当該ラインLであるか否かを判定する(S1303)。そのY座標が当該ラインLとは異なる場合、復号装置106は「後続境界なし」と判定し、一致する場合は「継続境界」を後続境界として選択する。ステップS1301で新規境界ヘッダがあると判定された場合、復号装置106は第1キュー903の先頭の新規境界ヘッダの開始Y座標が当該ラインLであるか判定する(S1304)。その開始Y座標が当該ラインLでなければ、復号装置106はステップS1302の判定を行う。その開始Y座標が当該ラインLであれば、復号装置106は第2キュー911に継続境界情報が記憶されているか否かを判定する(S1305)。第2キュー911に継続境界情報があれば、復号装置106は第2キュー911の先頭の継続境界情報のY座標が当該ラインLであるか判定し(S1306)、なければ「新規境界」を後続境界として選択する。ステップS1306で継続境界のY座標が当該ラインLと一致すると判定された場合、復号装置106は継続境界のX座標と新規境界ヘッダの開始X座標とを比較する(S1307)。ステップS1306で継続境界のY座標が当該ラインLと一致しないと判定された場合、復号装置106は「新規境界」を後続境界として選択する。ステップS1307で継続境界のX座標が新規境界ヘッダの開始X座標よりも小さければ、復号装置106は「継続境界」を後続境界として選択し、逆ならば「新規境界」を後続境界として選択する。なお、「後続境界なし」と判定された場合は、1ライン復号処理において後続境界記憶部905は空となる。
本実施の形態に係る符号化・復号方法によると、符号化単位の横方向の画素数と同じ数のヘッダを記憶可能なバッファメモリと、符号化データを先頭から順に読込むための単純な読込手段を設ければよいため、復号装置のハード規模を削減できる。また、アドレス順にDRAMアクセスすることによって符号化データを読むことができるため、メモリ転送効率が向上する。
また、本実施の形態に係る符号化・復号方法では、矩形領域のラインを復号する際にそのラインの復号に必要な境界ヘッダがキューに格納されていることが保証される一方、不要な境界ヘッダは読み出されない。したがって、キューのサイズを低減することができる。その結果、色別領域の境界と該色別領域の画素値とを含む符号化データを生成する符号化装置のハードウエア規模を削減することができる。また、その符号化データを復号して画像を生成する復号装置のハードウエア規模を削減できる。また、符号化データを読み出す際のメモリ転送効率を高めることができる。
以上、実施の形態に係る画像処理システム100の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
以下では、複数の異なる色の画素を含み非可逆符号化される領域と単一色の画素からなる領域とが混在する場合の符号化装置、符号化データおよび復号装置について述べる。
図14は、符号化装置1400の機能および構成を示すブロック図である。符号化装置1400は、画像を表す画像データを取得し、取得された画像データを符号化して符号化データを生成する。符号化装置1400において、画像データは所定の符号化単位ごとに符号化される。以下、説明を簡単にするため、符号化単位として16×16画素の画像データを採用し、その符号化単位を符号化および復号する場合を例として説明するが、本例は16×16画素に限定されるものではない。符号化装置1400は、領域分割部1401と、境界生成部1402と、ヘッダ生成部1403と、画素置換部1404と、非可逆符号化部1405と、軌跡生成部204と、整列部205と、を備える。
領域分割部1401は、符号化装置1400に入力された16×16画素の矩形領域を画素の色で複数の色別領域に分割する。さらに、あらかじめ定められた数よりも小さな画素数の領域が、あらかじめ定められた数よりも多く隣接する場合、前記隣接する領域を結合し、非可逆符号化領域とする。例えば、2画素よりも小さな領域が4つ以上隣接する場合は、前記隣接する領域を結合して一つの非可逆符号化領域とする。ただし、単一色の画素からなる領域と非可逆符号化領域の決定方法は一例であり、上記の方法に限定されるものではない。領域分割部1401は、分割および結合により得られた領域毎に非可逆符号化領域または単一画素値からなる領域のいずれであるかを示す属性を生成する。
境界生成部1402は、領域分割部1401による分割の結果得られる色別領域をラインと交差する方向に沿って区切る境界を示す境界情報を生成する。例えば境界生成部1402は、色別領域の左端の画素の座標の集合と色別領域の画素値(色)とから境界情報を生成する。
ヘッダ生成部1403は、境界ごとに、その境界を特定するための境界ヘッダを生成する。境界ヘッダは、対応する境界の両端の座標と対応する領域の属性と対応する領域の画素値とを含む。例えばヘッダ生成部1403は、境界生成部1402によって生成された境界情報の始点のX座標およびY座標と、終点のY座標と、その境界情報が表す境界に対応する色別領域の属性と、その境界情報が表す境界に対応する色別領域の画素値と、から境界ヘッダを生成する。境界情報に含まれる境界の座標は境界の位置を表す。
画素置換部1404は、符号化装置1400に入力された16×16画素の矩形領域の画素のうち、単一色の領域に含まれる画素の画素値を置換する。例えば画素置換部1404は、16×16画素の矩形領域の画像を非可逆符号化した際に非可逆符号化データのデータ量がより小さくなる画素値を選択し、選択された画素値で元の画素値を置換する。非可逆符号化部1405は、画素値を置換した16×16画素の矩形領域の画像に対してJPEGなどの非可逆符号化を行い、非可逆符号化データを生成する。
図15は、図4に示される矩形領域400において、ハッチがかかっていない領域を異なる画素値の領域が結合された領域であるとした場合の境界0〜境界20の数値データを示す図である。境界0〜境界20の境界ヘッダはそれぞれ、対応する境界の属性と、開始点の座標(開始X座標,先頭Y座標)と、終端点のY座標である終端Y座標と、対応する色別領域の画素値である領域色と、を有する。属性は境界と対応する領域が単一画素値の領域であるか、異なる画素値の領域が結合された非可逆符号化領域であるかを示す。境界0〜境界20の境界別軌跡情報は、ラインを進めたときの境界0〜境界20のX座標の変位の集合を示す。
図16は、図15の符号化データを復号する復号装置1600の機能および構成を示すブロック図である。復号装置1600は、読込部901と、分離部902と、第1キュー903と、境界選択部904と、後続境界記憶部905と、先行境界記憶部906と、画素数計算部907と、領域色読取部908と、更新部910と、画素出力部1602と、第2キュー911と、非可逆符号データ復号部1601と、カウント部912と、を備える。
非可逆符号データ復号部1601は、入力される符号化データに含まれる非可逆符号化データを処理単位ごとに16×16画素の画像データに復号する。さらに16×16の画素を並べ替え、16×1画素のライン毎に画素出力部1602に出力する。画素出力部1602は、境界の属性に従って、領域色読取部908で読み取った画素値または非可逆符号復号部1601によって復号された画素のいずれかを出力する。画素出力部1602は、境界の属性が単一色の領域の場合、領域色読取部908で読み取った画素値を出力画素値として、画素数計算部907による計算の結果得られた出力画素数だけ出力画素値を連続して出力する。また、画素出力部1602は、非可逆符号データ復号部1601から入力された画素のうち、出力した画素と同じ(X、Y)座標の画素を廃棄する。境界の属性が非可逆符号化領域の場合、画素数計算部907による計算の結果得られた出力画素数だけ連続して、非可逆符号データ復号部1601から入力された画素を出力する。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 CPU、 102 RAM、 103 ROM、 104 外部IF、 105 DMAC、 106 復号装置、 107 画像処理装置、 108 印刷装置、 109 インターコネクト。

Claims (12)

  1. 画像の符号化単位を複数の領域に分割する分割手段と、
    前記複数の領域のそれぞれをラインと交差する方向に沿って区切る境界ごとに、その境界を特定するための境界ヘッダを生成するヘッダ生成手段と、
    ラインを進めたときの前記境界の変位を示す軌跡情報を生成する軌跡生成手段と、
    生成された前記境界ヘッダと生成された前記軌跡情報とを含む符号化データを生成する際、前記境界の数に応じて、前記境界ヘッダが連続して並べられる数が所定数以下になるように、前記境界ヘッダおよび前記軌跡情報の並べ方を変える整列手段と、を備える符号化装置。
  2. 前記整列手段は、前記境界の数と、ラインが延びる方向における該ラインの画素数に応じた所定数と、の比較の結果に応じて並べ方を変える請求項1に記載の符号化装置。
  3. 前記軌跡生成手段は、ラインごとに、そのラインと次のラインとの間における、そのラインに存在する前記境界の変位を含む前記軌跡情報を生成し、
    前記整列手段は、前記境界の数が前記所定数より大きい場合、前記所定数の前記境界ヘッダと残りの前記境界ヘッダとを、最初のラインに対応する前記軌跡情報を挟んで並べる請求項2に記載の符号化装置。
  4. 前記整列手段は、あるラインについて、該ラインで終端する前記境界の数がまだ並べられていない前記境界ヘッダの数よりも小さい場合、まだ並べられていない前記境界ヘッダから該ラインで終端する前記境界の数の前記境界ヘッダを選択して該ラインに対応する前記軌跡情報の次に並べ、該ラインで終端する前記境界の数がまだ並べられていない前記境界ヘッダの数以上の場合、全てのまだ並べられていない前記境界ヘッダを該ラインに対応する前記軌跡情報の次に並べる請求項3に記載の符号化装置。
  5. 前記整列手段は、前記境界の数が前記所定数と等しいかそれよりも小さい場合、生成された全ての前記境界ヘッダの次に前記軌跡情報を並べる請求項2から4のいずれか一項に記載の符号化装置。
  6. 前記複数の領域のそれぞれは、隣接する異なる色の画素からなる領域と、隣接する同じ色の画素からなる領域とからなる請求項1から5のいずれか一項に記載の符号化装置。
  7. 前記複数の領域のそれぞれは、隣接する同じ色の画素からなる請求項1から5のいずれか一項に記載の符号化装置。
  8. 前記境界は、対応する領域の端の画素の集合で表される請求項1から7のいずれか一項に記載の符号化装置。
  9. 前記境界ヘッダは、対応する境界の両端の座標と対応する領域の属性とを含む請求項1から8のいずれか一項に記載の符号化装置。
  10. 前記境界ヘッダは、対応する境界の両端の座標と対応する領域の画素値とを含む請求項1から8のいずれか一項に記載の符号化装置。
  11. 画像の符号化単位を複数の領域に分割することと、
    前記複数の領域のそれぞれをラインと交差する方向に沿って区切る境界ごとに、その境界を特定するための境界ヘッダを生成することと、
    ラインを進めたときの前記境界の変位を示す軌跡情報を生成することと、
    生成された前記境界ヘッダと生成された前記軌跡情報とを含む符号化データを生成する際、前記境界の数に応じて、前記境界ヘッダが連続して並べられる数が所定数以下になるように、前記境界ヘッダおよび前記軌跡情報の並べ方を変えることと、を含む符号化方法。
  12. コンピュータを請求項1乃至10のいずれか一項に記載の符号化装置の各手段として機能させるためのプログラム。
JP2016240567A 2016-12-12 2016-12-12 符号化装置、符号化方法、復号装置、復号方法および生成方法 Active JP6902861B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016240567A JP6902861B2 (ja) 2016-12-12 2016-12-12 符号化装置、符号化方法、復号装置、復号方法および生成方法
US15/837,347 US10555009B2 (en) 2016-12-12 2017-12-11 Encoding device, encoding method, decoding device, decoding method, and generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016240567A JP6902861B2 (ja) 2016-12-12 2016-12-12 符号化装置、符号化方法、復号装置、復号方法および生成方法

Publications (2)

Publication Number Publication Date
JP2018098611A JP2018098611A (ja) 2018-06-21
JP6902861B2 true JP6902861B2 (ja) 2021-07-14

Family

ID=62489928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016240567A Active JP6902861B2 (ja) 2016-12-12 2016-12-12 符号化装置、符号化方法、復号装置、復号方法および生成方法

Country Status (2)

Country Link
US (1) US10555009B2 (ja)
JP (1) JP6902861B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111311623A (zh) * 2020-02-26 2020-06-19 歌尔股份有限公司 图像分界方法、装置、设备及存储介质
US11573752B1 (en) * 2021-10-08 2023-02-07 Kyocera Document Solutions Inc. Image processing apparatus, image forming apparatus, and image forming method that perform compression suitable for the stage of image processing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69533870T2 (de) * 1994-10-19 2005-05-25 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Bilddekodierung
JP4365950B2 (ja) 1998-09-11 2009-11-18 キヤノン株式会社 高速ラスタ形式レンダリングのためのグラフィックオブジェクト処理方法および装置
US7529417B2 (en) * 2004-07-09 2009-05-05 Canon Kabushiki Kaisha Apparatus, method and storage medium for image encoding/decoding using shape-based coefficient interpolation
US7885988B2 (en) * 2006-08-24 2011-02-08 Dell Products L.P. Methods and apparatus for reducing storage size
US8031954B2 (en) * 2007-04-26 2011-10-04 Canon Kabushiki Kaisha Image encoding apparatus and control method thereof using prediction encoding and pixel classification
US9756332B2 (en) * 2011-09-21 2017-09-05 Lg Electronics Inc. Method and an apparatus for encoding/decoding an image
JP6268066B2 (ja) * 2013-09-20 2018-01-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置及び受信装置
JP6675253B2 (ja) 2015-06-05 2020-04-01 キヤノン株式会社 画像復号装置およびその方法、並びに、画像処理装置
US9928452B2 (en) * 2015-06-05 2018-03-27 Canon Kabushiki Kaisha Image decoding apparatus and method therefor

Also Published As

Publication number Publication date
US20180167643A1 (en) 2018-06-14
JP2018098611A (ja) 2018-06-21
US10555009B2 (en) 2020-02-04

Similar Documents

Publication Publication Date Title
EP1318665B1 (en) Image processing apparatus and method, program, and storage medium
KR20120065394A (ko) 화상처리장치 및 그 처리 방법
US8670156B2 (en) Image processing device, image processing method, and image forming apparatus
JP6902861B2 (ja) 符号化装置、符号化方法、復号装置、復号方法および生成方法
JP6445899B2 (ja) 画像形成装置及びその制御方法
JP2000333173A (ja) 画像データの復号化方法及びその装置
US9230200B2 (en) Method of processing graphics with limited memory
JP2008311792A (ja) 画像符号化装置及びその制御方法
JP4164257B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記憶媒体
JP2011013963A (ja) 画像処理装置、画像処理方法、コンピュータプログラム
KR100477777B1 (ko) 래스터 오브젝트를 생성하기 위한 방법, 시스템, 정보저장 매체, 및 컴퓨터 판독가능 매체
CN107203354B (zh) 图像处理设备及其控制方法
EP2387221B1 (en) Scanner device
JP6544905B2 (ja) 画像処理装置、画像処理方法、プログラム
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
JP6762758B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2000335021A (ja) 画像処理装置及び画像処理方法
US20110205591A1 (en) Image processing device and image processing method
AU2008202366A1 (en) Efficient fillmap merging
JP5873272B2 (ja) 画像符号化装置及びその制御方法
JP5424785B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP2854344B2 (ja) ミクストモード文書の表示方法
JP2016225794A (ja) 複写装置
JP6809158B2 (ja) 画像処理装置及びプログラム
JP4423812B2 (ja) 描画処理装置および描画処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201215

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210415

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: 20210524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210622

R151 Written notification of patent or utility model registration

Ref document number: 6902861

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151