JP7346837B2 - 符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム - Google Patents

符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム Download PDF

Info

Publication number
JP7346837B2
JP7346837B2 JP2019020041A JP2019020041A JP7346837B2 JP 7346837 B2 JP7346837 B2 JP 7346837B2 JP 2019020041 A JP2019020041 A JP 2019020041A JP 2019020041 A JP2019020041 A JP 2019020041A JP 7346837 B2 JP7346837 B2 JP 7346837B2
Authority
JP
Japan
Prior art keywords
bit
zero
processing
image
encoding
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
JP2019020041A
Other languages
English (en)
Other versions
JP2020127178A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2019020041A priority Critical patent/JP7346837B2/ja
Priority to US16/780,922 priority patent/US20200252652A1/en
Publication of JP2020127178A publication Critical patent/JP2020127178A/ja
Application granted granted Critical
Publication of JP7346837B2 publication Critical patent/JP7346837B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/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/18Methods 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 set of transform coefficients
    • 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/182Methods 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 pixel
    • 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/184Methods 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 bits, e.g. of the compressed video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラムに関する。
近年、デジタル画像の解像度が向上し、画像処理の処理対象となるデータのサイズが大きく、また、処理の内容も複雑なものになってきてことで、当該画像処理の実行時に大量のメモリアクセス処理が生ずるようになってきている。それ故、画像処理の効率を向上させるには、メモリアクセス処理の効率化が重要となってきている。
メモリアクセス処理の効率化を図るには、一度のメモリアクセス処理に係るデータ量を小さくすればよい。データサイズを小さくする技術として、特に画像処理の分野では、離散コサイン変換(DCT:Discrete Cosine Transform)を利用して画像データを固定長ビット列に符号化するデータ符号化処理が知られている。DCTは、離散信号である画像データを、水平及び垂直の二次元のコサイン周波数で構成された空間周波数分布を用いて、どの空間周波数がどの程度含まれているかを示すDCT係数に変換することで、データ量を圧縮する技術である。
例えばデジタルカメラにおける画像処理を想定する場合、光学系を介して取得された被写体像に基づくRGB画像データをYUV画像データに変換し、データサイズを圧縮して記録する一連の処理の途中で画像処理を行うことになる。画像処理には様々な種類が知られているが、例えば、幾何変換を利用して画像の歪みを補正する歪曲補正処理の場合は、処理の最中に生ずるメモリアクセス処理は多く、当該画像処理に係るメモリアクセス量は大量になる。このような大量のメモリアクセスの都度、処理対象の画像データを固定長ビット列として扱うことができれば、メモリアクセス処理におけるデータ量を削減することができるので、当該処理の効率化を図ることができる。
画像データを固定長ビット列にする周波数変換処理において、出力されるDCT係数から画像中のエッジの縦、横、斜めを認識し、DCT係数のリミッタを切り替えたリミッタ処理を実行して固定長ビット列に符号化する技術が開示されている(例えば、特許文献1)。
RGB画像データから変換されたYUV画像データから生成された固定長ビット列には、輝度成分(Y成分)と二つの色差成分(U成分、V成分)のそれぞれ対応するビット列が含まれる。復元後の画像の質を考慮すると、元の画像に含まれているエッジが弱い部分(YUV成分のスカラー量が低量又は中量の部分)に係る輝度(Y)のDCT成分のビット長をある程度長さ以上にしておかなければ、復号化後の画像のエッジ部分がなまった状態になってしまう。したがって、復号化の画像データに係る画質の低下を防ぐには、低中スカラー量に係る部分の輝度に係るDCT係数のビット長をある程度確保せざるを得ないが、この場合、U成分とV成分に係るDCT係数のビット長を短くしなければならない。しかしながら、U成分とV成分に係るDCT係数のビット長を短くする(データ量を少なくする)と、復号化後の画像において色の再現性が低下する、という課題が生ずる。
なお、特許文献1に開示されている技術では、DCT係数から、エッジを縦、横、斜めの大きく三種類に分けて認識している。この技術では、各エッジの特徴を十分に把握することは困難である。また、特許文献1に開示されている技術は、DCT係数を制限する制限値(リミッタ)が、DCT係数のスカラー量に関わらず一律に設定されているので、DCT係数に対するリミッタ処理が一律に行われる。従来技術では、復号化後の画像に含まれるエッジの再現性に課題がある。
すなわち、特許文献1に代表される従来技術を用いても、画像処理を行うときのメモリアクセス量を低下させるために高い圧縮率を実現しつつ、画質低下を防止するには課題がある。
本発明は、画像処理にデータ圧縮率を高め、かつ、復号化時の画質低下を防止する符号化装置を提供することを目的とする。
上記課題を解決するため、本発明の一態様は、画像を固定長データに符号化する符号化装置であって、前記画像を所定の画素数で分割した画像ブロックを生成する画像分割手段と、前記画像ブロックの各々に対する周波変換処理により、画像ブロックに係る周波数変換係数を生成する周波数変換手段と、前記画像ブロックに係る周波数変換係数を量子化した量子化係数を生成する量子化処理手段と、前記量子化係数に対しゼロビット符号化処理を行い、ゼロビット符号化データを生成するゼロビット符号化手段と、前記ゼロビット符号化データから前記固定長データを生成する固定長データ生成手段と、を有し、前記ゼロビット符号化手段は、前記画像ブロック中の前記量子化係数の位置に基づいてゼロビット符号フォーマットを決定し、決定された当該ゼロビット符号フォーマットに基づいて各画素ブロックに対応する前記量子化係数に対しゼロビット符号化処理を行う、ことを特徴とする。
本発明によれば、画像処理にデータ圧縮率を高め、かつ、復号化時の画質低下を防止する。
本発明に係る符号化装置及び復号化装置を適用可能な画像形成システムの実施形態を示す構成図。 上記画像形成システムの機能ブロック図。 本発明に係る符号化装置の実施形態が備える画像処理ブロックの機能構成図。 本発明に係る符号化装置の実施形態が備える可変長動画圧縮ブロックの機能構成図。 本発明に係る符号化装置及び復号化装置で用いられるDCT処理のアルゴリズムとなる算出式の例を示す図。 本発明に係る符号化方法及び復号化方法の本実施形態で処理対象とする画像データの例(a)と画素ブロックの例(b)を示す図。 本発明の実施形態である符号化装置の機能ブロックを示す図。 本実施形態に係るDCT係数の例を示す図。 本実施形態に係る量子化テーブルの例を示す図。 本実施形態に係る符号化方法により得られる量子化後DCT係数の例を示す図。 本実施形態に係るゼロビット符号化テーブルの例を示す図。 本実施形態に係るゼロビット符号化変換テーブルの第一例を示す図。 本実施形態に係るゼロビット符号化変換テーブルの第二例を示す図。 本実施形態に係るゼロビット符号化変換テーブルの第三例を示す図。 本実施形態に係るゼロビット符号化処理後のDCT係数の例を示す図。 本実施形態に係る符号化装置において生成される固定長ビット列のフォーマットの例を示す図。 本発明の実施形態である復号化装置の機能ブロックを示す図。 本実施形態に係るゼロビット復号化テーブルの例を示す図。 本実施形態に係るゼロビット復号化変換テーブルの第一例を示す図。 本実施形態に係るゼロビット復号化変換テーブルの第二例を示す図。 本実施形態に係るゼロビット復号化変換テーブルの第三例を示す図。 本実施形態に係る逆量子化テーブルの例を示す図。 本実施形態に係るDCT係数の例を示す図。 本発明に係る符号化方法及び復号化方法を含む画像処理方法の実施形態を示すフローチャート。 本発明に係る符号化方法及び復号化方法を含む画像処理方法の詳細な実施形態を示すフローチャート。 本実施形態に係る符号化方法の実施形態を示すフローチャート。 本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態を示すフローチャート。 本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態の詳細な例を示すフローチャート。 本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態の詳細な別例を示すフローチャート。 本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態の詳細な別例を示すフローチャート。 本実施形態に係る復号化方法の実施形態を示すフローチャート。 本実施形態に係る復号化方法において用いられるゼロビット符号化の実施形態を示すフローチャート。 本実施形態に係る復号化方法において用いられるゼロビット復号化の実施形態の詳細な例を示すフローチャート。 本実施形態に係る復号化方法において用いられるゼロビット復号化の実施形態の詳細な別例を示すフローチャート。 本実施形態に係る復号化方法において用いられるゼロビット復号化の実施形態の詳細な別例を示すフローチャート。
[本発明の要旨]
本発明に係る符号化装置は、離散コサイン変換(DCT:Discrete Cosine Transform)を利用した周波数変換処理を適用して、画像データを固定長ビット列に変換する符号化処理を行う装置である。また、本発明に係る復号化装置は前記符号化装置に対応し、固定長ビット列から画像データを復号化する装置である。以下、離散コサイン変換処理を「DCT処理」と表記する。また、DCT処理により得られる係数を「DCT係数」と表記する。
本発明に係る装置では、画像データから生成したDCT係数を144bitの固定長ビット列に変換する(符号化)することで、画像処理を行うときのメモリアクセス処理に係るデータ量を減らし、メモリアクセスコストを低下させる。また、画像処理を行うASIC(Applicatin Specific Integrated Circuit)に本発明を適用することで、ASICの消費電流を低下させることもでき、ASICの冷却機構の簡素化や、画像処理装置の製造コストを下げることもできる。
本発明に係る符号化装置及び復号化装置において実行される符号化方法及び復号化方法は、画像を所定の画素数からなる画像ブロックに分割し、当該画像ブロックに係るDCT係数を固定長ビット列に符号化する処理の一部に含まれる処理において特徴を有する。より詳細には、DCT係数を量子化してビット数を低減させる処理において、ビット数の低減度合いを従来に比べて小さくすることで復元性を高め、DCT係数のビット列に対して「ゼロビット符号化」処理を実行することで、従来と同様のデータ圧縮率を得る。すなわち、データアクセス処理の効率化を図りつつ、従来に比べて、復元された画像の画質を向上させることができる。以下、これらの特徴を実現する本発明の実施形態について説明する。
[本発明に係る符号化装置/復号化装置を備える装置の実施形態]
本発明に係る符号化装置及び復号化装置は、例えば、画像を撮影して記録する画像処理システムに適用可能なものである。以下、本発明に係る符号化装置及び復号化装置の実施形態を説明するための画像処理システムの構成例を図1に示す。以下の説明において、本実施形態に係る画像処理システムは、被写体像を撮像して記録する機能を備えるデジタルカメラ100とする。
本実施形態に係るデジタルカメラ100は、光学系102、撮像素子103、A/Dコンバータ104、画像処理を行うプロセッサ101、メモリコントローラ105、固定長用メモリ106、動画像メモリ107、を備える。
光学系102は、被写体像を撮像素子103の撮影面に結像させる光学レンズなどを備える。光学系102が備える光学レンズは、例えば広角レンズである。この光学レンズを二枚備えることで、360度の範囲の被写体の反射光を集光するように構成することもできる。すなわち、光学系102を介して全方向の被写体像を一つの画像データに収めるように構成することもできる。
撮像素子103は、光学系102により集光された被写体光を電気信号に変換して、当該画像信号を所定の時間間隔で適宜出力する光電変換素子である。撮像素子103は、例えば、CCDセンサやCMOSセンサなどの固体撮影素子を用いることができる。
A/Dコンバータ104は、撮像素子103から出力されてくる画像信号をデジタルデジタル変換して画像データとしてプロセッサ101に適宜出力する。この画像データが後段のプロセッサ101による画像処理の対象となる。
いわゆるコンピュータと同様の演算処理部や記憶領域を備えるプロセッサ101は、例えば、ASIC(Applicatin Specific Integrated Circuit)であって、歪曲補正処理などの幾何変換処理を含む画像処理を実行する。また、プロセッサ101は、画像処理を行うにあたり、画像データを固定長ビット列に変換する符号化処理、固定長ビット列から画像データを復元する復号化処理を実行する。
メモリコントローラ105は、プロセッサ101が画像処理を行うときに生成した固定長ビット列を、固定長用メモリ106に格納するときのデータ格納動作を制御する。また、メモリコントローラ105は、プロセッサ101が画像処理を行うときに固定長用メモリ106に格納されている固定長ビット列の読出しの動作を制御する。
固定長用メモリ106は、プロセッサ101において実行される画像処理に用いられる固定長ビット列を、メモリコントローラ105の制御によって格納/読み出しを行う不揮発性メモリである。固定長用メモリ106には、例えば、DDR-SDRAM(Double-DataーRate Synchronous Dynamic Random Access Memory)を用いることができる。固定長用メモリ106は、所定の画像処理を実行するときに処理対象のデータを一時的に格納するワークメモリとして機能する。
動画像メモリ107は、プロセッサ101によって画像処理が行われて生成される動画像を記憶する不揮発性メモリである。動画像メモリ107には、例えば、フラッシュメモリを用いることができる。
[プロセッサ101の機能ブロック]
次に、プロセッサ101の機能ブロックについて詳細に説明する。図2に示すように、プロセッサ101によって構成される画像処理ブロックは、画像処理部11と、固定長符号化部12と、歪曲補正部13と、固定長復号化部14と、可変長動画圧縮部15と、を有する。プロセッサ101に係る各機能ブロックは、本発明に係る符号化プログラムおよび復号化プログラムを含む画像処理プログラムと、プロセッサ101が有するハードウェア資源との協働により実現される。
画像処理部11は、光学系102、撮像素子103及びA/Dコンバータ104によって構成されるデータ入力部20から出力されてくる画像データをRGB画像データに変換する画像処理を実行する。画像処理部11は、RGB画像データを生成して固定長符号化部12に出力する。なお、画像処理部11の詳細については、後述する。
固定長符号化部12は、画像処理部11において生成されたRGB画像データに対する固定長符号化処理を実行する。したがって、固定長符号化部12によってRGB画像データから固定長ビット列が生成される。また、固定長符号化部12は、歪曲補正部13により生成された補正画像データ(補正後のRGB画像データ)に対して固定長符号化処理を実行する。固定長符号化部12は、補正後のRGB画像データから変換された固定長ビット列を一時記憶部30に転送する。このとき、歪曲補正部13から指定されたアドレスに補正後の固定長ビット列を書き込むように指示する。固定長符号化部12の詳細については後述する。固定長符号化部12は、本発明に係る符号化装置の実施形態に相当する。
なお、一時記憶部30は、プロセッサ101の制御により動作するメモリコントローラ105及び固定長用メモリ106によって構成される。
歪曲補正部13は、一時記憶部30に格納された補正前の固定長ビット列から固定長復号化部14により復号化された画像データを読み込んで、歪曲補正処理を実行する。歪曲補正部13は、歪曲補正処理によって生成された補正画像データを、固定長符号化部12に転送する。
固定長復号化部14は、歪曲補正部13から指定された固定長ビット列を一時記憶部30から読み出して復号化して、歪曲補正部13に転送する。また、固定長復号化部14は、補正後の固定長ビット列を順次読み込んで復号化し、可変長動画圧縮部15に転送する。固定長復号化部14の詳細については後述する。固定長復号化部14は、本発明に係る復号化装置の実施形態に相当する。
可変長動画圧縮部15は、固定長復号化部14から転送されてきた補正後のRGB画像データに対し動画圧縮処理を実行する。可変長動画圧縮部15において実行される処理によって、例えば、MPEG(Moving Picture Experts Group)方式の動画像圧縮処理が行われる。可変長動画圧縮部15は、動画圧縮処理により生成された動画像データを、動画像メモリ107によって構成される画像データ格納部40に転送する。可変長動画圧縮部15の詳細については、後述する。
[画像処理部11の詳細な機能ブロック]
ここで、本実施形態に係る画像処理部11の詳細な機能ブロックについて図3を用いて説明する。図3に示すように、画像処理部11は、Byaer補正処理部111と、フィルタ処理部112と、を有する。
Byaer補正処理部111は、データ入力部20から画像データを受け取り、ベイヤー型の画像を読み込み補正して通常のRGB値を生成する。
フィルタ処理部112は、Byaer補正処理部111において生成されたRGB画像データにフィルタ処理を実行する。フィルタ処理後のRGB画像データは、固定長符号化部12に転送される。
[可変長動画圧縮部15の詳細な機能ブロック]
次に、本実施形態に係る可変長動画圧縮部15の詳細な機能ブロックについて、図4を用いて説明する。図4に示すように、可変長動画圧縮部15は、動き検索部151と、DCT部152と、量子化処理部153と、可変長符号化部154と、逆量子化処理部155と、逆DCT部156と、動き補償部157と、を有する。
動き検索部151は、固定長復号化部14から受け取った画像データと、動き補償部157からの相関が最も高い前フレームのブロックとの差分データを算出する。
DCT部152は、動き検索部151で算出された差分データを空間周波数に変換するDCT処理を実行し、量子化処理部153に転送する。
量子化処理部153は、周波数変換済みのDCT係数を量子化し、可変長符号化部154に転送する。
可変長符号化部154は、量子化処理部153で生成された量子化データを可変長符号化して圧縮符号を生成する。可変長符号化部154は、生成した圧縮符号を画像データ格納部40に格納する。
逆量子化処理部155は、量子化処理部153で生成された、「量子化されたブロック」に対し、逆量子化処理を実行する。逆量子化処理部155は、処理結果を、逆DCT部156に転送する。
逆DCT部156は、逆量子化処理部155から渡された逆量子化データに対して、逆周波数変換処理(逆DCT処理)を実行する。逆DCT部156は、逆周波数変換処理による処理結果を動き補償部157に転送する。
動き補償部157は、動き補償した前フレームのマクロブロックに、逆DCT部156から渡された差分データを加算して参照フレームを作成する。動き補償部157は、参照フレームを動き検索部151に転送する。
[DCT処理/逆DCT処理]
本実施形態において用いられる、画像データをDCT係数に変換する周波数変換処理(DCT処理)と、DCT係数から画像データに変換する逆周波数変換処理(逆DCT処理)について説明する。図5は、本実施形態に係るDCT処理および逆DCT処理のアルゴリズムを例示する算術式である。本実施形態に係るDCT処理は、画像データを所定の画素数で分割した画像ブロックにおいて画素毎にDCT係数を生成する処理である。また、本実施形態に係る逆DCT処理は、DCT係数から画素ごとの画像データを復元する処理である。
[元画像データと固定長符の例]
次に、本実施形態に係る画像処理の処理対象となる画像データと当該画像データに係る固定長ビット列の関係について、図6の模式図を用いて説明する。図6(a)は、画像処理対象となる元画像データ201を模式的に示している。元画像データ201データは、複数の画素により構成されている。図6(b)は、元画像データ201を所定の画素数(例えば、四画素×四画素)に分割した画像ブロックを模式的に示している。
デジタルカメラ100で撮影された被写体に係る元画像データ201を、四画素×四画素の画像ブロック202に分割して、図6(b)に例示するような画像ブロック202を固定長ビット列の処理単位とする。したがって、本実施形態に係る固定長ビット列は、元画像データ201の四画素×四画素で構成される画像ブロック202ごとに生成される値に基づくものとなる。
[符号化装置の実施形態]
次に、本発明に係る符号化装置の実施形態に相当する固定長符号化部12の機能ブロックについてより詳細に説明する。図7に示すように、本実施形態に係る固定長符号化部12は、ブロック化部121と、YUV変換部122と、DCT変換部123と、量子化部124と、量子化テーブル125と、ゼロビット符号化処理部126と、ゼロビット符号化テーブル127と、符号化フォーマット生成部128と、を有する。
ブロック化部121は、画像処理部11から受け取るRGB画像データを、四画素×四画素からなる画像ブロック202に分割する。画像ブロック202のイメージは、図6を用いて説明したとおりである。ブロック化部121は、画像分割手段に相当し、画像分割部を構成する。
YUV変換部122は、ブロック化部121から渡される画像ブロック202に対するYUV変換処理を実行する。したがって、YUV変換部122において四画素×四画素からなるYUV画像ブロック300(図8を参照)が生成される。このYUV画像ブロック300が、YUV変換部122からDCT変換部123に渡される。
DCT変換部123は、YUV画像ブロック300に対し、DCT処理を実行して、当該YUV画像ブロック300に対応するDCT係数を生成する。当該DCT係数は、各YUV画像ブロックを構成する各画素に対応する。DCT変換部123は、生成したDCT係数を量子化部124に渡す。DCT変換部123は、周波数変換手段に相当し、周波数変換部を構成する。DCT変換部123の詳細は後述する。
量子化部124は、量子化テーブル125を参照して、DCT変換部123から受け取ったDCT係数ブロック310の各画素ブロックに対応する量子化シフト値を取得する。量子化テーブル125は、量子化部124における量子化処理に用いられる量子化シフト値を格納したテーブルデータが格納されている。量子化部124と量子化テーブル125の詳細は後述する。
ゼロビット符号化処理部126は、量子化部124から渡された量子化後のDCT係数ブロックの各ブロックに係るDCT係数のビット列に対して、ゼロビット符号化テーブル127を参照し、ゼロビット符号化処理の処理パターンを決定する。また、ゼロビット符号化処理部126は、決定された処理パターンに規定されるゼロビット符号フォーマットに基づいて、ゼロビット符号化処理を実行し、その結果を、符号化フォーマット生成部128に渡す。ゼロビット符号化処理部126における処理内容の詳細は後述する。
ゼロビット符号化テーブル127は、ゼロビット符号化処理部126が用いるゼロビット符号化ビット数変換テーブル700を格納する。また、ゼロビット符号化テーブル127は、複数のゼロビット符号化フォーマットを格納する。ゼロビット符号化フォーマットなどの詳細は後述する。
符号化フォーマット生成部128は、ゼロビット符号化処理部126から渡された、ゼロビット符号化フォーマットに基づいて、図15に例示するような形式に変換するフォーマット変換処理を行う。符号化フォーマット生成部128は、フォーマット変換処理によって生成された固定長ビット列を、一時記憶部30を構成する固定長用メモリ106に記憶させる。符号化フォーマット生成部128は、符号化手段に相当する。固定長ビット列フォーマットの詳細については後述する。
[DCT変換部123の詳細]
ここで、DCT変換部123において生成されるDCT係数の例を模式的に示す。図8に示す例は、YUV画像ブロック300を構成する各画素に含まれる空間周波数の違いによって、生成されるDCT係数を模式的に示している。
例えば、図8(a)に例示するように、各ブロックに係るDCT係数は[255]、[10]、[-125]などの値として算出される。
また、図8(b)は、YUV画像ブロック300に対してDCT変換部123がDCT処理を実行した結果、各画素ブロックに対応して算出されたDCT係数のビット長を示したDCT係数ブロック310である。図8(b)に示すように、本実施形態では、全ての画素ブロックにおいて、算出されたDCT係数のビット長は10ビットとする。
すなわち、DCT係数ブロック310の各画素ブロックにおいてDCT係数の値の大きさはそれぞれ異なるが、ビット長は10ビットであるとする。このDCT係数ブロック310がDCT変換部123において生成されて量子化部124に渡される。
[量子化部124と量子化テーブル125の詳細]
図9(a)は、量子化テーブル125に格納されている量子化シフト値テーブル501を例示している。なお、図9(b)は、従来例として比較するための量子化シフト値テーブル502を例示している。
図9において、DCT係数ブロック310の各ブロックに対応するビットシフト値を例示しているが、符号501aで示しているブロックにおける”0”は、「ビットシフト量がゼロである」という意味ではなく、当該ブロックについては固定長ビット列を生成する処理の対象としないことを意味する。これらブロックは、YUV画像ブロック300における対応する画素において空間周波数が高周波を多く含むことで、DCT係数が小さくなった部分に相当する。このような画素を含まずに固定長ビット列を生成しても、復元した画像における画質への影響が小さい故、処理対象から外している。
量子化部124において、図9(a)に例示した量子化シフト値テーブル501を用いた量子化処理を実行した後のDCT係数である量子化後DCT係数ブロック511を図10(a)に例示する。量子化後DCT係数ブロック511の各ブロックのDCT係数のビット長は、量子化シフト値テーブル501のシフト値に基づいてそれぞれ変化している。なお、比較のために、図9(b)に例示した従来の量子化シフト値テーブル502を用いた量子化処理に係る量子化後DCT係数ブロック512を図10(b)に例示する。
図10(a)と図10(b)を比較すると、本実施形態に係る量子化部124における量子化処理は従来に比べてシフト値が小さいため、量子化後DCT係数ブロック511の各ブロックのビット長が長くなる。これは、量子化処理の段階では、本実施形態の方が従来に比べてデータ圧縮率が低いことを意味する。しかしながら、本実施形態では、量子化後DCT係数ブロック511に示したビット長に基づくDCT係数を用いて画像データを復元するので、復元後の画質は従来比較例に比べて向上する。量子化後DCT係数ブロック511は量子化部124からゼロビット符号化処理部126に渡される。
[ゼロビット符号化ビット数変換テーブル700の詳細]
図11に、ゼロビット符号化ビット数変換テーブル700を例示する。ゼロビット符号化ビット数変換テーブル700は、量子化後DCT係数ブロック511の各ブロックに対応するゼロビット符号化処理の処理パターンを規定する。例えば、「10->9」に対応する量子化後DCT係数ブロック511に対しては、第一符号化処理パターン701を実行する。第一符号化処理パターン701は、10ビット長を9ビット長にするゼロビット符号化処理である。
同様に、「7->6」に対応する量子化後DCT係数ブロック511に対しては、第二符号化処理パターン702を実行する。第二符号化処理パターン702は、7ビット長を6ビット長にするゼロビット符号化処理である。「6->5」に対応する量子化後DCT係数ブロック511に対しては、第三符号化処理パターン703を実行する。第三符号化処理パターン703は、6ビット長を5ビット長にするゼロビット符号化処理である。
続いて、ゼロビット符号化処理部126において実行されるゼロビット符号化処理の詳細について、説明する。ゼロビット符号化処理部126は、ゼロビット符号化テーブル127を参照して、処理対象にブロックに対するゼロビット符号化フォーマットを決定し、決定したゼロビット符号化フォーマットに含まれる複数のビット演算処理を決定する。
[第一符号化処理パターン701]
図12は、第一符号化処理パターン701について説明する図である。図12(a)は、第一符号化処理パターン701によってゼロビット符号化処理が実行される前の量子化後DCT係数のビット列を例示している。図12(b)は、第一符号化処理パターン701によってゼロビット符号化処理が実行された後のビット例を例示している。
図12(a)に例示するように、画素ブロックの位置に対応して選択されたゼロビット符号化処理の種類において、複数の処理パターンから特定の処理パターンが決定される。ゼロビット符号化処理前のビット列(第一符号処理前ビット列7011)において、最上位ビット(MSB:Most Significant bit)である第9ビットはサインビット(Sビット)である。第一符号処理前ビット列7011を、MSBに続く上位ビットから順番に探索し「0」が三つ連続する場合は、当該ビット列に対する処理パターンは、第一パターンとする。
同じく、第一符号処理前ビット列7011を、MSBに続く上位ビットから順番に探索し「0」が三つ連続しない場合であっても、「0」が二つ連続した後に「1」である場合は、当該ビット列に対する処理パターンは、第二パターンとする。また、第一符号処理前ビット列7011を、MSBに続く上位ビットから順番に探索し「0」が三つ連続しない場合であっても、一つの「0」の後に「1」に当たる場合は、当該ビット列に対する処理パターンは、第三パターンとする。そして、第一符号処理前ビット列7011を、MSBに続く上位ビットから順番に探索し「0」がなく「1」に当たる場合は、当該ビット列に対する処理パターンは、第四パターンとする。
上記のように決定された処理パターンに基づく、ゼロビット符号化処理の結果について、図12(b)の第一符号処理後ビット列7012を用いて説明する。上記の第一パターンの場合、第8ビットから第6ビットの「000」を「00」にし、これを第一符号処理後ビット列7012における第7ビットと第6ビットとする。また、第一符号処理前ビット列7011の第5ビットからMSBまでの6ビットを、第一符号処理後ビット列7012の第5ビットからMSBに当てはめる。
また、上記の第二パターンの場合、第8ビットから第6ビットの「001」を「01」にし、これを第一符号処理後ビット列7012における第7ビットと第6ビットとする。また、第一符号処理前ビット列7011の第5ビットからMSBまでの6ビットを、第一符号処理後ビット列7012の第5ビットからMSBに当てはめる。
また、上記の第三パターンの場合、第8ビットから第7ビットが「01」であるから、第一符号処理後ビット列7012における第7ビットと第6ビットを「10」とする。また、第一符号処理前ビット列7011の第6ビットから第1ビットまでの6ビットを、第一符号処理後ビット列7012の第5ビットからMSBに当てはめる。すなわち、第一符号処理前ビット列7011の下位6ビットを右方向に1ビットシフトさせて、これを第一符号処理後ビット列7012の第5ビットからMSBに当てはめる。
また、上記の第四パターンの場合、第8ビットが「1」であるから、第一符号処理後ビット列7012における第7ビットと第6ビットを「11」とする。また、第一符号処理前ビット列7011の第7ビットから第2ビットまでの6ビットを、第一符号処理後ビット列7012の第5ビットからMSBに当てはめる。すなわち、第一符号処理前ビット列7011の下位7ビットを右方向に2ビットシフトさせて、これを第一符号処理後ビット列7012の第5ビットからMSBに当てはめる。
ゼロビット符号化処理では、第一符号処理後ビット列7012のフォーマットは、MSBが「サインビット(S)」、続く上位2ビットがゼロビット処理のパターンを明示する「ゼロビットヘッダ」となる。ゼロビットヘッダに続きMSBまでの6ビット長に量子化後DCT係数が格納される。以上のようにすることで、第一符号化処理パターン701では10ビット長であったビット列を9ビット長に圧縮することができる。
[第二符号化処理パターン702]
図13は、第二符号化処理パターン702について説明する図である。図13(a)は、第二符号化処理パターン702によってゼロビット符号化処理が実行される前の量子化後DCT係数のビット列を例示している。図13(b)は、第二符号化処理パターン702によってゼロビット符号化処理が実行された後のビット例を例示している。
図13(a)に例示するように、画素ブロックの位置に対応して選択されたゼロビット符号化処理の種類において、量子化後DCT係数の大きさによって、複数の処理パターンから特定の処理パターンが決定される。ゼロビット符号化処理前のビット列(第二符号処理前ビット列7021)において、最上位ビット(MSB:Most Significant bit)である第6ビットはサインビット(Sビット)である。第二符号処理前ビット列7021を、MSBに続く上位ビットから順番に探索し「0」が三つ連続する場合は、当該ビット列に対する処理パターンは、第一パターンとする。
同じく、第二符号処理前ビット列7021を、MSBに続く上位ビットから順番に探索し「0」が三つ連続しない場合であっても、「0」が二つ連続した後に「1」である場合は、当該ビット列に対する処理パターンは、第二パターンとする。また、第二符号処理前ビット列7021を、MSBに続く上位ビットから順番に探索し「0」が三つ連続しない場合であっても、一つの「0」の後に「1」に当たる場合は、当該ビット列に対する処理パターンは、第三パターンとする。そして、第二符号処理前ビット列7021を、MSBに続く上位ビットから順番に探索し「0」がなく「1」に当たる場合は、当該ビット列に対する処理パターンは、第四パターンとする。
上記のように決定された処理パターンに基づく、ゼロビット符号化処理の結果について、図13(b)の第二符号処理後ビット列7022を用いて説明する。上記の第一パターンの場合、第5ビットから第3ビットの「000」を「00」にし、これを第二符号処理後ビット列7022における第4ビットと第3ビットとする。また、第二符号処理前ビット列7021の第2ビットからMSBまでの3ビットを、第二符号処理後ビット列7022の第2ビットからMSBに当てはめる。
また、上記の第二パターンの場合、第8ビットから第6ビットの「001」を「01」にし、これを第二符号処理後ビット列7022における第7ビットと第6ビットとする。また、第二符号処理前ビット列7021の第5ビットからMSBまでの6ビットを、第二符号処理後ビット列7022の第5ビットからMSBに当てはめる。
また、上記の第三パターンの場合、第5ビットから第4ビットが「01」であるから、第二符号処理後ビット列7022における第4ビットと第3ビットを「10」とする。また、第二符号処理前ビット列7021の第3ビットから第1ビットまでの3ビットを、第二符号処理後ビット列7022の第2ビットからMSBに当てはめる。すなわち、第二符号処理前ビット列7021の下位4ビットを右方向に1ビットシフトさせて、これを第二符号処理後ビット列7022の第2ビットからMSBに当てはめる。
また、上記の第四パターンの場合、第5ビットが「1」であるから、第二符号処理後ビット列7022における第4ビットと第3ビットを「11」とする。また、第二符号処理前ビット列7021の第4ビットから第2ビットまでの3ビットを、第二符号処理後ビット列7022の第2ビットからMSBに当てはめる。すなわち、第二符号処理前ビット列7021の下位5ビットを右方向に2ビットシフトさせて、これを第二符号処理後ビット列7022の第2ビットからMSBに当てはめる。
ゼロビット符号化処理では、第二符号処理後ビット列7022のフォーマットは、MSBが「サインビット(S)」、続く上位2ビットがゼロビット処理のパターンを明示する「ゼロビットヘッダ」となる。ゼロビットヘッダに続きMSBまでのビット列に量子化後DCT係数が格納される。以上のようにすることで、第二符号化処理パターン702では7ビット長であったビット列を6ビット長に圧縮することができる。
[第三符号化処理パターン703]
図14は、第三符号化処理パターン703について説明する図である。図14(a)は、第三符号化処理パターン703によってゼロビット符号化処理が実行される前の量子化後DCT係数のビット列を例示している。図14(b)は、第三符号化処理パターン703によってゼロビット符号化処理が実行された後のビット例を例示している。
図14(a)に例示するように、画素ブロックの位置に対応して選択されたゼロビット符号化処理の種類において、量子化後DCT係数の大きさによって、複数の処理パターンから特定の処理パターンが決定される。ゼロビット符号化処理前のビット列(第三符号処理前ビット列7031)において、最上位ビット(MSB:Most Significant bit)である第5ビットはサインビット(Sビット)である。第三符号処理前ビット列7031の、MSBに続く上位ビットから順番に探索し「0」が三つ連続する場合は、当該ビット列に対する処理パターンは、第一パターンとする。
同じく、第三符号処理前ビット列7031を、MSBに続く上位ビットから順番に探索し「0」が三つ連続しない場合であっても、「0」が二つ連続した後に「1」である場合は、当該ビット列に対する処理パターンは、第二パターンとする。また、第三符号処理前ビット列7031を、MSBに続く上位ビットから順番に探索し「0」が三つ連続しない場合であっても、一つの「0」の後に「1」に当たる場合は、当該ビット列に対する処理パターンは、第三パターンとする。そして、第三符号処理前ビット列7031を、MSBに続く上位ビットから順番に探索し「0」がなく「1」に当たる場合は、当該ビット列に対する処理パターンは、第四パターンとする。
上記のように決定された処理パターンに基づく、ゼロビット符号化処理の結果について、図14(b)の第三符号処理後ビット列7032を用いて説明する。上記の第一パターンの場合、第4ビットから第2ビットの「000」を「00」にし、これを第三符号処理後ビット列7032における第3ビットと第2ビットとする。また、第三符号処理前ビット列7031の第1ビットからMSBまでの2ビットを、第三符号処理後ビット列7032の第1ビットからMSBに当てはめる。
また、上記の第二パターンの場合、第4ビットから第2ビットの「001」を「01」にし、これを第三符号処理後ビット列7032における第3ビットと第2ビットとする。また、第三符号処理前ビット列7031の第1ビットからMSBまでの2ビットを、第三符号処理後ビット列7032の第1ビットからMSBに当てはめる。
また、上記の第三パターンの場合、第4ビットから第3ビットが「01」であるから、第三符号処理後ビット列7032における第4ビットと第3ビットを「10」とする。また、第三符号処理前ビット列7031の第2ビットから第1ビットの2ビットを、第三符号処理後ビット列7032の第1ビットからMSBに当てはめる。すなわち、第三符号処理前ビット列7031の下位3ビットを右方向に1ビットシフトさせて、これを第三符号処理後ビット列7032の第1ビットからMSBに当てはめる。
また、上記の第四パターンの場合、第4ビットが「1」であるから、第三符号処理後ビット列7032における第3ビットと第2ビットを「11」とする。また、第三符号処理前ビット列7031の第3ビットから第2ビットまでの2ビットを、第三符号処理後ビット列7032の第1ビットからMSBに当てはめる。すなわち、第三符号処理前ビット列7031の下位4ビットを右方向に2ビットシフトさせて、これを第三符号処理後ビット列7032の第1ビットとMSBに当てはめる。
ゼロビット符号化処理では、第三符号処理後ビット列7032のフォーマットは、MSBが「サインビット(S)」、続く上位2ビットがゼロビット処理のパターンを明示する「ゼロビットヘッダ」となる。ゼロビットヘッダに続きMSBまでのビット列に量子化後DCT係数が格納される。以上のようにすることで、第三符号化処理パターン703では6ビット長であったビット列を4ビット長に圧縮することができる。
以上、本実施形態に係るゼロビット符号化フォーマットと、その処理パターンを例示したが、本実施形態に係るゼロビット符号化処理部126に適用可能なゼロビット符号化フォーマットと処理パターンは、これに限定されるものではない。例えば、9ビットを8ビットにする処理パターンも可能である。
いずれの処理パターンにおいても、量子化後DCT係数のビット列においてMSBに続く上位3ビットのビット列に「0」がどのように格納されているかによって処理パターンを決定している。すなわち、「0」ビットの格納パターンによって符号化処理の内容を規定している。
図15は、量子化後DCT係数ブロック511に対して、上記のゼロビット符号化処理を実行した後のゼロビット後DCT係数ブロック521を例示している。ゼロビット後DCT係数ブロック521の各ブロックの数字は、ゼロビット符号化テーブル127に基づいてデータ圧縮処理が行われた後における各DCT係数のビット長を示している。図15と図10(b)を比較すると、各ブロックにおけるビット長は同じになっている。
本実施形態に係る符号化処理によれば、DCT係数の量子化段階での圧縮率を小さくして復元時の画質を向上させるとともに、ゼロビット符号化処理によって、従来と同等のデータ圧縮率をもって固定長ビット列を生成することができる。
[固定長ビット列フォーマットの詳細]
図16は、本実施形態に係る符号化フォーマット生成部128において生成される固定長ビット列のフォーマット(固定長ビット列化フォーマット)を例示している。図16に示すように、量子化された輝度(Y)、U成分、Y成分に係るDCT係数に対しゼロビット符号化処理を実行した後、これを用いて144bitからなる固定長ビット列(固定長データ)が生成される。図16に例示するように、輝度(Y)に対応するbit列は「64bit」、U成分のDCT係数に対応するbit列は「32bit」、V成分のDCT係数に対応するbit列は「32bit」が割り当てられる。即ち、本実施形態に係る固定長ビット列は、144bitから構成される。
[復号化装置の実施形態]
続いて、本発明に係る復号化装置の実施形態に相当する固定長復号化部14の詳細な機能ブロックについて図17を用いて説明する。図17に示すように、本実施形態に係る固定長復号化部14は、符号解析部141と、ゼロビット復号化処理部142と、ゼロビット復号化テーブル143と、逆量子化部144と、逆量子化テーブル145と、逆DCT変換部146と、RGB変換部147と、逆ブロック化部148と、を有する。
符号解析部141は、一時記憶部30から読み出した図15に示したフォーマットからなる固定長ビット列を読み出して、四画素×四画素の画像ブロック202に対応する、ゼロビット符号化フォーマットからなるビット列をゼロビット復号化処理部142に転送する。符号解析部141は、符号解析手段に相当する。
ゼロビット復号化処理部142は、符号解析部141から渡されたビット列に基づいてゼロビット復号化テーブル143を参照し、ゼロビット復号化フォーマットを特定する。また、ゼロビット復号化処理部142は、特定したゼロビット復号化フォーマットに基づいてゼロビット復号化テーブル143を参照し、ゼロビット復号化処理の処理パターンを決定する。ゼロビット復号化処理部142は、決定した処理パターンに基づいて、ゼロビット復号化処理を実行し、逆量子化前DCT係数(量子化後DCT係数)を逆量子化部144に渡す。ゼロビット復号化処理部142の詳細は後述する。
ゼロビット復号化テーブル143は、ゼロビット復号化処理部142が用いるゼロビット復号化ビット数変換テーブル710を格納する。また、ゼロビット復号化テーブル143は、複数のゼロビット復号化フォーマットを格納する。ゼロビット復号化テーブル143の詳細は後述する。
逆量子化部144は、逆量子化テーブル145を参照し、逆量子化処理を実行した後のDCT係数である逆量子化後DCT係数(量子化前DCT係数)を算出する。逆量子化部144は、逆量子化後DCT係数を逆DCT変換部146に渡す。逆量子化部144は、逆量子化手段に相当する。逆量子化テーブル145には、DCT係数を逆量子化するためのシフト値が格納されている。逆量子化部144及び量子化テーブル125の詳細は後述する。
逆DCT変換部146は、逆量子化部144から渡された「逆量子化処理の結果として得られた輝度、U成分、V成分のDCT係数」に基づいて逆DCT変換処理を実行する。これによって、YUV画像データが得られるので、このYUV画像データをRGB変換部147に転送する。逆DCT変換部146は、逆周波数変換処理手段に相当し、逆周波数変換処理部を構成する。
RGB変換部147は、転送されてきたYUV画像データに対するRGB画像データへの変換処理を実行する。RGB変換部147によって、四画素×四画素の画素ブロックからなるRGB画像データが出力される。
逆ブロック化部148は、RGB変換部147から渡された画素ブロックを2次元の画像データに展開して、RGB画像データを生成する。逆ブロック化部148は、生成したRGB画像データを一時記憶部30に転送する。逆ブロック化部148は、画像ブロック統合手段に相当し、画像ブロック統合部を構成する。
[ゼロビット復号化テーブル143の詳細]
まず、図18において、ゼロビット復号化ビット数変換テーブル710を例示する。ゼロビット復号化ビット数変換テーブル710は、固定長ビット例であるゼロビット符号化処理後のビット列に対応するゼロビット復号化処理の処理パターンを規定する。例えば、「9->10」に対応するビット列に対しては、第一復号化処理パターン711を実行する。第一復号化処理パターン711は、9ビット長の固定長ビット列を10ビット長にするゼロビット復号化処理である。
同様に、「6->7」に対応するビット列に対しては、第二復号化処理パターン712を実行する。第二復号化処理パターン712は、6ビット長を7ビット長にするゼロビット符号化処理である。「5->6」に対応するビット列に対しては、第三復号化処理パターン713を実行する。第三復号化処理パターン713は、5ビット長を6ビット長にするゼロビット符号化処理である。
[ゼロビット復号化処理部142の詳細]
続いて、ゼロビット復号化処理部142において実行されるゼロビット復号化処理の詳細について、説明する。すでに説明をしたように、ゼロビット復号化テーブル143を参照して、処理対象にブロックに対するゼロビット復号化フォーマットを決定する。
[第一復号化処理パターン711]
図19は、第一復号化処理パターン711について説明する図である。図19(a)は、第一復号化処理パターン711によってゼロビット復号化処理が実行される前のビット列を例示している。図19(b)は、第一復号化処理パターン711によってゼロビット復号化処理が実行された後のビット列(逆量子化前DCT係数のビット列)を例示している。
図19(a)に例示するように、ゼロビット符号化処理が施されたビット列に対応して、複数の処理パターンから特定の処理パターンが決定される。ゼロビット復号化処理前のビット列(第一復号処理前ビット列7111)において、最上位ビット(MSB:Most Significant bit)は、サインビット(Sビット)である。第一復号処理前ビット列7111を、MSBに続く上位2ビットのビットパターンから処理パターンを決定する。例えば、「00」であれば、第一パターンとする。
同じく、MSBに続く上位2ビットが「01」であれば第二パターンとし、「10」であれば第三パターンとし、「11」であれば第四パターンとする。
上記のように決定された処理パターンに基づき、ゼロビット復号化処理を実行する。その処理結果について、図19(b)の第一復号処理後ビット列7112を用いて説明する。上記の第一パターンの場合、第7ビットと第6ビットが「00」なので、第一復号処理後ビット列7112において、MSBに続く上位ビットに「000」を格納する。また、第一復号処理後ビット列7112の第5ビットからLSBまでの6ビットに、第一復号処理前ビット列7111の第5ビットからLSBまでの6ビットを当てはめる。
また、第二パターンの場合、第7ビットと第6ビットが「00」なので、第一復号処理後ビット列7112において、MSBに続く上位ビットに「001」を格納する。また、第一復号処理後ビット列7112の第5ビットからLSBまでの6ビットに、第一復号処理前ビット列7111の第5ビットからLSBまでの6ビットを当てはめる。
また、上記の第三パターンの場合、第7ビットと第6ビットが「10」なので、第一復号処理後ビット列7112において、MSBに続く上位ビットに「01」を格納する。また、第一復号処理後ビット列7112の第6ビットから第1までの6ビットに、第一復号処理前ビット列7111の第5ビットからLSBまでの6ビットを当てはめる。そして、LSBに「0」を格納する。
また、上記の第四パターンの場合、第7ビットと第6ビットが「11」なので、第一復号処理後ビット列7112において、MSBに続く上位ビットに「1」を格納するまた、第一復号処理後ビット列7112の第7ビットから第2ビットまでの6ビットに第一復号処理前ビット列7111の第5ビットからMSBまでの6ビットを当てはめる。そして、第1ビットとLSBに「0」を格納する。
ゼロビット復号化処理では、第一復号処理前ビット列7111のフォーマットは、MSBが「サインビット(S)」、続く上位2ビットである「ゼロビットヘッダ」におけるビットパターンよって区別される。そして、区別される処理パターンに基づいて上記のようにビット操作を行うことにより、第一復号化処理パターン711では9ビット長であったビット列を10ビット長に伸張(復元)することができる。
[第二復号化処理パターン712]
図20は、第二復号化処理パターン712について説明する図である。図20(a)は、第二復号化処理パターン712によってゼロビット復号化処理が実行される前のビット列を例示している。図20(b)は、第二復号化処理パターン712によってゼロビット復号化処理が実行された後のビット列(逆量子化前DCT係数のビット列)を例示している。
図20(a)及び図20(b)と、第二符号化処理パターン702を例示した図13(a)及び図13(b)を対比すると明らかなとおり、第二復号化処理パターン712は、第二符号化処理パターン702と逆のビット操作を行うものである。すなわち、第二復号処理前ビット列7121のゼロビットヘッダ(第4ビットと第3ビット)に格納されている「0」のパターン(ビットパターン)によって、処理パターンを区別し、決定する。そして、決定した処理パターン(第一パターンから第四パターン)に基づいて、第二符号化処理パターン702とは逆のビット操作を行っている。第二復号化処理パターン712の詳細については省略する。
[第三復号化処理パターン713]
図21は、第三復号化処理パターン713について説明する図である。図21(a)は、第三復号化処理パターン713によってゼロビット復号化処理が実行される前のビット列を例示している。図21(b)は、第三復号化処理パターン713によってゼロビット復号化処理が実行された後のビット列(逆量子化前DCT係数のビット列)を例示している。
図21(a)及び図21(b)と、第三符号化処理パターン703を例示した図14(a)及び図14(b)を対比すると明らかなとおり、第三復号化処理パターン713は、第三符号化処理パターン703と逆の処理を行うものである。すなわち、第三復号処理前ビット列7131のゼロビットヘッダ(第3ビットと第2ビット)に格納されている「0」のパターン(ビットパターン)によって、処理パターンを区別し、決定する。そして、決定した処理パターン(第一パターンから第四パターン)に基づいて、第三符号化処理パターン703とは逆のビット操作を行っている。第三復号化処理パターン713の詳細については省略する。
以上、本実施形態に係るゼロビット符号化フォーマットと、その復号化処理パターンを例示したが、本実施形態に係るゼロビット復号化処理部142に適用可能なゼロビット復号化フォーマットと処理パターンは、これに限定されるものではない。例えば、8ビットを9ビットにする処理パターンも可能である。
[量子化テーブル125の詳細]
図22は、量子化テーブル125に格納されている逆量子化シフト値テーブル541を例示している。図22において、DCT係数ブロック310の各ブロックに対応するビットシフト値を例示しているが、符号541aで示しているブロックにおける”0”は、ビットシフトを行わないという意味ではなく、当該ブロックについては処理の対象としないことを意味する。
[復号化されたDCT係数の例]
図23(a)は、図8(a)に例示したYUV画像ブロック300に対し、上記のゼロビット符号化処理及びゼロビット復号化処理を実行して得られた復元YUV画像ブロック320を例示している。図23(b)は、従来のDCT処理に基づく固定長ビット列への符号化および復号化をした結果を例示している。
図8(a)である元データと、本実施形態に係る復元データである復元YUV画像ブロック320を比較すると、本実施形態に係る復元YUV画像ブロック320の方が従来例(図23(b))に比べて、DCT係数の復元精度がより良いことが明らかである。すなわち、本実施形態によれば、復元される画像の質が向上している。
[符号化方法及び復号化方法の実施形態]
次に、本発明に係る符号化方法及び復号化方法の実施形態について説明する。図24は、上記にて説明をしたデジタルカメラ100の動作の流れを例示している。本実施形態に係る符号化方法と復号化方法は、デジタルカメラ100のような画像処理装置において実行される一連の画像処理の中で行われる。
まず、光学系102を介して被写体の反射光を撮像素子103の撮像面に集光させ、撮像素子103から出力される画像信号を取り込む(S2401)。続いて、A/Dコンバータ104によって、画像信号から画像データが生成されてプロセッサ101に入力される(S2402)。続いて、プロセッサ101において画像データ処理が実行される(S2403)。画像データ処理の詳細は後述する。プロセッサ101における画像データ処理によって動画像データが生成されて出力され、動画像メモリ107に格納される(S2404)。
[画像データ処理の詳細]
S2403における画像データ処理において、本発明に係る符号化方法及び復号化方法は適用される。したがって、当該画像データ処理を実行する画像処理プログラムに、本発明に係る符号化プログラム及び復号化プログラムが含まれる。以下、画像データ処理(S2403)の詳細について説明しつつ、符号化方法及び復号化方法、符号化プログラム及び復号化プログラムの実行についても言及する。
図25は、S2403における画像データ処理の詳細な流れを示すフローチャートである。まず、固定長符号化部12においてRGB画像データが固定長ビット列に符号化される(S2501)。生成された固定長ビット列は、一時記憶部30に一旦格納される(S2502)。続いて、一旦格納されている固定長ビット列を歪曲補正部13の指示に基づいて固定長復号化部14が読み出す(S2503)。
続いて、固定長復号化部14が、固定長ビット列を復号化する(S2504)。固定長ビット列からYUV画像データに復号化されたものを用いて、歪曲補正部13が歪曲補正処理を実行する(S2505)。
歪曲補正処理が行われたYUV画像データに対し、再度、固定長ビット列化処理が行われる(S2506)。生成された固定長ビット列は、一時記憶部30に一旦格納される(S2507)。続いて、一旦格納されている固定長ビット列を可変長動画圧縮部15の指示に基づいて固定長復号化部14が読み出す(S2508)。
続いて、固定長復号化部14が、固定長ビット列を復号化する(S2509)。固定長ビット列からYUV画像データに復号化されたものを用いて、可変長動画圧縮部15が動画像データを生成する(S2510)。続いて、生成された動画像データを画像データ格納部40に格納する(S2511)。
[固定長符号化処理の詳細]
次に、固定長符号化処理(S2501、S2506)における詳細な処理の流れについて、図26のフローチャートを用いながら説明する。
まず、画像処理部11によって生成されたRGB画像データをメモリから読み出して、ブロック化部121において、4画素×4画素の画像ブロックを生成し、YUV変換部122に対して出力する(S2601)。
続いて、YUV変換部122は、各画像ブロックのそれぞれに対し、RGB形式からYUV形式に変換するYUV変換処理を実行し、生成したYUV画像ブロック300をDCT変換部123に転送する(S2602)。
続いて、S2602においてYUV形式に変換された4画素×4画素のYUV画像ブロック(YUV画像ブロック300)に対し、DCT変換部123が離散コサイン変換(DCT)を利用した周波数変換処理を実行する(S2603)。DCT変換部123は、周波数変換処理によりDCT係数ブロック310を量子化部124に転送する。
量子化部124は、転送されてきたDCT係数ブロック310の各ブロックに対応するDCT係数に対し、量子化テーブル125を参照して量子化処理を実行する(S2604)。量子化部124は、量子化処理によって生成される量子化後DCT係数ブロック511をゼロビット符号化処理部126に転送する。
続いて、ゼロビット符号化処理部126は、量子化後DCT係数ブロック511に対してゼロビット符号化処理を実行し、生成されたゼロビット符号フォーマットに基づく固定長ビット列を生成する(S2605)。詳細は後述する。
最後に、符号化フォーマット生成部128において、固定長ビット列生成処理が実行される(S2606)。固定長ビット列生成処理の詳細は、図16を用いて説明した符号化フォーマット生成部128の動作によるものである。
[ゼロビット符号化処理の詳細]
次に、ゼロビット符号化処理(S2605)の詳細について、図27のフローチャートを用いながら説明する。量子化部124によって生成された量子化後DCT係数ブロック511(図10(a)参照)に含まれるブロック毎にゼロビット符号化処理を実行する。
まず、読み出すブロックを特定する変数(IX,IY)を初期化する(S2701、S2702)。この変数(IX,IY)は、(0,0)から(4,4)の値をとる。これは、量子化後DCT係数ブロック511を構成するブロックが四画素×四画素に対応しているからである。
続いて、量子化後DCT係数ブロック511から、変数(IX,IY)によって決定される読出し対象(ここでは(0,0)に相当するブロック)のDCT係数をDCT(IX,IY)として、入力データ(I-DATA)に入力する(S2703)。
続いて、ゼロビット符号化テーブル127を参照し、I-DATAに基づいてゼロビット符号化ビット数変換テーブル700を参照し、処理パターンを特定する(S2704)。
処理対象のブロックに係る処理パターンが「1」であれば(S2705/YES、)、ゼロビット符号第一処理(S2706)が実行される(第一符号化処理パターン701相当)。
処理対象のブロックに係る処理パターンが「2」であれば(S2707/YES、)、ゼロビット符号第二処理(S2708)が実行される(第二符号化処理パターン702相当)。
処理対象のブロックに係る処理パターンが「3」であれば(S2709/YES、)、ゼロビット符号第三処理(S2710)が実行される(第三符号化処理パターン703相当)。
続いて、各符号化のいずれかによって生成されたゼロビット符号化フォーマットに係る、サインビット(S)、ゼロビットヘッダ、と各ゼロビットフォーマットに含まれるDCT係数の実データ(O-DATA)を、符号化フォーマット生成部128に転送する(S2711)。
続いて、量子化後DCT係数ブロック511に含まれるブロックの全てに同じ処理を行うために、まず、IXに「1」を加算する(S2713)。加算したIXが「4未満」であれば(S2713/YES)、処理をS2703に戻す。IXが「4未満」でなければ(S2713/NO)、IYに「1」を加算する(S2714)。加算したIYが「4未満」であれば(S2715/YES)、処理をS2702に戻す。IYが「4未満」でなければ(S2715/NO)、処理を終了する。
[ゼロビット符号第一処理(S2706)の詳細フロー]
次に、ゼロビット符号第一処理(S2706)の詳細について、図28のフローチャートを用いながら説明する。量子化部124によって生成された量子化後DCT係数ブロック511(図10(a)参照)に含まれるブロック毎にゼロビット符号化処理を実行する。
まず、処理対象データである量子化後DCT係数(I-DATA)の値が「負」であるか否かの判定処理が行われる(S2801)。I-DATAが「負」でなければ(S2801/NO)、サインビット(S)を「0」とする(S2802)。I-DATAが「負」であれば(S2801/YES)、サインビット(S)を「1」とする(S2803)。
続いて、I-DATAの絶対値を、「ADATA」とし(S2804)、「ADATA」の値によって処理パターンを切り替える。まず、「ADATA」の値が「64未満」であれば(S2805/YES)、第7ビットと第6ビットのゼロビットヘッダを「00」(S2806)とする。そして、「ADATA」を「O-DATA」の値として(S2807)、処理を終了する。
「ADATA」の値が「64未満」ではなく(S2805/NO)、「128未満」であれば(S2808/YES)、第7ビットと第6ビットのゼロビットヘッダを「01」(S2809)とする。そして、「ADATA」から「64」を減算した値を「O-DATA」として(S2810)、処理を終了する。
「ADATA」の値が「128未満」ではなく(S2808/NO)、「258未満」であれば(S2811/YES)、第7ビットと第6ビットのゼロビットヘッダを「10」(S2812)とする。そして、「ADATA」から「128」を減算した値を「O-DATA」する(S2813)。さらに、「O-DATA」を右方向に1ビットシフトさせて(S2814)、処理を終了する。
「ADATA」の値が「258未満」でなけば(S2811/NO)、第7ビットと第6ビットのゼロビットヘッダを「11」とする(S2815)。そして、「ADATA」から「256」を減算した値を「O-DATA」する(S2816)。さらに、「O-DATA」を右方向に2ビットシフトさせて(S2817)、処理を終了する。
以上の処理によって、量子化後DCT係数ブロック511に含まれている特定のDCT係数を10ビットから9ビットに符号化することができる。
[ゼロビット符号第二処理(S2708)の詳細フロー]
次に、ゼロビット符号第二処理(S2708)の詳細について、図29のフローチャートを用いながら説明する。ゼロビット符号第二処理(S2708)は、ゼロビット符号第一処理(S2706)と共通する処理を含む。これら共通する処理については、詳細な説明を省略する。処理対象データである量子化後DCT係数(I-DATA)の値が「負」であるか否かの判定処理(S2901)から、I-DATAの絶対値を、「ADATA」として(S2904)、「ADATA」の値によって処理パターンを切り替える処理の前段までは、すでに説明をしたS2801~S2804と同様の処理となる。
続いて、「ADATA」の値が「8未満」であれば(S2905/YES)、第7ビットと第6ビットのゼロビットヘッダを「00」(S2906)とする。そして、「ADATA」を「O-DATA」の値として(S2907)、処理を終了する。
「ADATA」の値が「8未満」ではなく(S2905/NO)、「16未満」であれば(S2908/YES)、第7ビットと第6ビットのゼロビットヘッダを「01」(S2909)とする。そして、「ADATA」から「8」を減算した値を「O-DATA」として(S2910)、処理を終了する。
「ADATA」の値が「16未満」ではなく(S2908/NO)、「32未満」であれば(S2911/YES)、第7ビットと第6ビットのゼロビットヘッダを「10」(S2912)とする。そして、「ADATA」から「16」を減算した値を「O-DATA」する(S2913)。さらに、「O-DATA」を右方向に1ビットシフトさせて(S2914)、処理を終了する。
「ADATA」の値が「32未満」でなけば(S2911/NO)、第7ビットと第6ビットのゼロビットヘッダを「11」とする(S2915)。そして、「ADATA」から「32」を減算した値を「O-DATA」する(S2916)。さらに、「O-DATA」を右方向に2ビットシフトさせて(S2917)、処理を終了する。
以上の処理によって、量子化後DCT係数ブロック511に含まれている特定のDCT係数を7ビットから6ビットに符号化することができる。
[ゼロビット符号第三処理(S2710)の詳細フロー]
次に、ゼロビット符号第三処理(S2710)の詳細について、図30のフローチャートを用いながら説明する。ゼロビット符号第三処理(S2710)は、ゼロビット符号第一処理(S2706)及びゼロビット符号第二処理(S2708)と共通する処理を含む。これら共通する処理については、詳細な説明を省略する。処理対象データである量子化後DCT係数(I-DATA)の値が「負」であるか否かの判定処理(S3001)から、I-DATAの絶対値を、「ADATA」として(S3004)、「ADATA」の値によって処理パターンを切り替える処理の前段までは、すでに説明をしたS2801~S2804、及びS2801~S2804と同様の処理となる。
続いて、「ADATA」の値が「4未満」であれば(S3005/YES)、第7ビットと第6ビットのゼロビットヘッダを「00」(S3006)とする。そして、「ADATA」を「O-DATA」の値として(S3007)、処理を終了する。
「ADATA」の値が「4未満」ではなく(S3005/NO)、「8未満」であれば(S3008/YES)、第7ビットと第6ビットのゼロビットヘッダを「01」(S3009)とする。そして、「ADATA」から「4」を減算した値を「O-DATA」として(S3010)、処理を終了する。
「ADATA」の値が「8未満」ではなく(S3008/NO)、「16未満」であれば(S3011/YES)、第7ビットと第6ビットのゼロビットヘッダを「10」(S3012)とする。そして、「ADATA」から「8」を減算した値を「O-DATA」する(S3013)。さらに、「O-DATA」を右方向に1ビットシフトさせて(S3014)、処理を終了する。
「ADATA」の値が「16未満」でなけば(S3011/NO)、第7ビットと第6ビットのゼロビットヘッダを「11」とする(S3015)。そして、「ADATA」から「32」を減算した値を「O-DATA」する(S3016)。さらに、「O-DATA」を右方向に2ビットシフトさせて(S3017)、処理を終了する。
以上の処理によって、量子化後DCT係数ブロック511に含まれている特定のDCT係数を6ビットから5ビットに符号化することができる。
一般的にDCT係数は、上記のいずれの処理パターンに該当する場合であっても、その値が小さいことが多く、ゼロビットヘッダが「00」または「01」となる処理パターンに該当することが多い。空間周波数の振幅が大きい(DCT係数の値が大きい)ものの精度は、量子化して情報量を減らしたとしても、それを復元したときの差はわかりにくいものとなる。
[固定長復号化処理の詳細]
次に、固定長復号化処理(S2504、S2509)における詳細な処理の流れについて、図31のフローチャートを用いながら説明する。
まず、符号解析部141が一時記憶部30から該当する固定長ビット列を読み出して、固定長ビット列に含まれる処理対象のビット列を解析してゼロビット復号化処理部142に転送する(S3101)。
続いて、ゼロビット復号化処理部142が、ビット列のビット数に基づいてゼロビット復号化テーブル143に格納されているゼロビット復号化ビット数変換テーブル710に基づいて処理パターンを特定し、ゼロビット復号化処理(S3102)を実行する。処理結果は、逆量子化部144に転送される。詳細は後述する。
続いて、逆量子化部144が、逆量子化テーブル145を参照して、ゼロビット復号化処理部142から転送されてきた量子化された輝度、U成分、Y成分、のDCT係数に対して、逆量子化処理を実行し、結果を逆DCT変換部146に転送する(S3103)。
続いて、逆DCT変換部146が、転送されてきたDCT係数に基づいて逆DCT変換を行い、YUV画像データを生成する。生成したYUV画像データはRGB変換部147に転送される(S3104)。
続いて、RGB変換部147は、転送されてきたYUV画像データをRGB画像データに変換する(S3105)。最後に、画像ブロックからなるRGB画像データ(四画素×四画素の画像ブロック)を、二次元データに展開したRGB画像データを生成し、一時記憶部30に転送する(S3106)。
[ゼロビット復号化処理の詳細]
次に、ゼロビット符号化処理(S3105)の詳細について、図32のフローチャートを用いながら説明する。
まず、符号解析部141から受け取った固定長ビット列が対応する量子化後DCT係数ブロック511を構成するブロックを特定するための変数(IX,IY)を初期化する(S3201、S3202)。この変数(IX,IY)は、(0,0)から(4,4)の値をとる。これは、量子化後DCT係数ブロック511を構成するブロックは四画素×四画素で構成されるからである。
続いて、符号解析部141から渡された固定長ビット列に含まれる量子化後のDCT係数を変数(IX,IY)によって、復号処理の処理対象とする「I-DATA」に入力する(S3203)。
続いて、ゼロビット復号化テーブル143を参照し、I-DATAに基づいてゼロビット復号化ビット数変換テーブル710を参照し、処理パターンを特定する(S3204)。
処理対象のブロックに係る処理パターンが「1」であれば(S3205/YES、)、ゼロビット復号第一処理(S3206)が実行される(第一復号化処理パターン711相当)。
処理対象のブロックに係る処理パターンが「2」であれば(S3207/YES、)、ゼロビット復号第二処理(S3208)が実行される(第二復号化処理パターン712相当)。
処理対象のブロックに係る処理パターンが「3」であれば(S3209/YES、)、ゼロビット復号第三処理(S3210)が実行される(第三復号化処理パターン713相当)。
続いて、各復号化処理のいずれかによって生成された量子化後DCT係数を「O-DATA」として、逆量子化部144に転送する(S3211)。
続いて、解析した固定長ビット列に対する処理を完了させるために、まず、IXに「1」を加算する(S3213)。加算したIXが「4未満」であれば(S3213/YES)、処理をS3203に戻す。IXが「4未満」でなければ(S3213/NO)、IYに「1」を加算する(S3214)。加算したIYが「4未満」であれば(S3215/YES)、処理をS3202に戻す。IYが「4未満」でなければ(S3215/NO)、処理を終了する。
[ゼロビット復号第一処理(S3006)の詳細フロー]
次に、ゼロビット復号第一処理(S3006)の詳細について、図33のフローチャートを用いながら説明する。符号解析部141から転送された固定長ビット列に対しゼロビット復号化処理を実行する。
まず、処理対象データであるビット列(I-DATA)の最上位ビット(MSB)が「1」であるか否かの判定処理が行われる(S3301)。MSBが「1」でなければ(S3301/NO)、サインビット(S)を「0」とする(S3302)。MSBが「1」であれば(S3301/YES)、サインビット(S)を「1」とする(S3303)。
続いて、I-DATAに含まれるゼロビットヘッダのビットパターンによって処理パターンを切り替える。まず、ゼロビットヘッダが「00」であれば(S3304/YES)、I-DATAを書き出しデータ(WDATA)とする。ゼロビットヘッダが「00」ではないが(S3304/NO)、「01」であれば(S3306/YES)、I-DATAに「64」を加算した値を「WDATA」とする(S3307)。ゼロビットヘッダが「01」ではないが(S3306/NO)、「10」であれば(S3308/YES)、I-DATAを左方向に1ビットシフトしたものに「128」を加算した値を「WDATA」とする(S3310)。ゼロビットヘッダが「10」でなければ(S3308/YES)、I-DATAを左方向に2ビットシフトしたものに「256」を加算した値を「WDATA」とする。
続いて、WDATAのビット列のサインビットが「1」であるか否かの判定をする(S3311)。サインビットが「1」でなければ(S3311/NO)、WDATAを出力データ「O-DATA」として(S3313)、処理を終了する。サインビットが「1」であれば(S3311/YES)、WDATAの符号を反転させたものを「O-DATA」として(S3312)、処理を終了する。
以上の処理によって、固定長ビット列のビット長が9ビットであった場合、これを10ビットに符号化することができる。
[ゼロビット復号第二処理(S3008)の詳細フロー]
次に、ゼロビット復号第二処理(S3008)の詳細について、図34のフローチャートを用いながら説明する。符号解析部141から転送された固定長ビット列に対しゼロビット復号化処理を実行する。
まず、処理対象データであるビット列(I-DATA)の最上位ビット(MSB)が「1」であるか否かの判定処理が行われる(S3401)。MSBが「1」でなければ(S3401/NO)、サインビット(S)を「0」とする(S3402)。MSBが「1」であれば(S3401/YES)、サインビット(S)を「1」とする(S3403)。
続いて、I-DATAに含まれるゼロビットヘッダのビットパターンによって処理パターンを切り替える。まず、ゼロビットヘッダが「00」であれば(S3404/YES)、I-DATAを書き出しデータ(WDATA)とする(S3405)。ゼロビットヘッダが「00」ではないが(S3404/NO)、「01」であれば(S3406/YES)、I-DATAに「8」を加算した値を「WDATA」とする(S3407)。ゼロビットヘッダが「01」ではないが(S3406/NO)、「10」であれば(S3408/YES)、I-DATAを左方向に1ビットシフトしたものに「16」を加算した値を「WDATA」とする(S3410)。ゼロビットヘッダが「10」でなければ(S3408/NO)、I-DATAを左方向に2ビットシフトしたものに「32」を加算した値を「WDATA」とする(S3409)。
続いて、WDATAのビット列のサインビットが「1」であるか否かの判定をする(S3411)。サインビットが「1」でなければ(S3411/NO)、WDATAを出力データ「O-DATA」として(S3413)、処理を終了する。サインビットが「1」であれば(S3411/YES)、WDATAの符号を反転させたものを「O-DATA」として(S3412)、処理を終了する。
以上の処理によって、固定長ビット列のビット長が6ビットであった場合、これを7ビットに符号化することができる。
[ゼロビット復号第三処理(S3010)の詳細フロー]
次に、ゼロビット復号第三処理(S3010)の詳細について、図35のフローチャートを用いながら説明する。符号解析部141から転送された固定長ビット列に対しゼロビット復号化処理を実行する。
まず、処理対象データであるビット列(I-DATA)の最上位ビット(MSB)が「1」であるか否かの判定処理が行われる(S3501)。MSBが「1」でなければ(S3401/NO)、サインビット(S)を「0」とする(S3502)。MSBが「1」であれば(S3401/YES)、サインビット(S)を「1」とする(S3403)。
続いて、I-DATAに含まれるゼロビットヘッダのビットパターンによって処理パターンを切り替える。まず、ゼロビットヘッダが「00」であれば(S3504/YES)、I-DATAを書き出しデータ(WDATA)とする(S3505)。ゼロビットヘッダが「00」ではないが(S3504/NO)、「01」であれば(S3506/YES)、I-DATAに「4」を加算した値を「WDATA」とする(S3507)。ゼロビットヘッダが「01」ではないが(S3506/NO)、「10」であれば(S3508/YES)、I-DATAを左方向に1ビットシフトしたものに「8」を加算した値を「WDATA」とする(S3510)。ゼロビットヘッダが「10」でなければ(S3508/NO)、I-DATAを左方向に2ビットシフトしたものに「16」を加算した値を「WDATA」とする(S3509)。
続いて、WDATAのビット列のサインビットが「1」であるか否かの判定をする(S3511)。サインビットが「1」でなければ(S3511/NO)、WDATAを出力データ「O-DATA」として(S3513)、処理を終了する。サインビットが「1」であれば(S3511/YES)、WDATAの符号を反転させたものを「O-DATA」として(S3512)、処理を終了する。
以上の処理によって、固定長ビット列のビット長が5ビットであった場合、これを6ビットに符号化することができる。
一般的にDCT係数は、上記のいずれの処理パターンに該当する場合であっても、その値が小さいことが多く、ゼロビットヘッダが「00」または「01」となる処理パターンに該当することが多い。空間周波数の振幅が大きい(DCT係数の値が大きい)ものの精度は、量子化して情報量を減らしたとしても、それを復元したときの差はわかりにくいものとなる。
以上のように、本実施形態に係る符号化方法及び復号化方法によれば、データの圧縮率は従来どおり確保することでデータアクセス処理に係る負荷を軽減させることができ、かつ、復元後の画像の質は従来よりも向上させることができる。
なお、本発明は上述した各実施形態に限定されるものではなく、その技術的要旨を逸脱しない範囲で種々の変形が可能であり、特許請求の範囲に記載された技術思想に含まれる技術的事項の全てが本発明の対象となる。上記実施形態は、好適な例を示したものであるが、当業者であれば、開示した内容から様々な変形例を実現することが可能である。そのような変形例も、特許請求の範囲に記載された技術的範囲に含まれる。
11 :画像処理部
12 :固定長符号化部
13 :歪曲補正部
14 :固定長復号化部
15 :可変長動画圧縮部
20 :データ入力部
30 :一時記憶部
40 :画像データ格納部
100 :デジタルカメラ
101 :プロセッサ
102 :光学系
103 :撮像素子
104 :A/Dコンバータ
105 :メモリコントローラ
106 :固定長用メモリ
107 :動画像メモリ
111 :Byaer補正処理部
112 :フィルタ処理部
121 :ブロック化部
122 :YUV変換部
123 :DCT変換部
124 :量子化部
125 :量子化テーブル
126 :ゼロビット符号化処理部
127 :ゼロビット符号化テーブル
128 :符号化フォーマット生成部
141 :符号解析部
142 :ゼロビット復号化処理部
143 :ゼロビット復号化テーブル
144 :逆量子化部
145 :逆量子化テーブル
146 :逆DCT変換部
147 :RGB変換部
148 :逆ブロック化部
151 :動き検索部
152 :DCT部
153 :量子化処理部
154 :可変長符号化部
155 :逆量子化処理部
156 :逆DCT部
157 :動き補償部
201 :元画像データ
202 :画像ブロック
300 :YUV画像ブロック
310 :DCT係数ブロック
320 :復元YUV画像ブロック
501 :量子化シフト値テーブル
502 :量子化シフト値テーブル
511 :量子化後DCT係数ブロック
512 :量子化後DCT係数ブロック
521 :ゼロビット後DCT係数ブロック
541 :逆量子化シフト値テーブル
700 :ゼロビット符号化ビット数変換テーブル
701 :第一符号化処理パターン
702 :第二符号化処理パターン
703 :第三符号化処理パターン
710 :ゼロビット復号化ビット数変換テーブル
711 :第一復号化処理パターン
712 :第二復号化処理パターン
713 :第三復号化処理パターン
7011 :第一符号処理前ビット列
7012 :第一符号処理後ビット列
7021 :第二符号処理前ビット列
7022 :第二符号処理後ビット列
7031 :第三符号処理前ビット列
7032 :第三符号処理後ビット列
7111 :第一復号処理前ビット列
7112 :第一復号処理後ビット列
7121 :第二復号処理前ビット列
7131 :第三復号処理前ビット列
特開2004-112345号公報

