JP3846490B2 - 画像データ圧縮装置、電子機器及び画像データ圧縮方法 - Google Patents

画像データ圧縮装置、電子機器及び画像データ圧縮方法 Download PDF

Info

Publication number
JP3846490B2
JP3846490B2 JP2004146945A JP2004146945A JP3846490B2 JP 3846490 B2 JP3846490 B2 JP 3846490B2 JP 2004146945 A JP2004146945 A JP 2004146945A JP 2004146945 A JP2004146945 A JP 2004146945A JP 3846490 B2 JP3846490 B2 JP 3846490B2
Authority
JP
Japan
Prior art keywords
data
unit
frame
image data
quantization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004146945A
Other languages
English (en)
Other versions
JP2005328487A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004146945A priority Critical patent/JP3846490B2/ja
Priority to US11/126,999 priority patent/US20050254579A1/en
Publication of JP2005328487A publication Critical patent/JP2005328487A/ja
Application granted granted Critical
Publication of JP3846490B2 publication Critical patent/JP3846490B2/ja
Expired - Fee Related 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Description

本発明は、画像データ圧縮装置、電子機器及び画像データ圧縮方法に関する。
静止画像又は動画像の画像データや音声データといったマルチメディア情報に対する汎用的な符号化方式として、MPEG−4(Moving Picture Experts Group Phase 4)が規格化されている。近年の携帯機器は、このMPEG−4の規格に準拠した画像データのエンコード及びデコードを実現し、動画像の再生やネットワークを介した送受信ができる。
MPEG−4の規格では、動画像の画像データをエンコードした圧縮データを、一定のレートで生成する必要がある。ところが、動画像の画像データを圧縮する場合、画像データの種類に依存して圧縮効率が大きく変動してしまう。非特許文献1には、この変動を所定の範囲に収めるように、発生する符号量を制御することで、一定のレートで圧縮データを生成するレートコントロール方式が述べられている。
MPEG-4 Visual Part(勧告書ISO/IEC 14496-2:1999(E) Annex L)
MPEG−4のエンコード(圧縮)処理を行う場合、一連の処理をすべてハードウェアにより実施することが考えられる。しかしながら、この場合、回路規模が大きくなり、IC(半導体装置、集積回路)化した場合の小型化を図ることが困難となる。特に携帯電話機等の携帯機器では、機器の小型化への要請に応えられない。
一方、エンコードの一連の処理を、すべてソフトウェアを用いて実施することが考えられる。しかしながら、この場合、ソフトウェアを処理するCPU(Central Processing Unit)の負荷が増大してしまう。そのため、CPUが他の処理に費やす時間に制約が生じ、このCPUを搭載する機器のパフォーマンスを低下させてしまう。またCPUの処理時間の増加を招き、消費電力が大きくなってしまう。特に携帯電話機等の携帯機器では、バッテリの消耗を抑えるための低消費電力化への要請に応えられない。
そこで、エンコードの一連の処理をハードウェアとソフトウェアとに分担させることが考えられる。しかしながら、本発明者の検討の結果、エンコードの一連の処理についてハードウェアとソフトウェアとの分担の最適化を図る場合、非特許文献1に開示されたレートコントロール方式を実施できないということが判明した。即ち処理速度が異なるハードウェアの処理とソフトウェアの処理とに分担させる場合、処理速度の差を吸収するバッファが必要となる。ところが、このバッファを設けると、上述のレートコントロール方式を実施できなくなり、画像データの圧縮処理についてハードウェアとソフトウェアとの分担の最適化と、一定レートでの圧縮データの生成とを両立できないという問題があることが判明した。
また、MPEG−4のエンコード処理がフレーム単位で行われるが、処理対象となる画像データは、例えばカメラモジュール(撮像部)から供給される。即ち、カメラモジュールは、撮像により取り込まれた画像データを1フレーム毎に画像データ圧縮装置に供給する。
上述のレートコントロール方式では、フレーム毎に符号化データのデータサイズを変化させることで符号化データのデータサイズを制御する。そのため、上述のレートコントロール方式を実現する画像データ圧縮装置では、カメラモジュールからの画像データの入力フレームレートと符号化データの生成レートとを一致させる必要がある。
しかしながら、近年、このカメラモジュールの撮像素子等の高機能化に伴い、1フレームの画像サイズの拡大化や、滑らかな動画像を表現可能とするフレームレートの高速化が著しい。特に入力フレームレートが高速化した場合、カメラモジュールからの画像データの入力フレームレートと符号化データの生成レートとを一致させることができず、上述のレートコントロール方式を実現できなくなるという問題も生じるようになってきた。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、画像データの圧縮処理についてハードウェアとソフトウェアとの分担の最適化を図り、画像データの入力フレームレートの高速化にも対応して一定レートで圧縮データの生成を行う画像データ圧縮装置、電子機器及び画像データ圧縮方法を提供することにある。
上記課題を解決するために本発明は、画像データを圧縮するための画像データ圧縮装置であって、撮像部から1フレーム分の画像データが入力される毎に、当該入力フレームが間引き対象フレームか否かを検出する処理を行う間引き検出部と、前記画像データの圧縮処理を行って符号化データを一定レートで生成する圧縮処理部と、前記間引き検出部の検出結果に基づいて、前記圧縮処理部が行う1フレーム分の画像データの圧縮処理をスキップさせるスキップ処理を行うフレームスキップ部とを含み、前記フレームスキップ部が、前記間引き検出部が前記当該入力フレームを間引き対象フレームと判断したことを条件に前記スキップ処理を行う画像データ圧縮装置に関係する。
本発明においては、画像データ圧縮装置が、撮像部からフレーム毎に入力される画像データに対して、フレーム毎に圧縮処理を行って符号化データを一定レートで生成する。そして、この圧縮処理に先立って、撮像部からの当該入力フレームが間引き対象フレームか否かを判別し、間引き対象フレームであると判別されたときに当該入力フレームの画像データに対する圧縮処理をスキップさせるようにした。
これにより、撮像部からの画像データの入力フレームレートが、符号化データの生成レートよりも高速になったと場合にも、該撮像部からの画像データに対して圧縮処理を行う画像データ圧縮装置を提供できるようになる。
また、画像データ圧縮装置が符号化データを一定レートで生成するためにフレーム毎に各種制御を行う場合であっても、本発明によればフレーム単位で画像データの供給を省略できるため、制御を複雑化することなく既存のレート制御を行う画像データ圧縮装置への適用も容易となる。
また本発明に係る画像データ圧縮装置では、前記撮像部からの画像データの入力フレームレートをCA(CAは正の整数)、前記圧縮処理後の符号化データの生成レートをTA(CA>TA、TAは正の整数)とした場合、前記間引き検出部が、前記撮像部からの画像データの入力フレーム数CAのうち、(CA−TA)フレーム数の画像データを間引き対象フレームとして検出することができる。
また本発明に係る画像データ圧縮装置では、前記間引き検出部が、前記撮像部から入力される画像データのフレームのカウント値とCA/(CA−TA)の整数倍として求められる小数点データの1又は複数の間引きフレームインターバル値のうちの1つの値とを比較し、前記カウント値が前記間引きフレームインターバル値のうちの1つの値以上であるとき、前記当該入力フレームを間引き対象フレームとして検出することができる。
本発明によれば、簡素の処理で間引き対象フレームか否かを判別できるため、制御及び構成を簡素化でき、画像データ圧縮装置への実装も低コストで実現できる。
また本発明に係る画像データ圧縮装置では、前記撮像部からの画像データの入力フレームレートが変化したことを条件に、前記間引き検出部の処理に先立って前記間引きフレームインターバル値を求めることができる。
本発明によれば、複数の間引きフレームインターバル値(累積値)を求める場合にも、フレーム毎に求める必要がなくなると共に、撮像部の入力フレームレートが可変の場合にも対応できる。
また本発明に係る画像データ圧縮装置では、前記圧縮処理部が、フレーム毎に、前記圧縮処理後のデータサイズを変化させて前記圧縮処理後のデータの生成レートを制御するレートコントロール部を含むことができる。
また本発明に係る画像データ圧縮装置では、前記圧縮処理部が、前記画像データを、量子化パラメータに基づいて変化する量子化ステップで量子化する量子化部と、前記量子化部によって量子化された複数フレーム分の量子化データがバッファリングされるFIFOバッファ部と、前記FIFOバッファ部への書き込みと非同期で前記FIFOバッファ部から量子化データを読み出し、該量子化データを符号化した符号化データを生成する符号化データ生成部とを含み、前記レートコントロール部が、現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データの予測データサイズを求め、該予測データサイズを用いて前記量子化パラメータを求め、前記量子化パラメータに基づいて、フレーム毎に前記量子化部の量子化ステップを変化させて符号化データのデータサイズを制御し、前記フレームスキップ部が、更に、前記量子化パラメータがスキップ閾値よりも大きくなるフレームが、スキップ連続回数閾値として設定された回数以上連続したとき、前記スキップ処理を行うことができる。
本発明においては、圧縮処理部が含む量子化部と符号化データ生成部との間にFIFOバッファ部を設けている。こうすることで、量子化部と符号化データ生成部との処理を非同期で、かつ並列に動作させることができる。そして、符号化データ生成部による符号化データの生成のレートを制御する場合、レートコントロール部が、FIFOバッファ部に書き込まれる量子化データのデータサイズから、符号化データ生成部によって生成される符号化データの予測データサイズを求め、該予測データサイズに基づいて、量子化部の量子化ステップを変化させるようにしている。
これにより、量子化部と符号化データ生成部との処理を非同期で行うように構成した結果、非特許文献1に開示されたレートコントロール方式を実施できない場合であっても、符号化データの生成のレートを制御でき、一定のレートで画像データを圧縮した符号化データを生成できるようになる。しかも、そのレートコントロールを正確に行うことができる。
そしてフレームスキップ部が、量子化パラメータがスキップ閾値よりも大きくなるフレームが、スキップ連続回数閾値として設定された回数以上連続したとき、スキップ処理を行うようにしている。従って、上述のレートコントロールの実施したとしても、画像(特に自然画像ではない画像)によっては符号化データのサイズが増加してビットレートを確実に維持できなくなるような場合に、フレームごとに生成される符号化データの増加量を抑え、ビットレートを維持させることができるようになる。
また本発明に係る画像データ圧縮装置では、前記圧縮処理部が、前記画像データを、量子化パラメータに基づいて変化する量子化ステップで量子化する量子化部と、前記量子化部によって量子化された複数フレーム分の量子化データがバッファリングされるFIFOバッファ部と、前記FIFOバッファ部への書き込みと非同期で前記FIFOバッファ部から量子化データを読み出し、該量子化データを符号化した符号化データを生成する符号化データ生成部とを含み、前記レートコントロール部が、現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データの予測データサイズを求め、該予測データサイズを用いて前記量子化パラメータを求め、前記量子化パラメータに基づいて、フレーム毎に前記量子化部の量子化ステップを変化させて符号化データのデータサイズを制御し、前記フレームスキップ部が、更に、前記量子化部によって量子化される画像データと該画像データのフレームの前のフレームの画像データとの差分に対応した複雑度が、複雑度閾値以上のとき、前記スキップ処理を行うことができる。
本発明においては、圧縮処理部が含む量子化部と符号化データ生成部との間にFIFOバッファ部を設けている。こうすることで、量子化部と符号化データ生成部との処理を非同期で、かつ並列に動作させることができる。そして、符号化データ生成部による符号化データの生成のレートを制御する場合、レートコントロール部が、FIFOバッファ部に書き込まれる量子化データのデータサイズから、符号化データ生成部によって生成される符号化データの予測データサイズを求め、該予測データサイズに基づいて、量子化部の量子化ステップを変化させるようにしている。
これにより、量子化部と符号化データ生成部との処理を非同期で行うように構成した結果、非特許文献1に開示されたレートコントロール方式を実施できない場合であっても、符号化データの生成のレートを制御でき、一定のレートで画像データを圧縮した符号化データを生成できるようになる。しかも、そのレートコントロールを正確に行うことができる。
そしてフレームスキップ部が、動き検出の際に求められたり、量子化パラメータの算出の際に用いられる複雑度が、複雑度閾値のとき、スキップ処理を行うようにしている。従って、上述のレートコントロールの実施したとしても、画像(特に自然画像ではない画像)によっては符号化データのサイズが増加してビットレートを確実に維持できなくなるような場合に、フレームごとに生成される符号化データの増加量を抑え、ビットレートを維持させることができるようになる。
また本発明に係る画像データ圧縮装置では、前記レートコントロール部が、前記予測データサイズを用いて、その値が設定可能な量子化パラメータ上限閾値以下となるように量子化パラメータを求めることができる。
本発明によれば、量子化パラメータ上限閾値以下となるように量子化パラメータを求めるようにしたので、画質を劣化させない程度に、量子化データのサイズを小さくして符号化データのサイズを小さくできるようになる。しかも、上述のようにスキップ処理を行うことができるので、一定のビットレートも維持できる。
また本発明に係る画像データ圧縮装置では、前記レートコントロール部が、前記予測データサイズを用いて、前記量子化パラメータ上限閾値以下で、かつその値が設定可能な量子化パラメータ下限閾値以上となるように前記量子化パラメータを求めることができる。
本発明では、レートコントロール部が、量子化パラメータ上限閾値以下となるように量子化パラメータを求めるようにしている。一般的に、量子化パラメータの値を大きくするほど、画像データを大きく間引いて量子化データのサイズを小さくし、符号化データのサイズを小さくできる。その反面、該符号化データをデコードした画像にはブロックノイズが目立つようになる。従って、本発明によれば、上述のようにレートコントロールを実施したとしても、エンコード後の圧縮データをデコードした画像にブロックノイズが目立つ事態を回避できるようになる。
またレートコントロール部が、量子化パラメータ下限閾値以上となるように量子化パラメータを求めるようにしている。一般的に、量子化パラメータの値を小さくするほど、画像データの間引き量が少なくなって量子化データのサイズを大きくなる。その反面、該符号化データをデコードした画像にはブロックノイズが少なくなる。従って、本発明によれば、上述のようにレートコントロールを実施したとしても、無駄にデータサイズを大きくすることがなくなる。
従って、本発明によれば、圧縮効率と画質との最適化を図るレートコントロールを容易に実現できる。
また本発明に係る画像データ圧縮装置では、前記FIFOバッファ部のアクセス回数に対応したカウントデータが保持されるカウントレジスタを含み、前記レートコントロール部が、前記カウントデータから前記予測データサイズを求めることができる。
本発明によれば、簡素な構成で、量子化データのデータサイズと等価な情報を得ることができるので、非特許文献1で規定されたレートコントロール方式をより簡素な構成で実現できる画像データ圧縮装置を提供できる。
また本発明に係る画像データ圧縮装置では、前記予測データサイズは、前記1フレーム前の量子化データのデータサイズを1次変換することにより求められるデータサイズであってもよい。
また本発明に係る画像データ圧縮装置では、前記一次変換は、前記符号化データ生成部の符号化効率に対応した係数を用いた変換であってもよい。
また本発明に係る画像データ圧縮装置では、前記一次変換は、更に、前記符号化データに付加されるヘッダサイズ分の補正を行う変換であってもよい。
本発明においては、量子化データのデータサイズと符号化データのデータサイズとがほぼ線形関係にあることに着目し、この線形関係を表す1次変換式により予測データサイズを求めることができるようにしている。これにより、処理負荷を増加させることなく、正確なレートコントロールを実現させることができる。
また本発明に係る画像データ圧縮装置では、量子化ステップ値を記憶する量子化テーブルを含み、前記レートコントロール部が、前記量子化パラメータと前記量子化ステップ値との積を用いて量子化を行うことで、前記量子化ステップを変化させてもよい。
また本発明に係る画像データ圧縮装置では、離散コサイン変換された前記画像データを、フレーム単位で前記量子化部に供給する離散コサイン変換部を含むことができる。
また本発明に係る画像データ圧縮装置では、動画像の画像データをハードウェアにより処理するハードウェア処理部と、前記FIFOバッファ部から読み出された量子化データをソフトウェアにより符号化処理して符号化データを生成するソフトウェア処理部とを含み、前記ハードウェア処理部が、前記量子化部と、前記FIFOバッファ部とを含み、前記ソフトウェア処理部が、前記符号化データ生成部、前記レートコントロール部、前記間引き検出部及び前記フレームスキップ部を含むことができる。
ここで、量子化された動画像データは、ゼロデータが圧倒的に多く、量子化前のデータと比較すればデータの情報量の種類が圧倒的に少ない場合が多い。しかも、一般的に符号化のための演算自体の負荷も少ない。よって、情報量が少なく演算負荷の軽い処理をソフトウェア処理部で処理しても、その処理の負荷は小さい。逆に、量子化の処理の多くは、情報量が多い上に演算も複雑で、ソフトウェアで処理するには負荷が大きい。そして、これらは負荷が重い処理ではあるが、規格化されている場合には、変更の必要性は乏しく、また、繰り返し処理が多いため、ハードウェア処理部での処理に適している。また、ハードウェア処理部での処理後のデータ量が少ないので、ハードウェア処理部からソフトウェア処理部に伝送されるデータ量が少なく、伝送負荷も軽くなる。また、ソフトウェア処理部とハードウェア処理部との間には、FIFOバッファ部が介在するので、ソフトウェア処理とハードウェア処理とを並列的に処理することができる。更に、ソフトウェア処理とハードウェア処理とを使い分けることで、装置の小型化と消費電力の低減の双方を実現できる。
また本発明に係る画像データ圧縮装置では、前記ハードウェア処理部が、現在のフレームの入力画像データと現在のフレームの1フレーム前の過去画像データとの差分を動きベクトル情報として出力し、該動きベクトル情報に対して離散コサイン変換を行って前記画像データとして前記量子化部に出力し、前記量子化データに対して前記量子化ステップで逆量子化して求められる逆量子化データに基づいて、前記過去画像データを生成することができる。
また本発明に係る画像データ圧縮装置では、前記ソフトウェア処理部が、前記FIFOバッファ部から読み出された量子化データを可変長符号に符号化することができる。
また本発明に係る画像データ圧縮装置では、前記ソフトウェア処理部が、前記FIFOバッファ部から読み出された量子化データを並び換えるスキャン処理を行い、該スキャン処理の結果を可変長符号に符号化することができる。
また本発明に係る画像データ圧縮装置では、前記ソフトウェア処理部が、前記FIFOバッファ部から読み出された量子化データからDC成分及びAC成分とを求め、前記DC成分及びAC成分を並び換えるスキャン処理を行い、該スキャン処理の結果を可変長符号に符号化することができる。
また本発明は、上記のいずれか記載の画像データ圧縮装置を含む電子機器に関係する。
本発明によれば、画像データの圧縮処理についてハードウェアとソフトウェアとの分担の最適化を図り、画像データの入力フレームレートの高速化にも対応して一定レートで圧縮データの生成を行う電子機器を提供できる。
また本発明は、画像データを圧縮するための画像データ圧縮方法であって、撮像部から1フレーム分の画像データが入力される毎に、当該入力フレームが間引き対象フレームか否かを検出する処理を行い、非間引き対象フレームと判断されたフレームの画像データの圧縮処理を行って符号化データを一定レートで生成し、前記撮像部からの画像データの入力フレームレートをCA(CAは正の整数)、前記圧縮処理部によって生成される圧縮処理後の符号化データの生成レートをTA(CA>TA、TAは正の整数)とした場合、前記撮像部からの画像データの入力フレーム数CAのうち、(CA−TA)フレーム数の画像データを間引き対象フレームとして検出する画像データ圧縮方法に関係する。
また本発明に係る画像データ圧縮方法では、フレーム毎に、前記圧縮処理後のデータサイズを変化させて前記圧縮処理後のデータの生成レートを制御することができる。
また本発明に係る画像データ圧縮方法では、前記撮像部から入力される画像データのフレームのカウント値とCA/(CA−TA)の整数倍として求められる小数点データの間引きフレームインターバル値のうちの1つの値とを比較し、前記カウント値が前記間引きフレームインターバル値のうちの1つの値以上であるとき、前記当該入力フレームを間引き対象フレームとして検出することができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. MPEG−4
まずMPEG−4のエンコード処理について簡単に説明する。またこのエンコード処理によって符号化された圧縮データを伸張するためのデコード処理についても説明する。
図1(A)、(B)に、MPEG−4のエンコード処理と、デコード処理の説明図を示す。この処理の詳細については、例えば日本実業出版社の「JPEG&MPEG 図解でわかる画像圧縮技術」(越智宏、黒田英夫の共著)に説明されているので、本発明に関する処理についてのみ主として説明する。
図1(A)に示すエンコード処理では、まず、連続する2枚(2フレーム)の画像間の動き検出(ME:Motion Estimation)が実施される(ステップS1)。具体的には2枚の画像間の同一画素同士の差分を求める。2枚の画像間で変化のない画像領域では差分が0になるので、情報量を少なくできる。この画像領域のゼロデータに加え、2枚の画像間で変化のある画像領域の差分(プラス・マイナス成分)が動き検出後の情報となる。
次に、離散コサイン変換(DCT:Discrete Cosine Transform)が実施される(ステップS2)。この離散コサイン変換(DCT)は、図2に示す8画素×8画素の1ブロック単位で演算され、1ブロック毎にDCT係数を求めるものである。離散コサイン変換後のDCT係数は、1ブロック内の画像の濃淡変化を、全体の明るさ(DC成分)と空間周波数(AC成分)とで表わしたものである。図3は、8画素×8画素の1ブロック内のDCT係数の一例を示している(上述の図書の第116頁の図5−6を引用)。その左上隅のDCT係数がDC成分を示し、それ以外のDCT係数がAC成分を示す。なお、AC成分のうち、高周波成分を省略しても画像認識への影響が少ない。
次に、DCT係数の量子化が行われる(ステップS3)。この量子化は、1ブロック内の各DCT係数を、量子化テーブル中の対応する位置の量子化ステップ値で除算して、情報量を少なくするために実施される。例えば、図3のDCT係数を図4の量子化テーブルを用いて量子化した1ブロック内のDCT係数を図5に示す(上述の図書の第117頁の図5−9及び図5−10を引用)。図5に示す通り、特に、高周波成分のDCT係数を量子化ステップ値で除算し、その小数点以下を四捨五入すると、ほとんどがゼロデータとなり、情報量が大幅に減少している。
このエンコード処理には、現フレームと該現フレームの次のフレームとの間で上述の動き検出(ME)を実施するために、帰還ルートが必要となる。この帰還ルートでは、図1(A)に示すように、逆量子化(iQ)、逆DCT及び動き補償(MC:Motion Compensation)が実施される(ステップS4〜S6)。なお、動き補償の詳細な動作については省略するが、この処理は図2に示す16画素×16画素の1マクロブロック単位で実施される。
本実施形態では、上述したステップS1〜S6の処理が、ハードウェアによって実施される。
図1(A)のステップS7で実施されるDC/AC(直流/交流成分)予測処理及びステップS8で実施されるスキャン処理は、共にステップS9の可変長符号(VLC:Variable Length Code)の符号化の効率を高めるために必要な処理である。なぜなら、ステップS9の可変長符号への符号化は、DC成分については隣接ブロック間での差分を符号化し、AC成分についてはブロック内を周波数が低い側から高い側に向けてスキャン(ジグザグスキャンとも称する)して符号化の順序を決める必要があるからである。
ステップS9の可変長符号への符号化とは、エントロピー符号化とも称され、符号化原理として、出現頻度の多いものは少ない符号で表わすように符号化するものである。このエントロピー符号化には、ハフマン符号化が採用される。
そしてステップS7、ステップS8での結果を利用して、DC成分について隣接ブロック間での差分を符号化し、AC成分についてはスキャンされた順番で低周波側から高周波側から順にDCT係数値を符号化する。
ここで、画像データは、その画像の複雑さや動きの激しさによって情報の発生量が変動する。この変動を吸収し、一定の伝送レートで伝送するには符号発生量の制御が必要であり、これがステップS10のレートコントロールである。レートコントロールのために通常バッファメモリが設けられ、そのバッファメモリがオーバーフローしないように蓄積情報量を監視し、情報発生量を抑えるようにする。具体的には、ステップS3での量子化特性を粗くして、DCT係数値を表すビット数を減らしている。
本実施形態では、上述したステップS7〜S10の処理が、ソフトウェアによって実施される。即ち、ステップS7〜S10の処理が、ソフトウェアを読み込んだハードウェアによって実現される。
図1(B)は、図1(A)のエンコード処理によって圧縮された画像データのデコード処理を示す。このデコード処理は図1(A)のエンコード処理を逆順でかつ逆処理することで達成される。なお、図1(B)中の「ポストフィルタ」とは、ブロックノイズを消去するためのフィルタである。また図1(B)中の「YUV/RGB変換」とは、ポストフィルタの出力を、YUVフォーマットからRGBフォーマットに変換することを指す。
2. レートコントロール
次に、図1(A)に示すステップS10で実施されるレートコントロールに関し、非特許文献1に記載される手法について簡単に説明する。この手法では、エンコード時の量子化パラメータを変化させる。量子化パラメータを変化させることで、図1(A)に示す量子化(ステップS3)の量子化ステップを変化させて量子化特性を変化させ、発生する符号量(データのサイズ)を制御する。
この手法では、フレームごとに量子化パラメータQcを設定して、1フレームを符号化したときの発生符号量Rの制御を行う。このとき、図6に示すモデル式に従って、量子化パラメータQcを求める。
図6において、Rは1フレームを符号化しときの発生符号量、Qcは量子化パラメータ、Ecはフレームの複雑度、X、Xは本モデルのパラメータを示す。フレームの複雑度Ecは、符号化対象とする画素の絶対値平均を用いる。ここでフレーム間符号化マクロブロックに関しては、フレームの複雑度Ecは、現フレームと該現フレームの前のフレームとの差分値x´ijの絶対値の総和を面積Aで除した値として、動き検出後に求められる。フレーム内符号化マクロブロックに関しては、現フレームと基準値μとの差分値の絶対値(|xij−μ|)の総和を面積Aで除した値として求められる。なお基準値μは、マクロブロック内の全画素の平均値とすることができる。
このように、図6では、発生符号量はフレームの複雑度と量子化パラメータの逆数の2次式とによってモデル化される。
図7に、図6に示すモデル式を用いたレートコントロールの処理フローの一例を示す。
まず、初期フレームを、所定の量子化パラメータを用いてエンコードする(ステップS30)。次に、モデルパラメータX、Xの初期値を設定する(ステップS31)。続いて、現フレームの複雑度Ecを算出する(ステップS32)。複雑度Ecは、図6に示す式を用いて求めることができる。そして、エンコードに使用する符号量を、使用可能な残りの符号量及び前フレームで使用した符号量を基に求める(ステップS33)。
更に、ステップS31で設定されたモデルパラメータX、X、ステップS32で求められた複雑度Ecを、図6に示すモデル式に設定する。また、ステップS33で求められたエンコードに使用する符号量から、前フレームで使用したビット数のうちヘッダや動きベクトル等の情報以外のビット数を減算した値を、1フレームを符号化したときの発生符号量Rとして図6に示すモデル式に設定する。そして、図6に示すパラメータをQcとする2次方程式を解いて、量子化パラメータQcを求める(ステップS34)。
次に、ステップS34で求められた量子化パラメータQcを用いてフレームの量子化と符号化とを行って(ステップS35)、現フレームの1フレーム前にエンコードしたフレームの量子化パラメータと発生符号量等とを基に、図6に示すモデル式からモデルパラメータX、Xを求めて更新する(ステップS36)。
所定の条件でこの処理フローを終了するとき(ステップS37:Y)、一連の処理を終了し(エンド)、終了しないとき(ステップS37:N)、ステップS32に戻る。以上のような処理を毎フレーム行う。
このように非特許文献1に記載されるレートコントロール方式では、1フレーム前のエンコード結果を次のフレームのエンコードに反映させる必要がある。
3. 画像データ圧縮装置
ところで本実施形態は、上述したエンコードの一連の処理をハードウェアとソフトウェアとに分担させ、この分担の最適化を図る画像データ圧縮装置を提供するものである。
図8に、本実施形態における画像データ圧縮装置の構成の概要のブロック図を示す。
本実施形態における画像データ圧縮装置10は、撮像部90からの画像データに対して圧縮処理を行う。撮像部90は、撮像により取り込んだ画像データを、1フレーム(1画面)ごとに画像データ圧縮装置10に対して出力する。この撮像部90としては、例えばCCD(Charge-Coupled device)カメラ(イメージセンサ)やCMOS(Complementary Metal Oxide Semiconductor)カメラ(イメージセンサ)を含むカメラモジュールがある。
画像データ圧縮装置10は、圧縮処理部70を含む。圧縮処理部70は、撮像部90からの画像データの圧縮処理を行う。本実施形態では、この圧縮処理は、MPEG−4の規格に準拠した処理を行い、圧縮処理後のデータとして符号化データを所定のレート(例えば15フレーム毎秒)で出力する。
そのため圧縮処理部70は、量子化部20、FIFOバッファ部30及び符号化データ生成部40を含み、フレーム単位に入力される画像データを圧縮するための処理を行う。
量子化部20は、図1(A)に示すステップS3の処理を行う。量子化部20は、フレーム単位で、画像データを、量子化パラメータに基づいて変化する量子化ステップで量子化する。量子化部20では、フレームごとに設定される量子化パラメータが設定される。ここで画像データは、例えば図1(A)に示すステップS2のDCT処理後のDCT係数により表わすことができる。この場合、図3に示すDCT係数が、図4に示す量子化テーブルの量子化ステップ値と量子化パラメータとの積で除算され、図5に示すように量子化される。
FIFOバッファ部30には、量子化部20によって量子化された複数フレーム分の量子化データがバッファリングされる。フレーム単位で量子化部20から出力される量子化データは、FIFOバッファ部30に順次書き込まれる。そしてFIFOバッファ部30は、先入れ先出し記憶回路として機能する。
符号化データ生成部40は、FIFOバッファ部30から1フレーム分の量子化データを読み出し、該量子化データを符号化した符号化データを生成する。この符号化データ生成部40は、FIFOバッファ部30への書き込みと非同期で、FIFOバッファ部30から1フレーム分の量子化データを読み出す。
このように量子化部20と符号化データ生成部40との間にFIFOバッファ部30を設けることで、処理負荷の重い量子化部20の処理をハードウェアに負担させ、処理負荷の軽い符号化データ生成部40の符号化処理をソフトウェア処理で実現させると共に、両者の処理を並列に処理できるようになる。
以下では、量子化部20が例えば高速なハードウェアによって実現され、符号化データ生成部40が例えば低速なソフトウェア処理によって実現されるものとして説明するが、これに限定されるものではなく、符号化データ生成部40が、FIFOバッファ部30への書き込みと非同期でFIFOバッファ部30から量子化データを読み出す場合に本実施形態を適用することができる。従って、量子化部20が例えば高速なハードウェアによって実現され、符号化データ生成部40が例えば低速なハードウェアによって実現されてもよい。或いは量子化部20と符号化データ生成部40がソフトウェアを読み込むハードウェアによって実現され、互いに非同期で処理するようにしてもよい。
また画像データ圧縮装置10は、間引き検出部80を含む。間引き検出部80は、撮像部90から1フレーム分の画像データが入力される毎に、当該入力フレームが間引き対象フレームか否かを検出する処理を行う。間引き検出部80は、撮像部90からの画像データの入力フレームレートと符号化データの生成レートとに基づいて、当該入力フレームが間引き対象フレームか否かを検出する処理を行う。
図9に、撮像部90の構成例のブロック図を示す。
撮像部90は、制御レジスタ92、タイミングジェネレータ94、イメージセンサ部96、信号処理部98を含む。タイミングジェネレータ94は、制御レジスタ92の設定値に対応したタイミングの制御信号を生成する。本実施形態では、制御レジスタ92の設定値に対応したフレームレートで、取り込んだ画像のデータを出力する。
イメージセンサ部96は、例えば画素毎に設けられた撮像素子を含み、タイミングジェネレータ94によって生成された制御信号に同期して、撮像により画像を取り込む。信号処理部98は、タイミングジェネレータ94によって生成された制御信号に同期して、イメージセンサ部96によって取り込まれた画像データに対して所定の信号処理(ノイズ成分を除去するための処理、ゲイン調整処理、A/D変換処理)を行う。
このような撮像部90は、画像データ圧縮装置10や図示しないホストによりフレームレートが制御される。このフレームレートは、制御レジスタ92の設定値に対応した制御信号により制御される。イメージセンサ部96は、画像データ圧縮装置10の符号化データの生成レートよりも高速なフレームレートで、撮像により取り込んだ画像データを生成する。そして信号処理部98は、ノイズ除去等の所定の信号処理後の画像データを、1フレームの開始を指示する垂直同期信号VSYNCと共に出力する。
なお制御レジスタ92の設定値は、外部への読み出しができるようになっており、画像データ圧縮装置10の間引き検出部80は、制御レジスタ92の設定値を参照して、撮像部90からの画像データの入力フレームレートを識別できるようになっている。
この制御レジスタ92の設定値は、外部から設定できるものとしているが、予め固定的に設定されていてもよい。
図8に戻って説明を続ける。こうして撮像部90からの画像データの入力フレームレートを参照できる間引き検出部80を含む画像データ圧縮装置10は、更に、フレームスキップ部60を含む。フレームスキップ部60は、間引き検出部80の検出結果に基づいて、圧縮処理部70が行う1フレーム分の画像データの圧縮処理をスキップさせるスキップ処理を行う。より具体的には、フレームスキップ部60は、間引き検出部80が当該入力フレームを間引き対象フレームと判断したことを条件にスキップ処理を行う。スキップ処理が行われると、当該入力フレームの画像データの圧縮処理が行われず、当該入力フレームの画像データがなかったものとして扱われる。
ここで、間引き検出部80により行われる処理について説明する。
撮像部90からの画像データの入力フレームレートをCA(CAは正の整数)、圧縮処理部70の圧縮処理後の符号化データの生成レートをTA(CA>TA、TAは正の整数)とした場合、間引き検出部80は、撮像部90からの画像データの入力フレーム数CAのうち、(CA−TA)フレーム数の画像データを間引き対象フレームとして検出する。即ち、間引き検出部80は、撮像部90からの画像データの入力フレームレートが高速な場合、該画像データが1フレーム分入力される毎に、上記の割合で間引き対象フレームを求める。こうして画像データ圧縮装置10では、撮像部90からの画像データの入力フレームレートが高速な場合、入力される画像データを、圧縮処理に先立ってフレーム単位に間引きをして、所定のレートで符号化データを出力する。
図10に、間引き検出部80の処理の手法の説明図を示す。
間引き検出部80は、以下のように求められる間引きフレームインターバル値を小数点データとして保持する。そして間引き検出部80は、撮像部90から入力される画像データのうち、該間引きフレームインターバル値で示される間隔で、必要なフレーム数だけ間引き対象フレームとする。
図10では、画像データの入力フレームレートをCA、符号化データの生成レートをTAとし、符号化データの生成レートが15(15フレーム毎秒)のときの必要な間引きフレーム数と間引きフレームインターバル値とを示している。必要間引きフレーム数は、(CA−TA)により求められる。間引きフレームインターバル値は、CA/(CA−TA)により求められる小数点データである。
図11に、間引き検出部80の処理例の説明図を示す。
図11では、入力フレームレートを19(19フレーム毎秒)、符号化データの生成レートを15(15フレーム毎秒)としている。このとき、図10に示すように、必要間引きフレーム数は4(=19−15)となり、間引きフレームインターバル値は4.75(=19/(19−15))となる。
間引き検出部80では、間引き対象となるフレームを検出する処理に、間引きフレームインターバル値の累積値を用いる。また間引き検出部80は、撮像部90からの画像データがフレーム単位で入力される毎に1ずつインクリメントされるフレームのカウント値を保持する。間引きインターバル値の累積値は、撮像部90からの画像データのフレームのカウント値が0からCAまでの範囲の値であって、間引きインターバル値の整数倍の値である。図11では、間引きインターバル値の累積値は、4.75(=4.75×1)、9.5(=4.75×2)、14.25(=4.75×3)、19(=4.75×4)である。
そして撮像部90から入力される画像データのフレームのカウント値が初期値の状態(=0)から、画像データが入力される毎に当該入力フレームが間引き対象フレームか否かを判別する。より具体的には、間引き検出部80は、撮像部90から入力される画像データのフレームのカウント値とCA/(CA−TA)の整数倍として求められる小数点データの間引きフレームインターバル値のうちの1つの値(4.75、9.5、14.25、19のうちの1つの値)とを比較していく。そして、該カウント値が該間引きフレームインターバル値のうちの1つの値以上であるとき、撮像部90から入力される画像データのフレームである当該入力フレームを間引き対象フレームとして検出する。言い換えれば、フレームのカウント値が、間引きフレームインターバル値の累積値の1つの値以上のとき、該フレームを間引き対象フレームとして検出する。或いは、間引きフレームインターバル値の累積値の各値以上で直近のフレームを、間引き対象フレームとして検出する。
図11では、フレームのカウント値が5のとき、該カウント値が間引きフレームインターバル値のうちの1つの値4.75以上であるため、フレームのカウント値が5のフレームを間引き対象フレームとして検出する。同様に、フレームのカウント値がインクリメントされ、該カウント値が10、15、19になったとき、それぞれ間引きフレームインターバル値のうちの1つの値9.5、14.25、19以上となるため、フレームのカウント値が10、15、19の各フレームを間引き対象フレームとして検出する。
この結果、圧縮処理部70は、フレームのカウント値が1〜4、6〜9、11〜14、16〜18のフレームの画像データに対して圧縮処理を行う。
そして画像データ圧縮装置10の圧縮処理部70は、図8に示すように、更に、レートコントロール部50を含むことができる。レートコントロール部50は、現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データのデータサイズを予測して予測データサイズとして求め、該予測データサイズに基づいて量子化ステップを変化させる。図5より明らかなように、量子化ステップを大きくすれば、量子化されたDCT係数のゼロデータが増える。一方、量子化ステップを小さくすれば、量子化されたDCT係数のゼロデータが減る。こうしてゼロデータが増減される量子化データは、FIFOバッファ部30に書き込まれる。その結果、FIFOバッファ部30から読み出した量子化データを、符号化データ生成部40が符号化した符号化データのサイズも、量子化パラメータに応じて変更できるようになる。
上述のように非特許文献1に記載されたレートコントロール方式では、1フレーム前のエンコード結果を次のフレームのエンコードに反映させる必要がある。ところが、量子化部20の量子化と符号化データ生成部40の符号化とを、ハードウェアとソフトウェアとに分担させるようにすると、互いに非同期で処理されることになる。そのため、FIFOバッファ部30で読み出された量子化データが、量子化部20で量子化されるデータの2フレーム以上過去のフレームのデータとなってしまうことがある。このため、1フレーム前のエンコード結果を次のフレームのエンコードに反映させた非特許文献1に記載されたレートコントロール方式を実現できなくなる。
そこで本実施形態では、レートコントロール部50は、上述のように現在のフレームの1フレーム前の符号化データの予測データサイズを求め、該予測データサイズに基づいてレートコントロールを行う。この際、本実施形態では、以下のような特性に着目して、予測データサイズを求める。
図12に、量子化データのデータサイズと符号化データのデータサイズとの関係の説明図を示す。ここで量子化データは、量子化部20から読み出されたデータであり、図1(A)においてステップS3において生成されたデータである。また符号化データは、符号化データ生成部40によって該量子化データを符号化したデータであり、図1(A)においてステップS9において生成されたデータである。
図12に示すように、量子化データのデータサイズと符号化データのデータサイズとの間には線形関係がある。即ち、量子化データのデータサイズx、符号化データのデータサイズをyとすると、xを変数としてyを次の(1)式により近似的に求めることができる。
y=ax−b(a、bは正の実数) ・・・(1)
従って、量子化データのデータサイズxを1次変換(線形変換)することで符号化データのデータサイズの予測値yとして求めることができる。(1)式において、aは、符号化データ生成部40の符号化効率に対応した係数である。この係数は、符号化データ生成部40の処理の特性に対応して定められる。更に具体的には、この係数は、符号化データ生成部40において行われるハフマン符号化のためのハフマンエンコード処理の圧縮係数ということもできる。
また(1)式において、bは符号化データ生成部40によって生成される符号化データのヘッダ情報のデータサイズに対応する数値である。例えば符号化データがMPEG−4のストリームデータである場合、MPEG−4のヘッダ情報のデータサイズをbとする。これにより、(1)式の1次変換は、更に、符号化データに付加されるヘッダサイズ分の補正を行う変換ということができる。
以上のような(1)式のa、bは、例えば複数種類の画像データについて、量子化データのデータサイズと符号化データのデータサイズとの関係を統計的に処理して求められる。
こうして求められた予測データサイズを1フレーム前のエンコード結果として次のフレームのエンコードに反映させることで、非特許文献1に記載されたレートコントロール方式を行う。これにより、画像データの圧縮処理についてハードウェアとソフトウェアとの分担の最適化と、より正確なレートコントロールの実現とを両立する。
なお図8では、量子化データのデータサイズから予測データサイズを求めるようにしていたが、これに限定されるものではない。量子化データのデータサイズと等価な情報から、該予測データサイズを求めることも可能である。
以下では、量子化データのデータサイズと等価な情報として、各フレームのFIFOバッファ部30へのアクセス回数(書き込み回数又は読み出し回数)を用いる。FIFOバッファ部30への書き込みを所定バイト数単位で行って、各フレームのアクセス回数を各フレームの量子化データのデータサイズと等価な情報とすることができる。またFIFOバッファ部30からの読み出しを所定バイト数単位で行って、各フレームのアクセス回数を各フレームの量子化データのデータサイズと等価な情報とすることができる。
図13に、本実施形態におけるレートコントロールの手法の説明図を示す。但し、図8に示す画像データ圧縮装置10と同一部分には同一符号を付し、適宜説明を省略する。なお図13では、FIFOバッファ部30が、7フレーム分の量子化データを記憶できるものとする。
図14に、図13に示すレートコントロール手法の動作タイミングの模式図を示す。
量子化部20は、フレーム単位で画像データを量子化する。例えば図4に示す量子化ステップ値が設定された量子化テーブル22を設ける。そして、量子化部20は、量子化テーブル22に設定された量子化ステップ値とレートコントロール部50からの量子化パラメータとに基づいて、フレーム単位で画像データを量子化する。より具体的には、量子化パラメータを量子化ステップ値の係数とし、量子化部20が、該量子化パラメータと量子化ステップ値との積を用いて量子化を行うことで、量子化ステップを変化させる。
量子化部20は、時刻t1、t2、・・・において、フレーム単位で画像データを量子化し、量子化データを第1のフレームF、第2のフレームF、・・・の順にFIFOバッファ部30に書き込む。各フレームにおいてカウントレジスタ32が保持するカウントデータは、毎フレームにおいて初期化され、FIFOバッファ部30への書き込みが発生する毎にインクリメントされて更新される。こうすることで、各フレームの量子化データの書き込みが完了した時点で、カウントレジスタ32には、FIFOバッファ部30への書き込み回数に対応したカウントデータが設定されていることになる。
その一方で、符号化データ生成部40は、FIFOバッファ部30への量子化データの書き込みタイミングとは非同期で、FIFOバッファ部30から量子化データをフレーム単位で読み出し、符号化処理を行う。
レートコントロール部50は、符号化データ生成部40の処理とは独立して、各フレームの量子化データの書き込みが完了した時点のカウントデータに基づいて、量子化部20の量子化ステップを変化させて次のフレームに反映させる。これにより、量子化データの書き込みが完了したフレームの次のフレームでは、量子化部20で量子化された量子化データのサイズが変化し、この結果として符号化データ生成部40が生成する符号化データのサイズも変化する。
図14では、符号化データ生成部40がFIFOバッファ部30から第1〜第4のフレームF〜Fの量子化データを順次読み出して、各フレームの符号化データをそれぞれ生成して出力している。
カウントレジスタ32には、第1のフレームFの量子化データのFIFOバッファ部30への書き込みが完了した時点で、カウントデータDが保持される。カウントデータDは、第1のフレームFの量子化データのFIFOバッファ部30への書き込み回数に対応したデータである。カウントデータDは、第1のフレームFの量子化データのデータサイズに対応づけられる。このカウントデータは、第2のフレームFの開始時点で初期化され、第2のフレームFの量子化データのFIFOバッファ部30への書き込みが完了した時点で、カウントデータDが保持される。カウントデータDは、第2のフレームFの量子化データのFIFOバッファ部30への書き込み回数に対応したデータである。
レートコントロール部50は、FIFOバッファ部30への書き込みが終了する毎にカウントデータを読み出して、次のフレームの量子化ステップを変化させる。図14では、第1のフレームFの量子化データの書き込みが完了すると、レートコントロール部50がカウントデータDを読み出し、カウントデータDから予測データサイズを求める。そして図6及び図7で説明したように、レートコントロール部50は、この予測データサイズを用いて第2のフレームFのエンコードに使用する符号量を算出して、量子化パラメータQcを求める。この結果、量子化部20は、第2のフレームFの画像データに対し、第1のフレームFの符号化データの予測データサイズに基づいて求められた量子化パラメータQcと量子化テーブル22の量子化ステップ値との積を用いて量子化する。この量子化結果が、FIFOバッファ部30に書き込まれる。こうして、フレームごとに1フレーム前の予測データサイズを用いることで、所望のレートで符号化データを生成できるようになる。
また本実施形態では、レートコントロール部50のレートコントロールの結果、符号化データのデータサイズが大きくなって一定のビットレートを維持できない場合に、フレームスキップ部60がスキップ処理を行うことができる。このフレームスキップ部60は、量子化部20に供給される画像データの生成を中止させる。
そのため、フレームスキップ部60は、フレームごとに求められる量子化パラメータがスキップ閾値よりも大きくなるフレームが、スキップ連続回数閾値として設定された回数以上連続したとき、スキップ処理を行う。或いは、フレームスキップ部60は、量子化部20によって量子化される画像データと該画像データのフレームの前のフレームの画像データとの差分情報に対応した複雑度が、複雑度閾値以上のとき、スキップ処理を行う。こうすることで、フレームスキップ部60は、毎フレーム生成される符号化データの増加量を抑え、ビットレートを維持させることができるようになる。
また上述のようにレートコントロールを実施したとしても、エンコード対象の画像によっては、エンコード後の圧縮データをデコードした画像にブロックノイズが目立つ場合も想定される。これは、非特許文献1に述べられているレートコントロール方式により、圧縮データの生成レートをコントロールしたとしても、該圧縮データをデコード(伸張)した画像にはブロックノイズが表示されることが多く、表示品質を劣化させる場合があるからである。
図15に、量子化パラメータ、符号化データのデータサイズ及びブロックノイズの関係を模式的に示す。図15では、横軸が量子化パラメータを表わし、縦軸がデータサイズ及びブロックノイズを表わす。なお、非特許文献1に記載されるレートコントロール方式では、量子化パラメータQcの値の範囲が1〜31である。
図15に示すように、量子化パラメータの値を大きくするほど、画像データを大きく間引いてDCT係数をゼロデータにすることになり量子化データのサイズを小さくし、符号化データのサイズを小さくできる。その反面、該符号化データをデコードした画像にはブロックノイズが目立つようになる。即ち、データサイズが小さいほど、ブロックノイズが多くなる。
そこで本実施形態では、量子化パラメータQcの値が一定値より大きくならないように、量子化パラメータ上限閾値QcUpperLimitを設けている。この量子化パラメータ上限閾値QcUpperLimitの値は、レートコントロールに先立って設定される。従って、レートコントロール部50は、現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データの予測データサイズを求め、該予測データサイズを用いて、その値が設定可能な量子化パラメータ上限閾値以下となるように量子化パラメータを求める。このように、Qc≦QcUpperLimitとすることにより、上述のようにレートコントロールを実施したとしても、エンコード後の圧縮データをデコードした画像にブロックノイズが目立つ事態を回避できるようになる。
一方、量子化パラメータの値を小さくするほど、画像データを間引く量が小さくなり、DCT係数のゼロデータが少なくなる。そのため量子化データのサイズが大きくなり、符号化データのサイズも大きくなる。その反面、該符号化データをデコードした画像にはブロックノイズが少なくなる。即ち、データサイズが大きいほど、ブロックノイズが少なくなる。例えば量子化パラメータQcの値が1のとき、デコードした画像を最高画質にできるが、1フレーム分の符号化データとして使用されるデータ量が膨大となってしまう。このとき、人間の眼では確認できないような撮像部のノイズもすべて残った状態となる。
そこで本実施形態では、量子化パラメータQcの値が一定値より小さくならないように、量子化パラメータ下限閾値QcLowerLimitを設けている。この量子化パラメータ下限閾値QcLowerLimitの値は、レートコントロールに先立って設定される。従って、レートコントロール部50は、現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データの予測データサイズを求め、該予測データサイズを用いて、その値が設定可能な量子化パラメータ下限閾値以上となるように量子化パラメータを求める。このように、Qc≧QcLowerLimitとすることにより、上述のようにレートコントロールを実施したとしても、無駄にデータサイズを大きくすることがなくなる。
以上のように、レートコントロール部50は、予測データサイズを用いて量子化パラメータ上限閾値QcUpperLimit以上となるように又は量子化パラメータ下限閾値QcLowerLimit以上となるように量子化パラメータを求めるようにしてもよいが、これに限定されるものではない。
レートコントロール部50は、上述のように予測データサイズを用いて、量子化パラメータ上限閾値QcUpperLimit以下で、かつ量子化パラメータ下限閾値QcLowerLimit以上となるように量子化パラメータを求めるようにしてもよい。この場合、量子化パラメータQcの値を、図15に示す範囲RangeQcとすることで、データサイズの範囲RangeDataとすることができ、圧縮効率と画質との最適化を図るレートコントロールを容易に実現できる。
ところで、フレームごとに圧縮処理を行っていると、画像(特に自然画像ではない画像)によっては符号化データのサイズが増加し、ビットレートを確実に維持できない可能性がある。特に、上述のように量子化パラメータQcの量子化パラメータ上限閾値QcUpperLimitを設けた場合には、画質劣化を防止できる反面、個々のフレームでの符号化データのサイズが増加せざるを得ず、ビットレートの維持を阻害する可能性が高くなる。
そのため本実施形態では、フレームスキップ部60が、上述のように一定の条件で、スキップ処理を行う点で、有効である。特に、量子化パラメータ上限閾値QcUpperLimit以下となるように量子化パラメータQcを求めたときに、フレームスキップ部60が、該量子化パラメータQcがスキップ閾値よりも大きくなるフレームが、スキップ連続回数閾値として設定された回数以上連続したとき、スキップ処理を行うことで、画質の劣化を防止する一方で、確実にビットレートを維持できる。或いは、量子化パラメータ上限閾値QcUpperLimit以下となるように量子化パラメータQcを求めたときに、フレームスキップ部60が、量子化部20によって量子化される画像データと該画像データのフレームの前のフレームの画像データとの差分情報に対応した複雑度が、複雑度閾値以上のとき、スキップ処理を行うことで、画質の劣化を防止する一方で、確実にビットレートを維持できる。
3.1 量子化パラメータQcの算出処理
次に、レートコントロール部50で行われる量子化パラメータQcの算出処理について具体的に説明する。
以下では、予測データサイズを用いて、量子化パラメータ上限閾値QcUpperLimit以下で、かつ量子化パラメータ下限閾値QcLowerLimit以上となるように量子化パラメータを求めるものとする。
図16及び図17に、量子化パラメータQcの算出処理のフローの一例を示す。ここでは、図18に示す量子化パラメータQcの算出処理で用いられる変数の説明図を参照しながら、図16及び図17に示すフローを説明する。図16及び図17に示すフローが、毎フレーム行われる。
まず前フレームで使用したビット数Sを算出する(ステップS40)。ここで、変数Sに、前フレームで求められた、エンコードに使用したビット数(現フレームのエンコードに使用したビット数)Rcの値が設定される。
図19に、エンコードに使用したビット数Rcの値の算出処理のフローの一例を示す。ここでは、現在のフレームの1フレーム前の量子化データのデータサイズと等価な情報としてカウントレジスタ32から読み出されたカウントデータをxとし、(1)式に代入して現在のフレームの符号化データの予測データサイズyを求める(ステップS60)。
そしてステップS60で求めた予測データサイズyを、エンコードに使用したビット数Rcの値として設定する(ステップS61)。
こうして求められた変数Rcの値は、次のフレームで変数Sに設定される。
図16に戻って、説明を続ける。変数Sの値が求められると、現フレームに割り当てるビット数Tを求める(ステップS41)。ステップS41では、残りの使用可能ビット数Rrと、残りにエンコードフレーム枚数Nrとにより、1フレーム当たりの平均割り当てビット数(Rr/Nr)を求め、その値と前フレームの割り当てビット数Sとの比で、現フレームに割り当てられるビット数Tを求める。ステップS41では、例えば0.95:0.05となっている。そして、現フレームに割り当てられるビット数Tが、下限値であるRs/30の値を下回らないようにする。
次に、現在のFIFOバッファ部30の占有ビット数Bと、FIFOバッファ部30のビット数Bsとの比から、現フレームに割り当てられるビット数Tを調整する(ステップS42)。この結果、現在のFIFOバッファ部30の占有ビット数Bが、FIFOバッファ部30のビット数Bsの半分より小さい場合は、変数Tの値を大きくし、逆に大きい場合は変数Tの値を小さくする。
そして、現在のFIFOバッファ部30の占有ビット数Bと変数Tの加算値が、FIFOバッファ部30のビット数Bsの9割を超えたか否かを判別する(ステップS43)。該加算値が変数Bsの値の9割を超えたと判別されたとき(ステップS43:Y)、変数Tの値が、FIFOバッファ部30のビット数Bsの9割から変数Bの値を減算した値に設定(クリップ)される(ステップS44)。即ち、現在のFIFOバッファ部30の占有ビット数Bと変数Tの加算値が、FIFOバッファ部30のビット数Bsの9割を超えないように設定される。また、ステップS41と同様に、変数Tの値が、下限値であるRs/30の値を下回らないようにする。
一方、ステップS43において、該加算値が変数Bsの値の9割を超えていないと判別されたとき(ステップS43:N)、変数Tの値は、1フレームあたりの平均発生ビット数Rpから変数Bの値を減算し、変数Bsの値の1割を加算した値に設定される(ステップS45)。即ち、変数Bsと変数Tの加算値から1フレームあたりの平均発生ビット数Rpを減算した値が、FIFOバッファ部30のビット数Bsの1割を下回らないように設定される。
ステップS44又はステップS45に続いて、変数Tの値が、残りの使用可能ビット数Rrより大きくならないように設定する(ステップS46)。次に、フレーム間で極端に変数Tの値が変化しないように、変数Tの値を調整する(ステップS47)。
次に、量子化パラメータQcの値を求めるため、図6に示したモデル式を、変数Qcの2次方程式として解く。そのため図17に示すように、まず変数tmpの値を求める(ステップS48)。
ここで、モデルパラメータXが0のとき、或いは変数tmpの値が負の値のとき(ステップS49:Y)、1次方程式となるモデル式より量子化パラメータQcを求める(ステップS50)。ここで、変数Rは、現フレームに割り当てられるビット数Tから、前のフレームで使用したビット数のうちヘッダ等の情報以外のビット数Hpを減算した値となるため、Qc=X×Ec/(T−Hp)より求められる。また変数Ecの値は、図6に示したようにフレームの画素の絶対値平均の値である。
ステップS49において、モデルパラメータXが0ではなく、かつ変数tmpの値が0以上の値のとき(ステップS49:N)、図6に示すモデル式から導かれる2次方程式の解を、量子化パラメータQcの値とする(ステップS51)。
ステップS50又はステップS51に続いて、量子化パラメータQcの値が前フレームの量子化パラメータQpとの差が25パーセント以内に収まり、かつ量子化パラメータQcの値が1〜31の値となるように処理する(ステップS52、ステップS53、ステップS54、ステップS55)。ステップS52、ステップS54において、ceil(x)は、xの値を正の方向に切り上げて整数にすることを意味する。
本実施形態では、更にステップS55で求められた量子化パラメータQcの値の調整処理を行い(ステップS56)、一連の処理を終了する(エンド)。
図20に、量子化パラメータQcの値の調整処理のフローの一例を示す。
まずステップS55で求められた量子化パラメータQcの値が、この調整処理に先立ってその値が設定される量子化パラメータ上限閾値QcUpperLimit以上か否かを判別する(ステップS100)。
量子化パラメータQcの値が、量子化パラメータ上限閾値QcUpperLimit以上であると判別されたとき(ステップS100:Y)、量子化パラメータQcの値を量子化パラメータ上限閾値QcUpperLimitに設定する(ステップS101)。
量子化パラメータQcの値が量子化パラメータ上限閾値QcUpperLimit以上ではないと判別されたとき(ステップS100:N)、或いはステップS101に続いて、量子化パラメータQcの値が、この調整処理に先立ってその値が設定される量子化パラメータ下限閾値QcLowerLimit以下であるか否かを判別する(ステップS102)。
量子化パラメータQcの値が、量子化パラメータ下限閾値QcLowerLimit以下であると判別されたとき(ステップS102:Y)、量子化パラメータQcの値を量子化パラメータ下限閾値QcLowerLimitに設定する(ステップS103)。
量子化パラメータQcの値が量子化パラメータ下限閾値QcLowerLimit以下ではないと判別されたとき(ステップS102:N)、或いはステップS103の後では、その時点の量子化パラメータQcの値が量子化部20に供給されることになる(図20のエンド、図17のエンド)。
なお図17及び図20では、ステップS56において調整処理を行っていたが、これに限定されるものではない。例えば図17においてステップS56を設けず、ステップS53の31の値を量子化パラメータ上限閾値QcUpperLimitに置き換え、ステップS55の1の値を量子化パラメータ下限閾値QcLowerLimitに置き換えるようにしてもよい。
以上のようにして求められた量子化パラメータQcを量子化部20に供給することで、量子化部20の量子化ステップを変化させる。
即ち、例えば図21に示すように、DCT係数により表わされる画像データのDCT係数Dijを、量子化テーブルの対応する位置の量子化ステップ値Qijと量子化パラメータQcとの積で除算して、量子化されたDCT係数dijを求める。その結果、量子化されたDCT係数のゼロデータを増減させることができる。
3.2 フレームスキップ
次に、フレームスキップ部60で行われるスキップ処理について具体的に説明する。
図22に、フレームスキップ部60で行われるスキップ処理の一例のフロー図を示す。ここでは、図16〜図20で説明したようにレートコントロール部50において求められた量子化パラメータQcに基づいてスキップ処理を行う場合のフローを示す。図22に示すフローは、例えばフレームごとに行われる。
まず、レートコントロール部50において求められた量子化パラメータQcの値が、スキップ閾値SkipBorderValueより大きいか否かを判別する(ステップS110)。
量子化パラメータQcの値がスキップ閾値SkipBorderValueより大きいと判別されたとき(ステップS110:Y)、スキップ処理対象のフレームをカウントするためのカウント値Countをインクリメントする(ステップS111)。量子化パラメータQcの値がスキップ閾値SkipBorderValue以下であると判別されたとき(ステップS110:N)、カウント値Countに0を設定する(クリアする)(ステップS112)。
ステップS111又はステップS112に続いて、カウント値Countがスキップ連続回数閾値SkipBorderCount以上であるか否かを判別する(ステップS113)。カウント値Countがスキップ連続回数閾値SkipBorderCount以上であると判別されたとき(ステップS113:Y)、スキップ処理を行うためのフレームスキップ設定を行う(ステップS114)。更に、カウント値Countに0を設定し(ステップS115)、一連の処理を終了する(エンド)。
ステップS114におけるフレームスキップ設定では、圧縮処理部70への画像データの入力をスキップさせるための設定を行う。このフレームスキップ設定により、例えば圧縮処理部70の少なくとも一部を初期化したり、該少なくとも一部の動作クロックを停止させたりすることができるようになっている。本発明は、スキップ処理を行うためのフレームスキップ設定の内容に限定されるものではなく、結果的に符号化データが生成されなければよい。
ステップS113において、カウント値Countがスキップ連続回数閾値SkipBorderCountより小さいと判別されたとき(ステップS113:N)、一連の処理を終了する(エンド)。
なお、スキップ閾値SkipBorderValue及びスキップ連続回数閾値SkipBorderCountは、図22に示す処理に先立って設定される。
以上のように、フレームスキップ部60は、フレームごとに求められる量子化パラメータQcがスキップ閾値SkipBorderValueより大きいフレームが、スキップ連続回数閾値SkipBorderCountとして設定された回数以上連続したとき、エンコードをスキップさせるためのスキップ処理を行うことができる。
図23に、フレームスキップ部60で行われるスキップ処理の他の例のフロー図を示す。ここでは、複雑度Ecに基づいてスキップ処理を行う場合のフローを示す。図23に示すフローは、例えばフレームごとに行われる。
まず、フレームスキップ部60は、量子化パラメータQcの算出にも用いられた現フレームの複雑度Ecが、複雑度閾値QcSADLimit以上であるか否かを判別する(ステップS120)。ここで、現フレームとは、量子化部20によって量子化される画像データのフレームということができる。そして、複雑度は、現フレームの画像データと該画像データのフレームの前のフレームの画像データとの差分に対応した情報とすることができる。
そして、複雑度Ecが、複雑度閾値QcSADLimit以上であると判別されたとき(ステップS120:Y)、量子化パラメータQcに最大値を設定する(ステップS121)。ここで、最大値は、図17のステップS53における「31」か、或いは図20のステップS101における量子化パラメータ上限閾値QcUpperLimitである。レートコントロール部50は、ステップS121で設定された量子化パラメータQcの値を用いてレートコントロールを行う。
こうして量子化パラメータQcに最大値が設定されると、スキップ処理を行うためのフレームスキップ設定を行う(ステップS122)。このフレームスキップ設定は、図22に示すステップS114のフレームスキップ設定と同様である。
ステップS120において、複雑度Ecが、複雑度閾値QcSADLimitより小さいと判別されたとき(ステップS120:N)、一連の処理を終了する(エンド)。
なお、複雑度閾値QcSADLimitは、図23に示す処理に先立って設定される。
以上のように、フレームスキップ部60は、複雑度Ecが、複雑度閾値QcSADLimit以上のとき、スキップ処理を行うことができる。
なおフレームスキップ部60は、図22又は図23に示す処理をするものに限定されるものではない。フレームスキップ部60は、図22及び図23に示す処理を組み合わせてフレームスキップ設定を行うことができる。
図24に、フレームスキップ部60で行われるスキップ処理の更に他の例のフロー図を示す。ここでは、基本的に、図23に示すように複雑度に基づいてスキップ処理を行うか否かを判定した後に、図22に示すように量子化パラメータに基づいてスキップ処理を行うか否かを判定する。
なお図24では、VBV(Video Buffering Verifier)バッファと呼ばれる仮想的なバッファ検証器を設け、符号化データの生成レートを制御するためにスキップ処理を行うようにしている。VBVバッファは、符号化データ生成部40の出力に概念的に接続された仮想的な復号器ということができ、符号化データ生成部40ではVBVバッファがオーバーフローしたりアンダーフローしたりしないように符号化データを生成する。
まず、フレームスキップ部60は、複雑度Ecが、複雑度閾値QcSADLimit以上であるか否かを判別する(ステップS130)。複雑度Ecが、複雑度閾値QcSADLimit以上であると判別されたとき(ステップS130:Y)、量子化パラメータQcに最大値を設定する(ステップS131)。こうして量子化パラメータQcに最大値が設定されると、スキップ処理を行うためのフレームスキップ設定を行う(ステップS132)。その後、スキップ処理対象のフレームをカウントするためのカウント値Countを0に設定して(ステップS133)、一連の処理を終了する(エンド)。ここで、ステップS131はステップS121と同様であり、ステップS132はステップS114と同様である。
ステップS130において、複雑度Ecが複雑度閾値QcSADLimitより小さいと判別されたとき(ステップS130:N)、量子化パラメータQcの値が、スキップ閾値SkipBorderValueより大きいか否かを判別する(ステップS134)。量子化パラメータQcの値がスキップ閾値SkipBorderValueより大きいと判別されたとき(ステップS134:Y)、カウント値Countをインクリメントする(ステップS135)。量子化パラメータQcの値がスキップ閾値SkipBorderValue以下であると判別されたとき(ステップS134:N)、カウント値Countに0を設定する(ステップS136)。
ステップS135又はステップS136に続いて、カウント値Countがスキップ連続回数閾値SkipBorderCount以上であるか否かを判別する(ステップS137)。カウント値Countがスキップ連続回数閾値SkipBorderCount以上であると判別されたとき(ステップS137:Y)、ステップS132に進む。
ステップS137において、カウント値Countがスキップ連続回数閾値SkipBorderCountより小さいと判別されたとき(ステップS137:N)、上述のVBVバッファの空き容量が、VBVバッファのバッファサイズ/N(Nは正の整数。例えばN=3)より小さいか否かを判別する(ステップS138)。そして、VBVバッファの空き容量が、VBVバッファのバッファサイズ/Nより小さいと判別されたとき(ステップS138:Y)、ステップS132に進み、スキップ処理を行う。一方、ステップS138において、VBVバッファの空き容量が、VBVバッファのバッファサイズ/N以上であると判別されたとき(ステップS138:N)、一連の処理を終了する(エンド)。
3.3 構成例
図25に、本実施形態の画像データ圧縮装置の詳細な機能ブロック図を示す。但し、図8に示す画像データ圧縮装置10と同一部分には同一符号を付し、適宜説明を省略する。
図25に示す画像データ圧縮装置100は、MPEG−4に準拠した動画像の画像データの圧縮処理を行う。画像データ圧縮装置100は、ハードウェア処理部110と、ソフトウェア処理部150とを含む。
ハードウェア処理部110は、動画像の画像データをハードウェアにより処理する。このハードウェア処理部110は、量子化部20を含む画像データ処理部72と、FIFOバッファ部30と、ソフトウェア起動フラグレジスタ130と、スキップフラグレジスタ132とを含む。ハードウェア処理部110は、ソフトウェアを使用せず、ASICや専用回路等のハードウェアにより実現される。
ソフトウェア処理部150は、FIFOバッファ部30から読み出された量子化データをソフトウェアにより符号化処理して符号化データを生成する。このソフトウェア処理部150は、符号化データ生成部40と、レートコントロール部50と、フレームスキップ部60と、間引き検出部80とを含む。ソフトウェア処理部150は、ソフトウェア(ファームウェア)によりその機能が実現される処理部であり、ソフトウェア(ファームウェア)を読み込んだCPU等(ハードウェア)によりその機能が実現される。
より具体的にはハードウェア処理部110の画像データ処理部72は、離散コサイン変換(DCT)部112、動き検出部114、逆量子化部116、逆DCT部118、動き補償部120を含む。DCT部112は、図1(A)に示すステップS2の処理を行う。動き検出部114は、図1(A)に示すステップS1の処理を行う。逆量子化部116は、図1(A)に示すステップS4の処理を行う。逆DCT部118は、図1(A)に示すステップS5の処理を行う。動き補償部120は、図1(A)に示すステップS6の処理を行う。
即ち、ハードウェア処理部110は、現在のフレームの入力画像データと現在のフレームの1フレーム前の過去画像データとの差分を動きベクトル情報として出力し、該動きベクトル情報に対して離散コサイン変換を行って画像データとして量子化部に出力する。更に、この量子化データに対して、上述の量子化ステップで逆量子化して求められる逆量子化データに基づいて、上記の過去画像データをする。
そして、ソフトウェア起動フラグレジスタ130がセットされたときに、このようなハードウェア処理部110の処理が開始される。ソフトウェア起動フラグレジスタ130は、ソフトウェア処理部150によってセットされる。より具体的には、入力画像データの供給が開始されたことを示す割込処理において、ソフトウェア処理部160がソフトウェア起動フラグレジスタ130をセットする(ソフトウェア起動フラグ情報をセット状態に設定する)。
またスキップフラグレジスタ132がセットされたとき、画像データ処理部72において画像データの生成処理がスキップされる。より具体的には、フレームスキップ部60が上述の条件でスキップ処理をすると判断したときに、ソフトウェア処理部150(フレームスキップ部60)は、スキップフラグレジスタ132をセット(スキップフラグ情報をセット状態に設定する)。スキップフラグレジスタ132は、フレーム毎に一旦リセット状態に設定される。この場合、ハードウェアによってスキップフラグレジスタ132をリセット(リセット状態に設定)してもよいし、ソフトウェア処理部150によりフレーム毎にリセットされるようにしてもよい。
なおハードウェア処理部110は、これら各部をすべて含んで構成される必要はなく、上記各部のうち少なくとも1つが省略される構成でもよい。
ソフトウェア処理部150の符号化データ生成部40は、DC/AC予測部152、スキャン部154、VLC符号化部156を含む。DC/AC予測部152は、図1(A)に示すステップS7の処理を行う。スキャン部154は、図1(A)に示すステップS8の処理を行う。VLC符号化部156は、図1(A)に示すステップS9の処理を行う。
なおソフトウェア処理部150は、これら各部をすべて含んで構成される必要はなく、上記各部のうち少なくとも1つが省略される構成でもよい。例えば、ソフトウェア処理部150は、FIFOバッファ部30から読み出された量子化データを可変長符号に符号化するようにしてもよい。また、ソフトウェア処理部150は、FIFOバッファ部30から読み出された量子化データを並び換えるスキャン処理を行い、該スキャン処理の結果を可変長符号に符号化するようにしてもよい。更にまた、ソフトウェア処理部150は、FIFOバッファ部30から読み出された量子化データからDC成分及びAC成分とを求め、このDC成分及びAC成分を並び換えるスキャン処理を行い、該スキャン処理の結果を可変長符号に符号化するようにしてもよい。
ここで、本実施形態において、図1(A)のステップS1〜S6をハードウェア処理し、ステップS7〜S10をソフトウェア処理する理由は下記の通りである。まず、図1(A)のステップS3の量子化後であれば、図5に示すように各ブロック内にはゼロデータが圧倒的に多く、量子化前のデータ(図3)と比較すればデータの情報量の種類が圧倒的に少ない。しかも、ステップS7〜S10の演算自体の負荷も少ないので、図1(A)のステップS7〜S10をソフトウェアで処理しても、その処理の負荷は小さくなる。逆に、図1(A)のステップS3の量子化、ステップS2のDCT、及びステップS5の逆DCTなどは、情報量が多い上に演算も複雑で、ソフトウェアで処理するには負荷が大きい。これらの量子化、DCT、逆DCT、動き補償などは、負荷が重い処理ではあるが規格が決まっているため変更の必要性は乏しく、また、図1(A)のステップS1〜S6には繰り返し処理が多いため、ハードウェアでの処理に適している。また、上述した通りハードウェア処理部110にて処理された量子化後のデータ量が少ないので、ハードウェア処理部110からソフトウェア処理部150に伝送されるデータ量が少なく、データ転送制御の負担を軽くできる。
図26に、画像データ圧縮装置100のハードウェア構成例を示す。ここでは、図25に示すハードウェア処理部110が集積化され、エンコードIC(集積回路)(広義にはエンコーダ)200として半導体装置に実装される。また図25に示すソフトウェア処理部150の機能は、ホスト210により実現される。なお図26において、図25に示すハードウェア処理部110と同一部分には同一符号を付し、説明を適宜省略する。
ホスト210は、CPU212とメモリ214とを含む。メモリ214には、符号化データ生成部40、レートコントロール部50、フレームスキップ部60及び間引き検出部80の機能を実現するためのプログラムが格納される。CPU212は、メモリ214に格納されたプログラムを読み出して、該プログラムに基づいて処理することで、符号化データ生成部40、レートコントロール部50、フレームスキップ部60及び間引き検出部80の機能を実現する。
ここでエンコードIC200は、図示しないカメラモジュール(広義には撮像部)において撮像により得られた動画像の画像データを、MPEG−4の規格に準拠してエンコードを行い、一定のレートで符号化データを生成する。このためエンコードIC200は、図25に示すハードウェア処理部110の各部の機能を実現する回路の他に、ホストインタフェース(InterFace:I/F)202、カメラI/F(広義には画像入力インタフェース)204、量子化パラメータ設定レジスタ206、ソフトウェア起動フラグレジスタ130、スキップフラグレジスタ132を含む。
ホスト210の処理によって、スキップフラグレジスタ132がセットされる。スキップフラグレジスタ132がセットされると、画像データ処理部72における画像データの生成処理がスキップされる。図26では、スキップフラグレジスタ132がセットされると、動き検出部114の内部状態を初期化することによって、画像データ処理部72における画像データの生成処理をスキップするようになっている。
図27に、図26の動き検出部114のハードウェア構成例を示す。本発明は、図27に示す動き検出部114の構成に限定されるものではない。
動き検出部114は、シーケンサ500と、動き検出演算部510とを含む。動き検出演算部510は、シーケンサ500からの制御信号に基づいて動きベクトル情報等を演算し、画像データとしてDCT部112に出力する。シーケンサ500は、予め決められた複数のステート間を遷移し、各ステートにおいて制御信号を出力し、動き検出演算部510の各部を制御して動き検出のための処理を制御するようになっている。
動き検出演算部510では、入力画像データが入力バッファ512に保持される。また、動き補償部120からの過去画像データが、ローカルデコードデータバッファ514に保持される。動き検出部114は、入力画像データと過去画像データとの間で、各画素の絶対差分和が最小となるときの動きベクトル情報を出力する。そのため、探索用画素演算回路516は、ローカルデコードデータバッファ514に保持された過去画像データの画素について、探索用画素値(例えば、隣接する2点又は4点の輝度成分の平均値)を求める。そしてセレクタ518が、探索用画素演算回路516又はローカルデコードデータバッファ514のいずれかを出力する。
絶対差分演算回路520は、例えばマクロブロック単位で、入力バッファ512に保持された入力画像データの画素とセレクタ518の出力の画素との間の絶対差分和を求める。最小誤差評価回路522は、この絶対差分和が最小値か否かを評価する。そして最小誤差評価回路522が、絶対差分演算回路520の演算結果が最小値であると判断すると、出力バッファ524に出力する。即ち、最小誤差評価回路522の評価によって絶対差分演算回路520の演算結果が最小値となるように、過去画像データの画素の値又は探索用画素の値を繰り返し演算していく。
こうして出力バッファ524に出力された動きベクトル情報が、画像データとしてDCT部112に供給される。また複雑度演算回路526は、上述のように複雑度Ecを求めて、該複雑度Ecをホスト210に対して出力できるようになっている。
このような動き検出部114のシーケンサ500には、スキップフラグレジスタ132のスキップフラグ情報が入力される。そしてスキップフラグ情報がセット状態に設定されたとき、シーケンサ500は、動き検出演算部510の内部状態を初期状態に戻す。即ち、スキップフラグレジスタ132がセットされると、動き検出部114は動き検出処理を直ちに中止することができるようになっている。
本実施形態では、上述のようにFIFOバッファ部30を有しているにも関わらず、FIFOバッファ部30のアクセス回数から符号化データのデータサイズを予測データサイズとして予測し、該予測データサイズに基づきビットレートを制御できる。しかも、所定のビットレートを実現できないと判断した場合には、動き検出部114の処理を中止して画像データの生成処理をスキップできる。即ち、現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データの予測データサイズを求め、該予測データサイズに基づいて現フレームの画像データの生成処理をスキップできるようになる。
図26において、エンコードIC200は、FIFO部208を含む。FIFO部208は、FIFOバッファ部30、カウントレジスタ32、FIFOアクセス部34を含む。FIFOアクセス部34は、量子化部20からの量子化データをFIFOバッファ部30に書き込む制御を行うと共に、カウントレジスタ32に保持されるカウントデータを更新する処理を行う。より具体的には、FIFOアクセス部34は、所定のバイト数単位で、量子化データをFIFOバッファ部30に書き込む制御を行う。またFIFOアクセス部34は、FIFOバッファ部30への書き込み制御を行う毎に、カウントデータをインクリメントしてカウントレジスタ32を更新する処理を行う。そしてカウントレジスタ32には、1フレーム分の量子化データがFIFOバッファ部30に書き込まれた時点で、該量子化データのデータサイズに対応した書き込み回数(アクセス回数)の情報が保持されることになる。
エンコードIC200とホスト210は、割り込み信号とデータをやり取りすることで、図8や図25に示す画像データ圧縮装置の機能を実現する。
ホストI/F202は、ホスト210とのインタフェース処理を行う。より具体的には、ホストI/F202は、エンコードIC200からホスト210に対する割り込み信号の生成や、ホスト210とエンコードIC200との間のデータの送受信の制御を行う。ホストI/F202は、FIFOバッファ部30、カウントレジスタ32に接続される。
カメラI/F204は、図示しないカメラモジュールからの動画像の入力画像データを入力するためのインタフェース処理を行う。カメラI/F204は、動き検出部114に接続される。
図示しないカメラモジュールは、撮像により得られた動画像の画像データを、入力画像データとしてエンコードIC200に供給する。このときカメラモジュールは、入力画像データのフレームの区切りを指定するVSYNC信号(垂直同期信号)もエンコードIC200に供給する。エンコードIC200では、カメラI/F204がカメラモジュールからのVSYNC信号をVSYNC割り込みとして受け付けると、ホストI/F202を介してホスト210にカメラVSYNC割り込みとして通知する。これにより、エンコードを開始するのに先立って、ホスト210が、所与の付加処理を実施することができるようになる。
図26において、動き検出が行われる段階では、少なくとも1フレーム分の量子化データがFIFOバッファ部30に書き込まれる。動き検出部114の動き検出が完了すると、動き検出部114は、動き検出完了割り込み(ME割り込み)を、ホストI/F202を介してホスト210に通知する。
図28に、ホスト210で行われる割り込み受け付け処理のフローの一例を示す。メモリ214には、図28に示す処理を実現するプログラムが格納される。CPU212は、このプログラムを読み込んで、図28に示す処理を実現する。
まず、CPU212は、割り込み入力を監視している(ステップS70:N)。そして、CPU212が、割り込みを検出したとき(ステップS70:Y)、その割り込みが後述するカメラVSYNC割り込みであるか否かを判別する(ステップS71)。
CPU212が、カメラVSYNC割り込みであると判別したとき(ステップS71:Y)、後述するカメラVSYNC割り込み処理を実行する(ステップS72)。
ステップS71において、CPU212が、カメラVSYNC割り込みではないと判別したとき(ステップS71:N)、後述するME割り込みであるか否かを判別する(ステップS73)。
CPU212が、ME割り込みであると判別したとき(ステップS73:Y)、後述するME割り込み処理を実行する(ステップS74)。
ステップS73において、CPUがME割り込みではないと判別したとき(ステップS73:N)、CPU212が、後述するエンコード完了割り込みであるか否かを判別する(ステップS75)。CPU212が、エンコード完了割り込みであると判別したとき(ステップS75:Y)、後述するエンコード完了割り込み処理を実行する(ステップS76)。
ステップS75において、CPU212が、エンコード完了割り込みではないと判別したとき(ステップS75:N)、所定の割り込み処理を実行する(ステップS77)。
ステップS72、ステップS74、ステップS76又はステップS77に続いて、終了ではないとき(ステップS78:N)、ステップS70に戻り、終了のとき(ステップS78:Y)、一連の処理を終了する(エンド)。
図29に、カメラVSYNC割り込み処理のフローの一例を示す。メモリ214には、図29に示す処理を実現するプログラムが格納される。CPU212は、このプログラムを読み込んで、図29に示す処理を実現する。
このカメラVSYNC割り込み処理は、図28のステップS72で行われる。ここでは、図29の処理に先立って、間引きフレームインターバル値の累積値が少なくとも1回求められているものとする。
CPU212は、VSYNC割り込み処理が実行される毎に、カメラモジュール(撮像部)からの1フレームの画像データが入力されたと判断し、その値が更新されるフレームのカウント値を、(カメラ)フレームカウンタとして保持している。そして、CPU212は、このフレームカウンタが、カメラ入力フレームレート(例えば図11の画像データの入力フレームレートである19フレーム毎秒)より小さいか否かを判別する(ステップS150)。
フレームレートがカメラ入力フレームレートより小さくないと判別されたとき(ステップS150:N)、フレームカウンタ及び間引きフレームインターバル値の累積値を初期化する(ステップS151)。図11で説明した例では、フレームカウンタが0、間引きフレームインターバル値の累積値が4.75に設定される。
ステップS150においてフレームレートがカメラ入力フレームレートより小さいと判別されたとき(ステップS150:Y)、或いはステップS151に続いて、CPU212は、フレームカウンタが、間引きフレームインターバル値の累積値の1つ以上であるか否かを判別する(ステップS152)。図11で説明した例では、間引きフレームインターバルの累積値が4.75となり、フレームカウンタとの比較が行われる。
ステップS152において、フレームカウンタが、間引きフレームインターバル値の累積値の1つ以上ではないと判別されたとき(ステップS152:N)、当該入力フレームが非間引き対象フレームであると判断し、フレームカウンタを1だけインクリメントし(ステップS153)、ホストI/F202を介してソフトウェア起動フラグレジスタ130をセットする(ステップS154)と共に、一連の処理を終了する(エンド)。
ステップS152において、フレームカウンタが、間引きフレームインターバル値の累積値の1つ以上であると判別されたとき(ステップS152:Y)、当該入力フレームが間引き対象フレームであると判断し、間引きフレームインターバル値の累積値を更新し(ステップS155)、そのまま一連の処理を終了する(エンド)。即ち、当該入力フレームが間引き対象フレームであると判断されたとき、ソフトウェア起動フラグレジスタ130がセットされず、当該フレームの画像データに対するエンコード処理が行われない。また図11の例で説明すると、ステップS155が実行される毎に、間引きフレームインターバル値の累積値が、4.75、9.5、14.25、19の順に更新されていく。
以上のように、本実施形態では、大きく分けて2種類のスキップ処理がある。
第1のスキップ処理は、スキップフラグレジスタ132を操作することで実現するものである。このスキップ処理を行うか否かは、図22〜図24に示した処理において判断される。このスキップ処理によれば、所定のビットレートを確実に維持できるようになる。
第2のスキップ処理は、ソフトウェア起動フラグレジスタ130のセットを省略することで実現するものである。このスキップ処理は、撮像部からの画像データの入力フレームレートが符号化データの生成レートよりも高速である限り行われるものである。このスキップ処理によれば、高速なフレームレートを有する撮像部からの画像データに対して、より低速な一定レートで符号化データを生成できるようになる。
なお、上述の1又は複数の間引きフレームインターバル値の累積値は、カメラモジュール(撮像部)からの画像データの入力フレームレートが変化したことを条件に、間引きフレームの検出処理(間引き検出部の処理又は図29のステップS152)に先立って求められる事が望ましい。この場合、頻繁に累積値を求める必要がなくなると共に、可変のカメラモジュールの入力フレームレートにも対応できる。
図30に、この間引きフレームインターバル値の累積値を求める処理のフローの一例を示す。この処理は、VSYNC割り込み処理中に行われる事が望ましい。ここでは、図10と同様に、カメラモジュールからの画像データの入力フレームレートをCA、符号化データの生成レートをTAとする。また、間引きフレームインターバル値をINTVとする。
まずCPU212は、カメラモジュールからの画像データの入力フレームレートが変化したかを判別する(ステップS160)。CPU212は、例えば図9に示す構成ブロックを有するカメラモジュールに直接アクセスして制御レジスタ92の設定値を参照して、該入力フレームレートが変化したか否かを判断する。或いは、CPU212は、例えば図9に示す構成ブロックを有するカメラモジュールに対して、エンコードIC200を介して間接的に制御レジスタ92の設定値を参照して、該入力フレームレートが変化したか否かを判断する。
ステップS160において、カメラモジュールからの画像データの入力フレームレートが変化したと判別されたとき(ステップS160:Y)、小数点データであるCA/(CA−TA)をINTVに設定する(ステップS161)。
続いて、INVTの累積値及びフレームカウンタを0に設定する(ステップS162)。
その後、INTVの累積値に、INTVの累積値とINTVとの和を設定し(ステップS163)、この和が設定されたINTVの累積値を保存する(ステップS164)。
そして、ステップS163で求めたINTVの累積値が、カメラモジュールからの入力フレームレート以上か否かを判別する(ステップS165)。ステップS163で求めたINTVの累積値が、カメラモジュールからの入力フレームレート以上ではないとき(ステップS165:N)、ステップS163に戻る。
ステップS163で求めたINTVの累積値がカメラモジュールからの入力フレームレート以上のとき(ステップS165:Y)、或いはステップS160においてカメラモジュールからの画像データの入力フレームレートが変化していないと判別されたとき(ステップS160:N)、一連の処理を終了する(エンド)。
こうすることで、図11の例では、INTVが4.75、入力フレームレートが19となるため、INTVの累積値が4.75、9.5(=4.75+4.75)、14.25(=9.5+4.75)、19(14.25+4.75)が保存される。
なお図30では、カメラモジュールからの画像データの入力フレームレートが可変の場合について説明したが、該入力フレームレートが固定の場合には、該カメラモジュールを初期化する処理中において、間引きフレームの検出処理に先立ってINTVの累積値を求めてもよい。
図26に戻って、説明を続ける。ホストI/F202を介してソフトウェア起動フラグレジスタ130が、ホスト210によってセットされると、エンコードIC200ではエンコードが開始される。
動き検出部114は、エンコード開始後、最初に取り込まれる入力画像データについては動き検出を行わず、次のフレームの入力画像データが取り込まれてから動き検出を行う。ここで、動き検出の詳細については上述の通りであるため、逆量子化部116等の動作についての説明は省略する。動き検出部114の動き検出が完了すると、動き検出部114は、動き検出完了割り込み(ME割り込み)を、ホストI/F202を介してホスト210に通知する。
図31に、ME割り込み処理のフローの一例を示す。メモリ214には、図31に示す処理を実現するプログラムが格納される。CPU212は、このプログラムを読み込んで、図31に示す処理を実現する。
このME割り込み処理は、図28のステップS74で行われる。
ME割り込みが検出されると、CPU212は、ホストI/F202を介して、動き検出部114で生成される複雑度Ecを読み出す(ステップS80)。この複雑度Ecは、図6に示す式に従って動き検出部114で生成される。
続いてCPU212は、量子化パラメータQcを求める(ステップS81)。より具体的には、CPU212は、図16〜図20で説明したように量子化パラメータQcの値を求める。
次にCPU212は、フレームスキップ処理を行う(ステップS82)。フレームスキップ処理は、図22、図23又は図24に示した処理のいずれかである。各処理におけるフレームスキップ設定(ステップS114、S122、S132)は、現フレームをスキップする判断がされたという意味で、ソフトウェアフラグを設定するだけの処理である。
その後、フレームスキップ処理の結果、ソフトウェアフラグが設定された場合(ステップS83:Y)、ホストI/F202を介してスキップフラグレジスタ132をCPU212がセットし(ステップ84)、ソフトウェアフラグが設定されていない場合(ステップS83:N)、ステップS81で求めた量子化パラメータQcの値を、ホストI/F202を介して、量子化パラメータ設定レジスタ206に設定する。(ステップS85)
ステップS84及びS85の後は、一連の処理を終了する(エンド)。
図26に戻って、説明を続ける。エンコードIC200は、スキップフラグレジスタ132がセットされると、動き検出部114が初期化され、現在のフレームの画像データの生成処理がスキップされる。
一方、エンコードIC200は、量子化パラメータ設定レジスタ206に量子化パラメータQcの値が設定されたことにより、DCT部112の処理を開始する。そして上述のように量子化部20では、量子化パラメータ設定レジスタ206に設定された量子化パラメータと、図示しない量子化テーブルの量子化ステップ値とを用いて、DCT部112によって生成されたDCT係数(広義には画像データ)を量子化する。その結果である量子化データは、FIFOバッファ部30に書き込まれる。
このとき、FIFOアクセス部34は、当該フレーム内においてFIFOバッファ部30への書き込みが発生する毎にカウントデータをインクリメントしてカウントデータを更新する。そして、FIFOバッファ部30への量子化データの書き込みが完了すると、FIFO部208は、1フレームのエンコード処理が終了したことを示すエンコード完了割り込みを、ホストI/F202を介してホスト210に通知する。
図32に、エンコード完了割り込み処理のフローの一例を示す。メモリ214には、図32に示す処理を実現するプログラムが格納される。CPU212は、このプログラムを読み込んで、図32に示す処理を実現する。
エンコード完了割り込み処理は、図28に示すステップS76で行われる。
CPU212がエンコード完了割り込みを検出すると、カウントレジスタ32に保持されたカウントデータを読み出す(ステップS90)。続いて、図19に示すように、ステップS90で読み出されたカウントデータをxとして、予測データサイズyを求め、所定のテンポラリ領域に保存する(ステップS91)。
次に、処理実行フラグPFLGが0であるか否かを判別する(ステップS92)。処理実行フラグPFLGは、符号化データの生成処理(図1(A)のステップS7〜S9の処理)を実行中か否かを示すフラグである。処理実行フラグPFLGが0ではないと判別したとき(ステップS92:N)、符号化データ生成部40の処理を実行中と判断し、一連の処理を終了する(エンド)。
ステップS92において、処理実行フラグPFLGが0であると判別したとき(ステップS92:Y)、符号化データの生成処理を実行する。
この符号化データの生成処理では、まず処理実行フラグPFLGを1に設定する(ステップS93)。これにより、該生成処理の処理中に、エンコード完了割り込みが発生した場合でも、次のフレームの符号化データの生成処理の実行を待たせることができる。
そして、FIFOバッファ部30から所定のバイト数単位で1フレームの量子化データを読み出す(ステップS94)。
そしてCPU212は、マクロブロック単位で、DC/AC予測処理(ステップS95)、スキャン処理(ステップS96)及び可変長符号化処理(ステップS97)を行って符号化データを生成する。
次にCPU212は、ステップS97で生成した符号化データにマクロブロックヘッダを付加する。このようにして得られた符号化データを1VOP(Video Object Plane)分行って、既に求められた量子化パラメータを基にGOVヘッダやVOPヘッダを生成して、所定のフレーム数分のエンコードが終了したらMPEG−4ファイルとして出力する(ステップS98)。
そして、ステップS98に続いて、処理実行フラグPFLGを0に設定し(ステップS99)、一連の処理を終了する(エンド)。
以上のようにして、ハードウェア処理部110とソフトウェア処理部150とに分担して、画像データの圧縮処理を行う。
以上のようなエンコードIC200のレートコントロールを行うために、本実施形態では、ホスト210が次のような1次変換を行う処理式を記憶しておき、上述のようなレートコントロールを行う。
図33に、カウントデータと予測データサイズとの関係図を示す。
ここでは、ビットレートが64キロビット毎秒(bps)、フレームレートが15フレーム毎秒(fps)、画像サイズQCIF(176×144ピクセル)とし、横軸をFIFOバッファ部30のアクセス回数を示すカウントデータ、縦軸をVLC符号化後の符号化データのデータサイズ(バイト数)の実測値を示している。
このように、カウントデータと符号化データのデータサイズとの関係が線形関係にあることがわかる。
図33に示す実測値に基づいて、(1)式において、例えばaを4/5、bを(13.5625×99×8)とすることで、図33に示す線形関係を近似的に表現できる。従って、この1次変換式を用いて、予測データサイズを容易に求めることができる。
図34に、本実施形態における画像データ圧縮装置の効果を説明する図を示す。図34では、本実施形態における画像データ圧縮装置に設けられるVBVバッファの空き容量の変化の一例を示すシミュレーション結果を示している。図34では、横軸にフレーム数、縦軸にVBVバッファの空き容量のビット数を示している。
ここでは、VBVバッファがオーバーフローしたりアンダーフローしたりしないように符号化データを生成するため、VBVバッファの空き容量が所定の閾値(約110000ビット)を下回ると、フレームスキップが実行される。空き容量が少なくなるタイミングで、そのフレームにおいてエンコード処理が行われたことを示している。また空き容量が多くなるタイミングで、エンコード処理結果がVBVバッファに出力されないことを示している。こうして所定の空き容量を維持できるように符号化データを生成することで、一定のレートを実現する。
図34では、全フレーム数が150、ビットレートが64キロビット毎秒(kbps)、フレームレートが15フレーム毎秒(fps)、VBVバッファサイズが327680ビット、閾値が109226ビット、比較例において過去4フレーム分の符号化データの平均データサイズを用いるものとする。このような条件下で、図34では、当初の動きが少なく、次第に動きが激しくなる動画の画像データをエンコードした場合のシミュレーション結果を示している。
そして、図34では、閾値の109226ビット付近に着目すると、ほぼ閾値付近になるように空き容量が維持される。これは、予測データサイズの予測の精度が高いことを意味する。即ち、1フレーム前のFIFOバッファ部30への書き込み回数を1次変換することにより予測データサイズを求める精度が高いことを意味し、また該予測データサイズに基づくビットレートの制御の精度が高いことを意味する。従って、比較例との対比において、本実施形態では、VBVバッファのオーバーフローを発生させる可能性も低いことがわかる。
4. 表示コントローラ
本実施形態におけるエンコードICの機能は、表示コントローラに適用できる。
図35に、本実施形態における表示コントローラの構成例のブロック図を示す。
表示コントローラ300は、カメラI/F310と、エンコード処理部320と、メモリ330と、ドライバI/F340と、制御部350と、ホストI/F360とを含む。
カメラI/F310は、図示しないカメラモジュールに接続される。このカメラモジュールは、例えば図9に示す構成を有し、撮像により得られた動画像の入力画像データをYUVフォーマットで出力すると共に、1フレームの区切りを指定する同期信号(例えばVSYNC信号)を出力する。カメラI/F310は、カメラモジュールで生成された動画像の入力画像データを受信するためのインタフェース処理を行う。
エンコード処理部320は、図26のエンコードIC200のうちホストI/F202及びカメラI/F204の機能を省略したものである。即ち、エンコード処理部320は、図26に示す量子化部20、FIFO部208、DCT部112、動き検出部114、逆量子化部116、逆DCT部118、動き補償部120、量子化パラメータ設定レジスタ206、ソフトウェア起動フラグレジスタ130、スキップフラグレジスタ132の各部の機能を有する。
メモリ330は、エンコード処理部320の出力である符号化データを記憶する。またメモリ330は、表示パネルに表示するための画像データを記憶しており、ドライバI/F340は、メモリ330から所定の周期で画像データを読み出し、該画像データを、表示パネルを駆動する表示ドライバに対して供給する。ドライバI/F340は、表示ドライバに対して画像データを送信するためのインタフェース処理を行う。
制御部350は、カメラI/F310、エンコード処理部320、メモリ330及びドライバI/F340の制御を司る。制御部350は、例えばホストI/F360を介して図示しないホストからの指示に従って、カメラモジュールからの入力画像データの受信処理、該入力画像のエンコード処理、符号化データのメモリ330への書き込み処理、メモリ330からの表示用の画像データの読み出し処理、表示ドライバへの該画像データの送信処理を行う。
図36に、図35に示す表示コントローラが適用される電子機器の構成例のブロック図を示す。ここでは、電子機器として、携帯電話機の構成例のブロック図を示す。但し、図35と同一部分には同一符号を付し、適宜説明を省略する。
携帯電話機400は、カメラモジュール410を含む。カメラモジュール410は、CCDカメラを含み、CCDカメラで撮像した画像のデータを、YUVフォーマットで表示コントローラ300に供給する。
携帯電話機400は、表示パネル420を含む。表示パネル420として、液晶表示パネルを採用できる。この場合、表示パネル420は、表示ドライバ430によって駆動される。表示パネル420は、複数の走査線、複数のデータ線、複数の画素を含む。表示ドライバ430は、複数の走査線の1又は複数本単位で走査線を選択する走査ドライバの機能を有すると共に、画像データに対応した電圧を複数のデータ線に供給するデータドライバの機能を有する。
表示コントローラ300は、表示ドライバ430に接続され、表示ドライバ430に対して画像データを供給する。
ホスト440は、表示コントローラ300に接続される。ホスト440は、表示コントローラ300を制御する。またホスト440は、アンテナ460を介して受信された画像データを、変復調部450で復調した後、表示コントローラ300に対して供給できる。表示コントローラ300は、この画像データに基づき、表示ドライバ430により表示パネル420に表示させる。
またホスト440は、図26に示すホスト210の機能を有する。ホスト440は、カメラモジュール410で生成された画像データをエンコード処理部320でエンコードして変復調部450で変調した後、アンテナ460を介して他の通信装置への送信を指示できる。このとき、表示コントローラ300は、カメラモジュール410で生成された画像データをエンコードし、エンコードして得られた符号化データをホスト440に出力できる。
ホスト440は、操作入力部470からの操作情報に基づいて画像データの送受信処理、エンコード処理、カメラモジュール410の撮像、表示パネルの表示処理を行う。
なお、図36では、表示パネル420として液晶表示パネルを例に説明したが、これに限定されるものではない。表示パネル420は、エレクトロクミネッセンス、プラズマディスプレイ装置であってもよく、これらを駆動する表示ドライバに画像データを供給する表示コントローラに適用できる。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
図1(A)、(B)はMPEG−4のエンコード処理とデコード処理の説明図。 マクロブロックの説明図。 DCT係数の一例の説明図。 量子化テーブルの一例の説明図。 量子化されたDCT係数の一例の説明図。 レートコントロール方式で用いられるモデル式の説明図。 図6に示すモデル式を用いたレートコントロールの処理の一例のフロー図。 本実施形態の画像データ圧縮装置の構成の概要のブロック図。 図8の撮像部の構成例のブロック図。 図8の間引き検出部の処理の手法の説明図。 図8の間引き検出部の処理例の説明図。 予測データサイズの説明図。 本実施形態におけるレートコントロールの手法の説明図。 図13に示すレートコントロール手法の動作タイミングの模式図。 量子化パラメータ、符号化データのデータサイズ及びブロックノイズの関係の模式図。 量子化パラメータの算出処理の一例の前半のフロー図。 量子化パラメータの算出処理の一例の後半のフロー図。 量子化パラメータの算出処理で用いられる変数の説明図。 エンコードに使用したビット数の値の算出処理の一例のフロー図。 量子化パラメータの調整処理の一例のフロー図。 本実施形態の量子化処理の説明図。 本実施形態のスキップ処理の一例のフロー図。 本実施形態のスキップ処理の他の例のフロー図。 本実施形態のスキップ処理の更に他の例のフロー図。 本実施形態の画像データ圧縮装置の詳細な機能ブロック図。 図25の画像データ圧縮装置のハードウェア構成例を示す図。 図26の動き検出部のハードウェア構成例を示す図。 ホストで行われる割込受け付け処理の一例のフロー図。 カメラVSYNC割り込み処理の一例のフロー図。 間引きフレームインターバル値の累積値を求める処理の一例のフロー図。 ME割り込み処理の一例のフロー図。 エンコード完了割り込み処理の一例のフロー図。 本実施形態におけるカウントデータと予測データサイズとの関係を示す図。 本実施形態におけるVBVバッファの空き容量の変化を示す図。 本実施形態における表示コントローラの構成例のブロック図。 図35の表示コントローラが適用される電子機器の構成例のブロック図。
符号の説明
10、100 画像データ圧縮装置、 20 量子化部、 30 FIFOバッファ部、40 符号化データ生成部、 50 レートコントロール部、
60 フレームスキップ部、 70 圧縮処理部、 80 間引き検出部、
90 撮像部、92 制御レジスタ、 110 ハードウェア処理部、
112 離散コサイン変換(DCT)部、 114 動き検出部、
116 逆量子化部、 118 逆離散コサイン変換(iDCT)部、
120 動き補償部、 150 ソフトウェア処理部、 152 DC/AC予測部、
154 スキャン部、 156 VLC符号化部