Claims (11)

  1. 画像を固定長データに符号化する符号化装置であって、
    前記画像を所定の画素数で分割した画像ブロックを生成する画像分割手段と、
    前記画像ブロックの各々に対する周波変換処理により、各画像ブロックに係る周波数変換係数を生成する周波数変換手段と、
    前記画像ブロックに係る周波数変換係数を量子化した量子化係数を生成する量子化処理手段と、
    前記量子化係数に対しゼロビット符号化処理を行い、ゼロビット符号化データを生成するゼロビット符号化手段と、
    前記ゼロビット符号化データから前記固定長データを生成する固定長データ生成手段と、を有し、
    前記ゼロビット符号化手段は、前記画像ブロック中の前記量子化係数の位置に基づいてゼロビット符号フォーマットを決定し、
    決定された当該ゼロビット符号フォーマットに基づいて各画素ブロックに対応する前記量子化係数に対しゼロビット符号化処理を行う、
    ことを特徴とする符号化装置。
  2. 前記ゼロビット符号化手段が行う符号化処理は、前記決定されたゼロビット符号フォーマットに基づいて、前記量子化係数のビット長よりも短いビット長からなるゼロビット符号化データを生成する処理である、
    請求項1に記載の符号化装置。
  3. 前記ゼロビット符号フォーマットは、最上位ビットに続くビット列におけるゼロビットの含まれ方により、異なるビット操作を決定する、請求項1又は2に記載の符号化装置。
  4. 前記ゼロビット符号フォーマットは、最上位ビットに続くビット列における上位3ビット中におけるゼロビットの含まれ方によって、最上位ビットに続く上位2ビットへのゼロビットヘッダと、前記量子化係数を二進数に変換したビット列を前記ゼロビットヘッダに続く残りの下位ビットへ格納する規則を決定する、
    請求項3に記載の符号化装置。
  5. 前記ゼロビット符号フォーマットは、前記量子化係数が所定の値よりも大きいとき、前記下位ビットに格納する当該量子化係数の下位ビットを省くビットシフト操作を規定する、請求項4に記載の符号化装置。
  6. 前記画像分割手段は、前記画像を四画素単位で分割した十六画素からなる画像ブロックを生成する、
    請求項1乃至5のいずれか一項に記載の符号化装置。
  7. 固定長データを画像に復号化する復号化装置であって、
    前記画像を所定の画素数で分割した画像ブロックの各々に対する周波数変換により各画像ブロックに対し生成された周波数変換係数を量子化して生成された量子化係数に対し、当該画像ブロック中の当該量子化係数の位置に基づいて決定されたゼロビット符号フォーマットに基づき、当該画像ブロックに対応して生成されたゼロビット符号化データから生成された固定長データを解析し、当該固定長データに係るゼロビット符号化フォーマットを特定する符号解析手段と、
    特定された前記ゼロビット符号化フォーマットに対応するゼロビット復号化フォーマットを用いて、前記固定長データに係るゼロビット符号化データから量子化係数を生成するゼロビット復号化手段と、
    前記量子化係数に対して逆量子化処理を行い、周波数変換係数を生成する逆量子化手段と、
    前記周波数変換係数に対し逆周波数変換処理を行い、所定の画素数からなる画像ブロックを生成する逆周波数変換処理手段と、
    前記逆周波数変換処理手段において生成された前記画像ブロックを統合して画像を生成する画像ブロック統合手段と、を有することを特徴とする復号化装置。
  8. 画像を固定長データに符号化する符号化方法であって、
    前記画像を所定の画素数で分割した画像ブロックを生成し、
    前記画像ブロックの各々に対する周波変換処理により、各画像ブロックに係る周波数変換係数を生成し、
    前記画像ブロックに係る周波数変換係数を量子化した量子化係数を生成し、
    前記画像ブロック中の前記量子化係数の位置に基づいてゼロビット符号フォーマットを決定し、
    決定された当該ゼロビット符号フォーマットに基づいて各画素ブロックに対応する前記量子化係数に対しゼロビット符号化処理を行なってゼロビット符号化データを生成し、
    前記ゼロビット符号化データから前記固定長データを生成する、
    ことを特徴とする符号化方法。
  9. 固定長データを画像に復号化する復号化方法であって、
    前記画像を所定の画素数で分割した画像ブロックの各々に対する周波数変換により各画像ブロックに対し生成された周波数変換係数を量子化して生成された量子化係数に対し、当該画像ブロック中の当該量子化係数の位置に基づいて決定されたゼロビット符号フォーマットに基づき、当該画像ブロックに対応して生成されたゼロビット符号化データから生成された固定長データを解析し、
    当該固定長データのゼロビット符号化フォーマットを特定し、
    特定された前記ゼロビット符号化フォーマットに対応するゼロビット復号化フォーマットを用いて、前記固定長データに係るゼロビット符号化データから量子化係数を生成し、
    前記量子化係数に対して逆量子化処理を行い、周波数変換係数を生成し、
    前記周波数変換係数に対し逆周波数変換処理を行い、所定の画素数からなる画像ブロックを生成し、
    生成された前記画像ブロックを統合して画像を生成する、ことを特徴とする復号化方法。
  10. コンピュータにおいて、画像を固定長データに符号化する処理を実行させる符号化プログラムであって、
    前記画像を所定の画素数で分割した画像ブロックを生成する画像分割ステップと、
    前記画像ブロックの各々に対する周波変換処理により、各画像ブロックに係る周波数変換係数を生成する周波数変換ステップと、
    前記画像ブロックに係る周波数変換係数を量子化した量子化係数を生成する量子化処理ステップと、
    前記画像ブロック中の前記量子化係数の位置に基づいてゼロビット符号フォーマットを決定し、
    決定された当該ゼロビット符号フォーマットに基づいて各画素ブロックに対応する前記量子化係数に対しゼロビット符号化処理を行なってゼロビット符号化データを生成するゼロビット符号化ステップと、
    前記ゼロビット符号化データから前記固定長データを生成する固定長データ生成ステップと、
    を含むことを特徴とする符号化プログラム。
  11. コンピュータにおいて、固定長データを画像に復号化する処理を実行させる復号化プログラムであって、
    前記画像を所定の画素数で分割した画像ブロックの各々に対する周波数変換により各画像ブロックに対し生成された周波数変換係数を量子化して生成された量子化係数に対し、当該画像ブロック中の当該量子化係数の位置に基づいて決定されたゼロビット符号フォーマットに基づき、当該画像ブロックに対応して生成されたゼロビット符号化データから生成された固定長データを解析し、当該固定長データのゼロビット符号化フォーマットを特定する符号解析ステップと、
    特定された前記ゼロビット符号化フォーマットに対応するゼロビット復号化フォーマットを用いて、前記固定長データに係るゼロビット符号化データから量子化係数を生成するゼロビット復号化ステップと、
    前記量子化係数に対して逆量子化処理を行い、周波数変換係数を生成する逆量子化ステップと、
    前記周波数変換係数に対し逆周波数変換処理を行い、所定の画素数からなる画像ブロックを生成する逆周波数変換処理ステップと、
    前記逆周波数変換処理ステップにおいて生成された前記画像ブロックを統合して画像を生成する画像ブロック統合ステップと、を含むことを特徴とする復号化プログラム。
JP2019020041A 2019-02-06 2019-02-06 符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム Active JP7346837B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019020041A JP7346837B2 (ja) 2019-02-06 2019-02-06 符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム
US16/780,922 US20200252652A1 (en) 2019-02-06 2020-02-04 Encoding device, decoding device, encoding method, and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019020041A JP7346837B2 (ja) 2019-02-06 2019-02-06 符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム

Publications (2)

Publication Number Publication Date
JP2020127178A JP2020127178A (ja) 2020-08-20
JP7346837B2 true JP7346837B2 (ja) 2023-09-20

Family

ID=71836922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019020041A Active JP7346837B2 (ja) 2019-02-06 2019-02-06 符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム

Country Status (2)

Country Link
US (1) US20200252652A1 (ja)
JP (1) JP7346837B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110113614B (zh) * 2019-05-13 2022-04-12 格兰菲智能科技有限公司 图像处理方法及图像处理装置
JP2021175049A (ja) 2020-04-22 2021-11-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292450A (ja) 2000-04-05 2001-10-19 Sony Corp 符号化装置及びその方法並びに復号化装置及びその方法
US20030190085A1 (en) 2002-03-29 2003-10-09 Wanrong Lin Single-instruction multiple-data (SIMD)-based algorithms for processing video data
JP2008245296A (ja) 2003-09-08 2008-10-09 Sony Corp 符号化装置及び方法
JP2015115903A (ja) 2013-12-13 2015-06-22 キヤノン株式会社 撮像装置、撮像装置の制御方法、コンピュータプログラム
US20170034536A1 (en) 2014-05-23 2017-02-02 Huawei Technologies Co., Ltd. Method and Apparatus for Pre-Prediction Filtering for Use in Block-Prediction Techniques

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02156788A (ja) * 1988-12-09 1990-06-15 Fuji Photo Film Co Ltd 画像信号圧縮符号化装置および伸長再生装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292450A (ja) 2000-04-05 2001-10-19 Sony Corp 符号化装置及びその方法並びに復号化装置及びその方法
US20030190085A1 (en) 2002-03-29 2003-10-09 Wanrong Lin Single-instruction multiple-data (SIMD)-based algorithms for processing video data
JP2008245296A (ja) 2003-09-08 2008-10-09 Sony Corp 符号化装置及び方法
JP2015115903A (ja) 2013-12-13 2015-06-22 キヤノン株式会社 撮像装置、撮像装置の制御方法、コンピュータプログラム
US20170034536A1 (en) 2014-05-23 2017-02-02 Huawei Technologies Co., Ltd. Method and Apparatus for Pre-Prediction Filtering for Use in Block-Prediction Techniques