Claims (11)

  1. 画像データを圧縮するための画像データ圧縮装置であって、
    撮像部から1フレーム分の画像データが入力される毎に、当該入力フレームが間引き対象フレームか否かを検出する処理を行う間引き検出部と、
    前記画像データの圧縮処理を行って符号化データを一定レートで生成する圧縮処理部と、
    前記間引き検出部の検出結果に基づいて、前記圧縮処理部が行う1フレーム分の画像データの圧縮処理をスキップさせるスキップ処理を行うフレームスキップ部とを含み、
    前記圧縮処理部が、
    量子化パラメータに基づいて変化する量子化ステップで画像データを量子化することで増減されるゼロデータを含む量子化データを生成するための量子化部と、
    前記量子化部によって量子化された複数フレーム分の量子化データがバッファリングされるFIFOバッファ部と、
    前記量子化データのデータサイズを求める手段と、
    前記FIFOバッファ部への書き込みと非同期で前記FIFOバッファ部から量子化データを読み出し、該量子化データを符号化した符号化データを生成する符号化データ生成部と、
    フレーム毎に、前記圧縮処理後のデータサイズを変化させて前記圧縮処理後のデータの生成レートを制御するレートコントロール部とを含み、
    前記量子化部が、
    前記画像データを表すビット数を減らした量子化データを生成し、
    前記量子化データのデータサイズを求める手段が、
    前記量子化部が前記FIFOバッファ部に対して行った量子化データの書き込み回数又は前記FIFOバッファ部からの量子化データの読み出し回数に基づいて前記データサイズを求め、
    前記レートコントロール部が、
    現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データの予測データサイズを求め、該予測データサイズを用いて前記量子化パラメータを求め、前記量子化パラメータに基づいて、フレーム毎に前記量子化部の量子化ステップを変化させて符号化データのデータサイズを制御し、
    前記予測データサイズは、前記1フレーム前の量子化データのデータサイズを変数とする、前記符号化データに付加されるヘッダのサイズ分を補正する1次変換の変換値として求められ、
    前記FIFOバッファ部に格納された複数フレーム分の量子化データのうち1フレーム分の量子化データが読み出されることを条件に、前記量子化ステップを変化させて該量子化ステップに基づき次のフレームの量子化データを生成し、該量子化データを前記FIFOバッファ部に書き込み、
    前記撮像部からの画像データの入力フレームレートをCA(CAは正の整数)、前記圧縮処理後の符号化データの生成レートをTA(CA>TA、TAは正の整数)とした場合、
    前記間引き検出部が、
    前記撮像部から入力される画像データのフレームのカウント値とCA/(CA−TA)の整数倍として求められる小数点データの1又は複数の間引きフレームインターバル値のうちの1つの値とを比較し、
    前記カウント値が前記間引きフレームインターバル値のうちの1つの値以上であるとき、前記当該入力フレームを間引き対象フレームとして検出し、
    前記フレームスキップ部が、
    前記間引き検出部が前記当該入力フレームを間引き対象フレームと判断したことを条件に当該フレームの画像データに対し前記スキップ処理を行うことを特徴とする画像データ圧縮装置。
  2. 請求項1において、
    前記撮像部からの画像データの入力フレームレートが変化したことを条件に、前記間引き検出部の処理に先立って前記間引きフレームインターバル値を求めることを特徴とする画像データ圧縮装置。
  3. 請求項1又は2において、
    前記フレームスキップ部が、更に、
    前記量子化パラメータがスキップ閾値よりも大きくなるフレームが、スキップ連続回数閾値として設定された回数以上連続したとき、前記スキップ処理を行うことを特徴とする画像データ圧縮装置。
  4. 請求項1乃至3のいずれかにおいて、
    前記圧縮処理部が、
    量子化パラメータに基づいて変化する量子化ステップで画像データを量子化することで増減されるゼロデータを含む量子化データを生成するための量子化部と、
    前記量子化部によって量子化された複数フレーム分の量子化データがバッファリングされるFIFOバッファ部と、
    前記量子化データのデータサイズを求める手段と、
    前記FIFOバッファ部への書き込みと非同期で前記FIFOバッファ部から量子化データを読み出し、該量子化データを符号化した符号化データを生成する符号化データ生成部とを含み、
    前記量子化部が、
    前記画像データを表すビット数を減らした量子化データを生成し、
    前記量子化データのデータサイズを求める手段が、
    前記量子化部が前記FIFOバッファ部に対して行った量子化データの書き込み回数又は前記FIFOバッファ部からの量子化データの読み出し回数に基づいて前記データサイズを求め、
    前記レートコントロール部が、
    現在のフレームの1フレーム前の量子化データのデータサイズから該1フレーム前の符号化データの予測データサイズを求め、該予測データサイズを用いて前記量子化パラメータを求め、前記量子化パラメータに基づいて、フレーム毎に前記量子化部の量子化ステップを変化させて符号化データのデータサイズを制御し、
    前記予測データサイズは、前記1フレーム前の量子化データのデータサイズを変数とする、前記符号化データに付加されるヘッダのサイズ分を補正する1次変換の変換値として求められ、
    前記FIFOバッファ部に格納された複数フレーム分の量子化データのうち1フレーム分の量子化データが読み出されることを条件に、前記量子化ステップを変化させて該量子化ステップに基づき次のフレームの量子化データを生成し、該量子化データを前記FIFOバッファ部に書き込み、
    前記フレームスキップ部が、更に、
    前記量子化部によって量子化される画像データと該画像データのフレームの前のフレームの画像データとの差分に対応した複雑度が、複雑度閾値以上のとき、前記スキップ処理を行うことを特徴とする画像データ圧縮装置。
  5. 請求項1乃至4のいずれかにおいて、
    前記レートコントロール部が、
    前記予測データサイズを用いて、その値が設定可能な量子化パラメータ上限閾値以下となるように量子化パラメータを求めることを特徴とする画像データ圧縮装置。
  6. 請求項5において、
    前記レートコントロール部が、
    前記予測データサイズを用いて、前記量子化パラメータ上限閾値以下で、かつその値が設定可能な量子化パラメータ下限閾値以上となるように前記量子化パラメータを求めることを特徴とする画像データ圧縮装置。
  7. 請求項4乃至6のいずれかにおいて、
    前記量子化部が前記FIFOバッファ部に対して行った量子化データの書き込み回数又は前記FIFOバッファ部からの量子化データの読み出し回数に対応したカウントデータが保持されるカウントレジスタを含み、
    前記レートコントロール部が、
    前記カウントデータから前記予測データサイズを求めることを特徴とする画像データ圧縮装置。
  8. 請求項4乃至7のいずれかにおいて、
    量子化ステップ値を記憶する量子化テーブルを含み、
    前記レートコントロール部が、
    前記量子化パラメータと前記量子化ステップ値との積を用いて量子化を行うことで、前記量子化ステップを変化させることを特徴とする画像データ圧縮装置。
  9. 請求項4乃至8のいずれかにおいて、
    離散コサイン変換された前記画像データを、フレーム単位で前記量子化部に供給する離散コサイン変換部を含むことを特徴とする画像データ圧縮装置。
  10. 請求項4乃至9のいずれかにおいて、
    動画像の画像データをハードウェアにより処理するハードウェア処理部と、
    前記FIFOバッファ部から読み出された量子化データをソフトウェアにより符号化処理して符号化データを生成するソフトウェア処理部とを含み、
    前記ハードウェア処理部が、
    前記量子化部と、前記FIFOバッファ部とを含み、
    前記ソフトウェア処理部が、
    前記符号化データ生成部、前記レートコントロール部、前記間引き検出部及び前記フレームスキップ部を含むことを特徴とする画像データ圧縮装置。
  11. 請求項1乃至10のいずれか記載の画像データ圧縮装置を含むことを特徴とする電子機器。
JP2004146945A 2004-05-17 2004-05-17 画像データ圧縮装置、電子機器及び画像データ圧縮方法 Expired - Fee Related JP3846490B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004146945A JP3846490B2 (ja) 2004-05-17 2004-05-17 画像データ圧縮装置、電子機器及び画像データ圧縮方法
US11/126,999 US20050254579A1 (en) 2004-05-17 2005-05-11 Image data compression device, electronic apparatus and image data compression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004146945A JP3846490B2 (ja) 2004-05-17 2004-05-17 画像データ圧縮装置、電子機器及び画像データ圧縮方法

Publications (2)

Publication Number Publication Date
JP2005328487A JP2005328487A (ja) 2005-11-24
JP3846490B2 true JP3846490B2 (ja) 2006-11-15

Family

ID=35309379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004146945A Expired - Fee Related JP3846490B2 (ja) 2004-05-17 2004-05-17 画像データ圧縮装置、電子機器及び画像データ圧縮方法

Country Status (2)

Country Link
US (1) US20050254579A1 (ja)
JP (1) JP3846490B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3680845B2 (ja) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 圧縮動画像の伸張装置及びそれを用いた画像表示装置
JP3680846B2 (ja) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 動画像の圧縮装置及びそれを用いた撮像装置
WO2007043987A2 (en) * 2005-09-15 2007-04-19 Dow Corning Corporation Nano-molding process
WO2007081537A2 (en) * 2006-01-04 2007-07-19 University Of Dayton Frame decimation through frame simplification
US8160156B2 (en) * 2006-02-01 2012-04-17 Verint Systems, Inc. System and method for controlling the long term generation rate of compressed data
JP4826798B2 (ja) * 2007-02-28 2011-11-30 日本電気株式会社 映像符号化システム、方法及びプログラム
WO2008129648A1 (ja) * 2007-04-13 2008-10-30 Mitsubishi Electric Corporation フレームレート変換装置、フレームレート変換方法及び動画像符号化装置
JP5251774B2 (ja) * 2009-07-27 2013-07-31 ソニー株式会社 画像符号化装置および画像符号化方法
JP5843631B2 (ja) 2012-01-26 2016-01-13 日本電信電話株式会社 フレームレート制御方法,フレームレート制御装置およびフレームレート制御プログラム
JP2014200074A (ja) * 2013-03-15 2014-10-23 株式会社リコー 配信制御システム、配信制御方法、及びプログラム
US11132957B2 (en) * 2018-10-03 2021-09-28 Mediatek Inc. Method and apparatus for performing display control of an electronic device with aid of dynamic refresh-rate adjustment
CN111193927B (zh) * 2018-11-14 2022-09-23 腾讯科技(深圳)有限公司 编码数据处理方法、装置、计算机设备和存储介质
CN110312133B (zh) * 2019-06-27 2021-11-23 西安万像电子科技有限公司 图像处理方法及装置
CN115280769A (zh) * 2020-03-12 2022-11-01 交互数字Vc控股法国公司 用于视频编码和解码的方法和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0181027B1 (ko) * 1995-03-20 1999-05-01 배순훈 화소 단위 움직임 추정을 이용하는 영상처리 시스템
US6643327B1 (en) * 2000-05-05 2003-11-04 General Instrument Corporation Statistical multiplexer and remultiplexer that accommodates changes in structure of group of pictures