Also Published As

Publication number Publication date
JP2020127178A (ja) 2020-08-20
US20200252652A1 (en) 2020-08-06

Similar Documents

Publication Publication Date Title
JP7472234B2 (ja) 映像符号化/復号化方法及びそのための装置
RU2685981C1 (ru) Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений и способ декодирования изображений
JP7346837B2 (ja) 符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラム
JP5001853B2 (ja) 映像符号化及び復号化装置とその方法
KR20190040000A (ko) 영상 부호화/복호화 방법 및 이를 위한 장치
CN112544081B (zh) 环路滤波的方法与装置
CN114041288A (zh) 图像分量的预测方法、编码器、解码器以及存储介质
JP2022522013A (ja) イントラ予測ベースのビデオ信号処理方法及び装置
JP3557626B2 (ja) 画像復元装置及び方法
KR100504649B1 (ko) 화상 데이타 압축장치
CN116668675A (zh) 视频图像分量的预测方法、装置及计算机存储介质
JP2007521740A (ja) 変換ドメイン内のゼロを早期に発見する方法
CN113728640A (zh) 帧内预测和残差编解码
US7551788B2 (en) Digital image coding device and method for noise removal using wavelet transforms
JP2015076765A (ja) 画像処理装置及びその制御方法、並びに、コンピュータプログラム
JP7415464B2 (ja) 映像処理装置、映像処理方法およびプログラム
US20110134258A1 (en) Method for entropically transcoding a first data stream into a second compressed binary data stream, and corresponding computer program and image recording device
CN114600166A (zh) 图像处理方法、图像处理装置和存储介质
KR20170122351A (ko) 화면 내 예측 방향성에 따른 적응적 부호화 순서를 사용하는 비디오 코딩 방법 및 장치
JP3709106B2 (ja) 画像圧縮および伸張装置
CN113766233A (zh) 图像预测方法、编码器、解码器以及存储介质
JP7259280B2 (ja) 符号化装置、符号化方法及び符号化プログラム
US11528491B2 (en) Image encoding/decoding method and device using color coordinate axis conversion
JP7277354B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP2022116922A (ja) 動画像符号化装置、制御方法、並びにプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200107

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230201

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230621

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230821

R151 Written notification of patent or utility model registration

Ref document number: 7346837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151