Also Published As

Publication number Publication date
JP2005328487A (ja) 2005-11-24
US20050254579A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
JP3846488B2 (ja) 画像データ圧縮装置、エンコーダ、電子機器及び画像データ圧縮方法
US7688891B2 (en) Image data compression device, encoder, electronic apparatus, and method of compressing image data
US20050254579A1 (en) Image data compression device, electronic apparatus and image data compression method
JP5893002B2 (ja) ビデオ符号化におけるレート制御
US7876829B2 (en) Motion compensation image coding device and coding method
JP4641892B2 (ja) 動画像符号化装置、方法、及びプログラム
JP4063204B2 (ja) 画像データ圧縮装置及びエンコーダ
JP4063205B2 (ja) 画像データ圧縮装置及びエンコーダ
US20160301945A1 (en) Image compression/decompression device
US7373001B2 (en) Compressed moving image decompression device and image display device using the same
US20050249280A1 (en) Image data compression apparatus, enencoder electronic equipment, and image data compression method
JP3680846B2 (ja) 動画像の圧縮装置及びそれを用いた撮像装置
US20120195364A1 (en) Dynamic mode search order control for a video encoder
JP4063202B2 (ja) 画像データ圧縮装置及びエンコーダ
CN106028031B (zh) 视频编码装置和方法、视频解码装置和方法
JP4063203B2 (ja) 画像データ圧縮装置及びエンコーダ
JP2008160402A (ja) 符号化装置及び方法並びに画像符号化装置
US9942569B2 (en) Image encoding apparatus and control method of the same
KR100507441B1 (ko) 가변장 부호의 입력 특성을 이용한 영상 신호 압축 방법및 상기 방법을 수행하는 비디오 인코더

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20050812

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20050831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060123

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060523

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060615

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060814

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090901

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130901

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees